/* All-in-One LMS — public stylesheet. Brand colours come from theme.css (generated from settings). */
@font-face{font-family:"Poppins";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/poppins-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/poppins-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/poppins-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/poppins-latin-700-normal.woff2) format("woff2")}

:root{
  --color-bg:#fff;--color-surface:#F8FAFC;--color-surface-2:#F1F5F9;--color-text:#0F172A;--color-text-muted:#475569;--color-border:#E2E8F0;
  --color-success:#15803D;--color-warning:#B45309;--color-danger:#B91C1C;--color-info:#0369A1;
  --fs-xs:.8125rem;--fs-sm:.875rem;--fs-base:1rem;--fs-lg:1.125rem;--fs-xl:clamp(1.2rem,1.05rem + .6vw,1.45rem);
  --fs-2xl:clamp(1.5rem,1.2rem + 1.2vw,2rem);--fs-3xl:clamp(1.85rem,1.35rem + 2vw,2.6rem);--fs-4xl:clamp(2.1rem,1.4rem + 3vw,3.35rem);
  --lh-tight:1.15;--lh-snug:1.35;--lh-body:1.7;
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;
  --section-y:clamp(3.25rem,2rem + 5vw,6.5rem);
  --radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-pill:999px;
  --shadow-sm:0 1px 2px rgb(15 23 42/.06);--shadow-md:0 6px 20px rgb(15 23 42/.07);--shadow-lg:0 20px 50px rgb(15 23 42/.12);
  --container:1200px;--container-wide:1360px;--measure:70ch;--gutter:clamp(1rem,4vw,2rem);
  --ease:cubic-bezier(.2,.8,.2,1);--dur-fast:120ms;--dur:200ms;--dur-slow:450ms;--header-h:72px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 1rem)}
body{margin:0;font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-body);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,video,picture{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{line-height:var(--lh-tight);font-weight:600;letter-spacing:-.015em;margin:0 0 var(--space-4);text-wrap:balance}
h1{font-size:var(--fs-4xl);font-weight:700}h2{font-size:var(--fs-3xl)}h3{font-size:var(--fs-xl)}h4{font-size:var(--fs-lg)}
p{margin:0 0 var(--space-4)}
a{color:var(--color-primary);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--color-primary-hover)}
:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}
button{font:inherit;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:1rem;top:-100px;z-index:100;background:var(--color-text);color:#fff;padding:.6rem 1rem;border-radius:var(--radius-sm)}
.skip-link:focus{top:1rem}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.container--narrow{max-width:calc(var(--measure) + 2 * var(--gutter))}
.container--wide{max-width:var(--container-wide)}
.center{text-align:center}.muted{color:var(--color-text-muted)}
.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-7{margin-top:var(--space-7)}
.icon{width:1.15em;height:1.15em;display:inline-block;vertical-align:-.2em;flex-shrink:0}
.icon--sm{width:.95em;height:.95em}
.linklike{background:none;border:0;padding:0;color:inherit;text-decoration:underline;text-underline-offset:3px}

/* Buttons */
.btn{--btn-bg:var(--color-surface-2);--btn-fg:var(--color-text);display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.35rem;border-radius:var(--radius-btn,10px);border:1.5px solid transparent;background:var(--btn-bg);color:var(--btn-fg);font-weight:600;font-size:var(--fs-sm);line-height:1.2;text-decoration:none;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),transform var(--dur-fast) var(--ease),box-shadow var(--dur) var(--ease);white-space:nowrap}
.btn:hover{transform:translateY(-1px);color:var(--btn-fg)}
.btn:active{transform:none}
.btn--primary{--btn-bg:var(--color-primary);--btn-fg:var(--color-primary-contrast);box-shadow:0 6px 18px -6px var(--color-primary)}
.btn--primary:hover{--btn-bg:var(--color-primary-hover)}
.btn--accent{--btn-bg:var(--color-accent);--btn-fg:var(--color-accent-contrast)}
.btn--ghost{--btn-bg:transparent;--btn-fg:var(--color-text);border-color:var(--color-border)}
.btn--ghost:hover{border-color:var(--color-primary);--btn-fg:var(--color-primary)}
.btn--outline{--btn-bg:transparent;border-color:currentColor;--btn-fg:var(--color-text)}
.btn--light{--btn-bg:#fff;--btn-fg:var(--color-secondary)}
.btn--outline-light{--btn-bg:transparent;--btn-fg:#fff;border-color:rgb(255 255 255/.5)}
.btn--outline-light:hover{border-color:#fff}
.btn--sm{padding:.55rem 1rem;font-size:var(--fs-xs)}
.btn--lg{padding:1rem 1.6rem;font-size:var(--fs-base)}
.btn--block{width:100%}
.btn[disabled],.btn.is-loading{opacity:.65;pointer-events:none}
.link-arrow{font-weight:600;text-decoration:none;display:inline-flex;gap:.35rem;align-items:center}

/* Header */
.site-header{position:relative;z-index:50;background:rgb(255 255 255/.92);border-bottom:1px solid transparent;transition:border-color var(--dur),box-shadow var(--dur)}
.site-header--sticky{position:sticky;top:0;backdrop-filter:saturate(1.6) blur(12px);-webkit-backdrop-filter:saturate(1.6) blur(12px)}
.site-header.is-scrolled{border-bottom-color:var(--color-border);box-shadow:var(--shadow-sm)}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:var(--header-h)}
.brand{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--color-text);font-weight:700;font-size:1.1rem;letter-spacing:-.02em}
.brand__mark{color:var(--color-primary);display:inline-flex}
.brand__logo{height:40px;width:auto}
.nav{display:flex;align-items:center}
.nav__toggle{display:none;background:none;border:0;padding:.5rem;color:var(--color-text)}
.nav__toggle .icon{width:26px;height:26px}.nav__toggle .icon--close{display:none}
.nav__panel{display:flex;align-items:center;gap:1.5rem}
.nav__list{display:flex;gap:.25rem;list-style:none;margin:0;padding:0}
.nav__item{position:relative}
.nav__link{display:inline-flex;align-items:center;gap:.25rem;padding:.55rem .8rem;border-radius:8px;border:0;background:none;color:var(--color-text);font-weight:500;font-size:var(--fs-sm);text-decoration:none}
.nav__link:hover,.nav__link[aria-expanded="true"],.nav__link.is-active{color:var(--color-primary);background:var(--color-primary-50)}
.nav__link .icon{transition:transform var(--dur)}
.nav__link[aria-expanded="true"] .icon{transform:rotate(180deg)}
.nav__actions{display:flex;align-items:center;gap:.75rem}
.nav__search{display:inline-flex;padding:.5rem;color:var(--color-text-muted);border-radius:8px}
.nav__search:hover{color:var(--color-primary);background:var(--color-primary-50)}
.mega{position:absolute;left:50%;top:calc(100% + 10px);transform:translateX(-50%) translateY(6px);opacity:0;visibility:hidden;transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease),visibility var(--dur);z-index:60}
.nav__item.is-open .mega{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.mega__inner{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:1.25rem;display:grid;gap:1rem 1.5rem;min-width:280px}
.mega__inner--cols-2{grid-template-columns:repeat(2,minmax(250px,1fr))}.mega__inner--cols-3{grid-template-columns:repeat(3,minmax(200px,1fr))}
.mega__col ul{list-style:none;margin:0;padding:0}
.mega__heading{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);font-weight:600;margin:0 0 .5rem .6rem}
.mega__link{display:flex;gap:.75rem;padding:.55rem .6rem;border-radius:10px;text-decoration:none;color:var(--color-text)}
.mega__link:hover{background:var(--color-surface)}
.mega__link strong{display:block;font-weight:500;font-size:var(--fs-sm)}
.mega__link small{display:block;color:var(--color-text-muted);font-size:var(--fs-xs);line-height:1.4}
.mega__icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;background:var(--color-primary-50);color:var(--color-primary);flex-shrink:0}
.mega__all{grid-column:1/-1;border-top:1px solid var(--color-border);padding:.75rem .6rem 0;font-weight:600;font-size:var(--fs-sm);text-decoration:none;display:flex;align-items:center;gap:.35rem}

