/* =====================================================================
   Leaci Silva Advocacia — Landing Page
   Fonte de verdade: Figma "Leaci Silva Advocacia — Landing Page"
   frame Desktop — 1441 (1920 x 8299), node 74:649
   Escala: 1 unidade CSS = 1 px do Figma (root font-size proporcional)
   ===================================================================== */

/* --------------------------- TOKENS --------------------------------- */
:root{
  --navy:        #17384a;   /* superfície primária          */
  --navy-2:      #274960;   /* fim de gradiente             */
  --teal:        #2f6474;   /* diferenciais                 */
  --ink-900:     #0e202a;   /* social                       */
  --ink-800:     #122b38;   /* texto sobre creme            */
  --graphite:    #22252a;   /* rodapé                       */
  --cream:       #f5f2ec;   /* texto principal claro        */
  --mist:        #d9dee2;   /* texto secundário             */
  --sand:        #d8c7a5;   /* dourado claro / eyebrow      */
  --bronze:      #b58a52;   /* filete / bullet              */
  --amber:       #ffae20;   /* CTA                          */

  --ff-serif: "Libre Baskerville", "Times New Roman", serif;
  --ff-sans:  "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ff-text:  "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  /* Tier de display: titulos, numeros grandes, botoes de acao e a faixa de
     areas. O Figma dimensionou tudo para um frame de 1920 visto de longe;
     em tela, esse tier era o que lia como grande. O numero do Figma continua
     visivel no calc, entao a origem de cada medida nao se perde. */
  --display: .82;

  --hdr-h: 8.75rem;
  --ease: cubic-bezier(.22,.61,.36,1);

  /* metade da largura que sobra quando o palco de 1920 unidades (120rem)
     fica menor que a viewport. Zero ate 1280 e no mobile. */
  /* 100% e nao 100vw: 100vw inclui a barra de rolagem e o left:50% dos
     blocos centrados nao — a diferenca desalinhava o palco em ~0.4375rem. */
  --gutter: max(0px, (100% - 120rem) / 2); /* !nopx */
}

/* Malha proporcional, com freio.
   Ate 1280 a malha e 1:1 com o Figma (0,8333vw). Acima disso ela cresce a
   ~14% desse ritmo e trava em 11,0.5rem, porque o 1:1 levava o corpo de texto a
   1.5rem em 1920 e 1.875rem em 2560 — tamanho de artefato, nao de projeto.
   O que sobra de largura vira --gutter e centra o palco.
   O corpo de texto fica proposital em 16-1.125rem: a audiencia e familia e
   trabalhador lidando com INSS, boa parte acima dos 50. Quem foi reduzido de
   verdade e o tipo de display, via --display. */
html{ font-size: clamp(8.53px, min(0.83333333vw, 0.11406vw + 9.21px), 11.8px); } /* !nopx */

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--navy); color:var(--cream);
  font-family:var(--ff-text); font-size:16px; line-height:1.5; /* !nopx */
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img,svg{ display:block; max-width:100%; }
/* camadas decorativas sangram além do viewport por desenho — o max-width global
   as comprimia horizontalmente (o arco do FAQ chegava a 1920 em vez de 3247) */
.hero__camada,.hero__glow,.faq__bg,.dif__v{ max-width:none; }
a{ color:inherit; }
h1,h2,h3,p,figure,blockquote,ul{ margin:0; padding:0; }
ul{ list-style:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
address{ font-style:normal; }
:where(a,button,[tabindex]):focus-visible{
  outline:3px solid var(--amber); outline-offset:4px; border-radius:2px; /* !nopx */
}
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; /* !nopx */
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.skip-link{
  position:absolute; left:16px; top:-100px; z-index:200; /* !nopx */
  background:var(--amber); color:var(--navy); font-family:var(--ff-sans);
  font-weight:700; font-size:16px; padding:12px 20px; border-radius:4px; /* !nopx */
  transition:top .2s var(--ease);
}
.skip-link:focus{ top:16px; } /* !nopx */
::selection{ background:var(--amber); color:var(--navy); }

section{ scroll-margin-top:var(--hdr-h); }

/* Reveal ------------------------------------------------------------- */
.js [data-reveal]{ opacity:0; transform:translateY(1.125rem); }
.js [data-reveal].is-in{
  opacity:1; transform:none;
  transition:opacity .7s var(--ease), transform .7s var(--ease), border-color .3s var(--ease);
}
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .js [data-reveal]{ opacity:1 !important; transform:none !important; }
}

/* Eyebrows (mesmo papel, tamanhos distintos por seção no Figma) ------- */
.eyebrow{
  font-family:var(--ff-sans); font-weight:600; text-transform:uppercase;
  color:var(--sand); line-height:normal; font-variation-settings:"opsz" 14;
}
.eyebrow--sm{ font-size:1rem;     letter-spacing:0.12rem;   color:rgba(217,222,226,.6); }
.eyebrow--md{ font-size:1.19825rem; letter-spacing:0.19173rem; }
.eyebrow--lg{ font-size:1.45162rem; letter-spacing:0.23226rem; }
.eyebrow--xl{ font-size:calc(1.875rem * var(--display)); letter-spacing:calc(0.3rem * var(--display)); }

/* Titulos de display equilibram as linhas: com o tipo menor, o mesmo texto
   passou a caber diferente e sobrava orfa ("demitido?" sozinho numa linha).
   text-wrap:balance e Baseline e degrada para a quebra normal. */
.hero__title,.inst__title,.areas__title,.dif__title,.social__title,
.faq__title,.faq__nexttitle{ text-wrap:balance; }

/* Botões ------------------------------------------------------------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--ff-sans); text-align:center; text-decoration:none;
  font-variation-settings:"opsz" 14;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease),
             background-color .25s var(--ease), color .25s var(--ease);
}
.btn--primary{ background:var(--amber); color:var(--navy); font-weight:700; }
.btn--primary:hover{
  transform:translateY(-0.125rem);
  box-shadow:0 0.875rem 2.125rem rgba(255,174,32,.28);
  background:#ffbc46;
}
.btn--primary:active{ transform:translateY(0); }
.btn--hero{
  width:calc(37.00706rem * var(--display)); height:calc(7.68606rem * var(--display));
  border-radius:0.50969rem; font-size:calc(2.54838rem * var(--display));
}
.btn--faq{  width:31.375rem;     height:5.33263rem;  border-radius:0.29956rem; font-size:1.49788rem; }
.btn--outline{
  width:calc(41.664rem * var(--display)); height:calc(7.13906rem * var(--display));
  border-radius:0.46294rem;
  background:rgba(255,174,32,.32); border:0.15431rem solid var(--amber);
  color:var(--cream); font-weight:600; font-size:calc(2.16044rem * var(--display));
}
.btn--outline:hover{
  background:rgba(255,174,32,.46); transform:translateY(-0.125rem);
  box-shadow:0 0.875rem 2.125rem rgba(255,174,32,.18);
}

/* Palco centrado: tudo que e ancorado a esquerda ganha a sobra.
   O que ja usa left:50% ou margin auto nao entra aqui. */
