/* vanilla base reset (no framework) */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--p9b5d5-font, system-ui, -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif); line-height: 1.5; color: var(--p9b5d5-ink, #111); background: var(--p9b5d5-bg, #fff); }
h1, h2, h3, h4, h5, h6 { font-family: var(--p9b5d5-font-display, var(--p9b5d5-font, system-ui, sans-serif)); }
img, svg, video, canvas { max-width: 100%; height: auto; }
a { color: inherit; }
*:focus-visible { outline: 2px solid var(--p9b5d5-primary, #2563eb); outline-offset: 2px; }
/* visibility shim for framework toggles */
.hidden { display: none !important; }

/* design tokens */
:root {
  --p9b5d5-primary: #3D6478;
  --p9b5d5-secondary: #6E8B6A;
  --p9b5d5-accent: #C4551F;
  --p9b5d5-ink: #241C16;
  --p9b5d5-slate: #6B5F55;
  --p9b5d5-mist: #E9E3D6;
  --p9b5d5-border: #D8D2C6;
  --p9b5d5-surface: #FBFAF6;
  --p9b5d5-bg: #F4F1EA;
  --p9b5d5-text: #1E1712;
  --p9b5d5-font: 'Avenir Next', Avenir, 'Segoe UI', system-ui, sans-serif;
  --p9b5d5-font-display: 'Avenir Next', Avenir, 'Segoe UI', 'Century Gothic', sans-serif;
}

/* state utilities */
.is-open { display: block !important; }
.is-active { display: block !important; }
[hidden] { display: none !important; }

/* framework-injected components (vanilla) */
[data-p9b5d5-view="cookie-banner"] { position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 9999; margin: 0 auto; max-width: 56rem; border: 1px solid var(--p9b5d5-border, #e5e7eb); background: var(--p9b5d5-surface, #fff); border-radius: 1rem; padding: 1rem; box-shadow: 0 10px 30px rgba(0,0,0,.15); }
[data-p9b5d5-view="cookie-banner"] > div { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-start; justify-content: space-between; }
[data-p9b5d5-view="cookie-banner"] > div > div:last-child { display: flex; flex-wrap: wrap; gap: .5rem; }
[data-p9b5d5-view="cookie-banner"] a { text-decoration: underline; }
[data-p9b5d5-cs-action], [data-p9b5d5-ag-action] { cursor: pointer; border-radius: .5rem; padding: .5rem .9rem; font-size: .8rem; border: 1px solid var(--p9b5d5-border, #d1d5db); background: transparent; color: var(--p9b5d5-ink, #111); }
[data-p9b5d5-cs-action="accept-all"], [data-p9b5d5-cs-action="save"], [data-p9b5d5-ag-action="confirm"] { background: var(--p9b5d5-primary, #2563eb); color: #fff; border-color: transparent; font-weight: 600; }
[data-p9b5d5-cs-action="reject-all"] { background: var(--p9b5d5-ink, #111); color: #fff; border-color: transparent; font-weight: 600; }
[data-p9b5d5-cs-panel] { margin-top: 1rem; border: 1px solid var(--p9b5d5-border, #e5e7eb); background: var(--p9b5d5-surface, #fff); border-radius: .75rem; padding: 1rem; font-size: .875rem; }
[data-p9b5d5-cs-panel] > div { display: flex; flex-wrap: wrap; gap: .75rem; }
[data-p9b5d5-view="cookie-banner"] label { display: inline-flex; align-items: center; gap: .5rem; }
[data-p9b5d5-view="age-gate-overlay"] { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,.8); }
[data-p9b5d5-view="age-gate-overlay"] > div { width: 100%; max-width: 28rem; margin: 0 1rem; background: var(--p9b5d5-surface, #1a1a2e); color: var(--p9b5d5-ink, #fff); border-radius: 1rem; padding: 2rem; text-align: center; box-shadow: 0 20px 60px rgba(0,0,0,.4); }
[data-p9b5d5-view="age-gate-overlay"] > div > div:last-of-type { display: flex; flex-direction: column; gap: .75rem; }
[data-p9b5d5-ag-action] { padding: .75rem 1.5rem; }

/* sections */
/* p9b5d5:header */
/* p9b5d5:header */
#header.site-header{position:sticky;top:0;z-index:60;background:var(--p9b5d5-surface);border-bottom:1px solid var(--p9b5d5-border)}
#header .header-inner{max-width:72rem;margin:0 auto;padding:0.7rem clamp(1rem,4vw,3rem);display:flex;align-items:center;gap:clamp(0.75rem,3vw,2.5rem);flex-wrap:wrap}
#header .wordmark{display:flex;flex-direction:column;gap:0.15rem;text-decoration:none;color:var(--p9b5d5-ink);margin-right:auto}
#header .wordmark-name{font-family:'Avenir Next',Avenir,'Segoe UI',system-ui,sans-serif;font-size:1.0625rem;font-weight:700;letter-spacing:-0.02em;line-height:1.1}
#header .wordmark-sub{font-family:ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;font-size:0.625rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--p9b5d5-slate)}
#header .header-nav-list{display:flex;align-items:center;gap:clamp(0.5rem,1.5vw,1.25rem);list-style:none;margin:0;padding:0}
#header .header-nav-list a{display:inline-flex;align-items:center;min-height:44px;padding:0.25rem 0.15rem;text-decoration:none;font-family:ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;font-size:0.6875rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--p9b5d5-slate);border-bottom:1px solid transparent;transition:color 150ms ease-out,border-color 150ms ease-out}
#header .header-nav-list a:hover{color:var(--p9b5d5-ink);border-bottom-color:var(--p9b5d5-ink)}
#header .header-nav-list a:focus-visible{outline:2px solid var(--p9b5d5-accent);outline-offset:3px}
#header .header-cta{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 1.1rem;background:var(--p9b5d5-accent);color:var(--p9b5d5-ink);text-decoration:none;font-weight:700;font-size:0.875rem;letter-spacing:0.01em;border:1px solid var(--p9b5d5-ink);border-radius:2px;box-shadow:2px 2px 0 var(--p9b5d5-ink);transition:box-shadow 150ms ease-out,background-color 150ms ease-out}
#header .header-cta:hover{background:var(--p9b5d5-primary);color:var(--p9b5d5-surface);box-shadow:1px 1px 0 var(--p9b5d5-ink)}
#header .header-cta:focus-visible{outline:2px solid var(--p9b5d5-ink);outline-offset:3px}
#header ::selection{background:var(--p9b5d5-mist);color:var(--p9b5d5-ink)}
@media (max-width:768px){
  #header .header-inner{gap:0.5rem 0.75rem}
  #header .header-nav{order:3;width:100%;border-top:1px solid var(--p9b5d5-border);padding-top:0.4rem}
  #header .header-nav-list{flex-wrap:wrap;gap:0.25rem 1rem}
  #header .header-nav-list a{font-size:0.625rem}
  #header .header-cta{min-height:44px;padding:0 0.85rem;font-size:0.8125rem}
}
@media (prefers-reduced-motion:reduce){
  #header .header-nav-list a,#header .header-cta{transition:none}
}
/* p9b5d5:footer */
/* p9b5d5:footer */
.footer{background:var(--p9b5d5-ink);color:var(--p9b5d5-mist);border-top:3px solid var(--p9b5d5-accent);padding:clamp(3rem,7vw,5rem) clamp(1rem,4vw,3rem) 2rem;font-family:'Avenir Next',Avenir,'Segoe UI',system-ui,sans-serif}
.footer-inner{max-width:72rem;margin:0 auto;display:grid;gap:clamp(1.5rem,3vw,2.5rem)}
.footer-eyebrow{font-family:ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--p9b5d5-secondary);margin:0 0 .5rem}
.footer-name{font-size:clamp(1.5rem,3vw,2rem);letter-spacing:-.02em;font-weight:700;margin:0;color:var(--p9b5d5-surface)}
.footer-tagline{margin:.5rem 0 0;max-width:34ch;font-size:.9375rem;line-height:1.5;color:var(--p9b5d5-mist)}
.footer-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1.25rem,3vw,2rem);border-top:1px solid var(--p9b5d5-slate);padding-top:1.5rem}
.footer-label{font-family:ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--p9b5d5-secondary);margin:0 0 .75rem;font-weight:600}
.footer-address,.footer-hours{margin:0 0 .5rem;font-style:normal;font-size:.9375rem;line-height:1.55;color:var(--p9b5d5-mist)}
.footer-hours{color:var(--p9b5d5-mist);font-variant-numeric:tabular-nums}
.footer-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;font-size:.9375rem;line-height:1.4;color:var(--p9b5d5-mist)}
.footer-list a{display:inline-block;min-height:24px;color:var(--p9b5d5-mist);text-decoration:none;border-bottom:1px solid transparent;transition:border-color 150ms ease-out,color 150ms ease-out}
.footer-list a:hover,.footer-list a:focus-visible{color:var(--p9b5d5-surface);border-bottom-color:var(--p9b5d5-accent)}
.footer-notes{display:grid;gap:.75rem;max-width:72ch;border-top:1px solid var(--p9b5d5-slate);padding-top:1.25rem}
.footer-notes p{margin:0;font-size:.8125rem;line-height:1.6;color:var(--p9b5d5-mist)}
.footer-copy{font-family:ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;margin:0;color:var(--p9b5d5-secondary)}
.footer a:focus-visible,.footer :focus-visible{outline:2px solid var(--p9b5d5-accent);outline-offset:3px}
.footer ::selection{background:var(--p9b5d5-accent);color:var(--p9b5d5-surface)}
@media (max-width:900px){.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr}.footer-tagline{max-width:none}}
@media (prefers-reduced-motion:reduce){.footer-list a{transition:none}}
/* p9b5d5:hero */
/* p9b5d5:hero */
#hero{background:var(--p9b5d5-bg);color:var(--p9b5d5-text);padding:clamp(2.5rem,6vw,4.5rem) 0 2.5rem;border-bottom:1px solid var(--p9b5d5-border)}
.hero-inner,.hero-figure{max-width:72rem;margin:0 auto;padding:0 clamp(1rem,4vw,3rem)}
.hero-inner{display:grid;gap:clamp(2rem,4vw,3rem)}
@media(min-width:1024px){.hero-inner{grid-template-columns:7fr 5fr;align-items:start}}
.hero-eyebrow,.station-map>p,.station-tag,.hero-cohort dt,.hero-figure figcaption{font-family:ui-monospace,Menlo,Consolas,monospace;text-transform:uppercase;letter-spacing:.13em;color:var(--p9b5d5-slate)}
.hero-eyebrow{margin:0 0 1.25rem;font-size:.75rem}
.hero-eyebrow span{margin-right:.5rem;color:var(--p9b5d5-accent)}
.hero-title{margin:0 0 1.25rem;font-size:clamp(2.25rem,5vw,4rem);line-height:1.03;letter-spacing:-.03em;font-weight:700;text-wrap:balance}
.hero-lede{margin:0 0 2rem;max-width:34rem;font-size:1.0625rem;line-height:1.6;color:var(--p9b5d5-slate)}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.25rem;margin:0 0 2.5rem}
.hero-cta{display:inline-flex;align-items:center;min-height:48px;padding:0 1.75rem;background:var(--p9b5d5-accent);color:var(--p9b5d5-surface);border:2px solid var(--p9b5d5-ink);border-radius:2px;font-weight:600;text-decoration:none;transition:transform 150ms ease-out,box-shadow 150ms ease-out}
.hero-cta:hover,.hero-cta:focus-visible{transform:translate(-2px,-2px);box-shadow:3px 3px 0 var(--p9b5d5-ink)}
.hero-link{color:var(--p9b5d5-primary);font-weight:600;text-underline-offset:3px}
.hero-link:hover{color:var(--p9b5d5-ink)}
.hero-cohort{display:flex;flex-wrap:wrap;gap:1.5rem;margin:0;padding-top:1rem;border-top:1px solid var(--p9b5d5-border)}
.hero-cohort dt{font-size:.625rem;margin-bottom:.3rem}
.hero-cohort dd{margin:0;font-size:.9375rem;font-weight:600;font-variant-numeric:tabular-nums}
.station-map{padding:1.15rem;background:var(--p9b5d5-surface);border:1px solid var(--p9b5d5-ink);border-radius:2px;box-shadow:2px 2px 0 var(--p9b5d5-ink)}
.station-map>p{margin:0 0 .9rem;padding-bottom:.6rem;font-size:.6875rem;border-bottom:1px solid var(--p9b5d5-border)}
.station-grid{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
@media(min-width:640px){.station-grid{grid-template-columns:1fr 1fr}}
.station-card{padding:.8rem;background:var(--p9b5d5-bg);border:1px solid var(--p9b5d5-border);border-radius:2px;transition:border-color 150ms ease-out}
.station-card:hover{border-color:var(--p9b5d5-ink)}
.station-tag{display:inline-block;margin:0 0 .5rem;padding:.1rem .45rem;font-size:.5625rem;letter-spacing:.1em;color:var(--p9b5d5-secondary);border:1px solid var(--p9b5d5-secondary);border-radius:999px}
.station-name{margin:0 0 .3rem;font-size:.9375rem;color:var(--p9b5d5-ink)}
.station-drill{margin:0;font-size:.8125rem;line-height:1.45;color:var(--p9b5d5-slate)}
.hero-figure{margin-top:clamp(2rem,4vw,3rem)}
.hero-figure img{display:block;width:100%;height:auto;border:1px solid var(--p9b5d5-ink)}
.hero-figure figcaption{margin:0;padding:.5rem .7rem;font-size:.6875rem;background:var(--p9b5d5-mist);border:1px solid var(--p9b5d5-ink);border-top:0}
.hero-cta:focus-visible,.hero-link:focus-visible{outline:2px solid var(--p9b5d5-primary);outline-offset:3px}
#hero ::selection{background:var(--p9b5d5-mist);color:var(--p9b5d5-ink)}
@media(prefers-reduced-motion:reduce){.hero-cta,.station-card{transition:none}.hero-cta:hover,.hero-cta:focus-visible{transform:none}}
/* p9b5d5:station-matrix */
/* p9b5d5:station-matrix */
#station-matrix{background:var(--p9b5d5-bg);color:var(--p9b5d5-text);padding:clamp(3rem,8vw,7rem) 0;font-family:'Avenir Next',Avenir,'Segoe UI',system-ui,sans-serif}
#station-matrix .grid{max-width:72rem;margin:0 auto;padding:0 clamp(1rem,4vw,3rem);display:grid;gap:2rem}
#station-matrix .rail{border-left:1px solid var(--p9b5d5-border);padding-left:1rem}
#station-matrix .mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--p9b5d5-slate)}
#station-matrix .rail__index{margin:0 0 .5rem}
#station-matrix .rail__title{margin:0 0 .75rem;font-size:clamp(1.5rem,3vw,2.25rem);line-height:1.1;letter-spacing:-.02em;color:var(--p9b5d5-ink);text-wrap:balance}
#station-matrix .rail__note{margin:0;font-size:.9375rem;line-height:1.5;color:var(--p9b5d5-slate)}
#station-matrix .panel{border:1px solid var(--p9b5d5-border);border-radius:4px;background:var(--p9b5d5-surface);box-shadow:2px 2px 0 var(--p9b5d5-border);overflow:hidden}
#station-matrix .panel__bar{display:flex;justify-content:space-between;gap:1rem;padding:.625rem .875rem;background:var(--p9b5d5-mist);border-bottom:1px solid var(--p9b5d5-border)}
#station-matrix .scroll{overflow-x:auto}
#station-matrix table{width:100%;border-collapse:collapse;font-size:.9375rem;font-variant-numeric:tabular-nums}
#station-matrix caption{text-align:left;padding:.625rem .875rem;border-bottom:1px solid var(--p9b5d5-border)}
#station-matrix th,#station-matrix td{text-align:left;padding:.75rem .875rem;border-bottom:1px solid var(--p9b5d5-border);vertical-align:top}
#station-matrix thead th{font-size:.6875rem;font-weight:600}
#station-matrix tbody th{color:var(--p9b5d5-ink);font-weight:600}
#station-matrix tbody tr:hover{background:var(--p9b5d5-mist)}
#station-matrix .tag{display:inline-block;margin-left:.375rem;padding:0 .375rem;border:1px solid var(--p9b5d5-secondary);border-radius:999px;font-size:.625rem;letter-spacing:.08em;text-transform:uppercase;color:var(--p9b5d5-secondary);font-weight:500}
#station-matrix .check{font-size:.625rem;letter-spacing:.08em;text-transform:uppercase;color:var(--p9b5d5-secondary);white-space:nowrap}
#station-matrix .seats{margin:1.25rem 0 0;font-size:.875rem;line-height:1.6;color:var(--p9b5d5-slate)}
#station-matrix .seats strong{color:var(--p9b5d5-accent)}
#station-matrix a{color:var(--p9b5d5-primary);text-decoration:underline;text-underline-offset:2px}
#station-matrix a:focus-visible{outline:2px solid var(--p9b5d5-accent);outline-offset:2px}
#station-matrix ::selection{background:var(--p9b5d5-accent);color:var(--p9b5d5-surface)}
@media(min-width:1024px){#station-matrix .grid{grid-template-columns:4fr 8fr;gap:3rem;align-items:start}#station-matrix .rail{position:sticky;top:5rem}}
@media(prefers-reduced-motion:reduce){#station-matrix *{transition:none!important;animation:none!important}}
/* p9b5d5:programmes */
/* p9b5d5:programmes */
.programmes{background:var(--p9b5d5-bg);color:var(--p9b5d5-text);padding:clamp(2.5rem,6vw,4.5rem) clamp(1rem,4vw,3rem);}
.programmes__grid{max-width:72rem;margin:0 auto;display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(1.25rem,3vw,2.5rem);align-items:start;}
.programmes__rail{grid-column:span 4;position:sticky;top:1.5rem;border-left:1px solid var(--p9b5d5-ink);padding-left:1rem;}
.programmes__index,.module__num,.module__meta{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;}
.programmes__index{margin:0 0 .85rem;color:var(--p9b5d5-slate);}
.programmes__title{margin:0 0 .6rem;font-size:clamp(1.35rem,2.4vw,1.9rem);line-height:1.15;letter-spacing:-.015em;text-wrap:balance;}
.programmes__purpose{margin:0;font-size:.9375rem;line-height:1.55;color:var(--p9b5d5-slate);}
.programmes__work{grid-column:span 8;}
.module-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--p9b5d5-border);}
.module{display:grid;grid-template-columns:2.5rem 1fr;gap:.5rem 1rem;padding:1rem 0;border-bottom:1px solid var(--p9b5d5-border);}
.module__num{color:var(--p9b5d5-slate);padding-top:.25rem;}
.module__name{margin:0;font-size:1.0625rem;letter-spacing:-.01em;}
.module__meta{display:flex;flex-wrap:wrap;gap:.35rem .9rem;margin:.35rem 0 .55rem;color:var(--p9b5d5-primary);font-variant-numeric:tabular-nums;}
.module__drill,.module__assess{margin:0 0 .35rem;font-size:.9375rem;line-height:1.55;}
.module__assess{margin:0;color:var(--p9b5d5-slate);}
.programmes__note{margin:1.25rem 0 0;padding-left:.9rem;border-left:2px solid var(--p9b5d5-secondary);font-size:.8125rem;line-height:1.55;color:var(--p9b5d5-slate);}
.programmes__links{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;}
.programmes__links a{display:inline-flex;align-items:center;min-height:48px;padding:0 1.25rem;border-radius:2px;font-size:.9375rem;text-decoration:none;transition:background-color 150ms ease-out,color 150ms ease-out;}
.link-primary{background:var(--p9b5d5-ink);color:var(--p9b5d5-surface);border:1px solid var(--p9b5d5-ink);}
.link-primary:hover{background:var(--p9b5d5-primary);border-color:var(--p9b5d5-primary);color:var(--p9b5d5-surface);}
.link-ghost{background:transparent;color:var(--p9b5d5-ink);border:1px solid var(--p9b5d5-ink);}
.link-ghost:hover{background:var(--p9b5d5-mist);}
.programmes a:focus-visible{outline:2px solid var(--p9b5d5-accent);outline-offset:2px;}
.programmes ::selection{background:var(--p9b5d5-secondary);color:var(--p9b5d5-surface);}
.module:hover{border-bottom-color:var(--p9b5d5-ink);}
@media (max-width:1024px){.programmes__rail{grid-column:span 12;position:static;border-left:0;border-top:1px solid var(--p9b5d5-ink);padding:.75rem 0 0;}.programmes__work{grid-column:span 12;}}
@media (prefers-reduced-motion:reduce){.programmes *{transition:none!important;animation:none!important;}}
/* p9b5d5:equipment-strip */
/* p9b5d5:equipment-strip */
.equipment-strip{position:relative;width:100vw;max-width:100vw;margin-inline:calc(50% - 50vw);background:var(--p9b5d5-ink);color:var(--p9b5d5-surface);padding-block:clamp(2.5rem,6vw,4.5rem);font-family:'Avenir Next',Avenir,'Segoe UI',system-ui,sans-serif;}
.equipment-strip__inner{max-width:72rem;margin-inline:auto;padding-inline:clamp(1rem,4vw,3rem);display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(1rem,2.5vw,2rem);}
.equipment-strip__head{grid-column:1/-1;max-width:44rem;}
.equipment-strip__eyebrow{margin:0 0 .75rem;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--p9b5d5-mist);}
.equipment-strip__title{margin:0 0 .75rem;font-size:clamp(1.5rem,3vw,2.5rem);line-height:1.1;letter-spacing:-.02em;text-wrap:balance;}
.equipment-strip__lede{margin:0;font-size:1rem;line-height:1.6;color:var(--p9b5d5-mist);}
.equipment-strip__figure{grid-column:1/6;margin:0;}
.equipment-strip__figure img{display:block;width:100%;height:auto;border:1px solid var(--p9b5d5-slate);}
.equipment-strip__caption{padding:.6rem .75rem;border-top:1px solid var(--p9b5d5-slate);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--p9b5d5-mist);}
.equipment-strip__specs{grid-column:6/-1;}
.spec-list{margin:0;border-top:1px solid var(--p9b5d5-slate);}
.spec-list__row{display:grid;grid-template-columns:9rem 1fr;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--p9b5d5-slate);}
.spec-list__row dt{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--p9b5d5-mist);padding-top:.15rem;}
.spec-list__row dd{margin:0;font-size:.9375rem;line-height:1.5;font-variant-numeric:tabular-nums;}
.equipment-strip__note{margin:1.25rem 0 1rem;font-size:.8125rem;line-height:1.55;color:var(--p9b5d5-mist);}
.equipment-strip__link{display:inline-block;min-height:44px;padding:.75rem 0;font-weight:600;color:var(--p9b5d5-surface);text-decoration:underline;text-underline-offset:.28em;transition:color 150ms ease-out;}
.equipment-strip__link:hover{color:var(--p9b5d5-mist);}
.equipment-strip__link:focus-visible{outline:2px solid var(--p9b5d5-surface);outline-offset:3px;}
.equipment-strip ::selection{background:var(--p9b5d5-accent);color:var(--p9b5d5-surface);}
@media (max-width:1023px){.equipment-strip__figure,.equipment-strip__specs{grid-column:1/-1;}}
@media (max-width:639px){.spec-list__row{grid-template-columns:1fr;gap:.25rem;}}
@media (prefers-reduced-motion:reduce){.equipment-strip__link{transition:none;}}
/* p9b5d5:cohorts */
/* p9b5d5:cohorts */
.cohorts{background:var(--p9b5d5-bg);color:var(--p9b5d5-text);padding:clamp(3rem,8vw,7rem) clamp(1rem,4vw,3rem);font-family:'Avenir Next',Avenir,'Segoe UI',system-ui,sans-serif}
.cohorts *{box-sizing:border-box}
.cohorts-grid{max-width:72rem;margin:0 auto;display:grid;gap:clamp(1.5rem,4vw,3rem)}
@media(min-width:1024px){.cohorts-grid{grid-template-columns:minmax(0,4fr) minmax(0,8fr)}}
.cohorts-rail{border-left:2px solid var(--p9b5d5-ink);padding-left:1rem}
.cohorts-index{margin:0 0 .75rem;font-family:ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--p9b5d5-slate)}
.cohorts-rail h2{margin:0 0 .75rem;font-size:clamp(1.5rem,3vw,2.5rem);line-height:1.05;letter-spacing:-.02em;text-wrap:balance}
.cohorts-purpose{margin:0;max-width:26ch;font-size:.9375rem;color:var(--p9b5d5-slate)}
.cohorts-work{background:var(--p9b5d5-surface);border:1px solid var(--p9b5d5-border);border-radius:2px}
.cohorts-bar{display:flex;justify-content:space-between;gap:1rem;padding:.65rem 1rem;border-bottom:1px solid var(--p9b5d5-border);font-family:ui-monospace,monospace;font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--p9b5d5-slate)}
.cohorts-scroll{overflow-x:auto}
.cohorts-caption{text-align:left;padding:.6rem 1rem 0;font-size:.75rem;color:var(--p9b5d5-slate)}
.cohorts-table{width:100%;min-width:38rem;border-collapse:collapse;font-variant-numeric:tabular-nums}
.cohorts-table th{text-align:left;padding:.75rem 1rem;font-family:ui-monospace,monospace;font-size:.6875rem;letter-spacing:.12em;text-transform:uppercase;color:var(--p9b5d5-slate);border-bottom:1px solid var(--p9b5d5-border)}
.cohorts-table td{padding:.85rem 1rem;font-size:.9375rem;border-bottom:1px solid var(--p9b5d5-border);vertical-align:middle}
.cohorts-table tbody tr:hover{background:var(--p9b5d5-mist)}
.cohorts-level{display:block;font-weight:600}
.cohorts-level small{display:block;margin-top:.15rem;font-weight:400;font-size:.8125rem;color:var(--p9b5d5-slate)}
.seats{display:inline-block;padding:.25rem .55rem;border:1px solid var(--p9b5d5-secondary);border-radius:999px;font-family:ui-monospace,monospace;font-size:.75rem;color:var(--p9b5d5-secondary);white-space:nowrap}
.seats.is-low{border-color:var(--p9b5d5-accent);color:var(--p9b5d5-accent)}
.seats.is-closed{border-color:var(--p9b5d5-slate);color:var(--p9b5d5-slate)}
.cohorts-link{display:inline-flex;align-items:center;min-height:44px;color:var(--p9b5d5-primary);font-weight:600;text-underline-offset:3px}
.cohorts-link:hover{color:var(--p9b5d5-ink)}
.cohorts-note{margin:0;padding:1rem;border-bottom:1px solid var(--p9b5d5-border);font-size:.8125rem;color:var(--p9b5d5-slate)}
.cohorts-cta{display:inline-flex;align-items:center;justify-content:center;min-height:48px;margin:1rem;padding:0 1.25rem;background:var(--p9b5d5-ink);color:var(--p9b5d5-surface);border:1px solid var(--p9b5d5-ink);border-radius:2px;font-weight:600;text-decoration:none;transition:background 150ms ease-out}
.cohorts-cta:hover{background:var(--p9b5d5-accent);border-color:var(--p9b5d5-accent);color:var(--p9b5d5-surface)}
.cohorts a:focus-visible,.cohorts-cta:focus-visible{outline:2px solid var(--p9b5d5-primary);outline-offset:3px}
.cohorts ::selection{background:var(--p9b5d5-mist);color:var(--p9b5d5-ink)}
@media(prefers-reduced-motion:reduce){.cohorts-cta{transition:none}}
/* p9b5d5:closing-cta */
/* p9b5d5:closing-cta */
#closing-cta{background:var(--p9b5d5-bg);color:var(--p9b5d5-text);padding:clamp(2.5rem,6vw,4.5rem) 0;}
#closing-cta .closing-cta__inner{max-width:1180px;margin:0 auto;padding:0 clamp(1rem,4vw,3rem);display:grid;gap:clamp(1.25rem,3vw,2rem);grid-template-columns:minmax(0,1fr);}
@media(min-width:1024px){#closing-cta .closing-cta__inner{grid-template-columns:4fr 8fr;}}
#closing-cta .closing-cta__rail{border-left:2px solid var(--p9b5d5-ink);padding-left:1rem;}
#closing-cta .closing-cta__index,#closing-cta .closing-cta__label{display:block;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.6875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--p9b5d5-slate);}
#closing-cta .closing-cta__title{margin:.5rem 0 .375rem;font-size:clamp(1.5rem,3vw,2.25rem);line-height:1.1;letter-spacing:-.02em;text-wrap:balance;color:var(--p9b5d5-ink);}
#closing-cta .closing-cta__purpose{margin:0;max-width:30ch;font-size:.875rem;line-height:1.5;color:var(--p9b5d5-slate);}
#closing-cta .closing-cta__panel{background:var(--p9b5d5-surface);border:1px solid var(--p9b5d5-ink);border-radius:2px;box-shadow:3px 3px 0 var(--p9b5d5-mist);padding:clamp(1.25rem,3vw,2rem);}
#closing-cta .closing-cta__meta{display:grid;gap:1rem;grid-template-columns:1fr;border-bottom:1px solid var(--p9b5d5-border);padding-bottom:1.25rem;}
@media(min-width:640px){#closing-cta .closing-cta__meta{grid-template-columns:repeat(3,minmax(0,1fr));}}
#closing-cta .closing-cta__cell{display:flex;flex-direction:column;gap:.3rem;}
#closing-cta .closing-cta__value{font-size:1.25rem;font-weight:700;letter-spacing:-.01em;color:var(--p9b5d5-ink);font-variant-numeric:tabular-nums;}
#closing-cta .closing-cta__note{font-size:.8125rem;line-height:1.4;color:var(--p9b5d5-slate);}
#closing-cta .closing-cta__cell--open .closing-cta__note{color:var(--p9b5d5-secondary);font-weight:700;}
#closing-cta .closing-cta__action{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin-top:1.5rem;}
#closing-cta .closing-cta__cta{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 1.5rem;background:var(--p9b5d5-accent);color:var(--p9b5d5-surface);border:1px solid var(--p9b5d5-ink);border-radius:2px;font-size:1.0625rem;font-weight:800;letter-spacing:.01em;text-decoration:none;transition:background 150ms ease-out,color 150ms ease-out;}
#closing-cta .closing-cta__cta:hover{background:var(--p9b5d5-ink);color:var(--p9b5d5-surface);}
#closing-cta .closing-cta__cta:focus-visible,#closing-cta .closing-cta__link:focus-visible{outline:3px solid var(--p9b5d5-primary);outline-offset:3px;}
#closing-cta .closing-cta__link{color:var(--p9b5d5-primary);font-weight:600;text-decoration:underline;text-underline-offset:3px;}
#closing-cta .closing-cta__link:hover{color:var(--p9b5d5-ink);}
#closing-cta .closing-cta__fine{margin:1.5rem 0 0;padding-top:1rem;border-top:1px solid var(--p9b5d5-border);font-size:.75rem;line-height:1.6;color:var(--p9b5d5-slate);}
#closing-cta ::selection{background:var(--p9b5d5-mist);color:var(--p9b5d5-ink);}
@media(prefers-reduced-motion:reduce){#closing-cta *{transition:none!important;}}
/* p9b5d5:programme-overview */
/* p9b5d5:programme-overview */
#programme-overview{background:var(--p9b5d5-bg);color:var(--p9b5d5-text);padding:clamp(2.5rem,6vw,4.5rem) 0}
#programme-overview .overview-grid{max-width:72rem;margin:0 auto;padding:0 clamp(1rem,4vw,3rem);display:grid;gap:clamp(1.5rem,4vw,3rem)}
#programme-overview .overview-rail{border-left:1px solid var(--p9b5d5-border);padding-left:1rem}
#programme-overview .eyebrow,#programme-overview figcaption{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;letter-spacing:.14em;color:var(--p9b5d5-slate)}
#programme-overview .eyebrow{margin:0 0 .75rem;text-transform:uppercase}
#programme-overview .overview-title{font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.1;letter-spacing:-.02em;margin:0 0 .6rem;text-wrap:balance}
#programme-overview .rail-purpose{margin:0;font-size:.875rem;line-height:1.5;color:var(--p9b5d5-slate)}
#programme-overview .fact-row{list-style:none;display:grid;gap:1rem;margin:0 0 1.75rem;padding:1rem 0;border-top:1px solid var(--p9b5d5-border);border-bottom:1px solid var(--p9b5d5-border)}
#programme-overview .fact-num{display:block;font-size:clamp(1.75rem,3vw,2.2rem);font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--p9b5d5-ink)}
#programme-overview .fact-label{display:block;margin-top:.2rem;font-size:.8125rem;line-height:1.4;color:var(--p9b5d5-slate)}
#programme-overview .module-board{margin:0 0 1.75rem;background:var(--p9b5d5-surface);border:1px solid var(--p9b5d5-border)}
#programme-overview .board-caption{margin:0;padding:.5rem .85rem;background:var(--p9b5d5-mist);border-bottom:1px solid var(--p9b5d5-border);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--p9b5d5-slate)}
#programme-overview .board-rows{list-style:none;margin:0;padding:0}
#programme-overview .board-rows li{display:grid;grid-template-columns:1fr auto;gap:.2rem .75rem;padding:.7rem .85rem;border-bottom:1px solid var(--p9b5d5-border)}
#programme-overview .board-rows li:last-child{border-bottom:0}
#programme-overview .board-rows li:hover{background:var(--p9b5d5-bg)}
#programme-overview .row-name{font-weight:600;font-size:.9375rem}
#programme-overview .row-hours{font-size:.8125rem;font-variant-numeric:tabular-nums;color:var(--p9b5d5-primary);border:1px solid var(--p9b5d5-border);padding:0 .4rem;align-self:start}
#programme-overview .row-for{grid-column:1/-1;font-size:.8125rem;line-height:1.45;color:var(--p9b5d5-slate)}
#programme-overview figure{margin:0 0 1.25rem;border:1px solid var(--p9b5d5-border);background:var(--p9b5d5-surface)}
#programme-overview figure img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
#programme-overview figcaption{padding:.5rem .75rem;border-top:1px solid var(--p9b5d5-border);letter-spacing:.04em}
#programme-overview .note{margin:0;font-size:.875rem;line-height:1.6;color:var(--p9b5d5-slate)}
#programme-overview a{color:var(--p9b5d5-ink);text-decoration:underline;text-underline-offset:2px}
#programme-overview a:hover{color:var(--p9b5d5-accent)}
#programme-overview :focus-visible{outline:2px solid var(--p9b5d5-accent);outline-offset:2px}
#programme-overview ::selection{background:var(--p9b5d5-mist);color:var(--p9b5d5-ink)}
@media (min-width:640px){#programme-overview .fact-row{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1024px){#programme-overview .overview-grid{grid-template-columns:4fr 8fr}#programme-overview .overview-rail{position:sticky;top:6rem;align-self:start}}
@media (prefers-reduced-motion:reduce){#programme-overview *{transition:none!important}}
/* p9b5d5:module-accordion */
/* p9b5d5:module-accordion */
#module-accordion{background:var(--p9b5d5-bg);color:var(--p9b5d5-text);padding:clamp(3rem,8vw,7rem) clamp(1rem,4vw,3rem);font-family:'Avenir Next',Avenir,system-ui,sans-serif}
.module-accordion__shell{max-width:72rem;margin:auto;display:grid;gap:1.5rem}
@media(min-width:1024px){.module-accordion__shell{grid-template-columns:4fr 8fr}.module-accordion__rail{position:sticky;top:6rem}}
.module-accordion__rail{display:grid;gap:.5rem;align-content:start}
.module-accordion__eyebrow,.module-item__num,.module-item__hours,.module-item__label{font:600 .6875rem/1.2 ui-monospace,Menlo,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--p9b5d5-slate)}
.module-accordion h2{margin:0;font-size:clamp(1.5rem,3vw,2.5rem);line-height:1.1;letter-spacing:-.02em;text-wrap:balance}
.module-accordion__purpose{max-width:34ch;margin:0;color:var(--p9b5d5-slate);line-height:1.5}
.module-accordion a{color:var(--p9b5d5-primary);text-underline-offset:.2em}
.module-accordion__list{border-top:1px solid var(--p9b5d5-border)}
.module-item{border-bottom:1px solid var(--p9b5d5-border)}
.module-item__trigger{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:baseline;width:100%;min-height:44px;padding:1rem 0;border:0;background:none;color:inherit;text-align:left;cursor:pointer}
.module-item__trigger:hover{color:var(--p9b5d5-primary)}
.module-item__trigger:focus-visible{outline:2px solid var(--p9b5d5-accent);outline-offset:4px}
.module-item__title{font-size:clamp(1.05rem,2vw,1.25rem);font-weight:600}
.module-item__panel{padding:0 0 1.25rem 2rem}
.module-item__line{margin:0 0 .5rem;line-height:1.5}
.certificate-note{margin:1.5rem 0 0;padding-left:1rem;border-left:2px solid var(--p9b5d5-primary);color:var(--p9b5d5-slate);font-size:.875rem}
/* p9b5d5:pricing */
/* p9b5d5:pricing */
#pricing{background:var(--p9b5d5-bg);color:var(--p9b5d5-text);padding:clamp(3rem,8vw,7rem) 0;font-family:'Avenir Next',Avenir,'Segoe UI',system-ui,sans-serif;}
#pricing .pricing-shell{max-width:72rem;margin:0 auto;padding:0 clamp(1rem,4vw,3rem);display:grid;grid-template-columns:1fr;gap:clamp(1.5rem,4vw,3rem);}
#pricing .pricing-eyebrow{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--p9b5d5-primary);margin:0 0 .75rem;}
#pricing .pricing-title{font-size:clamp(1.5rem,3vw,2.25rem);line-height:1.12;letter-spacing:-.02em;margin:0 0 .625rem;text-wrap:balance;}
#pricing .pricing-purpose{margin:0;font-size:.9375rem;color:var(--p9b5d5-slate);max-width:26ch;}
#pricing .pricing-panel{background:var(--p9b5d5-surface);border:1px solid var(--p9b5d5-border);border-radius:2px;box-shadow:2px 2px 0 var(--p9b5d5-mist);}
#pricing .pricing-caption{margin:0;padding:.625rem 1rem;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--p9b5d5-slate);border-bottom:1px solid var(--p9b5d5-border);}
#pricing .pricing-table{width:100%;border-collapse:collapse;font-size:.9375rem;}
#pricing .pricing-table th,#pricing .pricing-table td{text-align:left;padding:.8125rem 1rem;border-bottom:1px solid var(--p9b5d5-border);}
#pricing .pricing-table thead th{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.6875rem;letter-spacing:.12em;text-transform:uppercase;color:var(--p9b5d5-slate);font-weight:600;}
#pricing .pricing-table tbody th{font-weight:600;color:var(--p9b5d5-ink);}
#pricing .pricing-table tbody tr:hover{background:var(--p9b5d5-mist);}
#pricing .pricing-table tbody tr:last-child th,#pricing .pricing-table tbody tr:last-child td{border-bottom:0;}
#pricing .pricing-fee{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:var(--p9b5d5-ink);white-space:nowrap;}
#pricing .pricing-combo{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;margin-top:clamp(1rem,3vw,1.75rem);padding:1.25rem;background:var(--p9b5d5-surface);border:1px solid var(--p9b5d5-ink);border-left:3px solid var(--p9b5d5-accent);border-radius:2px;}
#pricing .pricing-combo-title{font-size:1.0625rem;line-height:1.3;margin:0 0 .375rem;letter-spacing:-.01em;}
#pricing .pricing-combo-text{margin:0;font-size:.875rem;color:var(--p9b5d5-slate);max-width:46ch;}
#pricing .pricing-combo-fee{margin:0;font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--p9b5d5-ink);}
#pricing .pricing-combo-fee span{display:block;font-size:.75rem;font-weight:400;letter-spacing:0;color:var(--p9b5d5-slate);margin-top:.25rem;}
#pricing .pricing-note{margin:1.25rem 0 0;font-size:.8125rem;line-height:1.65;color:var(--p9b5d5-slate);border-top:1px solid var(--p9b5d5-border);padding-top:1rem;}
#pricing .pricing-links{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin:1rem 0 0;}
#pricing .pricing-links a{color:var(--p9b5d5-primary);font-size:.875rem;font-weight:600;text-decoration:underline;text-underline-offset:3px;min-height:44px;display:inline-flex;align-items:center;}
#pricing .pricing-links a:hover{color:var(--p9b5d5-accent);}
#pricing a:focus-visible{outline:2px solid var(--p9b5d5-accent);outline-offset:3px;}
#pricing ::selection{background:var(--p9b5d5-mist);color:var(--p9b5d5-ink);}
@media (min-width:1024px){#pricing .pricing-shell{grid-template-columns:1fr 2fr;align-items:start;}#pricing .pricing-rail{position:sticky;top:6rem;border-left:2px solid var(--p9b5d5-ink);padding-left:1rem;}}
@media (prefers-reduced-motion:reduce){#pricing *{transition:none!important;transform:none!important;}}
/* p9b5d5:closing-cta */
/* p9b5d5:closing-cta */
#closing-cta{background:var(--p9b5d5-bg);color:var(--p9b5d5-text);font-family:"Avenir Next",Avenir,"Segoe UI",system-ui,sans-serif;padding:clamp(3rem,8vw,7rem) 0}
#closing-cta ::selection{background:var(--p9b5d5-secondary);color:var(--p9b5d5-surface)}
#closing-cta .closing-cta__inner{max-width:72rem;margin:0 auto;padding:0 clamp(1rem,4vw,3rem);display:grid;gap:clamp(1.5rem,4vw,3rem);grid-template-columns:minmax(0,1fr)}
#closing-cta .closing-cta__rail{border-left:2px solid var(--p9b5d5-ink);padding-left:1rem}
#closing-cta .closing-cta__index,#closing-cta .closing-cta__bar,#closing-cta dt{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase}
#closing-cta .closing-cta__index{display:block;color:var(--p9b5d5-accent);margin-bottom:.6rem}
#closing-cta .closing-cta__rail-title{margin:0;font-size:clamp(1.5rem,3vw,2.5rem);line-height:1.1;letter-spacing:-.02em;color:var(--p9b5d5-ink);text-wrap:balance}
#closing-cta .closing-cta__rail-note{margin:.75rem 0 0;font-size:.875rem;line-height:1.5;color:var(--p9b5d5-slate);max-width:26ch}
#closing-cta .closing-cta__panel{background:var(--p9b5d5-surface);border:1px solid var(--p9b5d5-ink);box-shadow:2px 2px 0 var(--p9b5d5-ink);border-radius:2px}
#closing-cta .closing-cta__bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;padding:.6rem 1rem;border-bottom:1px solid var(--p9b5d5-border);color:var(--p9b5d5-slate)}
#closing-cta .closing-cta__body{padding:clamp(1.25rem,3vw,2rem)}
#closing-cta .closing-cta__facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1.5rem;margin:0 0 1.25rem}
#closing-cta dt{color:var(--p9b5d5-slate)}
#closing-cta dd{margin:.2rem 0 0;font-size:1.05rem;font-weight:600;color:var(--p9b5d5-ink);font-variant-numeric:tabular-nums}
#closing-cta .closing-cta__note{margin:0 0 1.5rem;padding-top:1rem;border-top:1px solid var(--p9b5d5-border);font-size:.875rem;line-height:1.6;color:var(--p9b5d5-slate)}
#closing-cta .closing-cta__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem 1.25rem}
#closing-cta .closing-cta__btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 1.75rem;border:1px solid var(--p9b5d5-ink);border-radius:2px;background:var(--p9b5d5-accent);color:var(--p9b5d5-surface);font-weight:600;text-decoration:none;transition:background 150ms ease-out,box-shadow 150ms ease-out}
#closing-cta .closing-cta__btn:hover{box-shadow:2px 2px 0 var(--p9b5d5-ink)}
#closing-cta .closing-cta__link{color:var(--p9b5d5-primary);font-weight:600;font-size:.9375rem;text-decoration:underline;text-underline-offset:3px;padding:.5rem 0}
#closing-cta a:focus-visible{outline:2px solid var(--p9b5d5-primary);outline-offset:3px}
@media (min-width:1024px){#closing-cta .closing-cta__inner{grid-template-columns:4fr 8fr}}
@media (max-width:639px){#closing-cta .closing-cta__facts{grid-template-columns:minmax(0,1fr)}#closing-cta .closing-cta__btn{width:100%}}
@media (prefers-reduced-motion:reduce){#closing-cta *{transition:none!important}}
/* p9b5d5:cohort-table */
/* p9b5d5:cohort-table */
.cohort-section{--mono:ui-monospace,Menlo,Consolas,monospace;background:var(--p9b5d5-bg);color:var(--p9b5d5-text);font-family:Avenir,"Segoe UI",system-ui,sans-serif;padding:clamp(3rem,8vw,7rem) clamp(1rem,4vw,3rem)}
.cohort-shell{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(1.5rem,3vw,3rem);max-width:72rem;margin:0 auto}
.cohort-rail{border-left:1px solid var(--p9b5d5-ink);padding-left:1rem}
.cohort-idx,.cohort-cap,.cohort-grid th,.cohort-fld{font-family:var(--mono);font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--p9b5d5-slate)}
.cohort-section h2{margin:0 0 .75rem;font-size:clamp(1.5rem,3vw,2.5rem);line-height:1.05;letter-spacing:-.02em;text-wrap:balance}
.cohort-rail p{margin:0 0 .75rem;font-size:.875rem;color:var(--p9b5d5-slate)}
.cohort-panel{border:1px solid var(--p9b5d5-ink);background:var(--p9b5d5-surface);box-shadow:2px 2px 0 var(--p9b5d5-border)}
.cohort-cap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--p9b5d5-border)}
.cohort-filters{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;padding:1rem;border-bottom:1px solid var(--p9b5d5-border)}
.cohort-fld{display:flex;flex-direction:column;gap:.25rem}
.cohort-section select{min-height:44px;border:1px solid var(--p9b5d5-ink);border-radius:2px;background:var(--p9b5d5-surface);color:var(--p9b5d5-text);font:inherit;font-size:.875rem;padding:.4rem .6rem}
.cohort-check{display:flex;align-items:center;gap:.5rem;min-height:44px;font-size:.8125rem}
.cohort-scroll{overflow-x:auto}
.cohort-grid{width:100%;min-width:34rem;border-collapse:collapse;font-size:.875rem;font-variant-numeric:tabular-nums}
.cohort-grid th{text-align:left;padding:.625rem 1rem;border-bottom:1px solid var(--p9b5d5-ink);white-space:nowrap}
.cohort-grid td{padding:.875rem 1rem;border-bottom:1px solid var(--p9b5d5-border);vertical-align:top}
.cohort-grid tbody tr:hover{background:var(--p9b5d5-mist)}
.cohort-grid tr[hidden]{display:none}
.cohort-dates{display:block;font-size:.75rem;color:var(--p9b5d5-slate);margin-top:.15rem}
.pill{display:inline-block;border:1px solid;border-radius:999px;padding:.1rem .5rem;font-family:var(--mono);font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase}
.pill.open{color:var(--p9b5d5-ink);background:var(--p9b5d5-mist);border-color:var(--p9b5d5-secondary)}
.pill.full{color:var(--p9b5d5-slate);background:var(--p9b5d5-bg);border-color:var(--p9b5d5-border)}
.cohort-book{color:var(--p9b5d5-accent);font-weight:600;text-underline-offset:2px}
.cohort-book:hover{color:var(--p9b5d5-ink)}
.cohort-note{margin:0;padding:.75rem 1rem;font-size:.75rem;color:var(--p9b5d5-slate)}
.cohort-section :focus-visible{outline:2px solid var(--p9b5d5-accent);outline-offset:2px}
@media(max-width:1024px){.cohort-shell{grid-template-columns:1fr}.cohort-rail{border-left:0;border-top:1px solid var(--p9b5d5-ink);padding:.75rem 0 0}}
/* p9b5d5:booking-form */
/* p9b5d5:booking-form */
#booking-form{--mono:ui-monospace,Menlo,Consolas,monospace;background:var(--p9b5d5-bg);color:var(--p9b5d5-text);padding:clamp(2.5rem,6vw,5rem) clamp(1rem,4vw,3rem);font-family:'Avenir Next',Avenir,'Segoe UI',system-ui,sans-serif}
#booking-form ::selection{background:var(--p9b5d5-mist);color:var(--p9b5d5-ink)}
#booking-form .wrap{max-width:72rem;margin:0 auto;display:grid;gap:clamp(1.5rem,3vw,2.5rem)}
#booking-form .rail{border-left:2px solid var(--p9b5d5-ink);padding-left:1rem}
#booking-form .idx,#booking-form .note,#booking-form label,#booking-form .panel-bar,#booking-form .summary{font-family:var(--mono);font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase}
#booking-form .idx{display:block;color:var(--p9b5d5-slate)}
#booking-form .note{display:block;color:var(--p9b5d5-ink)}
#booking-form h2{margin:.4rem 0 .6rem;font-size:clamp(1.5rem,3vw,2.25rem);line-height:1.1;letter-spacing:-.02em;text-wrap:balance}
#booking-form .rail p{margin:0 0 .6rem;font-size:.9375rem;line-height:1.55;color:var(--p9b5d5-slate)}
#booking-form .panel{background:var(--p9b5d5-surface);border:1px solid var(--p9b5d5-border);border-radius:2px;box-shadow:3px 3px 0 var(--p9b5d5-mist)}
#booking-form .panel-bar{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border-bottom:1px solid var(--p9b5d5-border);color:var(--p9b5d5-slate)}
#booking-form .fields{display:grid;gap:1rem;padding:clamp(1rem,3vw,1.75rem)}
#booking-form .field{display:grid;gap:.35rem}
#booking-form label{color:var(--p9b5d5-ink)}
#booking-form input,#booking-form select{width:100%;min-height:44px;font:inherit;font-size:.9375rem;padding:.6rem .7rem;border:1px solid var(--p9b5d5-border);border-radius:2px;background:var(--p9b5d5-bg);color:var(--p9b5d5-text)}
#booking-form input::placeholder{color:var(--p9b5d5-slate)}
#booking-form :focus-visible{outline:2px solid var(--p9b5d5-primary);outline-offset:2px}
#booking-form .summary{margin:0;padding:0 clamp(1rem,3vw,1.75rem) 1rem;color:var(--p9b5d5-primary);font-variant-numeric:tabular-nums}
#booking-form .foot{display:grid;gap:1rem;padding:1rem clamp(1rem,3vw,1.75rem) clamp(1rem,3vw,1.75rem);border-top:1px solid var(--p9b5d5-border)}
#booking-form .consent{display:flex;gap:.6rem;align-items:flex-start;font-family:inherit;font-size:.875rem;line-height:1.5;letter-spacing:0;text-transform:none;color:var(--p9b5d5-slate)}
#booking-form .consent input{width:18px;height:18px;min-height:0;flex:none;margin-top:.15rem;accent-color:var(--p9b5d5-primary)}
#booking-form .consent a{color:var(--p9b5d5-primary)}
#booking-form .submit{min-height:48px;padding:0 1.5rem;font:inherit;font-weight:600;background:var(--p9b5d5-ink);color:var(--p9b5d5-surface);border:2px solid var(--p9b5d5-ink);border-radius:2px;cursor:pointer;transition:background .15s ease-out,border-color .15s ease-out}
#booking-form .submit:hover{background:var(--p9b5d5-accent);border-color:var(--p9b5d5-accent)}
@media(min-width:640px){#booking-form .fields{grid-template-columns:1fr 1fr}}
@media(min-width:1024px){#booking-form .wrap{grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:start}}
@media(prefers-reduced-motion:reduce){#booking-form .submit{transition:none}}
/* p9b5d5:location */
/* p9b5d5:location */
.location{background:var(--p9b5d5-bg);color:var(--p9b5d5-text);padding:clamp(3rem,8vw,7rem) clamp(1rem,4vw,3rem);font-family:'Avenir Next',Avenir,'Segoe UI',system-ui,sans-serif}
.location__inner{max-width:72rem;margin:0 auto;display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(1.5rem,4vw,3rem)}
.location__rail{grid-column:span 4;border-left:1px solid var(--p9b5d5-ink);padding-left:1rem}
.location__index{display:block;font-family:ui-monospace,monospace;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--p9b5d5-accent)}
.location__title{font-size:1.05rem;line-height:1.25;margin:.4rem 0 .6rem;color:var(--p9b5d5-ink);text-wrap:balance}
.location__purpose{margin:0;font-size:.875rem;line-height:1.5;color:var(--p9b5d5-slate)}
.location__work{grid-column:span 8;display:grid;gap:1.25rem}
.location__facts{margin:0;border-top:1px solid var(--p9b5d5-border)}
.fact{display:grid;grid-template-columns:11rem 1fr;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--p9b5d5-border)}
.fact dt{font-family:ui-monospace,monospace;font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--p9b5d5-slate);padding-top:.2rem}
.fact dd{margin:0;font-size:.9375rem;line-height:1.6}
.fact a,.location__note a{color:var(--p9b5d5-primary);text-decoration:underline;text-underline-offset:2px}
.fact a:hover,.location__note a:hover{color:var(--p9b5d5-accent)}
.location__note{border:1px solid var(--p9b5d5-ink);border-radius:2px;box-shadow:2px 2px 0 var(--p9b5d5-ink);background:var(--p9b5d5-surface);padding:1rem 1.1rem}
.location__note-label{margin:0 0 .4rem;font-family:ui-monospace,monospace;font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--p9b5d5-accent)}
.location__note p:last-child{margin:0;font-size:.9375rem;line-height:1.6}
.location a:focus-visible{outline:2px solid var(--p9b5d5-accent);outline-offset:2px}
.location ::selection{background:var(--p9b5d5-mist);color:var(--p9b5d5-ink)}
@media (max-width:1024px){.location__inner{grid-template-columns:1fr}.location__rail,.location__work{grid-column:1/-1}.location__rail{border-left:0;border-top:1px solid var(--p9b5d5-ink);padding:.75rem 0 0;display:flex;flex-wrap:wrap;gap:.35rem 1.25rem;align-items:baseline}.location__title{margin:0}.location__purpose{flex-basis:100%}}
@media (max-width:640px){.fact{grid-template-columns:1fr;gap:.25rem}}
@media (prefers-reduced-motion:reduce){.location *{transition:none!important;animation:none!important}}
:root{--p9b5d5-primary:#3D6478;--p9b5d5-secondary:#6E8B6A;--p9b5d5-accent:#C4551F;--p9b5d5-ink:#241C16;--p9b5d5-slate:#6B5F55;--p9b5d5-mist:#E9E3D6;--p9b5d5-border:#D8D2C6;--p9b5d5-surface:#FBFAF6;--p9b5d5-bg:#F4F1EA;--p9b5d5-text:#1E1712;--p9b5d5-font:'Avenir Next',Avenir,'Segoe UI',system-ui,sans-serif}.policy-page{background:var(--p9b5d5-bg);color:var(--p9b5d5-text);font-family:var(--p9b5d5-font);line-height:1.65;max-width:56rem;margin:0 auto;padding:2.5rem 1.25rem 3.5rem}.policy-hero{background:var(--p9b5d5-surface);border:1px solid var(--p9b5d5-border);border-left:4px solid var(--p9b5d5-primary);border-radius:4px;padding:1.75rem 1.5rem;margin-bottom:2rem}.policy-eyebrow{margin:0 0 .5rem;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--p9b5d5-accent);font-weight:600}.policy-title{margin:0 0 .75rem;font-size:2rem;line-height:1.2;color:var(--p9b5d5-ink);font-weight:700}.policy-lead{margin:0;color:var(--p9b5d5-slate);font-size:1rem;max-width:44rem}.policy-content{display:block}.policy-section{background:var(--p9b5d5-surface);border:1px solid var(--p9b5d5-border);border-radius:4px;padding:1.25rem 1.5rem;margin-bottom:1rem}.policy-section h2{margin:0 0 .6rem;font-size:1.0625rem;color:var(--p9b5d5-primary);font-weight:700;letter-spacing:.01em}.policy-section p{margin:0 0 .7rem;font-size:.9375rem}.policy-section p:last-child{margin-bottom:0}.policy-contact{border-color:var(--p9b5d5-primary);background:var(--p9b5d5-surface)}.policy-link{color:var(--p9b5d5-accent);font-weight:600;text-decoration:underline;text-underline-offset:3px}.policy-link:hover,.policy-link:focus{color:var(--p9b5d5-primary)}@media (max-width:40rem){.policy-page{padding:1.5rem 1rem 2.5rem}.policy-hero{padding:1.25rem 1rem}.policy-title{font-size:1.5rem}.policy-section{padding:1rem}}
.policy-page{max-width:820px;margin:0 auto;padding:48px 20px;background:var(--p9b5d5-bg);color:var(--p9b5d5-text);font-family:var(--p9b5d5-font);line-height:1.65;font-size:16px}
.policy-header{border-bottom:1px solid var(--p9b5d5-border);padding-bottom:24px;margin-bottom:28px}
.policy-eyebrow{margin:0 0 8px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--p9b5d5-secondary)}
.policy-header h1{margin:0;font-family:var(--p9b5d5-font-display);font-size:34px;line-height:1.2;color:var(--p9b5d5-ink)}
.policy-meta{margin:10px 0 0;font-size:13px;color:var(--p9b5d5-slate)}
.policy-content section{background:var(--p9b5d5-surface);border:1px solid var(--p9b5d5-border);border-radius:4px;padding:24px;margin-bottom:18px}
.policy-content h2{margin:0 0 12px;font-size:18px;font-family:var(--p9b5d5-font-display);color:var(--p9b5d5-primary)}
.policy-content p{margin:0 0 10px}
.policy-content p:last-child{margin-bottom:0}
.policy-content ul{margin:0;padding-left:20px}
.policy-content li{margin-bottom:6px}
.lead-form{display:flex;flex-direction:column;gap:8px;margin:14px 0 12px}
.lead-form label{font-size:13px;font-weight:600;color:var(--p9b5d5-slate)}
.lead-form input,.lead-form textarea{font:inherit;padding:10px 12px;border:1px solid var(--p9b5d5-border);border-radius:2px;background:var(--p9b5d5-bg);color:var(--p9b5d5-text)}
.lead-form input:focus,.lead-form textarea:focus{outline:2px solid var(--p9b5d5-primary);outline-offset:1px}
.lead-submit{align-self:flex-start;margin-top:8px;padding:12px 26px;border:0;border-radius:2px;background:var(--p9b5d5-accent);color:#fff;font:inherit;font-weight:600;cursor:pointer}
.lead-submit:hover{background:var(--p9b5d5-primary)}
.policy-note{font-size:13px;color:var(--p9b5d5-slate)}
.policy-footer{border-top:1px solid var(--p9b5d5-border);padding-top:20px;font-size:14px;color:var(--p9b5d5-slate)}
.policy-footer p{margin:0 0 6px}
.policy-footer a{color:var(--p9b5d5-primary)}
@media (max-width:600px){.policy-page{padding:32px 16px}.policy-header h1{font-size:26px}.policy-content section{padding:18px}}
.policy-page{max-width:56rem;margin:0 auto;padding:2.5rem 1.25rem 3rem;background:var(--p9b5d5-bg);color:var(--p9b5d5-text);font-family:var(--p9b5d5-font);line-height:1.65}
.policy-header{border-bottom:2px solid var(--p9b5d5-primary);padding-bottom:1rem;margin-bottom:1.5rem}
.policy-header h1{font-family:var(--p9b5d5-font-display);font-size:2rem;line-height:1.2;color:var(--p9b5d5-ink);margin:0}
.policy-content h2{font-family:var(--p9b5d5-font-display);font-size:1.1rem;color:var(--p9b5d5-primary);margin:1.75rem 0 .5rem}
.policy-content p{margin:0 0 .85rem}
.policy-content ul{margin:0 0 .85rem;padding-left:1.1rem}
.policy-content li{margin-bottom:.4rem}
.policy-content a{color:var(--p9b5d5-accent)}
.contact-form{display:block;background:var(--p9b5d5-surface);border:1px solid var(--p9b5d5-border);border-radius:4px;padding:1.1rem;margin:1rem 0 0}
.contact-form input{display:block;width:100%;box-sizing:border-box;margin-bottom:.65rem;padding:.6rem .7rem;border:1px solid var(--p9b5d5-border);border-radius:2px;background:var(--p9b5d5-surface);color:var(--p9b5d5-text);font:inherit}
.contact-form input:focus{outline:2px solid var(--p9b5d5-secondary);outline-offset:1px}
.form-submit{display:inline-block;border:0;border-radius:2px;padding:.7rem 1.4rem;background:var(--p9b5d5-primary);color:var(--p9b5d5-surface);font:inherit;font-weight:600;cursor:pointer}
.form-submit:hover{background:var(--p9b5d5-accent)}
.policy-footer{border-top:1px solid var(--p9b5d5-border);margin-top:2rem;padding-top:1rem;font-size:.85rem;color:var(--p9b5d5-slate)}
.policy-footer p{margin:0}
@media(max-width:30rem){.policy-page{padding:1.5rem 1rem 2rem}.policy-header h1{font-size:1.55rem}}

:root{--policy-wrap:760px}
.policy-page{max-width:var(--policy-wrap);margin:0 auto;padding:48px 24px 32px;font-family:var(--p9b5d5-font);color:var(--p9b5d5-text);background:var(--p9b5d5-bg);line-height:1.65}
.policy-content{background:var(--p9b5d5-surface);border:1px solid var(--p9b5d5-border);border-radius:4px;padding:40px 32px}
.policy-eyebrow{margin:0 0 12px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--p9b5d5-secondary);font-weight:700}
.policy-content h1{margin:0 0 16px;font-family:var(--p9b5d5-font-display);font-size:30px;line-height:1.25;color:var(--p9b5d5-ink)}
.policy-lead{margin:0 0 8px;font-size:17px;color:var(--p9b5d5-slate)}
.policy-section{margin-top:32px;padding-top:24px;border-top:1px solid var(--p9b5d5-border)}
.policy-section h2{margin:0 0 12px;font-family:var(--p9b5d5-font-display);font-size:19px;color:var(--p9b5d5-primary)}
.policy-section p{margin:0 0 10px}
.policy-list{margin:0;padding-left:20px}
.policy-list li{margin-bottom:8px}
.policy-address{margin:0 0 12px;font-style:normal;color:var(--p9b5d5-ink)}
.policy-content a{color:var(--p9b5d5-primary);text-decoration:underline}
.policy-content a:hover{color:var(--p9b5d5-accent)}
.policy-actions{margin:32px 0 0;padding-top:20px;border-top:1px solid var(--p9b5d5-border)}
.policy-link{display:inline-block;padding:12px 22px;background:var(--p9b5d5-primary);color:var(--p9b5d5-surface);border-radius:2px;font-weight:600;text-decoration:none}
.policy-link:hover{background:var(--p9b5d5-accent);color:var(--p9b5d5-surface)}
.policy-footer{margin-top:24px;padding:20px 4px 0;border-top:1px solid var(--p9b5d5-border);font-size:13px;color:var(--p9b5d5-slate)}
.policy-footer p{margin:0 0 6px}
.policy-footer a{color:var(--p9b5d5-slate)}
@media(max-width:600px){.policy-page{padding:24px 16px}.policy-content{padding:24px 18px}.policy-content h1{font-size:24px}}
section[data-p9b5d5-xu1]:not([data-p9b5d5-xu1='header']):not([data-p9b5d5-xu1='footer']) { position: relative; }
section[data-p9b5d5-xu1]:not([data-p9b5d5-xu1='header']):not([data-p9b5d5-xu1='footer']) { border-top: 1px solid var(--p9b5d5-border); }
section[data-p9b5d5-xu1] h1, section[data-p9b5d5-xu1] h2 { letter-spacing: -0.03em; }
section[data-p9b5d5-xu1] [class*='rounded'] { border-radius: var(--p9b5d5-radius-sm, 0.25rem); }
:root {
  --p9b5d5-c-content-width: 72rem;
  --p9b5d5-c-gutter: clamp(1rem, 4vw, 3rem);
  --p9b5d5-c-measure: 65ch;
  --p9b5d5-c-heading-display: clamp(2.5rem, 6vw, 5.5rem);
}
[data-p9b5d5-region] { scroll-margin-top: 1.5rem; }
main > section, main [data-p9b5d5-xu1] { padding-inline: var(--p9b5d5-c-gutter); }
[data-p9b5d5-region*='article'], [data-p9b5d5-region*='review'] { max-width: var(--p9b5d5-c-measure); }
h1 { font-size: var(--p9b5d5-c-heading-display); }
@media (max-width: 768px) { [data-p9b5d5-region] { min-width: 0; } }