/* Local Programs grouping; cards inherit the current hub's image and theme treatment. */
.program-categories {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-12) var(--space-8);}
.program-category {grid-column:1/-1;min-width:0;}
.program-category-single {grid-column:auto;}
.program-category>h2 {margin:0 0 var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--line);font:550 clamp(25px,2.4vw,34px)/1.2 var(--sans);letter-spacing:-.025em;color:var(--ink);}
.program-category .program-gallery {gap:var(--space-8);}
.program-category-single .program-gallery {grid-template-columns:minmax(0,1fr);}
.program-category .program-card:last-child {grid-column:auto;}
.program-category .program-card figure,.program-category .program-card:last-child figure {height:300px;}
.program-category .program-card h3 {font:550 29px/1.2 var(--sans);letter-spacing:-.025em;}
@media(hover:hover) and (pointer:fine){.program-category .program-card:hover h3{text-decoration:underline;text-underline-offset:6px;}}
@media(max-width:760px){
 .program-categories {gap:var(--space-10) var(--space-6);}
 .program-category .program-gallery {gap:var(--space-6);}
 .program-category .program-card figure,.program-category .program-card:last-child figure {height:235px;}
 .program-category .program-card h3 {font-size:25px;margin-bottom:var(--space-3);}
}
@media(max-width:500px){
 .program-categories {grid-template-columns:minmax(0,1fr);gap:var(--space-8);}
 .program-category .program-card figure,.program-category .program-card:last-child figure {height:240px;}
 .program-category .program-card h3 {font-size:24px;max-width:14ch;}
 .program-category>h2 {margin-bottom:var(--space-5);}
}
/* A question-led journey, with native scrolling and always-readable copy. */
html[data-program-story] {scroll-behavior:auto;}
[data-program-story] .programs-banner::after {content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,color-mix(in srgb,var(--scene-surface) 70%,transparent),transparent 52%,color-mix(in srgb,var(--scene-surface) 55%,transparent));}
html[data-program-story] body[data-route="programs"] .programs-banner h1 {z-index:1;color:var(--scene-ink);max-width:14ch;}
.program-story-start {position:absolute;z-index:1;left:var(--page-gutter);bottom:var(--space-8);display:inline-flex;align-items:center;gap:var(--space-4);min-height:44px;color:var(--scene-ink);font:500 16px/1.4 var(--sans);text-decoration:underline;text-underline-offset:6px;}
.program-story-intro {display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:start;padding-block:var(--space-20);}
.program-story-intro h2 {font:550 clamp(36px,4.3vw,62px)/1.07 var(--sans);letter-spacing:-.035em;max-width:13ch;text-wrap:balance;margin:0;}
.program-story-intro p {font:400 clamp(17px,1.6vw,21px)/1.6 var(--sans);color:var(--ink);max-width:49ch;margin:0;}
.program-story-intro p+p {margin-top:var(--space-5);color:var(--ink-soft);font-size:16px;}
html[data-program-story] .program-directory {padding-top:0;}
.program-story-nav {position:sticky;top:calc(var(--floating-clearance) - var(--space-6));z-index:25;display:flex;align-items:center;gap:var(--space-8);min-height:60px;background:var(--bg);border-block:1px solid var(--line);margin-bottom:var(--space-12);}
.program-story-nav a {position:relative;display:flex;align-items:center;min-height:60px;color:var(--ink-soft);font:500 14px/1.4 var(--sans);text-decoration:none;}
.program-story-nav a::after {content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform 180ms cubic-bezier(.23,1,.32,1);}
.program-story-nav a[aria-current="location"] {color:var(--ink);}
.program-story-nav a[aria-current="location"]::after {transform:scaleX(1);}
.program-category-header {display:grid;grid-template-columns:.75fr 1fr;gap:var(--space-12);align-items:start;padding-top:var(--space-8);margin-bottom:var(--space-8);border-top:1px solid var(--line);}
.program-category-header h2 {font:550 clamp(27px,2.5vw,36px)/1.2 var(--sans);letter-spacing:-.025em;color:var(--ink);margin:0;}
.program-category-header p {font:400 17px/1.6 var(--sans);color:var(--ink-soft);max-width:49ch;margin:0;}
.program-category-single .program-category-header {grid-template-columns:1fr;gap:var(--space-4);}
.program-category-single {display:flex;flex-direction:column;}
.program-category-single .program-gallery {margin-top:auto;}
.program-categories {row-gap:var(--space-16);}
.program-category:first-child .program-category-header {border-top:0;padding-top:0;}
[data-program-story] :is(.program-category-header h2,.program-story-intro) {scroll-margin-top:calc(var(--floating-clearance) + 80px);}
.program-story-close {display:block;max-width:var(--page-width);padding-block:var(--space-16);}
.program-story-close>div {display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6) var(--space-16);}
.program-story-close h2 {grid-row:1/3;max-width:18ch;}
.program-story-close p {margin:0!important;}
.program-story-close a {justify-self:start;min-height:44px;}
[data-program-story] :is(.program-story-nav a,.program-story-start):focus-visible {outline:2px solid currentColor;outline-offset:4px;}
html[data-floating-hub].program-story-top .floating-hub-panel {background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;color:var(--scene-ink);}
html[data-floating-hub].program-story-top .floating-hub-panel .family-bar {border-color:transparent;}
html[data-floating-hub].program-story-top .floating-hub-panel :is(a,button) {color:var(--scene-ink);}
html[data-floating-hub].program-story-top .floating-hub-panel .header-app {background:var(--scene-ink);color:var(--scene-surface);}
html[data-floating-hub].program-story-top .floating-hub-panel #main-nav.is-open {background:var(--paper);color:var(--ink);}
html[data-floating-hub].program-story-top .floating-hub-panel #main-nav.is-open a {color:var(--ink);}
@media(max-width:760px){
 .program-story-intro {grid-template-columns:1fr;gap:var(--space-6);padding-block:var(--space-12);}
 .program-story-intro h2 {max-width:20ch;font-size:36px;}
 .program-story-intro p {font-size:17px;}
 .program-story-nav {gap:var(--space-5);min-height:48px;margin-bottom:var(--space-8);justify-content:space-between;}
 .program-story-nav a {min-height:48px;font-size:12px;}
 .program-category-header {grid-template-columns:1fr;gap:var(--space-4);margin-bottom:var(--space-6);}
 .program-category-header p {font-size:16px;}
 .program-categories {row-gap:var(--space-12);}
 .program-story-close>div {grid-template-columns:1fr;gap:var(--space-5);}
 .program-story-close h2 {grid-row:auto;}
 .program-story-close {padding-block:var(--space-12);}
}
@media(prefers-reduced-motion:reduce){.program-story-nav a::after{transition:none}[data-program-story] .program-card img{transition:none;transform:none!important}}
[data-program-story][data-story-input="keyboard"] .program-story-nav a::after {transition:none;}

/* Registered DESIGN_ENGINE/engine.json discipline accents extend the five-field
   program-tokens.css contract; hub-polish.css supplies the same persistent 2px border. */
[data-program="nursing"] {--world-accent:#D6336C;}
[data-program="law"] {--world-accent:#A02C4C;}
[data-program="accounting"] {--world-accent:#0E7490;}
