/* =============================================================
   NUNES E VIEIRA ADVOGADOS — Landing Page Empresarial
   Direção: editorial premium + Liquid Glass
   ============================================================= */

/* ---------- 1. Tokens ---------- */
:root{
  /* identidade */
  --navy:#0c2460;
  --navy-700:#0a1c4a;
  --navy-800:#071739;
  --navy-900:#040f27;
  --navy-950:#020917;

  --gold:#bca564;
  --gold-100:#efe6cd;
  --gold-200:#ddcb98;
  --gold-300:#cbb67e;
  --gold-600:#a68f52;
  --gold-700:#8d7940;

  --white:#ffffff;
  --paper:#f6f4ef;
  --paper-2:#efece4;

  --ink:#0b1a3a;
  --ink-soft:#42506e;
  --ink-mute:#6d7891;
  --light:#eef1f8;
  --light-soft:#b9c3dc;
  --light-mute:#8493b6;

  /* estrutura */
  --wrap:1320px;
  --gutter:clamp(20px, 5vw, 72px);
  --r-sm:10px;
  --r-md:16px;
  --r-lg:24px;

  /* tipografia fluida */
  --fs-display:clamp(1.92rem, 1rem + 3.15vw, 4rem);
  --fs-h2:clamp(1.8rem, 1rem + 2.35vw, 3.35rem);
  --fs-h2-xl:clamp(2rem, 1rem + 2.8vw, 3.8rem);
  --fs-h3:clamp(1.24rem, 1.05rem + .7vw, 1.7rem);
  --fs-lead:clamp(1.06rem, .96rem + .5vw, 1.32rem);
  --fs-body:clamp(1rem, .96rem + .22vw, 1.08rem);
  --fs-sm:.9rem;
  --fs-xs:.775rem;

  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-glass:cubic-bezier(.16,1,.3,1);
}


/* =============================================================
   TROQUE AS FOTOS AQUI  ← único lugar que você precisa editar
   -------------------------------------------------------------
   Coloque as imagens numa pasta ao lado deste arquivo e troque
   `none` por url('...'). Enquanto estiver `none`, aparece o
   gradiente institucional (a página nunca fica quebrada).
   Ex.:  --img-hero: url('assets/images/hero-escritorio.jpg');
   ============================================================= */
