/* ============================================================
   EITA · Mobile version (≤640px design)
   Mesmo sistema visual do desktop: tokens, fontes, sombras.
   ============================================================ */
:root{
  --ink:#17202a;
  --ink-2:#3a4754;
  --mute:#65727f;
  --mute-2:#8a96a1;
  --line:#dfe8eb;
  --line-2:#eef3f5;
  --paper:#f5f7f6;
  --paper-2:#fafbfb;
  --green:#00efa9;
  --green-deep:#0a7757;
  --green-soft:#d6f7eb;
  --blue:#007fa4;
  --danger:#b94a2c;
  --shadow-card: 0 1px 2px rgba(15,25,30,0.04), 0 8px 24px rgba(15,25,30,0.06);
  --shadow-lift: 0 1px 2px rgba(15,25,30,0.06), 0 20px 44px rgba(15,25,30,0.12);
}
*{box-sizing:border-box}
html,body{margin:0; padding:0;}
html{scroll-behavior:smooth;}
/* Disable pinch/double-tap zoom on mobile (layout breaks when zoomed).
   touch-action:pan-y on root: at the DOCUMENT level only vertical scroll is
   allowed via touch. Pinch + double-tap zoom + horizontal page panning are
   ALL blocked. Carousels that need horizontal swipe re-enable it locally
   with `touch-action: pan-x pan-y` (see .testi-carousel-stage etc.).
   JS handlers in mobile.js add belt-and-suspenders for iOS Safari (which
   ignores user-scalable=no since iOS 10). */
html,body{touch-action:pan-y;}
/* Block rubber-band/bounce when dragging beyond the page edges (top, bottom
   and sides). Combined with overflow-x:clip on body, the document can no
   longer be dragged past its natural bounds. */
html,body{overscroll-behavior:none; overscroll-behavior-x:none; overscroll-behavior-y:none;}
html{overflow-x:clip; max-width:100%;}
/* Document-level touch is locked to vertical only (above). Re-enable
   horizontal panning ONLY inside carousels that actually need it. */
.testi-carousel-stage,
.demos-tabs,
.demo-tags,
.media-scroll,
.pricing-grid,
.blog-scroll,
.chat-quick-scroll{
  touch-action:pan-x pan-y;
  overscroll-behavior-x:contain;
}
body{
  font-family:'League Spartan', system-ui, sans-serif;
  background:var(--paper);
  color:var(--ink);
  font-size:15px;
  line-height:1.5;
  letter-spacing:-0.005em;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
  max-width:100%;
  width:100%;
}
/* Reserve room for sticky CTA only while it's actually visible */
body:has(.sticky-cta.is-on){padding-bottom:86px;}
img,video{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; padding:0;}
input,textarea{font-family:inherit;}

.container{padding:0 18px;}

/* ===== TYPE ===== */
.h{font-weight:700; letter-spacing:-0.025em; line-height:1.07; text-wrap:balance;}
.h1{font-size:38px;}
.h2{font-size:clamp(30px, 8.4vw, 38px); text-align:center;}
.h3{font-size:22px;}
/* Mobile: padroniza TODOS os titulos de secao -> centralizados (eyebrow + h2 + subtitulo). */
.h-eyebrow{
  font-family:'JetBrains Mono', monospace; font-size:10.5px; font-weight:600;
  letter-spacing:1.4px; text-transform:uppercase; color:var(--green-deep);
  display:flex; justify-content:center; align-items:center; gap:8px;
}
.problem-head, .media-head, .blog-head, .mv3-head { text-align: center; }
.solution-text > p, .features-text > p, .scientist-text > p, .companion-text > p { text-align: center; }
.h-eyebrow::before{content:""; width:16px; height:1.5px; background:var(--green-deep);}
.sub{font-size:15px; color:var(--mute); line-height:1.55;}
.label-mono{font-family:'JetBrains Mono', monospace; text-transform:uppercase; letter-spacing:1.2px; font-weight:600; font-size:10.5px; color:var(--mute);}

/* ===== BUTTONS ===== */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  background:var(--ink); color:#fff;
  border-radius:14px; min-height:52px; padding:0 22px;
  font-size:15px; font-weight:700; letter-spacing:-0.01em;
  transition:transform .12s, box-shadow .15s, background .15s;
}
.btn:active{transform:scale(0.98);}
.btn.green{background:var(--green); color:var(--ink);}
.btn.ghost{background:transparent; color:var(--ink); border:1px solid var(--line);}
.btn.full{width:100%;}
.btn.sm{min-height:42px; font-size:13.5px; padding:0 16px; border-radius:11px;}
.btn .arr{width:16px; height:16px;}

