/* ============================================================
   SkillRank Academy — design tokens
   Identity: "search visibility" — plum/indigo + coral signal accent
   ============================================================ */
:root{
  --ink:#1b1430;          /* near-black plum */
  --plum:#3a2d5c;         /* primary */
  --plum-700:#2c2147;
  --indigo:#4f46e5;
  --coral:#ff5d5d;        /* signal accent */
  --coral-600:#ef4444;
  --sand:#f6f3ee;         /* warm paper, not cream-serif default */
  --paper:#ffffff;
  --line:#e7e2d8;
  --muted:#6b647a;
  --gold:#c9a23f;
  --gold-2:#f4dd92;
  --gold-deep:#9c7b22;
}
*{ font-family:'Inter',system-ui,sans-serif; }
h1,h2,h3,h4,h5,.display,.brand-text{ font-family:'Sora','Inter',sans-serif; letter-spacing:-.02em; }
body{ background:var(--sand); color:var(--ink); }
.mono{ font-family:'JetBrains Mono',monospace; }

a{ color:var(--plum); text-decoration:none; }
a:hover{ color:var(--coral-600); }

/* ---- buttons ---- */
.btn-accent{ background:var(--coral); border-color:var(--coral); color:#fff; font-weight:600; }
.btn-accent:hover{ background:var(--coral-600); border-color:var(--coral-600); color:#fff; }
.btn-plum{ background:var(--plum); border-color:var(--plum); color:#fff; font-weight:600; }
.btn-plum:hover{ background:var(--plum-700); border-color:var(--plum-700); color:#fff; }
.btn-outline-plum{ border-color:var(--plum); color:var(--plum); font-weight:600; }
.btn-outline-plum:hover{ background:var(--plum); color:#fff; }

/* ---- nav ---- */
.site-nav{ background:var(--ink); }
.site-nav .nav-link{ color:#d7d2e6; font-weight:500; }
.site-nav .nav-link:hover,.site-nav .nav-link.active{ color:#fff; }
.brand-mark{ display:inline-grid; place-items:center; width:36px; height:36px; border-radius:9px;
  background:var(--coral); color:#fff; font-weight:800; font-family:'Sora'; }
.brand-text{ color:#fff; font-weight:700; }

/* ---- hero ---- */
.hero{ background:radial-gradient(1200px 500px at 80% -10%, #4a3a73 0%, var(--ink) 55%); color:#fff; }
.hero .eyebrow{ font-family:'JetBrains Mono',monospace; font-size:.8rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--coral); }
.hero h1{ font-size:clamp(2.2rem,5vw,3.6rem); font-weight:800; line-height:1.05; }
.hero .lead{ color:#cfc9e0; }

/* signature: a query getting "ranked" across SEO/AEO/GEO */
.rankcard{ background:#fff; color:var(--ink); border-radius:16px; box-shadow:0 30px 60px rgba(20,12,40,.45);
  overflow:hidden; border:1px solid rgba(255,255,255,.1); }
.rankcard .query{ display:flex; align-items:center; gap:.6rem; padding:.9rem 1.1rem;
  border-bottom:1px solid var(--line); font-family:'JetBrains Mono',monospace; color:var(--muted); }
.rankcard .query .dot{ width:9px;height:9px;border-radius:50%; background:var(--coral); }
.rankrow{ display:flex; align-items:center; gap:.8rem; padding:.85rem 1.1rem; border-bottom:1px solid var(--line); }
.rankrow:last-child{ border-bottom:0; }
.rankrow .pos{ font-family:'Sora'; font-weight:800; color:var(--coral); width:2.2rem; }
.rankrow .tag{ font-size:.7rem; font-weight:700; letter-spacing:.08em; padding:.15rem .5rem; border-radius:6px;
  background:#efeafd; color:var(--plum); }
.rankrow small{ color:var(--muted); }

/* ---- generic sections ---- */
.section{ padding:72px 0; }
.kicker{ font-family:'JetBrains Mono',monospace; font-size:.78rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--coral-600); font-weight:600; }
.card-soft{ background:var(--paper); border:1px solid var(--line); border-radius:14px; }
.card-soft:hover{ box-shadow:0 12px 30px rgba(27,20,48,.08); }
.cat-badge{ font-size:.72rem; font-weight:700; letter-spacing:.06em; padding:.2rem .55rem; border-radius:6px; }
.cat-SEO{ background:#e6f0ff; color:#1d4ed8; }
.cat-AEO{ background:#fdeaea; color:#be123c; }
.cat-GEO{ background:#e9f7ee; color:#15803d; }
.cat-OTHER{ background:#eee; color:#555; }

.feature-ico{ width:46px;height:46px;border-radius:12px; display:grid;place-items:center;
  background:#efeafd; font-size:1.4rem; }

.step-num{ font-family:'Sora'; font-weight:800; font-size:1.6rem; color:var(--coral); }

/* ---- footer ---- */
.site-footer{ background:var(--ink); color:#cfc9e0; }
.footer-h{ color:#fff; font-size:.95rem; margin-bottom:.7rem; }
.site-footer a{ display:block; color:#b7b0cc; padding:.15rem 0; text-decoration:none; }
.site-footer a:hover{ color:#fff; }
/* Bootstrap's .text-muted is dark — override it so footer copy is legible on the dark bg */
.site-footer .text-muted{ color:#9b93b5 !important; }
.site-footer hr{ border-color:#cfc9e0 !important; opacity:.18 !important; }

/* ---- progress / misc ---- */
.progress{ background:#e9e4f3; height:8px; border-radius:20px; }
.progress-bar{ background:var(--coral); }
.lesson-content{ font-size:1.05rem; line-height:1.75; }
.lesson-content h5{ margin-top:1.4rem; }
/* ---- certificate (modern) ---- */
.cert-wrap{ perspective:1400px; }
.cert-paper{
  position:relative; background:
    radial-gradient(120% 80% at 50% -10%, #fbfaf6 0%, #fff 45%),
    repeating-linear-gradient(45deg, rgba(58,45,92,.018) 0 2px, transparent 2px 9px);
  border-radius:10px; padding:54px 56px 60px; text-align:center; overflow:hidden;
  box-shadow:0 40px 90px rgba(20,12,40,.28), 0 4px 10px rgba(20,12,40,.10);
  border:1px solid #efe9dc;
}
/* layered gold + plum frame */
.cert-paper::before{
  content:""; position:absolute; inset:14px; border-radius:6px;
  border:2px solid transparent;
  background:
    linear-gradient(#fff,#fff) padding-box,
    linear-gradient(135deg, var(--gold-deep), var(--gold-2) 35%, var(--gold) 65%, var(--gold-deep)) border-box;
  pointer-events:none;
}
.cert-paper::after{
  content:""; position:absolute; inset:22px; border-radius:3px;
  border:1px solid rgba(58,45,92,.30); pointer-events:none;
}
.cert-inner{ position:relative; z-index:2; }
/* corner flourishes */
.cert-corner{ position:absolute; width:30px; height:30px; z-index:2; border:0 solid var(--gold-deep); opacity:.85; }
.cert-corner.tl{ top:30px; left:30px; border-top-width:2px; border-left-width:2px; }
.cert-corner.tr{ top:30px; right:30px; border-top-width:2px; border-right-width:2px; }
.cert-corner.bl{ bottom:30px; left:30px; border-bottom-width:2px; border-left-width:2px; }
.cert-corner.br{ bottom:30px; right:30px; border-bottom-width:2px; border-right-width:2px; }

.cert-monogram{
  width:62px; height:62px; margin:0 auto 14px; border-radius:50%;
  background:linear-gradient(145deg, var(--plum), var(--ink));
  color:#fff; display:grid; place-items:center; font-family:'Sora'; font-weight:800; font-size:1.35rem;
  box-shadow:0 8px 20px rgba(58,45,92,.35); border:2px solid var(--gold);
}
.cert-org{ font-family:'JetBrains Mono',monospace; letter-spacing:.22em; text-transform:uppercase;
  font-size:.72rem; color:var(--plum); }
.cert-title{ font-family:'Sora'; font-weight:800; letter-spacing:.14em; font-size:1.6rem;
  margin:.5rem 0 .1rem; color:var(--ink); }
.cert-rule{ width:120px; height:3px; margin:14px auto 22px; border-radius:3px;
  background:linear-gradient(90deg, transparent, var(--gold), transparent); }
.cert-intro{ color:var(--muted); margin-bottom:.4rem; }
.cert-name{ font-family:'Pinyon Script','Sora',cursive; font-size:3.4rem; line-height:1.05;
  color:var(--plum); margin:.2rem 0 .1rem; }
.cert-name-underline{ width:60%; max-width:420px; height:1px; margin:.4rem auto 1.4rem;
  background:linear-gradient(90deg, transparent, rgba(58,45,92,.45), transparent); }
.cert-course{ font-family:'Sora'; font-weight:700; font-size:1.4rem; color:var(--ink); margin:.2rem 0; }
.cert-chips{ display:flex; gap:.5rem; justify-content:center; margin-top:.6rem; }
.cert-chip{ font-size:.72rem; font-weight:600; letter-spacing:.04em; padding:.2rem .7rem; border-radius:999px;
  background:rgba(58,45,92,.07); color:var(--plum); border:1px solid rgba(58,45,92,.15); }

.cert-meta{ display:flex; justify-content:center; gap:2.4rem; flex-wrap:wrap; margin-top:2.6rem; }
.cert-meta .lbl{ font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.cert-meta .val{ font-weight:600; color:var(--ink); }

.cert-sign{ display:flex; justify-content:space-between; align-items:flex-end; gap:2rem; margin-top:2.4rem; }
.cert-sign .line{ flex:1; max-width:240px; text-align:center; }
.cert-sign .sig{ font-family:'Pinyon Script','Sora',cursive; font-size:1.7rem; color:var(--plum); line-height:1; }
.cert-sign .bar{ border-top:1px solid rgba(27,20,48,.35); margin:.3rem 0 .35rem; }
.cert-sign .role{ font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }

/* wax/gold seal */
.cert-seal{ width:104px; height:104px; flex-shrink:0; border-radius:50%;
  background:
    radial-gradient(circle at 35% 30%, var(--gold-2), var(--gold) 45%, var(--gold-deep) 100%);
  display:grid; place-items:center; text-align:center; color:#5a4410;
  box-shadow:0 10px 22px rgba(156,123,34,.4), inset 0 2px 6px rgba(255,255,255,.5);
  position:relative; }
.cert-seal::before{ content:""; position:absolute; inset:8px; border-radius:50%; border:1.5px dashed rgba(90,68,16,.5); }
.cert-seal .star{ font-size:1.5rem; line-height:1; }
.cert-seal .txt{ font-family:'JetBrains Mono',monospace; font-size:.5rem; letter-spacing:.12em; font-weight:700; margin-top:2px; }

@media (max-width:640px){
  .cert-paper{ padding:34px 22px 40px; }
  .cert-name{ font-size:2.4rem; }
  .cert-sign{ flex-direction:column; align-items:center; }
}
.ad-slot{ min-height:1px; }

/* ---- admin shell ---- */
.admin-wrap{ display:flex; min-height:100vh; }
.admin-side{ width:240px; background:var(--ink); color:#cfc9e0; flex-shrink:0; }
.admin-side .brand{ padding:18px 20px; color:#fff; font-weight:700; font-family:'Sora'; border-bottom:1px solid rgba(255,255,255,.08); }
.admin-side a{ display:block; color:#b7b0cc; padding:.6rem 20px; font-size:.93rem; }
.admin-side a:hover,.admin-side a.active{ background:rgba(255,255,255,.06); color:#fff; border-left:3px solid var(--coral); }
.admin-main{ flex:1; background:var(--sand); }
.admin-top{ background:#fff; border-bottom:1px solid var(--line); padding:.8rem 1.4rem; }
.stat-card{ background:#fff; border:1px solid var(--line); border-radius:12px; padding:1.1rem 1.2rem; }
.stat-card .n{ font-family:'Sora'; font-weight:800; font-size:1.8rem; }
@media(max-width:768px){ .admin-side{ width:64px; } .admin-side .brand,.admin-side a span{ display:none; } }

@media (prefers-reduced-motion: reduce){ *{ transition:none!important; animation:none!important; } }
:focus-visible{ outline:3px solid var(--coral); outline-offset:2px; }
