/* self-hosted-fonts-marker */
/* Self-hosted fonts (Playfair Display + Hanken Grotesk, latin + latin-ext, variable). No third-party request. */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: italic;
  font-weight: 400 800;
  font-display: swap;
  src: url(/fonts/hankengrotesk-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: italic;
  font-weight: 400 800;
  font-display: swap;
  src: url(/fonts/hankengrotesk-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(/fonts/hankengrotesk-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(/fonts/hankengrotesk-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 400 900;
  font-display: swap;
  src: url(/fonts/playfairdisplay-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 400 900;
  font-display: swap;
  src: url(/fonts/playfairdisplay-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url(/fonts/playfairdisplay-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url(/fonts/playfairdisplay-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* =========================================================
   Brazil USA Translations — revamp prototype
   Design system: trust navy + warm gold + accept green on warm cream
   Type: Playfair Display (display) + Hanken Grotesk (body/UI)
   ========================================================= */

:root{
  /* color */
  --c-navy:#0E3A5C;
  --c-navy-deep:#0A2A43;
  --c-navy-700:#1B5183;
  --c-gold:#E8A13C;
  --c-gold-dark:#CC861F;
  --c-green:#1B8A5A;
  --c-green-soft:#E8F4ED;
  --c-cream:#FBF7F0;
  --c-cream-2:#F4ECDD;
  --c-white:#FFFFFF;
  --c-text:#1E2D38;
  --c-muted:#5C6B78;
  --c-border:#E7DDCB;
  --c-border-cool:#E3E9EE;
  --c-star:#E8A13C;
  --c-trustpilot:#00B67A;

  /* lifted from inline values (Hallmark token pass) */
  --c-paper:#FFFDFA;
  --c-paper-warm:#fffaf2;
  --c-prose:#3D5347;
  --c-green-deep:#14532D;
  --c-green-ink:#0E3B20;
  --c-green-mid:#1C6B3C;
  --c-green-night:#0B2E19;
  --c-gold-soft:#F6C878;
  --c-gold-lift:#F2B45A;
  --c-gold-shade:#DE9327;
  --c-gold-mark:#DDB055;
  --c-navy-ink:#08233A;
  --c-sky-tint:#cfe0ee;
  --c-foot-dim:#7f9bb2;
  --c-foot-text:#aec4d6;

  /* type */
  --font-display:'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-body:'Hanken Grotesk', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;

  /* shape */
  --r-sm:8px; --r-md:12px; --r-lg:18px; --r-xl:24px;
  --shadow-sm:0 1px 2px rgba(14,58,92,.06), 0 2px 8px rgba(14,58,92,.05);
  --shadow-md:0 6px 24px rgba(14,58,92,.10);
  --shadow-lg:0 18px 50px rgba(14,58,92,.16);
  --shadow-xl:0 30px 80px -20px rgba(14,58,92,.35), 0 2px 6px rgba(14,58,92,.08);
  --ring:0 0 0 3px rgba(232,161,60,.9), 0 0 0 5px rgba(10,42,67,.7);

  /* motion + texture */
  --ease:cubic-bezier(.22,1,.36,1);
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");

  --container:1180px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--c-text);
  background:var(--c-cream);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--c-navy);text-decoration:none}
h1,h2,h3{font-family:var(--font-display);font-optical-sizing:auto;line-height:1.12;color:var(--c-navy-deep);margin:0;text-wrap:balance}
p{margin:0 0 1rem;text-wrap:pretty}
::selection{background:rgba(232,161,60,.35);color:var(--c-navy-deep)}
:focus-visible{outline:3px solid var(--c-navy-deep);outline-offset:2px}
/* On the dark footer and final-CTA the navy ring vanishes; switch it to gold there. */
.finalcta :focus-visible,.site-footer :focus-visible{outline-color:var(--c-gold)}
.skip-link{position:absolute;left:1rem;top:-80px;z-index:200;background:var(--c-navy-deep);color:#fff;font-weight:700;padding:.7rem 1.1rem;border-radius:0 0 10px 10px;transition:top .2s var(--ease)}
.skip-link:focus{top:0}
.container{max-width:var(--container);margin:0 auto;padding:0 24px;width:100%}
.ic{width:1em;height:1em;fill:currentColor;flex:none}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  font-family:var(--font-body);font-weight:700;font-size:1rem;
  padding:.8rem 1.4rem;border-radius:var(--r-md);border:2px solid transparent;
  cursor:pointer;transition:transform .16s var(--ease), box-shadow .22s var(--ease), background .22s var(--ease), color .22s var(--ease), border-color .22s var(--ease);
  line-height:1;white-space:nowrap;
}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0) scale(.98)}
.btn--gold{background:linear-gradient(180deg,var(--c-gold-lift) 0%,var(--c-gold) 55%,var(--c-gold-shade) 100%);color:var(--c-navy-deep);
  box-shadow:0 10px 24px -8px rgba(204,134,31,.55), inset 0 1px 0 rgba(255,255,255,.45), inset 0 -1px 0 rgba(0,0,0,.08)}
.btn--gold:hover{background:linear-gradient(180deg,#F6BC66 0%,#EAA744 55%,#D18A1F 100%);
  box-shadow:0 16px 32px -10px rgba(204,134,31,.6), inset 0 1px 0 rgba(255,255,255,.5), inset 0 -1px 0 rgba(0,0,0,.08)}
.btn--gold-line{background:var(--c-white);color:var(--c-gold-dark);border-color:var(--c-gold)}
.btn--gold-line:hover{background:linear-gradient(180deg,var(--c-gold-lift) 0%,var(--c-gold) 55%,var(--c-gold-shade) 100%);color:var(--c-navy-deep);
  box-shadow:0 10px 24px -8px rgba(204,134,31,.5)}
.btn--navy{background:linear-gradient(180deg,var(--c-green-mid) 0%,var(--c-navy) 60%,var(--c-navy-deep) 100%);color:#fff;
  box-shadow:0 10px 24px -8px rgba(11,46,25,.5), inset 0 1px 0 rgba(255,255,255,.14)}
.btn--navy:hover{background:linear-gradient(180deg,#238049 0%,#175C33 60%,var(--c-navy-deep) 100%)}
.btn--ghost{background:var(--c-paper);color:var(--c-navy);border-color:var(--c-border-cool)}
.btn--ghost:hover{border-color:var(--c-navy);background:var(--c-paper);box-shadow:var(--shadow-sm)}
.btn--ghost-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.btn--ghost-light:hover{background:rgba(255,255,255,.12);border-color:#fff}
.btn--block{width:100%}
.btn--lg{padding:1rem 1.6rem;font-size:1.05rem}

/* ---------- shared section bits ---------- */
.eyebrow{
  display:inline-flex;align-items:center;gap:.5em;font-weight:800;font-size:.72rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--c-navy-700);margin-bottom:.9rem;
  background:rgba(27,81,131,.08);border:1px solid rgba(27,81,131,.16);border-radius:999px;padding:.38rem .8rem;
}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.75}
.eyebrow--gold{color:var(--c-gold-dark);background:rgba(232,161,60,.12);border-color:rgba(232,161,60,.3)}
.section-title{font-size:clamp(1.8rem,3.4vw,2.7rem);font-weight:600;letter-spacing:-.015em;margin-bottom:.9rem}
.section-head{max-width:720px;margin:0 auto 2.6rem;text-align:center}
.section-lede{color:var(--c-muted);font-size:1.1rem;margin-top:.9rem}
.link-arrow{display:inline-flex;align-items:center;gap:.4em;font-weight:700;color:var(--c-navy);margin-top:.4rem}
.link-arrow .ic{transition:transform .15s ease}
.link-arrow:hover .ic{transform:translateX(3px)}
section{padding:clamp(3rem,6vw,5.5rem) 0}

.stars{display:inline-flex;gap:2px;color:var(--c-star)}
.stars svg{width:20px;height:20px;fill:currentColor}
.stars--sm svg{width:16px;height:16px}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(251,247,240,.86);
  -webkit-backdrop-filter:blur(14px) saturate(160%);backdrop-filter:blur(14px) saturate(160%);
  border-bottom:1px solid var(--c-border);box-shadow:0 4px 18px rgba(14,59,32,.05);
  transition:box-shadow .25s var(--ease),background .25s var(--ease)}
.site-header.is-scrolled{background:rgba(251,247,240,.96);box-shadow:0 10px 34px rgba(14,59,32,.12)}
.site-header__inner{display:flex;align-items:center;gap:1.2rem;min-height:66px}
.brand{display:inline-flex;align-items:center;gap:.6rem;min-width:0}
.brand__mark{display:block;width:30px;height:30px;flex:none}
.brand__mark svg{width:100%;height:100%;display:block}
.brand__name{font-family:var(--font-display);font-weight:700;font-size:1.17rem;color:var(--c-navy-deep);
  line-height:1;letter-spacing:.005em;white-space:nowrap}
.brand__name em{font-style:normal;color:#8F6714}
.mainnav{display:flex;gap:1.5rem;margin-left:auto}
.mainnav a{font-weight:600;color:var(--c-text);font-size:.98rem;padding:.3rem 0;position:relative}
/* institutional nav: small tracked caps on the top level only; dropdown items stay sentence case */
.mainnav a.navitem__top{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600}
.mainnav a::after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--c-gold);transition:width .18s ease}
.mainnav a:hover::after{width:100%}
.site-header__cta{flex:none;display:flex;align-items:center;gap:.6rem}
.langsw{font-weight:700;font-size:.74rem;letter-spacing:.08em;color:var(--c-navy-700);
  border:1px solid var(--c-border);border-radius:7px;padding:.4rem .55rem;line-height:1;transition:.15s}
.langsw:hover{border-color:var(--c-gold);color:var(--c-gold-dark)}
.navtoggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px;margin-left:auto}
.navtoggle span{width:24px;height:2px;background:var(--c-navy-deep);border-radius:2px;transition:transform .22s var(--ease),opacity .18s ease}
.navtoggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.navtoggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.navtoggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobilenav{display:none;flex-direction:column;gap:.2rem;padding:0 24px 1rem}
.mobilenav a{padding:.7rem .2rem;border-bottom:1px solid var(--c-border);font-weight:600}
.mobilenav .btn{margin-top:.7rem}
.mobilenav.is-open{display:flex;max-height:calc(100dvh - 60px);overflow-y:auto;overscroll-behavior:contain}

/* services dropdown + multi-page nav */
.mainnav{gap:1.25rem}
.navitem{position:relative;display:flex;align-items:center}
.navitem--has-menu > a{display:inline-flex;align-items:center;gap:.25em}
/* Hover bridge: a full-menu-width strip across the gap between the trigger and the
   open menu, so a diagonal move toward the menu's outer edges keeps :hover alive and
   it does not snap shut. It hangs off the menu, so it is always exactly the menu's
   width (EN or the wider PT) and is only active while the menu is open, which means
   it never over-triggers the menu from stray hovering elsewhere in the header. */
.navmenu::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.mainnav a.is-active::after{width:100%}
.navchev{width:15px;height:15px;fill:currentColor;color:var(--c-navy-700);transition:transform .18s ease}
.navitem--has-menu:hover .navchev,.navitem--has-menu:focus-within .navchev{transform:rotate(180deg)}
.navmenu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(10px);min-width:330px;
  background:var(--c-paper);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);
  padding:.5rem;display:flex;flex-direction:column;gap:.05rem;
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .16s ease,transform .16s ease;z-index:60}
.navitem--has-menu:hover .navmenu,.navitem--has-menu:focus-within .navmenu{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(8px)}
.navmenu a{display:block;padding:.6rem .8rem;border-radius:var(--r-sm);font-weight:600;font-size:.94rem;color:var(--c-navy-deep);white-space:nowrap}
.navmenu a::after{display:none}
.navmenu a:hover{background:var(--c-cream-2)}
.navmenu a.navmenu__all{margin-top:.3rem;border-top:1px solid var(--c-border);color:var(--c-gold-dark);display:flex;align-items:center;gap:.3em}
.navmenu__all svg,.navmenu__all .ic{width:16px;height:16px}
.mobilenav__label{padding:.8rem .2rem .3rem;font-weight:800;font-size:.74rem;text-transform:uppercase;letter-spacing:.09em;color:var(--c-navy-700)}
.mobilenav a.mobilenav__sub{padding:.55rem .2rem .55rem 1rem;font-weight:500;color:var(--c-muted);font-size:.95rem}
.mobilenav a.mobilenav__sub:hover{color:var(--c-navy)}

/* related services block */
.related{padding:3.2rem 0;background:var(--c-cream-2)}
.related__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;margin-top:1.2rem}
.related__link{display:flex;align-items:center;justify-content:space-between;gap:.6em;background:var(--c-paper);
  border:1px solid var(--c-border);border-radius:var(--r-md);padding:.85rem 1.1rem;font-weight:600;color:var(--c-navy-deep);
  transition:border-color .18s var(--ease),box-shadow .18s var(--ease),transform .18s var(--ease)}
