/* SJA Learning — shared design system (7 Sep 2026). One file for every public page: tokens, base type, the FIXED
   header, footer, buttons, cards, tables, article typography, the "All-Access" island, pop-ups and the Store's cart
   drawer / checkout. Pages add only their own layout CSS. Bump ?v= on every page when this file changes. */
:root{
  --ink:#0B1F35; --text:#2c3a4b; --mut:#5f6f82; --mut2:#8a97a8;
  --blue:#1E4FD8; --blue-d:#173fb0; --blue-soft:#EEF3FF; --blue-line:#cfdcff;
  --line:#e6eaf0; --line2:#eef1f5; --bg:#fff; --bg2:#f7f9fc; --bg3:#f3f6fb;
  --green:#1E8449; --green-soft:#e9f7ee; --amber:#b7791f; --amber-soft:#fff6e0; --red:#c0392b; --red-soft:#fdecea;
  --r:16px; --r-lg:22px; --nav-h:66px;
  --shadow:0 1px 2px rgba(11,31,53,.04),0 8px 24px -12px rgba(11,31,53,.12);
  --shadow-lg:0 20px 60px -20px rgba(11,31,53,.22),0 1px 3px rgba(11,31,53,.06);
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + 16px)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;padding-top:var(--nav-h);font-family:'Manrope',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;color:var(--text);background:var(--bg);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,video{max-width:100%;display:block}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
a.btn:hover,.logo:hover,.nav-links a:hover,.site-footer a:hover{text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid rgba(30,79,216,.45);outline-offset:3px;border-radius:8px}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.wrap-narrow{max-width:780px;margin:0 auto;padding:0 20px}
.sr,.sr-only{position:absolute;left:-9999px}
h1,h2,h3,h4{color:var(--ink);margin:0;letter-spacing:-.02em;line-height:1.15}
h1{font-size:clamp(32px,4.8vw,50px);font-weight:800;letter-spacing:-.035em;line-height:1.08}
h2{font-size:clamp(26px,3.4vw,38px);font-weight:800;letter-spacing:-.03em}
h3{font-size:20px;font-weight:800}
p{margin:0}
.lead{font-size:clamp(17px,1.5vw,19px);color:var(--mut);line-height:1.6;max-width:640px}
.kicker{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:14px}
.accent{color:var(--blue)}
.micro{font-size:13.5px;color:var(--mut2);font-weight:600}
.sec{padding:clamp(56px,7vw,96px) 0}
.sec.tint{background:var(--bg3)}
.sec-head{max-width:720px;margin-bottom:clamp(28px,4vw,48px)}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head .lead{margin-top:14px}
.sec-head.center .lead{margin-left:auto;margin-right:auto}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:14px 24px;font-weight:800;font-size:15.5px;line-height:1;border:1.5px solid transparent;cursor:pointer;transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .18s;white-space:nowrap;font-family:inherit;text-decoration:none}
.btn-primary{background:var(--blue);color:#fff;box-shadow:0 10px 26px -12px rgba(30,79,216,.7)}
.btn-primary:hover{background:var(--blue-d);color:#fff;transform:translateY(-1px);box-shadow:0 14px 30px -12px rgba(30,79,216,.75)}
.btn-secondary{background:#fff;color:var(--ink);border-color:var(--line)}
.btn-secondary:hover{border-color:#c7d0dc;background:var(--bg2);transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--blue);padding:10px 4px}
.btn-ghost:hover{text-decoration:underline;text-underline-offset:4px}
.btn-lg{padding:17px 30px;font-size:17px}
.btn-sm{padding:10px 16px;font-size:14px}
.btn[disabled]{opacity:.55;cursor:default;transform:none}
.btn .arr{transition:transform .18s var(--ease)}
.btn:hover .arr{transform:translateX(3px)}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}

/* ---- small parts ---- */
.tag{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);background:var(--blue-soft);border-radius:999px;padding:6px 11px}
.tag.green{color:var(--green);background:var(--green-soft)}.tag.amber{color:var(--amber);background:var(--amber-soft)}
.pill{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 14px 7px 8px;font-size:13px;font-weight:700;color:var(--mut);box-shadow:var(--shadow)}
.pill i{display:inline-block;width:22px;height:22px;border-radius:50%;background:var(--blue-soft);color:var(--blue);font-style:normal;font-size:12px;line-height:22px;text-align:center;font-weight:800}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.note{border:1px solid var(--blue-line);background:var(--blue-soft);border-radius:14px;padding:16px 18px;color:var(--ink);font-size:15px}
.note.green{border-color:#bfe6cc;background:var(--green-soft)}.note.amber{border-color:#f1dfa0;background:var(--amber-soft)}.note.red{border-color:#f3c1bb;background:var(--red-soft)}
.check-list{list-style:none;padding:0;margin:0;display:grid;gap:9px}
.check-list li{display:flex;gap:10px;align-items:flex-start;font-size:15px}
.check-list li:before{content:"";flex:none;width:20px;height:20px;border-radius:50%;background:var(--blue-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231E4FD8' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4 4 8-8'/%3E%3C/svg%3E") center/13px no-repeat;margin-top:2px}

/* ---- FIXED header (identical on every page) ---- */
.site-nav{position:fixed;top:0;left:0;right:0;z-index:60;background:rgba(255,255,255,.9);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--line2)}
.site-nav .wrap{display:flex;align-items:center;gap:22px;height:var(--nav-h)}
.logo{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:800;font-size:15.5px;letter-spacing:-.01em;line-height:1.1;white-space:nowrap}
.logo img{width:34px;height:34px;border-radius:9px}
.logo small{display:block;font-size:11px;font-weight:600;color:var(--mut2);letter-spacing:0}
.nav-links{display:flex;gap:6px;margin-left:auto}
.nav-links a{color:var(--text);font-weight:700;font-size:14.5px;padding:8px 12px;border-radius:9px}
.nav-links a:hover,.nav-links a[aria-current="page"]{background:var(--bg3);color:var(--ink)}
.nav-cta{display:flex;align-items:center;gap:8px}
.nav-cta .btn{padding:11px 18px;font-size:14px}
#burger{display:none;width:42px;height:42px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;align-items:center;justify-content:center}
#burger svg{width:20px;height:20px}
#mobMenu{display:none;border-top:1px solid var(--line2);background:#fff;padding:10px 20px 16px;box-shadow:0 20px 40px -20px rgba(11,31,53,.25)}
#mobMenu a{display:block;padding:12px 6px;font-weight:700;color:var(--ink);border-bottom:1px solid var(--line2)}
#mobMenu a:last-child{border:0}
#mobMenu.open{display:block}
@media(max-width:900px){.nav-links{display:none}#burger{display:inline-flex}.nav-cta .login{display:none}.nav-cta{margin-left:auto}}
@media(max-width:480px){.logo small{display:none}.logo{font-size:14.5px}.nav-cta .btn{padding:10px 14px;font-size:13.5px}}

/* ---- page hero (secondary pages) ---- */
.phero{padding:clamp(44px,6vw,72px) 0 clamp(28px,4vw,44px);text-align:center;position:relative;overflow:hidden}
.phero:before{content:"";position:absolute;inset:0;background:radial-gradient(60% 60% at 50% 0%,rgba(30,79,216,.07),transparent 70%);pointer-events:none}
.phero .wrap,.phero .wrap-narrow{position:relative}
.phero h1{max-width:820px;margin:16px auto 0}
.phero .lead{margin:16px auto 0}
.phero .btn-row{justify-content:center;margin-top:26px}
.phero.left{text-align:left}.phero.left h1,.phero.left .lead{margin-left:0}.phero.left .btn-row{justify-content:flex-start}

/* ---- article typography (blog posts, legal, about, updates) ---- */
.article{font-size:17px;line-height:1.75;color:var(--text)}
.article>*+*{margin-top:1.1em}
.article h2{font-size:clamp(23px,2.6vw,30px);margin-top:2em;letter-spacing:-.025em}
.article h3{font-size:20px;margin-top:1.6em}
.article h2+*,.article h3+*{margin-top:.6em}
.article p{margin-top:0}
.article ul,.article ol{padding-left:22px}
.article li{margin:.35em 0}
.article li::marker{color:var(--blue)}
.article b,.article strong{color:var(--ink)}
.article blockquote{margin:1.4em 0;padding:16px 20px;border-left:4px solid var(--blue);background:var(--blue-soft);border-radius:0 12px 12px 0;color:var(--ink)}
.article code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.92em;background:var(--bg3);padding:1px 6px;border-radius:5px}
.article figure{margin:1.6em 0}
.article figure img{border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}
.article figcaption{font-size:13.5px;color:var(--mut2);margin-top:8px;text-align:center}
.article hr{border:0;border-top:1px solid var(--line);margin:2em 0}
.article img{border-radius:12px}
.article .note{font-size:15.5px;line-height:1.6}
table.table,.article table{width:100%;border-collapse:separate;border-spacing:0;font-size:14.5px;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
table.table th,.article table th{text-align:left;background:var(--bg3);color:var(--ink);font-weight:800;padding:11px 14px;border-bottom:1px solid var(--line);font-size:13px;letter-spacing:.04em;text-transform:uppercase}
table.table td,.article table td{padding:11px 14px;border-bottom:1px solid var(--line2);vertical-align:top}
table.table tr:last-child td,.article table tr:last-child td{border-bottom:0}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.toc{background:var(--bg3);border:1px solid var(--line);border-radius:14px;padding:16px 20px;font-size:15px}
.toc b{display:block;color:var(--ink);margin-bottom:6px;font-size:13px;letter-spacing:.1em;text-transform:uppercase}
.toc a{display:block;padding:4px 0}
.meta{color:var(--mut2);font-size:14px;font-weight:600}

/* ---- footer (identical on every page) ---- */
.site-footer{border-top:1px solid var(--line);padding:48px 0 32px;background:#fff;font-size:14px;color:var(--mut);margin-top:clamp(40px,6vw,80px)}
.site-footer .fg{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:28px}
.site-footer h4{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut2);margin-bottom:12px}
.site-footer .fg a{display:block;color:var(--text);font-weight:600;padding:4px 0}
.site-footer .fg a:hover{color:var(--blue)}
.site-footer .biz{margin-top:30px;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:var(--bg2);line-height:1.7;font-size:13.5px}
.site-footer .disc{margin-top:18px;font-size:12.5px;color:var(--mut2);line-height:1.7}
@media(max-width:800px){.site-footer .fg{grid-template-columns:1fr 1fr}}

/* ---- the "All-Access" island (appears after scrolling) ---- */
#mcta{position:fixed;left:50%;bottom:16px;transform:translate(-50%,140%);z-index:70;display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:999px;box-shadow:0 22px 50px -14px rgba(11,31,53,.4),0 0 0 1px rgba(30,79,216,.06);padding:8px 8px 8px 18px;max-width:min(560px,calc(100vw - 24px));transition:transform .45s var(--ease),opacity .3s;opacity:0}
#mcta.show{transform:translate(-50%,0);opacity:1}
#mcta .p{font-size:12.5px;color:var(--mut);font-weight:700;line-height:1.25;white-space:nowrap}
#mcta .p .lbl{display:inline-block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);background:var(--blue-soft);border-radius:999px;padding:3px 7px;margin-bottom:3px}
#mcta .p b{display:block;font-size:15px;color:var(--ink)}
#mcta .p small{display:block;font-size:11.5px;color:var(--mut2);font-weight:600}
#mcta .btn{padding:12px 18px;font-size:14px;flex:none}
#mcta .island-alt{font-size:12.5px;font-weight:700;color:var(--blue);white-space:nowrap;margin-right:8px}
@media(max-width:600px){#mcta{left:10px;right:10px;bottom:10px;transform:translateY(140%);max-width:none;border-radius:18px;padding:10px 12px 10px 14px;gap:10px}#mcta.show{transform:none}#mcta .island-alt{display:none}#mcta .p small{display:none}#mcta .p b{font-size:14px}}

/* ---- pop-ups (What's included, checkout) + cart drawer ---- */
.ov{position:fixed;inset:0;background:rgba(11,31,53,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:120;display:flex;align-items:center;justify-content:center;padding:18px}
.ov[hidden]{display:none}
.modal{background:#fff;border-radius:18px;width:min(720px,100%);max-height:88vh;overflow:auto;padding:28px 28px 24px;position:relative;box-shadow:var(--shadow-lg);color:var(--text)}
.modal .x{position:absolute;top:12px;right:12px;width:38px;height:38px;border:0;background:var(--bg3);border-radius:50%;font-size:22px;cursor:pointer;color:var(--ink);line-height:1}
.modal h3{font-size:24px;margin-right:44px}
.modal .kicker{margin-bottom:8px}
.modal label{display:block;font-size:12.5px;color:var(--mut);font-weight:800;margin:14px 0 6px;letter-spacing:.02em}
.modal input,.modal select{width:100%;padding:12px 14px;border-radius:11px;border:1.5px solid var(--line);background:#fff;color:var(--ink);font-family:inherit;font-size:15px}
.modal input:focus,.modal select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(30,79,216,.18)}
.modal .err{color:var(--red);font-size:13px;min-height:18px;margin-top:8px;font-weight:600}
.modal .row{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.modal .row .btn{flex:1}
.infomodal .ip{margin-top:10px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.infomodal .ip b{font-size:26px;color:var(--ink)}
.infomodal .ip s{color:var(--mut2)}
.infomodal .ip .save{font-size:12px;font-weight:800;color:var(--green);background:var(--green-soft);border-radius:999px;padding:4px 9px}
.infomodal .ip .gst{font-size:12.5px;color:var(--mut2);font-weight:600}
.infomodal .sum{margin-top:12px;color:var(--mut);font-size:15px}
.infomodal h4{margin-top:20px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut2)}
.infomodal ul{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:7px;font-size:14.5px;color:var(--text)}
.infomodal li{position:relative;padding-left:24px}
.infomodal li:before{content:"✓";position:absolute;left:0;top:0;color:var(--green);font-weight:800}
.infomodal ul.no li{color:var(--mut)}.infomodal ul.no li:before{content:"✕";color:var(--red)}
.infomodal ul.acc li{color:var(--mut)}.infomodal ul.acc li:before{content:"›";color:var(--blue)}
.infomodal li b{color:var(--ink)}
.infomodal .row{position:sticky;bottom:-24px;background:#fff;padding:14px 0 4px;border-top:1px solid var(--line2);margin-top:22px}
@media(max-width:520px){.modal{padding:22px 18px 18px}.modal h3{font-size:21px}.modal .row .btn{flex-basis:100%}}
.comodal .pkgs{color:var(--ink);font-size:14px;font-weight:700;margin:8px 0 2px;line-height:1.6}
.comodal .amt{color:var(--mut);font-size:13.5px;margin-bottom:6px}
/* cart drawer (Store) */
#cartOv{position:fixed;inset:0;background:rgba(11,31,53,.5);backdrop-filter:blur(3px);z-index:110;display:flex;justify-content:flex-end}
#cartOv[hidden]{display:none}
#cartPanel{width:min(430px,100%);background:#fff;height:100%;display:flex;flex-direction:column;box-shadow:-20px 0 60px -20px rgba(11,31,53,.35);animation:slidein .25s var(--ease)}
@keyframes slidein{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
#cartPanel .head{display:flex;align-items:center;gap:10px;padding:18px 20px;border-bottom:1px solid var(--line)}
#cartPanel .head h3{flex:1;font-size:20px}
#cartItems{flex:1;overflow:auto;padding:10px 20px}
.citem{display:flex;align-items:flex-start;gap:10px;padding:12px 0;border-bottom:1px solid var(--line2)}
.citem .nm{flex:1;font-size:14px;color:var(--text)}
.citem .pr{font-weight:800;color:var(--ink);font-size:14px;white-space:nowrap}
.citem .rm{background:none;border:0;color:var(--mut2);cursor:pointer;font-size:16px;padding:2px 6px;border-radius:8px}
.citem .rm:hover{color:var(--red);background:var(--red-soft)}
#cartFoot{padding:16px 20px;border-top:1px solid var(--line);background:var(--bg2)}
#cartFoot .tot{display:flex;justify-content:space-between;font-weight:800;color:var(--ink);font-size:18px;margin-bottom:4px}
#cartFoot .gst{color:var(--mut2);font-size:12.5px;margin-bottom:12px;font-weight:600}
#cartFab{position:fixed;right:18px;bottom:18px;z-index:80;display:flex;align-items:center;gap:10px;background:var(--blue);color:#fff;font-weight:800;border-radius:999px;padding:14px 22px;box-shadow:0 14px 40px -8px rgba(30,79,216,.6);cursor:pointer;border:0;font-size:15px;transition:transform .2s var(--ease)}
#cartFab:hover{transform:scale(1.04)}
#cartFab[hidden]{display:none}
.toast{position:fixed;left:50%;bottom:86px;transform:translateX(-50%);background:var(--ink);color:#fff;border-radius:12px;padding:10px 16px;font-size:13.5px;font-weight:600;z-index:95;max-width:92vw;box-shadow:0 8px 30px rgba(0,0,0,.25)}
.toast[hidden]{display:none}
