/* CLASE Manager — landing. Tokens tomados del tema Dark Slate de la app
   (styles.css body.theme-darkslate). Sin JS; FAQ con <details>. */

:root{
  --bg:#0f172a;
  --panel:#0b1226;
  --card:#172036;
  --text:#e5e7eb;
  --muted:#9ca3af;
  --accent:#22d3ee;
  --brand:#f59e0b;
  --ok:#34d399;
  --danger:#f87171;
  --line-1:#3d4b62;
  --line-2:#4c5d78;
  --shadow-lg:0 18px 40px rgba(0,0,0,.28);
  --maxw:1080px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
/* El header sticky (~57px) taparía los títulos al saltar a #funciones/#precio/#faq */
section[id]{ scroll-margin-top:72px; }
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--accent); }

.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 20px; }

/* ---------- Header ---------- */
header.site{
  position:sticky; top:0; z-index:10;
  background:color-mix(in oklab, var(--bg) 88%, transparent);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-1);
}
header.site .wrap{
  display:flex; align-items:center; gap:16px;
  padding-top:12px; padding-bottom:12px;
}
.logo{ display:flex; align-items:center; gap:10px; text-decoration:none; }
.logo img{ width:32px; height:32px; border-radius:8px; }
.logo span{ font-weight:800; font-size:18px; color:var(--brand); letter-spacing:.2px; }
nav.main{ margin-left:auto; display:flex; align-items:center; gap:20px; }
nav.main a{ color:var(--muted); text-decoration:none; font-weight:600; font-size:14px; }
nav.main a:hover{ color:var(--text); }
a.lang{
  border:1px solid var(--line-2);
  border-radius:8px;
  padding:4px 10px;
  font-size:13px; font-weight:700;
  letter-spacing:.5px;
  color:var(--muted); text-decoration:none;
}
a.lang:hover{ color:var(--text); background:var(--card); }

/* ---------- Botones ---------- */
.btn{
  display:inline-block;
  padding:10px 18px;
  border-radius:10px;
  font-weight:700;
  font-size:15px;
  text-decoration:none;
  border:1px solid transparent;
  transition:box-shadow .15s ease, filter .15s ease, background-color .15s ease;
}
.btn.primary{
  background:var(--accent);
  color:#06222b;
  border-color:var(--accent);
}
.btn.primary:hover{ filter:brightness(1.08); box-shadow:0 0 0 3px color-mix(in oklab, var(--accent) 25%, transparent); }
.btn.ghost{
  background:transparent;
  color:var(--text);
  border-color:var(--line-2);
}
.btn.ghost:hover{ background:var(--card); }
.btn.lg{ padding:14px 26px; font-size:17px; border-radius:12px; }

/* ---------- Hero ---------- */
.hero{ padding:64px 0 40px; text-align:center; }
.hero h1{
  font-size:clamp(30px, 5vw, 46px);
  line-height:1.15;
  margin:0 auto 16px;
  max-width:820px;
  letter-spacing:-.5px;
}
.hero h1 em{ font-style:normal; color:var(--accent); }
.hero p.sub{
  color:var(--muted);
  font-size:clamp(16px, 2.2vw, 19px);
  max-width:680px;
  margin:0 auto 28px;
}
.hero .cta-row{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; align-items:center; }
.hero .cta-note{ color:var(--muted); font-size:14px; margin-top:12px; }
.hero .shot{
  margin:44px auto 0;
  max-width:980px;
  border:1px solid var(--line-1);
  border-radius:16px;
  overflow:hidden;
  box-shadow:var(--shadow-lg);
}

/* ---------- Features ---------- */
.features{ padding:56px 0 8px; }
.features h2, .pricing h2, .privacy h2, .faq h2{
  text-align:center;
  font-size:clamp(24px, 3.6vw, 34px);
  margin:0 0 8px;
  letter-spacing:-.3px;
}
.section-sub{ text-align:center; color:var(--muted); max-width:640px; margin:0 auto 40px; }

.feature{
  display:flex; align-items:center; gap:40px;
  padding:36px 0;
}
.feature:nth-child(even){ flex-direction:row-reverse; }
.feature .txt{ flex:0 0 38%; }
.feature .txt h3{ font-size:22px; margin:0 0 10px; }
.feature .txt p{ color:var(--muted); margin:0; }
.feature .img{
  flex:1 1 62%;
  border:1px solid var(--line-1);
  border-radius:14px;
  overflow:hidden;
  box-shadow:var(--shadow-lg);
}
.feature .tag{
  display:inline-block;
  font-size:12px; font-weight:700;
  color:var(--accent);
  text-transform:uppercase; letter-spacing:1px;
  margin-bottom:8px;
}

.extras{
  margin:40px 0 0;
  padding:24px;
  background:var(--panel);
  border:1px solid var(--line-2);
  border-radius:16px;
}
.extras h3{ margin:0 0 12px; font-size:17px; }
.extras ul{ margin:0; padding:0; list-style:none; display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:8px 24px; }
.extras li{ color:var(--muted); font-size:15px; padding-left:22px; position:relative; }
.extras li::before{ content:"✓"; color:var(--ok); position:absolute; left:0; font-weight:700; }

