/* ============ DESIGN SYSTEM SI DIGITAL ============ */
:root{
  --navy:#001639;
  --navy-2:#001a44;
  --offwhite:#f0ebe8;
  --offwhite-2:#e5dfdb;
  --lime:#c1ff72;
  --orange:#FF4500;
  --orange-soft:#ff6730;
  --black:#000000;
  --white:#ffffff;
  --font:'Poppins', -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Segoe UI', system-ui, sans-serif;
  /* === MOTION TOKENS (inspirado no Lando Norris) === */
  --cubic-default:cubic-bezier(0.65, 0.05, 0, 1);  /* easing principal, entrada acentuada, saída lenta */
  --cubic-snap:cubic-bezier(0.83, 0, 0.17, 1);     /* mais snappy, pra micro-interactions */
  --duration-default:0.75s;
  --duration-fast:0.4s;
  --duration-slow:1.1s;
  --animation-default:var(--duration-default) var(--cubic-default);
  --animation-fast:var(--duration-fast) var(--cubic-default);
  --animation-snap:var(--duration-fast) var(--cubic-snap);
}

*{margin:0;padding:0;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
/* scroll-behavior gerenciado pelo Lenis (smooth scroll com inércia) */
html.lenis,html.lenis body{height:auto}
html.lenis-smooth{scroll-behavior:auto !important}
html.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-smooth{scroll-behavior:auto !important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
.lenis.lenis-scrolling iframe{pointer-events:none}
html,body{background:var(--navy);color:var(--offwhite);font-family:var(--font);overflow-x:clip;font-weight:400}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
img{display:block;max-width:100%}
.tnum{font-variant-numeric:tabular-nums;font-feature-settings:'tnum'}

/* ============ CUSTOM CURSOR (robusto, adapta cor ao fundo) ============ */
@media (hover:hover) and (pointer:fine){
  html.cc-on, html.cc-on *{cursor:none !important}
  html.cc-on a, html.cc-on button, html.cc-on .btn-cta,
  html.cc-on input, html.cc-on textarea, html.cc-on select, html.cc-on label{cursor:none !important}
}
.cc-ring,.cc-dot{position:fixed;top:0;left:0;pointer-events:none;z-index:99999;border-radius:50%;
  transform:translate(-50%,-50%);will-change:transform;opacity:0;transition:opacity .25s}
html.cc-on .cc-ring,html.cc-on .cc-dot{opacity:1}
.cc-ring{width:34px;height:34px;border:1.5px solid var(--orange);
  transition:width .22s cubic-bezier(.16,1,.3,1),height .22s cubic-bezier(.16,1,.3,1),background .22s,border-color .22s,opacity .25s}
.cc-dot{width:6px;height:6px;background:var(--orange)}
.cc-ring.cc-hover{width:54px;height:54px;background:rgba(255,69,0,.12);border-color:var(--orange)}
.cc-dot.cc-hover{opacity:0}
.cc-ring.cc-down{width:26px;height:26px}
/* tema claro: usa navy pra contraste no offwhite */
.cc-ring.cc-light{border-color:var(--navy)}
.cc-dot.cc-light{background:var(--navy)}
.cc-ring.cc-light.cc-hover{background:rgba(0,22,57,.10);border-color:var(--navy)}

/* ============ LOADER ============ */
.loader{position:fixed;inset:0;background:var(--navy);z-index:10000;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:24px;transition:opacity .6s,visibility .6s;animation:loaderAutoHide .5s ease 1s forwards}
@keyframes loaderAutoHide{to{opacity:0;visibility:hidden;pointer-events:none}}
.loader.hidden{opacity:0;visibility:hidden;pointer-events:none}
.loader-symbol{width:80px;height:80px;animation:spin 1.4s linear infinite}
.loader-text{font-weight:500;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--offwhite);opacity:.5;display:flex;gap:12px;align-items:center}
.loader-text::before{content:'';width:6px;height:6px;background:var(--orange);border-radius:50%;animation:blink 1s infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes blink{50%{opacity:.2}}

/* ============ HEADER ============ */
header{position:fixed;top:0;left:0;right:0;z-index:100;padding:18px 48px;display:flex;align-items:center;justify-content:space-between;transition:background .4s,backdrop-filter .4s,padding .3s,border-color .3s;border-bottom:1px solid rgba(240,235,232,.1)}
header.scrolled{background:rgba(0,22,57,.85);backdrop-filter:blur(20px);border-bottom-color:rgba(240,235,232,.08);padding:12px 48px}
.logo-mark{display:flex;align-items:center;gap:14px;flex-shrink:0}
.logo-mark img{width:48px;height:48px;display:block;flex-shrink:0}
.logo-mark .wordmark{font-weight:700;font-size:24px;letter-spacing:-.04em;line-height:1;white-space:nowrap}
.logo-mark .wordmark .si{color:var(--orange)}
.logo-mark .wordmark .digital{color:var(--offwhite)}
nav ul{display:flex;list-style:none;gap:36px;align-items:center}
nav a{font-size:14px;font-weight:500;letter-spacing:-.01em;position:relative;padding:8px 0;opacity:.7;transition:opacity .3s}
nav a:hover,nav a.active{opacity:1}
nav a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--orange);transition:width .3s}
nav a:hover::after,nav a.active::after{width:100%}
.btn-cta{background:var(--orange);color:var(--navy);padding:14px 24px;font-weight:600;font-size:13px;letter-spacing:.04em;display:inline-flex;align-items:center;gap:10px;transition:transform .3s,background .3s;text-transform:uppercase}
.btn-cta:hover{background:var(--orange-soft);transform:translateY(-2px)}
.btn-cta .arrow{transition:transform .3s;display:inline-block}
.btn-cta:hover .arrow{transform:translateX(4px)}

/* ============ BUTTONS ============ */
.btn-primary,.btn-secondary{padding:18px 28px;font-size:13px;font-weight:600;letter-spacing:.05em;display:inline-flex;align-items:center;gap:12px;transition:transform .3s,background .3s,border-color .3s,box-shadow .3s;text-transform:uppercase}
.btn-primary{background:var(--orange);color:var(--navy)}
.btn-primary:hover{background:var(--orange-soft);transform:translateY(-2px);box-shadow:0 12px 32px rgba(255,69,0,.3)}
.btn-secondary{background:transparent;color:var(--offwhite);border:1px solid rgba(240,235,232,.3)}
.btn-secondary:hover{border-color:var(--offwhite);background:rgba(240,235,232,.05);transform:translateY(-2px)}
.btn-dark{background:var(--navy);color:var(--offwhite);padding:16px 24px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;display:inline-flex;align-items:center;gap:10px;transition:background .3s,gap .3s}
.btn-dark:hover{background:var(--orange);gap:18px}

/* ============ SECTION HEADERS ============ */
.section-header{padding:0 48px;margin-bottom:64px;max-width:1400px;margin-left:auto;margin-right:auto}
.section-eyebrow{font-weight:500;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--orange);margin-bottom:20px;display:flex;align-items:center;gap:14px}
.section-eyebrow::before{content:'';width:32px;height:1px;background:var(--orange)}
.section-title{font-size:clamp(40px,5.5vw,80px);font-weight:900;line-height:.98;letter-spacing:-.035em;margin-bottom:24px}
.section-sub{font-size:18px;font-weight:400;line-height:1.55;max-width:640px;color:rgba(240,235,232,.7)}
.accent{color:var(--orange);font-style:italic;font-weight:900}

/* ============ FOOTER ============ */
footer{background:var(--black);color:var(--offwhite);padding:80px 48px 32px}
.footer-grid{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:48px;padding-bottom:64px;border-bottom:1px solid rgba(240,235,232,.1)}
.footer-brand{display:flex;flex-direction:column;gap:24px}
.footer-brand .logo-mark img{width:56px;height:56px}
.footer-brand .wordmark{font-size:26px;font-weight:700;letter-spacing:-.04em}
.footer-brand .wordmark .si{color:var(--orange)}
.footer-tagline{font-size:14px;line-height:1.6;color:rgba(240,235,232,.5);max-width:280px;font-weight:400}
.footer-col h4{font-weight:600;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--orange);margin-bottom:20px}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:12px}
.footer-col li,.footer-col a{font-size:14px;color:rgba(240,235,232,.7);transition:color .3s,padding .3s;font-weight:400}
.footer-col a:hover{color:var(--offwhite);padding-left:6px}
.footer-bottom{max-width:1400px;margin:0 auto;padding-top:32px;display:flex;justify-content:space-between;align-items:center;font-weight:500;font-size:11px;color:rgba(240,235,232,.4);letter-spacing:.05em;flex-wrap:wrap;gap:16px}
.footer-bottom a{color:rgba(240,235,232,.6)}
.footer-bottom a:hover{color:var(--offwhite)}