.inst__copy,
.areas__head .eyebrow--sm,
.grouplabel,
.card,
.dif__layout,
.social__head{ margin-left:var(--gutter); }

/* =========================== HEADER ================================== */
.hdr{
  position:sticky; top:0; z-index:100;
  height:var(--hdr-h); background:var(--navy);
  border-bottom:0.0625rem solid rgba(245,242,236,.08);
}
.hdr__in{
  position:relative; height:100%;
  padding:0 calc(10.25rem + var(--gutter));
  display:flex; align-items:center; justify-content:space-between;
}
.hdr__logo{
  position:relative; display:block; flex:none;
  width:calc(13.88687rem * var(--display)); height:calc(6.06694rem * var(--display));
}
.hdr__mark{
  position:absolute; left:0; top:0;
  width:calc(4.5225rem * var(--display)); height:calc(5.94313rem * var(--display));
}
.hdr__word{
  position:absolute; left:calc(5.92812rem * var(--display)); top:calc(0.49375rem * var(--display));
  width:calc(7.25rem * var(--display));  height:calc(4.9rem * var(--display));
}

.hdr__burger{ display:none; }

.nav{ display:flex; align-items:center; gap:1.125rem; }
.nav__link{
  display:inline-flex; align-items:center; justify-content:center;
  padding:0.875rem; font-family:var(--ff-sans); font-weight:600; font-size:1.25rem;
  line-height:1.2; color:var(--cream); text-decoration:none; white-space:nowrap;
  font-variation-settings:"opsz" 14; position:relative;
}
.nav__link::after{
  content:""; position:absolute; left:0.875rem; right:0.875rem; bottom:0.5rem; height:0.09375rem;
  background:var(--sand); transform:scaleX(0); transform-origin:left;
  transition:transform .3s var(--ease);
}
.nav__link:hover::after,
.nav__link[aria-current="true"]::after{ transform:scaleX(1); }
.nav__cta{
  display:inline-flex; align-items:center; justify-content:center;
  padding:1.0625rem 1.75rem; border:0.09375rem solid var(--sand); border-radius:0.125rem;
  font-family:var(--ff-sans); font-weight:600; font-size:1.125rem; line-height:1.2;
  color:var(--sand); text-decoration:none; white-space:nowrap;
  font-variation-settings:"opsz" 14;
  transition:background-color .25s var(--ease), color .25s var(--ease);
}
.nav__cta:hover{ background:var(--sand); color:var(--navy); }

/* ============================ HERO =================================== */
.hero{
  position:relative; height:59.1875rem; overflow:hidden; background:var(--navy);
}
.hero__bg{
  position:absolute; inset:0;
  -webkit-mask-image:linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,.26) 100%);
          mask-image:linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,.26) 100%);
}
.hero__photo{
  position:absolute; left:-26rem; top:-36.8125rem; width:172rem; height:96rem;
  background:center/cover no-repeat;
}
.hero__scrim{
  position:absolute; left:-26rem; top:-36.8125rem; width:172rem; height:96rem;
  background:
    linear-gradient(0deg, rgba(0,0,0,.2) 19.596%, rgba(102,102,102,.2) 61.296%),
    linear-gradient(0deg, rgba(39,73,96,.74) 18.205%, rgba(102,102,102,0) 151.46%);
}
.hero__camada{
  position:absolute; left:50%; top:-4.93006rem; transform:translateX(-50%);
  width:137.91438rem; height:69.11019rem; opacity:1; pointer-events:none;
}
.hero__glow{
  position:absolute; left:-6.15rem; top:-33.5rem;
  width:132.1875rem; height:132.125rem; pointer-events:none;
}
.hero__copy{
  position:absolute; left:50%; transform:translateX(-50%); top:6.63812rem;
  width:65.6875rem; display:flex; flex-direction:column; align-items:center; gap:2.0415rem;
}
.hero__eyebrow{
  font-family:var(--ff-sans); font-weight:600; font-size:1.09119rem;
  letter-spacing:0.17459rem; color:var(--sand); text-transform:uppercase;
  line-height:normal; white-space:nowrap; font-variation-settings:"opsz" 14;
}
.hero__title{
  font-family:var(--ff-serif); font-weight:700;
  font-size:calc(4.41237rem * var(--display));
  line-height:1.16; color:var(--cream); text-align:center; width:100%;
}
.hero__title em{ font-style:normal; color:var(--amber); }
.hero__sub{
  font-family:var(--ff-text); font-weight:500; font-size:1.63675rem; line-height:1.55;
  color:var(--mist); text-align:center; width:46.25881rem;
  font-variation-settings:"wdth" 100;
}
.hero__cta{
  display:flex; flex-direction:column; align-items:center; gap:2.981rem;
  width:41.32519rem;
}
.hero__note{
  font-family:var(--ff-text); line-height:normal;
  font-size:calc(1.63675rem * var(--display));
  color:rgba(216,199,165,.75); text-align:center; width:100%;
  font-variation-settings:"wdth" 100;
}

/* ========================= TRUST STRIP =============================== */
.trust{
  height:calc(11.25rem * var(--display)); background:var(--cream);
  display:flex; align-items:center; justify-content:center; padding:0 10rem;
}
.trust__list{ display:flex; align-items:center; justify-content:center; gap:1rem; }
.trust__item{
  display:flex; align-items:center; gap:1.44119rem;
  font-family:var(--ff-sans); font-weight:500;
  font-size:calc(1.50125rem * var(--display)); letter-spacing:calc(0.15013rem * var(--display));
  color:var(--ink-800); text-transform:uppercase;
  white-space:nowrap; font-variation-settings:"opsz" 14;
}
.trust__dot{
  width:0.6005rem; height:0.6005rem; border-radius:50%; background:var(--bronze); flex:none;
}

/* ======================== INSTITUCIONAL ============================== */
.inst{ position:relative; height:54.5rem; overflow:hidden; background:var(--navy); }
.inst__bg{
  position:absolute; left:-23.75rem; top:-28.5625rem; width:184.9375rem; height:104.0625rem;
  background:center/cover no-repeat;
  transform:scaleX(-1); opacity:.84;
}
.inst__scrim{
  position:absolute; left:0; top:0.1875rem; width:83.625rem; height:54.3125rem;
  background:linear-gradient(to left,
    rgba(23,56,74,0) 0%, rgba(23,56,74,.5) 29.229%, var(--navy) 100%);
}
.inst__copy{ position:absolute; left:16.6875rem; top:5.8125rem; width:41.125rem; }
.inst__title{
  margin-top:1.75rem;
  font-family:var(--ff-serif); font-weight:700; line-height:1.32;
  font-size:calc(3.125rem * var(--display));
  color:var(--cream);
}
.inst__body{ margin-top:1.6875rem; width:39.8125rem; }
.inst__body p{
  font-family:var(--ff-text); font-size:1.5rem; line-height:1.72; color:#fff;
  font-variation-settings:"wdth" 100;
}
.inst__body p + p{ margin-top:2.58125rem; }

