/* Website CMS: blog, pages, menus, calls to action. Plain CSS (no build step); uses the app's brand colours. */
:root{--cms-brand:#3122b0;--cms-brand-600:#3b2bd1;--cms-brand-900:#1e1b6e;--cms-brand-50:#eef0fe;--cms-ink:#1e293b;--cms-muted:#475569;--cms-line:#e2e8f0;--cms-soft:#f8fafc;--cms-accent:#f5b301}
.cms-skip{position:absolute;left:-999px;top:0;background:#fff;color:var(--cms-brand-900);padding:.6rem 1rem;z-index:100;border-radius:0 0 .5rem 0}
.cms-skip:focus{left:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---- navigation ---- */
.cms-nav{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;font-size:.875rem;font-weight:600}
.cms-nav-list{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;list-style:none;margin:0;padding:0}
.cms-nav-item{position:relative}
.cms-nav-link{display:inline-flex;align-items:center;gap:.3rem;padding:.5rem .75rem;border-radius:.5rem;color:#334155;background:none;border:0;font:inherit;cursor:pointer;text-decoration:none}
.cms-nav-link:hover,.cms-nav-link.is-active,.cms-nav-link:focus-visible{background:#f1f5f9;color:var(--cms-brand-900)}
.cms-nav-link.is-active{box-shadow:inset 0 -2px 0 var(--cms-brand)}
.cms-nav-auth{display:inline-flex;align-items:center;gap:.25rem;margin-left:.25rem}
.cms-subnav{display:none;position:absolute;left:0;top:100%;z-index:50;min-width:16rem;margin:.25rem 0 0;padding:.5rem;list-style:none;background:#fff;border:1px solid var(--cms-line);border-radius:.75rem;box-shadow:0 12px 32px rgba(15,23,42,.14)}
.cms-nav-item.has-children:hover>.cms-subnav,.cms-nav-item.is-open>.cms-subnav,.cms-nav-item.has-children:focus-within>.cms-subnav{display:block}
.cms-subnav-link{display:block;padding:.55rem .75rem;border-radius:.5rem;color:var(--cms-ink);text-decoration:none}
.cms-subnav-link:hover,.cms-subnav-link:focus-visible,.cms-subnav-link.is-active{background:var(--cms-brand-50)}
.cms-subnav-link small{display:block;font-weight:400;color:var(--cms-muted);font-size:.78rem;margin-top:.1rem}
.cms-badge{display:inline-block;font-size:.65rem;line-height:1;padding:.2rem .4rem;border-radius:999px;background:var(--cms-accent);color:#422006;font-weight:800;vertical-align:middle}
.cms-nav-toggle{display:none;border:1px solid var(--cms-line);background:#fff;border-radius:.6rem;padding:.5rem;color:var(--cms-brand-900)}
@media (max-width:820px){
  .cms-nav-toggle{display:inline-flex}
  .cms-nav{display:none;width:100%;flex-direction:column;align-items:stretch;gap:.25rem;border-top:1px solid var(--cms-line);padding-top:.5rem}
  .cms-nav.is-open{display:flex}
  .cms-nav-list{flex-direction:column;align-items:stretch;width:100%}
  .cms-nav-link{width:100%;justify-content:space-between}
  .cms-subnav{position:static;display:none;box-shadow:none;border:0;border-left:2px solid var(--cms-line);border-radius:0;margin:0 0 .25rem .75rem;padding:.1rem 0 .1rem .5rem;min-width:0}
  .cms-nav-item.has-children:hover>.cms-subnav{display:none}
  .cms-nav-item.is-open>.cms-subnav{display:block}
  .cms-nav-auth{margin:.25rem 0 0;flex-wrap:wrap}
}

/* ---- article ---- */
.cms-article{margin:0 auto;color:var(--cms-ink)}
.cms-article.is-landing,.cms-article.is-wide{max-width:64rem}
.cms-breadcrumbs ol{display:flex;flex-wrap:wrap;gap:.25rem;list-style:none;margin:0 0 1rem;padding:0;font-size:.82rem;color:var(--cms-muted)}
.cms-breadcrumbs li+li::before{content:"/";margin-right:.35rem;color:#94a3b8}
.cms-breadcrumbs a{color:var(--cms-brand);text-decoration:none}.cms-breadcrumbs a:hover{text-decoration:underline}
.cms-eyebrow{display:inline-block;font-size:.75rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--cms-brand);text-decoration:none}
.cms-title{font-size:clamp(1.9rem,4.5vw,2.75rem);line-height:1.15;font-weight:800;color:var(--cms-brand-900);margin:.35rem 0 .75rem;letter-spacing:-.01em;overflow-wrap:anywhere}
.cms-lead{font-size:1.15rem;line-height:1.6;color:var(--cms-muted);margin:0 0 .75rem}
.cms-byline,.cms-meta{font-size:.85rem;color:var(--cms-muted);margin:.25rem 0}
.cms-byline a{color:var(--cms-brand);font-weight:600}
.cms-header{margin-bottom:1.25rem}
.cms-figure{margin:1.5rem 0}.cms-figure img{display:block;width:100%;height:auto;border-radius:.9rem;background:var(--cms-soft)}
.cms-figure.is-wide{margin-left:-2rem;margin-right:-2rem}
@media (max-width:820px){.cms-figure.is-wide{margin-left:0;margin-right:0}}
.cms-figure figcaption{font-size:.82rem;color:var(--cms-muted);margin-top:.5rem}.cms-credit{opacity:.8}.cms-credit::before{content:"· "}
.cms-answer{border-left:4px solid var(--cms-brand);background:var(--cms-brand-50);padding:1rem 1.25rem;border-radius:0 .75rem .75rem 0;margin:1.25rem 0}
.cms-answer p{margin:0;font-size:1.05rem;line-height:1.6}.cms-answer-label{font-size:.72rem!important;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--cms-brand);margin-bottom:.25rem!important}
.cms-toc{background:var(--cms-soft);border:1px solid var(--cms-line);border-radius:.75rem;padding:1rem 1.25rem;margin:1.25rem 0;font-size:.92rem}
.cms-toc-title{font-weight:800;margin:0 0 .4rem}.cms-toc ol{margin:0;padding-left:1.1rem}.cms-toc li{margin:.25rem 0}.cms-toc .is-l3{margin-left:1rem;list-style:circle}.cms-toc a{color:var(--cms-brand);text-decoration:none}.cms-toc a:hover{text-decoration:underline}

.cms-prose{font-size:1.06rem;line-height:1.75}
.cms-prose>*+*{margin-top:1.1rem}
.cms-h2{font-size:1.55rem;line-height:1.25;font-weight:800;color:var(--cms-brand-900);margin-top:2.25rem!important;scroll-margin-top:1rem}
.cms-h3{font-size:1.2rem;line-height:1.3;font-weight:700;color:var(--cms-brand-900);margin-top:1.75rem!important;scroll-margin-top:1rem}
.cms-rich p{margin:0 0 1rem}.cms-rich ul,.cms-rich ol{margin:0 0 1rem;padding-left:1.4rem}.cms-rich ul{list-style:disc}.cms-rich ol{list-style:decimal}.cms-rich li{margin:.3rem 0}
.cms-rich a,.cms-sources a,.cms-latest h3 a{color:var(--cms-brand);text-decoration:underline;text-underline-offset:2px}
.cms-rich h2{font-size:1.5rem;font-weight:800;color:var(--cms-brand-900);margin:2rem 0 .75rem}.cms-rich h3{font-size:1.2rem;font-weight:700;margin:1.5rem 0 .5rem}.cms-rich h4{font-weight:700;margin:1.25rem 0 .4rem}
.cms-rich img{max-width:100%;height:auto;border-radius:.6rem}.cms-rich iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:.75rem}
.cms-rich blockquote{border-left:4px solid var(--cms-line);padding-left:1rem;color:var(--cms-muted);margin:1rem 0}
.cms-rich table{width:100%;border-collapse:collapse}.cms-rich th,.cms-rich td{border:1px solid var(--cms-line);padding:.5rem .7rem;text-align:left}
.cms-rich a.btn-primary,.cms-rich a.btn-secondary{text-decoration:none}
.cms-takeaways{background:#fffbeb;border:1px solid #fde68a;border-radius:.75rem;padding:1rem 1.25rem}.cms-takeaways-title{font-weight:800;margin:0 0 .4rem;color:#78350f}.cms-takeaways ul{margin:0;padding-left:1.2rem;list-style:disc}.cms-takeaways li{margin:.3rem 0}
.cms-faq-item{border:1px solid var(--cms-line);border-radius:.75rem;padding:.9rem 1.1rem;margin:.75rem 0;background:#fff}.cms-faq-item h3{font-size:1.05rem;font-weight:700;margin:0 0 .35rem;color:var(--cms-brand-900)}.cms-faq-item p{margin:0}
.cms-steps{list-style:none;counter-reset:s;margin:1rem 0 0;padding:0}.cms-steps li{counter-increment:s;position:relative;padding:0 0 1.1rem 3rem}.cms-steps li::before{content:counter(s);position:absolute;left:0;top:0;width:2.1rem;height:2.1rem;border-radius:50%;background:var(--cms-brand);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center}.cms-steps p{margin:.2rem 0 0}.cms-steps img{max-width:100%;height:auto;border-radius:.6rem;margin-top:.5rem}
.cms-table-wrap{overflow-x:auto;border:1px solid var(--cms-line);border-radius:.75rem}.cms-table{width:100%;border-collapse:collapse;font-size:.95rem}.cms-table caption{caption-side:top;text-align:left;font-weight:700;padding:.7rem .9rem;background:var(--cms-soft)}.cms-table th,.cms-table td{padding:.6rem .9rem;border-top:1px solid var(--cms-line);text-align:left;vertical-align:top}.cms-table thead th{background:var(--cms-brand-50);color:var(--cms-brand-900)}.cms-table tbody th{font-weight:700;background:var(--cms-soft)}
.cms-callout{border-radius:.75rem;padding:.9rem 1.1rem;border:1px solid;font-size:1rem}.cms-callout p{margin:0}.cms-callout-title{font-weight:800;margin-bottom:.2rem!important}
.cms-callout.is-info{background:#eff6ff;border-color:#bfdbfe;color:#1e3a8a}.cms-callout.is-tip{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.cms-callout.is-warning{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.cms-callout.is-exam{background:var(--cms-brand-50);border-color:#c7cbfa;color:var(--cms-brand-900)}
.cms-quote{border-left:4px solid var(--cms-accent);padding:.25rem 0 .25rem 1.1rem;font-size:1.15rem;font-style:italic}.cms-quote p{margin:0}.cms-quote footer{font-size:.9rem;font-style:normal;color:var(--cms-muted);margin-top:.35rem}
.cms-math{margin:0}
.cms-sources{margin-top:2.25rem}.cms-sources ul{padding-left:1.2rem;list-style:disc}.cms-sources li{margin:.3rem 0}
.cms-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin:1.5rem 0 0}.cms-tags a{font-size:.82rem;color:var(--cms-muted);background:#f1f5f9;padding:.25rem .6rem;border-radius:999px;text-decoration:none}.cms-tags a:hover{background:var(--cms-brand-50);color:var(--cms-brand)}
.cms-author{margin-top:2rem;padding:1.1rem 1.25rem;border:1px solid var(--cms-line);border-radius:.9rem;background:var(--cms-soft);font-size:.95rem}.cms-author p{margin:.25rem 0}.cms-author-name{font-weight:700}.cms-author a{color:var(--cms-brand)}
.cms-preview-banner{background:#fef3c7;color:#78350f;font-weight:700;text-align:center;padding:.6rem 1rem;border-radius:.6rem;margin-bottom:1rem}

/* ---- video (click to load: no third-party request until the visitor presses play) ---- */
.cms-video-wrap{margin:1.5rem 0}.cms-video{position:relative;aspect-ratio:16/9;background:#0f172a;border-radius:.9rem;overflow:hidden}
.cms-video iframe,.cms-video-file{width:100%;height:100%;border:0;display:block;border-radius:.9rem}.cms-video-file{height:auto;background:#000}
.cms-video-link{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e1b6e,#3b2bd1)}.cms-video-link img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cms-play{position:relative;width:4.2rem;height:4.2rem;border-radius:50%;background:rgba(255,255,255,.95);color:var(--cms-brand-900);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 24px rgba(0,0,0,.35);transition:transform .15s}.cms-video-link:hover .cms-play,.cms-video-link:focus-visible .cms-play{transform:scale(1.08)}
.cms-transcript{margin-top:.6rem;font-size:.92rem;color:var(--cms-muted)}.cms-transcript summary{cursor:pointer;font-weight:600;color:var(--cms-brand)}.cms-transcript div{margin-top:.5rem;line-height:1.6}

/* ---- calls to action ---- */
.cms-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;border-radius:1rem;padding:1.4rem 1.6rem;margin:2rem 0}
.cms-cta-heading{font-size:1.25rem;font-weight:800;margin:0 0 .25rem}.cms-cta p{margin:0}.cms-cta-text{flex:1 1 18rem}.cms-cta-actions{display:flex;flex-wrap:wrap;gap:.6rem}
.cms-cta.is-banner{background:linear-gradient(135deg,var(--cms-brand-900),var(--cms-brand-600));color:#fff}.cms-cta.is-banner .btn-secondary{background:#fff;color:var(--cms-brand-900);border-color:#fff}.cms-cta.is-banner .btn-primary{background:var(--cms-accent);color:#422006}
.cms-cta.is-card{background:#fff;border:1px solid var(--cms-line);box-shadow:0 6px 20px rgba(15,23,42,.08)}.cms-cta.is-card .cms-cta-heading{color:var(--cms-brand-900)}
.cms-cta.is-inline{background:var(--cms-brand-50);border:1px solid #c7cbfa;padding:1rem 1.25rem}.cms-cta.is-inline .cms-cta-heading{font-size:1.05rem;color:var(--cms-brand-900)}

/* ---- listings ---- */
.cms-listing-header{margin-bottom:1.5rem}.cms-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.cms-chips a{padding:.4rem .85rem;border-radius:999px;background:#fff;border:1px solid var(--cms-line);color:var(--cms-ink);font-size:.88rem;font-weight:600;text-decoration:none}.cms-chips a span{opacity:.6;font-weight:500}.cms-chips a:hover{border-color:var(--cms-brand)}.cms-chips a.is-active{background:var(--cms-brand-900);border-color:var(--cms-brand-900);color:#fff}
.cms-search{display:flex;gap:.5rem;max-width:26rem}.cms-search input{flex:1;border:1px solid #cbd5e1;border-radius:.6rem;padding:.55rem .8rem;font:inherit}
.cms-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(17.5rem,1fr))}
.cms-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--cms-line);border-radius:1rem;overflow:hidden;transition:box-shadow .15s,transform .15s}.cms-card:hover{box-shadow:0 10px 28px rgba(15,23,42,.1);transform:translateY(-2px)}
.cms-card-media{display:block;aspect-ratio:16/9;background:linear-gradient(135deg,var(--cms-brand-50),#dde1fb);overflow:hidden}.cms-card-media img{width:100%;height:100%;object-fit:cover;display:block}.cms-card-placeholder{display:flex;height:100%;align-items:center;justify-content:center;font-size:2.4rem;font-weight:800;color:var(--cms-brand)}
.cms-card-body{padding:1rem 1.1rem 1.15rem;display:flex;flex-direction:column;gap:.35rem;flex:1}.cms-card h3{font-size:1.1rem;line-height:1.3;font-weight:800;margin:0}.cms-card h3 a{color:var(--cms-brand-900);text-decoration:none}.cms-card h3 a:hover{text-decoration:underline}.cms-card p{margin:0;font-size:.92rem;color:var(--cms-muted);line-height:1.5}.cms-card .cms-meta{margin-top:auto;padding-top:.35rem}
.cms-pager{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:2rem;font-weight:600}.cms-pager a{color:var(--cms-brand);text-decoration:none}.cms-empty{padding:2rem;text-align:center;color:var(--cms-muted)}
.cms-author-hero{display:flex;gap:1.25rem;align-items:flex-start}.cms-author-hero img{width:6rem;height:6rem;border-radius:50%;object-fit:cover}
.cms-test-list{list-style:none;margin:.5rem 0;padding:0}.cms-test-list li{display:flex;flex-direction:column;border-bottom:1px solid var(--cms-line);padding:.6rem 0}.cms-test-list span{font-size:.88rem;color:var(--cms-muted)}
.cms-latest{margin-top:2.5rem}.cms-latest .cms-h2{margin-top:0!important}
@media print{.cms-nav,.cms-cta,.cms-toc,.cms-nav-toggle{display:none!important}}