/* ============ WHATSAPP FAB ============ */
.wa-fab{position:fixed;bottom:32px;right:32px;width:64px;height:64px;background:var(--lime);color:var(--navy);border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:90;box-shadow:0 12px 32px rgba(193,255,114,.3);transition:transform .3s,box-shadow .3s;animation:wa-float 3s ease-in-out infinite}
.wa-fab:hover{transform:scale(1.1);box-shadow:0 16px 40px rgba(193,255,114,.5)}
.wa-fab svg{width:28px;height:28px}
@keyframes wa-float{50%{transform:translateY(-6px)}}

/* badge usa o proprio .wa-fab fixed como ancora; nao sobrescrever position */
.wa-fab-badge{position:absolute;top:-6px;right:-6px;background:var(--orange);color:var(--white);font-size:9px;font-weight:700;padding:4px 8px;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;border-radius:12px;animation:wa-badge-pulse 2.5s ease-in-out infinite;pointer-events:none;box-shadow:0 4px 12px rgba(255,69,0,.4)}
@keyframes wa-badge-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
.wa-fab-pulse{position:absolute;inset:0;border-radius:50%;background:var(--lime);opacity:.4;animation:wa-ring 2s ease-out infinite;pointer-events:none;z-index:-1}
@keyframes wa-ring{0%{transform:scale(1);opacity:.4}100%{transform:scale(1.6);opacity:0}}

/* ============ CTA FINAL (compartilhado entre todas páginas) ============ */
.cta-final{padding:160px 48px;background:var(--navy);text-align:center;position:relative;overflow:hidden}
.cta-final::before{content:'';position:absolute;top:50%;left:50%;width:1200px;height:1200px;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,69,0,.08) 0%,transparent 60%);pointer-events:none}
.cta-final-content{position:relative;z-index:2;max-width:900px;margin:0 auto}
.cta-final-eyebrow{font-weight:500;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--orange);margin-bottom:32px;display:flex;align-items:center;justify-content:center;gap:14px}
.cta-final-eyebrow::before,.cta-final-eyebrow::after{content:'';width:32px;height:1px;background:var(--orange);display:inline-block}
.cta-final-title{font-size:clamp(48px,7vw,108px);font-weight:900;line-height:.95;letter-spacing:-.035em;margin-bottom:32px;color:var(--offwhite)}
.cta-final-title .accent{color:var(--orange);font-style:italic}
.cta-final-sub{font-size:20px;font-weight:400;color:rgba(240,235,232,.7);margin-bottom:56px;max-width:640px;margin-left:auto;margin-right:auto;line-height:1.5}
.cta-final-btns{display:flex;gap:20px;justify-content:center;flex-wrap:wrap}

/* ============ RESPONSIVE BASE ============ */
@media(max-width:1024px){
  header{padding:14px 24px}
  header.scrolled{padding:10px 24px}
  /* menu mobile tratado no bloco "MENU MOBILE + HERO RESPONSIVO" abaixo (header nav ul) */
  .section-header{padding:0 32px}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px}
}
@media(max-width:640px){
  .section-header{padding:0 24px}
  .footer-grid{grid-template-columns:1fr;gap:32px}
  .logo-mark img{width:40px;height:40px}
  .logo-mark .wordmark{font-size:20px}
  .cta-final{padding:100px 24px}
  .cta-final-btns{flex-direction:column;width:100%}
  .cta-final-btns .btn-primary,.cta-final-btns .btn-secondary{width:100%;justify-content:center}
}

/* ============================================================
 * MENU MOBILE + HERO RESPONSIVO (consolidado)
 * Antes vivia inline e duplicado em cada página comercial
 * (data-mobile-fix="v2"). Centralizado aqui: ajuste o menu
 * mobile num lugar só. Sem !important no nav porque
 * `header nav ul` (0,0,3) já vence o `nav ul` base (0,0,2).
 * ============================================================ */

/* Menu mobile: horizontal compacto, sempre visível */
@media(max-width:1024px){
  header nav ul{
    display:flex;
    flex-wrap:wrap;
    gap:6px 14px;
    list-style:none;
    padding:0;
    margin:0;
    justify-content:center;
  }
  header nav ul li{
    list-style:none;
  }
  header nav ul li a{
    font-size:13px;
    padding:6px 4px;
    white-space:nowrap;
  }
  header{
    flex-wrap:wrap;
    gap:16px;
    padding:16px 24px;
  }
  header > a.logo-mark{order:1}
  header > nav{order:3;width:100%;justify-content:center}
  header > a.btn-cta{order:2;font-size:12px;padding:10px 16px}
}

/* Em telas pequenas: fonte ainda menor, mas TODOS visíveis */
@media(max-width:540px){
  header nav ul{gap:4px 10px}
  header nav ul li a{font-size:12px;padding:4px 2px}
  header{padding:14px 16px}
  header > a.btn-cta{font-size:11px;padding:8px 12px}
}

/* Hero sobre: foto NÃO sobrepõe conteúdo */
@media(max-width:1024px){
  .hero-sobre{
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto!important;
    padding:120px 32px 64px!important;
    gap:48px!important;
  }
  .hero-sobre-content{
    grid-column:1!important;
    grid-row:1!important;
  }
  .hero-sobre-photo{
    grid-column:1!important;
    grid-row:2!important;
    justify-content:center;
  }
  .hero-sobre-photo img{
    max-width:380px!important;
    width:90%;
  }
}

@media(max-width:640px){
  .hero-sobre{
    padding:100px 20px 48px!important;
  }
  .hero-sobre-photo img{
    max-width:320px!important;
  }
}

/* Em mobile ultra-pequeno: garantir espaço pro header com menu quebrado */
@media(max-width:380px){
  .hero-sobre{padding-top:160px!important}
  .hero-cases,.hero-contato,.hero,.hero-emp,.hero-ag{padding-top:160px!important}
}

::selection{background:var(--orange);color:var(--white)}

/* ===== HEADER: logo real + troca de tema conforme o fundo da secao ===== */
.logo-header{gap:0}
.logo-header .logo-full{height:34px;width:auto;display:block}
.logo-header .logo-full-light{display:none}
header.theme-light .logo-header .logo-full-dark{display:none}
header.theme-light .logo-header .logo-full-light{display:block}
header.theme-light{background:rgba(240,235,232,.92);backdrop-filter:blur(20px);border-bottom-color:rgba(0,22,57,.12)}
header.theme-light nav a{color:var(--navy)}
header.theme-light.scrolled{background:rgba(240,235,232,.95);border-bottom-color:rgba(0,22,57,.14)}
header.theme-light .btn-cta{color:#fff}

/* ============ SVG BACKGROUND PATHS, drift animations ============ */
/* Movimento orgânico muito sutil pros paths do bg (script.js injeta) */
@keyframes si-bg-drift-0{
  0%{transform:translate(0,0) rotate(0deg)}
  100%{transform:translate(20px,-15px) rotate(.5deg)}
}
@keyframes si-bg-drift-1{
  0%{transform:translate(0,0) rotate(0deg)}
  100%{transform:translate(-25px,20px) rotate(-.4deg)}
}
@keyframes si-bg-drift-2{
  0%{transform:translate(0,0) rotate(0deg)}
  100%{transform:translate(15px,25px) rotate(.3deg)}
}
@keyframes si-bg-drift-3{
  0%{transform:translate(0,0) rotate(0deg)}
  100%{transform:translate(-20px,-10px) rotate(-.5deg)}
}

/* ============ HERO CINEMATIC v2 (scroll-driven estilo Lando) ============ */
.hero-cinematic{
  position:relative;
  height:250vh;
  background:transparent;
  margin-top:-100px;
  z-index:2;
}
.hero-cin-pin{
  position:sticky;
  top:0;
  height:100vh;
  width:100%;
  overflow:hidden;
}

/* Eyebrow */
.hero-cin-eyebrow{
  position:absolute;
  top:130px;
  left:48px;
  z-index:5;
  font-family:var(--font);
  font-weight:500;
  font-size:11px;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:var(--lime);
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:8px 16px;
  border:1px solid rgba(193,255,114,.3);
  background:rgba(0,22,57,.4);
  backdrop-filter:blur(8px);
  opacity:0;
  animation:cinFadeDown .8s cubic-bezier(.16,1,.3,1) .2s forwards;
}
@keyframes cinFadeDown{
  from{opacity:0;transform:translateY(-10px)}
  to{opacity:1;transform:translateY(0)}
}
.hero-cin-dot{
  width:6px;height:6px;background:var(--lime);border-radius:50%;
  animation:dash-pulse 2s ease-in-out infinite;
}
@keyframes dash-pulse{0%,100%{opacity:1}50%{opacity:.4}}

/* Headline lateral esquerda */
.hero-cin-headline{
  position:absolute;
  left:48px;
  top:50%;
  transform:translateY(-50%);
  z-index:4;
  font-family:var(--font);
  font-size:clamp(48px,6.5vw,104px);
  line-height:.94;
  letter-spacing:-.035em;
  font-weight:900;
  color:var(--offwhite);
  max-width:50vw;
}
.cin-line{display:block;overflow:hidden;padding-bottom:.05em}
.cin-line > span{
  display:inline-block;
  will-change:transform;
  transform:translateY(110%);
  animation:cinSlideUp 1.1s cubic-bezier(.16,1,.3,1) forwards;
}
.cin-line:nth-child(1) > span{animation-delay:.3s}
.cin-line:nth-child(2) > span{animation-delay:.42s}
.cin-line:nth-child(3) > span{animation-delay:.54s}
@keyframes cinSlideUp{
  from{transform:translateY(110%)}
  to{transform:translateY(0)}
}
.cin-accent{color:var(--orange);font-style:italic}

/* Portrait wrap (centro) */
.hero-cin-portrait-wrap{
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%) scale(.92);
  z-index:3;
  width:clamp(300px,26vw,420px);
  aspect-ratio:4/5;
  will-change:transform,opacity;
  opacity:0;
  animation:cinPortraitIn 1.4s cubic-bezier(.16,1,.3,1) .4s forwards;
}
@keyframes cinPortraitIn{
  from{opacity:0;transform:translate(-50%,-50%) scale(.92)}
  to{opacity:1;transform:translate(-50%,-50%) scale(1)}
}
.hero-cin-portrait{
  width:100%;height:100%;
  object-fit:cover;
  display:block;
  filter:contrast(1.04) saturate(1.02);
}
.hero-cin-portrait-glow{
  position:absolute;
  inset:-60px;
  background:radial-gradient(ellipse at center,rgba(255,69,0,.12) 0%,transparent 65%);
  z-index:-1;
  pointer-events:none;
}