:root{
  --img-hero:none;         /* hero — ambiente do escritório   */
  --img-equipe:none;       /* fundo do bloco de fechamento    */
  --img-socio-1:none;      /* Dr. Ronaldo Nunes               */
  --img-socio-2:none;      /* Dra. Leila Vieira               */
  --img-socio-3:none;      /* Dra. Jéssica Tavares            */
  --img-atuacao:none;      /* painel da seção 03              */
  /* Para uma foto diferente por área, troque var(--img-atuacao) pela url. */
  --img-area-1:var(--img-atuacao);
  --img-area-2:var(--img-atuacao);
  --img-area-3:var(--img-atuacao);
  --img-area-4:var(--img-atuacao);
  --img-area-5:var(--img-atuacao);
  --img-area-6:var(--img-atuacao);
  --img-area-7:var(--img-atuacao);

  --ph-fallback:
    linear-gradient(115deg, rgba(255,255,255,.08) 0%, rgba(255,255,255,0) 44%),
    radial-gradient(130% 100% at 22% 14%, rgba(110,146,236,.58), transparent 56%),
    radial-gradient(104% 92% at 84% 88%, rgba(188,165,100,.44), transparent 58%),
    linear-gradient(158deg,#123070 0%,#071739 55%,#020917 100%);
}

/* superfície fotográfica */
.ph{
  position:absolute; inset:0;
  background-color:var(--navy-900);
  background-image:var(--ph-img,none), var(--ph-fallback);
  background-size:cover, cover;
  background-position:center, center;
  background-repeat:no-repeat;
}
.ph__tag{
  display:none;
  position:absolute; left:0; right:0; top:50%;
  transform:translateY(-50%);
  padding:0 18px;
  font-size:.68rem; font-weight:400; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(214,193,131,.55); text-align:center;
}
/* remova a classe `sem-fotos` do <body> quando colocar as imagens reais */
.sem-fotos .ph__tag{display:block}

/* a marca */
.nv-logo{display:block; height:auto}

/* ---------- 2. Reset / base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Kanit",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:var(--fs-body);
  font-weight:400;
  line-height:1.66;
  color:var(--ink);
  background:var(--navy-950);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,svg{display:block; max-width:100%}
img{height:auto}
a{color:inherit; text-decoration:none}
button,input,select,textarea{font:inherit; color:inherit}
ul,ol{margin:0; padding:0; list-style:none}
p{margin:0 0 1.05em}
p:last-child{margin-bottom:0}
h1,h2,h3{margin:0; font-weight:400; letter-spacing:-.02em}
abbr[title]{text-decoration:none; color:var(--gold-600)}
.svg-defs{position:absolute; width:0; height:0; overflow:hidden}

:focus-visible{
  outline:2px solid var(--gold-200);
  outline-offset:3px;
  border-radius:4px;
}
.skip-link{
  position:fixed; top:-100px; left:16px; z-index:200;
  background:var(--gold); color:var(--navy-900);
  padding:12px 18px; border-radius:8px; font-weight:600;
  transition:top .2s;
}
.skip-link:focus{top:16px}

/* ---------- 3. Tipografia editorial ---------- */
/* Kanit não tem o contraste serif/sans do par anterior; a hierarquia passa a
   ser construída com peso, corpo e tracking. */
.h2,.hero__title{
  font-family:"Kanit",system-ui,sans-serif;
  font-weight:500;
  line-height:1.06;
  letter-spacing:-.025em;
}
.h2{font-size:var(--fs-h2); color:var(--ink)}
.h2 + p{margin-top:clamp(18px,2.2vw,30px)}
.h2--light{color:var(--white)}
.h2--xl{font-size:var(--fs-h2-xl)}
.h2 em,.hero__title em{
  font-style:italic;
  font-weight:500;
  color:var(--gold-600);
}
.h2--light em{color:var(--gold-200)}

.eyebrow{
  display:flex; align-items:center; gap:14px;
  font-size:var(--fs-xs);
  letter-spacing:.19em;
  text-transform:uppercase;
  font-weight:500;
  color:var(--ink-mute);
  margin:0 0 clamp(18px,2.4vw,30px);
}
.eyebrow--light{color:var(--gold-200)}
.eyebrow__rule{
  display:block; width:clamp(28px,4vw,56px); height:1px;
  background:linear-gradient(90deg,var(--gold),transparent);
  flex:none;
  transform-origin:left;
}

/* ---------- 4. Layout ---------- */
.wrap{
  width:100%; max-width:var(--wrap);
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.section{
  position:relative;
  padding-block:clamp(76px,10vw,168px);
  overflow:clip;
}
.section--paper{background:var(--paper); color:var(--ink)}
.section--deep{
  background:
    radial-gradient(120% 80% at 12% 0%, rgba(12,36,96,.85), transparent 60%),
    linear-gradient(180deg,var(--navy-900) 0%,var(--navy-800) 45%,var(--navy-900) 100%);
  color:var(--light);
}
.section--deep p{color:var(--light-soft)}

.grid-12{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:clamp(24px,3vw,48px);
}

/* ---------- 5. Sistema Liquid Glass -------------------------------
   Camadas: refração de fundo (backdrop-filter) + brilho especular
   que segue o cursor (--gx/--gy) + borda de luz por mask-composite.
   ------------------------------------------------------------------ */
.lq{
  position:relative;
  isolation:isolate;
  border-radius:var(--r,var(--r-lg));
  background:
    radial-gradient(140% 130% at var(--gx,26%) var(--gy,0%),
      rgba(255,255,255,.20), rgba(255,255,255,.055) 40%, rgba(255,255,255,.012) 72%),
    linear-gradient(155deg,
      rgba(255,255,255,.105) 0%, rgba(255,255,255,.028) 48%, rgba(188,165,100,.075) 100%);
  backdrop-filter:blur(26px) saturate(168%) brightness(1.04);
  -webkit-backdrop-filter:blur(26px) saturate(168%) brightness(1.04);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.40),
    inset 0 -1px 0 rgba(255,255,255,.07),
    0 34px 80px -34px rgba(2,8,24,.85),
    0 10px 28px -16px rgba(2,8,24,.55);
}
/* brilho especular — acompanha o cursor */
.lq::before{
  content:"";
  position:absolute; inset:0; border-radius:inherit;
  pointer-events:none; z-index:0;
  background:radial-gradient(circle at var(--gx,30%) var(--gy,18%),
    rgba(255,255,255,.28), rgba(214,193,131,.10) 34%, rgba(255,255,255,0) 62%);
  opacity:var(--gop,0);
  transition:opacity .55s var(--ease-glass);
}
/* borda de luz */
.lq::after{
  content:"";
  position:absolute; inset:0; border-radius:inherit;
  padding:1px; pointer-events:none; z-index:1;
  background:linear-gradient(140deg,
    rgba(255,255,255,.72), rgba(214,193,131,.5) 26%,
    rgba(255,255,255,.04) 56%, rgba(255,255,255,.40) 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
}
.lq > *{position:relative; z-index:2}

@supports not ((backdrop-filter:blur(2px)) or (-webkit-backdrop-filter:blur(2px))){
  .lq{background:rgba(9,22,56,.86)}
}

/* massas líquidas — refração real via feDisplacementMap */
.lq-blob{
  position:absolute;
  pointer-events:none;
  border-radius:48% 52% 60% 40%/45% 38% 62% 55%;
  will-change:transform;
}
.lq-blob--a{
  top:-18vh; left:-14vw; width:62vw; height:62vw; max-width:900px; max-height:900px;
  background:radial-gradient(circle at 34% 32%,
    rgba(96,132,222,.62), rgba(24,58,140,.42) 42%, rgba(8,20,54,0) 72%);
  filter:url(#lq-refract) blur(26px);
  animation:blobDrift 26s ease-in-out infinite;
}
.lq-blob--b{
  right:-16vw; top:22vh; width:52vw; height:52vw; max-width:760px; max-height:760px;
  background:radial-gradient(circle at 60% 40%,
    rgba(188,165,100,.42), rgba(141,121,64,.22) 45%, rgba(8,20,54,0) 74%);
  filter:url(#lq-refract-soft) blur(34px);
  animation:blobDrift 34s ease-in-out infinite reverse;
}
.lq-blob--c{
  left:38%; bottom:-24vh; width:44vw; height:44vw; max-width:640px; max-height:640px;
  background:radial-gradient(circle at 50% 50%,
    rgba(255,255,255,.16), rgba(120,160,255,.10) 40%, rgba(8,20,54,0) 70%);
  filter:blur(52px);
  animation:blobDrift 30s ease-in-out infinite;
}
.lq-blob--d{
  right:-12vw; top:6%; width:44vw; height:44vw; max-width:620px; max-height:620px;
  background:radial-gradient(circle at 45% 45%, rgba(188,165,100,.30), rgba(8,20,54,0) 68%);
  filter:url(#lq-refract-soft) blur(40px);
  animation:blobDrift 38s ease-in-out infinite;
}
.lq-blob--e{
  left:-14vw; bottom:-10%; width:46vw; height:46vw; max-width:640px; max-height:640px;
  background:radial-gradient(circle at 50% 45%, rgba(70,110,210,.42), rgba(8,20,54,0) 70%);
  filter:blur(48px);
  animation:blobDrift 32s ease-in-out infinite reverse;
}
.lq-blob--f{
  left:50%; top:-10%; width:60vw; height:60vw; max-width:820px; max-height:820px;
  transform:translateX(-50%);
  background:radial-gradient(circle at 50% 45%,
    rgba(188,165,100,.34), rgba(40,80,180,.20) 45%, rgba(8,20,54,0) 72%);
  filter:url(#lq-refract) blur(44px);
  animation:blobPulse 22s ease-in-out infinite;
}
@keyframes blobDrift{
  0%,100%{border-radius:48% 52% 60% 40%/45% 38% 62% 55%; transform:translate3d(0,0,0) rotate(0deg) scale(1)}
  33%{border-radius:62% 38% 42% 58%/56% 62% 38% 44%; transform:translate3d(3%,-3%,0) rotate(6deg) scale(1.06)}
  66%{border-radius:38% 62% 55% 45%/62% 44% 56% 38%; transform:translate3d(-2%,3%,0) rotate(-5deg) scale(.97)}
}
@keyframes blobPulse{
  0%,100%{border-radius:48% 52% 60% 40%/45% 38% 62% 55%; transform:translateX(-50%) scale(1)}
  50%{border-radius:58% 42% 40% 60%/58% 56% 44% 42%; transform:translateX(-50%) scale(1.1)}
}


/* ---------- 6. Fio de progresso ---------- */
.progress-thread{
  position:fixed; inset:0 0 auto 0; height:2px; z-index:120;
  background:transparent; pointer-events:none;
}
.progress-thread i{
  display:block; height:100%; width:100%;
  transform:scaleX(0); transform-origin:0 50%;
  background:linear-gradient(90deg,var(--gold-700),var(--gold),var(--gold-100));
  box-shadow:0 0 12px rgba(188,165,100,.5);
}

/* ---------- 7. Botões ---------- */
.btn{
  --btn-h:54px;
  position:relative;
  display:inline-flex; align-items:center; justify-content:center;
  min-height:var(--btn-h);
  padding:0 clamp(22px,2.4vw,34px);
  border:0; border-radius:999px;
  font-size:.94rem; font-weight:500; letter-spacing:.01em;
  cursor:pointer; overflow:hidden;
  transition:transform .35s var(--ease-glass), box-shadow .35s var(--ease), color .3s;
  will-change:transform;
}
.btn span{position:relative; z-index:2}
.btn--gold{
  color:var(--navy-900);
  background:linear-gradient(140deg,var(--gold-200),var(--gold) 45%,var(--gold-600));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.6),
    0 14px 34px -16px rgba(188,165,100,.75);
}
.btn--gold::before{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(115deg,transparent 20%,rgba(255,255,255,.72) 48%,transparent 76%);
  transform:translateX(-130%);
  transition:transform .85s var(--ease-glass);
}
.btn--gold:hover::before,.btn--gold:focus-visible::before{transform:translateX(130%)}
.btn--gold:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 18px 44px -14px rgba(188,165,100,.85)}
.btn--ghost{
  color:var(--light);
  background:rgba(255,255,255,.045);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.24);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.btn--ghost:hover{background:rgba(255,255,255,.10); box-shadow:inset 0 0 0 1px rgba(214,193,131,.55)}
.btn--lg{--btn-h:60px; font-size:1rem}
.btn--block{width:100%}
.btn[disabled]{opacity:.72; cursor:progress}

.btn__spinner{
  position:absolute; z-index:3;
  width:20px; height:20px; border-radius:50%;
  border:2px solid rgba(4,15,39,.28); border-top-color:var(--navy-900);
  opacity:0; animation:spin .7s linear infinite;
}
.btn.is-loading .btn__label{opacity:0}
.btn.is-loading .btn__spinner{opacity:1}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- 8. Navegação ---------- */
.nav-shell{
  position:fixed; inset:0 0 auto 0; z-index:100;
  padding:clamp(14px,2vw,26px) var(--gutter) 0;
  transition:padding .5s var(--ease-glass);
}
.nav{
  --r:20px;
  display:flex; align-items:center; justify-content:space-between;
  gap:24px;
  max-width:var(--wrap); margin-inline:auto;
  padding:12px 12px 12px clamp(18px,2vw,26px);
  /* no topo a navbar é apenas parte da composição do hero */
  background:transparent;
  backdrop-filter:none; -webkit-backdrop-filter:none;
  box-shadow:none;
  transition:background .6s var(--ease-glass), backdrop-filter .6s, box-shadow .6s var(--ease-glass), padding .5s var(--ease-glass);
}
.nav::after{opacity:0; transition:opacity .6s var(--ease-glass)}
.nav-shell.is-stuck{padding-top:clamp(10px,1.2vw,16px)}
.nav-shell.is-stuck .nav{
  padding-block:9px;
  background:
    radial-gradient(140% 260% at var(--gx,26%) var(--gy,0%),
      rgba(255,255,255,.20), rgba(255,255,255,.05) 42%, rgba(255,255,255,.012) 74%),
    linear-gradient(155deg, rgba(255,255,255,.10), rgba(255,255,255,.03) 50%, rgba(188,165,100,.07));
  backdrop-filter:blur(24px) saturate(170%) brightness(1.03);
  -webkit-backdrop-filter:blur(24px) saturate(170%) brightness(1.03);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.36),
    0 22px 50px -28px rgba(2,8,24,.8);
}
.nav-shell.is-stuck .nav::after{opacity:1}

/* --- navbar sobre seções claras: inverte o tema do vidro --- */
.nav-shell.is-light.is-stuck .nav{
  background:
    radial-gradient(140% 260% at var(--gx,26%) var(--gy,0%),
      rgba(255,255,255,.75), rgba(255,255,255,.5) 44%, rgba(255,255,255,.34) 76%),
    linear-gradient(155deg, rgba(255,255,255,.6), rgba(246,244,239,.42) 50%, rgba(188,165,100,.14));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.9),
    0 22px 50px -30px rgba(12,36,96,.35);
}
.nav-shell.is-light.is-stuck .nav::after{
  background:linear-gradient(140deg,
    rgba(255,255,255,.95), rgba(188,165,100,.55) 28%,
    rgba(12,36,96,.08) 58%, rgba(255,255,255,.7) 100%);
}
.nav-shell.is-light [data-logo-dark]{display:none}
.nav-shell.is-light [data-logo-light]{display:block}
.nav-shell.is-light .nav__links a{color:rgba(11,26,58,.78)}
.nav-shell.is-light .nav__links a:hover{color:var(--navy)}
.nav-shell.is-light .nav__toggle{background:rgba(12,36,96,.06); box-shadow:inset 0 0 0 1px rgba(12,36,96,.18)}
.nav-shell.is-light .nav__toggle span{background:var(--navy)}

.nav__brand{display:block; flex:none; line-height:0}
.nav__brand .nv-logo{width:clamp(158px,15vw,206px); transition:width .5s var(--ease-glass)}
.nav-shell.is-stuck .nav__brand .nv-logo{width:clamp(146px,13vw,182px)}
[data-logo-light]{display:none}

.nav__menu{display:flex; align-items:center; gap:clamp(20px,3vw,44px)}
.nav__links{display:flex; align-items:center; gap:clamp(18px,2.4vw,34px)}
.nav__links a{
  position:relative;
  font-size:.9rem; font-weight:500; letter-spacing:.01em;
  color:rgba(238,241,248,.86);
  padding-block:6px;
  transition:color .3s;
}
.nav__links a::after{
  content:""; position:absolute; left:0; bottom:0; width:100%; height:1px;
  background:var(--gold);
  transform:scaleX(0); transform-origin:right;
  transition:transform .45s var(--ease-glass);
}
.nav__links a:hover{color:var(--white)}
.nav__links a:hover::after{transform:scaleX(1); transform-origin:left}
.nav__cta{--btn-h:44px; font-size:.875rem}

.nav__toggle{
  display:none;
  width:46px; height:46px; border:0; border-radius:12px;
  background:rgba(255,255,255,.08);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);
  cursor:pointer;
  padding:0; place-items:center;
}
.nav__toggle span{
  display:block; width:19px; height:1.5px; margin:4px auto;
  background:var(--white); border-radius:2px;
  transition:transform .4s var(--ease-glass), opacity .3s;
}
.nav__toggle[aria-expanded="true"] span:first-child{transform:translateY(5.5px) rotate(45deg)}
.nav__toggle[aria-expanded="true"] span:last-child{transform:translateY(-5.5px) rotate(-45deg)}

/* ---------- 9. Hero ---------- */
.hero{
  position:relative;
  min-height:100svh;
  display:flex; align-items:center;
  padding-block:clamp(126px,15vh,166px) clamp(130px,16vh,172px);
  background:
    radial-gradient(110% 90% at 8% 10%, rgba(16,44,116,.9), transparent 62%),
    linear-gradient(165deg,var(--navy-900) 0%,var(--navy-800) 40%,var(--navy-950) 100%);
  overflow:clip;
  isolation:isolate;
}
.hero__bg{position:absolute; inset:0; z-index:0; overflow:hidden}
/* base para a navbar, que no topo é transparente e passa sobre a foto */
.hero::before{
  content:""; position:absolute; inset:0 0 auto 0; height:190px; z-index:3;
  background:linear-gradient(180deg, rgba(4,15,39,.62) 0%, rgba(4,15,39,.28) 45%, transparent 100%);
  pointer-events:none;
}
.hero__grain{
  position:absolute; inset:-50%;
  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='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
  opacity:.055; mix-blend-mode:overlay; pointer-events:none;
}

/* fotografia: crop vertical sangrando pela direita */
.hero__figure{
  position:absolute; right:0; top:0; bottom:0;
  width:min(52%,780px);
  margin:0; z-index:1;
  /* dissolução longa e progressiva pela esquerda — sem corte duro */
  -webkit-mask-image:linear-gradient(101deg,
    transparent 0%, rgba(0,0,0,.10) 12%, rgba(0,0,0,.34) 24%,
    rgba(0,0,0,.68) 38%, rgba(0,0,0,.90) 50%, #000 64%);
  mask-image:linear-gradient(101deg,
    transparent 0%, rgba(0,0,0,.10) 12%, rgba(0,0,0,.34) 24%,
    rgba(0,0,0,.68) 38%, rgba(0,0,0,.90) 50%, #000 64%);
}
.hero__figure-inner{position:absolute; inset:-8% -0% -8% 0; will-change:transform}
.hero__figure .ph{
  background-position:58% 46%;
  filter:saturate(.9) contrast(1.02) brightness(.94);
}
.hero__figure-veil{
  position:absolute; inset:0;
  background:
    linear-gradient(101deg,
      rgba(4,15,39,.94) 0%, rgba(7,23,57,.66) 22%, rgba(7,23,57,.32) 40%,
      rgba(7,23,57,.08) 58%, rgba(7,23,57,0) 76%),
    linear-gradient(0deg, rgba(4,15,39,.52), transparent 34%);
}

.hero__inner{position:relative; z-index:4; width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter)}
.hero__col{max-width:min(860px,58vw)}

.hero__title{
  font-size:var(--fs-display);
  color:var(--white);
  margin:0 0 clamp(20px,2.4vw,32px);
}
.hero__title .line{display:block; overflow:hidden; padding-block:.02em}
.hero__title .line__in{display:block; transform:translateY(112%)}

.hero__lead{
  max-width:62ch;
  font-size:clamp(1rem,.95rem + .3vw,1.13rem);
  color:rgba(224,231,246,.84);
  line-height:1.68;
  margin-bottom:clamp(28px,3.2vw,40px);
}
.hero__lead p{margin-bottom:.85em}
.hero__lead p:last-child{margin-bottom:0}
/* fio dourado que percorre a composição */
.hero__lead{position:relative; padding-left:clamp(18px,2vw,28px)}
.hero__lead::before{
  content:""; position:absolute; left:0; top:.35em; bottom:.35em; width:1px;
  background:linear-gradient(180deg,var(--gold),rgba(188,165,100,0));
  transform:scaleY(0); transform-origin:top;
}
.hero__actions{display:flex; flex-wrap:wrap; gap:14px}

/* faixa de vidro suspensa na base do hero */
.hero__band{
  position:absolute; left:0; right:0; bottom:clamp(20px,3.4vh,40px); z-index:5;
  /* alinha à coluna de conteúdo e sangra pela direita, atravessando a fotografia */
  padding-left:calc(var(--gutter) + max(0px, (100% - var(--wrap)) / 2));
  display:flex;
}
.hero__band-inner{
  --r:20px;
  flex:1;
  display:flex; align-items:center; justify-content:space-between;
  gap:clamp(20px,3vw,48px);
  padding:clamp(15px,1.7vw,21px) clamp(20px,2.4vw,34px);
  border-radius:20px 0 0 20px;
}
.hero__meta{
  display:flex; flex-wrap:wrap; align-items:center; gap:clamp(14px,2.2vw,32px);
  font-size:var(--fs-xs); letter-spacing:.13em; text-transform:uppercase;
  color:rgba(206,215,236,.86); font-weight:500;
}
.hero__meta li{display:flex; align-items:center; gap:clamp(14px,2.2vw,32px)}
.hero__meta li+li::before{
  content:""; width:4px; height:4px; border-radius:50%;
  background:var(--gold); flex:none;
}

.hero__scroll{
  display:flex; align-items:center; gap:12px; flex:none;
  font-size:var(--fs-xs); letter-spacing:.2em; text-transform:uppercase;
  color:rgba(206,215,236,.62);
}
.hero__scroll-line{
  display:block; width:54px; height:1px; background:rgba(214,193,131,.35);
  position:relative; overflow:hidden;
}
.hero__scroll-line::after{
  content:""; position:absolute; inset:0; background:var(--gold);
  transform:translateX(-100%);
  animation:scrollHint 2.6s var(--ease) infinite;
}
@keyframes scrollHint{0%{transform:translateX(-100%)}55%,100%{transform:translateX(100%)}}

/* ---------- 10. Intro cinematográfica (≈1.5s) ---------- */
.hero__bg .lq-blob{opacity:0; transform:scale(.7)}
.hero__figure{opacity:0}
.nav__brand{opacity:0; filter:blur(9px)}

.is-loaded .nav__brand{
  opacity:1; filter:blur(0);
  transition:opacity .8s var(--ease), filter .9s var(--ease-glass);
  transition-delay:.18s;
}
.is-loaded .hero__bg .lq-blob{
  opacity:1; transform:scale(1);
  transition:opacity 1.1s var(--ease), transform 1.4s var(--ease-glass);
}
.is-loaded .lq-blob--b{transition-delay:.12s}
.is-loaded .lq-blob--c{transition-delay:.22s}
.is-loaded .hero__figure{
  opacity:1;
  transition:opacity 1.1s var(--ease);
  transition-delay:.62s;
}
.is-loaded .hero__figure-inner{animation:heroDepth 1.6s var(--ease-glass) .62s both}
@keyframes heroDepth{from{transform:scale(1.09)}to{transform:scale(1)}}

.is-loaded .hero__title .line__in{
  transform:translateY(0);
  transition:transform 1.05s var(--ease-glass);
}
.is-loaded .hero__title .line:nth-child(1) .line__in{transition-delay:.42s}
.is-loaded .hero__title .line:nth-child(2) .line__in{transition-delay:.53s}
.is-loaded .hero__title .line:nth-child(3) .line__in{transition-delay:.64s}

.is-loaded .hero__lead::before{
  transform:scaleY(1);
  transition:transform 1s var(--ease-glass) .95s;
}
.is-loaded .eyebrow--light .eyebrow__rule{animation:ruleSweep 1s var(--ease-glass) .3s both}
@keyframes ruleSweep{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ---------- 11. Sistema de revelação ---------- */
[data-reveal]{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .85s var(--ease), transform .95s var(--ease-glass);
}
[data-reveal].is-in{opacity:1; transform:none}

/* ---------- 12. Problema ---------- */
.problema__head{align-items:start}
.col-title{grid-column:1 / span 6}
.col-body{grid-column:8 / span 5; padding-top:clamp(6px,1.4vw,22px)}
.col-body p{color:var(--ink-soft); font-size:var(--fs-lead); line-height:1.72}

.ticker{
  margin-top:clamp(56px,7vw,110px);
  padding-block:clamp(18px,2vw,30px);
  border-block:1px solid rgba(12,36,96,.14);
  overflow:hidden;
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.ticker__track{display:flex; width:max-content; animation:tick 46s linear infinite}
.ticker__set{display:flex; align-items:center; white-space:nowrap}
.ticker__set b{
  font-family:"Kanit",system-ui,sans-serif;
  font-weight:300; font-size:clamp(1.3rem,3vw,2.5rem);
  color:var(--navy); letter-spacing:-.02em;
}
.ticker__set i{
  font-style:normal; color:var(--gold);
  margin-inline:clamp(16px,2.4vw,38px);
  font-size:clamp(1.1rem,2vw,1.8rem);
}
@keyframes tick{to{transform:translateX(-50%)}}
.ticker__caption{
  margin-top:clamp(18px,2vw,28px);
  font-size:var(--fs-sm); color:var(--ink-mute); max-width:56ch;
}

/* ---------- 13. Contraste reagir × decidir ---------- */
.contraste__head{max-width:min(780px,100%); margin-bottom:clamp(46px,6vw,84px)}
.contraste__head .h2{max-width:min(660px,100%)}
.contraste__head > p{max-width:58ch}
.contraste__panels{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:clamp(24px,3.4vw,58px);
  align-items:stretch;
}
.panel{padding:clamp(26px,3vw,44px) 0}
.panel--agora{padding-top:clamp(30px,3.4vw,48px)}
.panel--depois{
  --r:var(--r-lg);
  padding:clamp(30px,3.4vw,48px);
}
.panel__head{margin-bottom:clamp(20px,2.4vw,32px)}
.panel__tag{
  display:inline-block;
  font-size:var(--fs-xs); letter-spacing:.16em; text-transform:uppercase;
  font-weight:600; color:var(--light-mute);
  padding-bottom:10px;
  border-bottom:1px solid rgba(255,255,255,.16);
}
.panel__tag--gold{color:var(--gold-200); border-bottom-color:rgba(214,193,131,.42)}
.panel__list li{
  position:relative;
  padding-left:26px; margin-bottom:16px;
  color:var(--light-soft); line-height:1.6;
}
.panel__list li::before{
  content:""; position:absolute; left:0; top:.68em;
  width:10px; height:1px; background:rgba(255,255,255,.34);
}
.panel__list--gold li{color:rgba(238,241,248,.94)}
.panel__list--gold li::before{background:var(--gold); width:14px}

.contraste__rule{display:flex; justify-content:center}
.contraste__rule i{
  display:block; width:1px; height:100%;
  background:linear-gradient(180deg,transparent,rgba(214,193,131,.55) 30%,rgba(214,193,131,.55) 70%,transparent);
}
.contraste__closing{
  margin-top:clamp(40px,5vw,72px);
  max-width:52ch;
  font-family:"Kanit",system-ui,sans-serif;
  font-weight:300;
  font-size:clamp(1.14rem,.98rem + .9vw,1.65rem);
  line-height:1.44; letter-spacing:-.015em;
  color:var(--white) !important;
}

/* ---------- 14. Áreas de atuação ---------- */
.atuacao__head{max-width:44ch; margin-bottom:clamp(44px,5.6vw,80px)}
.atuacao__intro{margin-top:clamp(16px,2vw,26px); color:var(--ink-soft); font-size:var(--fs-lead); max-width:52ch}

.atuacao__body{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,31%);
  gap:clamp(32px,4.4vw,80px);
  align-items:start;
}
/* a lista ocupa a coluna larga à esquerda; a mídia acompanha à direita */
.atuacao__list{grid-column:1; grid-row:1}
.atuacao__media{grid-column:2; grid-row:1; position:sticky; top:118px}
.atuacao__media-frame{
  --r:var(--r-lg);
  position:relative;
  aspect-ratio:4/5;
  overflow:hidden;
  background:var(--navy-800);
}
.atuacao__media-frame .ph{
  /* `.lq > *` define position:relative e tem a mesma especificidade de `.ph`,
     vencendo por vir depois no arquivo — as imagens colapsavam para altura 0.
     Este seletor é mais específico e devolve o posicionamento absoluto. */
  position:absolute; inset:0; z-index:2;
  opacity:0; transform:scale(1.08);
  transition:opacity .8s var(--ease), transform 1.2s var(--ease-glass);
  filter:saturate(.9) contrast(1.03) brightness(.94);
}
.atuacao__media-frame .ph.is-active{opacity:1; transform:scale(1)}
.atuacao__media-glow{
  position:absolute; inset:0; z-index:3; pointer-events:none;
  background:linear-gradient(200deg,rgba(255,255,255,.14),transparent 42%),
             linear-gradient(0deg,rgba(4,15,39,.55),transparent 55%);
}

.area{position:relative}
.area__trigger{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:clamp(16px,2.4vw,34px);
  width:100%;
  padding:clamp(20px,2.4vw,32px) 0;
  background:none; border:0; cursor:pointer; text-align:left;
}
.area__num{
  font-family:"Kanit",system-ui,sans-serif;
  font-weight:500;
  font-size:clamp(.85rem,1.4vw,1rem);
  color:var(--gold-600);
  letter-spacing:.06em;
  transition:color .4s var(--ease);
}
.area__name{
  font-family:"Kanit",system-ui,sans-serif;
  font-weight:400;
  font-size:clamp(1.28rem,.9rem + 1.7vw,2.4rem);
  line-height:1.16; letter-spacing:-.022em;
  color:var(--navy);
  transition:transform .55s var(--ease-glass), color .4s;
  transform-origin:left;
}
.area__chev{
  position:relative; width:16px; height:16px; flex:none;
  opacity:.42; transition:opacity .4s, transform .5s var(--ease-glass);
}
.area__chev::before,.area__chev::after{
  content:""; position:absolute; background:var(--navy); border-radius:2px;
}
.area__chev::before{left:0; top:7.5px; width:16px; height:1.5px}
.area__chev::after{left:7.25px; top:0; width:1.5px; height:16px; transition:transform .5s var(--ease-glass)}

.area__panel{
  display:grid; grid-template-rows:0fr;
  transition:grid-template-rows .7s var(--ease-glass);
}
.area__panel-in{overflow:hidden}
.area__panel-in p{
  max-width:56ch;
  margin-bottom:0;
  color:var(--ink-soft);
  opacity:0; transform:translateY(8px);
  transition:opacity .55s var(--ease) .1s, transform .6s var(--ease-glass) .1s;
}
.area__rule{
  display:block; height:1px;
  background:rgba(12,36,96,.15);
  position:relative; overflow:hidden;
}
.area__rule::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(90deg,var(--gold),var(--gold-200));
  transform:scaleX(0); transform-origin:left;
  transition:transform .8s var(--ease-glass);
}

.area.is-open .area__num{color:var(--gold)}
.area.is-open .area__name{transform:translateX(10px)}
.area.is-open .area__chev{opacity:1}
.area.is-open .area__chev::after{transform:scaleY(0)}
.area.is-open .area__panel{grid-template-rows:1fr}
.area.is-open .area__panel-in p{opacity:1; transform:none}
.area.is-open .area__rule::after{transform:scaleX(1)}

@media (hover:hover){
  .area:not(.is-open) .area__trigger:hover .area__name{transform:translateX(6px); color:var(--navy-700)}
  .area:not(.is-open) .area__trigger:hover .area__num{color:var(--gold)}
}

/* ---------- 15. Método ---------- */
.processo__head{max-width:min(760px,100%); margin-bottom:clamp(50px,6vw,92px)}
.movimentos{position:relative; padding-left:clamp(40px,6vw,110px)}
/* o fio fica ATRÁS dos marcadores — antes ele era o último irmão no DOM
   e passava por cima dos círculos "i/ii/iii" */
.movimentos__thread{
  position:absolute; left:clamp(14px,2.4vw,44px); top:.6em; bottom:2em; width:1px;
  background:rgba(255,255,255,.13);
  z-index:0;
}
.movimentos__thread i{
  display:block; width:100%; height:100%;
  background:linear-gradient(180deg,var(--gold-200),var(--gold));
  transform:scaleY(var(--p,0)); transform-origin:top;
  box-shadow:0 0 8px rgba(188,165,100,.28);
}
.movimento{
  position:relative;
  padding-bottom:clamp(38px,4.6vw,68px);
}
.movimento:last-of-type{padding-bottom:0}
.movimento__index{
  position:absolute;
  z-index:3;
  left:calc(clamp(40px,6vw,110px) * -1 + clamp(14px,2.4vw,44px) - 15px);
  top:.06em;
  width:31px; height:31px;
  display:grid; place-items:center;
  border-radius:50%;
  /* fundo opaco para o fio não atravessar o marcador */
  background:var(--navy-900);
  box-shadow:
    0 0 0 5px var(--navy-900),
    inset 0 0 0 1px rgba(214,193,131,.55);
  font-family:"Kanit",system-ui,sans-serif;
  font-weight:400;
  font-size:.7rem; letter-spacing:.03em;
  color:var(--gold-200);
}
.movimento{z-index:1}
.movimento h3{
  font-family:"Kanit",system-ui,sans-serif;
  font-weight:500;
  font-size:var(--fs-h3);
  color:var(--white);
  margin-bottom:.5em;
  letter-spacing:-.018em;
}
.movimento__body p{max-width:54ch}
.processo__closing{
  margin-top:clamp(44px,5vw,78px);
  padding-left:clamp(40px,6vw,110px);
  max-width:60ch;
  font-size:var(--fs-lead);
  color:rgba(214,193,131,.9) !important;
}

/* ---------- 16. Escritório ---------- */
.escritorio__grid{
  display:grid;
  grid-template-columns:minmax(0,1.04fr) minmax(0,1fr);
  gap:clamp(36px,5vw,92px);
  align-items:center;
}
.escritorio__figure{position:relative; margin:0}

.escritorio__text p{color:var(--ink-soft); font-size:var(--fs-lead); max-width:50ch}
.escritorio__marks{
  display:grid; gap:2px;
  margin-top:clamp(30px,3.4vw,46px);
  border-top:1px solid rgba(12,36,96,.14);
}
.escritorio__marks li{
  display:flex; flex-direction:column; gap:2px;
  padding:clamp(14px,1.8vw,20px) 0;
  border-bottom:1px solid rgba(12,36,96,.14);
}
.escritorio__marks span{
  font-family:"Kanit",system-ui,sans-serif;
  font-weight:400;
  font-size:clamp(1.08rem,.95rem + .7vw,1.45rem);
  color:var(--navy); letter-spacing:-.018em;
}
.escritorio__marks small{font-size:var(--fs-sm); color:var(--ink-mute)}

/* ---------- 17. Depoimentos (estrutura pronta) ---------- */
.depoimentos__head{max-width:40ch; margin-bottom:clamp(36px,4vw,60px)}
.depoimentos__hint{margin-top:16px; font-size:var(--fs-xs); letter-spacing:.16em; text-transform:uppercase; color:var(--ink-mute)}
.depoimentos__rail{
  overflow-x:auto; overflow-y:hidden;
  scrollbar-width:none; cursor:grab;
  padding-inline:var(--gutter);
  scroll-snap-type:x proximity;
}
.depoimentos__rail::-webkit-scrollbar{display:none}
.depoimentos__rail.is-dragging{cursor:grabbing; scroll-snap-type:none}
.depoimentos__track{display:flex; gap:clamp(18px,2.4vw,34px); width:max-content; padding-bottom:8px}
.depo{
  scroll-snap-align:start;
  width:min(430px,78vw);
  padding:clamp(28px,3vw,40px);
  background:var(--white);
  border-radius:var(--r-md);
  box-shadow:0 30px 60px -40px rgba(4,15,39,.35);
  border-top:2px solid var(--gold);
}
.depo blockquote{margin:0 0 22px}
.depo blockquote p{font-size:1.06rem; line-height:1.66; color:var(--ink-soft)}
.depo footer{display:flex; flex-direction:column; gap:2px}
.depo cite{font-style:normal; font-weight:600; color:var(--navy)}
.depo footer span{font-size:var(--fs-sm); color:var(--ink-mute)}

/* ---------- 18. Fechamento ---------- */
.fechamento{text-align:center}
.fechamento__bg{position:absolute; inset:0; z-index:0; overflow:hidden}
.fechamento__bg .ph{
  inset:-10% 0;
  opacity:.26; filter:saturate(.5) brightness(.6);
  will-change:transform;
}
.fechamento__inner{position:relative; z-index:4; display:grid; justify-items:center; gap:clamp(22px,2.6vw,34px)}
.fechamento__inner p{max-width:50ch; font-size:var(--fs-lead); color:rgba(224,231,246,.84) !important}

/* ---------- 19. Contato / formulário ---------- */
.contato__grid{
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(36px,4.6vw,88px);
  align-items:start;
}
.contato__aside p{color:var(--ink-soft); font-size:var(--fs-lead); max-width:42ch}
.contato__pontos{margin-top:clamp(24px,2.6vw,34px); display:grid; gap:12px}
.contato__pontos li{
  position:relative; padding-left:24px;
  font-size:var(--fs-sm); color:var(--ink-soft);
}
.contato__pontos li::before{
  content:""; position:absolute; left:0; top:.62em;
  width:11px; height:1px; background:var(--gold);
}
.contato__wpp{
  display:inline-flex; align-items:center; gap:11px;
  margin-top:clamp(26px,3vw,40px);
  font-size:var(--fs-sm); font-weight:600; color:var(--navy);
  padding-bottom:6px;
  border-bottom:1px solid rgba(12,36,96,.2);
  transition:color .3s, border-color .3s;
}
.contato__wpp:hover{color:var(--gold-700); border-color:var(--gold)}

/* o formulário fica sobre um campo azul para o vidro ter o que refratar */
.contato__form-wrap{
  --r:var(--r-lg);
  position:relative;
  padding:clamp(26px,3.2vw,46px);
  background:
    radial-gradient(140% 130% at var(--gx,26%) var(--gy,0%),
      rgba(255,255,255,.16), rgba(255,255,255,.05) 40%, rgba(255,255,255,.02) 72%),
    linear-gradient(155deg,var(--navy-800),var(--navy-900) 60%,var(--navy-950));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.24),
    0 44px 90px -46px rgba(4,15,39,.7);
}
.contato__form-wrap::after{
  background:linear-gradient(140deg,rgba(255,255,255,.42),rgba(214,193,131,.42) 30%,rgba(255,255,255,.03) 60%,rgba(255,255,255,.22));
}

.form__row{display:grid; grid-template-columns:1fr 1fr; gap:clamp(14px,1.6vw,20px)}
.field{margin-bottom:clamp(14px,1.7vw,22px); min-width:0}
.field label{
  display:block; margin-bottom:8px;
  font-size:var(--fs-sm); font-weight:500;
  color:rgba(224,231,246,.9);
}
.field__opt{color:var(--light-mute); font-weight:400}
.field input,.field select,.field textarea{
  width:100%;
  padding:14px 16px;
  border:0; border-radius:12px;
  background:rgba(255,255,255,.05);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);
  color:var(--white);
  font-size:.97rem;
  transition:box-shadow .35s var(--ease), background .35s;
  appearance:none; -webkit-appearance:none;
}
.field textarea{resize:vertical; min-height:88px; line-height:1.55}
.field input::placeholder,.field textarea::placeholder{color:rgba(148,163,196,.62)}
.field input:hover,.field select:hover,.field textarea:hover{background:rgba(255,255,255,.075)}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;
  background:rgba(255,255,255,.09);
  box-shadow:inset 0 0 0 1px rgba(214,193,131,.75), 0 0 0 4px rgba(188,165,100,.16);
}
.field select{color:var(--white)}
.field select option{background:var(--navy-900); color:var(--white)}
.field select:invalid{color:rgba(148,163,196,.62)}

