:root {
  /* ============================================================
     VZ CONNECT — Preto dominante
     Preto:      #0a0a0a — base visual / fundo principal (atualizado para fosco)
     Off-white:  #E5E6E7 — textos principais e botões
     Cinza:      #A6A8AA — textos secundários e bordas
     Verde:      #0E352D — cor de DESTAQUE (texto e elementos)
     ============================================================ */

  /* Cores principais */
  --black: #0a0a0a;
  --black-pure: #000000;
  --off: #E5E6E7;
  --gray: #A6A8AA;
  --green: #0E352D;

  /* Verde para TEXTO de destaque (clareado p/ contraste no preto) */
  --green-text: #2E8A74;
  --green-text-soft: #267A66;

  /* Superfícies escuras */
  --ink: #070706;
  --black-deep: #050505;
  --black-soft: #050505;
  --black-card: #20201E;
  --charcoal: #0a0a09;
  --charcoal-2: #0c0c0b;
  --graphite: #030303;

  /* Off-white */
  --off-dim: rgba(229,230,231,.82);
  --off-muted: rgba(229,230,231,.62);
  --off-soft: rgba(229,230,231,.10);

  /* Cinza */
  --gray-light: #BFC1C2;
  --gray-dim: rgba(166,168,170,.74);
  --gray-soft: rgba(166,168,170,.16);
  --label: rgba(166,168,170,.70);

  /* Verde — elementos e detalhes */
  --green-deep: #08251F;
  --green-soft: rgba(14,53,45,.72);
  --green-line: rgba(46,138,116,.55);
  --green-glow: rgba(46,138,116,.22);
  --green-wash: rgba(46,138,116,.14);

  /* Compatibilidade — destaques agora apontam p/ VERDE */
  --sage: #2E8A74;
  --sage-light: #3DA98E;
  --sage-soft: rgba(46,138,116,.50);
  --silver: #E5E6E7;
  --silver-2: #A6A8AA;

  /* Linhas */
  --line: rgba(229,230,231,.14);
  --line-soft: rgba(229,230,231,.07);
  --line-strong: rgba(229,230,231,.26);

  /* Tipografia */
  --display: 'Tenor Sans', Georgia, 'Times New Roman', serif;
  --body: 'Inter', system-ui, sans-serif;

  /* Layout */
  --maxw: 1280px;
  --gutter: clamp(22px, 5.5vw, 96px);

  /* Movimento */
  --ease: cubic-bezier(.19,1,.22,1);
  --ease-soft: cubic-bezier(.33,1,.68,1);
}

/* ============ RESET ============ */
*
{
  margin:0;
  padding:0;
  box-sizing:border-box
}

html
{
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  scroll-behavior:smooth;
  scroll-padding-top:24px;
}

@media (prefers-reduced-motion:reduce)
{
  html
  {
    scroll-behavior:auto
  }
}

body{
  font-family:var(--body);
  background:var(--black);
  color:var(--off);
  line-height:1.6;
  overflow-x:clip;
}

@media (max-width:900px)
{
  body
  {
    cursor:auto
  }

}

img
{
  max-width:100%;
  display:block
}

a
{
  color:inherit;
  text-decoration:none
}

button
{
  font-family:inherit;
  border:none;
  background:none;
  color:inherit
}

@media (max-width:900px)
{
  button
  {
    cursor:pointer
  }

}

ul
{
  list-style:none
}

::selection
{
  background:var(--off);
  color:var(--black)
}

/* grão global sobre tudo */
body::after
{
  content:"";
  position:fixed;
  inset:0;
  z-index:9000;
  pointer-events:none;
  opacity:.035;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ============ CURSOR CUSTOMIZADO ============ */
.cursor-dot,
.cursor-ring
{
  position:fixed;
  top:0;
  left:0;
  z-index:9999;
  pointer-events:none;
  border-radius:50%;
  mix-blend-mode:difference;
}

.cursor-dot
{
  width:6px;
  height:6px;
  background:var(--off);
  transform:translate(-50%,-50%)
}

.cursor-ring
{
  width:38px;
  height:38px;
  border:1px solid rgba(229,230,231,.55);
  transform:translate(-50%,-50%);
  transition:width .3s var(--ease),height .3s var(--ease),background .3s,border-color .3s;
}

.cursor-ring.hover
{
  width:64px;
  height:64px;
  background:rgba(229,230,231,.12);
  border-color:transparent
}

@media (max-width:900px)
{
  .cursor-dot,
  .cursor-ring
  {
    display:none
  }

}

/* ============ HELPERS ============ */
.wrap
{
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 var(--gutter)
}

.display
{
  font-family:var(--display)
}

.eyebrow
{
  display:inline-flex;
  align-items:center;
  gap:11px;
  font-size:11px;
  letter-spacing:.3em;
  font-weight:500;
  color:var(--sage);
  text-transform:uppercase;
}

.eyebrow .ln
{
  width:32px;
  height:1px;
  background:var(--green-line);
  display:inline-block
}

.eyebrow .num
{
  color:var(--gray-dim);
  font-family:var(--display);
  letter-spacing:.1em
}

.section
{
  position:relative;
  padding:clamp(90px,13vh,170px) 0
}

.bg-black
{
  background:var(--black)
}

.bg-green{
  background:var(--black);
}

.bg-deep{
  background:var(--black-deep);
}

.bg-ink
{
  background:var(--ink)
}

/* títulos com escala dramática */
.s-title
{
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(27px,3.6vw,46px);
  line-height:1.08;
  letter-spacing:-.004em;
  color:var(--off);
}

.s-title .g
{
  color:var(--green-text)
}

.s-title em
{
  font-style:italic;
  color:var(--green-text);
  font-family:Georgia,serif
}

.lead
{
  font-size:clamp(15px,1.5vw,17px);
  line-height:1.7;
  color:var(--off-dim)
}

.lead strong
{
  color:var(--off);
  font-weight:500
}

/* ============ ANIMAÇÕES DE TEXTO ============ */

/* mask reveal por linha */
.line-mask
{
  display:block;
  overflow: visible;
}

.line-mask > span
{
  display:block;
  transform:translateY(110%);
  transition:transform 1s var(--ease);
}

.in .line-mask > span
{
  transform:translateY(0)
}

.in .line-mask:nth-child(2) > span
{
  transition-delay:.08s
}

.in .line-mask:nth-child(3) > span
{
  transition-delay:.16s
}

.in .line-mask:nth-child(4) > span
{
  transition-delay:.24s
}

/* word stagger */
.word
{
  display:inline-block;
  overflow:hidden;
  vertical-align:top
}

.word > span
{
  display:inline-block;
  transform:translateY(110%);
  transition:transform .9s var(--ease)
}

.in .word > span
{
  transform:translateY(0)
}

/* fade up genérico */
.fx
{
  opacity:0;
  transform:translateY(34px);
  transition:opacity 1s var(--ease),transform 1s var(--ease)
}

.in.fx,
.in .fx
{
  opacity:1;
  transform:none
}

.fx.d1
{
  transition-delay:.1s
}

.fx.d2
{
  transition-delay:.2s
}

.fx.d3
{
  transition-delay:.3s
}

.fx.d4
{
  transition-delay:.4s
}

.fx.d5
{
  transition-delay:.5s
}

/* clip reveal para imagens */
.img-reveal
{
  overflow:hidden;
  position:relative
}

.img-reveal img,
.img-reveal .ph
{
  transform:scale(1.18);
  transition:transform 1.4s var(--ease);
}

.in .img-reveal img,
.in .img-reveal .ph
{
  transform:scale(1)
}

.img-reveal::after
{
  content:"";
  position:absolute;
  inset:0;
  background:var(--black);
  transform:scaleY(1);
  transform-origin:bottom;
  transition:transform 1.1s var(--ease);
  z-index:2;
}

.in .img-reveal::after
{
  transform:scaleY(0)
}

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

  .line-mask>span,
  .word>span
  {
    transform:none
  }

  .fx
  {
    opacity:1;
    transform:none
  }

  .img-reveal img,
  .img-reveal .ph
  {
    transform:none
  }

  .img-reveal::after
  {
    display:none
  }

}