/* ============================ ÁREAS ================================== */
.areas{ position:relative; height:115rem; background:var(--navy); overflow:hidden; }
.areas::before{
  content:""; position:absolute; left:0; top:20.125rem; width:100%; height:94.875rem;
  background:linear-gradient(to bottom, var(--navy) 0%, var(--navy-2) 100%);
}
.areas > *:not(.areas__cta){ position:relative; }

.areas__head .eyebrow--sm{ position:absolute; left:54.3125rem; top:4.125rem; white-space:nowrap; }
.areas__title{
  position:absolute; left:50%; transform:translateX(-50%); top:6.875rem; width:57.625rem;
  font-family:var(--ff-serif); font-weight:700; line-height:1.34;
  font-size:calc(3.125rem * var(--display));
  color:var(--cream); text-align:center;
}
.areas__title i{ font-style:italic; font-weight:400; color:var(--sand); }

.grouplabel{
  position:absolute; left:10rem; width:100rem;
  display:flex; align-items:center; gap:1rem;
}
.grouplabel span{
  font-family:var(--ff-sans); font-weight:600; font-size:1rem; letter-spacing:0.12rem;
  color:rgba(217,222,226,.6); text-transform:uppercase; white-space:nowrap;
  line-height:normal; font-variation-settings:"opsz" 14;
}
.grouplabel i{ flex:1; height:0.0625rem; background:rgba(245,242,236,.12); }
.areas__group  .grouplabel{ top:26.25rem; }
.areas__group--2 .grouplabel{ top:59.75rem; }

.card{ position:absolute; border-radius:0.875rem; overflow:hidden; }
.card__head{ display:contents; }
.card__icon{ position:absolute; width:2.25rem; height:2.25rem; }
.card__title{
  position:absolute; font-family:var(--ff-sans); font-weight:700; font-size:2rem;
  line-height:normal; color:var(--cream); white-space:nowrap;
  font-variation-settings:"opsz" 14;
}
.card__rule{ position:absolute; background:var(--bronze); }
.card__body{
  position:absolute; font-family:var(--ff-text); line-height:1.65;
  color:rgba(217,222,226,.72); font-variation-settings:"wdth" 100;
}
.card__kicker{
  position:absolute; font-family:var(--ff-sans); font-weight:600;
  font-size:max(11px,.8125rem); /* !nopx  piso: a malha freada levaria a 9px */
  letter-spacing:0.065rem; line-height:normal; color:rgba(217,222,226,.6); width:28.75rem;
  font-variation-settings:"opsz" 14;
}

.card--lead{
  left:10rem; top:29.875rem; width:43.75rem; height:23.125rem;
  background:var(--navy); box-shadow:inset 0 0 0 0.09644rem rgba(181,138,82,.68);
}
.card--lead .card__icon{ left:2.90375rem; top:3.92rem; }
.card--lead .card__title{ left:6.40375rem; top:3.7325rem; }
.card--lead .card__rule{ left:37.02875rem; top:4.94875rem; width:3.625rem; height:0.19294rem; }
.card--lead .card__body{ left:2.90375rem; top:7.7325rem; width:29.375rem; font-size:1.5rem; }

.card--b, .card--c{
  top:29.875rem; height:23.125rem;
  background:rgba(245,242,236,.06); box-shadow:inset 0 0 0 0.09644rem rgba(245,242,236,.16);
}
.card--b{ left:55.625rem;  width:25rem; }
.card--c{ left:82.5rem; width:27.5rem; }
.card--b .card__icon, .card--c .card__icon{ left:2.40375rem; top:2.89rem; }
.card--b .card__title,.card--c .card__title{ left:5.90375rem; top:2.7025rem; }
.card--b .card__rule{ left:19.7025rem; top:3.91875rem; width:2.70106rem; height:0.19294rem; }
.card--c .card__rule{ left:22.2025rem; top:3.91875rem; width:2.70106rem; height:0.19294rem; }
.card--b .card__body{ left:2.40375rem; top:6.27875rem; width:20rem; font-size:1.40625rem; }
.card--c .card__body{ left:2.40375rem; top:6.27875rem; width:24.1875rem; font-size:1.40625rem; }

.card--d, .card--e{
  top:64.75rem; height:18rem;
  background:rgba(216,199,165,.08); box-shadow:inset 0 0 0 0.11013rem rgba(245,242,236,.16);
}
.card--d{ left:10.3125rem; width:40.625rem; }
.card--e{ left:52.1875rem; width:57.5rem; }
.card--d .card__icon{ left:2.765rem; top:3.15625rem; }
.card--d .card__title{ left:6.265rem; top:2.96875rem; }
.card--d .card__rule{ left:34.14rem; top:4.17125rem; width:3.5rem; height:0.22019rem; }
.card--d .card__body{ left:2.765rem; top:6.96875rem; width:32.095rem; font-size:1.5rem; }
.card--e .card__icon{ left:2.765rem; top:2.65625rem; }
.card--e .card__title{ left:6.265rem; top:2.46875rem; }
.card--e .card__rule{ left:51.015rem; top:3.67125rem; width:3.5rem; height:0.22019rem; }
.card--e .card__kicker{ left:2.765rem; top:5.84375rem; }
.card--e .card__body{ left:2.765rem; top:8.59375rem; width:40.845rem; font-size:1.5rem; }

.areas__cta{ position:absolute; left:0; width:100%; top:95.875rem; text-align:center; }

/* ========================= DIFERENCIAIS ============================== */
.dif{
  position:relative; height:55.375rem; overflow:hidden;
  background:linear-gradient(to right, var(--teal) 0%, var(--navy) 199.43%);
}
.dif__bg{
  position:absolute; inset:0; overflow:hidden; pointer-events:none;
  -webkit-mask-image:linear-gradient(to bottom, rgba(0,0,0,.4585) 0%, rgba(0,0,0,0) 100%);
          mask-image:linear-gradient(to bottom, rgba(0,0,0,.4585) 0%, rgba(0,0,0,0) 100%);
}
.dif__v{ position:absolute; }
.dif__v--1{ left:-23.125rem;    top:1.8875rem;  width:54.18975rem;  height:54.18975rem; }
.dif__v--2{ left:88.93625rem; top:1.8875rem;  width:54.18975rem;  height:54.18975rem; }
.dif__v--3{ left:12.0125rem;   top:-19rem;  width:95.9875rem;   height:95.9875rem;  }

