/* ===== Base ===== */
*{margin:0;padding:0;box-sizing:border-box;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif}
:root{
  --bg1:#062a3a;
  --bg2:#0a6a86;
  --acc:#00e5d8;
  --acc2:#00c7bc;
  --glass: rgba(255,255,255,.08);
  --stroke: rgba(255,255,255,.10);
  --text:#ffffff;
  --muted: rgba(255,255,255,.75);
}
body{
  color:var(--text);
  background: radial-gradient(1200px 700px at 10% 10%, rgba(0,229,216,.22), transparent 55%),
              radial-gradient(900px 600px at 80% 20%, rgba(0,140,255,.18), transparent 55%),
              linear-gradient(180deg, var(--bg1), var(--bg2));
  min-height:100vh;
}
.container{max-width:1100px;margin:0 auto;padding:0 20px}
.muted{color:var(--muted)}
.small{font-size:12px}
.center{text-align:center}

/* ===== Header ===== */
.header{
  position:sticky;top:0;z-index:20;
  background:rgba(0,0,0,.16);
  backdrop-filter: blur(14px);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 0;
}
.brand{display:flex;align-items:center;gap:10px}
.logo{height:54px}
.brand-sub{font-size:12px;opacity:.85}
.nav{display:flex;align-items:center;gap:14px}
.nav a{
  color:#fff;text-decoration:none;font-weight:700;font-size:14px;opacity:.9;
  padding:10px 12px;border-radius:999px;
}
.nav a:hover{background:rgba(255,255,255,.08)}
.btn-cta{
  border:0;cursor:pointer;font-weight:900;letter-spacing:.6px;
  padding:11px 16px;border-radius:999px;color:#003b3a;
  background:var(--acc);
  box-shadow:0 0 0 0 rgba(0,229,216,.35);
}
.btn-cta:hover{background:var(--acc2)}

/* ===== Hero ===== */
.hero{padding:44px 0 18px}
.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:22px;align-items:start}
.status-pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 12px;border-radius:999px;
  background:rgba(0,0,0,.24);
  border:1px solid rgba(255,255,255,.08);
  font-weight:800;font-size:13px;
}
.hero h1{font-size:64px;line-height:1.05;margin:14px 0 10px}
.subtitle{font-size:18px;line-height:1.5;color:var(--muted);max-width:54ch;margin-bottom:18px}

/* KPI cards */
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:10px 0 14px}
.kpi{
  background:var(--glass);
  border:1px solid var(--stroke);
  border-radius:16px;
  padding:12px;
}
.kpi span{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}
.kpi strong{font-size:15px}

/* Slots */
.slots{
  margin:14px 0 18px;
  background:rgba(0,0,0,.18);
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;padding:14px;
}
.slots-top{display:flex;align-items:baseline;gap:8px}
.slots-top strong{font-size:28px}
.progress{height:10px;background:rgba(255,255,255,.10);border-radius:999px;overflow:hidden;margin-top:10px}
.progress-bar{height:100%;background:linear-gradient(90deg, var(--acc), #2fe6ff);border-radius:999px}
.slots-bottom{margin-top:8px;font-size:12px}

/* CTA Row */
.cta-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.btn-primary{
  border:0;cursor:pointer;font-weight:900;
  padding:14px 22px;border-radius:999px;
  background:var(--acc);color:#003b3a;
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
  transition:.2s;
}
.btn-primary:hover{transform:translateY(-1px);background:var(--acc2)}
.btn-primary.full{width:100%}
.cta-note{display:flex;flex-direction:column;gap:2px}
.cta-note span{font-weight:900}
.cta-note small{color:var(--muted)}

/* Pulse animation (chamativo, sem ser “brega”) */
.pulse{
  animation: pulseGlow 1.6s ease-in-out infinite;
}
@keyframes pulseGlow{
  0%{box-shadow:0 0 0 0 rgba(0,229,216,.38)}
  70%{box-shadow:0 0 0 18px rgba(0,229,216,0)}
  100%{box-shadow:0 0 0 0 rgba(0,229,216,0)}
}

/* Right card */
.glass{
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);
  border-radius:20px;
  padding:18px;
  box-shadow:0 18px 45px rgba(0,0,0,.18);
}
.glass h3{font-size:18px;margin-bottom:10px}
.glass p{color:var(--muted);line-height:1.6}
.mini{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.mini span{
  background:rgba(0,0,0,.22);
  border:1px solid rgba(255,255,255,.10);
  padding:8px 10px;border-radius:999px;
  font-weight:800;font-size:12px
}
.btn-secondary{
  width:100%;
  border-radius:999px;
  padding:12px 14px;
  border:1px solid rgba(0,229,216,.55);
  background:transparent;
  color:var(--acc);
  font-weight:900;
  cursor:pointer;
  transition:.2s;
}
.btn-secondary:hover{background:rgba(0,229,216,.12)}

/* ===== Themes ===== */
.themes{padding:22px 0 52px}
.themes-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:16px}
.themes h2{font-size:26px}
.themes-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:12px;
}
.theme-card{
  position:relative;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  padding:16px;
  overflow:hidden;
  transition:.22s;
}
.theme-card::before{
  content:"";
  position:absolute;inset:-2px;
  background: radial-gradient(240px 120px at 20% 10%, rgba(0,229,216,.22), transparent 60%);
  opacity:.0;transition:.22s;
}
.theme-card:hover{transform:translateY(-4px);background:rgba(255,255,255,.10)}
.theme-card:hover::before{opacity:1}
.theme-card .ico{font-size:22px;display:inline-flex}
.theme-card h4{margin:10px 0 6px;font-size:15px}
.theme-card p{color:var(--muted);font-size:12px;line-height:1.5}
.themes-cta{margin-top:18px;text-align:center}

