@font-face{font-family:"Public Sans";font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/public-sans.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Public Sans";font-style:italic;font-weight:100 900;font-display:swap;src:url(/fonts/public-sans-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/bricolage-grotesque.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Layout: full-bleed photo hero of a real class, then warm light sections with photo cards, a working schedule, a personal "meet us" block and FAQ. Navy + rescue red, gold used sparingly. */
:root{
  --navy:#1b3557; --navy-2:#244a7c; --red:#1a6fc4; --red-d:#135aa3; --gold:#f17127; /* --red = healthcare blue (primary), --gold = logo orange (accent only) */
  --bg:#fbfaf8; --surface:#ffffff; --tint:#f1f4f9; --ink:#14213a; --ink-soft:#56627a; --line:#e3e7ee; --chip:#eaf0f8; --ok:#16754a;
  --display:"Bricolage Grotesque","Avenir Next","Segoe UI",system-ui,sans-serif; --body:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif; --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --r:18px; --shadow:0 1px 2px rgba(20,33,58,.06),0 12px 30px -16px rgba(20,33,58,.35);
  --top-bg:rgba(255,255,255,.94);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0c1525;--surface:#121f35;--tint:#152541;--ink:#e9eef6;--ink-soft:#a3b1c6;--line:#24344f;--chip:#1b2d4b;--ok:#4cc37f;--navy-2:#1f4472;--red:#2f80d4;--red-d:#1f6dbe;--top-bg:rgba(12,21,37,.92);color-scheme:dark}}
:root[data-theme="dark"]{--bg:#0c1525;--surface:#121f35;--tint:#152541;--ink:#e9eef6;--ink-soft:#a3b1c6;--line:#24344f;--chip:#1b2d4b;--ok:#4cc37f;--navy-2:#1f4472;--red:#2f80d4;--red-d:#1f6dbe;--top-bg:rgba(12,21,37,.92);color-scheme:dark}
*{box-sizing:border-box}
/* <img> tags carry width/height (to reserve space while loading); this zero-specificity rule keeps them proportional unless a class sets a height. */
:where(img){height:auto;max-width:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.65 var(--body);-webkit-font-smoothing:antialiased}
a{color:var(--red)} a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
h1,h2,h3{font-family:var(--display);line-height:1.05;text-wrap:balance;margin:0;letter-spacing:-.015em;font-weight:800}
h2{font-size:clamp(1.9rem,4vw,2.8rem)}
.wrap{max-width:1180px;margin:0 auto;padding-inline:20px}
.eyebrow{font:700 .78rem/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin:0 0 12px}
.lede{color:var(--ink-soft);max-width:60ch;font-size:1.1rem}
.btn{display:inline-flex;align-items:center;gap:.5em;background:var(--red);color:#fff;text-decoration:none;font:700 .95rem/1 var(--body);padding:.85em 1.3em;border-radius:999px;border:0;cursor:pointer;transition:transform .15s,background .15s;white-space:nowrap;box-shadow:0 6px 16px -8px rgba(26,111,196,.8)}
.btn:hover{background:var(--red-d);transform:translateY(-1px)}
.btn.lg{font-size:1.05rem;padding:1em 1.6em}.btn.ghost{background:rgba(255,255,255,.12);color:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.7);backdrop-filter:blur(4px)}.btn.ghost:hover{background:rgba(255,255,255,.22)}
.btn.gold{background:var(--red);color:#fff;box-shadow:0 6px 16px -8px rgba(26,111,196,.9)}.btn.gold:hover{background:var(--red-d)}
.preview-bar{background:var(--navy);color:#fff;border-bottom:3px solid var(--gold);font:600 .8rem/1.4 var(--body);text-align:center;padding:6px 16px}
/* header */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--top-bg);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:70px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none}
.logo-mark{width:34px;height:40px;flex:none}
.brand b{font:800 1.2rem/1 var(--display)}.brand small{display:block;font:600 .66rem/1 var(--body);letter-spacing:.2em;color:var(--red);text-transform:uppercase;margin-top:4px}
.nav{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.nav a{color:var(--ink);text-decoration:none;font-weight:600;font-size:.93rem;padding:.5em .8em;border-radius:999px}.nav a:hover{background:var(--tint)}
.nav a.btn{color:#fff}.nav .phone{font:600 .88rem var(--mono);color:var(--ink-soft);padding:0 .6em;text-decoration:none}.nav .phone:hover{color:var(--red);background:none}
/* hero */
.hero{position:relative;overflow:hidden;isolation:isolate;color:#fff;background:var(--navy);min-height:clamp(520px,72vh,680px);display:flex;align-items:center}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;animation:zoom 18s ease-out both}
.hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(95deg,rgba(27,53,87,.94) 0%,rgba(27,53,87,.8) 38%,rgba(27,53,87,.15) 72%,rgba(27,53,87,0) 100%),linear-gradient(0deg,rgba(27,53,87,.55),transparent 40%)}
@keyframes zoom{from{transform:scale(1.06)}to{transform:scale(1)}}
.hero-in{padding-block:64px;width:100%}
.hero h1{font-size:clamp(2.6rem,6.2vw,4.8rem);max-width:13ch;margin:.1em 0 .25em}
.hero h1 em{font-style:normal;color:#8cc8ff;display:block}
.hero .lede{color:#dbe4f1;max-width:46ch}.hero .eyebrow{color:var(--gold)}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0 22px}
.trust{list-style:none;display:flex;gap:8px;flex-wrap:wrap;margin:0;padding:0}.trust li{font:600 .78rem/1 var(--body);padding:.6em .85em;border-radius:999px;background:rgba(255,255,255,.14);color:#fff;backdrop-filter:blur(4px)}
.rate{position:absolute;right:max(20px,calc((100vw - 1180px)/2 + 20px));bottom:32px;background:rgba(255,255,255,.95);color:#14213a;border-radius:16px;padding:14px 18px;box-shadow:var(--shadow);display:flex;align-items:center;gap:12px}
.rate b{font:800 2rem/1 var(--display);color:var(--red);font-variant-numeric:tabular-nums}.rate span{font:600 .75rem/1.35 var(--body);color:#56627a}
.rate::before{content:"";width:12px;height:12px;border-radius:50%;background:var(--red);animation:pulse .55s ease-in-out infinite alternate}
@keyframes pulse{from{box-shadow:0 0 0 0 rgba(26,111,196,.6)}to{box-shadow:0 0 0 8px rgba(26,111,196,0);transform:scale(1.15)}}
/* intro */
section{padding-block:76px}
.intro{padding-block:56px;background:var(--surface);border-bottom:1px solid var(--line)}
.intro-in{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:center}
.big{font:600 clamp(1.25rem,2.2vw,1.6rem)/1.45 var(--display);margin:0;letter-spacing:-.01em}
.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0}
.mini-stats div{background:var(--tint);border-radius:14px;padding:14px;min-width:0}.mini-stats dt{font-size:.78rem;color:var(--ink-soft)}.mini-stats dd{margin:4px 0 0;font:800 1.9rem/1 var(--display);font-variant-numeric:tabular-nums}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;margin-bottom:28px}.sec-head > div{min-width:0}
/* photo cards */
.pcards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.pcard{position:relative;display:flex;text-decoration:none;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;padding:0;cursor:pointer;color:var(--ink);font:inherit;text-align:left;transition:transform .2s,box-shadow .2s}
.pcard img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;transition:transform .4s}
.pcard:hover,.pcard[aria-pressed="true"]{transform:translateY(-4px);box-shadow:var(--shadow)}.pcard:hover img{transform:scale(1.05)}
.pcard[aria-pressed="true"]{outline:3px solid var(--red);outline-offset:-3px}
.pc-body{display:flex;flex-direction:column;gap:4px;padding:14px 16px 16px;flex:1}.pc-body b{font:800 1.12rem/1.15 var(--display)}.pc-body > span{font-size:.86rem;color:var(--ink-soft)}
.pc-body .pc-foot{display:flex;justify-content:space-between;margin-top:auto;padding-top:8px}.pc-foot .n{font:600 .75rem var(--mono);color:var(--ink-soft)}.pc-foot .from{font-weight:700;color:var(--red)}
/* schedule */
.sched{background:var(--tint)}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.toolbar input,.toolbar select{font:inherit;font-size:.95rem;padding:.75em 1.1em;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);min-width:0}
.toolbar input{flex:1 1 240px}
.live{display:inline-flex;align-items:center;gap:8px;font:600 .78rem/1 var(--mono);color:var(--ink-soft)}.live i{width:9px;height:9px;border-radius:50%;background:var(--ok);animation:blip 1.6s infinite}.live.snap i{background:var(--gold);animation:none}
@keyframes blip{70%{box-shadow:0 0 0 8px transparent}}
.group-h{display:flex;align-items:baseline;gap:12px;margin:34px 0 14px;font-size:1.45rem}.group-h small{font:600 .8rem/1 var(--mono);color:var(--ink-soft)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}
.card{display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr auto;gap:0 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;transition:border-color .15s,transform .15s,box-shadow .15s}
.card:hover{border-color:transparent;transform:translateY(-2px);box-shadow:var(--shadow)}
.date{grid-row:1/3;width:58px;height:62px;border-radius:12px;background:var(--navy-2);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.date b{font:700 .68rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:#ffb27d}.date i{font:800 1.5rem/1.05 var(--display);font-style:normal}
.date.tbd,.date.any{background:var(--chip);color:var(--ink)}.date.tbd b,.date.any b{color:var(--red-d)}.date.tbd i,.date.any i{font-size:1.05rem}
.card-body{min-width:0}
.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{font:700 .66rem/1 var(--body);letter-spacing:.06em;text-transform:uppercase;padding:.45em .6em;border-radius:6px;background:var(--chip);color:var(--ink)}
.chip.fmt{background:transparent;box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-soft)}.chip.f1{color:var(--red);box-shadow:inset 0 0 0 1px var(--red)}
.card h3{font-size:1.12rem;margin:.45em 0 .2em;line-height:1.2}.card h3 a{color:var(--ink);text-decoration:none}.card h3 a:hover{color:var(--red)}
.meta{margin:0;font-size:.85rem;color:var(--ink-soft)}
.seats{height:5px;border-radius:5px;background:var(--line);margin:10px 0 4px;overflow:hidden}.seats span{display:block;height:100%;background:linear-gradient(90deg,var(--ok),var(--gold))}
.seats-l{margin:0;font:600 .75rem/1.2 var(--mono);color:var(--ok)}
.card-act{grid-column:2;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}
.price{font:800 1.4rem/1 var(--display);font-variant-numeric:tabular-nums}.card .btn{padding:.6em 1.05em;font-size:.88rem}.closed{color:var(--ink-soft);font-weight:600}
.empty{padding:28px;border:2px dashed var(--line);border-radius:var(--r);text-align:center;color:var(--ink-soft);background:var(--surface)}
/* about */
.about-in{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:center}
.about-in > div{min-width:0}
.about-fig{margin:0;position:relative;min-width:0}.about-fig img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:24px;display:block;box-shadow:var(--shadow);transform:rotate(-1.5deg)}
.about-fig figcaption{margin-top:14px;font:500 .78rem var(--mono);color:var(--ink-soft)}
.about p{max-width:58ch}.sig{font:600 1.5rem/1 var(--display);color:var(--red);font-style:italic;margin-top:18px}
/* group */
.group{background:linear-gradient(160deg,var(--navy),#183563);color:#fff}
.group-in{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.group-in > div{min-width:0}
.group .lede{color:#cfdbec}.group h2{color:#fff}.group .eyebrow{color:var(--gold)}
.group-fig img,.group-fig svg{width:100%;height:auto;border-radius:24px;display:block;aspect-ratio:4/3;object-fit:cover;box-shadow:0 30px 60px -24px rgba(0,0,0,.6);transform:rotate(1.5deg)}
.checks{list-style:none;padding:0;margin:20px 0 26px;display:grid;gap:10px}.checks li{display:flex;gap:10px;align-items:flex-start}.checks li::before{content:"";flex:none;width:22px;height:22px;margin-top:3px;border-radius:50%;background:var(--gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10l3 3 7-7' fill='none' stroke='%231b3557' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E") center/14px no-repeat}
/* steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;counter-reset:s}
.step{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:30px 22px 22px;min-width:0}
.step::before{counter-increment:s;content:counter(s);position:absolute;top:-20px;left:22px;width:42px;height:42px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font:800 1.25rem/1 var(--display);box-shadow:0 6px 14px -6px rgba(26,111,196,.8)}
.step h3{font-size:1.3rem;margin:6px 0}.step p{margin:0;color:var(--ink-soft)}
/* faq */
.faq{background:var(--surface);border-block:1px solid var(--line)}
.faq-in{display:grid;grid-template-columns:1fr 1.6fr;gap:40px}
.faq-in > div{min-width:0}
.qa{display:grid;gap:10px}.qa details{background:var(--tint);border-radius:14px;padding:4px 18px}
.qa summary{cursor:pointer;font:700 1.05rem/1.4 var(--display);padding:14px 0;list-style:none;display:flex;justify-content:space-between;gap:12px}.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"+";font-size:1.4rem;line-height:1;color:var(--red)}.qa details[open] summary::after{content:"–"}
.qa p{margin:0 0 16px;color:var(--ink-soft)}
/* contact + footer */
.contact{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;align-items:stretch}
.contact .panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:28px;min-width:0}
.kv{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;margin:16px 0 0}.kv dt{font:600 .75rem/1.7 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.kv dd{margin:0;font-weight:600}.kv .mono{font-family:var(--mono)}
.map{position:relative;border-radius:var(--r);overflow:hidden;background:linear-gradient(135deg,var(--navy-2),var(--navy));color:#fff;padding:26px;display:flex;flex-direction:column;justify-content:flex-end}
.map svg.states{width:100%;max-width:360px;height:auto;margin:0 auto 12px;display:block}
.map h3{font-size:1.5rem}.map p{margin:.3em 0 0;color:#cfdbec}
footer{background:#faf8f4;color:#56627a;padding-block:48px 36px;font-size:.9rem;border-top:4px solid var(--gold)}
footer .wrap{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}footer a{color:#1a6fc4}footer .brand{color:#1b3557}footer .brand small{color:var(--gold)}footer strong{color:#1b3557}footer .social a{font-weight:600;text-decoration:none}footer .social a:hover{text-decoration:underline}
/* drawer */
.drawer{position:fixed;inset:0;z-index:50;display:flex;justify-content:flex-end;background:rgba(5,12,24,.55)}
.drawer[hidden]{display:none!important}
.drawer .sheet{width:min(520px,100%);height:100%;overflow:auto;background:var(--surface);padding:calc(26px + env(safe-area-inset-top,0px)) 26px calc(26px + env(safe-area-inset-bottom,0px));animation:slide .25s ease-out}
@keyframes slide{from{transform:translateX(40px);opacity:0}}
.sheet h2{font-size:1.9rem}.sheet .x{float:right;background:var(--chip);color:var(--ink);border:0;border-radius:50%;width:38px;height:38px;font-size:1.3rem;cursor:pointer}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.facts div{background:var(--tint);border-radius:12px;padding:12px}.facts dt{font:600 .7rem/1.4 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.facts dd{margin:0;font-weight:700}
.desc{color:var(--ink-soft)}
/* course pages reuse .hero without a photo */
.hero.plain{min-height:0;background:linear-gradient(160deg,var(--navy),#183563)}

@media (max-width:980px){.intro-in,.about-in,.group-in,.contact,.faq-in{grid-template-columns:1fr}.rate{display:none}.hero-shade{background:linear-gradient(0deg,rgba(27,53,87,.95) 10%,rgba(27,53,87,.65) 60%,rgba(27,53,87,.35))}}
@media (max-width:620px){.pcards{grid-template-columns:1fr 1fr}.steps{grid-template-columns:1fr}.grid{grid-template-columns:1fr}.nav a:not(.btn),.nav .phone{display:none}section{padding-block:56px}.mini-stats dd{font-size:1.4rem}}
@media (max-width:420px){.pcards{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- motion ---------- */
.top{transition:box-shadow .25s,min-height .25s}.top.scrolled{box-shadow:0 8px 24px -18px rgba(20,33,58,.5)}
.anim{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}.a1{animation-delay:.05s}.a2{animation-delay:.18s}.a3{animation-delay:.32s}.a4{animation-delay:.46s}.a5{animation-delay:.6s}
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes fromL{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:none}}
@keyframes fromR{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}
.motion [data-reveal].in{animation:rise .8s cubic-bezier(.2,.7,.2,1) both}
.motion [data-reveal="left"].in{animation-name:fromL}.motion [data-reveal="right"].in{animation-name:fromR}
.shine{position:relative;overflow:hidden}.shine::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);transform:translateX(-120%);animation:shine 3.6s ease-in-out 1.2s infinite}
@keyframes shine{0%,60%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
.ticker{background:var(--red);color:#fff;overflow:hidden;white-space:nowrap;padding-block:14px}
.ticker-track{display:inline-flex;gap:0;animation:marquee 48s linear infinite}
.ticker span{font:700 1rem/1 var(--display);padding-inline:22px;position:relative}.ticker span::after{content:"✚";position:absolute;right:-6px;opacity:.6;font-size:.7rem;top:3px}
@keyframes marquee{to{transform:translateX(-50%)}}
.ticker:hover .ticker-track{animation-play-state:paused}
.pcard img,.serve img,.rescard{will-change:transform}
/* ---------- inner pages ---------- */
.phead{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(160deg,var(--navy),#183563);color:#fff;padding-block:72px 64px}
.phead.has-img{padding-block:110px 84px}
.phead-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;animation:zoom 18s ease-out both}
.phead h1{font-size:clamp(2.2rem,5vw,3.8rem);max-width:20ch;margin:.1em 0 .3em}
.phead .lede{color:#dbe4f1;max-width:60ch}.phead .eyebrow{color:var(--gold)}.phead .eyebrow a{color:inherit}
.more{font-weight:700;color:var(--red);text-decoration:none}.more:hover{text-decoration:underline}
.center{text-align:center;margin-top:28px}
.topic-strip{padding-block:22px;background:var(--surface);border-bottom:1px solid var(--line)}
.chiprow{display:flex;gap:8px;flex-wrap:wrap}.tchip{padding:.6em 1em;border-radius:999px;background:var(--tint);color:var(--ink);text-decoration:none;font-weight:600;font-size:.92rem;transition:background .15s,color .15s,transform .15s}.tchip:hover{background:var(--red);color:#fff;transform:translateY(-2px)}
.topic-in{display:grid;grid-template-columns:320px 1fr;gap:36px;align-items:start}.topic-in > div{min-width:0}
.facts-card{position:sticky;top:96px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px}
.facts-card h3,.facts-card .facts-h{font-size:1.2rem;margin-bottom:8px}.facts.one{grid-template-columns:1fr}
.two{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}.two > div{min-width:0}
.tint{background:var(--tint)}
.benefits{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.benefits > div{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:24px;min-width:0;transition:transform .2s,box-shadow .2s}.benefits > div:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.benefits .ic{width:48px;height:48px}.benefits h3{font-size:1.2rem;margin:12px 0 6px}.benefits p{margin:0;color:var(--ink-soft);font-size:.95rem}
.serve{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.serve article{display:grid;grid-template-columns:200px 1fr;background:var(--surface);border-radius:var(--r);overflow:hidden;border:1px solid var(--line)}
.serve img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.serve article:hover img{transform:scale(1.06)}
.serve article > div{padding:20px;min-width:0}.serve h3{font-size:1.2rem;margin-bottom:6px}.serve p{margin:0;color:var(--ink-soft);font-size:.95rem}
.checks.dark li::before{background-color:var(--red);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10l3 3 7-7' fill='none' stroke='%23fff' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E")}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.values > div{background:var(--surface);border-radius:var(--r);padding:24px;border:1px solid var(--line);min-width:0}
.vnum{font:800 2rem/1 var(--display);color:var(--red);opacity:.85}.values h3{font-size:1.2rem;margin:10px 0 6px}.values p{margin:0;color:var(--ink-soft)}
.res{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-bottom:24px}
.rescard{display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:24px;color:var(--ink);text-decoration:none;transition:transform .2s,box-shadow .2s}.rescard:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.rescard .eyebrow{margin:0}.rescard h3{font-size:1.3rem}.rescard p{margin:0;color:var(--ink-soft)}
.faq-page{display:grid;gap:36px;max-width:900px}.faq-group h2{font-size:1.6rem;margin-bottom:14px}
.numbered{padding-left:1.2em;display:grid;gap:12px;font-size:1.05rem}.numbered li::marker{color:var(--red);font-weight:800}
.panel.quote{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:28px}.panel.quote h3{font-size:1.4rem;margin-bottom:6px}
.btn.outline{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--line)}.btn.outline:hover{background:var(--tint)}
.cta-band{background:radial-gradient(800px 300px at 80% 0,#2a4f8a 0,transparent 60%),linear-gradient(160deg,var(--navy),#132b52);color:#fff;text-align:center}
.cta-band.small{padding-block:60px}.cta-in{display:flex;flex-direction:column;align-items:center;gap:6px}.cta-band h2{color:#fff;max-width:24ch}.cta-band p{color:#cfdbec;margin:.4em 0 1em}.cta-band .hero-cta{justify-content:center;margin:8px 0 0}
.legal-page{max-width:900px}.notice{background:#fff4dc;color:#5a4100;border:1px solid #f0d08a;border-radius:14px;padding:16px 18px;margin-bottom:24px;font-weight:600}
.toc h3{margin:18px 0 8px;font-size:1.2rem}.toc ol{columns:2 260px;color:var(--ink-soft)}
footer .fcols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:28px}footer h4,footer .fh{color:#1b3557;font:700 .85rem var(--body);letter-spacing:.12em;text-transform:uppercase;margin:0 0 10px}
footer ul{list-style:none;padding:0;margin:0;display:grid;gap:6px}footer ul a{color:#14213a;text-decoration:none}footer ul a:hover{color:#1a6fc4}
footer .legal{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid #e6e1d8;margin-top:28px;padding-top:18px;font-size:.82rem}footer .legal p{margin:0}
.nav a[aria-current]{background:var(--tint);color:var(--red)}
@media (max-width:980px){.topic-in,.two{grid-template-columns:1fr}.facts-card{position:static}.benefits{grid-template-columns:1fr 1fr}.values{grid-template-columns:1fr 1fr}.serve{grid-template-columns:1fr}footer .fcols{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.benefits,.values,.res{grid-template-columns:1fr}.serve article{grid-template-columns:1fr}.serve img{aspect-ratio:16/9}footer .fcols{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.ticker-track{animation:none!important}}

/* Brand logo */
.logo-img{display:block;height:46px;width:auto}footer .logo-img{height:52px;margin-bottom:6px}@media (max-width:640px){.logo-img{height:38px}}
footer h4::after,footer .fh::after{content:"";display:block;width:22px;height:3px;border-radius:2px;background:var(--gold);margin-top:8px}
.top .on-dark,footer .on-dark{display:none}
.form-slot{display:grid;gap:6px;place-items:center;text-align:center;min-height:320px;padding:24px;border:2px dashed var(--line);border-radius:var(--r);background:var(--tint);color:var(--ink-soft)}.form-slot b{color:var(--ink);font:700 1.05rem/1.3 var(--display)}
.map .eyebrow{color:var(--gold);margin:0 0 4px}.map h3{font-size:1.25rem;line-height:1.3}.map svg.states{max-width:300px}
.motion .map .pulse-ring{transform-box:fill-box;transform-origin:center;animation:ring 2s ease-out infinite}@keyframes ring{from{transform:scale(.6);opacity:1}to{transform:scale(2);opacity:0}}
footer{color-scheme:light}

.reg-wrap{max-width:90vw}@media (max-width:700px){.reg-wrap{max-width:none}}
.quote-steps{margin-bottom:28px}.quote-steps .numbered{grid-template-columns:repeat(3,1fr);gap:24px;margin:16px 0}@media (max-width:800px){.quote-steps .numbered{grid-template-columns:1fr;gap:12px}}
/* CPR Enroll forms: one branded frame on register, group training and contact. The widget itself is light, so the card stays light in dark mode. */
.embed-card{background:#fff;color:#14213a;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;color-scheme:light}
.embed-head{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;padding:16px 22px;background:var(--navy);border-bottom:3px solid var(--gold)}
.embed-head h2{color:#fff;font-size:1.15rem;line-height:1.2}
.embed-lock{display:inline-flex;align-items:center;gap:6px;font:600 .78rem/1 var(--body);color:rgba(255,255,255,.8)}.embed-lock svg{width:14px;height:14px}
.embed-body{min-height:420px;padding:4px 32px 32px}.embed-body iframe{display:block;width:100%;border:0}
.embed-wait{margin:0;padding:56px 16px;text-align:center;color:#56627a;font-size:.95rem;animation:embed-done 0s 10s forwards}
.cprenroll-widget:not(:empty)+.embed-wait,.embed-body:has(iframe) .embed-wait{display:none}
@keyframes embed-done{to{visibility:hidden;height:0;padding:0}}
.contact-side{display:grid;gap:28px;align-content:start;min-width:0}.contact-form{min-width:0}
@media (max-width:620px){.embed-head{padding:14px 16px}.embed-body{padding:4px 18px 22px}}
/* resources: jump links + groups */
.res-nav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 36px}.res-nav a{background:var(--chip);color:var(--ink);text-decoration:none;font-weight:600;font-size:.92rem;padding:.55em 1em;border-radius:999px}.res-nav a:hover{background:var(--red);color:#fff}
.res-group{scroll-margin-top:96px}.res-group+.res-group{margin-top:48px}.res-group .sec-head{margin-bottom:18px}
/* The header bar stays light in dark mode too, so the full-color logo always sits on white. */
.top{--top-bg:#fff;--ink:#14213a;--ink-soft:#56627a;--line:#e3e7ee;--tint:#f1f4f9;--chip:#eaf0f8;--red:#1a6fc4;--red-d:#135aa3;color:var(--ink);color-scheme:light}
/* legal page */
.legal-doc{scroll-margin-top:96px}.legal-doc+.legal-doc{margin-top:56px;padding-top:40px;border-top:1px solid var(--line)}
.legal-doc h2{margin-bottom:10px}.legal-doc h2{font-size:1.25rem;margin:28px 0 8px;scroll-margin-top:96px}.legal-doc h3{font:700 1.02rem/1.3 var(--body);margin:16px 0 6px}
.legal-doc p,.legal-doc li{color:var(--ink);max-width:75ch}.legal-doc ul{padding-left:1.2em;display:grid;gap:6px}.legal-dates{color:var(--ink-soft)!important;font-size:.92rem}
/* AHA Aligned Training Site seal band: always on white; seal 128px keeps the heart/torch above AHA's 3/8in minimum, logo stays larger, clear space = seal width */
.aha-band{background:#fff;color:#14213a;border-top:1px solid #e3e7ee;padding:48px 0;color-scheme:light}
.aha-ts{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:128px}
.aha-ts-logo{width:min(600px,100%);height:auto}
.aha-ts-seal{display:grid;justify-items:center;gap:36px;max-width:300px;text-align:center}.aha-ts-seal img{width:128px;height:128px}
.aha-ts-seal p{margin:0;font-size:.88rem;line-height:1.45;color:#3d4a60}
/* Below 640px the logo (600px max) shrinks under the seal's 128px height, which AHA's rules don't allow, so the seal band is hidden there. The footer keeps the aligned-with line. */
@media (max-width:639px){.aha-band{display:none}}
/* Fixed height near the screen's, form scrolls inside. Auto-resizing looped: CPR Enroll's page fills its frame, so its reported height kept growing. */
.reg-frame{display:block;width:100%;height:calc(100vh - 150px);min-height:620px;max-height:1100px;border:0}.reg-alt{margin-top:12px}
/* ---------- class catalog (/classes/): tiles, list, calendar ---------- */
.cx-app{--cx-brand:var(--red);--cx-wash:var(--chip);--cx-bline:#c6d6ec;--cx-s2:#f6f8fb;--cx-ink3:#5f6878;--ok-c:#146c47;--ok-b:#e4f3ec;--warn-c:#8a5600;--warn-b:#fbf1de;--stop-c:#a11f22;--stop-b:#fbeceb;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;margin-top:8px;font-size:15px;line-height:1.55}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .cx-app{--cx-bline:#2f4366;--cx-s2:#18263f;--cx-ink3:#8693a8;--ok-c:#63d9a0;--ok-b:#0f2a1e;--warn-c:#efbe6f;--warn-b:#2a2013;--stop-c:#f2a3a0;--stop-b:#2c1616}}
:root[data-theme="dark"] .cx-app{--cx-bline:#2f4366;--cx-s2:#18263f;--cx-ink3:#8693a8;--ok-c:#63d9a0;--ok-b:#0f2a1e;--warn-c:#efbe6f;--warn-b:#2a2013;--stop-c:#f2a3a0;--stop-b:#2c1616}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.cx-bar{border-bottom:1px solid var(--line)}
.cx-brow{display:flex;align-items:center;gap:11px;padding:13px 18px;flex-wrap:wrap}.cx-brow+.cx-brow{border-top:1px dashed var(--line);align-items:flex-end}
.cx-seg{display:inline-flex;padding:3px;gap:2px;background:var(--cx-s2);border:1px solid var(--line);border-radius:10px}
.cx-seg button{border:0;background:transparent;cursor:pointer;padding:7px 13px;border-radius:7px;font:600 .88rem/1 var(--body);color:var(--ink-soft);display:inline-flex;align-items:center;gap:7px}
.cx-seg button:hover{color:var(--ink)}.cx-seg button[aria-pressed="true"]{background:var(--surface);color:var(--cx-brand);box-shadow:var(--shadow)}.cx-seg svg{width:15px;height:15px}
.cx-search{position:relative;flex:1 1 220px;max-width:360px}.cx-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--cx-ink3)}
.cx-search input{width:100%;padding:9px 12px 9px 34px;border:1px solid var(--line);border-radius:9px;background:var(--cx-s2);color:var(--ink);font:inherit;font-size:.92rem}
.cx-search input:focus,.cx-field select:focus{outline:none;border-color:var(--cx-brand);box-shadow:0 0 0 3px var(--cx-wash);background:var(--surface)}
.cx-field{display:inline-flex;flex-direction:column;gap:3px}.cx-field>span{font:700 .66rem/1.2 var(--body);letter-spacing:.07em;text-transform:uppercase;color:var(--cx-ink3)}
.cx-field select{appearance:none;padding:8px 29px 8px 11px;border:1px solid var(--line);border-radius:9px;background:var(--cx-s2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 6'%3E%3Cpath fill='%238a92a0' d='M.6 0h7.8L4.5 5.4z'/%3E%3C/svg%3E") no-repeat right 10px center/9px 6px;color:var(--ink);font:inherit;font-size:.87rem;max-width:210px;cursor:pointer;text-overflow:ellipsis}
.cx-link{border:0;background:none;cursor:pointer;color:var(--ink-soft);font-size:.84rem;text-decoration:underline;text-underline-offset:3px;padding:8px 2px}.cx-link:hover{color:var(--stop-c)}
.cx-head{display:flex;align-items:baseline;gap:12px;padding:17px 18px 0;flex-wrap:wrap}.cx-head h2{font-size:1.15rem;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.cx-head p{margin:0;font-size:.84rem;color:var(--cx-ink3)}
.cx-chips{display:flex;gap:6px;flex-wrap:wrap;padding:11px 18px 0}.cx-chips:empty{display:none}
.cx-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 10px;border-radius:999px;background:var(--cx-wash);border:1px solid var(--cx-bline);font-size:.8rem;font-weight:600}
.cx-chip button{border:0;background:none;cursor:pointer;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:15px;opacity:.6;color:inherit}.cx-chip button:hover{opacity:1}
.cx-stage{padding:17px 18px 20px}
.cx-pill{display:inline-flex;align-items:center;padding:3px 8px;border-radius:6px;font:650 .73rem/1.3 var(--body);white-space:nowrap}
.cx-pill.cat{background:var(--cx-wash);border:1px solid var(--cx-bline)}.cx-pill.fmt{background:var(--cx-s2);color:var(--ink-soft);border:1px solid var(--line)}
.cx-pill.ok{background:var(--ok-b);color:var(--ok-c)}.cx-pill.warn{background:var(--warn-b);color:var(--warn-c)}.cx-pill.stop{background:var(--stop-b);color:var(--stop-c)}
.cx-price{font:700 1.08rem/1.2 var(--body);letter-spacing:-.02em;white-space:nowrap;font-variant-numeric:tabular-nums}.cx-price small{display:block;font-size:.72rem;font-weight:400;color:var(--cx-ink3);letter-spacing:0}
.cx-price.none{font-size:.86rem;font-weight:600;color:var(--cx-ink3);letter-spacing:0}
.cx-btn{display:inline-flex;align-items:center;justify-content:center;padding:9px 15px;border-radius:9px;font:600 .86rem/1 var(--body);border:1px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap}
.cx-btn.primary{background:var(--cx-brand);color:#fff}.cx-btn.primary:hover{background:var(--red-d)}
.cx-btn.wait{background:var(--warn-b);color:var(--warn-c);border-color:color-mix(in srgb,var(--warn-c) 32%,transparent)}
.cx-btn.ghost{background:var(--surface);color:var(--ink-soft);border-color:var(--line)}.cx-btn.ghost:hover{color:var(--ink);border-color:var(--cx-ink3)}
.cx-btn.off{background:var(--cx-s2);color:var(--cx-ink3);border-color:var(--line);cursor:not-allowed}
.cx-acts{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.cx-meta{display:flex;flex-direction:column;gap:6px;font-size:.84rem;color:var(--ink-soft)}.cx-meta div{display:flex;gap:8px;align-items:flex-start}.cx-meta svg{width:14px;height:14px;flex:none;margin-top:3px;color:var(--cx-ink3)}.cx-meta b{color:var(--ink);font-weight:600}.cx-meta i,.cx-app .soft{font-style:normal;color:var(--cx-ink3)}
/* tiles */
.cx-tiles{display:grid;gap:17px;grid-template-columns:repeat(auto-fill,minmax(285px,1fr))}
.cx-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:box-shadow .15s,transform .15s}
.cx-card:hover{box-shadow:0 14px 36px rgba(16,24,40,.16),0 4px 10px rgba(16,24,40,.06);transform:translateY(-2px)}
.cx-media{position:relative;aspect-ratio:16/6;display:grid;place-items:center;background:linear-gradient(135deg,var(--t1),color-mix(in srgb,var(--t1) 60%,#000));border-bottom:1px solid var(--line)}
.cx-mono{font:800 1.25rem/1 var(--display);letter-spacing:.04em;color:rgba(255,255,255,.96);text-shadow:0 1px 4px rgba(0,0,0,.3)}
.cx-fmt{position:absolute;top:9px;right:9px;background:rgba(255,255,255,.92)!important;color:#151922!important;border-color:rgba(0,0,0,.08)!important}
.cx-body{padding:14px 15px 0;flex:1;display:flex;flex-direction:column;gap:9px}.cx-eye{display:flex;gap:6px;flex-wrap:wrap}
.cx-title{font:650 .97rem/1.35 var(--body);letter-spacing:-.01em;margin:0}.cx-title a,.cx-rt a{color:inherit;text-decoration:none}.cx-title a:hover,.cx-rt a:hover{color:var(--cx-brand);text-decoration:underline;text-underline-offset:2px}
.cx-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 15px;margin-top:12px;border-top:1px solid var(--line);background:var(--cx-s2)}
/* list */
.cx-list{border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.cx-r{display:grid;gap:15px;align-items:center;padding:13px 16px;grid-template-columns:78px minmax(0,2.4fr) minmax(0,1.2fr) auto auto}.cx-r+.cx-r{border-top:1px solid var(--line)}.cx-r:hover{background:var(--cx-s2)}
.cx-day{text-align:center;border:1px solid var(--line);border-radius:8px;padding:6px 4px;background:var(--cx-s2);line-height:1.15;font-variant-numeric:tabular-nums}
.cx-day .m{font:700 .64rem/1.3 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--cx-brand)}.cx-day .d{font:700 1.25rem/1.1 var(--body);letter-spacing:-.03em}.cx-day .w{font-size:.66rem;color:var(--cx-ink3)}
.cx-day.any .d{font-size:.76rem;font-weight:600;padding:6px 0;color:var(--ink-soft);letter-spacing:0}
.cx-rmain{min-width:0;display:flex;flex-direction:column;gap:6px}.cx-rt{margin:0;font:620 .92rem/1.35 var(--body)}.cx-tags{display:flex;gap:6px;flex-wrap:wrap}
.cx-rside{min-width:0;font-size:.8rem;color:var(--ink-soft);display:flex;flex-direction:column;gap:3px}.cx-rside span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cx-rprice{text-align:right}
@media (max-width:880px){.cx-r{grid-template-columns:66px minmax(0,1fr);grid-template-areas:"day main" "day side" ". price" ". act";row-gap:9px}
 .cx-r>:nth-child(1){grid-area:day;align-self:start}.cx-r>:nth-child(2){grid-area:main}.cx-r>:nth-child(3){grid-area:side}.cx-r>:nth-child(4){grid-area:price;text-align:left}.cx-r>:nth-child(5){grid-area:act}}
/* calendar */
.cx-calnav{display:flex;align-items:center;gap:10px;margin-bottom:13px;flex-wrap:wrap}.cx-calnav h3{font:700 1.05rem/1.2 var(--body);letter-spacing:-.01em;min-width:170px}
.cx-calnav button{width:32px;height:32px;border:1px solid var(--line);border-radius:8px;background:var(--surface);display:grid;place-items:center;color:var(--ink-soft);cursor:pointer}.cx-calnav button:disabled{opacity:.35;cursor:not-allowed}.cx-calnav svg{width:14px;height:14px}.cx-calnav span{font-size:.8rem;color:var(--cx-ink3)}
.cx-cal{border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.cx-calh,.cx-calg{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cx-calg{grid-auto-rows:minmax(118px,auto)}
.cx-calh div{padding:9px 6px;font:700 .66rem/1.2 var(--body);letter-spacing:.07em;text-transform:uppercase;color:var(--cx-ink3);text-align:center;background:var(--cx-s2);border-bottom:1px solid var(--line);overflow:hidden}
.cx-cell{padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:4px;min-width:0;overflow:hidden}.cx-cell:nth-child(7n){border-right:0}
.cx-cell.pad{background:var(--cx-s2)}.cx-cell.now{background:var(--cx-wash)}.cx-n{font:650 .76rem/1.2 var(--body);color:var(--ink-soft);font-variant-numeric:tabular-nums}.cx-cell.now .cx-n{color:var(--cx-brand)}
.cx-evt{display:block;width:100%;border:0;border-left:3px solid var(--e,var(--cx-brand));cursor:pointer;text-align:left;padding:4px 6px;border-radius:5px;font:500 .72rem/1.3 var(--body);background:var(--cx-wash);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cx-evt:hover{filter:brightness(.96)}.cx-evt b{font-weight:650}
.cx-more{border:0;background:none;padding:0 6px;text-align:left;font-size:.7rem;color:var(--cx-brand);cursor:pointer;text-decoration:underline}
@media (max-width:720px){.cx-calg{grid-auto-rows:minmax(78px,auto)}.cx-cell{padding:4px}.cx-calh div{padding:8px 2px;font-size:.6rem;letter-spacing:.02em}.cx-evt{font-size:.62rem;padding:3px 4px}}
.cx-any{border:1px solid var(--line);border-radius:var(--r);padding:15px 17px;margin-bottom:18px;background:var(--cx-s2)}.cx-anyh{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.cx-anyh h3{font:700 .92rem/1.3 var(--body)}.cx-anyh p{margin:0;font-size:.8rem;color:var(--cx-ink3)}
.cx-anys{display:flex;gap:10px;overflow-x:auto;padding:12px 0 4px}.cx-anycard{flex:0 0 240px;padding:11px 13px;border:1px solid var(--line);border-radius:8px;background:var(--surface);display:flex;flex-direction:column;gap:7px}
.cx-anycard h4{margin:0;font:620 .82rem/1.35 var(--body)}.cx-anycard h4 button{border:0;background:none;cursor:pointer;padding:0;font:inherit;color:inherit;text-align:left}.cx-anycard h4 button:hover{color:var(--cx-brand);text-decoration:underline}
.cx-anyl{font-size:.76rem;color:var(--cx-ink3)}.cx-anyf{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto}
.cx-empty{text-align:center;padding:60px 22px;border:1px solid var(--line);border-radius:var(--r)}.cx-empty h3{font:650 1rem/1.3 var(--body);margin:0 0 6px}.cx-empty p{margin:0 auto 14px;max-width:440px;font-size:.86rem;color:var(--ink-soft)}
/* detail dialog */
#cx-dialog{padding:0;border:0;border-radius:14px;width:min(660px,94vw);background:var(--surface);color:var(--ink);box-shadow:0 18px 44px rgba(0,0,0,.35)}#cx-dialog::backdrop{background:rgba(8,12,20,.6)}
.cx-dh{display:flex;gap:14px;align-items:flex-start;padding:19px 21px 15px;border-bottom:1px solid var(--line)}.cx-dh>div{min-width:0}.cx-dh h2{margin:8px 0 0;font:700 1.15rem/1.3 var(--body);letter-spacing:-.01em}
.cx-dx{margin-left:auto;flex:none;width:32px;height:32px;border:1px solid var(--line);background:var(--tint);border-radius:8px;cursor:pointer;display:grid;place-items:center;color:var(--ink-soft);font-size:18px}
.cx-db{padding:17px 21px 21px;max-height:60vh;overflow-y:auto;font-size:.9rem}
.cx-sess{list-style:none;margin:0 0 17px;padding:0;display:flex;flex-direction:column;gap:8px}.cx-sess li{display:flex;gap:11px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--tint)}
.cx-sess .n{width:22px;height:22px;flex:none;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700}.cx-sess .tz{margin-left:auto;color:var(--ink-soft);font-size:.78rem;white-space:nowrap}
.cx-facts{border-collapse:collapse;width:100%;margin-bottom:17px}.cx-facts th,.cx-facts td{padding:8px 0;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.cx-facts th{width:40%;font-weight:600;color:var(--ink-soft)}
.cx-desc p{margin:0 0 11px}.cx-desc .soft{color:var(--ink-soft)}
.cx-df{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:13px 21px;border-top:1px solid var(--line);background:var(--tint);flex-wrap:wrap}
#cx-dialog .cx-pill.cat{background:var(--chip);border:1px solid var(--line)}#cx-dialog .cx-pill.fmt{background:var(--tint);color:var(--ink-soft);border:1px solid var(--line)}
#cx-dialog .cx-btn.primary{background:var(--red);color:#fff}#cx-dialog .cx-btn{display:inline-flex;padding:9px 15px;border-radius:9px;font:600 .86rem/1 var(--body);text-decoration:none}
.reg-h1{font-size:clamp(1.9rem,4vw,2.8rem)}

/* recent-enrollment popup (home page) */
.fomo{position:fixed;left:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:40;width:min(380px,calc(100vw - 32px));pointer-events:none}
.fomo-card{pointer-events:auto;position:relative;display:flex;align-items:center;gap:14px;background:#fff;color:var(--ink);border:1px solid var(--line);border-left:4px solid var(--red);border-radius:14px;box-shadow:0 12px 32px -8px rgba(10,20,40,.38),0 2px 6px rgba(10,20,40,.14);padding:12px 42px 12px 12px;animation:fomo-in .3s ease-out}
.fomo-card.out{opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s}
.fomo-card img{width:52px;height:52px;flex:none;object-fit:contain;border-radius:10px;background:var(--tint);padding:4px}
.fomo-card p{margin:0;font-size:.92rem;line-height:1.4}.fomo-card p b:last-child{color:var(--red)}
.fomo-card small{display:flex;align-items:center;gap:6px;margin-top:5px;font:700 .72rem/1 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.fomo-card small::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--gold)}
.fomo-x{position:absolute;top:6px;right:6px;width:30px;height:30px;border:0;border-radius:50%;background:none;color:var(--ink-soft);font:400 1.35rem/1 var(--body);cursor:pointer}.fomo-x:hover{background:var(--tint);color:var(--ink)}
@keyframes fomo-in{from{opacity:0;transform:translateY(12px)}}
@media (max-width:500px){.fomo-card img{display:none}}
@media (prefers-reduced-motion:reduce){.fomo-card{animation:none}.fomo-card.out{transition:none}}
/* The popup card is always white with dark text (light palette scoped to it), so it stands out on any section and in dark mode. */
.fomo{--ink:#14213a;--ink-soft:#56627a;--line:#d3dae4;--tint:#f1f4f9;--red:#1a6fc4;color-scheme:light}
footer .fcols a[href^="tel:"],footer .fcols a[href^="mailto:"]{color:inherit;text-decoration:none}footer .fcols a[href^="tel:"]:hover,footer .fcols a[href^="mailto:"]:hover{text-decoration:underline}