/* ============ NAV ============ */
/* ============ NAV (rola com a página) ============ */
nav {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  padding: 26px 0;
  background: transparent;
}




.nav-inner
{
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 var(--gutter);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px
}

.nav-brand
{
  display:flex;
  align-items:center;
  gap:13px
}

.nav-brand .brand-logo
{
  height:26px;
  width:auto;
  display:block;
  filter:invert(1) brightness(.9)
}

.nav-center
{
  display:flex;
  gap:4px
}

.nav-center a
{
  position:relative;
  font-size:13px;
  letter-spacing:.04em;
  color:var(--off-dim);
  padding:8px 16px;
  transition:color .3s;
}

.nav-center a::after
{
  content:"";
  position:absolute;
  left:16px;
  right:16px;
  bottom:4px;
  height:1px;
  background:var(--green-text);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .4s var(--ease);
}

.nav-center a:hover
{
  color:var(--off)
}

.nav-center a:hover::after
{
  transform:scaleX(1);
  transform-origin:left
}

.nav-cta
{
  display:inline-flex;
  align-items:center;
  gap:9px;
  font-size:13px;
  letter-spacing:.03em;
  color:var(--off);
  padding:11px 22px;
  border:1px solid var(--line-strong);
  border-radius:100px;
  position:relative;
  overflow:hidden;
  transition:color .4s var(--ease),border-color .4s;
}

.nav-cta span
{
  position:relative;
  z-index:2
}

.nav-cta .arr
{
  position:relative;
  z-index:2;
  width:15px;
  height:15px;
  transition:transform .4s var(--ease)
}

.nav-cta::before
{
  content:"";
  position:absolute;
  inset:0;
  background:var(--off);
  border-radius:100px;
  transform:translateY(101%);
  transition:transform .5s var(--ease);
  z-index:1;
}

.nav-cta:hover
{
  color:var(--ink);
  border-color:var(--off)
}

.nav-cta:hover::before
{
  transform:translateY(0)
}

.nav-cta:hover .arr
{
  transform:translate(3px,-3px)
}

.nav-right
{
  display:flex;
  align-items:center;
  gap:20px
}

.nav-social
{
  display:flex;
  align-items:center;
  gap:14px
}

.nav-social a
{
  color:var(--off-muted);
  transition:color .35s var(--ease)
}

.nav-social a:hover
{
  color:var(--off)
}

.nav-social a svg
{
  width:18px;
  height:18px;
  display:block
}

.nav-toggle
{
  display:none;
  color:var(--off)
}

/* mobile menu */
.menu-overlay
{
  position:fixed;
  inset:0;
  z-index:99;
  background:var(--ink);
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:0 var(--gutter);
  clip-path:circle(0% at calc(100% - 44px) 44px);
  transition:clip-path .7s var(--ease);
}

.menu-overlay.open
{
  clip-path:circle(150% at calc(100% - 44px) 44px)
}

.menu-overlay a
{
  font-family:var(--display);
  font-size:clamp(30px,7vw,46px);
  color:var(--off);
  padding:10px 0;
  letter-spacing:.01em;
  opacity:0;
  transform:translateY(20px);
  transition:opacity .5s var(--ease),transform .5s var(--ease),color .3s;
}

.menu-overlay.open a
{
  opacity:1;
  transform:none
}

.menu-overlay.open a:nth-child(1)
{
  transition-delay:.18s
}

.menu-overlay.open a:nth-child(2)
{
  transition-delay:.24s
}

.menu-overlay.open a:nth-child(3)
{
  transition-delay:.3s
}

.menu-overlay.open a:nth-child(4)
{
  transition-delay:.36s
}

.menu-overlay.open a:nth-child(5)
{
  transition-delay:.42s
}

.menu-overlay a:hover
{
  color:var(--green-text)
}

.menu-foot
{
  position:absolute;
  bottom:40px;
  left:var(--gutter);
  right:var(--gutter);
  display:flex;
  justify-content:space-between;
  font-size:13px;
  color:var(--gray);
  opacity:0;
  transition:opacity .5s .5s
}

.menu-overlay.open .menu-foot
{
  opacity:1
}

/* ============ HERO ============ */
.hero
{
  position:relative;
  min-height:100vh;
  min-height:100svh;
  display:flex;
  align-items:center;
  padding:90px 0 60px;
  overflow:hidden;
}

.hero-bg{
  position:absolute;
  inset:0;
  z-index:0;
  background:var(--ink);
}