.select-wrap{position:relative}
.select-wrap__chev{
  position:absolute; right:18px; top:50%; width:8px; height:8px;
  border-right:1.5px solid var(--gold-200); border-bottom:1.5px solid var(--gold-200);
  transform:translateY(-70%) rotate(45deg);
  pointer-events:none;
}
.field--check{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:12px; align-items:start;
  margin-block:clamp(16px,2vw,22px);
}
.field--check input{
  width:20px; height:20px; margin-top:2px;
  border-radius:6px; cursor:pointer;
  background:rgba(255,255,255,.06);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.24);
  display:grid; place-content:center;
  flex:none;
}
.field--check input::before{
  content:""; width:10px; height:10px; border-radius:2px;
  transform:scale(0); transition:transform .25s var(--ease-glass);
  background:var(--gold);
}
.field--check input:checked::before{transform:scale(1)}
.field--check input:checked{box-shadow:inset 0 0 0 1px var(--gold)}
.field--check label{margin:0; font-size:.85rem; line-height:1.5; color:rgba(197,207,230,.9); cursor:pointer}
.field--check .field__error{grid-column:1 / -1}

.field__error{
  margin:6px 0 0; min-height:0;
  font-size:.78rem; color:#f0a9a0;
}
.field.has-error input,.field.has-error select,.field.has-error textarea{
  box-shadow:inset 0 0 0 1px rgba(240,169,160,.8);
}

