/* ==========================================================================
   PUBLIC EDITORIAL THEME
   New light / editorial design system for public-facing pages.
   Scoped under the `ed-` prefix so it can roll out page by page without
   touching the legacy dark theme in tgv.css (still used by pages not yet
   redesigned) or the dashboard.
   ========================================================================== */

:root{
  --ed-bg:            #FBFAF7;
  --ed-bg-alt:        #F3F1EA;
  --ed-surface:       #FFFFFF;
  --ed-ink:           #14140F;
  --ed-ink-soft:      #55564C;
  --ed-ink-faint:     #8C8C7E;
  --ed-line:          #E7E4D8;
  --ed-accent:        #3450FF;
  --ed-accent-ink:    #1E2E9E;
  --ed-accent-soft:   #E9EDFF;
  --ed-serif:         'Fraunces', 'Times New Roman', serif;
  --ed-sans:          'Inter', 'Figtree', system-ui, sans-serif;
  --ed-mono:          'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  --ed-bronze:        #A87B3F;
  --ed-bronze-soft:    #F3E9DB;
  --ed-up:            #2F7A4F;
  --ed-premium-bg:    radial-gradient(120% 140% at 12% -10%, rgba(120,150,255,.35), transparent 55%),
                       linear-gradient(160deg, #0A1340 0%, #142268 45%, #23399C 100%);
  --ed-radius-lg:      28px;
  --ed-radius-md:      18px;
  --ed-radius-sm:      12px;
  --ed-shadow:         0 20px 60px -25px rgba(20,20,15,.25);
  --ed-shadow-sm:      0 8px 24px -12px rgba(20,20,15,.18);
}

.ed{
  font-family: var(--ed-sans);
  color: var(--ed-ink);
  background: var(--ed-bg);
  overflow-x:hidden;
}
.ed *{ box-sizing: border-box; }
.ed :where(a){ color:inherit; text-decoration:none; }
.ed img{ max-width:100%; display:block; }

.ed-wrap{
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 32px;
}

.ed-eyebrow{
  display:inline-block;
  font-family: var(--ed-mono);
  font-size:11.5px;
  font-weight:500;
  letter-spacing:.05em;
  text-transform:uppercase;
  color: var(--ed-ink-soft);
  padding-bottom:7px;
  border-bottom:1px solid var(--ed-line);
}
.ed-eyebrow::before{
  content:'// ';
  color: var(--ed-bronze);
  font-weight:600;
}

.ed h1, .ed h2, .ed h3{
  font-family: var(--ed-serif);
  font-weight:600;
  letter-spacing:-.01em;
  line-height:1.05;
  margin:0;
}

.ed-section-title{
  font-size: clamp(28px, 3.4vw, 44px);
  margin-top:14px;
}
.ed-section-sub{
  font-size:16px;
  color: var(--ed-ink-soft);
  max-width:560px;
  margin-top:14px;
  line-height:1.6;
}
.ed-section-head{
  margin-bottom:56px;
}
.ed-section-head.center{
  text-align:center;
  margin-left:auto;
  margin-right:auto;
}
.ed-section-head.center .ed-section-sub{ margin-left:auto; margin-right:auto; }

.ed-accent{ color: var(--ed-accent); font-style:italic; }

.ed-section{ padding: 100px 0; }
.ed-section.alt{ background: var(--ed-bg-alt); }

/* ---------- BUTTONS ---------- */
.ed-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family: var(--ed-sans);
  font-size:14.5px;
  font-weight:600;
  padding:14px 26px;
  border-radius:999px;
  border:1px solid transparent;
  cursor:pointer;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
  white-space:nowrap;
}
.ed-btn:hover{ transform: translateY(-2px); }
.ed-btn-primary{
  background: var(--ed-ink);
  color:#fff;
  box-shadow: var(--ed-shadow-sm);
}
.ed-btn-primary:hover{ background: var(--ed-accent); }
.ed-btn-outline{
  background:transparent;
  color: var(--ed-ink);
  border-color: var(--ed-line);
}
.ed-btn-outline:hover{ border-color: var(--ed-ink); }

