/* =========================================================
   NECI HUB — landing · direção "editorial de ateliê"
   Creme dominante · tipografia poster · liquid glass
   ========================================================= */

:root{
  --cream:      #F6EFDD;
  --cream-2:    #EFE6CE;
  --paper:      #F2EBD9;
  --wine:       #3E0B0B;
  --wine-2:     #571313;
  --petrol:     #17506E;
  --petrol-d:   #0C3247;
  --terra:      #C0563A;
  --gold:       #D99A14;
  --olive:      #6B7A16;

  --ink:        #2E0909;
  --ink-soft:   rgba(46,9,9,.74);
  --ink-faint:  rgba(46,9,9,.45);
  --hair:       rgba(62,11,11,.16);

  --on-dark:       #F6EFDD;
  --on-dark-soft:  rgba(246,239,221,.76);
  --on-dark-faint: rgba(246,239,221,.46);
  --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;

  --maxw: 1220px;
  --pad: clamp(20px, 5vw, 64px);

  --f-display: 'Jost', system-ui, sans-serif;
  --f-body: 'Archivo', system-ui, sans-serif;
  --f-script: 'Pinyon Script', serif;

  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,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.62;
  color:var(--ink);
  background:var(--cream);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; }
button{ font:inherit; color:inherit; }

.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(--terra); outline-offset:3px; border-radius:6px; }

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

/* ---------- 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(--terra),transparent 66%); opacity:.13; animation:drift1 38s var(--ease) infinite alternate; }
.b2{ width:44vw; height:44vw; right:-14vw; top:22vh; background:radial-gradient(circle,var(--petrol),transparent 66%); opacity:.1; animation:drift2 46s var(--ease) infinite alternate; }
.b3{ width:38vw; height:38vw; left:16vw; bottom:-10vw; background:radial-gradient(circle,var(--gold),transparent 68%); opacity:.1; 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; }

/* =========================================================
   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(62,11,11,.05) inset,
    0 16px 40px -26px rgba(62,11,11,.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);
}
.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%);
}

/* =========================================================
   TIPOGRAFIA
   ========================================================= */
.h-poster{
  font-family:var(--f-display);
  font-weight:200;
  font-size:clamp(2.5rem, 7.6vw, 5.8rem);
  line-height:.96;
  letter-spacing:.01em;
  text-transform:uppercase;
  margin:0;
  color:var(--wine);
  text-wrap:balance;
}
.h-poster--xl{ font-size:clamp(2.7rem, 8.6vw, 6.6rem); }
/* 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(1.9rem, 6.2vw, 5.2rem);
}
/* contato: enquadrado, sem estourar a coluna */
.sec--contato .h-poster--xl{
  font-size:clamp(1.6rem, 2.55vw, 2.35rem);
  line-height:1.08; letter-spacing:.015em;
  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.45rem, 4.1vw, 3.5rem);
  line-height:1.1;
}

.script{
  font-family:var(--f-script);
  font-size:clamp(1.6rem, 3.6vw, 2.7rem);
  color:var(--petrol);
  margin:0 0 .1em;
  line-height:1.08;
  font-weight:400;
}
.script--lg{ font-size:clamp(2rem, 5vw, 3.5rem); }

.eyebrow{
  display:flex; align-items:center; gap:14px;
  font-family:var(--f-display); font-weight:500;
  text-transform:uppercase; letter-spacing:.3em;
  font-size:clamp(.6rem,.95vw,.72rem);
  color:var(--terra);
  margin:0 0 1.1em;
}
.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(--gold); }

.kicker{
  font-family:var(--f-display); font-weight:500;
  text-transform:uppercase; letter-spacing:.24em;
  font-size:clamp(.68rem,1.05vw,.82rem);
  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:58ch; }
.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.2rem 0 0; font-size:clamp(1rem,1.5vw,1.16rem);
  color:var(--ink-soft); max-width:52ch;
}
.sechead--center .sechead__lead{ margin-inline:auto; }

/* =========================================================
   BOTÕES
   ========================================================= */