.dif__head{
  position:absolute; left:50%; transform:translateX(-50%); top:9.8125rem;
  width:51.625rem; height:7.4375rem; overflow:hidden;
}
.dif__head .eyebrow--xl{ position:absolute; left:0; width:100%; top:-0.25rem; text-align:center; }
.dif__title{
  position:absolute; left:0; width:100%; top:3.3125rem; text-align:center;
  font-family:var(--ff-serif); font-weight:700; line-height:normal;
  font-size:calc(3.125rem * var(--display));
  color:var(--cream);
}
.dif__rule{ position:absolute; left:0; top:7.375rem; width:51.625rem; height:0.6875rem; background:#d9d9d9; }

.dif__layout{ position:absolute; left:16.0625rem; top:19.375rem; width:87.875rem; display:flex; gap:2.5rem; }
.pilares{ display:flex; flex-direction:column; gap:0.8125rem; width:51.25rem; }
.pilar{
  display:flex; align-items:center; gap:1.75rem; height:8rem; padding:0.875rem 1.75rem;
  background:rgba(245,242,236,.04); box-shadow:inset 0 0 0 0.0625rem rgba(245,242,236,.12);
  border-radius:0.5rem; overflow:hidden;
  transition:background-color .3s var(--ease), border-color .3s var(--ease),
             transform .3s var(--ease);
}
.pilar:hover{
  background:rgba(245,242,236,.08); box-shadow:inset 0 0 0 0.0625rem rgba(216,199,165,.35);
  transform:translateX(0.25rem);
}
.pilar__icon{ width:3.375rem; height:3.375rem; flex:none; }
.pilar__copy{ display:flex; flex-direction:column; gap:0.375rem; width:40.875rem; }
.pilar__title{
  font-family:var(--ff-sans); font-weight:700; font-size:1.75rem; line-height:1.2;
  color:var(--cream); font-variation-settings:"opsz" 14;
}
.pilar__body{
  font-family:var(--ff-text); font-size:1.28125rem; line-height:1.45;
  color:rgba(217,222,226,.7); font-variation-settings:"wdth" 100;
}

.prova{
  position:relative; width:34.125rem; height:25.625rem; flex:none; overflow:hidden;
  background:var(--navy); box-shadow:inset 0 0 0 0.0625rem rgba(216,199,165,.35); border-radius:0.5rem;
}
.prova__mark{ position:absolute; left:24.3125rem; top:15.875rem; width:11.25rem; height:11.25rem; }
.prova__eyebrow{
  position:absolute; left:2.6875rem; top:2.3125rem;
  font-family:var(--ff-sans); font-weight:600; font-size:1rem; line-height:1.2;
  letter-spacing:0.14rem; color:var(--sand); text-transform:uppercase;
  white-space:nowrap; font-variation-settings:"opsz" 14;
}
.prova__metric{
  position:absolute; left:2.6875rem; top:4.3875rem; width:28.625rem; height:7.25rem;
  display:flex; align-items:center; gap:1.5rem; color:var(--cream);
}
.prova__num{
  font-family:var(--ff-serif); font-weight:700; line-height:1;
  font-size:calc(6.75rem * var(--display)); letter-spacing:calc(-0.2025rem * var(--display));
  white-space:nowrap;
}
.prova__unit{
  font-family:var(--ff-sans); font-weight:700; font-size:1.6875rem; line-height:1.18;
  width:16.875rem; font-variation-settings:"opsz" 14;
}
.prova__divider{ position:absolute; left:2.6875rem; top:12.5125rem; width:8.75rem; height:0.0625rem; background:var(--sand); }
.prova__body{
  position:absolute; left:2.6875rem; top:13.45rem; width:24.375rem;
  font-family:var(--ff-text); font-size:1.28125rem; line-height:1.45;
  color:rgba(217,222,226,.78); font-variation-settings:"wdth" 100;
}

/* ============================ SOCIAL ================================= */
.social{ position:relative; height:54.75rem; background:var(--ink-900); overflow:hidden; }
.social__head{ position:absolute; left:27.125rem; top:8.4375rem; width:65.8125rem; height:16.375rem; }
.social__headcopy{ position:absolute; left:0; top:2.25rem; display:flex; flex-direction:column; gap:1.125rem; }
.social__title{
  font-family:var(--ff-serif); font-weight:700; line-height:normal;
  font-size:calc(3.125rem * var(--display));
  color:var(--cream); width:31.9375rem;
}
.rating{
  position:absolute; left:34.5rem; top:3.33rem; width:31.31169rem;
  display:flex; align-items:center; justify-content:space-between;
  padding:2.23219rem 2.97625rem; border-radius:0.74406rem; text-decoration:none;
  background:rgba(245,242,236,.05); border:0.124rem solid rgba(245,242,236,.1);
  white-space:nowrap;
  transition:background-color .3s var(--ease), border-color .3s var(--ease);
}
.rating:hover{ background:rgba(245,242,236,.09); border-color:rgba(255,174,32,.4); }
.rating__score{
  font-family:var(--ff-serif); font-weight:700; color:var(--amber);
  font-size:calc(4.21638rem * var(--display));
  line-height:normal;
}
.rating__meta{ display:flex; flex-direction:column; gap:0.37206rem; }
.rating__stars{
  font-family:var(--ff-sans); font-weight:600; font-size:1.73612rem; letter-spacing:0.31251rem;
  color:var(--amber); line-height:normal; font-variation-settings:"opsz" 14;
}
.rating__count{
  font-family:var(--ff-text); font-size:1.55012rem; color:rgba(217,222,226,.7);
  line-height:normal; font-variation-settings:"wdth" 100;
}

.marquee{ position:absolute; left:0; top:29.1875rem; width:100%; height:14.14312rem; overflow:hidden; }
.marquee__track{ display:flex; gap:1.495rem; width:max-content; will-change:transform; }
.rev{
  position:relative; flex:none; width:40.22138rem; height:14.14312rem;
  padding:2.4375rem 2.875rem 0 2.875rem;
}
.rev::before{
  content:""; position:absolute; left:0.17875rem; top:0.29812rem;
  width:40.04237rem; height:13.84475rem; border-radius:1.07419rem;
  background:rgba(23,56,74,.2);
}
.rev > *{ position:relative; }
.rev__head{ display:flex; align-items:center; gap:0.875rem; }
.rev__avatar{
  width:2.125rem; height:2.125rem; border-radius:50%; flex:none;
  background:var(--av,#4a6a7a); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--ff-sans); font-weight:500; font-size:1rem; line-height:1;
}
.rev__id{ display:flex; flex-direction:column; gap:0.125rem; }
.rev__name{
  font-family:var(--ff-text); line-height:1.2;
  font-size:max(12.5px,.9375rem); /* !nopx */
  color:rgba(245,242,236,.82); font-variation-settings:"wdth" 100;
}
.rev__sub{ font-family:var(--ff-text); font-size:max(11px,.8125rem); line-height:1.2; color:rgba(217,222,226,.5); } /* !nopx */
.rev__meta{ display:flex; align-items:center; gap:0.625rem; margin-top:0.875rem; }
.rev__stars{ font-size:0.875rem; letter-spacing:0.0625rem; color:var(--amber); line-height:1; }
.rev__when{ font-family:var(--ff-text); font-size:max(11px,.8125rem); color:rgba(217,222,226,.5); line-height:1; } /* !nopx */
.rev__text{
  margin-top:1rem; font-family:var(--ff-text); line-height:1.6;
  font-size:max(12.5px,.9375rem); /* !nopx */
  color:rgba(217,222,226,.72); font-variation-settings:"wdth" 100;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.social__more{ position:absolute; left:0; top:47.6875rem; width:100%; text-align:center; }
.social__more a{
  font-family:var(--ff-text); font-size:1.31725rem; line-height:1.7; color:var(--amber);
  text-decoration:underline; text-underline-offset:0.1875rem;
  font-variation-settings:"wdth" 100;
}
.social__more a:hover{ color:#ffc355; }

/* ============================== FAQ ================================== */
.faq{
  position:relative; background:var(--navy); overflow:hidden;
  padding:7rem 0 9.625rem;
}
.faq__bg{
  position:absolute; left:-51.3125rem; top:-42.4375rem;
  width:202.95988rem; height:172.75244rem; opacity:.65; pointer-events:none;
  -webkit-mask-image:linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 100%);
          mask-image:linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 100%);
  -webkit-mask-size:120rem 117rem;  mask-size:120rem 117rem;
  -webkit-mask-position:51.3125rem 42.4375rem; mask-position:51.3125rem 42.4375rem;
  -webkit-mask-repeat:no-repeat;     mask-repeat:no-repeat;
}
.faq > *:not(.faq__bg){ position:relative; }
.faq__head{ display:flex; flex-direction:column; align-items:center; gap:1.66187rem; }
.faq__title{
  font-family:var(--ff-serif); font-weight:700; line-height:normal;
  font-size:calc(3.13912rem * var(--display));
  color:var(--cream); white-space:nowrap;
}
.faq__list{ width:42.375rem; margin:4.615rem auto 0; }
.faq__item{ border-bottom:0.09287rem solid rgba(245,242,236,.1); }
.faq__item + .faq__item{ margin-top:0.29375rem; }
.faq__q{
  width:100%; display:flex; align-items:center; justify-content:space-between;
  gap:1.5rem; padding:2.04394rem 0; text-align:left;
  font-family:var(--ff-sans); font-weight:600; font-size:1.53294rem; line-height:normal;
  color:var(--cream); font-variation-settings:"opsz" 14;
  transition:color .25s var(--ease);
}
.faq__q:hover{ color:var(--sand); }
.faq__q i{
  flex:none; width:1.85813rem; height:1.85813rem; position:relative;
  font-style:normal; color:var(--sand);
}
.faq__q i::before,
.faq__q i::after{
  content:""; position:absolute; left:50%; top:50%; background:currentColor;
  transform:translate(-50%,-50%); transition:transform .3s var(--ease), opacity .3s var(--ease);
}
.faq__q i::before{ width:1.0625rem; height:0.125rem; }
.faq__q i::after{  width:0.125rem;  height:1.0625rem; }
.faq__q[aria-expanded="true"] i::after{ transform:translate(-50%,-50%) scaleY(0); opacity:0; }
.faq__q[aria-expanded="true"]{ color:var(--sand); }
.faq__a{ overflow:hidden; }
.faq__a p{
  padding:0 3.75rem 2.04394rem 0;
  font-family:var(--ff-text); font-size:1.28125rem; line-height:1.65;
  color:rgba(217,222,226,.75); font-variation-settings:"wdth" 100;
}
.faq__a a{ color:var(--sand); text-underline-offset:0.1875rem; }

.faq__next{ margin-top:12.24375rem; text-align:center; }
.faq__nexttitle{
  width:34rem; margin:1.375rem auto 0;
  font-family:var(--ff-serif); font-weight:700; line-height:normal;
  font-size:calc(3.79456rem * var(--display));
  color:var(--cream);
}
.faq__nextbody{
  width:51.5rem; margin:1.375rem auto 0;
  font-family:var(--ff-text); font-size:1.59769rem; line-height:1.7;
  color:rgba(217,222,226,.78); font-variation-settings:"wdth" 100;
}
.btn--faq{ margin-top:3.31875rem; }
.faq__contact{
  margin-top:3.85625rem; display:flex; align-items:center; justify-content:center;
  gap:3.59481rem; white-space:nowrap;
  font-family:var(--ff-sans); font-weight:500; font-size:1.29812rem; line-height:normal;
  color:rgba(216,199,165,.85); font-variation-settings:"opsz" 14;
}
.faq__contact a{ text-decoration:none; transition:color .25s var(--ease); }
.faq__contact a:hover{ color:var(--amber); text-decoration:underline; text-underline-offset:0.25rem; }

/* ============================ FOOTER ================================= */
.ftr{ background:var(--graphite); }
.ftr__in{ padding:6.00437rem calc(10rem + var(--gutter)) 7.99062rem; }
.ftr__logo{ position:relative; display:block; width:10.51463rem; height:4.59369rem; }
.ftr__mark{ position:absolute; left:0;       top:0;      width:3.42437rem; height:4.49937rem; }
.ftr__word{ position:absolute; left:4.48875rem; top:0.37375rem; width:5.48813rem; height:3.71125rem; }
.ftr__addr{
  margin-top:1.49875rem;
  font-family:var(--ff-text); font-size:1.36563rem; line-height:1.7;
  color:rgba(217,222,226,.65); font-variation-settings:"wdth" 100;
}
.ftr__areas{
  margin-top:2.3875rem; width:23.32025rem;
  font-family:var(--ff-sans); font-weight:500; font-size:1.31306rem; line-height:normal;
  color:rgba(216,199,165,.8); font-variation-settings:"opsz" 14;
}
.ftr__divider{ display:block; margin-top:1.86062rem; width:79.625rem; height:0.10506rem; background:rgba(245,242,236,.1); }
.ftr__legal{
  margin-top:2.1rem; width:39.70744rem;
  font-family:var(--ff-text); font-size:1.26056rem; line-height:normal;
  color:rgba(217,222,226,.45); font-variation-settings:"wdth" 100;
}

/* =====================================================================
   EFEITOS  —  tudo atrás de html.fx (JS liga quando o usuário aceita
   movimento). Sem .fx a página é o Figma estático: ?nofx=1 e
   prefers-reduced-motion continuam batendo pixel a pixel.
   Regra: só opacity / transform / filter / box-shadow. Nada desloca layout.
   ===================================================================== */

/* 1. Hero — entrada encenada + luz que respira ------------------------ */
@keyframes fx-rise{ from{ opacity:0; transform:translateY(1.375rem); } to{ opacity:1; transform:none; } }
.fx .hero__copy > *{ animation:fx-rise .95s var(--ease) both; }
.fx .hero__eyebrow{ animation-delay:.05s; }
.fx .hero__title{   animation-delay:.18s; }
.fx .hero__sub{     animation-delay:.34s; }
.fx .hero__cta{     animation-delay:.50s; }

@keyframes fx-glow{ from{ opacity:.78; transform:scale(.985); } to{ opacity:1; transform:scale(1.03); } }
@keyframes fx-drift{ from{ transform:scale(1); } to{ transform:scale(1.045); } }
@media (min-width:1024px){
  .fx .hero__glow{ transform-origin:50% 50%; animation:fx-glow 9s ease-in-out infinite alternate; }
  .fx .hero__photo{ transform-origin:50% 40%; animation:fx-drift 26s ease-in-out infinite alternate; }
}

/* grão de filme: dá matéria às áreas chapadas. Fica abaixo do texto. */
.fx .hero::after,
.fx .social::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:240px 240px; /* !nopx */
  /* soft-light .2: sobre #0e202a, overlay a .07 media desvio 0,10 (invisível);
     soft-light .2 mede ~0,9 e sobe a base só 2 níveis */
  opacity:.2; mix-blend-mode:soft-light;
}
.fx .hero__copy{ z-index:2; }
.fx .social > *{ z-index:2; }

/* rodapé é o último reveal e não tem overflow: sem clip, o translateY
   esticaria a página em 1.125rem até ele entrar */
.fx .ftr{ overflow:clip; }

/* 2. Header — ganha peso quando descola do topo ----------------------- */
.fx .hdr{ transition:background-color .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease); }
.fx .hdr.is-scrolled{
  background:rgba(23,56,74,.9);
  -webkit-backdrop-filter:blur(0.875rem) saturate(1.3); backdrop-filter:blur(0.875rem) saturate(1.3);
  box-shadow:0 0.75rem 2.125rem rgba(0,0,0,.28);
  border-bottom-color:rgba(216,199,165,.18);
}