.related__link:hover{border-color:var(--c-gold);box-shadow:var(--shadow-sm);transform:translateY(-2px)}
.related__link .ic{color:var(--c-gold-dark);transition:transform .18s var(--ease)}
.related__link:hover .ic{transform:translateX(3px)}
.related__more{margin-top:1.3rem;color:var(--c-muted);font-size:.95rem}
.related__more a{font-weight:600}

/* HTML sitemap */
.sitemap__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem 2.5rem;margin-bottom:2rem}
.sitemap__col h2{font-size:1.15rem;margin-bottom:.7rem;color:var(--c-navy-deep)}
.sitemap__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}
.sitemap__list a{font-weight:600;color:var(--c-navy)}
.sitemap__list a:hover{color:var(--c-gold-dark)}
.sitemap__xml{padding-top:1.3rem;border-top:1px solid var(--c-border);color:var(--c-muted);font-size:.97rem}
.sitemap__xml a{font-weight:700}

/* comparison table (sworn vs certified) */
.cmp-wrap{overflow-x:auto;margin:1.5rem 0}
.cmp{width:100%;border-collapse:collapse;background:var(--c-paper);border:1px solid var(--c-border);border-radius:var(--r-md);overflow:hidden}
.cmp th,.cmp td{padding:.8rem 1rem;text-align:left;border-bottom:1px solid var(--c-border);vertical-align:top;font-size:.97rem}
.cmp thead th{background:var(--c-cream-2);font-family:var(--font-display);font-weight:600;color:var(--c-navy-deep)}
.cmp tbody td:first-child{font-weight:700;color:var(--c-navy-deep)}
.cmp tr:last-child td{border-bottom:0}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;padding:clamp(6rem,7.5vw,8.5rem) 0 clamp(3rem,5vw,4.5rem)}
.hero__bg{position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(1200px 520px at 78% -12%, rgba(232,161,60,.22), transparent 60%),
    radial-gradient(700px 420px at 108% 55%, rgba(27,81,131,.08), transparent 60%),
    radial-gradient(900px 620px at -6% 112%, rgba(27,138,90,.14), transparent 55%),
    linear-gradient(180deg, #fff 0%, var(--c-cream) 100%);
}
.hero__bg::after{content:"";position:absolute;inset:0;opacity:.45;
  background-image:var(--grain),radial-gradient(rgba(14,58,92,.05) 1px, transparent 1px);
  background-size:120px 120px,22px 22px;mix-blend-mode:multiply}
.hero__inner{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,4rem);align-items:start}
.hero__copy{max-width:560px}
.hero__doc{display:inline-flex;margin-bottom:.85rem;filter:drop-shadow(0 3px 6px rgba(14,59,32,.15))}
.hero__doc svg{width:56px;height:70px}
.hero__title{font-size:clamp(2.3rem,4.8vw,3.8rem);font-weight:600;letter-spacing:-.02em}
/* USCIS: bold, in the brand accent, no underline. Clean emphasis on the key word. */
.hero__title .hl{color:var(--c-gold-dark);font-weight:700;white-space:nowrap}
.hero__title .hl::after{content:none}
.hero__sub{font-size:1.18rem;color:var(--c-prose);margin-top:1.1rem;max-width:540px}
.hero__pills{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem;padding:0;margin:1.4rem 0 0}
.hero__pills li{display:inline-flex;align-items:center;gap:.5em;background:var(--c-paper);border:1px solid var(--c-border);
  border-radius:999px;padding:.5rem .9rem;font-weight:600;font-size:.92rem;box-shadow:var(--shadow-sm);
  transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s var(--ease)}
.hero__pills li:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:rgba(232,161,60,.5)}
.hero__pills .ic{color:var(--c-green)}
.hero__proof{display:flex;align-items:center;gap:.7rem;margin-top:1.5rem;flex-wrap:wrap}
.hero__proof-text{font-size:.92rem;color:var(--c-muted)}