/* ---------- TICKER ---------- */
.ed-ticker{
  background: var(--ed-premium-bg);
  color: rgba(255,255,255,.8);
  font-family: var(--ed-mono);
  font-size:11px;
  letter-spacing:.03em;
}
.ed-ticker-inner{
  max-width:1180px;
  margin:0 auto;
  padding:8px 32px;
  display:flex;
  align-items:center;
  gap:10px;
  overflow-x:auto;
  scrollbar-width:none;
}
.ed-ticker-inner::-webkit-scrollbar{ display:none; }
.ed-ticker-item{ display:flex; align-items:center; gap:8px; white-space:nowrap; flex-shrink:0; }
.ed-ticker .dot{
  width:6px; height:6px; border-radius:50%; flex-shrink:0;
  background: #3FCE73;
  box-shadow: 0 0 0 3px rgba(63,206,115,.16);
}
.ed-ticker .up{ color:#5FDB8C; }
.ed-ticker .sep{ color: rgba(255,255,255,.22); }
@media (max-width: 640px){
  .ed-ticker-inner{ padding:8px 20px; }
}

/* ---------- NAV ---------- */
.ed-nav{
  position: sticky;
  top:0;
  z-index:50;
  background: rgba(251,250,247,.85);
  backdrop-filter: blur(10px);
  border-bottom:1px solid var(--ed-line);
}
.ed-nav-inner{
  max-width:1180px;
  margin:0 auto;
  padding:18px 32px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.ed-nav-brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-family: var(--ed-serif);
  font-size:19px;
  font-weight:600;
}
.ed-nav-brand img{ height:30px; width:auto; border-radius:6px; }
.ed-nav-links{
  display:flex;
  align-items:center;
  gap:34px;
  list-style:none;
  margin:0; padding:0;
}
.ed-nav-links a{
  font-size:14.5px;
  font-weight:500;
  color: var(--ed-ink-soft);
  transition: color .15s ease;
}
.ed-nav-links a:hover{ color: var(--ed-ink); }
.ed-nav-right{ display:flex; align-items:center; gap:14px; }
.ed-nav-login{ font-size:14.5px; font-weight:500; color: var(--ed-ink-soft); }
.ed-nav-login:hover{ color: var(--ed-ink); }
.ed-nav-burger{
  display:none;
  flex-direction:column;
  gap:5px;
  background:none; border:0; cursor:pointer; padding:6px;
}
.ed-nav-burger span{ width:22px; height:2px; background: var(--ed-ink); border-radius:2px; }

.ed-mobile-menu{
  display:none;
  flex-direction:column;
  gap:2px;
  padding:10px 24px 22px;
  border-bottom:1px solid var(--ed-line);
  background: var(--ed-bg);
}
.ed-mobile-menu.open{ display:flex; }
.ed-mobile-menu a{
  padding:12px 4px;
  font-size:15px;
  font-weight:500;
  color: var(--ed-ink-soft);
  border-bottom:1px solid var(--ed-line);
}
.ed-mobile-menu a:last-child{ border-bottom:0; }

/* ---------- HERO ---------- */
.ed-hero{
  position:relative;
  padding: 72px 0 40px;
  overflow:visible;
}
.ed-hero-grid{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap:56px;
  align-items:center;
}
.ed-hero-text h1{
  font-size: clamp(38px, 5.4vw, 68px);
  margin-top:22px;
}
.ed-hero-text p{
  font-size:17px;
  color: var(--ed-ink-soft);
  line-height:1.65;
  max-width:480px;
  margin-top:22px;
}
.ed-hero-actions{
  display:flex;
  align-items:center;
  gap:18px;
  margin-top:34px;
  flex-wrap:wrap;
}
.ed-hero-meta{
  display:flex;
  gap:28px;
  margin-top:44px;
  flex-wrap:wrap;
}
.ed-hero-meta-item{ display:flex; flex-direction:column; gap:5px; }
.ed-hero-meta-label{
  font-family: var(--ed-mono);
  font-size:10px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color: var(--ed-ink-faint);
  font-weight:500;
}
.ed-hero-meta-value{
  font-family: var(--ed-mono);
  font-size:19px;
  font-weight:600;
  font-variant-numeric: tabular-nums;
}

.ed-hero-portrait{
  position:relative;
  display:flex;
  justify-content:center;
}
.ed-hero-portrait-frame{
  position:relative;
  width:100%;
  max-width:420px;
  aspect-ratio: 4/5;
  border-radius: var(--ed-radius-lg);
  overflow:hidden;
  background: var(--ed-bg-alt);
  box-shadow: var(--ed-shadow);
}
.ed-hero-portrait-frame img{
  width:100%; height:100%; object-fit:cover;
}
.ed-float-badge{
  position:absolute;
  background: var(--ed-surface);
  border:1px solid var(--ed-line);
  border-radius: 9px;
  padding:10px 15px;
  box-shadow: var(--ed-shadow-sm);
  display:flex;
  align-items:center;
  gap:10px;
  font-family: var(--ed-mono);
}
.ed-float-badge .dot{
  width:7px; height:7px; flex-shrink:0;
  border-radius:50%;
  background: var(--ed-up);
  box-shadow: 0 0 0 3px rgba(47,122,79,.14);
}
.ed-float-badge .chip{
  display:flex;
  flex-direction:column;
  gap:2px;
  line-height:1.2;
}
.ed-float-badge .chip b{
  font-size:12.5px;
  font-weight:600;
  letter-spacing:.02em;
  color: var(--ed-ink);
}
.ed-float-badge .chip span{
  font-size:9.5px;
  letter-spacing:.08em;
  color: var(--ed-ink-faint);
}
.ed-float-badge.b1{ top:-6%; left:-10%; }
.ed-float-badge.b2{ bottom:8%; right:-12%; }
.ed-float-badge.b3{ bottom:-6%; left:6%; }

/* ---------- HERO V2 (full-bleed portrait) ---------- */
.ed-hero-v2{
  padding: 64px 0 0;
  text-align:center;
}
.ed-hero-v2-head{
  max-width:720px;
  margin:0 auto;
}
.ed-hero-v2-head h1{
  font-size: clamp(42px, 7.5vw, 88px);
  margin-top:22px;
}
.ed-hero-v2-head p{
  font-size:17px;
  color: var(--ed-ink-soft);
  line-height:1.65;
  max-width:560px;
  margin:22px auto 0;
}
.ed-hero-v2-head .ed-hero-actions{ justify-content:center; }

.ed-hero-v2-portrait{
  position:relative;
  max-width:620px;
  margin: 24px auto 0;
}
.ed-hero-v2-portrait::before{
  content:'';
  position:absolute;
  left:50%;
  bottom:6%;
  width:78%;
  height:34%;
  transform: translateX(-50%);
  background: radial-gradient(closest-side, rgba(52,80,255,.14), rgba(52,80,255,0) 72%);
  filter: blur(6px);
  z-index:0;
}
.ed-hero-v2-portrait img{
  position:relative;
  z-index:1;
  width:100%;
  display:block;
  -webkit-mask-image: linear-gradient(to bottom, black 90%, transparent 99%);
  mask-image: linear-gradient(to bottom, black 90%, transparent 99%);
  filter: drop-shadow(0 30px 40px rgba(20,20,15,.14));
}
.ed-hero-v2-stats{
  position:absolute;
  left:4%;
  bottom:4%;
  display:flex;
  gap:40px;
  text-align:left;
}
.ed-hero-v2-portrait .ed-float-badge.v1{ top:6%; left:2%; }
.ed-hero-v2-portrait .ed-float-badge.v2{ top:10%; right:4%; }

@media (max-width: 640px){
  .ed-hero-v2-stats{ position:static; margin-top:20px; gap:26px; flex-wrap:wrap; }
  .ed-hero-v2-portrait .ed-float-badge{ position:static; margin:0 auto 10px; width:fit-content; }
}

/* ---------- WHY / VALUE GRID ---------- */
.ed-grid-4{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:22px;
}
.ed-grid-3{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:22px;
}
.ed-value-card{
  background: var(--ed-surface);
  border:1px solid var(--ed-line);
  border-radius: var(--ed-radius-md);
  padding:30px 26px;
}
.ed-value-card .ico{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 10px;
  border-radius:6px;
  background: var(--ed-accent-soft);
  color: var(--ed-accent-ink);
  font-family: var(--ed-mono);
  font-size:11px;
  font-weight:600;
  letter-spacing:.03em;
  margin-bottom:18px;
}
.ed-value-card .num{
  font-family: var(--ed-serif);
  font-size:38px;
  font-weight:600;
  color: var(--ed-accent);
  margin-bottom:14px;
  line-height:1;
}
.ed-value-card h3{
  font-size:18px;
  margin-bottom:8px;
}
.ed-value-card p{
  font-size:14.5px;
  color: var(--ed-ink-soft);
  line-height:1.6;
  margin:0;
}

/* ---------- PROGRAMME GRID ---------- */
.ed-programme-grid{
  display:grid;
  grid-template-columns: repeat(6, 1fr);
  gap:16px;
}
.ed-programme-card{
  position:relative;
  background: var(--ed-surface);
  border:1px solid var(--ed-line);
  border-radius: var(--ed-radius-md);
  padding:36px 16px 26px;
  text-align:center;
  transition: box-shadow .18s ease, transform .18s ease;
}
.ed-programme-card:hover{ box-shadow: var(--ed-shadow-sm); transform: translateY(-3px); }
.ed-programme-badge{
  position:absolute;
  top:14px; left:14px;
  width:26px; height:26px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  background: var(--ed-bg-alt);
  border:1px solid var(--ed-line);
  font-family: var(--ed-mono);
  font-size:10.5px;
  font-weight:600;
  color: var(--ed-ink-soft);
}
.ed-programme-icon{
  width:64px; height:64px;
  margin:0 auto 18px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  background: var(--ed-bronze-soft);
  border:1.5px solid var(--ed-bronze);
  color: var(--ed-ink);
}
.ed-programme-icon svg{ width:28px; height:28px; }
.ed-programme-card-title{
  font-family: var(--ed-serif);
  font-size:16.5px;
  font-weight:600;
  line-height:1.3;
}
.ed-programme-card-title::after{
  content:'';
  display:block;
  width:24px; height:2px;
  background: var(--ed-bronze);
  margin:14px auto 0;
}

.ed-programme-steps{
  display:flex;
  align-items:center;
  justify-content:center;
  margin-top:52px;
}
.ed-programme-step{
  width:32px; height:32px;
  flex-shrink:0;
  border-radius:50%;
  border:1px solid var(--ed-bronze);
  background: var(--ed-bronze-soft);
  color: var(--ed-ink);
  font-family: var(--ed-mono);
  font-size:11px;
  font-weight:600;
  display:flex; align-items:center; justify-content:center;
}
.ed-programme-step-line{
  flex:1 1 auto;
  height:1px;
  max-width:64px;
  background: repeating-linear-gradient(90deg, var(--ed-bronze) 0 6px, transparent 6px 11px);
}
.ed-programme-cta{ text-align:center; margin-top:40px; }

/* ---------- PRICING ---------- */
.ed-pricing-card{
  position:relative;
  background: var(--ed-premium-bg);
  color:#fff;
  border-radius: var(--ed-radius-lg);
  padding:48px 44px;
  max-width:480px;
  margin:0 auto;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
  box-shadow: 0 30px 70px -25px rgba(20,40,150,.55), var(--ed-shadow);
}
.ed-pricing-card::after{
  content:'';
  position:absolute;
  inset:0;
  background: linear-gradient(115deg, rgba(255,255,255,.09), transparent 40%);
  pointer-events:none;
}
.ed-pricing-card .ed-eyebrow{
  color: rgba(255,255,255,.75);
  border-bottom-color: rgba(255,255,255,.2);
}
.ed-pricing-card .ed-eyebrow::before{ color:#8FA0FF; }
.ed-pricing-name{
  font-family: var(--ed-serif);
  font-size:24px;
  margin-top:18px;
}
.ed-pricing-price{
  display:flex;
  align-items:baseline;
  gap:8px;
  margin-top:14px;
}
.ed-pricing-price .cur{ font-size:22px; font-weight:600; color: rgba(255,255,255,.7); }
.ed-pricing-price .amt{ font-family: var(--ed-serif); font-size:56px; font-weight:600; }
.ed-pricing-old{
  font-size:13.5px;
  color: rgba(255,255,255,.5);
  text-decoration:line-through;
  margin-top:6px;
}
.ed-pricing-list{
  list-style:none; margin:28px 0 0; padding:0;
  display:flex; flex-direction:column; gap:13px;
}
.ed-pricing-list li{
  display:flex; align-items:flex-start; gap:10px;
  font-size:14.5px;
  color: rgba(255,255,255,.85);
}
.ed-pricing-list li .chk{ color: #8FA0FF; flex-shrink:0; }
.ed-pricing-card .ed-btn-primary{
  background:#fff;
  color: var(--ed-ink);
  width:100%;
  justify-content:center;
  margin-top:32px;
  padding:16px 26px;
}
.ed-pricing-card .ed-btn-primary:hover{ background: var(--ed-accent-soft); color: var(--ed-accent-ink); }

/* ---------- TESTIMONIALS ---------- */
.ed-testi-card{
  background: var(--ed-surface);
  border:1px solid var(--ed-line);
  border-radius: var(--ed-radius-md);
  padding:30px 28px;
  display:flex;
  flex-direction:column;
  gap:18px;
}
.ed-testi-stars{ color: var(--ed-accent); font-size:14px; letter-spacing:2px; }
.ed-testi-body{
  font-size:15px;
  line-height:1.65;
  color: var(--ed-ink);
}
.ed-testi-author{ display:flex; align-items:center; gap:12px; margin-top:auto; }
.ed-testi-avatar{
  width:38px; height:38px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family: var(--ed-serif); font-weight:600; font-size:15px;
  background: var(--ed-accent-soft); color: var(--ed-accent-ink);
}
.ed-testi-name{ font-size:14px; font-weight:600; }
.ed-testi-loc{ font-size:12.5px; color: var(--ed-ink-faint); }

/* ---------- FAQ ---------- */
.ed-faq-wrap{ max-width:760px; margin:0 auto; }
.ed-faq-item{ border-bottom:1px solid var(--ed-line); }
.ed-faq-q{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  background:none;
  border:0;
  cursor:pointer;
  padding:24px 4px;
  text-align:left;
  font-family: var(--ed-serif);
  font-size:17px;
  font-weight:600;
  color: var(--ed-ink);
}
.ed-faq-icon{
  flex-shrink:0;
  font-size:18px;
  color: var(--ed-ink-faint);
  transition: transform .2s ease;
}
.ed-faq-item.open .ed-faq-icon{ transform: rotate(45deg); color: var(--ed-accent); }
.ed-faq-a{
  max-height:0;
  overflow:hidden;
  transition: max-height .25s ease;
  font-size:14.5px;
  color: var(--ed-ink-soft);
  line-height:1.65;
}
.ed-faq-item.open .ed-faq-a{ max-height:220px; }
.ed-faq-a-inner{ padding:0 4px 24px; }

/* ---------- FINAL CTA ---------- */
.ed-final-cta{
  text-align:center;
  padding:110px 0;
}
.ed-final-cta h2{ font-size: clamp(30px,4vw,50px); }
.ed-final-cta p{
  font-size:16px;
  color: var(--ed-ink-soft);
  margin-top:18px;
}
.ed-final-cta .ed-btn{ margin-top:32px; padding:17px 34px; font-size:15px; }
.ed-secure-note{
  margin-top:20px;
  font-size:12.5px;
  color: var(--ed-ink-faint);
}

/* ---------- FOOTER ---------- */
.ed-footer{
  border-top:1px solid var(--ed-line);
  background: var(--ed-bg-alt);
  padding:64px 0 28px;
}
.ed-footer-top{
  display:flex;
  justify-content:space-between;
  gap:40px;
  flex-wrap:wrap;
  padding-bottom:44px;
}
.ed-footer-brand{
  display:flex; align-items:center; gap:10px;
  font-family: var(--ed-serif); font-size:18px; font-weight:600;
}
.ed-footer-brand img{ height:26px; border-radius:5px; }
.ed-footer-tagline{
  font-size:14px; color: var(--ed-ink-soft);
  margin-top:12px; max-width:280px; line-height:1.6;
}
.ed-footer-cols{ display:flex; gap:64px; flex-wrap:wrap; }
.ed-footer-col-title{
  font-size:11.5px; font-weight:600; letter-spacing:.07em;
  text-transform:uppercase; color: var(--ed-ink-faint);
  margin-bottom:14px;
}
.ed-footer-col a{
  display:block; font-size:14px; color: var(--ed-ink-soft);
  margin-bottom:10px;
}
.ed-footer-col a:hover{ color: var(--ed-ink); }
.ed-footer-bottom{
  border-top:1px solid var(--ed-line);
  padding-top:22px;
  font-size:12.5px;
  color: var(--ed-ink-faint);
}

/* ---------- REVEAL ---------- */
.js .ed-reveal{ opacity:0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
.js .ed-reveal.visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .js .ed-reveal{ opacity:1; transform:none; transition:none; } }

/* ---------- URGENCY / COUNTDOWN BAR ---------- */
.ed-urgency{
  background: var(--ed-premium-bg);
  color: rgba(255,255,255,.92);
  padding:13px 0;
}
.ed-urgency-inner{
  max-width:1180px;
  margin:0 auto;
  padding:0 32px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  flex-wrap:wrap;
  font-family: var(--ed-mono);
}
.ed-urgency-label{
  font-size:12px;
  letter-spacing:.05em;
  text-transform:uppercase;
  display:flex;
  align-items:center;
  gap:8px;
}
.ed-urgency-label .dot{
  width:6px; height:6px; border-radius:50%;
  background:#5FDB8C;
  box-shadow: 0 0 0 3px rgba(95,219,140,.18);
  flex-shrink:0;
}
.ed-clock{ display:flex; align-items:center; gap:5px; }
.ed-clock .seg{
  background: rgba(255,255,255,.09);
  border-radius:6px;
  padding:5px 9px;
  min-width:32px;
  text-align:center;
  font-size:13px;
  font-weight:600;
  font-variant-numeric: tabular-nums;
}
.ed-clock .sep{ opacity:.35; font-size:12px; }
.ed-clock .unit{ font-size:9px; color:rgba(255,255,255,.45); letter-spacing:.04em; margin-left:2px; }

/* ---------- FEATURE ROW (hero, inline) ---------- */
.ed-feature-row{
  display:flex;
  gap:26px;
  flex-wrap:wrap;
  margin-top:30px;
}
.ed-feature-row-item{
  display:flex;
  align-items:center;
  gap:9px;
  font-size:13px;
  color: var(--ed-ink-soft);
}
.ed-feature-row-item .ico{
  font-family: var(--ed-mono);
  font-size:10px;
  font-weight:600;
  letter-spacing:.03em;
  padding:5px 8px;
  border-radius:6px;
  background: var(--ed-accent-soft);
  color: var(--ed-accent-ink);
  flex-shrink:0;
}

/* ---------- TRUST ROW ---------- */
.ed-trust-row{
  display:flex;
  gap:24px;
  flex-wrap:wrap;
  margin-top:26px;
  font-family: var(--ed-mono);
  font-size:11.5px;
  color: var(--ed-ink-faint);
}
.ed-trust-row span{ display:flex; align-items:center; gap:7px; }
.ed-trust-row span::before{
  content:'✓';
  color: var(--ed-up);
  font-weight:700;
}

/* ---------- TERMINAL MOCKUP (hero visual) ---------- */
.ed-terminal-mock{
  position:relative;
  background: var(--ed-ink);
  border-radius: var(--ed-radius-lg);
  padding:22px;
  box-shadow: var(--ed-shadow);
}
.ed-terminal-mock .bar{ display:flex; gap:6px; margin-bottom:18px; }
.ed-terminal-mock .bar span{ width:9px; height:9px; border-radius:50%; background: rgba(255,255,255,.14); }
.ed-terminal-mock .readout{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  font-family: var(--ed-mono);
  color:#fff;
  margin-bottom:14px;
}
.ed-terminal-mock .readout .pair{ font-size:13px; letter-spacing:.03em; color: rgba(255,255,255,.6); }
.ed-terminal-mock .readout .price{ font-size:20px; font-weight:600; font-variant-numeric: tabular-nums; }
.ed-terminal-mock .readout .chg{ font-size:12px; color:#5FDB8C; }
.ed-terminal-mock svg{ width:100%; display:block; }
.ed-terminal-float{
  position:absolute;
  left:50%;
  bottom:-22px;
  transform: translateX(-50%);
  background: var(--ed-surface);
  border:1px solid var(--ed-line);
  border-radius: var(--ed-radius-md);
  padding:14px 24px;
  box-shadow: var(--ed-shadow-sm);
  display:flex;
  gap:26px;
  font-family: var(--ed-mono);
  white-space:nowrap;
}
.ed-terminal-float .item{ display:flex; flex-direction:column; gap:3px; }
.ed-terminal-float .item b{ font-size:15px; font-weight:600; }
.ed-terminal-float .item span{ font-size:9.5px; color: var(--ed-ink-faint); letter-spacing:.05em; text-transform:uppercase; }

/* ---------- CHECK LIST (light) ---------- */
.ed-check-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.ed-check-list li{
  display:flex;
  align-items:flex-start;
  gap:12px;
  font-size:15px;
  line-height:1.5;
}
.ed-check-list .chk{
  width:20px; height:20px;
  border-radius:6px;
  background: var(--ed-accent-soft);
  color: var(--ed-accent-ink);
  display:flex; align-items:center; justify-content:center;
  font-size:11px;
  flex-shrink:0;
  margin-top:1px;
}

/* ---------- MODULE THUMB CARDS ---------- */
.ed-module-card{
  background: var(--ed-surface);
  border:1px solid var(--ed-line);
  border-radius: var(--ed-radius-md);
  overflow:hidden;
}
.ed-module-thumb{
  aspect-ratio: 16/10;
  overflow:hidden;
  position:relative;
  background: var(--ed-ink);
  display:flex;
  align-items:flex-end;
}
.ed-module-thumb .ghost-num{
  position:absolute;
  top:-.15em; right:10px;
  font-family: var(--ed-serif);
  font-size:88px;
  font-weight:600;
  color: rgba(255,255,255,.06);
  line-height:1;
}
.ed-module-thumb svg{ width:100%; height:70%; display:block; }
.ed-module-body{ padding:22px 22px 24px; }
.ed-module-meta{
  display:flex;
  align-items:center;
  gap:8px;
  font-family: var(--ed-mono);
  font-size:10.5px;
  color: var(--ed-ink-faint);
  letter-spacing:.04em;
  text-transform:uppercase;
  margin-bottom:10px;
}
.ed-module-meta .num{ color: var(--ed-accent-ink); font-weight:600; }
.ed-module-title{
  font-family: var(--ed-serif);
  font-size:18px;
  font-weight:600;
  margin-bottom:8px;
}
.ed-module-desc{ font-size:13.5px; color: var(--ed-ink-soft); line-height:1.6; margin-bottom:14px; }
.ed-module-foot{
  display:flex;
  gap:14px;
  font-family: var(--ed-mono);
  font-size:10.5px;
  color: var(--ed-ink-faint);
  letter-spacing:.03em;
  border-top:1px solid var(--ed-line);
  padding-top:14px;
}

/* ---------- BONUS CARDS ---------- */
.ed-bonus-card{
  background: var(--ed-surface);
  border:1px solid var(--ed-line);
  border-radius: var(--ed-radius-md);
  padding:28px 24px;
  position:relative;
}
.ed-bonus-tag{
  display:inline-block;
  font-family: var(--ed-mono);
  font-size:10px;
  font-weight:600;
  letter-spacing:.05em;
  color: var(--ed-accent-ink);
  background: var(--ed-accent-soft);
  padding:5px 10px;
  border-radius:6px;
  margin-bottom:16px;
}
.ed-bonus-card h3{ font-size:17px; margin-bottom:8px; }
.ed-bonus-card p{ font-size:14px; color: var(--ed-ink-soft); line-height:1.6; margin:0 0 14px; }
.ed-bonus-value{
  font-family: var(--ed-mono);
  font-size:12px;
  font-weight:600;
  color: var(--ed-bronze);
}
.ed-bonus-total{
  margin-top:22px;
  background: var(--ed-premium-bg);
  color:#fff;
  border-radius: var(--ed-radius-md);
  padding:20px 28px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-family: var(--ed-mono);
  font-size:13px;
  letter-spacing:.03em;
  text-align:center;
}
.ed-bonus-total b{ font-size:17px; color: #FFD9A0; }

/* ---------- CHECKOUT: HEADER / FOOTER ---------- */
.ed-checkout-header{
  border-bottom:1px solid var(--ed-line);
  background: var(--ed-bg);
}
.ed-checkout-header-inner{
  padding:18px 32px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.ed-checkout-header-right{
  display:flex;
  align-items:center;
  gap:20px;
}
.ed-checkout-secure-badge{
  font-family: var(--ed-mono);
  font-size:11.5px;
  color: var(--ed-ink-soft);
  letter-spacing:.02em;
}
.ed-checkout-help{
  font-family: var(--ed-mono);
  font-size:11.5px;
  color: var(--ed-accent-ink);
  font-weight:500;
}
.ed-checkout-footer{
  border-top:1px solid var(--ed-line);
  background: var(--ed-bg-alt);
  margin-top:80px;
}
.ed-checkout-footer-inner{
  padding:22px 32px;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
  font-family: var(--ed-mono);
  font-size:11px;
  color: var(--ed-ink-faint);
}

/* ---------- CHECKOUT: STEPS ---------- */
.ed-steps{
  display:flex;
  align-items:flex-start;
  justify-content:center;
  gap:0;
  max-width:520px;
  margin:0 auto 56px;
}
.ed-step{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  flex:1;
  position:relative;
  text-align:center;
}
.ed-step-num{
  width:34px; height:34px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family: var(--ed-mono);
  font-size:13px;
  font-weight:600;
  background: var(--ed-surface);
  border:1px solid var(--ed-line);
  color: var(--ed-ink-faint);
  z-index:1;
}
.ed-step.active .ed-step-num{
  background: var(--ed-ink);
  border-color: var(--ed-ink);
  color:#fff;
}
.ed-step-label{ font-size:12.5px; font-weight:600; color: var(--ed-ink); }
.ed-step-sub{ font-family: var(--ed-mono); font-size:10px; color: var(--ed-ink-faint); }
.ed-step::before{
  content:'';
  position:absolute;
  top:17px; left:-50%; width:100%; height:1px;
  background: var(--ed-line);
  z-index:0;
}
.ed-step:first-child::before{ display:none; }

/* ---------- CHECKOUT: LAYOUT ---------- */
.ed-checkout-main{ padding:56px 0 40px; }
.ed-checkout-grid{
  display:grid;
  grid-template-columns: 1.5fr 1fr;
  gap:32px;
  align-items:start;
}
.ed-checkout-card{
  background: var(--ed-surface);
  border:1px solid var(--ed-line);
  border-radius: var(--ed-radius-md);
  margin-bottom:22px;
  overflow:hidden;
}
.ed-checkout-card-header{
  padding:18px 24px;
  border-bottom:1px solid var(--ed-line);
  font-family: var(--ed-serif);
  font-size:15.5px;
  font-weight:600;
  display:flex;
  align-items:center;
  gap:9px;
}
.ed-checkout-card-body{ padding:24px; }

/* ---------- CHECKOUT: FORM FIELDS ---------- */
.ed-field-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.ed-field{ display:flex; flex-direction:column; gap:7px; }
.ed-field label{
  font-family: var(--ed-mono);
  font-size:10.5px;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  color: var(--ed-ink-faint);
}
.ed-input{
  border:1px solid var(--ed-line);
  border-radius:10px;
  padding:12px 14px;
  font-family: var(--ed-sans);
  font-size:14px;
  color: var(--ed-ink);
  background: var(--ed-bg);
  width:100%;
  transition: border-color .15s ease;
}
.ed-input:focus{ outline:none; border-color: var(--ed-accent); }
.ed-input[readonly]{ color: var(--ed-ink-soft); background: var(--ed-bg-alt); }
.ed-select{
  appearance:none;
  -webkit-appearance:none;
  border:1px solid var(--ed-line);
  border-radius:10px;
  padding:12px 38px 12px 14px;
  font-family: var(--ed-sans);
  font-size:14px;
  color: var(--ed-ink);
  background: var(--ed-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7' fill='none'%3E%3Cpath d='M1 1L5.5 5.5L10 1' stroke='%2314140F' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center;
  background-size:11px 7px;
  width:100%;
  transition: border-color .15s ease;
}
.ed-select:focus{ outline:none; border-color: var(--ed-accent); }

/* ---------- CHECKOUT: PAYMENT METHODS ---------- */
.ed-pay-options{ display:flex; flex-direction:column; gap:10px; }
.ed-pay-option{
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px 16px;
  border:1px solid var(--ed-line);
  border-radius:10px;
  cursor:pointer;
  transition: border-color .15s ease, background .15s ease;
}
.ed-pay-option:hover{ border-color: var(--ed-ink-faint); }
.ed-pay-option input{ accent-color: var(--ed-accent); width:16px; height:16px; flex-shrink:0; }
.ed-pay-option:has(input:checked){
  border-color: var(--ed-accent);
  background: var(--ed-accent-soft);
}
.ed-pay-icon{
  width:38px; height:38px;
  border-radius:9px;
  display:flex; align-items:center; justify-content:center;
  background: var(--ed-bg-alt);
  color: var(--ed-ink-soft);
  flex-shrink:0;
}
.ed-pay-icon svg{ width:19px; height:19px; }
.ed-pay-name{ font-size:14px; font-weight:600; color: var(--ed-ink); }
.ed-pay-desc{ font-size:12px; color: var(--ed-ink-faint); margin-top:2px; }
.ed-pay-text{ flex:1; }

/* brand badges (replace emoji) */
.ed-pay-badges{ display:flex; align-items:center; gap:6px; margin-left:auto; flex-shrink:0; }
.ed-pay-badge{
  padding:5px 8px;
  border-radius:5px;
  border:1px solid var(--ed-line);
  background:#fff;
  font-size:10px;
  font-weight:700;
  letter-spacing:.01em;
  line-height:1;
  display:flex;
  align-items:center;
  white-space:nowrap;
}
.ed-pay-badge.visa{ color:#1A1F71; font-style:italic; font-family: Georgia, 'Times New Roman', serif; font-size:12px; }
.ed-pay-badge.cb{ color:#0A5AA6; font-size:10px; }
.ed-pay-badge.amex{ background:#006FCF; border-color:#006FCF; color:#fff; }
.ed-pay-badge.mc{ padding:5px 10px; }

.ed-mc-mark{ position:relative; display:inline-block; width:26px; height:15px; vertical-align:middle; }
.ed-mc-mark span{ position:absolute; top:0; width:15px; height:15px; border-radius:50%; }
.ed-mc-mark span:first-child{ left:0; background:#EB001B; }
.ed-mc-mark span:last-child{ left:9px; background:#F79E1B; mix-blend-mode:multiply; }

.ed-paypal-mark{
  width:36px; height:36px;
  border-radius:9px;
  background:#003087;
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-family: Georgia, 'Times New Roman', serif;
  font-style:italic;
  font-weight:700;
  font-size:19px;
  flex-shrink:0;
}
.ed-paypal-word{ font-family: Georgia, 'Times New Roman', serif; font-style:italic; font-weight:700; font-size:16px; margin-left:auto; flex-shrink:0; }
.ed-paypal-word .pay{ color:#003087; }
.ed-paypal-word .pal{ color:#009CDE; }

.ed-coin-stack{ display:flex; align-items:center; margin-right:-4px; flex-shrink:0; }
.ed-coin{
  width:24px; height:24px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:700; color:#fff;
  border:2px solid var(--ed-surface);
  margin-left:-6px;
}
.ed-coin:first-child{ margin-left:0; }
.ed-coin.btc{ background:#F7931A; }
.ed-coin.eth{ background:#627EEA; }
.ed-coin.usdt{ background:#26A17B; }

/* ---------- CHECKOUT: GUARANTEE MINI ---------- */
.ed-guarantee-mini{
  display:flex;
  align-items:center;
  gap:16px;
  padding:20px 24px;
}
.ed-guarantee-mini-ico{
  width:44px; height:44px;
  border-radius:50%;
  background: var(--ed-accent-soft);
  color: var(--ed-accent-ink);
  display:flex; align-items:center; justify-content:center;
  font-size:19px;
  flex-shrink:0;
}
.ed-guarantee-mini b{ display:block; font-family: var(--ed-serif); font-size:14.5px; margin-bottom:3px; }
.ed-guarantee-mini span{ font-size:12.5px; color: var(--ed-ink-soft); line-height:1.55; }

/* ---------- CHECKOUT: ORDER SUMMARY ---------- */
.ed-order-summary{ position:sticky; top:24px; }
.ed-order-product{ padding:20px 24px; border-bottom:1px solid var(--ed-line); }
.ed-order-product-name{ font-family: var(--ed-serif); font-size:16px; font-weight:600; }
.ed-order-price-row{ display:flex; align-items:baseline; gap:8px; margin-top:12px; }
.ed-order-price{ font-family: var(--ed-serif); font-size:28px; font-weight:600; color: var(--ed-accent); }
.ed-order-old{ font-family: var(--ed-mono); font-size:12px; color: var(--ed-ink-faint); text-decoration:line-through; }
.ed-order-save{ font-family: var(--ed-mono); font-size:11.5px; color: var(--ed-up); margin-top:6px; }
.ed-order-features{
  list-style:none; margin:0; padding:16px 24px;
  border-bottom:1px solid var(--ed-line);
  display:flex; flex-direction:column; gap:10px;
}
.ed-order-features li{ display:flex; align-items:flex-start; gap:9px; font-size:13px; color: var(--ed-ink-soft); }
.ed-order-features .chk{ color: var(--ed-bronze); flex-shrink:0; }
.ed-order-total-row{ padding:20px 24px; }
.ed-order-total{ display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; }
.ed-order-total span:first-child{ font-size:13.5px; font-weight:600; color: var(--ed-ink); }
.ed-order-total b{ font-family: var(--ed-serif); font-size:23px; font-weight:600; }
.ed-order-secure{
  text-align:center;
  font-family: var(--ed-mono);
  font-size:11px;
  color: var(--ed-ink-faint);
  margin-top:12px;
}

@media (max-width: 980px){
  .ed-checkout-grid{ grid-template-columns:1fr; }
  .ed-order-summary{ position:static; }
}
@media (max-width: 640px){
  .ed-field-row{ grid-template-columns:1fr; }
  .ed-checkout-header-right{ gap:12px; }
  .ed-checkout-secure-badge{ display:none; }
  .ed-steps{ max-width:100%; }
  .ed-step-sub{ display:none; }
}

/* ---------- AUTH (glass) ---------- */
.ed-auth-page{
  position:relative;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:64px 24px;
  background: linear-gradient(160deg, #060A2E 0%, #0A1340 35%, #142057 65%, #1B2C78 100%);
  overflow:hidden;
}
.ed-auth-glow{
  position:absolute;
  border-radius:50%;
  filter: blur(90px);
  pointer-events:none;
  z-index:0;
}
.ed-auth-glow-a{ width:520px; height:520px; top:-160px; left:-140px; background: radial-gradient(circle, rgba(52,80,255,.5), transparent 70%); }
.ed-auth-glow-b{ width:480px; height:480px; bottom:-200px; right:-120px; background: radial-gradient(circle, rgba(168,123,63,.42), transparent 70%); }

.ed-auth-logo{
  position:relative; z-index:1;
  display:flex; align-items:center; gap:10px;
  font-family: var(--ed-serif); font-size:15px; font-weight:600; color:#fff;
  margin-bottom:36px;
}
.ed-auth-logo-mark{ display:flex; width:28px; height:28px; border-radius:8px; overflow:hidden; box-shadow:0 8px 20px -8px rgba(0,0,0,.6); flex-shrink:0; }
.ed-auth-logo-mark img{ width:100%; height:100%; object-fit:cover; }

.ed-auth-shell{ position:relative; z-index:1; width:100%; max-width:440px; }

.ed-auth-quote{
  text-align:center;
  font-family: var(--ed-serif);
  font-size:16px;
  line-height:1.5;
  color: rgba(255,255,255,.68);
  margin-bottom:26px;
}
.ed-auth-quote em{ font-style:italic; color:#D7B683; }

.ed-auth-card{
  position:relative;
  width:100%;
  background: rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.14);
  border-radius: var(--ed-radius-lg);
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
  padding:40px 36px;
  box-shadow: 0 30px 80px -30px rgba(0,0,0,.65);
}

.ed-auth-pill{
  position:absolute;
  z-index:2;
  display:flex; align-items:center; gap:7px;
  background: rgba(10,15,50,.7);
  border:1px solid rgba(255,255,255,.16);
  backdrop-filter: blur(12px);
  border-radius:100px;
  padding:9px 16px 9px 12px;
  font-family: var(--ed-mono);
  font-size:11px;
  color: rgba(255,255,255,.85);
  white-space:nowrap;
  box-shadow:0 12px 30px -12px rgba(0,0,0,.55);
}
.ed-auth-pill .dot{ width:6px; height:6px; border-radius:50%; background:#5FDB8C; box-shadow:0 0 0 3px rgba(95,219,140,.18); flex-shrink:0; }
.ed-auth-pill strong{ color:#5FDB8C; font-weight:600; }
.ed-auth-pill-ticker{ top:-17px; right:28px; }
.ed-auth-pill-secure{ bottom:-17px; left:28px; }
.ed-auth-pill-secure .dot{ background:#D7B683; box-shadow:0 0 0 3px rgba(215,182,131,.18); }

.ed-auth-card .ed-eyebrow{ color: rgba(255,255,255,.6); border-bottom-color: rgba(255,255,255,.16); }
.ed-auth-card .ed-eyebrow::before{ color:#D7B683; }
.ed-auth-card h1{ color:#fff; }
.ed-auth-card .ed-auth-title{ font-family: var(--ed-serif); font-size:28px; font-weight:600; margin-top:16px; margin-bottom:8px; }
.ed-auth-card .ed-auth-sub-link{ font-size:13.5px; color: rgba(255,255,255,.55); margin-bottom:30px; }
.ed-auth-card .ed-auth-sub-link a{ color:#D7B683; font-weight:600; }

.ed-auth-card .ed-field label{ color: rgba(255,255,255,.5); }
.ed-auth-card .ed-input,
.ed-auth-card .ed-select{
  background-color: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.16);
  color:#fff;
}
.ed-auth-card .ed-input::placeholder{ color: rgba(255,255,255,.32); }
.ed-auth-card .ed-input:focus{ border-color:#D7B683; background: rgba(255,255,255,.09); }
.ed-auth-card .ed-select{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7' fill='none'%3E%3Cpath d='M1 1L5.5 5.5L10 1' stroke='%23FFFFFF' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' stroke-opacity='.6'/%3E%3C/svg%3E");
}
.ed-auth-card .ed-select option{ color: var(--ed-ink); }
.ed-auth-card .ed-input[readonly]{ color: rgba(255,255,255,.5); background: rgba(255,255,255,.03); }

.ed-input-wrap{ position:relative; }
.ed-input-wrap .ed-input{ padding-right:42px; }
.ed-input-eye{
  position:absolute; right:12px; top:50%; transform:translateY(-50%);
  background:none; border:0; cursor:pointer; color: var(--ed-ink-faint); font-size:15px; line-height:1;
}
.ed-auth-card .ed-input-eye{ color: rgba(255,255,255,.45); }

.ed-check-row{
  display:flex; align-items:flex-start; gap:9px;
  font-size:12.5px; color: var(--ed-ink-soft); line-height:1.5;
  margin:16px 0 22px;
}
.ed-check-row input{ accent-color: var(--ed-accent); margin-top:2px; flex-shrink:0; }
.ed-auth-card .ed-check-row{ color: rgba(255,255,255,.55); }
.ed-auth-card .ed-check-row input{ accent-color:#D7B683; }

.ed-form-options{ display:flex; align-items:center; justify-content:space-between; margin:16px 0 22px; flex-wrap:wrap; gap:10px; }
.ed-forgot-link{ font-family: var(--ed-mono); font-size:12px; color: var(--ed-ink-faint); }
.ed-auth-card .ed-forgot-link{ color: rgba(255,255,255,.45); }

.ed-auth-divider{ display:flex; align-items:center; gap:14px; margin:22px 0; font-family: var(--ed-mono); font-size:11px; color: var(--ed-ink-faint); }
.ed-auth-divider::before, .ed-auth-divider::after{ content:''; flex:1; height:1px; background: var(--ed-line); }
.ed-auth-card .ed-auth-divider{ color: rgba(255,255,255,.4); }
.ed-auth-card .ed-auth-divider::before, .ed-auth-card .ed-auth-divider::after{ background: rgba(255,255,255,.16); }

.ed-auth-footer{ text-align:center; font-size:13.5px; color: var(--ed-ink-soft); margin-top:20px; }
.ed-auth-footer a{ color: var(--ed-accent-ink); font-weight:600; }
.ed-auth-card .ed-auth-footer{ color: rgba(255,255,255,.55); }
.ed-auth-card .ed-auth-footer a{ color:#D7B683; }

.ed-auth-alert{
  font-size:13px;
  color:#FF9E90;
  background: rgba(255,110,90,.1);
  border:1px solid rgba(255,110,90,.28);
  border-radius:10px;
  padding:11px 14px;
  margin-bottom:20px;
}
.ed-auth-status{
  font-size:13px;
  color:#7EE0A6;
  background: rgba(95,219,140,.1);
  border:1px solid rgba(95,219,140,.28);
  border-radius:10px;
  padding:11px 14px;
  margin-bottom:20px;
}
.ed-selected-plan{
  border:1px solid rgba(255,255,255,.16);
  border-radius:10px;
  padding:14px 16px;
  margin-bottom:20px;
  background: rgba(255,255,255,.06);
}
.ed-selected-plan .name{ font-size:13.5px; font-weight:600; color:#fff; }
.ed-selected-plan .price{ font-family: var(--ed-mono); font-size:12px; color:#D7B683; margin-top:3px; }

.ed-auth-card .ed-btn-primary{
  background: linear-gradient(120deg, #3450FF 0%, #6C4FE0 55%, #A87B3F 100%);
  color:#fff;
  box-shadow: 0 16px 34px -14px rgba(52,80,255,.55);
}
.ed-auth-card .ed-btn-primary:hover{ background: linear-gradient(120deg, #3450FF 0%, #6C4FE0 55%, #A87B3F 100%); box-shadow: 0 20px 40px -14px rgba(52,80,255,.7); }

@media (max-width: 560px){
  .ed-auth-pill{ display:none; }
  .ed-auth-card{ padding:32px 22px; }
  .ed-auth-page{ padding:48px 16px; }
}

@media (prefers-reduced-motion: no-preference){
  .ed-auth-card{ transition: box-shadow .25s ease; }
}

/* ---------- CHECKOUT: STATUS ---------- */
.ed-status-wrap{ max-width:520px; margin:0 auto; text-align:center; padding:88px 20px 100px; }
.ed-status-icon{
  width:76px; height:76px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:30px;
  margin:0 auto 28px;
  border:2px solid;
}
.ed-status-icon.success{ background: rgba(47,122,79,.08); border-color: var(--ed-up); color: var(--ed-up); }
.ed-status-icon.pending{ background: var(--ed-bronze-soft); border-color: var(--ed-bronze); color: var(--ed-bronze); }
.ed-status-icon.cancel{ background: rgba(192,57,43,.08); border-color:#C0392B; color:#C0392B; }
.ed-status-title{ font-family: var(--ed-serif); font-size:27px; font-weight:600; margin-bottom:12px; }
.ed-status-desc{ font-size:14.5px; color: var(--ed-ink-soft); line-height:1.65; margin-bottom:30px; }
.ed-status-meta{
  text-align:left;
  border:1px solid var(--ed-line);
  border-radius: var(--ed-radius-md);
  padding:20px 22px;
  margin-bottom:30px;
  background: var(--ed-surface);
}
.ed-status-meta-row{ display:flex; justify-content:space-between; align-items:center; padding:7px 0; }
.ed-status-meta-row .lbl{ font-family: var(--ed-mono); font-size:10.5px; color: var(--ed-ink-faint); text-transform:uppercase; letter-spacing:.04em; }
.ed-status-meta-row .val{ font-size:13.5px; font-weight:600; color: var(--ed-ink); }

/* ---------- LIBRARY: FILTERS ---------- */
.ed-filter-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:52px;
}
.ed-filter-chip{
  font-family: var(--ed-mono);
  font-size:11.5px;
  letter-spacing:.04em;
  text-transform:uppercase;
  padding:9px 16px;
  border-radius:8px;
  border:1px solid var(--ed-line);
  background: var(--ed-surface);
  color: var(--ed-ink-soft);
  cursor:pointer;
  transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.ed-filter-chip:hover{ border-color: var(--ed-ink); color: var(--ed-ink); }
.ed-filter-chip.active{
  background: var(--ed-ink);
  border-color: var(--ed-ink);
  color:#fff;
}

/* ---------- LIBRARY: BOOK GRID ---------- */
.ed-book-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:24px;
}
.ed-book-card{
  display:flex;
  flex-direction:column;
  background: var(--ed-surface);
  border:1px solid var(--ed-line);
  border-radius: var(--ed-radius-md);
  overflow:hidden;
  transition: transform .18s ease, box-shadow .18s ease;
}
.ed-book-card:hover{ transform: translateY(-4px); box-shadow: var(--ed-shadow-sm); }
.ed-book-card.hidden{ display:none; }
.ed-book-cover{
  position:relative;
  aspect-ratio: 3/4;
  overflow:hidden;
  background: var(--ed-ink);
}
.ed-book-cover img{ width:100%; height:100%; object-fit:cover; }
.ed-book-badge{
  position:absolute;
  top:12px; left:12px;
  font-family: var(--ed-mono);
  font-size:10px;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  padding:5px 10px;
  border-radius:6px;
  background:#fff;
  box-shadow: var(--ed-shadow-sm);
}
.ed-book-badge.free{ color: var(--ed-up); }
.ed-book-badge.price{ color: var(--ed-ink); }

.ed-book-cover-placeholder{
  width:100%; height:100%;
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:24px;
  gap:10px;
}
.ed-book-cover-placeholder .letter{
  position:absolute;
  top:6px; right:12px;
  font-family: var(--ed-serif);
  font-size:64px;
  font-weight:600;
  color: rgba(255,255,255,.08);
  line-height:1;
}
.ed-book-cover-placeholder .ttl{
  font-family: var(--ed-serif);
  font-size:16px;
  font-weight:600;
  color:#fff;
  line-height:1.3;
}
.ed-book-cover-placeholder .auth{
  font-family: var(--ed-mono);
  font-size:10px;
  letter-spacing:.04em;
  text-transform:uppercase;
  color: rgba(255,255,255,.45);
}
.ed-book-cover-placeholder .rule{
  width:34px; height:1px;
  background: rgba(255,255,255,.2);
}

.ed-book-body{
  padding:20px;
  display:flex;
  flex-direction:column;
  gap:9px;
  flex:1;
}
.ed-book-category{
  font-family: var(--ed-mono);
  font-size:10px;
  font-weight:600;
  letter-spacing:.05em;
  text-transform:uppercase;
  color: var(--ed-accent-ink);
}
.ed-book-title{
  font-family: var(--ed-serif);
  font-size:16.5px;
  font-weight:600;
  line-height:1.3;
}
.ed-book-desc{
  font-size:13px;
  color: var(--ed-ink-soft);
  line-height:1.55;
  flex:1;
}
.ed-book-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding-top:14px;
  margin-top:2px;
  border-top:1px solid var(--ed-line);
  font-family: var(--ed-mono);
  font-size:10.5px;
  color: var(--ed-ink-faint);
}
.ed-btn-sm{ padding:8px 15px; font-size:12px; }

/* ---------- SOCIAL PROOF GALLERY (screenshots + videos) ---------- */
.ed-proof-grid{
  column-count:3;
  column-gap:20px;
}
.ed-proof-item{
  break-inside:avoid;
  margin-bottom:20px;
  border-radius: var(--ed-radius-md);
  overflow:hidden;
  border:1px solid var(--ed-line);
  box-shadow: var(--ed-shadow-sm);
  background: var(--ed-surface);
  cursor:zoom-in;
}
.ed-proof-item video{ cursor:auto; }
.ed-proof-item img,
.ed-proof-item video{ width:100%; display:block; }

.ed-lightbox{
  display:none;
  position:fixed;
  inset:0;
  z-index:200;
  background: rgba(10,10,8,.92);
  align-items:center;
  justify-content:center;
  padding:40px;
}
.ed-lightbox.open{ display:flex; }
.ed-lightbox img{ max-width:90vw; max-height:88vh; border-radius:12px; display:block; }
.ed-lightbox-close{
  position:absolute;
  top:24px; right:28px;
  width:40px; height:40px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.2);
  background: rgba(255,255,255,.06);
  color:#fff;
  font-size:16px;
  cursor:pointer;
}

@media (max-width: 980px){
  .ed-proof-grid{ column-count:2; }
}
@media (max-width: 640px){
  .ed-proof-grid{ column-count:1; }
}

/* ---------- JOURNEY (student path timeline) ---------- */
.ed-journey{
  position:relative;
  max-width:680px;
  margin:0 auto;
}
.ed-journey::before{
  content:'';
  position:absolute;
  left:25px;
  top:6px;
  bottom:6px;
  width:1px;
  background: linear-gradient(to bottom, var(--ed-line), var(--ed-accent) 92%);
}
.ed-journey-step{
  position:relative;
  display:flex;
  gap:26px;
  padding-bottom:40px;
}
.ed-journey-step:last-child{ padding-bottom:0; }
.ed-journey-num{
  position:relative;
  z-index:1;
  width:51px; height:51px;
  border-radius:50%;
  background: var(--ed-surface);
  border:1px solid var(--ed-line);
  display:flex;
  align-items:center;
  justify-content:center;
  font-family: var(--ed-mono);
  font-weight:600;
  font-size:15px;
  color: var(--ed-accent-ink);
  flex-shrink:0;
}
.ed-journey-step:last-child .ed-journey-num{
  background: var(--ed-premium-bg);
  border-color: transparent;
  color:#fff;
  box-shadow: 0 10px 26px -10px rgba(35,57,156,.55);
}
.ed-journey-body{ padding-top:8px; }
.ed-journey-body h3{
  font-family: var(--ed-serif);
  font-size:18.5px;
  font-weight:600;
  margin-bottom:6px;
}
.ed-journey-body p{
  font-size:14px;
  color: var(--ed-ink-soft);
  line-height:1.6;
  max-width:480px;
  margin:0;
}

/* ---------- GUARANTEE ---------- */
.ed-guarantee-grid{
  display:grid;
  grid-template-columns: auto 1fr;
  gap:56px;
  align-items:center;
}
.ed-guarantee-badge{
  width:150px; height:150px;
  border-radius:50%;
  border:1px dashed var(--ed-line);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  position:relative;
}
.ed-guarantee-badge::before{
  content:'';
  position:absolute;
  inset:14px;
  border-radius:50%;
  border:1px solid var(--ed-line);
}
.ed-guarantee-badge .txt{
  font-family: var(--ed-serif);
  text-align:center;
  line-height:1.1;
}
.ed-guarantee-badge .txt b{ display:block; font-size:30px; font-weight:600; color: var(--ed-accent); }
.ed-guarantee-badge .txt span{ font-family: var(--ed-mono); font-size:9.5px; letter-spacing:.06em; color: var(--ed-ink-faint); text-transform:uppercase; }
.ed-guarantee-list{
  list-style:none; margin:22px 0 0; padding:0;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px 28px;
}
.ed-guarantee-list li{
  display:flex; align-items:center; gap:9px;
  font-family: var(--ed-mono);
  font-size:12.5px;
  color: var(--ed-ink-soft);
}
.ed-guarantee-list li::before{ content:'✓'; color: var(--ed-up); font-weight:700; }

/* ---------- RESPONSIVE ---------- */
@media (max-width: 980px){
  .ed-hero-grid{ grid-template-columns:1fr; }
  .ed-hero-portrait{ order:-1; }
  .ed-grid-4{ grid-template-columns: repeat(2,1fr); }
  .ed-grid-3{ grid-template-columns: repeat(2,1fr); }
  .ed-programme-grid{ grid-template-columns: repeat(3,1fr); }
  .ed-nav-links{ display:none; }
  .ed-nav-burger{ display:flex; }
  .ed-footer-top{ flex-direction:column; }
  .ed-guarantee-grid{ grid-template-columns:1fr; text-align:center; }
  .ed-guarantee-badge{ margin:0 auto; }
  .ed-guarantee-list{ justify-content:center; }
  .ed-book-grid{ grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 640px){
  .ed-wrap{ padding:0 20px; }
  .ed-urgency-inner{ gap:10px 16px; }
  .ed-terminal-float{ flex-wrap:wrap; justify-content:center; gap:14px 22px; bottom:-40px; padding:12px 18px; }
  .ed-guarantee-list{ grid-template-columns:1fr; }
  .ed-grid-4, .ed-grid-3{ grid-template-columns:1fr; }
  .ed-book-grid{ grid-template-columns:1fr 1fr; gap:14px; }
  .ed-programme-grid{ grid-template-columns: repeat(2,1fr); }
  .ed-programme-step-line{ max-width:28px; }
  .ed-hero-meta{ gap:20px; }
  .ed-float-badge{ position:static; margin-top:14px; }
  .ed-hero-portrait-frame{ margin-bottom:14px; }
  .ed-nav-right .ed-nav-login{ display:none; }
  .ed-nav-inner{ padding:16px 20px; gap:12px; }
  .ed-nav-brand{ font-size:16px; gap:8px; }
  .ed-nav-right{ gap:8px; }
  .ed-btn{ padding:11px 18px; font-size:13px; }
}

/* ── Pages légales, avertissement, conditions ── */
.ed-legal { max-width: 760px; }
.ed-legal-title { font-family: var(--ed-serif); font-weight: 600; font-size: clamp(30px, 4vw, 44px); margin: 0 0 28px; letter-spacing: -.01em; }
.ed-legal h2 { font-family: var(--ed-serif); font-size: 22px; margin: 34px 0 10px; }
.ed-legal p, .ed-legal li { font-size: 16px; line-height: 1.7; color: var(--ed-ink-soft, inherit); }
.ed-legal ul { padding-left: 22px; }
.ed-legal a { text-decoration: underline; }
.ed-footer-risk { font-size: 12.5px; line-height: 1.6; opacity: .75; max-width: 880px; margin: 28px 0 0; }
.ed-order-terms { font-size: 12.5px; opacity: .8; margin: 12px 0 0; text-align: center; }
.ed-order-terms a { text-decoration: underline; }

/* ── Utilitaires de mise en page (remplacent les styles inline des vues) ── */
.ed-hero-actions-mt { margin-top: 24px; }
.ed-text-center { text-align: center; }
.ed-wrap-narrow { max-width: 480px; }
.ed-wrap-checkout { max-width: 1040px; }
.ed-mb-10 { margin-bottom: 10px; } .ed-mb-0 { margin-bottom: 0; } .ed-mb-16 { margin-bottom: 16px; } .ed-mb-22 { margin-bottom: 22px; }
.ed-btn-block { width: 100%; justify-content: center; }
.ed-btn-lg { padding: 15px 26px; }
.ed-sec-top-lg { padding-top: 64px; padding-bottom: 120px; }
.ed-sec-top-md { padding-top: 64px; padding-bottom: 80px; text-align: center; }
.ed-sec-top-sm { padding-top: 56px; }
.ed-center-block { margin-left: auto; margin-right: auto; }
.ed-justify-center { justify-content: center; }
.ed-h1-display { font-family: var(--ed-serif); font-weight: 600; font-size: clamp(34px, 4.4vw, 52px); margin-top: 22px; letter-spacing: -.01em; }
.ed-h1-hero { font-size: clamp(36px, 4.6vw, 58px); margin-top: 22px; }
.ed-lead-narrow { max-width: 520px; }
.ed-lead-wide { max-width: none; }
.ed-portrait-square { aspect-ratio: 1/1; max-width: 380px; }
.ed-pb-36 { padding-bottom: 36px; }
.ed-grid-2col { grid-template-columns: 1fr 1fr; gap: 16px; }
.ed-value-card-sm h3 { font-size: 15px; } .ed-value-card-sm p { font-size: 13px; }
.ed-empty { text-align: center; padding: 60px 20px; color: var(--ed-ink-faint); font-family: var(--ed-mono); font-size: 13px; }
.ed-block-mb { margin-bottom: 64px; }
.ed-eyebrow-block { margin-bottom: 22px; display: inline-block; }
.ed-cover-dark { background: var(--ed-ink); }
.ed-cover-premium { background: var(--ed-premium-bg); }
.ed-alert { border-radius: 10px; padding: 14px 18px; font-size: 14px; line-height: 1.5; margin-bottom: 18px; }
.ed-alert-ok { border: 1px solid var(--ed-up); color: var(--ed-up); }
.ed-alert-error { border: 1px solid #C0392B; color: #C0392B; }
.ed-field-error { color: #C0392B; font-size: 13px; margin-top: 6px; }
.ed-field-stack { margin-bottom: 16px; }
.ed-field-stack-lg { margin-bottom: 22px; }
.ed-label-block { display: block; margin-bottom: 6px; font-size: 14px; }
.ed-form-left { text-align: left; margin-top: 24px; }
.ed-pay-badge-wave { color: #00A0DC; } .ed-pay-badge-orange { color: #FF6600; } .ed-pay-badge-mtn { color: #FFCB05; }
.ed-pay-note { font-family: var(--ed-mono); font-size: 11px; color: var(--ed-ink-faint); margin-top: 16px; }
.ed-skip { position: absolute; left: -9999px; top: 8px; z-index: 100; background: #fff; color: #000; padding: 10px 16px; border-radius: 8px; }
.ed-skip:focus { left: 8px; }
.ed-nav-links a[aria-current="page"], .ed-mobile-menu a[aria-current="page"] { font-weight: 700; }
.ed :focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

.ed-check-row-flush { margin: 0; }

/* ── Cours gratuits ── */
.ed-free-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ed-free-cover { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; background: var(--ed-ink); }
.ed-free-cover-empty { display: flex; align-items: center; justify-content: center; }
.ed-free-cover-empty span { font-family: var(--ed-serif); font-size: 56px; font-weight: 600; color: #fff; opacity: .9; }
.ed-free-cta, .ed-free-more { text-align: center; margin-top: 56px; }
.ed-free-more { padding-top: 40px; border-top: 1px solid var(--ed-line); }
.ed-free-more h2 { font-family: var(--ed-serif); font-size: 24px; margin-bottom: 8px; }
.ed-free-more p { max-width: 520px; margin: 0 auto 18px; }
.ed-free-cta p:first-child { margin-bottom: 16px; font-size: 16px; }
.ed-free-cta-sub { margin-top: 14px; font-size: 14px; }
.ed-free-cta-sub a { text-decoration: underline; }
@media (max-width: 960px) { .ed-free-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .ed-free-grid { grid-template-columns: 1fr; } }

.ed-status-amount { color: var(--ed-accent); }
.ed-status-action { margin-bottom: 14px; }
.ed-status-note { font-size: 13px; color: var(--ed-ink-soft); margin-top: 18px; max-width: 460px; margin-left: auto; margin-right: auto; }
.ed-status-note a { text-decoration: underline; }

/* ── Paiement : mobile ── */
.ed-order-product-row { display: flex; gap: 14px; align-items: flex-start; padding-bottom: 20px; }
.ed-order-thumb { width: 64px; aspect-ratio: 3/4; object-fit: cover; border-radius: 8px; flex-shrink: 0; }
.ed-order-product-name-sm { font-size: 15px; }
.ed-order-product-meta { font-family: var(--ed-mono); font-size: 11.5px; color: var(--ed-ink-faint); margin-top: 6px; }
.ed-sticky-pay { display: none; }

@media (max-width: 980px) {
  .ed-desktop-only { display: none !important; }
  .ed-checkout-main { padding: 28px 0 150px; }
  .ed-steps { margin-bottom: 28px; }
  .ed-checkout-footer { margin-top: 32px; }
  .ed-sticky-pay {
    display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 14px;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
    background: var(--ed-bg); border-top: 1px solid var(--ed-line);
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
    box-shadow: 0 -8px 24px rgba(0, 0, 0, .08);
  }
  .ed-sticky-pay-total { display: flex; flex-direction: column; line-height: 1.2; }
  .ed-sticky-pay-total span { font-size: 12px; color: var(--ed-ink-faint); }
  .ed-sticky-pay-total b { font-family: var(--ed-serif); font-size: 22px; font-weight: 600; }
  .ed-sticky-pay-btn { min-width: 150px; justify-content: center; padding: 14px 22px; }
  .ed-sticky-pay-terms { grid-column: 1 / -1; margin: 0; font-size: 11.5px; color: var(--ed-ink-faint); text-align: center; }
  .ed-sticky-pay-terms a { text-decoration: underline; }
}

@media (max-width: 640px) {
  .ed-checkout-header-inner { padding: 14px 20px; }
  .ed-checkout-footer-inner { padding: 18px 20px; }
  .ed-checkout-card { margin-bottom: 16px; }
  .ed-checkout-card-header { padding: 14px 18px; }
  .ed-checkout-card-body { padding: 18px; }
  .ed-order-product, .ed-order-total-row { padding-left: 18px; padding-right: 18px; }
  /* 16 px : évite le zoom automatique d'iOS quand on touche un champ */
  .ed-input, .ed-select { font-size: 16px; padding: 14px; }
  /* moyens de paiement : les pastilles de marques passent sous le texte au lieu d'écraser la ligne */
  .ed-pay-option { flex-wrap: wrap; row-gap: 10px; padding: 14px; }
  .ed-pay-badges { flex-basis: 100%; margin-left: 0; padding-left: 30px; flex-wrap: wrap; }
  .ed-pay-text { min-width: 0; }
  .ed-step-label { font-size: 12px; }
  .ed-status-wrap { padding: 56px 20px 72px; }
  .ed-status-meta-row { gap: 12px; }
  .ed-status-meta-row .val { text-align: right; }
}
