/* =========================================================
   LIVE RERUN — sistema visual "canal de reprise", modo claro
   Pagina: fundo claro, texto escuro (estilo Stripe/Notion).
   Telas/monitores (hero, video): permanecem escuros por dentro,
   como um mockup real de tela, mesmo com a pagina clara.
   Tipos:   Big Shoulders Display (headline) · IBM Plex Sans (corpo)
            IBM Plex Mono (timecodes, dados)
   ========================================================= */

:root{
  --ink:#FFFFFF;
  --panel:#F8FAFC;
  --panel-2:#EEF2F7;
  --line:#E2E8F0;
  --paper:#0F172A;
  --paper-dim:#64748B;
  --signal:#2563EB;
  --signal-dim:#1D4ED8;
  --phosphor:#0891B2;
  --chroma:#0D9488;
  --radius:2px;
  --wrap:1180px;
  --display:'Big Shoulders Display', system-ui, sans-serif;
  --body:'IBM Plex Sans', system-ui, sans-serif;
  --mono:'IBM Plex Mono', ui-monospace, monospace;

  /* Paleta fixa so para os componentes "tela" (monitor do hero, moldura do
     video). Nao muda com o tema da pagina - uma tela e sempre escura. */
  --scr-bg:#0B1220;
  --scr-panel:#141C2E;
  --scr-line:#2B3A52;
  --scr-text:#EAF0F9;
  --scr-text-dim:#8DA0BC;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--ink); color:var(--paper);
  font-family:var(--body); line-height:1.6; font-size:16px;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:var(--display); font-weight:800; letter-spacing:.2px; margin:0 0 .4em; line-height:1.04}
h1{font-size:clamp(40px,6vw,74px)}
h2{font-size:clamp(28px,4vw,42px)}
h3{font-size:20px; font-weight:600; font-family:var(--body)}
em{font-style:normal; color:var(--signal)}
p{margin:0 0 1em}
a{color:inherit}
img{max-width:100%; display:block}
:focus-visible{outline:2px solid var(--signal); outline-offset:3px}