/* ===== CHIP & PULSE ===== */
.chip{
  display:inline-flex; align-items:center; gap:6px;
  padding:5px 11px; border-radius:999px;
  font-size:10.5px; font-weight:700; letter-spacing:0.8px; text-transform:uppercase;
  background:var(--ink); color:#fff;
}
.pulse-dot{
  display:inline-block; width:7px; height:7px; border-radius:50%;
  background:#1ec46c;
  box-shadow:0 0 0 0 rgba(30,196,108,.55);
  animation:pulseGreen 1.6s ease-in-out infinite;
}
@keyframes pulseGreen{0%,100%{box-shadow:0 0 0 0 rgba(30,196,108,.55);}50%{box-shadow:0 0 0 5px rgba(30,196,108,0);}}

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:sticky; top:0; z-index:100;
  background:rgba(245,247,246,0.92);
  backdrop-filter:blur(14px) saturate(160%);
  -webkit-backdrop-filter:blur(14px) saturate(160%);
  border-bottom:1px solid transparent;
  transition:border-color .2s, background .2s;
}
.nav.scrolled{border-bottom-color:var(--line); background:rgba(255,255,255,0.96);}
.nav-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 16px; gap:10px;
}
.nav-logo{height:34px; width:auto; display:block;}
.nav-actions{display:flex; align-items:center; gap:8px;}
.nav-cta-sm{
  background:var(--ink); color:#fff;
  padding:9px 14px; border-radius:999px; font-weight:700; font-size:12.5px;
  display:inline-flex; align-items:center; gap:5px;
}
.menu-toggle{
  width:42px; height:42px; border-radius:12px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px;
  background:#fff; border:1px solid var(--line);
}
.menu-toggle span{width:18px; height:2px; background:var(--ink); border-radius:2px; transition:transform .2s, opacity .2s;}
.menu-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-toggle.is-open span:nth-child(2){opacity:0;}
.menu-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* nav lang picker */
.nav-lang-wrap{position:relative;}
.nav-lang{
  height:38px; padding:0 13px; border-radius:999px;
  background:#fff; border:1px solid var(--line);
  display:inline-flex; align-items:center; gap:6px;
  font-size:12.5px; font-weight:700; color:var(--ink-2); line-height:1;
  letter-spacing:0.02em;
}
.nav-lang svg{width:14px; height:14px; opacity:0.7;}
.nav-lang-overlay{
  position:absolute; top:calc(100% + 6px); right:0;
  background:#fff; border-radius:13px;
  box-shadow:0 12px 36px rgba(0,0,0,0.14), 0 0 0 1px rgba(0,0,0,0.04);
  width:200px; padding:6px; z-index:60;
  opacity:0; transform:translateY(-6px) scale(0.97);
  transform-origin:top right; pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
}
.nav-lang-overlay.is-open{opacity:1; transform:translateY(0) scale(1); pointer-events:auto;}
.nav-lang-item{
  display:flex; align-items:center; gap:10px; padding:9px 10px;
  border-radius:9px; font-size:13px; color:var(--ink); line-height:1.2;
  width:100%; text-align:left; background:transparent;
  font-family:inherit; font-weight:600;
}
.nav-lang-item:hover{background:var(--paper);}
.nav-lang-item.is-active{background:#f3faf5;}
.nav-lang-item .flag{font-size:16px; line-height:1; width:20px; text-align:center;}
.nav-lang-item > span:nth-child(2){flex:1;}
.nav-lang-item .lcode{font-size:10px; font-weight:700; color:var(--mute); font-family:'JetBrains Mono', monospace; letter-spacing:0.06em;}
.nav-lang-item.is-active .lcode{color:var(--green-deep);}

/* mobile drawer */
.drawer{
  position:fixed; inset:0; z-index:90;
  pointer-events:none;
}
.drawer-veil{
  position:absolute; inset:0; background:rgba(15,25,30,0.4);
  opacity:0; transition:opacity .25s;
}
.drawer-panel{
  position:absolute; top:0; right:0; bottom:0;
  width:min(86vw, 360px);
  background:#fff;
  transform:translateX(100%); transition:transform .35s cubic-bezier(.2,.7,.2,1);
  display:flex; flex-direction:column;
  box-shadow:-12px 0 40px rgba(0,0,0,0.12);
}
.drawer.is-open{pointer-events:auto;}
.drawer.is-open .drawer-veil{opacity:1;}
.drawer.is-open .drawer-panel{transform:translateX(0);}
.drawer-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 18px; border-bottom:1px solid var(--line-2);
}
.drawer-head img{height:32px;}
.drawer-close{
  width:36px; height:36px; border-radius:50%;
  background:var(--paper); display:grid; place-items:center;
  font-size:22px; color:var(--ink);
}
.drawer-links{
  flex:1; overflow-y:auto;
  padding:8px 0 16px;
  display:flex; flex-direction:column;
}
.drawer-links a{
  padding:16px 22px;
  font-size:17px; font-weight:600;
  border-bottom:1px solid var(--line-2);
  display:flex; align-items:center; justify-content:space-between;
}
.drawer-links a::after{
  content:""; width:8px; height:8px;
  border-right:2px solid var(--mute-2); border-top:2px solid var(--mute-2);
  transform:rotate(45deg);
}
.drawer-foot{
  padding:18px 22px; border-top:1px solid var(--line-2);
  display:flex; flex-direction:column; gap:12px;
  background:var(--paper-2);
}
.drawer-foot .lang-row{
  display:flex; gap:8px;
}
.drawer-foot .lang-row button{
  flex:1; padding:9px 0; border-radius:10px;
  background:#fff; border:1px solid var(--line);
  font-size:13px; font-weight:600; color:var(--ink-2);
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
}
.drawer-foot .lang-row button.is-active{background:var(--green-soft); border-color:#c2eed8; color:var(--green-deep);}

/* ============================================================
   HERO
   ============================================================ */
.hero{padding:18px 0 14px;}
.hero .container{text-align:center; display:flex; flex-direction:column; align-items:center;}
.hero .container > *{width:100%;}
.hero .container > .hero-tag{width:auto; align-self:center;}
.hero-tag{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:6px 11px; border-radius:999px;
  background:var(--green-soft); color:var(--green-deep);
  font-size:11.5px; font-weight:600;
  border:1px solid #c2eed8;
  margin-bottom:14px;
}
.hero h1{margin:0 0 12px; font-size:clamp(38px, 13vw, 56px); line-height:1.0;}
.hero h1 .strike-mint{
  position:relative; display:inline-block;
  background:linear-gradient(transparent 68%, rgba(0,239,169,0.45) 68%, rgba(0,239,169,0.45) 92%, transparent 92%);
  padding:0 4px;
}
.hero-sub{font-size:15px; color:var(--mute); line-height:1.5; margin:0 0 18px;}
.hero-actions{display:flex; flex-direction:column; gap:10px; margin-bottom:16px; align-items:stretch;}
.hero-meta{
  display:flex; gap:14px; flex-wrap:wrap;
  margin-bottom:18px;
  justify-content:center;
}
.hero-meta-item{display:flex; align-items:center; gap:6px; font-size:11.5px; color:var(--mute); font-weight:500;}
.hero-meta-item svg{width:13px; height:13px; color:var(--green-deep);}

.hero-channels{
  padding:14px 0 0; border-top:1px dashed var(--line);
}
.hero-channels-label{
  display:block;
  font-family:'JetBrains Mono', monospace; font-size:10px;
  letter-spacing:1.4px; text-transform:uppercase; color:var(--mute);
  font-weight:600; margin-bottom:10px;
}
/* nowrap keeps all 4 channels on one line; the chips shrink to fit narrow
   screens instead of wrapping "Web" to a second row. */
.hero-channels-row{display:flex; gap:6px; flex-wrap:nowrap; justify-content:center;}
.hero-channel{
  display:inline-flex; align-items:center; justify-content:center; gap:5px;
  padding:7px 10px; border-radius:999px;
  background:#fff; border:1px solid var(--line);
  font-size:11.5px; font-weight:600; white-space:nowrap;
  box-shadow:0 1px 2px rgba(15,25,30,0.04);
  flex:0 1 auto; min-width:0;
}
.hero-channel svg{width:13px; height:13px; flex-shrink:0;}
@media (max-width:360px){
  .hero-channels-row{gap:5px;}
  .hero-channel{padding:6px 8px; font-size:11px; gap:4px;}
}

/* hero chat preview (WhatsApp style, compact) */
.hero-chat{
  margin-top:8px;
  margin-bottom:18px;
  background:linear-gradient(180deg, #ECEDE2 0%, #E2E6CE 100%);
  border-radius:22px; padding:12px;
  box-shadow:var(--shadow-lift);
  overflow:hidden;
  height:440px;
  display:flex; flex-direction:column;
  position:relative;
}
.hero-chat::before{
  content:""; position:absolute; inset:0; opacity:0.05; pointer-events:none;
  background-image: radial-gradient(circle at 25% 25%, #1a3a2e 1px, transparent 1px),
                    radial-gradient(circle at 75% 75%, #1a3a2e 1px, transparent 1px);
  background-size:24px 24px;
}
.hero-chat-head{
  display:flex; align-items:center; gap:10px;
  background:#fff; border-radius:12px; padding:10px 12px;
  position:relative; z-index:1;
  box-shadow:0 2px 6px rgba(0,0,0,0.04);
}
.hero-chat-head .av{
  width:36px; height:36px; border-radius:50%; overflow:hidden;
  background:var(--green-soft); flex-shrink:0;
}
.hero-chat-head .av img{width:100%; height:100%; object-fit:cover;}
.hero-chat-head .info{flex:1; min-width:0; line-height:1; text-align:left;}
.hero-chat-head .info strong{font-size:13.5px; font-weight:700; display:block; line-height:1;}
.hero-chat-head .info small{font-size:11px; color:var(--green-deep); font-weight:500; display:flex; align-items:center; gap:5px; margin-top:2px; line-height:1;}
.hero-chat-head .info .nav-brand-flip{position:relative; min-width:140px; height:14px; overflow:hidden; display:inline-block;}
.hero-chat-head .menu{color:var(--mute); font-size:18px; line-height:1; padding:0 4px;}
.nav-flip-item{position:absolute; left:0; right:0; opacity:0; transform:translateY(8px); transition:opacity .35s, transform .35s; white-space:nowrap;}
.nav-flip-item.is-on{opacity:1; transform:translateY(0);}
.nav-flip-item.is-prev{opacity:0; transform:translateY(-8px);}

.chat-stream{
  flex:1; padding:14px 4px 4px; position:relative; z-index:1;
  display:flex; flex-direction:column; gap:7px;
  overflow:hidden; min-height:0;
  justify-content:flex-end;
}
.bubble{
  max-width:78%; padding:6px 10px 8px;
  font-size:13.5px; line-height:1.4;
  opacity:0; transform:translateY(8px) scale(0.97);
  animation:bubblePop .35s cubic-bezier(.16,1,.3,1) forwards;
  position:relative;
  word-wrap:break-word;
  text-align:left;
}
@keyframes bubblePop{to{opacity:1; transform:translateY(0) scale(1);}}
.bubble .msg{display:inline;}
.bubble .msg::after{content:"\00a0"; display:inline-block; width:52px; height:1px;}
.bubble.user .msg::after{width:60px;}
.bubble .ts{
  position:absolute; right:8px; bottom:4px;
  font-size:10px; color:rgba(0,0,0,0.45);
  font-weight:400; line-height:1;
  white-space:nowrap; user-select:none;
  display:inline-flex; align-items:center; gap:3px;
}
.bubble .ts .ck{display:inline-flex; align-items:center; color:#8696a0; transition:color 0.5s ease;}
.bubble .ts .ck.read{color:#53bdeb;}
.bubble .ts .ck .ck-svg{width:15px; height:10px; display:block;}
.bubble.bot{
  align-self:flex-start;
  background:#fff; color:var(--ink);
  border-radius:0 12px 12px 12px;
  box-shadow:0 1px 1px rgba(0,0,0,0.05);
}
.bubble.bot::before{
  content:""; position:absolute; left:-6px; top:0;
  width:0; height:0;
  border-top:7px solid #fff; border-left:6px solid transparent;
}
.bubble.user{
  align-self:flex-end;
  background:#D9FDD3; color:var(--ink);
  border-radius:12px 0 12px 12px;
  box-shadow:0 1px 1px rgba(0,0,0,0.05);
}
.bubble.user::before{
  content:""; position:absolute; right:-6px; top:0;
  width:0; height:0;
  border-top:7px solid #D9FDD3; border-right:6px solid transparent;
}
.typing{
  align-self:flex-start;
  background:#fff; border-radius:0 12px 12px 12px;
  padding:11px 14px;
  display:none; align-items:center; gap:5px;
  box-shadow:0 1px 1px rgba(0,0,0,0.05);
  opacity:0; animation:bubblePop .25s forwards;
}
.typing.on{display:inline-flex;}
.typing span{width:6px; height:6px; border-radius:50%; background:#94a3a0; animation:typeDot 1.2s infinite;}
.typing span:nth-child(2){animation-delay:0.15s;}
.typing span:nth-child(3){animation-delay:0.3s;}
@keyframes typeDot{0%,60%,100%{opacity:0.4; transform:translateY(0);}30%{opacity:1; transform:translateY(-3px);}}

.chat-input-fake{
  margin-top:10px;
  display:flex; align-items:center; gap:8px;
  background:#fff; border-radius:22px;
  padding:5px 5px 5px 14px; position:relative; z-index:1;
  box-shadow:0 1px 2px rgba(0,0,0,0.04);
}
.chat-input-fake .ph{flex:1; font-size:13px; color:var(--mute-2);}
.chat-input-fake .mic{
  width:32px; height:32px; border-radius:50%;
  background:var(--green); display:grid; place-items:center; color:var(--ink); flex-shrink:0;
}
.chat-input-fake .mic svg{width:14px; height:14px;}

/* ============================================================
   ACRONYM
   ============================================================ */
.acronym-sec{padding:18px 0 6px; text-align:center;}
.acronym-sec h3{
  font-family:'League Spartan'; font-weight:500;
  font-size:18px; margin:0 0 12px; letter-spacing:-0.005em;
  color:var(--ink-2);
}
.acronym-phrase{
  font-family:'League Spartan'; font-weight:700;
  font-size:21px; line-height:1.18; letter-spacing:-0.02em;
  color:var(--ink); margin:0;
  /* NOTE: no text-wrap:balance — line breaks are controlled manually with
     <br/>, and balance was rebalancing around the inline-block letters,
     splitting words like "Treino" between the highlighted "T" and "reino". */
}
/* Each acronym word is wrapped in .aw so it never breaks internally
   (keeps the highlighted first letter glued to the rest of the word). */
.acronym-phrase .aw{white-space:nowrap;}
.acronym-phrase .l{
  display:inline-block; position:relative;
  color:var(--ink); font-weight:800;
}
.acronym-phrase .l::after{
  content:""; position:absolute; left:-2%; right:-2%; bottom:8%;
  height:14%; background:rgba(0,239,169,0.5); z-index:-1; border-radius:3px;
}

/* ============================================================
   STATS / MOVEMENT
   ============================================================ */
.movement{padding:18px 0 8px;}
.movement-stats{display:flex; flex-direction:column; gap:10px;}
.mv-stat{
  display:flex; flex-direction:column; align-items:flex-start; gap:6px;
  padding:18px 18px;
  background:#fff; border:1px solid var(--line); border-radius:14px;
  box-shadow:var(--shadow-card);
}
.mv-stat .num{
  font-family:'League Spartan'; font-weight:800;
  font-size:42px; line-height:1; letter-spacing:-0.03em;
  font-variant-numeric:tabular-nums;
  color:var(--ink); flex-shrink:0; white-space:nowrap;
}
.mv-stat .num .plus{color:var(--green-deep); font-size:0.55em; vertical-align:top; margin-right:2px; font-weight:700;}
.mv-stat .num .unit{font-family:'JetBrains Mono', monospace; font-size:0.3em; color:var(--mute); margin-left:4px; vertical-align:middle; text-transform:uppercase; letter-spacing:0.08em; font-weight:600;}
.mv-stat .lbl{font-size:13px; color:var(--ink-2); line-height:1.35; font-weight:500;}

/* marquee */
.movement-marquee{margin-top:14px;}
.hero-strip-bar{
  background:var(--ink); color:#fff;
  border-radius:14px;
  padding:14px 16px;
  display:flex; flex-direction:column; gap:10px;
}
.hero-strip-label{
  font-family:'JetBrains Mono', monospace; font-size:10px; letter-spacing:1.4px;
  text-transform:uppercase; color:rgba(255,255,255,0.5);
}
.marquee{overflow:hidden; mask:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);}
.marquee-track{display:flex; gap:32px; align-items:center; animation:scroll 18s linear infinite;}
.marquee-track img{height:24px; opacity:0.85; filter:brightness(0) invert(1); flex-shrink:0;}
.marquee-track span{font-family:'League Spartan'; font-weight:700; font-size:18px; letter-spacing:-0.02em; color:#fff; white-space:nowrap; flex-shrink:0;}
.marquee-track .ml-exame{font-family:'League Spartan'; font-weight:800; font-size:20px;}
.marquee-track .ml-terra{font-family:'League Spartan'; font-weight:800; font-size:22px; letter-spacing:-0.06em; line-height:1; text-transform:lowercase;}
.marquee-track .ml-metropoles{font-size:15px; letter-spacing:0.02em;}
.marquee-track .ml-em{font-family:'JetBrains Mono', monospace; font-weight:600; font-size:12px; letter-spacing:0.12em;}
.marquee-track .ml-carta{font-weight:700; font-size:17px; letter-spacing:-0.025em;}
.marquee-track .ml-correio{font-style:italic; font-weight:600; font-size:15px;}
.marquee-track .ml-jovempan{font-weight:800; font-size:16px;}
.marquee-track .ml-antagonista{font-weight:700; font-size:15px; font-style:italic;}
.marquee-track .ml-vidasimples{font-weight:300; font-size:18px;}
.marquee-track .ml-vidasimples i{font-style:normal; font-weight:700;}
.marquee-track .ml-papopop{font-weight:700; font-size:14px; padding:4px 10px; border:1.5px solid rgba(255,255,255,0.3); border-radius:999px;}
@keyframes scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ============================================================
   PROBLEM
   ============================================================ */
.problem{padding:50px 0; background:#fff; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.problem-head h2{margin:10px 0 14px;}
.problem-head p{color:var(--mute); font-size:15px; margin:0 0 24px; text-wrap:pretty;}
.problem-stack{display:flex; flex-direction:column; gap:12px;}
.problem-card{
  border:1px solid var(--line); border-radius:16px; padding:22px;
  background:var(--paper-2);
  display:flex; flex-direction:column; gap:10px;
}
.problem-card .pc-num{
  width:32px; height:32px; border-radius:10px;
  background:var(--ink); color:var(--green);
  display:grid; place-items:center;
  font-family:'JetBrains Mono', monospace; font-size:12px; font-weight:700;
}
.problem-card h3{font-size:18px; font-weight:700; margin:4px 0 0; line-height:1.2; letter-spacing:-0.015em;}
.problem-card p{margin:0; color:var(--mute); font-size:13.5px; line-height:1.5;}

/* ============================================================
   SOLUTION
   ============================================================ */
.solution{padding:54px 0; background:#fff;}
.solution-avatar-chip{
  display:flex; align-items:center; gap:10px;
  width:fit-content;
  padding:7px 14px 7px 7px;
  background:#fff; border:1px solid var(--line); border-radius:999px;
  box-shadow:0 1px 2px rgba(15,25,30,0.04), 0 4px 14px rgba(15,25,30,0.05);
  margin:0 auto 14px;
}
.solution-avatar-chip .sac-av{
  position:relative;
  width:36px; height:36px; border-radius:50%; overflow:hidden;
  background:var(--green-soft); flex-shrink:0;
}
.solution-avatar-chip .sac-av img{width:100%; height:100%; object-fit:cover;}
.solution-avatar-chip .sac-pulse{
  position:absolute; right:-1px; bottom:-1px;
  width:10px; height:10px; border-radius:50%;
  background:#1ec46c; border:2px solid #fff;
  animation:pulseGreen 1.6s ease-in-out infinite;
}
.solution-avatar-chip .sac-text{display:flex; flex-direction:column; line-height:1.1;}
.solution-avatar-chip .sac-name{font-size:14px; font-weight:700;}
.solution-avatar-chip .sac-role{font-family:'JetBrains Mono', monospace; font-size:9.5px; font-weight:500; color:var(--green-deep); letter-spacing:0.06em; text-transform:uppercase; margin-top:2px;}

.solution h2{margin:8px 0 14px;}
.solution h2 em{color:var(--green-deep); font-style:normal; font-weight:800;}
.solution p.lead{font-size:15.5px; color:var(--mute); line-height:1.55; margin:0 0 18px;}
.solution-bullets{list-style:none; padding:0; margin:0 0 22px; display:flex; flex-direction:column; gap:12px;}
.solution-bullets li{display:flex; gap:10px; align-items:flex-start; font-size:14.5px; color:var(--ink-2); line-height:1.45;}
.solution-bullets .ck{
  width:22px; height:22px; border-radius:50%;
  background:var(--green-soft); color:var(--green-deep);
  display:grid; place-items:center; flex-shrink:0; margin-top:1px;
}
.solution-bullets .ck svg{width:13px; height:13px;}

.solution-visual{margin:22px -18px 0;}
.solution-video-wrap{
  position:relative; overflow:hidden;
  background:#000;
  aspect-ratio:9/16;
  width:100%;
}
.solution-video{
  width:100%; height:100%; object-fit:cover; display:block;
}
.solution-video-mute,
.solution-video-play{
  position:absolute; bottom:12px;
  width:38px; height:38px; border-radius:50%;
  background:rgba(0,0,0,0.55); color:#fff;
  display:grid; place-items:center;
  backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,0.18);
  z-index:2;
}
.solution-video-mute{right:12px;}
.solution-video-play{right:58px;}
.solution-video-mute svg, .solution-video-play svg{width:16px; height:16px; display:block;}
.solution-video-mute .ic-sound, .solution-video-play .ic-pause{display:none;}
.solution-video-mute.is-on .ic-sound, .solution-video-play.is-playing .ic-pause{display:block;}
.solution-video-mute.is-on .ic-muted, .solution-video-play.is-playing .ic-play{display:none;}
.solution-image-caption{
  display:flex; align-items:center; gap:12px;
  padding:14px 4px 0;
}
.solution-image-caption .av{width:48px; height:48px; border-radius:50%; overflow:hidden; flex-shrink:0; box-shadow:0 2px 8px rgba(0,0,0,0.08);}
.solution-image-caption .av img{width:100%; height:100%; object-fit:cover; object-position:center top;}
.solution-image-caption .name{font-size:13px; font-weight:700; line-height:1.2;}
.solution-image-caption .role{font-size:10.5px; color:var(--mute); font-family:'JetBrains Mono', monospace; letter-spacing:0.08em; text-transform:uppercase; margin-top:3px;}

/* ============================================================
   DEMOS
   ============================================================ */
.demos{padding:54px 0; background:var(--paper); border-top:1px solid var(--line);}
.demos-head{text-align:center; margin-bottom:20px;}
.demos-head h2{margin:10px 0 12px;}
.demos-head p{color:var(--mute); font-size:14.5px; margin:0; text-wrap:pretty;}
.demos-tabs{
  display:flex; gap:8px; padding:0 18px 4px;
  overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none;
  margin:0 -18px 18px;
}
.demos-tabs::-webkit-scrollbar{display:none;}
.demo-tab{
  flex-shrink:0; scroll-snap-align:start;
  padding:10px 14px; border-radius:11px;
  font-size:13px; font-weight:600; color:var(--mute);
  background:#fff; border:1px solid var(--line);
  display:flex; align-items:center; gap:6px;
}
.demo-tab .n{font-family:'JetBrains Mono', monospace; font-size:10px; color:var(--mute-2);}
.demo-tab.is-active{background:var(--ink); color:#fff; border-color:var(--ink);}
.demo-tab.is-active .n{color:var(--green);}

.demo-stage{
  background:#fff; border:1px solid var(--line); border-radius:20px;
  padding:22px 18px;
  box-shadow:var(--shadow-card);
}
.demo-info h3{font-size:22px; font-weight:700; letter-spacing:-0.025em; line-height:1.15; margin:10px 0 12px;}
.demo-info > p{color:var(--mute); font-size:14.5px; line-height:1.55; margin:0 0 16px;}
.demo-tags{display:flex; flex-wrap:nowrap; gap:6px; margin-bottom:16px; overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none;}
.demo-tags::-webkit-scrollbar{display:none;}
.demo-tag{white-space:nowrap; flex-shrink:0;}
.demo-tag{
  padding:5px 11px; border-radius:999px;
  background:var(--green-soft); color:var(--green-deep);
  font-size:11.5px; font-weight:600;
}
.demo-takeaway{
  background:var(--paper-2); border:1px solid var(--line-2); border-radius:12px;
  padding:14px;
  display:flex; gap:12px; align-items:flex-start;
  margin-top:18px;
}
.demo-takeaway .ic{
  width:32px; height:32px; border-radius:9px; background:var(--ink); color:var(--green);
  display:grid; place-items:center; flex-shrink:0;
}
.demo-takeaway .ic svg{width:16px; height:16px;}
.demo-takeaway strong{display:block; font-size:13px; font-weight:700; margin-bottom:3px;}
.demo-takeaway p{margin:0; font-size:12.5px; color:var(--mute); line-height:1.45;}

/* phone shell */
.demo-phone{
  background:#1a1a1a;
  border-radius:36px; padding:8px;
  box-shadow:0 24px 50px -16px rgba(0,0,0,0.3), 0 6px 18px rgba(0,0,0,0.08);
  max-width:320px; margin:0 auto;
  position:relative;
}
.demo-phone::before{
  content:""; position:absolute; top:8px; left:50%; transform:translateX(-50%);
  width:100px; height:22px; background:#1a1a1a; border-radius:0 0 14px 14px; z-index:2;
}
.demo-phone-inner{
  background:linear-gradient(180deg, #ECEDE2 0%, #E2E6CE 100%);
  border-radius:28px;
  padding:12px 10px;
  height:480px;
  display:flex; flex-direction:column;
  position:relative; overflow:hidden;
}
.demo-phone-inner::before{
  content:""; position:absolute; inset:0; opacity:0.05; pointer-events:none;
  background-image: radial-gradient(circle at 25% 25%, #1a3a2e 1px, transparent 1px),
                    radial-gradient(circle at 75% 75%, #1a3a2e 1px, transparent 1px);
  background-size:24px 24px;
}
.demo-phone-head{
  display:flex; align-items:center; gap:10px;
  background:#075E54; color:#fff;
  border-radius:12px; padding:9px 11px;
  margin-bottom:6px; position:relative; z-index:1;
}
.demo-phone-head .av{width:30px; height:30px; border-radius:50%; overflow:hidden; background:#fff; flex-shrink:0;}
.demo-phone-head .av img{width:100%; height:100%; object-fit:cover;}
.demo-phone-head .info{line-height:1.2;}
.demo-phone-head .info strong{font-size:12.5px; display:block;}
.demo-phone-head .info small{font-size:10px; opacity:0.75;}
.demo-phone .chat-stream{
  padding:6px 2px; gap:5px;
  min-height:0; flex:1 1 0;
  overflow-y:auto; overscroll-behavior:contain;
  scrollbar-width:none;
}
.demo-phone .chat-stream::-webkit-scrollbar{display:none;}
.demo-phone .bubble{font-size:12.5px; padding:7px 11px 6px; max-width:82%;}
.demo-phone-input{
  margin-top:auto; display:flex; align-items:center; gap:6px;
  background:#fff; border-radius:22px; padding:4px 4px 4px 12px;
  position:relative; z-index:1;
}
.demo-phone-input .ph{flex:1; font-size:11px; color:var(--mute-2);}
.demo-phone-input .mic{width:26px; height:26px; border-radius:50%; background:var(--green); display:grid; place-items:center; color:var(--ink);}
.demo-phone-input .mic svg{width:12px; height:12px;}

/* ============================================================
   HOW IT WORKS
   ============================================================ */
.how{padding:54px 0; background:var(--ink); color:#fff; position:relative; overflow:hidden;}
.how::before{
  content:""; position:absolute; top:-180px; left:-120px;
  width:380px; height:380px; border-radius:50%;
  background:radial-gradient(circle, rgba(0,239,169,0.12) 0%, transparent 70%);
  pointer-events:none;
}
.how-head{text-align:center; margin-bottom:30px; position:relative;}
.how-head .h-eyebrow{color:var(--green);}
.how-head .h-eyebrow::before{background:var(--green);}
.how-head h2{margin:10px 0 12px; color:#fff;}
.how-head p{color:rgba(255,255,255,0.65); font-size:14.5px; margin:0;}
.how-grid{display:flex; flex-direction:column; gap:12px; position:relative;}
.how-step{
  background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.08);
  border-radius:16px; padding:22px 20px;
}
.how-num{
  display:inline-grid; place-items:center;
  width:38px; height:38px; border-radius:11px;
  background:var(--green); color:var(--ink);
  font-family:'JetBrains Mono', monospace; font-weight:700; font-size:13px;
  margin-bottom:14px;
}
.how-step h3{font-size:18px; font-weight:700; letter-spacing:-0.015em; margin:0 0 8px;}
.how-step p{margin:0; color:rgba(255,255,255,0.65); font-size:13.5px; line-height:1.55;}

/* ============================================================
   FEATURES
   ============================================================ */
.features{padding:54px 0; background:#fff;}
.features-chatmock{
  background:#1a1f23; color:#fff; border-radius:18px; padding:18px;
  box-shadow:var(--shadow-lift);
  margin-bottom:24px;
}
.features-chatmock-head{
  display:flex; align-items:center; gap:10px;
  padding-bottom:14px; border-bottom:1px solid rgba(255,255,255,0.08); margin-bottom:12px;
}
.features-chatmock-head .av{width:34px; height:34px; border-radius:50%; overflow:hidden; flex-shrink:0;}
.features-chatmock-head .av img{width:100%; height:100%; object-fit:cover;}
.features-chatmock-head .info{line-height:1.2;}
.features-chatmock-head .info strong{font-size:13.5px; display:block;}
.features-chatmock-head .info small{font-size:10.5px; color:var(--green); display:flex; align-items:center; gap:5px;}
.feat-bubble{
  background:#252b30; color:#e0e6ea;
  padding:10px 13px; border-radius:12px 12px 12px 4px;
  font-size:12.5px; line-height:1.45; margin-bottom:6px;
  opacity:0; transform:translateY(8px);
  animation:bubblePop .35s forwards;
}
.feat-bubble strong{color:var(--green); font-weight:600;}
.feat-bubble:nth-child(2){animation-delay:.4s;}
.feat-bubble:nth-child(3){animation-delay:.8s;}
.feat-bubble:nth-child(4){animation-delay:1.2s;}
.feat-bubble:nth-child(5){animation-delay:1.6s;}
.feat-bubble:nth-child(6){animation-delay:2.0s;}

.features-text h2{margin:10px 0 18px;}
.features-list{display:grid; gap:14px;}
.feat-item{display:flex; gap:12px; padding:16px 0; border-top:1px solid var(--line);}
.feat-item:first-child{border-top:none; padding-top:0;}
.feat-item .ic{
  width:38px; height:38px; border-radius:10px;
  background:var(--green-soft); color:var(--green-deep);
  display:grid; place-items:center; flex-shrink:0;
}
.feat-item .ic svg{width:18px; height:18px;}
.feat-item h4{font-size:15.5px; font-weight:700; letter-spacing:-0.015em; margin:0 0 3px;}
.feat-item p{margin:0; color:var(--mute); font-size:13px; line-height:1.5;}

/* ============================================================
   SCIENTIST
   ============================================================ */
.scientist{padding:60px 0 0; background:#D9D9D9; border-top:1px solid var(--line); border-bottom:1px solid var(--line); overflow:hidden;}
.scientist .container{padding-bottom:0;}
.scientist-text{padding-bottom:30px;}
.scientist-text h2{margin:10px 0 16px;}
.scientist-text > p{font-size:14.5px; color:var(--ink-2); line-height:1.6; margin:0 0 12px;}
.scientist-quote{
  margin:20px 0; padding:4px 0 4px 16px;
  border-left:3px solid var(--green);
  font-size:17px; font-weight:600; letter-spacing:-0.015em; line-height:1.35;
  color:var(--ink);
}
.scientist-signature{display:flex; align-items:flex-start; gap:14px; margin:20px 0; flex-wrap:wrap;}
.scientist-signature .sig{font-weight:700; font-size:13.5px;}
.scientist-signature .sig small{display:block; font-weight:500; color:var(--mute); font-size:10.5px; margin-top:2px; font-family:'JetBrains Mono', monospace; letter-spacing:0.06em; text-transform:uppercase;}
.scientist-signature .sep{width:100%; height:1px; background:rgba(0,0,0,0.08); margin:2px 0;}
.scientist-photo{
  display:flex; align-items:flex-end; justify-content:center;
  margin-top:14px;
}
.scientist-photo img{width:100%; max-width:480px; height:auto; display:block;}

/* ============================================================
   COMPANION
   ============================================================ */
.companion{padding:60px 0; background:#fff; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.companion-media{
  position:relative; border-radius:20px; overflow:hidden;
  margin:0 auto 22px;
  background:#000;
  aspect-ratio:9/16;
  max-height:520px;
}
.companion-media video{width:100%; height:100%; object-fit:cover; display:block;}
.companion-video-play,
.companion-video-mute{
  position:absolute; bottom:12px;
  width:38px; height:38px; border-radius:50%;
  background:rgba(0,0,0,0.55); color:#fff;
  display:grid; place-items:center;
  backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,0.18);
  z-index:2;
}
.companion-video-mute{right:12px;}
.companion-video-play{right:58px;}
.companion-video-play svg, .companion-video-mute svg{width:16px; height:16px; display:block;}
.companion-video-play .ic-pause, .companion-video-mute .ic-sound{display:none;}
.companion-video-play.is-playing .ic-pause, .companion-video-mute.is-on .ic-sound{display:block;}
.companion-video-play.is-playing .ic-play, .companion-video-mute.is-on .ic-muted{display:none;}

.companion-text h2{margin:10px 0 16px;}
.companion-lead{font-size:15.5px; line-height:1.6; color:var(--ink-2); margin:0 0 18px;}
.companion-lead strong{color:var(--ink); font-weight:700;}
.companion-cues{display:grid; grid-template-columns:repeat(3, 1fr); gap:8px; margin:18px 0;}
.companion-cue{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  padding:9px 10px;
  background:#fff; border:1px solid var(--line); border-radius:99px;
  font-size:12px; font-weight:600; color:var(--ink);
  box-shadow:0 1px 2px rgba(0,0,0,0.03);
  white-space:nowrap;
}
.companion-cue svg{width:13px; height:13px; color:var(--green-deep); flex-shrink:0;}
.companion-aside{
  padding:16px 18px;
  background:var(--paper); border:1px solid var(--line); border-left:3px solid var(--green);
  border-radius:12px;
  font-size:13.5px; line-height:1.55; color:var(--ink-2);
  margin:18px 0;
}
.companion-aside b{color:var(--ink); font-weight:700;}

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.testi{padding:54px 0; background:var(--paper); overflow:hidden;}
.testi-head{text-align:center; margin-bottom:24px;}
.testi-head h2{margin:10px 0 0;}

/* UGC videos — simple horizontal scroll, no scroll-snap, no 3D, no dots.
   The stage is a direct child of <section class="testi">, which is 100vw on
   mobile, so no negative margin / no padding-cancellation pattern needed. */
.testi-carousel-stage{
  display:flex; gap:12px;
  overflow-x:auto; overscroll-behavior-x:contain;
  padding:12px 18px 24px;
  scrollbar-width:none;
}
.testi-carousel-stage::-webkit-scrollbar{display:none;}
.testi-vid{
  position:relative; flex-shrink:0;
  width:200px; aspect-ratio:9/16; border-radius:14px; overflow:hidden;
  background:#1a1a1a; cursor:pointer;
  box-shadow:0 2px 8px rgba(15,25,30,0.10);
}
.testi-vid img, .testi-vid video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;
}
.testi-vid .play{position:absolute; inset:0; display:grid; place-items:center; transition:opacity .2s; z-index:2;}
.testi-vid .play svg{width:46px; height:46px; filter:drop-shadow(0 3px 12px rgba(0,0,0,.45));}
.testi-vid.playing .play{opacity:0; pointer-events:none;}

.testi-rows{margin-top:28px;}
.testi-row{
  overflow:hidden; position:relative;
  mask:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.testi-track{
  display:flex; gap:12px; width:max-content;
  animation:scroll 90s linear infinite;
}
.testi-card{
  background:#fff; border:1px solid var(--line); border-radius:14px;
  padding:16px;
  width:260px; flex-shrink:0;
  display:flex; flex-direction:column; gap:12px;
  box-shadow:var(--shadow-card);
}
.testi-stars{display:flex; gap:2px; color:var(--green-deep);}
.testi-stars svg{width:12px; height:12px;}
.testi-card p{margin:0; font-size:13px; line-height:1.45; color:var(--ink-2); flex:1;}
.testi-author{display:flex; align-items:center; gap:9px; padding-top:10px; border-top:1px dashed var(--line);}
.testi-author .av{
  width:30px; height:30px; border-radius:50%;
  background:linear-gradient(135deg, var(--green), var(--blue));
  display:grid; place-items:center;
  font-family:'League Spartan'; font-weight:700; color:var(--ink); font-size:11px;
  flex-shrink:0;
}
.testi-author strong{font-size:12.5px; font-weight:700; display:block;}
.testi-author small{font-size:10.5px; color:var(--mute); font-family:'JetBrains Mono', monospace; letter-spacing:0.05em;}

/* ============================================================
   MEDIA
   ============================================================ */
.media-sec{padding:54px 0; background:#fff;}
.media-head{margin-bottom:24px;}
.media-head h2{margin:10px 0 12px;}
.media-head p{color:var(--mute); margin:0; font-size:14.5px;}
.media-feat{
  display:flex; flex-direction:column;
  background:var(--paper); border:1px solid var(--line); border-radius:16px;
  overflow:hidden; margin-bottom:14px;
}
.media-feat-img{aspect-ratio:16/9; overflow:hidden;}
.media-feat-img img{width:100%; height:100%; object-fit:cover;}
.media-feat-body{padding:22px 20px;}
.media-feat-body .src{font-family:'JetBrains Mono', monospace; font-size:10.5px; font-weight:600; letter-spacing:1.2px; text-transform:uppercase; color:var(--green-deep);}
.media-feat-body h3{font-size:19px; font-weight:700; letter-spacing:-0.02em; line-height:1.22; margin:8px 0 10px;}
.media-feat-body p{margin:0 0 14px; color:var(--mute); font-size:13.5px; line-height:1.5;}
.media-feat-body .read{display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:700; color:var(--ink);}
.media-feat-body .read svg{width:12px; height:12px;}

/* horizontal scroll for grid */
.media-scroll{
  margin:0 -18px;
  padding:0 18px 6px;
  overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none;
  display:flex; gap:12px;
}
.media-scroll::-webkit-scrollbar{display:none;}
.media-card{
  scroll-snap-align:start; flex-shrink:0;
  width:260px;
  background:var(--paper); border:1px solid var(--line); border-radius:16px;
  padding:20px;
  display:flex; flex-direction:column;
}
.media-card-logo{height:24px; margin-bottom:14px;}
.media-card-logo img{height:100%; width:auto;}
.media-card h4{font-size:14.5px; font-weight:700; letter-spacing:-0.01em; line-height:1.28; margin:0 0 8px;}
.media-card p{margin:0 0 14px; color:var(--mute); font-size:12.5px; line-height:1.5; flex:1;}
.media-card .read{font-size:11.5px; font-weight:700; color:var(--ink); display:inline-flex; align-items:center; gap:5px;}
.media-card .read svg{width:11px; height:11px;}

/* ============================================================
   PRICING
   ============================================================ */
.pricing{padding:60px 0; background:var(--paper);}
.pricing-head{text-align:center; margin-bottom:26px;}
.pricing-head h2{margin:10px 0 10px;}
.pricing-head p{color:var(--mute); font-size:14.5px; margin:0;}
.pricing-grid{
  display:flex; gap:14px;
  overflow-x:auto; overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-x;
  scroll-snap-type:x proximity;
  scroll-padding-left:18px;
  margin:0 -18px; padding:20px 18px 14px;
  scrollbar-width:none; -ms-overflow-style:none;
}
.pricing-grid::-webkit-scrollbar{display:none;}
.plan{
  flex:0 0 82%;
  scroll-snap-align:start;
  position:relative;
  background:#fff; border:1px solid var(--line); border-radius:18px;
  padding:24px 22px;
  display:flex; flex-direction:column;
}
/* Ghost spacer so the LAST card can fully snap to start (otherwise it stops
   short, which looks like "stuck" scroll). */
.pricing-grid::after{
  content:"";
  flex:0 0 18%;
}
/* Scroll affordance dots — populated/updated by JS, shows which plan is in view */
.pricing-dots{
  display:flex; justify-content:center; gap:8px; margin:14px 0 6px;
}
.pricing-dots span{
  width:7px; height:7px; border-radius:50%;
  background:var(--line); transition:background .25s, transform .25s;
}
.pricing-dots span.is-active{
  background:var(--ink); transform:scale(1.35);
}
/* Hint chip telling the user to swipe between plans */
.pricing-swipe-hint{
  display:flex; align-items:center; justify-content:center; gap:6px;
  font-size:12px; color:var(--mute); margin:-4px 0 0;
  font-family:'JetBrains Mono', monospace; letter-spacing:.5px;
}
.pricing-swipe-hint .arr{
  display:inline-block; animation:swipeNudge 1.6s ease-in-out infinite;
}
@keyframes swipeNudge{
  0%, 100% { transform: translateX(0); opacity:.6; }
  50%      { transform: translateX(6px); opacity:1; }
}
.plan.featured{
  background:var(--ink); color:#fff;
  border-color:var(--ink);
  box-shadow:0 0 0 4px rgba(23,32,42,0.08), var(--shadow-lift);
  padding-top:30px;
}
.plan-ribbon{
  position:absolute; top:-12px; left:24px;
  background:var(--green); color:var(--ink);
  padding:5px 12px; border-radius:999px;
  font-family:'JetBrains Mono', monospace; font-size:9.5px; font-weight:700; letter-spacing:1px; text-transform:uppercase;
}
.plan-name{font-size:18px; font-weight:700; letter-spacing:-0.015em;}
.plan-cycle{font-size:12.5px; color:var(--mute); margin-top:3px;}
.plan.featured .plan-cycle{color:rgba(255,255,255,0.6);}
.plan-price{display:flex; align-items:baseline; gap:4px; margin:18px 0 4px; font-variant-numeric:tabular-nums;}
.plan-price .amt{font-size:40px; font-weight:800; letter-spacing:-0.03em; line-height:1;}
.plan-price .per{font-size:12.5px; color:var(--mute); font-weight:500;}
.plan.featured .plan-price .per{color:rgba(255,255,255,0.6);}
.plan-totals{font-size:12px; color:var(--mute); font-weight:500;}
.plan.featured .plan-totals{color:rgba(255,255,255,0.6);}
.plan-totals .strike{text-decoration:line-through; color:var(--mute-2); margin-right:5px;}
.plan-disc{
  display:inline-flex; align-items:center; gap:5px;
  background:var(--green-soft); color:var(--green-deep);
  padding:4px 10px; border-radius:999px;
  font-size:11px; font-weight:700;
  margin-top:10px; align-self:flex-start;
}
.plan.featured .plan-disc{background:var(--green); color:var(--ink);}
.plan ul{list-style:none; padding:0; margin:18px 0; display:flex; flex-direction:column; gap:9px;}
.plan li{display:flex; gap:9px; align-items:flex-start; font-size:13px; line-height:1.4;}
.plan li .ck{
  width:18px; height:18px; border-radius:50%;
  background:var(--green-soft); color:var(--green-deep);
  display:grid; place-items:center; flex-shrink:0; margin-top:1px;
  font-size:10.5px; font-weight:700;
}
.plan.featured li .ck{background:var(--green); color:var(--ink);}
.plan.featured li{color:rgba(255,255,255,0.85);}
.plan-btn{
  height:48px; border-radius:12px;
  background:var(--ink); color:#fff;
  display:grid; place-items:center;
  font-weight:700; font-size:14px;
}
.plan.featured .plan-btn{background:var(--green); color:var(--ink);}

.pricing-incl{
  margin-top:24px; padding:24px 22px;
  background:#fff; border:1px solid var(--line); border-radius:18px;
  box-shadow:var(--shadow-card);
}
.pricing-incl h3{font-size:15px; font-weight:700; margin:0 0 16px; text-align:center;}
.incl-grid{display:grid; grid-template-columns:1fr; gap:10px;}
.incl-grid div{display:flex; gap:8px; align-items:center; font-size:13px; color:var(--ink-2);}
.incl-grid .ck{
  width:18px; height:18px; border-radius:50%;
  background:var(--green-soft); color:var(--green-deep);
  display:grid; place-items:center; flex-shrink:0;
  font-size:10.5px; font-weight:700;
}
.pricing-disclaimer{text-align:center; margin-top:18px; font-size:11px; color:var(--mute); font-style:italic;}

/* ============================================================
   FAQ
   ============================================================ */
.faq{padding:54px 0; background:#fff; border-top:1px solid var(--line);}
.faq-side h2{margin:10px 0 14px;}
.faq-side > p{color:var(--mute); margin:0 0 20px; font-size:14.5px;}
.faq-help{background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:20px; margin-bottom:24px;}
.faq-help h4{font-size:15px; font-weight:700; margin:0 0 5px;}
.faq-help > p{font-size:13px; margin:0 0 14px; color:var(--mute);}
.faq-help-options{display:flex; flex-direction:column; gap:9px;}
.faq-help-opt{
  display:flex; align-items:center; gap:12px;
  padding:12px 14px;
  background:#fff; border:1px solid var(--line); border-radius:12px;
  text-align:left; color:inherit;
}
.faq-help-opt .fho-ico{
  flex-shrink:0; width:34px; height:34px; border-radius:50%;
  display:grid; place-items:center; overflow:hidden;
  background:var(--paper); color:var(--ink-2);
}
.faq-help-opt .fho-ico--ai{background:var(--green-soft); color:var(--green-deep);}
.faq-help-opt .fho-ico img{width:100%; height:100%; object-fit:cover;}
.faq-help-opt .fho-body{flex:1; min-width:0; display:flex; flex-direction:column; gap:2px;}
.faq-help-opt .fho-title{font-size:13px; font-weight:700; line-height:1.25; display:inline-flex; align-items:center; gap:6px; flex-wrap:wrap;}
.faq-help-opt .fho-sub{font-size:11.5px; color:var(--mute); line-height:1.4;}
.faq-help-opt .fho-pill{
  font-family:'JetBrains Mono', monospace; font-size:8.5px; font-weight:600;
  letter-spacing:0.06em; text-transform:uppercase;
  padding:2px 6px; border-radius:999px;
  background:var(--paper); color:var(--ink-2);
  border:1px solid var(--line);
}
.faq-help-opt .fho-pill--ai{background:var(--green-soft); color:var(--green-deep); border-color:transparent;}
.faq-help-opt .fho-arr{flex-shrink:0; color:var(--mute);}

.faq-list{display:flex; flex-direction:column;}
.faq-item{border-bottom:1px solid var(--line); padding:2px 0;}
.faq-item summary{
  list-style:none; cursor:pointer; padding:18px 36px 18px 0;
  font-size:15px; font-weight:700; letter-spacing:-0.01em;
  position:relative;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:""; position:absolute; right:6px; top:50%;
  width:10px; height:10px;
  border-right:2px solid var(--ink); border-bottom:2px solid var(--ink);
  transform:translateY(-70%) rotate(45deg); transition:transform .2s;
}
.faq-item[open] summary::after{transform:translateY(-30%) rotate(-135deg);}
.faq-item p{color:var(--mute); padding:0 0 18px; margin:0; font-size:13.5px; line-height:1.55;}

/* ============================================================
   BLOG
   ============================================================ */
.blog-sec{padding:54px 0; background:var(--paper-2);}
.blog-head{margin-bottom:22px;}
.blog-head h2{margin:10px 0 12px;}
.blog-head-cta{margin-top:12px;}
.blog-scroll{
  margin:0 -18px;
  padding:0 18px 6px;
  overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none;
  display:flex; gap:12px;
}
.blog-scroll::-webkit-scrollbar{display:none;}
.blog-card{
  scroll-snap-align:start; flex-shrink:0;
  width:280px;
  background:#fff; border:1px solid var(--line); border-radius:16px;
  overflow:hidden; display:flex; flex-direction:column;
}
.blog-card.featured{width:300px;}
.blog-card-cover{
  aspect-ratio:16/9; overflow:hidden;
  background:linear-gradient(135deg, var(--green-soft), #b5ead7);
  position:relative;
}
.blog-card-cover .glyph{
  position:absolute; inset:0; display:grid; place-items:center;
  font-family:'League Spartan'; font-weight:800; font-size:52px;
  color:rgba(10,119,87,0.20); letter-spacing:-0.04em; z-index:1;
}
.blog-card-cover img.cover-photo{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  z-index:2;
}
.blog-card-body{padding:18px; display:flex; flex-direction:column; flex:1;}
.blog-card-cat{
  font-family:'JetBrains Mono', monospace; font-size:9.5px; font-weight:600;
  letter-spacing:1.2px; text-transform:uppercase; color:var(--green-deep); margin-bottom:8px;
}
.blog-card h3{font-size:15.5px; font-weight:700; letter-spacing:-0.015em; line-height:1.25; margin:0 0 8px;}
.blog-card.featured h3{font-size:17px;}
.blog-card p{margin:0 0 12px; color:var(--mute); font-size:12.5px; line-height:1.45; flex:1;}
.blog-card .read{display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:700; color:var(--ink);}
.blog-card .read svg{width:11px; height:11px;}

/* ============================================================
   SOCIAL — v3 mobile (perfil + grade 3×3 + canais colapsáveis)
   ============================================================ */
.social-sec--mv3{padding:60px 0 56px; background:#fff; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.social-sec--mv3 .container{padding:0 20px;}
.mv3-head{margin-bottom:22px;}
.mv3-head .h-eyebrow{margin-bottom:14px;}
.mv3-headline{margin:0 0 14px; line-height:1.02; letter-spacing:-0.025em;}
.mv3-headline em{font-style:italic; color:var(--green-deep);}
.mv3-lede{color:var(--mute); font-size:15px; line-height:1.5; margin:0; max-width:30ch;}

/* Bio card */
.mv3-bio{
  margin-top:22px; background:#fff;
  border:1px solid var(--line); border-radius:22px;
  padding:18px;
  box-shadow:0 1px 2px rgba(15,25,30,0.04);
}
.mv3-bio-head{
  display:flex; align-items:center; gap:14px;
  padding-bottom:16px;
  border-bottom:1px solid var(--line);
}
.mv3-bio-avatar{
  width:64px; height:64px; border-radius:999px; flex-shrink:0;
  padding:2.5px;
  background:linear-gradient(135deg, #f58529, #dd2a7b 50%, #8134af);
}
.mv3-bio-avatar-inner{
  width:100%; height:100%; border-radius:999px;
  background:#fff; padding:2px;
}
.mv3-bio-avatar img{
  width:100%; height:100%; border-radius:999px;
  object-fit:cover; display:block;
}
.mv3-bio-name{flex:1; min-width:0;}
.mv3-bio-nameline{
  display:flex; align-items:center; gap:6px;
  font-family:'League Spartan', sans-serif;
  font-weight:700; font-size:17px; letter-spacing:-0.015em; line-height:1.12;
  margin-bottom:4px;
}
.mv3-bio-nameline svg{flex-shrink:0;}
.mv3-bio-handle{
  font-family:'JetBrains Mono', monospace;
  font-size:12.5px; color:var(--mute); line-height:1.1;
}
.mv3-bio-iglink{
  flex-shrink:0; display:grid; place-items:center;
  width:32px; height:32px; color:var(--ink);
}
.mv3-bio-stats{
  display:grid; grid-template-columns:repeat(3,1fr);
  padding:14px 0; border-bottom:1px solid var(--line);
}
.mv3-bio-stat{text-align:center;}
.mv3-bio-stat b{
  display:block; font-family:'League Spartan', sans-serif; font-weight:700;
  font-size:20px; letter-spacing:-0.015em; color:var(--ink); line-height:1; margin-bottom:3px;
}
.mv3-bio-stat span{font-size:11.5px; color:var(--mute);}
.mv3-bio-stat.is-hi b{color:var(--green-deep);}
.mv3-bio-text{
  font-size:14px; line-height:1.55; color:var(--ink-2);
  margin:14px 0 14px; white-space:pre-line;
}
.mv3-bio-cta{
  display:flex; align-items:center; justify-content:center; gap:8px;
  width:100%; padding:13px 18px;
  background:var(--ink); color:#fff; text-decoration:none;
  border-radius:14px; font-weight:700; font-size:14.5px;
  transition:background .15s, transform .15s;
}
.mv3-bio-cta:hover{background:var(--green-deep); transform:translateY(-1px);}
.mv3-bio-cta svg{width:14px; height:14px;}

/* Sub-head */
.mv3-sub{display:flex; align-items:center; justify-content:space-between; margin:28px 0 10px;}
.mv3-sub h3{
  margin:0; font-family:'League Spartan', sans-serif;
  font-weight:700; font-size:16.5px; letter-spacing:-0.01em;
}

/* Posts grid 3×3 */
.mv3-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:3px;
  border-radius:14px; overflow:hidden;
  background:var(--line);
  box-shadow:0 1px 0 var(--line);
}
.mv3-tile{
  position:relative; aspect-ratio:1/1; display:block;
  background:var(--paper); overflow:hidden;
}
.mv3-tile img{width:100%; height:100%; object-fit:cover; display:block;}
.mv3-tile-play{
  position:absolute; top:6px; right:6px;
  width:22px; height:22px; border-radius:50%;
  background:rgba(0,0,0,.55); color:#fff;
  display:grid; place-items:center;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.35));
}
.mv3-tile-play svg{width:11px; height:11px;}

/* Outros canais — collapsible card */
.mv3-channels{
  margin-top:24px;
  background:var(--paper); border-radius:20px;
  padding:18px 18px 14px;
}
.mv3-channels-head{
  display:flex; align-items:center; justify-content:space-between;
  width:100%; background:transparent; border:none; padding:0;
  cursor:pointer; -webkit-tap-highlight-color:transparent;
  font-family:inherit; color:inherit; margin-bottom:6px;
}
.mv3-channels-head:focus{outline:none;}
.mv3-channels-head .lbl{
  font-family:'JetBrains Mono', monospace;
  font-size:10.5px; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--mute);
}
.mv3-channels-head .meta-row{display:inline-flex; align-items:center; gap:8px;}
.mv3-channels-head .meta{
  font-family:'JetBrains Mono', monospace; font-size:11.5px; color:var(--mute);
}
.mv3-chev{display:inline-grid; place-items:center; color:var(--mute); transition:transform .2s ease;}
.mv3-channels[aria-expanded="true"] .mv3-chev,
.mv3-channels.is-open .mv3-chev{transform:rotate(180deg);}

.mv3-channels-collapse{
  display:grid; grid-template-rows:0fr;
  transition:grid-template-rows .25s ease, opacity .2s ease;
  opacity:0; overflow:hidden;
}
.mv3-channels.is-open .mv3-channels-collapse{
  grid-template-rows:1fr; opacity:1;
}
.mv3-channels-collapse > *{min-height:0;}
.mv3-channel-list{display:flex; flex-direction:column;}

.m-channel{
  display:flex; align-items:center; gap:12px;
  padding:12px 0;
  text-decoration:none; color:inherit;
  border-top:1px solid rgba(0,0,0,0.06);
  -webkit-tap-highlight-color:transparent;
}
.m-channel:first-child{border-top:0;}
.m-channel-icon{
  width:42px; height:42px; border-radius:12px;
  display:grid; place-items:center; flex-shrink:0;
  overflow:hidden;
}
.m-channel-icon.is-ig{background:linear-gradient(135deg, #f9ce34 0%, #ee2a7b 50%, #6228d7 100%);}
.m-channel-icon.is-yt{background:#ff0033;}
.m-channel-icon.is-tt{background:#0e0e0e;}
.m-channel-icon.is-li{background:#0a66c2;}
.m-channel-meta{flex:1; min-width:0;}
.m-channel-name{
  display:flex; align-items:center; gap:7px;
  font-family:'League Spartan', sans-serif; font-weight:700;
  font-size:14px; line-height:1.15; letter-spacing:-0.01em;
  margin-bottom:2px;
}
.m-channel-name .name-text{
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0;
}
.m-channel-handle{
  font-family:'JetBrains Mono', monospace; font-size:11px;
  color:var(--mute); line-height:1.1;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.m-pill{
  display:inline-flex; align-items:center; padding:2px 7px;
  border-radius:999px; background:var(--green-soft); color:var(--green-deep);
  font-family:'JetBrains Mono', monospace; font-size:9px;
  font-weight:600; letter-spacing:0.1em; text-transform:uppercase;
}
.m-channel-cta{
  display:inline-flex; align-items:center; gap:4px;
  font-size:12.5px; font-weight:600; color:var(--ink);
  white-space:nowrap; flex-shrink:0; padding-left:6px;
}
.m-channel-cta svg{width:12px; height:12px; transition:transform .2s;}
.m-channel:hover .m-channel-cta svg{transform:translate(2px,-2px);}

/* ============================================================
   SOCIAL — legacy (mantido para fallback de outros componentes)
   ============================================================ */
.social-sec{padding:54px 0; background:#fff; border-top:1px solid var(--line);}
.social-text h2{margin:10px 0 12px;}
.social-text > p{color:var(--mute); font-size:14.5px; margin:0 0 20px;}
.social-handles{display:flex; flex-direction:column; gap:14px; margin-bottom:24px;}
.social-handle{
  display:flex; align-items:center; gap:12px;
  padding:12px 14px;
  background:var(--paper); border:1px solid var(--line); border-radius:13px;
}
.social-handle--hero{
  flex-direction:column; align-items:stretch; gap:14px;
  padding:20px;
  background:linear-gradient(135deg, #FFC727 0%, #F2386F 50%, #6C2EB5 100%);
  border:none; color:#fff;
  position:relative; overflow:hidden;
}
.social-handle--hero::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(circle at 85% 110%, rgba(255,255,255,0.18), transparent 55%);
  pointer-events:none;
}
.social-handle--hero .sh-hero-row{
  display:flex; align-items:center; gap:14px;
  position:relative; z-index:1;
}
.social-handle--hero .ig{
  width:54px; height:54px; border-radius:14px;
  background:rgba(255,255,255,0.16); backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,0.3);
}
.social-handle--hero .ig svg{width:26px; height:26px;}
.social-handle--hero .info{flex:1; min-width:0; line-height:1.2; display:flex; flex-direction:column; gap:4px;}
.social-handle--hero .sh-platform{
  font-family:'JetBrains Mono', monospace; font-size:9.5px; font-weight:600;
  letter-spacing:0.1em; text-transform:uppercase;
  color:rgba(255,255,255,0.85);
}
.social-handle--hero strong{font-size:17px; font-weight:700; letter-spacing:-0.015em; color:#fff;}
.social-handle--hero small{font-size:13px; font-family:'JetBrains Mono', monospace; color:rgba(255,255,255,0.9); letter-spacing:0.02em;}
.social-handle--hero .sh-cta{
  position:relative; z-index:1;
  display:flex; align-items:center; justify-content:center; gap:6px;
  height:42px; border-radius:11px;
  background:#fff; color:var(--ink);
  font-size:13.5px; font-weight:700;
}
.social-handle--hero .sh-cta svg{width:13px; height:13px;}

.social-mini-label{
  font-family:'JetBrains Mono', monospace; font-size:10px; font-weight:600;
  letter-spacing:0.14em; text-transform:uppercase;
  color:var(--mute); margin-top:4px;
  display:flex; align-items:center; gap:10px;
}
.social-mini-label::after{
  content:""; flex:1; height:1px; background:var(--line);
}
.social-mini-grid{
  display:grid; grid-template-columns:repeat(2, 1fr); gap:8px;
}
.social-mini{
  display:flex; align-items:center; gap:10px;
  padding:10px 12px;
  background:var(--paper-2); border:1px solid var(--line-2); border-radius:11px;
  min-width:0;
}
.social-mini .ig{
  width:30px; height:30px; border-radius:8px;
  background:linear-gradient(135deg, #FFC727, #F2386F 50%, #6C2EB5);
  display:grid; place-items:center;
  color:#fff; flex-shrink:0;
}
.social-mini .ig svg{width:15px; height:15px;}
.social-mini .mini-info{flex:1; min-width:0; line-height:1.15; display:flex; flex-direction:column; gap:1px;}
.social-mini .mini-info strong{font-size:12px; font-weight:700; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.social-mini .mini-info small{font-size:9.5px; color:var(--mute); font-family:'JetBrains Mono', monospace; letter-spacing:0.04em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.social-handle .ig{
  width:40px; height:40px; border-radius:11px;
  background:linear-gradient(135deg, #FFC727, #F2386F 50%, #6C2EB5);
  display:grid; place-items:center; flex-shrink:0;
  color:#fff;
}
.social-handle .ig svg{width:20px; height:20px;}
.social-handle .info{flex:1; min-width:0; line-height:1.2;}
.social-handle .info strong{font-size:13.5px; display:flex; align-items:center; gap:6px; flex-wrap:wrap;}
.social-handle .info small{font-size:11px; color:var(--mute); font-family:'JetBrains Mono', monospace; letter-spacing:0.04em;}
.social-handle .who-tag{
  font-family:'JetBrains Mono', monospace; font-size:8.5px; font-weight:500;
  padding:2px 6px; border-radius:999px;
  background:var(--green-soft); color:var(--green-deep);
  letter-spacing:0.06em; text-transform:uppercase;
}
.social-handle .go{
  color:var(--ink); display:flex; align-items:center; gap:3px;
  font-size:11.5px; font-weight:700; flex-shrink:0;
}
.social-handle .go svg{width:12px; height:12px;}

.social-grid-imgs{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:8px;
}
.social-tile{
  aspect-ratio:1/1; border-radius:12px; overflow:hidden;
  background:linear-gradient(135deg, var(--green-soft), #b5ead7);
  position:relative;
}
.social-tile img{width:100%; height:100%; object-fit:cover;}
.social-tile.tile-quote{background:var(--green); display:grid; place-items:center; padding:12px; text-align:center;}
.social-tile.tile-quote p{font-family:'League Spartan'; font-weight:700; font-size:12.5px; line-height:1.15; letter-spacing:-0.02em; color:var(--ink); margin:0;}
.social-tile.tile-quote small{display:block; font-family:'JetBrains Mono', monospace; font-size:8.5px; color:var(--green-deep); margin-top:6px; letter-spacing:0.1em; text-transform:uppercase;}
.social-tile.tile-dark{background:var(--ink); color:#fff; display:grid; place-items:center; padding:12px; text-align:center;}
.social-tile.tile-dark .heart{font-size:22px; margin-bottom:4px;}
.social-tile.tile-dark p{font-family:'League Spartan'; font-weight:700; font-size:11.5px; line-height:1.2; margin:0;}

/* ============================================================
   FINAL CTA
   ============================================================ */
/* CTA-ZONE — fundo escuro continuo (com glow) atras de .final + .normalyze */
.cta-zone{ position:relative; background:var(--ink); overflow:hidden; }
.cta-zone::before{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
  background:
    radial-gradient(130% 60% at 50% 5%, rgba(0,239,169,0.20) 0%, transparent 60%),
    radial-gradient(90% 50% at 80% 92%, rgba(0,239,169,0.10) 0%, transparent 60%);
}
.cta-zone > .final, .cta-zone > .normalyze{ position:relative; z-index:1; background:transparent; }
.cta-zone > .final::before, .cta-zone > .normalyze::before{ display:none; }
.cta-zone > .final{ padding-bottom:28px; }
.final{padding:64px 0; background:var(--ink); color:#fff; position:relative; overflow:hidden; text-align:center;}
.final::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(circle at 30% 20%, rgba(0,239,169,0.32) 0%, transparent 55%),
             radial-gradient(circle at 70% 80%, rgba(0,239,169,0.20) 0%, transparent 55%);
}
.final-inner{position:relative;}
.final .h-eyebrow{color:var(--green);}
.final .h-eyebrow::before{background:var(--green);}
.final h2{margin:12px 0 14px; color:#fff;}
.final p{font-size:15.5px; color:rgba(255,255,255,0.7); margin:0 0 24px;}

/* ============================================================
   NORMALYZE (B2B) — links to https://normalyze.com.br/
   ============================================================ */
.normalyze{
  padding:0 0 56px;
  background:var(--ink);
  color:#fff;
  position:relative; overflow:hidden;
}
.normalyze::before{ display:none; }
.normalyze .container{position:relative; z-index:1;}
/* Normalyze como BOX (estilo "fan") sobre o fundo escuro da secao anterior */
.normalyze-simple{
  border:1px solid rgba(255,255,255,0.12);
  border-radius:22px;
  padding:26px 22px;
  background:rgba(255,255,255,0.03);
}
.normalyze-eyebrow{
  font-family:'JetBrains Mono', monospace; font-size:10.5px; font-weight:600;
  letter-spacing:1.4px; text-transform:uppercase; color:var(--green);
  display:inline-flex; align-items:center; gap:8px; margin-bottom:14px;
}
.normalyze-eyebrow::before{content:""; width:16px; height:1.5px; background:var(--green);}
.normalyze h2{
  font-size:26px; font-weight:800; letter-spacing:-0.025em; line-height:1.12;
  margin:0 0 14px; color:#fff; text-wrap:balance;
}
.normalyze h2 strong{color:var(--green); font-weight:800;}
.normalyze-sub{
  font-size:14.5px; line-height:1.55;
  color:rgba(255,255,255,0.78); margin:0 0 22px;
}
.normalyze-sub strong{color:#fff; font-weight:700;}
.normalyze-cta{display:inline-flex; align-items:center; gap:8px; width:auto;}

/* ============================================================
   FOOTER
   ============================================================ */
footer{background:#0f1418; color:rgba(255,255,255,0.65); padding:48px 0 22px;}
.foot-brand{display:flex; align-items:center; gap:12px; margin-bottom:14px;}
.foot-brand-av{width:40px; height:40px; border-radius:50%; overflow:hidden;}
.foot-brand-av img{width:100%; height:100%; object-fit:cover;}
.foot-brand-name{color:#fff; font-weight:700; font-size:17px; letter-spacing:-0.01em;}
.foot-brand-name small{display:block; font-size:10px; color:rgba(255,255,255,0.5); font-weight:500; margin-top:2px; font-family:'JetBrains Mono', monospace; letter-spacing:0.08em; text-transform:uppercase;}
.foot-tag{font-size:13px; line-height:1.55; margin:0 0 18px;}
.foot-social{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:30px;}
.foot-social a{
  position:relative; height:36px; padding:0 9px; border-radius:9px;
  background:rgba(255,255,255,0.06);
  display:inline-flex; align-items:center; gap:5px;
}
.foot-social svg{width:16px; height:16px; flex-shrink:0;}
.foot-social-tag{
  font-family:'JetBrains Mono', monospace; font-size:9px; font-weight:600;
  letter-spacing:0.06em; text-transform:uppercase; color:rgba(255,255,255,0.7);
}
.foot-cols{display:grid; grid-template-columns:1fr 1fr; gap:24px 18px; margin-bottom:24px;}
.foot-col h5{color:#fff; font-family:'JetBrains Mono', monospace; font-size:10px; font-weight:600; letter-spacing:1.4px; text-transform:uppercase; margin:0 0 12px;}
.foot-col a{display:block; font-size:13px; padding:5px 0; color:rgba(255,255,255,0.6);}
.foot-col--inline{grid-column:1 / -1;}
.foot-col--inline .foot-inline-links{display:flex; flex-wrap:wrap; gap:6px 18px;}
.foot-col--inline .foot-inline-links a{display:inline-block; padding:5px 0;}
.foot-disclaimer{
  border-top:1px solid rgba(255,255,255,0.06); margin-top:4px; padding:14px 0 2px;
  font-size:10.5px; line-height:1.55; color:rgba(255,255,255,0.32);
}
.foot-disclaimer strong{color:rgba(255,255,255,0.55); font-weight:600;}
.foot-disclaimer a{color:rgba(255,255,255,0.55); text-decoration:underline; text-underline-offset:2px;}
.foot-bot{
  border-top:1px solid rgba(255,255,255,0.08); padding-top:18px;
  display:flex; flex-direction:row; flex-wrap:nowrap; align-items:center;
  justify-content:space-between; gap:6px;
  font-size:9px; color:rgba(255,255,255,0.4);
  white-space:nowrap;
}
.foot-bot .powered{gap:4px;}
.foot-bot .powered img.powered-icon{height:12px; width:12px; border-radius:3px;}
.foot-bot .powered{display:inline-flex; align-items:center; gap:6px; color:inherit; text-decoration:none; transition:color .15s;}
.foot-bot a.powered:hover{color:#fff;}
.foot-bot .powered img{height:18px; width:auto;}
.foot-bot .powered img.powered-icon{height:20px; width:20px; border-radius:5px;}

/* ============================================================
   STICKY BOTTOM CTA (mobile-only addition)
   ============================================================ */
.sticky-cta{
  position:fixed; left:12px; right:12px; bottom:12px; z-index:120;
  background:var(--ink); color:#fff;
  border-radius:16px;
  padding:10px 12px;
  display:flex; align-items:center; gap:12px;
  box-shadow:0 8px 30px rgba(0,0,0,0.18), 0 2px 8px rgba(0,0,0,0.08);
  transform:translateY(120%); opacity:0;
  transition:transform .35s cubic-bezier(.2,.7,.2,1), opacity .25s;
  pointer-events:none;
}
.sticky-cta.is-on{transform:translateY(0); opacity:1; pointer-events:auto;}
.sticky-cta-av{
  width:36px; height:36px; border-radius:50%; overflow:hidden; flex-shrink:0;
  background:var(--green-soft);
  border:2px solid rgba(255,255,255,0.18);
}
.sticky-cta-av img{width:100%; height:100%; object-fit:cover;}
.sticky-cta-body{flex:1; min-width:0; line-height:1.15;}
.sticky-cta-body strong{font-size:13.5px; font-weight:700; display:block;}
.sticky-cta-body small{font-size:11px; color:rgba(255,255,255,0.6); display:flex; align-items:center; gap:5px; margin-top:2px;}
.sticky-cta-body small .pulse-dot{width:6px; height:6px;}
.sticky-cta-btn{
  background:var(--green); color:var(--ink);
  padding:10px 16px; border-radius:11px;
  font-weight:700; font-size:13.5px;
  display:inline-flex; align-items:center; gap:5px;
  flex-shrink:0;
}
.sticky-cta-btn svg{width:13px; height:13px;}

/* ============================================================
   HELP FAB + chat overlay (mobile)
   ============================================================ */
.help-fab{
  position:fixed; right:14px; bottom:84px; z-index:130;
  display:flex; flex-direction:column; align-items:flex-end; gap:8px;
}
.help-fab-btn{
  background:#fff; width:54px; height:54px; border-radius:50%;
  position:relative; box-shadow:0 4px 12px rgba(15,25,30,0.08), 0 12px 32px rgba(15,25,30,0.12);
  animation:fabIn .35s cubic-bezier(.2,.7,.2,1) both, fabBreath 4.2s ease-in-out 1.2s infinite;
}
@keyframes fabIn{from{opacity:0; transform:translateY(20px) scale(0.7);} to{opacity:1; transform:translateY(0) scale(1);}}
@keyframes fabBreath{0%,100%{transform:translateY(0) scale(1);} 50%{transform:translateY(-2px) scale(1.012);}}
.help-fab-avatar{position:absolute; inset:4px; border-radius:50%; overflow:hidden; background:#eef2f3; display:grid; place-items:center;}
.help-fab-avatar img{width:100%; height:100%; object-fit:cover;}
.help-fab-status{position:absolute; bottom:3px; right:3px; width:12px; height:12px; border-radius:50%; background:#1ec46c; border:2px solid #fff; animation:pulseGreen 1.6s ease-in-out infinite;}
.help-fab-badge{position:absolute; top:-2px; right:-2px; min-width:16px; height:16px; padding:0 4px; border-radius:99px; background:#ff5e1a; color:#fff; font-size:9.5px; font-weight:700; display:flex; align-items:center; justify-content:center; box-shadow:0 2px 6px rgba(255,94,26,0.4);}
.help-fab-tip{
  position:relative; background:#fff; border:1px solid var(--line); border-radius:13px;
  padding:11px 30px 11px 14px; max-width:220px;
  box-shadow:0 6px 20px rgba(15,25,30,0.10);
  opacity:0; transform:translateY(8px) scale(0.95); transition:opacity .25s, transform .25s;
  pointer-events:none;
}
.help-fab-tip.is-on{opacity:1; transform:translateY(0) scale(1); pointer-events:auto;}
.help-fab-tip::after{content:""; position:absolute; right:14px; bottom:-7px; width:12px; height:12px; background:#fff; border-right:1px solid var(--line); border-bottom:1px solid var(--line); transform:rotate(45deg);}
.help-fab-tip-name{display:block; font-size:10px; font-weight:700; color:var(--green-deep); text-transform:uppercase; letter-spacing:0.06em; margin-bottom:2px;}
.help-fab-tip-msg{display:block; font-size:12.5px; color:var(--ink); font-weight:500; line-height:1.35;}
.help-fab-tip-close{position:absolute; top:6px; right:6px; width:18px; height:18px; color:var(--mute); font-size:14px; line-height:1; display:flex; align-items:center; justify-content:center; border-radius:50%;}
.help-fab-btn.is-open{background:#0a9d56;}
.help-fab-btn.is-open .help-fab-avatar{display:none;}
.help-fab-btn.is-open .help-fab-status{display:none;}
.help-fab-btn.is-open .help-fab-badge{display:none;}
.help-fab-close-x{position:absolute; inset:0; display:none; align-items:center; justify-content:center; pointer-events:none;}
.help-fab-btn.is-open .help-fab-close-x{display:flex;}
.help-fab-close-x svg{width:20px; height:20px; color:#fff; stroke-width:3;}

/* mobile chat overlay = full-width sheet */
.chat-overlay{
  position:fixed; left:8px; right:8px; bottom:78px; z-index:200;
  display:none;
  transform-origin:bottom right;
}
.chat-overlay.is-open{display:block; animation:chatBurst .45s cubic-bezier(.16,1.1,.3,1.02) both;}
.chat-overlay.is-closing{display:block; animation:chatImplode .25s cubic-bezier(.4,0,.7,.2) both;}
@keyframes chatBurst{0%{opacity:0; transform:scale(0.5) translateY(20px);} 100%{opacity:1; transform:scale(1) translateY(0);}}
@keyframes chatImplode{0%{opacity:1; transform:scale(1) translateY(0);} 100%{opacity:0; transform:scale(0.5) translateY(20px);}}
.chat-modal{
  width:100%; height:min(72vh, 560px);
  background:#eef2f3; border-radius:18px; display:flex; flex-direction:column;
  overflow:hidden; box-shadow:0 24px 60px rgba(0,0,0,0.30), 0 6px 18px rgba(0,0,0,0.12);
}
.chat-header{
  background:linear-gradient(135deg, #1ec46c 0%, #0a9d56 100%); color:#fff;
  padding:14px; display:flex; align-items:center; gap:12px; flex-shrink:0;
}
.chat-header img{width:42px; height:42px; border-radius:50%; background:#cfe5f3; object-fit:cover; flex-shrink:0;}
.chat-header .ch-name{font-size:15px; font-weight:800; letter-spacing:-0.01em; line-height:1.1;}
.chat-header .ch-status{font-size:11.5px; font-weight:500; opacity:0.95; display:flex; align-items:center; gap:6px; margin-top:3px;}
.chat-header .ch-status::before{content:""; width:7px; height:7px; border-radius:50%; background:#9affc8; box-shadow:0 0 0 3px rgba(255,255,255,0.25);}
.chat-body{flex:1; overflow-y:auto; padding:14px 14px 6px; display:flex; flex-direction:column; gap:7px; background:#eef2f3;}
.chat-msg{max-width:85%; padding:10px 12px; border-radius:13px; font-size:12.5px; line-height:1.4; word-wrap:break-word;}
.chat-msg.in{background:#fff; align-self:flex-start; box-shadow:0 1px 2px rgba(0,0,0,0.04); color:var(--ink);}
.chat-msg.out{background:#1ec46c; color:#fff; border-bottom-right-radius:4px; align-self:flex-end;}
.chat-typing{align-self:flex-start; background:#fff; padding:10px 12px; border-radius:13px; box-shadow:0 1px 2px rgba(0,0,0,0.04); display:none;}
.chat-typing.is-show{display:inline-flex; gap:3px;}
.chat-typing span{width:6px; height:6px; border-radius:50%; background:#a8b0b4; animation:typingDot 1s infinite ease-in-out;}
.chat-typing span:nth-child(2){animation-delay:.15s;}
.chat-typing span:nth-child(3){animation-delay:.3s;}
@keyframes typingDot{0%,80%,100%{transform:scale(0.7); opacity:0.5;} 40%{transform:scale(1); opacity:1;}}
.chat-quick{background:#eef2f3; flex-shrink:0;}
.chat-quick-scroll{display:flex; gap:6px; padding:6px 12px 6px; overflow-x:auto; scrollbar-width:none;}
.chat-quick-scroll::-webkit-scrollbar{display:none;}
.chat-quick-scroll button{border:1px solid #d9dee0; background:#fff; border-radius:99px; padding:7px 12px; font-size:11.5px; font-weight:600; color:var(--ink); white-space:nowrap; flex-shrink:0;}
.chat-input{display:flex; gap:7px; background:#fff; align-items:center; padding:10px;}
.chat-input input{flex:1; border:1px solid #e2e6e8; border-radius:99px; padding:10px 14px; font:inherit; font-size:13px; outline:none;}
.chat-input input:focus{border-color:#1ec46c;}
.chat-input .send{background:#1ec46c; color:#fff; width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.chat-input .send svg{width:14px; height:14px;}

/* ============================================================
   PHONE CAPTURE MODAL
   ============================================================ */
.phone-modal{
  position:fixed; inset:0; z-index:300;
  background:rgba(15,25,30,0.55); backdrop-filter:blur(4px);
  display:flex; align-items:flex-end; justify-content:center;
  padding:0;
  opacity:0; pointer-events:none;
  transition:opacity .25s ease;
}
.phone-modal.is-open{opacity:1; pointer-events:auto;}
.phone-modal[hidden]{display:none;}
.phone-modal-card{
  background:#fff; border-radius:22px 22px 0 0; padding:24px 22px 28px;
  width:100%; position:relative;
  box-shadow:0 -10px 40px rgba(0,0,0,0.18);
  transform:translateY(100%); transition:transform .35s cubic-bezier(.16,1.1,.3,1.02);
}
.phone-modal.is-open .phone-modal-card{transform:translateY(0);}
.phone-modal-close{
  position:absolute; top:12px; right:12px; width:32px; height:32px;
  display:grid; place-items:center;
  font-size:22px; line-height:1; color:var(--mute); border-radius:50%;
}
.phone-modal-eyebrow{display:inline-flex; align-items:center; gap:7px; font-family:'JetBrains Mono', monospace; font-size:10.5px; font-weight:600; color:var(--green-deep); letter-spacing:0.08em; text-transform:uppercase; margin-bottom:8px;}
.phone-modal-eyebrow::before{content:""; width:6px; height:6px; border-radius:50%; background:var(--green-deep);}
.phone-modal-card h3{font-size:20px; font-weight:800; letter-spacing:-0.02em; margin:0 0 8px; color:var(--ink);}
.phone-modal-card > p{color:var(--mute); margin:0 0 18px; font-size:14px; line-height:1.5;}
.phone-modal-field{position:relative;}
/* DDI dropdown trigger — sits on the LEFT inside the phone input */
.phone-modal-ddi-btn{
  position:absolute; left:5px; top:50%; transform:translateY(-50%);
  height:36px; padding:0 8px 0 10px; display:inline-flex; align-items:center; gap:5px;
  font:inherit; font-size:14px; font-weight:600; color:var(--ink);
  background:var(--paper); border:1px solid var(--line); border-radius:9px;
  cursor:pointer; transition:background .15s, border-color .15s;
}
.phone-modal-ddi-btn:hover{background:#eef1ed;}
.phone-modal-ddi-btn .ddi-flag{font-size:15px; line-height:1;}
.phone-modal-ddi-btn .ddi-code{font-variant-numeric:tabular-nums;}
.phone-modal-ddi-btn .ddi-caret{font-size:9px; color:var(--mute); margin-left:1px;}
/* DDI list — absolutely positioned BELOW the input */
.phone-modal-field .ddi-list{
  position:absolute; top:calc(100% + 6px); left:0; right:0; z-index:10;
  background:#fff; border:1px solid var(--line); border-radius:12px;
  box-shadow:0 12px 32px rgba(0,0,0,0.14);
  opacity:0; transform:translateY(-4px); transition:opacity .18s, transform .18s;
  max-height:280px; display:flex; flex-direction:column; overflow:hidden;
}
.phone-modal-field .ddi-list.is-open{opacity:1; transform:translateY(0);}
.phone-modal-field .ddi-list[hidden]{display:none;}
.phone-modal-field .ddi-list-head{padding:8px 10px; border-bottom:1px solid var(--line); flex-shrink:0;}
.phone-modal-field .ddi-list-search{
  width:100%; padding:8px 10px; border:1px solid var(--line); border-radius:8px;
  font:inherit; font-size:13px; outline:none; background:var(--paper);
}
.phone-modal-field .ddi-list-search:focus{border-color:var(--green-deep); background:#fff;}
.phone-modal-field .ddi-list-items{list-style:none; margin:0; padding:4px 0; overflow-y:auto; flex:1;}
.phone-modal-field .ddi-list-item{
  display:flex; align-items:center; gap:8px;
  padding:8px 12px; cursor:pointer; font-size:13px;
  transition:background .12s;
}
.phone-modal-field .ddi-list-item:hover{background:var(--paper);}
.phone-modal-field .ddi-list-item.is-active{background:#f3faf5; font-weight:600;}
.phone-modal-field .ddi-list-flag{font-size:16px; line-height:1; flex-shrink:0; width:20px;}
.phone-modal-field .ddi-list-name{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.phone-modal-field .ddi-list-code{
  font-family:'JetBrains Mono', monospace; font-size:11px; font-weight:600;
  color:var(--mute); flex-shrink:0; font-variant-numeric:tabular-nums;
}
.phone-modal-field .ddi-list-item.is-active .ddi-list-code{color:var(--green-deep);}
.phone-modal-card input{
  width:100%; padding:14px 16px 14px 100px; font:inherit; font-size:15px; font-weight:500;
  border:1.5px solid var(--line); border-radius:12px; outline:none;
  background:#fff; color:var(--ink);
}
.phone-modal-card input:focus{border-color:#1ec46c; box-shadow:0 0 0 4px rgba(30,196,108,0.12);}
.phone-modal-card input.has-error{border-color:#e34a3c;}
.phone-modal-error{color:#e34a3c; font-size:12.5px; margin-top:8px; display:flex; align-items:center; gap:6px;}
.phone-modal-error[hidden]{display:none;}
.phone-modal-plan{
  margin-top:14px; padding:12px 14px; background:var(--paper);
  border-radius:11px; display:flex; align-items:center; gap:10px;
  font-size:12.5px;
}
.phone-modal-plan strong{font-weight:700; color:var(--ink);}
.phone-modal-plan-tag{margin-left:auto; font-family:'JetBrains Mono', monospace; font-size:10px; font-weight:700; color:var(--green-deep); letter-spacing:0.06em; text-transform:uppercase;}
.phone-modal-go{
  margin-top:18px; width:100%; background:#1ec46c; color:#fff;
  padding:14px 20px; border-radius:99px; font-weight:700; font-size:14.5px;
  display:flex; align-items:center; justify-content:center; gap:8px;
  box-shadow:0 6px 16px rgba(30,196,108,0.28);
}
.phone-modal-go svg{width:14px; height:14px;}
.phone-modal-disclaimer{margin-top:12px; font-size:11px; color:var(--mute); text-align:center; line-height:1.45;}

/* ============================================================
   SCROLL REVEAL
   ============================================================ */
[data-reveal]{opacity:0; transform:translateY(18px); transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1);}
[data-reveal].in{opacity:1; transform:translateY(0);}
[data-reveal-delay="1"]{transition-delay:.08s;}
[data-reveal-delay="2"]{transition-delay:.16s;}
[data-reveal-delay="3"]{transition-delay:.24s;}
[data-reveal-delay="4"]{transition-delay:.32s;}

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

/* ============================================================
   Desktop preview frame — keeps mobile centered on wider screens
   ============================================================ */
@media (min-width:700px){
  html{background:
    radial-gradient(circle at 50% 0%, #e6eaee 0%, #d3dae0 60%);
    min-height:100vh;
  }
  body{
    max-width:430px; margin:0 auto;
    box-shadow:0 30px 80px rgba(15,25,30,0.18), 0 6px 20px rgba(15,25,30,0.08);
    min-height:100vh;
    border-left:1px solid var(--line);
    border-right:1px solid var(--line);
  }
  .sticky-cta{left:max(12px, calc(50vw - 215px + 12px)); right:max(12px, calc(50vw - 215px + 12px));}
  .help-fab{right:max(14px, calc(50vw - 215px + 14px));}
  .chat-overlay{left:max(8px, calc(50vw - 215px + 8px)); right:max(8px, calc(50vw - 215px + 8px));}
  .drawer{left:max(0px, calc(50vw - 215px));}
  .drawer-panel{position:absolute;}
}
