/* ==========================================================================
   Academic Program Page
   ========================================================================== */

.program-page {
    --program-color-primary: var(--color-primary, var(--dacc-primary, #861f41));
    --program-color-secondary: var(--color-secondary, var(--dacc-secondary, #ba0c2f));
    --program-color-text: var(--color-text, #1f2933);
    --program-color-muted: var(--color-muted, #5b6770);
    --program-color-border: var(--color-border, #d6dbe0);
    --program-color-surface: var(--color-surface, #ffffff);
    --program-color-surface-alt: var(--color-surface-alt, #f6f7f8);
    --program-color-overlay: rgba(0, 0, 0, 0.58);
    --program-shadow: var(--shadow-md, 0 0.75rem 1.5rem rgba(0, 0, 0, 0.12));
    --program-radius: var(--radius-md, 0.5rem);
    --program-radius-lg: var(--radius-lg, 0.75rem);
    --program-space-xs: var(--space-xs, 0.25rem);
    --program-space-sm: var(--space-sm, 0.5rem);
    --program-space-md: var(--space-md, 1rem);
    --program-space-lg: var(--space-lg, 1.5rem);
    --program-space-xl: var(--space-xl, 2rem);
    --program-space-2xl: var(--space-2xl, 3rem);
    color: var(--program-color-text);
}

.program-page *,
.program-page *::before,
.program-page *::after {
    box-sizing: border-box;
}

.program-page a {
    color: var(--program-color-primary);
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
}

.program-page a:hover,
.program-page a:focus {
    color: var(--program-color-secondary);
}

.program-page a:focus-visible,
.program-page button:focus-visible,
.program-page summary:focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 3px;
}

.program-page__container {
    margin-inline: auto;
    max-width: var(--container-max-width, 1200px);
    padding-inline: var(--program-space-md);
    width: 100%;
}

.program-page__eyebrow {
    color: var(--program-color-secondary);
    font-size: 0.875rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    line-height: 1.2;
    margin: 0 0 var(--program-space-sm);
    text-transform: uppercase;
}

.program-page__lead {
    color: var(--program-color-muted);
    font-size: 1.125rem;
    line-height: 1.6;
    margin-block: var(--program-space-sm) 0;
}

.program-page__prose {
    line-height: 1.7;
}

.program-page__prose > :first-child {
    margin-top: 0;
}

.program-page__prose > :last-child {
    margin-bottom: 0;
}


/* ==========================================================================
   Hero
   ========================================================================== */

.program-hero {
    background:
        linear-gradient(var(--program-color-overlay), var(--program-color-overlay)),
        var(--program-hero-image, none);
    background-color: var(--program-color-primary);
    background-position: center;
    background-size: cover;
    color: #ffffff;
    padding-block: clamp(2.5rem, 6vw, 5rem);
}

.program-hero__inner {
    align-items: end;
    display: grid;
    gap: var(--program-space-lg);
}

.program-hero__content {
    max-width: 52rem;
}

.program-hero .program-page__eyebrow {
    color: #ffffff;
    opacity: 0.9;
}

.program-hero h1 {
    color: #ffffff;
    font-size: clamp(2.25rem, 6vw, 4.5rem);
    line-height: 1.05;
    margin: 0;
}

.program-hero__summary {
    color: #ffffff;
    font-size: clamp(1.125rem, 2vw, 1.35rem);
    line-height: 1.55;
    margin-block: var(--program-space-md) 0;
    max-width: 46rem;
}

.program-hero__cta-block {
    margin-top: var(--program-space-lg);
}


/* ==========================================================================
   Full-width Division Explorer
   ========================================================================== */

.program-division-explore-section {
    background: var(--program-color-surface-alt);
    border-bottom: 1px solid var(--program-color-border);
    border-top: 1px solid var(--program-color-border);
    padding-block: var(--program-space-md);
    width: 100%;
}

.program-division-explore {
    display: block;
    max-width: none;
    position: static;
    width: 100%;
}

.program-division-explore__summary {
    align-items: center;
    background: var(--program-color-surface);
    border: 1px solid var(--program-color-border);
    border-radius: var(--program-radius);
    color: var(--program-color-text);
    cursor: pointer;
    display: flex;
    font-weight: 800;
    gap: 1rem;
    justify-content: space-between;
    line-height: 1.2;
    list-style: none;
    padding: 1rem 1.25rem;
    width: 100%;
}

.program-division-explore__summary::-webkit-details-marker {
    display: none;
}

.program-division-explore__summary::after {
    align-items: center;
    content: "+";
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 1.35rem;
    font-weight: 900;
    justify-content: center;
    line-height: 1;
}

.program-division-explore[open] .program-division-explore__summary {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.program-division-explore[open] .program-division-explore__summary::after {
    content: "–";
}

.program-division-explore__panel {
    background: var(--program-color-surface);
    border: 1px solid var(--program-color-border);
    border-radius: 0 0 var(--program-radius) var(--program-radius);
    border-top: 0;
    color: var(--program-color-text);
    margin: 0;
    padding: var(--program-space-lg);
    width: 100%;
}

.program-division-explore__division {
    border-bottom: 1px solid var(--program-color-border);
    font-weight: 800;
    margin-bottom: var(--program-space-md);
    padding-bottom: var(--program-space-md);
}

.program-division-explore__message {
    color: var(--program-color-muted);
    margin: 0;
}

.program-division-explore__grid {
    display: grid;
    gap: var(--program-space-md);
}

.program-division-explore__department {
    border-bottom: 1px solid var(--program-color-border);
    padding-bottom: var(--program-space-md);
}

.program-division-explore__department:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.program-division-explore__department-title {
    font-size: 1rem;
    line-height: 1.3;
    margin: 0 0 0.5rem;
}

.program-division-explore__programs {
    display: grid;
    gap: 0.35rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.program-division-explore__programs [aria-current="page"] {
    color: var(--program-color-muted);
    font-weight: 800;
}


/* ==========================================================================
   Program Navigation
   ========================================================================== */

.program-nav {
    background: var(--program-color-surface);
    border-bottom: 1px solid var(--program-color-border);
    top: 0;
    z-index: 10;
}

.program-nav__inner {
    align-items: start;
    display: grid;
    gap: var(--program-space-lg);
    padding-block: var(--program-space-md);
}

.program-nav__group {
    min-width: 0;
}

.program-nav__label {
    color: var(--program-color-muted);
    font-size: 0.8125rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    margin: 0 0 0.5rem;
    text-transform: uppercase;
}

.program-nav__list,
.program-nav__universal-block ul {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.program-nav__list a,
.program-nav__universal-block a {
    border: 1px solid var(--program-color-border);
    border-radius: 999px;
    color: var(--program-color-text);
    display: inline-block;
    font-weight: 700;
    line-height: 1.2;
    padding: 0.45rem 0.75rem;
    text-decoration: none;
}

.program-nav__list a:hover,
.program-nav__list a:focus,
.program-nav__universal-block a:hover,
.program-nav__universal-block a:focus {
    border-color: var(--program-color-primary);
    color: var(--program-color-primary);
    text-decoration: underline;
}

.program-nav__group--anchors .program-nav__list a {
    background: var(--program-color-surface-alt);
}

.program-nav__group--pages .program-nav__list a,
.program-nav__universal-block a {
    background: var(--program-color-surface);
}

.program-nav__universal-block {
    margin-top: 0.5rem;
}


/* ==========================================================================
   Layout
   ========================================================================== */

.program-layout {
    display: grid;
    gap: var(--program-space-xl);
    padding-block: var(--program-space-2xl);
}

.program-layout__main,
.program-layout__aside {
    min-width: 0;
}


/* ==========================================================================
   Sections
   ========================================================================== */

.program-section {
    border-bottom: 1px solid var(--program-color-border);
    padding-block: var(--program-space-2xl);
}

.program-section:first-child {
    padding-top: 0;
}

.program-section:last-child {
    border-bottom: 0;
}

.program-section--muted {
    background: var(--program-color-surface-alt);
    border-bottom: 0;
}

.program-section--feature {
    background: var(--program-color-surface-alt);
    border: 1px solid var(--program-color-border);
    border-radius: var(--program-radius-lg);
    padding: var(--program-space-xl);
}

.program-section__header {
    margin-bottom: var(--program-space-lg);
}

.program-section__header h2,
.program-section h2 {
    color: var(--program-color-text);
    font-size: clamp(1.75rem, 3vw, 2.35rem);
    line-height: 1.15;
    margin: 0;
}


/* ==========================================================================
   Media
   ========================================================================== */

.program-media-row {
    display: grid;
    gap: var(--program-space-lg);
}

.program-image-card {
    border-radius: var(--program-radius-lg);
    margin: 0;
    overflow: hidden;
}

.program-image-card img,
.program-card--media img {
    display: block;
    height: auto;
    width: 100%;
}


/* ==========================================================================
   Cards
   ========================================================================== */

.program-card-grid {
    display: grid;
    gap: var(--program-space-lg);
}

.program-card {
    background: var(--program-color-surface);
    border: 1px solid var(--program-color-border);
    border-radius: var(--program-radius-lg);
    padding: var(--program-space-lg);
}

.program-card h3 {
    font-size: 1.25rem;
    line-height: 1.25;
    margin: 0 0 var(--program-space-sm);
}

.program-card p {
    color: var(--program-color-muted);
    line-height: 1.6;
}

.program-card > :last-child {
    margin-bottom: 0;
}

.program-card__meta {
    color: var(--program-color-secondary);
    font-size: 0.875rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    margin: 0 0 var(--program-space-sm);
    text-transform: uppercase;
}

.program-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--program-space-sm);
    margin-top: var(--program-space-md);
}

.program-card__actions a {
    color:white;
}

.program-card--media {
    overflow: hidden;
    padding: 0;
}

.program-card--media img {
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.program-card--media h3,
.program-card--media p {
    margin-inline: var(--program-space-lg);
}

.program-card--media h3 {
    margin-top: var(--program-space-lg);
}

.program-card--media p {
    margin-bottom: var(--program-space-lg);
}


/* ==========================================================================
   Buttons
   ========================================================================== */

.program-button {
    align-items: center;
    background: var(--program-color-primary);
    border: 1px solid var(--program-color-primary);
    border-radius: var(--program-radius);
    color: #ffffff;
    display: inline-flex;
    font-weight: 800;
    justify-content: center;
    line-height: 1.2;
    padding: 0.75rem 1rem;
    text-decoration: none;
}

.program-button:hover,
.program-button:focus {
    background: var(--program-color-secondary);
    border-color: var(--program-color-secondary);
    color: #ffffff;
    text-decoration: underline;
}

.program-button--secondary,
.program-button--outline {
    background: transparent;
    color: var(--program-color-primary);
}

.program-button--secondary:hover,
.program-button--secondary:focus,
.program-button--outline:hover,
.program-button--outline:focus {
    background: var(--program-color-primary);
    border-color: var(--program-color-primary);
    color: #ffffff;
}

.program-button--small {
    font-size: 0.9375rem;
    padding: 0.55rem 0.75rem;
}


/* ==========================================================================
   Lists
   ========================================================================== */

.program-chip-list,
.program-check-list,
.program-link-list,
.program-contact-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.program-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--program-space-sm);
}

.program-chip-list li {
    background: var(--program-color-surface-alt);
    border: 1px solid var(--program-color-border);
    border-radius: 999px;
    font-weight: 800;
    padding: 0.45rem 0.75rem;
}

.program-check-list {
    display: grid;
    gap: var(--program-space-sm);
}

.program-check-list li {
    padding-left: 1.75rem;
    position: relative;
}

.program-check-list li::before {
    color: var(--program-color-primary);
    content: "✓";
    font-weight: 900;
    left: 0;
    position: absolute;
}

.program-link-list {
    display: grid;
    gap: var(--program-space-sm);
    margin-top: var(--program-space-md);
}


/* ==========================================================================
   FAQ / Quote
   ========================================================================== */

.program-faq-list {
    display: grid;
    gap: var(--program-space-sm);
}

.program-faq {
    background: var(--program-color-surface);
    border: 1px solid var(--program-color-border);
    border-radius: var(--program-radius);
    padding: var(--program-space-md);
}

.program-faq summary {
    cursor: pointer;
    font-weight: 800;
}

.program-faq__answer {
    margin-top: var(--program-space-md);
}

.program-quote {
    border-left: 0.35rem solid var(--program-color-primary);
    margin: 0;
    padding-left: var(--program-space-lg);
}

.program-quote blockquote {
    font-size: 1.25rem;
    line-height: 1.6;
    margin: 0;
}

.program-quote figcaption {
    color: var(--program-color-muted);
    font-weight: 800;
    margin-top: var(--program-space-md);
}


/* ==========================================================================
   Contact Sidebar
   ========================================================================== */

.program-contact-card {
    background: var(--program-color-surface-alt);
    border: 1px solid var(--program-color-border);
    border-radius: var(--program-radius-lg);
    padding: var(--program-space-lg);
}

.program-contact-card h2 {
    font-size: 1.5rem;
    margin: 0 0 var(--program-space-md);
}

.program-contact-card h3 {
    color: var(--program-color-muted);
    font-size: 0.875rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    margin: var(--program-space-lg) 0 var(--program-space-sm);
    text-transform: uppercase;
}

.program-contact-list {
    display: grid;
    gap: var(--program-space-sm);
}

.program-person {
    border-top: 1px solid var(--program-color-border);
    display: grid;
    gap: var(--program-space-xs);
    margin-top: var(--program-space-md);
    padding-top: var(--program-space-md);
}

.program-person strong,
.program-person span {
    display: block;
}


/* ==========================================================================
   Footer CTA
   ========================================================================== */

.program-footer-cta {
    background: var(--program-color-primary);
    color: #ffffff;
    padding-block: var(--program-space-2xl);
}


/* ==========================================================================
   Responsive
   ========================================================================== */

@media (min-width: 640px) {
    .program-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 768px) {
    .program-hero__inner {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .program-nav__inner {
        grid-template-columns: minmax(0, 1.5fr) minmax(18rem, 1fr);
    }

    .program-media-row {
        align-items: start;
        grid-template-columns: minmax(0, 1.35fr) minmax(18rem, 0.65fr);
    }

    .program-division-explore__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .program-layout {
        align-items: start;
        grid-template-columns: minmax(0, 1fr) 20rem;
    }

    .program-layout__aside {
        position: sticky;
        top: 7rem;
    }

    .program-card-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1100px) {
    .program-division-explore__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .program-nav {
        position: static;
    }
}

@media (prefers-reduced-motion: reduce) {
    .program-page *,
    .program-page *::before,
    .program-page *::after {
        scroll-behavior: auto !important;
    }
}

/* ==========================================================================
   Full-width Division Explorer: Hierarchy View
   ========================================================================== */

.program-division-explore-section {
    background:
        linear-gradient(
            180deg,
            var(--program-color-surface-alt) 0%,
            var(--program-color-surface) 100%
        );
    border-bottom: 1px solid var(--program-color-border);
    border-top: 1px solid var(--program-color-border);
    padding-block: var(--program-space-md);
    width: 100%;
}

.program-division-explore {
    display: block;
    max-width: none;
    position: static;
    width: 100%;
}

.program-division-explore__summary {
    align-items: center;
    background: var(--program-color-surface);
    border: 1px solid var(--program-color-border);
    border-radius: var(--program-radius-lg);
    color: var(--program-color-text);
    cursor: pointer;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    line-height: 1.2;
    list-style: none;
    padding: 1rem 1.25rem;
    width: 100%;
}

.program-division-explore__summary::-webkit-details-marker {
    display: none;
}

.program-division-explore__summary span:first-child {
    font-size: 1.05rem;
    font-weight: 900;
}

.program-division-explore__summary-helper {
    color: var(--program-color-muted);
    font-size: 0.875rem;
    font-weight: 700;
}

.program-division-explore__summary::after {
    align-items: center;
    background: var(--program-color-primary);
    border-radius: 999px;
    color: #ffffff;
    content: "+";
    display: inline-flex;
    flex: 0 0 2rem;
    font-size: 1.35rem;
    font-weight: 900;
    height: 2rem;
    justify-content: center;
    line-height: 1;
}

.program-division-explore[open] .program-division-explore__summary {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.program-division-explore[open] .program-division-explore__summary::after {
    content: "–";
}

.program-division-explore__panel {
    background: var(--program-color-surface);
    border: 1px solid var(--program-color-border);
    border-radius: 0 0 var(--program-radius-lg) var(--program-radius-lg);
    border-top: 0;
    color: var(--program-color-text);
    margin: 0;
    padding: clamp(1rem, 3vw, 2rem);
    width: 100%;
}

.program-division-explore__message {
    color: var(--program-color-muted);
    margin: 0;
}


/* Hierarchy root */

.program-hierarchy {
    --hierarchy-line: color-mix(in srgb, var(--program-color-primary) 35%, var(--program-color-border));
    --hierarchy-node-bg: var(--program-color-surface);
    --hierarchy-node-bg-alt: var(--program-color-surface-alt);
}

.program-hierarchy__root {
    background:
        linear-gradient(
            135deg,
            var(--program-color-primary),
            var(--program-color-secondary)
        );
    border-radius: var(--program-radius-lg);
    color: #ffffff;
    margin-inline: auto;
    max-width: 42rem;
    padding: clamp(1.25rem, 3vw, 2rem);
    position: relative;
    text-align: center;
}

.program-hierarchy__root::after {
    background: var(--hierarchy-line);
    bottom: -2rem;
    content: "";
    height: 2rem;
    left: 50%;
    position: absolute;
    transform: translateX(-50%);
    width: 3px;
}

.program-hierarchy__kicker {
    display: block;
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    margin-bottom: 0.35rem;
    text-transform: uppercase;
}

.program-hierarchy__root-title {
    color: #ffffff;
    font-size: clamp(1.35rem, 3vw, 2rem);
    line-height: 1.15;
    margin: 0;
}

.program-hierarchy__root-link {
    color: #ffffff;
    display: inline-block;
    font-weight: 800;
    margin-top: 0.75rem;
}

.program-hierarchy__root-link:hover,
.program-hierarchy__root-link:focus {
    color: #ffffff;
}


/* Branch layout */

.program-hierarchy__branches {
    display: grid;
    gap: 1rem;
    margin-top: 2rem;
    position: relative;
}

.program-hierarchy__branches::before {
    background: var(--hierarchy-line);
    content: "";
    height: 3px;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
}

.program-hierarchy__department {
    background: var(--hierarchy-node-bg);
    border: 1px solid var(--program-color-border);
    border-radius: var(--program-radius-lg);
    box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.08);
    margin-top: 1.5rem;
    min-width: 0;
    overflow: hidden;
    position: relative;
}

.program-hierarchy__department::before {
    background: var(--hierarchy-line);
    content: "";
    height: 1.5rem;
    left: 50%;
    position: absolute;
    top: -1.5rem;
    transform: translateX(-50%);
    width: 3px;
}

.program-hierarchy__department-summary {
    align-items: flex-start;
    background: var(--hierarchy-node-bg-alt);
    cursor: pointer;
    display: grid;
    gap: 0.25rem;
    grid-template-columns: minmax(0, 1fr) auto;
    list-style: none;
    padding: 1rem;
}

.program-hierarchy__department-summary::-webkit-details-marker {
    display: none;
}

.program-hierarchy__department-summary::after {
    align-items: center;
    border: 1px solid currentColor;
    border-radius: 999px;
    content: "+";
    display: inline-flex;
    font-weight: 900;
    height: 1.5rem;
    justify-content: center;
    line-height: 1;
    width: 1.5rem;
}

.program-hierarchy__department[open] .program-hierarchy__department-summary::after {
    content: "–";
}

.program-hierarchy__department-title {
    font-size: 1.05rem;
    font-weight: 900;
    line-height: 1.25;
}

.program-hierarchy__department-body {
    display: grid;
    gap: 1rem;
    padding: 1rem;
}

.program-hierarchy__department-action {
    margin: 0;
}

.program-hierarchy__department-action a {
    font-weight: 800;
}


/* Program list */

.program-hierarchy__programs {
    display: grid;
    gap: 0.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.program-hierarchy__program {
    position: relative;
}

.program-hierarchy__program-link,
.program-hierarchy__program span {
    align-items: center;
    background: var(--program-color-surface);
    border: 1px solid var(--program-color-border);
    border-radius: 999px;
    display: inline-flex;
    font-weight: 700;
    line-height: 1.25;
    padding: 0.45rem 0.75rem;
    text-decoration: none;
}

.program-hierarchy__program-link:hover,
.program-hierarchy__program-link:focus {
    border-color: var(--program-color-primary);
    text-decoration: underline;
}

.program-hierarchy__program--current span {
    background: var(--program-color-primary);
    border-color: var(--program-color-primary);
    color: #ffffff;
}

.program-hierarchy__empty {
    color: var(--program-color-muted);
    margin: 0;
}


/* Responsive hierarchy */

@media (min-width: 760px) {
    .program-hierarchy__branches {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1100px) {
    .program-hierarchy__branches {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 759.98px) {
    .program-division-explore__summary {
        align-items: flex-start;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .program-division-explore__summary-helper {
        grid-column: 1 / -1;
    }

    .program-hierarchy__root {
        text-align: left;
    }

    .program-hierarchy__root::after {
        left: 1.5rem;
        transform: none;
    }

    .program-hierarchy__branches::before {
        bottom: 0;
        height: auto;
        left: 1.5rem;
        right: auto;
        top: 0;
        width: 3px;
    }

    .program-hierarchy__department {
        margin-left: 2.25rem;
    }

    .program-hierarchy__department::before {
        height: 3px;
        left: -2.25rem;
        top: 1.5rem;
        transform: none;
        width: 2.25rem;
    }
}

/* ==========================================================================
   Program Hero: Image / Video Banner
   ========================================================================== */

.program-hero {
    background: var(--program-color-primary);
    color: #ffffff;
    min-height: clamp(24rem, 48vw, 36rem);
    overflow: hidden;
    position: relative;
}

.program-hero__media,
.program-hero__overlay {
    inset: 0;
    position: absolute;
}

.program-hero__media {
    z-index: 0;
}

.program-hero__image,
.program-hero__video {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.program-hero__overlay {
    background:
        linear-gradient(
            90deg,
            rgba(0, 0, 0, 0.72) 0%,
            rgba(0, 0, 0, 0.52) 48%,
            rgba(0, 0, 0, 0.24) 100%
        );
    z-index: 1;
}

.program-hero__inner {
    align-items: end;
    display: grid;
    min-height: clamp(24rem, 48vw, 36rem);
    padding-block: clamp(3rem, 7vw, 6rem);
    position: relative;
    z-index: 2;
}

.program-hero__content {
    max-width: 52rem;
}

.program-hero .program-page__eyebrow {
    color: #ffffff;
    opacity: 0.9;
}

.program-hero h1 {
    color: #ffffff;
    font-size: clamp(2.25rem, 6vw, 4.5rem);
    line-height: 1.05;
    margin: 0;
    text-wrap: balance;
}

.program-hero__summary {
    color: #ffffff;
    font-size: clamp(1.125rem, 2vw, 1.35rem);
    line-height: 1.55;
    margin-block: var(--program-space-md) 0;
    max-width: 46rem;
}

.program-hero__cta-block {
    margin-top: var(--program-space-lg);
}

@media (prefers-reduced-motion: reduce) {
    .program-hero__video {
        display: none;
    }
}


/* ==========================================================================
   Program Pathway: User-triggered Division Hierarchy
   ========================================================================== */

.program-pathway-section {
    background:
        linear-gradient(
            180deg,
            var(--program-color-surface-alt) 0%,
            var(--program-color-surface) 100%
        );
    border-bottom: 1px solid var(--program-color-border);
    padding-block: var(--program-space-lg);
}

.program-pathway {
    display: block;
}

.program-pathway__toggle {
    align-items: center;
    background: var(--program-color-surface);
    border: 1px solid var(--program-color-border);
    border-radius: var(--program-radius-lg);
    box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.08);
    cursor: pointer;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    list-style: none;
    padding: clamp(1rem, 3vw, 1.5rem);
}

.program-pathway__toggle::-webkit-details-marker {
    display: none;
}

.program-pathway__toggle-content {
    display: grid;
    gap: 0.35rem;
    min-width: 0;
}

.program-pathway__toggle-title {
    color: var(--program-color-text);
    display: block;
    font-size: clamp(1.25rem, 3vw, 1.75rem);
    font-weight: 900;
    line-height: 1.15;
}

.program-pathway__toggle-description {
    color: var(--program-color-muted);
    display: block;
    font-size: 1rem;
    line-height: 1.5;
}

.program-pathway__toggle-action {
    align-items: center;
    background: var(--program-color-primary);
    border: 1px solid var(--program-color-primary);
    border-radius: 999px;
    color: #ffffff;
    display: inline-flex;
    flex: 0 0 auto;
    font-weight: 800;
    gap: 0.5rem;
    justify-content: center;
    line-height: 1.2;
    padding: 0.7rem 1rem;
    text-align: center;
}

.program-pathway__toggle-action::after {
    content: "+";
    font-size: 1.25rem;
    font-weight: 900;
    line-height: 1;
}

.program-pathway[open] .program-pathway__toggle {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.program-pathway[open] .program-pathway__toggle-action::after {
    content: "–";
}

.program-pathway[open] .program-pathway__toggle-action {
    background: var(--program-color-secondary);
    border-color: var(--program-color-secondary);
}

.program-pathway__panel {
    background: var(--program-color-surface);
    border: 1px solid var(--program-color-border);
    border-radius: 0 0 var(--program-radius-lg) var(--program-radius-lg);
    border-top: 0;
    display: grid;
    gap: clamp(1.5rem, 3vw, 2.5rem);
    padding: clamp(1rem, 3vw, 2rem);
}

.program-pathway__root {
    position: relative;
}

.program-pathway__root-card {
    background:
        linear-gradient(
            135deg,
            var(--program-color-primary),
            var(--program-color-secondary)
        );
    border-radius: var(--program-radius-lg);
    color: #ffffff;
    max-width: 42rem;
    padding: clamp(1.25rem, 3vw, 2rem);
    position: relative;
}

.program-pathway__root-card::after {
    background: color-mix(in srgb, var(--program-color-primary) 35%, var(--program-color-border));
    bottom: -2rem;
    content: "";
    height: 2rem;
    left: 2rem;
    position: absolute;
    width: 3px;
}

.program-pathway__label {
    display: block;
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    margin-bottom: 0.35rem;
    text-transform: uppercase;
}

.program-pathway__root-card h3 {
    color: #ffffff;
    font-size: clamp(1.35rem, 3vw, 2rem);
    line-height: 1.15;
    margin: 0;
}

.program-pathway__root-card a {
    color: #ffffff;
    display: inline-block;
    font-weight: 800;
    margin-top: 0.75rem;
}

.program-pathway__departments {
    display: grid;
    gap: 1rem;
    position: relative;
}

.program-pathway__departments::before {
    background: color-mix(in srgb, var(--program-color-primary) 35%, var(--program-color-border));
    bottom: 0;
    content: "";
    left: 2rem;
    position: absolute;
    top: 0;
    width: 3px;
}

.program-pathway__department {
    background: var(--program-color-surface);
    border: 1px solid var(--program-color-border);
    border-radius: var(--program-radius-lg);
    box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.08);
    display: grid;
    gap: 1rem;
    margin-left: 4rem;
    padding: 1rem;
    position: relative;
}

.program-pathway__department::before {
    background: color-mix(in srgb, var(--program-color-primary) 35%, var(--program-color-border));
    content: "";
    height: 3px;
    left: -2rem;
    position: absolute;
    top: 2rem;
    width: 2rem;
}

.program-pathway__department--current {
    border-color: var(--program-color-primary);
    box-shadow: 0 0.75rem 1.75rem rgba(0, 0, 0, 0.12);
}

.program-pathway__department-header h3 {
    font-size: 1.2rem;
    line-height: 1.25;
    margin: 0;
}

.program-pathway__programs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.program-pathway__program a,
.program-pathway__program span {
    align-items: center;
    background: var(--program-color-surface-alt);
    border: 1px solid var(--program-color-border);
    border-radius: 999px;
    display: inline-flex;
    font-weight: 700;
    line-height: 1.25;
    padding: 0.45rem 0.75rem;
    text-decoration: none;
}

.program-pathway__program a:hover,
.program-pathway__program a:focus {
    border-color: var(--program-color-primary);
    color: var(--program-color-primary);
    text-decoration: underline;
}

.program-pathway__program--current span {
    background: var(--program-color-primary);
    border-color: var(--program-color-primary);
    color: #ffffff;
}

.program-pathway__empty {
    color: var(--program-color-muted);
    margin: 0;
}

@media (min-width: 860px) {
    .program-pathway__departments {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding-left: 4rem;
    }

    .program-pathway__departments::before {
        left: 2rem;
    }

    .program-pathway__department {
        margin-left: 0;
    }
}

@media (min-width: 1180px) {
    .program-pathway__departments {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .program-pathway__toggle {
        align-items: stretch;
        display: grid;
    }

    .program-pathway__toggle-action {
        width: max-content;
    }

    .program-pathway__root-card::after,
    .program-pathway__departments::before,
    .program-pathway__department::before {
        display: none;
    }

    .program-pathway__department {
        margin-left: 0;
    }
}

/* ==========================================================================
   Program CTA ownership
   ========================================================================== */

/*
 * CTA structure and responsive behavior live in:
 * /_assets/css/main-theme/foundation/components/program-cta.css
 *
 * Do not duplicate the shared CTA component in this template. Template-level
 * duplication previously loaded after the New component and partially reset
 * Kelsey CTA styling on Academic Program pages.
 */

/* =============================================================================
   Program Division Explorer Overlay
   Add to the Program Page CSS bundle after existing program-pathway styles.
   ========================================================================== */

.program-division-explorer {
    bottom: max(1rem, env(safe-area-inset-bottom));
    left: max(1rem, env(safe-area-inset-left));
    position: fixed;
    z-index: 900;
}

.program-division-explorer__trigger {
    align-items: center;
    background: var(--program-color-primary, #5b0017);
    border: 2px solid #ffffff;
    border-radius: 999px;
    box-shadow: 0 0.75rem 2rem rgba(0, 0, 0, 0.28);
    color: #ffffff;
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-weight: 900;
    gap: 0.55rem;
    line-height: 1.15;
    min-height: 3rem;
    padding: 0.7rem 1rem;
    text-align: left;
}

.program-division-explorer__trigger:hover,
.program-division-explorer__trigger:focus-visible {
    background: var(--program-color-secondary, #891638);
    outline: 3px solid rgba(255, 255, 255, 0.75);
    outline-offset: 3px;
}

.program-division-explorer__trigger-icon {
    align-items: center;
    background: rgba(255, 255, 255, 0.16);
    border-radius: 999px;
    display: inline-flex;
    height: 1.8rem;
    justify-content: center;
    width: 1.8rem;
}

.program-division-explorer__trigger-icon svg {
    display: block;
    fill: currentColor;
    height: 1.25rem;
    width: 1.25rem;
}

.program-division-explorer__overlay[hidden] {
    display: none;
}

.program-division-explorer__overlay {
    inset: 0;
    position: fixed;
    z-index: 901;
}

.program-division-explorer__scrim {
    background: rgba(0, 0, 0, 0.62);
    inset: 0;
    position: absolute;
}

.program-division-explorer__panel {
    background: var(--program-color-surface, #ffffff);
    border: 1px solid var(--program-color-border, #d8dee6);
    border-radius: 1.25rem;
    box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.32);
    color: var(--program-color-text, #1f2933);
    display: grid;
    gap: 1rem;
    inset: auto 1rem 1rem 1rem;
    max-height: min(78vh, 48rem);
    overflow: hidden;
    padding: clamp(1rem, 2vw, 1.5rem);
    position: absolute;
}

.program-division-explorer__panel:focus {
    outline: none;
}

.program-division-explorer__header {
    align-items: start;
    border-bottom: 1px solid var(--program-color-border, #d8dee6);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding-bottom: 1rem;
}

.program-division-explorer__header h2 {
    font-size: clamp(1.5rem, 4vw, 2.35rem);
    line-height: 1.1;
    margin: 0;
}

.program-division-explorer__header p:not(.program-page__eyebrow) {
    color: var(--program-color-muted, #596775);
    line-height: 1.5;
    margin: 0.35rem 0 0;
    max-width: 60rem;
}

.program-division-explorer__close {
    align-items: center;
    background: var(--program-color-surface-alt, #f6f7f9);
    border: 1px solid var(--program-color-border, #d8dee6);
    border-radius: 999px;
    color: var(--program-color-text, #1f2933);
    cursor: pointer;
    display: inline-flex;
    flex: 0 0 auto;
    font: inherit;
    font-size: 1.5rem;
    font-weight: 900;
    height: 2.5rem;
    justify-content: center;
    line-height: 1;
    width: 2.5rem;
}

.program-division-explorer__close:hover,
.program-division-explorer__close:focus-visible {
    background: var(--program-color-primary, #5b0017);
    border-color: var(--program-color-primary, #5b0017);
    color: #ffffff;
    outline: 3px solid rgba(91, 0, 23, 0.25);
    outline-offset: 2px;
}

.program-division-explorer__body {
    overflow: auto;
    padding: 0.25rem;
}

.program-division-explorer__graph {
    align-items: start;
    display: grid;
    gap: clamp(1rem, 3vw, 2rem);
    grid-template-columns: minmax(13rem, 18rem) minmax(36rem, 1fr);
    min-width: 58rem;
}

.program-division-explorer__root {
    position: sticky;
    top: 0;
}

.program-division-explorer__branches {
    display: grid;
    gap: 1rem;
    position: relative;
}

.program-division-explorer__branch {
    align-items: start;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(12rem, 18rem) minmax(18rem, 1fr);
    position: relative;
}

.program-division-explorer__branch-line {
    background: var(--program-color-border, #d8dee6);
    height: 2px;
    left: -2rem;
    position: absolute;
    top: 2.25rem;
    width: 2rem;
}

.program-division-explorer__branch--current .program-division-explorer__branch-line {
    background: var(--program-color-primary, #5b0017);
}

.program-division-explorer__department-column,
.program-division-explorer__program-column {
    display: grid;
    gap: 0.5rem;
}

.program-division-explorer__programs {
    align-items: start;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.program-division-explorer__node-label {
    color: var(--program-color-muted, #596775);
    display: block;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.program-division-explorer__node {
    align-items: center;
    background: var(--program-color-surface-alt, #f6f7f9);
    border: 1px solid var(--program-color-border, #d8dee6);
    border-radius: 999px;
    color: var(--program-color-text, #1f2933);
    display: inline-flex;
    font-weight: 850;
    justify-content: center;
    line-height: 1.25;
    min-height: 2.65rem;
    padding: 0.65rem 0.9rem;
    text-align: center;
    text-decoration: none;
}

.program-division-explorer__node[href]:hover,
.program-division-explorer__node[href]:focus-visible {
    background: var(--program-color-primary, #5b0017);
    border-color: var(--program-color-primary, #5b0017);
    color: #ffffff;
    outline: 3px solid rgba(91, 0, 23, 0.25);
    outline-offset: 2px;
    text-decoration: none;
}

.program-division-explorer__node--division {
    background: linear-gradient(135deg, var(--program-color-primary, #5b0017), var(--program-color-secondary, #891638));
    border-color: transparent;
    border-radius: 1rem;
    color: #ffffff;
    font-size: 1.05rem;
    min-height: 4rem;
    width: 100%;
}

.program-division-explorer__node--department {
    background: #ffffff;
    border-color: var(--program-color-primary, #5b0017);
    border-radius: 1rem;
    color: var(--program-color-primary, #5b0017);
    width: 100%;
}

.program-division-explorer__node--program {
    font-size: 0.92rem;
    min-height: 2.35rem;
    padding: 0.5rem 0.75rem;
}

.program-division-explorer__node--current {
    background: var(--program-color-primary, #5b0017);
    border-color: var(--program-color-primary, #5b0017);
    color: #ffffff;
}

.program-division-explorer__empty {
    color: var(--program-color-muted, #596775);
    line-height: 1.5;
    margin: 0;
}

body.program-division-explorer-is-open {
    overflow: hidden;
}

@media (min-width: 960px) {
    .program-division-explorer__panel {
        bottom: 1.5rem;
        left: 1.5rem;
        right: 1.5rem;
    }
}

@media (max-width: 719.98px) {
    .program-division-explorer {
        bottom: max(0.75rem, env(safe-area-inset-bottom));
        left: max(0.75rem, env(safe-area-inset-left));
        right: max(0.75rem, env(safe-area-inset-right));
    }

    .program-division-explorer__trigger {
        justify-content: center;
        width: 100%;
    }

    .program-division-explorer__panel {
        border-radius: 1rem 1rem 0 0;
        inset: auto 0 0 0;
        max-height: 82vh;
    }

    .program-division-explorer__graph {
        grid-template-columns: minmax(12rem, 16rem) minmax(34rem, 1fr);
    }
}

.program-division-explorer__overlay--open {
    display: block;
}

.program-division-explorer__overlay[hidden] {
    display: none !important;
}
/* ============================================================================= CSS-only Program Division Explorer Overlay Add this after existing program-page.css or replace prior division explorer CSS. No JavaScript required. ========================================================================== */
 .program-division-explorer {
     bottom: max(1rem, env(safe-area-inset-bottom));
     left: max(1rem, env(safe-area-inset-left));
     position: fixed;
     z-index: 900;
}
 .program-division-explorer__state {
     height: 1px;
     left: -9999px;
     overflow: hidden;
     position: absolute;
     width: 1px;
}
 .program-division-explorer__trigger {
     align-items: center;
     background: var(--program-color-primary, #5b0017);
     border: 2px solid #ffffff;
     border-radius: 999px;
     box-shadow: 0 0.75rem 2rem rgba(0, 0, 0, 0.28);
     color: #ffffff;
     cursor: pointer;
     display: inline-flex;
     font-weight: 900;
     gap: 0.55rem;
     line-height: 1.15;
     min-height: 3rem;
     padding: 0.7rem 1rem;
     text-align: left;
     text-decoration: none;
}
 .program-division-explorer__trigger:hover, .program-division-explorer__trigger:focus {
     background: var(--program-color-secondary, #891638);
     color: #ffffff;
     outline: 3px solid rgba(255, 255, 255, 0.75);
     outline-offset: 3px;
}
 .program-division-explorer__state:focus + .program-division-explorer__trigger {
     outline: 3px solid rgba(255, 255, 255, 0.75);
     outline-offset: 3px;
}
 .program-division-explorer__trigger-icon {
     align-items: center;
     background: rgba(255, 255, 255, 0.16);
     border-radius: 999px;
     display: inline-flex;
     height: 1.8rem;
     justify-content: center;
     width: 1.8rem;
}
 .program-division-explorer__trigger-icon svg {
     display: block;
     fill: currentColor;
     height: 1.25rem;
     width: 1.25rem;
}
 .program-division-explorer__overlay {
     display: none;
     inset: 0;
     position: fixed;
     z-index: 901;
}
 .program-division-explorer__state:checked ~ .program-division-explorer__overlay {
     display: block;
}
 .program-division-explorer__scrim {
     background: rgba(0, 0, 0, 0.62);
     cursor: pointer;
     display: block;
     inset: 0;
     position: absolute;
}
 .program-division-explorer__panel {
     background: var(--program-color-surface, #ffffff);
     border: 1px solid var(--program-color-border, #d8dee6);
     border-radius: 1.25rem;
     box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.32);
     color: var(--program-color-text, #1f2933);
     display: grid;
     gap: 1rem;
     inset: auto 1rem 1rem 1rem;
     max-height: min(78vh, 48rem);
     overflow: hidden;
     padding: clamp(1rem, 2vw, 1.5rem);
     position: absolute;
}
 .program-division-explorer__header {
     align-items: start;
     border-bottom: 1px solid var(--program-color-border, #d8dee6);
     display: flex;
     gap: 1rem;
     justify-content: space-between;
     padding-bottom: 1rem;
}
 .program-division-explorer__header h2 {
     font-size: clamp(1.5rem, 4vw, 2.35rem);
     line-height: 1.1;
     margin: 0;
}
 .program-division-explorer__header p:not(.program-page__eyebrow) {
     color: var(--program-color-muted, #596775);
     line-height: 1.5;
     margin: 0.35rem 0 0;
     max-width: 60rem;
}
 .program-division-explorer__close {
     align-items: center;
     background: var(--program-color-surface-alt, #f6f7f9);
     border: 1px solid var(--program-color-border, #d8dee6);
     border-radius: 999px;
     color: var(--program-color-text, #1f2933);
     cursor: pointer;
     display: inline-flex;
     flex: 0 0 auto;
     font-size: 1.5rem;
     font-weight: 900;
     height: 2.5rem;
     justify-content: center;
     line-height: 1;
     text-decoration: none;
     width: 2.5rem;
}
 .program-division-explorer__close:hover, .program-division-explorer__close:focus {
     background: var(--program-color-primary, #5b0017);
     border-color: var(--program-color-primary, #5b0017);
     color: #ffffff;
     outline: 3px solid rgba(91, 0, 23, 0.25);
     outline-offset: 2px;
}
 .program-division-explorer__body {
     overflow: auto;
     padding: 0.25rem;
}
 .program-division-explorer__graph {
     align-items: start;
     display: grid;
     gap: clamp(1rem, 3vw, 2rem);
     grid-template-columns: minmax(13rem, 18rem) minmax(36rem, 1fr);
     min-width: 58rem;
}
 .program-division-explorer__root {
     position: sticky;
     top: 0;
}
 .program-division-explorer__branches {
     display: grid;
     gap: 1rem;
     position: relative;
}
 .program-division-explorer__branch {
     align-items: start;
     display: grid;
     gap: 1rem;
     grid-template-columns: minmax(12rem, 18rem) minmax(18rem, 1fr);
     position: relative;
}
 .program-division-explorer__branch-line {
     background: var(--program-color-border, #d8dee6);
     height: 2px;
     left: -2rem;
     position: absolute;
     top: 2.25rem;
     width: 2rem;
}
 .program-division-explorer__branch--current .program-division-explorer__branch-line {
     background: var(--program-color-primary, #5b0017);
}
 .program-division-explorer__department-column, .program-division-explorer__program-column {
     display: grid;
     gap: 0.5rem;
}
 .program-division-explorer__programs {
     align-items: start;
     display: flex;
     flex-wrap: wrap;
     gap: 0.5rem;
}
 .program-division-explorer__node-label {
     color: var(--program-color-muted, #596775);
     display: block;
     font-size: 0.72rem;
     font-weight: 900;
     letter-spacing: 0.08em;
     text-transform: uppercase;
}
 .program-division-explorer__node {
     align-items: center;
     background: var(--program-color-surface-alt, #f6f7f9);
     border: 1px solid var(--program-color-border, #d8dee6);
     border-radius: 999px;
     color: var(--program-color-text, #1f2933);
     display: inline-flex;
     font-weight: 850;
     justify-content: center;
     line-height: 1.25;
     min-height: 2.65rem;
     padding: 0.65rem 0.9rem;
     text-align: center;
     text-decoration: none;
}
 .program-division-explorer__node[href]:hover, .program-division-explorer__node[href]:focus {
     background: var(--program-color-primary, #5b0017);
     border-color: var(--program-color-primary, #5b0017);
     color: #ffffff;
     outline: 3px solid rgba(91, 0, 23, 0.25);
     outline-offset: 2px;
     text-decoration: none;
}
 .program-division-explorer__node--division {
     background: linear-gradient(135deg, var(--program-color-primary, #5b0017), var(--program-color-secondary, #891638));
     border-color: transparent;
     border-radius: 1rem;
     color: #ffffff;
     font-size: 1.05rem;
     min-height: 4rem;
     width: 100%;
}
 .program-division-explorer__node--department {
     background: #ffffff;
     border-color: var(--program-color-primary, #5b0017);
     border-radius: 1rem;
     color: var(--program-color-primary, #5b0017);
     width: 100%;
}
 .program-division-explorer__node--program {
     font-size: 0.92rem;
     min-height: 2.35rem;
     padding: 0.5rem 0.75rem;
}
 .program-division-explorer__node--current {
     background: var(--program-color-primary, #5b0017);
     border-color: var(--program-color-primary, #5b0017);
     color: #ffffff;
}
 .program-division-explorer__empty {
     color: var(--program-color-muted, #596775);
     line-height: 1.5;
     margin: 0;
}
 @media (min-width: 960px) {
     .program-division-explorer__panel {
         bottom: 1.5rem;
         left: 1.5rem;
         right: 1.5rem;
    }
}
 @media (max-width: 719.98px) {
     .program-division-explorer {
         bottom: max(0.75rem, env(safe-area-inset-bottom));
         left: max(0.75rem, env(safe-area-inset-left));
         right: max(0.75rem, env(safe-area-inset-right));
    }
     .program-division-explorer__trigger {
         justify-content: center;
         width: 100%;
    }
     .program-division-explorer__panel {
         border-radius: 1rem 1rem 0 0;
         inset: auto 0 0 0;
         max-height: 82vh;
    }
     .program-division-explorer__graph {
         grid-template-columns: minmax(12rem, 16rem) minmax(34rem, 1fr);
    }
}
/* ========================================================================== Program Page Helpful Links + Navigation Block Dropdown Patch ========================================================================== */
.program-nav__group--pages .program-nav__list {
     align-items: center;
     display: flex;
     flex-wrap: wrap;
     gap: 0.5rem;
}
.program-nav__group--pages .program-nav__list > li {
     position: relative;
}
.program-nav__group--pages .program-nav__list > li > a,
.program-nav__group--pages .program-nav__dropdown-toggle {
     align-items: center;
     background: var(--program-color-primary);
     border: 1px solid var(--program-color-primary);
     border-radius: var(--program-radius);
     color: #ffffff;
     cursor: pointer;
     display: inline-flex;
     font-weight: 800;
     gap: 0.45rem;
     justify-content: center;
     line-height: 1.2;
     list-style: none;
     min-height: 2.5rem;
     padding: 0.65rem 0.85rem;
     text-align: center;
     text-decoration: none;
}
.program-nav__group--pages .program-nav__list > li > a:hover,
.program-nav__group--pages .program-nav__list > li > a:focus,
.program-nav__group--pages .program-nav__dropdown-toggle:hover,
.program-nav__group--pages .program-nav__dropdown-toggle:focus,
.program-nav__group--pages .program-nav__dropdown[open] > .program-nav__dropdown-toggle {
     background: #ffffff;
     border-color: var(--program-color-primary);
     color: var(--program-color-primary);
     text-decoration: none;
}
.program-nav__group--pages .program-nav__dropdown {
     position: relative;
}
.program-nav__group--pages .program-nav__dropdown-toggle::-webkit-details-marker {
     display: none;
}
.program-nav__group--pages .program-nav__dropdown-toggle::after {
     content: "▾";
     font-size: 0.8rem;
     line-height: 1;
}
.program-nav__group--pages .program-nav__dropdown[open] > .program-nav__dropdown-toggle::after {
     content: "▴";
}
.program-nav__group--pages .program-nav__dropdown-list {
     background: #ffffff;
     border: 1px solid var(--program-color-border);
     border-radius: var(--program-radius-lg);
     box-shadow: var(--program-shadow);
     display: grid;
     gap: 0.35rem;
     left: 0;
     list-style: none;
     margin: 0.5rem 0 0;
     min-width: 16rem;
     padding: 0.5rem;
     position: absolute;
     top: 100%;
     z-index: 40;
}
.program-nav__group--pages .program-nav__dropdown-list li {
     margin: 0;
}
.program-nav__group--pages .program-nav__dropdown-list a {
     align-items: center;
     background: transparent;
     border: 1px solid transparent;
     border-radius: var(--program-radius);
     color: var(--program-color-text);
     display: flex;
     font-weight: 700;
     justify-content: flex-start;
     line-height: 1.25;
     min-height: 2.25rem;
     padding: 0.55rem 0.65rem;
     text-align: left;
     text-decoration: none;
     width: 100%;
}
.program-nav__group--pages .program-nav__dropdown-list a:hover,
.program-nav__group--pages .program-nav__dropdown-list a:focus {
     background: var(--program-color-primary);
     border-color: var(--program-color-primary);
     color: #ffffff;
     text-decoration: none;
}
@media (max-width: 767.98px) {
     .program-nav__group--pages .program-nav__list,
     .program-nav__group--pages .program-nav__list > li,
     .program-nav__group--pages .program-nav__list > li > a,
     .program-nav__group--pages .program-nav__dropdown,
     .program-nav__group--pages .program-nav__dropdown-toggle {
         width: 100%;
    }
     .program-nav__group--pages .program-nav__dropdown-list {
         margin-top: 0.5rem;
         min-width: 0;
         position: static;
         width: 100%;
    }
} 

.program-page__extended {
  padding-block-end: var(--program-space-xl);
}

/* ==========================================================================
   Program Context Aside — Pass 23A
   Theme-independent structural contract
   ========================================================================== */

.program-context {
    display: grid;
    gap: var(--program-space-xl);
}

.program-context__section {
    min-width: 0;
}

.sidebar__eyebrow {
    color: var(--program-color-muted);
    font-size: 0.8125rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    line-height: 1.25;
    margin: 0 0 var(--program-space-sm);
    text-transform: uppercase;
}

.academic-directory-placard,
.program-helpful-links {
    background: var(--program-color-surface-alt);
    border: 1px solid var(--program-color-border);
    border-radius: var(--program-radius-lg);
    padding: var(--program-space-lg);
}

.academic-directory-placard__list {
    display: grid;
    gap: 0.35rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.academic-directory-placard__item {
    min-width: 0;
}

.academic-directory-placard__link,
.academic-directory-placard__item--program > span {
    display: block;
    overflow-wrap: anywhere;
    padding: 0.55rem 0.7rem;
}

.academic-directory-placard__link {
    border-radius: var(--program-radius);
    color: var(--program-color-text);
    font-weight: 700;
    text-decoration: none;
}

.academic-directory-placard__link:hover,
.academic-directory-placard__link:focus {
    background: var(--program-color-surface);
    color: var(--program-color-primary);
    text-decoration: underline;
}

.academic-directory-placard__item--program > span {
    color: var(--program-color-muted);
    font-weight: 800;
}

.program-helpful-links .program-nav__list {
    align-items: stretch;
    display: grid;
    gap: 0.5rem;
}

.program-helpful-links .program-nav__list + .program-nav__list {
    margin-top: 0.5rem;
}

.program-helpful-links .program-nav__list > li {
    min-width: 0;
}

.program-helpful-links .program-nav__list > li > a,
.program-helpful-links .program-nav__dropdown-toggle {
    display: flex;
    width: 100%;
}

.program-context__section--contact > .contact-placard {
    margin: 0;
}

/* ==========================================================================
   Academic Program DOM Alignment — Pass 23B
   Theme-independent structure for the canonical Kelsey-compatible hooks.
   ========================================================================== */

/* Program navigation now uses the same sibling geometry as the design branch:
   label + inner navigation rail. */
.program-nav--section-jump {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: stretch;
}

.program-nav--section-jump > .program-nav__label--section-jump {
    display: flex;
    align-items: center;
    margin: 0;
    padding: var(--program-space-md);
}

.program-nav--section-jump > .program-nav__inner--section-jump {
    width: 100%;
    min-width: 0;
    max-width: var(--container-max-width, 1200px);
    padding-inline: var(--program-space-md);
}

@media (max-width: 767.98px) {
    .program-nav--section-jump {
        grid-template-columns: 1fr;
    }

    .program-nav--section-jump > .program-nav__inner--section-jump {
        max-width: none;
    }
}


/* About section: stable wrapper contract.
   Heading stays before image/prose in source order. */
.program-section__content--about {
    min-width: 0;
}

.program-media-row--about {
    min-width: 0;
}

.program-section__header--about {
    min-width: 0;
}

.program-image-card--about {
    min-width: 0;
}

.program-image-card--about img {
    max-width: 100%;
}


/* Credential cards: body wrapper owns vertical distribution so actions sit at
   the bottom regardless of title/summary length. */
.program-card--credential {
    display: flex;
    flex-direction: column;
}

.program-card__credential-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
}

.program-card__credential-body .program-card__summary {
    flex: 1 1 auto;
}

.program-card__credential-body .program-card__actions--credential {
    margin-top: auto;
}

/* =============================================================================
   Pass 27 — Complete Responsive Division Tree

   The hierarchy renderer already emits every department and every program in
   the current division. The previous CSS forced a ~58rem desktop graph even on
   phones, producing horizontal scrolling and making the full hierarchy hard to
   understand. This late structural layer keeps the existing markup/data
   contract and reformats it as a true responsive tree.
   ============================================================================= */

.program-division-explorer__graph {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.5rem;
  min-width: 0;
  width: 100%;
}

.program-division-explorer__root {
  position: relative;
  top: auto;
  display: flex;
  justify-content: center;
  min-width: 0;
}

.program-division-explorer__root::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -1.5rem;
  width: 2px;
  height: 1.5rem;
  background: var(--program-color-border, #d8dee6);
  transform: translateX(-50%);
}

.program-division-explorer__branches {
  position: relative;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
  gap: clamp(1rem, 2.25vw, 1.5rem);
  min-width: 0;
  padding-top: 1.25rem;
  border-top: 2px solid var(--program-color-border, #d8dee6);
}

.program-division-explorer__branch {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
  gap: 0.9rem;
  min-width: 0;
  padding-top: 0.75rem;
}

.program-division-explorer__branch::before {
  content: "";
  position: absolute;
  top: -1.25rem;
  left: 50%;
  width: 2px;
  height: 1.25rem;
  background: var(--program-color-border, #d8dee6);
  transform: translateX(-50%);
}

.program-division-explorer__branch--current::before {
  background: var(--program-color-primary, #5b0017);
}

.program-division-explorer__branch-line {
  display: none;
}

.program-division-explorer__department-column,
.program-division-explorer__program-column {
  display: grid;
  gap: 0.5rem;
  min-width: 0;
}

.program-division-explorer__program-column {
  position: relative;
  padding-top: 0.35rem;
}

.program-division-explorer__program-column::before {
  content: "";
  position: absolute;
  top: -0.55rem;
  left: 50%;
  width: 2px;
  height: 0.9rem;
  background: var(--program-color-border, #d8dee6);
  transform: translateX(-50%);
}

.program-division-explorer__programs {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.5rem;
  min-width: 0;
}

.program-division-explorer__node {
  max-width: 100%;
  overflow-wrap: anywhere;
}

.program-division-explorer__node--division {
  width: min(100%, 30rem);
}

.program-division-explorer__node--department,
.program-division-explorer__node--program {
  width: 100%;
}

.program-division-explorer__node--program {
  justify-content: flex-start;
  text-align: left;
}

@media (max-width: 719.98px) {
  .program-division-explorer__body {
    overflow-x: hidden;
  }

  .program-division-explorer__graph {
    gap: 1rem;
  }

  .program-division-explorer__root {
    justify-content: stretch;
  }

  .program-division-explorer__root::after {
    left: 1rem;
    bottom: -1rem;
    height: 1rem;
    transform: none;
  }

  .program-division-explorer__node--division {
    width: 100%;
  }

  .program-division-explorer__branches {
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
    padding-top: 0;
    padding-left: 1rem;
    border-top: 0;
    border-left: 2px solid var(--program-color-border, #d8dee6);
  }

  .program-division-explorer__branch {
    padding-top: 0;
    padding-left: 0.75rem;
  }

  .program-division-explorer__branch::before {
    top: 1.4rem;
    left: -1rem;
    width: 1rem;
    height: 2px;
    transform: none;
  }

  .program-division-explorer__program-column {
    margin-left: 0.75rem;
    padding-top: 0;
    padding-left: 0.85rem;
    border-left: 2px solid var(--program-color-border, #d8dee6);
  }

  .program-division-explorer__program-column::before {
    display: none;
  }

  .program-division-explorer__node {
    justify-content: flex-start;
    text-align: left;
  }
}


/* =============================================================================
   Pass 29 — Official Division-Level Programs

   The 2026–2027 Academic and Career Programs menu groups Health Sciences
   programs directly beneath the Division rather than under Department headings.
   This layout preserves that authority while retaining the same tree language.
   ============================================================================= */

.program-hierarchy__division-programs {
  position: relative;
  min-width: 0;
  margin-top: 1.5rem;
  padding: 1rem;
  border: 1px solid var(--program-color-border);
  border-radius: var(--program-radius-lg);
  background: var(--hierarchy-node-bg);
  box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.08);
}

.program-hierarchy__division-programs-heading {
  margin-bottom: 1rem;
}

.program-hierarchy__division-programs-heading h4 {
  margin: 0;
  color: var(--program-color-text);
  font-size: 1.1rem;
}

.program-hierarchy__programs--division {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
}

.program-hierarchy__programs--division .program-hierarchy__program-link,
.program-hierarchy__programs--division .program-hierarchy__program span {
  width: 100%;
  min-height: 2.75rem;
  justify-content: flex-start;
  border-radius: 0.65rem;
}

/* A direct-program Division has no Department branch rail. Keep one clear
   connector from the Division root into the direct Program collection. */
.program-hierarchy--direct .program-hierarchy__branches {
  grid-template-columns: minmax(0, 1fr);
}

.program-hierarchy--direct .program-hierarchy__branches::before {
  right: auto;
  left: 50%;
  width: 3px;
  height: 1.5rem;
  transform: translateX(-50%);
}

@media (max-width: 759.98px) {
  .program-hierarchy__division-programs {
    margin-top: 0;
    margin-left: 2.25rem;
  }

  .program-hierarchy--direct .program-hierarchy__branches::before {
    right: auto;
    bottom: 0;
    left: 1.5rem;
    width: 3px;
    height: auto;
    transform: none;
  }

  .program-hierarchy__programs--division {
    grid-template-columns: minmax(0, 1fr);
  }
}

 


/* -----------------------------------------------------------------------------
   Program location cards (campus-aware Shared Locations)
   ----------------------------------------------------------------------------- */
.program-locations .campus-location-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
    gap: var(--space-md);
    margin: 0;
    padding: 0;
    list-style: none;
}

.program-location-list__item {
    min-width: 0;
}

.program-location-card {
    display: grid;
    grid-template-columns: 8.5rem minmax(0, 1fr);
    min-height: 8.5rem;
    overflow: hidden;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
}

.program-location-card__media {
    position: relative;
    overflow: hidden;
    min-height: 8.5rem;
    background: var(--color-surface);
}

.program-location-card__media-link {
    display: block;
    width: 100%;
    height: 100%;
}

.program-location-card__image {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 8.5rem;
    object-fit: cover;
}

.program-location-card__content {
    display: grid;
    align-content: center;
    gap: 0.25rem;
    min-width: 0;
    padding: var(--space-md);
}

.program-location-card__title {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.25;
}

.program-location-card__building,
.program-location-card__room,
.program-location-card__campus-address {
    margin: 0;
    font-size: 0.925rem;
    line-height: 1.4;
}

.program-location-card__building {
    font-weight: var(--fw-bold);
}

.program-location-card__room,
.program-location-card__campus-address {
    color: var(--color-muted);
}

.program-location-card__campus-address {
    white-space: pre-line;
}

.program-location-card__details {
    margin-top: 0.25rem;
    font-size: 0.925rem;
    line-height: 1.45;
}

.program-location-card__details > :first-child {
    margin-top: 0;
}

.program-location-card__details > :last-child {
    margin-bottom: 0;
}

@media (max-width: 520px) {
    .program-location-card {
        grid-template-columns: 6.5rem minmax(0, 1fr);
        min-height: 7rem;
    }

    .program-location-card__media,
    .program-location-card__image {
        min-height: 7rem;
    }

    .program-location-card__content {
        padding: var(--space-sm) var(--space-md);
    }
}