/* mesma tipografia do botão "Entrar na comunidade" do menu: Jost mais leve,
   caixa alta, 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:.85em 1.7em; border-radius:999px; border:1px solid transparent;
  font-family:var(--f-display); font-weight:500; font-size:.74rem;
  letter-spacing:.14em; 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--lg{ padding:1.05em 2.1em; font-size:.78rem; letter-spacing:.14em; }
.btn--solid{
  background:var(--wine); color:var(--on-dark);
  box-shadow:0 12px 28px -16px rgba(62,11,11,.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--solid:hover::after{ transform:translateX(130%); }
.btn--solid:hover{ transform:translateY(-2px); }

.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(62,11,11,.5);
}
.btn--glasspill:hover{ transform:translateY(-2px); background:rgba(246,239,221,.6); }

.btn--line{
  padding:.85em .2em; border-radius:0;
  color:var(--wine); background:none;
  border-bottom:1px solid rgba(62,11,11,.4);
}
.btn--line i{ font-style:normal; transition:transform .45s var(--ease-out); }
.btn--line:hover i{ transform:translateX(7px); }
.btn--line:hover{ border-bottom-color:var(--terra); color:var(--terra); }

.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);
}
.btn--ghost:hover{ transform:translateY(-2px); background:rgba(246,239,221,.18); }

/* botão de idioma — discreto */
.langbtn{
  font-family:var(--f-display); font-weight:600; font-size:.66rem;
  letter-spacing:.2em; text-transform:uppercase;
  padding:.6em .95em; border-radius:999px; cursor:pointer;
  color:var(--ink-faint); background:rgba(246,239,221,.3);
  border:1px solid rgba(62,11,11,.16);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  transition:color .3s, border-color .3s;
}
.langbtn:hover{ color:var(--wine); border-color:rgba(62,11,11,.4); }

/* =========================================================
   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(62,11,11,.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-display); font-weight:300;
  font-size:clamp(.63rem,.76vw,.74rem);
  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(--terra); transform:scaleX(0); transform-origin:left;
  transition:transform .45s var(--ease-out);
}
.nav__links a:hover::after,
.nav__links a.is-active::after{ transform:scaleX(1); }
.nav__links a:hover,
.nav__links a.is-active{ 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(62,11,11,.9);
  transition:transform .4s var(--ease-out), background .3s;
}
.nav__wa svg{ width:21px; height:21px; fill:currentColor; }
.nav__wa:hover{ transform:translateY(-2px) scale(1.05); background:var(--wine-2); }

/* comunidade: mesmo círculo e mesmo vinho do WhatsApp — só no mobile,
   onde a pill "Entrar na comunidade" não cabe */
.nav__com{ display:none; }
.nav__com svg{ width:22px; height:22px; }
@media (max-width:980px){ .nav__com{ display:grid; } }

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

/* EN + lupa: separadinhos, 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-display); font-weight:500; font-size:.6rem;
  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(62,11,11,.5);
  transition:color .3s, transform .4s var(--ease-out), background .3s;
}
.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-display); font-weight:300; font-size:.66rem;
  letter-spacing:.24em; text-transform:uppercase;
  color:var(--ink-faint);
  transition:color .3s;
}
.langtext:hover, .langtext:focus-visible{ color:var(--wine); }

@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(62,11,11,.12);
  }
  .nav__links a{
    font-size:.7rem; letter-spacing:.16em; padding:.95em .3em;
    border-bottom:1px solid rgba(62,11,11,.08);
  }
  .nav__links a:last-child{ border-bottom:0; }
  .nav__links a::after{ display:none; }
  .nav__links a.is-active{ color:var(--terra); }
}
/* 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__com svg{ width:21px; height:21px; }
  .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__com svg{ width:19px; height:19px; }
}

/* =========================================================
   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);
}
@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; }
}

/* 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, com a régua de números
     ancorada no rodapé dela — nada de cortar em telas de 900/982px */
  .hero{
    height:100svh; min-height:620px;
    justify-content:space-between;
    padding-top:clamp(86px,10.5vh,150px);
    padding-bottom:clamp(20px,3vh,44px);
  }
  .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(14px,3vh,72px); }
  /* respiros internos encolhem junto com a altura da tela */
  .hero .hero__title{ margin-top:clamp(.5rem,1.7vh,1.3rem); }
  .hero .hero__rotator{ margin-top:clamp(.5rem,1.5vh,1.1rem); }
  .hero .hero__lead{ margin-top:clamp(.7rem,1.9vh,1.5rem); }
  .hero .hero__cta{ margin-top:clamp(.8rem,2.3vh,1.8rem); }
  /* a tipografia também obedece à ALTURA: em telas baixas nada é cortado,
     e em 982px+ os tamanhos ficam exatamente como já estavam */
  .hero .hero__title .t-heavy{ font-size:min(clamp(2.6rem,6.3vw,5.2rem), 8.5vh); }
  .hero .hero__title .t-thin { font-size:min(clamp(2.3rem,5.6vw,4.7rem), 7.7vh); }
  .hero .hero__title .t-script{ font-size:min(clamp(1.7rem,3.9vw,3.1rem), 5.1vh); }
  .hero .hero__rotator .rot{ font-size:min(clamp(1.4rem,2.8vw,2rem), 3.3vh); }
  .hero .hero__stats .stat{ padding-block:min(clamp(20px,2.6vw,30px), 2.6vh); }
  .hero .hero__stats .stat b{ font-size:min(clamp(2.1rem,4.4vw,3.5rem), 5.4vh); }
  .hero .hero__lead{ font-size:min(clamp(1.02rem,1.5vw,1.2rem), 2.1vh); }
  .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; }