.form__note{
  margin:clamp(6px,1vw,12px) 0 0;
  font-size:.79rem; line-height:1.5;
  color:rgba(148,163,196,.82);
  padding-left:14px; border-left:1px solid rgba(214,193,131,.45);
}
.form__status{
  margin:14px 0 0; min-height:1.2em;
  font-size:var(--fs-sm); color:var(--gold-200);
}
.form__status.is-error{color:#f0a9a0}
.form__fallback{
  display:inline-block; margin-top:12px;
  font-size:var(--fs-sm); font-weight:600; color:var(--gold-200);
  border-bottom:1px solid rgba(214,193,131,.45);
}
/* honeypot */
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}

/* garante que [hidden] vença regras de display do componente */
[hidden]{display:none !important}

/* ---------- 20. Footer ---------- */
.footer{
  background:var(--navy-950);
  color:var(--light-soft);
  padding-block:clamp(48px,6vw,84px);
  border-top:1px solid rgba(255,255,255,.07);
}
.footer__inner{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) auto minmax(0,1.2fr);
  gap:clamp(28px,4vw,64px);
  align-items:start;
}
.footer__brand .nv-logo{width:200px; margin-bottom:16px}
.footer__brand p{font-size:var(--fs-sm); color:var(--light-mute); max-width:32ch}
.footer__nav{display:flex; flex-direction:column; gap:10px; font-size:var(--fs-sm)}
.footer__nav a{color:var(--light-soft); transition:color .3s}
.footer__nav a:hover{color:var(--gold-200)}
.footer__legal p{font-size:.78rem; line-height:1.6; color:var(--light-mute); max-width:46ch}
.footer__copy{margin-top:14px; padding-top:14px; border-top:1px solid rgba(255,255,255,.07)}

/* ---------- 21. WhatsApp flutuante — massa líquida verde ----------
   A forma morfa continuamente (border-radius animado), tem halo pulsante
   e deriva de leve conforme o scroll (--wa-y, calculado no JavaScript).
   No hover tudo acelera e passa um brilho, como nos botões dourados. */
.wa-float{
  position:fixed; z-index:110;
  right:max(18px,env(safe-area-inset-right));
  bottom:max(18px,env(safe-area-inset-bottom));
  width:68px; height:68px;
  display:grid; place-items:center;
  border-radius:50%;
  color:#fff;
  isolation:isolate;
  transform:translate3d(var(--wa-x,0px),var(--wa-y,0px),0);
  transition:transform .4s var(--ease-glass);
}
.wa-float__glow{
  position:absolute; inset:-16px; z-index:-3;
  border-radius:50%;
  background:radial-gradient(circle, rgba(37,211,102,.75), rgba(37,211,102,.18) 46%, rgba(37,211,102,0) 70%);
  filter:blur(11px);
  animation:waGlow 3.6s ease-in-out infinite;
  transition:opacity .4s;
}
.wa-float__liquid{
  position:absolute; inset:-4px; z-index:-2;
  overflow:hidden;
  background:
    radial-gradient(circle at 32% 26%, #5df59a 0%, #25d366 44%, #17a94f 78%, #0e7f3a 100%);
  border-radius:54% 46% 57% 43%/49% 44% 56% 51%;
  box-shadow:
    inset 0 2px 6px rgba(255,255,255,.45),
    inset 0 -4px 10px rgba(6,80,36,.45),
    0 16px 34px -10px rgba(21,150,74,.7);
  animation:waLiquid 7.5s ease-in-out infinite;
}
/* reflexo interno que escorrega, dando a leitura de superfície líquida */
.wa-float__liquid::before{
  content:""; position:absolute; inset:-10%;
  border-radius:inherit;
  background:radial-gradient(circle at 30% 24%, rgba(255,255,255,.6), rgba(255,255,255,0) 48%);
  animation:waShine 7.5s ease-in-out infinite;
}
/* brilho que atravessa no hover, igual aos botões dourados */
.wa-float__liquid::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(115deg,transparent 24%,rgba(255,255,255,.75) 50%,transparent 76%);
  transform:translateX(-150%);
  transition:transform .9s var(--ease-glass);
}
.wa-float__icon{position:relative; z-index:1}