@media (max-width:1023px){
  .nav__toggle{display:inline-flex}
  .nav__panel{position:fixed;inset:var(--header-h) 0 0;background:#fff;flex-direction:column;align-items:stretch;gap:1rem;padding:1rem var(--gutter) 2rem;overflow-y:auto;transform:translateX(100%);transition:transform var(--dur-slow) var(--ease);visibility:hidden}
  .nav.is-open .nav__panel{transform:none;visibility:visible}
  .nav.is-open .icon--open{display:none}.nav.is-open .icon--close{display:block}
  .nav__list{flex-direction:column}
  .nav__link{width:100%;justify-content:space-between;padding:.85rem .5rem;font-size:var(--fs-base)}
  .mega{position:static;transform:none;opacity:1;visibility:visible;display:none}
  .nav__item.is-open .mega{display:block;transform:none}
  .mega__inner{box-shadow:none;border:0;padding:.25rem 0 .75rem;grid-template-columns:1fr!important;min-width:0}
  .nav__actions{flex-direction:column;align-items:stretch}
  .nav__actions .btn{width:100%;padding:.9rem}
  .nav__search{display:none}
  body.nav-open{overflow:hidden}
}

/* Announcement */
.announce{background:var(--color-secondary);color:var(--color-secondary-contrast);font-size:var(--fs-sm)}
.announce__inner{display:flex;align-items:center;justify-content:center;gap:1rem;padding-block:.55rem;position:relative;padding-right:3rem}
.announce p{margin:0}
.announce__badge{background:var(--color-accent);color:var(--color-accent-contrast);border-radius:var(--radius-pill);padding:.1rem .6rem;font-weight:600;font-size:var(--fs-xs);margin-left:.25rem}
.announce__link{color:inherit;font-weight:600;white-space:nowrap}
.announce__close{position:absolute;right:var(--gutter);background:none;border:0;color:inherit;opacity:.7;padding:.25rem}
.announce__close:hover{opacity:1}

/* Sections */
.section{padding-block:var(--section-y)}
.section--tight{padding-block:calc(var(--section-y) * .55)}
.section--muted{background:var(--color-surface)}
.section--header{padding-bottom:0}
.section__head{max-width:760px;margin:0 auto var(--space-7);text-align:center}
.section__head--row{display:flex;align-items:end;justify-content:space-between;max-width:none;text-align:left;gap:1rem;flex-wrap:wrap}
.section__head--row .section__title{margin:0}
.section__title{font-size:var(--fs-3xl)}
.section__intro{font-size:var(--fs-lg);color:var(--color-text-muted);margin:0}
.section__more{text-align:center;margin:var(--space-7) 0 0}
.eyebrow{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--fs-xs);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--color-primary);margin:0 0 .75rem;text-decoration:none}
.page-header{padding:clamp(2.5rem,2rem + 3vw,4.5rem) 0 clamp(1.5rem,1rem + 2vw,3rem);background:radial-gradient(1200px 400px at 80% -10%,var(--color-primary-50),transparent 70%),linear-gradient(180deg,var(--color-surface),#fff)}
.page-header h1{max-width:22ch}
.page-header__lead{font-size:var(--fs-lg);color:var(--color-text-muted);max-width:65ch;margin:0}
.center .page-header__lead{margin-inline:auto}

/* Breadcrumbs */
.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:.35rem;list-style:none;margin:0 0 1.25rem;padding:0;font-size:var(--fs-xs);color:var(--color-text-muted)}
.breadcrumbs li:not(:last-child)::after{content:"/";margin-left:.35rem;opacity:.5}
.breadcrumbs a{color:inherit;text-decoration:none}.breadcrumbs a:hover{color:var(--color-primary)}

/* Hero */
.hero{position:relative;overflow:hidden;padding:clamp(3rem,2rem + 5vw,6.5rem) 0 clamp(3rem,2rem + 4vw,5.5rem);background:radial-gradient(900px 500px at 85% 20%,var(--color-primary-50),transparent 65%),radial-gradient(600px 400px at 10% 90%,var(--color-accent-50),transparent 70%),#fff}
.hero__inner{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(2rem,4vw,4rem);align-items:center}
.hero--centered .hero__inner{grid-template-columns:1fr;text-align:center;max-width:900px}
.hero--centered .hero__actions,.hero--centered .hero__points{justify-content:center}
.hero--centered .breadcrumbs ol{justify-content:center}
.hero__title{font-size:var(--fs-4xl);max-width:20ch}
.hero--centered .hero__title{margin-inline:auto}
.hero__lead{font-size:clamp(1.05rem,1rem + .35vw,1.25rem);color:var(--color-text-muted);max-width:60ch;margin-bottom:var(--space-6)}
.hero--centered .hero__lead{margin-inline:auto}
.hero__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:var(--space-5)}
.hero__points{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;list-style:none;margin:0;padding:0;font-size:var(--fs-sm);color:var(--color-text-muted)}
.hero__points li{display:inline-flex;align-items:center;gap:.4rem}
.hero__points .icon{color:var(--color-accent)}
.hero__visual{position:relative}
.hero__img{border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}
@media (max-width:900px){.hero__inner{grid-template-columns:1fr}.hero__visual{max-width:520px;margin-inline:auto;width:100%}}

/* Constellation SVG */
.cst{width:100%;height:auto;color:var(--color-primary);overflow:visible}
.cst__orbit{fill:none;stroke:var(--color-primary-200);stroke-width:1.2;stroke-dasharray:4 6}
.cst__orbit--inner{stroke:var(--color-accent);opacity:.35}
.cst__line{stroke:var(--color-primary-200);stroke-width:1.2;stroke-dasharray:6 8;animation:cst-flow 3.2s linear infinite}
.cst__core circle{fill:var(--color-primary);filter:drop-shadow(0 10px 24px rgb(15 23 42/.25))}
.cst__core-t1{fill:var(--color-primary-contrast);font:600 15px var(--font-sans)}
.cst__core-t2{fill:var(--color-primary-contrast);font:400 9.5px var(--font-sans);opacity:.85}
.cst__node rect{fill:#fff;stroke:var(--color-border);filter:drop-shadow(0 6px 14px rgb(15 23 42/.08))}
.cst__node text{fill:var(--color-text);font:500 12.5px var(--font-sans)}
.cst__node{animation:cst-float 6s var(--ease) infinite alternate;transform-box:fill-box;transform-origin:center}
@keyframes cst-flow{to{stroke-dashoffset:-56}}
@keyframes cst-float{from{transform:translateY(-3px)}to{transform:translateY(3px)}}

/* Grid & cards */
.grid{display:grid;gap:clamp(1rem,2vw,1.5rem)}
.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1023px){.grid--3,.grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.grid--2,.grid--3,.grid--4{grid-template-columns:1fr}}
.card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--dur),box-shadow var(--dur),transform var(--dur) var(--ease)}
.card:hover{border-color:var(--color-primary-200);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.card__media{aspect-ratio:16/9;overflow:hidden;background:var(--color-surface-2)}
.card__media img{width:100%;height:100%;object-fit:cover}
.card__icon{display:inline-flex;margin:1.5rem 1.5rem 0;width:44px;height:44px;border-radius:12px;align-items:center;justify-content:center;background:var(--color-primary-50);color:var(--color-primary)}
.card__body{padding:1.4rem 1.5rem 1.5rem;display:flex;flex-direction:column;flex:1}
.card__meta{font-size:var(--fs-xs);color:var(--color-text-muted);margin-bottom:.5rem}
.card__title{font-size:var(--fs-lg);margin-bottom:.5rem}
.card__link{color:var(--color-text);text-decoration:none}
.card__link::after{content:"";position:absolute;inset:0}
.card__text{color:var(--color-text-muted);font-size:var(--fs-sm);margin-bottom:1rem}
.card__more{margin-top:auto;font-size:var(--fs-sm);font-weight:600;color:var(--color-primary);display:inline-flex;gap:.3rem;align-items:center}

/* Features */
.feature{position:relative}
.features--cards .feature{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;transition:border-color var(--dur),box-shadow var(--dur)}
.features--cards .feature:hover{border-color:var(--color-primary-200);box-shadow:var(--shadow-md)}
.section--muted .features--cards .feature{background:#fff}
.feature__icon{display:inline-flex;width:44px;height:44px;border-radius:12px;align-items:center;justify-content:center;background:var(--color-primary-50);color:var(--color-primary);margin-bottom:1rem}
.feature__icon .icon{width:22px;height:22px}
.features--plain .feature{display:grid;grid-template-columns:auto 1fr;column-gap:.9rem}
.features--plain .feature__icon{width:30px;height:30px;background:none;color:var(--color-accent);margin:0;grid-row:span 2}
.feature__num{font-size:var(--fs-2xl);font-weight:700;color:var(--color-primary-200);display:block;margin-bottom:.5rem}
.feature__title{font-size:var(--fs-lg);margin-bottom:.4rem}
.feature__title a{color:inherit;text-decoration:none}.feature__title a:hover{color:var(--color-primary)}
.feature__title a::after{content:"";position:absolute;inset:0}
.feature__text{color:var(--color-text-muted);font-size:var(--fs-sm);margin:0}

/* Paths */
.paths{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.path{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:clamp(1.5rem,3vw,2.5rem);box-shadow:var(--shadow-sm)}
.path--right{background:linear-gradient(160deg,var(--color-secondary),var(--color-primary-900));color:#fff;border-color:transparent}
.path--right p{color:rgb(255 255 255/.8)}
.path__title{font-size:var(--fs-2xl)}
.path__links{list-style:none;margin:1.25rem 0 0;padding:0;display:grid;gap:.25rem}
.path__links a{display:flex;justify-content:space-between;align-items:center;padding:.7rem .9rem;border-radius:10px;text-decoration:none;font-weight:500;color:inherit;background:var(--color-surface)}
.path--right .path__links a{background:rgb(255 255 255/.08)}
.path__links a:hover{background:var(--color-primary-50);color:var(--color-primary)}
.path--right .path__links a:hover{background:rgb(255 255 255/.16);color:#fff}
@media (max-width:800px){.paths{grid-template-columns:1fr}}

/* Process */
.process{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem;counter-reset:step}
.process__step{position:relative;padding:1.5rem;border-radius:var(--radius-lg);background:var(--color-surface);counter-increment:step}
.process__step::before{content:counter(step);display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:50%;background:var(--color-primary);color:var(--color-primary-contrast);font-weight:600;margin-bottom:1rem}
.process__title{font-size:var(--fs-lg);margin-bottom:.35rem}
.process__duration{font-size:var(--fs-xs);color:var(--color-primary);font-weight:600;margin-bottom:.5rem}
.process__step p:last-child{font-size:var(--fs-sm);color:var(--color-text-muted);margin:0}

/* FAQ */
.faq{display:grid;gap:.75rem}
.faq__item{border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff}
.faq__q{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.1rem 1.25rem;font-weight:600}
.faq__q::-webkit-details-marker{display:none}
.faq__icon{transition:transform var(--dur);color:var(--color-primary)}
.faq__item[open] .faq__icon{transform:rotate(45deg)}
.faq__a{padding:0 1.25rem 1.1rem;color:var(--color-text-muted)}
.faq__a p:last-child{margin:0}

/* CTA */
.cta-band{background:radial-gradient(800px 300px at 90% 0,rgb(255 255 255/.12),transparent 70%),linear-gradient(135deg,var(--color-primary),var(--color-primary-900));color:#fff;padding-block:clamp(3rem,2rem + 4vw,5rem)}
.cta-band__inner{text-align:center;max-width:820px}
.cta-band .eyebrow{color:rgb(255 255 255/.8)}
.cta-band__title{font-size:var(--fs-3xl)}
.cta-band p{color:rgb(255 255 255/.85);font-size:var(--fs-lg)}
.cta-band .cta-box__actions{justify-content:center}
.cta-box{background:var(--color-primary-50);border:1px solid var(--color-primary-100);border-radius:var(--radius-xl);padding:clamp(1.5rem,3vw,2.5rem);margin-block:2rem}
.cta-box__title{font-size:var(--fs-2xl)}
.cta-box__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem}

/* Forms */
.section--form{background:linear-gradient(180deg,#fff,var(--color-surface))}
.form-split{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,4vw,4rem);align-items:start}
@media (max-width:900px){.form-split{grid-template-columns:1fr}}
.form-card{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:clamp(1.25rem,3vw,2rem);box-shadow:var(--shadow-md)}
.checklist{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;gap:.6rem}
.checklist li{display:flex;gap:.6rem;align-items:flex-start}
.checklist .icon{color:var(--color-accent);margin-top:.2rem}
.lead-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
.lead-form--compact .lead-form__grid{grid-template-columns:1fr}
.field{grid-column:1/-1;margin-bottom:1rem}
.field--half{grid-column:span 1}
@media (max-width:560px){.field--half{grid-column:1/-1}}
.field label{display:block;font-weight:500;font-size:var(--fs-sm);margin-bottom:.35rem}
.field .req{color:var(--color-danger)}.field .opt{color:var(--color-text-muted);font-weight:400;font-size:var(--fs-xs)}
.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea,.search-form input,.newsletter input{width:100%;padding:.75rem .9rem;border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:#fff;transition:border-color var(--dur),box-shadow var(--dur);min-height:46px}
.field textarea{resize:vertical;min-height:120px}
.field input:focus,.field select:focus,.field textarea:focus,.search-form input:focus,.newsletter input:focus{outline:0;border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary-100)}
.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:var(--color-danger)}
.field__error{color:var(--color-danger);font-size:var(--fs-xs);margin:.3rem 0 0;min-height:0}
.field__error:empty{display:none}
.field__hint{color:var(--color-text-muted);font-size:var(--fs-xs)}
.field--check label{display:flex;gap:.6rem;align-items:flex-start;font-weight:400;font-size:var(--fs-sm)}
.field--check input{width:18px;height:18px;margin-top:.2rem;accent-color:var(--color-primary);flex-shrink:0}
.form-status{margin:.75rem 0 0;font-size:var(--fs-sm);font-weight:500}
.form-status:empty{display:none}
.form-status.is-success{color:var(--color-success)}.form-status.is-error{color:var(--color-danger)}
.lead-form__note{display:flex;gap:.4rem;align-items:center;font-size:var(--fs-xs);color:var(--color-text-muted);margin:1rem 0 0}
.lead-form.is-done .lead-form__grid,.lead-form.is-done .field,.lead-form.is-done [data-submit]{display:none}
.stack>*+*{margin-top:1rem}

/* Calculator */
.calc{max-width:880px;margin-inline:auto;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:clamp(1.25rem,3vw,2.5rem)}
.calc__progress{display:flex;gap:.4rem;list-style:none;margin:0 0 1.5rem;padding:0}
.calc__progress li{flex:1;height:6px;border-radius:3px;background:var(--color-surface-2);transition:background var(--dur)}
.calc__progress li.is-done{background:var(--color-primary)}
.calc__step{border:0;margin:0;padding:0}
.calc__legend{font-size:var(--fs-2xl);font-weight:600;padding:0;margin-bottom:.25rem;line-height:1.2}
.calc__count{display:block;font-size:var(--fs-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);margin-bottom:.4rem}
.calc__help{color:var(--color-text-muted);font-size:var(--fs-sm)}
.calc__options{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.75rem;margin:1.25rem 0}
.option-card{position:relative;display:block;cursor:pointer}
.option-card input{position:absolute;opacity:0;inset:0}
.option-card__body{display:block;height:100%;padding:1rem 1.1rem;border:1.5px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--dur),background var(--dur)}
.option-card__body strong{display:block;font-weight:500;font-size:var(--fs-sm)}
.option-card__body small{display:block;color:var(--color-text-muted);font-size:var(--fs-xs);margin-top:.2rem}
.option-card input:checked+.option-card__body{border-color:var(--color-primary);background:var(--color-primary-50);box-shadow:inset 0 0 0 1px var(--color-primary)}
.option-card input:focus-visible+.option-card__body{outline:2px solid var(--color-primary);outline-offset:2px}
.calc__nav{display:flex;gap:.75rem;justify-content:flex-end}
.calc__range{font-size:clamp(2rem,1.5rem + 3vw,3.2rem);font-weight:700;letter-spacing:-.02em;margin:.25rem 0 .75rem;color:var(--color-primary)}
.calc__range small{font-size:var(--fs-base);color:var(--color-text-muted);font-weight:500}
.calc__bar{height:10px;border-radius:5px;background:var(--color-surface-2);overflow:hidden;margin-bottom:1rem}
.calc__bar span{display:block;height:100%;background:linear-gradient(90deg,var(--color-accent),var(--color-primary));border-radius:5px;transform-origin:left;transition:width 900ms var(--ease)}
.calc__disclaimer{font-size:var(--fs-sm);color:var(--color-text-muted);background:var(--color-surface);padding:1rem;border-radius:var(--radius-md)}
.calc__summary{font-size:var(--fs-sm);color:var(--color-text-muted);padding-left:1.1rem}
.calc__lead{border-top:1px solid var(--color-border);margin-top:1.5rem;padding-top:1.5rem}

/* Prose (articles, rich text) */
.prose{font-size:1.0625rem;max-width:var(--measure)}
.prose>*+*{margin-top:1.1em}
.prose h2{font-size:var(--fs-2xl);margin-top:2em}
.prose h3{font-size:var(--fs-xl);margin-top:1.6em}
.prose h2:first-child,.prose h3:first-child{margin-top:0}
.prose ul,.prose ol{padding-left:1.35rem}
.prose li+li{margin-top:.4em}
.prose blockquote{margin:1.5em 0;padding:.25em 0 .25em 1.25em;border-left:4px solid var(--color-primary);color:var(--color-text-muted);font-style:italic}
.prose img{border-radius:var(--radius-md)}
.prose code{background:var(--color-surface-2);padding:.1em .35em;border-radius:5px;font-size:.9em}
.prose pre{background:#0B1220;color:#E2E8F0;padding:1rem;border-radius:var(--radius-md);overflow-x:auto;font-size:.9rem}
.prose pre code{background:none;padding:0}
.prose table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.prose th,.prose td{border-bottom:1px solid var(--color-border);padding:.6rem .5rem;text-align:left}
.prose hr{border:0;border-top:1px solid var(--color-border);margin:2em 0}

/* Article */
.article__header{padding:clamp(2rem,1.5rem + 3vw,4rem) 0 2rem;background:linear-gradient(180deg,var(--color-surface),#fff)}
.article__title{font-size:var(--fs-4xl)}
.article__lead{font-size:var(--fs-lg);color:var(--color-text-muted)}
.article__meta{display:flex;flex-wrap:wrap;gap:.35rem 1.25rem;font-size:var(--fs-sm);color:var(--color-text-muted)}
.article__meta a{color:var(--color-text);font-weight:500}
.article__hero{margin:2rem auto 0}
.article__hero img{border-radius:var(--radius-xl);width:100%}
.article__layout{display:grid;grid-template-columns:minmax(0,1fr);gap:3rem;padding-block:2.5rem 4rem;max-width:calc(var(--measure) + 2 * var(--gutter))}
.article__layout.has-toc{grid-template-columns:240px minmax(0,1fr);max-width:calc(var(--measure) + 300px + 2 * var(--gutter))}
.article__body .section{padding-block:0}
.article__body .container,.article__body .container--narrow{padding-inline:0;max-width:none}
.article__body .section--tight{padding-block:.5rem}
.toc{position:sticky;top:calc(var(--header-h) + 1.5rem);align-self:start;font-size:var(--fs-sm)}
.toc summary{font-weight:600;cursor:pointer;margin-bottom:.5rem}
.toc ol{list-style:none;margin:0;padding:0;border-left:2px solid var(--color-border)}
.toc li a{display:block;padding:.3rem .8rem;color:var(--color-text-muted);text-decoration:none;margin-left:-2px;border-left:2px solid transparent}
.toc li a:hover,.toc li a.is-active{color:var(--color-primary);border-left-color:var(--color-primary)}
.toc .toc__l3 a{padding-left:1.6rem;font-size:var(--fs-xs)}
@media (max-width:1023px){.article__layout.has-toc{grid-template-columns:minmax(0,1fr)}.toc{position:static;background:var(--color-surface);padding:1rem;border-radius:var(--radius-md)}}
.references{margin-top:3rem;font-size:var(--fs-sm)}
.references h2{font-size:var(--fs-lg)}
.references ol{padding-left:1.2rem;color:var(--color-text-muted)}
.tags{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:2rem 0;padding:0}
.tags a,.tags span{display:inline-block;padding:.3rem .8rem;border-radius:var(--radius-pill);background:var(--color-surface-2);color:var(--color-text-muted);font-size:var(--fs-xs);text-decoration:none}
.author-box{display:flex;gap:1rem;align-items:flex-start;padding:1.5rem;border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-top:2.5rem}
.author-box__avatar{width:72px;height:72px;border-radius:50%;object-fit:cover;flex-shrink:0}
.author-box__avatar--initials{display:inline-flex;align-items:center;justify-content:center;background:var(--color-primary);color:#fff;font-weight:600;font-size:1.6rem}
.author-box__name{font-weight:600;margin:0}.author-box__name a{color:inherit;text-decoration:none}
.author-box__role{color:var(--color-text-muted);font-size:var(--fs-sm);margin:0 0 .5rem}
.author-box__bio{font-size:var(--fs-sm);margin:0}
.author-hero{display:flex;gap:1.5rem;align-items:center}
.author-hero__avatar{border-radius:50%;width:120px;height:120px;object-fit:cover}
.author-hero__links{display:flex;gap:1rem;font-size:var(--fs-sm)}
.author-bio{margin-top:1.5rem}

/* Callouts, tables, figures, misc blocks */
.callout{border-radius:var(--radius-md);padding:1.1rem 1.25rem;margin:1.5rem 0;background:var(--color-surface);border-left:4px solid var(--color-info)}
.callout--tip{border-left-color:var(--color-accent);background:var(--color-accent-50)}
.callout--warning{border-left-color:var(--color-warning);background:#FFFBEB}
.callout--takeaways{border-left-color:var(--color-primary);background:var(--color-primary-50)}
.callout__title{font-weight:600;display:flex;gap:.4rem;align-items:center;margin-bottom:.5rem}
.table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}
.table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.table caption{caption-side:bottom;text-align:left;padding:.6rem .9rem;color:var(--color-text-muted);font-size:var(--fs-xs)}
.table th,.table td{padding:.75rem .9rem;border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top}
.table thead th{background:var(--color-surface);font-weight:600}
.table tbody tr:last-child>*{border-bottom:0}
.figure{margin-block:2rem}.figure figcaption{font-size:var(--fs-xs);color:var(--color-text-muted);margin-top:.5rem;text-align:center}
.video{position:relative;aspect-ratio:16/9;border-radius:var(--radius-lg);overflow:hidden;background:#000}
.video img{width:100%;height:100%;object-fit:cover;opacity:.85}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video__play{position:absolute;inset:0;margin:auto;width:72px;height:72px;border-radius:50%;border:0;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg)}
.code-block{margin-block:1.5rem}
.code-block__bar{display:flex;justify-content:space-between;background:#1E293B;color:#94A3B8;font-size:var(--fs-xs);padding:.4rem .9rem;border-radius:var(--radius-md) var(--radius-md) 0 0}
.code-block__copy{background:none;border:0;color:inherit}
.code-block pre{margin:0;background:#0B1220;color:#E2E8F0;padding:1rem;border-radius:0 0 var(--radius-md) var(--radius-md);overflow-x:auto;font-size:.875rem}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1.5rem;margin:0}
.stat{text-align:center}.stat dd{font-size:var(--fs-3xl);font-weight:700;color:var(--color-primary);margin:0;order:-1}.stat{display:flex;flex-direction:column}.stat dt{color:var(--color-text-muted);font-size:var(--fs-sm)}
.testimonial{margin:0;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem}
.testimonial blockquote{margin:0 0 1rem;font-size:var(--fs-lg)}
.testimonial figcaption{font-size:var(--fs-sm);display:flex;flex-direction:column}
.testimonial figcaption span{color:var(--color-text-muted)}
.logos{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:2rem 3rem;list-style:none;margin:0;padding:0}
.logos img{max-height:40px;width:auto;filter:grayscale(1);opacity:.7}
.logos__heading{text-align:center;color:var(--color-text-muted);font-size:var(--fs-sm)}
.pros-cons{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.pros-cons__col{padding:1.25rem;border-radius:var(--radius-md);background:var(--color-surface)}
.pros-cons__col h3{font-size:var(--fs-lg)}
.pros-cons__col ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;font-size:var(--fs-sm)}
.pros-cons__col li{display:flex;gap:.5rem}
.pros-cons__col--pros .icon{color:var(--color-success)}.pros-cons__col--cons .icon{color:var(--color-danger)}
@media (max-width:640px){.pros-cons{grid-template-columns:1fr}}
.lmsa{border-radius:var(--radius-xl);padding:clamp(1.5rem,3vw,2.5rem);background:linear-gradient(135deg,var(--color-secondary),var(--color-primary-900));color:#fff;position:relative}
.lmsa p{color:rgb(255 255 255/.85)}
.lmsa__badge{display:inline-flex;gap:.4rem;align-items:center;font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.08em;background:rgb(255 255 255/.12);padding:.3rem .7rem;border-radius:var(--radius-pill);margin-bottom:1rem}
.lmsa__title{font-size:var(--fs-2xl)}
.lmsa-disclosure{font-size:var(--fs-xs);opacity:.8;margin:1rem 0 0}
.lmsa-note{border:1px dashed var(--color-primary-200);border-radius:var(--radius-md);padding:1rem 1.25rem;margin:1.5rem 0;font-size:var(--fs-sm);background:var(--color-primary-50)}
.lmsa-note .lmsa-disclosure{color:var(--color-text-muted);margin-top:.5rem}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem}
.chip{padding:.4rem .9rem;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:#fff;color:var(--color-text-muted);font-size:var(--fs-sm);text-decoration:none}
.chip:hover,.chip.is-active{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-50)}
.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:3rem;font-size:var(--fs-sm)}
.pagination ol{display:flex;gap:.35rem;list-style:none;margin:0;padding:0}
.pagination a,.pagination span{display:inline-flex;min-width:38px;height:38px;align-items:center;justify-content:center;border-radius:10px;text-decoration:none;padding:0 .6rem}
.pagination a{border:1px solid var(--color-border);color:var(--color-text)}
.pagination [aria-current]{background:var(--color-primary);color:var(--color-primary-contrast)}
.empty-state{text-align:center;padding:3rem;background:var(--color-surface);border-radius:var(--radius-lg);color:var(--color-text-muted)}
.search-form{display:flex;gap:.5rem;margin-top:1.5rem}
.search-results{list-style:none;padding:0;margin:0;display:grid;gap:1.75rem}
.search-results h2{font-size:var(--fs-xl);margin-bottom:.35rem}
.search-results__type{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-primary);font-weight:600;margin:0 0 .25rem}
.link-list{list-style:none;padding:0;margin:2rem 0 0;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:center}
.success-icon .icon{width:64px;height:64px;color:var(--color-success);margin:0 auto 1rem}
.steps-inline{text-align:left;display:inline-block;margin:0 auto}
.preview-bar{background:#FEF3C7;color:#78350F;text-align:center;padding:.6rem 1rem;font-size:var(--fs-sm);position:sticky;top:0;z-index:70}

/* Footer */
.site-footer{background:var(--color-secondary);color:rgb(255 255 255/.72);padding:clamp(3rem,2rem + 3vw,5rem) 0 2rem;font-size:var(--fs-sm)}
.site-footer a{color:rgb(255 255 255/.72);text-decoration:none}
.site-footer a:hover{color:#fff}
.site-footer__top{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:2.5rem}
@media (max-width:900px){.site-footer__top{grid-template-columns:1fr 1fr}.site-footer__about{grid-column:1/-1}}
@media (max-width:520px){.site-footer__top{grid-template-columns:1fr}}
.brand--footer{color:#fff;margin-bottom:1rem}
.site-footer__heading{color:#fff;font-weight:600;margin-bottom:1rem}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.site-footer__bottom{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;align-items:center;border-top:1px solid rgb(255 255 255/.12);margin-top:3rem;padding-top:1.5rem}
.site-footer__bottom p{margin:0}
.site-footer__legal,.site-footer__social{display:flex!important;flex-wrap:wrap;gap:1.25rem!important}
.site-footer .linklike{color:rgb(255 255 255/.72);text-decoration:none;font-size:inherit}
.newsletter{margin-top:1.5rem;max-width:420px}
.newsletter__label{display:block;color:#fff;margin-bottom:.5rem;font-weight:500}
.newsletter__row{display:flex;gap:.5rem}
.newsletter input{background:rgb(255 255 255/.08);border-color:rgb(255 255 255/.18);color:#fff;min-height:42px}
.newsletter input::placeholder{color:rgb(255 255 255/.5)}
.newsletter .form-status{color:#fff}

/* Sticky CTA (mobile) */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:.75rem var(--gutter) calc(.75rem + env(safe-area-inset-bottom));background:rgb(255 255 255/.96);border-top:1px solid var(--color-border);box-shadow:0 -8px 24px rgb(15 23 42/.08);transform:translateY(110%);transition:transform var(--dur-slow) var(--ease)}
.sticky-cta.is-visible{transform:none}
@media (min-width:1024px){.sticky-cta{display:none}}
.wa-widget{position:fixed;right:1.25rem;bottom:1.25rem;z-index:41;width:56px;height:56px;border-radius:50%;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg)}
.wa-widget .icon{width:28px;height:28px}
@media (max-width:1023px){.wa-widget{bottom:5.5rem}}

/* Modals & consent */
.modal{border:0;border-radius:var(--radius-xl);padding:clamp(1.5rem,3vw,2.25rem);max-width:520px;width:calc(100% - 2rem);box-shadow:var(--shadow-lg)}
.modal::backdrop{background:rgb(15 23 42/.55);backdrop-filter:blur(3px)}
.modal[open]{animation:modal-in var(--dur-slow) var(--ease)}
@keyframes modal-in{from{opacity:0;transform:translateY(12px) scale(.98)}}
.modal__close-form{position:absolute;right:.75rem;top:.75rem;margin:0}
.modal__close{background:var(--color-surface-2);border:0;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center}
.modal h2{font-size:var(--fs-2xl);padding-right:2rem}
.consent{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:80;max-width:720px;margin-inline:auto;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:1.1rem 1.25rem}
.consent__inner{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
.consent__text{margin:0;flex:1 1 320px;font-size:var(--fs-sm)}
.consent__actions{display:flex;gap:.5rem;flex-wrap:wrap}
.consent-form{display:grid;gap:.9rem}
.switch{display:flex;gap:.75rem;align-items:flex-start;font-size:var(--fs-sm)}
.switch input{width:18px;height:18px;margin-top:.2rem;accent-color:var(--color-primary)}
.consent-form__actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.5rem}

/* Auth */
.tpl-auth{background:var(--color-surface)}
.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem}
.auth__card{width:100%;max-width:440px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:2rem;box-shadow:var(--shadow-md)}
.auth__brand{margin-bottom:1.5rem}
.auth__title{font-size:var(--fs-2xl)}
.auth__links{text-align:center;font-size:var(--fs-sm);margin:1.5rem 0 0;color:var(--color-text-muted)}
.alert{border-radius:var(--radius-md);padding:.8rem 1rem;margin-bottom:1rem;font-size:var(--fs-sm)}
.alert ul{margin:0;padding-left:1.1rem}
.alert--success{background:#F0FDF4;color:#166534}.alert--error{background:#FEF2F2;color:#991B1B}.alert--warning{background:#FFFBEB;color:#92400E}.alert--info{background:#EFF6FF;color:#1E40AF}

/* Reveal-on-scroll (below the fold only; never the LCP element) */
.js [data-reveal]{opacity:0;transform:translateY(14px);transition:opacity var(--dur-slow) var(--ease),transform var(--dur-slow) var(--ease)}
.js [data-reveal].is-revealed{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .js [data-reveal]{opacity:1;transform:none}
}
@media print{.site-header,.site-footer,.sticky-cta,.consent,.announce,.cta-band,.lead-form{display:none!important}}