/* Textura de ruido bem discreta, quase imperceptivel no fundo claro */
.scan-veil{
  position:fixed; inset:0; pointer-events:none; z-index:1; opacity:.02;
  background:repeating-linear-gradient(0deg, #000 0 1px, transparent 1px 3px);
  mix-blend-mode:multiply;
}

.section{ max-width:var(--wrap); margin:0 auto; padding:96px 24px; position:relative; z-index:2 }
.sub{ color:var(--paper-dim); max-width:640px; font-size:17px }

/* -------- faixa de teste gratis (topo fixo) -------- */
.trial-banner{
  position:sticky; top:0; z-index:25; display:flex; align-items:center;
  justify-content:center; gap:18px; flex-wrap:wrap; padding:10px 20px;
  background:var(--paper); color:#fff; font-size:13px; text-align:center;
}
.trial-banner p{ margin:0 }
.trial-banner strong{ font-weight:700 }
.trial-banner-actions{ display:flex; align-items:center; gap:10px }
.trial-banner .btn{ padding:7px 16px; font-size:12px }
.trial-banner-close{
  background:transparent; border:none; color:#fff; font-size:20px; line-height:1;
  cursor:pointer; padding:0 4px; opacity:.7;
}
.trial-banner-close:hover{ opacity:1 }
.trial-banner.hidden{ display:none }

/* -------- topbar -------- */
.topbar{
  position:sticky; top:0; z-index:20; display:flex; align-items:center; gap:32px;
  padding:16px 28px; background:rgba(255,255,255,.9); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; margin-right:auto }
.brand-mark svg{ width:34px; height:34px }
.brand-mark rect{ fill:var(--signal) }
.brand-mark .loop{ stroke:#fff }
.brand-mark .loop-head{ fill:#fff }
.brand-text{ font-family:var(--display); font-weight:800; font-size:18px; letter-spacing:1px; display:flex; flex-direction:column; line-height:1.1; color:var(--paper) }
.brand-text small{ font-family:var(--body); font-weight:500; font-size:9px; letter-spacing:1.6px; color:var(--paper-dim); text-transform:uppercase }
.topnav{ display:flex; gap:26px; font-size:14px; font-weight:500 }
.topnav a{ text-decoration:none; color:var(--paper-dim); transition:color .15s }
.topnav a:hover{ color:var(--paper) }

.btn{
  display:inline-flex; align-items:center; gap:8px; text-decoration:none;
  font-weight:600; font-size:14px; padding:11px 20px; border-radius:6px;
  border:1px solid var(--line); transition:transform .12s, border-color .12s, background .12s;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-1px) }
.btn-signal{ background:var(--signal); border-color:var(--signal); color:#fff }
.btn-signal:hover{ background:var(--signal-dim) }
.btn-ghost{ background:#fff; color:var(--paper) }
.btn-ghost:hover{ border-color:var(--paper-dim) }
.btn-lg{ padding:15px 28px; font-size:15px }

/* -------- hero -------- */
.hero{
  max-width:var(--wrap); margin:0 auto; padding:72px 24px 40px;
  display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center;
  position:relative; z-index:2;
}
.bug{
  display:inline-flex; align-items:center; gap:8px; font-family:var(--mono);
  font-size:12px; letter-spacing:2px; color:var(--signal); margin-bottom:22px;
  text-transform:uppercase;
}
.bug.alt{ color:var(--chroma) }
.dot{ width:8px; height:8px; border-radius:50%; background:var(--signal); box-shadow:0 0 0 3px rgba(37,99,235,.18) }
.bug.alt .dot{ background:var(--chroma); box-shadow:0 0 0 3px rgba(13,148,136,.18) }
@media (prefers-reduced-motion:no-preference){
  .dot{ animation:pulse 2.4s ease-in-out infinite }
}
@keyframes pulse{ 0%,100%{opacity:1} 50%{opacity:.35} }

.lede{ font-size:18px; color:var(--paper-dim); max-width:520px }
.hero-actions{ display:flex; gap:14px; margin:28px 0 26px; flex-wrap:wrap }
.trust-strip{ list-style:none; display:flex; gap:22px; padding:0; margin:0; font-size:13px; color:var(--paper-dim); flex-wrap:wrap }
.trust-strip li::before{ content:"✓ "; color:var(--signal) }

/* monitor do hero - mockup de tela, sempre escuro por dentro */
.hero-monitor{ position:relative }
.monitor-frame{
  background:var(--scr-panel); border:1px solid var(--scr-line); border-radius:8px;
  box-shadow:0 30px 60px -20px rgba(15,23,42,.25);
  overflow:hidden;
}
.monitor-topbar{
  display:flex; justify-content:space-between; align-items:center;
  padding:12px 16px; border-bottom:1px solid var(--scr-line); font-family:var(--mono);
  font-size:11px; letter-spacing:1px; color:var(--scr-text-dim);
}
.rec{ display:flex; align-items:center; gap:7px; color:#F87171; font-weight:600 }
.rec-dot{ width:7px; height:7px; border-radius:50%; background:#F87171 }
@media (prefers-reduced-motion:no-preference){ .rec-dot{ animation:pulse 1.6s ease-in-out infinite } }
.monitor-body{ padding:26px 20px 18px; text-align:center }
.tc-label{ font-family:var(--mono); font-size:11px; letter-spacing:3px; color:var(--scr-text-dim); margin-bottom:6px }
.timecode{
  font-family:var(--mono); font-weight:600; font-size:clamp(30px,4vw,42px);
  color:#38BDF8; letter-spacing:3px; margin:0 0 20px;
  text-shadow:0 0 18px rgba(56,189,248,.25);
}
.monitor-ticker{ text-align:left; display:flex; flex-direction:column; gap:8px }
.ticker-row{
  background:var(--scr-bg); border:1px solid var(--scr-line); border-radius:4px;
  padding:9px 12px; font-size:13px; display:flex; align-items:center; gap:8px;
  color:var(--scr-text);
}
.ticker-row .ok{ color:#4ADE80; font-weight:700 }
.ticker-row b{ margin-left:auto; color:var(--scr-text) }
.monitor-footbar{
  display:flex; gap:8px; padding:11px 16px; border-top:1px solid var(--scr-line);
  font-size:11px; color:var(--scr-text-dim);
}
.colorbar{ display:flex; height:6px; margin-top:10px; border-radius:2px; overflow:hidden }
.colorbar i{ flex:1 }
.colorbar i:nth-child(1){ background:#2563EB }
.colorbar i:nth-child(2){ background:#38BDF8 }
.colorbar i:nth-child(3){ background:#EAF0F9 }
.colorbar i:nth-child(4){ background:#22D3EE }
.colorbar i:nth-child(5){ background:#6366F1 }
.colorbar i:nth-child(6){ background:#0B1220 }

/* -------- ficha tecnica -------- */
.specs{
  max-width:var(--wrap); margin:0 auto; padding:0 24px 90px;
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line);
}
.spec{ background:#fff; padding:26px 20px; text-align:center }
.spec strong{ display:block; font-family:var(--mono); font-size:30px; color:var(--signal) }
.spec span{ font-size:12px; color:var(--paper-dim); text-transform:uppercase; letter-spacing:1px }

/* -------- lower third (dispositivo estrutural recorrente) -------- */
.lower-third{
  display:inline-flex; align-items:center; font-family:var(--mono); font-size:12px;
  letter-spacing:1.5px; text-transform:uppercase; color:var(--paper-dim); margin-bottom:16px;
}
.lower-third span{
  background:var(--signal); color:#fff; font-weight:700; padding:5px 10px;
  clip-path:polygon(0 0,100% 0,92% 100%,0% 100%); margin-right:10px;
}

/* -------- monitor wall (recursos) -------- */
.wall{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:36px }
.tile{ background:#fff; padding:26px 22px; transition:background .15s }
.tile:hover{ background:var(--panel) }
.tile-ch{ font-family:var(--mono); font-size:11px; color:var(--signal); letter-spacing:2px; margin-bottom:10px }
.tile p{ color:var(--paper-dim); font-size:14.5px; margin:0 }

/* -------- demo / moldura do video - mockup escuro -------- */
.crt{ margin-top:32px; border:1px solid var(--scr-line); border-radius:8px; overflow:hidden; background:#000 }
.crt-bar{
  display:flex; align-items:center; gap:8px; background:var(--scr-panel); padding:10px 14px;
  font-family:var(--mono); font-size:11px; letter-spacing:1px; color:var(--scr-text-dim);
}
.crt video{ width:100%; display:block; background:#000 }
.checklist{ list-style:none; display:flex; gap:24px; padding:0; margin:20px 0 0; flex-wrap:wrap; font-size:14px; color:var(--paper-dim) }
.checklist li::before{ content:"✓ "; color:var(--signal) }

/* -------- prova / resultado -------- */
.proof-grid{ display:grid; grid-template-columns:1.2fr 1fr; gap:40px; align-items:center; margin-top:32px }
.proof-frame{ border:1px solid var(--line); border-radius:8px; overflow:hidden; background:var(--panel) }
.proof-frame img{ width:100% }
.proof-cap{ font-size:12px; color:var(--paper-dim); padding:12px 16px; margin:0; font-family:var(--mono) }
.proof-numbers{ display:flex; flex-direction:column; gap:16px }
.pn{ display:flex; align-items:baseline; gap:12px; border-bottom:1px solid var(--line); padding-bottom:14px }
.pn strong{ font-family:var(--mono); font-size:30px; color:var(--signal); min-width:120px }
.pn span{ color:var(--paper-dim); font-size:13px; text-transform:uppercase; letter-spacing:1px }
.fineprint{ font-size:12px; color:var(--paper-dim); margin-top:6px }

/* -------- bloco de alerta / telegram -------- */
.alert-block{ display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center }
.feature-list{ list-style:none; padding:0; margin:22px 0 30px; display:flex; flex-direction:column; gap:12px }
.feature-list li{ padding-left:22px; position:relative; font-size:15px; color:var(--paper-dim) }
.feature-list li::before{ content:"›"; position:absolute; left:0; color:var(--chroma); font-weight:700 }
.feature-list b{ color:var(--paper) }
.alert-frame{ border:1px solid var(--line); border-radius:8px; overflow:hidden }
.alert-frame img{ width:100% }

/* -------- grade de planos (schedule) -------- */
.schedule{ margin-top:36px; display:flex; flex-direction:column; gap:1px; background:var(--line); border:1px solid var(--line) }
.sched-row{
  position:relative; background:#fff; display:grid;
  grid-template-columns:140px 1fr 220px; gap:24px; align-items:center; padding:24px 26px;
}
.sched-row.featured{ background:var(--panel); box-shadow:inset 3px 0 0 var(--signal) }
.sched-tag{
  position:absolute; top:-1px; right:26px; font-family:var(--mono); font-size:10px; letter-spacing:1.5px;
  background:#0369A1; color:#fff; padding:4px 10px; font-weight:700;
  clip-path:polygon(0 0,100% 0,100% 100%,8px 100%);
}
.sched-time{ font-family:var(--mono); font-size:14px; letter-spacing:2px; color:var(--paper-dim) }
.sched-info p{ color:var(--paper-dim); font-size:13.5px; margin:0 }
.sched-price{ display:flex; flex-direction:column; align-items:flex-end; gap:10px; text-align:right }
.price{ font-family:var(--mono); font-size:32px; color:var(--signal); font-weight:600 }
.price small{ font-size:14px; color:var(--paper-dim); font-weight:400 }
.lockline{ text-align:center; font-size:13px; color:var(--paper-dim); margin-top:22px }

/* -------- passos -------- */
.step-list{ list-style:none; padding:0; margin:36px 0 0; display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line) }
.step-list li{ background:#fff; padding:26px 20px; display:flex; gap:14px }
.tc{ font-family:var(--mono); font-size:26px; color:var(--signal); font-weight:600 }
.step-list p{ color:var(--paper-dim); font-size:14px; margin:4px 0 0 }

/* -------- faq -------- */
.faq-list{ margin-top:28px; border-top:1px solid var(--line) }
.faq-list details{ border-bottom:1px solid var(--line); padding:18px 0 }
.faq-list summary{ cursor:pointer; font-weight:600; font-size:16px; list-style:none; display:flex; justify-content:space-between; align-items:center }
.faq-list summary::-webkit-details-marker{ display:none }
.faq-list summary::after{ content:"+"; font-family:var(--mono); color:var(--signal); font-size:20px }
.faq-list details[open] summary::after{ content:"–" }
.faq-list p{ color:var(--paper-dim); margin:12px 0 0; font-size:14.5px }

/* -------- suporte / signoff -------- */
.support{ text-align:center }
.support .sub{ margin:0 auto 28px }
.signoff{ text-align:center; border-top:1px solid var(--line) }

/* -------- rodape -------- */
.foot{
  border-top:1px solid var(--line); padding:44px 24px; text-align:center;
  color:var(--paper-dim); font-size:13px; position:relative; z-index:2; background:var(--panel);
}
.foot-brand{ display:flex; align-items:center; justify-content:center; gap:10px; font-family:var(--display); font-weight:800; letter-spacing:1px; color:var(--paper); margin-bottom:14px }
.foot-brand svg{ width:24px; height:24px }
.foot-brand rect{ fill:var(--signal) }
.foot-brand .loop{ stroke:#fff }
.foot-brand .loop-head{ fill:#fff }
.foot p{ margin:4px 0 }
.disclaimer{ opacity:.8 }

/* -------- whatsapp flutuante -------- */
.fab-whatsapp{
  position:fixed; right:20px; bottom:20px; z-index:30; width:52px; height:52px;
  border-radius:50%; background:#25D366; color:#0B1220; display:flex; align-items:center;
  justify-content:center; font-family:var(--mono); font-weight:700; font-size:12px;
  text-decoration:none; box-shadow:0 10px 24px rgba(15,23,42,.25);
}

/* =========================================================
   Pagina do curso (curso.html) - reaproveita as mesmas variaveis.
   ========================================================= */
.course-shell{ max-width:920px; margin:0 auto; padding:52px 24px 90px; position:relative; z-index:2 }
.course-gate{ max-width:440px; margin:60px auto; background:#fff; border:1px solid var(--line); border-top:4px solid var(--signal); border-radius:8px; padding:30px; box-shadow:0 20px 40px -20px rgba(15,23,42,.15) }
.course-gate h1{ font-size:26px; margin-bottom:6px }
.course-gate p{ color:var(--paper-dim); font-size:14px }
.course-gate label{ display:block; font-family:var(--mono); font-size:11px; letter-spacing:1.5px; color:var(--paper-dim); text-transform:uppercase; margin-top:16px }
.course-gate input{ display:block; width:100%; margin-top:6px; background:var(--panel); border:1px solid var(--line); color:var(--paper); padding:12px; border-radius:6px; outline:none; font:inherit }
.course-gate input:focus{ border-color:var(--signal) }
.course-gate button{ margin-top:20px; width:100%; justify-content:center }
.course-msg{ min-height:20px; margin-top:14px; font-size:13px; color:var(--signal) }
.course-msg.erro{ color:#DC2626 }

.course-header{ display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:8px }
.course-header p.eyebrow{ font-family:var(--mono); font-size:12px; letter-spacing:2px; color:var(--signal); text-transform:uppercase; margin:0 0 4px }
.course-header small{ color:var(--paper-dim); font-size:13px }
.course-logout{ font-size:12px; padding:8px 14px }

.dl-card{
  display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;
  background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--phosphor); border-radius:8px;
  padding:18px 20px; margin:26px 0 34px;
}
.dl-card div p{ margin:2px 0 0; color:var(--paper-dim); font-size:13px }
.dl-card div strong{ font-family:var(--mono); font-size:13px; letter-spacing:1px; color:var(--phosphor) }

.lesson{ border:1px solid var(--line); background:#fff; margin-bottom:1px; border-radius:6px }
.lesson summary{ list-style:none; cursor:pointer; padding:18px 20px; display:flex; align-items:center; gap:14px; font-weight:600 }
.lesson summary::-webkit-details-marker{ display:none }
.lesson summary .n{ font-family:var(--mono); color:var(--signal); font-size:13px }
.lesson[open] summary{ border-bottom:1px solid var(--line) }
.lesson-body{ padding:18px 20px }
.lesson video{ width:100%; background:#000; border-radius:6px }
.lesson-loading{ color:var(--paper-dim); font-size:13px; font-family:var(--mono) }

/* -------- teste gratis -------- */
.trial{ text-align:center }
.trial-form{ max-width:520px; margin:24px auto 0; display:flex; flex-direction:column; gap:12px }
.trial-form input, .trial-form select{
  background:var(--panel); border:1px solid var(--line); color:var(--paper);
  padding:13px 14px; border-radius:6px; font:inherit; outline:none;
}
.trial-form input:focus, .trial-form select:focus{ border-color:var(--signal) }
.trial-form button{ justify-content:center; margin-top:4px }
.trial-msg{ min-height:20px; margin-top:14px; font-size:13px; color:var(--signal) }
.trial-msg.erro{ color:#DC2626 }

/* -------- responsivo -------- */
@media (max-width:920px){
  .topnav{ display:none }
  .hero{ grid-template-columns:1fr; padding-top:44px }
  .specs{ grid-template-columns:repeat(2,1fr) }
  .wall{ grid-template-columns:1fr }
  .proof-grid{ grid-template-columns:1fr }
  .alert-block{ grid-template-columns:1fr }
  .sched-row{ grid-template-columns:1fr; text-align:left }
  .sched-price{ align-items:flex-start; text-align:left }
  .step-list{ grid-template-columns:1fr 1fr }
}
@media (max-width:520px){
  .step-list{ grid-template-columns:1fr }
  .trust-strip{ flex-direction:column; gap:8px }
}