/* Dashboards SVG/CSS flutuantes */
.hero-cin-dash{
  position:absolute;
  z-index:6;
  width:220px;
  opacity:0; /* GSAP anima */
  pointer-events:none;
  will-change:transform,opacity;
}
.cin-card{
  background:rgba(0,22,57,.92);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(193,255,114,.3);
  padding:18px 22px;
  font-family:var(--font);
  box-shadow:0 10px 30px rgba(0,0,0,.4),0 0 0 1px rgba(0,0,0,.2);
  position:relative;
}
.cin-card::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(193,255,114,.06) 0%,transparent 60%);
  pointer-events:none;
}
.cin-card-header{
  font-size:9px;font-weight:500;letter-spacing:.25em;
  color:var(--lime);
  margin-bottom:14px;
  display:flex;align-items:center;gap:8px;
}
.cin-dot{
  width:6px;height:6px;background:var(--lime);border-radius:50%;
  animation:dash-pulse 1.8s ease-in-out infinite;
}
.cin-card-body{margin-bottom:14px}
.cin-metric-label{
  font-size:9px;font-weight:500;letter-spacing:.22em;
  text-transform:uppercase;
  color:rgba(240,235,232,.55);
  margin-bottom:8px;
}
.cin-metric-value{
  font-size:34px;font-weight:700;
  color:var(--lime);
  letter-spacing:-.02em;line-height:1;
}
.cin-card-footer{
  font-size:10px;font-weight:400;
  color:rgba(240,235,232,.4);
  padding-top:10px;
  border-top:1px solid rgba(240,235,232,.08);
}

/* Posições dos dashboards, só no lado DIREITO (esquerda é da headline) */
/* 3 cards principais visíveis, 2 ocultos pra não sobrecarregar */
.hero-cin-dash{width:200px}
.hero-cin-dash--1{top:14%;right:4%}
.hero-cin-dash--2{top:43%;right:3%}
.hero-cin-dash--3{bottom:14%;right:4%}
.hero-cin-dash--4,.hero-cin-dash--5{display:none}
@media(min-width:1600px){
  .hero-cin-dash{width:220px}
}

/* CTAs */
.hero-cin-ctas{
  position:absolute;
  bottom:140px;
  left:48px;
  z-index:4;
  display:flex;
  gap:14px;
  opacity:0;
  animation:cinFadeUp .8s cubic-bezier(.16,1,.3,1) 1.1s forwards;
}
@keyframes cinFadeUp{
  from{opacity:0;transform:translateY(20px)}
  to{opacity:1;transform:translateY(0)}
}
.hero-cin-cta{
  padding:16px 26px;
  font-size:13px;font-weight:600;
  text-transform:uppercase;letter-spacing:.05em;
  display:inline-flex;align-items:center;gap:12px;
  transition:transform .3s,background .3s,border-color .3s,box-shadow .3s;
  font-family:var(--font);
}
.hero-cin-cta--primary{
  background:var(--orange);
  color:var(--white);
}
.hero-cin-cta--primary:hover{
  background:var(--orange-soft);
  transform:translateY(-2px);
  box-shadow:0 12px 32px rgba(255,69,0,.3);
}
.hero-cin-cta--secondary{
  background:transparent;
  color:var(--offwhite);
  border:1px solid rgba(240,235,232,.3);
}
.hero-cin-cta--secondary:hover{
  border-color:var(--offwhite);
  background:rgba(240,235,232,.05);
}

/* Scroll hint */
.hero-cin-scroll-hint{
  position:absolute;
  bottom:36px;
  left:50%;
  transform:translateX(-50%);
  display:flex;align-items:center;gap:14px;
  z-index:5;
  font-family:var(--font);
  font-size:10px;font-weight:500;
  letter-spacing:.28em;text-transform:uppercase;
  color:rgba(240,235,232,.5);
  opacity:0;
  animation:cinHintIn .8s ease-out 1.4s forwards,hint-bob 3s ease-in-out 2.2s infinite;
}
@keyframes cinHintIn{
  from{opacity:0}
  to{opacity:.5}
}
.hint-line{width:40px;height:1px;background:rgba(240,235,232,.3)}
@keyframes hint-bob{
  0%,100%{transform:translateX(-50%) translateY(0)}
  50%{transform:translateX(-50%) translateY(4px)}
}

/* Responsive */
@media(max-width:1024px){
  .hero-cinematic{height:220vh}
  .hero-cin-headline{font-size:clamp(36px,7vw,64px);left:32px;max-width:55vw}
  .hero-cin-eyebrow{left:32px;top:110px}
  .hero-cin-dash{width:180px}
  .cin-metric-value{font-size:28px}
  .hero-cin-ctas{left:32px;bottom:110px}
  .hero-cin-portrait-wrap{width:clamp(240px,28vw,320px)}
}
@media(max-width:640px){
  .hero-cinematic{height:auto;min-height:100vh;margin-top:0}
  .hero-cin-pin{position:relative;height:auto;min-height:100vh;padding:120px 24px 60px;display:flex;flex-direction:column;align-items:flex-start;gap:24px}
  .hero-cin-portrait-wrap{position:relative;transform:none;top:auto;left:auto;margin:20px auto;width:240px}
  .hero-cin-headline{position:relative;left:auto;top:auto;transform:none;font-size:clamp(36px,11vw,52px);max-width:100%}
  .hero-cin-eyebrow{position:relative;top:auto;left:auto}
  .hero-cin-dash{position:relative;width:100%;max-width:280px;top:auto !important;bottom:auto !important;left:auto !important;right:auto !important;margin:0;opacity:1 !important;transform:none !important}
  .hero-cin-ctas{position:relative;left:auto;bottom:auto;flex-direction:column;width:100%}
  .hero-cin-cta{justify-content:center}
  .hero-cin-scroll-hint{display:none}
}

/* ============ GALERIA HORIZONTAL DE CASES (scroll vertical → horizontal) ============ */
/* GSAP gerencia o pin via JS, section tem altura natural, ScrollTrigger
   cria o "virtual scroll" pelo tempo necessário pra completar 5×100vw. */