/* ===== Footer ===== */
.footer{padding:24px 0;border-top:1px solid rgba(255,255,255,.06);opacity:.9}
.footer-inner{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}

/* ===== Modal ===== */
.modal{
  position:fixed;inset:0;
  display:none;
  align-items:center;justify-content:center;
  background:rgba(0,0,0,.68);
  padding:18px;z-index:99;
}
.modal-content{
  position:relative; /* IMPORTANT: fixa o X dentro do modal */
  width:100%;max-width:460px;
  background:#fff;color:#0b2c2b;
  border-radius:20px;
  padding:18px;
  animation: pop .18s ease;
}
@keyframes pop{from{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}
.close{
  position:absolute;top:10px;right:10px;
  width:40px;height:40px;border-radius:999px;
  border:0;background:#f1f4f5;
  cursor:pointer;font-size:22px;font-weight:900;
}
.modal-head{padding:4px 6px 12px}
.modal-head h2{color:#063a4a;font-size:20px}
.field{margin:10px 6px}
.field label{display:block;font-size:12px;font-weight:900;color:#0a5264;margin-bottom:6px}
.modal-content input{
  width:100%;padding:13px 12px;border-radius:12px;
  border:1px solid #d9e3e6;outline:none;
}
.modal-content input:focus{border-color:var(--acc);box-shadow:0 0 0 3px rgba(0,229,216,.18)}
.alert{
  background:#ffecec;border:1px solid #ffbcbc;color:#7a1d1d;
  padding:12px;border-radius:14px;margin:8px 6px 0;font-weight:800;
}

/* Loader button */
#btnEnviar{display:flex;align-items:center;justify-content:center;gap:10px}
.loader{
  display:none;width:18px;height:18px;border-radius:999px;
  border:3px solid rgba(0,0,0,.18);border-top-color:rgba(0,0,0,.55);
  animation: spin .8s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
.loading .btn-text{opacity:.85}
.loading .loader{display:inline-block}

/* ===== Responsive ===== */
@media (max-width: 980px){
  .hero-grid{grid-template-columns:1fr}
  .hero h1{font-size:46px}
  .kpis{grid-template-columns:1fr}
  .themes-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width: 520px){
  .themes-grid{grid-template-columns:1fr}
  .nav a{display:none}
  .logo{height:48px}
}

.theme-card .speaker {
  display: inline-block;
  margin-top: 10px;
  padding: 4px 10px;
  font-size: 0.85rem;
  font-weight: 700;
  background-color: #eef2ff;
  color: #1e3a8a;
  border-radius: 8px;
}

/* alerta topo do modal */
.modal-alert{
  display:none;
  margin:10px 0 14px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(255,107,107,.45);
  background:rgba(255,107,107,.12);
  color:#ffb3b3;
  font-weight:700;
  font-size:13px;
}

/* destaca campo inválido */
.is-invalid{
  border:1px solid #ff6b6b !important;
  box-shadow:0 0 0 3px rgba(255,107,107,.15);
  outline:none;
}

.modal-note { color:#000 !important; }