.hero-noise-grid{
  position:absolute;
  inset:0;
  z-index:0;
  opacity:.16;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(229,230,231,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(229,230,231,.045) 1px, transparent 1px);
  background-size:clamp(48px,7vw,90px) clamp(48px,7vw,90px);
  -webkit-mask-image:radial-gradient(80% 70% at 50% 45%, #000, transparent);
  mask-image:radial-gradient(80% 70% at 50% 45%, #000, transparent);
}

/* símbolo gigante que faz parallax — agora em VERDE de destaque */
.hero-sym{
  position:absolute;
  right:-8%;
  top:46%;
  z-index:0;
  width:min(64vw,780px);
  color:var(--green);
  opacity:.20;
  transform:translateY(-50%);
  will-change:transform;
}

.hero-sym svg{
  width:100%;
  height:auto;
  filter:drop-shadow(0 0 46px rgba(0,0,0,.42));
}

.hero-inner
{
  position:relative;
  z-index:3;
  width:100%;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:clamp(30px,5vw,70px);
  align-items:center;
  padding-top:clamp(90px,12vh,120px)
}

.hero-left
{
  min-width:0
}

.badge{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:26px;
  font-size:11px;
  letter-spacing:.16em;
  color:var(--off-dim);
  text-transform:uppercase;
  border:1px solid var(--line);
  border-radius:100px;
  padding:8px 16px;
  background:rgba(0,0,0,.12);
}

.badge .pulse{
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--green-text);
  box-shadow:0 0 0 0 rgba(46,138,116,.35);
  animation:pulse 2.8s infinite;
}

@keyframes pulse {
  0%
  {
    box-shadow:0 0 0 0 rgba(46,138,116,.42);
  }

  70%
  {
    box-shadow:0 0 0 10px rgba(46,138,116,0);
  }

  100%
  {
    box-shadow:0 0 0 0 rgba(46,138,116,0);
  }

}

.badge .ln
{
  width:30px;
  height:1px;
  background:var(--green-line)
}

h1.hero-title{
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(40px,5.4vw,74px);
  line-height:1.02;
  letter-spacing:-.018em;
  color:var(--off);
}

h1.hero-title .g
{
  color:var(--green-text)
}

h1.hero-title em
{
  font-style:italic;
  font-family:Georgia,serif;
  color:var(--green-text)
}

/* palavra rotativa */
.rotor-wrap
{
  display:inline-block;
  color:var(--green-text);
  font-style:italic;
  font-family:Georgia,serif;
  position:relative
}

.rotor
{
  display:inline-block;
  transition:opacity .4s var(--ease),transform .4s var(--ease)
}

.rotor.out
{
  opacity:0;
  transform:translateY(-40%)
}

.hero-left .sub{
  margin-top:24px;
  max-width:50ch;
  font-size:clamp(15px,1.45vw,17px);
  color:var(--gray-light);
  line-height:1.75;
}

.hero-left .sub strong
{
  color:var(--off);
  font-weight:500
}

.hero-actions
{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:32px
}

/* mini-stats do hero */
.hero-stats{
  display:flex;
  align-items:center;
  gap:clamp(16px,2.5vw,30px);
  margin-top:42px;
  padding-top:30px;
  border-top:1px solid rgba(229,230,231,.18);
}

.hero-stats .hs-n{
  font-family:var(--display);
  font-size:clamp(24px,3vw,34px);
  color:var(--off);
  line-height:1;
}

.hero-stats .hs-l{
  font-size:11px;
  color:var(--gray);
  margin-top:6px;
  letter-spacing:.01em;
}

.hero-stats .hs-div
{
  width:1px;
  height:38px;
  background:var(--line)
}

/* card de destaque à direita */
.hero-right
{
  position:relative
}

.hero-card{
  position:relative;
  background:
    linear-gradient(165deg, #232321 0%, #171716 58%, var(--black) 100%);
  border:1px solid rgba(229,230,231,.28);
  border-radius:18px;
  padding:26px;
  overflow:hidden;
  box-shadow:
    0 34px 90px rgba(0,0,0,.62),
    inset 0 1px 0 rgba(229,230,231,.045);
}

.hc-sym{
  position:absolute;
  right:-30%;
  bottom:-25%;
  width:90%;
  color:var(--green);
  opacity:.30;
  z-index:0;
}

.hc-sym svg{
  width:100%;
  height:auto;
  filter:
    drop-shadow(0 0 1px rgba(229,230,231,.08))
    drop-shadow(0 0 20px rgba(0,0,0,.28));
}

.hc-glow{
  position:absolute;
  top:-40%;
  right:-20%;
  width:70%;
  height:70%;
  background:radial-gradient(circle, rgba(229,230,231,.055), transparent 70%);
  z-index:0;
}

.hero-card > *
{
  position:relative;
  z-index:1
}

.hc-top
{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:24px
}

.hc-tag
{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:11px;
  letter-spacing:.06em;
  color:var(--green-text);
  text-transform:uppercase
}

.hc-dot
{
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--green-text);
  animation:pulse 2.8s infinite;
}

.hc-handle
{
  font-size:12.5px;
  color:var(--gray)
}

/* fluxo de etapas (método) */
.hc-flow
{
  display:flex;
  flex-direction:column;
  margin-bottom:22px
}

.hc-step
{
  display:flex;
  align-items:center;
  gap:14px;
  position:relative
}

.hc-step-ic{
  width:44px;
  height:44px;
  border-radius:11px;
  flex:none;
  display:grid;
  place-items:center;
  background:var(--off);
  border:1px solid rgba(229,230,231,.45);
  color:var(--black);
  box-shadow:0 8px 20px rgba(0,0,0,.24);
}

.hc-step-ic svg
{
  width:21px;
  height:21px;
  color:var(--black);
}

.hc-step-tx
{
  flex:1;
  min-width:0
}

.hc-step-t{
  font-size:14.5px;
  color:var(--off);
  font-weight:600;
}

.hc-step-d{
  font-size:12px;
  color:var(--gray-light);
  margin-top:2px;
}

.hc-step-n{
  font-family:var(--display);
  font-size:14px;
  color:var(--gray-dim);
  flex:none;
}

.hc-line
{
  width:1px;
  height:18px;
  background:var(--green-line);
  margin-left:22px;
  opacity:.7
}

.hc-foot
{
  padding-top:20px;
  border-top:1px solid var(--line)
}

.hc-foot-single
{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  color:var(--green-text)
}

.hc-foot-single svg
{
  width:17px;
  height:17px;
  color:var(--green-text);
  flex:none
}

.btn
{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:11px;
  overflow:hidden;
  font-size:14px;
  letter-spacing:.02em;
  padding:16px 30px;
  border-radius:100px;
  transition:color .45s var(--ease),border-color .45s;
}

.btn span
{
  position:relative;
  z-index:2
}

.btn .arr
{
  position:relative;
  z-index:2;
  width:16px;
  height:16px;
  transition:transform .45s var(--ease)
}

.btn-primary{
  background:var(--off);
  color:var(--black);
  font-weight:600;
  border:1px solid var(--off);
}

.btn-primary::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--green);
  transform:translateY(101%);
  transition:transform .5s var(--ease);
  z-index:1;
}

.btn-primary:hover
{
  color:var(--off);
  border-color:var(--green);
}

.btn-primary:hover .arr
{
  transform:translate(4px,-4px)
}

.btn-ghost{
  color:var(--off);
  border:1px solid rgba(229,230,231,.34);
  background:rgba(229,230,231,.025);
}

.btn-ghost::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--off);
  transform:translateY(101%);
  transition:transform .5s var(--ease);
  z-index:1;
  border-radius:100px;
}

.btn-ghost:hover{
  color:var(--black);
  border-color:var(--off);
}

.btn-ghost:hover::before
{
  transform:translateY(0)
}

.btn-ghost:hover .arr
{
  transform:translateX(4px)
}

.scroll-hint
{
  position:absolute;
  bottom:30px;
  left:50%;
  transform:translateX(-50%);
  z-index:3;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  font-size:10px;
  letter-spacing:.25em;
  color:var(--gray);
  text-transform:uppercase;
}

.scroll-hint .bar
{
  width:1px;
  height:46px;
  background:linear-gradient(var(--green-text),transparent);
  position:relative;
  overflow:hidden
}

.scroll-hint .bar::after
{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:40%;
  background:var(--off);
  animation:scrolldn 2s var(--ease) infinite
}

@keyframes scrolldn {
  0%
  {
    transform:translateY(-100%)
  }

  100%
  {
    transform:translateY(280%)
  }

}

@media (max-width:900px)
{
  .scroll-hint
  {
    display:none
  }

}

/* ============ MARQUEE ============ */
.marquee
{
  background:var(--black);
  border-top:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
  padding:30px 0;
  overflow:hidden;
  position:relative
}

.marquee-track
{
  display:flex;
  width:max-content;
  animation:scroll 38s linear infinite
}

.marquee:hover .marquee-track
{
  animation-play-state:paused
}

