/* ODC Academy — The Producer Academy look (Brand Kit: black, white, warm paper, one gold).
   Same tokens as the coach preview pages, so going from preview to course feels like one site. */
:root {
  --ink:#0b0b0b; --ink-2:#171717; --white:#fff; --paper:#f1efe9; --cream:#faf6e8; --line:#dedbd2;
  --gold:#d4af37; --gold-light:#e1c25f; --gold-tint:#f3e8bd; --gold-ink:#8a6815; --gold-head:#a8851f; --gold-deep:#6f520f;
  --text:#353535; --text-2:#505050; --muted:#6b6b6b; --warm-muted:#8d8a82; --on-dark:#c9c4b7;
  --ok:#2f6b3a; --danger:#a12a1c;
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
  --serif:'Playfair Display',Georgia,serif;
  --r-btn:12px; --r-card:16px; --ease:cubic-bezier(.16,1,.3,1);
}
*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--paper); color:var(--text-2); font:400 16px/1.6 var(--sans); min-height:100vh; }
::selection { background:var(--gold-tint); color:var(--ink); }
a { color:var(--ink); text-underline-offset:3px; text-decoration-thickness:1px; }
a:hover { color:var(--gold-ink); }
:focus-visible { outline:3px solid var(--gold); outline-offset:3px; border-radius:6px; }
img { max-width:100%; }
.sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

.wrap { width:100%; max-width:960px; margin:0 auto; padding:0 16px; }
.narrow { max-width:560px; }

/* demo ribbon */
.ribbon { background:var(--ink); color:var(--on-dark); font-size:13.5px; line-height:1.45; padding:9px 16px; text-align:center; }
.ribbon b { color:var(--gold-light); font-weight:600; }