/* ---------- Privacidad ---------- */
.privacy{ padding:64px 0; }
.privacy .box{
  background:var(--panel);
  border:1px solid var(--line-2);
  border-radius:18px;
  padding:36px 28px;
  text-align:center;
}
.privacy p{ color:var(--muted); max-width:700px; margin:12px auto 0; }
.privacy strong{ color:var(--text); }

/* ---------- Pricing ---------- */
.pricing{ padding:24px 0 56px; }
.plans{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(290px, 1fr));
  gap:24px;
  max-width:760px;
  margin:36px auto 0;
}
.plan{
  background:var(--panel);
  border:1px solid var(--line-2);
  border-radius:18px;
  padding:28px 24px;
  display:flex; flex-direction:column;
}
.plan.full{
  border-color:color-mix(in oklab, var(--accent) 55%, var(--line-2));
  box-shadow:0 0 0 1px color-mix(in oklab, var(--accent) 35%, transparent), var(--shadow-lg);
  position:relative;
}
.plan h3{ margin:0; font-size:18px; }
.plan .price{ font-size:34px; font-weight:800; margin:10px 0 2px; }
.plan .price small{ font-size:15px; font-weight:600; color:var(--muted); }
.plan .tagline{ color:var(--muted); font-size:14px; margin:0 0 18px; }
.plan ul{ list-style:none; margin:0 0 24px; padding:0; }
.plan li{ padding:7px 0 7px 26px; position:relative; font-size:15px; border-bottom:1px dashed var(--line-1); }
.plan li:last-child{ border-bottom:none; }
.plan li::before{ content:"✓"; color:var(--ok); position:absolute; left:2px; font-weight:700; }
.plan .btn{ margin-top:auto; text-align:center; }
/* Mismos bordes que .plans (760px): las notas heredan el ancho de las tarjetas */
.pricing .keep-note, .pricing .schools-note{
  text-align:left; color:var(--muted); font-size:14px;
  max-width:760px; margin:24px auto 0;
}
.pricing .schools-note{ margin-top:14px; }

/* ---------- FAQ ---------- */
.faq{ padding:32px 0 64px; }
.faq .list{ max-width:760px; margin:32px auto 0; }
.faq details{
  background:var(--panel);
  border:1px solid var(--line-2);
  border-radius:14px;
  padding:0 20px;
  margin-bottom:12px;
}
.faq summary{
  cursor:pointer;
  font-weight:700;
  padding:16px 0;
  list-style:none;
  position:relative;
  padding-right:28px;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:"+";
  position:absolute; right:2px; top:50%;
  transform:translateY(-50%);
  color:var(--accent); font-size:20px; font-weight:600;
}
.faq details[open] summary::after{ content:"–"; }
.faq details p{ color:var(--muted); margin:0 0 16px; }

/* ---------- CTA final ---------- */
.final-cta{ text-align:center; padding:24px 0 72px; }
.final-cta h2{ font-size:clamp(22px, 3.4vw, 30px); margin:0 0 20px; }

/* ---------- Soporte ---------- */
.support{ text-align:center; padding:0 0 56px; color:var(--muted); }
.support p{ margin:0; }
.support a{ font-weight:600; }

/* ---------- Sobre CLASE Manager ---------- */
.about{ padding:0 0 64px; }
/* Misma columna que .faq .list y .plans (760px de contenido): 760 + 40 del
   padding lateral de .wrap. Texto a la izquierda, sin justificar. */
.about .wrap{ max-width:800px; text-align:left; }
.about h2{ font-size:20px; letter-spacing:-.2px; margin:0 0 18px; }
.about h2::after{
  content:""; display:block;
  width:48px; height:3px; border-radius:2px;
  background:var(--brand);
  margin-top:10px;
}
.about p{ color:var(--muted); margin:0 0 14px; }
.about p:last-child{ margin-bottom:0; }

/* ---------- Footer ---------- */
footer.site{
  border-top:1px solid var(--line-1);
  background:var(--panel);
  padding:32px 0;
}
footer.site .wrap{
  display:flex; flex-wrap:wrap; gap:16px 32px;
  align-items:center; justify-content:space-between;
  color:var(--muted); font-size:14px;
}
footer.site nav{ display:flex; flex-wrap:wrap; gap:20px; }
footer.site a{ color:var(--muted); text-decoration:none; }
footer.site a:hover{ color:var(--text); }

/* ---------- Páginas legales ---------- */
main.legal{ padding:48px 20px 64px; max-width:760px; margin:0 auto; }
main.legal h1{ font-size:30px; letter-spacing:-.3px; }
main.legal h2{ font-size:20px; margin-top:32px; }
main.legal p, main.legal li{ color:var(--muted); }
main.legal strong{ color:var(--text); }
main.legal .updated{ font-size:13px; color:var(--muted); }

/* ---------- Responsive ---------- */
@media (max-width: 860px){
  .feature, .feature:nth-child(even){ flex-direction:column; gap:20px; padding:28px 0; }
  .feature .txt{ flex-basis:auto; text-align:center; }
  .feature .img{ flex-basis:auto; }
  nav.main a.link{ display:none; }
  .hero{ padding-top:44px; }
}
