/* =========================================================================
   Studus marketing site — styles.css
   Self-contained, no external fonts/CDNs. System font stack.
   Design idiom: aderius marketing (rounded cards, soft shadows, gradient
   hero/pricing bands, dashed step connectors, accordion modules) recolored
   to the Studus indigo/coral palette.
   ========================================================================= */

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html, body, h1, h2, h3, h4, p, ul, ol, li, figure, blockquote, dl, dd { margin: 0; }
ul[class], ol[class] { padding: 0; list-style: none; }
img, picture, svg { display: block; max-width: 100%; }
input, button, textarea, select { font: inherit; color: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }

/* ---------- Tokens ---------- */
:root{
  --indigo:#3B53F4;
  --indigo-hover:#4F66FF;
  --indigo-soft-1:#5E72FF;
  --indigo-soft-2:#7E93FF;
  --indigo-soft-3:#8493FF;
  --coral:#FF6B5C;
  --coral-deep:#F2583F;
  --mint:#25D6A4;
  --ink:#0a0c1b;
  --ink-2:#191d3c;
  --muted:#54597d;
  --muted-2:#7a7ea0;
  --muted-3:#888da8;

  --surface-0:#FFFFFF;
  --surface-1:#FAFBFF;
  --surface-2:#F6F7FC;
  --surface-3:#E9ECFF;
  --hairline:#E9ECFF;

  --radius-sm:12px;
  --radius-md:16px;
  --radius-lg:22px;
  --radius-xl:28px;
  --radius-2xl:32px;

  --shadow-sm: 0 8px 22px rgba(15,23,80,.07);
  --shadow-md: 0 18px 44px rgba(15,23,80,.10);
  --shadow-lg: 0 30px 80px rgba(15,23,80,.16);
  --shadow-glow: 0 20px 55px rgba(59,83,244,.30);

  --gradient-primary: linear-gradient(135deg,var(--indigo) 0%,var(--indigo-soft-1) 100%);
  --gradient-card: linear-gradient(150deg,#141a52 0%,#3B53F4 52%,#7E93FF 100%);
  --gradient-dark: linear-gradient(150deg,#0a0c1b 0%,#191d3c 42%,#33409e 100%);
  --gradient-cta: linear-gradient(120deg,#141a52 0%,#3B53F4 55%,#5E72FF 100%);
  --gradient-warm: linear-gradient(135deg,#fff2ef 0%,#f4f0ff 100%);

  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;

  --container: 1220px;
  --container-narrow: 900px;
  --ease: cubic-bezier(.16,.84,.44,1);
}

html{
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
}

body{
  font-family: var(--font-sans);
  font-feature-settings: 'ss01';
  background: var(--surface-1);
  color: var(--ink);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

main{ display:block; }

h1,h2,h3,h4{
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  line-height: 1.1;
}

p{ color: var(--muted); }

/* ---------- Layout helpers ---------- */
.wrap{
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 20px;
}
.wrap-narrow{
  max-width: var(--container-narrow);
  margin: 0 auto;
  padding: 0 20px;
}
.pad{ padding: 88px 0; }
.pad-sm{ padding: 64px 0; }
@media (max-width: 720px){
  .pad{ padding: 60px 0; }
  .pad-sm{ padding: 44px 0; }
}

.visually-hidden{
  position:absolute !important;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* Skip link */
.skip-link{
  position:absolute;
  left: 12px; top: -60px;
  background: var(--ink);
  color: #fff;
  padding: 10px 16px;
  border-radius: 10px;
  z-index: 200;
  transition: top .2s var(--ease);
}
.skip-link:focus{ top: 12px; }

/* ---------- Focus states ---------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible{
  outline: 2.5px solid var(--indigo);
  outline-offset: 2px;
  border-radius: 8px;
}

/* ---------- Section label / eyebrow ---------- */
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: var(--indigo);
  margin-bottom: 14px;
}
.eyebrow::before{
  content:"";
  width:7px; height:7px;
  border-radius:50%;
  background: var(--coral);
  flex: none;
}
.eyebrow.on-dark{ color:#B9F8D3; }
.eyebrow.on-dark::before{ background:#B9F8D3; }

.section-head{
  max-width: 640px;
  margin-bottom: 40px;
}
.section-head.center{
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.section-head h2{
  font-size: clamp(26px, 3.6vw, 42px);
  margin-bottom: 14px;
}
.section-head p{
  font-size: 16px;
  line-height: 1.65;
}

/* ---------- Buttons ---------- */
.btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 14.5px;
  font-weight: 700;
  padding: 14px 22px;
  border-radius: 14px;
  border: 1px solid transparent;
  transition: transform .18s var(--ease), box-shadow .18s var(--ease), background .18s var(--ease), border-color .18s var(--ease);
  white-space: nowrap;
}
.btn svg{ width:16px; height:16px; transition: transform .18s var(--ease); flex: none; }
.btn:hover svg{ transform: translateX(3px); }
@media (prefers-reduced-motion: reduce){
  .btn, .btn svg{ transition: none; }
  .btn:hover{ transform:none !important; }
}

.btn-primary{
  background: var(--gradient-primary);
  color:#fff;
  box-shadow: 0 14px 32px rgba(59,83,244,.30);
}
.btn-primary:hover{ transform: translateY(-2px); box-shadow: 0 18px 40px rgba(59,83,244,.38); background: linear-gradient(135deg,var(--indigo-hover),var(--indigo-soft-2)); }
.btn-primary:active{ transform: translateY(0); }
.btn-primary:disabled{ opacity:.6; cursor: wait; transform:none; box-shadow:none; }

.btn-ghost{
  background: var(--surface-0);
  color: var(--ink-2);
  border-color: var(--hairline);
}
.btn-ghost:hover{ border-color: var(--indigo-soft-2); color: var(--indigo); }

.btn-on-dark{
  background: rgba(255,255,255,.08);
  color:#fff;
  border-color: rgba(255,255,255,.18);
}
.btn-on-dark:hover{ background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.3); }

.btn-cream{
  background: linear-gradient(135deg,#ffe3b0,#ffb7a6);
  color:#4a1d0f;
  box-shadow: 0 14px 30px rgba(120,53,15,.18);
}
.btn-cream:hover{ transform: translateY(-2px); }

.btn-block{ width: 100%; }
.btn-lg{ padding: 16px 26px; font-size: 15px; }

/* ---------- Header / nav ---------- */
.site-header{
  position: sticky;
  top: 0;
  z-index: 60;
  background: rgba(250,251,255,.86);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--hairline);
}
.nav{
  display:flex;
  align-items:center;
  justify-content: space-between;
  height: 72px;
  gap: 16px;
}
.brand{
  display:flex;
  align-items:center;
  gap: 10px;
  font-weight: 800;
  font-size: 17px;
  color: var(--ink);
}
.brand-mark{
  width: 32px; height: 32px;
  border-radius: 10px;
  background: linear-gradient(135deg,var(--indigo),var(--indigo-soft-2));
  display:grid; place-items:center;
  color:#fff;
  font-weight: 800;
  font-size: 15px;
  box-shadow: 0 8px 18px rgba(59,83,244,.35);
  flex: none;
}
.nav-links{
  display:flex;
  align-items:center;
  gap: 28px;
}
.nav-links a{
  font-size: 13.5px;
  font-weight: 600;
  color: var(--muted);
  transition: color .15s var(--ease);
}
.nav-links a:hover{ color: var(--indigo); }

.nav-right{
  display:flex;
  align-items:center;
  gap: 10px;
}
.lang-toggle{
  display:flex;
  align-items:center;
  border: 1px solid var(--hairline);
  border-radius: 10px;
  padding: 3px;
  background: #fff;
}
.lang-toggle button{
  border:none;
  background: transparent;
  padding: 6px 10px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  border-radius: 7px;
  color: var(--muted-2);
  transition: background .15s var(--ease), color .15s var(--ease);
}
.lang-toggle button[aria-pressed="true"]{
  background: var(--gradient-primary);
  color:#fff;
}
.nav-login{
  font-size: 13px;
  font-weight: 700;
  color: var(--muted);
  padding: 8px 6px;
}
.nav-login:hover{ color: var(--ink); }

.nav-toggle{
  display:none;
  border: 1px solid var(--hairline);
  border-radius: 10px;
  width: 40px; height: 40px;
  align-items:center; justify-content:center;
  background:#fff;
}
.nav-toggle svg{ width:18px; height:18px; }

.mobile-menu{
  display:none;
  border-top: 1px solid var(--hairline);
  background: #fff;
  padding: 8px 20px 18px;
}
.mobile-menu.open{ display:block; }
.mobile-menu a{
  display:flex;
  align-items:center;
  justify-content: space-between;
  padding: 13px 2px;
  border-bottom: 1px solid var(--surface-2);
  font-size: 14.5px;
  font-weight: 700;
  color: var(--ink-2);
}
.mobile-menu a:last-of-type{ border-bottom:none; }
.mobile-menu .btn{ margin-top: 12px; }

@media (max-width: 960px){
  .nav-links{ display:none; }
  .nav-login{ display:none; }
}
@media (max-width: 720px){
  .nav-toggle{ display:flex; }
  .nav .btn-primary.nav-cta{ display:none; }
}

/* ---------- Hero ---------- */
.hero{
  position: relative;
  padding: 60px 0 80px;
  overflow: hidden;
}
.hero-bg{
  position:absolute;
  inset: -10% 0 auto 0;
  height: 720px;
  z-index: 0;
  pointer-events:none;
  background:
    radial-gradient(circle at 14% 16%, rgba(255,107,92,.16), transparent 32%),
    radial-gradient(circle at 82% 20%, rgba(94,114,255,.24), transparent 36%),
    radial-gradient(circle at 48% 82%, rgba(37,214,164,.16), transparent 44%);
}
.hero .wrap{
  position: relative;
  z-index: 1;
  display:grid;
  grid-template-columns: 1.02fr .98fr;
  gap: 56px;
  align-items:center;
}
.hero-badge{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  border: 1px solid var(--surface-3);
  background: rgba(255,255,255,.7);
  border-radius: 999px;
  padding: 7px 14px;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--indigo);
  box-shadow: var(--shadow-sm);
}
.hero h1{
  margin-top: 22px;
  font-size: clamp(34px, 5vw, 58px);
  line-height: 1.05;
  max-width: 620px;
}
.hero h1 .accent{
  color: var(--indigo);
  text-decoration-line: underline;
  text-decoration-color: var(--coral);
  text-decoration-thickness: 3px;
  text-underline-offset: 8px;
  text-decoration-skip-ink: none;
}
.hero-lead{
  margin-top: 22px;
  font-size: clamp(16px,1.6vw,18.5px);
  line-height: 1.7;
  max-width: 560px;
  color: var(--muted);
}
.hero-cta{
  display:flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 30px;
}
.hero-badges{
  display:flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 28px;
}
.hero-badges span{
  display:flex;
  align-items:center;
  gap: 8px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--muted);
}
.hero-badges .ic{
  width: 20px; height: 20px;
  border-radius: 999px;
  background: #dff7e9;
  color: #16744b;
  display:grid; place-items:center;
  flex: none;
}
.hero-badges .ic svg{ width:11px; height:11px; }

/* Hero visual mockup */
.hero-visual{
  position: relative;
}
.hero-visual-glow{
  position:absolute;
  inset: -14%;
  background: radial-gradient(circle, rgba(94,114,255,.20), transparent 68%);
  filter: blur(10px);
  z-index: 0;
}
.mock{
  position: relative;
  z-index: 1;
  background: #fff;
  border: 1px solid var(--surface-3);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-lg);
  padding: 14px;
}
.mock-bar{
  display:flex;
  align-items:center;
  gap: 8px;
  padding: 6px 6px 14px;
  border-bottom: 1px solid var(--surface-2);
}
.mock-bar i{
  width: 9px; height: 9px;
  border-radius: 999px;
  background: var(--surface-3);
  display:block;
}
.mock-bar i:nth-child(1){ background:#ffb2ab; }
.mock-bar i:nth-child(2){ background:#ffd9a0; }
.mock-bar i:nth-child(3){ background:#9be8c9; }
.mock-bar .url{
  margin-left: 8px;
  font-size: 11px;
  color: var(--muted-3);
  background: var(--surface-2);
  border-radius: 999px;
  padding: 4px 10px;
}
.mock-body{
  display:grid;
  grid-template-columns: 130px 1fr;
  gap: 14px;
  padding-top: 14px;
}
.mock-side{ display:flex; flex-direction:column; gap:4px; }
.si{
  display:flex;
  align-items:center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 9px;
  font-size: 11.5px;
  font-weight: 700;
  color: var(--muted-2);
}
.si .dot{ width:6px; height:6px; border-radius:999px; background: var(--surface-3); flex: none; }
.si.on{ background: var(--surface-2); color: var(--indigo); }
.si.on .dot{ background: var(--indigo); }
.mock-main{
  background: var(--surface-1);
  border-radius: 16px;
  padding: 16px;
}
.mock-h{
  display:flex;
  align-items:center;
  justify-content: space-between;
  margin-bottom: 12px;
}
.mock-h .t{ font-size: 12.5px; font-weight: 800; color: var(--ink-2); }
.mock-h .pill{
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #14754b;
  background: #e1f7eb;
  border-radius: 999px;
  padding: 3px 9px;
}
.mc-grid{
  display:grid;
  grid-template-columns: repeat(3,1fr);
  gap: 8px;
  margin-bottom: 14px;
}
.mc{
  background: #fff;
  border: 1px solid var(--surface-3);
  border-radius: 12px;
  padding: 10px;
}
.mc .lab{ font-size: 9.5px; color: var(--muted-3); font-weight: 700; }
.mc .big{ font-size: 17px; font-weight: 800; color: var(--ink); margin-top: 3px; }
.mc .big.acc{ color: var(--indigo); }
.bars{
  display:flex;
  align-items:flex-end;
  gap: 5px;
  height: 68px;
}
.bars span{
  flex:1;
  background: linear-gradient(180deg, var(--indigo-soft-2), var(--indigo));
  border-radius: 5px 5px 2px 2px;
}
.mock-callout{
  position:absolute;
  left: -14px; bottom: -18px;
  z-index: 2;
  display:flex;
  align-items:center;
  gap: 10px;
  background: #fff;
  border: 1px solid var(--surface-3);
  border-radius: 16px;
  padding: 10px 14px;
  box-shadow: var(--shadow-md);
}
.mock-callout .ic{
  width: 32px; height: 32px;
  border-radius: 10px;
  background: #e8fbf1;
  color: #178655;
  display:grid; place-items:center;
  flex: none;
}
.mock-callout .ic svg{ width:16px; height:16px; }
.mock-callout .lab{ font-size: 10px; color: var(--muted-3); }
.mock-callout .val{ font-size: 12.5px; font-weight: 800; color: var(--ink); }

@media (max-width: 960px){
  .hero .wrap{ grid-template-columns: 1fr; gap: 44px; }
  .mock-callout{ display:none; }
}
@media (max-width: 560px){
  .mock-body{ grid-template-columns: 1fr; }
  .mock-side{ display:none; }
}

/* ---------- Trust strip ---------- */
.trust-strip{
  background: #fff;
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
}
.trust-strip .wrap{
  padding: 20px;
  display:flex;
  flex-wrap: wrap;
  align-items:center;
  justify-content:center;
  gap: 10px 22px;
}
.trust-strip span{
  display:inline-flex;
  align-items:center;
  gap: 7px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--muted);
}
.trust-strip .sep{ color: var(--surface-3); font-weight:400; }

/* ---------- Feature accordion (dark) ---------- */
.features{
  position: relative;
  background: var(--gradient-dark);
  color: #fff;
  overflow: hidden;
}
.features::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 85% 0%, rgba(126,147,255,.28), transparent 45%),
    radial-gradient(circle at 5% 90%, rgba(255,107,92,.16), transparent 40%);
  pointer-events:none;
}
.features .wrap{ position:relative; }
.features .section-head h2{ color:#fff; max-width: 620px; }
.features .section-head p{ color: rgba(255,255,255,.68); }

.feature-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 8px;
}
@media (max-width: 980px){ .feature-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 640px){ .feature-grid{ grid-template-columns: 1fr; } }

.fcard{
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.06);
  border-radius: var(--radius-xl);
  overflow: hidden;
  transition: border-color .2s var(--ease), background .2s var(--ease), box-shadow .2s var(--ease);
}
.fcard:hover{ border-color: rgba(255,255,255,.3); background: rgba(255,255,255,.09); }
.fcard[open]{
  border-color: rgba(185,248,211,.4);
  background: rgba(255,255,255,.1);
  box-shadow: 0 20px 50px rgba(6,8,30,.3);
}
.fcard summary{
  cursor:pointer;
  list-style:none;
  padding: 22px;
  outline: none;
}
.fcard summary::-webkit-details-marker{ display:none; }
.fcard .fc-top{
  display:flex;
  align-items:flex-start;
  justify-content: space-between;
  gap: 12px;
}
.fcard .fc-icon{
  width: 42px; height:42px;
  border-radius: 14px;
  background: rgba(255,255,255,.08);
  color:#B9F8D3;
  display:grid; place-items:center;
  flex:none;
  transition: background .2s var(--ease), color .2s var(--ease);
}
.fcard .fc-icon svg{ width:19px; height:19px; }
.fcard[open] .fc-icon{ background:#B9F8D3; color:#173728; }
.fcard .fc-chev{
  width: 34px; height:34px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  color: rgba(255,255,255,.6);
  display:grid; place-items:center;
  flex: none;
  transition: transform .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease);
}
.fcard .fc-chev svg{ width:14px; height:14px; }
.fcard[open] .fc-chev{ transform: rotate(90deg); border-color: rgba(185,248,211,.4); color:#B9F8D3; }
.fcard .fc-tag{
  display: block;
  margin-top: 16px;
  font-size: 10.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: #B9F8D3;
}
.fcard h3{
  color:#fff;
  font-size: 17px;
  margin-top: 6px;
}
.fcard .fc-lead{
  margin-top: 10px;
  font-size: 13.5px;
  line-height: 1.6;
  color: rgba(255,255,255,.72);
  min-height: 40px;
}
.fcard .fc-toggle-label{
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.1);
  display:flex;
  align-items:center;
  gap: 8px;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: #B9F8D3;
}
.fcard .fc-toggle-label svg{ width:13px; height:13px; }
.fcard .fc-toggle-label .lbl-open{ display:none; }
.fcard[open] .fc-toggle-label .lbl-closed{ display:none; }
.fcard[open] .fc-toggle-label .lbl-open{ display:inline; }

.fcard .fc-body{
  border-top: 1px solid rgba(255,255,255,.12);
  padding: 20px 22px 24px;
  background: rgba(9,11,40,.2);
}
.fcard .fc-body ul{ display:flex; flex-direction:column; gap: 9px; margin-bottom: 16px; }
.fcard .fc-body li{
  display:flex;
  align-items:flex-start;
  gap: 9px;
  font-size: 12.5px;
  line-height: 1.55;
  color: rgba(255,255,255,.82);
}
.fcard .fc-body li .ck{
  width: 16px; height:16px;
  border-radius: 999px;
  background: rgba(185,248,211,.16);
  color:#B9F8D3;
  display:grid; place-items:center;
  flex: none;
  margin-top: 1px;
}
.fcard .fc-body li .ck svg{ width:9px; height:9px; }
.fcard .fc-body .fc-detail{
  font-size: 12.5px;
  line-height: 1.65;
  color: rgba(255,255,255,.76);
}
.fcard .fc-body .fc-detail b{ color:#fff; }

/* ---------- Course & test types ---------- */
.types-head{ margin-bottom: 34px; }
.types-group + .types-group{ margin-top: 40px; }
.types-group-h{
  display:flex;
  align-items:center;
  gap: 10px;
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: var(--ink-2);
  margin-bottom: 18px;
}
.types-group-h .gi{
  width: 30px; height:30px;
  border-radius: 9px;
  background: var(--surface-2);
  color: var(--indigo);
  display:grid; place-items:center;
  flex: none;
}
.types-group-h .gi svg{ width:15px; height:15px; }
.type-grid{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap: 14px;
}
.tcard{
  flex: 1 1 260px;
  max-width: 360px;
  border: 1px solid var(--hairline);
  background: #fff;
  border-radius: var(--radius-lg);
  padding: 18px;
  transition: transform .18s var(--ease), box-shadow .18s var(--ease), border-color .18s var(--ease);
}
.tcard:hover{ transform: translateY(-3px); box-shadow: var(--shadow-sm); border-color: var(--indigo-soft-2); }
.tcard .tt{ font-size: 14px; font-weight: 700; color: var(--ink); margin-bottom: 6px; }
.tcard p{ font-size: 12.5px; line-height: 1.55; }

.soon-box{
  margin-top: 32px;
  border-radius: var(--radius-lg);
  border: 1px dashed var(--surface-3);
  background: var(--surface-2);
  padding: 16px 18px;
  font-size: 13px;
  line-height: 1.6;
  color: var(--muted);
}
.soon-box b{ color: var(--ink-2); }

/* ---------- Dual audience ---------- */
.audience-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 8px;
}
@media (max-width: 720px){ .audience-grid{ grid-template-columns: 1fr; } }
.acard{
  border: 1px solid var(--hairline);
  background: #fff;
  border-radius: var(--radius-xl);
  padding: 26px;
  box-shadow: var(--shadow-sm);
}
.acard .ic{
  width: 40px; height:40px;
  border-radius: 12px;
  background: var(--surface-2);
  color: var(--indigo);
  display:grid; place-items:center;
}
.acard .ic svg{ width:18px; height:18px; }
.acard h3{ margin-top: 14px; font-size: 16px; }
.acard p{ margin-top: 8px; font-size: 13px; line-height: 1.6; }
.audience-note{
  margin-top: 20px;
  font-size: 12px;
  color: var(--muted-3);
  text-align: center;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}

/* ---------- Real features chip strip ---------- */
.chip-grid{
  display:flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  margin-top: 8px;
}
.chip{
  background: #fff;
  border: 1px solid var(--hairline);
  border-radius: 999px;
  padding: 9px 16px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--ink-2);
  box-shadow: var(--shadow-sm);
}
.chip-opt{
  background: var(--surface-2);
  color: var(--muted);
  border-style: dashed;
}

/* ---------- Discord band ---------- */
.discord-note{
  margin-top: 8px;
  font-size: 11.5px;
  color: var(--muted-3);
}

/* ---------- Comparison ---------- */
.compare-scroll{
  overflow-x: auto;
  border: 1px solid var(--hairline);
  border-radius: var(--radius-xl);
  background: #fff;
  box-shadow: var(--shadow-sm);
  -webkit-overflow-scrolling: touch;
}
table.compare{
  width: 100%;
  min-width: 640px;
  border-collapse: collapse;
}
table.compare th, table.compare td{
  padding: 15px 18px;
  text-align: center;
  font-size: 13px;
  border-bottom: 1px solid var(--surface-2);
  white-space: nowrap;
}
table.compare thead th{
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--muted-2);
  background: var(--surface-1);
  border-bottom: 1px solid var(--hairline);
}
table.compare td.name, table.compare th.name{
  text-align: left;
  font-weight: 700;
  color: var(--ink);
}
table.compare tr:last-child td{ border-bottom: none; }
table.compare .yes{ color: var(--mint); font-weight: 800; }
table.compare .no{ color: #d5566a; font-weight: 800; }
table.compare .mini{ color: var(--muted-2); font-size: 11.5px; }
tr.row-us{ background: linear-gradient(90deg, rgba(59,83,244,.06), transparent); }
tr.row-us td.name{ color: var(--indigo); }
tr.row-us td.name::before{
  content:"";
  display:inline-block;
  width:7px; height:7px;
  border-radius:999px;
  background: var(--indigo);
  margin-right: 8px;
}
.compare-note{
  margin-top: 16px;
  font-size: 12px;
  color: var(--muted-3);
}

/* ---------- Pricing ---------- */
.pricing-grid{
  display:grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 52px;
  align-items: start;
}
@media (max-width: 980px){ .pricing-grid{ grid-template-columns: 1fr; gap: 32px; } }

.pricing-why{
  margin-top: 20px;
  border-radius: var(--radius-lg);
  border: 1px solid #ffd9cf;
  background: var(--gradient-warm);
  padding: 16px 18px;
  font-size: 13px;
  line-height: 1.6;
  color: var(--muted);
}
.pricing-why b{ color: var(--ink); }

.price-cards{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 18px;
  align-items: start;
}
@media (max-width: 720px){ .price-cards{ grid-template-columns: 1fr; } }

.pcard{
  border-radius: var(--radius-xl);
  padding: 30px;
}
.pcard-base{
  position: relative;
  overflow:hidden;
  background: var(--gradient-card);
  color:#fff;
  box-shadow: var(--shadow-glow);
}
.pcard-base::before{
  content:"";
  position:absolute;
  right:-60px; top:-60px;
  width: 220px; height:220px;
  border-radius: 999px;
  background: rgba(126,147,255,.35);
  filter: blur(10px);
}
.pcard-base .badge{
  position: relative;
  display:inline-block;
  font-size: 10.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .1em;
  background: rgba(255,255,255,.14);
  padding: 5px 11px;
  border-radius: 999px;
  color: #dfe4ff;
}
.pcard-base .pname{
  position: relative;
  margin-top: 16px;
  font-size: 20px;
  font-weight: 800;
}
.amount{
  position: relative;
  display:flex;
  align-items:flex-end;
  gap: 6px;
  margin-top: 14px;
}
.amount .from{ font-size: 14px; color: rgba(255,255,255,.7); padding-bottom: 8px; }
.amount .num{ font-size: 46px; font-weight: 800; letter-spacing: -0.03em; }
.amount .per{ font-size: 13px; color: rgba(255,255,255,.7); padding-bottom: 8px; }
.pcard-base .sub{
  position: relative;
  margin-top: 8px;
  font-size: 13px;
  color: rgba(255,255,255,.78);
}
.pcard-base ul{
  position: relative;
  display:grid;
  gap: 10px;
  margin-top: 22px;
}
.pcard-base li{
  display:flex;
  align-items:flex-start;
  gap: 9px;
  font-size: 13px;
  color: rgba(255,255,255,.92);
}
.pcard-base li .ck{
  width:18px; height:18px;
  border-radius:999px;
  background: rgba(185,248,211,.18);
  color:#B9F8D3;
  display:grid; place-items:center;
  flex:none; margin-top:1px;
}
.pcard-base li .ck svg{ width:10px; height:10px; }
.pcard-base .btn{ position:relative; margin-top: 24px; }
.pcard-base .pnote{
  position:relative;
  margin-top: 12px;
  font-size: 11.5px;
  color: rgba(255,255,255,.62);
}

.pcard-custom{
  border: 1px solid var(--hairline);
  background: #fff;
  box-shadow: var(--shadow-sm);
}
.pcard-custom .badge{
  display:inline-block;
  font-size: 10.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .1em;
  background: #fff0ee;
  color: var(--coral-deep);
  padding: 5px 11px;
  border-radius: 999px;
}
.pcard-custom .pname{
  margin-top: 14px;
  font-size: 17px;
  font-weight: 800;
  color: var(--ink);
}
.pcard-custom .amount .num{
  font-size: 24px;
  color: var(--ink);
}
.pcard-custom .sub{ margin-top: 6px; font-size: 12.5px; color: var(--muted-2); }
.pcard-custom ul{ display:grid; gap: 9px; margin-top: 18px; }
.pcard-custom li{
  display:flex;
  align-items:flex-start;
  gap: 8px;
  font-size: 12.5px;
  color: var(--muted);
}
.pcard-custom li .ck{
  width:15px; height:15px;
  border-radius:999px;
  background: #fff0ee;
  color: var(--coral-deep);
  display:grid; place-items:center;
  flex:none; margin-top:2px;
}
.pcard-custom li .ck svg{ width:8px; height:8px; }
.pcard-custom .btn{ margin-top: 20px; width: 100%; }
.pcard-custom .pnote{ margin-top: 10px; font-size: 11.5px; color: var(--muted-3); }

.ai-strip{
  margin-top: 18px;
  display:flex;
  align-items:flex-start;
  gap: 14px;
  border-radius: var(--radius-lg);
  border: 1px solid var(--surface-3);
  background: var(--surface-2);
  padding: 18px 20px;
}
.ai-strip .ic{
  width: 38px; height:38px;
  border-radius: 12px;
  background: var(--gradient-primary);
  color:#fff;
  display:grid; place-items:center;
  flex: none;
}
.ai-strip .ic svg{ width:18px; height:18px; }
.ai-strip h4{ font-size: 14px; margin-bottom: 4px; }
.ai-strip p{ font-size: 12.5px; line-height: 1.55; }

/* ---------- Launch / how-it-works band ---------- */
.launch{
  background: var(--surface-2);
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
}
.steps{
  position: relative;
  display:grid;
  grid-template-columns: repeat(3,1fr);
  gap: 16px;
  margin-top: 8px;
}
.steps::before{
  content:"";
  position:absolute;
  left: 16%; right: 16%; top: 34px;
  border-top: 1px dashed var(--surface-3);
}
@media (max-width: 820px){
  .steps{ grid-template-columns: 1fr; }
  .steps::before{ display:none; }
}
.step-card{
  position: relative;
  background:#fff;
  border: 1px solid var(--hairline);
  border-radius: var(--radius-xl);
  padding: 26px 22px;
  text-align:center;
  box-shadow: 0 12px 30px rgba(59,83,244,.06);
}
.step-n{
  position: relative;
  margin: 0 auto;
  width: 60px; height:60px;
  border-radius: 999px;
  border: 6px solid var(--surface-2);
  background: var(--gradient-primary);
  color:#fff;
  display:grid; place-items:center;
  font-size: 18px;
  font-weight: 800;
  box-shadow: 0 12px 26px rgba(59,83,244,.28);
}
.step-card h3{ margin-top: 18px; font-size: 15.5px; }
.step-card p{ margin-top: 8px; font-size: 12.5px; line-height: 1.55; }

.why-box{
  margin-top: 36px;
  border-radius: var(--radius-xl);
  border: 1px solid var(--surface-3);
  background: #fff;
  padding: 24px 26px;
  display:grid;
  grid-template-columns: auto 1fr;
  gap: 16px;
  align-items:flex-start;
}
.why-box .ic{
  width: 40px; height: 40px;
  border-radius: 12px;
  background: #eef0ff;
  color: var(--indigo);
  display:grid; place-items:center;
  flex: none;
}
.why-box .ic svg{ width:18px; height:18px; }
.why-box h4{ font-size: 14.5px; margin-bottom: 6px; }
.why-box p{ font-size: 13px; line-height: 1.6; }

/* ---------- Register ---------- */
.register-grid{
  display:grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 48px;
  align-items:start;
}
@media (max-width: 900px){ .register-grid{ grid-template-columns: 1fr; gap: 30px; } }

.register-perks{
  margin-top: 22px;
  display:grid;
  gap: 12px;
}
.register-perks li{
  display:flex;
  align-items:center;
  gap: 10px;
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
}
.register-perks .ic{
  width: 24px; height:24px;
  border-radius: 999px;
  background: #dff7e9;
  color: #16744b;
  display:grid; place-items:center;
  flex: none;
}
.register-perks .ic svg{ width:12px; height:12px; }

.form-card{
  background:#fff;
  border: 1px solid var(--hairline);
  border-radius: var(--radius-2xl);
  box-shadow: var(--shadow-lg);
  padding: 32px;
}
.form-card h3{ font-size: 19px; }
.form-card > p{ margin-top: 8px; font-size: 13px; }

.field-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-top: 24px;
}
@media (max-width: 560px){ .field-grid{ grid-template-columns: 1fr; } }
.field{ display:flex; flex-direction:column; gap: 7px; }
.field.full{ grid-column: 1 / -1; }
.field label{
  font-size: 12.5px;
  font-weight: 700;
  color: var(--ink-2);
}
.field .opt{ font-weight: 500; color: var(--muted-3); }
.field input,
.field select,
.field textarea{
  border: 1px solid var(--hairline);
  background: var(--surface-1);
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 14px;
  color: var(--ink);
  transition: border-color .15s var(--ease), box-shadow .15s var(--ease), background .15s var(--ease);
  width: 100%;
}
.field input::placeholder, .field textarea::placeholder{ color: var(--muted-3); }
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none;
  border-color: var(--indigo-soft-1);
  background:#fff;
  box-shadow: 0 0 0 4px rgba(59,83,244,.12);
}
.field textarea{ resize: vertical; min-height: 92px; }
.field.invalid input, .field.invalid select{ border-color:#e0596e; }
.field-error{
  font-size: 11.5px;
  color:#c9425a;
  min-height: 14px;
}

.consent-row{
  display:flex;
  align-items:flex-start;
  gap: 10px;
  margin-top: 20px;
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--muted);
}
.consent-row input{
  margin-top: 3px;
  width: 16px; height:16px;
  accent-color: var(--indigo);
  flex: none;
}