/* header */
header.top { background:var(--white); border-bottom:1px solid var(--line); }
header.top .wrap { display:flex; align-items:center; justify-content:space-between; gap:12px; height:64px; }
.brand { display:flex; align-items:center; gap:10px; font:700 18px/1.1 var(--serif); color:var(--ink); text-decoration:none; min-width:0; }
.brand img { width:30px; height:30px; flex:0 0 30px; }
.brand span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.who { display:flex; align-items:center; gap:10px; font-size:14px; color:var(--muted); }
.who .email { max-width:180px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.linkbtn { display:inline-flex; align-items:center; white-space:nowrap; background:none; border:0; padding:8px 4px; min-height:44px; font:600 14px/1 var(--sans); color:var(--ink); cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
@media (max-width:520px) { .who .email { display:none; } .who { gap:12px; } }
@media (max-width:400px) { .brand { font-size:16px; gap:8px; } .brand img { width:26px; height:26px; flex-basis:26px; } }

main { padding:28px 0 64px; }

/* type */
h1 { margin:0; font:700 clamp(30px,5.4vw,46px)/1.06 var(--sans); letter-spacing:-0.035em; color:var(--ink); text-wrap:balance; }
h1 .g { color:var(--gold-ink); } /* on warm paper, --gold-head is under 3:1; --gold-ink passes */
h2 { margin:0 0 10px; font:700 clamp(22px,3.2vw,28px)/1.18 var(--serif); color:var(--ink); }
h3 { margin:0; font:700 17px/1.3 var(--sans); color:var(--ink); }
.kicker { margin:0 0 10px; font:700 12.5px/1 var(--sans); letter-spacing:.08em; text-transform:uppercase; color:var(--gold-ink); }
.lede { margin:12px 0 0; font-size:17px; color:var(--text); text-wrap:pretty; }
.small { font-size:14px; color:var(--muted); }

/* cards + buttons */
.card { background:var(--white); border:1px solid var(--line); border-radius:var(--r-card); padding:22px; }
.card + .card { margin-top:14px; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:50px; padding:0 22px; border-radius:var(--r-btn); border:1px solid transparent; font:700 16px/1 var(--sans); text-decoration:none; cursor:pointer; transition:transform .2s var(--ease), background .2s, border-color .2s; }
.btn:active { transform:translateY(1px); }
.btn-gold { background:var(--gold); color:var(--ink); box-shadow:0 12px 26px rgba(212,175,55,.25); }
.btn-gold:hover { background:var(--gold-light); color:var(--ink); }
.btn-line { background:var(--white); color:var(--ink); border-color:var(--line); }
.btn-line:hover { border-color:var(--gold-ink); color:var(--ink); }
.btn-dark { background:var(--ink); color:var(--white); }
.btn-dark:hover { background:var(--ink-2); color:var(--white); }
.btn[disabled] { opacity:.55; cursor:not-allowed; box-shadow:none; }
.btn.block { width:100%; }
.btn svg { width:18px; height:18px; flex:0 0 18px; }

/* forms */
label.f { display:block; margin:0 0 14px; }
label.f > span { display:block; margin:0 0 6px; font:600 14px/1.3 var(--sans); color:var(--ink); }
label.f > span i { font-style:normal; font-weight:400; color:var(--muted); }
input[type=text], input[type=email], input[type=tel], input[inputmode] { width:100%; min-height:50px; padding:12px 14px; border:1px solid var(--line); border-radius:var(--r-btn); background:var(--white); font:400 16px/1.3 var(--sans); color:var(--ink); }
input:focus { outline:none; border-color:var(--gold-ink); box-shadow:0 0 0 3px var(--gold-tint); }
.tick { display:flex; gap:12px; align-items:flex-start; margin:0 0 12px; font-size:14.5px; line-height:1.5; color:var(--text); cursor:pointer; }
.tick input { width:22px; height:22px; margin:1px 0 0; flex:0 0 22px; accent-color:var(--ink); }
.err { margin:10px 0 0; color:var(--danger); font-size:14.5px; min-height:1px; }
.err:empty { margin:0; }
.ok-msg { margin:10px 0 0; color:var(--ok); font-size:14.5px; }
.code-row, label.f > .code-row { display:flex; gap:8px; margin:0; }
.code-row input { flex:1; text-transform:uppercase; }
.code-row .btn { min-height:50px; padding:0 16px; font-size:15px; }
.otp { letter-spacing:.4em; font-size:22px !important; text-align:center; font-variant-numeric:tabular-nums; }

/* ---------- My course ---------- */
.hello { display:grid; gap:18px; align-items:end; grid-template-columns:1fr auto; margin-bottom:22px; }
@media (max-width:640px) { .hello { grid-template-columns:1fr; } }
.meter { min-width:220px; }
.meter .row { display:flex; justify-content:space-between; font:600 14px/1 var(--sans); color:var(--ink); margin-bottom:8px; }
.meter .row span { color:var(--muted); font-weight:500; }
.bar { height:8px; border-radius:8px; background:var(--line); overflow:hidden; }
.bar i { display:block; height:100%; width:0; background:var(--gold); border-radius:8px; transition:width .6s var(--ease); }

.continue { display:grid; grid-template-columns:auto 1fr auto; gap:16px; align-items:center; background:var(--ink); color:var(--on-dark); border-radius:var(--r-card); padding:18px 20px; text-decoration:none; margin-bottom:26px; }
.continue:hover { color:var(--on-dark); background:var(--ink-2); }
.continue .play { width:52px; height:52px; border-radius:50%; background:var(--gold); display:grid; place-items:center; }
.continue .play svg { width:20px; height:20px; fill:var(--ink); margin-left:3px; }
.continue small { display:block; font:700 12px/1 var(--sans); letter-spacing:.08em; text-transform:uppercase; color:var(--gold-light); margin-bottom:6px; }
.continue b { display:block; font:700 17px/1.3 var(--sans); color:var(--white); }
.continue .arrow { font-size:22px; color:var(--gold-light); }
@media (max-width:420px) { .continue { grid-template-columns:auto 1fr; } .continue .arrow { display:none; } }

.lessons { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.lessons a { display:grid; grid-template-columns:44px 1fr auto; gap:14px; align-items:center; padding:14px 16px; background:var(--white); border:1px solid var(--line); border-radius:14px; text-decoration:none; color:var(--text-2); transition:border-color .2s, box-shadow .2s; }
.lessons a:hover { border-color:var(--gold-ink); color:var(--text-2); box-shadow:0 8px 22px rgba(11,11,11,.06); }
.num { width:44px; height:44px; border-radius:50%; display:grid; place-items:center; background:var(--cream); border:1px solid var(--gold-tint); font:700 16px/1 var(--sans); color:var(--gold-ink); font-variant-numeric:tabular-nums; }
.lessons .done .num { background:var(--gold); border-color:var(--gold); color:var(--ink); }
.lessons .t { min-width:0; }
.lessons .t b { display:block; font:700 15.5px/1.3 var(--sans); color:var(--ink); }
.lessons .t span { display:block; font-size:13.5px; color:var(--muted); margin-top:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.state { display:flex; flex-direction:column; align-items:flex-end; gap:4px; font:600 12.5px/1.2 var(--sans); color:var(--muted); white-space:nowrap; text-align:right; }
.state .pct { color:var(--ink); }
.pill { display:inline-flex; align-items:center; gap:5px; padding:4px 9px; border-radius:999px; background:var(--paper); color:var(--text-2); }
.pill.on { background:var(--gold-tint); color:var(--gold-deep); }
.pill svg { width:12px; height:12px; }
.access-note { margin:22px 0 0; text-align:center; }

/* ---------- Lesson ---------- */
.crumbs { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:14px; font-size:14px; }
.crumbs a { display:inline-flex; align-items:center; min-height:44px; font-weight:600; text-decoration:none; }
.crumbs a:hover { text-decoration:underline; }
.player { position:relative; border-radius:var(--r-card); overflow:hidden; background:var(--ink); aspect-ratio:16/9; transform:translateZ(0); -webkit-mask-image:-webkit-radial-gradient(white, black); box-shadow:0 24px 60px rgba(11,11,11,.16); }
.player video, .player mux-player { position:absolute; inset:0; display:block; width:100%; height:100%; aspect-ratio:auto; background:var(--ink); --media-accent-color:var(--gold); --media-object-fit:cover; --media-object-position:center; } /* cover: frame and video are both 16:9, so nothing is cut; it closes the 1–2 px gap iPhone Safari leaves */
.player .msg { position:absolute; inset:0; display:grid; place-items:center; padding:20px; text-align:center; color:var(--on-dark); font-size:15px; }
.mark { position:absolute; z-index:2; pointer-events:none; font:600 13px/1 var(--sans); color:rgba(255,255,255,.28); letter-spacing:.02em; text-shadow:0 1px 2px rgba(0,0,0,.35); transition:top 1.2s var(--ease), left 1.2s var(--ease); white-space:nowrap; }
.lesson-head { margin:20px 0 0; display:grid; gap:14px; grid-template-columns:1fr auto; align-items:start; }
@media (max-width:640px) { .lesson-head { grid-template-columns:1fr; } }
.lesson-head h1 { font-size:clamp(26px,4.4vw,36px); }
.coach { margin:8px 0 0; font-size:14.5px; color:var(--muted); }
.coach b { color:var(--ink); }
.lesson-body { margin:22px 0 0; display:grid; gap:14px; grid-template-columns:1.4fr 1fr; align-items:start; }
@media (max-width:760px) { .lesson-body { grid-template-columns:1fr; } }
.prose p { margin:0 0 14px; color:var(--text); text-wrap:pretty; }
.prose p:last-child { margin-bottom:0; }
.wb h2 { font-size:21px; }
.wb .two { display:grid; gap:10px; margin-top:14px; }
.wb .soon { margin:14px 0 0; padding:12px 14px; border-radius:12px; background:var(--cream); border:1px dashed var(--gold-tint); font-size:14px; color:var(--text-2); }
.done-btn.is-done { background:var(--gold-tint); border-color:var(--gold-tint); color:var(--gold-deep); }
.pager { margin:26px 0 0; display:flex; justify-content:space-between; gap:10px; }
.pager a { flex:1; display:block; padding:14px 16px; border:1px solid var(--line); border-radius:14px; background:var(--white); text-decoration:none; font-size:13px; color:var(--muted); min-height:44px; }
.pager a b { display:block; margin-top:4px; font:700 15px/1.3 var(--sans); color:var(--ink); }
.pager a.next { text-align:right; }
.pager a:hover { border-color:var(--gold-ink); }
.pager .gap { flex:1; }

/* ---------- Buy ---------- */
.buy { display:grid; gap:22px; grid-template-columns:1.1fr 1fr; align-items:start; }
@media (max-width:820px) { .buy { grid-template-columns:1fr; } }
.gets { list-style:none; margin:18px 0 0; padding:0; display:grid; gap:12px; }
.gets li { display:grid; grid-template-columns:26px 1fr; gap:12px; color:var(--text); }
.gets .tk { width:26px; height:26px; border-radius:50%; background:var(--gold-tint); display:grid; place-items:center; }
.gets .tk svg { width:14px; height:14px; stroke:var(--gold-deep); fill:none; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.coaches { display:flex; gap:10px; margin:20px 0 0; flex-wrap:wrap; }
.coaches span { padding:7px 12px; border-radius:999px; border:1px solid var(--line); background:var(--white); font:600 13.5px/1 var(--sans); color:var(--ink); }
.price { display:flex; align-items:baseline; gap:10px; margin:0 0 4px; }
.price b { font:800 40px/1 var(--sans); letter-spacing:-0.03em; color:var(--ink); font-variant-numeric:tabular-nums; }
.price s { font-size:18px; color:var(--muted); }
.price .save { padding:4px 9px; border-radius:999px; background:var(--gold-tint); color:var(--gold-deep); font:700 13px/1 var(--sans); }
.pay-note { display:flex; align-items:center; justify-content:center; gap:8px; margin:12px 0 0; font-size:13.5px; color:var(--muted); text-align:center; }
.pay-note svg { width:15px; height:15px; stroke:var(--muted); fill:none; stroke-width:2; }
hr.soft { border:0; border-top:1px solid var(--line); margin:18px 0; }

/* ---------- Admin ---------- */
.stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:18px 0; }
@media (max-width:640px) { .stats { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.stat { background:var(--white); border:1px solid var(--line); border-radius:14px; padding:14px 16px; }
.stat b { display:block; font:800 26px/1 var(--sans); color:var(--ink); font-variant-numeric:tabular-nums; }
.stat span { display:block; margin-top:6px; font-size:13px; color:var(--muted); }
.table-wrap { overflow-x:auto; background:var(--white); border:1px solid var(--line); border-radius:14px; }
table { width:100%; border-collapse:collapse; font-size:14px; }
th, td { padding:11px 12px; text-align:left; border-bottom:1px solid var(--line); white-space:nowrap; }
th { font:700 12px/1.2 var(--sans); letter-spacing:.05em; text-transform:uppercase; color:var(--muted); background:var(--paper); }
tr:last-child td { border-bottom:0; }
td.dots { letter-spacing:2px; font-size:13px; }
.dot { display:inline-block; width:10px; height:10px; border-radius:50%; background:var(--line); margin-right:3px; }
.dot.on { background:var(--gold); }
.dot.half { background:var(--gold-tint); }

/* ---------- simple pages ---------- */
.center { text-align:center; }
.icon-ok { width:64px; height:64px; border-radius:50%; background:var(--gold-tint); display:grid; place-items:center; margin:0 auto 18px; }
.icon-ok svg { width:30px; height:30px; stroke:var(--gold-deep); fill:none; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.legal h2 { margin-top:28px; font-size:21px; }
.legal p, .legal li { color:var(--text); }
.draft { padding:10px 14px; border-radius:12px; background:var(--cream); border:1px solid var(--gold-tint); font-size:14px; }
footer.foot { border-top:1px solid var(--line); padding:22px 0 30px; font-size:13.5px; color:var(--muted); }
footer.foot .wrap { display:flex; flex-wrap:wrap; gap:8px 18px; justify-content:space-between; }
footer.foot nav { display:flex; flex-wrap:wrap; gap:4px 16px; }
footer.foot a { color:var(--muted); display:inline-flex; min-height:40px; align-items:center; }
.spin { width:22px; height:22px; border:3px solid var(--gold-tint); border-top-color:var(--gold-ink); border-radius:50%; animation:spin 1s linear infinite; margin:0 auto; }
@keyframes spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { transition:none !important; animation:none !important; } }

/* =====================================================================
   Redesign v2 (10 Nov 2026) — references from Screenrove: Codecademy "My learning"
   (course rows + progress), Skillshare "Lessons in this class" (player + lesson list,
   dark current row), Strut "Research brief" (calm editorial writing page, outline at left).
   Our look stays: black, white, warm paper, one gold.
   ===================================================================== */

/* header: account menu */
.navlink { display:inline-flex; align-items:center; min-height:44px; padding:0 6px; font:600 14px/1 var(--sans); color:var(--ink); text-decoration:none; }
.navlink:hover { color:var(--gold-ink); }
.acct { position:relative; }
.acct summary { list-style:none; cursor:pointer; display:grid; place-items:center; width:44px; height:44px; }
.acct summary::-webkit-details-marker { display:none; }
.avatar { width:34px; height:34px; border-radius:50%; display:grid; place-items:center; background:var(--ink); color:var(--gold-light); font:700 14px/1 var(--sans); }
.acct[open] .avatar { box-shadow:0 0 0 3px var(--gold-tint); }
.acct-menu { position:absolute; right:0; top:50px; z-index:30; min-width:220px; padding:8px; background:var(--white); border:1px solid var(--line); border-radius:14px; box-shadow:0 18px 40px rgba(11,11,11,.14); }
.acct-menu .acct-email { margin:4px 10px 8px; font-size:13px; color:var(--muted); word-break:break-all; }
.acct-menu a, .acct-menu button { display:flex; width:100%; min-height:42px; align-items:center; padding:0 10px; border:0; border-radius:10px; background:none; font:600 14px/1 var(--sans); color:var(--ink); text-decoration:none; cursor:pointer; text-align:left; }
.acct-menu a:hover, .acct-menu button:hover { background:var(--paper); color:var(--ink); }

/* ---------- course home ---------- */
body.home main { padding-top:0; }
.hero { background:var(--ink); color:var(--on-dark); padding:34px 0 30px; }
.kicker.on-dark { color:var(--gold-light); }
.hero-h { color:var(--white); font-size:clamp(32px,6vw,52px); }
.hero-h .g { color:var(--gold); }
.hero-sub { margin:12px 0 0; max-width:56ch; font-size:16.5px; color:var(--on-dark); }
.segs { display:grid; grid-template-columns:repeat(12,1fr); gap:5px; margin:24px 0 12px; }
.segs i { height:8px; border-radius:4px; background:rgba(255,255,255,.14); }
.segs i.half { background:linear-gradient(90deg,var(--gold) 50%,rgba(255,255,255,.14) 50%); }
.segs i.on { background:var(--gold); }
.hero-stats { display:flex; flex-wrap:wrap; gap:6px 22px; font-size:14px; color:var(--on-dark); }
.hero-stats b { color:var(--white); font-weight:700; }
.resume { display:grid; grid-template-columns:auto 1fr auto; gap:16px; align-items:center; margin-top:22px; padding:16px 18px; border-radius:16px; background:var(--ink-2); border:1px solid rgba(212,175,55,.35); text-decoration:none; color:var(--on-dark); transition:border-color .2s, transform .2s var(--ease); }
.resume:hover { border-color:var(--gold); color:var(--on-dark); transform:translateY(-1px); }
.resume-play { width:52px; height:52px; border-radius:50%; background:var(--gold); display:grid; place-items:center; }
.resume-play svg { width:20px; height:20px; fill:var(--ink); margin-left:3px; }
.resume-t small { display:block; font:700 12px/1 var(--sans); letter-spacing:.08em; text-transform:uppercase; color:var(--gold-light); margin-bottom:6px; }
.resume-t b { display:block; font:700 17px/1.3 var(--sans); color:var(--white); }
.resume-go { font-size:22px; color:var(--gold-light); }
@media (max-width:420px) { .resume { grid-template-columns:auto 1fr; } .resume-go { display:none; } }

.course { padding-top:8px; }
.block { margin-top:28px; }
.block-h { display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:12px; }
.block-h h2 { margin:0; }
.lessons { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.lrow { display:grid; grid-template-columns:40px 1fr auto; gap:14px; align-items:center; padding:14px 16px; background:var(--white); border:1px solid var(--line); border-radius:14px; text-decoration:none; color:var(--text-2); transition:border-color .2s, box-shadow .2s, transform .2s var(--ease); }
.lrow:hover { border-color:var(--gold-ink); color:var(--text-2); box-shadow:0 8px 22px rgba(11,11,11,.06); transform:translateY(-1px); }
.lnum { width:40px; height:40px; border-radius:50%; display:grid; place-items:center; background:var(--paper); font:700 15px/1 var(--sans); color:var(--ink); font-variant-numeric:tabular-nums; }
.lnum svg { width:18px; height:18px; }
.lrow.is-done .lnum { background:var(--gold); color:var(--ink); }
.lrow.is-next { background:var(--ink); border-color:var(--ink); color:var(--on-dark); }
.lrow.is-next .lnum { background:var(--gold); color:var(--ink); }
.lrow.is-next .lt b { color:var(--white); }
.lrow.is-next .lt span { color:var(--on-dark); }
.lt { min-width:0; }
.lt b { display:block; font:700 15.5px/1.3 var(--sans); color:var(--ink); }
.lt span { display:block; margin-top:3px; font-size:13.5px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.lmeta { display:flex; flex-direction:column; align-items:flex-end; gap:5px; }
.st { display:inline-flex; align-items:center; gap:4px; font:600 12.5px/1 var(--sans); color:var(--ink); white-space:nowrap; }
.st svg { width:13px; height:13px; }
.st-done { color:var(--gold-deep); }
.st-next { color:var(--gold-light); }
.wbp { display:inline-flex; padding:4px 9px; border-radius:999px; background:var(--paper); font:600 12px/1.2 var(--sans); color:var(--text-2); white-space:nowrap; }
.wbp.on { background:var(--gold-tint); color:var(--gold-deep); }
.lrow.is-next .wbp { background:rgba(255,255,255,.1); color:var(--on-dark); }

/* ---------- lesson page ---------- */
.lsn { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:26px; align-items:start; }
@media (max-width:900px) { .lsn { grid-template-columns:1fr; } }
.lsn .lesson-head { margin:22px 0 0; }
.lsn .lesson-head .kicker { margin-bottom:8px; }
.lsn-text { margin:18px 0 0; max-width:65ch; }
.lsn-text p { font-size:16.5px; }
.wbcard { margin:24px 0 0; padding:22px; border-radius:18px; background:var(--white); border:1px solid var(--line); }
.wbcard-top { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.wbcard-top .kicker { margin:0; }
.wbcard h2 { margin:10px 0 6px; }
.wbcard .small { margin:0; max-width:56ch; }
.wbcard-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.wbcard-actions .btn-gold { flex:1 1 220px; }
.wb-tickline { margin-top:6px; font-weight:500; font-size:13.5px; color:var(--muted); }
.lsn-side { position:sticky; top:16px; background:var(--white); border:1px solid var(--line); border-radius:18px; padding:14px; max-height:calc(100vh - 32px); overflow:auto; }
@media (max-width:900px) { .lsn-side { position:static; max-height:none; } }
.side-h { margin:4px 6px 10px; font:700 12px/1 var(--sans); letter-spacing:.08em; text-transform:uppercase; color:var(--gold-ink); }
.pls { list-style:none; margin:0; padding:0; display:grid; gap:2px; }
.pl { display:grid; grid-template-columns:28px 1fr; gap:10px; align-items:center; min-height:44px; padding:6px 8px; border-radius:10px; text-decoration:none; color:var(--text); font-size:14px; line-height:1.3; }
.pl:hover { background:var(--paper); color:var(--ink); }
.pl-n { width:28px; height:28px; border-radius:50%; display:grid; place-items:center; background:var(--paper); font:700 12.5px/1 var(--sans); color:var(--ink); }
.pl-n svg { width:13px; height:13px; }
.pl.is-done .pl-n { background:var(--gold); }
.pl.is-here { background:var(--ink); color:var(--white); }
.pl.is-here .pl-n { background:var(--gold); color:var(--ink); }

/* ---------- interactive workbook (editorial) ---------- */
body.wb-page { background:#fbfaf6; }
body.wb-page main { padding:0 0 64px; }
.wb-top { position:sticky; top:0; z-index:20; background:rgba(251,250,246,.94); backdrop-filter:saturate(1.2) blur(8px); border-bottom:1px solid var(--line); }
.wb-top-in { display:flex; align-items:center; gap:16px; height:56px; }
.wb-back { font:600 14px/1 var(--sans); text-decoration:none; white-space:nowrap; min-height:44px; display:inline-flex; align-items:center; }
.wb-meter { flex:1; display:flex; align-items:center; gap:12px; min-width:0; }
.wb-meter .bar { flex:1; height:6px; }
.wb-meter span { font:600 13px/1 var(--sans); color:var(--text-2); white-space:nowrap; }
.wb-saved { font:600 12.5px/1 var(--sans); color:var(--ok); white-space:nowrap; min-width:58px; text-align:right; }
@media (max-width:520px) { .wb-meter span { display:none; } }
.wbl { display:grid; grid-template-columns:230px minmax(0,1fr); gap:40px; padding-top:34px; max-width:1060px; }
@media (max-width:900px) { .wbl { grid-template-columns:1fr; gap:0; padding-top:24px; } .wb-outline { display:none; } }
.wb-outline { position:sticky; top:80px; align-self:start; }
.wb-outline ol { list-style:none; margin:0; padding:0; display:grid; gap:2px; }
.wb-outline a { display:grid; grid-template-columns:14px 1fr; gap:10px; align-items:start; padding:8px 6px; border-radius:8px; font-size:13.5px; line-height:1.35; color:var(--text-2); text-decoration:none; }
.wb-outline a:hover { background:var(--paper); color:var(--ink); }
.ol-dot { width:10px; height:10px; margin-top:4px; border-radius:50%; border:2px solid var(--line); }
.wb-outline a.some .ol-dot { border-color:var(--gold); }
.wb-outline a.done .ol-dot { border-color:var(--gold); background:var(--gold); }
.wb-main { max-width:700px; }
.wb-head h1 { font-size:clamp(32px,5.6vw,50px); }
.wb-meta { margin:12px 0 0; font-size:14px; color:var(--muted); }
.wb-body { margin-top:26px; }
.wb-body p, .wb-body li { color:var(--text); font-size:17px; line-height:1.7; }
.wb-body > p:first-of-type { margin-top:0; }
.wb-sub { display:none; }
.wb-h2 { scroll-margin-top:80px; margin:44px 0 10px; padding-top:22px; border-top:1px solid var(--line); font:700 clamp(23px,3.4vw,28px)/1.2 var(--serif); color:var(--ink); }
.wb-h3 { margin:26px 0 6px; font:700 17px/1.35 var(--sans); color:var(--ink); }
.wb-hr { display:none; }
.wb-q { margin:18px 0; padding:16px 18px; border-radius:14px; background:var(--cream); color:var(--ink); font-size:17px; line-height:1.75; }
.wb-ta { display:block; width:100%; min-height:64px; margin:10px 0 18px; padding:14px 16px; border:1px solid transparent; border-bottom:2px solid var(--line); border-radius:12px 12px 4px 4px; background:var(--white); font:400 17px/1.6 var(--sans); color:var(--ink); resize:none; box-shadow:0 1px 0 rgba(11,11,11,.02); transition:border-color .2s, box-shadow .2s; }
.wb-ta::placeholder { color:#b3aea2; }
.wb-ta:hover { border-bottom-color:var(--gold-tint); }
.wb-ta:focus, .wb-in:focus, .wb-cell:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-tint); }
.wb-in { display:inline-block; width:min(240px,62%); min-height:40px; margin:2px 4px; padding:2px 8px; border:0; border-bottom:2px solid var(--gold); border-radius:6px 6px 0 0; background:var(--white); font:600 16px/1.3 var(--sans); color:var(--ink); vertical-align:baseline; }
.wb-ticks { border:0; margin:12px 0 20px; padding:0; display:grid; gap:10px; }
.wb-tick { position:relative; display:flex; gap:14px; align-items:flex-start; padding:14px 16px; background:var(--white); border:1px solid var(--line); border-radius:14px; cursor:pointer; color:var(--text); font-size:16px; line-height:1.55; transition:border-color .2s, background .2s; }
.wb-tick:hover { border-color:var(--gold-ink); }
.wb-tick:has(input:checked) { border-color:var(--ink); background:var(--cream); color:var(--ink); }
.wb-tick input { appearance:none; -webkit-appearance:none; flex:0 0 22px; width:22px; height:22px; margin:1px 0 0; border:2px solid var(--line); border-radius:6px; background:var(--white); display:grid; place-items:center; transition:background .15s, border-color .15s; }
.wb-tick input[type=radio] { border-radius:50%; }
.wb-tick input:checked { background:var(--ink); border-color:var(--ink); }
.wb-tick input:checked::after { content:''; width:10px; height:6px; border:2.5px solid var(--gold); border-top:0; border-right:0; transform:rotate(-45deg) translate(1px,-1px); }
.wb-tick input[type=radio]:checked::after { width:8px; height:8px; border:0; border-radius:50%; background:var(--gold); transform:none; }
.wb-tw { overflow-x:auto; margin:14px 0 22px; background:var(--white); border:1px solid var(--line); border-radius:14px; }
.wb-table { font-size:14.5px; }
.wb-table th { background:var(--paper); color:var(--ink); letter-spacing:0; text-transform:none; font:700 13px/1.35 var(--sans); }
.wb-table th, .wb-table td { white-space:normal; vertical-align:top; min-width:96px; padding:10px 12px; }
.wb-table td { color:var(--text); line-height:1.45; }
.wb-cell { width:100%; min-height:40px; padding:8px 10px; border:1px solid var(--line); border-radius:9px; font:400 16px/1.3 var(--sans); background:#fdfcf9; color:var(--ink); }
.wb-num { text-align:center; min-width:52px; font-weight:700; }
.wb-total { display:block; min-width:52px; text-align:center; font:800 18px/40px var(--sans); color:var(--gold-deep); background:var(--cream); border-radius:9px; }
.wb-list { padding-left:22px; }
.wb-finish { margin-top:48px; padding:26px 24px; border-radius:20px; background:var(--ink); color:var(--on-dark); }
.wb-finish h2 { color:var(--white); margin-bottom:6px; }
.wb-finish .small { color:var(--on-dark); margin:0; }
.wb-finish .wb-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.wb-finish .btn-line { background:transparent; color:var(--white); border-color:rgba(255,255,255,.3); }
.wb-finish .btn-line:hover { border-color:var(--gold); color:var(--white); }
@media print {
  .ribbon, header.top, footer.foot, .wb-top, .wb-outline, .wb-finish, .crumbs { display:none !important; }
  body, body.wb-page { background:#fff; }
  .wbl { display:block; padding:0; }
  .wb-ta { border:1px solid #bbb; height:auto !important; }
  .wb-h2 { break-after:avoid; }
}

@media (max-width:560px) { .who .navlink[href="index.html"] { display:none; } }
.navlink { white-space:nowrap; }
.wbcard-actions { display:grid; grid-template-columns:1fr auto; }
.wbl > *, .lsn > * { min-width:0; }
@media (max-width:900px) { .wbl { grid-template-columns:minmax(0,1fr); } .lsn { grid-template-columns:minmax(0,1fr); } }
.wb-q .wb-in { width:min(200px,70%); }
.wb-swipe { display:none; margin:14px 0 -6px; font:600 12.5px/1.3 var(--sans); color:var(--gold-ink); }
@media (max-width:600px) { .wb-swipe { display:block; } }

/* =====================================================================
   Workbook v3 — one question at a time (Faz, 10 Nov 2026)
   ===================================================================== */
.qwrap { display:grid; grid-template-columns:220px minmax(0,1fr); gap:40px; padding-top:30px; max-width:1040px; }
.qwrap > * { min-width:0; }
@media (max-width:900px) { .qwrap { grid-template-columns:minmax(0,1fr); gap:0; padding-top:18px; } }
.qmain { max-width:660px; width:100%; }
.wb-outline a.here { background:var(--ink); color:var(--white); }
.wb-outline a.here .ol-dot { border-color:var(--gold); }
.qcard { min-height:52vh; }
.qcard[hidden] { display:none !important; }
.qcard.in-r { animation:qin-r .32s var(--ease) both; }
.qcard.in-l { animation:qin-l .32s var(--ease) both; }
@keyframes qin-r { from { opacity:0; transform:translateX(28px); } to { opacity:1; transform:none; } }
@keyframes qin-l { from { opacity:0; transform:translateX(-28px); } to { opacity:1; transform:none; } }

.q-act { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; margin:0 0 18px; font:600 13.5px/1.35 var(--sans); color:var(--text-2); }
.q-act span { font:700 11.5px/1 var(--sans); letter-spacing:.09em; text-transform:uppercase; color:var(--gold-ink); }
.q-lead > * { margin:0 0 12px; }
.q-lead p, .q-lead li { font-size:15.5px; line-height:1.65; color:var(--text-2); }
.q-lead .wb-h3 { margin:0 0 10px; font:700 13px/1.3 var(--sans); letter-spacing:.06em; text-transform:uppercase; color:var(--gold-ink); }
.q-lead .q-question, .q-lead p.q-question { margin:18px 0 6px; font:700 clamp(22px,4.6vw,28px)/1.3 var(--sans); letter-spacing:-0.015em; color:var(--ink); text-wrap:balance; }
.q-lead blockquote.q-question { padding:0; background:none; font-style:normal; }
.q-lead .wb-q { font-size:16.5px; }
.q-fields { margin-top:14px; }
.q-fields .wb-ta { min-height:140px; font-size:18px; }
.q-fields .wb-ticks { margin-top:4px; }
.q-fields .wb-tick { font-size:17px; padding:16px 18px; }
.q-read .q-lead p { font-size:17.5px; color:var(--text); }
.q-read .q-lead { padding:22px; background:var(--white); border:1px solid var(--line); border-radius:18px; }
.q-read .q-lead > :last-child { margin-bottom:0; }

.q-start h1 { font-size:clamp(34px,6vw,52px); margin-bottom:14px; }
.q-intro p { font-size:17px; line-height:1.7; color:var(--text); }
.q-intro em, .q-intro i { color:var(--gold-ink); }
.q-facts { list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin:20px 0 14px; padding:0; }
.q-facts li { padding:8px 14px; border-radius:999px; background:var(--white); border:1px solid var(--line); font-size:14px; color:var(--text-2); }
.q-facts b { color:var(--ink); }
.q-start-actions { margin-top:22px; }
.q-start-actions .btn { min-width:220px; }

.qnav { position:sticky; bottom:0; z-index:15; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; margin-top:26px; padding:14px 0 calc(14px + env(safe-area-inset-bottom)); background:linear-gradient(to top, #fbfaf6 75%, rgba(251,250,246,0)); }
.qnav[hidden] { display:none; }
.qnav .btn-gold { min-width:140px; }
.qnav #back[disabled] { visibility:hidden; }
.qskip { justify-self:center; font-weight:500; color:var(--muted); font-size:14px; }
.qhint { margin:4px 0 0; font-size:12.5px; color:var(--warm-muted); text-align:right; }
@media (max-width:600px) { .qhint { display:none; } .qnav .btn-gold { min-width:0; padding:0 18px; } }

.q-finish { text-align:center; padding-top:30px; }
.q-finish h2 { font-size:clamp(26px,4.8vw,34px); }
.q-sum { font-size:17px; color:var(--text); }
.q-fin-actions { display:grid; gap:10px; max-width:360px; margin:24px auto 14px; }

/* "See all my answers" = every screen stacked, for reading and printing */
body.wb-review .qcard { min-height:0; animation:none; margin-bottom:28px; padding-bottom:22px; border-bottom:1px solid var(--line); }
body.wb-review .qnav, body.wb-review .qhint, body.wb-review .q-finish .q-fin-actions #reviewBtn { display:none; }
@media print {
  .qnav, .qhint, .q-fin-actions, .wb-outline { display:none !important; }
  .qwrap { display:block; padding:0; }
  .qcard { min-height:0; break-inside:avoid-page; }
}
@media (prefers-reduced-motion:reduce) { .qcard.in-r, .qcard.in-l { animation:none; } }
.qmain { overflow-x:clip; }
.q-lead .q-question.q-long { font-size:clamp(18px,3.6vw,21px); line-height:1.45; font-weight:650; }
.q-ref { margin:10px 0 4px; border:1px solid var(--line); border-radius:12px; background:var(--white); }
.q-ref summary { cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; min-height:46px; padding:0 14px; font:600 14.5px/1 var(--sans); color:var(--ink); }
.q-ref summary::-webkit-details-marker { display:none; }
.q-ref summary::after { content:'+'; font-size:20px; color:var(--gold-ink); }
.q-ref[open] summary::after { content:'–'; }
.q-ref .wb-tw { margin:0 10px 12px; }
.q-ref .wb-swipe { margin:0 14px 8px; }
/* tables you fill in: one card per row on phones */
@media (max-width:600px) {
  .wb-table.has-in, .wb-table.has-in tbody, .wb-table.has-in tr, .wb-table.has-in td { display:block; width:100%; }
  .wb-table.has-in thead { display:none; }
  .wb-tw:has(.has-in) { overflow:visible; background:none; border:0; }
  .wb-tw:has(.has-in) + * { margin-top:0; }
  .wb-table.has-in tr { margin:0 0 12px; padding:12px 14px; background:var(--white); border:1px solid var(--line); border-radius:14px; }
  .wb-table.has-in td { min-width:0; padding:6px 0; border:0; display:grid; grid-template-columns:42% 1fr; gap:10px; align-items:center; }
  .wb-table.has-in td::before { content:attr(data-label); font:600 13px/1.3 var(--sans); color:var(--text-2); }
  .wb-table.has-in td:first-child { display:block; padding:0 0 6px; font:700 15px/1.3 var(--sans); color:var(--ink); }
  .wb-table.has-in td:first-child::before { display:none; }
  .wb-table.has-in .wb-num, .wb-table.has-in .wb-total { max-width:90px; }
  .q-fields .wb-swipe, .wb-body .wb-tw:has(.has-in) ~ .wb-swipe { display:none; }
  .wb-swipe:has(+ .wb-tw .has-in) { display:none; }
}
@media (max-width:600px) { .q-lead > .wb-swipe { display:none; } }
.q-subl { margin:0 0 6px; font:700 13px/1.3 var(--sans); letter-spacing:.06em; text-transform:uppercase; color:var(--gold-ink); }

/* =====================================================================
   Workbook v4 — coached (10 Nov 2026, after the impeccable critique)
   ===================================================================== */
[hidden] { display:none !important; }
.wb-back { gap:6px; }
.wb-back svg { width:18px; height:18px; }
.wb-meter { flex-direction:column; align-items:stretch; gap:6px; }
.wb-meter span, .wb-meter #stepTxt { display:block !important; font:600 12.5px/1.2 var(--sans); color:var(--text-2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.wb-meter .bar { flex:none; height:6px; }
.wb-meter .bar i { transition:width .45s var(--ease); }

.q-start .wb-meta { margin:10px 0 18px; }
.q-start .q-start-actions { margin:22px 0 0; }
.q-start .q-start-actions .btn { min-width:0; width:100%; max-width:340px; gap:10px; }
.q-start .q-start-actions .btn svg, .qgo svg { width:18px; height:18px; }
.q-facts { margin:18px 0 0; font-size:14.5px; line-height:1.55; color:var(--text-2); max-width:56ch; }
.q-intro p:first-child i, .q-intro p:first-child em { font-style:italic; }

.q-tag { display:inline-block; margin:0 0 10px !important; padding:5px 11px; border-radius:999px; background:var(--white); border:1px solid var(--line); font:600 13px/1.2 var(--sans) !important; letter-spacing:0 !important; text-transform:none !important; color:var(--ink) !important; }
.q-lead p.q-question { outline:none; }
.q-lead p.q-question:focus-visible { outline:3px solid var(--gold); outline-offset:4px; border-radius:6px; }

.qnav { grid-template-columns:auto 1fr auto; }
.qback { width:50px; padding:0; }
.qback svg { width:20px; height:20px; }
.qgo { min-width:150px; gap:8px; }
.qgo[disabled] { opacity:.45; box-shadow:none; }
.spin.sm { display:inline-block; width:16px; height:16px; border-width:2px; margin:0; vertical-align:-3px; }

/* the tick you chose */
.wb-tick.on { border-color:var(--ink); background:var(--cream); color:var(--ink); }

/* score chips (0-3) with the scale's own words under them */
.chips { display:flex; gap:6px; flex-wrap:nowrap; }
.chip { flex:1 0 40px; min-width:40px; min-height:44px; border:1px solid var(--line); border-radius:10px; background:var(--white); font:700 16px/1 var(--sans); color:var(--ink); cursor:pointer; transition:background .15s, border-color .15s, transform .15s var(--ease); font-variant-numeric:tabular-nums; }
.chip:hover { border-color:var(--gold-ink); }
.chip[aria-pressed="true"] { background:var(--ink); border-color:var(--ink); color:var(--gold-light); }
.chip:active { transform:scale(.96); }
.rub { display:block; margin-top:6px; font-size:12.5px; line-height:1.4; color:var(--text-2); min-height:1em; }
.rub:empty { display:none; }
.wb-coltotal { display:block; text-align:center; font:800 17px/40px var(--sans); color:var(--gold-deep); }
.wb-table td.wb-empty { padding:0; }
@media (max-width:600px) {
  .wb-table.has-in td:has(.chips) { grid-template-columns:28% 1fr; }
  .wb-table.has-in td:has(.chips) .rub { grid-column:2; }
  .wb-table.has-in tr.wb-totrow { background:var(--cream); border-color:var(--gold-tint); }
  .wb-table.has-in tr.wb-totrow td.wb-empty { display:none; }
}

/* the coaching note */
.q-fb { margin:18px 0 0; padding:16px 18px; border-radius:16px; background:var(--white); border:1px solid var(--line); animation:fbin .35s var(--ease) both; }
.q-fb.s3 { border-color:var(--gold); background:linear-gradient(180deg, #fffaf0, var(--white)); }
.q-fb.s1 { background:var(--paper); }
.fb-head { display:flex; align-items:center; gap:10px; margin-bottom:6px; }
.fb-head b { font:700 16px/1.2 var(--sans); color:var(--ink); }
.fb-src { margin-left:auto; padding:3px 9px; border-radius:999px; background:var(--paper); font:600 11.5px/1.3 var(--sans); color:var(--text-2); }
.q-fb p { margin:6px 0 0; font-size:15.5px; line-height:1.55; color:var(--text); }
.fb-nudge { color:var(--ink) !important; font-weight:600; }
.fb-try span { font-weight:700; color:var(--gold-ink); }
.fb-improve { margin-top:6px; font-size:14px; }
.stars { display:inline-flex; gap:2px; }
.stars i { width:20px; height:20px; display:inline-grid; }
.stars svg { width:20px; height:20px; fill:var(--line); }
.stars i.on svg { fill:var(--gold); }
.q-fb.pop .stars i.on { animation:starpop .5s var(--ease) both; }
.q-fb.pop .stars i.on:nth-child(2) { animation-delay:.08s; }
.q-fb.pop .stars i.on:nth-child(3) { animation-delay:.16s; }
@keyframes fbin { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
@keyframes starpop { 0% { transform:scale(.4); opacity:0; } 60% { transform:scale(1.25); opacity:1; } 100% { transform:scale(1); } }

/* finish */
.q-finish h2 { margin:4px 0 16px; }
.fin-stats { display:grid; grid-template-columns:1fr 1fr; gap:10px; max-width:420px; margin:0 auto 18px; }
.fin-stats p { margin:0; padding:14px; border-radius:14px; background:var(--white); border:1px solid var(--line); }
.fin-stats b { display:block; font:800 28px/1 var(--sans); color:var(--ink); font-variant-numeric:tabular-nums; }
.fin-stats span { display:block; margin-top:6px; font-size:13px; color:var(--text-2); }
.fin-score, .fin-skip { max-width:420px; margin:0 auto 18px; padding:16px 18px; border-radius:16px; background:var(--white); border:1px solid var(--line); text-align:left; }
.fin-h { margin:0 0 10px; font:700 15px/1.2 var(--sans); color:var(--ink); }
.fin-bar { display:grid; grid-template-columns:28px 1fr auto; gap:10px; align-items:center; margin:8px 0; font:700 14px/1 var(--sans); color:var(--ink); }
.fin-bar .bar { height:10px; }
.fin-bar b { font:600 13px/1 var(--sans); color:var(--text-2); font-variant-numeric:tabular-nums; }
.fin-bar.low .bar i { background:var(--gold-deep); }
.fin-skip ul { list-style:none; margin:0; padding:0; display:grid; gap:2px; }
.fin-skip .linkbtn { min-height:40px; font-weight:500; font-size:14px; text-align:left; white-space:normal; }
@media (prefers-reduced-motion:reduce) { .q-fb, .q-fb.pop .stars i.on { animation:none; } }

/* coach photos (their LinkedIn photos, same as the coach preview pages) */
.face { display:block; width:100%; height:100%; border-radius:50%; object-fit:cover; background:var(--paper); }
.lnum.has-face, .pl-n.has-face { position:relative; padding:0; background:var(--paper); overflow:visible; box-shadow:0 0 0 2px var(--white), 0 0 0 3px var(--line); }
.lnum.has-face .face, .pl-n.has-face .face { border-radius:50%; }
.lrow.is-next .lnum.has-face { box-shadow:0 0 0 2px var(--ink), 0 0 0 4px var(--gold); }
.lrow.is-done .lnum.has-face { background:var(--paper); box-shadow:0 0 0 2px var(--white), 0 0 0 3px var(--gold); }
.pl.is-here .pl-n.has-face { box-shadow:0 0 0 2px var(--ink), 0 0 0 3px var(--gold); }
.face-tick { position:absolute; right:-3px; bottom:-3px; width:18px; height:18px; border-radius:50%; background:var(--gold); color:var(--ink); display:grid; place-items:center; box-shadow:0 0 0 2px var(--white); }
.face-tick svg { width:11px; height:11px; }
.coach-line { display:flex; align-items:center; gap:10px; margin:10px 0 0; font-size:14.5px; color:var(--muted); }
.coach-line b { color:var(--ink); }
.face.sm { width:32px; height:32px; flex:0 0 32px; box-shadow:0 0 0 2px var(--gold-tint); }
.coaches span { display:inline-flex; align-items:center; gap:8px; padding:5px 12px 5px 5px; }
.coaches .face { width:28px; height:28px; flex:0 0 28px; }

/* notices + first-visit guide on the course page (10 Nov 2026) */
.notice { display:grid; grid-template-columns:1fr auto; gap:2px 12px; align-items:center; margin:0 0 12px; padding:14px 16px; border-radius:var(--r-card); background:var(--white); border:1px solid var(--line); color:var(--text); text-decoration:none; }
.notice b { color:var(--ink); font-weight:700; }
.notice span { grid-column:1; font-size:14.5px; }
.notice .notice-go { grid-column:2; grid-row:1 / span 2; font-size:22px; color:var(--gold-ink); }
.notice-gold { border-color:var(--gold); background:linear-gradient(180deg, var(--cream), var(--white)); }
.notice-gold:hover { color:var(--text); border-color:var(--gold-head); }
.notice-warn { border-color:#e5c9a5; background:#fff7ec; }
.guide { margin:0 0 18px; padding:18px; border-radius:var(--r-card); background:var(--white); border:1px solid var(--line); }
.guide-h { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.guide-h h2 { margin:0; font:700 20px/1.2 var(--serif); color:var(--ink); }
.guide-steps { list-style:none; counter-reset:g; margin:14px 0 0; padding:0; display:grid; gap:12px; }
.guide-steps li { counter-increment:g; display:grid; grid-template-columns:32px 1fr; gap:2px 10px; }
.guide-steps li::before { content:counter(g); grid-row:1 / span 2; width:28px; height:28px; border-radius:50%; background:var(--gold-tint); color:var(--gold-deep); font:700 14px/28px var(--sans); text-align:center; }
.guide-steps b { color:var(--ink); }
.guide-steps span { grid-column:2; font-size:14.5px; color:var(--text); }
@media (min-width:760px) { .guide-steps { grid-template-columns:repeat(3,1fr); } }
/* lesson page: up next + was this useful (10 Nov 2026) */
.upnext { position:absolute; inset:0; z-index:5; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:16px; text-align:center; background:rgba(11,11,11,.86); color:#fff; }
.upnext small { color:var(--on-dark); font-size:13px; letter-spacing:.06em; text-transform:uppercase; }
.upnext b { font:700 clamp(17px,3.6vw,22px)/1.3 var(--serif); max-width:440px; }
.upnext-row { display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-top:6px; }
.upnext .btn-line { background:transparent; color:#fff; border-color:rgba(255,255,255,.4); }
.useful { margin:22px 0 0; padding:16px 18px; border-radius:var(--r-card); background:var(--white); border:1px solid var(--line); }
.useful-q { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.useful-q p { margin:0; font-weight:600; color:var(--ink); }
.useful-btns { display:flex; gap:8px; }
.useful-btns button { min-height:44px; padding:0 16px; border-radius:999px; border:1px solid var(--line); background:var(--white); font:600 15px var(--sans); color:var(--ink); cursor:pointer; }
.useful-btns button[aria-pressed="true"] { background:var(--gold-tint); border-color:var(--gold); }
.useful textarea { width:100%; min-height:84px; margin:12px 0 8px; padding:10px 12px; border:1px solid var(--line); border-radius:var(--r-btn); font:400 16px/1.5 var(--sans); resize:vertical; }

/* Ask Ryan (10 Nov 2026, OD-358): header link on wide screens only (the account menu has it on phones) */
.nav-wide { display:none; }
@media (min-width:640px) { .nav-wide { display:inline-flex; } }
.ask-block .small { margin:0; }
.ask-line { margin:18px 0 0; }
.ask-line { display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; }

/* Ask Ryan AI (12 Nov 2026): one look everywhere, black with a gold sparkle, the AI sign people already know.
   Black stands apart from the gold course buttons, so it is not skipped as "another lesson card". */
.i-ai { width:18px; height:18px; flex:0 0 18px; }
.ai-pill { display:inline-flex; align-items:center; gap:7px; min-height:40px; padding:0 14px 0 11px; border-radius:999px; background:var(--ink); color:var(--white) !important; font:600 14.5px/1 var(--sans); text-decoration:none; }
.ai-pill .i-ai { color:var(--gold-light); }
.ai-pill:hover { background:var(--ink-2); color:var(--white) !important; }
.ai-pill:hover .i-ai { transform:rotate(18deg) scale(1.08); }
.i-ai { transition:transform .25s var(--ease); }
.ai-card { display:flex; align-items:center; gap:14px; margin:0 0 10px; padding:14px 16px; border-radius:var(--r-card); background:var(--ink); color:var(--white); text-decoration:none; }
.ai-card:hover { background:var(--ink-2); color:var(--white); }
.ai-card:hover .i-ai { transform:rotate(18deg) scale(1.08); }
.ai-badge { display:grid; place-items:center; width:44px; height:44px; flex:0 0 44px; border-radius:50%; background:rgba(225,194,95,.14); border:1px solid rgba(225,194,95,.45); color:var(--gold-light); }
.ai-badge .i-ai { width:24px; height:24px; flex-basis:24px; }
.ai-txt { display:grid; gap:2px; min-width:0; }
.ai-txt b { font-weight:700; font-size:16px; color:var(--white); }
.ai-txt b em { margin-left:6px; padding:2px 7px; border-radius:999px; background:var(--gold-light); color:var(--ink); font:800 11px/1.4 var(--sans); font-style:normal; letter-spacing:.06em; vertical-align:2px; }
.ai-txt > span { font-size:14px; color:#d9d6cc; }
.ai-go { margin-left:auto; font-size:20px; color:var(--gold-light); }
.acct-ai { display:flex !important; align-items:center; gap:8px; }
.acct-ai .i-ai { color:var(--gold-ink); }
@media (prefers-reduced-motion:reduce) { .i-ai { transition:none; } }
.msg a { color:inherit; font-weight:600; }

/* Free half-hour call form (10 Nov 2026, OD-359) */
.call-form fieldset { border:0; padding:0; margin:0 0 18px; min-width:0; }
.call-form legend { padding:0; margin:0 0 8px; font:600 14px/1.3 var(--sans); color:var(--ink); }
.call-form .opt { display:flex; gap:12px; align-items:center; min-height:46px; margin:0 0 8px; padding:10px 14px; border:1px solid var(--line); border-radius:var(--r-btn); background:var(--white); font-size:15.5px; color:var(--text); cursor:pointer; }
.call-form .opt input { width:22px; height:22px; margin:0; flex:0 0 22px; accent-color:var(--ink); }
.call-form .opt:has(input:checked) { border-color:var(--gold); background:var(--cream); color:var(--ink); }
.call-form .opt:focus-within { outline:2px solid var(--gold); outline-offset:2px; }
.call-form .other-box { margin:10px 0 8px; }
.call-form .other-box input { width:100%; }
.call-sum { margin:14px 0 0; padding:0; list-style:none; }
.call-sum li { display:flex; gap:10px; padding:10px 0; border-top:1px solid var(--line); font-size:15px; }
.call-sum li b { flex:0 0 118px; color:var(--muted); font-weight:500; }
.call-status { min-height:40px; padding:6px 8px; border:1px solid var(--line); border-radius:9px; background:var(--white); font:500 14px/1.2 var(--sans); color:var(--ink); }
