/* Course UI — reuses design tokens from style.css */
.course-wrap{width:min(1000px,92vw);margin:0 auto;padding:150px 0 90px;position:relative;z-index:3}
.course-hero{text-align:center;max-width:760px;margin:0 auto 50px}
.course-hero .label{display:inline-block;margin-bottom:18px}
.course-hero h1{font-family:'Cinzel',serif;text-transform:uppercase;color:var(--cream);font-size:clamp(2rem,4.4vw,3.2rem);line-height:1.1;font-weight:600}
.course-hero .price{font-family:'Cinzel',serif;color:var(--gold);font-size:2rem;margin:18px 0 6px}
.course-hero p{color:var(--text);font-size:1.05rem}

.enroll-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:start;margin-top:20px}
.enroll-card{border:1px solid var(--line);background:linear-gradient(180deg,#141210,#0c0b09);padding:34px}
.enroll-card h3{font-family:'Cinzel',serif;text-transform:uppercase;color:var(--gold);font-size:1.05rem;letter-spacing:.04em;margin-bottom:18px}
.enroll-card ul{list-style:none;margin:0;padding:0}
.enroll-card li{color:var(--text);padding:9px 0 9px 28px;position:relative;font-size:.96rem;border-bottom:1px solid var(--hair)}
.enroll-card li:last-child{border-bottom:0}
.enroll-card li::before{content:"";position:absolute;left:0;top:14px;width:12px;height:7px;border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(-45deg)}
.buy-box{border:1px solid var(--gold);background:radial-gradient(120% 120% at 50% 0%,#191308,#0b0a08);padding:34px;text-align:center;position:sticky;top:110px}
.buy-box .big{font-family:'Cinzel',serif;color:var(--cream);font-size:2.6rem;line-height:1}
.buy-box .sub{color:var(--muted);letter-spacing:.2em;text-transform:uppercase;font-size:.62rem;margin:8px 0 22px}
.buy-box .btn{width:100%;text-align:center;margin-bottom:14px}
.code-row{display:flex;gap:8px;margin-top:16px}
.code-row input{flex:1;background:#0d0b09;border:1px solid var(--hair);color:var(--cream);padding:12px;font-family:'Jost',sans-serif}
.code-row input:focus{outline:none;border-color:var(--gold)}
.code-row button{background:transparent;border:1px solid var(--hair);color:var(--gold);padding:0 16px;cursor:pointer;font-family:'Jost',sans-serif;letter-spacing:.1em;text-transform:uppercase;font-size:.68rem}
.tiny{font-size:.72rem;color:var(--muted);margin-top:14px;line-height:1.5}

/* progress + parts */
.progress-top{display:flex;align-items:center;gap:16px;margin-bottom:34px;flex-wrap:wrap}
.progress-top .pct{font-family:'Cinzel',serif;color:var(--gold);font-size:1.1rem;white-space:nowrap}
.pbar{flex:1;min-width:180px;height:6px;background:#1c1913;border:1px solid var(--hair);overflow:hidden}
.pbar span{display:block;height:100%;background:linear-gradient(90deg,var(--gold-dim),var(--gold),var(--gold-hi));width:0;transition:width .6s ease}
.part-head{margin:36px 0 18px}
.part-head .label{display:block;margin-bottom:8px}
.part-head h2{font-family:'Cinzel',serif;text-transform:uppercase;color:var(--cream);font-size:1.5rem}
.part-head p{color:var(--muted);font-size:.92rem;margin-top:4px}

.mod-list{display:grid;gap:12px}
.mod{display:flex;align-items:center;gap:18px;border:1px solid var(--hair);background:#100e0b;padding:18px 22px;transition:.25s;cursor:pointer}
.mod:hover:not(.locked){border-color:var(--line);transform:translateX(4px)}
.mod.locked{opacity:.5;cursor:not-allowed}
.mod .num{font-family:'Cinzel',serif;color:var(--gold);font-size:1.1rem;width:34px;text-align:center;flex-shrink:0}
.mod .info{flex:1}
.mod .info h4{font-family:'Jost',sans-serif;font-weight:500;color:var(--cream);font-size:1.02rem;letter-spacing:.02em}
.mod .info .meta{color:var(--muted);font-size:.8rem;margin-top:3px}
.mod .status{flex-shrink:0}
.badge{font-family:'Jost',sans-serif;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;padding:6px 12px;border:1px solid var(--hair);color:var(--muted)}
.badge.done{color:#8fe0a0;border-color:rgba(143,224,160,.4)}
.badge.gold{color:var(--gold);border-color:var(--gold)}

/* lesson + quiz */
.reader{max-width:760px;margin:0 auto}
.reader .crumbs{color:var(--muted);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:16px;cursor:pointer}
.reader .crumbs:hover{color:var(--gold)}
.reader h1{font-family:'Cinzel',serif;text-transform:uppercase;color:var(--cream);font-size:clamp(1.7rem,3.6vw,2.5rem);margin-bottom:8px}
.reader .meta{color:var(--gold);font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;margin-bottom:28px}
.reader .lesson p{color:var(--text);font-size:1.06rem;line-height:1.9;margin-bottom:18px}
.reader .lesson strong{color:var(--cream)}
.reader .lesson em{color:var(--gold);font-style:italic}

.q{border:1px solid var(--hair);background:#100e0b;padding:26px;margin-bottom:18px}
.q .qn{font-family:'Cinzel',serif;color:var(--gold);font-size:.8rem;letter-spacing:.1em;margin-bottom:10px}
.q .qt{color:var(--cream);font-size:1.08rem;margin-bottom:18px;line-height:1.5}
.opt{display:flex;align-items:flex-start;gap:12px;padding:13px 16px;border:1px solid var(--hair);margin-bottom:10px;cursor:pointer;transition:.2s;color:var(--text)}
.opt:hover{border-color:var(--line)}
.opt.sel{border-color:var(--gold);background:rgba(200,162,78,.07)}
.opt .k{font-family:'Cinzel',serif;color:var(--gold);width:20px;flex-shrink:0}
.opt.correct{border-color:#8fe0a0;background:rgba(143,224,160,.08)}
.opt.wrong{border-color:#e08f8f;background:rgba(224,143,143,.08)}
.q textarea{width:100%;min-height:100px;background:#0d0b09;border:1px solid var(--hair);color:var(--cream);padding:14px;font-family:'Jost',sans-serif;font-size:1rem;resize:vertical}
.q textarea:focus{outline:none;border-color:var(--gold)}
.q .fb{margin-top:14px;padding:14px 16px;border-left:2px solid var(--gold);background:#0d0b09;color:var(--text);font-size:.95rem;display:none}
.q .fb.show{display:block}
.q .fb.ok{border-color:#8fe0a0}
.q .fb.no{border-color:#e08f8f}

.result{text-align:center;border:1px solid var(--line);padding:40px;margin-bottom:24px}
.result .score{font-family:'Cinzel',serif;font-size:3rem;color:var(--gold)}
.result h3{font-family:'Cinzel',serif;text-transform:uppercase;color:var(--cream);margin:6px 0 10px}
.result p{color:var(--text)}
.actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:26px}

/* certificate */
.cert{background:linear-gradient(160deg,#faf6ec,#efe6cf);color:#20180a;max-width:820px;margin:0 auto;padding:60px;border:2px solid var(--gold);position:relative;text-align:center}
.cert::after{content:"";position:absolute;inset:14px;border:1px solid rgba(140,110,50,.5);pointer-events:none}
.cert .crest{width:70px;margin:0 auto 14px}
.cert .ttl{font-family:'Cinzel',serif;text-transform:uppercase;letter-spacing:.2em;font-size:.8rem;color:#8a6d34}
.cert .cn{font-family:'Cinzel',serif;font-size:2.2rem;margin:8px 0 18px;color:#1c150a}
.cert .name{font-family:'Pinyon Script',cursive;font-size:3rem;color:#8a6d34;line-height:1;margin:10px 0}
.cert .line{width:60%;height:1px;background:rgba(120,95,40,.4);margin:6px auto 18px}
.cert .body{font-family:'Jost',sans-serif;color:#3a2f18;font-size:1rem;max-width:520px;margin:0 auto 22px;line-height:1.7}
.cert .sig{display:flex;justify-content:space-around;margin-top:30px;gap:20px}
.cert .sig div{flex:1}
.cert .sig .sg{font-family:'Pinyon Script',cursive;font-size:1.7rem;color:#20180a;border-bottom:1px solid rgba(120,95,40,.5);padding-bottom:6px}
.cert .sig .cap{font-family:'Jost',sans-serif;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:#6a5730;margin-top:8px}
.cert .vid{font-family:'Jost',sans-serif;font-size:.66rem;letter-spacing:.1em;color:#8a6d34;margin-top:26px}
@media print{header,footer,.drawer,.cert-actions{display:none!important}.course-wrap{padding:0}body{background:#fff}}
@media(max-width:820px){.enroll-grid{grid-template-columns:1fr}.buy-box{position:static}.cert{padding:34px}.cert .name{font-size:2.2rem}}

/* ===== Printable certificate (image + overlays) ===== */
.cert-print{position:relative;max-width:1000px;margin:0 auto;line-height:1;}
.cert-print>img{width:100%;display:block;border-radius:8px;box-shadow:0 24px 60px rgba(0,0,0,.55);}
.cert-print .cf{position:absolute;transform:translate(-50%,-50%);text-align:center;white-space:nowrap;pointer-events:none;}
.cert-print .cf-name{left:50%;top:49.7%;font-family:'Cinzel',serif;font-weight:600;letter-spacing:.06em;font-size:clamp(20px,3.8vw,40px);color:#2a2016;}
.cert-print .cf-date{left:72.5%;top:83.2%;font-family:'Jost',sans-serif;font-weight:500;letter-spacing:.02em;font-size:clamp(9px,1.45vw,16px);color:#3a2d1e;}
.cert-print .cf-num{left:72.5%;top:90.0%;font-family:'Jost',sans-serif;font-weight:500;letter-spacing:.08em;font-size:clamp(8px,1.15vw,13px);color:#3a2d1e;}
@media print{
  @page{size:landscape;margin:6mm;}
  body{background:#fff !important;}
  body *{visibility:hidden !important;}
  .cert-print,.cert-print *{visibility:visible !important;}
  .cert-print{position:fixed;left:0;top:0;width:100%;max-width:100%;margin:0;}
  .cert-print>img{border-radius:0;box-shadow:none;}
}

/* ---- rich lesson content (v2 robust modules) ---- */
.reader .lesson .lead{font-size:1.18rem;line-height:1.85;color:var(--cream);margin-bottom:24px}
.reader .lesson h2{font-family:'Cinzel',serif;text-transform:uppercase;color:var(--gold);font-size:1.15rem;letter-spacing:.05em;margin:40px 0 14px;padding-bottom:10px;border-bottom:1px solid var(--hair)}
.reader .lesson h3{font-family:'Jost',sans-serif;font-weight:600;color:var(--cream);font-size:1.12rem;letter-spacing:.02em;margin:28px 0 12px}
.reader .lesson ul,.reader .lesson ol{margin:0 0 20px;padding-left:0;list-style:none;counter-reset:li}
.reader .lesson ul li,.reader .lesson ol li{position:relative;color:var(--text);font-size:1.04rem;line-height:1.75;margin-bottom:12px;padding-left:30px}
.reader .lesson ul li::before{content:"◆";position:absolute;left:4px;top:1px;color:var(--gold);font-size:.7rem}
.reader .lesson ol li{counter-increment:li}
.reader .lesson ol li::before{content:counter(li);position:absolute;left:0;top:0;color:var(--gold);font-family:'Cinzel',serif;font-size:.85rem;font-weight:600}
.reader .lesson blockquote{margin:0 0 28px;padding:18px 24px;border-left:3px solid var(--gold);background:linear-gradient(180deg,#141210,#0e0d0b);color:var(--cream);font-style:italic;font-size:1.08rem;line-height:1.6}
.reader .lesson blockquote cite{display:block;margin-top:8px;color:var(--muted);font-style:normal;font-size:.85rem;letter-spacing:.06em}
.reader .lesson .callout{border:1px solid var(--hair);background:#100e0b;padding:24px 26px;margin:28px 0}
.reader .lesson .callout h3{margin-top:0;display:flex;align-items:center;gap:10px;color:var(--gold);font-family:'Cinzel',serif;text-transform:uppercase;font-size:.92rem;letter-spacing:.08em}
.reader .lesson .callout h3::before{font-size:1rem}
.reader .lesson .callout p:last-child,.reader .lesson .callout li:last-child{margin-bottom:0}
.reader .lesson .callout.case{border-left:3px solid var(--gold)}
.reader .lesson .callout.case h3::before{content:"❝"}
.reader .lesson .callout.mistakes{border-left:3px solid #e0a58f}
.reader .lesson .callout.mistakes h3{color:#e0a58f}
.reader .lesson .callout.mistakes h3::before{content:"⚠"}
.reader .lesson .callout.action{border-left:3px solid #8fd0e0;background:linear-gradient(180deg,#0f1315,#0c0b09)}
.reader .lesson .callout.action h3{color:#8fd0e0}
.reader .lesson .callout.action h3::before{content:"✎"}
.reader .lesson .callout.takeaways{border-left:3px solid #8fe0a0}
.reader .lesson .callout.takeaways h3{color:#8fe0a0}
.reader .lesson .callout.takeaways h3::before{content:"✔"}
.reader .lesson .est{color:var(--muted);font-size:.85rem;letter-spacing:.04em;margin:-8px 0 24px}