.marquee-item
{
  display:flex;
  align-items:center;
  gap:34px;
  padding:0 34px;
  flex:none;
  font-family:var(--display);
  font-size:clamp(20px,2.4vw,30px);
  color:var(--off-dim);
  white-space:nowrap
}

.marquee-item .st
{
  width:18px;
  height:18px;
  color:var(--green-text);
  flex:none
}

@keyframes scroll {
  from
  {
    transform:translateX(0)
  }

  to
  {
    transform:translateX(-50%)
  }

}

/* ============ INTRO / MANIFESTO CURTO ============ */
.intro
{
  position:relative
}

.intro-text
{
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(21px,2.6vw,34px);
  line-height:1.32;
  letter-spacing:-.008em;
  color:var(--off);
  max-width:20ch;
}

.intro-text .dim
{
  color:var(--gray-dim)
}

.intro-text .g
{
  color:var(--green-text)
}

.intro-grid
{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:60px;
  align-items:center
}

.intro-meta
{
  display:flex;
  flex-direction:column;
  gap:24px;
  border-left:1px solid var(--line);
  padding-left:34px
}

.intro-meta .item .k
{
  font-family:var(--display);
  font-size:17px;
  color:var(--green-text);
  margin-bottom:7px
}

.intro-meta .item .v
{
  font-size:13.5px;
  color:var(--off-dim);
  line-height:1.55;
  max-width:34ch
}

/* ============ SERVIÇOS ============ */
.svc-head
{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:end;
  margin-bottom:clamp(40px,6vw,70px)
}

.svc-list
{
  border-top:1px solid var(--line)
}

.svc-item
{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:clamp(20px,4vw,60px);
  align-items:center;
  padding:clamp(26px,3.4vw,40px) 0;
  border-bottom:1px solid var(--line);
  position:relative;
  transition:padding-left .5s var(--ease);
}

.svc-item::before
{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:0;
  background:linear-gradient(90deg, var(--green-wash), transparent);
  transition:width .5s var(--ease);
  z-index:0;
}

.svc-item:hover
{
  padding-left:24px
}

.svc-item:hover::before
{
  width:100%
}

.svc-item > *
{
  position:relative;
  z-index:1
}

.svc-num
{
  font-family:var(--display);
  font-size:14px;
  color:var(--gray-dim);
  letter-spacing:.1em
}

.svc-name
{
  font-family:var(--display);
  font-size:clamp(19px,2.2vw,29px);
  color:var(--off-dim);
  line-height:1.12;
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  transition:color .4s;
}

.svc-item:hover .svc-name
{
  color:var(--off)
}

.svc-desc
{
  font-size:13.5px;
  line-height:1.65;
  color:var(--gray);
  max-width:42ch;
  justify-self:end
}

.tag-new
{
  font-size:9px;
  letter-spacing:.16em;
  font-weight:700;
  color:var(--off);
  background:var(--green);
  padding:4px 9px;
  border-radius:100px;
  text-transform:uppercase
}

.svc-arrow
{
  width:22px;
  height:22px;
  color:var(--gray-dim);
  transform:rotate(-45deg) scale(.7);
  opacity:0;
  transition:all .45s var(--ease)
}

.svc-item:hover .svc-arrow
{
  opacity:1;
  transform:rotate(0) scale(1);
  color:var(--green-text)
}

@media (max-width:860px)
{
  .svc-item
  {
    grid-template-columns:auto 1fr;
    gap:18px
  }

  .svc-desc
  {
    grid-column:1/-1;
    justify-self:start;
    padding-top:6px
  }

  .svc-arrow
  {
    display:none
  }

}

/* ============ STATS / NÚMEROS ============ */
.stats-wrap
{
  position:relative;
  overflow:hidden
}

.stats-head
{
  text-align:center;
  margin-bottom:clamp(46px,6vw,76px)
}

.stats-head .lead
{
  margin:0 auto;
  max-width:62ch
}

.stats-grid
{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  border-top:1px solid var(--line)
}

.stat
{
  padding:clamp(36px,4.4vw,58px) clamp(16px,2vw,30px);
  text-align:center;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  position:relative;
  overflow:hidden;
}

.stat:last-child
{
  border-right:none
}

.stat::before
{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 50% 120%,var(--green-glow),transparent 70%);
  opacity:0;
  transition:opacity .6s
}

.stat:hover::before
{
  opacity:1
}

.stat .n
{
  font-family:var(--display);
  font-size:clamp(38px,4.8vw,62px);
  line-height:.95;
  color:var(--off);
  position:relative
}

.stat .n .u
{
  color:var(--green-text);
  font-size:.5em;
  vertical-align:super;
  margin-left:1px
}

.stat .k
{
  font-size:10px;
  letter-spacing:.16em;
  color:var(--label);
  text-transform:uppercase;
  margin-top:18px;
  line-height:1.5;
  position:relative
}

.stats-foot
{
  text-align:center;
  margin-top:38px;
  font-size:15px;
  color:var(--off-dim)
}

.stats-foot strong
{
  color:var(--off);
  font-weight:500
}

@media (max-width:760px)
{
  .stats-grid
  {
    grid-template-columns:1fr 1fr
  }

  .stat:nth-child(2n)
  {
    border-right:none
  }

}

/* ============ CASES ============ */
.cases-head
{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:40px;
  flex-wrap:wrap;
  margin-bottom:clamp(40px,5vw,64px)
}

.cases-head .lead
{
  max-width:40ch
}

.cases-grid
{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(20px,2.4vw,34px);
  align-items:start
}

.case{
  position:relative;
  display:block;
  border:1px solid rgba(229,230,231,.16);
  border-radius:4px;
  overflow:hidden;
  background:#171716;
  transition:border-color .5s var(--ease),transform .6s var(--ease);
}

.case:nth-child(even)
{
  transform:none
}

.case:hover
{
  border-color:var(--line-strong)
}

.case-media
{
  position:relative;
  overflow:hidden;
  aspect-ratio:16/11;
  background:var(--green-deep)
}

.case-media img
{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 1.1s var(--ease),filter .6s;
  filter:grayscale(.3) brightness(.92)
}

.case:hover .case-media img
{
  transform:scale(1.05);
  filter:grayscale(0) brightness(1)
}

.case-media .overlay
{
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(10,10,10,.88),transparent 55%);
  z-index:1
}

.case-tag
{
  position:absolute;
  top:18px;
  left:18px;
  z-index:2;
  font-size:9px;
  letter-spacing:.16em;
  color:var(--off);
  text-transform:uppercase;
  background:rgba(10,10,10,.58);
  backdrop-filter:blur(8px);
  border:1px solid var(--line);
  padding:7px 13px;
  border-radius:100px
}

.case-go
{
  position:absolute;
  top:16px;
  right:16px;
  z-index:2;
  width:42px;
  height:42px;
  border-radius:50%;
  background:rgba(10,10,10,.58);
  backdrop-filter:blur(8px);
  border:1px solid var(--line);
  display:grid;
  place-items:center;
  color:var(--off);
  transition:background .4s,transform .5s var(--ease)
}

.case-go svg
{
  width:17px;
  height:17px;
  transition:transform .45s var(--ease)
}

.case:hover .case-go{
  background:var(--off);
  color:var(--black);
}