.form-submit-row{ margin-top: 24px; }
.form-note{
  margin-top: 12px;
  font-size: 11.5px;
  color: var(--muted-3);
  text-align:center;
}

.form-alert{
  margin-top: 16px;
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 12.5px;
  line-height: 1.55;
  display:none;
}
.form-alert.show{ display:block; }
.form-alert.error{ background:#fdecee; color:#a3273f; border: 1px solid #f6c3cc; }
.form-alert.error a{ font-weight: 700; text-decoration: underline; }
.form-alert.rate{ background:#fff6e6; color:#8a5a06; border: 1px solid #ffe1a3; }

.form-success{
  display:none;
  text-align:center;
  padding: 30px 10px 6px;
}
.form-success.show{ display:block; }
.form-success .ic{
  margin: 0 auto;
  width: 56px; height:56px;
  border-radius: 18px;
  background: #dff7e9;
  color:#16744b;
  display:grid; place-items:center;
}
.form-success .ic svg{ width:26px; height:26px; }
.form-success h3{ margin-top: 18px; font-size: 20px; }
.form-success p{ margin-top: 10px; font-size: 13.5px; max-width: 340px; margin-left:auto; margin-right:auto; }

/* ---------- FAQ ---------- */
.faq-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-top: 8px;
}
@media (max-width: 720px){ .faq-grid{ grid-template-columns: 1fr; } }
.faq-item{
  border: 1px solid var(--hairline);
  background:#fff;
  border-radius: var(--radius-lg);
  padding: 20px 22px;
}
.faq-item summary{
  cursor:pointer;
  list-style:none;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
  font-size: 14.5px;
  font-weight: 700;
  color: var(--ink);
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary .chev{
  flex: none;
  width: 22px; height:22px;
  border-radius: 999px;
  background: var(--surface-2);
  color: var(--indigo);
  display:grid; place-items:center;
  transition: transform .2s var(--ease);
}
.faq-item summary .chev svg{ width:11px; height:11px; }
.faq-item[open] summary .chev{ transform: rotate(180deg); }
.faq-item p{
  margin-top: 12px;
  font-size: 13px;
  line-height: 1.65;
}

/* ---------- Final CTA ---------- */
.final-cta{
  position: relative;
  background: var(--gradient-cta);
  color:#fff;
  overflow:hidden;
  padding: 84px 0;
}
.final-cta::before{
  content:"";
  position:absolute;
  inset:0;
  background: radial-gradient(circle at 20% 20%, rgba(255,107,92,.22), transparent 40%), radial-gradient(circle at 85% 80%, rgba(126,147,255,.3), transparent 45%);
}
.final-cta .wrap{ position:relative; text-align:center; max-width: 640px; }
.final-cta h2{ color:#fff; font-size: clamp(26px,3.6vw,38px); }
.final-cta p{ color: rgba(255,255,255,.78); margin-top: 14px; font-size: 15.5px; }
.final-cta .hero-cta{ justify-content:center; margin-top: 28px; }
.final-cta .form-note{ color: rgba(255,255,255,.6); margin-top:16px; }

/* ---------- Footer ---------- */
.site-footer{
  background:#fff;
  border-top: 1px solid var(--hairline);
  padding: 64px 0 28px;
}
.foot-grid{
  display:grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 32px;
}
@media (max-width: 820px){ .foot-grid{ grid-template-columns: 1fr 1fr; row-gap: 32px; } }
@media (max-width: 480px){ .foot-grid{ grid-template-columns: 1fr; } }
.foot-brand p{ margin-top: 12px; font-size: 12.5px; line-height: 1.6; max-width: 280px; }
.foot-col h4{
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: var(--muted-3);
  margin-bottom: 12px;
}
.foot-col a{
  display:block;
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
  padding: 5px 0;
}
.foot-col a:hover{ color: var(--indigo); }
.foot-bottom{
  margin-top: 40px;
  padding-top: 20px;
  border-top: 1px solid var(--surface-2);
  display:flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: space-between;
  font-size: 11.5px;
  color: var(--muted-3);
}

/* ---------- Reveal-on-scroll ----------
   Progressive enhancement: elements are fully visible by default (works with
   no JS / JS errors / blocked scripts). app.js adds ".pending" only to
   elements it has confirmed are below the fold, then adds ".in" via
   IntersectionObserver as they scroll into view. Content already in the
   initial viewport is never hidden, so there is no flash-of-invisible hero. */
.reveal.pending{
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .6s var(--ease), transform .6s var(--ease);
}
.reveal.pending.in{
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce){
  .reveal.pending{ opacity:1; transform:none; transition:none; }
}

/* ---------- Misc ---------- */
.divider-hairline{ height:1px; background: var(--hairline); border:none; }

section[id]{ scroll-margin-top: 88px; }

/* =========================================================================
   Legal pages (terms / privacy) — self-contained block, appended so the
   sections above stay a clean diff-free copy of the marketing page styles.
   ========================================================================= */

.legal-wrap{
  max-width: 820px;
  margin: 0 auto;
  padding: 0 20px;
}

.legal-back{
  display:inline-flex;
  align-items:center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--muted);
  margin-bottom: 18px;
  transition: color .15s var(--ease);
}
.legal-back:hover{ color: var(--indigo); }

.legal-header{
  background: var(--surface-2);
  border-bottom: 1px solid var(--hairline);
  padding: 44px 0 36px;
}
.legal-header h1{
  font-size: clamp(28px, 4vw, 42px);
}
.legal-updated{
  margin-top: 10px;
  font-size: 13px;
  font-weight: 600;
  color: var(--muted-3);
}
.legal-lang{
  display:inline-flex;
  align-items:center;
  gap: 2px;
  border: 1px solid var(--hairline);
  background: #fff;
  border-radius: 10px;
  padding: 3px;
  margin-top: 20px;
}
.legal-lang a{
  padding: 7px 14px;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: .05em;
  border-radius: 7px;
  color: var(--muted-2);
  transition: background .15s var(--ease), color .15s var(--ease);
}
.legal-lang a:hover{ color: var(--indigo); }
.legal-lang a.active{
  background: var(--gradient-primary);
  color: #fff;
}

.legal-content{
  padding: 56px 0 96px;
}
.legal-content h2{
  font-size: clamp(19px, 2.4vw, 24px);
  margin-top: 46px;
  margin-bottom: 14px;
  scroll-margin-top: 96px;
}
.legal-content > .legal-wrap > h2:first-of-type{ margin-top: 0; }
.legal-content h3{
  font-size: 15.5px;
  font-weight: 800;
  color: var(--ink-2);
  margin-top: 26px;
  margin-bottom: 10px;
}
.legal-content p{
  font-size: 14.5px;
  line-height: 1.75;
  margin-bottom: 14px;
}
.legal-content ul,
.legal-content ol{
  margin: 0 0 16px;
  padding-left: 22px;
  display:flex;
  flex-direction: column;
  gap: 8px;
}
.legal-content ul ul,
.legal-content ol ul{ margin-top: 8px; margin-bottom: 0; }
.legal-content li{
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--muted);
}
.legal-content li::marker{ color: var(--indigo); font-weight:700; }
.legal-content strong{ color: var(--ink-2); }
.legal-content a{
  color: var(--indigo);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--surface-3);
  text-underline-offset: 2px;
}
.legal-content a:hover{ text-decoration-color: var(--indigo); }

.legal-box{
  border-radius: var(--radius-lg);
  border: 1px solid var(--surface-3);
  background: var(--surface-2);
  padding: 18px 20px;
  margin: 18px 0;
}
.legal-box p:last-child{ margin-bottom: 0; }

.legal-toc{
  border: 1px solid var(--hairline);
  background: #fff;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  padding: 22px 24px;
  margin-bottom: 12px;
}
.legal-toc h2{
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--muted-3);
  margin: 0 0 12px;
}
.legal-toc ol{
  columns: 2;
  column-gap: 28px;
  padding-left: 0;
  margin: 0;
  list-style: none;
}
.legal-toc li{
  font-size: 12.5px;
  margin-bottom: 8px;
  break-inside: avoid;
}
.legal-toc a{
  color: var(--muted);
  font-weight: 600;
  text-decoration: none;
}
.legal-toc a:hover{ color: var(--indigo); }
@media (max-width: 640px){
  .legal-toc ol{ columns: 1; }
}