/* 3. Reveal — escalonado por grupo, filetes desenham depois ----------- */
.fx [data-reveal="line"]{ transform:scaleX(0); transform-origin:left center; opacity:1; }
.fx [data-reveal="line"].is-in{ transform:none; transition:transform 1s var(--ease); }

.fx .card:not(.is-in) .card__rule,
.fx .prova:not(.is-in) .prova__divider,
.fx .dif__head:has(.dif__title:not(.is-in)) .dif__rule{ transform:scaleX(0); }  /* .dif__head centraliza por translateX: não pode receber data-reveal */
.fx .card__rule{ transform-origin:right center; transition:transform .9s var(--ease) .45s; }
.fx .prova__divider,
.fx .dif__rule{ transform-origin:left center; transition:transform .9s var(--ease) .45s; }
.fx .grouplabel:not(.is-in) i{ transform:scaleX(0); }
.fx .grouplabel i{ transform-origin:left center; transition:transform 1.1s var(--ease) .25s; }

/* 4. Superfícies — hover com relevo e luz que segue o ponteiro -------- */
.fx .card,.fx .pilar,.fx .prova,.fx .rating{ isolation:isolate; }
.fx .card{ transition:transform .35s var(--ease), box-shadow .35s var(--ease); }
.fx .card__icon{ transition:transform .35s var(--ease); }
.fx .card::after,.fx .pilar::after,.fx .prova::after,.fx .rating::after{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  border-radius:inherit; opacity:0; transition:opacity .45s var(--ease);
  background:radial-gradient(26.25rem circle at var(--mx,50%) var(--my,50%),
             rgba(216,199,165,.13), rgba(216,199,165,0) 62%);
}
@media (hover:hover) and (pointer:fine){
  .fx .card:hover{
    transform:translateY(-0.3125rem);
    box-shadow:inset 0 0 0 0.1rem rgba(181,138,82,.6), 0 1.375rem 2.75rem rgba(0,0,0,.28);
  }
  .fx .card:hover .card__icon{ transform:translateY(-0.125rem); }
  .fx .card:hover::after,.fx .pilar:hover::after,
  .fx .prova:hover::after,.fx .rating:hover::after{ opacity:1; }
  .fx .prova{ transition:transform .35s var(--ease), box-shadow .35s var(--ease); }
  .fx .prova:hover{ transform:translateY(-0.25rem); box-shadow:inset 0 0 0 0.0625rem rgba(216,199,165,.55), 0 1.375rem 2.75rem rgba(0,0,0,.28); }
}