.cases-horizontal{
  position:relative;
  height:100vh;
  z-index:2;
  overflow:hidden;
}
.ch-pin{
  position:relative;
  height:100vh;
  width:100%;
  overflow:hidden;
}
.ch-header{
  position:absolute;
  top:120px;
  left:48px;
  z-index:5;
  pointer-events:none;
}
.ch-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-family:var(--font);
  font-size:11px;
  font-weight:500;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:var(--lime);
  padding:8px 16px;
  border:1px solid rgba(193,255,114,.3);
  background:rgba(0,22,57,.5);
  backdrop-filter:blur(8px);
}
.ch-dot{
  width:6px;height:6px;background:var(--lime);border-radius:50%;
  animation:dash-pulse 2s ease-in-out infinite;
}
.ch-track{
  display:flex;
  width:500vw;
  height:100vh;
  will-change:transform;
}
.ch-slide{
  width:100vw;
  height:100vh;
  flex-shrink:0;
  display:grid;
  grid-template-columns:1.15fr 1fr;
  align-items:center;
  padding:160px 80px 100px;
  gap:80px;
  position:relative;
}
/* Frame editorial pro print, sem mais "borda preta", combina com navy */
.ch-slide-image{
  position:relative;
  width:100%;
  height:75vh;
  display:flex;
  flex-direction:column;
  background:linear-gradient(180deg, rgba(0,26,68,.6) 0%, rgba(0,22,57,.4) 100%);
  border:1px solid rgba(193,255,114,.2);
  border-radius:6px;
  overflow:hidden;
  box-shadow:
    0 30px 60px -20px rgba(0,0,0,.5),
    0 0 0 1px rgba(193,255,114,.04),
    inset 0 1px 0 rgba(193,255,114,.08);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
/* Barra superior do "frame", estilo painel de dashboard */
.ch-slide-image::before{
  content:'PRINT REAL · GERENCIADOR · MAIO/2026';
  display:block;
  flex-shrink:0;
  padding:14px 20px;
  font-family:var(--font);
  font-size:9px;
  font-weight:600;
  letter-spacing:.28em;
  color:rgba(193,255,114,.8);
  background:rgba(0,22,57,.5);
  border-bottom:1px solid rgba(193,255,114,.12);
  position:relative;
}
/* 3 bolinhas estilo "macOS window" pro vibe editorial */
.ch-slide-image::after{
  content:'';
  position:absolute;
  top:18px;
  right:20px;
  width:8px;height:8px;
  border-radius:50%;
  background:#ff5f57;
  box-shadow:
    14px 0 0 #febc2e,
    28px 0 0 #28c840;
}
.ch-slide-image-wrap{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  min-height:0; /* permite o flex shrink */
}
.ch-slide-image img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  display:block;
  filter:contrast(1.05) brightness(1);
  border-radius:3px;
}
.ch-slide-info{
  display:flex;
  flex-direction:column;
  gap:18px;
  max-width:480px;
  font-family:var(--font);
}
.ch-slide-counter{
  font-size:64px;
  font-weight:900;
  line-height:1;
  color:var(--lime);
  letter-spacing:-.04em;
}
.ch-slide-counter span{
  font-size:24px;
  font-weight:500;
  color:rgba(240,235,232,.4);
  margin-left:8px;
}
.ch-slide-sector{
  font-size:11px;
  font-weight:500;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:rgba(240,235,232,.55);
}
.ch-slide-client{
  font-size:clamp(36px,4vw,56px);
  font-weight:900;
  line-height:1;
  letter-spacing:-.03em;
  color:var(--offwhite);
  margin:4px 0 12px;
}
.ch-slide-metric{
  padding:24px 0;
  border-top:1px solid rgba(240,235,232,.1);
  border-bottom:1px solid rgba(240,235,232,.1);
}
.ch-slide-metric-label{
  font-size:10px;
  font-weight:500;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:rgba(240,235,232,.5);
  margin-bottom:10px;
}
.ch-slide-metric-value{
  font-size:clamp(56px,7vw,96px);
  font-weight:900;
  line-height:.95;
  color:var(--lime);
  letter-spacing:-.04em;
  font-family:var(--font);
}
.ch-slide-desc{
  font-size:15px;
  line-height:1.55;
  color:rgba(240,235,232,.75);
  font-weight:400;
}
.ch-slide-channels{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:4px;
}
.ch-slide-channels span{
  display:inline-block;
  padding:6px 14px;
  font-size:10px;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--offwhite);
  background:rgba(255,69,0,.15);
  border:1px solid rgba(255,69,0,.4);
}

/* Progress bar no fundo */
.ch-progress{
  position:absolute;
  bottom:40px;
  left:50%;
  transform:translateX(-50%);
  width:min(640px,60vw);
  height:2px;
  background:rgba(240,235,232,.1);
  z-index:5;
  overflow:hidden;
}
.ch-progress-fill{
  position:absolute;
  inset:0 auto 0 0;
  width:0%;
  background:var(--lime);
  will-change:width;
  box-shadow:0 0 12px rgba(193,255,114,.6);
}

/* Tablet: pinching */
@media(max-width:1024px){
  .ch-slide{padding:140px 48px 80px;gap:48px}
  .ch-slide-image{height:60vh}
}

/* Mobile: scrolljack via position:sticky + transform (sem GSAP pin = sem jitter iOS).
   A altura da section é setada via JS (5*100vh). O .ch-pin gruda no topo enquanto rola,
   e o JS atualiza o transform do .ch-track conforme o progresso vertical.
   Cada slide tem 100vw e conteúdo CENTRALIZADO (foto em cima, card de info embaixo). */
@media(max-width:768px){
  .cases-horizontal{
    /* height definida via JS (5 * 100vh = 500vh) */
    position:relative;
    overflow:visible; /* deixa sticky funcionar */
    background:var(--navy);
  }
  .ch-pin{
    position:sticky;
    top:0;
    height:100vh;
    height:100svh;
    width:100%;
    overflow:hidden;
    display:block;
  }
  /* Header fica fixo no topo, pequeno e discreto */
  .ch-header{
    position:absolute;
    top:24px;
    left:24px;
    right:24px;
    z-index:5;
    padding:0;
    pointer-events:none;
  }
  .ch-eyebrow{
    font-size:9px;
    padding:5px 10px;
    pointer-events:auto;
    letter-spacing:.22em;
  }
  /* Progress bar embaixo */
  .ch-progress{
    position:absolute;
    bottom:24px;
    left:24px;
    right:24px;
    width:auto;
    z-index:5;
    height:2px;
  }

  /* Track: 5 slides lado a lado, JS move via transform */
  .ch-track{
    display:flex;
    flex-direction:row;
    align-items:stretch;
    width:500vw;
    height:100vh;
    height:100svh;
    will-change:transform;
    transform:translate3d(0,0,0);
  }

  /* Cada slide: full viewport, conteúdo centralizado verticalmente */
  .ch-slide{
    flex:0 0 100vw;
    width:100vw;
    height:100vh;
    height:100svh;
    display:flex !important;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    grid-template-columns:none;
    padding:80px 20px 70px;
    gap:18px;
    background:transparent;
    border:none;
    border-radius:0;
    box-sizing:border-box;
  }
  /* Foto do gerenciador no topo do card */
  .ch-slide-image{
    width:100%;
    max-width:340px;
    height:auto;
    max-height:36vh;
    aspect-ratio:4/3;
    flex-shrink:0;
    margin:0 auto;
  }
  .ch-slide-image img{
    height:auto;
    max-height:36vh;
    aspect-ratio:4/3;
  }
  /* Reduz a barra "PRINT REAL · GERENCIADOR · MAIO/2026" pra caber em mobile */
  .ch-slide-image::before{
    content:'PRINT REAL · MAIO/2026';
    padding:10px 14px;
    font-size:8px;
    letter-spacing:.2em;
  }
  .ch-slide-image::after{
    top:14px;
    right:14px;
    width:6px;height:6px;
    box-shadow:10px 0 0 #febc2e, 20px 0 0 #28c840;
  }
  /* Card de info com fundo destacado (separação visual do background) */
  .ch-slide-info{
    width:100%;
    max-width:440px;
    padding:18px 20px 20px;
    background:rgba(0,22,57,.72);
    border:1px solid rgba(193,255,114,.15);
    border-radius:14px;
    display:flex;
    flex-direction:column;
    gap:6px;
    box-shadow:0 10px 28px -10px rgba(0,0,0,.4);
  }
  .ch-slide-counter{font-size:11px;letter-spacing:.2em}
  .ch-slide-sector{font-size:10px;letter-spacing:.18em;color:rgba(193,255,114,.7)}
  .ch-slide-client{
    font-size:clamp(22px, 6vw, 30px);
    margin:4px 0 8px;
    line-height:1.05;
  }
  .ch-slide-metric{margin:6px 0 4px}
  .ch-slide-metric-label{font-size:10px;letter-spacing:.15em}
  .ch-slide-metric-value{
    font-size:clamp(28px, 8vw, 40px);
    line-height:1;
    margin-top:2px;
  }
  .ch-slide-desc{
    font-size:12.5px;
    line-height:1.45;
    margin:6px 0 4px;
    color:rgba(240,235,232,.75);
  }
  .ch-slide-channels{margin-top:4px;gap:6px;flex-wrap:wrap}
  .ch-slide-channels span{
    font-size:9.5px;
    padding:4px 10px;
    letter-spacing:.12em;
  }
}

/* ============ MANIFESTO SERIF (Lando-style) ============ */
.manifesto-section{
  padding:clamp(100px,15vh,200px) 48px;
  position:relative;
  overflow:hidden;
}
.manifesto-inner{
  max-width:1400px;
  margin:0 auto;
}
.manifesto-text{
  font-family:'Instrument Serif',Georgia,serif;
  font-weight:400;
  font-size:clamp(40px,6.5vw,108px);
  line-height:1.02;
  letter-spacing:-.025em;
  color:var(--offwhite);
  max-width:1100px;
}
.manifesto-text em{
  color:var(--lime);
  font-style:italic;
  font-weight:400;
}
@media(max-width:640px){
  .manifesto-section{padding:80px 24px}
  .manifesto-text{font-size:clamp(34px,8vw,52px);line-height:1.05}
}

