/* 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; box-shadow:0 24px 60px rgba(11,11,11,.16); }
.player video, .player mux-player { display:block; width:100%; height:100%; background:var(--ink); --media-accent-color:var(--gold); }
.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:32px; 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; } }