.case:hover .case-go svg
{
  transform:translate(3px,-3px)
}

.case-body
{
  position:relative;
  padding:24px 26px 26px;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:20px
}

.case-name
{
  font-family:var(--display);
  font-size:clamp(20px,2.4vw,27px);
  color:var(--off);
  line-height:1.1
}

.case-handle
{
  font-size:12.5px;
  color:var(--green-text);
  margin-top:5px
}

.case-metric
{
  text-align:right;
  flex:none
}

.case-metric .v
{
  font-family:var(--display);
  font-size:clamp(18px,2.2vw,24px);
  color:var(--off)
}

.case-metric .l
{
  font-size:8.5px;
  letter-spacing:.13em;
  color:var(--label);
  text-transform:uppercase;
  margin-top:3px
}

@media (max-width:760px)
{
  .cases-grid
  {
    grid-template-columns:1fr;
    gap:22px
  }

  .case:nth-child(even)
  {
    transform:none
  }

}

/* ============ DEPOIMENTOS ============ */
.dep-head
{
  margin-bottom:clamp(40px,5vw,60px);
  max-width:60ch
}

.dep-grid
{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(20px,2.4vw,30px)
}

.dep{
  border:1px solid rgba(229,230,231,.16);
  border-radius:4px;
  padding:clamp(30px,3.4vw,46px);
  background:linear-gradient(160deg, rgba(229,230,231,.035), rgba(0,0,0,.06));
  display:flex;
  flex-direction:column;
  position:relative;
  overflow:hidden;
}

.dep::before
{
  content:"\201C";
  position:absolute;
  top:10px;
  right:30px;
  font-family:Georgia,serif;
  font-size:140px;
  line-height:1;
  color:var(--green-line);
  opacity:.4
}

.dep-quote
{
  font-family:var(--display);
  font-size:clamp(16px,1.9vw,21px);
  line-height:1.55;
  color:var(--off);
  position:relative;
  z-index:1
}

.dep-meta
{
  display:flex;
  align-items:center;
  gap:15px;
  margin-top:auto;
  padding-top:28px
}

.dep-av
{
  width:52px;
  height:52px;
  border-radius:50%;
  flex:none;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:var(--green);
  border:1px solid var(--green-line);
  font-family:var(--display);
  font-size:17px;
  color:var(--off);
}

.dep-av img
{
  width:100%;
  height:100%;
  object-fit:cover
}

.dep-who .nm
{
  font-size:15px;
  color:var(--off);
  font-weight:500
}

.dep-who .rl
{
  font-size:12px;
  color:var(--green-text);
  letter-spacing:.03em;
  margin-top:3px
}

@media (max-width:760px)
{
  .dep-grid
  {
    grid-template-columns:1fr
  }

}

/* ============ MANIFESTO / TAGLINE ============ */
.manifesto{
  position:relative;
  text-align:center;
  overflow:hidden;
  background:var(--black);
}

.manifesto-sym
{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:min(80vw,800px);
  color:var(--green);
  opacity:.18;
  z-index:0;
}

.manifesto .wrap
{
  position:relative;
  z-index:1
}

.manifesto h2
{
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(30px,4.6vw,60px);
  line-height:1.04;
  letter-spacing:-.012em;
  color:var(--off)
}

.manifesto h2 .g
{
  color:var(--green-text)
}

.manifesto p
{
  margin:clamp(26px,4vw,42px) auto 0;
  max-width:58ch;
  font-size:clamp(14px,1.5vw,17px);
  color:var(--gray-light);
  line-height:1.7
}

/* ============ CERTIFICAÇÕES ============ */
.cert-head
{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:end;
  margin-bottom:clamp(40px,5vw,56px)
}

.cert-grid
{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(20px,2.4vw,30px)
}

.cert{
  border:1px solid rgba(229,230,231,.16);
  border-radius:4px;
  overflow:hidden;
  background:linear-gradient(160deg, rgba(229,230,231,.035), rgba(0,0,0,.06));
  transition:border-color .5s,transform .6s var(--ease);
}

.cert:hover
{
  border-color:var(--line-strong);
  transform:translateY(-5px)
}

.cert-top
{
  display:flex;
  align-items:center;
  gap:20px;
  padding:30px 32px;
  border-bottom:1px solid var(--line)
}

.cert-logo
{
  width:60px;
  height:60px;
  border-radius:10px;
  background:var(--off);
  display:grid;
  place-items:center;
  flex:none;
  overflow:hidden
}

.cert-logo img
{
  width:42px;
  height:42px;
  object-fit:contain
}

.cert-title
{
  font-family:var(--display);
  font-size:24px;
  color:var(--off)
}

.cert-title + .cert-sub
{
  font-size:11px;
  letter-spacing:.14em;
  color:var(--label);
  text-transform:uppercase;
  margin-top:5px
}

.cert-skills
{
  padding:26px 32px;
  display:flex;
  flex-wrap:wrap;
  gap:9px
}

.cert-skills .sk
{
  font-size:12px;
  color:var(--off-dim);
  border:1px solid var(--line);
  border-radius:100px;
  padding:8px 15px;
  transition:border-color .3s,color .3s
}

.cert:hover .cert-skills .sk
{
  border-color:var(--green-line)
}

@media (max-width:760px)
{
  .cert-grid
  {
    grid-template-columns:1fr
  }

}

/* ============ EQUIPE ============ */
.team-head
{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:end;
  margin-bottom:clamp(40px,5vw,60px)
}

.team-grid
{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(22px,3vw,40px);
  align-items:start
}

.member
{
  position:relative
}

.member-media
{
  position:relative;
  border-radius:12px;
  overflow:hidden;
  aspect-ratio:4/4.6;
  background:linear-gradient(160deg,var(--green),var(--green-deep))
}

.member-media img
{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:grayscale(.25) brightness(.95);
  transition:transform 1.2s var(--ease),filter .6s
}

.member:hover .member-media img
{
  transform:scale(1.04);
  filter:grayscale(0) brightness(1)
}

.member-media .ph
{
  width:100%;
  height:100%;
  display:grid;
  place-items:center
}

.member-media .ph svg
{
  width:38%;
  color:rgba(229,230,231,.18)
}

.member-media .badge
{
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  padding:22px 24px;
  background:rgba(0,0,0,.82);
  z-index:1;
  display:flex;
  justify-content:space-between;
  align-items:flex-end
}

.member-name
{
  font-family:var(--display);
  font-size:clamp(22px,2.6vw,30px);
  color:var(--off)
}

.member-role
{
  font-size:10px;
  letter-spacing:.16em;
  color:var(--green-text);
  text-transform:uppercase;
  margin-top:6px
}

.member-bio
{
  font-size:13.5px;
  line-height:1.7;
  color:var(--gray);
  margin-top:22px;
  max-width:42ch
}

@media (max-width:600px)
{
  .team-grid
  {
    grid-template-columns:1fr;
    gap:34px
  }

}

/* ============ CONTATO ============ */
.contact{
  position:relative;
  overflow:hidden;
  background:var(--black-deep);
}

.contact-sym
{
  position:absolute;
  right:-10%;
  bottom:-20%;
  width:min(50vw,560px);
  color:var(--green);
  opacity:.22;
  z-index:0;
}