/* ============ HOVER SWAP LOGOS (Lando-style) ============ */
/* Estado normal: grayscale + opacity baixa = logos "apagados" */
/* Hover: cor de volta + scale leve = logo "acorda" */
.logo-real,
.logo-item img{
  filter:grayscale(1) brightness(.95);
  opacity:.45;
  transition:filter .4s cubic-bezier(.16,1,.3,1),opacity .4s,transform .4s cubic-bezier(.16,1,.3,1);
}
.logo-real:hover,
.logo-item:hover img{
  filter:grayscale(0) brightness(1);
  opacity:1;
  transform:scale(1.08);
}
/* Pausa o marquee no hover pro usuário poder interagir */
.logos-marquee:hover{animation-play-state:paused}

/* SVG bg paths, global fixed (volta pro parallax suave) */
#si-bg-paths{
  pointer-events:none;
  user-select:none;
}
.si-bg-paths-section{pointer-events:none;user-select:none}

/* Sections, main, footer ficam ACIMA do SVG fixed (z-index:0) */
header, main, footer, section{
  position:relative;
  z-index:2;
}

/* IMPORTANTE: NÃO mexer no position de .wa-fab, .loader, .cc-ring, .cc-dot
   eles têm position:fixed próprio e z-index alto no design system. */

/* Header sticky por cima de tudo */
header{z-index:100 !important}
/* Cursor trail canvas por cima do conteúdo, atrás dos elementos fixed */
#si-trail{z-index:9998 !important}

/* ============ A11Y: Reduce motion pra quem prefere ============ */
@media (prefers-reduced-motion: reduce){
  *,
  *::before,
  *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
  .loader{display:none !important}
  .wa-fab{animation:none !important}
  /* Pausa SVG bg paths e oculta cursor trail */
  .si-bg-paths-section path{animation:none !important}
  #si-trail{display:none !important}
}

/* ============ MÉTODO JOURNEY, Scroll-driven jornada vertical ============ */
.metodo-journey{
  position:relative;
  background:var(--navy);
  overflow:hidden;
}
.metodo-journey-inner{
  /* Altura controlada pelo pinSpacing do ScrollTrigger. Sem altura manual aqui:
     evita o salto do painel ao soltar o pin (bug do "carrossel reaparece rolando"). */
  position:relative;
}
.metodo-pin{
  height:calc(100vh - 32px);
  position:relative;
  display:grid;
  grid-template-rows:auto 1fr auto;
  gap:24px;
  padding:48px clamp(28px, 4vw, 64px) 32px;
  box-sizing:border-box;
  max-width:min(1600px, calc(100vw - 40px));
  margin:16px auto;
  /* Moldura, separa visualmente do bg de curvas */
  background:
    linear-gradient(180deg, rgba(0,12,35,.55) 0%, rgba(0,18,52,.72) 50%, rgba(0,12,35,.55) 100%);
  border:1px solid rgba(193,255,114,.12);
  border-radius:20px;
  box-shadow:
    0 32px 80px -16px rgba(0,0,0,.5),
    inset 0 1px 0 rgba(193,255,114,.06),
    inset 0 -1px 0 rgba(0,0,0,.2);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
}
.metodo-pin::before{
  content:'';
  position:absolute;
  inset:14px;
  border:1px dashed rgba(193,255,114,.06);
  border-radius:14px;
  pointer-events:none;
}

/* Header */
.mj-header{
  text-align:center;
}
.mj-main-title{
  font-family:'Instrument Serif', serif;
  font-size:clamp(40px, 5vw, 68px);
  font-weight:400;
  letter-spacing:-.02em;
  margin:12px 0 0;
  color:var(--offwhite);
  line-height:1.05;
}

/* Display: número + info ESQUERDA, visual DIREITA */
.mj-display{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  align-items:center;
  min-height:0;
}

/* ESQUERDA */
.mj-left{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:24px;
}
.mj-numbers{
  position:relative;
  height:clamp(120px, 18vh, 200px);
}
.mj-number{
  font-family:'Instrument Serif', serif;
  font-size:clamp(120px, 18vh, 220px);
  line-height:.9;
  font-weight:400;
  color:var(--lime);
  position:absolute;
  top:0;
  left:0;
  opacity:0;
  transform:translateY(40px) scale(.95);
  transition:opacity .4s cubic-bezier(.65,0,.35,1), transform .4s cubic-bezier(.65,0,.35,1);
  letter-spacing:-.04em;
}
.mj-number.active{
  opacity:1;
  transform:translateY(0) scale(1);
}
.mj-info{
  position:relative;
  min-height:280px;
}
.mj-info-block{
  position:absolute;
  inset:0;
  opacity:0;
  transform:translateY(20px);
  transition:opacity .4s cubic-bezier(.65,0,.35,1), transform .4s cubic-bezier(.65,0,.35,1);
  pointer-events:none;
}
.mj-info-block.active{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}
.mj-stage-title{
  font-family:var(--font);
  font-size:clamp(32px, 3.8vw, 52px);
  font-weight:700;
  letter-spacing:-.02em;
  text-transform:uppercase;
  color:var(--offwhite);
  margin:0 0 18px;
  line-height:1;
}
.mj-stage-desc{
  font-size:clamp(15px, 1.1vw, 18px);
  line-height:1.55;
  color:rgba(240,235,232,.78);
  margin:0 0 24px;
  max-width:520px;
  font-family:var(--font);
}
.mj-bullets{
  list-style:none;
  padding:0;
  margin:0;
  font-family:var(--font);
}
.mj-bullets li{
  padding-left:28px;
  position:relative;
  margin-bottom:10px;
  font-size:14px;
  color:rgba(240,235,232,.65);
  letter-spacing:.01em;
}
.mj-bullets li::before{
  content:'';
  position:absolute;
  left:0;
  top:9px;
  width:18px;
  height:1px;
  background:var(--orange);
}

/* DIREITA: visual area */
.mj-right{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  height:clamp(380px, 50vh, 480px);
}
.mj-visual{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:16px;
  opacity:0;
  transform:scale(.92);
  transition:opacity .4s cubic-bezier(.65,0,.35,1), transform .4s cubic-bezier(.65,0,.35,1);
  pointer-events:none;
}
.mj-visual.active{
  opacity:1;
  transform:scale(1);
  pointer-events:auto;
}
.mj-visual svg{
  width:clamp(280px, 30vw, 420px);
  height:clamp(280px, 30vw, 420px);
  display:block;
}
.mj-visual-label{
  font-family:var(--font);
  font-size:11px;
  letter-spacing:.25em;
  text-transform:uppercase;
  color:rgba(193,255,114,.6);
}

