/* Public SEO pages: shared header/footer and long-form layout on top of styles.css */
body.page{padding-bottom:0;background:var(--bg)}
.pnav{position:sticky;top:0;z-index:20;background:rgba(10,20,48,.92);backdrop-filter:blur(10px);color:#fff}
.pnav .in{max-width:1180px;margin:0 auto;padding:0 20px;display:flex;align-items:center;gap:18px;min-height:64px}
.pnav .logo{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none}
.pnav .logo .mark{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,#3550f0,#7b5cff);display:grid;place-items:center;font:800 1.05rem var(--display)}
.pnav .logo b{font:800 1.15rem/1 var(--display)}.pnav .logo b i{font-style:normal;color:#9fb0ff}.pnav .logo small{display:block;font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;opacity:.7}
.pnav nav{display:flex;gap:2px;margin-left:auto}.pnav nav a{color:#c9d3ee;text-decoration:none;font-size:.92rem;padding:8px 10px;border-radius:8px}.pnav nav a:hover{color:#fff;background:rgba(255,255,255,.07)}
.pnav .cta{display:inline-flex;font:600 .88rem var(--body);padding:9px 14px;border-radius:10px;background:linear-gradient(135deg,#3550f0,#7b5cff);color:#fff;text-decoration:none;white-space:nowrap}
@media(max-width:980px){.pnav nav{display:none}.pnav .cta{margin-left:auto}}
.phero{background:radial-gradient(800px 360px at 90% 0%,rgba(123,92,255,.35),transparent 60%),linear-gradient(135deg,#0a1430,#16245a);color:#fff;padding:48px 0 40px}
.phero .in,.pbody{max-width:1180px;margin:0 auto;padding:0 20px}
.phero h1{color:#fff;font-size:clamp(2rem,4.4vw,3.1rem);font-weight:900;max-width:22ch}.phero p{color:#c9d3ee;font-size:1.1rem;max-width:68ch}
.crumb{font-size:.84rem;color:#9fb0ff;margin-bottom:10px}.crumb a{color:#9fb0ff}
.chips2{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.chips2 span{font-size:.78rem;font-weight:600;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18)}
.pbody{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;padding-top:30px;padding-bottom:60px}
@media(max-width:960px){.pbody{grid-template-columns:1fr}}
.prose{font-size:1.04rem;line-height:1.7}.prose h2{font-size:1.55rem;margin:30px 0 10px}.prose h3{font-size:1.15rem;margin:18px 0 6px}.prose p{margin:.6em 0}.prose ul,.prose ol{padding-left:1.3em}
.side2{display:flex;flex-direction:column;gap:14px;position:sticky;top:84px;align-self:start}
.ctabox{border-radius:16px;padding:20px;color:#fff;background:radial-gradient(400px 200px at 100% 0%,rgba(123,92,255,.45),transparent 60%),linear-gradient(135deg,#0a1430,#1c2a66)}
.ctabox h3{color:#fff;margin-bottom:6px}.ctabox p{color:#c9d3ee;margin:0 0 12px;font-size:.92rem}.ctabox .btn{width:100%;justify-content:center;margin-top:6px}
.ctabox .btn.ghost{color:#fff;border-color:rgba(255,255,255,.4)}
.lessonx{border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--surface);margin:12px 0}
.lessonx.lockx{border-style:dashed;background:linear-gradient(135deg,var(--surface),#fff8e6)}
.faq details{background:var(--surface)}
.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.pfoot{background:#070d20;color:#aab6d8;padding:46px 0 22px;font-size:.92rem}
.pfoot .in{max-width:1180px;margin:0 auto;padding:0 20px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:24px}@media(max-width:760px){.pfoot .in{grid-template-columns:1fr 1fr}}
.pfoot h4{color:#fff;margin-bottom:8px}.pfoot a{display:block;color:#aab6d8;text-decoration:none;margin:5px 0}.pfoot a:hover{color:#fff}
.pfoot .copy{max-width:1180px;margin:26px auto 0;padding:16px 20px 0;border-top:1px solid rgba(255,255,255,.08);font-size:.82rem}
.nl form{display:flex;gap:6px}.nl input{flex:1;min-width:0}
.alpha{display:flex;flex-wrap:wrap;gap:4px;margin:10px 0}.alpha a{font:700 .85rem var(--mono);padding:4px 8px;border:1px solid var(--line);border-radius:6px;text-decoration:none;background:var(--surface)}
dl.terms dt{font:700 1.05rem var(--display);margin-top:16px}dl.terms dd{margin:4px 0 0;color:var(--ink)}dl.terms dd small{color:var(--muted)}

/* ===== Corporate polish v2 for public pages ===== */
:root{--pw:1180px}
@media(min-width:1780px){:root{--pw:1300px}}
.pnav .in,.phero .in,.pbody,.pfoot .in,.pfoot .copy{max-width:var(--pw)}
.phero{position:relative;overflow:hidden;padding:56px 0 52px}
.pnet{position:absolute;inset:0;width:100%;height:100%;opacity:.6;pointer-events:none}
.phero .in{position:relative;z-index:1}
.phero .in.hasv{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.85fr);gap:44px;align-items:center}
@media(max-width:960px){.phero .in.hasv{grid-template-columns:1fr}.phv{max-width:520px}}
.h1s{display:block;font-size:.5em;font-weight:700;color:#b9c6ff;margin-top:8px;letter-spacing:0}
/* hero visual cards */
.vcard{--c1:#3550f0;--c2:#7b5cff;position:relative;border-radius:20px;padding:22px;background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.14);box-shadow:0 30px 80px rgba(0,0,0,.35);backdrop-filter:blur(8px);color:#dfe5ff;display:grid;gap:16px}
.vcard::before{content:"";position:absolute;inset:0 0 auto;height:4px;border-radius:20px 20px 0 0;background:linear-gradient(90deg,var(--c1),var(--c2))}
.vtop{display:flex;gap:14px;align-items:center}.vtop small{display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#9fb0ff}.vtop b{font:800 1.2rem/1.25 var(--display);color:#fff}
.vicon{flex:none;width:58px;height:58px;border-radius:16px;display:grid;place-items:center;font-size:1.9rem;background:linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 12px 30px color-mix(in srgb,var(--c1) 45%,transparent)}
.vstats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.vstats div{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:10px;text-align:center}
.vstats b{display:block;font:900 1.5rem/1 var(--display);color:#fff}.vstats span{font-size:.7rem;color:#aab6d8}
.vpath{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:0;font-size:.78rem;font-weight:600}
.vpath li{flex:1;text-align:center;padding:7px 4px;position:relative;color:#aab6d8;border-top:3px solid rgba(255,255,255,.15)}
.vpath li.on{color:#fff;border-top-color:var(--c2)}.vpath li.gold{color:#f5d27a;border-top-color:#d9a440}
.vcert{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:12px;background:linear-gradient(135deg,rgba(245,210,122,.16),rgba(245,210,122,.05));border:1px solid rgba(245,210,122,.3)}
.vcert>span{font-size:1.6rem}.vcert b{display:block;color:#fff;font-size:.9rem}.vcert small{color:#e8d7a6;font-size:.76rem}
.vlist{display:grid;gap:10px}.vlist>div{display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}
.vi{flex:none;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;font-size:1.25rem;background:rgba(255,255,255,.1)}
.vlist b{display:block;color:#fff;font-size:.95rem}.vlist small{color:#aab6d8;font-size:.78rem}
.vbtn{display:block;text-align:center;padding:11px 14px;border-radius:12px;background:linear-gradient(135deg,#3550f0,#7b5cff);color:#fff!important;text-decoration:none;font-weight:600;font-size:.9rem;box-shadow:0 10px 26px rgba(53,80,240,.35)}
.vgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.vgrid a{display:grid;place-items:center;gap:6px;padding:16px 8px;border-radius:14px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);color:#dfe5ff;text-decoration:none;text-align:center;transition:transform .2s,background .2s}
.vgrid a:hover{transform:translateY(-3px);background:rgba(255,255,255,.12)}.vgrid span{font-size:1.7rem}.vgrid small{font-size:.74rem;line-height:1.25}
.vterm{padding:14px;border-radius:12px;background:rgba(123,92,255,.14);border:1px solid rgba(123,92,255,.3)}.vterm small{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:#b9a6ff}.vterm b{display:block;color:#fff;font:800 1.1rem var(--display);margin:4px 0}.vterm p{margin:0;font-size:.85rem;color:#c9d3ee}
.vlab{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#9fb0ff}
.vchain{display:grid;grid-template-columns:1fr 1fr;gap:8px}.vchain a{display:flex;gap:8px;align-items:center;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#dfe5ff;text-decoration:none;font-size:.82rem;font-weight:600}
.vchain a:hover{background:rgba(255,93,108,.18)}.vchain i{font-style:normal;flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#ff5d6c,#ff9f43);color:#fff;font-size:.7rem}
.vticks{list-style:none;margin:0;padding:0;display:grid;gap:8px}.vticks li{padding-left:28px;position:relative;color:#fff;font-weight:600;font-size:.92rem}
.vticks li::before{content:"✓";position:absolute;left:0;top:1px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:.7rem;background:linear-gradient(135deg,var(--c1),var(--c2))}
/* decorated body background */
body.page main.pbody{position:relative}
body.page{background-image:radial-gradient(rgba(53,80,240,.13) 1px,transparent 1.4px);background-size:22px 22px;background-attachment:fixed}
.pbody>*{position:relative;z-index:1}.prose{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:10px 32px 30px;box-shadow:0 18px 50px rgba(13,21,38,.05)}
@media(max-width:600px){.prose{padding:6px 18px 22px;border-radius:16px}}
.prose h2{display:flex;align-items:center;gap:10px}.prose h2::before{content:"";width:6px;height:24px;border-radius:3px;background:linear-gradient(180deg,#3550f0,#7b5cff)}
.prose h2.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.lessonx{position:relative;border-radius:16px;padding:20px 22px;box-shadow:0 1px 0 rgba(13,21,38,.03);transition:box-shadow .25s,transform .25s}
.lessonx:hover{box-shadow:0 16px 40px rgba(13,21,38,.07)}
.lessonx h3{display:flex;align-items:center;gap:10px;margin-top:0}
.ln{flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font:800 .9rem var(--display);color:#fff;background:linear-gradient(135deg,#3550f0,#7b5cff)}
.lockx .ln{background:linear-gradient(135deg,#b8862b,#f5d27a);color:#2a1d00}
.prose details{border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin:8px 0}
/* course + tool cards */
.ccard{--c1:#3550f0;--c2:#7b5cff;position:relative;display:flex;flex-direction:column;gap:8px;padding:20px;border-radius:16px;border:1px solid var(--line);background:var(--surface);text-decoration:none;color:var(--ink);overflow:hidden;transition:transform .25s,box-shadow .25s,border-color .25s}
.ccard::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--c1),var(--c2))}
.ccard:hover{transform:translateY(-4px);box-shadow:0 20px 44px color-mix(in srgb,var(--c1) 18%,transparent);border-color:color-mix(in srgb,var(--c1) 40%,var(--line))}
.cc-top{display:flex;justify-content:space-between;align-items:center}.cc-i{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;font-size:1.45rem;background:linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 8px 20px color-mix(in srgb,var(--c1) 35%,transparent)}
.cc-b{font:700 .66rem var(--mono);letter-spacing:.06em;padding:4px 8px;border-radius:6px;background:#e6f8ef;color:#0b8a55}.cc-b.pro{background:linear-gradient(135deg,#b8862b,#f5d27a);color:#2a1d00}
.ccard h3{margin:4px 0 0;font-size:1.08rem}.ccard p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.5;flex:1}
.cc-m{display:flex;flex-wrap:wrap;gap:6px;font-size:.74rem;font-weight:600}.cc-m span{padding:3px 8px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);color:var(--muted)}
.tcard{display:flex;gap:14px;align-items:flex-start;padding:18px;border-radius:16px;border:1px solid var(--line);background:var(--surface);text-decoration:none;color:var(--ink);transition:transform .25s,box-shadow .25s}
.tcard:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(13,21,38,.08)}
.ti{flex:none;width:46px;height:46px;border-radius:13px;display:grid;place-items:center;font-size:1.4rem;background:linear-gradient(135deg,#eef1ff,#f4eeff)}
.tcard h3{margin:0 0 4px;font-size:1rem}.tcard p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.45}
.toolcard{border:2px solid #cfd6ff;box-shadow:0 18px 50px rgba(53,80,240,.1);margin-top:20px}
.ctabox{box-shadow:0 22px 50px rgba(13,21,38,.2)}
/* side rails on wide screens */
.ptoc,.prail{position:fixed;top:50%;z-index:30;display:none;opacity:0;pointer-events:none;transition:opacity .4s,transform .4s}
.ptoc{left:24px;transform:translate(-12px,-50%);width:clamp(180px,calc((100vw - var(--pw))/2 - 56px),240px);max-height:70vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px 12px;box-shadow:0 18px 50px rgba(13,21,38,.08)}
.ptoc>span{display:block;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 8px 10px}
.ptoc a{display:block;padding:7px 10px;border-radius:9px;color:var(--ink);text-decoration:none;font-size:.86rem;border-left:2px solid transparent;line-height:1.3}
.ptoc a:hover{background:var(--surface-2)}.ptoc a.on{background:#eef1ff;color:#3550f0;font-weight:700;border-left-color:#3550f0}
.gn-bar{height:4px;border-radius:4px;background:var(--line);margin:12px 10px 0;overflow:hidden}.gn-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#3550f0,#7b5cff)}
.prail{right:24px;transform:translate(12px,-50%);width:clamp(220px,calc((100vw - var(--pw))/2 - 56px),280px)}
.prail .railcard{border-radius:18px;padding:18px;color:#dfe5ff;background:linear-gradient(160deg,#0d1636,#1f1a55);box-shadow:0 22px 60px rgba(13,21,38,.25);display:block}
.adlabel{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:#8f9cc8}.adin{display:grid;gap:8px;margin-top:8px}.adicon{font-size:2.2rem;line-height:1}
.adtag{justify-self:start;font-size:.7rem;font-weight:700;padding:3px 8px;border-radius:999px;background:rgba(255,93,108,.2);color:#ffc2c9}
.adin h4{margin:2px 0;font:800 1.05rem/1.25 var(--display);color:#fff}.adin p{margin:0 0 6px;font-size:.84rem;line-height:1.5;color:#c3ccef}.adin .btn{justify-self:start}
.addots{display:flex;flex-wrap:wrap;gap:5px;margin-top:12px}.addots button{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.25);cursor:pointer}.addots button.on{background:#fff;width:18px;border-radius:4px}
@media(min-width:1660px){.ptoc,.prail{display:block}}
body.railson .ptoc,body.railson .prail{opacity:1;pointer-events:auto;transform:translate(0,-50%)}
/* reveal */
.rv{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}.rv.in{opacity:1;transform:none}
.pfoot .in{grid-template-columns:1.6fr 1fr 1fr 1fr}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}}
.pbody>.side2{position:sticky}
.vlist.two{grid-template-columns:1fr 1fr}.vlist.two>div{padding:10px}
@media(max-width:520px){.vlist.two{grid-template-columns:1fr}}
.todo{background:#fff4d6;color:#8a5a00;padding:1px 6px;border-radius:5px;font-weight:600}

/* ===== Mobile hardening ===== */
html,body.page{overflow-x:clip}
@media(max-width:760px){.pfoot .in{grid-template-columns:1fr 1fr}.pfoot .in>div:first-child{grid-column:1/-1}}
.prose h2{align-items:flex-start}.prose h2::before{flex:none;margin-top:.18em}
@media(max-width:600px){.mhide{display:none}.phero{padding:34px 0 30px}.phero .in.hasv{gap:22px}.vstats{grid-template-columns:repeat(2,1fr)}.vgrid{grid-template-columns:repeat(3,1fr)}.vchain{grid-template-columns:1fr}
  .pbody{padding-top:18px;gap:18px}.prose{font-size:1rem}.lessonx{padding:16px}.side2{position:static}}
.pburger{display:none;width:40px;height:40px;border-radius:10px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:#fff;font-size:1.1rem;cursor:pointer;flex:none}
@media(max-width:980px){.pburger{display:grid;place-items:center}
  .pnav.open nav{display:flex;position:absolute;left:0;right:0;top:100%;flex-direction:column;padding:8px 16px 16px;background:#0a1430;box-shadow:0 20px 40px rgba(0,0,0,.35)}
  .pnav.open nav a{padding:13px 10px;font-size:1rem;border-bottom:1px solid rgba(255,255,255,.06)}}
@media(max-width:420px){.pnav .cta{font-size:.8rem;padding:8px 10px}.pnav .logo small{display:none}}
