/* =========================================================
   NECI HUB — home
   Tipografia do PDF de serviços (Moonshine, Bowlby, Julius, Pinyon, Poppins),
   blocos de cor da apresentação comercial, liquid glass no menu e nos cartões.
   ========================================================= */

/* Moonshine dos títulos do PDF: unicase, sem dígitos, Y, "&" nem "!" (caem no Poppins 500) */
@font-face{ font-family:"Moon"; src:url(../essencial/fonts/NeciMoonHome.woff2) format("woff2"); font-display:swap; }
@font-face{ font-family:"Bowlby"; src:url(../essencial/fonts/BowlbyOneSC-400.woff2) format("woff2"); font-display:swap; }
@font-face{ font-family:"Pinyon"; src:url(../essencial/fonts/PinyonScript-400.woff2) format("woff2"); font-display:swap; }
@font-face{ font-family:"Julius"; src:url(../essencial/fonts/JuliusSansOne-400.woff2) format("woff2"); font-display:swap; }
@font-face{ font-family:"Poppins"; font-weight:400; src:url(../essencial/fonts/Poppins-400.woff2) format("woff2"); font-display:swap; }
@font-face{ font-family:"Poppins"; font-weight:500; src:url(../essencial/fonts/Poppins-500.woff2) format("woff2"); font-display:swap; }
@font-face{ font-family:"Poppins"; font-weight:600; src:url(../essencial/fonts/Poppins-600.woff2) format("woff2"); font-display:swap; }

:root{
  --cream:      #F6EFDD;
  --cream-2:    #EFE6CE;
  --paper:      #F2EBD9;
  --papel:      #FBF7EC;
  --wine:       #3A0C0C;
  --wine-2:     #5C1712;
  --wine-3:     #2A0808;
  --tijolo:     #A8322A;
  --mostarda:   #E8A820;
  --ouro:       #B8820F;
  --ouro-claro: #F3CF8A;
  --azul:       #2E5FA3;
  --navy:       #16263D;
  --navy-2:     #1E3453;
  --verde:      #3A4526;
  --verde-2:    #56633A;
  /* nomes antigos, usados em trechos que não mudaram */
  --terra:      var(--tijolo);
  --gold:       var(--mostarda);
  --petrol:     var(--azul);

  --ink:        #2A1512;
  --ink-soft:   rgba(42,21,18,.78);
  --ink-faint:  rgba(42,21,18,.52);
  --hair:       rgba(58,12,12,.16);

  --on-dark:       #F6EFDD;
  --on-dark-soft:  rgba(246,239,221,.8);
  --on-dark-faint: rgba(246,239,221,.52);
  --hair-dark:     rgba(246,239,221,.18);

  --g-bg:       rgba(246,239,221,.4);
  --g-brd:      rgba(255,255,255,.6);
  --g-blur:     20px;
  --g-r:        20px;

  --faixa-h: clamp(54px, 5.6vw, 76px);   /* altura da faixa de palavras, que fecha a capa */
  --maxw: 1220px;
  --pad: clamp(20px, 5vw, 64px);

  --f-display: "Moon","Poppins",system-ui,sans-serif;
  --f-label: "Julius","Poppins",system-ui,sans-serif;
  --f-num: "Bowlby","Poppins",system-ui,sans-serif;
  --f-body: "Poppins",system-ui,sans-serif;
  --f-script: "Pinyon","Snell Roundhand",cursive;

  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
  --mola: cubic-bezier(.34,1.56,.64,1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; overflow-x:clip; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  font-family:var(--f-body);
  font-size:clamp(15px,1.02vw,17px);
  line-height:1.65;
  color:var(--ink);
  background:var(--cream);
  overflow-x:hidden;   /* navegadores antigos */
  overflow-x:clip;     /* não cria área de rolagem: o position:sticky do filme e dos slides depende disso */
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; }
button{ font:inherit; color:inherit; }
html{ -webkit-tap-highlight-color:transparent; }
a, button, label, .member{ touch-action:manipulation; }

.wrap{ width:min(100% - var(--pad)*2, var(--maxw)); margin-inline:auto; }

.skip{
  position:fixed; left:-9999px; top:12px; z-index:200;
  background:var(--wine); color:var(--on-dark); padding:12px 18px; border-radius:999px;
}
.skip:focus{ left:12px; }

:focus-visible{ outline:2px solid var(--tijolo); outline-offset:3px; border-radius:6px; }

.lg-defs{ position:absolute; width:0; height:0; }

/* texto corrido sempre justificado, com hifenização (regra da casa) */
.hero__lead, .sechead__lead, .checks__alt, .sobre__copy p, .fact p, .svc__intro, .svc__b li, .tec__lead, .tec__card p,
.case__copy p:not(.case__tag), .vip__lead, .com__item p, .contato__lead, .checks__msg, .member__back dd{
  text-align:justify; -webkit-hyphens:auto; hyphens:auto; text-wrap:pretty;
}

/* ---------- textura + luz de fundo ---------- */
.grain{
  position:fixed; inset:0; z-index:1; pointer-events:none; opacity:.3;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
}
.aurora{ position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.blob{ position:absolute; border-radius:50%; filter:blur(110px); will-change:transform; }
.b1{ width:56vw; height:56vw; left:-18vw; top:-14vw; background:radial-gradient(circle,var(--tijolo),transparent 66%); opacity:.1; animation:drift1 38s var(--ease) infinite alternate; }
.b2{ width:44vw; height:44vw; right:-14vw; top:22vh; background:radial-gradient(circle,var(--azul),transparent 66%); opacity:.09; animation:drift2 46s var(--ease) infinite alternate; }
.b3{ width:38vw; height:38vw; left:16vw; bottom:-10vw; background:radial-gradient(circle,var(--mostarda),transparent 68%); opacity:.11; animation:drift3 40s var(--ease) infinite alternate; }
.b4{ display:none; }

@keyframes drift1{ to{ transform:translate3d(7vw,5vh,0) scale(1.12); } }
@keyframes drift2{ to{ transform:translate3d(-8vw,-4vh,0) scale(1.08); } }
@keyframes drift3{ to{ transform:translate3d(5vw,-7vh,0) scale(1.15); } }
@media (prefers-reduced-motion: reduce){ .blob{ animation:none; } }

main, .nav, .foot{ position:relative; z-index:2; }

/* =========================================================
   O PINGO — o ponto do i da logo como detalhe tipográfico (estático)
   ========================================================= */
/* ponto final dos títulos, sempre parado: o Franco não quer bolinha animada em lugar nenhum */
.pt::after{
  content:""; display:inline-block; width:.15em; height:.15em; margin-left:.05em; margin-right:-.2em;
  border-radius:50%; background:var(--mostarda);
  transform-origin:50% 100%;
}


/* =========================================================
   LIQUID GLASS — acabamento
   ========================================================= */
.glass{
  position:relative;
  background:var(--g-bg);
  -webkit-backdrop-filter:blur(var(--g-blur)) saturate(170%);
  backdrop-filter:blur(var(--g-blur)) saturate(170%);
  border:1px solid var(--g-brd);
  border-radius:var(--g-r);
  box-shadow:
    0 1px 0 rgba(255,255,255,.55) inset,
    0 -1px 0 rgba(58,12,12,.05) inset,
    0 16px 40px -26px rgba(58,12,12,.4);
  isolation:isolate;
}
/* brilho especular que segue o cursor — bem suave */
.glass::before{
  content:""; position:absolute; inset:-1px; z-index:-1; pointer-events:none;
  border-radius:inherit;
  background:radial-gradient(300px circle at var(--mx,50%) var(--my,0%),
              rgba(255,255,255,.16), rgba(255,255,255,0) 70%);
  opacity:0; transition:opacity .6s var(--ease);
}
@media (hover:hover){ .glass:hover::before,.glass:focus-within::before{ opacity:1; } }
.glass::after{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  border-radius:inherit;
  background:linear-gradient(140deg, rgba(255,255,255,.4), rgba(255,255,255,0) 44%, rgba(255,255,255,.16));
  filter:url(#liquid);
  opacity:.3;
}
@supports not (backdrop-filter: blur(1px)){
  .glass{ background:rgba(246,239,221,.9); }
}
/* TOQUE: o feTurbulence de #liquid anima em loop e obriga o Safari a re-rasterizar
   a camada todo frame — com o teclado aberto isso trava a digitação. Fora no mobile. */
@media (hover:none){
  .glass::after{ filter:none; opacity:.22; }
  .form.glass{
    -webkit-backdrop-filter:none; backdrop-filter:none;
    background:rgba(246,239,221,.09);
  }
  .form.glass::after{ display:none; }
}
/* no formulário, ainda mais leve */
.form.glass::before{
  background:radial-gradient(340px circle at var(--mx,50%) var(--my,0%),
              rgba(255,255,255,.07), rgba(255,255,255,0) 72%);
}
/* vidro sobre fundo escuro */
.glass--noite, .sec--sobre .glass, .svc .glass, .sec--tec .glass, .sec--jornada .glass, .sec--clientes .glass{
  --g-bg:rgba(246,239,221,.08); --g-brd:rgba(246,239,221,.2);
  box-shadow:0 1px 0 rgba(246,239,221,.16) inset, 0 26px 60px -40px rgba(0,0,0,.8);
}
@media (prefers-reduced-transparency: reduce){
  .glass{ -webkit-backdrop-filter:none; backdrop-filter:none; background:rgba(246,239,221,.92); }
  .glass--noite, .sec--sobre .glass, .svc .glass, .sec--tec .glass, .sec--jornada .glass, .sec--clientes .glass{ background:rgba(20,12,12,.72); }
}

/* =========================================================
   TIPOGRAFIA
   ========================================================= */
.h-poster{
  font-family:var(--f-display);
  font-weight:500;
  font-size:clamp(2.5rem, 7vw, 5.6rem);
  line-height:.98;
  letter-spacing:-.005em;
  text-transform:uppercase;
  margin:0;
  color:var(--wine);
  text-wrap:balance;
}
.h-poster--xl{ font-size:clamp(3.1rem, 9.4vw, 7.8rem); line-height:.94; }
/* títulos que não podem quebrar */
.sec--case .h-poster,
.sec--metodo .h-poster,
.sec--jornada .h-poster{
  white-space:nowrap; text-wrap:nowrap;
  font-size:clamp(2.5rem, 8.6vw, 7.2rem);
}
.sec--tec .h-poster{ font-size:clamp(2.7rem, 8vw, 6.8rem); }
/* em seção de duas colunas o título mora na coluna da esquerda */
@media (min-width:980px){
  .problema__grid .h-poster--xl, .servicos__topo .h-poster--xl, .metodo__grid .h-poster--xl{ font-size:clamp(3rem, 6.7vw, 6.1rem); }
}
/* contato: enquadrado, sem estourar a coluna */
.sec--contato .h-poster--xl{
  font-size:clamp(2rem, 3.9vw, 3.5rem);
  line-height:1.02; letter-spacing:0;
  text-wrap:balance;
}
/* título do time: duas linhas, alinhado pela esquerda com o resto do cabeçalho */
.h-poster--team{
  text-wrap:nowrap;
  font-size:clamp(1.9rem, 5.6vw, 4.8rem);
  line-height:1.02;
}

/* "&" e "·" dentro de título Moonshine (a fonte não tem esses sinais) */
.amp{ font-family:var(--f-script); text-transform:none; font-size:1.02em; color:var(--mostarda); padding:0 .06em; line-height:0; }
.meio{ display:inline-block; width:.13em; height:.13em; border-radius:50%; background:var(--mostarda); vertical-align:.28em; margin:0 .16em; }

.script{
  font-family:var(--f-script);
  font-size:clamp(1.8rem, 3.8vw, 3rem);
  color:var(--azul);
  margin:0 0 .1em;
  line-height:1.08;
  font-weight:400;
}
.script--lg{ font-size:clamp(2.3rem, 5.4vw, 4.2rem); }

.eyebrow{
  display:flex; align-items:center; gap:14px;
  font-family:var(--f-label); font-weight:400;
  text-transform:uppercase; letter-spacing:.3em;
  font-size:clamp(.64rem,.9vw,.76rem);
  color:var(--tijolo);
  margin:0 0 1.2em;
}
.eyebrow::before{ content:""; width:34px; height:1px; background:currentColor; opacity:.6; }
.sechead--center .eyebrow{ justify-content:center; }
.sechead--center .eyebrow::after{ content:""; width:34px; height:1px; background:currentColor; opacity:.6; }
.eyebrow--light{ color:var(--ouro-claro); }

.kicker{
  font-family:var(--f-label); font-weight:400;
  text-transform:uppercase; letter-spacing:.24em;
  font-size:clamp(.7rem,1.05vw,.84rem);
  margin:0; color:var(--ink-soft);
}
.kicker i{ font-style:normal; opacity:.5; margin:0 .35em; }

.sechead{ margin-bottom:clamp(38px,5vw,66px); max-width:62ch; }
.sechead--center{ margin-inline:auto; text-align:center; }
/* cabeçalho do time alinhado à esquerda, como as demais seções */
.sechead--team{ max-width:none; }
.sechead--team .sechead__lead{ max-width:none; }
.sechead__lead{
  margin:1.3rem 0 0; font-size:clamp(1rem,1.4vw,1.14rem);
  color:var(--ink-soft); max-width:50ch;
}
.sechead--center .sechead__lead{ margin-inline:auto; text-align-last:center; }
.sechead .script{ margin-top:.25em; }

/* =========================================================
   BOTÕES
   ========================================================= */
/* mesma tipografia do botão "Entrar na comunidade" do menu: caixa alta, fina e
   bem espaçada — Franco pediu isso em todos os botões do site */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  padding:.95em 1.7em; border-radius:999px; border:1px solid transparent;
  font-family:var(--f-label); font-weight:400; font-size:.76rem;
  letter-spacing:.16em; text-transform:uppercase; text-decoration:none; cursor:pointer;
  position:relative; overflow:hidden; isolation:isolate;
  transition:transform .4s var(--ease-out), box-shadow .4s var(--ease), background .3s;
}
.btn:active{ transform:scale(.97); transition-duration:.1s; }
.btn--lg{ padding:1.15em 2.1em; font-size:.8rem; letter-spacing:.16em; }
.btn--solid{
  background:var(--wine); color:var(--on-dark);
  box-shadow:0 12px 28px -16px rgba(58,12,12,.8);
}
.btn--solid::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(115deg,transparent 25%,rgba(246,239,221,.3),transparent 75%);
  transform:translateX(-130%); transition:transform .9s var(--ease);
}
.btn--ouro{ background:var(--mostarda); color:var(--wine); box-shadow:0 14px 30px -16px rgba(232,168,32,.8); }
.btn--glasspill{
  background:rgba(246,239,221,.42); color:var(--wine);
  border-color:rgba(255,255,255,.55);
  -webkit-backdrop-filter:blur(14px) saturate(160%); backdrop-filter:blur(14px) saturate(160%);
  box-shadow:0 1px 0 rgba(255,255,255,.5) inset, 0 10px 24px -16px rgba(58,12,12,.5);
}
.btn--line{
  padding:.85em .2em; border-radius:0;
  color:var(--wine); background:none;
  border-bottom:1px solid rgba(58,12,12,.4);
}
.btn--line i{ font-style:normal; transition:transform .45s var(--ease-out); }
.btn--ghost{
  background:rgba(246,239,221,.1); color:var(--on-dark);
  border-color:rgba(246,239,221,.32);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
}
/* no toque o :hover "gruda" depois do dedo: efeitos de passar o mouse só com mouse */
@media (hover:hover){
  .btn--solid:hover::after{ transform:translateX(130%); }
  .btn--solid:hover, .btn--ouro:hover{ transform:translateY(-2px); }
  .btn--glasspill:hover{ transform:translateY(-2px); background:rgba(246,239,221,.6); }
  .btn--line:hover i{ transform:translateX(7px); }
  .btn--line:hover{ border-bottom-color:var(--tijolo); color:var(--tijolo); }
  .btn--ghost:hover{ transform:translateY(-2px); background:rgba(246,239,221,.18); }
}

/* =========================================================
   NAV — barra de vidro; a logo grande encolhe e entra nela
   ========================================================= */
.nav{
  position:fixed; top:14px; left:0; right:0; z-index:110;
  display:flex; align-items:flex-start; gap:10px;
  padding:0 clamp(12px,2.4vw,30px);
  pointer-events:none;
}

/* a barra de vidro */
.nav__bar{
  pointer-events:none;
  position:relative; flex:1 1 auto; min-width:0;
  display:flex; align-items:center; gap:clamp(10px,1.8vw,26px);
  min-height:66px;
  padding:8px clamp(10px,1.2vw,16px) 8px clamp(12px,1.4vw,18px);
  border-radius:999px;
}
.nav__bar::before{
  content:""; position:absolute; inset:0; z-index:-1; border-radius:inherit;
  background:rgba(246,239,221,.58);
  border:1px solid rgba(255,255,255,.6);
  -webkit-backdrop-filter:blur(20px) saturate(170%); backdrop-filter:blur(20px) saturate(170%);
  box-shadow:0 1px 0 rgba(255,255,255,.62) inset, 0 16px 38px -24px rgba(58,12,12,.5);
  opacity:var(--dock,0);
  transition:opacity .45s var(--ease);
}


.brand{
  pointer-events:auto; flex:0 0 auto;
  display:block; position:relative;
  width:var(--brandW,90px); height:var(--brandH,46px);
}
/* a imagem é renderizada JÁ no tamanho grande (nítida) e só reduz via scale */
.brand__logo{
  position:absolute; left:0; top:0;
  max-width:none;
  width:auto; height:var(--logoH,200px);
  transform-origin:left top;
  transform:translate3d(var(--lgX,0px),var(--lgY,0px),0) scale(var(--lgS,1));
  will-change:transform;
}

/* categorias espalhadas dentro do vidro, letra fina e espaçada */
.nav__links{
  flex:1 1 auto; min-width:0;
  display:flex; align-items:center; justify-content:space-evenly;
  gap:clamp(10px,1.6vw,26px);
  opacity:var(--dock,0); pointer-events:none;
  transition:opacity .45s var(--ease);
}
.nav.is-docked .nav__links{ pointer-events:auto; }
.nav__links a{
  position:relative; white-space:nowrap; text-decoration:none;
  font-family:var(--f-label); font-weight:400;
  font-size:clamp(.66rem,.78vw,.76rem);
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--ink-soft); padding:.55em .1em;
  transition:color .35s;
}
.nav__links a::after{
  content:""; position:absolute; left:0; right:0; bottom:.15em; height:1px;
  background:var(--tijolo); transform:scaleX(0); transform-origin:left;
  transition:transform .45s var(--ease-out);
}
.nav__links a.is-active::after{ transform:scaleX(1); }
.nav__links a.is-active, .nav__links a:active{ color:var(--wine); }
@media (hover:hover){
  .nav__links a:hover::after{ transform:scaleX(1); }
  .nav__links a:hover{ color:var(--wine); }
}