/* 5. Botões — varredura de luz no hover, halo no CTA principal -------- */
.fx .btn{ position:relative; overflow:hidden; }
.fx .btn::before{
  content:""; position:absolute; top:-40%; bottom:-40%; left:-30%; width:45%;
  background:linear-gradient(105deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.42) 50%, rgba(255,255,255,0) 100%);
  transform:translateX(-160%) skewX(-16deg); pointer-events:none;
}
@media (hover:hover) and (pointer:fine){
  .fx .btn:hover::before{ transition:transform .8s var(--ease); transform:translateX(420%) skewX(-16deg); }
}
@keyframes fx-halo{
  0%  { box-shadow:0 0 0 0 rgba(255,174,32,.42); }
  70% { box-shadow:0 0 0 1.375rem rgba(255,174,32,0); }
  100%{ box-shadow:0 0 0 1.375rem rgba(255,174,32,0); }
}
@media (min-width:1024px){
  .fx .btn--hero{ animation:fx-halo 4.6s var(--ease) 2.2s infinite; }
  .fx .btn--hero:hover{ animation:none; }
}

/* 6. Fundos — deriva lenta ligada ao scroll (sem JS, cai para estático) */
@supports (animation-timeline: scroll()){
  @media (min-width:1024px){
    @keyframes fx-inst{ from{ transform:scaleX(-1) translateY(-2.125rem); } to{ transform:scaleX(-1) translateY(2.125rem); } }
    .fx .inst__bg{ animation:fx-inst linear both; animation-timeline:view(); animation-range:entry 0% exit 100%; }

    @keyframes fx-up{   from{ transform:translateY(2.875rem); }  to{ transform:translateY(-2.875rem); } }
    @keyframes fx-down{ from{ transform:translateY(-1.875rem); } to{ transform:translateY(1.875rem); } }
    .fx .dif__v--3{ animation:fx-up linear both;   animation-timeline:view(); animation-range:entry 0% exit 100%; }
    .fx .dif__v--1,
    .fx .dif__v--2{ animation:fx-down linear both; animation-timeline:view(); animation-range:entry 0% exit 100%; }
    .fx .faq__bg{   animation:fx-down linear both; animation-timeline:view(); animation-range:entry 0% exit 100%; }
  }
}