/* === RADAR (01) === */
.mj-radar-ring{
  fill:none;
  stroke:rgba(193,255,114,.18);
  stroke-width:1;
}
.mj-radar-cross{
  stroke:rgba(193,255,114,.12);
  stroke-width:1;
  stroke-dasharray:3 6;
}
.mj-radar-sweep-wrap{
  transform-origin:200px 200px;
  animation:mj-radar-rotate 4s linear infinite;
}
.mj-radar-sweep{
  stroke:var(--lime);
  stroke-width:2;
  stroke-linecap:round;
  filter:drop-shadow(0 0 6px rgba(193,255,114,.6));
}
.mj-radar-cone{
  fill:url(#mj-radar-grad);
  opacity:.18;
}
.mj-visual[data-stage="1"].active .mj-radar-sweep-wrap{
  animation-play-state:running;
}
@keyframes mj-radar-rotate{
  to{transform:rotate(360deg)}
}
.mj-radar-dot{
  fill:var(--orange);
  filter:drop-shadow(0 0 4px rgba(255,69,0,.7));
  animation:mj-radar-blink 1.8s ease infinite;
}
@keyframes mj-radar-blink{
  0%,100%{opacity:0;transform:scale(.4)}
  50%{opacity:1;transform:scale(1.4)}
}
.mj-radar-dot{transform-origin:center;transform-box:fill-box}

/* === NÓS (02) === */
.mj-node-line{
  stroke:rgba(193,255,114,.6);
  stroke-width:1.5;
  stroke-dasharray:300;
  stroke-dashoffset:300;
  transition:stroke-dashoffset 1.2s cubic-bezier(.65,0,.35,1);
}
.mj-visual[data-stage="2"].active .mj-node-line[data-i="1"]{transition-delay:.1s; stroke-dashoffset:0}
.mj-visual[data-stage="2"].active .mj-node-line[data-i="2"]{transition-delay:.3s; stroke-dashoffset:0}
.mj-visual[data-stage="2"].active .mj-node-line[data-i="3"]{transition-delay:.5s; stroke-dashoffset:0}
.mj-visual[data-stage="2"].active .mj-node-line[data-i="4"]{transition-delay:.7s; stroke-dashoffset:0}
.mj-visual[data-stage="2"].active .mj-node-line[data-i="5"]{transition-delay:.9s; stroke-dashoffset:0}
.mj-visual[data-stage="2"].active .mj-node-line[data-i="6"]{transition-delay:1.1s; stroke-dashoffset:0}
.mj-node{
  fill:var(--navy);
  stroke:var(--lime);
  stroke-width:2;
  filter:drop-shadow(0 0 4px rgba(193,255,114,.4));
}
.mj-node-center{
  fill:var(--lime);
  animation:mj-node-pulse 2s ease infinite;
  transform-origin:center;
  transform-box:fill-box;
}
@keyframes mj-node-pulse{
  0%,100%{transform:scale(1);filter:drop-shadow(0 0 4px rgba(193,255,114,.5))}
  50%{transform:scale(1.15);filter:drop-shadow(0 0 12px rgba(193,255,114,.9))}
}
.mj-node-label{
  font-family:var(--font);
  font-size:11px;
  letter-spacing:.15em;
  text-transform:uppercase;
  fill:rgba(240,235,232,.5);
  text-anchor:middle;
}

/* === CONTADORES (03) === */
.mj-counters{
  display:flex;
  flex-direction:column;
  gap:18px;
  width:100%;
  max-width:380px;
  font-family:var(--font);
}
.mj-counter{
  padding:18px 22px;
  background:linear-gradient(135deg, rgba(0,26,68,.7), rgba(0,22,57,.4));
  border:1px solid rgba(193,255,114,.18);
  border-radius:4px;
  backdrop-filter:blur(6px);
}
.mj-counter-label{
  font-size:10px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:rgba(240,235,232,.5);
  margin-bottom:6px;
}
.mj-counter-value{
  font-size:clamp(28px, 3vw, 40px);
  font-weight:700;
  color:var(--lime);
  font-variant-numeric:tabular-nums;
  line-height:1;
  margin-bottom:8px;
  letter-spacing:-.02em;
}
.mj-counter-bar{
  height:3px;
  background:rgba(193,255,114,.08);
  position:relative;
  overflow:hidden;
  border-radius:2px;
}
.mj-counter-bar span{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, var(--orange), var(--lime));
  transform-origin:left;
  transform:scaleX(0);
  width:var(--w, 50%);
  transition:transform 1.5s cubic-bezier(.65,0,.35,1) .4s;
}
.mj-visual[data-stage="3"].active .mj-counter-bar span{
  transform:scaleX(1);
}

/* === GRÁFICO (04) === */
.mj-graph-axis{
  stroke:rgba(240,235,232,.2);
  stroke-width:1;
}
.mj-graph-grid line{
  stroke:rgba(240,235,232,.05);
  stroke-width:1;
  stroke-dasharray:4 6;
}
.mj-graph-bar{
  fill:var(--orange);
  opacity:0;
  transform-origin:bottom center;
  transform:scaleY(0);
  transition:transform .9s cubic-bezier(.34,1.56,.64,1), opacity .3s ease;
}
.mj-visual[data-stage="4"].active .mj-graph-bar{opacity:.9; transform:scaleY(1)}
.mj-visual[data-stage="4"].active .mj-graph-bar[data-i="1"]{transition-delay:.2s}
.mj-visual[data-stage="4"].active .mj-graph-bar[data-i="2"]{transition-delay:.35s}
.mj-visual[data-stage="4"].active .mj-graph-bar[data-i="3"]{transition-delay:.5s}
.mj-visual[data-stage="4"].active .mj-graph-bar[data-i="4"]{transition-delay:.65s}
.mj-visual[data-stage="4"].active .mj-graph-bar[data-i="5"]{transition-delay:.8s}
.mj-graph-line{
  fill:none;
  stroke:var(--lime);
  stroke-width:2.5;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-dasharray:600;
  stroke-dashoffset:600;
  transition:stroke-dashoffset 1.4s cubic-bezier(.65,0,.35,1) 1.1s;
  filter:drop-shadow(0 0 4px rgba(193,255,114,.5));
}
.mj-visual[data-stage="4"].active .mj-graph-line{stroke-dashoffset:0}
.mj-graph-dot{
  fill:var(--lime);
  opacity:0;
  transform:scale(0);
  transform-origin:center;
  transform-box:fill-box;
  transition:opacity .3s ease var(--d, 1s), transform .4s cubic-bezier(.34,1.56,.64,1) var(--d, 1s);
}
.mj-visual[data-stage="4"].active .mj-graph-dot{opacity:1; transform:scale(1)}
.mj-graph-label{
  font-family:var(--font);
  font-size:11px;
  letter-spacing:.2em;
  text-transform:uppercase;
  fill:rgba(193,255,114,.5);
}

/* === PROGRESSO === */
.mj-progress{
  position:relative;
  padding:0 8px;
}
.mj-progress-track{
  height:2px;
  background:rgba(240,235,232,.08);
  position:relative;
  border-radius:1px;
  overflow:hidden;
  margin-bottom:14px;
}
.mj-progress-fill{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, var(--orange), var(--lime));
  transform-origin:left;
  transform:scaleX(.083); /* 1/12 = posição inicial sutil */
  transition:transform .6s cubic-bezier(.65,0,.35,1);
}
.mj-progress-dots{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  position:relative;
}
.mj-progress-dot{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  cursor:pointer;
  font-family:var(--font);
  transition:transform .3s ease;
}
.mj-progress-dot:hover{transform:translateY(-2px)}
.mj-dot-num{
  font-family:'Instrument Serif', serif;
  font-size:18px;
  color:rgba(240,235,232,.3);
  transition:color .35s ease;
  position:relative;
}
.mj-dot-num::before{
  content:'';
  position:absolute;
  top:-10px;
  left:50%;
  transform:translateX(-50%) scale(0);
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--lime);
  transition:transform .35s cubic-bezier(.34,1.56,.64,1);
  box-shadow:0 0 8px rgba(193,255,114,.6);
}
.mj-progress-dot.active .mj-dot-num{color:var(--lime)}
.mj-progress-dot.active .mj-dot-num::before{transform:translateX(-50%) scale(1)}
.mj-dot-label{
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(240,235,232,.35);
  transition:color .35s ease;
}
.mj-progress-dot.active .mj-dot-label{color:var(--offwhite)}

/* === MOBILE: CARROSSEL HORIZONTAL via position:sticky + transform (sem GSAP pin) ===
   Section recebe height de 400vh via JS. .mj-mob-carousel é injetado direto na section
   pelo JS, e gruda no topo (sticky) enquanto rola. Toda a estrutura desktop
   (.metodo-journey-inner) é escondida em mobile pra não ocupar espaço. */