.contact .wrap
{
  position:relative;
  z-index:1
}

.contact-grid
{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(40px,6vw,90px);
  align-items:start
}

.contact-left .s-title
{
  margin:22px 0 28px
}

.contact-info
{
  margin-top:42px
}

.contact-info a
{
  display:flex;
  align-items:center;
  gap:18px;
  padding:22px 0;
  border-top:1px solid var(--line);
  transition:padding-left .4s var(--ease)
}

.contact-info a:last-child
{
  border-bottom:1px solid var(--line)
}

.contact-info a:hover
{
  padding-left:10px
}

.contact-info .ic
{
  width:46px;
  height:46px;
  border-radius:11px;
  display:grid;
  place-items:center;
  background:rgba(236,238,237,.04);
  border:1px solid var(--line);
  color:var(--green-text);
  flex:none;
  transition:background .4s,color .4s
}

.contact-info .ic svg
{
  width:20px;
  height:20px
}

.contact-info a:hover .ic{
  background:var(--green);
  color:var(--off);
  border-color:var(--green);
}

.contact-info .tx
{
  display:flex;
  flex-direction:column;
  gap:4px
}

.contact-info .tx .k
{
  font-size:10px;
  letter-spacing:.18em;
  color:var(--label);
  text-transform:uppercase
}

.contact-info .tx .v
{
  font-size:16px;
  color:var(--off)
}

.form{
  border:1px solid rgba(229,230,231,.18);
  border-radius:6px;
  padding:clamp(30px,3.6vw,44px);
  background:rgba(10,10,10,.84);
  backdrop-filter:blur(10px);
}

.form-row
{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px
}

.fld
{
  margin-bottom:20px;
  position:relative
}

.fld label
{
  display:block;
  font-size:10px;
  letter-spacing:.16em;
  color:var(--label);
  text-transform:uppercase;
  margin-bottom:10px
}

.fld input,
.fld textarea,
.fld select
{
  width:100%;
  background:transparent;
  border:none;
  border-bottom:1px solid var(--line-strong);
  padding:12px 2px;
  color:var(--off);
  font-family:var(--body);
  font-size:15px;
  transition:border-color .4s;
}

@media (max-width:900px)
{
  .fld input,
  .fld textarea,
  .fld select
  {
    cursor:auto
  }

}

.fld textarea
{
  resize:vertical;
  min-height:90px
}

.fld select
{
  cursor:pointer
}

.fld input::placeholder,
.fld textarea::placeholder
{
  color:var(--gray-dim)
}

.fld input:focus,
.fld textarea:focus,
.fld select:focus
{
  outline:none;
  border-color:var(--green-text)
}

.fld select option
{
  background:var(--ink)
}

.form .btn-primary
{
  width:100%;
  justify-content:center;
  margin-top:10px
}

.form-note
{
  font-size:11.5px;
  color:var(--gray-dim);
  text-align:center;
  margin-top:16px;
  line-height:1.6
}

/* ============ FOOTER ============ */
footer
{
  background:var(--black);
  border-top:1px solid var(--line);
  padding:clamp(60px,8vw,90px) 0 36px
}

.foot-cta
{
  text-align:center;
  padding-bottom:clamp(50px,7vw,80px);
  border-bottom:1px solid var(--line);
  margin-bottom:clamp(46px,6vw,64px)
}

.foot-cta .big
{
  font-family:var(--display);
  font-size:clamp(32px,5vw,68px);
  line-height:1.0;
  letter-spacing:-.016em;
  color:var(--off)
}

.foot-cta .big a
{
  transition:color .4s
}

.foot-cta .big a:hover
{
  color:var(--green-text)
}

.foot-top
{
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr;
  gap:48px;
  padding-bottom:50px
}

.foot-brand .logo
{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:20px
}

.foot-brand .logo .brand-logo
{
  height:28px;
  width:auto;
  display:block;
  filter:invert(1) brightness(.9)
}

.foot-brand p
{
  font-size:13.5px;
  color:var(--gray);
  line-height:1.7;
  max-width:34ch
}

.foot-brand .tag
{
  font-family:var(--display);
  font-size:14px;
  color:var(--green-text);
  margin-top:18px
}

.foot-col h4
{
  font-size:10px;
  letter-spacing:.2em;
  color:var(--label);
  text-transform:uppercase;
  margin-bottom:20px
}

.foot-col a
{
  display:block;
  font-size:14px;
  color:var(--off-dim);
  padding:8px 0;
  transition:color .3s,padding-left .3s
}

.foot-col a:hover
{
  color:var(--off);
  padding-left:6px
}

.foot-bottom
{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
  padding-top:30px
}

.foot-bottom .cp
{
  font-size:12px;
  color:var(--gray-dim)
}

.foot-bottom .cnpj
{
  font-size:11px;
  color:var(--gray-dim);
  margin-top:4px
}

.foot-social
{
  display:flex;
  gap:10px
}

.foot-social a
{
  width:40px;
  height:40px;
  border-radius:50%;
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  color:var(--off-dim);
  transition:all .4s var(--ease)
}

.foot-social a svg
{
  width:17px;
  height:17px
}

.foot-social a:hover{
  color:var(--black);
  background:var(--off);
  border-color:var(--off);
  transform:translateY(-3px);
}

@media (max-width:860px)
{
  .foot-top
  {
    grid-template-columns:1fr 1fr
  }

  .foot-brand
  {
    grid-column:1/-1
  }

}

@media (max-width:560px)
{
  .foot-top
  {
    grid-template-columns:1fr
  }

  .foot-bottom
  {
    flex-direction:column;
    align-items:flex-start
  }

}


.to-top {
  position: fixed;
  right: 24px;
  bottom: 94px;                
  z-index: 90;
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(10, 10, 10, .72);
  border: 1px solid rgba(229, 230, 231, .18);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  color: var(--off);
  box-shadow: 0 12px 36px rgba(0, 0, 0, .45);

  opacity: 0;
  visibility: hidden;
  transform: translateY(14px) scale(.92);
  transition:
    opacity .5s var(--ease),
    transform .5s var(--ease),
    visibility .5s,
    background .4s var(--ease),
    color .4s var(--ease),
    border-color .4s var(--ease);
}

.to-top.show {
  opacity: 1;
  visibility: visible;
  transform: none;
}

.to-top:hover {
  background: var(--off);
  color: var(--black);
  border-color: var(--off);
}

.to-top:hover .tt-arr {
  transform: translateY(-3px);
}

.to-top:focus-visible {
  outline: 2px solid var(--green-text);
  outline-offset: 3px;
}

/* anel de progresso de leitura */
.tt-ring {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
  pointer-events: none;
}

.tt-ring circle {
  fill: none;
  stroke-width: 2;
}

.tt-track {
  stroke: rgba(229, 230, 231, .10);
}

.tt-prog {
  stroke: var(--green-text);
  stroke-linecap: round;
  stroke-dasharray: 163.36;      /* 2πr, r = 26 */
  stroke-dashoffset: 163.36;     /* começa vazio */
  transition: stroke-dashoffset .12s linear, stroke .4s var(--ease);
}

.to-top:hover .tt-prog {
  stroke: var(--green);
}

.tt-arr {
  position: relative;
  z-index: 1;
  width: 18px;
  height: 18px;
  transition: transform .45s var(--ease);
}