@keyframes waLiquid{
  0%,100%{border-radius:54% 46% 57% 43%/49% 44% 56% 51%; transform:rotate(0deg) scale(1)}
  33%{border-radius:44% 56% 47% 53%/56% 52% 48% 44%; transform:rotate(6deg) scale(1.03)}
  66%{border-radius:57% 43% 52% 48%/44% 55% 45% 56%; transform:rotate(-6deg) scale(.985)}
}
@keyframes waGlow{
  0%,100%{opacity:.55; transform:scale(1)}
  50%{opacity:1; transform:scale(1.16)}
}
@keyframes waShine{
  0%,100%{transform:translate(0,0)}
  50%{transform:translate(14%,11%)}
}
@keyframes waNudge{
  0%,100%{transform:translate(0,0) rotate(0deg)}
  25%{transform:translate(1.6px,-1.6px) rotate(6deg)}
  75%{transform:translate(-1.6px,1.6px) rotate(-6deg)}
}

@media (hover:hover){
  .wa-float:hover .wa-float__liquid{animation-duration:2.4s}
  .wa-float:hover .wa-float__glow{animation-duration:1.5s; opacity:1}
  .wa-float:hover .wa-float__liquid::after{transform:translateX(150%)}
  .wa-float:hover .wa-float__icon{animation:waNudge 1.15s ease-in-out infinite}
}
.wa-float:focus-visible{outline:3px solid #fff; outline-offset:4px}

/* ============================================================
   22. Responsivo
   ============================================================ */
@media (max-width:1180px){
  .col-title{grid-column:1 / span 7}
  .col-body{grid-column:1 / span 10}
  .atuacao__body{grid-template-columns:1fr}
  .atuacao__media{display:none}
  .contato__grid{grid-template-columns:1fr; gap:clamp(30px,5vw,48px)}
  .footer__inner{grid-template-columns:1fr 1fr; }
  .footer__legal{grid-column:1 / -1}
}

@media (max-width:1024px){
  .hero__col{max-width:none}
  .hero__figure{
    width:100%;
    opacity:1;
    -webkit-mask-image:none; mask-image:none;
  }
  .hero__figure .ph{
    background-position:60% 40%;
    filter:saturate(.7) contrast(1.05) brightness(.5);
  }
  .hero__figure-veil{
    background:
      linear-gradient(180deg, rgba(4,15,39,.82) 0%, rgba(7,23,57,.7) 38%, rgba(4,15,39,.93) 100%);
  }
  .hero__title{max-width:16ch}
  .escritorio__grid{grid-template-columns:1fr; gap:clamp(48px,7vw,72px)}
  .escritorio__figure-sub{width:32%; right:2%; bottom:-8%}
  .contraste__panels{grid-template-columns:1fr; gap:24px}
  .contraste__rule{display:none}
  .panel--agora{padding-block:0 8px}
}

@media (max-width:860px){
  .nav__toggle{display:grid}
  .nav__menu{
    position:absolute; left:0; right:0; top:calc(100% + 10px);
    flex-direction:column; align-items:stretch; gap:6px;
    padding:18px;
    border-radius:20px;
    background:linear-gradient(160deg,rgba(10,26,66,.96),rgba(4,15,39,.97));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 30px 60px -30px rgba(0,0,0,.7);
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
    opacity:0; visibility:hidden; transform:translateY(-10px);
    transition:opacity .4s var(--ease), transform .5s var(--ease-glass), visibility .4s;
  }
  .nav__menu.is-open{opacity:1; visibility:visible; transform:none}
  .nav__links{flex-direction:column; align-items:stretch; gap:0}
  .nav__links a{padding:13px 6px; border-bottom:1px solid rgba(255,255,255,.08)}
  .nav__links a::after{display:none}
  .nav__cta{margin-top:12px; width:100%}
  .nav{position:relative}
}

@media (max-width:760px){
  .form__row{grid-template-columns:1fr}
  /* o hero passa a empilhar: a faixa de vidro entra no fluxo, abaixo do conteúdo */
  .hero{
    min-height:auto;
    flex-direction:column; align-items:stretch; justify-content:flex-start;
    padding-block:126px 40px;
  }
  .hero__band{position:static; padding:0 var(--gutter); margin-top:34px}
  .hero__band-inner{border-radius:16px; padding:18px 20px}
  .hero__actions .btn{width:100%}
  .sm-hide{display:none}
  .eyebrow{align-items:flex-start; letter-spacing:.14em}
  .eyebrow__rule{margin-top:.62em}
  .hero__meta{flex-direction:column; align-items:flex-start; gap:9px}
  .hero__meta li{gap:0}
  .hero__meta li+li::before{display:none}
  .hero__scroll{display:none}
  .col-title,.col-body{grid-column:1 / -1}
  .movimentos{padding-left:38px}
  .movimentos__thread{left:11px}
  .movimento__index{left:-38px}
  .processo__closing{padding-left:38px}
  .footer__inner{grid-template-columns:1fr; gap:32px}
  .escritorio__figure-sub{width:38%; right:0; bottom:-6%; border-width:4px}
  .depo{width:min(340px,84vw)}
  /* Liquid Glass simplificado: menos blur, sem refração SVG */
  .lq{backdrop-filter:blur(16px) saturate(150%); -webkit-backdrop-filter:blur(16px) saturate(150%)}
  .lq-blob{filter:blur(46px) !important; animation:none !important}
  .hero__grain{display:none}
  .area__trigger{grid-template-columns:auto 1fr auto; gap:14px}
}

@media (max-width:420px){
  .wa-float{width:54px; height:54px}
  .btn{--btn-h:52px; padding-inline:20px; font-size:.9rem}
}

/* dispositivos sem hover: painel de áreas vira acordeão puro */
@media (hover:none){
  .atuacao__media{display:none}
}

/* ============================================================
   23. Movimento reduzido
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    transition-delay:0ms !important;
  }
  [data-reveal]{opacity:1 !important; transform:none !important}
  .hero__title .line__in{transform:none !important}
  .hero__figure,.nav__brand,.hero__bg .lq-blob{opacity:1 !important; filter:none !important; transform:none !important}
  .hero__lead::before{transform:scaleY(1) !important}
  .ticker__track{animation:none !important}
  .hero__scroll-line::after{display:none}
  .progress-thread{display:none}
  .lq-blob{animation:none !important}
}

/* impressão */
@media print{
  .nav-shell,.wa-float,.progress-thread,.hero__figure,.lq-blob{display:none !important}
  body{background:#fff; color:#000}
  .section--deep{background:#fff !important; color:#000 !important}
  .section--deep p,.h2--light{color:#000 !important}
}

/* leads e textos grandes ficam em Kanit 300; o corpo pequeno em 400 */
.hero__lead,
.col-body p,
.atuacao__intro,
.escritorio__text p,
.contato__aside p,
.fechamento__inner p,
.movimento__body p,
.panel__list li{font-weight:300}


/* ---------- Linha-resposta (hero e "como funciona") ----------
   Segunda frase que completa a pergunta do título: entra em dourado,
   um degrau abaixo do display, sem competir com ele. */
p.answer-line{
  font-size:clamp(1.16rem,.95rem + 1.05vw,1.85rem);
  font-weight:400;
  line-height:1.34;
  letter-spacing:-.018em;
  color:var(--gold-200);
  max-width:min(640px,100%);
  text-wrap:balance;
  margin:0 0 clamp(20px,2.4vw,30px);
}
p.answer-line--light{color:var(--gold-200); margin-top:clamp(10px,1.4vw,16px)}

/* ---------- Painel "e depois do problema" ---------- */
.panel__intro{
  margin-bottom:clamp(16px,1.8vw,22px);
  color:rgba(224,231,246,.9) !important;
  font-weight:300;
}
.panel__outro{
  margin-top:clamp(18px,2vw,26px);
  padding-top:clamp(16px,1.8vw,22px);
  border-top:1px solid rgba(214,193,131,.28);
  font-size:var(--fs-sm);
  color:rgba(214,193,131,.92) !important;
}

/* ---------- Áreas: dois parágrafos por item ---------- */
.area__panel-in p + p{margin-top:.8em}
.area__panel-in p:last-child{padding-bottom:clamp(20px,2.4vw,30px)}

/* ---------- Intro das áreas com dois parágrafos ---------- */
.atuacao__intro + .atuacao__intro{margin-top:.85em}

/* ---------- Rodapé ---------- */
.footer__brand p strong{font-weight:500; color:var(--light)}


/* =============================================================
   Carrossel dos sócios (seção 05)
   ============================================================= */
.socios{position:relative}
.socios__viewport{
  position:relative;
  overflow:hidden;
  border-radius:var(--r-md);
  background:var(--navy-900);
  box-shadow:
    0 40px 80px -44px rgba(4,15,39,.55),
    inset 0 0 0 1px rgba(188,165,100,.30);
}
.socios__track{
  display:flex;
  transition:transform .72s var(--ease-glass);
  will-change:transform;
}
.socios__slide{
  position:relative;
  flex:0 0 100%;
  aspect-ratio:1/1;
}
.socios__ph{
  position:absolute; inset:0;
  background-color:var(--navy-900);
  background-image:var(--ph-img,none), var(--ph-fallback);
  background-size:cover, cover;
  background-position:center, center;
  background-repeat:no-repeat;
}
/* leve véu para amarrar as fotos ao restante da página */
.socios__viewport::after{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:2;
  background:linear-gradient(200deg,rgba(255,255,255,.07),transparent 40%),
             linear-gradient(0deg,rgba(4,15,39,.22),transparent 42%);
}

.socios__nav{
  display:flex; align-items:center; gap:18px;
  margin-top:clamp(16px,2vw,22px);
}
.socios__arrow{
  width:42px; height:42px; flex:none;
  display:grid; place-items:center;
  border:0; border-radius:50%; cursor:pointer;
  color:var(--navy);
  background:transparent;
  box-shadow:inset 0 0 0 1px rgba(12,36,96,.22);
  transition:background .3s, color .3s, box-shadow .3s, transform .3s var(--ease-glass);
}
.socios__arrow:hover{background:var(--navy); color:var(--white); box-shadow:inset 0 0 0 1px var(--navy)}
.socios__arrow:active{transform:scale(.94)}

.socios__dots{display:flex; align-items:center; justify-content:center; gap:10px; flex:1}
.socios__dot{
  width:9px; height:9px; padding:0; border:0; border-radius:50%;
  cursor:pointer; background:rgba(12,36,96,.22);
  transition:background .35s, width .45s var(--ease-glass), transform .3s;
}
.socios__dot:hover{background:rgba(12,36,96,.42)}
.socios__dot.is-active{width:26px; border-radius:6px; background:var(--gold)}

/* legenda de apoio, fora da imagem */
.socios__caption{
  margin-top:clamp(14px,1.8vw,20px);
  font-size:var(--fs-sm);
  color:var(--ink-mute);
  max-width:34ch;
}

@media (max-width:1024px){
  .socios{max-width:520px}
}
@media (max-width:760px){
  .socios{max-width:none}
  .socios__arrow{width:40px; height:40px}
}


/* =============================================================
   The Seasons — fonte de destaque
   -------------------------------------------------------------
   É uma fonte comercial e não está em nenhum CDN público. Coloque
   o arquivo em assets/fonts/ e ela assume automaticamente. Até lá,
   a Prata (Google Fonts) segura o lugar com proporção parecida.
   Confira se a sua licença cobre uso como webfont.
   ============================================================= */
@font-face{font-family:'The Seasons';font-weight:400;font-style:normal;font-display:swap;src:url('assets/fonts/TheSeasons-Regular.woff2') format('woff2'),url('assets/fonts/TheSeasons-Regular.otf') format('opentype')}
.seasons{
  font-family:'The Seasons','Prata',Georgia,serif;
  font-weight:400;
  font-style:normal;
  font-size:1.06em;      /* compensa a altura-x menor da serif ao lado da Kanit */
  letter-spacing:.004em;
  background-image:linear-gradient(135deg,#bba463 0%,#bba463 48%,#695b36 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  -webkit-text-fill-color:transparent;
  /* inline (não inline-block): assim o trecho flui junto com o texto em Kanit
     em vez de quebrar como um bloco inteiro. O padding só estica a caixa do
     recorte, para o gradiente não cortar descendentes e acentos. */
  display:inline;
  padding-bottom:.06em;
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
}
@supports not ((-webkit-background-clip:text) or (background-clip:text)){
  .seasons{color:#bba463; -webkit-text-fill-color:#bba463; background:none}
}


/* =============================================================
   Avaliações no Google — colunas separadas por filetes,
   no mesmo campo escuro das demais seções institucionais
   ============================================================= */
.lq-blob--g{
  right:-10vw; top:-8%; width:42vw; height:42vw; max-width:580px; max-height:580px;
  background:radial-gradient(circle at 45% 45%, rgba(188,165,100,.26), rgba(8,20,54,0) 68%);
  filter:blur(46px);
  animation:blobDrift 36s ease-in-out infinite;
}
.avaliacoes__head{
  display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between;
  gap:clamp(24px,3vw,48px);
  margin-bottom:clamp(38px,4.4vw,64px);
}
.avaliacoes__head .h2{max-width:16ch}

.gscore{
  --r:var(--r-md);
  display:flex; align-items:center; gap:clamp(14px,1.8vw,20px);
  padding:clamp(15px,1.7vw,19px) clamp(18px,2.2vw,26px);
}
.gscore__brand{display:grid; place-items:center; flex:none}
.gscore__body{display:flex; flex-direction:column; gap:1px; line-height:1.25}
.gscore__nota{font-size:1.5rem; font-weight:500; color:var(--white); letter-spacing:-.02em}
.gscore__estrelas{color:var(--gold); font-size:.95rem; letter-spacing:.12em}
.gscore__meta{font-size:.74rem; color:var(--light-mute)}
.gscore__link{
  display:inline-flex; align-items:center; gap:6px;
  margin-left:clamp(6px,1.2vw,14px); padding-left:clamp(12px,1.6vw,20px);
  border-left:1px solid rgba(255,255,255,.16);
  font-size:var(--fs-sm); font-weight:500; color:var(--gold-200);
  transition:color .3s;
}
.gscore__link:hover{color:var(--white)}

.avaliacoes__grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.aval{
  display:flex; flex-direction:column;
  padding:clamp(4px,.6vw,8px) clamp(18px,2.2vw,30px);
  border-left:1px solid rgba(255,255,255,.13);
}
.aval:first-child{border-left:0; padding-left:0}
.aval:last-child{padding-right:0}

.aval__topo{display:flex; align-items:center; gap:12px; margin-bottom:clamp(16px,1.8vw,22px)}
.aval__avatar{
  width:42px; height:42px; flex:none;
  display:grid; place-items:center;
  border-radius:50%;
  background:linear-gradient(140deg, rgba(188,165,100,.30), rgba(188,165,100,.10));
  box-shadow:inset 0 0 0 1px rgba(214,193,131,.45);
  color:var(--gold-100);
  font-size:.98rem; font-weight:500;
}
.aval__nome{
  margin:0;
  font-size:1.02rem; font-weight:500; color:var(--white);
  line-height:1.25; letter-spacing:-.015em;
}
.aval__fonte{
  margin:2px 0 0;
  font-size:.62rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold-200);
}
.aval__texto{
  margin:0 0 clamp(20px,2.2vw,28px);
  font-size:.95rem; font-weight:300; line-height:1.66;
  color:var(--light-soft) !important;
}
/* a estrela fica colada no rodapé da coluna, mesmo com textos de tamanhos diferentes */
.aval__estrelas{
  margin-top:auto;
  align-self:flex-start;
  padding:7px 14px;
  border-radius:999px;
  box-shadow:inset 0 0 0 1px rgba(214,193,131,.38);
  color:var(--gold);
  font-size:.82rem; letter-spacing:.22em; line-height:1;
}
.avaliacoes__nota{
  margin-top:clamp(28px,3vw,42px);
  font-size:.76rem; color:var(--light-mute) !important;
}

@media (max-width:1180px){
  .avaliacoes__grid{grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(26px,3vw,38px) 0}
  .aval:nth-child(odd){border-left:0; padding-left:0}
  .aval:nth-child(even){padding-right:0}
}
@media (max-width:640px){
  .avaliacoes__head{flex-direction:column; align-items:flex-start}
  .gscore{width:100%}
  .gscore__link{margin-left:auto}
  .avaliacoes__grid{grid-template-columns:1fr; gap:0}
  .aval{
    border-left:0 !important;
    padding:clamp(22px,5vw,28px) 0;
    border-top:1px solid rgba(255,255,255,.13);
  }
  .aval:first-child{border-top:0; padding-top:0}
}


/* =============================================================
   Ritmo vertical mais curto nas seções 01, 02, 04 e no fechamento
   ============================================================= */
.problema,
.contraste,
.processo,
.fechamento{padding-block:clamp(56px,7vw,112px)}

.ticker{margin-top:clamp(36px,4.2vw,64px)}
.contraste__head{margin-bottom:clamp(32px,3.8vw,54px)}
.processo__head{margin-bottom:clamp(34px,3.8vw,58px)}
.movimento{padding-bottom:clamp(28px,3.2vw,46px)}
.atuacao__head{margin-bottom:clamp(36px,4.2vw,62px)}
.fechamento__inner{gap:clamp(18px,2.2vw,28px)}

/* a frase de fechamento da seção 02 cabe em uma linha no desktop */
.contraste__closing{
  max-width:none;
  margin-top:clamp(28px,3.2vw,48px);
}


/* botão flutuante: sem movimento quando o usuário pede menos animação */
@media (prefers-reduced-motion:reduce){
  .wa-float{transform:none !important}
  .wa-float__liquid,.wa-float__glow,.wa-float__icon,
  .wa-float__liquid::before{animation:none !important}
  .wa-float__liquid{border-radius:50%}
}
@media (max-width:420px){
  .wa-float{width:62px; height:62px}
}
/* =============================================================
   CRO — ajustes de conversão (setembro/2026)
   -------------------------------------------------------------
   Nada aqui muda cor, tipografia ou linguagem visual: são
   acréscimos de hierarquia, área de toque e componentes novos
   construídos com os mesmos tokens da página.
   ============================================================= */

/* ---------- ícone do WhatsApp dentro dos botões ----------
   O CTA precisa dizer para onde leva. Sem o ícone, "Falar pelo
   WhatsApp" é só texto; com ele, o botão é reconhecido antes de
   ser lido. */
.btn__wa{
  display:inline-flex; align-items:center; justify-content:center;
  margin-right:10px; margin-left:-2px;
  flex:none;
}
.btn__wa svg{display:block}
.btn > span{position:relative; z-index:2}
.btn--gold .btn__wa{color:var(--navy-800)}

/* botão verde do WhatsApp (usado no contato e na barra fixa) */
.btn--wpp{
  color:#06301a;
  background:linear-gradient(140deg,#5cea92,#25d366 46%,#12a44b);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5), 0 16px 36px -16px rgba(11,120,58,.85);
}
.btn--wpp:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 20px 46px -14px rgba(11,120,58,.95)}
.btn--wpp .btn__wa{color:#06301a}

/* o CTA secundário do hero não pode disputar peso com o principal */
.btn--sec{
  --btn-h:50px;
  font-size:.9rem; font-weight:400;
  background:transparent;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.20);
  color:rgba(224,231,246,.82);
}
.btn--sec:hover{background:rgba(255,255,255,.06); color:var(--white)}

/* ---------- hero: sem a faixa de vidro, com linha de confiança ---------- */
.hero{padding-block:clamp(118px,13vh,150px) clamp(56px,7vh,86px)}
.hero__actions{align-items:center}
.hero__trust{
  margin:clamp(20px,2.4vw,28px) 0 0;
  font-size:var(--fs-xs);
  letter-spacing:.1em; text-transform:uppercase; font-weight:500;
  color:rgba(206,215,236,.78);
  max-width:52ch;
  line-height:2;
}
.hero__trust i{font-style:normal; color:var(--gold); margin-inline:8px}

/* ---------- varal de situações ----------
   Serve para o visitante achar o próprio caso em segundos, antes
   de qualquer texto. É só leitura: quem quiser detalhe abre o item. */
.tags{
  display:flex; flex-wrap:wrap; gap:9px;
  margin-top:clamp(22px,2.6vw,30px);
}
.tags li{
  padding:8px 15px;
  border-radius:999px;
  font-size:.87rem; font-weight:400; line-height:1.2;
  color:var(--navy);
  background:rgba(12,36,96,.045);
  box-shadow:inset 0 0 0 1px rgba(12,36,96,.14);
}
.atuacao__pista{
  margin:clamp(18px,2vw,24px) 0 0;
  font-size:var(--fs-sm); font-weight:300;
  color:var(--ink-mute);
  max-width:52ch;
}

/* ---------- CTAs no meio da página ---------- */
.atuacao__cta{
  margin-top:clamp(40px,4.6vw,64px);
  padding-top:clamp(28px,3.2vw,40px);
  border-top:1px solid rgba(12,36,96,.14);
  display:flex; flex-wrap:wrap; align-items:center;
  gap:clamp(16px,2.4vw,30px);
}
.atuacao__cta p{
  margin:0; flex:1 1 280px;
  font-size:var(--fs-lead); font-weight:300; color:var(--ink-soft);
}
.escritorio__cta{margin-top:clamp(26px,3vw,36px)}
.avaliacoes__cta{margin-top:clamp(30px,3.4vw,44px)}

/* ---------- avaliações em três colunas ---------- */
.avaliacoes__grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1180px){
  .avaliacoes__grid--3{grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(26px,3vw,38px) 0}
}
@media (max-width:640px){
  .avaliacoes__grid--3{grid-template-columns:1fr; gap:0}
}

/* ---------- contato ---------- */
.contato__wa{margin-top:clamp(24px,2.8vw,32px)}
.contato__pontos{margin-top:clamp(26px,3vw,34px)}
.form__intro{
  margin:0 0 clamp(18px,2.2vw,24px);
  font-size:var(--fs-sm); font-weight:300;
  color:rgba(197,207,230,.9);
}

/* =============================================================
   Barra fixa de WhatsApp no mobile
   -------------------------------------------------------------
   Entra só depois que o hero sai da tela, com a classe `is-on`
   aplicada pelo JavaScript. O respiro no `body` garante que ela
   nunca cubra o fim do conteúdo.
   ============================================================= */
.wa-bar{display:none}

@media (max-width:860px){
  .wa-bar{
    display:block;
    position:fixed; z-index:115;
    left:0; right:0; bottom:0;
    padding:10px max(12px,env(safe-area-inset-right))
            calc(10px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));
    background:linear-gradient(0deg, rgba(4,15,39,.92) 55%, rgba(4,15,39,0));
    transform:translateY(120%);
    transition:transform .42s var(--ease-glass);
    pointer-events:none;
  }
  .wa-bar.is-on{transform:none; pointer-events:auto}
  .wa-bar__btn{--btn-h:56px; width:100%; font-size:1rem; font-weight:500}

  /* espaço para a barra não tapar o rodapé */
  body{padding-bottom:80px}

  /* no mobile a barra substitui o botão redondo — dois CTAs verdes
     na mesma tela só disputam atenção */
  .wa-float{display:none}
}

/* ---------- área de toque e legibilidade no mobile ---------- */
@media (max-width:760px){
  .btn{--btn-h:56px}
  .btn--lg{--btn-h:58px}
  .btn--sec{--btn-h:52px}
  .hero__actions{gap:12px}
  .hero__trust{
    line-height:1.9; letter-spacing:.08em;
    margin-top:clamp(18px,2.2vw,24px);
  }
  .hero__trust i{margin-inline:6px}
  .tags li{font-size:.9rem; padding:9px 15px}
  .atuacao__cta{flex-direction:column; align-items:stretch}
  .atuacao__cta .btn{width:100%}
  .escritorio__cta,.avaliacoes__cta .btn,.contato__wa{width:100%}
  .form__row{grid-template-columns:1fr}
}

@media (max-width:420px){
  .btn{padding-inline:18px; font-size:.94rem}
}

/* ---------- alvos de toque do carrossel ----------
   As setas e os pontos eram menores que o mínimo confortável para o
   dedo (44px). A área clicável cresce por pseudo-elemento; o desenho
   continua do mesmo tamanho. */
.socios__arrow{width:44px; height:44px}
.socios__dot{position:relative}
.socios__dot::after{
  content:""; position:absolute;
  left:50%; top:50%; transform:translate(-50%,-50%);
  width:44px; height:44px;
}

/* a linha de confiança do hero é para ser lida, não é legenda */
@media (max-width:760px){
  .hero__trust{font-size:.8rem}
  .field--check label{font-size:.88rem}
}

/* ---------- primeira dobra no mobile ----------
   O objetivo é o CTA aparecer sem rolagem, com folga. Título um degrau
   menor, subtítulo mais compacto e a linha de confiança em caixa normal
   (em versalete ela ocupava três linhas e pesava mais que o botão). */
@media (max-width:760px){
  .hero__title{font-size:clamp(1.78rem,1.1rem + 3.5vw,2.6rem)}
  .hero__sub{font-size:1.02rem; line-height:1.45}
  .hero__lead{margin-bottom:clamp(22px,3vw,28px)}
  .hero__trust{
    text-transform:none;
    letter-spacing:0;
    font-weight:400;
    font-size:.82rem;
    line-height:1.6;
    color:rgba(206,215,236,.72);
  }
}

/* ---------- frase de qualificação do hero ----------
   Deixa explícito, sem alarde, que o atendimento é empresarial. Serve para o
   visitante certo se reconhecer e para o visitante errado perceber cedo que a
   página não é para o caso dele. */
.hero__filtro{
  margin:clamp(14px,1.8vw,20px) 0 0;
  padding-left:clamp(12px,1.4vw,16px);
  border-left:1px solid rgba(214,193,131,.45);
  max-width:56ch;
  font-size:.82rem; font-weight:300; line-height:1.6;
  color:rgba(180,193,219,.8);
}
@media (max-width:760px){
  .hero__filtro{font-size:.8rem; max-width:none}
}

/* fotos aplicadas */
:root{
  --img-hero:url('assets/images/hero-trabalhadora.webp');
  /* --img-atuacao não é usada nesta estrutura: a seção de situações
     virou cartões, sem foto lateral. Fica `none` para não carregar
     uma imagem que ninguém vê. */
  --img-equipe:url('assets/images/equipe.webp');
  --img-socio-1:url('assets/images/socio-1-ronaldo.webp');
  --img-socio-2:url('assets/images/socio-2-leila.webp');
  --img-socio-3:url('assets/images/socio-3-jessica.webp');
}


/* =============================================================
   Copy nova — componentes de apoio (setembro/2026)
   -------------------------------------------------------------
   Nenhuma cor, fonte ou medida nova: tudo sai dos tokens que já
   existem. São só arranjos para o texto novo caber no desenho.
   ============================================================= */

/* ---------- lista curta de situações, em papel ----------
   O mesmo filete dourado da lista de contato, aplicado às frases
   curtas ("Um cliente para de pagar."). */
.lista-simples{
  display:grid; gap:11px;
  margin:clamp(18px,2.2vw,26px) 0;
}
.lista-simples li{
  position:relative;
  padding-left:26px;
  font-size:var(--fs-body); font-weight:300; line-height:1.6;
  color:var(--ink-soft);
}
.lista-simples li::before{
  content:""; position:absolute; left:0; top:.68em;
  width:13px; height:1px; background:var(--gold);
}
.section--deep .lista-simples li{color:var(--light-soft)}

/* ---------- frase de destaque dentro do corpo ----------
   Um degrau acima do texto, um degrau abaixo do título. */
.destaque{
  margin:clamp(20px,2.4vw,28px) 0;
  font-family:"Kanit",system-ui,sans-serif;
  font-weight:300;
  font-size:clamp(1.12rem,.98rem + .78vw,1.55rem);
  line-height:1.4; letter-spacing:-.015em;
  color:var(--navy);
}
.section--deep .destaque{color:var(--white)}
.destaque--largo{
  margin:clamp(34px,4vw,52px) 0 0;
  padding-top:clamp(26px,3vw,36px);
  border-top:1px solid rgba(12,36,96,.14);
  font-size:clamp(1.24rem,1rem + 1.1vw,1.9rem);
  max-width:24ch;
}

/* ---------- CTA solto no fim de um bloco ---------- */
.bloco__cta{margin-top:clamp(30px,3.6vw,46px)}

/* ---------- seção "sem parar a empresa" ---------- */
.operacao__lista{
  max-width:64ch;
  margin-top:clamp(8px,1.4vw,16px);
}
.operacao__lista li{font-size:var(--fs-lead); font-weight:300}
.operacao__ponte{
  margin-top:clamp(28px,3.2vw,40px);
  color:var(--light-soft) !important;
}
.operacao__nota{
  margin-top:clamp(22px,2.6vw,32px);
  font-size:var(--fs-sm);
  color:rgba(163,178,209,.86) !important;
  max-width:56ch;
}

/* ---------- perguntas frequentes ----------
   <details> nativo, vestido com os mesmos filetes e o mesmo
   comportamento de abrir/fechar do bloco de situações. */
.faq__head{max-width:min(720px,100%); margin-bottom:clamp(34px,4vw,56px)}
.faq__lista{border-top:1px solid rgba(255,255,255,.13)}
.faq__item{border-bottom:1px solid rgba(255,255,255,.13)}
.faq__pergunta{
  display:flex; align-items:center; justify-content:space-between;
  gap:clamp(16px,2.4vw,32px);
  padding:clamp(20px,2.3vw,28px) 0;
  cursor:pointer; list-style:none;
  font-family:"Kanit",system-ui,sans-serif;
  font-weight:400;
  font-size:clamp(1.04rem,.94rem + .6vw,1.34rem);
  line-height:1.3; letter-spacing:-.018em;
  color:var(--white);
  transition:color .3s;
}
.faq__pergunta::-webkit-details-marker{display:none}
.faq__pergunta:hover{color:var(--gold-200)}
.faq__pergunta:focus-visible{outline:2px solid var(--gold-200); outline-offset:4px; border-radius:4px}
.faq__chev{
  position:relative; width:15px; height:15px; flex:none;
  opacity:.55; transition:opacity .35s;
}
.faq__chev::before,.faq__chev::after{
  content:""; position:absolute; background:var(--gold-200); border-radius:2px;
}
.faq__chev::before{left:0; top:7px; width:15px; height:1.5px}
.faq__chev::after{
  left:6.75px; top:0; width:1.5px; height:15px;
  transition:transform .4s var(--ease-glass);
}
.faq__item[open] .faq__chev{opacity:1}
.faq__item[open] .faq__chev::after{transform:scaleY(0)}
.faq__resposta{padding:0 0 clamp(20px,2.4vw,28px)}
.faq__resposta p{
  margin:0; max-width:64ch;
  font-weight:300; line-height:1.66;
  color:var(--light-soft);
}

/* ---------- nota abaixo do CTA final ---------- */
.fechamento__nota{
  margin:clamp(14px,1.8vw,20px) 0 0;
  font-size:var(--fs-xs);
  letter-spacing:.12em; text-transform:uppercase; font-weight:500;
  color:rgba(206,215,236,.72) !important;
}
.fechamento__nota i{font-style:normal; color:var(--gold); margin-inline:8px}

/* ---------- primeira dobra: três parágrafos em vez de um ----------
   O texto novo é mais longo. A escala cai um degrau para o CTA
   continuar aparecendo sem rolagem no celular. */
.hero__sub{margin-bottom:.7em}
.hero__sub--forte{color:var(--white); font-weight:400}
.hero__trust{text-transform:none; letter-spacing:0; font-weight:300; line-height:1.55}

@media (max-width:760px){
  .hero__title{font-size:clamp(1.9rem,1.2rem + 3.6vw,2.6rem)}
  p.answer-line{font-size:clamp(1.06rem,.96rem + .8vw,1.4rem); margin-bottom:.8em}
  .hero__sub{font-size:.98rem; line-height:1.45; margin-bottom:.6em}
  .hero__lead{margin-bottom:clamp(20px,2.6vw,26px)}
  .hero__trust{font-size:.8rem}
  .destaque--largo{max-width:none}
  .bloco__cta .btn{width:100%}
  .faq__pergunta{font-size:1.02rem}
}

/* a frase de destaque preenche o vão que sobrava abaixo do título
   quando a coluna de texto é mais longa que a do cabeçalho */
.col-title .destaque--largo{
  margin-top:clamp(28px,3.4vw,44px);
  padding-top:clamp(24px,2.8vw,34px);
  max-width:20ch;
}
@media (max-width:1180px){
  .col-title .destaque--largo{max-width:none}
}


/* =============================================================
   VERSÃO CURTA — 5 blocos (setembro/2026)
   Componentes novos e ajustes de layout. Nada acima foi removido:
   as regras das seções que saíram continuam no arquivo, inertes,
   caso você queira recuperar algum bloco depois.
   ============================================================= */

/* ---------- 2. Situações em cards ---------- */
.sit-grid{
  list-style:none; margin:0; padding:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(14px,1.6vw,22px);
}
.sit{
  position:relative;
  padding:clamp(24px,2.6vw,34px);
  border-radius:var(--r-md);
  background:var(--white);
  border:1px solid rgba(12,36,96,.08);
  box-shadow:0 24px 44px -36px rgba(4,15,39,.34);
  transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .45s;
}
.sit::before{
  content:""; position:absolute; top:0; left:clamp(24px,2.6vw,34px);
  width:28px; height:2px;
  background:linear-gradient(90deg,var(--gold),rgba(188,165,100,0));
}
.sit:hover{
  transform:translateY(-3px);
  border-color:rgba(188,165,100,.5);
  box-shadow:0 34px 56px -34px rgba(4,15,39,.42);
}
.sit__nome{
  margin:0 0 10px;
  font-family:"Kanit",system-ui,sans-serif;
  font-weight:500;
  font-size:clamp(1.04rem,.98rem + .3vw,1.2rem);
  line-height:1.25; letter-spacing:-.012em;
  color:var(--navy);
}
.sit__txt{margin:0; color:var(--ink-soft); font-size:var(--fs-sm); line-height:1.6}

.sit-nota{margin:clamp(28px,3.2vw,42px) 0 0; text-align:center}
.sit-link{
  display:inline-flex; align-items:center; gap:11px;
  font-size:var(--fs-sm); font-weight:600; color:var(--navy);
  padding-bottom:6px;
  border-bottom:1px solid rgba(12,36,96,.2);
  transition:color .3s, border-color .3s;
}
.sit-link:hover{color:var(--gold-700); border-color:var(--gold)}
.sit-link svg{flex:none}

@media (max-width:1080px){
  .sit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .sit-grid{grid-template-columns:1fr; gap:12px}
  .sit{padding:20px 22px}
}

/* ---------- 3. Nem tudo precisa virar processo ---------- */
.caminhos--escuro{position:relative; overflow:hidden}
.caminhos__inner{
  position:relative; z-index:3;
  max-width:60ch; margin-inline:auto;
  text-align:center;
}
.caminhos__inner .eyebrow{justify-content:center}
.caminhos__inner .eyebrow__rule{width:clamp(22px,3vw,40px)}
.caminhos__txt{
  margin:clamp(14px,1.8vw,22px) auto 0;
  font-size:var(--fs-lead);
  max-width:56ch;
}
.caminhos__inner .destaque{
  margin:clamp(30px,3.4vw,44px) auto 0;
  padding-top:clamp(26px,3vw,36px);
  border-top:1px solid rgba(255,255,255,.14);
  font-size:clamp(1.2rem,1rem + 1vw,1.8rem);
  max-width:min(560px,100%);
  text-wrap:balance;
}
.caminhos__inner .bloco__cta{display:flex; justify-content:center}

/* ---------- 4. Selo do Google dentro do bloco do escritório ---------- */
.escritorio__text .gscore{
  margin-top:clamp(28px,3.2vw,40px);
  flex-wrap:wrap;
  width:max-content; max-width:100%;
  background:
    radial-gradient(140% 130% at var(--gx,26%) var(--gy,0%),
      rgba(255,255,255,.14), rgba(255,255,255,.04) 42%, rgba(255,255,255,.015) 74%),
    linear-gradient(155deg,var(--navy-800),var(--navy-900) 65%,var(--navy-950));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.2),
    0 26px 50px -34px rgba(4,15,39,.55);
}
@media (max-width:420px){
  .escritorio__text .gscore__link{
    margin-left:0; padding-left:0; border-left:0;
    width:100%; padding-top:10px;
    border-top:1px solid rgba(255,255,255,.14);
  }
}

/* ---------- 5. CTA final + contato, sobre a foto da equipe ---------- */
.contato--escuro{position:relative; overflow:hidden}
.contato__bg{position:absolute; inset:0; z-index:0; overflow:hidden}
.contato__bg .ph{
  inset:-10% 0;
  opacity:.2; filter:saturate(.5) brightness(.6);
  will-change:transform;
}
.contato--escuro > .wrap{position:relative; z-index:4}
.contato--escuro .contato__aside p{color:rgba(224,231,246,.84)}
.contato__lead{font-size:var(--fs-lead); max-width:42ch}
.contato__wa{margin-top:clamp(26px,3vw,36px)}
.contato--escuro .contato__nota{
  margin:clamp(16px,2vw,22px) 0 0;
  font-size:var(--fs-xs) !important;
  letter-spacing:.12em; text-transform:uppercase; font-weight:500;
  color:rgba(206,215,236,.72) !important;
}
.contato--escuro .contato__nota i{font-style:normal; color:var(--gold); margin-inline:8px}

/* ---------- respiro geral: a página ficou curta, o ritmo pode abrir ---------- */
.atuacao__head{max-width:min(760px,100%)}
.atuacao__head .h2{text-wrap:balance}

@media (max-width:860px){
  .contato__wa{width:100%}
}


/* =============================================================
   REESTRUTURAÇÃO EM 5 BLOCOS (setembro/2026)
   Hero · Por que procurar ajuda · Situações · Escritório · Contato
   Fundos alternados: escuro, claro, escuro, claro, escuro.
   ============================================================= */

/* ---------- bloco "por que procurar ajuda" sobre papel ---------- */
.section--paper .caminhos__inner .destaque{border-top-color:rgba(12,36,96,.14)}
.caminhos__inner .caminhos__txt b{color:var(--navy); font-weight:500}
.section--deep .caminhos__inner .caminhos__txt b{color:var(--white); font-weight:400}

/* ---------- cards de situação sobre fundo escuro ---------- */
.section--deep .sit{
  background:
    linear-gradient(155deg,
      rgba(255,255,255,.085) 0%, rgba(255,255,255,.028) 55%, rgba(188,165,100,.06) 100%);
  border-color:rgba(255,255,255,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14), 0 26px 48px -36px rgba(2,9,23,.8);
}
.section--deep .sit:hover{
  border-color:rgba(214,193,131,.5);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 34px 58px -34px rgba(2,9,23,.9);
}
.section--deep .sit__nome{color:var(--white)}
.section--deep .sit__txt{color:var(--light-soft)}

/* o sétimo card é o "não sei onde se encaixa": ocupa a linha inteira */
.sit--larga{grid-column:1 / -1}
.sit--larga .sit__txt{max-width:56ch}
.section--deep .sit--larga{
  background:
    linear-gradient(120deg,
      rgba(188,165,100,.16) 0%, rgba(255,255,255,.04) 45%, rgba(255,255,255,.02) 100%);
  border-color:rgba(214,193,131,.3);
}

.sit-cta{margin-top:clamp(30px,3.6vw,46px); display:flex; justify-content:center}

/* ---------- a seção de situações herda o respiro das seções escuras ---------- */
.section--deep .atuacao__head{margin-bottom:clamp(36px,4.4vw,64px)}
.atuacao{position:relative; overflow:hidden}
.atuacao > .wrap{position:relative; z-index:3}

@media (max-width:860px){
  .sit-cta .btn{width:100%}
}

/* o card largo vira uma faixa: título e texto lado a lado, sem sobra vertical */
@media (min-width:900px){
  .sit--larga{
    display:grid;
    grid-template-columns:minmax(0,.4fr) minmax(0,1fr);
    align-items:center;
    gap:clamp(20px,3vw,44px);
    padding-block:clamp(20px,2.2vw,28px);
  }
  .sit--larga .sit__nome{margin:0}
}
/* sobre fundo escuro o filete dourado do topo precisa de mais luz */
.section--deep .sit::before{
  background:linear-gradient(90deg,var(--gold-200),rgba(214,193,131,0));
}


/* =============================================================
   ESTRUTURA NOVA (setembro/2026)
   Hero · Por quê · Situações · Avaliações · Escritório · Contato
   Sem eyebrows: os títulos carregam a hierarquia sozinhos.
   ============================================================= */

/* ---------- hero sem a linha de apoio no topo ---------- */
.hero__col--limpo .hero__title{margin-top:0}
.hero__col--limpo .hero__lead{margin-top:clamp(18px,2.4vw,30px)}

/* ---------- 2. carrossel de motivos ---------- */
.beneficios__head{
  max-width:min(980px,100%);
  margin:0 auto clamp(32px,4vw,52px);
  text-align:center;
}
.beneficios__head .h2{text-wrap:balance}

.rail{--fade:clamp(16px,6vw,110px); position:relative}
.rail__track{
  list-style:none; margin:0;
  padding:6px var(--fade) clamp(6px,1vw,10px);
  display:flex; gap:clamp(14px,1.8vw,24px);
  overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  scrollbar-width:none; -ms-overflow-style:none;
}
.rail__track::-webkit-scrollbar{display:none}

.benef{
  flex:0 0 auto;
  scroll-snap-align:center;
  width:clamp(215px,26vw,286px);
  min-height:clamp(215px,26vw,286px);
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:clamp(20px,2.4vw,30px);
  padding:clamp(22px,2.6vw,34px);
  border-radius:var(--r-lg);
  background:var(--white);
  border:1px solid rgba(188,165,100,.5);
  box-shadow:0 22px 44px -38px rgba(4,15,39,.3);
  transition:transform .45s var(--ease), border-color .45s, box-shadow .45s var(--ease);
}
.benef:hover{
  transform:translateY(-3px);
  border-color:var(--gold);
  box-shadow:0 30px 54px -34px rgba(4,15,39,.38);
}
.benef__icone{display:grid; place-items:center; color:var(--gold); width:clamp(46px,4.6vw,60px)}
.benef__icone svg{width:100%; height:auto; display:block}
.benef__txt{
  margin:0; text-align:center;
  color:var(--ink); font-size:var(--fs-body); line-height:1.45;
}

.rail__dots{display:flex; justify-content:center; gap:2px; margin-top:clamp(6px,1vw,12px)}
.rail__dot{
  width:30px; height:44px; padding:0; border:0; background:none; cursor:pointer;
  display:grid; place-items:center;
}
.rail__dot::before{
  content:""; width:9px; height:9px; border-radius:50%;
  background:rgba(188,165,100,.35);
  transition:background .3s, transform .3s var(--ease);
}
.rail__dot.is-active::before{background:var(--gold); transform:scale(1.25)}
.rail__dot:focus-visible{outline:2px solid var(--gold); outline-offset:2px; border-radius:50%}

.bloco__cta--centro{display:flex; justify-content:center}

/* ---------- 3. situações: subtítulo sobre fundo escuro ---------- */
.atuacao__intro--light{color:var(--light-soft) !important; max-width:46ch}
.section--deep .atuacao__head{max-width:min(820px,100%)}

/* ---------- 5. escritório: CTA logo abaixo do texto ---------- */
.escritorio__text .bloco__cta{margin-top:clamp(26px,3vw,38px)}

@media (max-width:860px){
  .bloco__cta--centro .btn,
  .escritorio__text .bloco__cta .btn{width:100%}
  .benef{width:min(78vw,300px); min-height:auto; padding:26px 22px}
}

/* as bordas do trilho somem em degradê: mostra que há mais cartões ao lado */
@media (min-width:760px){
  .rail__track{
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--fade),
                       #000 calc(100% - var(--fade)),transparent 100%);
            mask-image:linear-gradient(90deg,transparent 0,#000 var(--fade),
                       #000 calc(100% - var(--fade)),transparent 100%);
  }
}


/* =============================================================
   AJUSTES — setembro/2026
   Esteira contínua, hero maior e escritório lado a lado.
   ============================================================= */

/* ---------- 1. Hero: o texto pode respirar mais alto ----------
   A primeira dobra ficou com pouca copy, então a escala sobe de
   novo. As regras são mais específicas de propósito, para passar
   por cima da redução que existia quando o hero tinha 3 parágrafos. */
.hero__col--limpo .hero__title{
  font-size:clamp(2.45rem, 1.05rem + 4.25vw, 4.9rem);
  letter-spacing:-.03em;
}
.hero__col--limpo .hero__sub{
  font-size:clamp(1.08rem, .98rem + .62vw, 1.46rem);
  line-height:1.5;
}
.hero__col--limpo .hero__trust{font-size:clamp(.84rem,.8rem + .2vw,1rem)}

@media (max-width:760px){
  .hero__col--limpo .hero__title{font-size:clamp(2.15rem,1.2rem + 4.8vw,3.15rem)}
  .hero__col--limpo .hero__sub{font-size:1.07rem; line-height:1.5}
  .hero__col--limpo .hero__trust{font-size:.86rem}
}

/* ---------- 2. Esteira contínua de motivos ----------
   Os cinco cartões aparecem duplicados no HTML: a faixa desliza
   metade da própria largura e recomeça, sem emenda visível.
   Passar o mouse (ou dar foco pelo teclado) pausa o movimento. */
.esteira{
  --fade:clamp(16px,6vw,120px);
  --vao:clamp(14px,1.8vw,24px);
  position:relative;
  overflow:hidden;
  padding-block:8px 12px;
}
.esteira__faixa{
  list-style:none; margin:0; padding:0;
  display:flex; width:max-content;
  gap:var(--vao);
  animation:esteiraRolar 48s linear infinite;
  will-change:transform;
}
@keyframes esteiraRolar{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(calc(-50% - (var(--vao) / 2)),0,0)}
}
.esteira:hover .esteira__faixa,
.esteira:focus-within .esteira__faixa{animation-play-state:paused}

@media (min-width:760px){
  .esteira{
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--fade),
                       #000 calc(100% - var(--fade)),transparent 100%);
            mask-image:linear-gradient(90deg,transparent 0,#000 var(--fade),
                       #000 calc(100% - var(--fade)),transparent 100%);
  }
}

/* quem pede menos movimento vê a faixa parada e pode arrastar */
@media (prefers-reduced-motion: reduce){
  .esteira{overflow-x:auto; scrollbar-width:none}
  .esteira::-webkit-scrollbar{display:none}
  .esteira__faixa{animation:none}
}

/* ---------- 3. Escritório: foto e texto lado a lado ----------
   Antes a coluna dupla caía para uma só já em 1024px, o que
   empurrava o texto para baixo da foto em telas de notebook. */
@media (min-width:861px){
  .escritorio__grid{
    grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);
    gap:clamp(30px,3.6vw,84px);
    align-items:center;
  }
  .escritorio__text p{max-width:46ch}
}