.hero__title .t-heavy{
  font-family:var(--f-display); font-weight:800;
  font-size:clamp(2.6rem, 6.3vw, 5.2rem);
  line-height:.94; letter-spacing:-.02em;
  text-transform:uppercase; color:var(--wine);
}
.hero__title .t-thin{
  font-family:var(--f-display); font-weight:200;
  font-size:clamp(2.3rem, 5.6vw, 4.7rem);
  line-height:1; letter-spacing:.045em;
  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(--terra); line-height:.94;
  margin:.06em 0 .1em;
  transform:rotate(-2deg); transform-origin:left center;
}
.hero__title .t-script--b{ color:var(--petrol); }

.hero__lead{
  margin:1.5rem 0 0; max-width:46ch;
  font-size:clamp(1.02rem,1.5vw,1.2rem);
  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-display); text-transform:uppercase; letter-spacing:.24em;
  font-size:.66rem; color:var(--ink-faint); font-weight:500;
}
.rot{
  font-family:var(--f-script); font-size:clamp(1.4rem,2.8vw,2rem);
  color:var(--petrol); min-height:1.2em;
}
.rot::after{
  content:""; display:inline-block; width:1.5px; height:.8em;
  background:var(--petrol); margin-left:.14em; vertical-align:-.05em;
  animation:caret 1.1s steps(1) infinite;
}
@keyframes caret{ 50%{ opacity:0; } }

/* ---------- stats em régua ---------- */
.hero__stats{
  margin-top:clamp(52px,9vh,92px);
  display:grid; grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--hair);
  border-bottom:1px solid var(--hair);
}
.stat{
  padding:clamp(20px,2.6vw,30px) clamp(16px,2vw,28px);
  display:flex; flex-direction:column;
}
.stat + .stat{ border-left:1px solid var(--hair); }
.stat b{
  font-family:var(--f-display); font-weight:200;
  font-size:clamp(2.1rem,4.4vw,3.5rem); line-height:1;
  color:var(--wine); letter-spacing:-.01em;
  font-variant-numeric:tabular-nums;
}
.stat span{
  margin-top:.4em;
  font-family:var(--f-display); font-weight:600;
  text-transform:uppercase; letter-spacing:.16em; font-size:.66rem;
  color:var(--ink-soft);
}
.stat i{
  font-style:normal; font-family:var(--f-body); font-weight:400;
  font-size:clamp(.86rem,1.1vw,.96rem); color:var(--terra);
  margin-top:.45em; line-height:1.4; letter-spacing:.005em;
}
@media (max-width:700px){
  .hero__stats{ grid-template-columns:1fr; }
  .stat + .stat{ border-left:0; border-top:1px solid var(--hair); }
}

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

/* ---------- problema ---------- */
.checks{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:1fr 1fr; gap:0 clamp(28px,4vw,64px);
}
@media (max-width:820px){ .checks{ grid-template-columns:1fr; } }

.check{
  width:100%; text-align:left; cursor:pointer;
  display:flex; align-items:flex-start; gap:16px;
  padding:1.05em .4em;
  background:none; border:0; border-radius:0; box-shadow:none;
  border-bottom:1px solid var(--hair);
  -webkit-backdrop-filter:none; backdrop-filter:none;
  font-family:var(--f-body); font-size:1rem; line-height:1.45;
  color:var(--ink-soft);
  transition:padding-left .85s var(--ease-out), color .55s var(--ease);
}
.check::before,.check::after{ display:none; }
.check:hover{ padding-left:.42em; color:var(--wine); }
.check__box{
  flex:0 0 auto; width:19px; height:19px; margin-top:.18em; border-radius:5px;
  border:1.5px solid rgba(62,11,11,.35); position:relative;
  transition:background .3s, border-color .3s;
}
.check__box::after{
  content:""; position:absolute; left:5.5px; top:1.5px; width:5px; height:10px;
  border:solid var(--cream); border-width:0 2px 2px 0; transform:rotate(45deg) scale(0);
  transition:transform .3s var(--ease-out);
}
.check.is-on{ color:var(--wine); }
.check.is-on .check__box{ background:var(--terra); border-color:var(--terra); }
.check.is-on .check__box::after{ transform:rotate(45deg) scale(1); }

.checks__out{
  margin-top:34px; padding:clamp(26px,3vw,34px) clamp(28px,3.4vw,40px);
  display:flex; flex-wrap:wrap; align-items:center; gap:26px clamp(30px,4vw,52px);
  border-radius:14px;
}
.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:.35em;
}
.checks__n{
  font-family:var(--f-display); font-weight:200; font-size:clamp(2.8rem,4.4vw,3.4rem);
  color:var(--terra); line-height:.9;
}
.checks__txt{
  font-family:var(--f-display); text-transform:uppercase;
  letter-spacing:.18em; font-size:.68rem; color:var(--ink-faint); line-height:1;
}
.checks__msg{ flex:1 1 300px; color:var(--ink-soft); font-size:1rem; line-height:1.55; }
.checks__out .btn{ margin-left:auto; flex:0 0 auto; }