.nav__cts{
  flex:0 0 auto; display:flex; align-items:center; gap:8px;
  opacity:var(--dock,0); pointer-events:none;
  transition:opacity .45s var(--ease);
}
.nav.is-docked .nav__cts{ pointer-events:auto; }

/* WhatsApp como ícone — economiza espaço na barra */
.nav__wa{
  width:42px; height:42px; border-radius:50%; flex:0 0 auto;
  display:grid; place-items:center;
  background:var(--wine); color:var(--cream);
  box-shadow:0 10px 22px -14px rgba(58,12,12,.9);
  transition:transform .4s var(--ease-out), background .3s;
}
.nav__wa svg{ width:21px; height:21px; fill:currentColor; }
.nav__wa:active{ transform:scale(.94); }
@media (hover:hover){ .nav__wa:hover{ transform:translateY(-2px) scale(1.05); background:var(--wine-2); } }

/* Portal: bolinha vinho com casinha (irmã do WhatsApp); no mouse estica em pílula e escreve "Portal" */
.nav__wa.nav__portal{
  width:auto; min-width:42px; max-width:42px; padding:0;
  display:flex; align-items:center; justify-content:flex-start;
  border-radius:999px; overflow:hidden; white-space:nowrap; text-decoration:none;
  transition:max-width .55s var(--ease-out), transform .4s var(--ease-out), background .3s;
}
.nav__portal svg{ flex:0 0 42px; width:42px; height:20px; }
.nav__portal-t{
  font-family:var(--f-label); font-weight:400; font-size:clamp(.66rem,.78vw,.76rem);
  letter-spacing:.2em; text-transform:uppercase; text-decoration:none; padding-right:1.25em; margin-left:-4px;
  opacity:0; transform:translateX(-6px);
  transition:opacity .3s ease, transform .45s var(--ease-out);
}
@media (hover:hover){
  .nav__wa.nav__portal:hover, .nav__wa.nav__portal:focus-visible{ max-width:160px; transform:translateY(-2px); }
  .nav__portal:hover .nav__portal-t, .nav__portal:focus-visible .nav__portal-t{ opacity:1; transform:none; transition-delay:.12s; }
}

/* mesma tipografia das categorias da barra */
.nav__vip{
  padding:.9em 1.35em;
  font-family:var(--f-label); font-weight:400;
  font-size:clamp(.66rem,.78vw,.76rem);
  letter-spacing:.2em; text-transform:uppercase;
}

/* EN: separadinho, em vidro */
.nav__side{
  pointer-events:auto; flex:0 0 auto;
  display:flex; align-items:center; gap:8px;
  min-height:66px;
}
.langpill{
  width:46px; height:46px; border-radius:50%; cursor:pointer;
  display:grid; place-items:center;
  font-family:var(--f-label); font-weight:400; font-size:.64rem;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-soft);
  background:rgba(246,239,221,.42);
  border:1px solid rgba(255,255,255,.6);
  -webkit-backdrop-filter:blur(18px) saturate(170%); backdrop-filter:blur(18px) saturate(170%);
  box-shadow:0 1px 0 rgba(255,255,255,.6) inset, 0 12px 26px -16px rgba(58,12,12,.5);
  transition:color .3s, transform .4s var(--ease-out), background .3s;
}
@media (hover:hover){ .langpill:hover{ color:var(--wine); transform:translateY(-2px); background:rgba(246,239,221,.6); } }

/* EN dentro do vidro: só o escrito, na tipografia das categorias — sem botão */
.langtext{
  display:none; cursor:pointer; flex:0 0 auto;
  background:none; border:0; padding:.4em .2em;
  font-family:var(--f-label); font-weight:400; font-size:.68rem;
  letter-spacing:.24em; text-transform:uppercase;
  color:var(--ink-faint);
  transition:color .3s;
}
.langtext:focus-visible{ color:var(--wine); }
@media (hover:hover){ .langtext:hover{ color:var(--wine); } }

@media (min-width:1151px) and (max-width:1380px){
  .nav__links{ gap:clamp(6px,1vw,14px); }
  .nav__links a{ letter-spacing:.13em; font-size:.66rem; }
  .nav__vip{ letter-spacing:.13em; font-size:.66rem; padding-inline:1.1em; }
}
@media (max-width:980px){ .nav__vip{ display:none; } }
@media (max-width:560px){ .kicker{ letter-spacing:.15em; font-size:.66rem; } }

/* ---------- mobile: barra fica, categorias abrem no sanduíche ---------- */
.burger{
  display:none; width:40px; height:40px; flex:0 0 auto;
  background:none; border:0; cursor:pointer; padding:0;
  /* só existe junto com a barra de vidro: na capa o menu abriria sem fundo
     e as categorias ficariam ilegíveis sobre o creme */
  opacity:var(--dock,0); pointer-events:none;
  transition:opacity .45s var(--ease);
}
.nav.is-docked .burger{ pointer-events:auto; }
.burger i{
  display:block; width:20px; height:1.8px; margin:4.5px auto; border-radius:2px;
  background:var(--wine);
  /* dois tempos com translate/rotate separados: juntar e SÓ ENTÃO girar.
     Rotacionando e transladando junto, o meio da animação vira um ">" torto. */
  transition:rotate .22s var(--ease-out), translate .2s var(--ease-out) .2s,
             opacity .18s .24s, scale .18s .24s;   /* fechando: desgira → afasta → volta a do meio */
}
.burger[aria-expanded="true"] i{
  transition:translate .2s var(--ease-out), rotate .22s var(--ease-out) .2s,
             opacity .16s, scale .16s;             /* abrindo: some a do meio → junta → gira */
}
.burger[aria-expanded="true"] i:nth-child(1){ translate:0 6.3px; rotate:45deg; }
.burger[aria-expanded="true"] i:nth-child(2){ opacity:0; scale:0 1; }
.burger[aria-expanded="true"] i:nth-child(3){ translate:0 -6.3px; rotate:-45deg; }

@media (max-width:1150px){
  .nav__bar{ flex-wrap:wrap; row-gap:0; border-radius:24px; }
  .brand{ order:1; }
  .nav__cts{ order:2; margin-left:auto; }
  .burger{ display:block; }

  .nav__links{
    order:3; flex:1 0 100%;
    display:flex; flex-direction:column;
    overflow:hidden; max-height:0; opacity:0;
    padding:0 2px; margin-top:0;
    border-top:1px solid transparent;
    transition:max-height .55s var(--ease-out), opacity .4s var(--ease),
               padding .4s var(--ease), margin .4s var(--ease), border-color .4s;
  }
  .nav__bar.links-open .nav__links{
    max-height:420px; opacity:1;
    padding:4px 2px 6px; margin-top:8px;
    border-top-color:rgba(58,12,12,.12);
  }
  .nav__links a{
    font-size:.72rem; letter-spacing:.16em; padding:.95em .3em;
    border-bottom:1px solid rgba(58,12,12,.08);
  }
  .nav__links a:last-child{ border-bottom:0; }
  .nav__links a::after{ display:none; }
  .nav__links a.is-active{ color:var(--tijolo); }
}
/* mobile: fileira organizada — três círculos do mesmo tamanho (menu discreto em
   vidro, WhatsApp e comunidade em vinho) e o EN separado com folga da barra */
@media (max-width:1150px){
  .nav{ gap:12px; }
  /* a barra quebra linha (categorias na 2ª). A 1ª linha ganha altura fixa para
     não se mexer quando o menu abre — senão os ícones sobem e largam a pill EN. */
  .nav__bar{ align-content:flex-start; }
  /* a altura da 1ª linha vem só do .nav__cts — pôr min-height no .brand estica a
     caixa e a logo (absoluta, ancorada no topo) sobe dentro da barra */
  .nav__cts{ min-height:50px; gap:9px; align-items:center; }
  .nav__wa{ width:40px; height:40px; }
  .nav__wa svg{ width:20px; height:20px; }
  .nav__wa.nav__portal{ min-width:40px; max-width:40px; }
  .nav__portal svg{ flex-basis:40px; width:40px; height:19px; }
  .burger{
    width:40px; height:40px; border-radius:50%;
    /* flex com gap explícito: em grid as margens não colapsam e o "X" vira seta */
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px;
    background:rgba(246,239,221,.5);
    border:1px solid rgba(255,255,255,.62);
    -webkit-backdrop-filter:blur(14px) saturate(160%); backdrop-filter:blur(14px) saturate(160%);
    box-shadow:0 1px 0 rgba(255,255,255,.6) inset;
  }
  .burger i{ margin:0; width:17px; }
  .burger[aria-expanded="true"] i:nth-child(1){ translate:0 6.8px; }
  .burger[aria-expanded="true"] i:nth-child(3){ translate:0 -6.8px; }
  /* o sanduíche assume o lugar externo; o EN entra na barra como texto */
  .langpill{ display:none; }
  .langtext{ display:inline-block; margin-right:2px; }
  .nav__side{ align-self:flex-start; min-height:66px; }
}
@media (max-width:400px){
  .nav{ gap:9px; padding-inline:10px; }
  .nav__cts{ gap:7px; }
  .nav__wa, .burger, .langpill{ width:37px; height:37px; }
  .nav__wa svg{ width:18px; height:18px; }
  .nav__wa.nav__portal{ min-width:37px; max-width:37px; }
  .nav__portal svg{ flex-basis:37px; width:37px; height:17px; }
}

/* =========================================================
   HERO — creme editorial
   ========================================================= */
.hero{
  position:relative;
  min-height:100svh;
  display:flex; flex-direction:column; justify-content:center;
  padding:clamp(230px,32vh,330px) 0 clamp(40px,6vh,64px);
}
.hero > .wrap{ position:relative; z-index:2; }