@media (prefers-reduced-motion: reduce) {
  .to-top {
    transform: none;
    transition: opacity .2s;
  }
}

/* ============ WHATSAPP FLOAT ============ */
.wa
{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:90;
  width:58px;
  height:58px;
  border-radius:50%;
  background:#1FAD55;
  color:#fff;
  display:grid;
  place-items:center;
  box-shadow:0 12px 36px rgba(0,0,0,.45);
  transition:transform .4s var(--ease)
}

.wa svg
{
  width:28px;
  height:28px
}

.wa::after
{
  content:"";
  position:absolute;
  inset:0;
  border-radius:50%;
  box-shadow:0 0 0 0 rgba(31,173,85,.5);
  animation:wap 2.6s infinite
}

@keyframes wap {
  0%
  {
    box-shadow:0 0 0 0 rgba(31,173,85,.45)
  }

  70%
  {
    box-shadow:0 0 0 16px rgba(31,173,85,0)
  }

  100%
  {
    box-shadow:0 0 0 0 rgba(31,173,85,0)
  }

}

.wa:hover
{
  transform:scale(1.1)
}

/* ============ LOADER ============ */
.loader
{
  position:fixed;
  inset:0;
  z-index:9998;
  background:var(--black);
  display:grid;
  place-items:center;
  transition:opacity .8s var(--ease),visibility .8s
}

.loader.done
{
  opacity:0;
  visibility:hidden
}

.loader .l-sym
{
  width:80px;
  color:var(--silver);
  opacity:0;
  animation:loaderIn 1s var(--ease) forwards
}

.loader .l-bar
{
  position:absolute;
  bottom:0;
  left:0;
  height:2px;
  background:var(--off);
  width:0%
}

@keyframes loaderIn {
  from
  {
    opacity:0;
    transform:translateY(10px) scale(.9)
  }

  to
  {
    opacity:1;
    transform:none
  }

}

/* ============ RESPONSIVO NAV ============ */
@media (max-width:860px)
{
  .nav-center,
  .nav-cta,
  .nav-social
  {
    display:none
  }

  .nav-toggle
  {
    display:grid;
    place-items:center;
    width:44px;
    height:44px
  }

  .hero-inner
  {
    grid-template-columns:1fr;
    gap:40px
  }

  .hero-right
  {
    display:none
  }

  .hero-stats
  {
    gap:20px
  }

  .intro-grid
  {
    grid-template-columns:1fr;
    gap:36px
  }

  .intro-meta
  {
    border-left:none;
    padding-left:0;
    border-top:1px solid var(--line);
    padding-top:30px
  }

  .svc-head,
  .cert-head,
  .team-head
  {
    grid-template-columns:1fr;
    gap:20px
  }

  .contact-grid
  {
    grid-template-columns:1fr;
    gap:44px
  }

  .form-row
  {
    grid-template-columns:1fr
  }

}

/* ============================================================
   REFINO VISUAL — SEÇÕES INTERMEDIÁRIAS
   ============================================================ */

.section{
  padding:clamp(105px, 14vh, 185px) 0;
}

.s-title{
  letter-spacing:.012em;
}

.lead{
  color:rgba(229,230,231,.72);
}


/* Títulos com descendentes sem corte */
h1.hero-title{
  line-height:1.16;
}

.line-mask{
  display:block;
  overflow:hidden;
  padding-bottom:.14em;
  margin-bottom:-.04em;
}

.line-mask > span{
  display:block;
  line-height:1.16;
}

.rotor-wrap{
  line-height:1.16;
  padding-bottom:.08em;
  color:var(--green-text);
  font-style:italic;
  font-weight:700;
}

h1.hero-title em{
  line-height:1.16;
}

/* Seção de números */
.stats-wrap{
  position:relative;
  overflow:hidden;
}

.stats-wrap::before{
  content:"";
  position:absolute;
  left:50%;
  top:18%;
  width:min(760px, 70vw);
  height:min(760px, 70vw);
  transform:translateX(-50%);
  background:radial-gradient(circle, rgba(46,138,116,.06), transparent 68%);
  pointer-events:none;
}

.stats-head{
  position:relative;
  z-index:1;
  margin-bottom:clamp(56px, 7vw, 92px);
}

.stats-head .s-title{
  font-size:clamp(34px, 4.6vw, 66px);
}

.stats-head .lead{
  max-width:56ch;
  color:rgba(229,230,231,.68);
}

.stats-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:0;
  border:1px solid rgba(229,230,231,.14);
  border-radius:18px;
  overflow:hidden;
  background:rgba(255,255,255,.015);
  box-shadow:
    0 28px 80px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.035);
}

.stat{
  min-height:190px;
  padding:clamp(34px, 4vw, 56px) clamp(18px, 2vw, 34px);
  text-align:center;
  border-right:1px solid rgba(229,230,231,.11);
  border-bottom:none;
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}

.stat:last-child{
  border-right:none;
}

.stat::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% 0%, rgba(46,138,116,.10), transparent 48%),
    linear-gradient(180deg, rgba(255,255,255,.035), transparent 65%);
  opacity:.55;
  transition:opacity .45s var(--ease), transform .45s var(--ease);
}

.stat::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  width:34%;
  height:1px;
  transform:translateX(-50%);
  background:var(--green-line);
  opacity:.55;
}

.stat:hover::before{
  opacity:.9;
  transform:scale(1.04);
}

.stat .n{
  font-family:var(--display);
  font-size:clamp(44px, 5vw, 74px);
  line-height:.92;
  color:var(--off);
  position:relative;
  letter-spacing:.015em;
}

.stat .n .u{
  color:var(--green-text);
  font-size:.45em;
  vertical-align:super;
  margin-left:4px;
}

.stat .k{
  position:relative;
  margin-top:22px;
  font-size:10px;
  letter-spacing:.24em;
  color:rgba(166,168,170,.78);
  text-transform:uppercase;
}

/* Cases */
.cases-head{
  align-items:start;
  margin-bottom:clamp(54px, 7vw, 86px);
}

.cases-head .s-title{
  font-size:clamp(32px, 4vw, 58px);
}

.cases-head .lead{
  max-width:38ch;
  padding-top:22px;
  font-size:clamp(15px, 1.4vw, 18px);
}

.cases-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(26px, 3vw, 46px);
  align-items:start;
}

.case{
  border:1px solid rgba(229,230,231,.16);
  border-radius:18px;
  overflow:hidden;
  background:var(--black);
  box-shadow:
    0 24px 70px rgba(0,0,0,.30),
    inset 0 1px 0 rgba(255,255,255,.035);
  transition:
    transform .65s var(--ease),
    border-color .45s var(--ease),
    box-shadow .65s var(--ease);
}

.case:nth-child(even){
  transform:translateY(clamp(0px, 3vw, 42px));
}

.case:hover{
  transform:translateY(-8px);
  border-color:rgba(229,230,231,.32);
  box-shadow:
    0 36px 100px rgba(0,0,0,.42),
    inset 0 1px 0 rgba(255,255,255,.05);
}

.case:nth-child(even):hover{
  transform:translateY(clamp(0px, 3vw, 42px)) translateY(-8px);
}