/* ---------- calculator ---------- */
.calc{background:var(--c-paper);border:1px solid rgba(231,221,203,.9);border-radius:var(--r-xl);box-shadow:var(--shadow-xl);overflow:hidden;align-self:start}
.calc::before{content:"";display:block;height:4px;background:linear-gradient(90deg,var(--c-gold) 0%,var(--c-gold-soft) 45%,var(--c-green) 100%)}
.calc__head{padding:1.5rem 1.6rem 1.1rem;background:linear-gradient(180deg,#FFFDF8,#fff);border-bottom:1px solid var(--c-border)}
.calc__title{font-family:var(--font-display);font-size:1.45rem;font-weight:600;line-height:1.2;margin:0;color:var(--c-navy-deep)}
.calc__sub{font-size:.92rem;color:var(--c-muted);margin:.35rem 0 0}
.calc__body{padding:1.4rem 1.6rem .4rem}
.field{margin-bottom:1.2rem}
.field__label{display:block;font-weight:700;font-size:.95rem;margin-bottom:.5rem;color:var(--c-navy-deep)}
.field__opt{font-weight:500;color:var(--c-muted);font-size:.82rem;text-transform:none}
.field__help{font-size:.82rem;color:var(--c-muted);margin:.5rem 0 0}
/* Large-order notice. It only appears at 100+ pages, where the visitor needs to
   see that the figure is a rack rate we still confirm, so it reads louder than
   ordinary help text. */
.field__help--bulk{color:var(--c-navy-deep);font-weight:600;background:var(--c-cream);
  border-left:3px solid var(--c-gold);border-radius:0 var(--r-sm) var(--r-sm) 0;padding:.55rem .7rem}

.select-wrap{position:relative}
.select{width:100%;appearance:none;font-family:inherit;font-size:1rem;font-weight:600;color:var(--c-text);
  background:var(--c-cream);border:1.5px solid var(--c-border);border-radius:var(--r-md);
  padding:.85rem 2.6rem .85rem 1rem;cursor:pointer}
.select:focus{outline:none;border-color:var(--c-gold);box-shadow:var(--ring)}
.select-wrap__chev{position:absolute;right:1rem;top:50%;transform:translateY(-50%);color:var(--c-navy);pointer-events:none;width:20px;height:20px}

.stepper{display:flex;align-items:center;gap:.5rem;max-width:200px}
.stepper__btn{width:46px;height:46px;border-radius:var(--r-md);border:1.5px solid var(--c-border);background:var(--c-cream);
  color:var(--c-navy);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.2rem;transition:.15s}
.stepper__btn:hover{border-color:var(--c-navy);background:var(--c-paper)}
.stepper__btn .ic{width:20px;height:20px}
.stepper__input{width:72px;height:46px;text-align:center;font-family:inherit;font-size:1.15rem;font-weight:700;
  color:var(--c-navy-deep);border:1.5px solid var(--c-border);border-radius:var(--r-md);background:var(--c-paper);-moz-appearance:textfield}
.stepper__input::-webkit-outer-spin-button,.stepper__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.stepper__input:focus{outline:none;border-color:var(--c-gold);box-shadow:var(--ring)}

.dropzone{display:flex;align-items:center;gap:.7rem;border:1.5px dashed var(--c-border);border-radius:var(--r-md);
  padding:.9rem 1rem;background:var(--c-cream);cursor:pointer;transition:.15s;color:var(--c-muted);font-size:.92rem}
.dropzone:hover,.dropzone.is-drag{border-color:var(--c-gold);background:var(--c-paper-warm);color:var(--c-text)}
.dropzone.has-file{border-style:solid;border-color:var(--c-green);background:var(--c-green-soft);color:var(--c-green)}
.dropzone__ic{width:24px;height:24px;color:var(--c-navy)}
.dropzone.has-file .dropzone__ic{color:var(--c-green)}
.dropzone__browse{color:var(--c-navy);font-weight:700;text-decoration:underline}
.dropzone__input{display:none}

.optcards{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.optcard{cursor:pointer}
.optcard input{position:absolute;opacity:0;pointer-events:none}
.optcard__box{display:flex;align-items:center;justify-content:space-between;gap:.5rem;border:1.5px solid var(--c-border);
  border-radius:var(--r-md);padding:.75rem .9rem;background:var(--c-cream);transition:.15s;height:100%}
.optcard__main{display:flex;flex-direction:column}
.optcard__name{font-weight:700;font-size:.95rem;color:var(--c-navy-deep)}
.optcard__meta{font-size:.78rem;color:var(--c-muted)}
.optcard__price{font-weight:700;color:var(--c-green);font-size:.95rem;white-space:nowrap}
.optcard__per{font-weight:500;color:var(--c-muted);font-size:.72rem}
.optcard input:checked + .optcard__box{border-color:var(--c-gold);background:var(--c-paper-warm);box-shadow:0 0 0 1px var(--c-gold)}
.optcard input:focus-visible + .optcard__box{box-shadow:var(--ring)}

.addons{display:grid;gap:.55rem}
.addon{cursor:pointer}
.addon input{position:absolute;opacity:0;pointer-events:none}
.addon__box{display:flex;align-items:center;gap:.7rem;border:1.5px solid var(--c-border);border-radius:var(--r-md);
  padding:.7rem .9rem;background:var(--c-cream);transition:.15s}
.addon__tick{width:22px;height:22px;border-radius:6px;border:1.5px solid var(--c-border);background:var(--c-paper);flex:none;
  display:flex;align-items:center;justify-content:center;color:transparent;transition:.15s}
.addon__tick .ic{width:16px;height:16px}
.addon__label{font-weight:600;font-size:.95rem}
.addon__price{margin-left:auto;font-weight:700;color:var(--c-navy);white-space:nowrap}
.addon__per{font-weight:500;color:var(--c-muted);font-size:.72rem}
.addon input:checked + .addon__box{border-color:var(--c-green);background:var(--c-green-soft)}
.addon input:checked + .addon__box .addon__tick{background:var(--c-green);border-color:var(--c-green);color:#fff}
.addon input:focus-visible + .addon__box{box-shadow:var(--ring)}

.calc__summary{padding:1.2rem 1.6rem 1.6rem;background:var(--c-cream);border-top:1px solid var(--c-border)}
.summary__lines{list-style:none;margin:0 0 .6rem;padding:0;font-size:.92rem}
.summary__lines li{display:flex;justify-content:space-between;padding:.22rem 0;color:var(--c-muted)}
.summary__lines li span:last-child{font-weight:600;color:var(--c-text)}
.summary__total{display:flex;align-items:baseline;justify-content:space-between;border-top:1.5px solid var(--c-border);
  padding-top:.7rem;margin-bottom:.5rem}
.summary__total>span:first-child{font-weight:700;font-size:1rem;color:var(--c-navy-deep)}
.summary__amount{font-family:var(--font-display);font-weight:700;font-size:2.1rem;color:var(--c-green);line-height:1;font-variant-numeric:tabular-nums}
.summary__anchor{text-align:right;font-size:.8rem;color:var(--c-muted);margin:.15rem 0 0;font-style:italic}
/* prices and counts never jiggle: fixed-width digits wherever a number updates */
.summary__amount,.summary__lines,.stepper__input,.optcard__price,.calc__anchor{font-variant-numeric:tabular-nums}
/* ghost seal: the brand diamond at architectural scale behind the desktop hero copy,
   faint enough to read as watermark texture (typography-as-image, no stock photos) */
@media(min-width:981px){
  .hero--home .hero__bg::before{content:"";position:absolute;left:-140px;bottom:-170px;width:600px;height:600px;
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath d='M24 2L46 24 24 46 2 24z' fill='none' stroke='%2314532D' stroke-width='.9'/%3E%3Cpath d='M24 5.5L42.5 24 24 42.5 5.5 24z' fill='none' stroke='%2314532D' stroke-width='.5'/%3E%3Cpath d='M24 13l3 6.2 6.8.9-5 4.8 1.3 6.7-6.1-3.4-6.1 3.4 1.3-6.7-5-4.8 6.8-.9z' fill='%2314532D'/%3E%3C/svg%3E") no-repeat center/contain;
    opacity:.055;transform:rotate(-6deg)}
}
.summary__note{display:flex;align-items:flex-start;gap:.45em;font-size:.82rem;color:var(--c-muted);margin:.4rem 0 1rem}
.summary__note .ic{color:var(--c-green);margin-top:.15em}
.calc__summary .btn{margin-bottom:.6rem}
.summary__micro{text-align:center;font-size:.78rem;color:var(--c-muted);margin:.2rem 0 0}

/* ---------- trust strip ---------- */
.truststrip{background:linear-gradient(90deg,var(--c-navy-ink) 0%,var(--c-navy-deep) 30%,var(--c-navy) 55%,var(--c-navy-deep) 100%);padding:1.1rem 0;position:relative}
.truststrip::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(232,161,60,.55) 30%,rgba(232,161,60,.55) 70%,transparent)}
.truststrip__inner{display:flex;flex-wrap:wrap;gap:1.2rem 2rem;align-items:center;justify-content:center}
.trust__item{display:inline-flex;align-items:center;gap:.5em;color:var(--c-sky-tint);font-size:.9rem;font-weight:600;letter-spacing:.01em}
.trust__item .ic{color:var(--c-gold);width:18px;height:18px}
.trust__item--star .stars{color:var(--c-star)}

/* ---------- band (de brasileiro) ---------- */
.band{background:var(--c-white)}
.band__inner{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.band__media{position:relative}
.brandcard{display:flex;align-items:center;justify-content:center;width:100%;min-height:clamp(340px,42vw,500px);border-radius:var(--r-xl);box-shadow:var(--shadow-xl);padding:2rem;text-align:center;position:relative;overflow:hidden;
  background:
    radial-gradient(120% 90% at 85% -10%, rgba(232,161,60,.30), transparent 55%),
    radial-gradient(100% 80% at 0% 112%, rgba(27,138,90,.28), transparent 55%),
    linear-gradient(160deg,#11466E 0%,var(--c-navy) 45%,var(--c-navy-deep) 100%)}
.brandcard::before{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:.16;mix-blend-mode:overlay;pointer-events:none}
.brandcard::after{content:"";position:absolute;inset:10px;border:1px solid rgba(255,255,255,.16);border-radius:calc(var(--r-xl) - 8px);pointer-events:none}
.brandcard__inner{display:flex;flex-direction:column;align-items:center;gap:1rem;max-width:400px;position:relative;z-index:1}
.brandcard__inner svg{width:70px;height:70px;fill:var(--c-gold);filter:drop-shadow(0 10px 20px rgba(232,161,60,.45))}
.brandcard__name{font-family:var(--font-display);font-size:clamp(2.2rem,4.2vw,3.1rem);font-weight:700;color:#fff;line-height:1.1;text-shadow:0 2px 24px rgba(0,0,0,.25)}
.brandcard__tag{font-size:.95rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--c-gold)}
.band__media img{border-radius:var(--r-xl);box-shadow:var(--shadow-lg);width:100%;height:520px;object-fit:cover;object-position:center 30%}
.band__media-badge{position:absolute;left:1rem;bottom:1rem;background:var(--c-paper);color:var(--c-navy-deep);font-weight:700;font-size:.85rem;
  padding:.55rem .9rem;border-radius:999px;box-shadow:var(--shadow-md);display:inline-flex;align-items:center;gap:.45em}
.band__media-badge .ic{color:var(--c-green)}
.band__media-note{position:absolute;top:.8rem;left:.8rem;background:rgba(10,42,67,.85);color:#fff;font-size:.72rem;padding:.3rem .6rem;border-radius:6px;font-weight:600}
.band__copy p{color:var(--c-prose);font-size:1.08rem}
.band__stats{display:flex;gap:2rem;margin-top:1.6rem;flex-wrap:wrap}
.stat{display:flex;flex-direction:column}
.stat__num{font-family:var(--font-display);font-weight:700;font-size:1.9rem;color:var(--c-navy);line-height:1}
.stat__lbl{font-size:.85rem;color:var(--c-muted);margin-top:.25rem;max-width:140px}

/* ---------- how it works ---------- */
.how{background:var(--c-cream)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.step{background:var(--c-paper);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:2rem 1.6rem 1.7rem;position:relative;box-shadow:var(--shadow-sm);
  transition:transform .22s var(--ease),box-shadow .22s var(--ease),border-color .22s var(--ease)}
.step:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:rgba(232,161,60,.45)}
.step__num{position:absolute;top:-18px;left:1.6rem;width:38px;height:38px;border-radius:50%;
  background:linear-gradient(180deg,var(--c-gold-lift),var(--c-gold-shade));
  color:var(--c-navy-deep);font-weight:800;display:flex;align-items:center;justify-content:center;font-size:1.05rem;
  box-shadow:0 8px 16px -6px rgba(204,134,31,.55), inset 0 1px 0 rgba(255,255,255,.4)}
.step__ic{width:54px;height:54px;border-radius:var(--r-md);background:linear-gradient(160deg,var(--c-navy-700),var(--c-navy-deep));color:#fff;display:flex;align-items:center;justify-content:center;margin:.6rem 0 1rem;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14)}
.step__ic svg{width:28px;height:28px;fill:currentColor}
.step__title{font-size:1.25rem;font-weight:600;margin-bottom:.5rem}
.step p{color:var(--c-muted);font-size:.98rem;margin:0}

/* ---------- certificate ---------- */
.cert{background:var(--c-white)}
.cert__inner{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.cert__copy p{color:var(--c-prose);font-size:1.08rem}
.cert__facts-title{font-family:var(--font-display);font-size:1.22rem;color:var(--c-navy-deep);margin:1.8rem 0 .2rem}
.cert__facts{display:grid;gap:.8rem;margin:1.4rem 0 1.4rem}
.fact{display:flex;gap:.7rem;align-items:flex-start;font-size:.98rem}
.fact__tick{width:26px;height:26px;border-radius:50%;background:var(--c-green-soft);color:var(--c-green);flex:none;display:flex;align-items:center;justify-content:center}
.fact__tick .ic{width:16px;height:16px}
.fact div{color:var(--c-muted)}
.fact strong{color:var(--c-text)}

.cert__doc{display:flex;justify-content:center}
.doc{position:relative;background:var(--c-paper);width:100%;max-width:420px;border-radius:var(--r-md);
  border:1px solid var(--c-border);box-shadow:var(--shadow-lg);padding:2.2rem 2rem 1.8rem;
  background-image:linear-gradient(180deg,#fffdf8,#fff);transform:rotate(-1.2deg)}
.doc::before{content:"";position:absolute;inset:8px;border:1.5px solid var(--c-cream-2);border-radius:8px;pointer-events:none}
.doc__ribbon{position:absolute;top:-16px;right:24px;width:46px;height:46px;border-radius:50%;background:var(--c-gold);
  color:var(--c-navy-deep);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md)}
.doc__ribbon .ic{width:24px;height:24px}
.doc__head{text-align:center;border-bottom:1px solid var(--c-border);padding-bottom:.9rem;margin-bottom:1rem}
.doc__brand{font-family:var(--font-display);font-weight:700;color:var(--c-navy);letter-spacing:.02em;margin:0;font-size:1rem}
.doc__title{font-family:var(--font-display);font-size:1.3rem;color:var(--c-navy-deep);margin:.2rem 0 0;font-weight:600}
.doc__lines{display:grid;gap:.5rem;margin:.9rem 0}
.doc__lines span{height:9px;border-radius:4px;background:var(--c-cream-2)}
.doc__lines span.short{width:55%}
.doc__quote{font-style:italic;color:#5b6b78;font-size:.92rem;border-left:3px solid var(--c-gold);padding-left:.9rem;margin:1rem 0}
.doc__sign{display:flex;align-items:flex-end;justify-content:space-between;margin-top:1.4rem}
.doc__sigline{display:flex;flex-direction:column}
.doc__signature{font-family:'Playfair Display',serif;font-style:italic;font-size:1.5rem;color:var(--c-navy-deep);border-bottom:1.5px solid var(--c-text);padding:0 1rem .1rem 0}
.doc__siglabel{font-size:.72rem;color:var(--c-muted);margin-top:.3rem;text-transform:uppercase;letter-spacing:.08em}
.doc__seal{width:74px;height:74px;border-radius:50%;border:2px dashed var(--c-green);color:var(--c-green);
  display:flex;align-items:center;justify-content:center;text-align:center;font-weight:800;font-size:.7rem;line-height:1.1;
  transform:rotate(-8deg);background:var(--c-green-soft)}
.doc__ref{text-align:center;font-size:.74rem;color:var(--c-muted);margin:1.2rem 0 0;letter-spacing:.04em}

/* ---------- documents grid ---------- */
.docs{background:var(--c-cream)}
.docgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.doccard{background:var(--c-paper);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:1.5rem;
  display:flex;flex-direction:column;gap:.3rem;box-shadow:var(--shadow-sm);position:relative;
  transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s var(--ease)}
.doccard::after{content:"";position:absolute;top:1.4rem;right:1.3rem;width:20px;height:20px;opacity:0;transform:translateX(-6px);
  background-color:var(--c-gold-dark);transition:opacity .2s var(--ease),transform .2s var(--ease);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h12l-5-5 1.4-1.4L21 12l-7.6 6.4L12 17l5-5H5z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h12l-5-5 1.4-1.4L21 12l-7.6 6.4L12 17l5-5H5z'/%3E%3C/svg%3E") center/contain no-repeat}
.doccard:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--c-gold)}
.doccard:hover::after{opacity:1;transform:translateX(0)}
.doccard__ic{display:flex;align-items:flex-end;margin-bottom:.65rem;
  filter:drop-shadow(0 2px 4px rgba(14,59,32,.12))}
.doccard__ic svg{width:52px;height:65px}
.doccard:hover .doccard__ic{filter:drop-shadow(0 4px 8px rgba(14,59,32,.18))}
/* uniform 3x2 grid: identical cards, identical icons; consistency reads as competence */
@media(min-width:761px){
  .docgrid .doccard{align-items:center;text-align:center;padding:1.6rem 1.2rem 1.4rem}
  .docgrid .doccard__ic svg{width:56px;height:70px}
}
.doccard__name{font-weight:700;font-size:1.1rem;color:var(--c-navy-deep)}
.doccard__pt{color:var(--c-gold-dark);font-size:.85rem;font-style:italic}
.doccard__desc{color:var(--c-muted);font-size:.86rem;line-height:1.5;margin:.15rem 0 .3rem}
.docs__more{text-align:center;margin:2rem 0 0;font-size:1.05rem;color:var(--c-muted)}
.docs__more a{font-weight:700;color:var(--c-navy);text-decoration:underline;text-decoration-color:var(--c-gold)}

/* ---------- tools hub cards ---------- */
html{scrollbar-gutter:stable both-edges}
.docs--tools{padding-top:clamp(.75rem,2vw,1.25rem)}
.pagehero--center .pagehero__inner{max-width:900px;margin-inline:auto;text-align:center}
.pagehero--center .pagehero__sub{margin-inline:auto}
.toolgrid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:stretch;max-width:900px;margin-inline:auto}
.toolcard{display:flex;flex-direction:column;background:var(--c-white);border:1px solid var(--c-border);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-sm);text-decoration:none;color:inherit;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.toolcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--c-gold)}
.toolcard__preview{padding:1.6rem;border-bottom:1px solid var(--c-border);display:flex;flex-direction:column;justify-content:center;min-height:228px}
.toolcard__preview--green{background:var(--c-green-soft)}
.toolcard__preview--gold{background:var(--c-cream-2)}
.tprev{background:var(--c-paper);border-radius:var(--r-md);box-shadow:var(--shadow-sm);padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.55rem}
.tprev__head{display:flex;align-items:center;gap:.5rem;font-weight:700;color:var(--c-navy-deep);font-size:.92rem;padding-bottom:.55rem;border-bottom:1px solid var(--c-border-cool);margin-bottom:.15rem}
.tprev__head svg{width:16px;height:16px;fill:var(--c-gold-dark);flex:none}
.tprev__dest{color:var(--c-green)}
.tprev__row{display:flex;align-items:center;gap:.55rem;font-size:.92rem;color:var(--c-text)}
.tprev__ok{width:20px;height:20px;flex:none;border-radius:50%;background:var(--c-green-soft);display:inline-flex;align-items:center;justify-content:center}
.tprev__ok svg{width:12px;height:12px;fill:var(--c-green)}
.tprev--price{align-items:center;text-align:center;gap:.35rem;padding:1.4rem 1.1rem}
.tprev__label{font-size:.85rem;color:var(--c-muted);font-weight:600}
.tprev__price{font-family:var(--font-display);font-size:2.7rem;font-weight:700;color:var(--c-navy-deep);line-height:1}
.tprev__note{font-size:.85rem;color:var(--c-green);font-weight:700}
.toolcard__body{padding:1.5rem 1.6rem 1.7rem;display:flex;flex-direction:column;gap:.55rem;flex:1;text-align:center;align-items:center}
.toolcard__title{font-family:var(--font-display);font-size:1.5rem;color:var(--c-navy-deep);margin:.1rem 0 0}
.toolcard__desc{color:var(--c-muted);font-size:.98rem;line-height:1.55;flex:1;margin:0}
.toolcard__cta{margin-top:.7rem;align-self:center;display:inline-flex;align-items:center;gap:.4rem}
.toolcard__cta svg{width:16px;height:16px;fill:currentColor;transition:transform .18s var(--ease)}
.toolcard:hover .toolcard__cta svg{transform:translateX(3px)}

/* ---------- ivy ---------- */
.ivy{background:var(--c-white)}
.ivy__inner{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.ivy__media{position:relative}
.ivy__media img{border-radius:var(--r-xl);box-shadow:var(--shadow-lg);width:100%;height:480px;object-fit:cover;object-position:center 20%}
.ivy__placeholder-note{position:absolute;top:.8rem;left:.8rem;background:rgba(10,42,67,.85);color:#fff;font-size:.72rem;
  padding:.3rem .6rem;border-radius:6px;font-weight:600}
.ivy__copy p{color:var(--c-prose);font-size:1.08rem}
.ivy__chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.3rem 0 1.2rem}
/* The .storyband rules were removed with the unused Rio banner section. Nothing
   emitted them, and the background-url kept a 137KB jpg deploying. */
@media (max-width:760px){
  .hero{padding-top:2.4rem}
  .btn--lg{padding:.9rem 1.05rem;font-size:1rem}
  .btn--block{white-space:normal;line-height:1.25}
  section{padding:2.2rem 0}
  .truststrip__inner{flex-direction:column;align-items:flex-start;width:fit-content;max-width:100%;margin-inline:auto;gap:.75rem}
  .how__more{text-align:center}
  .link-arrow{display:inline}
  .link-arrow .ic{vertical-align:-.12em}
}
.chip{display:inline-flex;align-items:center;gap:.4em;background:var(--c-cream);border:1px solid var(--c-border);
  border-radius:999px;padding:.45rem .85rem;font-weight:600;font-size:.88rem}
.chip .ic{color:var(--c-green)}

/* ---------- pricing ---------- */
.pricing{background:var(--c-cream)}
.pricetable{max-width:680px;margin:0 auto;background:var(--c-paper);border:1px solid var(--c-border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-md)}
.pricerow{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.4rem;border-bottom:1px solid var(--c-border);transition:background .15s var(--ease)}
.pricerow span:first-child{flex:1}
.pricerow:not(.pricerow--head):hover{background:#FFFDF8}
.pricerow:last-child{border-bottom:0}
.pricerow--head{background:linear-gradient(90deg,var(--c-navy-ink),var(--c-navy-deep) 60%,var(--c-navy));color:var(--c-sky-tint);font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}
.pricerow--head span:last-child{text-align:right}
.pricerow__val{font-weight:700;color:var(--c-navy-deep);flex-shrink:0;text-align:right;max-width:44%}
.pricerow__val em{font-style:normal;font-weight:500;color:var(--c-muted);font-size:.85rem}
.pricerow__val--free{color:var(--c-green)}
.pricing__cta{display:flex;flex-direction:column;align-items:center;gap:.8rem;margin-top:2rem;text-align:center}
.pricing__hint{font-size:.88rem;color:var(--c-muted);max-width:460px}

/* ---------- reviews ---------- */

/* ---------- guarantee ---------- */
.guarantee{background:linear-gradient(135deg,var(--c-navy) 0%,var(--c-navy-deep) 100%);position:relative;overflow:hidden}
.guarantee::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(700px 320px at 12% 0%, rgba(232,161,60,.16), transparent 60%)}
.guarantee::after{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:.12;mix-blend-mode:overlay;pointer-events:none}
.guarantee .container{position:relative;z-index:1}
.guarantee__inner{display:flex;align-items:center;gap:1.8rem;flex-wrap:wrap;justify-content:center;text-align:left}
.guarantee__badge{width:84px;height:84px;flex:none;color:var(--c-gold)}
.guarantee__badge svg{width:100%;height:100%;fill:currentColor}
.guarantee__copy{flex:1;min-width:280px;color:#dfeaf3}
.guarantee__copy h2{color:#fff;font-size:1.8rem;font-weight:600;margin-bottom:.5rem}
.guarantee__copy p{margin:0;color:#bcd0e1}

/* ---------- faq ---------- */
.faq{background:var(--c-cream)}
.faqlist{max-width:780px;margin:0 auto;display:grid;gap:.8rem}
.faqitem{background:var(--c-paper);border:1px solid var(--c-border);border-radius:var(--r-md);padding:0 1.3rem;box-shadow:var(--shadow-sm);transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.faqitem[open]{border-color:rgba(232,161,60,.5);box-shadow:var(--shadow-md)}
.faqitem summary{list-style:none;cursor:pointer;font-weight:700;font-size:1.08rem;color:var(--c-navy-deep);
  padding:1.1rem 0;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.faqitem summary::-webkit-details-marker{display:none}
.faqitem__chev{width:22px;height:22px;color:var(--c-navy);transition:transform .2s ease;flex:none}
.faqitem[open] .faqitem__chev{transform:rotate(180deg)}
.faqitem p{color:var(--c-muted);margin:0 0 1.1rem;font-size:1rem}
.faq__more{text-align:center;margin:2rem 0 0}
.faq__more a{font-weight:700;display:inline-flex;align-items:center;gap:.4em}

/* ---------- final cta ---------- */
.finalcta{background:linear-gradient(135deg,#11466E 0%,var(--c-navy) 40%, var(--c-navy-deep) 100%);position:relative;overflow:hidden}
.finalcta::after{content:"";position:absolute;inset:0;
  background:
    radial-gradient(700px 300px at 80% 0%, rgba(232,161,60,.26), transparent 60%),
    radial-gradient(600px 300px at 8% 100%, rgba(27,138,90,.2), transparent 60%),
    var(--grain);
  background-size:auto,auto,120px 120px;opacity:.6;mix-blend-mode:normal;pointer-events:none}
.finalcta__inner{position:relative;text-align:center;max-width:680px;margin:0 auto}
.finalcta h2{color:#fff;font-size:clamp(1.8rem,4vw,2.6rem);font-weight:600}
.finalcta p{color:var(--c-sky-tint);font-size:1.12rem;margin:1rem auto 1.8rem;max-width:520px}
.finalcta__btns{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap}

/* ---------- footer ---------- */
.site-footer{background:var(--c-navy-ink);color:var(--c-foot-text);padding:3.2rem 0 4.6rem;font-size:.94rem;position:relative}
.site-footer::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--c-gold) 0%,var(--c-gold-soft) 30%,var(--c-green) 70%,var(--c-navy-700) 100%)}
.foot a{transition:color .15s var(--ease),transform .15s var(--ease)}
.foot a:not(.brand--foot):not(.btn):hover{transform:translateX(3px)}
.site-footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:2rem}
.foot h3{font-family:var(--font-body);color:#fff;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;margin:0 0 1rem}
.foot a{display:block;color:var(--c-foot-text);padding:.28rem 0;transition:color .15s}
.foot a:hover{color:#fff}
.foot__plain{display:block;padding:.28rem 0;color:var(--c-foot-dim)}
.foot a.brand--foot{display:inline-flex;align-items:center;gap:.7rem;margin-bottom:.9rem;padding:0}
.brand--foot .brand__name{color:#fff;font-size:1.1rem}
.brand--foot .brand__name em{color:var(--c-gold-mark)}
.foot--brand p{color:#8fa9bf;max-width:300px;margin:.4rem 0 1rem}
.trustpilot-link{display:inline-flex;align-items:center;gap:.5em;color:#fff;font-weight:600}
.trustpilot-link .stars{color:var(--c-trustpilot)}
.site-footer__bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(255,255,255,.12);
  margin-top:2.4rem;padding-top:1.4rem;font-size:.85rem;color:var(--c-foot-dim);flex-wrap:wrap;gap:.6rem}
.site-footer__legal a{color:var(--c-foot-dim);margin-left:1rem}
.site-footer__legal a:hover{color:#fff}

/* ---------- modal ---------- */
.modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1.2rem}
.modal[hidden]{display:none}
.modal__backdrop{position:absolute;inset:0;background:rgba(10,42,67,.55);backdrop-filter:blur(3px)}
.modal__card{position:relative;background:var(--c-paper);border-radius:var(--r-xl);max-width:420px;width:100%;
  padding:2rem 1.8rem 1.8rem;box-shadow:var(--shadow-lg);text-align:center;animation:pop .2s ease}
@keyframes pop{from{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}
.modal__close{position:absolute;top:.9rem;right:.9rem;background:none;border:0;color:var(--c-muted);cursor:pointer;padding:6px}
.modal__close .ic{width:22px;height:22px}
.modal__lock{width:54px;height:54px;border-radius:50%;background:var(--c-green-soft);color:var(--c-green);
  display:flex;align-items:center;justify-content:center;margin:0 auto .9rem}
.modal__lock .ic{width:28px;height:28px}
.modal__card h3{font-size:1.4rem;font-weight:600}
.modal__demo{font-size:.85rem;color:var(--c-gold-dark);background:var(--c-paper-warm);border:1px dashed var(--c-gold);border-radius:var(--r-sm);padding:.5rem .8rem;margin:.8rem 0 1rem}
.modal__summary{list-style:none;margin:0 0 .8rem;padding:0;text-align:left;font-size:.92rem}
.modal__summary li{display:flex;justify-content:space-between;padding:.3rem 0;border-bottom:1px dashed var(--c-border);color:var(--c-muted)}
.modal__summary li span:last-child{color:var(--c-text);font-weight:600}
.modal__total{display:flex;justify-content:space-between;font-weight:700;font-size:1.2rem;color:var(--c-navy-deep);margin-bottom:1.2rem}
.modal__total span:last-child{color:var(--c-green)}
.modal__micro{font-size:.78rem;color:var(--c-muted);margin:.8rem 0 0}

/* ---------- hero trust line ---------- */
.hero__trust{margin-top:1.4rem;font-size:.92rem;color:var(--c-muted);font-weight:600}

/* ---------- checklist funnel band ---------- */
.funnel{background:var(--c-cream-2)}
.funnel__inner{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.funnel__copy p{color:var(--c-prose);font-size:1.08rem;margin:0 0 1.5rem}
.funnel__steps{display:grid;gap:.8rem}
.fstep{display:flex;align-items:center;gap:1rem;background:var(--c-paper);border:1px solid var(--c-border);border-radius:var(--r-md);padding:1rem 1.2rem;box-shadow:var(--shadow-sm)}
.fstep__n{width:36px;height:36px;flex:none;border-radius:50%;background:var(--c-gold);color:var(--c-navy-deep);font-weight:800;display:flex;align-items:center;justify-content:center}
.fstep strong{display:block;color:var(--c-navy-deep);font-size:1.02rem}
.fstep span{color:var(--c-muted);font-size:.9rem}

/* ---------- footer contact buttons (protect from .foot a) ---------- */
.foot__contactbtns{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.4rem}
.foot__contactbtns .btn{display:inline-flex;padding:.7rem 1.1rem}
.foot__contactbtns .btn--gold{color:var(--c-navy-deep)}
.foot__contactbtns .btn--gold:hover{color:var(--c-navy-deep)}
.foot__contactbtns .btn--ghost{background:var(--c-paper);color:var(--c-navy);border-color:var(--c-border-cool)}
.foot__contactbtns .btn--ghost:hover{color:var(--c-navy)}

/* ---------- floating action button (all pages) ---------- */
.fab{position:fixed;right:16px;bottom:16px;z-index:60;display:inline-flex;align-items:center;gap:.5em;
  background:linear-gradient(180deg,#F3B14C,var(--c-gold));color:var(--c-navy-deep);font-weight:800;font-size:.95rem;
  padding:.8rem 1.15rem;border-radius:999px;border:1px solid rgba(168,122,31,.5);
  box-shadow:0 8px 24px rgba(14,58,92,.32);
  transition:transform .15s var(--ease),box-shadow .15s var(--ease),opacity .15s var(--ease),visibility .15s var(--ease)}
.fab:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(14,58,92,.4);color:var(--c-navy-deep)}
.fab .ic{width:19px;height:19px;fill:currentColor;flex-shrink:0}
/* The fab exists only to jump to the calculator. While the calculator is on
   screen it is redundant, and on narrow phones it sits on top of the page
   stepper's "+" button. calculator.js toggles this class from an observer. */
.fab--hidden{opacity:0;visibility:hidden;transform:translateY(8px);pointer-events:none}

/* ---------- inner page hero + breadcrumbs ---------- */
.pagehero{position:relative;padding:clamp(6rem,7.5vw,8.5rem) 0 clamp(1.8rem,4vw,2.8rem);
  background:
    radial-gradient(1100px 480px at 80% -14%, rgba(232,161,60,.18), transparent 60%),
    radial-gradient(800px 520px at -8% 118%, rgba(27,138,90,.10), transparent 55%),
    linear-gradient(180deg,#fff,var(--c-cream))}
.pagehero::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.4;
  background-image:var(--grain);background-size:120px 120px;mix-blend-mode:multiply}
.pagehero .container{position:relative;z-index:1}
.pagehero__inner{max-width:840px}
.pagehero__title{font-size:clamp(1.9rem,4vw,2.9rem);font-weight:600;letter-spacing:-.01em;margin:.2rem 0 0}
.pagehero__sub{font-size:1.15rem;color:var(--c-prose);margin:1rem 0 0;max-width:700px}
.pagehero__pills{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.2rem}
.pagehero__pills span{background:var(--c-paper);border:1px solid var(--c-border);border-radius:999px;padding:.45rem .9rem;font-weight:600;font-size:.9rem;box-shadow:var(--shadow-sm)}
.pagehero__btns{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.4rem}
.crumbs{font-size:.85rem;color:var(--c-muted);margin-bottom:.7rem;display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}
.crumbs a{color:var(--c-muted)}
.crumbs a:hover{color:var(--c-navy)}
.crumbs span:last-child{color:var(--c-text);font-weight:600}
.crumbs__sep{color:var(--c-border)}

/* ---------- prose + embedded calculator section ---------- */
.prose-section{background:var(--c-paper)}
.narrow{max-width:760px;margin:0 auto}
.prose-section p{font-size:1.1rem;color:var(--c-prose);margin:0 0 1.1rem}
.prose-section .cert__facts{margin-top:1.8rem}
.prose-sig{display:flex;gap:.55em;align-items:flex-start;margin:1.8rem 0 0;padding:.95rem 1.15rem;background:var(--c-green-soft);border-left:3px solid var(--c-green);border-radius:10px;font-size:1rem;color:var(--c-text);line-height:1.5}
.prose-sig .ic{color:var(--c-green);flex:none;margin-top:.12em}
.calcsection{background:var(--c-cream)}
.uploadsection{padding:1.4rem 0 3rem}
.uploadsection iframe{display:block;background:var(--c-paper);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}
.calcsection__inner{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,3.5rem);align-items:start}
.calcsection__intro .section-title{margin-bottom:.6rem}
.calcsection__intro p{color:var(--c-prose);font-size:1.08rem}

/* ---------- contact page ---------- */
/* The .contactform rules were removed with the inert demo form on /contact/.
   Contact now routes to WhatsApp, the secure upload, and the calculator. */
.contact__meta{margin-top:1.6rem;color:var(--c-muted);font-weight:600}

/* ---------- checklist tool ---------- */
.pagehero--tool{padding-top:clamp(5.5rem,6vw,7rem);padding-bottom:clamp(1rem,2vw,1.4rem)}
.pagehero--tool .pagehero__title{font-size:clamp(1.55rem,3vw,2.1rem)}
.pagehero--tool .pagehero__sub{font-size:1.05rem;max-width:660px;margin-top:.7rem}
.pagehero--tool .ck{margin-top:1.6rem;max-width:820px}
.cktool{background:var(--c-cream)}
.ck__controls{display:grid;grid-template-columns:1fr 1fr;gap:1rem;background:var(--c-paper);border:1px solid var(--c-border);
  border-radius:var(--r-lg);padding:1.4rem;box-shadow:var(--shadow-sm)}
.ck__controls .field{margin-bottom:0}
.ck__results{margin-top:1.4rem}
.ck__status{display:flex;flex-direction:column;gap:.2rem;padding:1rem 1.2rem;border-radius:var(--r-md);margin-bottom:1.2rem;border-left:4px solid}
.ck__status strong{font-size:1.05rem}
.ck__status span{font-size:.95rem}
.ck__status--good{background:var(--c-green-soft);border-color:var(--c-green);color:#155f3e}
.ck__status--check{background:#fff7e8;border-color:var(--c-gold);color:#8a5a12}
.ck__status--ask{background:#fdeeee;border-color:#d9534f;color:#9a322f}
.ck__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.ck__col{background:var(--c-paper);border:1px solid var(--c-border);border-radius:var(--r-md);padding:1.2rem;box-shadow:var(--shadow-sm)}
.ck__col h3{font-family:var(--font-body);font-size:1rem;display:flex;align-items:center;gap:.4em;margin:0 0 .7rem;color:var(--c-navy-deep)}
.ck__col h3 .ic{width:18px;height:18px}
.ck__col ul{margin:0;padding-left:1.1rem;color:var(--c-muted);font-size:.92rem}
.ck__col li{margin-bottom:.5rem}
.ck__col:nth-child(1) h3 .ic{color:var(--c-green)}
.ck__col:nth-child(2) h3 .ic{color:#d9534f}
.ck__col:nth-child(3) h3 .ic{color:var(--c-navy)}
.ck__disclaimer{font-size:.85rem;color:var(--c-muted);margin:1.2rem 0 0;font-style:italic}
.ck__cta{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.2rem}
/* university finder + policy + USCIS detail */
.ckuni{margin-top:1.4rem}
.ckuni__box{position:relative;max-width:520px}
.ckuni__input{width:100%;font-family:inherit;font-size:1rem;border:1.5px solid var(--c-border);border-radius:var(--r-md);padding:.8rem 1rem;background:var(--c-paper);color:var(--c-text)}
.ckuni__input:focus{outline:none;border-color:var(--c-gold);box-shadow:var(--ring)}
.ckuni__list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:20;background:var(--c-paper);border:1px solid var(--c-border);border-radius:var(--r-md);box-shadow:0 10px 28px rgba(16,31,44,.14);max-height:320px;overflow:auto}
.ckuni__item{display:flex;justify-content:space-between;align-items:center;gap:.6rem;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--c-border);padding:.7rem 1rem;font-family:inherit;font-size:.98rem;color:var(--c-text);cursor:pointer}
.ckuni__item:last-child{border-bottom:0}
.ckuni__item:hover{background:var(--c-cream)}
.ckuni__item:focus-visible{background:var(--c-cream);outline:2px solid var(--c-navy-deep);outline-offset:-2px}
.ckuni__item span{color:var(--c-muted);font-size:.82rem;font-weight:700;white-space:nowrap}
.ckuni__hint{font-size:.85rem;color:var(--c-muted);margin-top:.55rem}
.ckpol{margin-top:1.2rem;background:var(--c-paper);border:1px solid var(--c-border);border-left:4px solid var(--c-navy);border-radius:var(--r-md);padding:1.3rem 1.4rem;box-shadow:var(--shadow-sm)}
.ckpol__head{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin-bottom:.6rem}
.ckpol__head strong{font-size:1.15rem;color:var(--c-navy-deep)}
.ckpol__head span{color:var(--c-muted);font-weight:700;font-size:.85rem}
.ckpol__sum{color:var(--c-prose);margin:0 0 .8rem}
.ckpol__facts{margin:0 0 .8rem;padding-left:1.1rem;color:var(--c-text)}
.ckpol__facts li{margin-bottom:.45rem}
.ckpol__quote{font-style:italic;color:var(--c-muted);border-left:3px solid var(--c-border);padding-left:.9rem;margin:.8rem 0;font-size:.95rem}
.ckpol__meta{margin:.2rem 0 .6rem}
.ckpol__meta a{color:var(--c-gold-dark);font-weight:700}
.ckpol__warn{font-size:.82rem;color:var(--c-muted);margin:.9rem 0 0;font-style:italic}
.ckdetail{margin-top:1.4rem;background:var(--c-paper);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:1.4rem 1.5rem;box-shadow:var(--shadow-sm)}
.ckdetail h3{font-family:var(--font-body);font-size:1.1rem;color:var(--c-navy-deep);margin:0 0 .6rem}
.ckdetail p{color:var(--c-prose);margin:0 0 .7rem}
.ckdetail__quote{background:var(--c-cream);border-left:4px solid var(--c-gold);border-radius:var(--r-md);padding:.9rem 1.1rem;margin:.5rem 0 1rem;font-style:italic;color:var(--c-navy-deep)}
.ckdetail__list{margin:0 0 .8rem;padding-left:1.1rem;color:var(--c-text)}
.ckdetail__list li{margin-bottom:.55rem}
.ckdetail__src{font-size:.82rem;color:var(--c-muted);margin:.6rem 0 0}

/* =========================================================
   Motion (progressive enhancement, gated by html.anim from JS;
   killed entirely by the prefers-reduced-motion block below)
   ========================================================= */
@keyframes rise{from{opacity:0;transform:translateY(18px)}}
html.anim .hero__copy>*{animation:rise .6s var(--ease) backwards}
html.anim .hero__copy>*:nth-child(1){animation-delay:.04s}
html.anim .hero__copy>*:nth-child(2){animation-delay:.1s}
html.anim .hero__copy>*:nth-child(3){animation-delay:.16s}
html.anim .hero__copy>*:nth-child(4){animation-delay:.22s}
html.anim .hero__copy>*:nth-child(5){animation-delay:.28s}
html.anim .hero__copy>*:nth-child(6){animation-delay:.34s}
html.anim .hero .calc{animation:rise .7s var(--ease) .14s backwards}
html.anim .hero__lead>*{animation:rise .6s var(--ease) backwards}
html.anim .hero__lead>*:nth-child(1){animation-delay:.04s}
html.anim .hero__lead>*:nth-child(2){animation-delay:.1s}
html.anim .hero__lead>*:nth-child(3){animation-delay:.16s}
html.anim .hero__more>*{animation:rise .6s var(--ease) .2s backwards}
html.anim .rv{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
html.anim .rv.in{opacity:1;transform:translateY(0)}

/* =========================================================
   Responsive
   ========================================================= */
/* Collapse to the hamburger before the full desktop nav can crowd the brand
   wordmark. The wider Portuguese nav (Servicos / Como funciona / ...) runs out of
   room first, at ~1053px, so we switch at 1060 to keep EN and PT identical. The
   mobile menu already carries the language switch and CTA, so nothing is lost.
   Only the nav switches here; the rest of the mobile layout stays at 760px. */
@media (max-width:1060px){
  .mainnav,.site-header__cta{display:none}
  .navtoggle{display:flex}
}
@media (max-width:980px){
  .hero__inner{grid-template-columns:1fr;gap:2rem}
  .calc{max-width:560px;width:100%;justify-self:center}
  .band__inner,.cert__inner,.ivy__inner,.funnel__inner,.calcsection__inner{grid-template-columns:1fr}
  .band__media{order:-1}
  .band__copy{text-align:center}
  .band__copy p{text-align:left}
  .band__copy .ivy__chips{justify-content:center}
  .ivy__media{order:-1;max-width:440px}
  .steps,.docgrid{grid-template-columns:1fr 1fr}
  .site-footer__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .mainnav,.site-header__cta{display:none}
  .navtoggle{display:flex}
  .site-header__inner{min-height:56px}
  .brand__mark{width:26px;height:26px}
  .brand__name{font-size:1.04rem}
  .steps,.toolgrid,.ck__cols,.ck__controls,.related__grid,.sitemap__grid{grid-template-columns:1fr}
  /* documents stay a tidy 2-up grid of mini documents on phones */
  .docgrid{grid-template-columns:1fr 1fr;gap:.7rem}
  .doccard{padding:1.05rem .7rem .95rem;align-items:center;text-align:center;gap:.2rem}
  .doccard::after{display:none}
  .doccard__ic{margin-bottom:.5rem}
  .doccard__ic svg{width:53px;height:66px}
  .doccard__name{font-size:.93rem;line-height:1.25}
  .doccard__pt{font-size:.76rem;line-height:1.35}
  .band__media img,.ivy__media img{height:380px}
  .guarantee__inner{flex-direction:column;text-align:center}
  .optcards{grid-template-columns:1fr}
  .step{text-align:center;padding-top:2.4rem}
  .step__num{left:50%;transform:translateX(-50%)}
  .step__ic{margin:.6rem auto 1rem}
  .site-footer__grid{grid-template-columns:1fr;gap:2rem;text-align:center}
  .foot--brand p{margin-left:auto;margin-right:auto}
  .foot__contactbtns{flex-direction:column;align-items:center}
  .foot__contactbtns .btn{width:100%;max-width:300px;justify-content:center}
  .site-footer__bottom{flex-direction:column;gap:.4rem;text-align:center}
  .hero__title{font-size:2.1rem}
}
@media (max-width:480px){
  body{font-size:16px}
  .container{padding:0 18px}
  /* .mobilenav is a sibling of the header container, so it does not inherit the
     inset above and its links would sit 6px further in than the logo. */
  .mobilenav{padding-left:18px;padding-right:18px}
  .site-footer__grid{grid-template-columns:1fr}
  .band__stats{gap:1.2rem}
  .finalcta__btns{flex-direction:column}
  .finalcta__btns .btn{width:100%}
}

/* =========================================================
   Behavioral homepage hero (.hero--home): a one-tap quote starter
   above the fold on mobile, a short reassuring lead, and the longer
   supporting copy below. Scoped to .hero--home so the shared .hero on
   the service pages is untouched. The chip picker + calc head styles
   are unscoped because calc_widget() is shared everywhere.
   ========================================================= */

/* lead + guarantee */
.hero__lead{max-width:560px}
.hero__more{max-width:560px}
.hero__more .hero__sub{margin-top:0}
.hero__more .hero__trust{font-size:.92rem;color:var(--c-muted);margin-top:1.2rem}
.hero__guarantee{display:inline-flex;align-items:center;gap:.5em;margin-top:1rem;
  font-weight:700;font-size:1.02rem;color:var(--c-green);line-height:1.25;
  background:var(--c-green-soft);border:1px solid rgba(20,83,45,.22);
  border-radius:999px;padding:.5rem .95rem}
.hero__guarantee svg{width:20px;height:20px;fill:currentColor;flex:none}

/* desktop: lead top-left, more below it, calc on the right spanning both.
   The 1fr spacer row absorbs a tall calc so lead and more stay tight. */
@media(min-width:981px){
  .hero--home .hero__inner{grid-template-rows:auto auto 1fr}
  .hero--home .hero__lead{grid-column:1;grid-row:1;align-self:start}
  .hero--home .hero__more{grid-column:1;grid-row:2;align-self:start}
  .hero--home .calc{grid-column:2;grid-row:1 / 4;align-self:start}
}

/* calculator head: price anchor + progress nudge */
.calc__headrow{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem}
.calc__anchor{font-weight:800;color:var(--c-gold-dark);font-size:1rem;white-space:nowrap}
.calc__anchor-per{font-weight:600;color:var(--c-muted);font-size:.78rem;margin-left:.1em}
.calc__progress{height:6px;border-radius:999px;background:var(--c-cream-2);overflow:hidden;margin:.7rem 0 .45rem}
.calc__progress-bar{display:block;height:100%;width:20%;border-radius:999px;
  background:linear-gradient(90deg,var(--c-gold),var(--c-gold-soft));transition:width .5s var(--ease)}
.calc__step{font-size:.8rem;color:var(--c-muted);font-weight:600;margin:0}
@media(min-width:761px){.calc__steponly{display:none}}  /* desktop already shows the $19 anchor in the head row */

/* document picker chips (one tap starts the quote) */
.chips{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.chipopt,.chips__toggle{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.chip{display:inline-flex;align-items:center;font-weight:700;font-size:.9rem;line-height:1;
  padding:.6rem .85rem;border-radius:999px;background:var(--c-cream);border:1.5px solid var(--c-border);
  color:var(--c-text);cursor:pointer;transition:border-color .15s var(--ease),background .15s var(--ease),color .15s var(--ease)}
.chip:hover{border-color:var(--c-gold)}
.chipopt:checked + .chip{background:var(--c-green);border-color:var(--c-green);color:#fff}
.chipopt:focus-visible + .chip,.chips__toggle:focus-visible + .chip{box-shadow:var(--ring)}
.chip--more{background:transparent;border-style:dashed;color:var(--c-navy-700)}
.chip--more::after{content:" +";font-weight:800;margin-left:.15em}
.chips__more{display:none;flex-wrap:wrap;gap:.5rem;width:100%}
.chips__toggle:checked ~ .chips__more{display:flex}
.chips__toggle:checked + .chip--more{background:var(--c-cream);border-style:solid;color:var(--c-text)}
.chips__toggle:checked + .chip--more::after{content:" \2212"}

/* mobile: calculator first (above the fold), supporting copy after */
@media(max-width:980px){
  .hero--home .hero__inner{display:flex;flex-direction:column;grid-template-columns:none;gap:1.1rem}
  .hero--home .hero__lead{order:1;max-width:none;width:100%}
  .hero--home .calc{order:2;max-width:none;width:100%}
  .hero--home .hero__more{order:3;max-width:none;width:100%}
}

/* phone: compress the lead so the first calculator step clears the fold.
   The sub + pills only repeat what the calculator already says, so on
   phones they go; the trust line stays as the proof line under the card. */
@media(max-width:760px){
  .hero--home{padding-top:1.3rem}
  .hero--home .eyebrow{display:none}
  /* balance minimises the longest line, which on a phone strands "translation,"
     alone on a short middle line. pretty optimises the break instead and keeps
     the short line last, where a short line belongs. Measured 238/133/214 ->
     238/240/106 at 320px. */
  .hero--home .hero__title{font-size:1.6rem;line-height:1.22;letter-spacing:-.01em;text-wrap:pretty}
  .hero--home .hero__guarantee{margin-top:.7rem;font-size:.92rem;padding:.42rem .8rem}
  .hero--home .hero__guarantee svg{width:17px;height:17px}
  .hero--home .hero__more .hero__sub,
  .hero--home .hero__more .hero__pills{display:none}
  .hero--home .hero__more .hero__trust{text-align:center;font-size:.84rem;margin-top:0}
  .hero--home .calc__title{font-size:1.18rem}
  .calc__anchor{display:none}  /* the price anchor lives in the step line on phones */
  .calc__head{padding:1.05rem 1.15rem .85rem}
  .calc__body{padding:1.05rem 1.15rem .3rem}
  .calc__summary{padding:1.05rem 1.15rem 1.3rem}
  .field{margin-bottom:1rem}
  /* even 2-column chip grid instead of ragged wrapping */
  .chips{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
  .chip{justify-content:center;text-align:center;padding:.62rem .5rem;font-size:.84rem}
  .chips .chip{min-height:44px;box-sizing:border-box}
  .chips__more{display:none;grid-column:1 / -1;grid-template-columns:1fr 1fr;gap:.5rem}
  .chips__toggle:checked ~ .chips__more{display:grid}
}

/* reduced motion */
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* ---------------------------------------------------------------
   PROSE POLISH (privacy and other long-form pages)
   --------------------------------------------------------------- */
/* Section headings inside long-form prose. These are h2 so the outline never
   skips a level under the page h1. :not(.section-title) keeps this from
   overriding the big section heading used on shorter pages like /contact/. */
.prose-section h2:not(.section-title){font-size:1.45rem;margin:2.2rem 0 .6rem;color:var(--c-navy-deep)}
.prose-section h2:not(.section-title):first-child{margin-top:0}
.prose-section h3{font-size:1.3rem;margin:2rem 0 .6rem;color:var(--c-navy-deep)}
.prose-section h3:first-child{margin-top:0}
.prose-section ul{margin:0 0 1.1rem;padding-left:1.2rem;color:var(--c-prose);font-size:1.05rem}
.prose-section li{margin:.35rem 0}
.privacy__updated{color:#6b7a6a;font-size:.95rem;margin-top:2rem}

/* ===============================================================
   CARTORIO THEME, baked in as the site's design (2026-07-14).
   Was concepts/theme-1.css layered as an overlay; folded in here
   so the live site IS the notary green + parchment + gold seal look.
   =============================================================== */
/* =========================================================
   CONCEPT 1 "CARTORIO" , notary heritage
   Bottle green + parchment + gold seal. EB Garamond display.
   Conversion angle: official-document authority (Trust & Authority).
   Layered AFTER styles.css, overrides only.
   ========================================================= */
:root{
  --c-navy:#14532D;
  --c-navy-deep:#0E3B20;
  --c-navy-700:var(--c-green-mid);
  --c-gold:#C9962E;
  --c-gold-dark:#8F6714; /* deep bronze: 4.68:1 on cream, so gold-family TEXT passes AA at any size */
  --c-green:#14532D;
  --c-green-soft:#EAF2E4;
  --c-cream:#FAF5E9;
  --c-cream-2:#F1E7CF;
  --c-text:#22301F;
  --c-muted:#5F6B54;
  --c-border:#E0D5B8;
  --c-border-cool:#E0D5B8;
  /* headings stay on the site's Fraunces so the hero is formatted exactly like the
     original (same size, weight, tracking, line breaks); only the palette changes here. */
  --r-sm:6px; --r-md:9px; --r-lg:14px; --r-xl:18px;
}
.hero__bg{background:
  radial-gradient(1100px 500px at 80% -12%, rgba(201,150,46,.25), transparent 60%),
  radial-gradient(900px 600px at -6% 112%, rgba(20,83,45,.12), transparent 55%),
  linear-gradient(180deg,#FFFDF6 0%,var(--c-cream) 100%)}
/* USCIS keeps the base bold-gold emphasis; no theme override needed */
/* eyebrow = notary stamp */
.eyebrow{border-radius:4px;border:1px dashed rgba(168,122,31,.55);background:rgba(201,150,46,.08);color:var(--c-gold-dark)}
.eyebrow--gold{border-color:rgba(168,122,31,.55);background:rgba(201,150,46,.08)}
.eyebrow::before{border-radius:1px}
/* double rule, like a certificate head */
.calc::before{height:7px;background:
  linear-gradient(180deg,var(--c-gold) 0 2px,transparent 2px 5px,var(--c-gold) 5px 7px)}
.calc{border-color:#D8C89F}
.calc__head{background:linear-gradient(180deg,#FFFDF4,#fff)}
.truststrip{background:linear-gradient(90deg,var(--c-green-night),var(--c-green-ink) 45%,var(--c-green-deep) 100%)}
.truststrip::before{background:linear-gradient(90deg,transparent,rgba(201,150,46,.6) 30%,rgba(201,150,46,.6) 70%,transparent)}
.step__ic{background:linear-gradient(160deg,var(--c-green-mid),var(--c-green-ink))}
.step__num{background:linear-gradient(180deg,var(--c-gold-mark),#A87A1F)}
.fstep__n{background:linear-gradient(180deg,var(--c-gold-mark),#A87A1F)}
.brandcard{background:
  radial-gradient(120% 90% at 85% -10%, rgba(201,150,46,.35), transparent 55%),
  radial-gradient(100% 80% at 0% 112%, rgba(28,107,60,.30), transparent 55%),
  linear-gradient(160deg,var(--c-green-mid) 0%,var(--c-green-deep) 45%,var(--c-green-ink) 100%)}
.brandcard::after{border-color:rgba(250,245,233,.22)}
.guarantee{background:linear-gradient(135deg,var(--c-green-deep) 0%,var(--c-green-ink) 100%)}
.finalcta{background:linear-gradient(135deg,var(--c-green-mid) 0%,var(--c-green-deep) 40%,var(--c-green-ink) 100%)}
.site-footer{background:var(--c-green-night)}
.site-footer::before{background:linear-gradient(90deg,var(--c-gold) 0%,var(--c-gold-mark) 40%,var(--c-green-mid) 100%)}
.pricerow--head{background:linear-gradient(90deg,var(--c-green-night),var(--c-green-ink) 60%,var(--c-green-deep))}
.doc__seal{border-color:var(--c-gold);color:var(--c-gold-dark);background:rgba(201,150,46,.1)}
/* .doccard__ic tile tint removed: the mini document illustrations carry their own colors */
.pagehero{background:
  radial-gradient(1100px 480px at 80% -14%, rgba(201,150,46,.2), transparent 60%),
  radial-gradient(800px 520px at -8% 118%, rgba(20,83,45,.1), transparent 55%),
  linear-gradient(180deg,#FFFDF6,var(--c-cream))}


/* hardening: no sideways scroll ever; long Portuguese words wrap instead of overflowing */
html,body{overflow-x:clip}
h1,h2,h3,.pagehero__title,.section-title{overflow-wrap:break-word}