/* ---------- a Neci como marca d'água da capa ---------- */
.neci-marca{
  position:absolute; inset:0; z-index:0; overflow:hidden;
  pointer-events:none; user-select:none;
}
.neci-marca img{
  width:100%; height:100%; max-width:none; display:block;
  object-fit:cover; object-position:72% 26%;
  opacity:.17; mix-blend-mode:multiply; filter:contrast(.86);
}
/* a foto "revela" ao abrir, como uma impressão no tecido */
.js .neci-marca img:first-child{ animation:neciRevela 2.6s var(--ease-out) both; }
@keyframes neciRevela{ from{ opacity:0; transform:scale(1.05); } to{ opacity:.17; transform:none; } }
/* a mesma foto, mais presente, só no círculo de luz em volta do cursor */
.neci-luz{
  position:absolute; inset:0; opacity:0 !important; transition:opacity .7s var(--ease);
  -webkit-mask-image:radial-gradient(circle 250px at var(--lx,50%) var(--ly,40%), #000 0, rgba(0,0,0,.5) 45%, transparent 100%);
          mask-image:radial-gradient(circle 250px at var(--lx,50%) var(--ly,40%), #000 0, rgba(0,0,0,.5) 45%, transparent 100%);
}
@media (hover:hover) and (min-width:900px){
  .hero.is-luz .neci-luz{ opacity:.2 !important; }
}
@media (prefers-reduced-motion: reduce){
  .js .neci-marca img:first-child{ animation:none; }
  .neci-luz{ display:none; }
}
@media (max-width:899px){
  /* no celular ela ocupa o alto e dissolve antes do texto corrido */
  .neci-marca{ inset:0 0 auto 0; height:clamp(420px,58vh,560px);
    -webkit-mask-image:linear-gradient(#000 62%,transparent 98%);
            mask-image:linear-gradient(#000 62%,transparent 98%); }
  /* encostada à direita: o rosto sai de baixo da logo, que fica sobre o cabelo */
  .neci-marca img{ position:absolute; left:0; top:0; width:132%; height:auto;
    object-fit:fill; opacity:.16; }
  .neci-luz{ display:none; }
}

/* logo grande à esquerda (fixa, sobreposta) + texto à direita */
.hero__grid{ display:grid; }
.hero__logospace{ display:none; }

@media (min-width:900px){
  /* a capa é um slide: cabe inteira numa tela JUNTO com a faixa de palavras, com a régua
     de números ancorada no rodapé dela — nada de cortar em telas de 900/982px */
  /* --hv = 1% da altura útil da capa (a tela menos a faixa): toda medida "em altura" da capa usa ela */
  .hero{
    --hv:calc((100svh - var(--faixa-h)) / 100);
    height:auto; min-height:max(560px, calc(100svh - var(--faixa-h)));
    justify-content:space-between;
    padding-top:clamp(58px,calc(9.6 * var(--hv)),150px);
    padding-bottom:clamp(10px,calc(2 * var(--hv)),40px);
  }
  .hero > .wrap{ flex:0 0 auto; }
  /* NOTA: prefixo .hero obrigatório — as regras originais vêm depois no arquivo
     e, com a mesma especificidade, ganhariam por ordem. */
  .hero .hero__stats{ margin-top:clamp(10px,calc(2.6 * var(--hv)),72px); }
  /* respiros internos encolhem junto com a altura da tela */
  .hero .hero__title{ margin-top:clamp(.5rem,calc(1.7 * var(--hv)),1.3rem); }
  .hero .hero__rotator{ margin-top:clamp(.5rem,calc(1.5 * var(--hv)),1.1rem); }
  .hero .hero__lead{ margin-top:clamp(.7rem,calc(1.9 * var(--hv)),1.5rem); }
  .hero .hero__cta{ margin-top:clamp(.8rem,calc(2.3 * var(--hv)),1.8rem); }
  /* a tipografia também obedece à ALTURA: em telas baixas nada é cortado */
  .hero .hero__title .t-heavy{ font-size:min(clamp(2.5rem,5.4vw,4.5rem), calc(7.4 * var(--hv))); }
  .hero .hero__title .t-thin { font-size:min(clamp(3.1rem,6.7vw,5.6rem), calc(9.2 * var(--hv))); }
  .hero .hero__title .t-script{ font-size:min(clamp(1.7rem,3.9vw,3.1rem), calc(5.1 * var(--hv))); }
  .hero .hero__rotator .rot{ font-size:min(clamp(1.4rem,2.8vw,2rem), calc(3.3 * var(--hv))); }
  .hero .hero__stats .stat{ padding-block:min(clamp(18px,2.4vw,28px), calc(1.9 * var(--hv))); }
  .hero .hero__stats .stat b{ font-size:min(clamp(1.7rem,3.3vw,2.8rem), calc(4.4 * var(--hv))); }
  .hero .hero__stats .stat span{ margin-top:min(.6em, calc(.8 * var(--hv))); }
  .hero .hero__stats .stat i{ margin-top:min(.35em, calc(.5 * var(--hv))); }
  .hero .hero__lead{ font-size:min(clamp(1rem,1.38vw,1.12rem), calc(2.05 * var(--hv))); }
  .hero__grid{
    grid-template-columns:minmax(0,var(--logo-col,36%)) minmax(0,1fr);
    gap:clamp(8px,1vw,16px); align-items:center;
  }
  .hero__logospace{ display:block; }
  /* logo à esquerda, bloco de texto ancorado à direita com recuo espelhado ao da logo */
  .hero__text{ justify-self:end; margin-right:clamp(36px,5.5vw,84px); }
}

/* respiro entre o kicker e o título (o acento do É não encosta) */
.hero__title{ margin:1.3rem 0 0; display:flex; flex-direction:column; align-items:flex-start; }

/* ESTÉTICA pesada + ESTRATÉGIA em Moonshine: o mesmo contraste do "BEM-VINDA" do PDF */
.hero__title .t-heavy{
  font-family:var(--f-num); font-weight:400;
  font-size:clamp(2.5rem, 5.4vw, 4.5rem);
  line-height:.98; letter-spacing:0;
  text-transform:uppercase; color:var(--wine);
}
.hero__title .t-thin{
  font-family:var(--f-display); font-weight:500;
  font-size:clamp(3.1rem, 6.7vw, 5.6rem);
  line-height:.98; letter-spacing:0;
  text-transform:uppercase; color:var(--wine);
}
/* todas as linhas partem da mesma margem esquerda */
.hero__title .t-script{
  font-family:var(--f-script);
  font-size:clamp(1.7rem, 3.9vw, 3.1rem);
  color:var(--tijolo); line-height:.94;
  margin:.06em 0 .1em;
  transform:rotate(-2deg); transform-origin:left center;
}
.hero__title .t-script--b{ color:var(--azul); }
/* ponto final do título (parado) */
.hero__title .t-script--b::after{
  content:""; display:inline-block; width:.2em; height:.2em; margin-left:.12em; margin-right:-.32em;
  border-radius:50%; background:var(--mostarda); transform-origin:50% 100%;
}

.hero__lead{
  margin:1.5rem 0 0; max-width:46ch;
  font-size:clamp(1rem,1.38vw,1.12rem);
  color:var(--ink-soft);
}

.hero__cta{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 26px; margin-top:1.8rem; }
/* "Conhecer os serviços" vive fora do .hero__cta, em bloco próprio.
   NUNCA usar flex-basis:100% aqui: isso estica o .hero__text (que é dimensionado
   pelo conteúdo) até a coluna inteira e desancora o texto da direita. */
.hero__more{ margin-top:.35rem; }
/* o recuo iguala o padding interno do .btn--lg (2.1em), para o rótulo daqui
   nascer na mesma vertical do rótulo dentro da pill acima */
.hero__more .btn--line{ border-bottom:0; padding-left:2.1em; padding-right:0; }

.hero__rotator{
  margin-top:1.1rem; display:flex; flex-wrap:wrap; align-items:baseline; gap:.6em;
}
.rot__label{
  font-family:var(--f-label); text-transform:uppercase; letter-spacing:.24em;
  font-size:.68rem; color:var(--ink-faint); font-weight:400;
}
.rot{
  font-family:var(--f-script); font-size:clamp(1.4rem,2.8vw,2rem);
  color:var(--azul); min-height:1.2em;
}
.rot::after{
  content:""; display:inline-block; width:1.5px; height:.8em;
  background:var(--azul); margin-left:.14em; vertical-align:-.05em;
  animation:caret 1.1s steps(1) infinite;
}
@keyframes caret{ 50%{ opacity:0; } }

/* ---------- números em régua ---------- */
.hero__stats{
  margin-top:clamp(52px,9vh,92px);
  display:grid; grid-template-columns:.8fr 1.1fr 1.1fr .9fr;
  border-top:1px solid var(--hair);
  border-bottom:1px solid var(--hair);
}
.stat{
  padding:clamp(18px,2.4vw,28px) clamp(16px,2vw,28px);
  display:flex; flex-direction:column;
}
.stat + .stat{ border-left:1px solid var(--hair); }
.stat b{
  font-family:var(--f-num); font-weight:400;
  font-size:clamp(1.7rem,3.3vw,2.8rem); line-height:1;
  color:var(--wine); letter-spacing:0; white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.stat span{
  margin-top:.6em;
  font-family:var(--f-label); font-weight:400;
  text-transform:uppercase; letter-spacing:.18em; font-size:.7rem;
  color:var(--ink-soft);
}
.stat i{
  font-style:normal; font-family:var(--f-body); font-weight:400;
  font-size:clamp(.84rem,1.05vw,.94rem); color:var(--tijolo);
  margin-top:.35em; line-height:1.4; letter-spacing:.005em;
}

/* =========================================================
   FAIXA — a passarela de palavras (acelera com a rolagem)
   ========================================================= */
.faixa{
  position:relative; z-index:2; overflow:hidden; white-space:nowrap;
  background:var(--wine); color:var(--ouro-claro);
  height:var(--faixa-h); display:flex; align-items:center;
}
.faixa__trilho{ display:flex; width:max-content; will-change:transform; }
.faixa__set{ display:flex; align-items:center; flex:0 0 auto; }
.faixa span, .faixa em{ display:inline-flex; align-items:center; }
.faixa span{
  font-family:var(--f-label); text-transform:uppercase; letter-spacing:.32em;
  font-size:clamp(.72rem,1vw,.86rem);
}
.faixa em{
  font-style:normal; font-family:var(--f-script); letter-spacing:0;
  font-size:clamp(1.5rem,2.3vw,2rem); line-height:1; color:var(--cream);
}
.faixa span::after, .faixa em::after{
  content:""; width:1px; height:1.1em; background:var(--ouro-claro); opacity:.45;
  margin:0 clamp(20px,2.8vw,40px);
}
.faixa em::after{ height:.6em; }

/* =========================================================
   TRÊS TELAS DE COR INTEIRA — azul, mostarda, vinho. Rolagem normal, bordas retas,
   nada preso na tela e nenhuma bolinha animada (pedidos do Franco em 12/out/2026).
   ========================================================= */
.filme{ position:relative; z-index:2; color:var(--cream); }
.cena{
  position:relative; display:flex; align-items:center;
  min-height:clamp(460px,86vh,880px); padding:clamp(80px,13vh,150px) 0;
}
.cena--1{ background:radial-gradient(1150px circle at 80% 14%, rgba(46,95,163,.42), rgba(46,95,163,0) 70%), var(--navy); }
.cena--2{ background:radial-gradient(1050px circle at 20% 22%, rgba(255,236,170,.55), rgba(255,236,170,0) 70%), var(--mostarda); color:var(--wine); }
.cena--3{ background:radial-gradient(1150px circle at 82% 84%, rgba(140,40,34,.55), rgba(140,40,34,0) 70%), var(--wine); }
.cena__in{ position:relative; }
.cena__l{
  margin:0; font-family:var(--f-display); font-weight:500; text-transform:uppercase;
  line-height:1; letter-spacing:-.005em;
}
.cena__l--a{ font-size:min(clamp(46px,15.4vw,180px), 17.5vh); }
.cena__l--b{ font-size:min(clamp(38px,12.4vw,146px), 14.2vh); margin-top:.3em; color:var(--ouro-claro); }
.cena__l--c{ font-family:var(--f-num); font-weight:400; font-size:min(clamp(64px,18.6vw,290px), 40vh); line-height:.86; text-align:center; white-space:nowrap; }
.cena__l--d{ font-size:min(clamp(40px,12.4vw,156px), 19vh); line-height:1.04; }
.cena__s{ margin:.5em 0 0; font-family:var(--f-script); font-size:clamp(1.5rem,6.4vw,3.8rem); line-height:1; color:var(--ouro-claro); }
/* o pingo do "i": um ponto mostarda parado em cima da letra */
.oi{ position:relative; display:inline-block; font-weight:inherit; }
.oi .ponto{ position:absolute; left:50%; top:-.05em; width:.15em; height:.15em; margin-left:-.075em; border-radius:50%; background:var(--mostarda); }

/* o texto de cada tela aparece suave, uma vez, quando ela entra */
@media (prefers-reduced-motion: no-preference){
  .js .cena__l, .js .cena__s{ opacity:0; transform:translate3d(0,26px,0); transition:opacity .9s var(--ease-out), transform 1.1s var(--ease-out); }
  .js .cena.on .cena__l, .js .cena.on .cena__s{ opacity:1; transform:none; }
  .js .cena.on .cena__l--b{ transition-delay:.3s; }
  .js .cena.on .cena__s{ transition-delay:.35s; }
}

/* =========================================================
   SEÇÕES
   ========================================================= */
.sec{ padding:clamp(84px,12vh,150px) 0; position:relative; }

/* foto do Kick Off como fundo de slide, com véu de cor e leve paralaxe */
.foto-fundo{ position:absolute; inset:-9% 0; z-index:-1; overflow:hidden; pointer-events:none; }
.foto-fundo img{
  width:100%; height:100%; object-fit:cover;
  transform:translate3d(0,var(--py,0px),0) scale(1.03); will-change:transform;
}
.foto-fundo::after{ content:""; position:absolute; inset:0; }

/* ---------- problema ---------- */
.problema__grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(28px,5vw,84px); }
.sec--problema .sechead{ margin-bottom:0; }
@media (min-width:980px){
  .problema__grid{ grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); align-items:start; }
  .sec--problema .sechead{ position:sticky; top:128px; }
}
.checks{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }

.check{
  width:100%; text-align:left; cursor:pointer;
  display:flex; align-items:center; gap:16px;
  padding:1.05em 1.25em;
  --g-bg:rgba(255,255,255,.4); --g-r:16px;
  font-family:var(--f-body); font-size:1rem; line-height:1.4;
  color:var(--ink-soft);
  transition:background .35s var(--ease), color .35s var(--ease), border-color .35s, transform .35s var(--ease-out);
}
.check:active{ transform:scale(.985); }
@media (hover:hover){ .check:hover{ color:var(--wine); transform:translateX(4px); } }
/* marcar é colocar o pingo */
.check__box{
  flex:0 0 auto; width:22px; height:22px; border-radius:50%;
  border:1.5px solid rgba(58,12,12,.35); position:relative;
  transition:background .3s, border-color .3s, transform .45s var(--mola);
}
.check__box::after{
  content:""; position:absolute; left:7px; top:3.2px; width:5px; height:10px;
  border:solid var(--wine); border-width:0 2px 2px 0; transform:rotate(45deg) scale(0);
  transition:transform .3s var(--ease-out);
}
.check.is-on{ background:var(--wine); color:var(--cream); border-color:transparent; }
.check.is-on .check__box{ background:var(--mostarda); border-color:var(--mostarda); transform:scale(1.12); }
.check.is-on .check__box::after{ transform:rotate(45deg) scale(1); }

.checks__out{
  margin-top:16px; padding:clamp(22px,3vw,32px) clamp(22px,3vw,34px);
  display:flex; flex-wrap:wrap; align-items:center; gap:20px clamp(24px,3vw,40px);
  --g-bg:rgba(255,255,255,.5); --g-r:20px;
}
.checks__out[hidden]{ display:none; }
.checks__out p{ margin:0; }
.checks__out > p:first-child{
  flex:0 0 auto; display:flex; flex-direction:column;
  align-items:flex-start; gap:.4em;
}
.checks__n{
  font-family:var(--f-num); font-weight:400; font-size:clamp(2.6rem,4.2vw,3.3rem);
  color:var(--tijolo); line-height:.9;
}
.checks__txt{
  font-family:var(--f-label); text-transform:uppercase;
  letter-spacing:.2em; font-size:.68rem; color:var(--ink-faint); line-height:1;
}
.checks__msg{ flex:1 1 260px; color:var(--ink-soft); font-size:.98rem; line-height:1.55; }
.checks__out .btn{ margin-left:auto; flex:0 0 auto; }

/* ---------- a frase ---------- */
.frase{
  position:relative; z-index:2; isolation:isolate; overflow:hidden;
  color:var(--cream); background:#170907;
  padding:clamp(120px,24vh,260px) 0;
}
.frase .foto-fundo::after{ background:linear-gradient(rgba(23,9,7,.72),rgba(23,9,7,.84)); }
.frase__t{
  margin:0 auto; max-width:13.5em; text-align:center;
  font-family:var(--f-display); font-weight:500; text-transform:uppercase;
  font-size:clamp(2.1rem,6.3vw,5.6rem); line-height:1.06; letter-spacing:-.005em;
}
.frase__t em{
  display:block; margin-top:.28em; font-style:normal;
  font-family:var(--f-script); text-transform:none; letter-spacing:0;
  font-size:1.14em; line-height:1; color:var(--mostarda);
}
.js .frase__t .w{ opacity:.16; transition:opacity .45s var(--ease); }
.js .frase__t .w.on{ opacity:1; }
@media (prefers-reduced-motion: reduce){ .js .frase__t .w{ opacity:1; } }

/* ---------- sobre: o slide "Bem-vinda" ---------- */
.sec--sobre{
  color:var(--on-dark); background:var(--wine-3);
  isolation:isolate; overflow:hidden; z-index:2;
}
.sec--sobre .foto-fundo::after{
  background:linear-gradient(98deg, rgba(42,8,8,.95) 0%, rgba(42,8,8,.86) 46%, rgba(42,8,8,.62) 100%);
}
.sobre__grid{
  display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(32px,5vw,80px); align-items:end;
}
.bemvinda{ margin:0; display:flex; flex-direction:column; align-items:flex-start; text-transform:uppercase; color:var(--cream); }
.bv1{ font-family:var(--f-num); font-weight:400; font-size:clamp(4rem,11.6vw,10rem); line-height:.86; }
.bv2{ font-family:var(--f-display); font-weight:500; font-size:clamp(5rem,14.6vw,12.6rem); line-height:.9; margin-top:.04em; }
.kicker--dark{ color:var(--on-dark-faint); }
.sobre__left .kicker{ margin-top:1.8rem; }
.sec--sobre .script{ color:var(--ouro-claro); }
.sobre__copy p{ color:var(--on-dark-soft); font-size:clamp(1rem,1.3vw,1.08rem); max-width:58ch; }
.sobre__copy b{ color:var(--on-dark); font-weight:600; }

.sobre__facts{
  display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:14px;
  margin-top:clamp(44px,6vw,80px);
}
.fact{ grid-column:span 2; padding:clamp(20px,2.2vw,28px); }
.fact:nth-child(n+4){ grid-column:span 3; }
.fact h3{
  margin:0 0 .5em; font-family:var(--f-display); font-weight:500; text-transform:uppercase;
  font-size:clamp(1.2rem,1.8vw,1.55rem); line-height:1.04; color:var(--ouro-claro); letter-spacing:.005em;
}
.fact p{ margin:0; color:var(--on-dark-soft); font-size:.93rem; line-height:1.6; }

@media (max-width:880px){
  .sobre__grid{ grid-template-columns:1fr; align-items:start; }
  .sobre__facts{ grid-template-columns:1fr; }
  .fact, .fact:nth-child(n+4){ grid-column:auto; }
}

/* ---------- serviços ---------- */
.servicos__topo{ display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(30px,5vw,70px); align-items:center; }
.servicos__topo .sechead{ margin-bottom:0; }
@media (min-width:980px){ .servicos__topo{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); } }

/* as quatro frentes em órbita da marca */
.orbita{
  --R:clamp(88px,25.5vw,178px);
  position:relative; width:calc(var(--R)*2 + 150px); max-width:100%;
  height:calc(var(--R)*2 + 96px); margin-inline:auto;
}
@media (min-width:980px){ .orbita{ --R:clamp(130px,13.4vw,178px); } }
.orbita__anel{
  position:absolute; left:50%; top:50%; border-radius:50%;
  width:calc(var(--R)*2); height:calc(var(--R)*2); margin:calc(var(--R)*-1) 0 0 calc(var(--R)*-1);
  border:1px dashed rgba(58,12,12,.34);
}
.orbita__anel--b{
  width:calc(var(--R)*1.3); height:calc(var(--R)*1.3); margin:calc(var(--R)*-.65) 0 0 calc(var(--R)*-.65);
  border:1px solid rgba(58,12,12,.1);
}
.orbita__sol{
  position:absolute; left:50%; top:50%; width:calc(var(--R)*.92); height:calc(var(--R)*.92);
  margin:calc(var(--R)*-.46) 0 0 calc(var(--R)*-.46); border-radius:50%;
  display:grid; place-items:center; text-align:center;
  background:radial-gradient(circle at 34% 28%, #F6CF6B, var(--mostarda) 62%, #D2930F);
  box-shadow:0 0 calc(var(--R)*.7) rgba(232,168,32,.45);
  color:var(--wine);
}
.orbita__sol::after{ content:""; position:absolute; inset:calc(var(--R)*-.11); border-radius:50%; background:rgba(232,168,32,.18); z-index:-1; }
.orbita__sol span{ font-family:var(--f-script); font-size:calc(var(--R)*.25); line-height:.95; padding:0 .3em; transform:rotate(-4deg); }
.orbita__giro{ position:absolute; inset:0; }
.sat{
  position:absolute; left:50%; top:50%; width:0; height:0; text-decoration:none;
  transform:rotate(var(--a)) translateX(var(--R)) rotate(calc(var(--a) * -1));
}
.sat__in{
  position:absolute; left:0; top:0; translate:-50% -50%;
  display:inline-flex; align-items:center; gap:.7em; white-space:nowrap;
  padding:.72em 1.15em .72em .8em; border-radius:999px;
  background:rgba(251,247,236,.72); border:1px solid rgba(255,255,255,.75);
  -webkit-backdrop-filter:blur(14px) saturate(160%); backdrop-filter:blur(14px) saturate(160%);
  box-shadow:0 1px 0 rgba(255,255,255,.7) inset, 0 16px 30px -18px rgba(58,12,12,.55);
  font-family:var(--f-label); text-transform:uppercase; letter-spacing:.16em; font-size:clamp(.62rem,.8vw,.74rem);
  color:var(--wine); transition:background .3s, color .3s;
}
.sat__in b{ font-family:var(--f-num); font-weight:400; letter-spacing:0; font-size:1.25em; color:var(--tijolo); }
.sat:active .sat__in{ background:var(--wine); color:var(--cream); }
@media (hover:hover){ .sat:hover .sat__in{ background:var(--wine); color:var(--cream); } .sat:hover .sat__in b{ color:var(--mostarda); } }
@media (prefers-reduced-motion: no-preference){
  .orbita__giro{ animation:gira 64s linear infinite; }
  .sat__in{ animation:contra 64s linear infinite; }
  .orbita__anel--a{ animation:gira 120s linear infinite reverse; }
  .orbita:hover .orbita__giro, .orbita:hover .sat__in,
  .orbita:focus-within .orbita__giro, .orbita:focus-within .sat__in{ animation-play-state:paused; }
}
@keyframes gira{ to{ rotate:360deg; } }
@keyframes contra{ to{ rotate:-360deg; } }

/* os serviços como slides empilhados */
.pilha{ display:grid; gap:clamp(18px,2.6vw,34px); margin-top:clamp(44px,6vw,84px); }
/* cada slide entra subindo de leve, uma vez */
.js .svc.reveal{ transform:translateY(46px) scale(.985); transition:opacity .9s var(--ease-out), transform 1.1s var(--ease-out); }
.js .svc.reveal.is-in{ transform:none; }
.svc{
  --tom:var(--navy); --brilho:rgba(46,95,163,.42);
  position:relative; isolation:isolate; overflow:hidden; display:block;
  border-radius:clamp(22px,3vw,40px);
  color:var(--cream); background:var(--tom); text-decoration:none;
  box-shadow:0 44px 80px -54px rgba(20,8,6,.85);
  transform-origin:50% 0;
}
.svc[data-tom="verde"]{ --tom:var(--verde); --brilho:rgba(120,138,74,.55); }
.svc[data-tom="tijolo"]{ --tom:#8F2A23; --brilho:rgba(232,120,60,.4); }
.svc[data-tom="vinho"]{ --tom:var(--wine); --brilho:rgba(140,40,34,.6); }
.svc[data-tom="mostarda"]{ --tom:var(--mostarda); --brilho:rgba(255,236,170,.6); color:var(--wine); }
.svc::before{
  content:""; position:absolute; inset:0; z-index:-2; pointer-events:none;
  background:radial-gradient(900px circle at 12% 0%, var(--brilho), transparent 68%);
}
.svc__bg{ position:absolute; inset:-9% 0 -9% auto; width:54%; z-index:-1; }
.svc__bg img{ width:100%; height:100%; object-fit:cover; transform:translate3d(0,var(--py,0px),0); will-change:transform; }
.svc__bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(90deg, var(--tom) 0%, transparent 100%);
  background:linear-gradient(90deg, var(--tom) 0%, color-mix(in srgb, var(--tom) 62%, transparent) 46%, color-mix(in srgb, var(--tom) 26%, transparent) 100%);
}
.svc__in{
  display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:clamp(24px,4vw,64px); align-items:end;
  padding:clamp(26px,4.2vw,60px);
  min-height:min(70vh,620px);
}
.svc__n{ margin:0; display:flex; align-items:baseline; gap:1em; }
.svc__n b{ font-family:var(--f-num); font-weight:400; font-size:clamp(1.5rem,2.4vw,2.1rem); line-height:1; color:var(--mostarda); }
.svc__n i{ font-style:normal; font-family:var(--f-label); text-transform:uppercase; letter-spacing:.28em; font-size:.7rem; color:var(--on-dark-soft); }
.svc h3{
  margin:.28em 0 .22em; font-family:var(--f-display); font-weight:500; text-transform:uppercase;
  font-size:clamp(2.7rem,7.4vw,6.6rem); line-height:.94; letter-spacing:-.005em;
}
#svc-3 h3{ font-size:clamp(2.3rem,5.4vw,4.8rem); }
#svc-4 h3{ font-size:clamp(2.5rem,6.2vw,5.5rem); }
.svc__tag{
  margin:0; max-width:36em;
  font-family:var(--f-label); text-transform:uppercase; letter-spacing:.14em;
  font-size:clamp(.78rem,1.05vw,.94rem); line-height:1.7; color:var(--ouro-claro);
}
.svc__intro{ margin:1.2em 0 0; color:var(--on-dark-soft); max-width:56ch; font-size:clamp(.95rem,1.15vw,1.02rem); }
.svc__intro b{ color:var(--cream); font-weight:600; }
/* prazos e combinados: uma linha do tempo com o pingo em cada marco */
.svc__meta{ display:flex; flex-wrap:wrap; gap:8px 0; margin-top:1.6em; }
.svc__meta span{
  position:relative; display:inline-flex; align-items:center;
  font-family:var(--f-label); font-size:.68rem; text-transform:uppercase; letter-spacing:.14em;
  color:var(--cream); padding:.5em 1.4em .5em 1.5em;
}
.svc__meta span::before{ content:""; position:absolute; left:0; top:50%; width:8px; height:8px; margin-top:-4px; border-radius:50%; background:var(--mostarda); }
.svc__meta span + span::after{ content:""; position:absolute; right:100%; top:50%; width:1.4em; height:1px; margin-right:-.1em; background:rgba(246,239,221,.3); display:none; }

.svc__b{ padding:clamp(20px,2.4vw,30px); --g-r:22px; --g-blur:18px; }
.svc__b h4{
  margin:0 0 1.1em; font-family:var(--f-label); font-weight:400;
  text-transform:uppercase; letter-spacing:.28em; font-size:.7rem; color:var(--mostarda);
}
.svc__ab{
  -webkit-appearance:none; appearance:none; background:none; border:0; padding:0; margin:0; width:100%;
  font:inherit; letter-spacing:inherit; text-transform:inherit; color:inherit; text-align:left;
  display:flex; align-items:center; gap:12px; cursor:default;
}
.svc__ab:disabled{ color:inherit; opacity:1; -webkit-text-fill-color:currentColor; }
.svc__ab::after{ content:""; flex:1; height:1px; background:currentColor; opacity:.35; order:2; }
.svc__ab i{ display:none; }
.svc__b ul{ margin:0; padding:0; list-style:none; display:grid; gap:.85em; }
.svc__b li{ position:relative; padding-left:1.5em; color:var(--on-dark-soft); font-size:clamp(.88rem,1.02vw,.95rem); line-height:1.55; }
.svc__b li::before{ content:""; position:absolute; left:0; top:.62em; width:6px; height:6px; border-radius:50%; background:var(--mostarda); }
.svc__b li b{ color:var(--cream); font-weight:600; }

/* o cartão do Neci Essencial: mostarda, com o portal no celular */
.svc--link .svc__in{ min-height:0; align-items:center; grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr); padding-block:clamp(26px,3.4vw,46px); }
.svc--link .svc__n b{ color:var(--wine); }
.svc--link .svc__n i{ color:rgba(58,12,12,.62); }
.svc--link h3{ font-size:clamp(2.5rem,6.4vw,5.6rem); }
.svc--link .svc__tag{ color:var(--wine); }
.svc__flag{
  display:inline-block; margin-left:.7em; padding:.5em 1em; border-radius:999px;
  background:var(--wine); color:var(--cream);
  font-family:var(--f-label); font-weight:400; font-size:.62rem; line-height:1;
  text-transform:uppercase; letter-spacing:.2em; vertical-align:middle;
}
.svc__ir{
  margin:1.5em 0 0; display:inline-flex; align-items:center; gap:.8em;
  font-family:var(--f-label); text-transform:uppercase; letter-spacing:.18em; font-size:.76rem;
  padding:1em 1.7em; border-radius:999px; background:var(--wine); color:var(--cream);
  transition:transform .4s var(--ease-out);
}
.svc__ir i{ font-style:normal; transition:transform .45s var(--ease-out); }
.svc__cel{ display:flex; justify-content:center; align-self:end; height:clamp(200px,24vw,300px); overflow:visible; }
.cel{
  width:clamp(150px,17vw,210px); aspect-ratio:390/845; border-radius:30px; padding:7px; flex:0 0 auto;
  background:linear-gradient(145deg,#2b2b2e,#0c0c0e);
  box-shadow:0 0 0 1px rgba(255,255,255,.08) inset, 0 40px 70px -34px rgba(58,12,12,.8);
  transform:rotate(5deg) translateY(4%); transition:transform .7s var(--ease-out);
}
.cel img{ width:100%; height:100%; object-fit:cover; object-position:top; border-radius:24px; }
@media (hover:hover){
  .svc--link:hover .cel{ transform:rotate(2deg) translateY(-3%); }
  .svc--link:hover .svc__ir{ transform:translateX(4px); }
  .svc--link:hover .svc__ir i{ transform:translateX(6px); }
}

@media (max-width:999px){
  .svc__in{ grid-template-columns:1fr; align-items:start; min-height:0; }
  .svc__bg{ inset:-6% 0; width:100%; }
  .svc__bg::after{
    background:linear-gradient(180deg, var(--tom) 0%, transparent 100%);
    background:linear-gradient(180deg, color-mix(in srgb, var(--tom) 86%, transparent) 0%, color-mix(in srgb, var(--tom) 72%, transparent) 100%);
  }
  .svc--link .svc__in{ grid-template-columns:1fr; }
  .svc__cel{ height:clamp(190px,52vw,270px); margin-bottom:calc(clamp(26px,4.2vw,60px) * -1); }
  .cel{ width:clamp(150px,44vw,200px); }
}

/* ---------- método ---------- */
.metodo__grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(30px,5vw,84px); }
.sec--metodo .sechead{ margin-bottom:0; }
@media (min-width:980px){
  .metodo__grid{ grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:start; }
  .sec--metodo .sechead{ position:sticky; top:128px; }
}
.method{
  list-style:none; margin:0; padding:0 0 0 clamp(40px,5vw,72px);
  position:relative; display:grid;
}
.mstep{
  position:relative; display:flex; align-items:baseline; gap:clamp(14px,2vw,28px);
  padding:clamp(18px,2.5vw,32px) 0; border-bottom:1px solid var(--hair);
}
.mstep:nth-last-child(2){ border-bottom:0; }
.mstep b{
  flex:0 0 auto; min-width:2.3ch; font-family:var(--f-num); font-weight:400;
  font-size:clamp(1.2rem,1.9vw,1.7rem); line-height:1; color:var(--tijolo);
}
.mstep h3{
  margin:0; font-family:var(--f-display); font-weight:500; text-transform:uppercase;
  font-size:clamp(1.7rem,3.7vw,3.2rem); line-height:1; letter-spacing:-.005em; color:var(--wine);
}
.js .mstep{ opacity:.3; transform:translateX(10px); transition:opacity .6s var(--ease), transform .7s var(--ease-out); }
.js .mstep.is-on{ opacity:1; transform:none; }
/* o fio: a linha enche conforme a leitura (sem bolinha) */
.method__fio{
  position:absolute; left:clamp(12px,1.7vw,24px); top:clamp(18px,2.5vw,32px); bottom:clamp(18px,2.5vw,32px);
  width:2px; background:var(--hair); border-radius:2px;
}
.method__fio i{ position:absolute; inset:0; background:var(--mostarda); border-radius:2px; transform-origin:50% 0; transform:scaleY(var(--f,0)); }
.method__fio b{ display:none; }
@media (prefers-reduced-motion: reduce){ .js .mstep{ opacity:1; transform:none; } }

/* o que o método NÃO faz: honestidade em letras grandes */
.nots{
  margin-top:clamp(56px,8vh,104px); padding:clamp(30px,5vw,72px);
  border-radius:clamp(22px,3vw,40px); color:var(--cream); isolation:isolate; position:relative; overflow:hidden;
  background:radial-gradient(900px circle at 88% 0%, rgba(140,40,34,.6), transparent 66%), var(--wine);
  display:grid; gap:clamp(22px,4vw,64px);
}
@media (min-width:900px){ .nots{ grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr); align-items:center; } }
.nots__t{
  margin:0; font-family:var(--f-display); font-weight:500; text-transform:uppercase;
  font-size:clamp(2.2rem,5vw,4.4rem); line-height:.98; letter-spacing:-.005em;
}
.nots__t em{ font-style:normal; font-family:var(--f-num); font-weight:400; color:var(--mostarda); }
.nots__list{ list-style:none; margin:0; padding:0; display:grid; }
.nots__list li{
  display:flex; align-items:baseline; gap:.75em;
  padding:.85em 0; border-bottom:1px solid var(--hair-dark);
  font-size:clamp(1rem,1.4vw,1.16rem); color:var(--on-dark-soft);
}
.nots__list li:last-child{ border-bottom:0; }
.nots__list span{ font-family:var(--f-num); font-weight:400; color:var(--mostarda); text-transform:uppercase; font-size:1.06em; }

/* ---------- tecnologia: como operamos ---------- */
.sec--tec{
  color:var(--on-dark); isolation:isolate; overflow:hidden; z-index:2;
  background:radial-gradient(1200px circle at 86% 8%, rgba(46,95,163,.42), rgba(46,95,163,0) 70%), var(--navy);
}
.sec--tec .h-poster{ color:var(--cream); }
.sec--tec .script{ color:var(--ouro-claro); }
.tec__topo{ display:grid; gap:clamp(18px,2.4vw,30px); }
.tec__topo .sechead{ margin-bottom:0; max-width:none; }
.tec__lead{ margin:0; color:var(--on-dark-soft); font-size:clamp(1rem,1.3vw,1.12rem); max-width:62ch; }
.tec__lead b{ color:var(--cream); font-weight:600; }
.tec__grade{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:clamp(40px,6vw,72px); }
.tec__card{ padding:clamp(20px,2.4vw,30px); display:grid; grid-template-columns:auto 1fr; gap:6px clamp(16px,1.8vw,24px); align-content:start; --g-r:22px; }
.tec__card > b{ grid-row:span 2; font-family:var(--f-num); font-weight:400; font-size:clamp(1.3rem,1.9vw,1.7rem); line-height:1.05; color:var(--mostarda); }
.tec__card h3{ margin:0; font-family:var(--f-display); font-weight:500; text-transform:uppercase; font-size:clamp(1.35rem,2.1vw,1.9rem); line-height:1.02; color:var(--cream); }
.tec__card p{ margin:.5em 0 0; color:var(--on-dark-soft); font-size:.94rem; line-height:1.6; }
/* mini-interface dentro do cartão: mostra, não só conta */
.tec__ui{ grid-column:1 / -1; margin-top:1.2em; border-radius:14px; background:rgba(8,16,30,.5); border:1px solid rgba(246,239,221,.1); padding:14px 16px; display:grid; gap:9px; font-size:.78rem; color:var(--on-dark-soft); }
.tec__ui .linha{ display:flex; align-items:center; gap:10px; }
.tec__ui .linha i{ flex:0 0 auto; width:8px; height:8px; border-radius:50%; background:var(--mostarda); }
.tec__ui .linha i.ok{ background:#4FB286; }
.tec__ui .linha i.at{ background:#E8825A; }
.tec__ui .linha span{ flex:1 1 auto; }
.tec__ui .linha em{ font-style:normal; font-family:var(--f-label); text-transform:uppercase; letter-spacing:.14em; font-size:.62rem; color:var(--on-dark-faint); }
.tec__ui .barras{ display:flex; align-items:flex-end; gap:6px; height:54px; }
.tec__ui .barras i{ flex:1; border-radius:4px 4px 0 0; background:linear-gradient(var(--mostarda),rgba(232,168,32,.35)); height:calc(var(--h) * 1%); transform-origin:50% 100%; }
.js .tec__card .barras i{ transform:scaleY(0); transition:transform .9s var(--ease-out); transition-delay:calc(var(--n) * 70ms + .3s); }
.js .tec__card.is-in .barras i{ transform:none; }
.js .tec__card .linha{ opacity:0; transform:translateY(8px); transition:opacity .6s var(--ease), transform .6s var(--ease-out); transition-delay:calc(var(--n) * 110ms + .35s); }
.js .tec__card.is-in .linha{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .js .tec__card .barras i, .js .tec__card .linha{ transform:none; opacity:1; transition:none; } }
/* os combinados de transparência */
.tec__combinados{ list-style:none; margin:clamp(28px,4vw,48px) 0 0; padding:clamp(18px,2.4vw,26px) 0 0; border-top:1px solid var(--hair-dark); display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px clamp(20px,3vw,44px); }
.tec__combinados li{ position:relative; padding-left:1.5em; font-size:.95rem; line-height:1.5; color:var(--on-dark-soft); }
.tec__combinados li::before{ content:""; position:absolute; left:0; top:.55em; width:8px; height:8px; border-radius:50%; background:var(--mostarda); }
.tec__combinados b{ display:block; color:var(--cream); font-weight:600; }
@media (max-width:820px){ .tec__grade, .tec__combinados{ grid-template-columns:1fr; } }

/* ---------- case bemevi: o trunfo ---------- */
.sec--case{ background:var(--papel); z-index:2; }
.case__grid{
  display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);
  gap:clamp(32px,5vw,84px); align-items:center;
}
.case__logo{ width:min(280px,60%); height:auto; margin:0 0 .9rem; }
.case__tag{
  font-family:var(--f-script); font-size:clamp(1.7rem,3.2vw,2.6rem); line-height:1.05;
  color:var(--tijolo); margin:0 0 1.2rem;
}
.case__copy p:not(.case__tag){ color:var(--ink-soft); max-width:58ch; font-size:clamp(.99rem,1.3vw,1.08rem); }
.case__copy b{ color:var(--wine); font-weight:600; }
.case__copy .btn--line{ margin-top:.8rem; }
.case__foto{ margin:0; position:relative; border-radius:clamp(20px,2.6vw,34px); overflow:hidden; aspect-ratio:4/5; width:100%; max-width:440px; justify-self:end; background:#D9DAD8; box-shadow:0 44px 80px -50px rgba(58,12,12,.7); }
.case__foto img{ width:100%; height:100%; object-fit:cover; object-position:50% 16%; transform:scale(1.08); transition:transform 1.8s var(--ease-out); }
.case__foto.is-in img{ transform:none; }
.case__foto figcaption{ position:absolute; left:18px; bottom:16px; padding:.6em 1.1em; border-radius:999px; background:rgba(251,247,236,.9); font-family:var(--f-label); text-transform:uppercase; letter-spacing:.2em; font-size:.64rem; color:var(--wine); }

.case__stats{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:clamp(40px,6vw,76px); }
.cstat{
  display:flex; flex-direction:column; gap:.9em;
  padding:clamp(22px,2.6vw,34px); border-radius:24px;
  background:var(--wine); color:var(--cream); position:relative; overflow:hidden; isolation:isolate;
}
.cstat::before{ content:""; position:absolute; inset:0; z-index:-1; background:radial-gradient(520px circle at 100% 0%, rgba(140,40,34,.7), transparent 66%); }
.cstat b{
  font-family:var(--f-num); font-weight:400;
  font-size:clamp(2.7rem,5.1vw,4.5rem); line-height:.9; color:var(--mostarda);
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.cstat span{
  font-family:var(--f-label); font-weight:400;
  text-transform:uppercase; letter-spacing:.16em; font-size:.74rem;
  color:var(--cream); line-height:1.6;
}
.cstat i{
  display:block; font-style:normal; text-transform:none; letter-spacing:.005em;
  font-family:var(--f-body); font-weight:400;
  font-size:clamp(.88rem,1.05vw,.96rem);
  color:var(--on-dark-soft); margin-top:.45em; line-height:1.5;
}
@media (max-width:880px){ .case__grid{ grid-template-columns:1fr; } .case__stats{ grid-template-columns:1fr; } .case__foto{ justify-self:center; max-width:380px; } }

/* ---------- jornada: verde militar ---------- */
.sec--jornada{
  color:var(--on-dark); z-index:2; overflow:hidden;
  background:radial-gradient(1100px circle at 14% 0%, rgba(120,138,74,.55), rgba(120,138,74,0) 70%), var(--verde);
}
.sec--jornada .h-poster{ color:var(--on-dark); }
.sec--jornada .script{ color:var(--ouro-claro); }

.journey{ position:relative; }
.journey__track{
  overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch;
  padding:22px var(--pad) 28px;
  scrollbar-width:none; cursor:grab;
}
.journey__track.is-dragging{ cursor:grabbing; scroll-snap-type:none; -webkit-user-select:none; user-select:none; }
.journey__track::-webkit-scrollbar{ display:none; }
.journey__list{ list-style:none; margin:0; padding:0; display:flex; gap:14px; width:max-content; position:relative; }
/* a linha da jornada, com o pingo em cada parada */
.journey__list::before{ content:""; position:absolute; left:0; right:0; top:-14px; height:1px; background:rgba(246,239,221,.28); }
.jstep{
  scroll-snap-align:center; position:relative;
  width:clamp(230px,25vw,285px); padding:26px 24px 28px;
  display:flex; flex-direction:column; gap:.45em;
  transition:transform .5s var(--ease-out), background .4s;
}
.jstep > i{ display:none; }
.jstep::marker{ content:""; }
.jstep b{
  font-family:var(--f-num); font-weight:400; font-size:1.5rem; line-height:1;
  color:var(--mostarda);
}
.jstep b::before{ content:""; position:absolute; left:24px; top:-19px; width:10px; height:10px; border-radius:50%; background:var(--mostarda); box-shadow:0 0 0 5px rgba(232,168,32,.18); }
.jstep h3{
  margin:.3em 0 0; font-family:var(--f-display); font-weight:500; text-transform:uppercase;
  font-size:1.5rem; line-height:1.02; color:var(--on-dark);
}
.jstep p{ margin:0; color:var(--on-dark-soft); font-size:.9rem; }
@media (hover:hover){ .jstep:hover{ transform:translateY(-6px); background:rgba(246,239,221,.14); } }

.journey__bar{
  width:min(100% - var(--pad)*2, var(--maxw)); margin:0 auto;
  height:1px; background:rgba(246,239,221,.2); border-radius:999px; overflow:hidden;
}
.journey__bar i{
  display:block; height:100%; width:20%; background:var(--mostarda); border-radius:999px;
  transition:width .2s linear, transform .2s linear;
}

/* ---------- clientes: passarela ---------- */
.sec--clientes{ color:var(--on-dark); background:#0E1626; isolation:isolate; overflow:hidden; z-index:2; }
.sec--clientes .foto-fundo::after{ background:linear-gradient(rgba(14,22,38,.86),rgba(14,22,38,.93)); }
.sec--clientes .h-poster{ color:var(--cream); }
.sec--clientes .script{ color:var(--ouro-claro); }
.sec--clientes .sechead{ margin-bottom:clamp(22px,3vw,36px); }

.marquee{ margin-top:clamp(36px,5vw,64px); display:grid; gap:14px; overflow:hidden; }
.marquee__row{ display:flex; width:max-content; will-change:transform; }
.marquee__set{ display:flex; flex:0 0 auto; align-items:stretch; gap:14px; padding-right:14px; }

/* cada marca leva o próprio número de seguidores (o que saiu foi só o somatório) */
.cli{
  flex:0 0 auto; width:clamp(170px,17.5vw,236px); display:flex; flex-direction:column; gap:11px;
  padding:10px 10px 13px; border-radius:22px;
  background:rgba(246,239,221,.07); border:1px solid rgba(246,239,221,.16);
}
.cli__logo{ display:grid; place-items:center; height:clamp(74px,7.4vw,94px); border-radius:14px; background:var(--cream); }
.cli__logo img{ height:clamp(26px,2.8vw,38px); width:auto; max-width:74%; object-fit:contain; }
.cli__logo .marquee__svg{ height:clamp(17px,1.9vw,24px); }
.cli__logo .cli__larga{ max-width:86%; }   /* logotipo muito comprido e fino: ganha mais largura */
/* o número é legenda, não manchete: letra fina e espaçada, como no site antigo (o Franco achou o número em
   letra pesada "grotesco demais") */
.cli b{
  display:flex; justify-content:center; align-items:baseline; gap:.55em;
  font-family:var(--f-label); font-weight:400; font-size:clamp(.66rem,.86vw,.78rem); line-height:1;
  text-transform:uppercase; letter-spacing:.2em; color:var(--ouro-claro); white-space:nowrap;
}
.cli b i{ font-style:normal; letter-spacing:.2em; color:var(--on-dark-faint); }

/* ---------- comunidade: o slide mostarda ---------- */
.sec--vip{
  z-index:2; isolation:isolate; overflow:hidden; color:var(--wine);
  background:radial-gradient(1100px circle at 16% 12%, rgba(255,236,170,.6), rgba(255,236,170,0) 70%), var(--mostarda);
}
.vip{ display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(28px,5vw,80px); align-items:center; }
.vip__neci{ position:relative; }
.vip__neci img{ width:100%; height:auto; filter:drop-shadow(0 30px 40px rgba(58,12,12,.35)); transform:rotate(-3deg); }
.sec--vip .eyebrow{ color:var(--wine); }
.vip__title{ margin:0 0 .25em; line-height:.9; color:var(--wine); }
.vip__script{
  display:block; font-family:var(--f-script);
  font-size:clamp(3rem,7.4vw,6rem); line-height:.9;
  transform:rotate(-2deg); transform-origin:left bottom;
}
/* eco creme atrás do título, como no "Sumário" do PDF */
.vip__caps{
  display:block; font-family:var(--f-display); font-weight:500; text-transform:uppercase;
  font-size:clamp(4rem,11.4vw,9.6rem); line-height:.9; letter-spacing:-.005em;
  text-shadow:.045em .045em 0 var(--cream);
}
.vip__lead{ margin:.9rem 0 0; color:rgba(58,12,12,.86); font-size:clamp(.98rem,1.3vw,1.08rem); max-width:60ch; }
.vip__lead b{ font-weight:600; color:var(--wine); }
/* o que tem lá dentro: guias e diagnóstico */
.com__grade{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:clamp(22px,3vw,34px); }
.com__item{ padding:clamp(16px,2vw,22px); border-radius:20px; background:rgba(251,247,236,.5); border:1px solid rgba(255,255,255,.6); box-shadow:0 1px 0 rgba(255,255,255,.6) inset, 0 20px 40px -30px rgba(58,12,12,.5); }
.com__item h3{ margin:0 0 .4em; font-family:var(--f-display); font-weight:500; text-transform:uppercase; font-size:clamp(1.25rem,1.9vw,1.6rem); line-height:1.02; color:var(--wine); }
.com__item p{ margin:0; font-size:.92rem; line-height:1.55; color:rgba(58,12,12,.84); }
.vip__action{ display:flex; flex-wrap:wrap; align-items:center; gap:12px 18px; margin-top:clamp(22px,3vw,34px); }
.vip__action .btn--glasspill{ background:rgba(251,247,236,.55); }
.vip__action small{
  flex-basis:100%;
  font-family:var(--f-label); text-transform:uppercase;
  letter-spacing:.2em; font-size:.66rem; color:rgba(58,12,12,.72);
}
@media (max-width:880px){
  .vip{ grid-template-columns:1fr; }
  .vip__neci{ max-width:300px; margin-inline:auto; }
  .com__grade{ grid-template-columns:1fr; }
  .vip__action .btn{ flex:1 1 auto; }
}

/* ---------- time: polaroids que viram ---------- */
.team{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(228px,1fr));
  gap:clamp(14px,1.8vw,22px);
}
.member{ perspective:1500px; cursor:pointer; }
.member__in{
  position:relative; aspect-ratio:4/5.85; border-radius:12px;
  -webkit-transform-style:preserve-3d; transform-style:preserve-3d;
  transition:transform .85s var(--ease-out);
}
@media (hover:hover){
  .member:hover .member__in{ transform:rotateY(180deg); }
}
.member:focus-visible .member__in,
.member.is-flip .member__in{ transform:rotateY(180deg); }

.member__face,.member__back{
  position:absolute; inset:0; border-radius:12px; overflow:hidden;
  -webkit-backface-visibility:hidden; backface-visibility:hidden;
}
/* frente: polaroid */
.member__face{
  transform:rotateY(0deg);
  display:flex; flex-direction:column;
  background:
    linear-gradient(160deg, rgba(255,255,255,.55), rgba(255,255,255,0) 55%),
    var(--paper);
  border:1px solid rgba(58,12,12,.14);
  box-shadow:0 24px 50px -30px rgba(58,12,12,.6);
}
/* as fotos já são exatamente 4:5 (560×700), e o quadro também —
   object-fit:cover não corta nada: o rosto aparece inteiro */
.member__ph{
  display:block; flex:0 0 auto; aspect-ratio:4/5; overflow:hidden;
  background:var(--bg,var(--wine));
}
.member__ph img{
  width:100%; height:100%; object-fit:cover; object-position:center top;
  transition:transform .8s var(--ease-out);
}
@media (hover:hover){ .member:hover .member__ph img{ transform:scale(1.03); } }
.member__id{
  flex:1 1 auto; display:flex; align-items:center; gap:9px;
  padding:10px 12px 11px; color:var(--ink); min-height:0;
}
.member__id .sw{
  flex:0 0 auto; width:2.5px; align-self:stretch; border-radius:2px;
  background:var(--bg,var(--tijolo)); margin:1px 0;
}
.member__id .txt{ min-width:0; }
.member__id h3{
  margin:0; font-family:var(--f-body); font-weight:600; font-size:.88rem;
  line-height:1.15; letter-spacing:.005em; color:var(--wine);
}
.member__id p{
  margin:.35em 0 0; font-family:var(--f-label); font-weight:400;
  font-size:.56rem; line-height:1.4; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink-faint);
}

/* verso: ficha de papel */
.member__back{
  transform:rotateY(180deg);
  background:
    linear-gradient(155deg, rgba(255,255,255,.55), rgba(255,255,255,0) 55%),
    var(--paper);
  border:1px solid rgba(58,12,12,.16);
  box-shadow:none;
  -webkit-backdrop-filter:none; backdrop-filter:none;
  color:var(--ink);
  padding:18px 18px 16px; display:flex; flex-direction:column; gap:.55em;
  overflow-y:auto;
}
.member__back::before,.member__back::after{ display:none; }
.member__back h3{
  margin:0 0 .2em; font-family:var(--f-display); font-weight:500; font-size:1.3rem; line-height:1;
  text-transform:uppercase; letter-spacing:0; color:var(--tijolo);
}
.member__back dl{ margin:0; display:grid; gap:.55em; }
.member__back dt{
  font-family:var(--f-label); font-weight:400; text-transform:uppercase;
  letter-spacing:.18em; font-size:.6rem; color:var(--tijolo);
}
.member__back dd{
  margin:.12em 0 0; font-size:.8rem; line-height:1.42; color:var(--ink-soft);
  border-bottom:1px solid rgba(58,12,12,.18); padding-bottom:.5em;
}

@media (max-width:640px){
  .team{ grid-template-columns:repeat(2,1fr); gap:10px; }
  .member__id{ padding:9px 10px 8px; gap:7px; }
  .member__id .sw{ width:9px; height:9px; }
  .member__id h3{ font-size:.78rem; }
  .member__id p{ font-size:.52rem; letter-spacing:.09em; }
  .member__back{ padding:12px 11px 10px; gap:.4em; }
  .member__back h3{ font-size:1rem; }
  .member__back dt{ font-size:.5rem; letter-spacing:.12em; }
  .member__back dd{ font-size:.66rem; line-height:1.35; padding-bottom:.4em; }
}

/* ---------- contato ---------- */
.sec--contato{
  color:var(--on-dark);
  background:
    radial-gradient(85% 65% at 8% 8%, rgba(168,50,42,.42), transparent 60%),
    radial-gradient(70% 60% at 96% 92%, rgba(30,52,83,.6), transparent 58%),
    linear-gradient(172deg,#2A0808,#3A0C0C 52%,#1E0505);
  border-radius:clamp(24px,3.5vw,48px);
  margin-inline:clamp(10px,2vw,26px);
  /* respiro creme depois do card: o corte vinho não pode encostar nele */
  margin-bottom:clamp(48px,7vh,92px);
  overflow:hidden;
}
.contato__grid{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(32px,5vw,72px); align-items:center;
}
.sec--contato .h-poster{ color:var(--on-dark); }
.sec--contato .script{ color:var(--ouro-claro); margin-top:.4em; }
.contato__lead{
  margin:1.1rem 0 0;
  color:var(--on-dark-soft); font-size:clamp(.98rem,1.3vw,1.06rem); max-width:52ch;
}
.contato__lead b{ color:var(--on-dark); font-weight:600; }
.contato__em{
  margin:1.3rem 0 0; font-family:var(--f-script);
  font-size:clamp(1.7rem,3vw,2.4rem); color:var(--ouro-claro); line-height:1.1;
}
.contato__links{ list-style:none; margin:1.8rem 0 0; padding:0; display:flex; flex-wrap:wrap; gap:10px; }
.contato__links a{
  display:inline-block; text-decoration:none;
  font-family:var(--f-label); font-weight:400; font-size:.74rem; letter-spacing:.14em; text-transform:uppercase;
  padding:.8em 1.35em; border-radius:999px;
  border:1px solid rgba(246,239,221,.26); color:var(--on-dark);
  background:rgba(246,239,221,.06);
  transition:background .3s, transform .4s var(--ease-out);
}
.contato__links a:active{ background:rgba(246,239,221,.2); }
@media (hover:hover){ .contato__links a:hover{ background:rgba(246,239,221,.15); transform:translateY(-2px); } }

.form{
  --g-bg:rgba(246,239,221,.07); --g-brd:rgba(246,239,221,.18);
  padding:clamp(20px,2.6vw,30px);
  display:grid; grid-template-columns:1fr 1fr; gap:12px;
  box-shadow:0 1px 0 rgba(246,239,221,.2) inset, 0 30px 70px -40px rgba(0,0,0,.8);
}
.field{ display:flex; flex-direction:column; gap:.4em; min-width:0; }
.field--full{ grid-column:1 / -1; }
.field label, .field legend{
  font-family:var(--f-label); font-weight:400; text-transform:uppercase;
  letter-spacing:.2em; font-size:.62rem; color:rgba(246,239,221,.66); padding:0;
}
.field input, .field textarea{
  font-family:var(--f-body); font-size:.95rem; color:var(--on-dark);
  background:rgba(246,239,221,.07);
  border:1px solid rgba(246,239,221,.16); border-radius:10px;
  padding:.72em .9em; width:100%;
  transition:border-color .3s, background .3s;
}
.field input::placeholder, .field textarea::placeholder{ color:rgba(246,239,221,.38); }
.field input:focus, .field textarea:focus{
  outline:none; border-color:var(--mostarda); background:rgba(246,239,221,.12);
}
.field input[aria-invalid="true"], .field textarea[aria-invalid="true"]{ border-color:#E8825A; }
.field textarea{ resize:vertical; min-height:80px; }
fieldset.field{ border:0; margin:0; padding:0; }

.chips{ display:flex; flex-wrap:wrap; gap:7px; }
.chip{ position:relative; cursor:pointer; }
.chip input{ position:absolute; opacity:0; width:0; height:0; }
.chip span{
  display:inline-block; font-family:var(--f-body); font-weight:500; font-size:.8rem;
  padding:.55em 1.05em; border-radius:999px;
  border:1px solid rgba(246,239,221,.22); background:rgba(246,239,221,.05);
  color:rgba(246,239,221,.84);
  transition:background .3s, color .3s, border-color .3s, transform .3s var(--ease-out);
}
.chip:active span{ transform:scale(.96); }
@media (hover:hover){ .chip:hover span{ transform:translateY(-2px); } }
.chip input:checked + span{ background:var(--cream); border-color:var(--cream); color:var(--wine); font-weight:600; }
.chip input:focus-visible + span{ outline:2px solid var(--mostarda); outline-offset:2px; }

.form__actions{ display:flex; flex-wrap:wrap; gap:10px; margin-top:.3em; }
.sec--contato .btn--solid{ background:var(--mostarda); color:var(--wine); box-shadow:0 14px 30px -16px rgba(232,168,32,.7); }
.form__note{ margin:0; font-size:.84rem; color:var(--ouro-claro); min-height:1.3em; }
.form__note.is-err{ color:#F0A08A; }

@media (max-width:880px){
  .contato__grid{ grid-template-columns:1fr; }
  .form{ grid-template-columns:1fr; }
}

/* =========================================================
   FOOTER
   ========================================================= */
.foot{
  color:var(--on-dark);
  position:relative; isolation:isolate;
  background:
    radial-gradient(90% 70% at 12% 30%, rgba(168,50,42,.24), transparent 62%),
    radial-gradient(80% 60% at 90% 85%, rgba(30,52,83,.4), transparent 60%),
    linear-gradient(to bottom, #3A0C0C 0, #2E0808 55%, #1E0505 100%);
  /* corte sólido creme→vinho (mesma língua do card do contato); a logo entra um dedinho abaixo */
  padding:clamp(56px,8vh,84px) 0 clamp(30px,4vh,46px);
}
/* ruído fino por cima do degradê — mata o banding */
.foot::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; opacity:.4;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}
.foot__in{ display:grid; gap:1.3rem; justify-items:center; text-align:center; }
.foot__logo{ width:auto; height:clamp(56px,7vw,76px); }
.foot__tag{ margin:0; font-family:var(--f-script); font-size:clamp(1.6rem,2.6vw,2.1rem); line-height:1.1; color:var(--ouro-claro); }
.foot__nav{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px 22px; }
.foot__nav a{
  font-family:var(--f-label); font-weight:400; font-size:.72rem;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--on-dark-soft);
  text-decoration:none; transition:color .3s;
}
@media (hover:hover){ .foot__nav a:hover{ color:var(--on-dark); } }
.foot__copy{
  margin:0; font-size:.74rem; color:var(--on-dark-faint);
  font-family:var(--f-label); letter-spacing:.12em; text-transform:uppercase;
}

/* =========================================================
   REVEAL
   ========================================================= */
.js .reveal{
  opacity:0; transform:translateY(24px);
  transition:opacity 1s var(--ease-out), transform 1s var(--ease-out);
  transition-delay:calc(var(--d,0) * 95ms);
}
.js .reveal.is-in{ opacity:1; transform:none; }
/* títulos de cartaz sobem por trás de uma máscara */
.js .h-poster.reveal, .js .bv1.reveal, .js .bv2.reveal{
  transform:translateY(.32em);
  -webkit-clip-path:inset(0 0 100% 0); clip-path:inset(0 0 100% 0);
  transition:opacity .6s var(--ease), transform 1.05s var(--ease-out), clip-path 1.05s var(--ease-out), -webkit-clip-path 1.05s var(--ease-out);
  transition-delay:calc(var(--d,0) * 95ms);
}
.js .h-poster.reveal.is-in, .js .bv1.reveal.is-in, .js .bv2.reveal.is-in{
  transform:none; -webkit-clip-path:inset(-20% -30% -30% -6%); clip-path:inset(-20% -30% -30% -6%);
}
@media (prefers-reduced-motion: reduce){
  .js .reveal, .js .h-poster.reveal, .js .bv1.reveal, .js .bv2.reveal{ opacity:1; transform:none; transition:none; -webkit-clip-path:none; clip-path:none; }
}

/* .reveal define transition para opacity/transform e apagava o hover destes
   elementos — devolvemos a transição própria assim que eles já apareceram */
.js .check.is-in{ transition:background .35s var(--ease), color .35s var(--ease), border-color .35s, transform .35s var(--ease-out); }
.js .member.is-in .member__in{ transition:transform .85s var(--ease-out); }
.js .jstep.is-in{ transition:transform .5s var(--ease-out), background .4s; }

/* =========================================================
   MOBILE — ajustes finos
   ========================================================= */
@media (max-width:899px){
  .sec--sobre{ padding-top:clamp(56px,8vh,80px); }
  .sec--contato{ padding-top:clamp(46px,7vh,72px); }
  .case__logo{ width:min(200px,52%); }
  /* jornada: rolagem fluida, sem vazio em cima/embaixo */
  .sec--jornada{ padding-block:clamp(56px,8vh,80px); }
  .sec--jornada .sechead{ margin-bottom:22px; }
  .journey__track{ scroll-snap-type:none; padding-bottom:16px; }
  .journey__bar{ margin-bottom:4px; }
  .jstep{ width:min(76vw,300px); padding:20px 20px 22px; }
  .jstep b::before{ left:20px; }
  .sobre__right{ margin-top:.6rem; }
}

/* time no mobile: vira só com toque deliberado, e a legenda respira */
@media (hover:none){
  .member{ cursor:pointer; }
  .member__in{ transition:transform .6s var(--ease-out); }
}
@media (max-width:640px){
  .member__in{ aspect-ratio:4/6.5; }
  .member__id{ padding:11px 11px 12px; gap:8px; }
  .member__id h3{ font-size:.8rem; line-height:1.2; }
  .member__id p{ font-size:.54rem; letter-spacing:.09em; line-height:1.45; }
}

/* âncoras do menu não podem parar atrás da barra fixa */
.sec, .hero{ scroll-margin-top:100px; }
.svc{ scroll-margin-top:110px; }
@media (max-width:1150px){ .sec, .hero{ scroll-margin-top:150px; } }

/* em monitores largos o hero alarga a faixa útil — texto mais à esquerda */
@media (min-width:1441px){
  .hero .wrap{ width:min(100% - var(--pad)*2, 1440px); }
}

/* =========================================================
   COMPLEMENTOS
   ========================================================= */
.entrada{ margin-top:clamp(18px,2.6vw,34px); }

/* segundo caminho do checklist: o diagnóstico automático da comunidade */
.checks__alt{ flex-basis:100%; margin:0; padding-top:14px; border-top:1px solid var(--hair); font-size:.88rem; line-height:1.5; color:var(--ink-faint); }

/* marcas ainda sem arquivo de logo entram com o nome na tipografia do site */
.cli__nome{
  font-family:var(--f-label); font-weight:400; text-transform:uppercase; text-align:center;
  font-size:clamp(.8rem,1.1vw,1rem); line-height:1.25; letter-spacing:.2em; color:var(--wine); padding:0 .8em;
}

/* guias e diagnóstico: cartões clicáveis */
a.com__item{ display:flex; flex-direction:column; text-decoration:none; color:inherit; transition:transform .5s var(--ease-out), background .35s; }
a.com__item:active{ transform:scale(.985); }
.com__ir{
  margin-top:auto; padding-top:1em; display:inline-flex; align-items:center; gap:.7em;
  font-family:var(--f-label); text-transform:uppercase; letter-spacing:.16em; font-size:.7rem; color:var(--wine);
}
.com__ir i{ font-style:normal; transition:transform .45s var(--ease-out); }
@media (hover:hover){
  a.com__item:hover{ transform:translateY(-4px); background:rgba(251,247,236,.72); }
  a.com__item:hover .com__ir i{ transform:translateX(6px); }
}
.js .com__item.is-in{ transition:transform .5s var(--ease-out), background .35s; }

/* =========================================================
   CELULAR — a página inteira redimensionada (12/out/2026, pedido do Franco:
   "tem que ficar bem enquadrado em qualquer aparelho"; "desanima ficar rolando tanto").
   As medidas seguem a largura E a altura útil da tela (svh), que não muda quando a barra
   do Safari recolhe: assim nada pula no meio da rolagem.
   ========================================================= */

/* quebras de linha que só existem no celular (.q-m) ou só no computador (.q-d) */
@media (min-width:761px){ .q-m{ display:none; } }
@media (max-width:760px){ .q-d{ display:none; } }
.cena__eco, .desliza, .pouso{ display:none; }

/* ---------- capa em uma tela: logo, título, texto, botões, régua de números e faixa ---------- */
@media (max-width:899px){
  :root{ --faixa-h:46px; }
  .hero{
    --hv:calc((100vh - var(--faixa-h)) / 100);
    min-height:calc(100vh - var(--faixa-h));
    justify-content:flex-start;
    padding:clamp(112px, calc(23 * var(--hv)), 176px) 0 0;
  }
  @supports (height:100svh){
    .hero{ --hv:calc((100svh - var(--faixa-h)) / 100); min-height:calc(100svh - var(--faixa-h)); }
  }
  .hero > .wrap{ flex:0 0 auto; }
  /* a régua de números fecha a capa, colada na faixa */
  .hero > .wrap:last-child{ margin-top:auto; padding-top:clamp(10px, calc(2 * var(--hv)), 22px); }

  /* as três palavras da linha de cima cabem sempre em uma linha */
  .kicker{ font-size:clamp(.5rem, 2.55vw, .76rem); letter-spacing:.13em; white-space:nowrap; }
  .hero .hero__title{ margin-top:clamp(.5rem, calc(1.6 * var(--hv)), 1rem); }
  .hero .hero__title .t-heavy{ font-size:min(10.4vw, calc(6.4 * var(--hv)), 4.2rem); }
  .hero .hero__title .t-thin{ font-size:min(12.9vw, calc(7.9 * var(--hv)), 5.2rem); }
  .hero .hero__title .t-script{ font-size:min(7vw, calc(4.3 * var(--hv)), 2.9rem); }
  .hero .hero__lead{
    margin-top:clamp(.55rem, calc(1.9 * var(--hv)), 1.1rem); max-width:44rem;
    font-size:clamp(.8125rem, calc(2.36 * var(--hv)), .94rem); line-height:1.55;
  }
  .hero .hero__cta{
    flex-direction:column; flex-wrap:nowrap; align-items:stretch; gap:0; max-width:26rem;
    margin-top:clamp(.7rem, calc(2.5 * var(--hv)), 1.4rem);
  }
  .hero .hero__cta .btn{ padding:1.08em 1em; font-size:clamp(.62rem, 2.75vw, .8rem); letter-spacing:.13em; white-space:nowrap; }
  .hero .hero__cta .btn--glasspill{ margin-top:8px; }
  .hero__more{ display:none; }
  .hero .hero__rotator{ margin-top:.7rem; gap:.15em .55em; align-items:baseline; }
  .hero .hero__rotator .rot{ font-size:clamp(1.25rem,5.4vw,1.7rem); line-height:1.15; }
  @supports (height:100svh){
    /* em tela baixa o "feita para" e o segundo botão saem de cena para a capa caber inteira */
    .hero .hero__rotator{
      overflow:hidden;
      margin-top:clamp(0px, calc((100svh - 770px) * 99), .7rem);
      max-height:clamp(0px, calc((100svh - 770px) * 99), 2.8rem);
    }
    .hero .hero__cta .btn--glasspill{
      overflow:hidden;
      margin-top:clamp(0px, calc((100svh - 626px) * 99), 8px);
      max-height:clamp(0px, calc((100svh - 626px) * 99), 4rem);
      padding-block:clamp(0px, calc((100svh - 626px) * 99), 1.08em);
      border-width:clamp(0px, calc((100svh - 626px) * 99), 1px);
    }
  }

  /* números em régua: no celular ficam os três primeiros (clientes, investido, vendas) */
  .hero .hero__stats{ margin-top:0; grid-template-columns:.7fr 1.15fr 1.15fr; border-bottom:0; }
  .hero .stat:nth-child(4){ display:none; }
  .hero .stat:nth-child(3){ padding-right:0; }
  .hero .stat{ padding:10px 12px 12px; min-width:0; }
  .hero .stat:first-child{ padding-left:0; }
  .hero .stat:last-child{ padding-right:0; }
  .hero .stat b{ font-size:clamp(.9rem, 4.9vw, 2.1rem); }
  .hero .stat span, .hero .stat:nth-child(2) i, .hero .stat:nth-child(3) i{
    margin-top:.6em; font-family:var(--f-label); font-weight:400; text-transform:uppercase;
    letter-spacing:.13em; font-size:clamp(.5rem, 2.15vw, .7rem); line-height:1.4; color:var(--ink-soft);
  }
  .hero .stat i{ display:none; }
  .hero .stat:nth-child(2) i, .hero .stat:nth-child(3) i{ display:block; margin-top:0; }

  .faixa span{ font-size:.66rem; letter-spacing:.26em; }
  .faixa em{ font-size:1.3rem; }
  .faixa span::after, .faixa em::after{ margin:0 16px; }
}

@media (max-width:760px){
  /* ---------- as três telas: cada uma ocupa a tela e uma passada de dedo desce uma ---------- */
  /* O encaixe vale só da capa até o começo de "O problema": o main.js põe a classe .encaixa no <html> enquanto a
     página está nessa zona e tira ao sair dela, para o resto do site rolar livre (encaixe na página toda prenderia a
     leitora nas seções compridas). A altura é a da tela com a barra do navegador recolhida (lvh), que é como ela
     fica depois da primeira passada. */
  html.encaixa{ scroll-snap-type:y mandatory; }
  .hero{ scroll-snap-align:start; }
  .cena{
    min-height:0; height:100vh; padding:80px 0 24px;
    scroll-snap-align:start; scroll-snap-stop:always;
  }
  @supports (height:100lvh){ .cena{ height:100lvh; } }
  .pouso{
    display:block; position:absolute; left:0; top:0; width:1px; height:1px; pointer-events:none;
    scroll-snap-align:start; scroll-snap-stop:always; scroll-margin-top:40px;
  }
  .cena__in{ --w:calc(100vw - var(--pad) * 2); }
  /* a letra enche a largura da tela, com teto pela altura (o fator é a largura medida de cada frase) */
  .cena__l--a{ font-size:min(calc(var(--w) * .32), 15.2svh); line-height:.93; }
  .cena__l--b{ font-size:min(calc(var(--w) * .187), 10svh); line-height:.96; margin-top:.42em; }
  .cena__l--c, .cena__eco{ font-size:min(calc(var(--w) * .224), 11.6svh); line-height:.9; }
  .cena__l--d{ font-size:min(calc(var(--w) * .219), 12.2svh); line-height:1; }
  .cena__s{ font-size:min(calc(var(--w) * .125), 6.6svh); line-height:1.02; margin-top:.5em; text-wrap:balance; }
  html[lang="en"] .cena__l--d{ font-size:min(calc(var(--w) * .31), 14.5svh); }
  html[lang="en"] .cena__l--a{ font-size:min(calc(var(--w) * .203), 15.2svh); }
  html[lang="en"] .cena__l--b{ font-size:min(calc(var(--w) * .162), 10svh); }
  /* "Calma." com eco, como o título repetido das capas do PDF: a palavra cheia no meio, o contorno em volta */
  .cena--2 .cena__in{ display:grid; justify-items:center; }
  .cena__eco{
    display:block; margin:0; font-family:var(--f-num); font-weight:400; text-transform:uppercase;
    white-space:nowrap; text-align:center; color:transparent; -webkit-text-stroke:1.3px var(--wine);
  }
  .cena__eco span{ display:block; opacity:var(--o); }

  /* ---------- escala de texto e respiro das seções ---------- */
  body{ font-size:14.5px; line-height:1.6; }
  .sec{ padding:clamp(48px, 8.2svh, 64px) 0; }
  .sec{ scroll-margin-top:36px; }
  .hero{ scroll-margin-top:0; }
  .svc{ scroll-margin-top:92px; }
  .sechead{ margin-bottom:24px; }
  .eyebrow{ margin-bottom:.9em; gap:10px; letter-spacing:.24em; font-size:.6rem; }
  .eyebrow::before, .sechead--center .eyebrow::after{ width:24px; }
  .h-poster{ font-size:clamp(1.8rem, 9vw, 2.6rem); }
  .h-poster--xl,
  .sec--case .h-poster, .sec--metodo .h-poster, .sec--jornada .h-poster, .sec--tec .h-poster{
    font-size:clamp(2rem, 10.3vw, 3rem); line-height:.96;
  }
  .script{ font-size:clamp(1.45rem, 6.4vw, 2rem); }
  .script--lg{ font-size:clamp(1.6rem, 7.2vw, 2.3rem); }
  .sechead__lead{ margin-top:.9rem; font-size:.9rem; line-height:1.58; max-width:none; }
  .btn--lg{ padding:1.05em 1.5em; font-size:.72rem; letter-spacing:.14em; }

  /* ---------- o problema ---------- */
  .problema__grid{ gap:20px; }
  .checks{ gap:7px; }
  .check{ gap:12px; padding:.78em .95em; min-height:44px; font-size:.875rem; line-height:1.3; --g-r:13px; }
  .check__box{ width:19px; height:19px; }
  .check__box::after{ left:6px; top:2.6px; width:4.5px; height:9px; }
  .checks__out{ margin-top:12px; padding:18px; gap:12px; }
  .checks__out > p:first-child{ flex-direction:row; align-items:baseline; gap:.6em; }
  .checks__n{ font-size:2.2rem; }
  .checks__msg{ flex-basis:100%; font-size:.875rem; }
  .checks__out .btn{ margin-left:0; width:100%; padding:1.05em 1em; font-size:.66rem; letter-spacing:.13em; text-align:center; }
  .checks__alt{ padding-top:12px; font-size:.8rem; }

  /* ---------- a frase ---------- */
  .frase{ padding:clamp(60px, 11svh, 92px) 0; }
  .frase__t{ font-size:clamp(1.6rem, 7.6vw, 2.3rem); line-height:1.08; }

  /* ---------- bem-vinda ---------- */
  .sobre__grid{ gap:20px; }
  .bv1{ font-size:clamp(3rem, 15.6vw, 4.6rem); }
  .bv2{ font-size:clamp(3.8rem, 19.6vw, 5.8rem); }
  .sobre__left .kicker{ margin-top:1rem; }
  .sobre__right{ margin-top:0; }
  .sobre__copy p{ margin:0 0 .8em; font-size:.9rem; line-height:1.58; }
  /* os cinco princípios viram lista: sem cartão, um fio entre eles */
  .sobre__facts{ margin-top:22px; gap:0; border-top:1px solid var(--hair-dark); }
  .fact.glass{
    padding:14px 0 15px; border:0; border-bottom:1px solid var(--hair-dark); border-radius:0;
    background:none; box-shadow:none; -webkit-backdrop-filter:none; backdrop-filter:none;
  }
  .fact.glass::before, .fact.glass::after{ display:none; }
  .fact:last-child{ border-bottom:0; padding-bottom:0; }
  .fact h3{ margin-bottom:.35em; font-size:1.12rem; }
  .fact p{ font-size:.84rem; line-height:1.5; }

  /* ---------- serviços ---------- */
  .servicos__topo{ gap:14px; }
  .orbita{ --R:clamp(80px, 23.4vw, 118px); height:calc(var(--R)*2 + 72px); }
  .pilha{ gap:12px; margin-top:22px; }
  .svc{ border-radius:22px; }
  .svc__in{ gap:16px; padding:22px 18px 18px; }
  .svc__n b{ font-size:1.3rem; }
  .svc__n i{ font-size:.6rem; letter-spacing:.22em; }
  .svc h3, #svc-3 h3, #svc-4 h3, .svc--link h3{ font-size:clamp(1.9rem, 9.2vw, 2.7rem); line-height:.96; }
  .svc__tag{ font-size:.68rem; line-height:1.6; letter-spacing:.12em; }
  .svc__intro{ margin-top:.9em; font-size:.875rem; line-height:1.55; }
  .svc__meta{ margin-top:1em; gap:2px 0; }
  .svc__meta span{ font-size:.6rem; letter-spacing:.12em; padding:.42em 1em .42em 1.4em; }
  .svc__meta span::before{ width:6px; height:6px; margin-top:-3px; }
  /* "Como é feito" abre com um toque */
  .svc__b{ padding:0; --g-r:16px; }
  .svc__b h4{ margin:0; font-size:.64rem; letter-spacing:.24em; }
  .svc__ab{ cursor:pointer; min-height:48px; padding:14px 16px; }
  .svc__ab i{
    display:block; order:3; flex:0 0 auto; position:relative; width:22px; height:22px;
    border-radius:50%; border:1px solid currentColor;
  }
  .svc__ab i::before, .svc__ab i::after{
    content:""; position:absolute; left:50%; top:50%; width:9px; height:1.4px; margin:-.7px 0 0 -4.5px;
    background:currentColor; transition:transform .4s var(--ease-out);
  }
  .svc__ab i::after{ transform:rotate(90deg); }
  .svc__b.is-open .svc__ab i::after{ transform:rotate(0deg); }
  .svc__corpo{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .5s var(--ease-out); }
  .svc__b.is-open .svc__corpo{ grid-template-rows:1fr; }
  .svc__corpo > ul{ overflow:hidden; min-height:0; padding:0 16px; }
  .svc__corpo > ul > li:last-child{ margin-bottom:16px; }
  .svc__b li{ font-size:.84rem; line-height:1.5; }
  /* neci essencial */
  .entrada{ margin-top:12px; }
  .svc--link .svc__in{ padding:22px 18px 0; }
  .svc__ir{ margin-top:1.1em; padding:1em 1.3em; font-size:.66rem; letter-spacing:.14em; }
  .svc__cel{ height:clamp(150px, 42vw, 200px); margin-bottom:0; }
  .cel{ width:clamp(130px, 38vw, 170px); border-radius:24px; padding:6px; }
  .cel img{ border-radius:19px; }

  /* ---------- método ---------- */
  .metodo__grid{ gap:12px; }
  .method{ padding-left:30px; }
  .mstep{ gap:12px; padding:13px 0; }
  .mstep b{ font-size:1rem; }
  .mstep h3{ font-size:clamp(1.25rem, 5.9vw, 1.75rem); }
  .method__fio{ left:8px; top:13px; bottom:13px; }
  .nots{ margin-top:28px; padding:24px 20px 12px; border-radius:22px; gap:8px; }
  .nots__t{ font-size:clamp(1.6rem, 7.6vw, 2.2rem); }
  .nots__list li{ padding:.7em 0; font-size:.9rem; line-height:1.4; }

  /* ---------- tecnologia: os quatro cartões lado a lado, arrastando ---------- */
  .tec__topo{ gap:12px; }
  .tec__lead{ font-size:.9rem; line-height:1.58; }
  .tec__grade, .team{
    display:flex; gap:10px; margin-inline:calc(var(--pad) * -1); padding-inline:var(--pad);
    overflow-x:auto; overscroll-behavior-x:contain; scroll-padding-inline:var(--pad);
    -webkit-overflow-scrolling:touch; scrollbar-width:none;
  }
  .tec__grade::-webkit-scrollbar, .team::-webkit-scrollbar{ display:none; }
  .tec__grade{ margin-top:22px; padding-top:4px; padding-bottom:16px; scroll-snap-type:x mandatory; }
  /* cartão do carrossel: a mini-tela em cima (mesma altura nos quatro), número e título numa linha, texto na largura toda */
  .tec__card{
    flex:0 0 min(82%, 330px); scroll-snap-align:start; padding:16px 16px 18px;
    grid-template-rows:auto auto 1fr; align-content:start; gap:4px 10px; --g-r:18px;
  }
  .tec__ui{ grid-row:1; grid-column:1 / -1; min-height:128px; align-content:center; margin:0 0 .8em; padding:12px 14px; }
  .tec__card > div:not(.tec__ui){ display:contents; }
  .tec__card > b{ grid-row:2; grid-column:1; font-size:1.2rem; line-height:1.1; }
  .tec__card h3{ grid-row:2; grid-column:2; align-self:center; font-size:1.25rem; }
  .tec__card p{ grid-row:3; grid-column:1 / -1; margin-top:.45em; font-size:.84rem; line-height:1.52; }
  .tec__combinados{ margin-top:22px; padding-top:0; border-top:0; gap:12px; }
  .tec__combinados li{ font-size:.875rem; }
  /* fio que mostra que tem mais para o lado */
  .desliza{ display:block; height:2px; border-radius:2px; overflow:hidden; background:rgba(246,239,221,.18); }
  .desliza i{ display:block; height:100%; width:30%; border-radius:2px; background:var(--mostarda); will-change:transform; }
  .sec--time .desliza{ background:var(--hair); }

  /* ---------- case bemevi: a foto ao lado dos três números ---------- */
  .sec--case .wrap{ display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1fr); gap:0 10px; }
  .sec--case .sechead, .case__copy{ grid-column:1 / -1; }
  .case__grid{ display:contents; }
  .case__logo{ width:min(170px,48%); margin-bottom:.6rem; }
  .case__tag{ font-size:1.5rem; margin-bottom:.8rem; }
  .case__copy p:not(.case__tag){ margin:0 0 .8em; font-size:.9rem; line-height:1.58; }
  .case__copy .btn--line{ margin-top:0; padding:.7em .1em; font-size:.66rem; letter-spacing:.13em; }
  .case__foto{
    grid-column:1; margin-top:18px; max-width:none; aspect-ratio:auto; justify-self:stretch;
    min-height:260px; border-radius:18px;
  }
  .case__foto img{ position:absolute; inset:0; object-position:50% 30%; }
  .case__foto figcaption{ left:8px; right:8px; bottom:8px; padding:.6em .5em; text-align:center; font-size:.5rem; letter-spacing:.13em; }
  .case__stats{ grid-column:2; margin-top:18px; grid-template-columns:1fr; gap:8px; }
  .cstat{ padding:13px 14px 14px; gap:.55em; border-radius:16px; }
  .cstat b{ font-size:clamp(1.6rem, 7.6vw, 2.3rem); }
  .cstat span{ font-size:.56rem; letter-spacing:.12em; line-height:1.5; }
  .cstat i{ margin-top:.35em; font-size:.74rem; line-height:1.4; }

  /* ---------- jornada ---------- */
  .jstep{ width:min(72vw,280px); padding:18px 18px 20px; }
  .jstep h3{ font-size:1.25rem; }
  .jstep p{ font-size:.84rem; }

  /* ---------- clientes ---------- */
  .marquee{ margin-top:22px; gap:10px; }
  .marquee__set{ gap:10px; padding-right:10px; }
  .cli{ width:142px; gap:9px; padding:7px 7px 11px; border-radius:16px; }
  .cli b{ font-size:.58rem; letter-spacing:.17em; }
  .cli b i{ letter-spacing:.17em; }
  .cli__logo{ height:62px; border-radius:11px; }
  .cli__logo img{ height:22px; }
  .cli__logo .marquee__svg{ height:14px; }
  .cli__nome{ font-size:.62rem; letter-spacing:.16em; }

  /* ---------- comunidade: o retrato ao lado do título ---------- */
  .vip{ grid-template-columns:minmax(0,1fr) 37%; gap:0 10px; align-items:start; }
  .vip__text{ display:contents; }
  .vip__neci{ grid-column:2; grid-row:1 / span 2; align-self:center; max-width:none; margin:0; }
  .vip .eyebrow{ grid-column:1; grid-row:1; align-self:end; margin-bottom:.7em; line-height:1.5; }
  .vip .eyebrow::before{ display:none; }
  .vip__title{ grid-column:1; grid-row:2; }
  .vip__script{ font-size:clamp(2.4rem, 11.6vw, 3.4rem); }
  .vip__caps{ font-size:clamp(3.1rem, 15.8vw, 4.6rem); }
  .vip__lead, .com__grade, .vip__action{ grid-column:1 / -1; }
  .vip__lead{ margin-top:.8rem; font-size:.9rem; line-height:1.58; max-width:none; }
  .com__grade{ gap:8px; margin-top:18px; }
  .com__item{ padding:15px 16px; border-radius:16px; }
  .com__item h3{ font-size:1.15rem; }
  .com__item p{ font-size:.84rem; line-height:1.5; }
  .com__ir{ padding-top:.75em; font-size:.62rem; }
  .vip__action{ gap:8px; margin-top:18px; }
  .vip__action .btn{ flex:1 1 100%; padding:1.05em 1em; font-size:.68rem; letter-spacing:.13em; }
  .vip__action small{ text-align:center; font-size:.58rem; }

  /* ---------- time: os retratos lado a lado, arrastando ---------- */
  .h-poster--team{ text-wrap:balance; white-space:normal; font-size:clamp(1.6rem, 7.8vw, 2.3rem); }
  .team{ padding-top:6px; padding-bottom:20px; scroll-snap-type:x proximity; }
  .member{ flex:0 0 min(44%, 190px); scroll-snap-align:start; }

  /* ---------- contato: o formulário sobe e encolhe ---------- */
  .sec--contato{ margin-inline:8px; margin-bottom:40px; border-radius:24px; }
  .contato__grid{ gap:0; }
  .contato__left{ display:contents; }
  .sec--contato .h-poster--xl{ font-size:clamp(1.55rem, 7.4vw, 2.2rem); }
  .contato__lead{ margin-top:.8rem; font-size:.9rem; line-height:1.58; max-width:none; }
  .contato__em{ margin-top:.9rem; font-size:1.6rem; }
  .contato__links{ order:2; margin-top:16px; gap:5px; justify-content:center; flex-wrap:nowrap; }
  .contato__links a{ padding:.75em .9em; font-size:.56rem; letter-spacing:.1em; white-space:nowrap; }
  .form{ order:1; grid-template-columns:1fr 1fr; gap:10px; margin-top:18px; padding:16px 14px; --g-r:18px; }
  .form > div.field:nth-of-type(3), .form > div.field:nth-of-type(4){ grid-column:1 / -1; }
  .field{ gap:.32em; }
  .field label, .field legend{ font-size:.56rem; letter-spacing:.16em; }
  /* 16px: abaixo disso o iPhone dá zoom na página ao tocar no campo */
  .field input, .field textarea{ font-size:16px; padding:.56em .62em; }
  .field input::placeholder, .field textarea::placeholder{ font-size:.7rem; }
  .field textarea{ min-height:0; height:4.5em; }
  .chips{ gap:6px; }
  .chip span{ padding:.52em .95em; font-size:.7rem; letter-spacing:.1em; }
  .form__actions{ margin-top:.1em; }
  .form__actions .btn{ width:100%; padding:1.1em 1em; font-size:.72rem; }
  .form__note{ font-size:.78rem; min-height:0; }
  .form__note:empty{ display:none; }

  .foot{ padding:44px 0 28px; }
}

/* o texto das telas e o eco do "Calma." entram suaves, uma vez */
@media (max-width:760px) and (prefers-reduced-motion: no-preference){
  .js .cena__eco span{ opacity:0; transition:opacity .9s var(--ease-out); transition-delay:calc(var(--i) * 110ms + .25s); }
  .js .cena.on .cena__eco span{ opacity:var(--o); }
  /* nos carrosséis os cartões já chegam prontos: aparecer só depois de arrastar daria a impressão de travar */
  .js .tec__grade .tec__card.reveal, .js .team .member.reveal{ transition-duration:.7s; }
}

/* =========================================================
   CASES DE ESCALA (dentro de Clientes) — dados de assets/data/retrospectiva.json
   ========================================================= */
.cases{ margin-top:clamp(56px,8vw,104px); }
.cases__head{ text-align:center; max-width:760px; margin:0 auto clamp(26px,3.4vw,40px); }
.cases__t{
  font-family:var(--f-display); font-weight:500; text-transform:uppercase; color:var(--cream);
  font-size:clamp(1.9rem,4.4vw,3.4rem); line-height:1; margin:.35em 0 .4em;
}
.cases__t .script{ text-transform:none; font-family:var(--f-script); color:var(--ouro-claro); font-size:1.15em; font-weight:400; }
.cases__lead{ color:var(--on-dark-soft); font-size:clamp(.95rem,1.15vw,1.05rem); line-height:1.6; text-align:justify; text-align-last:center; hyphens:auto; }

/* bloco azul único com abas — mesmo desenho da Retrospectiva Neci aprovada */
.cases__bloco{
  border-radius:24px; padding:clamp(18px,2.6vw,32px) clamp(18px,3vw,38px);
  max-width:1060px; margin-inline:auto;
  background:radial-gradient(70% 60% at 100% 0%,rgba(232,168,32,.16),rgba(232,168,32,0) 60%),linear-gradient(180deg,#24426F 0%,#12233F 100%);
  box-shadow:0 30px 70px -40px rgba(0,0,0,.8);
}
.cases__abas{ display:flex; flex-wrap:wrap; gap:2px 26px; border-bottom:1px solid rgba(243,235,218,.2); }
.cases__aba{
  appearance:none; background:none; border:0; cursor:pointer; position:relative; padding:12px 0;
  font:400 .74rem/1 var(--f-label); letter-spacing:.16em; text-transform:uppercase; color:rgba(243,235,218,.6);
  transition:color .25s var(--ease);
}
.cases__aba::after{ content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--mostarda);
  transform:scaleX(0); transform-origin:0 50%; transition:transform .45s var(--ease-out); }
.cases__aba.on{ color:var(--cream); }
.cases__aba.on::after{ transform:none; }
.cases__aba:focus-visible{ outline:2px solid var(--mostarda); outline-offset:4px; }
@media (hover:hover){ .cases__aba:hover{ color:var(--cream); } }

.cases__case{ display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(18px,3.4vw,44px); align-items:start; padding-top:clamp(16px,2vw,22px); }
.cases__seg{ margin:0; font-family:var(--f-display); font-weight:500; text-transform:uppercase; font-size:clamp(1.5rem,2.6vw,2.3rem); line-height:.95; color:var(--cream); }
.cases__quem{ margin-top:8px; font:400 .66rem/1.5 var(--f-label); letter-spacing:.18em; text-transform:uppercase; color:var(--ouro-claro); }
.cases__salto{ margin-top:16px; }
.cases__salto b{ display:block; font:400 clamp(2.4rem,4.6vw,4rem)/.95 var(--f-num); color:var(--mostarda); white-space:nowrap; }
.cases__salto b small{ font-size:.42em; margin-left:.08em; }
.cases__salto b.longo{ font-size:clamp(2rem,3.6vw,3.1rem); }
.cases__salto span{ display:block; margin-top:10px; font-size:clamp(.92rem,1.2vw,1.02rem); line-height:1.55; color:rgba(243,235,218,.88); text-align:justify; hyphens:auto; }
.cases__graf{ min-width:0; }
.cases__g{ width:100%; height:auto; overflow:visible; display:block; }
.cases__g .g-vendas{ fill:none; stroke:#F3EBDA; stroke-width:2.6; stroke-linejoin:round; }
.cases__g .g-invest{ fill:none; stroke:var(--mostarda); stroke-width:2.2; stroke-linejoin:round; }
.cases__g .g-fio{ stroke:#F3EBDA; opacity:.25; }
.cases__g .g-corte{ stroke:var(--mostarda); stroke-dasharray:3 4; }
.cases__g .g-tag{ font:400 10.5px var(--f-label); letter-spacing:2px; fill:#F3EBDA; opacity:.55; }
.cases__g .g-tag--neci{ fill:var(--mostarda); opacity:1; }
.cases__g .g-m{ font:400 12px var(--f-body); fill:#F3EBDA; opacity:.6; }
.cases__case.is-in .g-vendas, .cases__case.is-in .g-invest{ stroke-dasharray:3000; animation:traca 1.4s var(--ease-out) both; }
@keyframes traca{ from{ stroke-dashoffset:3000; } to{ stroke-dashoffset:0; } }
.cases__leg{ display:flex; align-items:center; gap:8px; margin-top:10px; font-size:.78rem; color:rgba(243,235,218,.75); }
.cases__leg i{ display:inline-block; width:14px; height:3px; border-radius:2px; background:#F3EBDA; }
.cases__leg i.g{ background:var(--mostarda); margin-left:14px; }
.cases__case.is-in .cases__info{ animation:entra .5s var(--ease-out) both; }
@keyframes entra{ from{ opacity:0; transform:translateY(10px); } }
.cases__nota{ margin-top:14px; font-size:.78rem; line-height:1.55; color:var(--on-dark-faint); text-align:justify; hyphens:auto; }

@media (max-width:760px){
  .cases__bloco{ border-radius:22px; }
  .cases__abas{ gap:0 18px; }
  .cases__aba{ font-size:.64rem; padding:11px 0; }
  .cases__case{ grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce){ .cases__case.is-in .g-vendas, .cases__case.is-in .g-invest, .cases__case.is-in .cases__info{ animation:none; } }