.case-media{
  position:relative;
  overflow:hidden;
  aspect-ratio:16/10.4;
  background:var(--black);
}

.case-media::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(180deg, rgba(10,10,10,.04), rgba(10,10,10,.16)),
    radial-gradient(circle at 50% 0%, rgba(46,138,116,.08), transparent 60%);
  pointer-events:none;
}

.case-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:grayscale(.18) brightness(.78) contrast(1.08);
  transform:scale(1.01);
  transition:transform 1.1s var(--ease), filter .65s var(--ease);
}

.case:hover .case-media img{
  transform:scale(1.065);
  filter:grayscale(0) brightness(.94) contrast(1.04);
}

.case-media .overlay{
  position:absolute;
  inset:0;
  z-index:2;
  background:
    linear-gradient(to top, rgba(10,10,10,.94), transparent 58%),
    linear-gradient(to right, rgba(10,10,10,.18), transparent 48%);
}

.case-tag{
  top:18px;
  left:18px;
  z-index:3;
  font-size:9px;
  letter-spacing:.18em;
  color:var(--off);
  background:rgba(10,10,10,.72);
  border:1px solid rgba(229,230,231,.18);
  backdrop-filter:blur(14px);
  padding:8px 14px;
}

.case-go{
  top:18px;
  right:18px;
  z-index:3;
  width:46px;
  height:46px;
  background:rgba(10,10,10,.72);
  border:1px solid rgba(229,230,231,.18);
  backdrop-filter:blur(14px);
}

.case:hover .case-go{
  background:var(--off);
  color:var(--black);
  border-color:var(--off);
}

.case-body{
  padding:28px 30px 30px;
  align-items:flex-end;
  background:
    linear-gradient(180deg, rgba(255,255,255,.025), transparent);
}

.case-name{
  font-size:clamp(22px, 2.4vw, 34px);
  letter-spacing:.01em;
}

.case-handle{
  color:var(--green-text);
  margin-top:7px;
}

.case-metric .v{
  font-size:clamp(20px, 2.2vw, 30px);
}

.case-metric .l{
  color:rgba(166,168,170,.76);
  letter-spacing:.18em;
}

/* Depoimentos */
.dep-head{
  margin-bottom:clamp(48px, 6vw, 78px);
}

.dep-head .s-title{
  max-width:14ch;
  font-size:clamp(34px, 4vw, 58px);
}

.dep-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(26px, 3vw, 42px);
}

.dep{
  position:relative;
  border:1px solid rgba(229,230,231,.15);
  border-radius:18px;
  padding:clamp(34px, 4vw, 58px);
  background:
    linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.012)),
    var(--black);
  box-shadow:
    0 24px 80px rgba(0,0,0,.26),
    inset 0 1px 0 rgba(255,255,255,.04);
  overflow:hidden;
  min-height:360px;
}

.dep::before{
  content:"\201C";
  position:absolute;
  top:10px;
  right:34px;
  font-family:Georgia,serif;
  font-size:160px;
  line-height:1;
  color:var(--green-line);
  opacity:.6;
}

.dep::after{
  content:"";
  position:absolute;
  left:clamp(34px, 4vw, 58px);
  top:0;
  width:72px;
  height:2px;
  background:var(--green-text);
}

.dep-quote{
  position:relative;
  z-index:1;
  font-family:var(--display);
  font-size:clamp(18px, 1.65vw, 25px);
  line-height:1.65;
  color:rgba(229,230,231,.88);
  letter-spacing:.008em;
}

.dep-meta{
  position:relative;
  z-index:1;
  margin-top:auto;
  padding-top:34px;
}

.dep-av{
  width:58px;
  height:58px;
  border:1px solid rgba(229,230,231,.20);
  background:var(--off);
  color:var(--black);
}

.dep-who .nm{
  font-size:16px;
  color:var(--off);
}

.dep-who .rl{
  color:var(--green-text);
  letter-spacing:.04em;
}

/* Certificações */
.cert-head{
  align-items:start;
  margin-bottom:clamp(48px, 6vw, 78px);
}

.cert-head .s-title{
  font-size:clamp(34px, 4vw, 58px);
}

.cert-head .lead{
  padding-top:16px;
  max-width:42ch;
}

.cert-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(26px, 3vw, 42px);
}

.cert{
  border:1px solid rgba(229,230,231,.15);
  border-radius:18px;
  overflow:hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.012)),
    var(--black);
  box-shadow:
    0 24px 80px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.04);
  transition:
    transform .55s var(--ease),
    border-color .45s var(--ease),
    box-shadow .55s var(--ease);
}

.cert:hover{
  transform:translateY(-8px);
  border-color:rgba(229,230,231,.30);
  box-shadow:
    0 34px 100px rgba(0,0,0,.34),
    inset 0 1px 0 rgba(255,255,255,.055);
}

.cert-top{
  position:relative;
  padding:34px 36px;
  gap:22px;
  border-bottom:1px solid rgba(229,230,231,.13);
  background:
    radial-gradient(circle at 12% 20%, rgba(46,138,116,.10), transparent 34%);
}

.cert-top::after{
  content:"";
  position:absolute;
  left:36px;
  bottom:-1px;
  width:86px;
  height:1px;
  background:var(--green-text);
}

.cert-logo{
  width:68px;
  height:68px;
  border-radius:14px;
  background:var(--off);
  box-shadow:0 12px 28px rgba(0,0,0,.22);
}

.cert-logo img{
  width:45px;
  height:45px;
  object-fit:contain;
}

.cert-title{
  font-size:clamp(23px, 2vw, 32px);
  letter-spacing:.015em;
}

.cert-title + .cert-sub{
  margin-top:8px;
  color:rgba(166,168,170,.78);
  letter-spacing:.18em;
}

.cert-skills{
  padding:30px 36px 34px;
  gap:11px;
}

.cert-skills .sk{
  font-size:12px;
  color:rgba(229,230,231,.78);
  border:1px solid rgba(229,230,231,.16);
  background:rgba(255,255,255,.018);
  border-radius:100px;
  padding:9px 16px;
  transition:
    border-color .3s var(--ease),
    color .3s var(--ease),
    background .3s var(--ease),
    transform .3s var(--ease);
}

.cert:hover .cert-skills .sk{
  border-color:var(--green-line);
}

.cert-skills .sk:hover{
  background:var(--green);
  color:var(--off);
  border-color:var(--green);
  transform:translateY(-2px);
}

/* Responsivo das seções refinadas */
@media (max-width:860px){
  .stats-grid,
  .cases-grid,
  .dep-grid,
  .cert-grid{
    grid-template-columns:1fr;
  }

  .stat{
    border-right:none;
    border-bottom:1px solid rgba(229,230,231,.11);
  }

  .stat:last-child{
    border-bottom:none;
  }

  .case:nth-child(even),
  .case:nth-child(even):hover{
    transform:none;
  }

  .cases-head .lead,
  .cert-head .lead{
    padding-top:0;
  }
}

@media (max-width:560px){
  .case-body{
    flex-direction:column;
    align-items:flex-start;
  }

  .case-metric{
    text-align:left;
  }

  .dep,
  .cert-top,
  .cert-skills{
    padding-left:24px;
    padding-right:24px;
  }
}