.pull{
  margin:clamp(64px,9vh,110px) 0 0; padding-left:clamp(0px,4vw,56px);
  font-family:var(--f-display); font-weight:200;
  font-size:clamp(1.5rem,4vw,2.9rem); line-height:1.18;
  letter-spacing:.01em; color:var(--wine); max-width:24ch;
  border-left:1px solid rgba(192,86,58,.5);
}
.pull em{
  font-style:normal; font-family:var(--f-script);
  font-size:1.12em; color:var(--terra); display:block; margin-top:.15em;
}

/* ---------- sobre ---------- */
.sec--sobre{
  color:var(--on-dark);
  background:
    radial-gradient(85% 65% at 88% 8%, rgba(23,80,110,.4), transparent 60%),
    radial-gradient(70% 60% at 5% 95%, rgba(192,86,58,.28), transparent 60%),
    linear-gradient(196deg,#2A0707,#3E0B0B 55%,#240606);
  border-radius:clamp(24px,3.5vw,48px);
  margin-inline:clamp(10px,2vw,26px);
  overflow:hidden;
}
.sobre__grid{
  display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(32px,5vw,72px); align-items:start;
}
.sec--sobre .h-poster{ color:var(--on-dark); font-weight:200; }
.sec--sobre .script{ color:var(--gold); }
.sobre__left .kicker{ margin-top:1.8rem; color:var(--on-dark-faint); }
.sobre__copy p{ color:var(--on-dark-soft); font-size:clamp(1rem,1.4vw,1.1rem); max-width:58ch; }
.sobre__copy b{ color:var(--on-dark); font-weight:600; }

.sobre__facts{ display:grid; gap:0; margin-top:2.6rem; border-top:1px solid var(--hair-dark); }
.fact{
  padding:1.4em .2em 1.35em;
  background:none; border:0; border-radius:0; box-shadow:none;
  -webkit-backdrop-filter:none; backdrop-filter:none;
  border-bottom:1px solid var(--hair-dark);
  transition:padding-left .85s var(--ease-out);
}
.fact::before,.fact::after{ display:none; }
.fact:hover{ padding-left:.42em; }
.fact h3{
  margin:0 0 .3em; font-family:var(--f-display); font-weight:500;
  font-size:1.08rem; color:var(--on-dark); letter-spacing:.01em;
}
.fact p{ margin:0; color:var(--on-dark-soft); font-size:.94rem; max-width:60ch; }

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

/* ---------- serviços: índice editorial ---------- */
.svcs{ display:grid; gap:0; border-top:1px solid var(--hair); }
.svc{
  background:none; border:0; border-radius:0; box-shadow:none;
  -webkit-backdrop-filter:none; backdrop-filter:none;
  border-bottom:1px solid var(--hair);
  transition:background .5s var(--ease);
}
.svc::before,.svc::after{ display:none; }
.svc[data-accent="wine"]{ --acc:var(--wine-2); }
.svc[data-accent="petrol"]{ --acc:var(--petrol); }
.svc[data-accent="terra"]{ --acc:var(--terra); }
.svc[data-accent="gold"]{ --acc:#A5750A; }
.svc.is-open{ background:rgba(246,239,221,.5); }

.svc__head{
  width:100%; background:none; border:0; cursor:pointer; text-align:left;
  display:flex; align-items:center; gap:clamp(16px,3vw,40px);
  padding:clamp(24px,3.4vw,38px) clamp(4px,1vw,12px);
}
.svc__n{
  font-family:var(--f-display); font-weight:200; font-size:clamp(1.2rem,2vw,1.7rem);
  letter-spacing:.06em; color:var(--acc); flex:0 0 auto;
  font-variant-numeric:tabular-nums;
}
.svc__t{ flex:1 1 auto; display:flex; flex-wrap:wrap; align-items:baseline; gap:.3em 1.2em; }
.svc__t h3{
  margin:0; font-family:var(--f-display); font-weight:200;
  font-size:clamp(1.7rem,3.8vw,3rem); line-height:1.02; letter-spacing:.02em;
  text-transform:uppercase; color:var(--wine);
  transition:color .4s, letter-spacing .5s var(--ease-out);
}
.svc__head:hover h3{ color:var(--acc); letter-spacing:.045em; }
.svc__t p{
  margin:0; font-family:var(--f-script); font-size:clamp(1.2rem,2vw,1.7rem);
  color:rgba(46,9,9,.68); flex-basis:100%;
  transition:color .4s;
}
.svc__head:hover .svc__t p{ color:var(--acc); }

.svc__ico{
  flex:0 0 auto; width:46px; height:46px; border-radius:999px; position:relative;
  border:1px solid rgba(62,11,11,.22); background:transparent;
  transition:transform .55s var(--ease-out), background .35s, border-color .35s;
}
.svc__ico::before,.svc__ico::after{
  content:""; position:absolute; left:50%; top:50%; background:var(--wine);
  transform:translate(-50%,-50%); transition:background .3s, opacity .3s;
}
.svc__ico::before{ width:14px; height:1.4px; }
.svc__ico::after{ width:1.4px; height:14px; }
.svc__head:hover .svc__ico{ border-color:var(--acc); }
.svc__head[aria-expanded="true"] .svc__ico{ background:var(--acc); border-color:var(--acc); transform:rotate(135deg); }
.svc__head[aria-expanded="true"] .svc__ico::before,
.svc__head[aria-expanded="true"] .svc__ico::after{ background:var(--cream); }
.svc__head[aria-expanded="true"] .svc__ico::after{ opacity:0; }

.svc__body{
  display:grid; grid-template-rows:0fr;
  transition:grid-template-rows .6s var(--ease-out);
}
.svc.is-open .svc__body{ grid-template-rows:1fr; }
.svc__body > *{ overflow:hidden; }
.svc__inner{ padding:0 clamp(4px,1vw,12px) 0 clamp(4px,6vw,86px); }
.svc.is-open .svc__inner{ padding-bottom:clamp(28px,3.6vw,44px); }
.svc__intro{ margin:0 0 1.5em; color:var(--ink-soft); max-width:66ch; font-size:1.03rem; }
.svc__intro b{ color:var(--wine); }
.svc__inner h4{
  margin:0 0 1em; font-family:var(--f-display); font-weight:600;
  text-transform:uppercase; letter-spacing:.24em; font-size:.66rem; color:var(--acc);
  display:flex; align-items:center; gap:12px;
}
.svc__inner h4::after{ content:""; flex:1; max-width:60px; height:1px; background:currentColor; opacity:.5; }
.svc__inner ul{ margin:0; padding:0; list-style:none; display:grid; gap:.8em; max-width:76ch; }
.svc__inner li{ position:relative; padding-left:1.6em; color:var(--ink-soft); font-size:.97rem; }
.svc__inner li::before{ content:"—"; position:absolute; left:0; top:0; color:var(--acc); opacity:.7; }
.svc__inner li b{ color:var(--wine); font-weight:600; }

.svc__meta{ display:flex; flex-wrap:wrap; gap:8px; margin-top:1.7em; }
.svc__meta span{
  font-family:var(--f-display); font-size:.7rem; font-weight:500;
  text-transform:uppercase; letter-spacing:.12em;
  padding:.55em 1.05em; border-radius:999px;
  border:1px solid rgba(62,11,11,.2); color:var(--ink-faint);
}

/* ---------- método ---------- */
.method{
  list-style:none; margin:0 0 clamp(60px,8vh,92px); padding:0;
  display:grid; grid-template-columns:repeat(3,1fr); gap:0 clamp(24px,3vw,48px);
}
@media (max-width:880px){ .method{ grid-template-columns:1fr; } }
.mstep{
  background:none; border:0; border-radius:0; box-shadow:none;
  -webkit-backdrop-filter:none; backdrop-filter:none;
  border-top:1px solid rgba(62,11,11,.3);
  padding:1.1em .1em 1.8em;
  display:flex; flex-direction:column; gap:.5em;
  transition:border-color .6s var(--ease), padding-left .85s var(--ease-out);
}
.mstep::before,.mstep::after{ display:none; }
.mstep:hover{ border-top-color:var(--terra); padding-left:.35em; }
.mstep b{
  font-family:var(--f-display); font-weight:200; font-size:2rem; line-height:1;
  color:var(--terra); letter-spacing:.02em;
}
.mstep h3{
  margin:0; font-family:var(--f-display); font-weight:400;
  font-size:1.14rem; line-height:1.25; color:var(--wine); letter-spacing:.02em;
  text-transform:uppercase;
}

.nots{ border-top:1px solid var(--hair); padding-top:clamp(36px,5vh,56px); }
.nots__t{
  margin:0 0 1.2em; font-family:var(--f-display); font-weight:200;
  font-size:clamp(1.5rem,3.4vw,2.5rem); color:var(--wine); letter-spacing:.01em;
}
.nots__t em{ font-style:normal; font-family:var(--f-script); font-size:1.15em; color:var(--terra); }
.nots__list{ list-style:none; margin:0; padding:0; display:grid; gap:0; max-width:70ch; }
.nots__list li{
  font-family:var(--f-body); font-size:clamp(.98rem,1.4vw,1.1rem);
  color:var(--ink-soft); display:flex; align-items:baseline; gap:.6em;
  padding:.75em .2em; border-bottom:1px solid var(--hair);
}
.nots__list span{
  font-family:var(--f-display); font-weight:700; color:var(--terra);
  text-transform:uppercase; font-size:.78em; letter-spacing:.12em;
}

/* ---------- case bemevi ---------- */
.case__grid{
  display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:clamp(32px,5vw,80px); align-items:center;
}
.case__logo{ width:min(300px,64%); height:auto; margin:0 0 1rem; opacity:.92; }
.case__tag{
  font-family:var(--f-script); font-size:clamp(1.3rem,2.4vw,1.9rem);
  color:var(--terra); margin:0 0 1.2rem;
}
.case__copy p:not(.case__tag){ color:var(--ink-soft); max-width:58ch; font-size:clamp(.99rem,1.4vw,1.08rem); }
.case__copy b{ color:var(--wine); }
.case__copy .btn--line{ margin-top:.8rem; }

.case__stats{ display:grid; grid-template-columns:1fr; border-top:1px solid rgba(62,11,11,.3); }
.cstat{
  display:grid; grid-template-columns:var(--numcol,clamp(120px,13vw,190px)) 1fr;
  align-items:center; gap:clamp(14px,1.8vw,26px);
  padding:1.25em .2em; border-bottom:1px solid var(--hair);
  transition:padding-left .85s var(--ease-out);
}
.cstat:hover{ padding-left:.35em; }
.cstat b{
  font-family:var(--f-display); font-weight:200;
  font-size:clamp(1.8rem,3.4vw,3rem); line-height:1; color:var(--terra);
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.cstat span{
  font-family:var(--f-display); font-weight:600;
  text-transform:uppercase; letter-spacing:.14em; font-size:.7rem;
  color:var(--ink-soft); line-height:1.5;
}
.cstat i{
  display:block; font-style:normal; text-transform:none; letter-spacing:.005em;
  font-family:var(--f-body); font-weight:400;
  font-size:clamp(.86rem,1.1vw,.96rem);
  color:var(--terra); margin-top:.35em; line-height:1.45;
}
@media (max-width:880px){ .case__grid{ grid-template-columns:1fr; } }

/* ---------- jornada: petróleo ---------- */
.sec--jornada{
  color:var(--on-dark);
  background:
    radial-gradient(75% 60% at 15% 0%, rgba(192,86,58,.34), transparent 62%),
    linear-gradient(162deg,var(--petrol-d),var(--petrol) 48%,#0A2938);
  border-radius:clamp(24px,3.5vw,48px);
  margin-inline:clamp(10px,2vw,26px);
  overflow:hidden;
}
.sec--jornada .h-poster{ color:var(--on-dark); }
.sec--jornada .script{ color:var(--gold); }

.journey{ position:relative; }
.journey__track{
  overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch;
  padding:6px var(--pad) 28px;
  scrollbar-width:none;
}
.journey__track::-webkit-scrollbar{ display:none; }
.journey__list{ list-style:none; margin:0; padding:0; display:flex; gap:14px; width:max-content; }
.jstep{
  scroll-snap-align:center;
  width:clamp(230px,25vw,285px); padding:26px 24px 28px;
  display:flex; flex-direction:column; gap:.45em;
  --g-bg:rgba(246,239,221,.08); --g-brd:rgba(246,239,221,.2);
  box-shadow:0 1px 0 rgba(246,239,221,.18) inset, 0 22px 50px -30px rgba(0,0,0,.65);
  transition:transform .5s var(--ease-out), background .4s;
}
.jstep:hover{ transform:translateY(-6px); background:rgba(246,239,221,.13); }
.jstep b{
  font-family:var(--f-display); font-weight:200; font-size:1.5rem;
  letter-spacing:.06em; color:var(--gold);
}
.jstep h3{
  margin:.15em 0 0; font-family:var(--f-display); font-weight:500;
  font-size:1.16rem; line-height:1.22; color:var(--on-dark); letter-spacing:.01em;
}
.jstep p{ margin:0; color:var(--on-dark-soft); font-size:.9rem; }

.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(--gold); border-radius:999px;
  transition:width .2s linear, transform .2s linear;
}

/* ---------- clientes: passarela ---------- */
.marquee{ margin-top:clamp(16px,3vh,36px); display:grid; gap:6px; overflow:hidden; }
.marquee__row{ display:flex; width:max-content; animation:slide 48s linear infinite; }
.marquee:hover .marquee__row{ animation-play-state:paused; }
.marquee__set{ display:flex; flex:0 0 auto; align-items:center; }
.marquee__row--logos .marquee__set{ gap:clamp(34px,4.5vw,72px); padding:0 clamp(17px,2.25vw,36px); }

/* cada marca leva o próprio número de seguidores */
.cli{
  flex:0 0 auto; display:flex; flex-direction:column;
  align-items:center; justify-content:flex-end; gap:12px;
  transition:transform .5s var(--ease-out);
}
.cli:hover{ transform:translateY(-4px); }
.cli b{
  font-family:var(--f-display); font-weight:500;
  font-size:clamp(.7rem,.92vw,.82rem); letter-spacing:.16em;
  text-transform:uppercase; color:var(--terra); white-space:nowrap;
}
.marquee__row--logos img{
  height:clamp(26px,3vw,42px); width:auto;
  opacity:.78; filter:saturate(0);
  transition:opacity .4s, filter .4s;
}
.cli:hover img{ opacity:1; filter:saturate(1); }
.marquee__svg{ height:clamp(20px,2.3vw,30px) !important; }
.marquee__word{
  font-family:var(--f-script); font-size:clamp(1.7rem,3.4vw,2.6rem);
  color:var(--wine); line-height:1; white-space:nowrap; opacity:.85;
}
@keyframes slide{ to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){ .marquee__row{ animation:none; } }

/* ---------- convite VIP ---------- */
.sec--vip{ padding-top:clamp(40px,6vh,70px); }
.vip{
  position:relative;
  display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);
  gap:clamp(24px,4vw,56px); align-items:center;
  background:
    linear-gradient(150deg, rgba(255,255,255,.55), rgba(255,255,255,0) 50%),
    var(--paper);
  border:1px solid rgba(62,11,11,.16);
  border-radius:14px;
  box-shadow:0 1px 0 rgba(255,255,255,.7) inset, 0 34px 70px -40px rgba(62,11,11,.55);
  padding:clamp(30px,4.5vw,58px) clamp(26px,4vw,58px);
  transform:rotate(-.5deg);
  transition:transform .7s var(--ease-out);
}
.vip:hover{ transform:rotate(0deg); }
.vip__tape{
  position:absolute; top:-14px; left:50%;
  width:112px; height:30px;
  transform:translateX(-50%) rotate(-3deg);
  background:rgba(192,86,58,.32);
  border-left:1px dashed rgba(246,239,221,.7);
  border-right:1px dashed rgba(246,239,221,.7);
  -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
  box-shadow:0 2px 6px -2px rgba(62,11,11,.25);
}
.vip__title{
  margin:0 0 .3em; font-family:var(--f-display); font-weight:200;
  font-size:clamp(2.2rem,5.4vw,4.2rem); line-height:1;
  text-transform:uppercase; letter-spacing:.02em; color:var(--wine);
}
.vip__script{
  display:block; font-family:var(--f-script); text-transform:none;
  font-size:clamp(2.4rem,5.8vw,4.6rem); color:var(--terra);
  margin:0 0 .05em; line-height:.9; letter-spacing:0;
  transform:rotate(-2deg); transform-origin:left bottom;
}
.vip__lead{
  margin:.9rem 0 0; color:var(--ink-soft);
  font-size:clamp(.96rem,1.35vw,1.06rem); max-width:58ch;
}
.vip__lead b{ color:var(--wine); }
.vip__action{ display:flex; flex-direction:column; align-items:center; gap:.8em; text-align:center; }
.vip__action small{
  font-family:var(--f-display); text-transform:uppercase;
  letter-spacing:.18em; font-size:.62rem; color:var(--ink-faint);
}
@media (max-width:820px){
  .vip{ grid-template-columns:1fr; }
  .vip__action{ align-items:stretch; }
  .vip__action .btn{ justify-content:center; }
}

/* ---------- 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(62,11,11,.14);
  box-shadow:0 24px 50px -30px rgba(62,11,11,.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);
}
.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(--terra)); margin:1px 0;
}
.member__id .txt{ min-width:0; }
.member__id h3{
  margin:0; font-family:var(--f-display); font-weight:600; font-size:.86rem;
  line-height:1.15; letter-spacing:.005em; color:var(--wine);
}
.member__id p{
  margin:.28em 0 0; font-family:var(--f-display); font-weight:500;
  font-size:.55rem; line-height:1.35; letter-spacing:.11em; 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(62,11,11,.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:700; font-size:1rem;
  text-transform:uppercase; letter-spacing:.04em; color:var(--terra);
}
.member__back dl{ margin:0; display:grid; gap:.55em; }
.member__back dt{
  font-family:var(--f-display); font-weight:600; text-transform:uppercase;
  letter-spacing:.16em; font-size:.58rem; color:var(--terra);
}
.member__back dd{
  margin:.12em 0 0; font-size:.8rem; line-height:1.42; color:var(--ink-soft);
  border-bottom:1px solid rgba(62,11,11,.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:.78rem; }
  .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(192,86,58,.4), transparent 60%),
    radial-gradient(70% 60% at 96% 92%, rgba(23,80,110,.45), transparent 58%),
    linear-gradient(172deg,#2A0707,#3E0B0B 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(--gold); margin-top:.5em; }
.contato__lead{
  margin:1.1rem 0 0;
  color:var(--on-dark-soft); font-size:clamp(.98rem,1.4vw,1.08rem); max-width:52ch;
}
.contato__lead b{ color:var(--on-dark); }
.contato__em{
  margin:1.3rem 0 0; font-family:var(--f-script);
  font-size:clamp(1.4rem,2.6vw,2rem); color:var(--gold); line-height:1.15;
}
.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-display); font-weight:500; font-size:.86rem;
  padding:.6em 1.25em; 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: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:.35em; min-width:0; }
.field--full{ grid-column:1 / -1; }
.field label, .field legend{
  font-family:var(--f-display); font-weight:600; text-transform:uppercase;
  letter-spacing:.18em; font-size:.6rem; color:rgba(246,239,221,.6); 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,.34); }
.field input:focus, .field textarea:focus{
  outline:none; border-color:var(--gold); background:rgba(246,239,221,.12);
}
.field input[aria-invalid="true"], .field textarea[aria-invalid="true"]{ border-color:var(--terra); }
.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-display); 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,.82);
  transition:background .3s, color .3s, border-color .3s, transform .3s var(--ease-out);
}
.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(--gold); outline-offset:2px; }

.form__actions{ display:flex; flex-wrap:wrap; gap:10px; margin-top:.3em; }
.sec--contato .btn--solid{ background:var(--cream); color:var(--wine); }
.form__note{ margin:0; font-size:.84rem; color:var(--gold); 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(192,86,58,.22), transparent 62%),
    radial-gradient(80% 60% at 90% 85%, rgba(23,80,110,.28), transparent 60%),
    linear-gradient(to bottom, #3E0B0B 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:1.5rem; color:var(--gold); }
.foot__nav{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px 22px; }
.foot__nav a{
  font-family:var(--f-display); font-weight:300; font-size:.7rem;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--on-dark-soft);
  text-decoration:none; transition:color .3s;
}
.foot__nav a:hover{ color:var(--on-dark); }
.foot__copy{
  margin:0; font-size:.74rem; color:var(--on-dark-faint);
  font-family:var(--f-display); letter-spacing:.08em;
}

/* =========================================================
   PORTA DE ENTRADA NO INDEX (card do serviço novo)
   ========================================================= */
.svc--link{ display:block; text-decoration:none; color:inherit; }
.svc--link .svc__head{ width:100%; }
.svc--new{ position:relative; }
.svc__flag{
  display:inline-block; margin-left:.9em; padding:.34em .85em; border-radius:999px;
  background:var(--wine); color:var(--cream);
  font-family:var(--f-display); font-weight:600; font-size:.55rem;
  text-transform:uppercase; letter-spacing:.16em; vertical-align:.18em;
}
/* mesmo círculo dos "+" dos outros cards (46px) — só o ícone muda, porque
   este leva para outra página em vez de abrir a sanfona */
.svc__go{
  flex:0 0 auto; display:grid; place-items:center; width:46px; height:46px;
  border-radius:999px; border:1px solid rgba(62,11,11,.22); color:var(--wine);
  font-style:normal; font-size:1.15rem;
  transition:transform .45s var(--ease-out), background .35s, color .35s, border-color .35s;
}
.svc--link:hover .svc__go{ background:var(--acc,var(--wine)); border-color:var(--acc,var(--wine)); color:var(--cream); transform:translateX(4px); }

/* =========================================================
   REVEAL
   ========================================================= */
.reveal{
  opacity:0; transform:translateY(22px);
  transition:opacity 1s var(--ease-out), transform 1s var(--ease-out);
  transition-delay:calc(var(--d,0) * 95ms);
}
.reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
}

/* sufixo "seguidores" junto do número da marca */
.cli b i{
  font-style:normal; font-weight:400;
  letter-spacing:.1em; opacity:.72; margin-left:.15em;
}

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

/* =========================================================
   MOBILE — ajustes finos
   ========================================================= */
@media (max-width:899px){
  /* capa: logo desce junto, com mais ar até o kicker */
  .hero{ padding-top:clamp(220px,30vh,292px); }
  .hero__title{ margin-top:1rem; }
  /* "feita para" sem vão ao quebrar linha */
  .hero__rotator{ margin-top:.9rem; gap:.15em .55em; align-items:baseline; }
  .hero__rotator .rot{ font-size:clamp(1.25rem,5.4vw,1.7rem); line-height:1.15; }

  /* seções escuras: título não precisa de tanto respiro no topo */
  .sec--sobre{ padding-top:clamp(46px,7vh,72px); }
  .sec--contato{ padding-top:clamp(46px,7vh,72px); }
  /* case: título maior que a logo da bemevi */
  .sec--case .h-poster{ font-size:clamp(2.1rem,8.8vw,3.4rem); }
  .case__logo{ width:min(200px,52%); }
  /* jornada: bordas menores, sem vazio em cima/embaixo, rolagem fluida */
  .sec--jornada{ margin-inline:6px; border-radius:16px; padding-block:clamp(40px,6vh,56px); }
  .sec--jornada .sechead{ margin-bottom:22px; }
  .journey__track{ scroll-snap-type:none; padding-bottom:16px; padding-top:2px; }
  .journey__bar{ margin-bottom:4px; }
  .jstep{ width:min(76vw,300px); padding:20px 20px 22px; }
  .sec--sobre .sobre__left, .sec--contato .contato__left{ padding-top:0; }
  .sobre__right{ margin-top:1.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; }
@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); }
}