/* ---------- esteira: também dá para empurrar na mão ----------
   `esteira--manual` só entra quando o JavaScript assume: aí o
   trilho passa a rolar de verdade (dedo, roda, arrasto e setas)
   sem que a barra de rolagem apareça. */
.esteira--manual{
  overflow-x:auto; overflow-y:hidden;
  scrollbar-width:none; -ms-overflow-style:none;
  -webkit-overflow-scrolling:touch;
  cursor:grab;
}
.esteira--manual::-webkit-scrollbar{display:none}
.esteira--manual.is-arrastando{cursor:grabbing}
.esteira--manual.is-arrastando .benef{pointer-events:none}

.esteira__nav{
  display:flex; align-items:center; justify-content:center;
  gap:14px; margin-top:clamp(16px,1.8vw,24px);
}
.esteira__nav[hidden]{display:none}

/* ---------- foto do hero desta página ----------
   A imagem é deitada (16:9) e o espaço do hero é em pé, então a foto
   ganhou uma faixa de céu esticada no topo: é ela que dá ar acima do
   capacete em vez de cortar a cabeça. O enquadramento abaixo já conta
   com essa faixa. */
.hero__figure .ph{background-position:48% 62%}
@media (max-width:1024px){
  .hero__figure .ph{background-position:52% 58%}
}