@media (max-width: 900px){
  .metodo-journey{
    /* height definida via JS (4 * 100vh = 400vh) */
    padding:0;
    position:relative;
    overflow:visible;
    background:var(--navy);
  }
  /* Esconde TODA a estrutura desktop em mobile.
     O JS injeta .mj-mob-carousel como filho direto da section. */
  .metodo-journey-inner{display:none !important}

  /* Carrossel mobile: STICKY pra grudar no topo enquanto a section rola */
  .mj-mob-carousel{
    position:sticky;
    top:0;
    width:100%;
    height:100vh;
    height:100svh;
    overflow:hidden;
    background:var(--navy);
    z-index:1;
  }

  /* Header do Método dentro do carrossel sticky */
  .mj-mob-header{
    position:absolute;
    top:24px;
    left:24px;
    right:24px;
    z-index:6;
    padding:0;
    text-align:center;
    pointer-events:none;
  }
  .mj-mob-header .section-eyebrow{
    display:inline-block;
    font-size:9px;
    padding:5px 10px;
    letter-spacing:.22em;
    pointer-events:auto;
  }
  .mj-mob-header .mj-main-title{
    font-size:clamp(18px, 5vw, 24px);
    line-height:1.1;
    margin-top:8px;
  }

  .mj-mob-track{
    display:flex;
    flex-direction:row;
    align-items:stretch;
    width:400vw;
    height:100vh;
    height:100svh;
    will-change:transform;
    transform:translate3d(0,0,0);
  }
  /* Card com GRID de rows fixas → garante que número, título, desc e bullets
     ficam na MESMA altura em todos os 4 cards. Visual ocupa o espaço restante. */
  .mj-mob-card{
    flex:0 0 100vw;
    width:100vw;
    height:100vh;
    height:100svh;
    padding:110px 24px 40px; /* abaixo do header+dica, acima da margem inferior */
    display:grid;
    grid-template-rows:
      auto /* número (01-04) */
      auto /* título (Diagnóstico/Estratégia/etc) */
      auto /* descrição */
      auto /* bullets */
      1fr; /* visual ocupa o resto */
    align-items:start;
    gap:8px;
    position:relative;
    box-sizing:border-box;
  }
  /* Painel de contraste, só atrás do conteúdo de texto (não envolve o visual) */
  .mj-mob-card::before{
    content:'';
    position:absolute;
    top:104px;
    left:14px;
    right:14px;
    bottom:32px;
    background:rgba(0,22,57,.72);
    border:1px solid rgba(193,255,114,.15);
    border-radius:16px;
    box-shadow:0 12px 28px -10px rgba(0,0,0,.4);
    z-index:0;
  }
  /* TODOS elementos com z-index:1+ pra ficar acima do painel */
  .mj-mob-card > *{position:relative;z-index:1}

  /* Número 01/02/03/04, posição fixa em todos os cards */
  .mj-mob-num{
    font-family:'Instrument Serif', Georgia, serif;
    font-size:clamp(54px, 14vw, 78px);
    line-height:1;
    font-weight:400;
    color:var(--lime);
    letter-spacing:-.04em;
    font-style:italic;
    margin:0;
    padding:8px 0 0 12px;
  }
  /* Info block clonado: layout limpo, sem animações herdadas */
  .mj-mob-card .mj-info-block{
    position:relative !important;
    inset:auto !important;
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
    animation:none !important;
    pointer-events:auto;
    padding:0 12px;
    margin:0;
    border-top:none;
    display:contents; /* deixa os filhos (.mj-stage-title, .mj-stage-desc, .mj-bullets) participarem do grid */
  }
  .mj-mob-card .mj-stage-title{
    font-size:clamp(22px, 6vw, 28px);
    margin:0;
    padding:0 14px;
    text-transform:uppercase;
    letter-spacing:-.01em;
    line-height:1.05;
    color:var(--offwhite);
    font-weight:700;
  }
  .mj-mob-card .mj-stage-desc{
    font-size:13.5px;
    line-height:1.45;
    margin:0;
    padding:0 14px;
    color:rgba(240,235,232,.92);
    font-weight:400;
  }
  .mj-mob-card .mj-bullets{
    margin:0;
    padding:0 14px 8px;
    list-style:none;
  }
  .mj-mob-card .mj-bullets li{
    font-size:12px;
    padding-left:20px;
    margin-bottom:5px;
    line-height:1.4;
    color:rgba(240,235,232,.85);
  }
  .mj-mob-card .mj-bullets li::before{
    width:12px;
    top:8px;
  }
  /* Visual no rodapé do card, ocupa o espaço sobrante (1fr), centralizado */
  .mj-mob-card .mj-visual{
    position:relative !important;
    inset:auto !important;
    pointer-events:auto;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:0;
    padding:12px 12px 0;
    overflow:hidden;
  }
  .mj-mob-card .mj-visual svg{
    width:auto;
    height:auto;
    max-width:64vw;
    max-height:100%;
  }
  /* Counters do stage 3, mais quadrado (largura menor + valores maiores) */
  .mj-mob-card[data-stage="3"] .mj-counters{
    display:flex;
    flex-direction:column;
    gap:10px;
    width:100%;
    max-width:240px;
    transform:none;
  }
  .mj-mob-card[data-stage="3"] .mj-counter{padding:0}
  .mj-mob-card[data-stage="3"] .mj-counter-label{font-size:9.5px;letter-spacing:.16em}
  .mj-mob-card[data-stage="3"] .mj-counter-value{font-size:clamp(22px,6vw,28px);margin:2px 0 5px;line-height:1}
  .mj-mob-card[data-stage="3"] .mj-counter-bar{height:4px}
  /* Esconde labels redundantes ("Scanning teu cenário", etc, já temos título) */
  .mj-mob-card .mj-visual-label{display:none}

  /* Visual sempre visível em mobile (não depende de .active pra aparecer).
     Mas animações INTERNAS (linhas, barras, contadores) só rodam quando .active
     é adicionado pelo scroll listener, quando o usuário REVELA o card. */
  .mj-mob-card .mj-visual{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
  /* Estados iniciais quando card NÃO está ativo (antes de revelar) */
  .mj-mob-card .mj-visual:not(.active) .mj-graph-bar{opacity:.2; transform:scaleY(.05); transform-origin:bottom}
  .mj-mob-card .mj-visual:not(.active) .mj-graph-line{stroke-dashoffset:600}
  .mj-mob-card .mj-visual:not(.active) .mj-graph-dot{opacity:0; transform:scale(0)}
  .mj-mob-card .mj-visual:not(.active) .mj-node-line{stroke-dashoffset:100}
  .mj-mob-card .mj-visual:not(.active) .mj-counter-bar span{width:0 !important}

  /* Dica de scroll, agora NO TOPO junto com header (não embaixo, não atrapalha) */
  .mj-mob-carousel::after{
    content:'rolar pra ver os 4 passos →';
    position:absolute;
    top:72px;
    left:0;
    right:0;
    text-align:center;
    font-size:9px;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:var(--lime);
    opacity:.55;
    z-index:5;
    pointer-events:none;
    animation:swipe-hint 2s ease-in-out infinite;
  }
}
@keyframes swipe-hint{
  0%,100%{transform:translateX(0)}
  50%{transform:translateX(8px)}
}

/* === REDUCED MOTION === */
@media (prefers-reduced-motion: reduce){
  .mj-radar-sweep-wrap, .mj-radar-dot, .mj-node-center{animation:none !important}
  .mj-number, .mj-info-block, .mj-visual{transition-duration:.2s !important}
}

/* ============ MOBILE MOTION FALLBACKS ============ */
/* Em mobile, IntersectionObserver pode não disparar (especialmente iOS Safari).
   Aqui garantimos que TODOS os elementos .reveal apareçam mesmo sem JS.
   E adicionamos uma animação CSS sutil pra dar sensação de motion. */
@media (max-width: 900px){
  /* Reveals: começam visíveis em mobile (não dependem de JS) */
  .reveal{
    opacity:1 !important;
    transform:none !important;
    animation:mobile-fade-up .8s cubic-bezier(.16,1,.3,1) backwards;
  }
  /* Distribui o delay pra dar sensação cascata */
  .reveal:nth-child(1){animation-delay:0s}
  .reveal:nth-child(2){animation-delay:.1s}
  .reveal:nth-child(3){animation-delay:.2s}
  .reveal:nth-child(4){animation-delay:.3s}
  .reveal:nth-child(5){animation-delay:.4s}
  .reveal:nth-child(6){animation-delay:.5s}
}
@keyframes mobile-fade-up{
  from{opacity:0;transform:translateY(20px)}
  to{opacity:1;transform:translateY(0)}
}

/* Cases mobile: regras horizontais nativas já estão em @media(max-width:768px) acima.
   Bloco antigo de override (column) removido, estava quebrando o swipe horizontal. */

/* Quando reduced motion estiver ativo, remove TODAS as animações */
@media (prefers-reduced-motion: reduce){
  .reveal{animation:none !important;opacity:1 !important;transform:none !important}
  *{animation-duration:.01ms !important;animation-delay:0s !important;transition-duration:.01ms !important}
}

/* ============ COOKIE CONSENT BANNER (LGPD), compacto e discreto ============ */
#si-cookie-banner{
  position:fixed;
  bottom:20px;
  right:20px;
  z-index:9999;
  max-width:380px;
  pointer-events:none;
  font-family:var(--font);
  opacity:0;
  transform:translateY(20px);
  transition:opacity .4s var(--cubic-default), transform .4s var(--cubic-default);
}
#si-cookie-banner.cb-visible{
  opacity:1;
  transform:translateY(0);
}
#si-cookie-banner .cb-card{
  pointer-events:auto;
  background:rgba(0, 18, 52, .96);
  backdrop-filter:blur(16px) saturate(1.4);
  -webkit-backdrop-filter:blur(16px) saturate(1.4);
  border:1px solid rgba(193, 255, 114, .15);
  border-radius:10px;
  padding:16px 18px;
  box-shadow:0 12px 32px -8px rgba(0,0,0,.5);
  color:var(--offwhite);
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}
.cb-text{
  font-size:13px;
  line-height:1.45;
  color:rgba(240,235,232,.85);
  margin:0;
  flex:1;
  min-width:180px;
}
.cb-text a{
  color:var(--lime);
  text-decoration:underline;
  text-underline-offset:2px;
}
.cb-text a:hover{color:var(--offwhite)}
.cb-actions{
  display:flex;
  gap:8px;
  flex-shrink:0;
}
.cb-btn{
  font-family:var(--font);
  font-weight:600;
  font-size:11px;
  letter-spacing:.04em;
  padding:8px 14px;
  border-radius:5px;
  cursor:pointer;
  border:none;
  transition:transform var(--animation-fast), background var(--animation-fast);
  white-space:nowrap;
}
.cb-btn-ghost{
  background:transparent;
  color:rgba(240,235,232,.65);
  border:1px solid rgba(240,235,232,.18);
}
.cb-btn-ghost:hover{
  background:rgba(255,255,255,.04);
  color:var(--offwhite);
}
.cb-btn-accept{
  background:var(--lime);
  color:var(--navy);
}
.cb-btn-accept:hover{
  transform:translateY(-1px);
  background:#d4ff8d;
}