/* 7. Prova social — bordas esmaecidas, cartão responde, estrelas acendem */
.fx .marquee{
  -webkit-mask-image:linear-gradient(to right, transparent 0, #000 9%, #000 91%, transparent 100%);
          mask-image:linear-gradient(to right, transparent 0, #000 9%, #000 91%, transparent 100%);
}
.fx .rev{ transition:transform .35s var(--ease); }
.fx .rev::before{ transition:background-color .35s var(--ease), box-shadow .35s var(--ease); }
@media (hover:hover) and (pointer:fine){
  .fx .rev:hover{ transform:translateY(-0.25rem); }
  .fx .rev:hover::before{ background:rgba(23,56,74,.42); box-shadow:inset 0 0 0 0.0625rem rgba(216,199,165,.22); }
}
.fx .rating__stars span{ display:inline-block; transform:scale(.4); opacity:0; transition:transform .5s var(--ease), opacity .3s var(--ease); }
.fx .social__head.is-in .rating__stars span{ transform:none; opacity:1; }
.fx .social__head.is-in .rating__stars span:nth-child(1){ transition-delay:.45s; }
.fx .social__head.is-in .rating__stars span:nth-child(2){ transition-delay:.55s; }
.fx .social__head.is-in .rating__stars span:nth-child(3){ transition-delay:.65s; }
.fx .social__head.is-in .rating__stars span:nth-child(4){ transition-delay:.75s; }
.fx .social__head.is-in .rating__stars span:nth-child(5){ transition-delay:.85s; }

/* 8. FAQ — resposta entra depois da altura, ícone gira ---------------- */
.fx .faq__q i{ transition:transform .4s var(--ease); }
.fx .faq__q[aria-expanded="true"] i{ transform:rotate(180deg); }
.fx .faq__a p{ opacity:0; transform:translateY(-0.375rem); transition:opacity .35s var(--ease), transform .35s var(--ease); }
.fx .faq__a[aria-hidden="false"] p{ opacity:1; transform:none; transition-delay:.12s; }
@media (hover:hover) and (pointer:fine){
  .fx .faq__item:hover{ border-bottom-color:rgba(216,199,165,.35); }
}

/* =====================================================================
   CAMADAS DE SANGRIA — ancoradas na viewport, nao na malha
   Foto, brilho e arcos precisam cobrir a tela inteira. Com a malha freada
   eles parariam antes da borda (a foto do hero morreria a 114.9375rem numa tela
   de 1920). Aqui viram vw: mesma composicao do Figma a 1920, cobertura
   correta acima disso. O mobile tem override proprio e nao entra.
   ===================================================================== */
@media (min-width:1024px){
  .hero__photo,
  .hero__scrim{ left:-21.66667vw; top:-30.67708vw; width:143.33333vw; height:80vw; }
  .hero__camada{ top:-4.10839vw; width:114.92865vw; height:57.59182vw; }
  .hero__glow{ left:-5.125vw; top:-27.91667vw; width:110.15625vw; height:110.10417vw; }

  .inst__bg{ left:-19.79167vw; top:-23.80208vw; width:154.11458vw; height:86.71875vw; }
  .inst__scrim{ left:0; top:0; width:69.6875vw; height:100%; }

  .dif__v--1{ left:-19.27083vw; top:1.57292vw; width:45.15813vw; height:45.15813vw; }
  .dif__v--2{ left:74.11354vw;  top:1.57292vw; width:45.15813vw; height:45.15813vw; }
  .dif__v--3{ left:10.01042vw;  top:-15.83333vw; width:79.98958vw; height:79.98958vw; }

  .faq__bg{
    left:-42.76042vw; top:-35.36458vw; width:169.13323vw; height:143.95995vw;
    -webkit-mask-size:100vw 97.5vw;  mask-size:100vw 97.5vw;
    -webkit-mask-position:42.76042vw 35.36458vw; mask-position:42.76042vw 35.36458vw;
  }
}

/* ===================== BARRA FIXA (MOBILE) =========================== */
.dock{ display:none; }

/* =====================================================================
   MOBILE / TABLET  —  abaixo de 64rem o layout sai da malha do Figma
   e passa a usar px reais, empilhado. (bloco não convertido)
   ===================================================================== */
/* !nopx-start */
@media (max-width:1023px){
  html{ font-size:16px; }
  :root{ --hdr-h:72px; }
  body{ padding-bottom:76px; }

  /* --- header --- */
  .hdr{ height:72px; }
  .hdr__in{ padding:0 20px; }
  .hdr__logo{ width:104px; height:45px; }
  .hdr__mark{ left:0; top:0; width:34px; height:44px; }
  .hdr__word{ left:44px; top:4px; width:54px; height:37px; }

  .hdr__burger{
    display:flex; flex-direction:column; justify-content:center; gap:5px;
    width:44px; height:44px; padding:0 8px; z-index:2;
  }
  .hdr__burger span{
    display:block; height:2px; background:var(--cream); border-radius:2px;
    transition:transform .3s var(--ease), opacity .2s var(--ease);
  }
  .hdr__burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .hdr__burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
  .hdr__burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

  .nav{
    position:fixed; left:0; right:0; top:72px; z-index:99;
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--navy); border-bottom:1px solid rgba(245,242,236,.1);
    padding:8px 20px 24px;
    transform:translateY(-8px); opacity:0; visibility:hidden; pointer-events:none;
    transition:opacity .25s var(--ease), transform .25s var(--ease), visibility .25s;
    max-height:calc(100dvh - 72px); overflow-y:auto;
  }
  .nav.is-open{ transform:none; opacity:1; visibility:visible; pointer-events:auto; }
  .nav__link{
    justify-content:flex-start; padding:16px 4px; font-size:18px;
    border-bottom:1px solid rgba(245,242,236,.08);
  }
  .nav__link::after{ display:none; }
  .nav__cta{ margin-top:20px; padding:16px 24px; font-size:16px; border-radius:4px; }

  /* --- hero --- */
  .hero{ height:auto; min-height:auto; padding:56px 20px 64px; }
  .hero__photo, .hero__scrim{
    left:50%; top:0; width:auto; height:100%; right:0; transform:none;
    inset:0; background-size:cover; background-position:60% center;
  }
  .hero__photo{ background-image:url("../img/hero-sm.jpg"); }
  .inst__bg{ background-image:url("../img/inst-sm.jpg"); }
  .hero__scrim{
    background:linear-gradient(180deg, rgba(23,56,74,.72) 0%, rgba(23,56,74,.9) 100%);
  }
  .hero__camada{ display:none; }
  .hero__glow{ left:-60%; top:-30%; width:220%; height:auto; opacity:.7; }
  .hero__copy{
    position:relative; left:auto; top:auto; transform:none; width:100%; gap:20px;
  }
  .hero__eyebrow{ font-size:11px; letter-spacing:1.8px; white-space:normal; text-align:center; }
  .hero__title{ font-size:31px; line-height:1.22; }
  .hero__sub{ width:100%; font-size:16px; line-height:1.55; }
  .hero__cta{ width:100%; gap:18px; }
  .btn--hero{ width:100%; max-width:420px; height:60px; font-size:19px; border-radius:6px; }
  .hero__note{ font-size:14px; }

  /* --- trust --- */
  .trust{ height:auto; padding:26px 20px; }
  .trust__list{ flex-wrap:wrap; gap:10px 4px; }
  .trust__item{ font-size:12px; letter-spacing:1.2px; gap:8px; padding:0 6px; }
  .trust__dot{ width:5px; height:5px; }

  /* --- institucional --- */
  .inst{ height:auto; padding:56px 20px 60px; }
  .inst__bg{
    inset:0; width:100%; height:100%; left:0; top:0;
    background-position:center; transform:none; opacity:.28;
  }
  .inst__scrim{
    inset:0; width:100%; height:100%; top:0;
    background:linear-gradient(180deg, rgba(23,56,74,.86) 0%, rgba(23,56,74,.96) 100%);
  }
  .inst__copy{ position:relative; left:auto; top:auto; width:100%; }
  .eyebrow--lg{ font-size:12px; letter-spacing:2.2px; }
  .inst__title{ margin-top:14px; font-size:28px; line-height:1.3; }
  .inst__body{ margin-top:20px; width:100%; }
  .inst__body p{ font-size:16px; line-height:1.7; }
  .inst__body p + p{ margin-top:18px; }
  .brk{ display:none; }

  /* --- áreas --- */
  .areas{ height:auto; padding:56px 20px 64px; }
  .areas::before{ inset:0; top:0; height:100%; }
  .areas__head{ text-align:center; }
  .areas__head .eyebrow--sm{ position:static; display:block; font-size:12px; letter-spacing:2px; }
  .areas__title{
    position:static; transform:none; width:100%; margin-top:14px;
    font-size:28px; line-height:1.3;
  }
  .grouplabel,
  .areas__group .grouplabel,
  .areas__group--2 .grouplabel{ position:static; width:100%; margin:36px 0 16px; }
  .grouplabel span{ font-size:11px; letter-spacing:1.6px; }
  .areas__group--2 .grouplabel{ margin-top:32px; }
  .cards{ display:flex; flex-direction:column; gap:14px; }
  .card{
    position:relative; left:auto !important; top:auto !important;
    width:100% !important; height:auto !important;
    padding:24px 22px 26px; border-radius:12px;
  }
  .card__icon{ position:static; width:30px; height:30px; }
  .card__title{
    position:static; margin-top:12px; font-size:21px; white-space:normal;
  }
  .card__rule{ position:static; display:block; margin-top:14px; width:44px !important; height:2px !important; }
  .card__kicker{ position:static; width:100%; margin-top:12px; font-size:11px; letter-spacing:.8px; }
  .card__body{
    position:static; width:100% !important; margin-top:12px;
    font-size:16px !important; line-height:1.6;
  }
  .areas__cta{ position:static; margin-top:40px; }
  .btn--outline{ width:100%; max-width:440px; height:64px; font-size:17px; border-width:2px; }

  /* --- diferenciais --- */
  .dif{ height:auto; padding:56px 20px 60px; }
  .dif__bg{ opacity:.5; }
  .dif__head{ position:static; transform:none; width:100%; height:auto; overflow:visible; }
  .dif__head .eyebrow--xl{ position:static; font-size:13px; letter-spacing:3px; }
  .dif__title{ position:static; margin-top:12px; font-size:26px; line-height:1.25; }
  .dif__rule{ position:static; margin:18px auto 0; width:120px; height:1px; background:rgba(216,199,165,.5); }
  .dif__layout{ position:static; width:100%; margin-top:32px; flex-direction:column; gap:14px; }
  .pilares{ width:100%; gap:12px; }
  .pilar{ height:auto; padding:18px 18px; gap:16px; align-items:flex-start; }
  .pilar:hover{ transform:none; }
  .pilar__icon{ width:34px; height:34px; }
  .pilar__copy{ width:auto; }
  .pilar__title{ font-size:18px; }
  .pilar__body{ font-size:14.5px; }
  .prova{ width:100%; height:auto; padding:24px 22px 28px; }
  .prova__mark{ left:auto; right:-30px; top:auto; bottom:-20px; width:130px; height:130px; opacity:.5; }
  .prova__eyebrow{ position:static; font-size:12px; letter-spacing:2px; }
  .prova__metric{ position:static; width:100%; height:auto; margin-top:10px; gap:16px; }
  .prova__num{ font-size:66px; letter-spacing:-2px; }
  .prova__unit{ font-size:18px; width:auto; }
  .prova__divider{ position:static; margin-top:16px; }
  .prova__body{ position:static; width:100%; margin-top:14px; font-size:14.5px; }

  /* --- social --- */
  .social{ height:auto; padding:56px 0 56px; }
  .social__head{ position:static; width:100%; height:auto; padding:0 20px; }
  .social__headcopy{ position:static; gap:12px; }
  .social__title{ width:100%; font-size:26px; line-height:1.25; }
  .rating{
    position:static; width:100%; margin-top:22px; padding:18px 22px; gap:18px;
    justify-content:flex-start; border-radius:10px; border-width:1px;
  }
  .rating__score{ font-size:40px; }
  .rating__stars{ font-size:16px; letter-spacing:2px; }
  .rating__count{ font-size:14px; }
  .marquee{ position:static; height:auto; margin-top:30px; }
  .marquee__track{ gap:14px; padding:0 20px; }
  .rev{ width:min(84vw,340px); height:auto; min-height:190px; padding:20px 20px 22px; }
  .rev::before{ inset:0; left:0; top:0; width:100%; height:100%; border-radius:12px; }
  .rev__avatar{ width:30px; height:30px; font-size:14px; }
  .rev__name{ font-size:14px; }
  .rev__text{ font-size:14px; -webkit-line-clamp:4; }
  .social__more{ position:static; margin-top:28px; }
  .social__more a{ font-size:16px; }

  /* --- faq --- */
  .faq{ padding:56px 20px 60px; }
  .faq__bg{ opacity:.35; }
  .faq__head{ gap:12px; }
  .eyebrow--md{ font-size:12px; letter-spacing:2.2px; }
  .faq__title{ font-size:28px; white-space:normal; text-align:center; }
  .faq__list{ width:100%; margin-top:32px; }
  .faq__q{ padding:20px 0; font-size:16.5px; gap:14px; }
  .faq__q i{ width:22px; height:22px; }
  .faq__q i::before{ width:14px; }
  .faq__q i::after{ height:14px; }
  .faq__a p{ padding:0 0 20px; font-size:15px; }
  .faq__next{ margin-top:56px; }
  .faq__nexttitle{ width:100%; margin-top:12px; font-size:30px; line-height:1.22; }
  .faq__nextbody{ width:100%; margin-top:14px; font-size:16px; line-height:1.6; }
  .btn--faq{ margin-top:28px; width:100%; max-width:420px; height:60px; font-size:17px; border-radius:6px; }
  .faq__contact{
    margin-top:30px; flex-direction:column; gap:10px; font-size:14px; white-space:normal;
    text-align:center;
  }

  /* --- footer --- */
  .ftr__in{ padding:44px 20px 48px; }
  .ftr__logo{ width:104px; height:45px; }
  .ftr__mark{ width:34px; height:44px; }
  .ftr__word{ left:44px; top:4px; width:54px; height:37px; }
  .ftr__addr{ margin-top:20px; font-size:14.5px; }
  .ftr__areas{ margin-top:20px; width:100%; font-size:14.5px; }
  .ftr__divider{ margin-top:24px; width:100%; height:1px; }
  .ftr__legal{ margin-top:20px; width:100%; font-size:13px; line-height:1.6; }

  /* --- dock --- */
  .dock{
    position:fixed; left:0; right:0; bottom:0; z-index:120;
    display:flex; gap:8px; padding:10px 12px calc(10px + env(safe-area-inset-bottom));
    background:rgba(14,32,42,.94); backdrop-filter:blur(10px);
    border-top:1px solid rgba(245,242,236,.1);
  }
  .dock__btn{
    flex:1; display:flex; align-items:center; justify-content:center; height:48px;
    border-radius:6px; text-decoration:none; font-family:var(--ff-sans);
    font-weight:700; font-size:15px;
  }
  .dock__btn--solid{ background:var(--amber); color:var(--navy); }
}

@media (min-width:1024px){
  .hero__photo{ background-image:url("../img/hero.jpg"); }
  .inst__bg{   background-image:url("../img/inst.jpg");  }
}

@media (max-width:1023px) and (orientation:landscape){
  .hero{ padding-top:40px; padding-bottom:44px; }
}

@media print{
  .hdr,.dock,.marquee,.hero__glow,.hero__camada{ display:none !important; }
  body{ background:#fff; color:#000; }
}
/* !nopx-end */