@media (max-width: 600px){
  #si-cookie-banner{
    bottom:12px;
    left:12px;
    right:12px;
    max-width:none;
  }
  #si-cookie-banner .cb-card{
    padding:14px 16px;
    flex-direction:column;
    align-items:stretch;
    gap:12px;
  }
  .cb-text{flex:none;text-align:left}
  .cb-actions{justify-content:flex-end}
}

/* ============ HONEYPOT TRAP, invisível pra humano, visível pra bot ============ */
.hp-trap{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}

/* ============ ACCESSIBILITY, FOCUS STATES (WCAG 2.1 AA) ============ */
/* Outline em todos elementos focáveis via teclado. Lime fica visível no navy. */
:focus{outline:none}
:focus-visible{
  outline:2px solid var(--lime);
  outline-offset:3px;
  border-radius:2px;
  transition:outline-offset var(--animation-fast);
}
/* Para botões e CTAs, halo maior */
a:focus-visible,
button:focus-visible,
.btn-cta:focus-visible,
.btn-primary:focus-visible,
.btn-secondary:focus-visible,
.btn-dark:focus-visible,
[role="button"]:focus-visible{
  outline-offset:4px;
  box-shadow:0 0 0 4px rgba(193,255,114,.15);
}
/* Inputs/textarea, outline + lime border */
input:focus-visible,
textarea:focus-visible,
select:focus-visible{
  outline:2px solid var(--lime);
  outline-offset:2px;
  border-color:var(--lime) !important;
}
/* Skip-to-content link (escondido até foco) */
.skip-to-content{
  position:absolute;
  top:-100px;
  left:24px;
  z-index:10000;
  background:var(--lime);
  color:var(--navy);
  padding:14px 24px;
  font-weight:700;
  font-size:13px;
  letter-spacing:.1em;
  text-transform:uppercase;
  text-decoration:none;
  border-radius:4px;
  transition:top var(--animation-fast);
}
.skip-to-content:focus-visible{
  top:24px;
  outline:none;
  box-shadow:0 4px 24px rgba(0,0,0,.3);
}

/* ============ VALORES + MANIFESTO (originalmente inline em sobre.html) ============ */
/* Migrado pra global pra poder reaproveitar em cases.html */
.valores-section{
  background:var(--navy);
  padding:120px 48px;
  border-top:1px solid rgba(240,235,232,.05);
}
.valores-inner{max-width:1300px;margin:0 auto}
.valores-header{text-align:center;max-width:780px;margin:0 auto 80px}
.valores-title{
  font-size:clamp(36px,4.2vw,60px);
  font-weight:700;line-height:1;letter-spacing:-.03em;
  color:var(--offwhite);margin-bottom:24px;
}
.valores-title .accent{color:var(--orange);font-style:italic}
.valores-sub{
  font-size:17px;line-height:1.5;color:rgba(240,235,232,.6);
}
.valores-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
}
.valor-card{
  background:rgba(255,255,255,.03);
  border:1px solid rgba(240,235,232,.08);
  border-top:3px solid var(--lime);
  padding:40px 32px;
  transition:transform var(--animation-fast);
}
.valor-card:hover{transform:translateY(-4px)}
.valor-num{
  font-size:12px;letter-spacing:.25em;color:var(--lime);
  font-weight:600;margin-bottom:16px;
}
.valor-title{
  font-size:22px;font-weight:600;color:var(--offwhite);
  margin-bottom:16px;letter-spacing:-.02em;
}
.valor-text{
  font-size:14px;line-height:1.6;color:rgba(240,235,232,.65);
}

/* MANIFESTO FINAL (estilo serif gigante) */
.manifesto-section{
  background:var(--navy);
  padding:120px 48px;
  border-top:1px solid rgba(240,235,232,.05);
  text-align:center;
}
.manifesto-inner{max-width:880px;margin:0 auto}
.manifesto-eyebrow{
  display:inline-flex;align-items:center;gap:12px;
  font-size:11px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--orange);margin-bottom:32px;font-weight:600;
}
.manifesto-eyebrow span{width:32px;height:1px;background:var(--orange);display:inline-block}
.manifesto-text{
  font-size:clamp(24px,2.8vw,38px);
  font-weight:600;line-height:1.3;letter-spacing:-.02em;
  color:var(--offwhite);
}
.manifesto-text em{color:var(--orange);font-style:italic;font-weight:700}
.manifesto-sign{
  margin-top:40px;
  font-size:13px;letter-spacing:.2em;text-transform:uppercase;
  color:rgba(240,235,232,.5);
}
@media (max-width: 900px){
  .valores-section,.manifesto-section{padding:80px 24px}
  .valores-grid{grid-template-columns:1fr;gap:16px}
}

/* ============ POLIMENTO INSPIRADO NO LANDO NORRIS ============ */
/* Aplica tokens de motion global em elementos interativos chave.
   Não muda CSS antigo agressivamente, só onde dá ganho real. */

/* === MASK GRADIENT NOS MARQUEES === */
/* Logos das empresas / canais entram e saem com fade nas bordas */
.logos-marquee-wrap,
.canais-marquee-wrap,
.marquee-row,
[class*="marquee-wrap"],
[data-marquee-track]{
  -webkit-mask-image:linear-gradient(90deg,
    hsla(0,0%,100%,0) 0%,
    #000 8%,
    #000 92%,
    hsla(0,0%,100%,0) 100%);
  mask-image:linear-gradient(90deg,
    hsla(0,0%,100%,0) 0%,
    #000 8%,
    #000 92%,
    hsla(0,0%,100%,0) 100%);
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-size:100% 100%;
  mask-size:100% 100%;
}

/* === HOVER REFINADO NOS PRINTS DE CASES === */
/* Print do gerenciador zoom in sutil + filtro intensifica quando passa mouse */
.ch-slide-image-wrap{
  overflow:hidden;
  position:relative;
}
.ch-slide-image-wrap img{
  transition:transform var(--animation-default), filter var(--animation-default);
  will-change:transform;
}
.ch-slide:hover .ch-slide-image-wrap img,
.ch-slide-image:hover img{
  transform:scale(1.035);
  filter:contrast(1.08) brightness(1.04) saturate(1.06);
}

/* Idem pros prints do deep dive (case-list, se visível) */
.case-image-slot.filled{
  overflow:hidden;
}
.case-image-slot.filled .case-print-img{
  transition:transform var(--animation-default), filter var(--animation-default);
  will-change:transform;
}
.case-image-slot.filled:hover .case-print-img{
  transform:scale(1.03);
  filter:contrast(1.08) brightness(1.04);
}

/* === MICRO INTERACTIONS, BTNs com easing premium === */
/* Atualiza só o easing (mantém durations curtas pra feedback rápido) */
.btn-cta,
.btn-primary,
.btn-secondary,
.btn-dark{
  transition-timing-function:var(--cubic-default) !important;
}
.btn-cta:hover,
.btn-primary:hover,
.btn-secondary:hover,
.btn-dark:hover{
  transition-timing-function:var(--cubic-snap) !important;
}

/* === CARDS COM EASING PREMIUM === */
.case-card,
.metodo-step,
.logo-card,
.agencia-card,
.dif-card,
.trust-card,
.contato-card{
  transition:
    transform var(--animation-fast),
    border-color var(--animation-default),
    background-color var(--animation-default),
    box-shadow var(--animation-default) !important;
}

/* === IMAGE REVEALS, clip-path elíptico estilo Lando === */
/* Aplicável onde tiver .reveal-clip, opt-in */
.reveal-clip{
  clip-path:ellipse(100% 50% at 50% 50%);
  transition:clip-path var(--animation-default), transform var(--animation-default);
}
.reveal-clip:hover{
  clip-path:ellipse(85% 50% at 50% 50%);
  transform:scale(1.02);
}

/* === LINKS COM UNDERLINE ANIMADO === */
/* Já tem em alguns lugares, refina o easing */
nav a::after,
.footer-link::after{
  transition:width var(--animation-fast) !important;
}

/* === HEADER/NAV SUTIL EM SCROLL === */
/* Quando rola, o header ganha leve backdrop blur (modernidade Lando) */
#header,
header{
  transition:background var(--animation-fast), backdrop-filter var(--animation-fast), border-color var(--animation-fast);
}
#header.scrolled,
header.scrolled{
  backdrop-filter:blur(14px) saturate(1.4);
  -webkit-backdrop-filter:blur(14px) saturate(1.4);
  background:rgba(0, 22, 57, 0.65) !important;
  border-bottom-color:rgba(193, 255, 114, 0.08);
}

/* visualmente oculto, mas lido por crawler/IA e leitor de tela */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
