@font-face{font-family:Inter;src:url(fonts/inter-latin.woff2) format('woff2');font-weight:400 700;font-display:swap}
@font-face{font-family:Saira;src:url(fonts/saira-semi-condensed-500-latin.woff2) format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Saira;src:url(fonts/saira-semi-condensed-600-latin.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Saira;src:url(fonts/saira-semi-condensed-700-latin.woff2) format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:Saira;src:url(fonts/saira-semi-condensed-800-latin.woff2) format('woff2');font-weight:800;font-display:swap}
:root{--font-inter:Inter;--font-saira:Saira}
:root {
 --surface: #f9f9f9;
 --surface-dim: #dadada;
 --surface-container-lowest: #ffffff;
 --surface-white: #ffffff;
 --surface-container-low: #f3f3f3;
 --surface-container: #eeeeee;
 --surface-container-high: #e8e8e8;
 --surface-container-highest: #e2e2e2;
 --on-surface: #1a1c1c;
 --on-surface-variant: #44474e;
 --outline: #74777f;
 --outline-variant: #c4c6cf;
 --primary: #002046;
 --primary-container: #1b365d;
 --on-primary: #ffffff;
 /* Accent shifted off default bright orange to a burnt clay + muted amber (Phase 6). */
 --secondary: #9a3a12;
 --secondary-container: #b8501e;
 --secondary-container-hover: #99400f;
 --accent-amber: #e0a13a;
 --on-secondary: #ffffff;
 /* Warm neutrals so the page isn't only navy-on-white-on-gray. */
 --surface-warm: #f6f1e9;
 --surface-warm-line: #e8ddcc;

 /* ---- Type system (Phase 7): Saira Semi Condensed display / Inter body ----
 Named scale so sizes/weights/line-heights are consistent, not ad-hoc per section. */
 --font-display: var(--font-saira), "Arial Narrow", ui-sans-serif, system-ui, sans-serif;
 --font-body: var(--font-inter), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

 /* sizes */
 --fs-display: clamp(2.9rem, 4.8vw, 4rem);
 --fs-h1: clamp(2.5rem, 4.4vw, 3.4rem);
 --fs-h2: clamp(1.9rem, 2.8vw, 2.25rem);
 --fs-h3: 1.3rem;
 --fs-h4: 1.08rem;
 --fs-body-lg: 1.125rem;
 --fs-body: 1rem;
 --fs-small: 0.875rem;
 --fs-eyebrow: 0.8rem;

 /* weights (Saira reads a touch lighter than Barlow at the same weight, so display leans heavier) */
 --fw-display: 800;
 --fw-heading: 700;
 --fw-h3: 600;
 --fw-body: 400;
 --fw-eyebrow: 700;

 /* line-heights */
 --lh-display: 1.03;
 --lh-heading: 1.16;
 --lh-h3: 1.25;
 --lh-body: 1.5;

 /* letter-spacing */
 --ls-display: -0.015em;
 --ls-heading: -0.005em;
 --ls-h3: 0;
 --ls-eyebrow: 0.15em;

 --accent-blue: #3498db;
 --text-primary: #1b365d;
 --text-muted: #546e7a;
 --warning-bg: #ffdbce;
 --warning-text: #5a1c00;
 --internal-bg: #d6e3ff;
 --internal-border: #aec7f7;
 --radius: 4px;
 --radius-lg: 8px;
 --shadow-soft: 0 8px 18px rgba(0, 32, 70, 0.05);
 --max: 1280px;
 --gutter: 24px;

 /* ---- Spacing scale (Phase 8 polish): one rhythm, no ad-hoc margins ---- */
 --space-2xs: 0.25rem;
 --space-xs: 0.5rem;
 --space-sm: 0.75rem;
 --space-md: 1rem;
 --space-lg: 1.5rem;
 --space-xl: 2rem;
 --space-2xl: 3rem;
 --space-3xl: 4rem;
 /* Section vertical rhythm - responsive, one value across all section systems. */
 --section-y: clamp(3.5rem, 5.5vw, 6rem);
 --section-y-tight: clamp(2.5rem, 4vw, 4rem);
 --section-heading-gap: var(--space-2xl);
 /* One unified card treatment (Phase 8). */
 --card-padding: var(--space-lg);
}

* {
 box-sizing: border-box;
}

html {
 scroll-behavior: smooth;
}

body {
 margin: 0;
 color: var(--on-surface);
 background: var(--surface);
 font-family: var(--font-body);
 line-height: var(--lh-body);
}

img {
 display: block;
 max-width: 100%;
}

a {
 color: inherit;
 text-decoration: none;
}

button,
input,
select,
textarea {
 font: inherit;
}

h1,
h2,
h3,
p {
 margin-top: 0;
}

h1 {
 margin-bottom: 1rem;
 color: var(--primary);
 font-family: var(--font-display);
 font-size: var(--fs-h1);
 font-weight: var(--fw-heading);
 line-height: var(--lh-heading);
 letter-spacing: var(--ls-heading);
 max-width: 820px;
}

h2 {
 color: var(--primary);
 font-family: var(--font-display);
 font-size: var(--fs-h2);
 font-weight: var(--fw-heading);
 line-height: var(--lh-heading);
 letter-spacing: var(--ls-heading);
 margin-bottom: 0.75rem;
}

h3 {
 color: var(--primary-container);
 font-family: var(--font-display);
 font-size: var(--fs-h3);
 font-weight: var(--fw-h3);
 line-height: var(--lh-h3);
 letter-spacing: var(--ls-h3);
 margin-bottom: 0.5rem;
}

h4 {
 color: var(--primary-container);
 font-family: var(--font-display);
 font-size: var(--fs-h4);
 font-weight: var(--fw-h3);
 line-height: var(--lh-h3);
 letter-spacing: var(--ls-h3);
 margin-top: 0;
 margin-bottom: 0.5rem;
}

p {
 color: var(--text-muted);
}

ul {
 margin: 0;
 padding-left: 1.2rem;
}

li + li {
 margin-top: 0.45rem;
}

strong {
 color: var(--on-surface);
}

.site-shell {
 min-height: 100vh;
}



﻿.utility-bar {
 border-bottom: 1px solid var(--outline-variant);
 background: var(--surface-container-highest);
}

.utility-bar > div {
 display: flex;
 justify-content: flex-end;
 gap: 1.5rem;
 width: min(var(--max), calc(100% - 48px));
 margin: 0 auto;
 padding: 0.45rem 0;
}

.utility-bar a {
 color: var(--on-surface-variant);
 font-size: 0.78rem;
 font-weight: 600;
}

.utility-bar a:hover {
 color: var(--primary);
}

.site-header {
 position: sticky;
 top: 0;
 z-index: 20;
 display: grid;
 grid-template-columns: auto minmax(0, 1fr) auto;
 align-items: center;
 gap: 1.5rem;
 min-height: 80px;
 padding: 0 max(1.5rem, calc((100vw - var(--max)) / 2));
 background: var(--surface-container-lowest);
 border-bottom: 1px solid var(--outline-variant);
}

.brand {
 display: inline-flex;
 align-items: center;
 min-width: 148px;
}

.brand img {
 width: 150px;
 height: auto;
}

.main-nav {
 display: flex;
 align-items: stretch;
 justify-content: flex-start;
 height: 80px;
 gap: 0.25rem;
}

.main-nav a {
 display: inline-flex;
 align-items: center;
 padding: 0 0.8rem;
 border-bottom: 3px solid transparent;
 color: var(--on-surface-variant);
 font-size: 0.88rem;
 font-weight: 700;
 white-space: nowrap;
}

.main-nav a.active,
.main-nav a:hover {
 color: var(--primary);
 border-bottom-color: var(--primary);
}

.header-actions {
 display: flex;
 gap: 0.5rem;
 align-items: center;
}

.header-link,
.header-cta {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 min-height: 40px;
 padding: 0.55rem 0.75rem;
 border-radius: var(--radius);
 font-size: 0.86rem;
 font-weight: 700;
 white-space: nowrap;
}

.header-link {
 color: var(--primary);
 border: 1px solid var(--primary);
}

.header-cta {
 color: var(--on-secondary);
 background: var(--secondary-container);
}

.site-footer {
 display: flex;
 justify-content: space-between;
 gap: 2rem;
 padding: 3rem max(1.5rem, calc((100vw - var(--max)) / 2));
 color: var(--on-primary);
 background: var(--primary);
 border-top: 4px solid var(--secondary-container);
}

.site-footer p {
 margin-bottom: 0;
 color: #aec7f7;
}

.footer-links {
 display: flex;
 flex-wrap: wrap;
 gap: 1rem;
 align-items: center;
}

.footer-links a {
 color: var(--on-primary);
 font-weight: 700;
}

.section {
 width: min(var(--max), calc(100% - 48px));
 margin: 0 auto;
 padding: var(--section-y) 0;
}

.tight-top {
 padding-top: 1.5rem;
}

.band {
 width: 100%;
 max-width: none;
 padding-left: max(1.5rem, calc((100vw - var(--max)) / 2));
 padding-right: max(1.5rem, calc((100vw - var(--max)) / 2));
}

.muted {
 background: var(--surface-warm);
}

.proof-band {
 background: var(--surface-warm);
 border-top: 1px solid var(--surface-warm-line);
 border-bottom: 1px solid var(--surface-warm-line);
}

.faq-band {
 background: var(--surface-warm);
}

.two-column-section {
 display: grid;
 grid-template-columns: minmax(0, 0.95fr) minmax(320px, 0.75fr);
 gap: 3rem;
 align-items: center;
}

.align-start {
 align-items: start;
}

.page-hero {
 width: min(var(--max), calc(100% - 48px));
 margin: 0 auto;
 padding: 4rem 0 2rem;
}

.split-hero {
 display: grid;
 grid-template-columns: minmax(0, 1fr) minmax(360px, 0.78fr);
 gap: 3rem;
 align-items: center;
}

.hero-copy p:not(.eyebrow) {
 max-width: 720px;
 font-size: 1.08rem;
 line-height: 1.7;
}

.hero-media {
 overflow: hidden;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius-lg);
 background: var(--surface-container);
}

.hero-media img {
 width: 100%;
 height: 430px;
 object-fit: cover;
}

.hero-actions,
.compact-actions,
.card-actions,
.submitted-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 0.75rem;
 align-items: center;
}

.compact-actions.right {
 justify-content: flex-end;
}

.final-band {
 display: flex;
 justify-content: space-between;
 gap: 1.5rem;
 align-items: center;
 border-top: 1px solid var(--outline-variant);
}

.final-band h2 {
 margin-bottom: 0;
}

.form-section {
 display: grid;
 grid-template-columns: minmax(0, 1fr) minmax(320px, 0.56fr);
 gap: 1.5rem;
 align-items: start;
}

.form-section.embedded {
 width: 100%;
 padding: 0;
}

@media (max-width: 1080px) {
 .site-header {
 grid-template-columns: 1fr;
 gap: 0.75rem;
 padding-top: 0.85rem;
 padding-bottom: 0.85rem;
 }

 .main-nav {
 height: auto;
 flex-wrap: wrap;
 }

 .main-nav a {
 min-height: 36px;
 padding: 0 0.55rem;
 }

 .header-actions {
 flex-wrap: wrap;
 }
}

@media (max-width: 900px) {
 .site-footer,
 .final-band {
 flex-direction: column;
 align-items: flex-start;
 }

 .section {
 width: min(var(--max), calc(100% - 32px));
 padding: 3.75rem 0;
 }

 .band {
 padding-left: 1rem;
 padding-right: 1rem;
 }

 .two-column-section,
 .split-hero,
 .form-section {
 grid-template-columns: 1fr;
 }

 .hero-media img {
 height: 300px;
 }

 .compact-actions.right {
 justify-content: flex-start;
 }
}

@media (max-width: 620px) {
 .utility-bar > div {
 width: min(var(--max), calc(100% - 32px));
 justify-content: flex-start;
 }

 .brand img {
 width: 132px;
 }

 .header-link,
 .header-cta {
 flex: 1 1 150px;
 }
}

.home-hero {
 width: min(var(--max), calc(100% - 48px));
 margin: 0 auto;
 padding: 4.5rem 0 5.5rem;
}

.stitch-hero {
 display: grid;
 grid-template-columns: minmax(0, 1fr) minmax(360px, 0.86fr);
 gap: 4rem;
 align-items: center;
 background: var(--surface-container-lowest);
}

.home-hero-content {
 max-width: 760px;
}

.home-hero-content p:not(.eyebrow) {
 max-width: 680px;
 color: var(--text-muted);
 font-size: 1.125rem;
 line-height: 1.6;
}

.home-hero-panel {
 position: relative;
 min-height: 460px;
 overflow: hidden;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius-lg);
 background: var(--surface-container);
}

.home-hero-panel img {
 width: 100%;
 height: 460px;
 object-fit: cover;
}

.hero-panel-card {
 position: absolute;
 left: 24px;
 right: 24px;
 bottom: 24px;
 display: grid;
 gap: 0.2rem;
 padding: 1rem;
 border: 1px solid rgba(255, 255, 255, 0.42);
 border-radius: var(--radius);
 color: var(--on-primary);
 background: rgba(0, 32, 70, 0.9);
}

.hero-panel-card strong {
 color: var(--on-primary);
}

.hero-panel-card span {
 color: #d6e3ff;
}

.hero-proof-row {
 display: flex;
 flex-wrap: wrap;
 gap: 0.75rem 1.25rem;
 margin-top: 2rem;
 padding-top: 1.5rem;
 border-top: 1px solid var(--outline-variant);
}

.hero-proof-row span {
 color: var(--text-muted);
 font-size: 0.88rem;
 font-weight: 700;
}

.eyebrow {
 margin-bottom: 0.65rem;
 color: var(--secondary);
 font-family: var(--font-display);
 font-size: var(--fs-eyebrow);
 font-weight: var(--fw-eyebrow);
 letter-spacing: var(--ls-eyebrow);
 line-height: 1.2;
 text-transform: uppercase;
}

.eyebrow.light {
 color: var(--secondary);
}

.section-header {
 max-width: 800px;
 margin-bottom: 2rem;
}

.section-header.center {
 margin-left: auto;
 margin-right: auto;
 text-align: center;
}

.section-header p:last-child {
 margin-bottom: 0;
 font-size: 1rem;
 line-height: 1.65;
}

.button {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 min-height: 48px;
 /* One button metric everywhere (was 0.8rem/1.05rem on inner pages vs 1.5rem on home). */
 padding: 0.85rem 1.5rem;
 border: 1px solid transparent;
 border-radius: var(--radius);
 font-size: 0.875rem;
 font-weight: 600;
 line-height: 1.15;
 text-align: center;
 transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
 cursor: pointer;
}

.button:hover {
 transform: translateY(-1px);
 box-shadow: 0 6px 16px rgba(0, 32, 70, 0.16);
}

.button:active {
 transform: translateY(0);
 box-shadow: 0 2px 6px rgba(0, 32, 70, 0.14);
}

.button:focus-visible {
 outline: 2px solid var(--primary);
 outline-offset: 2px;
}

.button:disabled,
.button.disabled {
 opacity: 0.55;
 cursor: not-allowed;
}

.button:disabled:hover,
.button.disabled:hover {
 transform: none;
 box-shadow: none;
}

.button.primary {
 color: var(--on-primary);
 background: var(--primary);
}

.button.primary:hover {
 background: var(--primary-container);
}

.button.cta {
 color: var(--on-secondary);
 background: var(--secondary-container);
}

.button.cta:hover {
 background: var(--secondary-container-hover);
 box-shadow: 0 6px 16px rgba(154, 64, 15, 0.32);
}

.button.cta:focus-visible {
 outline-color: var(--secondary-container-hover);
}

/* One outline button: secondary. tertiary folds into it (was a near-duplicate). */
.button.secondary,
.button.tertiary {
 color: var(--primary);
 background: var(--surface-container-lowest);
 border-color: var(--primary);
}

.button.secondary:hover,
.button.tertiary:hover {
 background: var(--surface-container-low);
 border-color: var(--primary-container);
}

.button.light {
 color: var(--primary);
 background: var(--surface-container-lowest);
 border-color: var(--outline-variant);
}

.button.light:hover {
 background: var(--surface-container-low);
 border-color: var(--primary);
}

.button.ghost-light {
 color: var(--primary);
 background: transparent;
 border-color: var(--primary);
}

.button.ghost-light:hover {
 background: var(--primary);
 color: var(--on-primary);
}

.button.full-width {
 width: 100%;
 margin-top: 1rem;
}

.course-grid {
 display: grid;
 grid-template-columns: repeat(4, minmax(0, 1fr));
 gap: 1.5rem;
}

.course-card {
 display: flex;
 flex-direction: column;
 min-height: 100%;
 overflow: hidden;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
}

.course-card:hover {
 box-shadow: var(--shadow-soft);
}

.course-image {
 position: relative;
 display: block;
 height: 138px;
 overflow: hidden;
 border-bottom: 1px solid var(--outline-variant);
 background: var(--surface-container);
}

.course-image img {
 width: 100%;
 height: 100%;
 object-fit: cover;
}


.course-image span {
 position: absolute;
 left: 0.75rem;
 bottom: 0.75rem;
 padding: 0.28rem 0.5rem;
 border-radius: var(--radius);
 color: var(--primary);
 background: rgba(255, 255, 255, 0.92);
 font-size: 0.72rem;
 font-weight: 600;
}

.course-card-body {
 display: flex;
 flex: 1;
 flex-direction: column;
 justify-content: space-between;
 gap: 1.1rem;
 padding: 1.25rem;
}

.course-card h3 {
 margin-bottom: 0.45rem;
}

.course-card p {
 margin-bottom: 0;
 font-size: 0.92rem;
 line-height: 1.55;
}

.course-meta {
 margin: 0;
}

.compact-meta {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: var(--surface);
}

.compact-meta div {
 min-height: 70px;
 padding: 0.7rem;
}

.compact-meta div:nth-child(odd) {
 border-right: 1px solid var(--outline-variant);
}

.compact-meta div:nth-child(n + 3) {
 border-top: 1px solid var(--outline-variant);
}

.course-meta div,
.info-tile,
.internal-result dl div {
 display: grid;
 gap: 0.18rem;
}

.course-meta dt,
.info-tile span,
.internal-result dt,
.pathway-step-card dt {
 color: var(--text-muted);
 font-size: 0.72rem;
 font-weight: 600;
 letter-spacing: 0;
 text-transform: uppercase;
}

.course-meta dd,
.internal-result dd {
 margin: 0;
 color: var(--on-surface);
 font-size: 0.86rem;
 font-weight: 700;
 line-height: 1.35;
}

.card-actions .button {
 flex: 1 1 128px;
 min-height: 42px;
 padding: 0.65rem 0.72rem;
 font-size: 0.84rem;
}

.pathway-blocks,
.story-grid,
.why-grid,
.benefit-grid,
.three-panel-grid,
.mini-course-grid,
.info-grid,
.outcome-grid {
 display: grid;
 gap: 1.5rem;
}

/* benefit-grid had no column rule and was stacking full-width (Phase 6 polish). */
.benefit-grid {
 grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}

.pathway-blocks {
 grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pathway-blocks article,
.story-card,
.why-grid article,
.benefit-grid article,
.three-panel-grid article,
.outcome-card,
.related-box,
.quiet-panel,
.warning-panel,
.callout-panel,
.submitted-card,
.instructor-card {
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius-lg);
 background: var(--surface-container-lowest);
}

.pathway-blocks article,
.story-card,
.why-grid article,
.benefit-grid article,
.three-panel-grid article,
.outcome-card,
.related-box,
.quiet-panel,
.warning-panel,
.callout-panel,
.instructor-card {
 padding: 1.5rem;
}

/* Shared session add-to-cart control (site-wide buy flow). */
.session-add-to-cart {
 display: grid;
 gap: 0.6rem;
}

.session-add-to-cart.full-width {
 width: 100%;
}

.session-add-panel {
 display: grid;
 gap: 0.5rem;
}

.pathway-step-heading {
 display: flex;
 align-items: baseline;
 justify-content: space-between;
 gap: 1rem;
}

.pathway-step-price {
 color: var(--secondary);
 font-weight: 700;
 white-space: nowrap;
}

/* Card polish for secondary pages (Phase 6): subtle lift + amber accent. */
.pathway-blocks article,
.story-card,
.benefit-grid article,
.three-panel-grid article,
.mini-course-grid article,
.outcome-card {
 transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.pathway-blocks article:hover,
.story-card:hover,
.benefit-grid article:hover,
.three-panel-grid article:hover,
.mini-course-grid article:hover,
.outcome-card:hover {
 border-color: #9eb1c3;
 box-shadow: 0 14px 26px rgba(0, 32, 70, 0.09);
 transform: translateY(-3px);
}


.split-pathways article:first-child {
 border-top: 4px solid var(--accent-blue);
}

.split-pathways article:last-child {
 border-top: 4px solid var(--primary);
}

.pathway-number,
.step-index {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 44px;
 height: 44px;
 margin-bottom: 1rem;
 border-radius: var(--radius);
 color: var(--on-primary);
 background: var(--primary);
 font-weight: 600;
}

.pathway-number.accent-blue {
 background: var(--accent-blue);
}

.outcome-grid {
 grid-template-columns: repeat(3, minmax(0, 1fr));
}

.outcome-card {
 min-height: 230px;
 border-top: 4px solid var(--primary);
}

.outcome-card:nth-child(2) {
 border-top-color: var(--accent-blue);
}

.outcome-card:nth-child(3) {
 border-top-color: var(--secondary-container);
}

.step-preview {
 display: grid;
 gap: 0.8rem;
}

.step-preview div {
 display: grid;
 grid-template-columns: 96px 1fr;
 gap: 0.9rem;
 align-items: center;
 padding: 1rem;
 border-left: 4px solid var(--primary);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
 border-top: 1px solid var(--outline-variant);
 border-right: 1px solid var(--outline-variant);
 border-bottom: 1px solid var(--outline-variant);
}

.step-preview span {
 color: var(--text-muted);
}

.story-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
}

.anonymized-grid {
 grid-template-columns: repeat(4, minmax(0, 1fr));
}

.story-card h3 {
 min-height: 2.5rem;
}

.story-card p {
 font-size: 0.92rem;
}

.why-grid {
 grid-template-columns: repeat(4, minmax(0, 1fr));
}

.why-grid article {
 display: flex;
 gap: 0.8rem;
 align-items: flex-start;
}

.checkmark {
 display: inline-flex;
 flex: 0 0 32px;
 align-items: center;
 justify-content: center;
 width: 32px;
 height: 32px;
 border-radius: var(--radius);
 color: var(--on-primary);
 background: var(--primary);
 font-weight: 600;
}

.why-grid p {
 margin-bottom: 0;
}

.info-grid {
 grid-template-columns: repeat(6, minmax(0, 1fr));
}

.info-tile {
 min-height: 112px;
 padding: 1rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
}

.info-tile strong {
 color: var(--primary-container);
 font-size: 1rem;
 line-height: 1.3;
}

.cta-stack {
 display: grid;
 gap: 0.75rem;
 max-width: 430px;
}

.internal-result {
 padding: 1.35rem;
 border: 1px solid var(--internal-border);
 border-radius: var(--radius);
 background: var(--internal-bg);
}

.internal-result h3 {
 word-break: break-word;
}

.internal-result p:last-child {
 margin-bottom: 0;
}

.internal-result dl {
 display: grid;
 gap: 0.8rem;
 margin: 1rem 0 0;
}

.result-list {
 display: grid;
 gap: 0.7rem;
 padding: 0;
 list-style: none;
}

.result-list li {
 display: grid;
 grid-template-columns: minmax(104px, 0.4fr) 1fr;
 gap: 0.8rem;
 padding-bottom: 0.7rem;
 border-bottom: 1px solid rgba(0, 32, 70, 0.18);
}

.result-list span {
 color: var(--text-muted);
}

.three-panel-grid {
 grid-template-columns: repeat(3, minmax(0, 1fr));
}

.three-panel-grid article {
 background: var(--surface-container-lowest);
}

.callout-panel.employer {
 border-top: 4px solid var(--primary);
}

.callout-panel.grant {
 border-top: 4px solid var(--secondary-container);
}

.proof-stat-row,
.tag-row {
 display: flex;
 flex-wrap: wrap;
 gap: 0.6rem;
}

.proof-stat-row span,
.tag-row span {
 padding: 0.45rem 0.65rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 color: var(--primary);
 background: var(--surface-container-low);
 font-weight: 700;
}

.instructor-card {
 display: grid;
 gap: 0.85rem;
}

.instructor-avatar {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 72px;
 height: 72px;
 border-radius: var(--radius);
 color: var(--text-muted);
 background: var(--surface-container);
 font-weight: 600;
}

.instructor-card dl {
 display: grid;
 gap: 0.85rem;
 margin: 0;
}

.instructor-card dt {
 color: var(--text-muted);
 font-size: 0.72rem;
 font-weight: 600;
 text-transform: uppercase;
}

.instructor-card dd {
 margin: 0;
 color: var(--on-surface-variant);
}

.faq-list {
 display: grid;
 gap: 0.85rem;
 max-width: 920px;
}

.faq-list article {
 padding: 1.15rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
}

.faq-list h3,
.faq-list p {
 margin-bottom: 0;
}

.pathway-steps {
 display: grid;
 gap: 1rem;
}

.pathway-step-card {
 display: grid;
 grid-template-columns: 64px 220px minmax(0, 1fr);
 gap: 1rem;
 align-items: start;
 padding: 1rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
}

.pathway-step-card img {
 width: 100%;
 height: 168px;
 object-fit: cover;
 border-radius: var(--radius);
}

.pathway-step-card dl {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0.8rem;
 margin: 0 0 1rem;
}

.pathway-step-card dd {
 margin: 0;
 color: var(--on-surface-variant);
}

.comparison-table {
 overflow: hidden;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
}

.comparison-head,
.comparison-row {
 display: grid;
 grid-template-columns: 1.2fr repeat(3, 1fr);
}

.comparison-head {
 color: var(--on-primary);
 background: var(--primary);
 font-weight: 600;
}

.comparison-head span,
.comparison-row span,
.comparison-row strong {
 padding: 0.9rem;
 border-right: 1px solid var(--outline-variant);
}

.comparison-row + .comparison-row {
 border-top: 1px solid var(--outline-variant);
}

.warning-section {
 padding-top: 1rem;
 padding-bottom: 1rem;
}

.warning-panel {
 border-color: var(--secondary-container);
 background: var(--warning-bg);
}

.warning-panel h2 {
 color: var(--warning-text);
}

.feature-list {
 display: grid;
 gap: 0.7rem;
 padding-left: 1.1rem;
}

.mini-course-grid {
 grid-template-columns: repeat(3, minmax(0, 1fr));
}

.mini-course-grid article {
 overflow: hidden;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius-lg);
 background: var(--surface-white);
}

.mini-course-grid img {
 width: 100%;
 height: 126px;
 object-fit: cover;
 border-bottom: 1px solid var(--outline-variant);
}

.mini-course-grid h3,
.mini-course-grid p,
.mini-course-grid .button {
 margin-left: 1rem;
 margin-right: 1rem;
}

.mini-course-grid h3 {
 margin-top: 1rem;
}

.mini-course-grid .button {
 margin-bottom: 1rem;
}

.flow-page,
.submitted-page {
 min-height: calc(100vh - 122px);
}

.flow-header {
 max-width: 800px;
 margin-bottom: 1.4rem;
}

.flow-header h1,
.submitted-card h1 {
 color: var(--primary);
}

.flow-context {
 display: inline-grid;
 gap: 0.12rem;
 min-width: 220px;
 margin-top: 0.8rem;
 padding: 0.75rem 0.9rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
}

.flow-context span {
 color: var(--text-muted);
 font-size: 0.74rem;
 font-weight: 600;
 letter-spacing: 0;
 text-transform: uppercase;
}

.mock-form {
 padding: 1.25rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
}

.form-grid {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0.9rem;
}

.form-grid label {
 display: grid;
 gap: 0.35rem;
}

.form-grid label.full {
 grid-column: 1 / -1;
}

.form-grid span {
 color: var(--on-surface);
 font-size: 0.82rem;
 font-weight: 700;
}

input,
select,
textarea {
 width: 100%;
 min-height: 46px;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 padding: 0.72rem;
 color: var(--on-surface);
 background: var(--surface-container-lowest);
}

input:focus,
select:focus,
textarea:focus {
 border-color: var(--primary);
 outline: 2px solid var(--primary);
 outline-offset: 0;
}

textarea {
 resize: vertical;
}

.submitted-card {
 max-width: 900px;
 margin: 0 auto;
 padding: 1.8rem;
}

.submitted-card .internal-result {
 margin-top: 1.2rem;
}

.submitted-actions {
 margin-top: 1.2rem;
}

@media (max-width: 1120px) {
 .course-grid,
 .anonymized-grid {
 grid-template-columns: repeat(3, minmax(0, 1fr));
 }

 .info-grid,
 .why-grid,
 .outcome-grid {
 grid-template-columns: repeat(3, minmax(0, 1fr));
 }
}

@media (max-width: 900px) {
 .recert-page {
 --gs-margin: 16px;
 }

 .home-hero,
 .stitch-hero {
 width: min(var(--max), calc(100% - 32px));
 grid-template-columns: 1fr;
 padding: 3.5rem 0;
 }

 .home-hero-panel,
 .home-hero-panel img {
 min-height: 0;
 height: 320px;
 }

 .course-grid,
 .three-panel-grid,
 .mini-course-grid,
 .why-grid,
 .info-grid,
 .story-grid,
 .pathway-blocks,
 .outcome-grid,
 .anonymized-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }

 .pathway-step-card {
 grid-template-columns: 52px minmax(0, 1fr);
 }

 .pathway-step-card img {
 grid-column: 1 / -1;
 height: 220px;
 }

 .comparison-head,
 .comparison-row {
 grid-template-columns: 1fr;
 }

 .comparison-head span,
 .comparison-row span,
 .comparison-row strong {
 border-right: 0;
 border-bottom: 1px solid var(--outline-variant);
 }
}

@media (max-width: 620px) {
 .home-hero,
 .stitch-hero {
 gap: 2rem;
 }

 .course-grid,
 .three-panel-grid,
 .mini-course-grid,
 .why-grid,
 .info-grid,
 .story-grid,
 .pathway-blocks,
 .form-grid,
 .outcome-grid,
 .anonymized-grid,
 .compact-meta {
 grid-template-columns: 1fr;
 }

 .compact-meta div,
 .compact-meta div:nth-child(odd),
 .compact-meta div:nth-child(n + 3) {
 border-right: 0;
 border-top: 1px solid var(--outline-variant);
 }

 .compact-meta div:first-child {
 border-top: 0;
 }

 .step-preview div,
 .result-list li,
 .pathway-step-card dl {
 grid-template-columns: 1fr;
 }

 .button {
 width: 100%;
 }

 .hero-actions,
 .compact-actions,
 .card-actions,
 .submitted-actions {
 align-items: stretch;
 }
}

/* Secondary-page quality pass */
.refined-generic-course-page .generic-course-hero {
 padding: clamp(3.25rem, 7vw, 5.25rem) 0 3.25rem;
 border-bottom: 0;
 background: var(--surface-white);
}

.refined-generic-course-page .generic-course-hero-grid {
 grid-template-columns: minmax(0, 1fr) minmax(360px, 0.82fr);
 gap: clamp(2.5rem, 5vw, 5rem);
}

.refined-generic-course-page .generic-course-hero-copy h1 {
 max-width: 760px;
 color: var(--primary);
 font-family: var(--font-display);
 font-size: clamp(2.7rem, 5vw, 4.9rem);
 font-weight: var(--fw-h1);
 line-height: var(--lh-h1);
}

.refined-generic-course-page .generic-course-hero-media {
 border-color: var(--outline-variant);
 border-radius: var(--radius-lg);
 box-shadow: var(--shadow-soft);
}

.refined-generic-course-page .generic-course-hero-media img {
 min-height: 390px;
 max-height: 480px;
}

.refined-generic-course-page .generic-course-facts {
 border-top: 1px solid var(--surface-container);
 border-bottom: 1px solid var(--surface-container);
 background: var(--surface-container-lowest);
}

.refined-generic-course-page .generic-facts-strip div {
 padding-top: 1.35rem;
 padding-bottom: 1.35rem;
}

.refined-generic-course-page .generic-course-main-section {
 padding-top: 4rem;
 padding-bottom: 5rem;
}

.refined-generic-course-page .generic-course-layout {
 grid-template-columns: minmax(0, 780px) minmax(280px, 330px);
 justify-content: space-between;
 gap: clamp(2.5rem, 4.4vw, 4.8rem);
}

.refined-generic-course-page .generic-course-content {
 gap: 0;
}

.refined-generic-course-page .generic-course-section {
 padding: 0 0 2.5rem;
 border: 0;
 border-bottom: 1px solid var(--surface-container);
 border-radius: 0;
 background: transparent;
}

.refined-generic-course-page .generic-course-section + .generic-course-section,
.refined-generic-course-page .generic-course-callout + .generic-course-section,
.refined-generic-course-page .generic-course-section + .generic-course-callout {
 margin-top: 2.5rem;
}

.refined-generic-course-page .generic-course-section h2,
.refined-generic-course-page .generic-course-callout h2 {
 color: var(--primary);
 font-family: var(--font-display);
 font-size: clamp(1.45rem, 2vw, 1.9rem);
 font-weight: var(--fw-h3);
}

.refined-generic-course-page .generic-course-callout {
 min-height: 0;
 margin-top: 1rem;
 padding: 1.45rem;
 border-radius: var(--radius-lg);
 box-shadow: none;
}

.refined-generic-course-page .generic-course-callout.light {
 border-color: var(--outline-variant);
 background: var(--surface-container-low);
}

.refined-generic-course-page .generic-related-card {
 padding: 0;
 border-color: var(--outline-variant);
 border-radius: var(--radius);
 gap: 0;
 transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.refined-generic-course-page .generic-related-card:hover,
.refined-generic-course-page .generic-related-card:focus-visible {
 border-color: var(--primary-container);
 box-shadow: var(--shadow-soft);
 outline: 0;
 transform: translateY(-3px);
}

.refined-generic-course-page .generic-related-card img {
 aspect-ratio: 4 / 3;
 border-radius: 0;
}

.refined-generic-course-page .generic-related-card span,
.refined-generic-course-page .generic-related-card strong,
.refined-generic-course-page .generic-related-card small {
 margin-right: 1rem;
 margin-left: 1rem;
}

.refined-generic-course-page .generic-related-card span {
 margin-top: 1rem;
}

.refined-generic-course-page .generic-related-card small {
 margin-bottom: 1rem;
}

.refined-generic-course-page .generic-review-section .section-row-title {
 margin-top: 0;
}

.refined-generic-course-page .generic-faq details {
 padding: 0;
}

.refined-generic-course-page .generic-faq summary {
 display: flex;
 align-items: center;
 min-height: 58px;
 padding: 0.85rem 0;
}

.refined-course-page .course-audience-receive-section .course-two-column-list {
 margin-top: 0;
}

.refined-course-page .course-audience-receive-section .course-two-column-list > div {
 padding-top: 0;
 border-top: 0;
}

.refined-course-page .course-audience-receive-section .course-panel-kicker {
 margin-bottom: 0.55rem;
}

.refined-course-page .course-instructor-trust .course-instruction-note {
 max-width: 760px;
}

.refined-course-page .course-detail-layout {
 padding-top: 3.35rem;
 padding-bottom: 4.25rem;
}

.refined-course-page .course-section {
 padding-bottom: 2.25rem;
}

.refined-course-page .course-section + .course-section,
.refined-course-page .course-callout-grid + .course-section {
 padding-top: 2.25rem;
}

.support-flow-hero-grid.without-course-context {
 grid-template-columns: minmax(0, 760px);
}

.support-flow-layout.single-form-layout,
.form-section.single-form-section {
 width: min(100% - 32px, 820px);
 max-width: 820px;
}

.support-flow-form-card.uncontained-form-column,
.form-section.single-form-section .uncontained-form-column {
 padding: 0;
 border: 0;
 background: transparent;
 box-shadow: none;
}

.support-flow-page .request-form,
.form-section.single-form-section .request-form,
.grant-tool-section .request-form {
 padding: 0;
 border: 0;
 border-radius: 0;
 background: transparent;
}

.contact-path-grid .contact-path-card {
 display: grid;
 gap: 0.9rem;
 min-height: 230px;
 padding: 1.45rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius-lg);
 color: inherit;
 background: var(--surface-white);
 text-decoration: none;
 transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.contact-path-grid .contact-path-card:hover,
.contact-path-grid .contact-path-card:focus-visible {
 border-color: var(--primary-container);
 box-shadow: var(--shadow-soft);
 outline: 0;
 transform: translateY(-3px);
}

.contact-path-grid .contact-path-card h3,
.contact-path-grid .contact-path-card p {
 margin: 0;
}

.contact-path-link {
 align-self: end;
 color: var(--primary);
 font-weight: 600;
}

.contact-path-link::after {
 content: "\2192";
 display: inline-block;
 margin-left: 0.45rem;
 transition: transform 160ms ease;
}

.contact-path-card:hover .contact-path-link::after,
.contact-path-card:focus-visible .contact-path-link::after {
 transform: translateX(3px);
}

.grant-tool-section.single-form-section {
 max-width: 820px;
}

.grant-tool-column {
 gap: 1.35rem;
}

.grant-tool-results {
 border-top: 1px solid var(--surface-container);
 background: var(--surface-container-lowest);
}

.grant-output-card {
 border-color: var(--outline-variant);
 box-shadow: none;
}

.grant-portal-list {
 gap: 0;
 border-top: 1px solid var(--surface-container);
}

.grant-portal-link {
 padding: 1rem 0;
 border: 0;
 border-bottom: 1px solid var(--surface-container);
 border-radius: 0;
 background: transparent;
 box-shadow: none;
}

.grant-portal-link:hover,
.grant-portal-link:focus-visible {
 padding-right: 0.5rem;
 padding-left: 0.5rem;
 border-color: var(--surface-container);
 background: var(--surface-container-lowest);
 box-shadow: none;
 transform: none;
}

.checkout-steps span.complete {
 color: var(--on-surface-variant);
}

.checkout-steps span.complete::before {
 background: var(--primary);
}

.checkout-confirm-row input[type="checkbox"] {
 flex: 0 0 20px;
 width: 20px;
 height: 20px;
 min-height: 20px;
 margin: 0.15rem 0 0;
 accent-color: var(--primary);
}

.checkout-confirm-row span {
 flex: 1 1 auto;
 line-height: 1.5;
}

.industry-proof-list {
 display: grid;
 gap: 0.75rem;
 margin: 1.4rem 0 0;
 padding: 0;
 list-style: none;
}

.industry-proof-list li {
 position: relative;
 padding-left: 1.25rem;
 color: var(--on-surface-variant);
 line-height: 1.5;
}

.industry-proof-list li::before {
 content: "";
 position: absolute;
 top: 0.62em;
 left: 0;
 width: 7px;
 height: 7px;
 border-radius: 999px;
 background: var(--primary-container);
}

.industry-safety-strip-section {
 padding-top: 3rem;
 padding-bottom: 3rem;
 border-top: 1px solid var(--surface-container);
 border-bottom: 1px solid var(--surface-container);
 background: var(--surface-container-lowest);
}

.industry-safety-strip {
 display: grid;
 grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
 gap: 2.5rem;
 align-items: center;
}

.industry-safety-strip h2 {
 margin-bottom: 0.6rem;
 color: var(--primary);
 font-size: clamp(1.7rem, 3vw, 2.35rem);
}

.industry-safety-strip p {
 margin: 0;
 color: var(--text-muted);
 line-height: 1.6;
}

.industry-safety-links {
 display: flex;
 flex-wrap: wrap;
 gap: 0.65rem;
}

.industry-safety-links a {
 padding: 0.62rem 0.85rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 color: var(--primary);
 background: var(--surface-white);
 font-weight: 600;
 text-decoration: none;
 transition: border-color 160ms ease, transform 160ms ease;
}

.industry-safety-links a:hover,
.industry-safety-links a:focus-visible {
 border-color: var(--primary);
 outline: 0;
 transform: translateY(-2px);
}

.industry-catalog-link {
 display: flex;
 justify-content: center;
 padding: 0 1rem 4rem;
}

.recert-hero {
 padding-top: 4.5rem;
 padding-bottom: 4rem;
 background: var(--surface-container-lowest);
}

.recert-hero-grid {
 grid-template-columns: minmax(0, 1fr) minmax(260px, 0.5fr);
}

.recert-hero h1 {
 max-width: 820px;
 font-size: clamp(2.7rem, 5vw, 4.7rem);
}

.recert-hero-details {
 display: grid;
 gap: 1.1rem;
 padding: 1.5rem 0 1.5rem 1.5rem;
 border: 0;
 border-left: 3px solid var(--primary);
 border-radius: 0;
 background: transparent;
}

.recert-hero-details .icon {
 width: 34px;
 height: 34px;
 margin-bottom: 0.25rem;
 color: var(--primary);
}

.recert-hero-details div {
 display: grid;
 gap: 0.2rem;
}

.recert-hero-details strong {
 color: var(--primary);
 font-family: var(--font-display);
 font-size: 1.15rem;
}

.recert-hero-details span {
 color: var(--text-muted);
 line-height: 1.45;
}

.recert-product-card {
 grid-template-rows: 260px 1fr;
}

.recert-info-grid {
 gap: 0;
 border-top: 1px solid var(--surface-container);
}

.recert-info-grid article {
 padding: 1.5rem 1.5rem 0;
 border: 0;
 border-right: 1px solid var(--surface-container);
 border-radius: 0;
}

.recert-info-grid article:first-child {
 padding-left: 0;
}

.recert-info-grid article:last-child {
 border-right: 0;
}

.recert-support-grid {
 overflow: hidden;
 gap: 0;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius-lg);
 background: var(--surface-container-lowest);
}

.recert-support-grid article {
 border: 0;
 border-right: 1px solid var(--outline-variant);
 border-radius: 0;
 background: transparent;
}

.recert-support-grid article:last-child {
 border-right: 0;
}

@media (max-width: 1120px) {
 .refined-course-page .course-sidebar,
 .refined-generic-course-page .generic-course-sidebar {
 order: -1;
 }

 .refined-generic-course-page .generic-course-layout {
 grid-template-columns: 1fr;
 }

 .refined-generic-course-page .generic-course-sidebar {
 position: static;
 }
}

@media (max-width: 900px) {
 .industry-safety-strip {
 grid-template-columns: 1fr;
 gap: 1.5rem;
 }
}

@media (max-width: 760px) {
 .refined-generic-course-page .generic-course-hero-grid,
 .refined-generic-course-page .generic-course-section.split {
 grid-template-columns: 1fr;
 }

 .refined-generic-course-page .generic-course-hero {
 padding-top: 2.5rem;
 }

 .refined-generic-course-page .generic-course-hero-media img {
 min-height: 270px;
 height: 270px;
 }

 .refined-generic-course-page .generic-facts-strip {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }

 .refined-generic-course-page .generic-facts-strip div {
 border-right: 0;
 }

 .refined-generic-course-page .generic-course-main-section {
 padding-top: 2.5rem;
 padding-bottom: 4rem;
 }

 .refined-generic-course-page .generic-course-section,
 .refined-course-page .course-section {
 padding-bottom: 2rem;
 }

 .refined-generic-course-page .generic-course-section + .generic-course-section,
 .refined-generic-course-page .generic-course-callout + .generic-course-section,
 .refined-generic-course-page .generic-course-section + .generic-course-callout,
 .refined-course-page .course-section + .course-section,
 .refined-course-page .course-callout-grid + .course-section {
 margin-top: 0;
 padding-top: 2rem;
 }

 .contact-path-grid .contact-path-card {
 min-height: 0;
 padding: 1.15rem;
 }

 .recert-hero-grid,
 .recert-info-grid,
 .recert-support-grid {
 grid-template-columns: 1fr;
 }

 .recert-hero-details {
 padding: 1.25rem 0 0;
 border-top: 1px solid var(--surface-container);
 border-left: 0;
 }

 .recert-info-grid article,
 .recert-info-grid article:first-child {
 padding: 1.25rem 0;
 border-right: 0;
 border-bottom: 1px solid var(--surface-container);
 }

 .recert-support-grid article {
 border-right: 0;
 border-bottom: 1px solid var(--outline-variant);
 }

 .recert-support-grid article:last-child {
 border-bottom: 0;
 }
}

/* Homepage polish pass: Stitch/Northwest Skills marketing finish */
.home-hero.stitch-hero {
 padding: 5.5rem 0 6.5rem;
 gap: 4.5rem;
}

.home-hero-content .eyebrow {
 color: var(--secondary);
}

.home-hero-content h1 {
 max-width: 720px;
 margin-bottom: 1.25rem;
}

.home-hero-content p:not(.eyebrow) {
 max-width: 620px;
 margin-bottom: 0;
 font-size: 1.125rem;
}

.polished-actions {
 margin-top: 2rem;
}

.button.text {
 min-height: 48px;
 padding-left: 0.25rem;
 padding-right: 0.25rem;
 color: var(--primary);
 background: transparent;
 border-color: transparent;
 box-shadow: none;
}

.button.text:hover {
 color: var(--secondary);
 box-shadow: none;
 transform: none;
}

.button.subtle {
 min-height: 42px;
 color: var(--primary);
 background: transparent;
 border-color: transparent;
}

.button.subtle:hover {
 background: var(--surface-container-low);
 box-shadow: none;
 transform: none;
}

.premium-panel {
 min-height: 500px;
 border-color: var(--outline-variant);
 box-shadow: none;
}

.premium-panel img {
 height: 500px;
 filter: saturate(0.94) contrast(1.03);
}

.hero-panel-summary {
 position: absolute;
 right: 24px;
 bottom: 24px;
 width: min(360px, calc(100% - 48px));
 padding: 1.1rem;
 border: 1px solid rgba(255, 255, 255, 0.35);
 border-left: 4px solid var(--secondary-container);
 border-radius: var(--radius);
 background: rgba(0, 32, 70, 0.92);
}

.hero-panel-summary span {
 display: block;
 margin-bottom: 0.2rem;
 color: #aec7f7;
 font-size: 0.74rem;
 font-weight: 600;
 text-transform: uppercase;
}

.hero-panel-summary strong {
 display: block;
 margin-bottom: 0.75rem;
 color: var(--on-primary);
 font-size: 1.05rem;
}

.hero-panel-summary ul {
 display: grid;
 gap: 0.35rem;
 margin: 0;
 padding: 0;
 color: #d6e3ff;
 list-style: none;
 font-size: 0.9rem;
}

.hero-panel-summary li::before {
 content: "";
 display: inline-block;
 width: 7px;
 height: 7px;
 margin-right: 0.5rem;
 background: var(--secondary-container);
}

.hero-proof-row {
 max-width: 640px;
}

.featured-training-section {
 padding-top: 5.5rem;
}

.featured-course-grid {
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1.5rem;
}

.featured-card {
 min-height: 100%;
}

.featured-card .course-image {
 height: 150px;
}

.featured-card .course-card-body {
 min-height: 390px;
 padding: 1.35rem;
}

.featured-card .course-card-copy p {
 display: -webkit-box;
 min-height: 2.9rem;
 overflow: hidden;
 -webkit-box-orient: vertical;
 -webkit-line-clamp: 2;
}

.simple-meta {
 display: grid;
 gap: 0.7rem;
 padding: 0.95rem 0;
 border-top: 1px solid var(--outline-variant);
 border-bottom: 1px solid var(--outline-variant);
}

.simple-meta div {
 display: grid;
 grid-template-columns: 96px 1fr;
 gap: 0.75rem;
 align-items: baseline;
}

.simple-meta dt {
 color: var(--text-muted);
 font-size: 0.74rem;
 font-weight: 600;
 text-transform: uppercase;
}

.simple-meta dd {
 margin: 0;
 color: var(--on-surface-variant);
 font-size: 0.9rem;
 font-weight: 600;
}

.section-action-row {
 display: flex;
 justify-content: center;
 margin-top: 2rem;
}

.decision-section {
 padding-top: 5.5rem;
 padding-bottom: 5.5rem;
}

.decision-cards {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 1.5rem;
}

.decision-cards article {
 min-height: 300px;
 padding: 2rem;
}

.decision-cards h3 {
 font-size: 1.55rem;
}

.decision-cards p {
 max-width: 520px;
 font-size: 1rem;
}

.employer-card {
 color: var(--on-primary);
 background: var(--primary) !important;
 border-color: var(--primary) !important;
}

.employer-card h3,
.employer-card strong {
 color: var(--on-primary);
}

.employer-card p,
.employer-card li {
 color: #d6e3ff;
}

.employer-card .pathway-number {
 color: var(--primary);
 background: var(--secondary-container);
}

.outcome-section {
 padding-top: 5.5rem;
 padding-bottom: 5.5rem;
}

.refined-outcomes {
 grid-template-columns: 1fr;
 gap: 1rem;
}

.refined-outcomes .outcome-card {
 display: grid;
 grid-template-columns: minmax(220px, 0.32fr) minmax(0, 0.68fr);
 gap: 1.25rem;
 min-height: auto;
 padding: 1.4rem 1.5rem;
 border-top: 1px solid var(--outline-variant);
 border-left: 4px solid var(--primary);
}

.refined-outcomes .outcome-card:nth-child(2) {
 border-left-color: var(--accent-blue);
}

.refined-outcomes .outcome-card:nth-child(3) {
 border-left-color: var(--secondary-container);
}

.refined-outcomes .outcome-card .eyebrow {
 margin-bottom: 0;
}

.refined-outcomes .outcome-card h3 {
 margin-bottom: 0;
}

.refined-outcomes .outcome-card p:last-child {
 margin-bottom: 0;
}

.refined-pathway {
 padding-top: 5.5rem;
 padding-bottom: 5.5rem;
}

.pathway-progress {
 position: relative;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 0;
}

.pathway-progress::before {
 content: "";
 position: absolute;
 top: 32px;
 left: 15%;
 right: 15%;
 height: 2px;
 background: var(--outline-variant);
}

.pathway-progress div {
 position: relative;
 z-index: 1;
 display: grid;
 grid-template-columns: 1fr;
 min-height: 140px;
 margin: 0 0.35rem;
 padding: 1.25rem;
 border: 1px solid var(--outline-variant);
 border-top: 4px solid var(--primary);
 border-left: 1px solid var(--outline-variant);
 background: var(--surface-container-lowest);
}

.pathway-progress strong {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 72px;
 height: 32px;
 margin-bottom: 1rem;
 color: var(--on-primary);
 background: var(--primary);
 font-size: 0.82rem;
}

.pathway-progress span {
 font-weight: 700;
}

.refined-proof {
 padding-top: 5.5rem;
 padding-bottom: 5.5rem;
}

.refined-story-grid {
 grid-template-columns: repeat(4, minmax(0, 1fr));
 gap: 1rem;
}

.refined-story-grid .story-card {
 min-height: 310px;
 padding: 1.3rem;
 border-top: 4px solid var(--primary);
}

.story-card > span {
 display: block;
 margin-bottom: 0.5rem;
 color: var(--secondary);
 font-size: 0.72rem;
 font-weight: 600;
 text-transform: uppercase;
}

.refined-story-grid .story-card h3 {
 min-height: 3rem;
 margin-bottom: 1rem;
}

.refined-story-grid .story-card p {
 display: grid;
 gap: 0.25rem;
 margin-bottom: 0.8rem;
 color: var(--text-muted);
}

.refined-story-grid .story-card strong {
 color: var(--primary);
 font-size: 0.75rem;
 text-transform: uppercase;
}

.refined-why {
 padding-top: 5.5rem;
 padding-bottom: 5.5rem;
}

.refined-why .why-grid {
 gap: 1rem;
}

.refined-why .why-grid article {
 min-height: 190px;
 padding: 1.4rem;
 align-items: flex-start;
}

.refined-why .why-grid h3 {
 margin-bottom: 0.5rem;
 font-size: 1.05rem;
}

.refined-why .why-grid p {
 font-size: 0.94rem;
 line-height: 1.55;
}

@media (max-width: 1120px) {
 .featured-course-grid,
 .refined-story-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }
}

@media (max-width: 900px) {
 .recert-page {
 --gs-margin: 16px;
 }

 .home-hero.stitch-hero {
 padding-top: 3.5rem;
 padding-bottom: 4rem;
 }

 .premium-panel,
 .premium-panel img {
 min-height: 0;
 height: 360px;
 }

 .refined-outcomes .outcome-card,
 .decision-cards,
 .pathway-progress {
 grid-template-columns: 1fr;
 }

 .pathway-progress::before {
 display: none;
 }

 .pathway-progress div {
 margin: 0;
 }
}

@media (max-width: 620px) {
 .featured-course-grid,
 .refined-story-grid {
 grid-template-columns: 1fr;
 }

 .featured-card .course-card-body {
 min-height: auto;
 }

 .simple-meta div {
 grid-template-columns: 1fr;
 gap: 0.15rem;
 }

 .hero-panel-summary {
 left: 16px;
 right: 16px;
 bottom: 16px;
 width: auto;
 }
}

/* Production polish: Northwest Skills / Stitch-style site chrome and interactions */
.icon {
 width: 18px;
 height: 18px;
 flex: 0 0 18px;
 fill: currentColor;
}

.utility-bar {
 background: #f3f6f8;
 border-bottom: 1px solid #d9e0e7;
}

.utility-bar > div {
 width: min(var(--max), calc(100% - 48px));
 min-height: 34px;
 align-items: center;
}

.utility-bar a {
 display: inline-flex;
 align-items: center;
 gap: 0.4rem;
 color: #405466;
 font-size: 0.78rem;
}

.site-header {
 grid-template-columns: auto minmax(380px, 1fr) minmax(280px, 360px) auto;
 gap: 1.1rem;
 min-height: 86px;
 background: #ffffff;
 border-bottom: 1px solid #d9e0e7;
 box-shadow: 0 1px 0 rgba(0, 32, 70, 0.03);
}

.brand {
 min-width: 142px;
}

.brand img {
 width: 144px;
}

.main-nav {
 height: 86px;
 gap: 0.1rem;
}

.main-nav a {
 padding: 0 0.68rem;
 color: #405466;
 font-size: 0.84rem;
 font-weight: 600;
}

.main-nav a.active,
.main-nav a:hover {
 color: var(--primary);
 border-bottom-color: var(--secondary-container);
}

.site-search {
 position: relative;
 z-index: 30;
 display: grid;
 gap: 0.45rem;
 width: 100%;
 max-width: 360px;
}

.search-input-wrap {
 display: flex;
 align-items: center;
 gap: 0.5rem;
 min-height: 42px;
 padding: 0 0.75rem;
 border: 1px solid #c8d1da;
 border-radius: var(--radius);
 background: #ffffff;
 color: #516678;
}

.search-input-wrap input {
 min-height: 40px;
 padding: 0;
 border: 0;
 outline: 0;
 color: var(--on-surface);
 background: transparent;
 font-size: 0.86rem;
}

.search-input-wrap:focus-within {
 border-color: var(--primary);
 box-shadow: 0 0 0 2px rgba(0, 32, 70, 0.12);
}

.search-filters {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0.4rem;
}

.search-filters select {
 min-height: 34px;
 padding: 0.35rem 0.45rem;
 border-color: #c8d1da;
 color: #405466;
 background: #f8fafc;
 font-size: 0.76rem;
 font-weight: 700;
}

.search-results-panel {
 position: absolute;
 top: calc(100% + 0.65rem);
 left: 0;
 right: 0;
 display: grid;
 gap: 0.35rem;
 padding: 0.8rem;
 border: 1px solid #c8d1da;
 border-radius: var(--radius);
 background: #ffffff;
 box-shadow: 0 18px 44px rgba(0, 32, 70, 0.15);
}

.search-results-heading {
 display: flex;
 justify-content: space-between;
 gap: 1rem;
 padding-bottom: 0.45rem;
 border-bottom: 1px solid #e1e7ed;
 color: var(--primary);
 font-size: 0.8rem;
}

.search-results-heading span,
.empty-search {
 color: var(--text-muted);
}

.search-result {
 display: grid;
 gap: 0.12rem;
 padding: 0.65rem;
 border-radius: var(--radius);
}

.search-result:hover {
 background: #f3f6f8;
}

.search-result span {
 color: var(--secondary);
 font-size: 0.68rem;
 font-weight: 600;
 text-transform: uppercase;
}

.search-result strong {
 color: var(--primary);
 font-size: 0.9rem;
}

.search-result small {
 color: var(--text-muted);
 font-size: 0.76rem;
}

.empty-search {
 margin: 0;
 padding: 0.65rem;
 font-size: 0.86rem;
}

.header-actions {
 justify-content: flex-end;
}

.header-link,
.header-cta,
.cart-button,
.icon-button {
 border-radius: var(--radius);
 transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.header-link {
 color: var(--primary);
 background: #ffffff;
 border-color: var(--primary);
}

.header-link:hover {
 background: #f3f6f8;
 border-color: var(--primary-container);
}

.header-cta {
 color: var(--on-secondary);
 background: var(--secondary-container);
 border: 1px solid var(--secondary-container);
 box-shadow: 0 1px 0 rgba(0, 32, 70, 0.08);
}

.header-cta:hover {
 background: var(--secondary-container-hover);
 border-color: var(--secondary-container-hover);
 box-shadow: 0 4px 12px rgba(154, 64, 15, 0.28);
 transform: translateY(-1px);
}

.cart-button:hover,
.icon-button:hover {
 border-color: var(--primary);
 background: var(--surface-container-low);
}

.cart-button,
.icon-button {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 border: 1px solid #c8d1da;
 background: #ffffff;
 color: var(--primary);
 cursor: pointer;
}

.cart-button {
 position: relative;
 width: 42px;
 height: 42px;
}

.cart-button span {
 position: absolute;
 top: 1px;
 right: 0;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 min-width: 17px;
 height: 17px;
 padding: 0 0.2rem;
 border-radius: 999px;
 color: var(--on-secondary);
 background: var(--secondary-container);
 font-size: 0.62rem;
 font-weight: 600;
}

.cart-backdrop {
 position: fixed;
 inset: 0;
 z-index: 1200;
 display: flex;
 justify-content: flex-end;
 background: rgba(0, 20, 42, 0.42);
}

.cart-drawer {
 display: flex;
 flex-direction: column;
 width: min(440px, 100%);
 height: 100dvh;
 max-height: 100dvh;
 padding: 1.4rem;
 overflow: hidden;
 background: #ffffff;
 box-shadow: -18px 0 48px rgba(0, 32, 70, 0.22);
}

.cart-header,
.cart-actions {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 1rem;
}

.cart-header {
 flex: 0 0 auto;
 padding-bottom: 1rem;
 border-bottom: 1px solid #d9e0e7;
}

.cart-header h2,
.cart-header p {
 margin-bottom: 0;
}

.icon-button {
 width: 40px;
 height: 40px;
}

.cart-items {
 display: grid;
 flex: 1 1 auto;
 align-content: start;
 gap: 0.9rem;
 min-height: 0;
 overflow-y: auto;
 overscroll-behavior: contain;
 padding: 1.2rem 0;
 padding-right: 0.25rem;
 scrollbar-gutter: stable;
}

.cart-item {
 display: grid;
 grid-template-columns: 92px minmax(0, 1fr) auto;
 gap: 0.8rem;
 align-items: start;
 padding: 0.85rem;
 border: 1px solid #d9e0e7;
 border-radius: var(--radius);
 background: #f8fafc;
}

.cart-item img {
 width: 92px;
 height: 72px;
 object-fit: cover;
 border-radius: var(--radius);
}

.cart-item h3 {
 margin-bottom: 0.25rem;
 font-size: 1rem;
}

.cart-item p {
 margin-bottom: 0.12rem;
 font-size: 0.82rem;
}

.cart-item button {
 border: 0;
 color: var(--primary);
 background: transparent;
 font-size: 0.78rem;
 font-weight: 600;
 cursor: pointer;
}


.cart-item-main {
 min-width: 0;
}

.cart-item-price-row {
 display: grid;
 align-items: start;
 gap: 0.12rem;
 margin-top: 0.18rem;
 font-size: 0.8rem;
}

.cart-item-price {
 color: var(--primary);
 font-weight: 600;
 white-space: nowrap;
}

.cart-line-subtotal {
 display: block;
 align-items: baseline;
 color: var(--text-muted);
 white-space: normal;
}

.cart-line-subtotal::before {
 content: none;
}

.cart-item-controls {
 display: grid;
 gap: 0.6rem;
 justify-items: end;
}

.quantity-stepper {
 display: inline-flex;
 align-items: center;
 overflow: hidden;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
}

.quantity-stepper button {
 width: 30px;
 height: 30px;
 border: 0;
 color: var(--primary);
 background: var(--surface-container-lowest);
 font-size: 1rem;
 font-weight: 600;
 line-height: 1;
 cursor: pointer;
}

.quantity-stepper button:hover:not(:disabled) {
 background: var(--surface-container-low);
}

.quantity-stepper button:disabled {
 color: var(--outline);
 cursor: not-allowed;
}

.quantity-stepper span {
 min-width: 34px;
 color: var(--primary);
 font-size: 0.86rem;
 font-weight: 600;
 text-align: center;
}

.cart-remove-button {
 border: 0;
 color: var(--primary);
 background: transparent;
 font-size: 0.78rem;
 font-weight: 600;
 cursor: pointer;
}

.cart-checkout-summary {
 display: grid;
 flex: 0 0 auto;
 gap: 0.9rem;
 padding: 1rem 0;
 border-top: 1px solid #d9e0e7;
}

.cart-coupon-form {
 display: grid;
 gap: 0.45rem;
}

.cart-coupon-form label {
 color: var(--text-muted);
 font-size: 0.78rem;
 font-weight: 600;
}

.cart-coupon-form > div {
 display: grid;
 grid-template-columns: minmax(0, 1fr) auto;
 gap: 0.55rem;
}

.cart-coupon-form input {
 width: 100%;
 min-height: 42px;
 padding: 0.68rem 0.75rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 color: var(--on-surface);
 background: var(--surface-container-lowest);
 font: inherit;
}

.cart-coupon-form input:focus {
 outline: 2px solid rgba(0, 82, 155, 0.2);
 border-color: var(--primary);
}

.cart-coupon-form button {
 min-height: 42px;
 padding: 0.65rem 0.9rem;
 border: 1px solid var(--primary);
 border-radius: var(--radius);
 color: var(--primary);
 background: var(--surface-container-lowest);
 font-weight: 600;
 cursor: pointer;
}

.cart-coupon-form button:hover {
 background: var(--surface-container-low);
}

.cart-coupon-form p,
.cart-summary-note,
.cart-tax-note {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.82rem;
 line-height: 1.35;
}

.cart-total-row {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 1rem;
 padding-top: 0.1rem;
 color: var(--primary);
}

.cart-total-row span {
 font-weight: 600;
}

.cart-total-row strong {
 font-size: 1.2rem;
 font-weight: 600;
}
.empty-cart {
 display: flex;
 flex: 1;
 flex-direction: column;
 align-items: center;
 justify-content: flex-start;
 gap: 0.45rem;
 min-height: 260px;
 text-align: center;
}

.empty-cart h3,
.empty-cart p {
 margin: 0;
}

.empty-cart p {
 max-width: 280px;
}

.cart-actions {
 flex: 0 0 auto;
 padding-top: 1rem;
 border-top: 1px solid #d9e0e7;
}

.button.disabled {
 opacity: 0.55;
 pointer-events: none;
}

.site-footer {
 align-items: flex-start;
}

.footer-brand {
 max-width: 380px;
}

.footer-brand strong,
.site-footer h3 {
 color: #ffffff;
}

.footer-columns {
 display: grid;
 grid-template-columns: repeat(3, minmax(150px, 1fr));
 gap: 2rem;
}

.footer-columns div {
 display: grid;
 gap: 0.45rem;
}

.footer-columns h3 {
 margin-bottom: 0.35rem;
 font-size: 0.9rem;
 text-transform: uppercase;
}

.footer-columns a {
 color: #d6e3ff;
 font-size: 0.9rem;
}

.footer-columns a:hover {
 color: #ffffff;
}

.request-form {
 padding: 1.25rem;
 border: 1px solid #d9e0e7;
 border-radius: var(--radius);
 background: #ffffff;
}

.request-summary {
 padding: 1.35rem;
 border: 1px solid #c8d1da;
 border-left: 4px solid var(--primary);
 border-radius: var(--radius);
 background: #f8fafc;
}

.request-summary h3 {
 margin-bottom: 0.65rem;
}

.request-summary p:last-child,
.request-summary ul:last-child {
 margin-bottom: 0;
}

.request-summary ul {
 display: grid;
 gap: 0.45rem;
 margin-top: 1rem;
 padding-left: 1.1rem;
 color: var(--text-muted);
}

.route-panel {
 border-left: 4px solid var(--primary);
}

.route-panel .result-list li {
 grid-template-columns: minmax(130px, 0.36fr) 1fr;
}

.home-hero.stitch-hero {
 width: 100%;
 max-width: none;
 margin: 0;
 padding-left: max(1.5rem, calc((100vw - var(--max)) / 2));
 padding-right: max(1.5rem, calc((100vw - var(--max)) / 2));
 background: #ffffff;
 border-bottom: 1px solid #d9e0e7;
}

.home-hero-content h1 {
 color: #06264c;
}

.hero-proof-row span {
 position: relative;
 padding-left: 0.95rem;
}

.hero-proof-row span::before {
 content: "";
 position: absolute;
 left: 0;
 top: 0.5rem;
 width: 6px;
 height: 6px;
 background: var(--secondary-container);
}

.premium-panel {
 background: #eef3f7;
}

.premium-panel::before {
 content: "";
 position: absolute;
 inset: 0;
 border: 12px solid rgba(255, 255, 255, 0.5);
 pointer-events: none;
}

/* Flat, border-only treatment: alerts, panels, list items, tables (a different job). */
.related-box,
.quiet-panel,
.warning-panel,
.callout-panel,
.submitted-card,
.instructor-card,
.info-tile,
.faq-list article,
.pathway-step-card,
.comparison-table,
.why-grid article {
 box-shadow: none;
}

/* Elevated grid content cards: one treatment shared with product/category cards. */
.course-card,
.pathway-blocks article,
.story-card,
.benefit-grid article,
.three-panel-grid article,
.outcome-card,
.mini-course-grid article {
 box-shadow: var(--shadow-soft);
}

.course-card:hover {
 border-color: #9eb1c3;
 box-shadow: 0 8px 22px rgba(0, 32, 70, 0.08);
}

.featured-card .course-card-body {
 min-height: 360px;
}

.card-actions .button.primary,
.card-actions .button.cta {
 background: var(--primary);
 color: var(--on-primary);
}

.card-actions .button.primary:hover,
.card-actions .button.cta:hover {
 background: var(--primary-container);
}

.featured-card:nth-child(4) .card-actions .button.cta {
 color: var(--on-secondary);
 background: var(--secondary-container);
}

.featured-card:nth-child(4) .card-actions .button.cta:hover {
 background: var(--secondary-container-hover);
}

.section-header h2 {
 max-width: 780px;
}

.grant-support-strip {
 display: flex;
 justify-content: space-between;
 gap: 2rem;
 align-items: center;
 padding: 2rem;
 border: 1px solid #d9e0e7;
 border-left: 4px solid var(--secondary-container);
 border-radius: var(--radius);
 background: #ffffff;
}

.grant-support-strip div {
 max-width: 780px;
}

.grant-support-strip p:last-child {
 margin-bottom: 0;
}

@media (max-width: 1240px) {
 .site-header {
 grid-template-columns: auto 1fr;
 }

 .brand {
 order: 1;
 }

 .header-actions {
 order: 2;
 justify-self: end;
 }

 .main-nav {
 order: 3;
 grid-column: 1 / -1;
 height: auto;
 min-height: 42px;
 }

 .site-search {
 order: 4;
 grid-column: 1 / -1;
 max-width: none;
 }
}

@media (max-width: 900px) {
 .recert-page {
 --gs-margin: 16px;
 }

 .home-hero.stitch-hero {
 width: 100%;
 padding-left: 1rem;
 padding-right: 1rem;
 }

 .footer-columns {
 grid-template-columns: 1fr;
 }

 .cart-item {
 grid-template-columns: 82px minmax(0, 1fr);
 }

 .cart-remove-button {
 grid-column: 2;
 justify-self: start;
 }

 .cart-item-controls {
 grid-column: 2;
 justify-items: start;
 }

 .cart-coupon-form > div {
 grid-template-columns: 1fr;
 }

 .grant-support-strip {
 flex-direction: column;
 align-items: flex-start;
 }
}

@media (max-width: 620px) {
 .site-header {
 padding-left: 1rem;
 padding-right: 1rem;
 }

 .header-actions {
 width: 100%;
 justify-self: stretch;
 }

 .header-link,
 .header-cta {
 flex: 1 1 0;
 }

 .cart-button {
 flex: 0 0 42px;
 }

 .main-nav {
 overflow-x: auto;
 flex-wrap: nowrap;
 padding-bottom: 0.25rem;
 }

 .main-nav a {
 flex: 0 0 auto;
 }

 .search-filters,
 .route-panel .result-list li {
 grid-template-columns: 1fr;
 }

 .cart-drawer {
 padding: 1rem;
 }

 .cart-actions {
 flex-direction: column;
 align-items: stretch;
 }
}

/* Header correction: two-tier provider navigation to prevent overlap */
.site-header {
 grid-template-columns: auto minmax(320px, 1fr) auto;
 grid-template-rows: auto auto;
 row-gap: 0.55rem;
 column-gap: 1.25rem;
 min-height: 124px;
 padding-top: 0.75rem;
 padding-bottom: 0;
}

.brand {
 grid-column: 1;
 grid-row: 1;
}

.site-search {
 grid-column: 2;
 grid-row: 1;
 max-width: 560px;
 justify-self: center;
}

.header-actions {
 grid-column: 3;
 grid-row: 1;
}

.main-nav {
 grid-column: 1 / -1;
 grid-row: 2;
 height: 44px;
 min-height: 44px;
 justify-content: flex-start;
 border-top: 1px solid #edf1f5;
}

.main-nav a {
 min-height: 44px;
 padding: 0 1rem;
}

@media (max-width: 1240px) {
 .site-header {
 grid-template-columns: auto 1fr;
 grid-template-rows: auto auto auto;
 padding-bottom: 0;
 }

 .brand {
 order: 0;
 grid-column: 1;
 grid-row: 1;
 }

 .header-actions {
 order: 0;
 grid-column: 2;
 grid-row: 1;
 justify-self: end;
 }

 .site-search {
 order: 0;
 grid-column: 1 / -1;
 grid-row: 2;
 max-width: none;
 justify-self: stretch;
 }

 .main-nav {
 order: 0;
 grid-column: 1 / -1;
 grid-row: 3;
 }
}

@media (max-width: 620px) {
 .site-header {
 grid-template-columns: 1fr;
 grid-template-rows: auto auto auto auto;
 min-height: 0;
 }

 .brand,
 .header-actions,
 .site-search,
 .main-nav {
 grid-column: 1;
 }

 .brand {
 grid-row: 1;
 }

 .header-actions {
 grid-row: 2;
 }

 .site-search {
 grid-row: 3;
 }

 .main-nav {
 grid-row: 4;
 }
}

@media (max-width: 620px) {
 .main-nav {
 scrollbar-width: none;
 -ms-overflow-style: none;
 }

 .main-nav::-webkit-scrollbar {
 display: none;
 }
}

/* Stitch-first homepage rebuild */
:root {
 --stitch-max: 1280px;
 --stitch-gutter: 40px;
}

.utility-bar {
 background: var(--surface-white);
 border-bottom: 0;
}

.utility-bar > div {
 width: min(var(--stitch-max), calc(100% - 80px));
 min-height: 34px;
 padding: 0;
 justify-content: flex-end;
 align-items: center;
 gap: 1.5rem;
}

.utility-bar a {
 display: inline-flex;
 align-items: center;
 gap: 0.35rem;
 color: var(--on-surface-variant);
 font-size: 0.8rem;
 font-weight: 600;
}

.site-header {
 position: sticky;
 top: 0;
 z-index: 50;
 display: grid;
 grid-template-columns: auto minmax(420px, 1fr) minmax(240px, 310px) auto;
 grid-template-rows: auto;
 align-items: center;
 gap: 1rem;
 min-height: 80px;
 padding: 0 max(var(--stitch-gutter), calc((100vw - var(--stitch-max)) / 2));
 background: var(--surface-white);
 border-bottom: 0;
 box-shadow: none;
}

.brand,
.main-nav,
.site-search,
.header-actions {
 grid-row: 1;
}

.brand {
 grid-column: 1;
 min-width: 150px;
}

.brand img {
 width: 150px;
}

.main-nav {
 grid-column: 2;
 height: 80px;
 min-height: 80px;
 justify-content: flex-start;
 gap: 0.15rem;
 border-top: 0;
 overflow: visible;
}

.main-nav a {
 min-height: 80px;
 padding: 0 0.62rem;
 border-bottom: 2px solid transparent;
 color: var(--on-surface-variant);
 font-size: 0.86rem;
 font-weight: 700;
}

.main-nav a.active,
.main-nav a:hover {
 color: var(--primary);
 border-bottom-color: var(--secondary-container);
}

.site-search {
 grid-column: 3;
 max-width: 310px;
 justify-self: stretch;
}

.search-filters {
 display: none;
}

.search-input-wrap {
 min-height: 44px;
 border-color: var(--outline-variant);
 background: var(--surface-container-lowest);
}

.search-input-wrap input {
 min-height: 42px;
 font-size: 0.86rem;
}

.search-results-panel {
 top: calc(100% + 0.55rem);
}

.header-actions {
 grid-column: 4;
 justify-self: end;
 flex-wrap: nowrap;
 gap: 0.5rem;
}

.portal-login {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 flex: 0 0 42px;
 width: 42px;
 min-height: 42px;
 padding: 0;
 border-radius: var(--radius);
 color: var(--primary);
 text-decoration: none;
 transition: color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.mobile-portal-login .context-lineup-icon,
.footer-utility-links .context-lineup-icon {
 width: 18px;
 height: 18px;
 flex: 0 0 18px;
}

.portal-login .context-lineup-icon {
 width: 20px;
 height: 20px;
}

.portal-login:hover,
.portal-login:focus-visible {
 color: var(--secondary-container);
 background: var(--surface-container-low);
 transform: translateY(-1px);
 outline: none;
}

.header-link,
.header-cta {
 min-height: 42px;
 padding: 0.65rem 0.85rem;
 border-radius: var(--radius);
 font-size: 0.84rem;
 font-weight: 600;
}

.header-link {
 color: var(--primary);
 border: 1px solid var(--primary);
 background: var(--surface-container-lowest);
}

.header-cta {
 color: var(--on-secondary);
 background: var(--secondary-container);
 border: 1px solid var(--secondary-container);
}

.cart-button {
 width: 42px;
 height: 42px;
 border-color: transparent;
 background: transparent;
}

.cart-button:hover,
.cart-button:focus-visible {
 border-color: transparent;
 color: var(--secondary-container);
 background: var(--surface-container-low);
 transform: translateY(-1px);
}

.stitch-homepage {
 background: var(--surface-container-lowest);
}

.stitch-container {
 width: min(var(--stitch-max), calc(100% - 80px));
 margin: 0 auto;
}

.stitch-section {
 padding: var(--section-y) 0;
}

.stitch-section-heading {
 max-width: 760px;
 margin-bottom: 3rem;
}

.stitch-section-heading h2,
.stitch-grant-card h2,
.stitch-final-cta h2 {
 color: var(--primary);
 font-size: 2rem;
 font-weight: 700;
 line-height: 1.25;
 letter-spacing: 0;
 margin-bottom: 0.75rem;
}

.stitch-section-heading p,
.stitch-grant-card p,
.stitch-final-cta p {
 color: var(--text-muted);
 font-size: 1rem;
 line-height: 1.55;
 margin-bottom: 0;
}

.stitch-heading-row {
 display: flex;
 align-items: flex-end;
 justify-content: space-between;
 gap: 2rem;
 max-width: none;
}

.stitch-centered-heading {
 margin-left: auto;
 margin-right: auto;
 text-align: center;
}

.stitch-kicker {
 color: var(--secondary);
 font-size: 0.78rem;
 font-weight: 600;
 text-transform: uppercase;
 margin-bottom: 0;
}

.stitch-hero-section {
 padding: 4rem 0 6rem;
 background: var(--surface-container-lowest);
 border-bottom: 1px solid var(--surface-container);
}

.stitch-hero-grid {
 display: grid;
 grid-template-columns: minmax(0, 1fr) minmax(420px, 0.92fr);
 gap: 3rem;
 align-items: center;
}

.stitch-hero-copy {
 display: grid;
 gap: 1.75rem;
}

.stitch-hero-copy h1 {
 max-width: 720px;
 margin-bottom: 0;
 color: var(--primary);
 font-size: 3rem;
 font-weight: 700;
 line-height: 1.16;
 letter-spacing: 0;
}

.stitch-lead {
 max-width: 620px;
 margin-bottom: 0;
 color: var(--text-muted);
 font-size: 1.125rem;
 line-height: 1.6;
}

.stitch-hero-actions,
.stitch-inline-actions,
.stitch-final-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 1rem;
 align-items: center;
}

.stitch-homepage .button {
 min-height: 48px;
 padding: 0.86rem 1.35rem;
 border-radius: var(--radius);
 font-size: 0.9rem;
 font-weight: 600;
}

.stitch-homepage .button.primary {
 color: var(--on-primary);
 background: var(--primary);
 border-color: var(--primary);
}

.stitch-homepage .button.cta {
 color: var(--on-secondary);
 background: var(--secondary-container);
 border-color: var(--secondary-container);
}

.stitch-homepage .button.secondary {
 color: var(--primary);
 background: var(--surface-container-lowest);
 border-color: var(--primary);
}

.stitch-homepage .button.text {
 color: var(--primary);
 background: transparent;
 border-color: transparent;
 padding-left: 0.25rem;
 padding-right: 0.25rem;
}

.stitch-hero-meta {
 display: flex;
 flex-wrap: wrap;
 gap: 1rem 1.5rem;
 padding-top: 1.25rem;
 border-top: 1px solid var(--surface-container);
}

.stitch-hero-meta div {
 display: inline-flex;
 align-items: center;
 gap: 0.5rem;
 color: var(--text-muted);
 font-size: 0.9rem;
 font-weight: 700;
}

.stitch-hero-meta .icon {
 color: var(--primary);
}

.stitch-hero-visual {
 position: relative;
 min-height: 500px;
 overflow: hidden;
 border: 1px solid var(--surface-container);
 border-radius: var(--radius-lg);
 background: var(--surface-container);
}

.stitch-hero-visual img {
 width: 100%;
 height: 500px;
 object-fit: cover;
 filter: saturate(0.96) contrast(1.02);
}

.stitch-hero-visual::after {
 content: "";
 position: absolute;
 inset: auto 0 0 0;
 height: 45%;
 background: linear-gradient(to top, rgba(0, 32, 70, 0.4), rgba(0, 32, 70, 0));
}

.stitch-hero-service-card {
 position: absolute;
 right: 1.5rem;
 bottom: 1.5rem;
 z-index: 1;
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0.55rem;
 width: min(430px, calc(100% - 3rem));
 padding: 1rem;
 border: 1px solid rgba(255, 255, 255, 0.42);
 border-left: 4px solid var(--secondary-container);
 border-radius: var(--radius);
 background: rgba(0, 32, 70, 0.92);
}

.stitch-hero-service-card span {
 color: var(--on-primary);
 font-size: 0.85rem;
 font-weight: 700;
}

.stitch-required-section,
.stitch-outcomes-section,
.stitch-why-section,
.stitch-final-cta {
 background: var(--surface-container-lowest);
}

.stitch-course-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1.5rem;
}

.stitch-course-card {
 display: flex;
 flex-direction: column;
 min-height: 100%;
 overflow: hidden;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
 transition: border-color 160ms ease, box-shadow 160ms ease;
}

.stitch-course-card:hover {
 border-color: #9eb1c3;
 box-shadow: 0 8px 18px rgba(0, 32, 70, 0.06);
}

.stitch-course-image {
 position: relative;
 display: block;
 height: 170px;
 overflow: hidden;
 border-bottom: 1px solid var(--surface-container);
 background: var(--surface-container);
}

.stitch-course-image img {
 width: 100%;
 height: 100%;
 object-fit: cover;
}

.stitch-course-image span {
 position: absolute;
 left: 1rem;
 top: 1rem;
 padding: 0.32rem 0.55rem;
 border-radius: var(--radius);
 color: var(--primary);
 background: rgba(255, 255, 255, 0.94);
 font-size: 0.76rem;
 font-weight: 600;
}

.stitch-course-body {
 display: grid;
 gap: 1.25rem;
 flex: 1;
 padding: 1.5rem;
}

.stitch-course-heading h3 {
 margin-bottom: 0.45rem;
 color: var(--primary);
 font-size: 1.35rem;
 font-weight: 650;
 line-height: 1.25;
}

.stitch-course-heading p {
 min-height: 3rem;
 margin-bottom: 0;
 color: var(--text-muted);
 font-size: 0.93rem;
 line-height: 1.55;
}

.stitch-course-meta {
 display: grid;
 gap: 0.65rem;
 margin: 0;
 padding-top: 1rem;
 border-top: 1px solid var(--surface-container);
}

.stitch-course-meta div {
 display: grid;
 grid-template-columns: 96px minmax(0, 1fr);
 gap: 0.85rem;
 align-items: baseline;
}

.stitch-course-meta dt {
 color: var(--text-muted);
 font-size: 0.72rem;
 font-weight: 600;
 text-transform: uppercase;
}

.stitch-course-meta dd {
 margin: 0;
 color: var(--on-surface);
 font-size: 0.88rem;
 font-weight: 650;
 line-height: 1.35;
}

.stitch-course-actions {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 0.75rem;
 padding: 1rem;
 border-top: 1px solid var(--surface-container);
 background: var(--surface);
}

.stitch-course-actions .button {
 width: 100%;
 min-height: 42px;
 padding: 0.68rem 0.75rem;
 font-size: 0.84rem;
}

.stitch-decision-section,
.stitch-proof-section,
.stitch-grant-section {
 background: var(--surface-container-low);
 border-top: 1px solid var(--surface-container);
 border-bottom: 1px solid var(--surface-container);
}

.stitch-decision-grid {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 1.5rem;
}

.stitch-decision-card {
 display: grid;
 gap: 1.25rem;
 min-height: 360px;
 padding: 2rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
}

.stitch-decision-card.employer {
 color: var(--on-primary);
 background: var(--primary);
 border-color: var(--primary);
}

.stitch-decision-icon {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 56px;
 height: 56px;
 border-radius: var(--radius);
 color: var(--on-primary);
 background: var(--accent-blue);
}

.stitch-decision-card.employer .stitch-decision-icon {
 color: var(--primary);
 background: var(--secondary-container);
}

.stitch-decision-card h3 {
 margin-bottom: 0;
 color: var(--primary);
 font-size: 1.6rem;
}

.stitch-decision-card.employer h3,
.stitch-decision-card.employer li {
 color: var(--on-primary);
}

.stitch-decision-card ul {
 display: grid;
 gap: 0.6rem;
 margin: 0;
 padding-left: 1.1rem;
 color: var(--text-muted);
}

.stitch-decision-card .button {
 justify-self: start;
 align-self: end;
}

.stitch-outcome-grid,
.stitch-proof-grid,
.stitch-why-grid {
 display: grid;
 gap: 1.5rem;
}

.stitch-outcome-grid {
 grid-template-columns: repeat(3, minmax(0, 1fr));
}

.stitch-outcome-card,
.stitch-proof-card,
.stitch-why-grid article {
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
}

.stitch-outcome-card {
 display: grid;
 justify-items: center;
 gap: 1rem;
 min-height: 280px;
 padding: 2rem;
 text-align: center;
}

.stitch-outcome-icon,
.stitch-why-grid .icon {
 display: inline-flex;
 width: 56px;
 height: 56px;
 padding: 0.9rem;
 border-radius: var(--radius);
 color: var(--primary);
 background: var(--surface-container);
}

.stitch-outcome-card h3,
.stitch-proof-card h3,
.stitch-why-grid h3 {
 margin-bottom: 0;
 color: var(--primary);
}

.stitch-outcome-card p,
.stitch-why-grid p {
 margin-bottom: 0;
 color: var(--text-muted);
}

.stitch-pathway-section {
 background: var(--surface-container-lowest);
}

.stitch-pathway-layout {
 display: grid;
 grid-template-columns: minmax(0, 0.82fr) minmax(520px, 1fr);
 gap: 3rem;
 align-items: center;
}

.stitch-pathway-steps {
 position: relative;
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1rem;
}

.stitch-pathway-steps::before {
 content: "";
 position: absolute;
 top: 2.15rem;
 left: 16%;
 right: 16%;
 height: 2px;
 background: var(--outline-variant);
}

.stitch-pathway-steps article {
 position: relative;
 z-index: 1;
 display: grid;
 gap: 0.75rem;
 min-height: 220px;
 padding: 1.3rem;
 border: 1px solid var(--outline-variant);
 border-top: 4px solid var(--primary);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
}

.stitch-pathway-steps span {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 44px;
 height: 44px;
 color: var(--on-secondary);
 background: var(--secondary-container);
 font-weight: 600;
}

.stitch-pathway-steps strong {
 color: var(--primary);
 font-size: 0.78rem;
 font-weight: 600;
 text-transform: uppercase;
}

.stitch-pathway-steps h3,
.stitch-pathway-steps p {
 margin-bottom: 0;
}

.stitch-proof-grid {
 grid-template-columns: repeat(4, minmax(0, 1fr));
}

.stitch-proof-card {
 display: grid;
 gap: 1.1rem;
 min-height: 380px;
 padding: 1.45rem;
 border-top: 4px solid var(--primary);
}

.stitch-proof-card > span {
 color: var(--secondary);
 font-size: 0.72rem;
 font-weight: 600;
 text-transform: uppercase;
}

.stitch-proof-card dl {
 display: grid;
 gap: 0.9rem;
 margin: 0;
}

.stitch-proof-card dt {
 color: var(--primary);
 font-size: 0.72rem;
 font-weight: 600;
 text-transform: uppercase;
}

.stitch-proof-card dd {
 margin: 0.25rem 0 0;
 color: var(--text-muted);
 font-size: 0.91rem;
 line-height: 1.5;
}

.stitch-grant-section {
 padding: 4rem 0;
}

.stitch-grant-card {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 2rem;
 padding: 2rem;
 border: 1px solid var(--outline-variant);
 border-left: 4px solid var(--secondary-container);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
}

.stitch-grant-card div {
 max-width: 820px;
}

.stitch-why-grid {
 grid-template-columns: repeat(4, minmax(0, 1fr));
}

.stitch-why-grid article {
 display: grid;
 gap: 1rem;
 min-height: 245px;
 padding: 1.6rem;
 text-align: center;
 justify-items: center;
}

.stitch-final-cta {
 padding: 6rem 0;
 text-align: center;
}

.stitch-final-cta .stitch-container {
 max-width: 760px;
}

.stitch-final-actions {
 justify-content: center;
 margin-top: 2rem;
}

.site-footer {
 display: block;
 padding: 4rem max(var(--stitch-gutter), calc((100vw - var(--stitch-max)) / 2)) 2rem;
 background: var(--primary);
 border-top: 4px solid var(--secondary-container);
}

.footer-grid {
 display: grid;
 grid-template-columns: minmax(260px, 0.8fr) minmax(0, 1.2fr);
 gap: 3rem;
 width: min(var(--stitch-max), 100%);
 margin: 0 auto 3rem;
}

.footer-brand strong {
 display: block;
 margin-bottom: 1rem;
 color: var(--on-primary);
 font-size: 1.35rem;
}

.footer-brand p {
 color: var(--inverse-primary);
}

.footer-utility-links {
 display: grid;
 gap: 0.6rem;
 margin-top: 1.25rem;
}

.footer-utility-links a,
.footer-columns a {
 display: inline-flex;
 align-items: center;
 gap: 0.45rem;
 color: var(--inverse-primary);
}

.footer-columns {
 display: grid;
 grid-template-columns: repeat(4, minmax(0, 1fr));
 gap: 1.5rem;
}

.footer-columns div {
 display: grid;
 align-content: start;
 gap: 0.65rem;
}

.footer-columns h3 {
 margin-bottom: 0.35rem;
 color: var(--on-primary);
 font-size: 0.88rem;
 font-weight: 600;
 text-transform: uppercase;
}

.footer-columns a:hover,
.footer-utility-links a:hover {
 color: var(--on-primary);
}

.footer-legal {
 width: min(var(--stitch-max), 100%);
 margin: 0 auto;
 padding-top: 1.6rem;
 border-top: 1px solid rgba(174, 199, 247, 0.35);
 color: var(--inverse-primary);
 font-size: 0.9rem;
}

@media (max-width: 1240px) {
 .site-header {
 grid-template-columns: auto minmax(0, 1fr) auto;
 grid-template-rows: auto auto;
 min-height: 112px;
 padding-top: 0.75rem;
 padding-bottom: 0;
 }

 .brand {
 grid-column: 1;
 grid-row: 1;
 }

 .site-search {
 grid-column: 2;
 grid-row: 1;
 max-width: none;
 }

 .header-actions {
 grid-column: 3;
 grid-row: 1;
 }

 .main-nav {
 grid-column: 1 / -1;
 grid-row: 2;
 height: 44px;
 min-height: 44px;
 border-top: 1px solid var(--surface-container);
 }

 .main-nav a {
 min-height: 44px;
 }

 .stitch-course-grid,
 .stitch-proof-grid,
 .stitch-why-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }

 .stitch-pathway-layout {
 grid-template-columns: 1fr;
 }
}

@media (max-width: 900px) {
 .recert-page {
 --gs-margin: 16px;
 }

 :root {
 --stitch-gutter: 16px;
 }

 .utility-bar > div,
 .stitch-container {
 width: min(var(--stitch-max), calc(100% - 32px));
 }

 .site-header {
 grid-template-columns: 1fr;
 grid-template-rows: auto auto auto auto;
 min-height: 0;
 padding: 0.85rem 1rem 0;
 }

 .brand,
 .site-search,
 .header-actions,
 .main-nav {
 grid-column: 1;
 }

 .brand {
 grid-row: 1;
 }

 .header-actions {
 grid-row: 2;
 justify-self: stretch;
 width: 100%;
 }

 .header-link,
 .header-cta {
 flex: 1 1 0;
 }

 .site-search {
 grid-row: 3;
 }

 .main-nav {
 grid-row: 4;
 overflow-x: auto;
 flex-wrap: nowrap;
 height: 44px;
 min-height: 44px;
 scrollbar-width: none;
 }

 .main-nav::-webkit-scrollbar {
 display: none;
 }

 .main-nav a {
 flex: 0 0 auto;
 }

 .stitch-section,
 .stitch-final-cta {
 padding: 4rem 0;
 }

 .stitch-hero-section {
 padding: 3.5rem 0 4rem;
 }

 .stitch-hero-grid,
 .stitch-decision-grid,
 .stitch-outcome-grid,
 .footer-grid,
 .footer-columns {
 grid-template-columns: 1fr;
 }

 .stitch-hero-copy h1 {
 font-size: 2.15rem;
 line-height: 1.18;
 }

 .stitch-lead {
 font-size: 1rem;
 }

 .stitch-hero-visual,
 .stitch-hero-visual img {
 min-height: 0;
 height: 360px;
 }

 .stitch-heading-row,
 .stitch-grant-card {
 align-items: flex-start;
 flex-direction: column;
 }

 .stitch-pathway-steps {
 grid-template-columns: 1fr;
 }

 .stitch-pathway-steps::before {
 display: none;
 }

 .site-footer {
 padding-left: 1rem;
 padding-right: 1rem;
 }
}

@media (max-width: 620px) {
 .stitch-course-grid,
 .stitch-proof-grid,
 .stitch-why-grid {
 grid-template-columns: 1fr;
 }

 .stitch-course-meta div,
 .stitch-course-actions,
 .stitch-hero-service-card {
 grid-template-columns: 1fr;
 }

 .stitch-homepage .button,
 .stitch-decision-card .button,
 .stitch-grant-card .button {
 width: 100%;
 }

 .stitch-hero-actions,
 .stitch-inline-actions,
 .stitch-final-actions {
 align-items: stretch;
 }
}

/* Header fit refinement for full nav plus search/cart */
.site-header {
 grid-template-columns: auto minmax(520px, 1fr) minmax(250px, 270px) auto;
 gap: 0.75rem;
 padding-left: max(2rem, calc((100vw - 1360px) / 2));
 padding-right: max(2rem, calc((100vw - 1360px) / 2));
}

.brand {
 min-width: 148px;
}

.main-nav a {
 padding-left: 0.42rem;
 padding-right: 0.42rem;
 font-size: 0.8rem;
}

.site-search {
 max-width: 270px;
}

.header-link,
.header-cta {
 padding-left: 0.72rem;
 padding-right: 0.72rem;
 font-size: 0.8rem;
}

@media (max-width: 1320px) {
 .site-header {
 grid-template-columns: auto minmax(0, 1fr) auto;
 grid-template-rows: auto auto;
 min-height: 112px;
 padding-top: 0.75rem;
 padding-bottom: 0;
 }

 .brand {
 grid-column: 1;
 grid-row: 1;
 }

 .site-search {
 grid-column: 2;
 grid-row: 1;
 max-width: none;
 }

 .header-actions {
 grid-column: 3;
 grid-row: 1;
 }

 .main-nav {
 grid-column: 1 / -1;
 grid-row: 2;
 height: 44px;
 min-height: 44px;
 border-top: 1px solid var(--surface-container);
 }

 .main-nav a {
 min-height: 44px;
 padding-left: 0.8rem;
 padding-right: 0.8rem;
 font-size: 0.86rem;
 }
}

/* Final mobile header correction */
@media (max-width: 900px) {
 .recert-page {
 --gs-margin: 16px;
 }

 html,
 body {
 overflow-x: clip;
 }

 .site-shell {
 overflow-x: visible;
 }

 .site-header {
 grid-template-columns: minmax(0, 1fr);
 grid-template-rows: auto auto auto auto;
 gap: 0.65rem;
 min-height: 0;
 padding: 0.85rem 1rem 0;
 overflow: hidden;
 }

 .brand {
 grid-column: 1;
 grid-row: 1;
 min-width: 0;
 }

 .brand img {
 width: 150px;
 }

 .site-search {
 grid-column: 1;
 grid-row: 2;
 width: 100%;
 max-width: none;
 }

 .search-input-wrap {
 width: 100%;
 }

 .header-actions {
 grid-column: 1;
 grid-row: 3;
 justify-self: stretch;
 width: 100%;
 }

 .header-link,
 .header-cta {
 flex: 1 1 0;
 min-width: 0;
 }

 .cart-button {
 flex: 0 0 42px;
 }

 .main-nav {
 grid-column: 1;
 grid-row: 4;
 width: 100%;
 height: 44px;
 min-height: 44px;
 overflow-x: auto;
 overflow-y: hidden;
 flex-wrap: nowrap;
 border-top: 1px solid var(--surface-container);
 scrollbar-width: none;
 }

 .main-nav::-webkit-scrollbar {
 display: none;
 }

 .main-nav a {
 flex: 0 0 auto;
 min-height: 44px;
 padding-left: 0.75rem;
 padding-right: 0.75rem;
 font-size: 0.84rem;
 }
}

/* Ensure sticky site chrome is always opaque */
.utility-bar,
.site-header {
 background-color: #ffffff;
}

.utility-bar {
 background-color: var(--surface-white);
}

/* Course directory and live-site content pages */
:root {
 --inverse-primary: #d6e3ff;
}

.search-all-link {
 display: block;
 padding: 0.85rem 1rem;
 color: var(--primary);
 font-size: 0.86rem;
 font-weight: 600;
 border-top: 1px solid var(--surface-container);
 background: var(--surface-container-lowest);
}

.directory-page,
.site-page {
 background: var(--surface-container-lowest);
}

.directory-hero,
.site-page-hero {
 padding: 4.5rem 0 5rem;
 border-bottom: 1px solid var(--surface-container);
 background: var(--surface-container-lowest);
}

.directory-hero-grid,
.site-page-hero-grid {
 display: grid;
 grid-template-columns: minmax(0, 1fr) minmax(420px, 0.82fr);
 gap: 3.5rem;
 align-items: center;
}

.directory-hero h1,
.site-page-hero h1 {
 margin-bottom: 1rem;
 max-width: 760px;
 color: var(--primary);
}

.directory-hero p:not(.stitch-kicker),
.site-page-hero p:not(.stitch-kicker) {
 max-width: 660px;
 font-size: 1.08rem;
 line-height: 1.65;
}

.directory-hero-panel,
.site-page-hero-image {
 position: relative;
 min-height: 420px;
 overflow: hidden;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius-lg);
 background: var(--surface-container);
}

.directory-hero-panel img,
.site-page-hero-image img {
 width: 100%;
 height: 420px;
 object-fit: cover;
}


.catalog-controls {
 display: grid;
 grid-template-columns: minmax(220px, 1.1fr) repeat(4, minmax(145px, 0.7fr));
 gap: 1rem;
 margin-bottom: 2rem;
 padding: 1rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: var(--surface-container-low);
}

.catalog-controls label,
.contact-form label {
 display: grid;
 gap: 0.35rem;
}

.catalog-controls span,
.contact-form span {
 color: var(--primary);
 font-size: 0.78rem;
 font-weight: 600;
 text-transform: uppercase;
}

.catalog-count {
 display: inline-flex;
 align-items: center;
 min-height: 38px;
 padding: 0.45rem 0.7rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 color: var(--primary);
 background: var(--surface-container-lowest);
 font-size: 0.86rem;
 font-weight: 600;
 white-space: nowrap;
}

.catalog-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1.5rem;
}

.directory-course-card {
 display: flex;
 flex-direction: column;
 min-height: 100%;
 overflow: hidden;
 border: 1px solid var(--outline-variant);
 /* Match the homepage's unified card language (8px radius + soft shadow) so the
    catalog and course-detail cards read as the same system. */
 border-radius: var(--radius-lg);
 background: var(--surface-white);
 box-shadow: var(--shadow-soft);
 transform: translateY(0);
 transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.directory-course-card:hover,
.directory-course-card:focus-within {
 border-color: #9eb1c3;
 box-shadow: 0 14px 26px rgba(0, 32, 70, 0.09);
 transform: translateY(-3px);
}

.directory-course-image {
 position: relative;
 display: block;
 height: 168px;
 overflow: hidden;
 border-bottom: 1px solid var(--surface-container);
 background: var(--surface-container);
}

.directory-course-image img {
 width: 100%;
 height: 100%;
 object-fit: cover;
}


.directory-course-image span {
 position: absolute;
 left: 1rem;
 top: 1rem;
 padding: 0.32rem 0.55rem;
 border-radius: var(--radius);
 color: var(--primary);
 background: rgba(255, 255, 255, 0.94);
 font-size: 0.74rem;
 font-weight: 600;
}

.directory-course-body {
 display: grid;
 align-content: start;
 gap: 1rem;
 flex: 1;
 padding: 1.35rem;
}

.directory-course-body h3 {
 margin-bottom: 0.4rem;
 color: var(--primary);
}

.directory-course-body p {
 margin-bottom: 0;
 font-size: 0.92rem;
 line-height: 1.55;
}

.directory-tags {
 display: flex;
 flex-wrap: wrap;
 align-content: flex-start;
 align-items: flex-start;
 gap: 0.45rem;
}

.directory-tags span {
 display: inline-flex;
 align-items: center;
 max-width: 100%;
 min-height: 26px;
 padding: 0.34rem 0.5rem;
 overflow: hidden;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 color: var(--primary);
 background: var(--surface-container-low);
 font-size: 0.74rem;
 font-weight: 600;
 line-height: 1;
 text-overflow: ellipsis;
 white-space: nowrap;
}

.directory-meta {
 display: grid;
 gap: 0.65rem;
 margin: 0;
 padding-top: 0.9rem;
 border-top: 1px solid var(--surface-container);
}

.directory-meta div {
 display: grid;
 grid-template-columns: 86px minmax(0, 1fr);
 gap: 0.75rem;
}

.directory-meta dt {
 color: var(--text-muted);
 font-size: 0.72rem;
 font-weight: 600;
 text-transform: uppercase;
}

.directory-meta dd {
 margin: 0;
 color: var(--on-surface);
 font-size: 0.88rem;
 font-weight: 650;
 line-height: 1.35;
}


.directory-card-switch {
 position: relative;
 min-height: 116px;
 overflow: hidden;
}

.directory-card-panel {
 position: absolute;
 inset: 0;
 transition: opacity 180ms ease, transform 180ms ease;
}

.directory-card-panel-meta {
 opacity: 1;
 transform: translateY(0);
}

.directory-session-panel {
 display: grid;
 gap: 0.55rem;
 padding-top: 0.9rem;
 border-top: 1px solid var(--surface-container);
 opacity: 0;
 transform: translateY(10px);
 pointer-events: none;
}

.directory-card-switch.show-session-picker .directory-card-panel-meta {
 opacity: 0;
 transform: translateY(-10px);
 pointer-events: none;
}

.directory-card-switch.show-session-picker .directory-session-panel {
 opacity: 1;
 transform: translateY(0);
 pointer-events: auto;
}

.directory-session-field {
 display: grid;
 gap: 0.38rem;
}

.directory-session-field span {
 color: var(--text-muted);
 font-size: 0.72rem;
 font-weight: 600;
 text-transform: uppercase;
}

.directory-session-field select {
 width: 100%;
 min-height: 42px;
 padding: 0.62rem 0.75rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 color: var(--on-surface);
 background: var(--surface-container-lowest);
 font: inherit;
 font-size: 0.9rem;
}


.directory-session-field select:focus,
.directory-session-field select:focus-visible,
.directory-session-field select:active {
 color: var(--on-surface);
 border-color: var(--primary);
 background: var(--surface-container-lowest);
 outline: 2px solid rgba(0, 76, 153, 0.22);
 outline-offset: 2px;
}

.directory-session-field option {
 color: var(--on-surface);
 background: var(--surface-container-lowest);
}

.directory-session-field option:checked {
 color: var(--on-primary);
 background: var(--primary);
}
.directory-session-panel p {
 color: var(--text-muted);
 font-size: 0.82rem;
 line-height: 1.35;
}


.directory-session-cancel {
 justify-self: start;
 border: 0;
 padding: 0;
 color: var(--primary);
 background: transparent;
 font: inherit;
 font-size: 0.82rem;
 font-weight: 600;
 text-decoration: underline;
 text-underline-offset: 3px;
 cursor: pointer;
}

.directory-session-cancel:focus-visible {
 outline: 2px solid rgba(0, 76, 153, 0.28);
 outline-offset: 3px;
}
.directory-course-actions .button:disabled {
 opacity: 0.58;
 cursor: not-allowed;
}
.directory-course-actions {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 0.75rem;
 padding: 1rem;
 border-top: 1px solid var(--surface-container);
 background: var(--surface);
}

.directory-course-actions .button {
 min-height: 42px;
 padding: 0.68rem 0.75rem;
 font-size: 0.84rem;
}

.catalog-empty {
 padding: 2.5rem 2rem;
 border: 1px solid var(--surface-container);
 border-radius: var(--radius-lg);
 background: var(--surface-container-lowest);
 color: var(--text-muted);
 text-align: center;
}

/* Course-not-found: same calm, intentional empty-state language as the catalog. */
.generic-course-empty {
 max-width: 620px;
 margin: 0 auto;
 padding: 3rem 2rem;
 border: 1px solid var(--surface-container);
 border-radius: var(--radius-lg);
 background: var(--surface-container-lowest);
 text-align: center;
}

.generic-course-empty .stitch-kicker {
 justify-content: center;
}

.generic-course-empty .button {
 margin-top: 1rem;
}

.about-story-grid,
.about-industry-layout,
.contact-layout {
 display: grid;
 grid-template-columns: minmax(0, 0.8fr) minmax(0, 1fr);
 gap: 3rem;
 align-items: start;
}

.about-copy-stack {
 display: grid;
 gap: 1rem;
}

.about-copy-stack p {
 margin-bottom: 0;
 font-size: 1.02rem;
 line-height: 1.72;
}

.about-strength-section,
.contact-main-section {
 background: var(--surface-container-low);
 border-top: 1px solid var(--surface-container);
 border-bottom: 1px solid var(--surface-container);
}

.about-feature-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1.5rem;
}

.about-feature-grid article,
.about-area-card,
.contact-form-card,
.practical-choice-card,
.contact-office-card {
 border: 1px solid var(--outline-variant);
 /* Unify info cards with the site's 8px card language. */
 border-radius: var(--radius-lg);
 background: var(--surface-container-lowest);
}

.about-feature-grid article {
 display: grid;
 gap: 1rem;
 min-height: 255px;
 padding: 1.6rem;
}

.about-feature-grid .icon,
.contact-office-card .icon,
.contact-submitted-card .icon {
 width: 52px;
 height: 52px;
 padding: 0.85rem;
 color: var(--primary);
 background: var(--surface-container);
 border-radius: var(--radius);
}

.about-feature-grid h3,
.about-feature-grid p {
 margin-bottom: 0;
}

.about-chip-row {
 display: flex;
 flex-wrap: wrap;
 gap: 0.65rem;
 margin-top: 1.5rem;
}

.about-chip-row span {
 padding: 0.5rem 0.7rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 color: var(--primary);
 background: var(--surface-container-lowest);
 font-weight: 600;
}

.about-area-card {
 padding: 1.7rem;
 border-top: 4px solid var(--primary);
}

.about-area-card ul {
 display: grid;
 gap: 0.7rem;
 color: var(--on-surface-variant);
}

.about-cta {
 border-top: 1px solid var(--surface-container);
}

.contact-office-card {
 display: grid;
 gap: 0.75rem;
 padding: 2rem;
 border-left: 4px solid var(--secondary-container);
}

.contact-office-card h2,
.contact-office-card p {
 margin-bottom: 0;
}

.contact-office-card a {
 display: inline-flex;
 align-items: center;
 width: fit-content;
 color: var(--primary);
 font-weight: 600;
}

.contact-form-card,
.practical-choice-card {
 padding: 2rem;
}

.contact-form-card .stitch-section-heading {
 margin-bottom: 1.5rem;
}

.contact-consent {
 margin: 1rem 0 0;
 color: var(--text-muted);
 font-size: 0.88rem;
 line-height: 1.55;
}

.contact-submitted-card {
 display: grid;
 gap: 1rem;
 min-height: 420px;
 align-content: center;
}

.contact-submitted-card h2,
.contact-submitted-card p {
 margin-bottom: 0;
}

.practical-choice-card {
 display: grid;
 gap: 1rem;
 border-top: 4px solid var(--primary);
}

.practical-list {
 display: grid;
 gap: 0.9rem;
 margin-top: 0.5rem;
}

.practical-list div {
 display: grid;
 gap: 0.2rem;
 padding-top: 0.9rem;
 border-top: 1px solid var(--surface-container);
}

.practical-list strong {
 color: var(--primary);
}

.practical-list span {
 color: var(--text-muted);
 line-height: 1.5;
}

.site-footer {
 padding-top: 4.25rem;
}

.footer-grid {
 grid-template-columns: minmax(250px, 0.6fr) minmax(0, 1.4fr);
 gap: 3.5rem;
}

.footer-brand img {
 width: 180px;
 margin-bottom: 1.2rem;
}

.footer-brand address {
 display: grid;
 gap: 0.45rem;
 margin-top: 1rem;
 color: var(--inverse-primary);
 font-style: normal;
 line-height: 1.55;
}

.footer-brand address a {
 display: inline-flex;
 align-items: center;
 gap: 0.45rem;
 width: fit-content;
 color: var(--on-primary);
 font-weight: 600;
}

.footer-columns {
 grid-template-columns: repeat(5, minmax(0, 1fr));
}

.footer-acknowledgement {
 width: min(var(--stitch-max), 100%);
 margin: 0 auto 1.4rem;
 padding-top: 1.4rem;
 border-top: 1px solid rgba(174, 199, 247, 0.24);
}

.footer-acknowledgement p {
 max-width: 1020px;
 margin-bottom: 0;
 color: var(--inverse-primary);
 font-size: 0.84rem;
 line-height: 1.6;
}

@media (max-width: 1180px) {
 .catalog-grid,
 .about-feature-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }

 .catalog-controls {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }

 .footer-columns {
 grid-template-columns: repeat(3, minmax(0, 1fr));
 }
}

@media (max-width: 900px) {
 .recert-page {
 --gs-margin: 16px;
 }

 .directory-hero,
 .site-page-hero {
 padding: 3.5rem 0 4rem;
 }

 .directory-hero-grid,
 .site-page-hero-grid,
 .about-story-grid,
 .about-industry-layout,
 .contact-layout {
 grid-template-columns: 1fr;
 gap: 2rem;
 }

 .directory-hero-panel,
 .site-page-hero-image,
 .directory-hero-panel img,
 .site-page-hero-image img {
 min-height: 0;
 height: 340px;
 }

 .catalog-grid,
 .about-feature-grid,
 .catalog-controls,
 .footer-columns {
 grid-template-columns: 1fr;
 }

 .footer-grid {
 grid-template-columns: 1fr;
 }
}

@media (max-width: 620px) {
 
.directory-course-actions {
 grid-template-columns: 1fr;
 }

 .directory-meta div {
 grid-template-columns: 1fr;
 gap: 0.2rem;
 }

 .contact-form-card,
 .practical-choice-card,
 .contact-office-card {
 padding: 1.35rem;
 }
}

/* Google Stitch homepage rebuild */
.gs-homepage {
 --gs-max: 1280px;
 --gs-margin: 40px;
 background: var(--surface-container-lowest);
 color: var(--on-surface);
}

.gs-container {
 width: min(var(--gs-max), calc(100% - (var(--gs-margin) * 2)));
 margin: 0 auto;
}

.gs-section {
 padding: var(--section-y) 0;
}

/* Homepage headings sit at neutral tracking (Saira reads clean at 0); the hero
 display and the uppercase eyebrows set their own deliberate tracking, so `p`
 is intentionally NOT reset here - that reset was flattening the eyebrows. */
.gs-homepage h1,
.gs-homepage h2,
.gs-homepage h3 {
 letter-spacing: 0;
}

.gs-homepage .button {
 min-height: 48px;
 padding: 0.88rem 1.5rem;
 border-radius: var(--radius);
 font-size: 0.875rem;
 font-weight: 600;
 line-height: 1.2;
}

.gs-homepage .button.primary {
 color: var(--on-primary);
 background: var(--primary-container);
 border-color: var(--primary-container);
}

.gs-homepage .button.cta {
 color: var(--on-secondary);
 background: var(--secondary-container);
 border-color: var(--secondary-container);
}

.gs-homepage .button.secondary {
 color: var(--primary);
 background: var(--surface-container-lowest);
 border-color: var(--primary);
}

.gs-homepage .button.text {
 min-height: auto;
 padding: 0;
 color: var(--primary);
 background: transparent;
 border-color: transparent;
 box-shadow: none;
}

.gs-hero-section {
 padding: 4rem 0 6rem;
 border-bottom: 1px solid var(--surface-container);
 background: var(--surface-white);
}

/* Art-directed dark hero (Phase 6 beauty pass). */
.gs-hero-section.gs-hero-dark {
 padding: 5.5rem 0 6rem;
 border-bottom: none;
 color: #fff;
 background:
 radial-gradient(120% 150% at 88% -10%, #16406e 0%, rgba(22, 64, 110, 0) 52%),
 repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.028) 0 1px, transparent 1px 46px),
 repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.028) 0 1px, transparent 1px 46px),
 linear-gradient(180deg, #002046 0%, #001630 100%);
}

.gs-hero-dark .gs-hero-copy {
 gap: 1.5rem;
}

.gs-hero-kicker {
 margin: 0;
 color: var(--accent-amber);
 font-family: var(--font-display);
 font-size: 0.9rem;
 font-weight: var(--fw-eyebrow);
 letter-spacing: var(--ls-eyebrow);
 text-transform: uppercase;
}

.gs-hero-dark .gs-hero-copy h1 {
 max-width: 660px;
 margin: 0;
 color: #fff;
 font-size: var(--fs-display);
 font-weight: var(--fw-display);
 line-height: var(--lh-display);
 letter-spacing: var(--ls-display);
}

.gs-hero-dark .gs-hero-copy h1 .gs-accent {
 color: var(--accent-amber);
}

.gs-hero-dark .gs-hero-copy > p {
 max-width: 540px;
 margin: 0;
 color: rgba(255, 255, 255, 0.78);
 font-size: 1.12rem;
 line-height: 1.6;
}

.gs-hero-creds {
 display: flex;
 flex-wrap: wrap;
 gap: 0.55rem 1.5rem;
 margin: 0.5rem 0 0;
 padding: 1.3rem 0 0;
 list-style: none;
 border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.gs-hero-creds li {
 position: relative;
 margin: 0;
 padding-left: 1.15rem;
 color: rgba(255, 255, 255, 0.92);
 font-size: 0.8rem;
 font-weight: 700;
 letter-spacing: 0.05em;
 text-transform: uppercase;
}

.gs-hero-creds li::before {
 content: "";
 position: absolute;
 left: 0;
 top: 0.35em;
 width: 7px;
 height: 7px;
 border-radius: 50%;
 /* Accent discipline: muted on-navy dot, not a third amber element in the hero. */
 background: rgba(255, 255, 255, 0.5);
}

.gs-hero-dark .button.ghost-light {
 color: #fff;
 background: transparent;
 border-color: rgba(255, 255, 255, 0.55);
}

.gs-hero-dark .button.ghost-light:hover {
 color: var(--primary);
 background: #fff;
 border-color: #fff;
}

.gs-hero-dark .gs-hero-media {
 height: 460px;
 border: none;
 outline: 1px solid rgba(255, 255, 255, 0.1);
 box-shadow: 0 30px 60px rgba(0, 0, 0, 0.38);
}

.gs-hero-dark .gs-hero-media img {
 filter: saturate(0.94) contrast(1.03);
}

.gs-hero-media-tint {
 position: absolute;
 inset: 0;
 background: linear-gradient(180deg, rgba(0, 32, 70, 0) 40%, rgba(0, 22, 48, 0.55) 100%);
}


.gs-hero-grid {
 display: grid;
 grid-template-columns: minmax(0, 1fr) minmax(420px, 1fr);
 gap: 3rem;
 align-items: center;
}

/* Browse-by-category tiles (Phase 6 restructure). */
.gs-category-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1.5rem;
}

.gs-category-tile {
 display: flex;
 flex-direction: column;
 gap: 0.55rem;
 padding: 2rem 1.9rem 1.75rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius-lg);
 background: var(--surface-white);
 /* Match the course cards' resting elevation so every card shares one language. */
 box-shadow: var(--shadow-soft);
 transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.gs-category-tile:hover,
.gs-category-tile:focus-visible {
 transform: translateY(-3px);
 box-shadow: 0 16px 34px rgba(0, 32, 70, 0.13);
 border-color: #9eb1c3;
}

/* Step 4 â€” visible keyboard focus on interactive elements that previously only
   had hover states (cards, text links, nav + footer links). */
.gs-category-tile:focus-visible,
.gs-homepage a:focus-visible {
 outline: 2px solid var(--primary);
 outline-offset: 3px;
 border-radius: 2px;
}

.gs-hero-dark a:focus-visible,
.gs-choice-panel-dark a:focus-visible,
.gs-employer-band a:focus-visible {
 outline-color: #fff;
}

.main-nav a:focus-visible,
.header-link:focus-visible,
.utility-bar a:focus-visible {
 outline: 2px solid var(--primary);
 outline-offset: 2px;
 border-radius: 2px;
}

.site-footer a:focus-visible {
 outline: 2px solid #fff;
 outline-offset: 2px;
 border-radius: 2px;
}

.gs-category-tile h3 {
 margin: 0;
 color: var(--primary);
 font-size: 1.35rem;
}

.gs-category-tile p {
 margin: 0 0 auto;
 color: var(--text-muted);
 font-size: 0.95rem;
 line-height: 1.5;
}

.gs-category-link {
 margin-top: 1.1rem;
 color: var(--secondary);
 font-weight: 700;
 font-size: 0.9rem;
}

/* Credibility band: approvals + real partner logos (Phase 6 restructure). */
.gs-credibility-section {
 border-top: 1px solid var(--surface-container);
 border-bottom: 1px solid var(--surface-container);
 background: var(--surface-white);
}

.gs-credibility-heading {
 max-width: 720px;
 margin: 0 auto 2.75rem;
 text-align: center;
}

.gs-credibility-approvals {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1.5rem;
 margin-bottom: 3rem;
}

.gs-credibility-approvals > div {
 padding: 0 1.25rem;
 text-align: center;
 border-left: 1px solid var(--surface-warm-line);
}

.gs-credibility-approvals > div:first-child {
 border-left: none;
}

.gs-credibility-approvals strong {
 display: block;
 margin-bottom: 0.25rem;
 color: var(--primary);
 font-family: var(--font-display);
 font-size: 1.2rem;
}

.gs-credibility-approvals span {
 color: var(--text-muted);
 font-size: 0.9rem;
 line-height: 1.45;
}

/* Step 5 â€” a confident "Trusted by BC employers" band. The source logos are
   pre-rendered as pale grey, so grayscale + low opacity buried them. brightness(0)
   forces a uniform monochrome and a firmer opacity keeps them legible, not ghosted. */
.gs-logo-strip-label {
 margin: 0 0 1.85rem;
 padding-top: 2.75rem;
 border-top: 1px solid var(--surface-warm-line);
 color: var(--text-muted);
 font-family: var(--font-display);
 font-size: var(--fs-eyebrow);
 font-weight: var(--fw-eyebrow);
 letter-spacing: var(--ls-eyebrow);
 text-align: center;
 text-transform: uppercase;
}

.gs-logo-strip {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 2.25rem 3.5rem;
}

.gs-logo-strip img {
 width: auto;
 height: 46px;
 opacity: 0.92;
 filter: brightness(0) saturate(0);
 transition: opacity 0.15s ease;
}

.gs-logo-strip img:hover {
 opacity: 1;
}

@media (max-width: 780px) {
 .gs-category-grid {
 grid-template-columns: 1fr;
 }

 .gs-credibility-approvals {
 grid-template-columns: 1fr;
 gap: 1.25rem;
 }

 .gs-credibility-approvals > div {
 border-left: none;
 }
}

/* De-boxed numbered outcomes row (Phase 6 beauty). */
.gs-outcome-row {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 2.5rem;
}

.gs-outcome-item {
 padding-top: 1.1rem;
 border-top: 2px solid var(--outline-variant);
}

.gs-outcome-num {
 display: block;
 margin-bottom: 0.5rem;
 color: var(--accent-amber);
 font-family: var(--font-display);
 font-size: 2.3rem;
 font-weight: 700;
 line-height: 1;
}

.gs-outcome-item h3 {
 margin-bottom: 0.4rem;
 color: var(--primary);
}

.gs-outcome-item p {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.96rem;
 line-height: 1.55;
}

@media (max-width: 780px) {
 .gs-outcome-row {
 grid-template-columns: 1fr;
 gap: 1.75rem;
 }
}

/* "Choose your path": art-directed light/dark split panel (Phase 6 beauty). */
.gs-split-choice {
 display: grid;
 grid-template-columns: 1fr 1fr;
 overflow: hidden;
 border-radius: var(--radius-lg);
 box-shadow: 0 18px 40px rgba(0, 32, 70, 0.12);
}

.gs-choice-panel {
 display: flex;
 flex-direction: column;
 gap: 0.9rem;
 padding: 3rem 2.75rem;
}

.gs-choice-eyebrow {
 margin: 0;
 font-family: var(--font-display);
 font-size: 0.82rem;
 font-weight: var(--fw-eyebrow);
 letter-spacing: var(--ls-eyebrow);
 text-transform: uppercase;
}

.gs-choice-panel h3 {
 margin: 0;
 font-size: 1.7rem;
 line-height: 1.14;
}

.gs-choice-panel ul {
 display: grid;
 gap: 0.65rem;
 margin: 0.4rem 0 auto;
 padding: 0;
 list-style: none;
}

.gs-choice-panel li {
 position: relative;
 margin: 0;
 padding-left: 1.4rem;
 font-size: 0.98rem;
 line-height: 1.45;
}

.gs-choice-panel li::before {
 content: "";
 position: absolute;
 left: 0;
 top: 0.5em;
 width: 8px;
 height: 8px;
 border-radius: 50%;
 background: var(--accent-amber);
}

.gs-choice-panel .button {
 align-self: flex-start;
 margin-top: 1.75rem;
}

.gs-choice-panel-light {
 background: var(--surface-warm);
}

.gs-choice-panel-light .gs-choice-eyebrow {
 color: var(--secondary);
}

.gs-choice-panel-light h3 {
 color: var(--primary);
}

.gs-choice-panel-light li {
 color: var(--on-surface-variant);
}

.gs-choice-panel-dark {
 background: linear-gradient(158deg, #002046 0%, #001630 100%);
}

.gs-choice-panel-dark .gs-choice-eyebrow {
 color: var(--accent-amber);
}

.gs-choice-panel-dark h3 {
 color: #fff;
}

.gs-choice-panel-dark li {
 color: rgba(255, 255, 255, 0.82);
}

@media (max-width: 780px) {
 .gs-split-choice {
 grid-template-columns: 1fr;
 }
}

/* Signature: short clay rule above centered section titles. */
.gs-centered-title {
 position: relative;
 padding-top: 1.35rem;
}

.gs-centered-title::before {
 content: "";
 position: absolute;
 top: 0;
 left: 50%;
 transform: translateX(-50%);
 width: 42px;
 height: 3px;
 border-radius: 2px;
 background: var(--secondary-container);
}

/* Unify slightly mismatched course imagery with a consistent grade. */
.directory-course-image img,
.gs-flagship-media img {
 filter: saturate(0.94) contrast(1.02);
}

.gs-hero-copy {
 display: flex;
 flex-direction: column;
 gap: 2rem;
}

.gs-hero-copy h1 {
 max-width: 720px;
 margin-bottom: 1rem;
 color: var(--primary);
 font-size: 3rem;
 font-weight: 700;
 line-height: 1.16;
}

.gs-hero-copy p {
 max-width: 560px;
 margin-bottom: 0;
 color: var(--text-muted);
 font-size: 1.125rem;
 line-height: 1.56;
}

.gs-hero-actions,
.gs-final-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 1rem;
 align-items: center;
}

.gs-hero-meta {
 display: flex;
 flex-wrap: wrap;
 gap: 1rem 1.5rem;
 padding-top: 1rem;
 border-top: 1px solid var(--surface-container);
}

.gs-hero-meta div {
 display: inline-flex;
 align-items: center;
 gap: 0.5rem;
 color: var(--text-muted);
 font-size: 0.875rem;
 font-weight: 600;
}

.gs-hero-meta .icon {
 width: 20px;
 height: 20px;
 color: var(--primary);
}

.gs-hero-media {
 position: relative;
 height: 500px;
 overflow: hidden;
 border: 1px solid var(--surface-container);
 border-radius: var(--radius-lg);
 background: var(--surface-container);
 box-shadow: var(--shadow-soft);
}

.gs-hero-media img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 filter: saturate(0.98) contrast(1.02);
}

.gs-hero-media > div {
 position: absolute;
 inset: 0;
 background: linear-gradient(to top, rgba(0, 32, 70, 0.2), rgba(0, 32, 70, 0));
}

.gs-required-section,
.gs-pathway-cards-section,
.gs-why-section,
.gs-final-cta {
 background: var(--surface-container-lowest);
}

.gs-section-heading {
 margin-bottom: var(--section-heading-gap);
}

.gs-heading-row {
 display: flex;
 justify-content: space-between;
 gap: 2rem;
 align-items: end;
}

.gs-section-heading h2,
.gs-centered-title,
.gs-funding-content h2 {
 margin-bottom: 0.5rem;
 color: var(--primary);
 font-size: 2rem;
 font-weight: 700;
 line-height: 1.25;
}

.gs-section-heading p,
.gs-centered-copy,
.gs-funding-content p {
 margin-bottom: 0;
 color: var(--text-muted);
 font-size: 1rem;
 line-height: 1.5;
}

.gs-centered-title,
.gs-centered-copy {
 text-align: center;
}

.gs-centered-copy {
 max-width: 720px;
 margin: 0 auto 3rem;
}

.gs-course-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1.5rem;
}

.gs-course-card {
 display: flex;
 flex-direction: column;
 min-height: 100%;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: var(--surface-white);
 transition: box-shadow 160ms ease, border-color 160ms ease;
}

.gs-course-card:hover {
 border-color: #9eb1c3;
 box-shadow: 0 8px 18px rgba(0, 32, 70, 0.05);
}

.gs-course-content {
 display: flex;
 flex: 1;
 flex-direction: column;
 padding: 1.5rem;
}

.gs-card-topline {
 display: flex;
 justify-content: space-between;
 gap: 0.75rem;
 align-items: start;
 margin-bottom: 1rem;
}

.gs-card-topline span {
 padding: 0.25rem 0.5rem;
 border-radius: var(--radius);
 color: var(--primary);
 background: var(--surface-container-high);
 font-size: 0.75rem;
 font-weight: 700;
 line-height: 1.34;
}

.gs-card-topline strong {
 color: var(--primary);
 font-size: 0.86rem;
 font-weight: 600;
 line-height: 1.35;
 text-align: right;
}

.gs-course-card h3 {
 margin-bottom: 0.5rem;
 color: var(--primary);
 font-size: 1.35rem;
 font-weight: 650;
 line-height: 1.25;
}

.gs-course-card p {
 min-height: 3.8rem;
 margin-bottom: 1rem;
 color: var(--text-muted);
 font-size: 0.875rem;
 line-height: 1.45;
}

.gs-course-facts {
 display: flex;
 flex-direction: column;
 gap: 0.5rem;
 margin-top: auto;
 color: var(--text-muted);
 font-size: 0.76rem;
 font-weight: 700;
 line-height: 1.35;
}

.gs-course-facts div {
 display: flex;
 gap: 0.5rem;
 align-items: flex-start;
}

.gs-course-facts .icon {
 flex: 0 0 auto;
 width: 16px;
 height: 16px;
 color: var(--primary);
}

.gs-course-actions {
 display: flex;
 flex-direction: column;
 gap: 0.5rem;
 padding: 1rem;
 border-top: 1px solid var(--surface-container);
 background: var(--surface);
}

.gs-course-actions .button {
 width: 100%;
 min-height: 40px;
 padding: 0.6rem 0.8rem;
 font-size: 0.82rem;
}

.gs-path-choice-section,
.gs-outcomes-section {
 border-bottom: 1px solid var(--surface-container);
 background: var(--surface-white);
}

/* Warm-neutral band breaks the white/gray monotony (Phase 6). */
.gs-why-section {
 border-top: 1px solid var(--surface-warm-line);
 border-bottom: 1px solid var(--surface-warm-line);
 background: var(--surface-warm);
}

/* "Why Northwest Skills": plain two-column editorial, no cards (Phase 6 rhythm break). */
.gs-why-editorial {
 display: grid;
 grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
 gap: 3rem 4rem;
 align-items: start;
}

.gs-why-intro .eyebrow {
 color: var(--secondary);
}

.gs-why-intro h2 {
 margin-bottom: 0.75rem;
}

.gs-why-intro p {
 margin: 0;
 font-size: 1.05rem;
 line-height: 1.6;
}

.gs-why-list {
 display: grid;
 gap: 1.6rem;
}

.gs-why-list > div {
 padding-left: 1.1rem;
 border-left: 2px solid var(--accent-amber);
}

.gs-why-list h3 {
 margin-bottom: 0.3rem;
}

.gs-why-list p {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.96rem;
 line-height: 1.55;
}

@media (max-width: 820px) {
 .gs-why-editorial {
 grid-template-columns: 1fr;
 gap: 2rem;
 }
}

.gs-centered-title {
 margin-bottom: 3rem;
}

.gs-choice-grid {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 2rem;
}

.gs-choice-card {
 display: flex;
 flex-direction: column;
 align-items: center;
 min-height: 360px;
 padding: 2.5rem;
 border: 1px solid var(--surface-container);
 border-radius: var(--radius-lg);
 background: var(--surface-container-low);
 text-align: center;
}

.gs-choice-card .icon {
 width: 56px;
 height: 56px;
 margin-bottom: 1.5rem;
 color: var(--secondary-container);
}

.gs-choice-card h3 {
 margin-bottom: 1rem;
 color: var(--primary);
 font-size: 1.5rem;
}

.gs-choice-card ul {
 display: grid;
 gap: 0.45rem;
 margin: 0 0 2rem;
 color: var(--text-muted);
 font-size: 1rem;
 line-height: 1.5;
 text-align: left;
}

.gs-choice-card .button {
 width: min(100%, 320px);
 margin-top: auto;
}

.gs-pathway-card-grid {
 display: grid;
 grid-template-columns: repeat(4, minmax(0, 1fr));
 gap: 1.5rem;
}

.gs-pathway-card {
 display: flex;
 flex-direction: column;
 min-height: 260px;
 padding: 1.5rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius-lg);
 background: var(--surface);
 box-shadow: var(--shadow-soft);
}

.gs-pathway-card h3 {
 margin-bottom: 1rem;
 padding-bottom: 0.7rem;
 border-bottom: 1px solid var(--surface-container);
 color: var(--primary);
 font-size: 1.3rem;
}

.gs-pathway-card ul {
 display: flex;
 flex: 1;
 flex-direction: column;
 gap: 0.75rem;
 margin: 0 0 1.2rem;
 padding: 0;
 color: var(--text-muted);
 list-style: none;
}

.gs-pathway-card li {
 display: flex;
 gap: 0.5rem;
 align-items: flex-start;
}

.gs-pathway-card li::before {
 content: "";
 flex: 0 0 auto;
 width: 0;
 height: 0;
 margin-top: 0.45rem;
 border-top: 5px solid transparent;
 border-bottom: 5px solid transparent;
 border-left: 7px solid var(--primary-container);
}

.gs-employer-band {
 padding: var(--section-y) 0;
 color: var(--on-primary);
 background: var(--primary);
}

.gs-employer-content {
 max-width: 930px;
 margin: 0 auto;
 text-align: center;
}

.gs-employer-content h2 {
 margin-bottom: 1.5rem;
 color: var(--on-primary);
 font-size: 3rem;
 font-weight: 700;
 line-height: 1.16;
}

.gs-employer-content p {
 max-width: 720px;
 margin: 0 auto 3rem;
 color: var(--inverse-primary);
 font-size: 1.125rem;
 line-height: 1.56;
}

.gs-employer-steps {
 display: grid;
 grid-template-columns: repeat(4, minmax(0, 1fr));
 gap: 2rem;
 margin-bottom: 3rem;
}

.gs-employer-steps div {
 display: flex;
 flex-direction: column;
 align-items: center;
 gap: 1rem;
}

.gs-employer-steps span {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 64px;
 height: 64px;
 border-radius: 999px;
 color: var(--on-secondary);
 background: var(--secondary-container);
 font-size: 1.25rem;
 font-weight: 600;
}

.gs-employer-steps h3 {
 margin-bottom: 0;
 color: var(--on-primary);
 font-size: 1.05rem;
 font-weight: 650;
 line-height: 1.32;
}

.gs-employer-checks {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 gap: 1rem 2rem;
 margin: 0 0 2.5rem;
 padding: 0;
 list-style: none;
 color: var(--on-primary);
}

.gs-employer-checks li {
 display: flex;
 gap: 0.5rem;
 align-items: center;
}

.gs-employer-checks li::before {
 content: "";
 width: 11px;
 height: 11px;
 /* Accent discipline: muted on-navy marker; orange stays on the CTA. */
 background: rgba(255, 255, 255, 0.5);
}

.gs-outcome-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 2rem;
}

.gs-outcome-card {
 display: flex;
 flex-direction: column;
 align-items: center;
 min-height: 300px;
 padding: 2rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius-lg);
 background: var(--surface-container-lowest);
 text-align: center;
 box-shadow: var(--shadow-soft);
}

.gs-round-icon {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 64px;
 height: 64px;
 margin-bottom: 1.5rem;
 border-radius: 999px;
 background: var(--surface-container);
}

.gs-round-icon .icon {
 width: 34px;
 height: 34px;
 color: var(--primary);
}

.gs-outcome-card h3 {
 margin-bottom: 1rem;
 color: var(--primary);
}

.gs-outcome-card p {
 margin-bottom: 0;
 color: var(--text-muted);
}

.gs-proof-section {
 background: var(--surface-container-low);
}

.gs-story-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 2rem;
 margin-bottom: 4rem;
}

.gs-story-card {
 display: flex;
 flex-direction: column;
 min-height: 320px;
 padding: 2rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius-lg);
 background: var(--surface-white);
 box-shadow: var(--shadow-soft);
}

.gs-story-card h3 {
 margin-bottom: 0.75rem;
 color: var(--primary);
}

.gs-story-card p {
 margin-bottom: 1rem;
 color: var(--text-muted);
 font-size: 0.95rem;
 line-height: 1.55;
}

.gs-story-card strong {
 color: var(--secondary);
}

.gs-story-card div {
 margin-top: auto;
 padding: 1rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 color: var(--primary);
 background: var(--surface-container-lowest);
 font-size: 0.9rem;
 font-weight: 600;
}

.gs-partner-row {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 gap: 1rem 2rem;
 opacity: 0.74;
}

.gs-partner-row span {
 display: inline-flex;
 align-items: center;
 min-height: 48px;
 padding: 0 1rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 color: var(--primary);
 background: var(--surface-white);
 font-weight: 600;
}

.gs-why-grid {
 display: grid;
 grid-template-columns: repeat(4, minmax(0, 1fr));
 gap: 2rem;
}

.gs-why-grid article {
 display: flex;
 flex-direction: column;
 align-items: center;
 text-align: center;
}

.gs-why-grid .icon {
 width: 54px;
 height: 54px;
 margin-bottom: 1rem;
 color: var(--secondary-container);
}

.gs-why-grid h3 {
 margin-bottom: 0.5rem;
 color: var(--primary);
 font-size: 1.15rem;
}

.gs-why-grid p {
 margin-bottom: 0;
 color: var(--text-muted);
 font-size: 0.94rem;
 line-height: 1.52;
}

.gs-funding-band {
 padding: var(--section-y-tight) 0;
 border-top: 1px solid var(--surface-warm-line);
 border-bottom: 1px solid var(--surface-warm-line);
 background: var(--surface-warm);
}

.gs-funding-content {
 display: flex;
 justify-content: space-between;
 gap: 2rem;
 align-items: center;
}

.gs-funding-content div {
 max-width: 780px;
}

.gs-funding-content .button {
 flex: 0 0 auto;
}

.gs-final-cta {
 padding: 6rem 0;
 text-align: center;
 background: var(--surface-white);
}

.gs-final-cta .gs-container {
 max-width: 760px;
}

.gs-final-cta h2 {
 margin-bottom: 1.5rem;
 color: var(--primary);
 font-size: 3rem;
 font-weight: 700;
 line-height: 1.16;
}

.gs-final-cta p {
 margin-bottom: 2.5rem;
 color: var(--text-muted);
 font-size: 1.125rem;
 line-height: 1.56;
}

.gs-final-actions {
 justify-content: center;
}

@media (max-width: 1160px) {
 .gs-course-grid,
 .gs-pathway-card-grid,
 .gs-why-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }

 .gs-employer-steps {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }
}

@media (max-width: 900px) {
 .recert-page {
 --gs-margin: 16px;
 }

 .gs-homepage {
 --gs-margin: 16px;
 }

 .gs-section,
 .gs-employer-band,
 .gs-final-cta {
 padding: 4rem 0;
 }

 .gs-hero-section {
 padding: 3.5rem 0 4rem;
 }

 .gs-hero-grid,
 .gs-choice-grid,
 .gs-outcome-grid,
 .gs-story-grid {
 grid-template-columns: 1fr;
 }

 .gs-hero-copy h1,
 .gs-employer-content h2,
 .gs-final-cta h2 {
 font-size: 2.25rem;
 line-height: 1.18;
 }

 .gs-hero-copy p,
 .gs-employer-content p,
 .gs-final-cta p {
 font-size: 1rem;
 }

 .gs-hero-media {
 height: 360px;
 }

 .gs-heading-row,
 .gs-funding-content {
 align-items: flex-start;
 flex-direction: column;
 }
}

@media (max-width: 620px) {
 .gs-course-grid,
 .gs-pathway-card-grid,
 .gs-why-grid,
 .gs-employer-steps {
 grid-template-columns: 1fr;
 }

 .gs-hero-actions,
 .gs-final-actions {
 align-items: stretch;
 flex-direction: column;
 }

 .gs-homepage .button,
 .gs-choice-card .button,
 .gs-funding-content .button {
 width: 100%;
 }
}

.gs-nowrap {
 white-space: nowrap;
}

/* Stitch typography and arrow affordance refinements */
.header-link,
.header-cta,
.gs-homepage .button,
.gs-course-actions .button {
 font-weight: 600;
 letter-spacing: 0;
}

.gs-homepage .button {
 gap: 0.5rem;
}

.gs-homepage .button.text {
 display: inline-flex;
 align-items: center;
 gap: 0.35rem;
 font-weight: 600;
}

.gs-link-arrow {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 font-size: 1rem;
 font-weight: 600;
 line-height: 1;
 transform: translateY(-1px);
 transition: transform 160ms ease;
}

.gs-homepage .button:hover .gs-link-arrow {
 transform: translate(2px, -1px);
}

.gs-hero-meta div,
.gs-card-topline span,
.gs-card-topline strong,
.gs-course-facts,
.gs-partner-row span {
 font-weight: 600;
}

.gs-card-topline span {
 font-weight: 500;
}

.site-header .main-nav a {
 font-weight: 600;
}

.site-header .main-nav a.active {
 font-weight: 700;
}

/* Homepage course card image strips */
.gs-course-image {
 height: 128px;
 overflow: hidden;
 border-bottom: 1px solid var(--surface-container);
 background: var(--surface-container);
}

.gs-course-image img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center;
}

.gs-course-content {
 padding-top: 1.25rem;
}

@media (max-width: 1160px) {
 .gs-course-image {
 height: 150px;
 }
}

@media (max-width: 620px) {
 .gs-course-image {
 height: 180px;
 }
}

/* Fall Protection course detail polish */
.course-detail-page {
 background: var(--surface-container-lowest);
 color: var(--on-surface);
}

.course-detail-page .button {
 font-weight: 650;
}

.course-detail-container {
 width: min(var(--max), calc(100% - 80px));
 margin: 0 auto;
}

.course-detail-hero {
 padding: 5rem 0 3.5rem;
 border-bottom: 1px solid var(--surface-container);
 background: linear-gradient(180deg, var(--surface-white) 0%, #f7f9fb 100%);
}

.course-detail-hero-grid {
 display: grid;
 grid-template-columns: minmax(0, 1fr) minmax(380px, 0.86fr);
 gap: 4rem;
 align-items: center;
}

.course-detail-copy {
 max-width: 760px;
}

.course-label-row {
 display: flex;
 flex-wrap: wrap;
 gap: 0.6rem;
 margin-bottom: 1.15rem;
}

.course-label-row span {
 display: inline-flex;
 align-items: center;
 min-height: 30px;
 padding: 0.35rem 0.65rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 color: var(--primary);
 background: var(--surface-white);
 font-size: 0.78rem;
 font-weight: 650;
}

.course-detail-copy h1 {
 max-width: 680px;
 margin-bottom: 1.1rem;
 color: var(--primary);
 font-size: clamp(2.5rem, 5vw, 4.1rem);
 font-weight: 700;
 line-height: 1.08;
}

.course-detail-copy > p {
 max-width: 650px;
 margin-bottom: 0;
 color: var(--text-muted);
 font-size: 1.14rem;
 line-height: 1.62;
}

.course-hero-actions {
 display: flex;
 flex-wrap: wrap;
 align-items: flex-start;
 gap: 0.85rem;
 margin-top: 2rem;
}

.course-trust-row {
 display: flex;
 flex-wrap: wrap;
 gap: 0.8rem 1.25rem;
 margin-top: 2rem;
 padding-top: 1.25rem;
 border-top: 1px solid var(--surface-container);
}

.course-trust-row div {
 display: inline-flex;
 align-items: center;
 gap: 0.45rem;
 color: var(--text-muted);
 font-size: 0.9rem;
 font-weight: 650;
}

.course-trust-row .icon {
 width: 20px;
 height: 20px;
 color: var(--primary);
}

.course-detail-media {
 display: grid;
 gap: 1rem;
}

.course-image-card {
 position: relative;
 min-height: 460px;
 overflow: hidden;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius-lg);
 background: var(--surface-container);
 box-shadow: 0 12px 28px rgba(0, 32, 70, 0.08);
}

.course-image-card img {
 width: 100%;
 height: 460px;
 object-fit: cover;
}

.course-image-note {
 position: absolute;
 right: 20px;
 bottom: 20px;
 left: 20px;
 padding: 1rem;
 border: 1px solid rgba(255, 255, 255, 0.34);
 border-left: 4px solid var(--secondary-container);
 border-radius: var(--radius);
 background: rgba(0, 32, 70, 0.92);
}

.course-image-note strong {
 display: block;
 margin-bottom: 0.2rem;
 color: var(--on-primary);
 font-size: 1.04rem;
}

.course-image-note span {
 color: #d6e3ff;
 font-size: 0.9rem;
}

.course-quick-facts {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 1px;
 overflow: hidden;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: var(--outline-variant);
}

.course-quick-facts div {
 display: grid;
 gap: 0.25rem;
 min-height: 86px;
 padding: 0.9rem;
 background: var(--surface-white);
}

.course-quick-facts span,
.course-fact-strip span,
.registration-panel dt,
.instructor-profile-card dt {
 color: var(--text-muted);
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0;
 text-transform: uppercase;
}

.course-quick-facts strong,
.course-fact-strip strong {
 color: var(--primary);
 font-size: 0.95rem;
 line-height: 1.35;
}

.course-fact-section {
 background: var(--surface-white);
}

.course-fact-strip {
 display: grid;
 grid-template-columns: repeat(6, minmax(0, 1fr));
 gap: 1px;
 overflow: hidden;
 transform: translateY(-1px);
 border: 1px solid var(--outline-variant);
 border-radius: 0 0 var(--radius-lg) var(--radius-lg);
 background: var(--outline-variant);
}

.course-fact-strip div {
 display: grid;
 align-content: start;
 gap: 0.3rem;
 min-height: 118px;
 padding: 1rem;
 background: var(--surface-white);
}

.course-detail-layout {
 display: grid;
 grid-template-columns: minmax(0, 1fr) minmax(320px, 390px);
 gap: 2rem;
 align-items: start;
 padding: 4.5rem 0;
}

.course-main-stack,
.course-sidebar {
 display: grid;
 gap: 1.5rem;
}

.course-sidebar {
 position: sticky;
 top: 112px;
}

.course-panel,
.registration-panel,
.provider-profile-card,
.instructor-profile-card,
.course-band-card,
.course-faq-grid article {
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius-lg);
 background: var(--surface-white);
 box-shadow: 0 8px 18px rgba(0, 32, 70, 0.04);
}

.course-panel {
 padding: 2rem;
}

.course-panel h2,
.registration-panel h2,
.provider-profile-card h2,
.instructor-profile-card h2,
.course-band-card h2,
.course-faq-section h2 {
 margin-bottom: 0.75rem;
 color: var(--primary);
 font-size: clamp(1.55rem, 2.2vw, 2rem);
 font-weight: 700;
 line-height: 1.24;
}

.course-panel > p:last-child {
 margin-bottom: 0;
}

.course-panel-kicker {
 margin-bottom: 0.55rem;
 color: var(--secondary);
 font-size: 0.76rem;
 font-weight: 700;
 letter-spacing: 0;
 text-transform: uppercase;
}

.course-description-panel {
 border-top: 4px solid var(--primary);
}

.course-description-grid,
.learning-outcome-grid,
.receive-grid {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0.85rem;
 margin-top: 1.5rem;
}

.course-description-grid div,
.receive-grid div {
 display: flex;
 gap: 0.75rem;
 align-items: flex-start;
 padding: 1rem;
 border: 1px solid var(--surface-container);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
 color: var(--on-surface-variant);
 line-height: 1.5;
}

.course-description-grid .icon,
.receive-grid .icon {
 flex: 0 0 auto;
 width: 21px;
 height: 21px;
 color: var(--primary);
}

.learning-outcome-grid div {
 display: grid;
 gap: 0.65rem;
 min-height: 150px;
 padding: 1.1rem;
 border: 1px solid var(--surface-container);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
}

.learning-outcome-grid span {
 color: var(--secondary);
 font-size: 0.9rem;
 font-weight: 600;
}

.learning-outcome-grid p {
 margin-bottom: 0;
 color: var(--on-surface-variant);
}

.course-outline-list {
 display: grid;
 gap: 0;
 margin-top: 1.5rem;
 overflow: hidden;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
}

.outline-step {
 display: grid;
 grid-template-columns: 58px minmax(0, 1fr);
 gap: 1rem;
 padding: 1.2rem;
 background: var(--surface-white);
}

.outline-step + .outline-step {
 border-top: 1px solid var(--surface-container);
}

.outline-step > span {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 42px;
 height: 42px;
 border-radius: var(--radius);
 color: var(--on-primary);
 background: var(--primary);
 font-weight: 600;
}

.outline-step h3 {
 margin-bottom: 0.35rem;
 color: var(--primary);
 font-size: 1.08rem;
}

.outline-step p {
 margin-bottom: 0;
 color: var(--text-muted);
 font-size: 0.94rem;
}

.registration-steps {
 display: grid;
 gap: 0.9rem;
 margin: 1.2rem 0 0;
 padding-left: 1.35rem;
 color: var(--on-surface-variant);
}

.registration-steps li::marker {
 color: var(--secondary);
 font-weight: 600;
}

.related-training-row {
 display: flex;
 flex-wrap: wrap;
 gap: 0.65rem;
 margin-top: 1.2rem;
}

.related-training-row span {
 padding: 0.45rem 0.7rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 color: var(--primary);
 background: var(--surface-container-lowest);
 font-weight: 650;
}

.registration-panel,
.provider-profile-card,
.instructor-profile-card {
 padding: 1.35rem;
}

.registration-panel {
 border-top: 4px solid var(--secondary-container);
}

.registration-panel dl,
.instructor-profile-card dl {
 display: grid;
 gap: 0.8rem;
 margin: 1rem 0 1.2rem;
}

.registration-panel dl div,
.instructor-profile-card dl div {
 display: grid;
 gap: 0.2rem;
 padding-top: 0.8rem;
 border-top: 1px solid var(--surface-container);
}

.registration-panel dd,
.instructor-profile-card dd {
 margin: 0;
 color: var(--on-surface-variant);
 line-height: 1.45;
}

.registration-panel .button + .button {
 margin-top: 0.7rem;
}

.provider-logo-wrap {
 display: flex;
 align-items: center;
 justify-content: center;
 min-height: 96px;
 margin-bottom: 1.1rem;
 padding: 1rem;
 border: 1px solid var(--surface-container);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
}

.provider-logo-wrap img {
 max-width: 210px;
 height: auto;
}

.provider-profile-card p,
.instructor-profile-card p {
 margin-bottom: 1rem;
 color: var(--text-muted);
 line-height: 1.58;
}

.provider-profile-card address {
 margin: 1rem 0;
 padding: 0.95rem;
 border-left: 4px solid var(--primary);
 color: var(--on-surface-variant);
 background: var(--surface-container-lowest);
 font-style: normal;
 line-height: 1.55;
}

.provider-profile-card address a {
 color: var(--primary);
 font-weight: 700;
}

.provider-profile-card ul {
 display: grid;
 gap: 0.55rem;
 padding-left: 1.1rem;
 color: var(--on-surface-variant);
}

.instructor-photo-frame {
 display: flex;
 align-items: center;
 justify-content: center;
 width: 112px;
 height: 112px;
 margin-bottom: 1rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius-lg);
 color: var(--primary);
 background: linear-gradient(145deg, var(--surface-container-lowest), var(--surface-container));
}

.instructor-photo-frame .icon {
 width: 52px;
 height: 52px;
}

.course-support-grid {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 1.5rem;
 padding-bottom: 4.5rem;
}

.course-band-card {
 display: flex;
 justify-content: space-between;
 gap: 1.5rem;
 align-items: center;
 padding: 2rem;
}

.course-band-card p:last-child {
 margin-bottom: 0;
}

.employer-card {
 border-top: 4px solid var(--primary);
}

.grant-card {
 border-top: 4px solid var(--secondary-container);
}

.course-faq-section {
 display: grid;
 grid-template-columns: minmax(240px, 0.42fr) minmax(0, 1fr);
 gap: 2rem;
 align-items: start;
 padding: 4.5rem 0 5.5rem;
 border-top: 1px solid var(--surface-container);
}

.course-faq-grid {
 display: grid;
 gap: 1rem;
}

.course-faq-grid article {
 padding: 1.35rem;
}

.course-faq-grid h3 {
 margin-bottom: 0.45rem;
 color: var(--primary);
 font-size: 1.05rem;
}

.course-faq-grid p {
 margin-bottom: 0;
 color: var(--text-muted);
}

@media (max-width: 1120px) {
 .course-detail-hero-grid,
 .course-detail-layout,
 .course-support-grid,
 .course-faq-section {
 grid-template-columns: 1fr;
 }

 .course-sidebar {
 position: static;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 }

 .course-fact-strip {
 grid-template-columns: repeat(3, minmax(0, 1fr));
 }
}

@media (max-width: 820px) {
 .course-detail-container {
 width: min(var(--max), calc(100% - 32px));
 }

 .course-detail-hero {
 padding: 3.5rem 0 2.75rem;
 }

 .course-detail-hero-grid {
 gap: 2rem;
 }

 .course-image-card,
 .course-image-card img {
 min-height: 0;
 height: 340px;
 }

 .course-fact-strip,
 .course-description-grid,
 .learning-outcome-grid,
 .receive-grid,
 .course-sidebar {
 grid-template-columns: 1fr;
 }

 .course-panel,
 .course-band-card {
 padding: 1.35rem;
 }

 .course-band-card {
 align-items: flex-start;
 flex-direction: column;
 }

 .course-band-card .button {
 width: 100%;
 }
}

@media (max-width: 620px) {
 .course-hero-actions {
 align-items: stretch;
 flex-direction: column;
 }

 .course-detail-page .button {
 width: 100%;
 }

 .course-quick-facts {
 grid-template-columns: 1fr;
 }

 .outline-step {
 grid-template-columns: 1fr;
 }
}

/* Homepage hero visual replacement: Northwest Skills course imagery panel */
.gs-hero-composite {
 display: grid;
 grid-template-columns: minmax(0, 1.25fr) minmax(210px, 0.75fr);
 grid-template-rows: 1fr 1fr 0.86fr;
 gap: 1rem;
 height: 540px;
 padding: 1rem;
 overflow: hidden;
 border-color: var(--outline-variant);
 background:
 linear-gradient(135deg, rgba(0, 32, 70, 0.08), rgba(252, 108, 41, 0.08)),
 var(--surface-container-lowest);
 box-shadow: 0 14px 32px rgba(0, 32, 70, 0.08);
}

.gs-hero-composite > div {
 position: relative;
 inset: auto;
 overflow: hidden;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
}

.gs-hero-main-card {
 grid-row: 1 / 4;
}

.gs-hero-composite img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 filter: saturate(0.96) contrast(1.04);
}

.gs-hero-main-card::after,
.gs-hero-small-card::after {
 content: "";
 position: absolute;
 inset: 0;
 background: linear-gradient(to top, rgba(0, 32, 70, 0.72), rgba(0, 32, 70, 0.08) 58%, rgba(0, 32, 70, 0));
}

.gs-hero-photo-caption,
.gs-hero-small-card > div {
 position: absolute;
 right: 1rem;
 bottom: 1rem;
 left: 1rem;
 z-index: 1;
 display: grid;
 gap: 0.18rem;
}

.gs-hero-photo-caption span,
.gs-hero-small-card span {
 color: #d6e3ff;
 font-size: 0.74rem;
 font-weight: 650;
 line-height: 1.25;
 text-transform: uppercase;
}

.gs-hero-photo-caption strong,
.gs-hero-small-card strong {
 color: var(--on-primary);
 font-size: 1.18rem;
 font-weight: 700;
 line-height: 1.2;
}

.gs-hero-small-card strong {
 font-size: 0.96rem;
}

.gs-hero-info-card {
 display: grid;
 align-content: center;
 gap: 0.55rem;
 padding: 1rem;
 border-left: 4px solid var(--secondary-container) !important;
 color: var(--on-primary);
 background: var(--primary) !important;
}

.gs-hero-info-card .icon {
 width: 30px;
 height: 30px;
 color: var(--secondary-container);
}

.gs-hero-info-card strong {
 color: var(--on-primary);
 font-size: 1rem;
 line-height: 1.25;
}

.gs-hero-info-card span {
 color: #d6e3ff;
 font-size: 0.86rem;
 line-height: 1.45;
}

@media (max-width: 900px) {
 .recert-page {
 --gs-margin: 16px;
 }

 .gs-hero-composite {
 grid-template-columns: 1fr 1fr;
 grid-template-rows: 280px 170px 160px;
 height: auto;
 }

 .gs-hero-main-card {
 grid-column: 1 / -1;
 grid-row: auto;
 }

 .gs-hero-info-card {
 grid-column: 1 / -1;
 }
}

@media (max-width: 620px) {
 .gs-hero-composite {
 grid-template-columns: 1fr;
 grid-template-rows: 260px 150px 150px auto;
 padding: 0.75rem;
 }

 .gs-hero-info-card {
 min-height: 150px;
 }
}

/* High-resolution homepage hero photo panel */
.gs-hero-photo-panel {
 height: 540px;
 background: var(--surface-container);
 box-shadow: 0 18px 42px rgba(0, 32, 70, 0.1);
}

.gs-hero-photo-panel img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center;
 filter: saturate(0.98) contrast(1.02);
}

.gs-hero-photo-panel .gs-hero-panel-gradient {
 position: absolute;
 inset: 0;
 background:
 linear-gradient(180deg, rgba(248, 250, 252, 0.08) 0%, rgba(248, 250, 252, 0) 32%),
 linear-gradient(0deg, rgba(0, 32, 70, 0.58) 0%, rgba(0, 32, 70, 0.16) 42%, rgba(0, 32, 70, 0.02) 72%);
 pointer-events: none;
}

.gs-hero-photo-panel .gs-hero-panel-chips {
 position: absolute;
 inset: 22px 22px auto auto;
 z-index: 1;
 display: flex;
 flex-wrap: wrap;
 justify-content: flex-end;
 gap: 0.45rem;
 width: min(380px, calc(100% - 44px));
 background: transparent;
}

.gs-hero-photo-panel .gs-hero-panel-chips span {
 display: inline-flex;
 align-items: center;
 min-height: 30px;
 padding: 0.34rem 0.62rem;
 border: 1px solid rgba(255, 255, 255, 0.52);
 border-radius: 6px;
 color: #0b3558;
 background: rgba(255, 255, 255, 0.88);
 box-shadow: 0 10px 24px rgba(0, 32, 70, 0.1);
 font-size: 0.74rem;
 font-weight: 600;
 line-height: 1;
}


.gs-hero-photo-panel .gs-hero-panel-card {
 position: absolute;
 top: auto;
 right: 24px;
 bottom: 24px;
 left: 24px;
 z-index: 1;
 display: grid;
 gap: 0.8rem;
 max-width: 470px;
 padding: 1.15rem 1.2rem 1.2rem;
 border: 1px solid rgba(221, 229, 238, 0.92);
 border-radius: 8px;
 background: rgba(255, 255, 255, 0.94);
 box-shadow: 0 22px 44px rgba(0, 32, 70, 0.2);
}

.gs-hero-photo-panel .gs-hero-panel-card::before {
 content: "";
 position: absolute;
 top: 1rem;
 bottom: 1rem;
 left: 0;
 width: 4px;
 border-radius: 0 4px 4px 0;
 background: var(--secondary-container);
}

.gs-hero-photo-panel .gs-hero-panel-card > span {
 color: var(--text-muted);
 font-size: 0.74rem;
 font-weight: 600;
 letter-spacing: 0;
 line-height: 1.2;
 text-transform: uppercase;
}

.gs-hero-photo-panel .gs-hero-panel-card strong {
 max-width: 390px;
 color: var(--primary);
 font-size: 1.08rem;
 font-weight: 650;
 line-height: 1.35;
}

.gs-hero-panel-details {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0.75rem;
 padding-top: 0.1rem;
}

.gs-hero-panel-details div {
 display: grid;
 gap: 0.18rem;
 min-width: 0;
 padding-top: 0.7rem;
 border-top: 1px solid var(--surface-container);
}

.gs-hero-panel-details small {
 color: var(--text-muted);
 font-size: 0.72rem;
 font-weight: 600;
 line-height: 1.2;
 text-transform: uppercase;
}

.gs-hero-panel-details b {
 color: var(--on-surface);
 font-size: 0.86rem;
 font-weight: 600;
 line-height: 1.3;
}

@media (max-width: 900px) {
 .recert-page {
 --gs-margin: 16px;
 }

 .gs-hero-photo-panel {
 height: 400px;
 }

 .gs-hero-photo-panel .gs-hero-panel-chips {
 top: 16px;
 right: 16px;
 width: min(360px, calc(100% - 32px));
 }

 .gs-hero-photo-panel .gs-hero-panel-card {
 right: 16px;
 bottom: 16px;
 left: 16px;
 max-width: 440px;
 }
}

@media (max-width: 620px) {
 .gs-hero-photo-panel {
 height: 390px;
 }

 .gs-hero-photo-panel .gs-hero-panel-chips {
 justify-content: flex-start;
 width: calc(100% - 32px);
 }

 .gs-hero-photo-panel .gs-hero-panel-chips span:nth-child(n + 3) {
 display: none;
 }

 .gs-hero-photo-panel .gs-hero-panel-card {
 gap: 0.7rem;
 padding: 1rem 1rem 1.05rem;
 }

 .gs-hero-panel-details {
 grid-template-columns: 1fr;
 gap: 0.55rem;
 }
}
/* Course directory pagination and pricing */
.directory-course-heading {
 display: grid;
 gap: 1rem;
}


.directory-course-heading > div:first-child {
 min-height: 106px;
}

.directory-course-heading h3,
.directory-course-heading p {
 display: -webkit-box;
 overflow: hidden;
 -webkit-box-orient: vertical;
}

.directory-course-heading h3 {
 min-height: 2.65rem;
 -webkit-line-clamp: 2;
}

.directory-course-heading p {
 min-height: 2.85rem;
 -webkit-line-clamp: 2;
}
.directory-price {
 display: flex;
 align-items: baseline;
 justify-content: flex-start;
 gap: 0.5rem;
 padding: 0.35rem 0 0.15rem;
}

.directory-price span {
 color: var(--text-muted);
 font-size: 0.72rem;
 font-weight: 600;
 letter-spacing: 0.04em;
 text-transform: uppercase;
}

.directory-price strong {
 color: var(--primary);
 font-size: 1.5rem;
 font-weight: 700;
 line-height: 1.1;
 text-align: left;
}

.catalog-scroll-start {
 scroll-margin-top: 6rem;
}

.catalog-results-bar {
 display: flex;
 justify-content: space-between;
 gap: 1rem;
 align-items: center;
 margin: -0.5rem 0 1.5rem;
 color: var(--text-muted);
 font-size: 0.9rem;
 font-weight: 650;
}

.catalog-pagination {
 display: flex;
 justify-content: center;
 gap: 0.75rem;
 align-items: center;
 margin-top: 2rem;
 padding-top: 1.5rem;
 border-top: 1px solid var(--surface-container);
}

.catalog-pagination > div {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 gap: 0.45rem;
}

.catalog-pagination button {
 min-width: 42px;
 min-height: 42px;
 padding: 0.55rem 0.75rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 color: var(--primary);
 background: var(--surface-container-lowest);
 font-size: 0.88rem;
 font-weight: 650;
 cursor: pointer;
}

.catalog-pagination button:hover:not(:disabled),
.catalog-pagination button.active {
 color: var(--on-primary);
 border-color: var(--primary);
 background: var(--primary);
}

.catalog-pagination button:disabled {
 color: var(--outline);
 background: var(--surface-container-low);
 cursor: not-allowed;
}

@media (max-width: 620px) {
 .directory-course-heading > div:first-child,
 .directory-course-heading h3,
 .directory-course-heading p {
 min-height: 0;
 }

 .catalog-results-bar,
 .catalog-pagination {
 align-items: stretch;
 flex-direction: column;
 }

 .catalog-pagination > div {
 justify-content: flex-start;
 }

 .catalog-pagination button {
 flex: 1 1 auto;
 }
}


/* Hide eyebrow/kicker labels per latest visual direction. */
/* Refined section eyebrows/kickers - visible, crisp accent (Phase 6). Restores the
 asbestos level labels and section context that a blanket display:none was hiding. */
.eyebrow,
.stitch-kicker {
 display: block;
 margin-bottom: 0.6rem;
 color: var(--secondary);
 font-size: 0.74rem;
 font-weight: 700;
 letter-spacing: 0.09em;
 text-transform: uppercase;
}

.eyebrow.light {
 color: var(--accent-amber);
}

.home-hero-content .eyebrow,
.refined-outcomes .outcome-card .eyebrow {
 display: none;
}
/* Header nav alignment refinement */
@media (min-width: 901px) {
 .site-header .main-nav {
 justify-content: center;
 }
}

@media (max-width: 900px) {
 .recert-page {
 --gs-margin: 16px;
 }

 .site-header .main-nav {
 justify-content: flex-start;
 }
}
/* Popular course detail pages */
.gs-course-image {
 display: block;
}

.popular-course-page .course-detail-hero {
 padding: 3.25rem 0 1.5rem;
 border-bottom: 0;
 background: linear-gradient(180deg, var(--surface-container-lowest), var(--surface-white));
}

.course-breadcrumbs {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 0.45rem;
 margin-bottom: 1.5rem;
 color: var(--text-muted);
 font-size: 0.86rem;
}

.course-breadcrumbs a {
 color: var(--primary);
 font-weight: 600;
}

.course-breadcrumbs span:last-child {
 color: var(--on-surface-variant);
}

.popular-course-image-card {
 min-height: 420px;
 box-shadow: 0 10px 24px rgba(0, 32, 70, 0.06);
}

.popular-course-image-card img {
 height: 420px;
}

.course-safe-note {
 margin-top: 1rem;
 padding: 0.9rem 1rem;
 border-left: 4px solid var(--secondary-container);
 color: var(--on-surface-variant);
 background: var(--surface-container-lowest);
 font-size: 0.94rem;
}

.popular-registration-steps {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 padding-left: 1.1rem;
}

.course-action-callout {
 display: grid;
 grid-template-columns: minmax(0, 1fr) auto;
 gap: 1.5rem;
 align-items: center;
}

.course-action-callout ul,
.provider-profile-section ul {
 display: grid;
 gap: 0.5rem;
 margin: 1rem 0 0;
 padding-left: 1.1rem;
 color: var(--on-surface-variant);
}

.provider-profile-section,
.instructor-summary-section {
 display: grid;
 grid-template-columns: 170px minmax(0, 1fr);
 gap: 1.5rem;
 align-items: start;
}

.provider-section-logo {
 display: flex;
 align-items: center;
 justify-content: center;
 min-height: 132px;
 padding: 1rem;
 border: 1px solid var(--surface-container);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
}

.provider-section-logo img {
 width: min(138px, 100%);
 height: auto;
}

.provider-profile-section address {
 margin: 1rem 0 0;
 padding: 1rem;
 border-left: 4px solid var(--primary);
 color: var(--on-surface-variant);
 background: var(--surface-container-lowest);
 font-style: normal;
 line-height: 1.55;
}

.provider-profile-section address a {
 color: var(--primary);
 font-weight: 600;
}

.instructor-summary-section dl {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0.9rem;
 margin: 1.1rem 0 0;
}

.instructor-summary-section dl div {
 padding: 0.9rem;
 border: 1px solid var(--surface-container);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
}

.instructor-summary-section dt,
.course-proof-grid span {
 color: var(--text-muted);
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0;
 text-transform: uppercase;
}

.instructor-summary-section dd {
 margin: 0.25rem 0 0;
 color: var(--on-surface-variant);
 line-height: 1.45;
}

.course-proof-grid {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0.9rem;
 margin-top: 1.25rem;
}

.course-proof-grid div {
 padding: 1rem;
 border: 1px solid var(--surface-container);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
}

.course-proof-grid strong {
 display: block;
 margin-top: 0.3rem;
 color: var(--primary);
 font-size: 1.02rem;
}

.course-proof-grid p {
 margin: 0.3rem 0 0;
 color: var(--on-surface-variant);
 line-height: 1.55;
}

.related-training-row a {
 padding: 0.45rem 0.7rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 color: var(--primary);
 background: var(--surface-container-lowest);
 font-weight: 600;
}

.related-training-row a:hover {
 border-color: var(--primary);
 background: var(--surface-container-low);
}

.course-faq-list {
 display: grid;
 gap: 0.8rem;
 margin-top: 1.25rem;
}

.course-faq-item {
 border: 1px solid var(--surface-container);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
}

.course-faq-item summary {
 cursor: pointer;
 padding: 1rem 1.1rem;
 color: var(--primary);
 font-weight: 600;
}

.course-faq-item p {
 margin: 0;
 padding: 0 1.1rem 1rem;
 color: var(--text-muted);
 line-height: 1.55;
}

.popular-course-page .course-sidebar {
 align-self: start;
}

.popular-registration-panel {
 box-shadow: 0 10px 24px rgba(0, 32, 70, 0.06);
}

.registration-team-block {
 display: grid;
 gap: 0.65rem;
 margin-top: 1rem;
 padding-top: 1rem;
 border-top: 1px solid var(--surface-container);
}

.registration-team-block strong {
 color: var(--primary);
}

.registration-team-block p {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.9rem;
 line-height: 1.45;
}

/* Course-page trust fixes (Phase 4, spec section 3.4) */
.course-certification-outcome {
 border: 1px solid var(--primary-container);
 border-radius: var(--radius-lg);
 background: var(--surface-container-lowest);
 padding: 1.5rem 1.6rem;
}

.course-certification-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1rem 1.5rem;
 margin: 1rem 0 0;
}

.course-certification-grid dt {
 margin-bottom: 0.2rem;
 color: var(--text-muted);
 font-size: 0.74rem;
 font-weight: 700;
 letter-spacing: 0.05em;
 text-transform: uppercase;
}

.course-certification-grid dd {
 margin: 0;
 color: var(--primary);
 font-size: 0.98rem;
 font-weight: 600;
 line-height: 1.4;
}

.course-renewal-note {
 display: flex;
 gap: 0.7rem;
 align-items: flex-start;
 margin-top: 1.25rem;
 padding-top: 1.1rem;
 border-top: 1px solid var(--surface-container);
}

.course-renewal-note .icon {
 flex: 0 0 auto;
 width: 22px;
 height: 22px;
 fill: var(--secondary);
}

.course-renewal-note p {
 margin: 0;
 color: var(--on-surface-variant);
 font-size: 0.92rem;
 line-height: 1.5;
}

.course-renewal-note a {
 color: var(--secondary);
 font-weight: 700;
}

.registration-price-justification {
 margin: 0.25rem 0 1rem;
 padding-top: 0.9rem;
 border-top: 1px solid var(--surface-container);
}

.registration-price-justification strong {
 display: block;
 margin-bottom: 0.55rem;
 color: var(--primary);
 font-size: 0.9rem;
}

.registration-price-justification .course-check-list li {
 font-size: 0.86rem;
}

@media (max-width: 720px) {
 .course-certification-grid {
 grid-template-columns: 1fr;
 }
}

.course-missing-page {
 padding: 5rem 0;
}

@media (max-width: 1120px) {
 .popular-course-page .course-sidebar {
 display: block;
 position: static;
 grid-template-columns: 1fr;
 }

 .course-action-callout,
 .provider-profile-section,
 .instructor-summary-section {
 grid-template-columns: 1fr;
 }
}

@media (max-width: 820px) {
 .popular-registration-steps,
 .course-proof-grid,
 .instructor-summary-section dl {
 grid-template-columns: 1fr;
 }

 .popular-course-image-card,
 .popular-course-image-card img {
 min-height: 300px;
 height: 300px;
 }

 .course-action-callout .button {
 width: 100%;
 }
}
/* Popular course detail refinement pass */
.refined-course-page .course-detail-layout {
 gap: 2.5rem;
 padding: 4.25rem 0 5.25rem;
}

.refined-course-page .refined-course-main {
 gap: 0;
}

.refined-course-page .course-section {
 padding: 0 0 3rem;
 border-bottom: 1px solid var(--surface-container);
}

.refined-course-page .course-section + .course-section,
.refined-course-page .course-callout-grid + .course-section {
 padding-top: 3rem;
}

.refined-course-page .course-section h2 {
 max-width: 720px;
 margin-bottom: 0.75rem;
 color: var(--primary);
 font-size: clamp(1.45rem, 2vw, 1.9rem);
 font-weight: 650;
 line-height: 1.25;
}

.refined-course-page .course-section > p {
 max-width: 760px;
 color: var(--text-muted);
 line-height: 1.65;
}

.refined-course-page .course-safe-note {
 max-width: 760px;
 margin-top: 1.2rem;
 padding: 0.9rem 1rem;
 border-left: 4px solid var(--secondary-container);
 border-radius: 0 var(--radius) var(--radius) 0;
 background: var(--surface-container-lowest);
}

.course-check-list {
 display: grid;
 gap: 0.75rem;
 margin: 1.35rem 0 0;
 padding: 0;
 list-style: none;
}

.course-check-list li {
 position: relative;
 padding-left: 1.45rem;
 color: var(--on-surface-variant);
 line-height: 1.55;
}

.course-check-list a {
 color: var(--accent-blue);
 font-weight: 600;
 text-decoration: underline;
 text-decoration-thickness: 1px;
 text-underline-offset: 0.18em;
 transition: color 160ms ease, text-decoration-color 160ms ease;
}

.course-check-list a:hover,
.course-check-list a:focus-visible {
 color: var(--primary-container);
 text-decoration-color: currentColor;
}

.course-check-list li::before {
 content: "";
 position: absolute;
 top: 0.55em;
 left: 0;
 width: 7px;
 height: 7px;
 border-radius: 999px;
 background: var(--primary-container);
}

.course-two-column-list {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 2rem;
 margin-top: 1.5rem;
}

.course-two-column-list > div {
 padding-top: 1rem;
 border-top: 2px solid var(--surface-container);
}

.course-two-column-list h3 {
 margin-bottom: 0.85rem;
 color: var(--primary);
 font-size: 1rem;
 font-weight: 650;
}

.course-compact-outline {
 display: grid;
 gap: 0;
 margin: 1.35rem 0 0;
 padding: 0;
 border-top: 1px solid var(--surface-container);
 list-style: none;
 counter-reset: course-outline;
}

.course-compact-outline li {
 display: grid;
 grid-template-columns: 42px minmax(0, 1fr);
 gap: 1rem;
 align-items: start;
 padding: 1rem 0;
 border-bottom: 1px solid var(--surface-container);
 color: var(--on-surface-variant);
 line-height: 1.5;
 counter-increment: course-outline;
}

.course-compact-outline li::before {
 content: counter(course-outline, decimal-leading-zero);
 color: var(--primary);
 font-size: 0.82rem;
 font-weight: 650;
}

.course-callout-grid {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 1rem;
 padding: 3rem 0;
 border-bottom: 1px solid var(--surface-container);
}

.refined-course-page .course-action-callout {
 display: grid;
 grid-template-columns: 1fr;
 align-content: space-between;
 gap: 1.25rem;
 min-height: 100%;
 padding: 1.35rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius-lg);
 background: var(--surface-white);
 box-shadow: none;
}

.refined-course-page .course-action-callout h2 {
 margin-bottom: 0.55rem;
 color: var(--primary);
 font-size: 1.25rem;
 font-weight: 650;
 line-height: 1.3;
}

.refined-course-page .course-action-callout p {
 color: var(--text-muted);
 line-height: 1.55;
}

.refined-course-page .course-action-callout .button {
 justify-self: start;
}

.course-callout-note {
 margin-top: 0.75rem;
 margin-bottom: 0;
 font-size: 0.92rem;
}

.why-nwsi-section {
 position: relative;
}

.course-proof-bullets {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0.85rem;
 margin-top: 1.5rem;
}

.course-proof-bullets div {
 display: flex;
 gap: 0.65rem;
 align-items: flex-start;
 color: var(--on-surface-variant);
 line-height: 1.45;
}

.course-proof-bullets .icon {
 width: 19px;
 height: 19px;
 color: var(--primary);
}

.course-instruction-note {
 display: flex;
 gap: 0.85rem;
 align-items: flex-start;
 margin-top: 1.5rem;
 padding: 1rem;
 border-left: 4px solid var(--primary);
 border-radius: 0 var(--radius) var(--radius) 0;
 background: var(--surface-container-lowest);
}

.course-instruction-note .icon {
 width: 24px;
 height: 24px;
 color: var(--primary);
}

.course-instruction-note strong {
 display: block;
 margin-bottom: 0.25rem;
 color: var(--primary);
 font-weight: 650;
}

.course-instruction-note p {
 margin: 0;
 color: var(--text-muted);
 line-height: 1.45;
}

.refined-course-page .related-training-row a {
 padding: 0.5rem 0.72rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 color: var(--primary);
 background: var(--surface-container-lowest);
 font-weight: 600;
}

.refined-course-page .course-faq-list {
 max-width: 820px;
}

.refined-course-page .course-faq-item {
 border-color: var(--surface-container);
 background: var(--surface-white);
}

.refined-course-page .course-faq-item summary {
 padding: 0.95rem 0;
 border-top: 1px solid var(--surface-container);
 color: var(--primary);
}

.refined-course-page .course-faq-item:first-child summary {
 border-top: 0;
}

.refined-course-page .course-faq-item {
 border: 0;
 border-radius: 0;
}

.refined-course-page .course-faq-item p {
 padding: 0 0 1rem;
}

.refined-course-page .popular-registration-panel dl {
 margin-bottom: 1rem;
}

.refined-course-page .registration-team-block {
 gap: 0.75rem;
}

.refined-course-page .registration-team-block p {
 display: none;
}

@media (max-width: 1120px) {
 .course-callout-grid,
 .course-two-column-list,
 .course-proof-bullets {
 grid-template-columns: 1fr;
 }
}

@media (max-width: 820px) {
 .refined-course-page .course-detail-layout {
 padding: 3rem 0 4rem;
 }

 .refined-course-page .course-section {
 padding-bottom: 2.35rem;
 }

 .refined-course-page .course-section + .course-section,
 .refined-course-page .course-callout-grid + .course-section {
 padding-top: 2.35rem;
 }

 .course-callout-grid {
 padding: 2.35rem 0;
 }
}
/* Course detail session selection */
.course-session-action {
 display: grid;
 gap: 0;
 align-items: start;
}

.course-session-action.full-width {
 width: 100%;
}

.course-session-action.full-width > .button {
 width: 100%;
}

.course-session-action > .button:disabled {
 opacity: 0.58;
 cursor: not-allowed;
}

.course-session-panel {
 display: grid;
 gap: 0.55rem;
 max-height: 0;
 margin-top: 0;
 overflow: hidden;
 opacity: 0;
 transform: translateY(-4px);
 transition: max-height 220ms ease, opacity 180ms ease, transform 180ms ease, margin-top 180ms ease;
}

.course-session-action.selecting-session .course-session-panel {
 max-height: 120px;
 margin-top: 0.75rem;
 opacity: 1;
 transform: translateY(0);
}

.course-hero-actions .course-session-action {
 min-width: 160px;
}

.popular-registration-panel .course-session-panel {
 padding: 0.85rem;
 border: 1px solid var(--surface-container);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
}

.popular-registration-panel .course-session-action + .button {
 margin-top: 0.75rem;
}

@media (max-width: 820px) {
 .course-hero-actions .course-session-action {
 width: 100%;
 }

 .course-hero-actions .course-session-action > .button {
 width: 100%;
 }
}
.course-hero-actions > .button,
.course-hero-actions .course-session-action > .button {
 flex: 0 0 auto;
}
/* Keep popular course hero image anchored while session dates expand */
.popular-course-page .course-detail-hero-grid {
 align-items: start;
}

.popular-course-page .course-detail-media {
 align-self: start;
}
/* Popular course employer callout contrast */
.refined-course-page .course-action-callout.employer-card h2,
.refined-course-page .course-action-callout.employer-card .course-panel-kicker {
 color: var(--on-primary);
}

.refined-course-page .course-action-callout.employer-card p,
.refined-course-page .course-action-callout.employer-card .course-callout-note {
 color: #d6e3ff;
}

.refined-course-page .course-action-callout.employer-card .button.primary {
 color: var(--primary);
 background: var(--surface-white);
 border-color: var(--surface-white);
}

.refined-course-page .course-action-callout.employer-card .button.primary:hover {
 color: var(--primary);
 background: #eef3f7;
 border-color: #eef3f7;
}
/* Refined popular course facts bar */
.refined-course-page .course-fact-section {
 background: var(--surface-white);
}

.refined-course-page .course-fact-strip {
 display: flex;
 flex-wrap: wrap;
 gap: 0;
 overflow: visible;
 transform: none;
 border: 0;
 border-radius: 0;
 background: transparent;
}

.refined-course-page .course-fact-strip div {
 position: relative;
 flex: 1 1 150px;
 min-height: 0;
 padding: 1.15rem 1.25rem 1.15rem 0;
 background: transparent;
}

.refined-course-page .course-fact-strip div + div {
 padding-left: 1.25rem;
}

.refined-course-page .course-fact-strip div + div::before {
 content: "";
 position: absolute;
 top: 1.05rem;
 bottom: 1.05rem;
 left: 0;
 width: 1px;
 background: var(--surface-container);
}

.refined-course-page .course-fact-strip span {
 display: block;
 margin-bottom: 0.28rem;
 color: var(--text-muted);
 font-size: 0.7rem;
 font-weight: 650;
 text-transform: uppercase;
}

.refined-course-page .course-fact-strip strong {
 display: block;
 color: var(--primary);
 font-size: 0.95rem;
 font-weight: 650;
 line-height: 1.32;
}

@media (max-width: 820px) {
 .refined-course-page .course-fact-strip {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 1px;
 background: var(--surface-container);
 }

 .refined-course-page .course-fact-strip div,
 .refined-course-page .course-fact-strip div + div {
 padding: 0.95rem;
 background: var(--surface-white);
 }

 .refined-course-page .course-fact-strip div + div::before {
 display: none;
 }
}
.popular-course-page .course-hero-divider {
 height: 1px;
 margin-top: 1.5rem;
 background: var(--surface-container);
}
/* Polished sticky registration facts */
.refined-course-page .popular-registration-panel dl {
 gap: 0.55rem;
 margin: 1.1rem 0 1.25rem;
}

.refined-course-page .popular-registration-panel dl div {
 grid-template-columns: minmax(82px, 0.42fr) minmax(0, 1fr);
 gap: 0.85rem;
 align-items: center;
 padding: 0.7rem 0;
 border-top: 1px solid var(--surface-container);
}

.refined-course-page .popular-registration-panel dl div:first-child {
 border-top: 0;
}

.refined-course-page .popular-registration-panel dt {
 color: var(--text-muted);
 font-size: 0.72rem;
 font-weight: 600;
 letter-spacing: 0;
 text-transform: uppercase;
}

.refined-course-page .popular-registration-panel dd {
 justify-self: end;
 max-width: 210px;
 margin: 0;
 padding: 0;
 border: 0;
 border-radius: 0;
 color: var(--primary);
 background: transparent;
 font-size: 0.92rem;
 font-weight: 600;
 line-height: 1.3;
 text-align: right;
}

.refined-course-page .popular-registration-panel dl div:first-child dd {
 padding: 0.36rem 0.55rem;
 border: 1px solid rgba(242, 140, 40, 0.35);
 border-radius: var(--radius);
 color: var(--primary);
 background: rgba(242, 140, 40, 0.1);
 font-size: 1rem;
}


/* Course content parity sections */
.course-subtitle {
 margin-top: -0.35rem;
 color: var(--primary);
 font-size: clamp(1.05rem, 1.8vw, 1.28rem);
 font-weight: 600;
}

.course-approval-note {
 display: inline-flex;
 gap: 0.55rem;
 align-items: center;
 margin: 0.25rem 0 1rem;
 padding: 0.58rem 0.72rem;
 border: 1px solid rgba(0, 63, 123, 0.16);
 border-radius: var(--radius);
 color: var(--primary);
 background: rgba(0, 63, 123, 0.055);
 font-size: 0.92rem;
 font-weight: 600;
}

.course-approval-note .icon {
 width: 18px;
 height: 18px;
}

.course-outline-groups {
 display: grid;
 gap: 1.25rem;
 margin-top: 1.35rem;
}

.course-outline-group {
 padding: 0 0 1.25rem;
 border-bottom: 1px solid var(--surface-container);
}

.course-outline-group:last-child {
 padding-bottom: 0;
 border-bottom: 0;
}

.course-outline-group h3,
.course-admission-grid h3,
.course-instructor-card h3,
.course-review-list h3 {
 margin: 0 0 0.55rem;
 color: var(--primary);
 font-size: 1.04rem;
 font-weight: 600;
 line-height: 1.35;
}

.course-outline-group p {
 margin: 0;
 color: var(--text-muted);
 line-height: 1.62;
}

.course-admission-grid {
 display: grid;
 grid-template-columns: minmax(0, 1fr) minmax(260px, 0.75fr);
 gap: 1.25rem;
 align-items: start;
 margin-top: 1.25rem;
}

.course-exam-note {
 display: flex;
 gap: 0.85rem;
 padding: 1rem;
 border: 1px solid rgba(242, 140, 40, 0.24);
 border-radius: var(--radius-lg);
 background: rgba(242, 140, 40, 0.08);
}

.course-exam-note .icon {
 flex: 0 0 auto;
 width: 24px;
 height: 24px;
 color: var(--accent);
}

.course-exam-note p {
 margin: 0;
 color: var(--on-surface-variant);
 line-height: 1.55;
}

.course-company-profile {
 display: grid;
 grid-template-columns: 96px minmax(0, 1fr);
 gap: 1.1rem;
 align-items: start;
 margin-top: 1rem;
}

.course-company-profile img {
 width: 96px;
 height: auto;
 padding: 0.65rem;
 border: 1px solid var(--surface-container);
 border-radius: var(--radius);
 background: var(--surface-white);
}

.course-company-profile strong {
 display: block;
 margin-bottom: 0.3rem;
 color: var(--primary);
 font-weight: 600;
}

.course-company-profile address {
 margin-top: 0.85rem;
 color: var(--text-muted);
 font-style: normal;
 line-height: 1.55;
}

.course-company-profile a {
 color: var(--primary);
 font-weight: 600;
}

.course-instructor-card {
 display: grid;
 grid-template-columns: 84px minmax(0, 1fr);
 gap: 1rem;
 align-items: start;
 margin-top: 1.2rem;
}

.course-instructor-avatar {
 display: grid;
 width: 84px;
 height: 84px;
 place-items: center;
 border: 1px solid rgba(0, 63, 123, 0.16);
 border-radius: 50%;
 color: var(--primary);
 background: linear-gradient(135deg, rgba(0, 63, 123, 0.09), rgba(242, 140, 40, 0.12));
 font-size: 0.86rem;
 font-weight: 650;
}

.course-instructor-card strong {
 display: block;
 margin-bottom: 0.45rem;
 color: var(--on-surface-variant);
 font-weight: 600;
}

.course-instructor-card p,
.course-no-reviews,
.course-price-notice {
 color: var(--text-muted);
 line-height: 1.55;
}

.course-section-heading-row {
 display: flex;
 gap: 1rem;
 align-items: center;
 justify-content: space-between;
 margin-bottom: 1.25rem;
}

.course-review-layout {
 display: grid;
 grid-template-columns: minmax(190px, 0.32fr) minmax(0, 1fr);
 gap: 1.35rem;
 align-items: start;
}

.course-review-summary {
 display: grid;
 gap: 0.55rem;
 padding: 1rem;
 border: 1px solid var(--surface-container);
 border-radius: var(--radius-lg);
 background: var(--surface-container-lowest);
}

.course-review-summary > strong {
 color: var(--primary);
 font-size: 2.15rem;
 font-weight: 600;
 line-height: 1;
}

.course-review-summary span,
.course-review-summary li {
 color: var(--text-muted);
 font-size: 0.9rem;
 line-height: 1.45;
}

.course-review-summary ul {
 display: grid;
 gap: 0.25rem;
 margin: 0.35rem 0 0;
 padding: 0;
 list-style: none;
}

.course-review-list {
 display: grid;
 gap: 0.85rem;
}

.course-review-list article {
 padding: 1rem 0;
 border-top: 1px solid var(--surface-container);
}

.course-review-list article:first-child {
 padding-top: 0;
 border-top: 0;
}

.course-review-list span {
 display: block;
 margin-bottom: 0.55rem;
 color: var(--text-muted);
 font-size: 0.88rem;
}

.course-review-list p {
 margin: 0 0 0.65rem;
 color: var(--on-surface-variant);
 line-height: 1.58;
}

.course-review-list strong {
 color: var(--primary);
 font-weight: 600;
}

.course-social-follow {
 padding: 1.4rem 0 !important;
 border-top: 1px solid var(--surface-container);
 border-bottom: 1px solid var(--surface-container);
}

.course-social-follow h2 {
 margin-bottom: 0.9rem;
}

.course-social-links,
.footer-social-links {
 display: flex;
 flex-wrap: wrap;
 gap: 0.6rem;
 align-items: center;
}

.course-social-links a,
.footer-social-links a {
 display: inline-flex;
 min-height: 34px;
 align-items: center;
 padding: 0.42rem 0.68rem;
 border: 1px solid rgba(255, 255, 255, 0.28);
 border-radius: var(--radius);
 font-size: 0.88rem;
 font-weight: 600;
 text-decoration: none;
}

.course-social-links a {
 border-color: var(--surface-container);
 color: var(--primary);
 background: var(--surface-white);
}

.footer-social-links {
 margin: 1rem 0 0.25rem;
}

.footer-social-links span {
 color: rgba(255, 255, 255, 0.78);
 font-size: 0.86rem;
 font-weight: 600;
}

.footer-social-links a {
 color: var(--surface-white);
}

.course-price-notice {
 margin: 1rem 0 0;
 font-size: 0.78rem;
}

@media (max-width: 820px) {
 .course-admission-grid,
 .course-company-profile,
 .course-instructor-card,
 .course-review-layout {
 grid-template-columns: 1fr;
 }

 .course-section-heading-row {
 align-items: flex-start;
 flex-direction: column;
 }
}

/* Popular course cards, reviews, social logos, and instructor profile refinements */
.course-related-card-grid {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 1rem;
 margin-top: 1.35rem;
}

.course-related-card {
 display: grid;
 grid-template-columns: 138px minmax(0, 1fr);
 gap: 1rem;
 min-height: 230px;
 padding: 0.95rem;
 border: 1px solid var(--surface-container);
 border-radius: var(--radius-lg);
 background: var(--surface-white);
 transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.course-related-card:hover {
 border-color: rgba(0, 63, 123, 0.22);
 box-shadow: 0 10px 24px rgba(0, 32, 70, 0.07);
 transform: translateY(-2px);
}

.course-related-image {
 display: block;
 overflow: hidden;
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
}

.course-related-image img {
 width: 100%;
 height: 100%;
 min-height: 198px;
 object-fit: cover;
}

.course-related-card > div {
 display: grid;
 align-content: start;
 gap: 0.62rem;
}

.course-related-card span {
 width: fit-content;
 padding: 0.2rem 0.48rem;
 border-radius: 3px;
 color: var(--primary);
 background: rgba(0, 63, 123, 0.07);
 font-size: 0.72rem;
 font-weight: 600;
}

.course-related-card h3 {
 margin: 0;
 color: var(--primary);
 font-size: 1.02rem;
 font-weight: 600;
 line-height: 1.3;
}

.course-related-card h3 a {
 color: inherit;
 text-decoration: none;
}

.course-related-card p {
 display: -webkit-box;
 min-height: 2.85rem;
 margin: 0;
 overflow: hidden;
 color: var(--text-muted);
 font-size: 0.9rem;
 line-height: 1.5;
 -webkit-box-orient: vertical;
 -webkit-line-clamp: 2;
}

.course-related-card dl {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 0.55rem;
 margin: 0;
}

.course-related-card dl div {
 min-width: 0;
}

.course-related-card dt {
 color: var(--text-muted);
 font-size: 0.68rem;
 font-weight: 600;
 text-transform: uppercase;
}

.course-related-card dd {
 margin: 0.12rem 0 0;
 overflow: hidden;
 color: var(--primary);
 font-size: 0.82rem;
 font-weight: 600;
 line-height: 1.25;
 text-overflow: ellipsis;
 white-space: nowrap;
}

.course-related-card .button {
 justify-self: start;
 min-height: 36px;
 padding: 0.45rem 0.75rem;
 font-size: 0.86rem;
}

.course-instructor-photo {
 width: 92px;
 height: 92px;
 border: 1px solid rgba(0, 63, 123, 0.14);
 border-radius: 50%;
 background: var(--surface-container-lowest);
 object-fit: cover;
 box-shadow: 0 10px 22px rgba(0, 32, 70, 0.08);
}

.course-instructor-card {
 align-items: center;
 padding: 1rem 0;
}

.course-review-summary {
 border-color: rgba(0, 63, 123, 0.13);
 background: linear-gradient(180deg, rgba(0, 63, 123, 0.055), var(--surface-white));
}

.course-review-score {
 display: flex;
 gap: 0.8rem;
 align-items: center;
 padding-bottom: 0.85rem;
 border-bottom: 1px solid var(--surface-container);
}

.course-review-score > strong {
 color: var(--primary);
 font-size: 2.8rem;
 font-weight: 600;
 line-height: 1;
}

.course-review-score div {
 display: grid;
 gap: 0.2rem;
}

.course-review-stars {
 display: inline-flex;
 gap: 0.16rem;
 align-items: center;
 color: var(--accent);
 letter-spacing: 0;
}

.course-star-icon {
 display: inline-block;
 width: 0.82rem;
 height: 0.82rem;
 flex: 0 0 auto;
 background: currentColor;
 clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 56%, 79% 91%, 50% 70%, 21% 91%, 32% 56%, 2% 35%, 39% 35%);
}

.course-review-bars {
 display: grid;
 gap: 0.58rem;
 margin: 0;
 padding: 0;
 list-style: none;
}

.course-review-bars li {
 display: grid;
 grid-template-columns: 56px minmax(0, 1fr) 40px;
 gap: 0.55rem;
 align-items: center;
}

.course-review-bars span,
.course-review-bars b {
 color: var(--text-muted);
 font-size: 0.8rem;
 font-weight: 600;
}

.course-review-bars div {
 height: 7px;
 overflow: hidden;
 border-radius: 999px;
 background: var(--surface-container);
}

.course-review-bars i {
 display: block;
 height: 100%;
 border-radius: inherit;
 background: var(--accent);
}

.course-review-list article {
 padding: 1rem;
 border: 1px solid var(--surface-container);
 border-radius: var(--radius-lg);
 background: var(--surface-white);
}

.course-review-list article:first-child {
 padding-top: 1rem;
 border-top: 1px solid var(--surface-container);
}

.course-review-card-head {
 display: flex;
 gap: 0.75rem;
 align-items: center;
 justify-content: space-between;
 margin-bottom: 0.55rem;
}

.course-review-card-head small {
 color: var(--text-muted);
 font-size: 0.82rem;
}

.course-empty-review-card {
 display: flex;
 gap: 1rem;
 align-items: center;
 justify-content: space-between;
 padding: 1rem;
 border: 1px solid var(--surface-container);
 border-radius: var(--radius-lg);
 background: var(--surface-container-lowest);
}

.course-empty-review-card p {
 margin: 0;
 color: var(--text-muted);
}

.course-social-links a {
 gap: 0.5rem;
 min-height: 42px;
 padding: 0.5rem 0.72rem;
}

.course-social-links img {
 width: 22px;
 height: 22px;
 object-fit: contain;
}

.footer-social-links a {
 width: 36px;
 height: 36px;
 min-height: 36px;
 justify-content: center;
 padding: 0;
 border-color: rgba(255, 255, 255, 0.22);
 background: rgba(255, 255, 255, 0.08);
}

.footer-social-links img {
 width: 18px;
 height: 18px;
 object-fit: contain;
}

@media (max-width: 980px) {
 .course-related-card-grid {
 grid-template-columns: 1fr;
 }
}

@media (max-width: 620px) {
 .course-related-card {
 grid-template-columns: 1fr;
 }

 .course-related-image img {
 height: 190px;
 min-height: 190px;
 }

 .course-related-card dl {
 grid-template-columns: 1fr;
 }

 .course-empty-review-card {
 align-items: flex-start;
 flex-direction: column;
 }
}

/* Course-page section consistency and refined cards/reviews */
.refined-course-page .course-panel-kicker {
 margin-bottom: 0.45rem;
 color: var(--text-muted);
 font-size: 0.72rem;
 font-weight: 600;
 letter-spacing: 0;
 text-transform: uppercase;
}

.refined-course-page .course-section-heading-row {
 align-items: end;
 padding-bottom: 0.9rem;
 border-bottom: 1px solid var(--surface-container);
}

.refined-course-page .course-section-heading-row > div > p:last-child {
 max-width: 680px;
 margin: 0.35rem 0 0;
 color: var(--text-muted);
 line-height: 1.55;
}

.refined-course-page .course-action-callout.employer-card .course-panel-kicker {
 color: var(--on-primary);
}

.refined-course-page .course-action-callout.grant-card .course-panel-kicker {
 color: var(--text-muted);
}

/* Refined related course cards */
.course-related-card-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 1.15rem;
 margin-top: 1.25rem;
}

.course-related-card {
 display: flex;
 min-height: 0;
 overflow: hidden;
 padding: 0;
 border-color: var(--outline-variant);
 border-radius: var(--radius-lg);
 background: var(--surface-white);
 box-shadow: none;
 flex-direction: column;
}

.course-related-card:hover {
 border-color: rgba(0, 63, 123, 0.26);
 box-shadow: 0 12px 26px rgba(0, 32, 70, 0.08);
 transform: translateY(-2px);
}

.course-related-image {
 aspect-ratio: 16 / 9;
 border-radius: 0;
}

.course-related-image img {
 display: block;
 width: 100%;
 height: 100%;
 min-height: 0;
 object-fit: cover;
}

.course-related-card > div {
 display: flex;
 min-height: 270px;
 padding: 1rem;
 flex-direction: column;
}

.course-related-card span {
 margin-bottom: 0.55rem;
 padding: 0;
 color: var(--text-muted);
 background: transparent;
 font-size: 0.72rem;
 font-weight: 600;
 text-transform: uppercase;
}

.course-related-card h3 {
 margin-bottom: 0.55rem;
 font-size: 1.08rem;
 line-height: 1.32;
}

.course-related-card p {
 display: block;
 min-height: 0;
 margin-bottom: 1rem;
 overflow: visible;
 color: var(--on-surface-variant);
 font-size: 0.92rem;
 line-height: 1.52;
 -webkit-line-clamp: unset;
}

.course-related-card dl {
 display: grid;
 grid-template-columns: 1fr;
 gap: 0;
 margin: auto 0 1rem;
 border-top: 1px solid var(--surface-container);
 border-bottom: 1px solid var(--surface-container);
}

.course-related-card dl div {
 display: flex;
 gap: 0.75rem;
 align-items: baseline;
 justify-content: space-between;
 padding: 0.48rem 0;
 border-top: 1px solid var(--surface-container-low);
}

.course-related-card dl div:first-child {
 border-top: 0;
}

.course-related-card dt {
 color: var(--text-muted);
 font-size: 0.72rem;
 font-weight: 600;
 text-transform: uppercase;
}

.course-related-card dd {
 max-width: 62%;
 margin: 0;
 color: var(--primary);
 font-size: 0.88rem;
 font-weight: 600;
 text-align: right;
 white-space: normal;
}

.course-related-card .button {
 width: 100%;
 min-height: 42px;
 margin-top: auto;
 font-weight: 600;
}

/* Refined reviews */
.course-review-layout {
 display: grid;
 grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
 gap: 1.15rem;
 align-items: stretch;
 margin-top: 1.15rem;
}

.course-review-summary {
 gap: 1rem;
 padding: 1.15rem;
 border-color: var(--outline-variant);
 border-radius: var(--radius-lg);
 background: var(--surface-container-lowest);
 box-shadow: none;
}

.course-review-score {
 display: grid;
 gap: 0.35rem;
 align-content: start;
 padding-bottom: 1rem;
}

.course-review-score > strong {
 color: var(--primary);
 font-size: 3rem;
 font-weight: 600;
 line-height: 0.95;
}

.course-review-score div {
 gap: 0.28rem;
}

.course-review-score div > span:last-child {
 color: var(--text-muted);
 font-size: 0.9rem;
 font-weight: 600;
}

.course-review-stars {
 color: #f28c28;
 font-size: 0.9rem;
 letter-spacing: 0.03em;
}

.course-review-bars {
 gap: 0.62rem;
}

.course-review-bars li {
 grid-template-columns: 74px minmax(0, 1fr) 38px;
}

.course-review-bars div {
 height: 6px;
 background: #dce5ee;
}

.course-review-list {
 gap: 0.85rem;
}

.course-review-list article {
 padding: 1rem 1.05rem;
 border-color: var(--outline-variant);
 border-radius: var(--radius-lg);
 box-shadow: none;
}

.course-review-list h3 {
 margin-bottom: 0.4rem;
 font-size: 1rem;
}

.course-review-list p {
 color: var(--on-surface-variant);
 font-size: 0.94rem;
}

.course-review-card-head {
 margin-bottom: 0.4rem;
}

.course-empty-review-card {
 margin-top: 1.1rem;
 border-color: var(--outline-variant);
 background: var(--surface-white);
}

/* Current social brand marks */
.course-social-links a {
 min-width: 132px;
 border-color: var(--outline-variant);
 color: var(--primary);
 background: var(--surface-white);
 box-shadow: none;
}

.course-social-links a:hover {
 border-color: rgba(0, 63, 123, 0.24);
 background: var(--surface-container-lowest);
}

.course-social-links img {
 width: 24px;
 height: 24px;
}

.footer-social-links a {
 border-color: rgba(255, 255, 255, 0.18);
 background: rgba(255, 255, 255, 0.09);
}

.footer-social-links img {
 width: 20px;
 height: 20px;
}

@media (max-width: 980px) {
 .course-review-layout {
 grid-template-columns: 1fr;
 }
}

@media (max-width: 760px) {
 .course-related-card-grid {
 grid-template-columns: 1fr;
 }

 .refined-course-page .course-section-heading-row {
 align-items: flex-start;
 }
}

/* Footer-only social links and course-detail card polish */
.footer-social-links {
 display: flex;
 align-items: center;
 gap: 0.6rem;
 margin: 1rem 0 0.35rem;
}

.footer-social-links a {
 display: inline-flex;
 width: 38px;
 height: 38px;
 min-width: 38px;
 min-height: 38px;
 flex: 0 0 38px;
 align-items: center;
 justify-content: center;
 padding: 0;
 overflow: hidden;
 border: 1px solid rgba(255, 255, 255, 0.24);
 border-radius: 999px;
 background: rgba(255, 255, 255, 0.08);
 line-height: 0;
 box-sizing: border-box;
}

.footer-social-links a:hover {
 border-color: rgba(255, 255, 255, 0.42);
 background: rgba(255, 255, 255, 0.14);
 transform: translateY(-1px);
}

.footer-social-links img {
 display: block;
 width: 22px;
 height: 22px;
 max-width: 22px;
 max-height: 22px;
 object-fit: contain;
 flex: 0 0 auto;
}

.course-social-follow,
.course-social-links {
 display: none;
}

.refined-course-page .related-course-panel {
 padding-top: 2.2rem;
 border-top: 1px solid var(--surface-container);
}

.refined-course-page .course-related-card-grid {
 gap: 1rem;
 margin-top: 1.35rem;
}

.refined-course-page .course-related-card {
 border: 1px solid var(--outline-variant);
 border-radius: 10px;
 background: var(--surface-white);
 box-shadow: 0 10px 24px rgba(0, 32, 70, 0.045);
 transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.refined-course-page .course-related-card:hover {
 border-color: rgba(0, 63, 123, 0.28);
 box-shadow: 0 16px 34px rgba(0, 32, 70, 0.08);
 transform: translateY(-2px);
}

.refined-course-page .course-related-image {
 height: 142px;
 aspect-ratio: auto;
 background: var(--surface-container-low);
}

.refined-course-page .course-related-image img {
 height: 100%;
 object-fit: cover;
}

.refined-course-page .course-related-card > div {
 min-height: 0;
 padding: 1rem 1rem 1.05rem;
}

.refined-course-page .course-related-card span {
 width: fit-content;
 margin-bottom: 0.65rem;
 padding: 0.25rem 0.48rem;
 border: 1px solid rgba(0, 63, 123, 0.12);
 border-radius: 4px;
 color: var(--primary);
 background: var(--surface-container-lowest);
 font-size: 0.68rem;
 font-weight: 600;
 letter-spacing: 0.02em;
}

.refined-course-page .course-related-card h3 {
 min-height: 2.85em;
 margin-bottom: 0.45rem;
 color: var(--on-surface);
 font-size: 1.04rem;
 font-weight: 600;
}

.refined-course-page .course-related-card h3 a {
 color: inherit;
 text-decoration: none;
}

.refined-course-page .course-related-card p {
 display: -webkit-box;
 min-height: 4.55em;
 margin-bottom: 0.85rem;
 overflow: hidden;
 color: var(--on-surface-variant);
 font-size: 0.9rem;
 line-height: 1.5;
 -webkit-box-orient: vertical;
 -webkit-line-clamp: 3;
}

.refined-course-page .course-related-card dl {
 display: grid;
 grid-template-columns: 1fr;
 gap: 0.48rem;
 margin: auto 0 0.95rem;
 padding: 0.72rem 0;
 border-top: 1px solid var(--surface-container-low);
 border-bottom: 1px solid var(--surface-container-low);
}

.refined-course-page .course-related-card dl div {
 display: grid;
 grid-template-columns: 70px minmax(0, 1fr);
 gap: 0.55rem;
 align-items: start;
 padding: 0;
 border: 0;
}

.refined-course-page .course-related-card dt {
 color: var(--text-muted);
 font-size: 0.68rem;
 font-weight: 600;
 letter-spacing: 0.02em;
 text-transform: uppercase;
}

.refined-course-page .course-related-card dd {
 max-width: none;
 color: var(--on-surface);
 font-size: 0.84rem;
 font-weight: 500;
 line-height: 1.35;
 text-align: left;
}

.refined-course-page .course-related-card .button {
 min-height: 40px;
 border: 1px solid var(--primary);
 color: var(--primary);
 background: var(--surface-white);
 font-weight: 600;
}

.refined-course-page .course-related-card .button:hover {
 color: var(--on-primary);
 background: var(--primary);
}

.refined-course-page .course-reviews-section {
 padding-top: 2.2rem;
 border-top: 1px solid var(--surface-container);
}

.refined-course-page .course-review-layout {
 grid-template-columns: 1fr;
 gap: 0.95rem;
}

.refined-course-page .course-review-summary {
 display: grid;
 grid-template-columns: minmax(140px, 180px) minmax(0, 1fr);
 gap: 1.2rem;
 align-items: center;
 padding: 1.05rem 1.15rem;
 border: 1px solid var(--outline-variant);
 border-radius: 10px;
 background: var(--surface-container-lowest);
}

.refined-course-page .course-review-score {
 padding: 0;
 border-right: 1px solid var(--surface-container);
}

.refined-course-page .course-review-score > strong {
 font-size: 2.7rem;
 font-weight: 600;
}

.refined-course-page .course-review-bars {
 gap: 0.5rem;
}

.refined-course-page .course-review-bars li {
 grid-template-columns: 78px minmax(0, 1fr) 34px;
}

.refined-course-page .course-review-list {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0.9rem;
}

.refined-course-page .course-review-list article {
 padding: 1rem;
 border: 1px solid var(--outline-variant);
 border-radius: 10px;
 background: var(--surface-white);
 box-shadow: 0 8px 20px rgba(0, 32, 70, 0.04);
}

.refined-course-page .course-review-card-head {
 align-items: center;
}

.refined-course-page .course-review-list h3 {
 color: var(--on-surface);
 font-size: 1rem;
 font-weight: 600;
}

.refined-course-page .course-review-list p {
 color: var(--on-surface-variant);
 line-height: 1.55;
}

@media (max-width: 760px) {
 .refined-course-page .course-review-summary,
 .refined-course-page .course-review-list {
 grid-template-columns: 1fr;
 }

 .refined-course-page .course-review-score {
 padding-bottom: 0.9rem;
 border-right: 0;
 border-bottom: 1px solid var(--surface-container);
 }
}

/* Final compact footer social buttons and related-course sizing */
.footer-social-links {
 gap: 0.55rem;
}

.footer-social-links a.footer-social-link {
 width: 34px;
 height: 34px;
 min-width: 34px;
 min-height: 34px;
 flex-basis: 34px;
 border: 1px solid rgba(255, 255, 255, 0.22);
 box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.footer-social-links a.footer-social-link.linkedin {
 background: #0a66c2;
}

.footer-social-links a.footer-social-link.facebook {
 background: #0866ff;
}

.footer-social-links a.footer-social-link.instagram {
 background: radial-gradient(circle at 30% 105%, #feda75 0%, #fa7e1e 24%, #d62976 48%, #962fbf 75%, #4f5bd5 100%);
}

.footer-social-links a.footer-social-link:hover {
 border-color: rgba(255, 255, 255, 0.45);
 filter: brightness(1.08);
}

.footer-social-links a.footer-social-link img {
 width: 17px;
 height: 17px;
 max-width: 17px;
 max-height: 17px;
}

.footer-social-links a.footer-social-link.instagram img {
 width: 18px;
 height: 18px;
 max-width: 18px;
 max-height: 18px;
}

.related-course-panel .course-section-heading-row {
 align-items: center;
}

.related-course-panel .course-section-heading-row > .button,
.related-course-panel .course-section-heading-row > a.button {
 width: auto;
 min-width: max-content;
 max-width: max-content;
 min-height: 38px;
 padding: 0.55rem 0.9rem;
 flex: 0 0 auto;
 white-space: nowrap;
 line-height: 1;
}

.refined-course-page .course-related-card-grid {
 gap: 0.85rem;
}

.refined-course-page .course-related-card {
 border-radius: 8px;
 box-shadow: none;
}

.refined-course-page .course-related-image {
 height: 88px;
}

.refined-course-page .course-related-card > div {
 padding: 0.78rem 0.82rem 0.85rem;
}

.refined-course-page .course-related-card span {
 margin-bottom: 0.45rem;
 padding: 0;
 border: 0;
 color: var(--text-muted);
 background: transparent;
 font-size: 0.66rem;
}

.refined-course-page .course-related-card h3 {
 min-height: 0;
 margin-bottom: 0.35rem;
 font-size: 0.95rem;
 line-height: 1.3;
}

.refined-course-page .course-related-card p {
 min-height: 2.75em;
 margin-bottom: 0.65rem;
 font-size: 0.84rem;
 line-height: 1.38;
 -webkit-line-clamp: 2;
}

.refined-course-page .course-related-card dl {
 display: flex;
 gap: 0.35rem;
 flex-wrap: wrap;
 margin: auto 0 0.7rem;
 padding: 0;
 border: 0;
}

.refined-course-page .course-related-card dl div {
 display: block;
 min-width: 0;
 padding: 0.32rem 0.42rem;
 border: 1px solid var(--surface-container-low);
 border-radius: 6px;
 background: var(--surface-container-lowest);
}

.refined-course-page .course-related-card dt {
 margin-bottom: 0.08rem;
 font-size: 0.58rem;
}

.refined-course-page .course-related-card dd {
 max-width: 11rem;
 overflow: hidden;
 font-size: 0.76rem;
 line-height: 1.2;
 text-overflow: ellipsis;
 white-space: nowrap;
}

.refined-course-page .course-related-card .button {
 min-height: 36px;
 padding: 0.48rem 0.75rem;
 font-size: 0.84rem;
}

/* Optical centering for footer social brand marks */
.footer-social-links a.footer-social-link {
 position: relative;
 width: 36px;
 height: 36px;
 min-width: 36px;
 min-height: 36px;
 flex-basis: 36px;
 align-items: center;
 justify-content: center;
}

.footer-social-links a.footer-social-link img {
 position: absolute;
 left: 50%;
 top: 50%;
 width: 18px;
 height: 18px;
 max-width: 18px;
 max-height: 18px;
 margin: 0;
 transform: translate(-50%, -50%);
}

.footer-social-links a.footer-social-link.linkedin img {
 width: 17px;
 height: 17px;
 max-width: 17px;
 max-height: 17px;
 transform: translate(calc(-50% + 0.5px), calc(-50% + 0.25px));
}

.footer-social-links a.footer-social-link.facebook img {
 width: 16px;
 height: 19px;
 max-width: 16px;
 max-height: 19px;
 transform: translate(calc(-50% - 0.25px), -50%);
}

.footer-social-links a.footer-social-link.instagram img {
 width: 18px;
 height: 18px;
 max-width: 18px;
 max-height: 18px;
 transform: translate(-50%, -50%);
}

/* Six popular course detail page production refinement */
.refined-course-page.popular-course-page {
 background: #f8fafc;
}

.refined-course-page .course-detail-container {
 width: min(1180px, calc(100% - 72px));
}

.refined-course-page .course-detail-hero {
 padding: 3.6rem 0 1.1rem;
 border-bottom: 0;
 background: linear-gradient(180deg, #f7f9fc 0%, var(--surface-white) 100%);
}

.refined-course-page .course-breadcrumbs {
 margin-bottom: 1.25rem;
}

.refined-course-page .course-detail-hero-grid {
 grid-template-columns: minmax(0, 1.04fr) minmax(360px, 0.82fr);
 gap: clamp(2.4rem, 4vw, 4.2rem);
 align-items: center;
}

.refined-course-page .course-label-row {
 gap: 0.45rem;
 margin-bottom: 0.95rem;
}

.refined-course-page .course-label-row span {
 min-height: 26px;
 padding: 0.27rem 0.52rem;
 border-radius: 4px;
 font-size: 0.72rem;
 font-weight: 600;
 background: var(--surface-white);
}

.refined-course-page .course-detail-copy h1 {
 max-width: 760px;
 margin-bottom: 0.85rem;
 font-size: clamp(2.35rem, 4.6vw, 3.7rem);
 font-weight: 650;
 line-height: 1.07;
}

.refined-course-page .course-subtitle {
 margin: -0.2rem 0 0.75rem;
 color: var(--on-surface-variant);
 font-size: clamp(1.04rem, 1.45vw, 1.18rem);
 font-weight: 600;
}

.refined-course-page .course-detail-copy > p:not(.course-subtitle) {
 max-width: 700px;
 font-size: 1.05rem;
 line-height: 1.62;
}

.refined-course-page .course-hero-actions {
 margin-top: 1.6rem;
}

.refined-course-page .course-trust-row {
 max-width: 760px;
 margin-top: 1.55rem;
 padding-top: 1rem;
}

.refined-course-page .popular-course-image-card {
 min-height: 390px;
 border-radius: 12px;
 box-shadow: 0 14px 32px rgba(0, 32, 70, 0.08);
}

.refined-course-page .popular-course-image-card img {
 height: 390px;
 object-fit: cover;
}

.refined-course-page.course-asbestos-level-1 .popular-course-image-card img,
.refined-course-page.course-asbestos-level-2 .popular-course-image-card img,
.refined-course-page.course-asbestos-level-3 .popular-course-image-card img,
.refined-course-page.course-fall-protection .popular-course-image-card img,
.refined-course-page.course-jhsc .popular-course-image-card img,
.refined-course-page.course-whmis .popular-course-image-card img {
 object-position: center center;
}

.refined-course-page .course-hero-divider {
 max-width: 1180px;
 margin-top: 1.15rem;
}

.refined-course-page .course-fact-section {
 background: var(--surface-white);
 border-top: 1px solid var(--surface-container-low);
 border-bottom: 1px solid var(--surface-container-low);
}

.refined-course-page .course-fact-strip {
 align-items: stretch;
}

.refined-course-page .course-fact-strip div {
 flex-basis: 150px;
 padding: 1rem 1.15rem 1rem 0;
}

.refined-course-page .course-fact-strip strong {
 color: var(--on-surface);
 font-size: 0.93rem;
 font-weight: 600;
}

.refined-course-page .course-detail-layout {
 grid-template-columns: minmax(0, 780px) minmax(280px, 330px);
 justify-content: space-between;
 gap: clamp(2.5rem, 4.4vw, 4.8rem);
 padding: 4rem 0 5rem;
}

.refined-course-page .course-sidebar {
 top: 108px;
}

.refined-course-page .refined-course-main {
 gap: 0;
}

.refined-course-page .course-section {
 padding: 0 0 2.55rem;
 border: 0;
 border-bottom: 1px solid var(--surface-container);
 background: transparent;
}

.refined-course-page .course-section + .course-section,
.refined-course-page .course-callout-grid + .course-section {
 padding-top: 2.55rem;
}

.refined-course-page .course-section h2 {
 margin-bottom: 0.7rem;
 font-size: clamp(1.38rem, 1.9vw, 1.72rem);
 font-weight: 600;
}

.refined-course-page .course-section > p {
 max-width: 760px;
 color: var(--on-surface-variant);
 font-size: 0.98rem;
 line-height: 1.64;
}

.refined-course-page .course-panel-kicker {
 color: var(--text-muted);
 font-size: 0.69rem;
 font-weight: 600;
}

.refined-course-page .course-approval-note {
 margin: 0.2rem 0 0.95rem;
 border-radius: 6px;
 font-size: 0.88rem;
}

.refined-course-page .course-safe-note {
 margin-top: 1.15rem;
 padding: 0.82rem 0.95rem;
 border-left-width: 3px;
 font-size: 0.88rem;
}

.refined-course-page .course-check-list {
 gap: 0.62rem;
 margin-top: 1.05rem;
}

.refined-course-page .course-check-list li {
 font-size: 0.96rem;
 line-height: 1.5;
}

.refined-course-page .course-two-column-list {
 gap: clamp(1.6rem, 3vw, 2.5rem);
 margin-top: 1.25rem;
}

.refined-course-page .course-two-column-list > div {
 padding-top: 0.85rem;
 border-top: 2px solid var(--surface-container);
}

.refined-course-page .course-two-column-list h3,
.refined-course-page .course-outline-group h3,
.refined-course-page .course-admission-grid h3 {
 color: var(--primary);
 font-size: 0.98rem;
 font-weight: 600;
}

.refined-course-page .course-outline-groups {
 gap: 0;
 margin-top: 1.2rem;
 border-top: 1px solid var(--surface-container);
}

.refined-course-page .course-outline-group {
 padding: 1rem 0;
 border-bottom: 1px solid var(--surface-container);
}

.refined-course-page .course-outline-group:last-child {
 border-bottom: 0;
}

.refined-course-page .course-outline-group p,
.refined-course-page .course-exam-note p {
 font-size: 0.94rem;
}

.refined-course-page .course-admission-grid {
 grid-template-columns: minmax(0, 1fr) minmax(240px, 0.72fr);
 gap: 1.4rem;
}

.refined-course-page .course-exam-note {
 border-radius: 10px;
 box-shadow: none;
}

.refined-course-page .course-callout-grid {
 gap: 1rem;
 padding: 2.55rem 0;
 border-bottom: 1px solid var(--surface-container);
}

.refined-course-page .course-action-callout {
 min-height: auto;
 padding: 1.25rem;
 border-radius: 10px;
 box-shadow: none;
}

.refined-course-page .course-action-callout.employer-card {
 border-color: var(--primary);
 background: var(--primary);
}

.refined-course-page .course-action-callout.grant-card {
 border-color: rgba(242, 140, 40, 0.3);
 background: #fffaf5;
}

.refined-course-page .course-action-callout h2 {
 font-size: 1.15rem;
}

.refined-course-page .course-action-callout p {
 font-size: 0.93rem;
}

.refined-course-page .course-callout-note {
 margin-top: 0.55rem;
 font-size: 0.86rem;
}

.refined-course-page .why-nwsi-section .course-company-profile {
 grid-template-columns: 80px minmax(0, 1fr);
 gap: 1rem;
 margin-top: 1.1rem;
}

.refined-course-page .course-company-profile img {
 width: 80px;
 padding: 0.55rem;
 border-radius: 8px;
}

.refined-course-page .course-company-profile p {
 margin: 0;
 color: var(--on-surface-variant);
 line-height: 1.55;
}

.refined-course-page .course-company-profile address {
 margin-top: 0.65rem;
 font-size: 0.9rem;
}

.refined-course-page .course-proof-bullets {
 gap: 0.65rem 1rem;
 margin-top: 1.25rem;
}

.refined-course-page .course-proof-bullets div {
 font-size: 0.92rem;
}

.refined-course-page .course-instructor-profile {
 padding-bottom: 2.55rem;
}

.refined-course-page .course-instructor-card {
 grid-template-columns: 58px minmax(0, 1fr);
 gap: 0.95rem;
 align-items: center;
 margin-top: 0.95rem;
}

.refined-course-page .generic-instructor-card {
 align-items: center;
 max-width: 760px;
 padding: 1.05rem 1.15rem;
 border: 1px solid var(--surface-container);
 border-radius: 10px;
 background: var(--surface-white);
}

.refined-course-page .course-instructor-avatar {
 width: 58px;
 height: 58px;
}

.refined-course-page .course-instructor-avatar .icon {
 width: 25px;
 height: 25px;
 color: var(--primary);
}

.refined-course-page .generic-instructor-card h2 {
 margin: 0 0 0.25rem;
 font-size: 1.12rem;
}

.refined-course-page .generic-instructor-card p {
 margin: 0;
 color: var(--text-muted);
 line-height: 1.45;
}

.refined-course-page .course-section-heading-row {
 align-items: center;
 margin-bottom: 1rem;
 padding-bottom: 0.8rem;
}

.refined-course-page .course-section-heading-row .button {
 min-height: 38px;
 padding: 0.55rem 0.85rem;
 white-space: nowrap;
}

.refined-course-page .course-reviews-section {
 padding-top: 2.55rem;
 border-top: 0;
}

.refined-course-page .course-review-layout {
 gap: 0.9rem;
}

.refined-course-page .course-review-summary {
 grid-template-columns: 150px minmax(0, 1fr);
 padding: 1rem;
 border-radius: 10px;
}

.refined-course-page .course-review-score > strong {
 font-size: 2.35rem;
}

.refined-course-page .course-review-list {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0.8rem;
}

.refined-course-page .course-review-list article {
 padding: 0.95rem;
 border-radius: 10px;
 box-shadow: none;
}

.refined-course-page .course-empty-review-card {
 max-width: 760px;
 margin-top: 0.9rem;
 padding: 1rem 1.1rem;
 border-radius: 10px;
 background: var(--surface-white);
}

.refined-course-page .related-course-panel {
 padding-top: 2.55rem;
}

.refined-course-page .course-related-card-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0.75rem;
}

.refined-course-page .course-related-card {
 border-color: var(--surface-container);
 background: var(--surface-white);
}

.refined-course-page .course-related-image {
 height: 82px;
}

.refined-course-page .course-related-card > div {
 padding: 0.72rem;
}

.refined-course-page .course-related-card p {
 min-height: 2.5em;
}

.refined-course-page .course-faq-panel {
 padding-top: 2.55rem;
 padding-bottom: 0;
 border-bottom: 0;
}

.refined-course-page .course-faq-list {
 max-width: 780px;
 margin-top: 0.9rem;
 border-top: 1px solid var(--surface-container);
}

.refined-course-page .course-faq-item summary {
 padding: 0.95rem 0;
}

.refined-course-page .course-faq-item p {
 color: var(--text-muted);
 line-height: 1.55;
}

.refined-course-page .popular-registration-panel {
 padding: 1.15rem;
 border-radius: 12px;
 box-shadow: 0 12px 28px rgba(0, 32, 70, 0.07);
}

.refined-course-page .popular-registration-panel h2 {
 margin-bottom: 0.2rem;
 font-size: 1.2rem;
 font-weight: 600;
}

.refined-course-page .registration-course-full-name {
 margin: 0 0 0.9rem;
 color: var(--text-muted);
 font-size: 0.84rem;
 line-height: 1.35;
}

.refined-course-page .popular-registration-panel dl {
 gap: 0;
 margin: 0.9rem 0 1.05rem;
}

.refined-course-page .popular-registration-panel dl div {
 grid-template-columns: 78px minmax(0, 1fr);
 gap: 0.7rem;
 padding: 0.62rem 0;
}

.refined-course-page .popular-registration-panel dt {
 font-size: 0.68rem;
}

.refined-course-page .popular-registration-panel dd {
 max-width: 190px;
 font-size: 0.86rem;
 font-weight: 600;
}

.refined-course-page .popular-registration-panel dl div:first-child dd {
 font-size: 0.96rem;
}

.refined-course-page .registration-team-block {
 margin-top: 0.9rem;
 padding-top: 0.9rem;
 border-top: 1px solid var(--surface-container);
}

.refined-course-page .registration-team-block strong {
 margin-bottom: 0.55rem;
 font-size: 0.9rem;
}

.refined-course-page .course-price-notice {
 margin-top: 0.85rem;
 font-size: 0.76rem;
 line-height: 1.45;
}

@media (max-width: 1120px) {
 .refined-course-page .course-detail-hero-grid,
 .refined-course-page .course-detail-layout,
 .refined-course-page .course-admission-grid {
 grid-template-columns: 1fr;
 }

 .refined-course-page .course-sidebar {
 position: static;
 }
}

@media (max-width: 760px) {
 .refined-course-page .course-detail-container {
 width: min(100% - 32px, 1180px);
 }

 .refined-course-page .course-detail-hero {
 padding-top: 2.4rem;
 }

 .refined-course-page .popular-course-image-card,
 .refined-course-page .popular-course-image-card img {
 min-height: 270px;
 height: 270px;
 }

 .refined-course-page .course-detail-layout {
 padding: 3rem 0 4rem;
 }

 .refined-course-page .course-two-column-list,
 .refined-course-page .course-callout-grid,
 .refined-course-page .course-proof-bullets,
 .refined-course-page .course-review-list,
 .refined-course-page .course-related-card-grid,
 .refined-course-page .course-review-summary {
 grid-template-columns: 1fr;
 }

 .refined-course-page .course-review-score {
 border-right: 0;
 border-bottom: 1px solid var(--surface-container);
 padding-bottom: 0.8rem;
 }
}


/* Final presentation polish for scoped popular course and request pages */
.refined-course-page .course-section-soft {
 position: relative;
}

.refined-course-page .course-outline-groups {
 margin-top: 1.25rem;
 border-top: 1px solid #dbe3eb;
}

.refined-course-page .course-outline-group {
 padding: 0;
 border-bottom: 1px solid #dbe3eb;
 background: transparent;
}

.refined-course-page .course-outline-group:last-child {
 border-bottom: 0;
}

.refined-course-page .course-outline-group summary {
 display: grid;
 grid-template-columns: 42px minmax(0, 1fr) 28px;
 gap: 0.8rem;
 align-items: center;
 padding: 1rem 0;
 color: var(--primary);
 cursor: pointer;
 list-style: none;
}

.refined-course-page .course-outline-group summary::-webkit-details-marker {
 display: none;
}

.refined-course-page .course-outline-group summary::after {
 content: "+";
 width: 28px;
 height: 28px;
 border: 1px solid #cbd6e1;
 display: inline-grid;
 place-items: center;
 color: var(--primary);
 font-size: 1rem;
 font-weight: 600;
 background: #ffffff;
}

.refined-course-page .course-outline-group[open] summary::after {
 content: "-";
}

.refined-course-page .course-outline-group summary span {
 display: inline-grid;
 width: 34px;
 height: 34px;
 place-items: center;
 color: #54677b;
 border: 1px solid #dbe3eb;
 background: #ffffff;
 font-size: 0.76rem;
 font-weight: 600;
}

.refined-course-page .course-outline-group summary h3 {
 margin: 0;
 font-size: 1rem;
 font-weight: 600;
}

.refined-course-page .course-outline-content {
 max-width: 720px;
 padding: 0 0 1.15rem 3.1rem;
}

.refined-course-page .course-outline-content p {
 color: var(--on-surface-variant);
 font-size: 0.95rem;
 line-height: 1.6;
}

.refined-course-page .course-outline-content .course-check-list {
 margin-top: 0.75rem;
}

.refined-course-page .course-provider-strip {
 display: grid;
 grid-template-columns: 62px minmax(0, 1fr);
 gap: 1rem;
 align-items: center;
 max-width: 760px;
 margin-top: 1rem;
 padding: 1rem 0 1rem 1rem;
 border-left: 3px solid var(--primary);
 background: linear-gradient(90deg, #ffffff 0%, rgba(255, 255, 255, 0) 100%);
}

.refined-course-page .course-provider-strip img {
 width: 62px;
 height: auto;
 padding: 0.45rem;
 border: 1px solid #dbe3eb;
 background: #ffffff;
}

.refined-course-page .course-provider-strip strong {
 display: block;
 margin-bottom: 0.25rem;
 color: var(--primary);
 font-weight: 600;
}

.refined-course-page .course-provider-strip p {
 margin: 0;
 color: var(--on-surface-variant);
 font-size: 0.94rem;
 line-height: 1.58;
}

.refined-course-page .course-proof-bullets {
 grid-template-columns: repeat(2, minmax(0, 1fr));
}

.refined-course-page .course-proof-bullets div {
 padding: 0.72rem 0;
 border-top: 1px solid #dbe3eb;
}

.refined-course-page .course-reviews-section {
 padding-bottom: 2.55rem;
}

.refined-course-page .course-review-summary {
 border: 1px solid #dbe3eb;
 background: #ffffff;
}

.refined-course-page .course-review-bars div {
 background: #e8eef4;
}

.refined-course-page .course-review-list article {
 border: 1px solid #dbe3eb;
 border-left: 3px solid var(--primary);
 background: #ffffff;
}

.refined-course-page .course-review-list h3 {
 margin-bottom: 0.45rem;
 font-weight: 600;
}

.refined-course-page .course-review-list p {
 color: var(--on-surface-variant);
 line-height: 1.55;
}

.flow-page .form-section.embedded {
 align-items: start;
}

.submitted-page {
 background: #f8fafc;
}

.submitted-card {
 display: grid;
 gap: 1rem;
 border: 1px solid #dbe3eb;
 border-radius: 14px;
 background: #ffffff;
 box-shadow: 0 18px 36px rgba(0, 32, 70, 0.08);
}

.submitted-card > p:not(.eyebrow) {
 max-width: 720px;
 color: var(--on-surface-variant);
 font-size: 1.02rem;
 line-height: 1.6;
}

.submitted-next-steps,
.submitted-support-card {
 padding: 1rem 1.1rem;
 border: 1px solid #dbe3eb;
 border-radius: 10px;
 background: #f8fafc;
}

.submitted-next-steps h2 {
 margin-bottom: 0.65rem;
 color: var(--primary);
 font-size: 1.05rem;
 font-weight: 600;
}

.submitted-next-steps ul {
 display: grid;
 gap: 0.45rem;
 margin: 0;
 padding-left: 1.1rem;
 color: var(--on-surface-variant);
}

.submitted-support-card {
 background: #fffaf5;
 border-color: rgba(242, 140, 40, 0.32);
}

.submitted-support-card strong {
 display: block;
 margin-bottom: 0.3rem;
 color: var(--primary);
 font-weight: 600;
}

.submitted-support-card p {
 margin: 0 0 0.45rem;
 color: var(--on-surface-variant);
}

.submitted-support-card a {
 color: var(--primary);
 font-weight: 600;
}

.submitted-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 0.75rem;
 margin-top: 0.4rem;
}

@media (max-width: 760px) {
 .refined-course-page .course-outline-content {
 padding-left: 0;
 }

 .refined-course-page .course-provider-strip,
 .refined-course-page .course-proof-bullets {
 grid-template-columns: 1fr;
 }
}


/* Review rating star precision and layout guard */
.course-review-stars,
.course-review-card-head .course-review-stars,
.course-review-list .course-review-stars {
 display: inline-flex !important;
 flex-direction: row !important;
 gap: 0.16rem;
 align-items: center;
 width: max-content;
 margin: 0 !important;
 color: #f28c28;
 line-height: 1;
 white-space: nowrap;
}

.course-review-stars .course-star-icon,
.course-review-card-head .course-review-stars .course-star-icon,
.course-review-list .course-review-stars .course-star-icon {
 position: relative;
 display: inline-block !important;
 width: 0.82rem;
 height: 0.82rem;
 flex: 0 0 0.82rem;
 margin: 0 !important;
 overflow: hidden;
 background: #d7e0e8;
 clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 56%, 79% 91%, 50% 70%, 21% 91%, 32% 56%, 2% 35%, 39% 35%);
}

.course-review-stars .course-star-icon::after {
 content: "";
 position: absolute;
 inset: 0 auto 0 0;
 width: var(--star-fill, 100%);
 background: #f28c28;
}


/* Compact review summary after distribution removal */
.refined-course-page .course-review-summary {
 display: inline-flex;
 width: fit-content;
 max-width: 100%;
 align-items: center;
 padding: 0.8rem 1rem;
 border: 1px solid #dbe3eb;
 border-radius: 10px;
 background: #ffffff;
}

.refined-course-page .course-review-score {
 display: flex;
 align-items: center;
 gap: 0.75rem;
 padding: 0;
 border: 0;
}

.refined-course-page .course-review-score > strong {
 color: var(--primary);
 font-size: 1.65rem;
 font-weight: 600;
 letter-spacing: 0;
 line-height: 1;
}

.refined-course-page .course-review-score > div {
 display: grid;
 gap: 0.18rem;
}

.refined-course-page .course-review-score div > span:last-child {
 color: var(--text-muted);
 font-size: 0.86rem;
 font-weight: 600;
}

@media (max-width: 760px) {
 .refined-course-page .course-review-summary {
 width: 100%;
 }
}


/* Included-with-course green checklist polish */
.refined-course-page .course-receive-section .course-two-column-list > div:first-child .course-check-list {
 gap: 0.7rem;
}

.refined-course-page .course-receive-section .course-two-column-list > div:first-child .course-check-list li {
 padding-left: 1.8rem;
}

.refined-course-page .course-receive-section .course-two-column-list > div:first-child .course-check-list li::before {
 top: 0.2rem;
 width: 1rem;
 height: 1rem;
 border-radius: 999px;
 background: #16a34a;
 box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.12);
}

.refined-course-page .course-receive-section .course-two-column-list > div:first-child .course-check-list li::after {
 content: "";
 position: absolute;
 left: 0.25rem;
 top: 0.52rem;
 width: 0.5rem;
 height: 0.36rem;
 background: #ffffff;
 clip-path: polygon(14% 49%, 38% 72%, 86% 18%, 100% 31%, 39% 96%, 0 61%);
}


/* Compact sticky registration team CTA */
.refined-course-page .registration-team-block {
 display: grid;
 gap: 0.42rem;
 margin-top: 0.8rem;
 padding-top: 0.8rem;
}

.refined-course-page .registration-team-block strong {
 display: block;
 margin: 0;
 line-height: 1.2;
}

.refined-course-page .registration-team-block .button {
 margin-top: 0;
}


/* Compact sticky registration primary/secondary CTA spacing */
.refined-course-page .popular-registration-panel .course-session-action + .button {
 margin-top: 0.42rem;
}

.refined-course-page .popular-registration-panel .course-session-action.selecting-session + .button {
 margin-top: 0.62rem;
}


/* Homepage featured cards aligned with course directory */
.gs-course-grid .directory-course-card {
 /* Unify with the flagship tiles above: same radius + soft shadow so the two
    bands in "Most Required Training" read as one card system, not two. */
 background: var(--surface-white);
 border-radius: var(--radius-lg);
 box-shadow: var(--shadow-soft);
}

.gs-course-grid .directory-course-image {
 height: 190px;
}

.gs-course-grid .directory-course-actions {
 margin-top: auto;
}

.home-featured-course-card .directory-course-body h3 {
 font-size: 1.08rem;
 line-height: 1.32;
}

.home-featured-course-card .directory-course-body p {
 font-size: 0.9rem;
}

/* Homepage featured cards show full titles + descriptions (no catalog line-clamp,
   which was cutting long names/blurbs mid-word). Cards equalize via grid rows. */
.home-featured-course-card .directory-course-heading {
 display: block;
}

.home-featured-course-card .directory-course-heading > div:first-child {
 min-height: 0;
}

.home-featured-course-card .directory-course-heading h3,
.home-featured-course-card .directory-course-heading p {
 display: block;
 overflow: visible;
 -webkit-line-clamp: unset;
 min-height: 0;
 margin: 0;
}

/* Title + price share the top row; the description runs the full card width below
   (not trapped in a left column next to a reserved price slot). */
.home-featured-course-card .directory-heading-row {
 display: flex;
 justify-content: space-between;
 align-items: baseline;
 gap: 1rem;
 margin-bottom: 0.5rem;
}

.home-featured-course-card .directory-price {
 flex: 0 0 auto;
 padding: 0;
}

.home-featured-course-card .directory-price span {
 display: none;
}

.home-featured-course-card .directory-price strong {
 font-size: 1.2rem;
}

/* Actions sit flat on the card surface (no gray footer bar), like the flagship
   tiles; a single hairline is the only separator. */
.home-featured-course-card .directory-course-actions {
 padding: 1rem 1.35rem 1.35rem;
 background: transparent;
 border-top: 1px solid var(--surface-container);
}

/* Courses dropdown menu (Phase 2, spec section 3.1) */
.nav-courses {
 position: relative;
 display: inline-flex;
 align-items: stretch;
}

.nav-courses-trigger {
 display: inline-flex;
 align-items: center;
 gap: 0.34rem;
 padding: 0 0.62rem;
 border: none;
 border-bottom: 2px solid transparent;
 background: none;
 color: #405466;
 font: inherit;
 font-size: 0.84rem;
 font-weight: 700;
 cursor: pointer;
 white-space: nowrap;
}

.nav-courses-trigger:hover,
.nav-courses-trigger[aria-expanded="true"] {
 color: var(--primary);
 border-bottom-color: var(--secondary-container);
}

.nav-courses-caret {
 width: 0;
 height: 0;
 border-left: 4px solid transparent;
 border-right: 4px solid transparent;
 border-top: 5px solid currentColor;
 transition: transform 0.15s ease;
}

.nav-courses-trigger[aria-expanded="true"] .nav-courses-caret {
 transform: rotate(180deg);
}

.nav-courses-panel {
 position: fixed;
 z-index: 1200;
 padding: 1.2rem 1.35rem 1rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius-lg);
 background: var(--surface-white);
 box-shadow: 0 20px 44px rgba(0, 32, 70, 0.18);
}

.nav-courses-groups {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1.25rem 1.75rem;
}

.nav-courses-group-label {
 margin: 0 0 0.55rem;
 color: var(--text-muted);
 font-size: 0.7rem;
 font-weight: 700;
 letter-spacing: 0.07em;
 text-transform: uppercase;
}

.nav-courses-group ul {
 display: grid;
 gap: 0.1rem;
 margin: 0;
 padding: 0;
 list-style: none;
}

.nav-courses-group ul a {
 display: block;
 margin-inline: -0.5rem;
 padding: 0.4rem 0.5rem;
 border-radius: var(--radius);
 color: var(--text-primary);
 font-size: 0.88rem;
 font-weight: 600;
 text-decoration: none;
 transition: color 140ms ease, background-color 140ms ease, box-shadow 140ms ease, transform 140ms ease;
}

.nav-courses-group ul a:hover,
.nav-courses-group ul a:focus-visible {
 color: var(--primary);
 background: var(--surface-container-low);
 box-shadow: inset 3px 0 0 var(--secondary-container);
 transform: translateX(2px);
 outline: none;
}

.nav-courses-all {
 display: inline-flex;
 align-items: center;
 gap: 0.34rem;
 margin-top: 0.95rem;
 padding-top: 0.85rem;
 border-top: 1px solid var(--surface-container);
 color: var(--secondary);
 font-size: 0.84rem;
 font-weight: 700;
 text-decoration: none;
}

.nav-courses-all:hover {
 color: var(--primary);
}

@media (max-width: 760px) {
 .nav-courses-groups {
 grid-template-columns: 1fr;
 gap: 0.9rem;
 }
}

/* Homepage featured: compact horizontal flagship tiles + grid (Phase 2/6, spec section 3.2) */
.gs-flagship-band {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 1.5rem;
 /* Deliberate tier break before the featured grid, not an arbitrary 1.75rem gap. */
 margin-bottom: 2.5rem;
}

.gs-flagship-feature {
 display: grid;
 grid-template-columns: 300px 1fr;
 overflow: hidden;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius-lg);
 background: var(--surface-white);
 box-shadow: var(--shadow-soft);
 transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

/* Match the grid cards' hover so both bands feel like one interactive system. */
.gs-flagship-feature:hover {
 border-color: #9eb1c3;
 box-shadow: 0 14px 26px rgba(0, 32, 70, 0.09);
 transform: translateY(-3px);
}

.gs-flagship-media {
 position: relative;
 display: block;
 overflow: hidden;
 background: var(--surface-container);
}

.gs-flagship-media img {
 width: 100%;
 height: 100%;
 min-height: 310px;
 object-fit: cover;
}

.gs-flagship-media span {
 position: absolute;
 left: 0.75rem;
 top: 0.75rem;
 padding: 0.28rem 0.55rem;
 border-radius: var(--radius);
 /* Accent discipline: navy badge so the CTA is the only orange in the tile. */
 background: var(--primary-container);
 color: var(--on-primary);
 font-size: 0.68rem;
 font-weight: 700;
 letter-spacing: 0.04em;
 text-transform: uppercase;
}

.gs-flagship-body {
 display: flex;
 flex-direction: column;
 gap: 0.55rem;
 padding: 1.25rem 1.35rem;
}

.gs-flagship-heading {
 display: flex;
 justify-content: space-between;
 align-items: baseline;
 gap: 1rem;
}

.gs-flagship-heading h3 {
 margin: 0;
 color: var(--primary);
 font-size: 1.16rem;
 line-height: 1.22;
}

.gs-flagship-price {
 flex: 0 0 auto;
 /* Prices are navy across the site (course cards use --primary); match, don't compete. */
 color: var(--primary);
 font-weight: 700;
 white-space: nowrap;
}

.gs-flagship-body > p {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.9rem;
 line-height: 1.5;
}

.gs-flagship-facts {
 display: flex;
 flex-wrap: wrap;
 gap: 0.35rem 0.9rem;
 margin: 0.1rem 0 0;
 padding: 0;
 list-style: none;
}

.gs-flagship-facts li {
 position: relative;
 margin: 0;
 padding-left: 0.9rem;
 color: var(--on-surface-variant);
 font-size: 0.82rem;
 font-weight: 600;
}

.gs-flagship-facts li::before {
 content: "";
 position: absolute;
 left: 0;
 top: 0.42em;
 width: 6px;
 height: 6px;
 border-radius: 50%;
 /* Accent discipline: neutral fact-marker, not amber trim. */
 background: var(--text-muted);
}

.gs-flagship-actions {
 display: flex;
 align-items: center;
 gap: 0.4rem 1rem;
 margin-top: auto;
 padding-top: 0.4rem;
}

.gs-section-footer-link {
 display: flex;
 justify-content: center;
 /* Hairline anchor so "View all courses" closes the section, not floats under it. */
 margin-top: 2.5rem;
 padding-top: 1.75rem;
 border-top: 1px solid var(--surface-container);
}

@media (max-width: 900px) {
 .recert-page {
 --gs-margin: 16px;
 }

 .gs-flagship-band {
 grid-template-columns: 1fr;
 }
}

@media (max-width: 460px) {
 .gs-flagship-feature {
 grid-template-columns: 1fr;
 }

 .gs-flagship-media {
 min-height: 190px;
 }

 .gs-flagship-media img {
 min-height: 0;
 }

 .gs-flagship-actions {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 align-items: stretch;
 gap: 0.75rem;
 }

 .gs-flagship-actions > *,
 .gs-flagship-actions .course-session-action,
 .gs-flagship-actions .button {
 width: 100%;
 min-width: 0;
 }

 .gs-flagship-actions .button {
 justify-content: center;
 }
}

/* Modern course catalog controls */
.catalog-controls {
 display: grid;
 grid-template-columns: minmax(280px, 0.95fr) minmax(0, 2.05fr);
 gap: 0.9rem 1rem;
 align-items: end;
 margin: 0 0 1.25rem;
 padding: 1rem;
 border: 1px solid #d9e2ec;
 border-radius: 10px;
 background: #ffffff;
 box-shadow: 0 14px 34px rgba(0, 32, 70, 0.055);
}

.catalog-controls .catalog-control,
.catalog-controls label.catalog-control {
 display: grid;
 min-width: 0;
 gap: 0.4rem;
}

.catalog-controls .catalog-control > span,
.catalog-control-footer > span {
 color: #536b84;
 font-size: 0.78rem;
 font-weight: 600;
 letter-spacing: 0;
 line-height: 1.2;
 text-transform: none;
}

.catalog-input-shell {
 position: relative;
 min-width: 0;
}

.catalog-input-shell .icon {
 position: absolute;
 left: 0.9rem;
 top: 50%;
 width: 18px;
 height: 18px;
 color: #6b829b;
 pointer-events: none;
 transform: translateY(-50%);
}

.catalog-controls input,
.catalog-controls select {
 min-height: 46px;
 border: 1px solid #cfd9e4;
 border-radius: 8px;
 color: #102f4d;
 background-color: #f8fafc;
 font-size: 0.9rem;
 font-weight: 500;
 line-height: 1.2;
 transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

.catalog-controls input {
 padding: 0.72rem 0.85rem 0.72rem 2.45rem;
}

.catalog-controls select {
 appearance: none;
 padding: 0.72rem 2.25rem 0.72rem 0.85rem;
 background-image: linear-gradient(45deg, transparent 50%, #456179 50%), linear-gradient(135deg, #456179 50%, transparent 50%);
 background-position: calc(100% - 17px) 19px, calc(100% - 12px) 19px;
 background-size: 5px 5px, 5px 5px;
 background-repeat: no-repeat;
}

.catalog-controls input::placeholder {
 color: #7b8da0;
}

.catalog-controls input:hover,
.catalog-controls select:hover {
 border-color: #aebdca;
 background-color: #ffffff;
}

.catalog-controls input:focus,
.catalog-controls select:focus,
.catalog-controls input:focus-visible,
.catalog-controls select:focus-visible {
 border-color: #0b3a63;
 outline: none;
 background-color: #ffffff;
 box-shadow: 0 0 0 3px rgba(11, 58, 99, 0.12);
}

.catalog-filter-grid {
 display: grid;
 grid-template-columns: repeat(4, minmax(0, 1fr));
 gap: 0.75rem;
 min-width: 0;
}

.catalog-control-footer {
 grid-column: 1 / -1;
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 0.8rem;
 min-height: 34px;
 padding-top: 0.85rem;
 border-top: 1px solid #e7edf3;
}

.catalog-clear-button {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 min-height: 34px;
 padding: 0.45rem 0.7rem;
 border: 1px solid #b8c6d4;
 border-radius: 8px;
 color: #0b3a63;
 background: #ffffff;
 font: inherit;
 font-size: 0.82rem;
 font-weight: 600;
 line-height: 1;
 cursor: pointer;
 transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

.catalog-clear-button:hover,
.catalog-clear-button:focus-visible {
 border-color: #0b3a63;
 outline: none;
 background: #f3f7fb;
 box-shadow: 0 6px 16px rgba(0, 32, 70, 0.08);
}

@media (max-width: 1180px) {
 .catalog-controls {
 grid-template-columns: 1fr;
 }

 .catalog-filter-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }
}

@media (max-width: 620px) {
 .catalog-controls {
 padding: 0.85rem;
 border-radius: 8px;
 }

 .catalog-filter-grid {
 grid-template-columns: 1fr;
 }

 .catalog-control-footer {
 align-items: flex-start;
 flex-direction: column;
 }

 .catalog-clear-button {
 width: 100%;
 }
}

/* Modern FAQ disclosure controls for specific course pages */
.refined-course-page .course-faq-item summary {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 1rem;
 min-height: 58px;
 list-style: none;
 cursor: pointer;
 user-select: none;
}

.refined-course-page .course-faq-item summary::-webkit-details-marker {
 display: none;
}

.refined-course-page .course-faq-item summary::marker {
 content: "";
}

.refined-course-page .course-faq-item summary::after {
 content: "";
 flex: 0 0 32px;
 width: 32px;
 height: 32px;
 border: 1px solid #d3dee9;
 border-radius: 999px;
 background-color: #f8fafc;
 background-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9L12 15L18 9' stroke='%230B3A63' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
 background-repeat: no-repeat;
 background-position: center;
 background-size: 18px 18px;
 transform: rotate(0deg);
 transition: transform 160ms ease, border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

.refined-course-page .course-faq-item summary:hover::after,
.refined-course-page .course-faq-item summary:focus-visible::after {
 border-color: #0b3a63;
 background-color: #eef5fb;
 box-shadow: 0 6px 14px rgba(0, 32, 70, 0.08);
}

.refined-course-page .course-faq-item summary:focus-visible {
 outline: 2px solid rgba(11, 58, 99, 0.22);
 outline-offset: 4px;
}

.refined-course-page .course-faq-item[open] summary::after {
 border-color: #0b3a63;
 background-color: #eef5fb;
 transform: rotate(180deg);
}

/* Refined course FAQ accordion */
.refined-course-page .course-faq-panel {
 padding-top: 2.8rem;
}

.refined-course-page .course-faq-panel h2 {
 margin-bottom: 0;
}

.refined-course-page .course-faq-list {
 max-width: 820px;
 margin-top: 1.05rem;
 overflow: hidden;
 border: 1px solid #d9e2ec;
 border-radius: 12px;
 background: #ffffff;
 box-shadow: none;
}

.refined-course-page .course-faq-item {
 border: 0;
 border-radius: 0;
 background: #ffffff;
}

.refined-course-page .course-faq-item + .course-faq-item {
 border-top: 1px solid #e7edf3;
}

.refined-course-page .course-faq-item summary {
 display: grid;
 grid-template-columns: minmax(0, 1fr) 22px;
 align-items: center;
 gap: 1.25rem;
 min-height: 0;
 padding: 1.12rem 1.2rem;
 border-top: 0;
 color: #082f52;
 font-size: 0.98rem;
 font-weight: 600;
 line-height: 1.35;
 list-style: none;
 cursor: pointer;
 user-select: none;
 transition: background-color 160ms ease, color 160ms ease;
}

.refined-course-page .course-faq-item summary::-webkit-details-marker {
 display: none;
}

.refined-course-page .course-faq-item summary::marker {
 content: "";
}

.refined-course-page .course-faq-item summary::after {
 content: "";
 justify-self: end;
 flex: initial;
 width: 18px;
 height: 18px;
 border: 0;
 border-radius: 0;
 background-color: transparent;
 background-image: linear-gradient(#0b3a63, #0b3a63), linear-gradient(#0b3a63, #0b3a63);
 background-position: center, center;
 background-repeat: no-repeat;
 background-size: 14px 2px, 2px 14px;
 box-shadow: none;
 opacity: 0.86;
 transform: none;
 transition: background-size 160ms ease, opacity 160ms ease;
}

.refined-course-page .course-faq-item summary:hover,
.refined-course-page .course-faq-item summary:focus-visible,
.refined-course-page .course-faq-item[open] summary {
 background-color: #f8fafc;
 color: #062744;
}

.refined-course-page .course-faq-item summary:hover::after,
.refined-course-page .course-faq-item summary:focus-visible::after,
.refined-course-page .course-faq-item[open] summary::after {
 border: 0;
 background-color: transparent;
 box-shadow: none;
 opacity: 1;
}

.refined-course-page .course-faq-item[open] summary::after {
 background-size: 14px 2px, 2px 0;
 transform: none;
}

.refined-course-page .course-faq-item summary:focus-visible {
 outline: 2px solid rgba(11, 58, 99, 0.22);
 outline-offset: -2px;
}

.refined-course-page .course-faq-item p {
 max-width: 690px;
 margin: 0;
 padding: 0 3.8rem 1.25rem 1.2rem;
 color: #536b84;
 font-size: 0.94rem;
 line-height: 1.65;
}

@media (max-width: 620px) {
 .refined-course-page .course-faq-item summary {
 padding: 1rem;
 }

 .refined-course-page .course-faq-item p {
 padding: 0 2.6rem 1.1rem 1rem;
 }
}

/* FAQ typography polish */
.refined-course-page .course-faq-item summary {
 grid-template-columns: 30px minmax(0, 1fr) 22px;
 gap: 0.95rem;
 padding: 1.14rem 1.2rem;
 color: #062744;
 font-size: 1rem;
 font-weight: 600;
}

.refined-course-page .course-faq-item summary::before {
 content: "Q";
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 30px;
 height: 30px;
 border-radius: 8px;
 color: #0b3a63;
 background: #eef5fb;
 font-size: 0.78rem;
 font-weight: 600;
 line-height: 1;
}

.refined-course-page .course-faq-item[open] summary::before {
 color: #ffffff;
 background: #0b3a63;
}

.refined-course-page .course-faq-item p {
 max-width: 720px;
 margin: -0.22rem 0 0;
 padding: 0 3.8rem 1.35rem 4.15rem;
 color: #405a73;
 font-size: 0.96rem;
 line-height: 1.72;
}

.refined-course-page .course-faq-item[open] p {
 background: linear-gradient(90deg, rgba(238, 245, 251, 0.7), rgba(255, 255, 255, 0));
}

@media (max-width: 620px) {
 .refined-course-page .course-faq-item summary {
 grid-template-columns: 28px minmax(0, 1fr) 20px;
 gap: 0.8rem;
 padding: 1rem;
 font-size: 0.96rem;
 }

 .refined-course-page .course-faq-item summary::before {
 width: 28px;
 height: 28px;
 }

 .refined-course-page .course-faq-item p {
 padding: 0 2.6rem 1.15rem 3.8rem;
 font-size: 0.94rem;
 }
}

/* FAQ accordion cleanup: remove gradient and align rows */
.refined-course-page .course-faq-item {
 background: #ffffff;
 transition: background-color 160ms ease;
}

.refined-course-page .course-faq-item:hover,
.refined-course-page .course-faq-item[open] {
 background: #f8fafc;
}

.refined-course-page .course-faq-item summary {
 min-height: 64px;
 padding: 0 1.2rem;
 align-items: center;
 background: transparent;
 line-height: 1.25;
}

.refined-course-page .course-faq-item summary:hover,
.refined-course-page .course-faq-item summary:focus-visible,
.refined-course-page .course-faq-item[open] summary {
 background: transparent;
}

.refined-course-page .course-faq-item summary::before,
.refined-course-page .course-faq-item summary::after {
 align-self: center;
}

.refined-course-page .course-faq-item p {
 margin: 0;
 padding: 0 3.8rem 1.35rem 4.15rem;
 background: transparent;
}

.refined-course-page .course-faq-item[open] p {
 background: transparent;
}

@media (max-width: 620px) {
 .refined-course-page .course-faq-item summary {
 min-height: 62px;
 padding: 0 1rem;
 }

 .refined-course-page .course-faq-item p {
 padding: 0 2.6rem 1.15rem 3.8rem;
 }
}

/* FAQ list should be continuous rows, not gapped cards */
.refined-course-page .course-faq-list {
 display: block;
 gap: 0;
 row-gap: 0;
}

.refined-course-page .course-faq-item {
 margin: 0;
}

/* FAQ answer presentation polish */
.refined-course-page .course-faq-item p {
 display: grid;
 grid-template-columns: 30px minmax(0, 1fr);
 gap: 0.9rem;
 align-items: start;
 max-width: none;
 margin: 0 1.2rem 1.2rem;
 padding: 0.9rem 1rem;
 border: 1px solid #e1e9f1;
 border-left: 3px solid #aec7f7;
 border-radius: 8px;
 color: #304d67;
 background: #ffffff;
 font-size: 0.95rem;
 line-height: 1.68;
}

.refined-course-page .course-faq-item p::before {
 content: "A";
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 26px;
 height: 26px;
 border-radius: 7px;
 color: #0b3a63;
 background: #eef5fb;
 font-size: 0.74rem;
 font-weight: 600;
 line-height: 1;
}

@media (max-width: 620px) {
 .refined-course-page .course-faq-item p {
 grid-template-columns: 28px minmax(0, 1fr);
 gap: 0.75rem;
 margin: 0 1rem 1rem;
 padding: 0.85rem;
 font-size: 0.94rem;
 }

 .refined-course-page .course-faq-item p::before {
 width: 24px;
 height: 24px;
 }
}

.refined-course-page .course-faq-item[open] p {
 background: #ffffff;
}

/* FAQ open item should not apply a separate row background */
.refined-course-page .course-faq-item[open] {
 background: transparent;
}
/* Align related training card metadata and actions */
.refined-course-page .course-related-card {
 height: 100%;
}

.refined-course-page .course-related-card > div {
 display: grid;
 grid-template-rows: auto minmax(2.55rem, auto) minmax(3.15rem, auto) auto 36px;
 min-height: 244px;
 height: 100%;
 align-content: stretch;
}

.refined-course-page .course-related-card h3 {
 display: -webkit-box;
 min-height: 2.55rem;
 overflow: hidden;
 -webkit-box-orient: vertical;
 -webkit-line-clamp: 2;
}

.refined-course-page .course-related-card p {
 display: -webkit-box;
 min-height: 3.15rem;
 overflow: hidden;
 -webkit-box-orient: vertical;
 -webkit-line-clamp: 2;
}

.refined-course-page .course-related-card dl {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 0.45rem;
 align-self: end;
 margin: 0 0 0.72rem;
}

.refined-course-page .course-related-card dl div {
 display: grid;
 gap: 0.1rem;
 min-width: 0;
 padding: 0;
 border: 0;
 border-radius: 0;
 background: transparent;
}

.refined-course-page .course-related-card dt {
 color: #6b829b;
 font-size: 0.58rem;
 font-weight: 600;
 line-height: 1;
 text-transform: uppercase;
}

.refined-course-page .course-related-card dd {
 max-width: 100%;
 margin: 0;
 overflow: hidden;
 color: #0b3a63;
 font-size: 0.76rem;
 font-weight: 600;
 line-height: 1.18;
 text-align: left;
 text-overflow: ellipsis;
 white-space: nowrap;
}

.refined-course-page .course-related-card .button {
 align-self: end;
 width: 100%;
 min-height: 36px;
 margin: 0;
}

@media (max-width: 620px) {
 .refined-course-page .course-related-card > div {
 min-height: 0;
 }
}

/* Related training metadata readability polish */
.refined-course-page .course-related-card dl {
 gap: 0.55rem;
 padding-top: 0.65rem;
 border-top: 1px solid #e7edf3;
}

.refined-course-page .course-related-card dl div {
 align-content: start;
 min-height: 34px;
}

.refined-course-page .course-related-card dt {
 margin-bottom: 0.22rem;
 color: #7a8fa3;
}

.refined-course-page .course-related-card dd {
 display: -webkit-box;
 min-height: 1.85em;
 overflow: hidden;
 color: #102f4d;
 font-size: 0.78rem;
 line-height: 1.25;
 text-overflow: clip;
 white-space: normal;
 -webkit-box-orient: vertical;
 -webkit-line-clamp: 2;
}

/* Related training metadata must never clip values */
.refined-course-page .course-related-card > div {
 grid-template-rows: auto minmax(2.55rem, auto) minmax(3.15rem, auto) minmax(4.45rem, auto) 36px;
}

.refined-course-page .course-related-card dl {
 grid-template-columns: 0.82fr 1.22fr 1fr;
 min-height: 4.45rem;
 align-items: start;
}

.refined-course-page .course-related-card dl div {
 min-height: 0;
}

.refined-course-page .course-related-card dd {
 display: block;
 min-height: 0;
 overflow: visible;
 text-overflow: clip;
 white-space: normal;
 -webkit-line-clamp: unset;
 -webkit-box-orient: initial;
}

/* Related training metadata rows: readable, unclipped, aligned */
.refined-course-page .course-related-card > div {
 grid-template-rows: auto minmax(2.55rem, auto) minmax(3.15rem, auto) minmax(7.1rem, auto) 36px;
}

.refined-course-page .course-related-card dl {
 display: grid;
 grid-template-columns: 1fr;
 gap: 0;
 min-height: 7.1rem;
 padding-top: 0.45rem;
 border-top: 1px solid #e7edf3;
}

.refined-course-page .course-related-card dl div {
 display: flex;
 align-items: flex-start;
 justify-content: space-between;
 gap: 0.85rem;
 min-height: 0;
 padding: 0.36rem 0;
 border: 0;
 background: transparent;
}

.refined-course-page .course-related-card dl div + div {
 border-top: 1px solid #eef3f7;
}

.refined-course-page .course-related-card dt {
 flex: 0 0 auto;
 margin: 0;
 color: #7a8fa3;
 font-size: 0.58rem;
 font-weight: 600;
 line-height: 1.25;
 text-transform: uppercase;
}

.refined-course-page .course-related-card dd {
 display: block;
 flex: 1 1 auto;
 width: auto;
 max-width: none;
 min-width: 0;
 min-height: 0;
 margin: 0;
 overflow: visible;
 color: #102f4d;
 font-size: 0.78rem;
 font-weight: 600;
 line-height: 1.28;
 text-align: right;
 text-overflow: clip;
 white-space: normal;
 word-break: normal;
 -webkit-box-orient: initial;
 -webkit-line-clamp: unset;
}

/* Related training simplified cards: image tag, no metadata row */
.refined-course-page .course-related-card {
 overflow: hidden;
}

.refined-course-page .course-related-image {
 position: relative;
 display: block;
 height: 138px;
 aspect-ratio: auto;
 overflow: hidden;
 border-bottom: 1px solid #e7edf3;
 background: #eef3f7;
}

.refined-course-page .course-related-image img {
 display: block;
 width: 100%;
 height: 100%;
 min-height: 0;
 object-fit: cover;
}

.refined-course-page .course-related-image-tag {
 position: absolute;
 left: 0.85rem;
 top: 0.85rem;
 display: inline-flex;
 align-items: center;
 max-width: calc(100% - 1.7rem);
 min-height: 28px;
 padding: 0.34rem 0.55rem;
 overflow: hidden;
 border-radius: 8px;
 color: #0b3a63;
 background: rgba(255, 255, 255, 0.95);
 box-shadow: 0 6px 14px rgba(0, 32, 70, 0.08);
 font-size: 0.72rem;
 font-weight: 600;
 line-height: 1;
 text-overflow: ellipsis;
 white-space: nowrap;
}

.refined-course-page .course-related-card > div {
 display: grid;
 grid-template-rows: minmax(2.55rem, auto) minmax(3.2rem, auto) 36px;
 min-height: 170px;
 height: 100%;
 padding: 1rem 0.95rem 0.95rem;
 align-content: stretch;
}

.refined-course-page .course-related-card h3 {
 display: -webkit-box;
 min-height: 2.55rem;
 margin: 0 0 0.5rem;
 overflow: hidden;
 color: #082f52;
 font-size: 0.98rem;
 font-weight: 600;
 line-height: 1.3;
 -webkit-box-orient: vertical;
 -webkit-line-clamp: 2;
}

.refined-course-page .course-related-card p {
 display: -webkit-box;
 min-height: 3.2rem;
 margin: 0 0 0.85rem;
 overflow: hidden;
 color: #536b84;
 font-size: 0.86rem;
 line-height: 1.48;
 -webkit-box-orient: vertical;
 -webkit-line-clamp: 2;
}

.refined-course-page .course-related-card dl {
 display: none;
}

.refined-course-page .course-related-card .button {
 align-self: end;
 width: 100%;
 min-height: 36px;
 margin: 0;
}

@media (max-width: 620px) {
 .refined-course-page .course-related-image {
 height: 150px;
 }

 .refined-course-page .course-related-card > div {
 min-height: 0;
 }
}

/* Related training image should feel like a real course card image */
.refined-course-page .course-related-image {
 height: 160px;
}

/* Related training image tag should match directory image tags */
.refined-course-page .course-related-card .course-related-image-tag {
 position: absolute;
 left: 0.85rem;
 top: 0.85rem;
 display: inline-flex;
 align-items: center;
 width: auto;
 max-width: calc(100% - 1.7rem);
 min-height: 28px;
 margin: 0;
 padding: 0.34rem 0.55rem;
 overflow: hidden;
 border: 0;
 border-radius: 8px;
 color: #0b3a63;
 background: rgba(255, 255, 255, 0.96);
 box-shadow: 0 6px 14px rgba(0, 32, 70, 0.12);
 font-size: 0.72rem;
 font-weight: 600;
 line-height: 1;
 text-overflow: ellipsis;
 text-transform: none;
 white-space: nowrap;
}

/* Related training spacing after metadata removal */
.refined-course-page .course-related-card > div {
 display: flex;
 min-height: 172px;
 height: auto;
 padding: 0.95rem;
 flex-direction: column;
}

.refined-course-page .course-related-card h3 {
 min-height: 0;
 margin: 0 0 0.55rem;
}

.refined-course-page .course-related-card p {
 min-height: 0;
 margin: 0;
}

.refined-course-page .course-related-card .button {
 margin-top: auto;
}

/* Related training compact vertical rhythm */
.refined-course-page .course-related-card {
 gap: 0;
}

.refined-course-page .course-related-card > div {
 display: grid;
 grid-template-rows: minmax(2.55rem, max-content) minmax(3rem, max-content) 36px;
 gap: 0.55rem;
 min-height: 0;
 height: auto;
 padding: 0.85rem 0.95rem 0.95rem;
}

.refined-course-page .course-related-card h3,
.refined-course-page .course-related-card p {
 margin: 0;
}

.refined-course-page .course-related-card .button {
 align-self: end;
 margin: 0;
}

/* Site-wide modern select styling */
select {
 appearance: none;
 -webkit-appearance: none;
 min-height: 46px;
 padding: 0.72rem 2.45rem 0.72rem 0.85rem;
 border: 1px solid #cfd9e4;
 border-radius: 8px;
 color: #102f4d;
 background-color: #f8fafc;
 background-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9L12 15L18 9' stroke='%23456179' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
 background-repeat: no-repeat;
 background-position: right 0.85rem center;
 background-size: 18px 18px;
 font-weight: 500;
 line-height: 1.2;
 cursor: pointer;
 transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

select:hover {
 border-color: #aebdca;
 background-color: #ffffff;
}

select:focus,
select:focus-visible {
 border-color: #0b3a63;
 outline: none;
 background-color: #ffffff;
 background-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9L12 15L18 9' stroke='%230B3A63' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
 box-shadow: 0 0 0 3px rgba(11, 58, 99, 0.12);
}

select:disabled {
 color: #7b8da0;
 background-color: #eef3f7;
 cursor: not-allowed;
 opacity: 0.72;
}

select option {
 color: #102f4d;
 background: #ffffff;
}

.search-filters select {
 min-height: 36px;
 padding: 0.42rem 2rem 0.42rem 0.65rem;
 border-radius: 8px;
 background-position: right 0.62rem center;
 background-size: 16px 16px;
 font-size: 0.78rem;
 font-weight: 600;
}

.catalog-controls select {
 background-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9L12 15L18 9' stroke='%23456179' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
 background-position: right 0.85rem center;
 background-size: 18px 18px;
}

.catalog-controls select:focus,
.catalog-controls select:focus-visible {
 background-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9L12 15L18 9' stroke='%230B3A63' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.directory-session-field select {
 padding-right: 2.35rem;
 background-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9L12 15L18 9' stroke='%23456179' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
 background-repeat: no-repeat;
 background-position: right 0.78rem center;
 background-size: 18px 18px;
}

.directory-session-field select:focus,
.directory-session-field select:focus-visible,
.directory-session-field select:active {
 background-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9L12 15L18 9' stroke='%230B3A63' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
 background-repeat: no-repeat;
 background-position: right 0.78rem center;
 background-size: 18px 18px;
 box-shadow: 0 0 0 3px rgba(11, 58, 99, 0.12);
}

.search-filters select {
 background-color: #f8fafc;
 background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9L12 15L18 9' stroke='%23456179' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
 background-repeat: no-repeat;
 background-position: right 0.62rem center;
 background-size: 16px 16px;
}

.search-filters select:focus,
.search-filters select:focus-visible {
 background-color: #ffffff;
 background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9L12 15L18 9' stroke='%230B3A63' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
 background-repeat: no-repeat;
 background-position: right 0.62rem center;
 background-size: 16px 16px;
}

/* Custom dropdown menus */
.modern-select {
 position: relative;
 width: 100%;
 min-width: 0;
}

.modern-select-trigger {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 0.85rem;
 width: 100%;
 min-height: 46px;
 padding: 0.72rem 0.78rem 0.72rem 0.9rem;
 border: 1px solid #cfd9e4;
 border-radius: 8px;
 color: #102f4d;
 background: #f8fafc;
 font: inherit;
 font-size: 0.9rem;
 font-weight: 500;
 line-height: 1.2;
 text-align: left;
 cursor: pointer;
 transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

.modern-select-trigger > span:first-child {
 min-width: 0;
 overflow: hidden;
 text-overflow: ellipsis;
 white-space: nowrap;
}

.modern-select-placeholder {
 color: #7b8da0;
}

.modern-select-chevron {
 flex: 0 0 auto;
 width: 18px;
 height: 18px;
 border-radius: 0;
 background: transparent;
 position: relative;
 transition: background-color 160ms ease, transform 160ms ease;
}

.modern-select-chevron::before {
 content: "";
 position: absolute;
 left: 50%;
 top: 47%;
 width: 7px;
 height: 7px;
 border-right: 2px solid #456179;
 border-bottom: 2px solid #456179;
 transform: translate(-50%, -65%) rotate(45deg);
}

.modern-select-trigger:hover {
 border-color: #aebdca;
 background: #ffffff;
}

.modern-select.is-open .modern-select-trigger,
.modern-select-trigger:focus-visible {
 border-color: #0b3a63;
 outline: none;
 background: #ffffff;
 box-shadow: 0 0 0 3px rgba(11, 58, 99, 0.12);
}

.modern-select.is-open .modern-select-chevron {
 background: transparent;
 transform: rotate(180deg);
}

.modern-select.is-disabled .modern-select-trigger,
.modern-select-trigger:disabled {
 color: #7b8da0;
 background: #eef3f7;
 cursor: not-allowed;
 opacity: 0.72;
}

.modern-select-menu {
 position: fixed;
 z-index: 140;
 top: calc(100% + 0.38rem);
 left: 0;
 right: 0;
 display: grid;
 gap: 0.15rem;
 max-height: 280px;
 padding: 0.35rem;
 overflow-y: auto;
 border: 1px solid #cfd9e4;
 border-radius: 10px;
 background: #ffffff;
 box-shadow: 0 18px 38px rgba(0, 32, 70, 0.16);
}


.modern-select-menu-portal {
 right: auto;
 overscroll-behavior: contain;
}

.modern-select-menu.modern-select-compact {
 min-width: 190px;
}

.modern-select-menu.modern-select-session {
 z-index: 320;
}
.modern-select-option {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 0.8rem;
 width: 100%;
 min-height: 38px;
 padding: 0.58rem 0.65rem;
 border: 0;
 border-radius: 7px;
 color: #243f58;
 background: transparent;
 font: inherit;
 font-size: 0.88rem;
 font-weight: 500;
 line-height: 1.25;
 text-align: left;
 cursor: pointer;
}

.modern-select-option:hover,
.modern-select-option:focus-visible {
 outline: none;
 color: #082f52;
 background: #f3f7fb;
}

.modern-select-option.is-selected {
 color: #0b3a63;
 background: #eef5fb;
 font-weight: 600;
}

.modern-select-option:disabled {
 color: #8a9bae;
 cursor: not-allowed;
 opacity: 0.72;
}

.modern-select-check {
 position: relative;
 flex: 0 0 auto;
 width: 17px;
 height: 17px;
 border-radius: 999px;
 background: #0b3a63;
}

.modern-select-check::before {
 content: "";
 position: absolute;
 left: 5px;
 top: 3px;
 width: 5px;
 height: 8px;
 border-right: 2px solid #ffffff;
 border-bottom: 2px solid #ffffff;
 transform: rotate(45deg);
}

.search-filters .modern-select-trigger,
.modern-select-compact .modern-select-trigger {
 min-height: 36px;
 padding: 0.42rem 0.55rem 0.42rem 0.65rem;
 font-size: 0.78rem;
 font-weight: 600;
}

.search-filters .modern-select-menu,
.modern-select-compact .modern-select-menu {
 min-width: 190px;
 right: auto;
}

.directory-session-field .modern-select-trigger,
.modern-select-session .modern-select-trigger {
 min-height: 42px;
 padding: 0.62rem 0.68rem 0.62rem 0.75rem;
 font-size: 0.9rem;
}

.directory-session-field .modern-select-menu,
.modern-select-session .modern-select-menu {
 z-index: 180;
}

.catalog-controls .modern-select-menu {
 z-index: 160;
}

.catalog-controls .modern-select-trigger span,
.catalog-controls .modern-select-option span {
 text-transform: none;
}

.directory-session-field .modern-select-trigger span,
.directory-session-field .modern-select-option span,
.form-grid .modern-select-trigger span,
.form-grid .modern-select-option span,
.contact-form .modern-select-trigger span,
.contact-form .modern-select-option span {
 text-transform: none;
}

.form-grid .modern-select-trigger span,
.contact-form .modern-select-trigger span {
 font-weight: 500;
}

/* Dropdown refinements: unclipped sessions, plain chevron, no checkmark */
.directory-course-card.selecting-session,
.home-featured-course-card.selecting-session {
 overflow: visible;
 z-index: 8;
}

.directory-course-card.selecting-session .directory-course-body,
.home-featured-course-card.selecting-session .directory-course-body,
.directory-course-card.selecting-session .directory-card-switch,
.home-featured-course-card.selecting-session .directory-card-switch,
.directory-course-card.selecting-session .directory-session-panel,
.home-featured-course-card.selecting-session .directory-session-panel {
 overflow: visible;
}

.course-session-action.selecting-session,
.course-session-action.selecting-session .course-session-panel,
.popular-registration-panel .course-session-panel {
 overflow: visible;
}

.modern-select-session .modern-select-menu,
.directory-session-field .modern-select-menu {
 z-index: 320;
 max-height: 220px;
}

.modern-select-chevron {
 width: 18px;
 height: 18px;
 border-radius: 0;
 background: transparent;
}

.modern-select-chevron::before {
 border-right-color: #456179;
 border-bottom-color: #456179;
}

.modern-select.is-open .modern-select-chevron {
 background: transparent;
 transform: rotate(180deg);
}

.modern-select-trigger:hover .modern-select-chevron,
.modern-select.is-open .modern-select-chevron {
 background: transparent;
}

.modern-select-check {
 display: none;
}

.modern-select-option {
 justify-content: flex-start;
}

/* Secondary support, legal, and request pages */
.legal-hero,
.support-flow-hero {
 background: linear-gradient(180deg, #ffffff 0%, #f6f9fc 100%);
}

.legal-hero-card,
.legal-side-card,
.policy-card,
.support-flow-context,
.support-flow-form-card,
.request-summary {
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
 box-shadow: 0 1px 2px rgba(0, 32, 70, 0.03);
}

.legal-hero-card,
.support-flow-context {
 display: grid;
 gap: 0.75rem;
 align-self: start;
 padding: 1.45rem;
 border-left: 4px solid var(--primary);
}

.legal-hero-card strong,
.support-flow-context strong {
 color: var(--primary);
 font-size: 1.1rem;
 font-weight: 600;
}

.legal-hero-card p,
.support-flow-context p {
 margin: 0;
 color: var(--on-surface-variant);
 line-height: 1.55;
}

.legal-hero-card a {
 color: var(--primary);
 font-weight: 600;
}

.legal-content-section,
.support-flow-section {
 background: var(--surface-container-low);
 border-top: 1px solid var(--surface-container);
}

.legal-layout,
.legal-document-layout,
.support-flow-layout {
 display: grid;
 grid-template-columns: minmax(220px, 0.36fr) minmax(0, 1fr);
 gap: 2rem;
 align-items: start;
}

.support-flow-layout {
 grid-template-columns: minmax(0, 1fr) minmax(300px, 0.42fr);
}

.support-flow-hero-grid {
 display: grid;
 grid-template-columns: minmax(0, 1fr) minmax(320px, 0.5fr);
 gap: 3rem;
 align-items: center;
}

.support-flow-context span {
 color: var(--text-muted);
 font-size: 0.75rem;
 font-weight: 600;
 text-transform: uppercase;
}

.support-flow-form-card,
.request-summary,
.legal-side-card {
 padding: 1.5rem;
}

.support-flow-form-card .section-header,
.support-flow-form-card .stitch-section-heading {
 margin-bottom: 1.25rem;
}

.request-summary {
 position: sticky;
 top: 112px;
 display: grid;
 gap: 0.8rem;
 border-top: 4px solid var(--primary);
}

.request-summary h3,
.request-summary p {
 margin: 0;
}

.request-summary h3 {
 color: var(--primary);
 font-size: 1.16rem;
 font-weight: 600;
}

.request-summary p,
.request-summary li {
 color: var(--on-surface-variant);
 line-height: 1.55;
}

.request-summary ul {
 display: grid;
 gap: 0.45rem;
 margin: 0;
 padding-left: 1.1rem;
}

.legal-side-card {
 position: sticky;
 top: 112px;
 display: grid;
 gap: 0.7rem;
 border-top: 4px solid var(--primary);
}

.legal-side-card h2,
.legal-side-card p,
.policy-card h2,
.policy-card p {
 margin: 0;
}

.legal-side-card h2,
.policy-card h2 {
 color: var(--primary);
 font-size: 1.1rem;
 font-weight: 600;
}

.legal-side-card p,
.policy-card p {
 color: var(--on-surface-variant);
 line-height: 1.58;
}

.legal-faq-list {
 display: grid;
 gap: 0.85rem;
}

.legal-faq-item {
 overflow: hidden;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: #ffffff;
}

.legal-faq-item summary {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 1rem;
 min-height: 58px;
 padding: 0.95rem 1.1rem;
 color: var(--primary);
 cursor: pointer;
 font-weight: 600;
 list-style: none;
}

.legal-faq-item summary::-webkit-details-marker {
 display: none;
}

.legal-faq-item summary::after {
 content: "+";
 flex: 0 0 auto;
 color: var(--primary);
 font-size: 1.2rem;
 font-weight: 500;
}

.legal-faq-item[open] summary::after {
 content: "-";
}

.legal-faq-item p {
 margin: 0;
 padding: 0 1.1rem 1.15rem;
 color: var(--on-surface-variant);
 line-height: 1.62;
}

.policy-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1rem;
}

.policy-card {
 display: grid;
 gap: 0.75rem;
 min-height: 190px;
 padding: 1.25rem;
}

.policy-card a {
 align-self: end;
 color: var(--primary);
 font-weight: 600;
}

.compact-legal-hero .stitch-container {
 max-width: 920px;
}

.legal-document-layout {
 grid-template-columns: 260px minmax(0, 1fr);
}

.legal-document-nav nav {
 display: grid;
 gap: 0.35rem;
}

.legal-document-nav a {
 color: var(--primary);
 font-size: 0.86rem;
 font-weight: 600;
 line-height: 1.35;
}

.legal-document {
 display: grid;
 gap: 1.4rem;
 max-width: 900px;
}

.legal-document section {
 padding-bottom: 1.4rem;
 border-bottom: 1px solid var(--surface-container);
}

.legal-document h2 {
 margin-bottom: 0.65rem;
 color: var(--primary);
 font-size: 1.35rem;
 font-weight: 600;
}

.legal-document p,
.legal-document li {
 color: var(--on-surface-variant);
 line-height: 1.65;
}

.legal-document ul {
 display: grid;
 gap: 0.45rem;
 margin: 0;
 padding-left: 1.15rem;
}

.legal-contact-box {
 display: grid;
 gap: 0.45rem;
 padding: 1.15rem;
 border: 1px solid var(--outline-variant);
 border-left: 4px solid var(--secondary-container);
 border-radius: var(--radius);
 background: #ffffff;
}

.legal-contact-box strong {
 color: var(--primary);
 font-weight: 600;
}

.legal-contact-box p {
 margin: 0;
}

.legal-contact-box a {
 color: var(--primary);
 font-weight: 600;
}

.funding-warning-panel {
 max-width: 980px;
 margin: 0 auto;
 border: 1px solid rgba(242, 140, 40, 0.32);
 border-left: 4px solid var(--secondary-container);
 background: #fffaf5;
}

.funding-support-section {
 align-items: start;
}

.funding-payment-panel {
 border-top: 4px solid var(--primary);
}

.funding-program-section {
 background: var(--surface-container-low);
 border-top: 1px solid var(--surface-container);
 border-bottom: 1px solid var(--surface-container);
}

.funding-program-section .section-header {
 max-width: 880px;
}

.funding-program-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 0.75rem;
 margin-top: 1rem;
}

.funding-program-grid span {
 display: flex;
 align-items: center;
 min-height: 54px;
 padding: 0.8rem 0.9rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 color: var(--primary);
 background: #ffffff;
 font-size: 0.9rem;
 font-weight: 600;
 line-height: 1.35;
}

.funding-form-section {
 align-items: start;
}

.submitted-page {
 min-height: calc(100vh - 122px);
 background: var(--surface-container-low);
}

.submitted-card {
 max-width: 860px;
 padding: 1.8rem;
}

.submitted-card .stitch-kicker {
 margin-bottom: 0;
}

@media (max-width: 980px) {
 .legal-layout,
 .legal-document-layout,
 .support-flow-layout,
 .support-flow-hero-grid,
 .policy-grid,
 .funding-program-grid {
 grid-template-columns: 1fr;
 }

 .legal-side-card,
 .legal-document-nav,
 .request-summary {
 position: static;
 }
}

@media (max-width: 620px) {
 .legal-hero-card,
 .support-flow-context,
 .support-flow-form-card,
 .request-summary,
 .legal-side-card,
 .policy-card {
 padding: 1.15rem;
 }

 .legal-faq-item summary {
 min-height: 52px;
 padding: 0.85rem 0.95rem;
 }

 .legal-faq-item p {
 padding: 0 0.95rem 1rem;
 }
}

.policy-detail-hero {
 position: relative;
}

.policy-back-link {
 display: inline-flex;
 width: fit-content;
 margin-bottom: 1rem;
 color: var(--primary);
 font-size: 0.9rem;
 font-weight: 600;
}

.policy-back-link::before {
 content: "<-";
 margin-right: 0.45rem;
 color: var(--text-muted);
}

.policy-updated-row {
 display: inline-flex;
 align-items: center;
 gap: 0.65rem;
 width: fit-content;
 margin: 0.6rem 0 0.35rem;
 padding: 0.55rem 0.7rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: #ffffff;
}

.policy-updated-row span {
 color: var(--text-muted);
 font-size: 0.76rem;
 font-weight: 600;
 text-transform: uppercase;
}

.policy-updated-row strong {
 color: var(--primary);
 font-weight: 600;
}

.policy-detail-document .policy-key-section {
 padding: 1.25rem;
 border: 1px solid var(--outline-variant);
 border-left: 4px solid var(--primary);
 border-radius: var(--radius);
 background: #ffffff;
}

.policy-key-list {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0.75rem;
 margin: 0;
 padding: 0;
 list-style: none;
}

.policy-key-list li {
 position: relative;
 padding-left: 1.35rem;
 color: var(--on-surface-variant);
 line-height: 1.5;
}

.policy-key-list li::before {
 content: "";
 position: absolute;
 left: 0;
 top: 0.52rem;
 width: 7px;
 height: 7px;
 border-radius: 999px;
 background: var(--secondary-container);
}

.policy-step-list {
 display: grid;
 gap: 0.85rem;
 margin-top: 1rem;
}

.policy-step-list article {
 padding: 1rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: #ffffff;
}

.policy-step-list h3 {
 margin-bottom: 0.35rem;
 color: var(--primary);
 font-size: 1rem;
 font-weight: 600;
}

.policy-step-list p {
 margin: 0;
}

.policy-detail-nav nav a:first-child {
 margin-bottom: 0.2rem;
}

@media (max-width: 720px) {
 .policy-key-list {
 grid-template-columns: 1fr;
 }
}

.policy-reference-body {
 display: grid;
 gap: 1rem;
 max-width: 880px;
}

.policy-reference-body h2 {
 margin: 1.5rem 0 0.2rem;
 padding-top: 1.1rem;
 border-top: 1px solid var(--surface-container);
 color: var(--primary);
 font-size: 1.3rem;
 font-weight: 600;
 line-height: 1.25;
}

.policy-reference-body h2:first-child {
 margin-top: 0;
 padding-top: 0;
 border-top: 0;
}

.policy-reference-body p {
 margin: 0;
 color: var(--on-surface-variant);
 line-height: 1.68;
}

.policy-reference-body ol,
.policy-reference-body ul {
 display: grid;
 gap: 0.55rem;
 margin: 0.2rem 0 0;
 padding-left: 1.4rem;
 color: var(--on-surface-variant);
}

.policy-reference-body li {
 padding-left: 0.15rem;
 line-height: 1.62;
}

.policy-reference-body li > ol,
.policy-reference-body li > ul {
 margin-top: 0.55rem;
}

.policy-reference-body a {
 color: var(--primary);
 font-weight: 600;
}

.policy-reference-body strong {
 color: var(--on-surface);
 font-weight: 600;
}

.legal-faq-answer {
 padding: 0 1.1rem 1.15rem;
}

.legal-faq-answer p {
 margin: 0;
 padding: 0;
}

.legal-faq-answer a {
 color: var(--primary);
 font-weight: 600;
}

.legal-faq-answer p + p {
 margin-top: 0.65rem;
}

/* Enhanced About and Contact pages */
.enhanced-about-hero,
.enhanced-contact-hero {
 background: linear-gradient(180deg, #ffffff 0%, #f6f9fc 100%);
}

.about-hero-image-card {
 box-shadow: 0 18px 40px rgba(0, 32, 70, 0.08);
}


.about-section-intro h2,
.about-training-layout h2,
.about-employer-grid h2 {
 color: var(--primary);
}

.about-editorial-copy {
 padding-left: 1.5rem;
 border-left: 3px solid var(--surface-container);
}

.about-pillar-grid,
.contact-path-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1.35rem;
}

.about-pillar-grid article,
.contact-path-grid article {
 display: grid;
 gap: 0.9rem;
 min-height: 230px;
 padding: 1.45rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius-lg);
 background: #ffffff;
 box-shadow: 0 1px 2px rgba(0, 32, 70, 0.03);
}

.about-pillar-grid .icon,
.contact-path-grid .icon {
 width: 46px;
 height: 46px;
 padding: 0.72rem;
 border-radius: var(--radius);
 color: var(--primary);
 background: var(--surface-container);
}

.about-pillar-grid h3,
.about-pillar-grid p,
.contact-path-grid h3,
.contact-path-grid p {
 margin: 0;
}

.about-pillar-grid h3,
.contact-path-grid h3 {
 color: var(--primary);
 font-size: 1.08rem;
 font-weight: 600;
}

.about-pillar-grid p,
.contact-path-grid p {
 color: var(--on-surface-variant);
 line-height: 1.58;
}

.about-training-section,
.contact-path-section {
 background: #ffffff;
}

.about-training-layout,
.about-employer-grid {
 display: grid;
 grid-template-columns: minmax(0, 1fr) minmax(330px, 0.48fr);
 gap: 3rem;
 align-items: start;
}

.about-training-layout p,
.about-employer-grid p {
 color: var(--on-surface-variant);
 line-height: 1.65;
}

.about-training-tags,
.about-compact-tags {
 display: flex;
 flex-wrap: wrap;
 gap: 0.55rem;
 margin-top: 1.3rem;
}

.about-training-tags span,
.about-compact-tags span {
 display: inline-flex;
 align-items: center;
 min-height: 32px;
 padding: 0.45rem 0.6rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 color: var(--primary);
 background: var(--surface-container-lowest);
 font-size: 0.84rem;
 font-weight: 600;
}

.enhanced-about-card {
 display: grid;
 gap: 0.85rem;
}

.enhanced-about-card p {
 margin: 0;
}

.about-employer-band {
 background: var(--surface-container-low);
 border-top: 1px solid var(--surface-container);
 border-bottom: 1px solid var(--surface-container);
}

.about-support-list {
 display: grid;
 gap: 0.85rem;
}

.about-support-list div {
 display: grid;
 gap: 0.25rem;
 padding: 1rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: #ffffff;
}

.about-support-list strong {
 color: var(--primary);
 font-weight: 600;
}

.about-support-list span {
 color: var(--on-surface-variant);
 line-height: 1.5;
}

.enhanced-office-card {
 align-self: start;
 border-left-color: var(--primary);
 box-shadow: 0 14px 34px rgba(0, 32, 70, 0.08);
}

.enhanced-office-card > .icon {
 color: #ffffff;
 background: var(--primary);
}

.enhanced-office-card .stitch-kicker {
 margin: 0;
}

.contact-office-links {
 display: grid;
 gap: 0.55rem;
 margin-top: 0.25rem;
}

.contact-office-links a {
 gap: 0.45rem;
}

.contact-office-links .icon {
 width: 18px;
 height: 18px;
 padding: 0;
 background: transparent;
}

.contact-path-section {
 padding-top: 4.5rem;
 padding-bottom: 4.5rem;
}

.enhanced-contact-main {
 border-top: 1px solid var(--surface-container);
}

.enhanced-contact-layout {
 grid-template-columns: minmax(0, 1fr) minmax(330px, 0.45fr);
}

.enhanced-contact-form-card,
.enhanced-practical-card {
 box-shadow: 0 1px 2px rgba(0, 32, 70, 0.03);
}

.enhanced-contact-form-card .stitch-kicker {
 margin-bottom: 0.4rem;
}

.enhanced-contact-form-card input::placeholder,
.enhanced-contact-form-card textarea::placeholder {
 color: #8a9bae;
}

.enhanced-practical-card {
 border-top-color: var(--primary);
}

.contact-detail-list {
 display: grid;
 gap: 0.62rem;
 margin: 0.3rem 0 0;
 padding: 0;
 list-style: none;
}

.contact-detail-list li {
 position: relative;
 padding-left: 1.45rem;
 color: var(--on-surface-variant);
 line-height: 1.45;
}

.contact-detail-list li::before {
 content: "";
 position: absolute;
 left: 0;
 top: 0.55rem;
 width: 8px;
 height: 8px;
 border-radius: 999px;
 background: var(--primary-container);
}

.contact-side-actions {
 display: grid;
 gap: 0.65rem;
 margin-top: 0.7rem;
}

.contact-side-actions .button {
 justify-content: center;
}

@media (max-width: 980px) {
 .about-pillar-grid,
 .contact-path-grid,
 .about-training-layout,
 .about-employer-grid,
 .enhanced-contact-layout {
 grid-template-columns: 1fr;
 }

 .about-editorial-copy {
 padding-left: 0;
 border-left: 0;
 }
}

@media (max-width: 620px) {
 .about-pillar-grid article,
 .contact-path-grid article {
 min-height: 0;
 padding: 1.15rem;
 }

}

.enhanced-about-page .about-chip-row + .stitch-hero-actions {
 margin-top: 1.6rem;
}

.funding-notice-section {
 padding-top: 1.2rem;
 padding-bottom: 0;
}

.funding-compact-notice {
 display: grid;
 grid-template-columns: auto minmax(0, 1fr);
 gap: 0.75rem 1rem;
 align-items: start;
 max-width: 1120px;
 margin: 0 auto;
 padding: 0.95rem 1.1rem;
 border: 1px solid rgba(242, 140, 40, 0.34);
 border-left: 4px solid var(--secondary-container);
 border-radius: var(--radius);
 background: #fffaf5;
}

.funding-compact-notice strong {
 color: var(--primary);
 font-weight: 600;
 white-space: nowrap;
}

.funding-compact-notice p {
 margin: 0;
 color: var(--on-surface-variant);
 font-size: 0.94rem;
 line-height: 1.55;
}

@media (max-width: 760px) {
 .funding-compact-notice {
 grid-template-columns: 1fr;
 }

 .funding-compact-notice strong {
 white-space: normal;
 }
}

/* Missing-page expansion: generic course details, resources, and checkout */
.generic-course-page,
.checkout-page,
.blog-page,
.utility-page {
 background: #f8fafc;
 color: #25364a;
}

.generic-course-hero,
.checkout-hero,
.blog-hero {
 background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
 border-bottom: 1px solid #dbe4ef;
 padding: 56px 0 44px;
}

.generic-course-hero-grid,
.checkout-hero-grid {
 display: grid;
 grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.75fr);
 gap: 48px;
 align-items: center;
}

.generic-course-hero-copy h1,
.checkout-hero h1,
.blog-hero h1 {
 color: #0f2f57;
 font-size: clamp(2.25rem, 4vw, 4.6rem);
 line-height: 0.98;
 letter-spacing: 0;
 margin: 12px 0 18px;
 max-width: 860px;
}

.generic-course-hero-copy > p,
.checkout-hero p,
.blog-hero p {
 color: #526579;
 font-size: 1.08rem;
 line-height: 1.65;
 max-width: 720px;
}

.generic-breadcrumb {
 display: flex;
 gap: 10px;
 align-items: center;
 color: #6b7d90;
 font-size: 0.9rem;
 margin-bottom: 22px;
}

.generic-breadcrumb a {
 color: #0f4c81;
 font-weight: 600;
 text-decoration: none;
}

.generic-course-hero-media {
 border: 1px solid #d6e0ea;
 border-radius: 14px;
 overflow: hidden;
 background: #ffffff;
 box-shadow: 0 18px 42px rgba(11, 35, 64, 0.08);
}

.generic-course-hero-media img {
 width: 100%;
 min-height: 340px;
 max-height: 460px;
 object-fit: cover;
 display: block;
}

.generic-course-facts {
 background: #ffffff;
 border-bottom: 1px solid #dbe4ef;
}

.generic-facts-strip {
 display: grid;
 grid-template-columns: repeat(4, minmax(0, 1fr));
 gap: 1px;
 padding: 0;
}

.generic-facts-strip div {
 padding: 22px 24px;
 border-right: 1px solid #e1e8f0;
}

.generic-facts-strip div:last-child {
 border-right: 0;
}

.generic-facts-strip span,
.generic-action-card dt,
.checkout-summary-rows span,
.checkout-line-item span {
 display: block;
 color: #6b7d90;
 font-size: 0.78rem;
 font-weight: 600;
 letter-spacing: 0.04em;
 text-transform: uppercase;
}

.generic-facts-strip strong {
 color: #0f2f57;
 display: block;
 font-size: 1rem;
 font-weight: 600;
 margin-top: 6px;
}

.generic-course-layout,
.checkout-layout {
 display: grid;
 grid-template-columns: minmax(0, 1fr) 340px;
 gap: 48px;
 align-items: start;
}

.generic-course-content,
.checkout-main {
 display: grid;
 gap: 36px;
}

.generic-course-section,
.checkout-panel {
 background: #ffffff;
 border: 1px solid #dbe4ef;
 border-radius: 12px;
 padding: 30px;
}

.generic-course-section.split,
.checkout-form-grid {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 32px;
}

.generic-course-section h2,
.generic-course-callout h2,
.checkout-panel h2,
.checkout-summary-card h2,
.blog-card h2 {
 color: #0f2f57;
 font-size: 1.35rem;
 line-height: 1.25;
 margin: 0 0 12px;
 font-weight: 600;
}

.generic-course-section p,
.generic-course-callout p,
.checkout-panel p,
.blog-card p,
.blog-post-document p,
.utility-document p {
 color: #526579;
 line-height: 1.7;
 margin: 0;
}

.generic-course-section p + p,
.blog-post-document p + p,
.utility-document p + p {
 margin-top: 14px;
}

.clean-check-list {
 display: grid;
 gap: 12px;
 list-style: none;
 margin: 0;
 padding: 0;
}

.clean-check-list li {
 color: #34475b;
 line-height: 1.55;
 padding-left: 30px;
 position: relative;
}

.clean-check-list li::before {
 align-items: center;
 background: #dff5e9;
 border-radius: 999px;
 color: #0f7c4a;
 content: "";
 display: flex;
 height: 18px;
 justify-content: center;
 left: 0;
 position: absolute;
 top: 3px;
 width: 18px;
}

.clean-check-list li::after {
 border-bottom: 2px solid #0f7c4a;
 border-right: 2px solid #0f7c4a;
 content: "";
 height: 8px;
 left: 6px;
 position: absolute;
 top: 6px;
 transform: rotate(45deg);
 width: 4px;
}

.course-topic-list {
 display: grid;
 gap: 10px;
 margin-top: 18px;
}

.course-topic-list span {
 background: #f4f7fa;
 border-left: 3px solid #f58220;
 color: #26384b;
 padding: 13px 16px;
}

.inline-action-row,
.checkout-panel-heading,
.section-row-title {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 18px;
 margin-top: 18px;
}

.generic-course-callout {
 align-items: center;
 background: #0f2f57;
 border-radius: 12px;
 color: #ffffff;
 display: flex;
 gap: 28px;
 justify-content: space-between;
 padding: 30px;
}

.generic-course-callout.light {
 background: #eaf2f8;
 border: 1px solid #c8d8e6;
 color: #0f2f57;
}

.generic-course-callout h2,
.generic-course-callout p {
 color: inherit;
}

.generic-course-callout .button.secondary {
 background: #ffffff;
 border-color: #ffffff;
 color: #0f2f57;
 white-space: nowrap;
}

.generic-course-callout.light .button.secondary {
 background: transparent;
 border-color: #0f2f57;
}

.generic-related-grid,
.blog-index-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 18px;
 margin-top: 18px;
}

.generic-related-card,
.blog-card {
 background: #ffffff;
 border: 1px solid #dbe4ef;
 border-radius: 12px;
 color: inherit;
 display: grid;
 gap: 10px;
 overflow: hidden;
 padding: 14px;
 text-decoration: none;
}

.generic-related-card img {
 aspect-ratio: 16 / 9;
 border-radius: 8px;
 object-fit: cover;
 width: 100%;
}

.generic-related-card span,
.blog-card span,
.blog-card time {
 color: #6b7d90;
 font-size: 0.78rem;
 font-weight: 600;
 letter-spacing: 0.04em;
 text-transform: uppercase;
}

.generic-related-card strong {
 color: #0f2f57;
 font-weight: 600;
 line-height: 1.25;
}

.generic-related-card small {
 color: #526579;
 font-size: 0.92rem;
}

.generic-faq details {
 border-top: 1px solid #dbe4ef;
 padding: 16px 0;
}

.generic-faq summary {
 color: #0f2f57;
 cursor: pointer;
 font-weight: 600;
}

.generic-faq details p {
 margin-top: 12px;
}

.generic-course-sidebar,
.checkout-summary {
 position: sticky;
 top: 138px;
}

.generic-action-card,
.checkout-summary-card,
.checkout-empty-card,
.checkout-confirmation-card {
 background: #ffffff;
 border: 1px solid #d6e0ea;
 border-radius: 14px;
 box-shadow: 0 18px 42px rgba(11, 35, 64, 0.08);
 padding: 24px;
}

.generic-action-card h2 {
 color: #0f2f57;
 font-size: 1.15rem;
 line-height: 1.25;
 margin: 0 0 18px;
 font-weight: 600;
}

.generic-action-price {
 align-items: end;
 background: #f4f7fa;
 border: 1px solid #dbe4ef;
 border-radius: 10px;
 display: flex;
 justify-content: space-between;
 margin-bottom: 18px;
 padding: 16px;
}

.generic-action-price strong {
 color: #0f2f57;
 font-size: 1.35rem;
 font-weight: 600;
}

.generic-action-card dl {
 display: grid;
 gap: 14px;
 margin: 0 0 20px;
}

.generic-action-card dl div {
 border-bottom: 1px solid #e5edf4;
 padding-bottom: 12px;
}

.generic-action-card dd {
 color: #0f2f57;
 font-weight: 600;
 margin: 5px 0 0;
}

.generic-action-buttons {
 display: grid;
 gap: 10px;
}

.generic-action-buttons .button,
.checkout-summary-card .button {
 width: 100%;
}

.checkout-steps {
 background: #ffffff;
 border: 1px solid #dbe4ef;
 border-radius: 12px;
 display: grid;
 gap: 10px;
 padding: 18px;
}

.checkout-steps span {
 color: #6b7d90;
 font-weight: 600;
 padding-left: 24px;
 position: relative;
}

.checkout-steps span::before {
 background: #dbe4ef;
 border-radius: 999px;
 content: "";
 height: 10px;
 left: 0;
 position: absolute;
 top: 7px;
 width: 10px;
}

.checkout-steps span.active {
 color: #0f2f57;
}

.checkout-steps span.active::before {
 background: #f58220;
}

.checkout-lines {
 display: grid;
 gap: 14px;
 margin-top: 20px;
}

.checkout-line-item {
 align-items: center;
 border: 1px solid #e1e8f0;
 border-radius: 12px;
 display: grid;
 grid-template-columns: 86px minmax(0, 1fr) auto;
 gap: 18px;
 padding: 14px;
}

.checkout-line-item img {
 aspect-ratio: 1;
 border-radius: 8px;
 height: 86px;
 object-fit: cover;
 width: 86px;
}

.checkout-line-item h3 {
 color: #0f2f57;
 font-size: 1rem;
 font-weight: 600;
 margin: 0 0 6px;
}

.checkout-line-controls {
 align-items: end;
 display: grid;
 gap: 8px;
 justify-items: end;
}

.checkout-form-grid label,
.checkout-coupon-box label {
 color: #0f2f57;
 display: grid;
 font-weight: 600;
 gap: 8px;
 margin-top: 14px;
}

.checkout-form-grid input,
.checkout-coupon-box input {
 background: #ffffff;
 border: 1px solid #cbd7e3;
 border-radius: 8px;
 color: #25364a;
 font: inherit;
 min-height: 44px;
 padding: 10px 12px;
}

.payment-method-card {
 background: #f4f7fa;
 border: 1px solid #dbe4ef;
 border-radius: 12px;
 margin-top: 14px;
 padding: 18px;
}

.payment-method-card strong {
 color: #0f2f57;
 display: block;
 font-weight: 600;
 margin-bottom: 6px;
}

.checkout-confirm-row {
 align-items: flex-start;
 color: #34475b;
 display: flex;
 gap: 10px;
 margin-top: 18px;
}

.checkout-summary-rows {
 display: grid;
 gap: 14px;
 margin: 20px 0;
}

.checkout-summary-rows div,
.confirmation-summary-list div {
 align-items: center;
 border-bottom: 1px solid #e5edf4;
 display: flex;
 justify-content: space-between;
 gap: 18px;
 padding-bottom: 12px;
}

.checkout-summary-rows strong,
.confirmation-summary-list strong {
 color: #0f2f57;
 font-weight: 600;
}

.checkout-total-row strong {
 font-size: 1.35rem;
}

.checkout-coupon-box {
 margin: 20px 0;
}

.checkout-coupon-box div {
 display: grid;
 grid-template-columns: 1fr auto;
 gap: 8px;
 margin-top: 8px;
}

.checkout-coupon-box button {
 background: #0f2f57;
 border: 0;
 border-radius: 8px;
 color: #ffffff;
 cursor: pointer;
 font-weight: 600;
 padding: 0 16px;
}

.checkout-empty-section {
 padding: 80px 0;
}

.checkout-empty-card,
.checkout-confirmation-card {
 max-width: 760px;
 text-align: center;
}

.checkout-empty-card .icon {
 color: #f58220;
 height: 40px;
 margin-bottom: 14px;
 width: 40px;
}

.confirmation-summary-list {
 background: #f4f7fa;
 border: 1px solid #dbe4ef;
 border-radius: 12px;
 display: grid;
 gap: 12px;
 margin: 24px 0;
 padding: 18px;
 text-align: left;
}

.blog-index-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
}

.blog-card {
 padding: 28px;
}

.blog-card > div {
 display: flex;
 gap: 12px;
 justify-content: space-between;
}

.blog-card a,
.section-row-title a,
.checkout-panel-heading a {
 color: #0f4c81;
 font-weight: 600;
 text-decoration: none;
}

.blog-post-document h2,
.utility-document h2,
.utility-document h3 {
 color: #0f2f57;
 font-weight: 600;
 margin-top: 32px;
}

.blog-post-document a,
.utility-document a {
 color: #0f4c81;
 font-weight: 600;
}

@media (max-width: 980px) {
 .generic-course-hero-grid,
 .checkout-hero-grid,
 .generic-course-layout,
 .checkout-layout,
 .generic-course-section.split,
 .checkout-form-grid,
 .generic-facts-strip,
 .generic-related-grid,
 .blog-index-grid {
 grid-template-columns: 1fr;
 }

 .generic-course-sidebar,
 .checkout-summary {
 position: static;
 }

 .generic-facts-strip div {
 border-right: 0;
 border-bottom: 1px solid #e1e8f0;
 }

 .generic-course-callout,
 .inline-action-row,
 .checkout-panel-heading,
 .section-row-title {
 align-items: stretch;
 flex-direction: column;
 }

 .checkout-line-item {
 grid-template-columns: 76px 1fr;
 }

 .checkout-line-controls {
 grid-column: 1 / -1;
 justify-items: stretch;
 }
}

/* Footer legal row cleanup */
.site-footer .footer-legal {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 1.5rem;
}

.footer-legal-links {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: flex-end;
 gap: 0.65rem 1rem;
}

.footer-legal-links a {
 color: #d6e3ff;
 font-size: 0.9rem;
 font-weight: 500;
 line-height: 1.4;
 text-decoration: none;
}

.footer-legal-links a:hover {
 color: #ffffff;
}

@media (max-width: 720px) {
 .site-footer .footer-legal {
 align-items: flex-start;
 flex-direction: column;
 }

 .footer-legal-links {
 justify-content: flex-start;
 }
}

/* Footer land acknowledgement refinement */
.site-footer .footer-acknowledgement {
  position: relative;
  width: min(var(--stitch-max), 100%);
  margin: 0 auto 1.65rem;
  padding: 1.45rem clamp(1rem, 4vw, 3rem) 1.55rem;
  border-top: 1px solid rgba(214, 227, 255, 0.2);
  border-bottom: 1px solid rgba(214, 227, 255, 0.2);
  text-align: center;
}

.site-footer .footer-acknowledgement::before {
  content: "";
  display: block;
  width: 68px;
  height: 2px;
  margin: 0 auto 1rem;
  background: var(--secondary-container);
}

.site-footer .footer-acknowledgement p {
  max-width: 980px;
  margin: 0 auto;
  color: #dbe7fb;
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1.75;
}

.site-footer .footer-acknowledgement + .footer-legal {
  border-top: 0;
  padding-top: 0;
}

@media (max-width: 720px) {
  .site-footer .footer-acknowledgement {
    text-align: left;
  }

  .site-footer .footer-acknowledgement::before {
    margin-left: 0;
  }
}

/* Asbestos pathway route illustration */
.asbestos-trail-section {
  overflow: hidden;
  border-top: 1px solid var(--outline-variant);
  border-bottom: 1px solid var(--outline-variant);
  background: var(--surface-container-lowest);
}

.asbestos-trail-container {
  width: min(var(--max), calc(100% - 48px));
  margin: 0 auto;
  padding: var(--section-y-tight) 0;
}

.asbestos-trail-heading {
  max-width: 720px;
}

.asbestos-trail-heading h2 {
  margin-bottom: 0.65rem;
}

.asbestos-trail-heading > p:last-child {
  margin-bottom: 0;
  color: var(--on-surface-variant);
  font-size: var(--fs-body-lg);
}

.asbestos-trail-map {
  position: relative;
  height: 340px;
  margin-top: var(--space-2xl);
}

.asbestos-trail-route {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

.asbestos-trail-route-dashes,
.asbestos-trail-route-branch {
  fill: none;
  stroke-width: 3;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
}

.asbestos-trail-route-dashes {
  stroke: var(--primary);
  stroke-dasharray: 9 12;
}

.asbestos-trail-route-branch {
  stroke: var(--secondary-container);
  stroke-dasharray: 4 11;
}

.asbestos-trail-stop {
  position: absolute;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  align-items: center;
  width: 190px;
  transform: translate(-50%, -27px);
}

.asbestos-trail-stop:not(.asbestos-trail-start) {
  transform: translate(-50%, -79px);
}

.asbestos-trail-stop:focus-visible {
  outline: 0;
}

.asbestos-trail-start {
  top: 68.33%;
  left: 8.33%;
}

.asbestos-trail-level-1 {
  top: 25%;
  left: 30%;
}

.asbestos-trail-stop.asbestos-trail-level-2 {
  top: 76.66%;
  left: 54.16%;
  flex-direction: column-reverse;
  transform: translate(-50%, calc(-100% + 27px));
}

.asbestos-trail-level-3 {
  top: 25%;
  left: 75%;
}

.asbestos-trail-level-s {
  top: 63.33%;
  left: 91.66%;
}

.asbestos-trail-marker-stack {
  display: inline-flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 2px;
  align-items: center;
}

.asbestos-trail-illustration {
  display: block;
  width: 62px;
  height: 50px;
  object-fit: contain;
  object-position: center bottom;
  filter: saturate(0.78) contrast(0.96);
  transition: transform 160ms ease;
}

.asbestos-trail-marker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border: 4px solid var(--surface-container-lowest);
  border-radius: 50%;
  color: var(--on-primary);
  background: var(--primary);
  box-shadow: 0 0 0 1px var(--outline-variant);
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: var(--fw-heading);
  transition: color 160ms ease, background 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.asbestos-trail-start .asbestos-trail-marker {
  color: var(--on-secondary);
  background: var(--secondary-container);
}

.asbestos-trail-level-s .asbestos-trail-marker {
  color: var(--secondary);
  background: var(--surface-container-lowest);
  box-shadow: 0 0 0 2px var(--secondary-container);
}

.asbestos-trail-start .asbestos-trail-marker .icon {
  width: 19px;
  height: 19px;
  color: currentColor;
}

.asbestos-trail-stop:hover .asbestos-trail-marker,
.asbestos-trail-stop:focus-visible .asbestos-trail-marker {
  color: var(--on-secondary);
  background: var(--secondary-container);
  box-shadow: 0 0 0 3px var(--accent-amber);
  transform: translateY(-2px);
}

.asbestos-trail-stop:hover .asbestos-trail-illustration,
.asbestos-trail-stop:focus-visible .asbestos-trail-illustration {
  transform: translateY(-2px);
}

.asbestos-trail-copy {
  display: grid;
  min-width: 0;
  text-align: center;
}

.asbestos-trail-copy small {
  color: var(--secondary);
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: var(--fw-eyebrow);
  letter-spacing: var(--ls-eyebrow);
  line-height: 1.2;
  text-transform: uppercase;
}

.asbestos-trail-copy strong {
  color: var(--primary);
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-weight: var(--fw-heading);
  line-height: var(--lh-h3);
}

.asbestos-trail-copy > span {
  margin-top: 0.15rem;
  color: var(--on-surface-variant);
  font-size: var(--fs-small);
  line-height: 1.35;
}

@media (max-width: 900px) {
  .asbestos-trail-map {
    display: grid;
    height: auto;
    gap: var(--space-lg);
    padding: var(--space-sm) 0;
  }

  .asbestos-trail-map::before {
    content: "";
    position: absolute;
    top: 1.5rem;
    bottom: 1.5rem;
    left: 26px;
    border-left: 2px dashed var(--primary);
  }

  .asbestos-trail-route {
    display: none;
  }

  .asbestos-trail-stop,
  .asbestos-trail-start,
  .asbestos-trail-level-1,
  .asbestos-trail-level-2,
  .asbestos-trail-level-3 {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    min-height: 72px;
    flex-direction: row;
    gap: var(--space-md);
    transform: none;
  }

  .asbestos-trail-stop:not(.asbestos-trail-start) {
    transform: none;
  }

  .asbestos-trail-stop.asbestos-trail-level-2 {
    top: auto;
    left: auto;
    flex-direction: row;
    transform: none;
  }

  .asbestos-trail-level-s {
    margin-top: var(--space-xs);
  }

  .asbestos-trail-copy {
    text-align: left;
  }
}

@media (max-width: 520px) {
  .asbestos-trail-container {
    width: min(var(--max), calc(100% - 32px));
  }

  .asbestos-trail-heading > p:last-child {
    font-size: var(--fs-body);
  }

  .asbestos-trail-stop {
    gap: var(--space-sm);
  }

  .asbestos-trail-marker {
    width: 46px;
    height: 46px;
  }

  .asbestos-trail-map::before {
    left: 23px;
  }
}

/* Asbestos pathway tier comparison */
.pathway-tier-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
  align-items: stretch;
}

.pathway-tier-card {
  display: flex;
  min-height: 100%;
  overflow: hidden;
  flex-direction: column;
  border: 1px solid var(--outline-variant);
  border-radius: var(--radius-lg);
  background: var(--surface-container-lowest);
  box-shadow: 0 12px 30px rgba(0, 32, 70, 0.06);
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.pathway-tier-card:hover {
  transform: translateY(-2px);
  border-color: rgba(17, 74, 126, 0.34);
  box-shadow: 0 18px 36px rgba(0, 32, 70, 0.1);
}

.pathway-tier-media {
  position: relative;
  aspect-ratio: 16 / 9;
  background: var(--surface-container-low);
}

.pathway-tier-media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.pathway-tier-media span {
  position: absolute;
  top: 0.85rem;
  left: 0.85rem;
  padding: 0.4rem 0.62rem;
  border-radius: 999px;
  color: var(--on-primary);
  background: var(--primary);
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1;
}

.pathway-tier-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 1rem;
  padding: 1.15rem;
}

.pathway-tier-body h3 {
  margin: 0 0 0.45rem;
  color: var(--primary);
  font-size: 1.08rem;
  font-weight: 650;
  line-height: 1.25;
}

.pathway-tier-body p {
  margin: 0;
  color: var(--on-surface-variant);
  font-size: 0.94rem;
  line-height: 1.55;
}

.pathway-tier-list {
  display: grid;
  gap: 0.7rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.pathway-tier-list li {
  display: grid;
  gap: 0.2rem;
  padding-top: 0.7rem;
  border-top: 1px solid var(--outline-variant);
}

.pathway-tier-list strong {
  color: var(--primary);
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: 0;
  text-transform: uppercase;
}

.pathway-tier-list span {
  color: var(--on-surface-variant);
  font-size: 0.9rem;
  line-height: 1.45;
}

.pathway-tier-price {
  margin-top: auto !important;
  color: var(--primary) !important;
  font-size: 1.15rem !important;
  font-weight: 650;
}

.pathway-tier-card .card-actions {
  display: grid;
  gap: 0.7rem;
  margin-top: 0;
}

.pathway-tier-card .button {
  width: 100%;
  justify-content: center;
}

.level-s-callout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.25rem;
  align-items: center;
  margin-top: 1.35rem;
  padding: 1.35rem;
  border: 1px solid rgba(17, 74, 126, 0.18);
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, #ffffff 0%, #f7fafc 100%);
  scroll-margin-top: 100px;
}

.level-s-callout h3 {
  margin: 0 0 0.35rem;
  color: var(--primary);
  font-size: 1.15rem;
  font-weight: 650;
}

.level-s-callout p:not(.eyebrow) {
  max-width: 760px;
  margin: 0;
  color: var(--on-surface-variant);
  line-height: 1.6;
}

.level-s-callout .compact-actions {
  min-width: 280px;
}

/* Shared three-level learning pathways */
.progressive-pathway-sequence-section {
  padding: clamp(3.5rem, 7vw, 5.75rem) var(--page-gutter);
  background: var(--surface-container-low);
}

.progressive-pathway-sequence-container {
  width: min(1180px, 100%);
  margin-inline: auto;
}

.progressive-pathway-sequence-heading {
  max-width: 760px;
}

.progressive-pathway-sequence-heading h2 {
  margin: 0.35rem 0 0;
  color: var(--primary);
  font-size: clamp(1.8rem, 3vw, 2.55rem);
  line-height: 1.12;
}

.progressive-pathway-sequence-heading > p:last-child {
  margin: 0.9rem 0 0;
  color: var(--on-surface-variant);
  line-height: 1.65;
}

.progressive-pathway-sequence {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.progressive-pathway-sequence-map {
  position: relative;
  margin: 4.75rem 0 0;
}

.progressive-pathway-sequence-route {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: 9rem;
  overflow: visible;
  pointer-events: none;
}

.progressive-pathway-sequence-route path {
  fill: none;
  stroke: var(--site-cool);
  stroke-width: 2.2;
  stroke-dasharray: 1 10;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
}

.progressive-pathway-sequence li {
  position: relative;
  z-index: 1;
  min-width: 0;
}

.progressive-pathway-sequence li:nth-child(2) {
  transform: translateY(-3rem);
}

.progressive-pathway-sequence a {
  display: grid;
  justify-items: center;
  color: inherit;
  text-align: center;
  text-decoration: none;
}

.progressive-pathway-sequence-media {
  position: relative;
  display: grid;
  width: 7rem;
  height: 7.8rem;
  justify-items: center;
  align-content: start;
  overflow: visible;
  box-sizing: border-box;
}

.progressive-pathway-sequence-media img {
  display: block;
  width: 6rem;
  height: 5.6rem;
  object-fit: contain;
  object-position: center bottom;
  filter: saturate(0.82) contrast(0.98);
  transition: transform 160ms ease;
}

.progressive-pathway-sequence-media b {
  position: absolute;
  bottom: 0;
  left: 50%;
  display: grid;
  width: 3rem;
  height: 3rem;
  place-items: center;
  border: 2px solid var(--site-cool);
  border-radius: 50%;
  color: var(--site-ink);
  background: var(--surface-white);
  box-shadow: 0 8px 20px rgba(18, 53, 84, 0.09);
  font-size: 0.78rem;
  font-weight: 700;
  transform: translateX(-50%);
  box-sizing: border-box;
}

.progressive-pathway-sequence small {
  margin-top: 0.65rem;
  color: var(--secondary);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.progressive-pathway-sequence strong {
  margin-top: 0.25rem;
  color: var(--primary);
  font-size: 1rem;
  line-height: 1.35;
}

.progressive-pathway-sequence a:hover strong,
.progressive-pathway-sequence a:focus-visible strong {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.progressive-pathway-sequence a:hover .progressive-pathway-sequence-media img,
.progressive-pathway-sequence a:focus-visible .progressive-pathway-sequence-media img {
  transform: translateY(-2px);
}

.progressive-pathway-sequence a:hover .progressive-pathway-sequence-media b,
.progressive-pathway-sequence a:focus-visible .progressive-pathway-sequence-media b {
  color: var(--on-secondary);
  background: var(--secondary-container);
  box-shadow: 0 0 0 3px var(--accent-amber);
}

.progressive-pathway-sequence a:focus-visible {
  border-radius: 6px;
  outline: 2px solid var(--secondary);
  outline-offset: 4px;
}

.progressive-pathway-note {
  margin: 1.6rem 0 0;
  color: var(--on-surface-variant);
  font-size: 0.9rem;
  text-align: center;
}

.progressive-pathway-trail-map .asbestos-trail-start {
  top: 68.33%;
  left: 8.33%;
}

.progressive-pathway-trail-map .asbestos-trail-level-1 {
  top: 25%;
  left: 35.83%;
}

.progressive-pathway-trail-map .asbestos-trail-level-2 {
  top: 76.66%;
  left: 63.33%;
}

.progressive-pathway-trail-map .asbestos-trail-level-3 {
  top: 25%;
  left: 91.66%;
}

.progressive-pathway-tier-card {
  scroll-margin-top: 110px;
}

@media (max-width: 900px) {
  .progressive-pathway-trail-map .asbestos-trail-start,
  .progressive-pathway-trail-map .asbestos-trail-level-1,
  .progressive-pathway-trail-map .asbestos-trail-level-2,
  .progressive-pathway-trail-map .asbestos-trail-level-3 {
    top: auto;
    left: auto;
  }
}

@media (max-width: 760px) {
  .progressive-pathway-sequence-map {
    margin-top: 2.25rem;
  }

  .progressive-pathway-sequence-route {
    display: none;
  }

  .progressive-pathway-sequence {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .progressive-pathway-sequence::before {
    content: "";
    position: absolute;
    top: 3.75rem;
    bottom: 3.75rem;
    left: 3rem;
    width: 2px;
    height: auto;
    background: repeating-linear-gradient(
      to bottom,
      var(--site-cool) 0 3px,
      transparent 3px 9px
    );
  }

  .progressive-pathway-sequence li:nth-child(2) {
    transform: none;
  }

  .progressive-pathway-sequence a {
    grid-template-columns: 6rem minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 1rem;
    justify-items: start;
    text-align: left;
  }

  .progressive-pathway-sequence-media {
    grid-row: 1 / 3;
    width: 6rem;
    height: 6.5rem;
  }

  .progressive-pathway-sequence-media img {
    width: 5rem;
    height: 4.5rem;
  }

  .progressive-pathway-sequence-media b {
    width: 2.6rem;
    height: 2.6rem;
  }

  .progressive-pathway-sequence small {
    align-self: end;
    margin-top: 0;
  }

  .progressive-pathway-sequence strong {
    align-self: start;
  }

  .progressive-pathway-note {
    text-align: left;
  }
}

@media (max-width: 1100px) {
  .pathway-tier-grid {
    grid-template-columns: 1fr;
  }

  .pathway-tier-card {
    display: grid;
    grid-template-columns: minmax(220px, 0.4fr) minmax(0, 1fr);
  }

  .pathway-tier-media {
    min-height: 100%;
    aspect-ratio: auto;
  }
}

@media (max-width: 760px) {
  .pathway-tier-card,
.level-s-callout {
  display: flex;
    flex-direction: column;
    align-items: stretch;
  }

  .pathway-tier-media {
    flex: 0 0 auto;
    min-height: 0;
    aspect-ratio: 16 / 9;
  }

  .level-s-callout .compact-actions {
    width: 100%;
    min-width: 0;
  }
}


/* Northwest Skills structure pass: form, sparse, blog, and about composition */
.single-form-layout,
.form-section.single-form-section {
  display: block;
  max-width: 820px;
  margin-right: auto;
  margin-left: auto;
}

.uncontained-form-column,
.support-flow-form-card.uncontained-form-column,
.contact-single-form {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.support-flow-form-card.uncontained-form-column .section-header,
.uncontained-form-column .section-header,
.contact-single-form .stitch-section-heading {
  margin-bottom: 1rem;
}

.request-inline-summary {
  display: grid;
  gap: 0.6rem;
  margin: 0 0 1.4rem;
  color: var(--on-surface-variant);
}

.request-inline-summary p {
  margin: 0;
  line-height: 1.6;
}

.request-inline-summary strong {
  color: var(--primary);
  font-weight: 600;
}

.request-inline-summary ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.request-inline-summary li {
  position: relative;
  padding-left: 0.9rem;
  color: var(--on-surface-variant);
  font-size: 0.94rem;
  line-height: 1.45;
}

.request-inline-summary li::before {
  content: "";
  position: absolute;
  top: 0.6em;
  left: 0;
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: var(--primary-container);
}

.contact-hero-single {
  grid-template-columns: minmax(0, 760px);
}

.contact-single-layout {
  display: grid;
  gap: 2rem;
  max-width: 820px;
}

.contact-main-office-card {
  max-width: 520px;
}

.contact-single-form .contact-submitted-card {
  min-height: min(420px, 60vh);
}

.submitted-page {
  display: grid;
  align-items: center;
  min-height: calc(100svh - 122px);
  padding-top: clamp(2.5rem, 6vw, 4rem);
  padding-bottom: clamp(2.5rem, 6vw, 4rem);
}

.submitted-page > .stitch-container {
  width: min(860px, calc(100% - 32px));
}

.submitted-card {
  margin: 0 auto;
}

.blog-index-layout {
  display: grid;
  gap: 1.25rem;
}

.blog-index-layout .blog-index-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: 0;
}

.blog-training-callout {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.35rem 1.5rem;
  border: 1px solid var(--outline-variant);
  border-left: 4px solid var(--primary);
  border-radius: var(--radius);
  background: #ffffff;
}

.blog-training-callout strong {
  color: var(--primary);
  font-weight: 600;
}

.blog-training-callout p {
  flex: 1;
  margin: 0;
  color: var(--on-surface-variant);
  line-height: 1.55;
}

.blog-training-callout a {
  color: var(--primary);
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

.about-story-lead {
  color: var(--primary);
  font-size: 1.12rem !important;
  line-height: 1.62 !important;
}

.about-story-points {
  display: grid;
  gap: 1rem;
}

.about-story-points article {
  display: grid;
  gap: 0.45rem;
  padding: 1rem 0 0;
  border-top: 1px solid var(--outline-variant);
}

.about-story-points h3 {
  margin: 0;
  color: var(--primary);
  font-size: 1.02rem;
  font-weight: 600;
}

.about-story-points p,
.about-story-points blockquote {
  margin: 0;
  color: var(--on-surface-variant);
  line-height: 1.65;
}

.about-story-points blockquote {
  padding: 0.85rem 0 0.85rem 1rem;
  border-left: 3px solid var(--secondary-container);
  color: var(--primary);
  font-size: 1.05rem;
}

.enhanced-about-card .about-compact-tags {
  display: none;
}

@media (max-width: 980px) {
  .blog-index-layout .blog-index-grid {
    grid-template-columns: 1fr;
  }

  .blog-training-callout {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 760px) {
  .single-form-layout,
  .form-section.single-form-section,
  .contact-single-layout {
    max-width: none;
  }

  .request-inline-summary ul {
    display: grid;
    gap: 0.45rem;
  }

  .submitted-page {
    min-height: calc(100svh - 96px);
    padding-top: 2rem;
    padding-bottom: 2rem;
  }

  .blog-training-callout {
    padding: 1.1rem;
  }
}

/* Structure pass alignment fix: inline request summary lists */
.request-inline-summary ul {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.45rem;
  align-items: start;
}

.request-inline-summary li {
  position: relative;
  display: block;
  padding-left: 1rem;
}

.request-inline-summary li::before {
  position: absolute;
  top: 0.6em;
  left: 0;
  margin-top: 0;
}

/* Employer course grid button alignment */
.mini-course-grid article {
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  align-items: start;
  height: 100%;
}

.mini-course-grid p {
  align-self: start;
}

.mini-course-grid .button {
  align-self: end;
  justify-content: center;
  margin-top: 0.75rem;
}

/* Employer course grid image proportion */
.mini-course-grid img {
  height: 168px;
}

/* Employer course grid larger image proportion */
.mini-course-grid img {
  height: 210px;
}

/* Homepage most-required training image proportion */
.gs-course-grid .directory-course-image {
  height: 235px;
}

/* All Courses cards aligned to homepage featured-card format */
.catalog-course-card .directory-course-image {
  height: 235px;
}

.catalog-course-card .directory-course-body h3 {
  font-size: 1.08rem;
  line-height: 1.32;
}

.catalog-course-card .directory-course-body p {
  font-size: 0.9rem;
}

.catalog-course-card .directory-course-heading {
  display: block;
}

.catalog-course-card .directory-course-heading > div:first-child {
  min-height: 0;
}

.catalog-course-card .directory-course-heading h3,
.catalog-course-card .directory-course-heading p {
  display: block;
  min-height: 0;
  margin: 0;
  overflow: visible;
  -webkit-line-clamp: unset;
}

.catalog-course-card .directory-heading-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.5rem;
}

.catalog-course-card .directory-price {
  flex: 0 0 auto;
  padding: 0;
}

.catalog-course-card .directory-price span {
  display: none;
}

.catalog-course-card .directory-price strong {
  font-size: 1.2rem;
}

.catalog-course-card .directory-course-actions {
  margin-top: auto;
  padding: 1rem 1.35rem 1.35rem;
  border-top: 1px solid var(--surface-container);
  background: transparent;
}

/* Button interaction consistency: movement only, no blanket arrows */
.button {
  gap: 0.45rem;
}

/* Browse-by-category arrows are intentional and should animate. */
.gs-category-link span {
  display: inline-flex;
  transform: translateX(0);
  transition: transform 160ms ease;
}

.gs-category-tile:hover .gs-category-link span,
.gs-category-tile:focus-visible .gs-category-link span {
  transform: translateX(3px);
}

/* Grant support guided documentation tool */
.grant-tool-boundary {
 display: grid;
 grid-template-columns: auto 1fr;
 align-items: start;
 gap: 1rem;
}

.grant-notice-icon {
 display: inline-grid;
 place-items: center;
 width: 2.5rem;
 height: 2.5rem;
 border: 1px solid var(--surface-warm-line);
 border-radius: var(--radius);
 background: var(--surface-warm);
 color: var(--secondary-container);
}

.grant-notice-icon .icon {
 width: 1.25rem;
 height: 1.25rem;
}

.grant-tool-section.single-form-section {
 max-width: 900px;
}

.grant-tool-column {
 display: grid;
 gap: 1.25rem;
}

.grant-tool-form-panel {
 padding: clamp(1.15rem, 2.5vw, 1.65rem);
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius-lg);
 background: var(--surface-white);
 box-shadow: var(--shadow-soft);
}

.grant-tool-form-panel .request-form {
 display: grid;
 gap: 1.2rem;
}

.grant-tool-form-panel .form-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grant-summary-inline .request-summary {
 position: static;
 max-width: none;
 margin: 0;
 border-color: var(--surface-warm-line);
 background: var(--surface-warm);
 box-shadow: none;
}

.grant-tool-results {
 padding-top: clamp(1.75rem, 4vw, 3rem);
}

.grant-output-grid {
 display: grid;
 grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
 align-items: start;
 gap: clamp(1.25rem, 3vw, 2rem);
 max-width: var(--max);
 margin: 0 auto;
 padding: 0 var(--gutter);
}

.grant-output-card {
 display: grid;
 align-content: start;
 gap: 1.1rem;
 padding: clamp(1.25rem, 2.6vw, 1.75rem);
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius-lg);
 background: var(--surface-white);
 box-shadow: var(--shadow-soft);
}

.grant-output-card > p {
 margin: 0;
 line-height: 1.62;
}

.grant-output-heading {
 display: flex;
 align-items: flex-start;
 gap: 0.85rem;
}

.grant-output-heading .icon {
 flex: 0 0 auto;
 width: 1.35rem;
 height: 1.35rem;
 margin-top: 0.25rem;
 color: var(--secondary-container);
}

.grant-output-heading h2,
.grant-output-heading .eyebrow {
 margin-bottom: 0;
}

.grant-portal-list {
 display: grid;
 gap: 0.75rem;
}

.grant-portal-link {
 display: grid;
 gap: 0.35rem;
 padding: 1rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: var(--surface-container-lowest);
 transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.grant-portal-link:hover,
.grant-portal-link:focus-visible {
 transform: translateY(-2px);
 border-color: var(--primary-container);
 box-shadow: var(--shadow-soft);
 outline: 0;
}

.grant-portal-link span {
 color: var(--secondary-container);
 font-size: var(--fs-small);
 font-weight: 600;
}

.grant-portal-link strong {
 color: var(--primary);
 font-family: var(--font-display);
 font-size: var(--fs-h4);
 font-weight: var(--fw-h3);
 line-height: var(--lh-h3);
}

.grant-portal-link p {
 margin: 0;
 color: var(--on-surface-variant);
 font-size: var(--fs-small);
 line-height: 1.5;
}

.grant-package-preview {
 margin: 0;
}

.grant-output-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 0.75rem;
}

.grant-print-package {
 display: grid;
 gap: 1.25rem;
 margin-top: 0.3rem;
 padding: clamp(1.15rem, 2.4vw, 1.5rem);
 border: 1px solid var(--surface-warm-line);
 border-radius: var(--radius-lg);
 background: var(--surface-warm);
}

.grant-print-header {
 display: flex;
 justify-content: space-between;
 gap: 1rem;
 padding-bottom: 1rem;
 border-bottom: 1px solid var(--surface-warm-line);
}

.grant-print-header h3,
.grant-print-header .eyebrow,
.grant-print-header strong {
 margin: 0;
}

.grant-print-header strong {
 max-width: 240px;
 color: var(--primary);
 font-size: var(--fs-small);
 line-height: 1.45;
 text-align: right;
}

.grant-document-grid {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 1rem;
}

.grant-document-grid section,
.grant-document-section,
.grant-outline-list article {
 padding: 1rem;
 border: 1px solid var(--surface-warm-line);
 border-radius: var(--radius);
 background: var(--surface-white);
}

.grant-document-grid h4,
.grant-document-section h4 {
 margin-bottom: 0.75rem;
}

.grant-document-list {
 display: grid;
 gap: 0.65rem;
 margin: 0;
}

.grant-document-list div {
 display: grid;
 gap: 0.18rem;
}

.grant-document-list dt {
 color: var(--on-surface-variant);
 font-size: var(--fs-small);
 font-weight: 600;
}

.grant-document-list dd {
 margin: 0;
 color: var(--on-surface);
 line-height: 1.45;
}

.grant-outline-list {
 display: grid;
 gap: 0.75rem;
}

.grant-outline-list article {
 display: grid;
 gap: 0.5rem;
 padding: 0.9rem;
}

.grant-outline-list strong {
 color: var(--primary);
 font-weight: 600;
}

.grant-outline-list p,
.grant-outline-list ul,
.grant-plain-list {
 margin: 0;
 color: var(--on-surface-variant);
}

.grant-outline-list li,
.grant-plain-list li {
 line-height: 1.5;
}

@media (max-width: 980px) {
 .grant-output-grid,
 .grant-tool-form-panel .form-grid,
 .grant-document-grid {
  grid-template-columns: 1fr;
 }

 .grant-print-header {
  flex-direction: column;
 }

 .grant-print-header strong {
  max-width: none;
  text-align: left;
 }
}

@media (max-width: 620px) {
 .grant-tool-boundary {
  grid-template-columns: 1fr;
 }

 .grant-output-grid {
  padding: 0 16px;
 }

 .grant-output-actions .button {
  width: 100%;
 }
}

@media print {
 body * {
  visibility: hidden !important;
 }

 .grant-print-package,
 .grant-print-package * {
  visibility: visible !important;
 }

 .grant-print-package {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: var(--surface-white);
  box-shadow: none;
 }

 .grant-document-grid section,
 .grant-document-section,
 .grant-outline-list article {
  break-inside: avoid;
 }
}

/* Mobile header restore: compact logo + cart + hamburger row */
.nav-toggle {
 display: none;
 align-items: center;
 justify-content: center;
 width: 44px;
 height: 44px;
 padding: 0;
 border: 1px solid #c8d1da;
 border-radius: var(--radius);
 background: #ffffff;
 color: var(--primary);
 cursor: pointer;
 transition: background-color 160ms ease, border-color 160ms ease;
}

.nav-toggle:hover {
 border-color: var(--primary);
 background: var(--surface-container-low);
}

.nav-toggle:focus-visible {
 outline: 2px solid var(--primary);
 outline-offset: 2px;
}

.nav-toggle-bars {
 position: relative;
 display: block;
 width: 20px;
 height: 2px;
 border-radius: 2px;
 background: var(--primary);
 transition: background-color 160ms ease;
}

.nav-toggle-bars::before,
.nav-toggle-bars::after {
 content: "";
 position: absolute;
 left: 0;
 width: 20px;
 height: 2px;
 border-radius: 2px;
 background: var(--primary);
 transition: transform 160ms ease;
}

.nav-toggle-bars::before { top: -6px; }
.nav-toggle-bars::after { top: 6px; }

.site-header.is-menu-open .nav-toggle-bars { background: transparent; }
.site-header.is-menu-open .nav-toggle-bars::before { transform: translateY(6px) rotate(45deg); }
.site-header.is-menu-open .nav-toggle-bars::after { transform: translateY(-6px) rotate(-45deg); }

.mobile-menu { display: none; }

@media (max-width: 768px) {
 html,
 body {
  overflow-x: clip;
 }

 .site-shell {
  overflow-x: visible;
 }

 .site-header {
  grid-template-columns: minmax(0, 1fr) auto !important;
  grid-template-rows: auto !important;
  align-items: center !important;
  gap: 0 0.75rem !important;
  min-height: 64px !important;
  padding: 0.625rem 1rem !important;
  overflow: visible !important;
  z-index: 1000 !important;
 }

 .brand {
  grid-column: 1 !important;
  grid-row: 1 !important;
  align-self: center !important;
  min-width: 0 !important;
 }

 .brand img {
  width: 144px !important;
 }

 .site-header .main-nav,
 .site-header .site-search {
  display: none !important;
 }

 .header-actions {
  grid-column: 2 !important;
  grid-row: 1 !important;
  align-self: center !important;
  justify-self: end !important;
  width: auto !important;
  gap: 0.5rem !important;
  flex-wrap: nowrap !important;
 }

 .header-actions .header-link,
 .header-actions .header-cta,
 .header-actions .portal-login {
  display: none !important;
 }

 .cart-button {
  flex: 0 0 42px !important;
  border-color: var(--outline-variant);
  background: var(--surface-container-lowest);
 }

 .nav-toggle {
  display: inline-flex;
  flex: 0 0 44px;
 }

 .mobile-menu {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 1001;
  display: flex;
  flex-direction: column;
  max-height: calc(100svh - 64px);
  padding: 0.5rem 1rem 0.85rem;
  overflow-y: auto;
  background: #ffffff;
  border-bottom: 1px solid #d9e0e7;
  box-shadow: 0 18px 30px rgba(0, 32, 70, 0.14);
  transform: translateY(-10px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 160ms ease, transform 160ms ease;
 }

 .site-header.is-menu-open .mobile-menu {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
 }

 .mobile-menu > a {
  padding: 0.45rem 0.4rem;
  border-bottom: 1px solid var(--surface-container);
  color: var(--primary);
  font-family: var(--font-display);
  font-size: 1.02rem;
  font-weight: 600;
  letter-spacing: 0.01em;
 }

 .mobile-menu > a:hover,
 .mobile-menu > a:focus-visible {
  color: var(--secondary);
 }

 .mobile-menu > .mobile-portal-login {
  display: flex;
  align-items: center;
  gap: 0.45rem;
 }

 .mobile-menu-cta {
  display: grid;
  gap: 0.45rem;
  margin-top: 0.55rem;
 }

 .mobile-menu-cta .header-link,
 .mobile-menu-cta .header-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border-bottom: none;
 }
}

/* Asbestos Level 1 purchase-path selector */
.course-purchase-options {
 scroll-margin-top: 6rem;
}

.course-purchase-options > p {
 max-width: 760px;
}

.course-purchase-path-grid {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0;
 margin-top: 1.75rem;
 border-top: 1px solid var(--surface-container);
 border-bottom: 1px solid var(--surface-container);
}

.course-purchase-path {
 padding: 1.5rem 1.5rem 1.5rem 0;
}

.course-purchase-path:only-child {
 grid-column: 1 / -1;
 padding-right: 0;
}

.course-purchase-path + .course-purchase-path {
 padding-right: 0;
 padding-left: 1.5rem;
 border-left: 1px solid var(--surface-container);
}

.course-purchase-path-heading {
 min-height: 76px;
 margin-bottom: 1rem;
}

.course-purchase-path-heading h3 {
 margin: 0 0 0.25rem;
 color: var(--primary);
 font-size: 1.18rem;
}

.course-purchase-path-heading p {
 margin: 0;
 color: var(--on-surface-variant);
 font-size: 0.9rem;
 line-height: 1.55;
}

.course-purchase-option-list {
 display: grid;
 gap: 0.65rem;
}

.course-purchase-path:only-child .course-purchase-option-list {
 grid-template-columns: repeat(2, minmax(0, 1fr));
}

.course-purchase-option {
 display: flex;
 align-items: flex-start;
 gap: 0.75rem;
 width: 100%;
 min-height: 126px;
 padding: 1rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 color: var(--on-surface);
 background: var(--surface-white);
 text-align: left;
 cursor: pointer;
 transition: border-color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.course-purchase-option:hover,
.course-purchase-option:focus-visible {
 border-color: var(--primary);
 transform: translateY(-2px);
 outline: none;
}

.course-purchase-option.is-selected {
 border-color: var(--secondary-container);
 background: var(--surface-warm);
 box-shadow: inset 3px 0 0 var(--secondary-container);
}

.course-purchase-option-marker {
 width: 17px;
 height: 17px;
 margin-top: 0.15rem;
 flex: 0 0 17px;
 border: 1.5px solid var(--outline);
 border-radius: 50%;
 background: var(--surface-white);
 box-shadow: inset 0 0 0 4px var(--surface-white);
}

.course-purchase-option.is-selected .course-purchase-option-marker {
 border-color: var(--secondary-container);
 background: var(--secondary-container);
}

.course-purchase-option-copy {
 display: grid;
 gap: 0.3rem;
 min-width: 0;
 flex: 1;
}

.course-purchase-option-title {
 display: flex;
 align-items: start;
 justify-content: space-between;
 gap: 0.75rem;
}

.course-purchase-option-title strong,
.course-purchase-option-title b {
 color: var(--primary);
 font-family: var(--font-display);
 font-size: 1rem;
 font-weight: 650;
 line-height: 1.25;
}

.course-purchase-option-title b {
 white-space: nowrap;
}

.course-purchase-option-copy > .course-purchase-product-code {
 color: var(--outline) !important;
 font-size: 0.68rem !important;
 font-weight: 600 !important;
 letter-spacing: 0.06em;
 line-height: 1.2;
 text-transform: uppercase;
}

.course-purchase-option-copy > span:not(.course-purchase-option-title) {
 color: var(--secondary-container);
 font-size: 0.77rem;
 font-weight: 650;
}

.course-purchase-option-copy small,
.course-purchase-option-copy em {
 color: var(--on-surface-variant);
 font-size: 0.78rem;
 font-style: normal;
 line-height: 1.45;
}

.course-purchase-option-copy em {
 margin-top: 0.15rem;
 padding-top: 0.45rem;
 border-top: 1px solid var(--surface-warm-line);
}

.course-purchase-select {
 display: grid;
 gap: 0.65rem;
 margin: 1rem 0;
}

.course-purchase-select > label {
 display: grid;
 gap: 0.4rem;
}

.course-purchase-select > label > span {
 color: var(--on-surface-variant);
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.06em;
 text-transform: uppercase;
}

.course-purchase-select .modern-select-trigger {
 min-height: 46px;
 background: var(--surface-white);
}

.course-option-eligibility {
 margin: 0;
 padding: 0.7rem 0.75rem;
 border-left: 3px solid var(--accent-amber);
 color: var(--on-surface-variant);
 background: var(--surface-warm);
 font-size: 0.78rem;
 line-height: 1.45;
}

@media (max-width: 760px) {
 .course-purchase-path-grid {
  grid-template-columns: 1fr;
 }

 .course-purchase-path,
 .course-purchase-path + .course-purchase-path {
  padding: 1.25rem 0;
  border-left: 0;
 }

 .course-purchase-path + .course-purchase-path {
  border-top: 1px solid var(--surface-container);
 }

 .course-purchase-path-heading {
  min-height: 0;
 }

 .course-purchase-path:only-child .course-purchase-option-list {
  grid-template-columns: 1fr;
 }
}

@media (max-width: 768px) {
 .cart-backdrop {
  z-index: 1400;
 }

 .cart-drawer {
  width: 100%;
  padding: 1rem;
 }

 .cart-header {
  position: sticky;
  top: 0;
  z-index: 2;
  margin: -1rem -1rem 0;
  padding: 1rem;
  background: #ffffff;
 }

 .cart-header .icon-button {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border-color: var(--primary);
  color: var(--primary);
 }
}
/* Course detail spec split: flat top scan strip, transaction-only sidebar facts */
.refined-course-page .course-fact-section {
 padding: 0.9rem 0;
 background: var(--surface-white);
 border-top: 1px solid var(--surface-container);
 border-bottom: 1px solid var(--surface-container);
}

.refined-course-page .course-fact-strip {
 display: grid;
 grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
 gap: 0;
 align-items: stretch;
 overflow: visible;
 transform: none;
 border: 0;
 border-radius: 0;
 background: transparent;
}

.refined-course-page .course-fact-strip div {
 position: relative;
 min-height: 0;
 padding: 1.4rem 1.35rem;
 background: transparent;
}

.refined-course-page .course-fact-strip div:first-child {
 padding-left: 0;
}

.refined-course-page .course-fact-strip div + div::before {
 content: "";
 position: absolute;
 top: 1.35rem;
 bottom: 1.35rem;
 left: 0;
 width: 1px;
 background: var(--surface-container);
}

.refined-course-page .course-fact-strip span {
 display: block;
 margin-bottom: 0.36rem;
 color: var(--text-muted);
 font-size: 0.72rem;
 font-weight: 650;
 letter-spacing: 0.08em;
 text-transform: uppercase;
}

.refined-course-page .course-fact-strip strong {
 display: block;
 color: var(--primary);
 font-family: var(--font-display);
 font-size: 1.12rem;
 font-weight: 650;
 line-height: 1.22;
}

.generic-course-facts {
 padding: 0.9rem 0;
 background: #ffffff;
 border-top: 1px solid #dbe4ef;
 border-bottom: 1px solid #dbe4ef;
}

.generic-facts-strip {
 display: grid;
 grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
 gap: 0;
 padding: 0;
}

.generic-facts-strip div {
 padding: 1.4rem 1.35rem;
 border-right: 1px solid #e1e8f0;
}

.generic-facts-strip div:first-child {
 padding-left: 0;
}

.generic-facts-strip div:last-child {
 border-right: 0;
}

.generic-facts-strip span {
 display: block;
 color: #6b7d90;
 font-size: 0.72rem;
 font-weight: 650;
 letter-spacing: 0.08em;
 text-transform: uppercase;
}

.generic-facts-strip strong {
 display: block;
 margin-top: 0.36rem;
 color: var(--primary);
 font-family: var(--font-display);
 font-size: 1.12rem;
 font-weight: 650;
 line-height: 1.22;
}

@media (max-width: 820px) {
 .refined-course-page .course-fact-strip,
 .generic-facts-strip {
  grid-template-columns: repeat(2, minmax(0, 1fr));
 }

 .refined-course-page .course-fact-strip div,
 .refined-course-page .course-fact-strip div:first-child,
 .generic-facts-strip div,
 .generic-facts-strip div:first-child {
  padding: 1.1rem 1rem;
 }

 .refined-course-page .course-fact-strip div + div::before,
 .generic-facts-strip div {
  border-right: 0;
 }

 .refined-course-page .course-fact-strip div + div::before {
  display: none;
 }

 .refined-course-page .course-fact-strip div:nth-child(n + 3),
 .generic-facts-strip div:nth-child(n + 3) {
  border-top: 1px solid var(--surface-container);
 }
}

@media (max-width: 520px) {
 .refined-course-page .course-fact-strip,
 .generic-facts-strip {
  grid-template-columns: 1fr;
 }

 .refined-course-page .course-fact-strip div + div,
 .generic-facts-strip div + div {
  border-top: 1px solid var(--surface-container);
 }
}

/* Recertification landing page */
.recert-page {
 --gs-max: 1280px;
 --gs-margin: 40px;
 background: var(--surface-white);
}

.recert-hero {
 padding: 5.5rem 0 4.5rem;
 border-bottom: 1px solid var(--surface-warm-line);
 background: linear-gradient(180deg, var(--surface-white) 0%, var(--surface-warm) 100%);
}

.recert-hero-grid {
 display: grid;
 grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
 gap: 3rem;
 align-items: center;
}

.recert-hero h1 {
 max-width: 760px;
 margin-bottom: 1rem;
 color: var(--primary);
 font-size: clamp(2.7rem, 6vw, 5.5rem);
 font-weight: 700;
 line-height: 0.96;
}

.recert-hero p:not(.stitch-kicker) {
 max-width: 720px;
 color: var(--text-muted);
 font-size: 1.1rem;
 line-height: 1.65;
}

.recert-hero-panel {
 padding: 2rem;
 border: 1px solid var(--surface-warm-line);
 border-top: 4px solid var(--secondary-container);
 border-radius: 12px;
 background: var(--surface-white);
}

.recert-hero-panel .icon {
 width: 42px;
 height: 42px;
 margin-bottom: 1.2rem;
 color: var(--secondary-container);
}

.recert-hero-panel h2 {
 margin-bottom: 0.75rem;
 color: var(--primary);
 font-size: 1.55rem;
 line-height: 1.18;
}

.recert-hero-panel p {
 margin: 0;
 color: var(--text-muted);
 line-height: 1.6;
}

.recert-section {
 padding: 5rem 0;
}

.recert-section-heading {
 max-width: 760px;
 margin-bottom: 2rem;
}

.recert-section-heading h2,
.recert-contact-grid h2,
.recert-info-grid h2,
.recert-support-grid h2 {
 margin-bottom: 0.75rem;
 color: var(--primary);
 font-size: clamp(2rem, 4vw, 3rem);
 line-height: 1.05;
}

.recert-section-heading p,
.recert-contact-grid p,
.recert-info-grid p,
.recert-support-grid p {
 color: var(--text-muted);
 line-height: 1.65;
}

.recert-product-grid {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 1.5rem;
}

.recert-product-card {
 display: grid;
 grid-template-rows: 220px 1fr;
 overflow: hidden;
 border: 1px solid var(--surface-warm-line);
 border-radius: 12px;
 background: var(--surface-white);
}

.recert-product-media {
 position: relative;
 overflow: hidden;
 background: var(--surface-warm);
}

.recert-product-media img {
 width: 100%;
 max-width: none;
 height: 100%;
 object-fit: cover;
}

.recert-product-media span {
 position: absolute;
 top: 1rem;
 left: 1rem;
 padding: 0.45rem 0.7rem;
 border-radius: 999px;
 color: var(--surface-white);
 background: var(--primary);
 font-size: 0.8rem;
 font-weight: 600;
 letter-spacing: 0.02em;
}

.recert-product-body {
 display: flex;
 flex-direction: column;
 gap: 1.25rem;
 padding: 1.5rem;
}

.recert-product-type {
 margin-bottom: 0.45rem;
 color: var(--secondary-container);
 font-size: 0.78rem;
 font-weight: 600;
 letter-spacing: 0.08em;
 text-transform: uppercase;
}

.recert-product-card h3 {
 margin-bottom: 0.55rem;
 color: var(--primary);
 font-size: 1.65rem;
 line-height: 1.1;
}

.recert-product-card p {
 color: var(--text-muted);
 line-height: 1.6;
}

.recert-product-facts {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 0.75rem;
 margin: 0;
}

.recert-product-facts div {
 padding-top: 0.8rem;
 border-top: 1px solid var(--surface-warm-line);
}

.recert-product-facts dt {
 margin-bottom: 0.2rem;
 color: var(--text-muted);
 font-size: 0.75rem;
 font-weight: 600;
 letter-spacing: 0.08em;
 text-transform: uppercase;
}

.recert-product-facts dd {
 margin: 0;
 color: var(--primary);
 font-family: var(--font-display);
 font-size: 1.25rem;
 font-weight: 600;
 line-height: 1.1;
}

.recert-saving-note {
 margin: 0;
 padding: 0.8rem 1rem;
 border-left: 3px solid var(--secondary-container);
 background: var(--surface-warm);
 color: var(--primary) !important;
 font-weight: 600;
}

.recert-product-actions,
.recert-inline-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 0.75rem;
 align-items: center;
 margin-top: auto;
}

.recert-contact-section {
 border-top: 1px solid var(--surface-warm-line);
 border-bottom: 1px solid var(--surface-warm-line);
 background: var(--surface-warm);
}

.recert-contact-grid {
 display: grid;
 grid-template-columns: minmax(0, 0.7fr) minmax(0, 1fr);
 gap: 2.5rem;
 align-items: start;
}

.recert-contact-list {
 display: grid;
 gap: 0.9rem;
}

.recert-contact-card {
 display: flex;
 justify-content: space-between;
 gap: 1rem;
 align-items: center;
 padding: 1rem 1.1rem;
 border: 1px solid var(--surface-warm-line);
 border-radius: 10px;
 color: inherit;
 background: var(--surface-white);
 text-decoration: none;
 transition: transform 160ms ease, border-color 160ms ease;
}

.recert-contact-card:hover,
.recert-contact-card:focus-visible {
 border-color: var(--primary);
 outline: none;
 transform: translateY(-2px);
}

.recert-contact-card span {
 color: var(--primary);
 font-weight: 600;
}

.recert-contact-card strong {
 color: var(--text-muted);
 font-size: 0.92rem;
 font-weight: 600;
 text-align: right;
}

.recert-info-grid,
.recert-support-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1rem;
}

.recert-support-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
}

.recert-info-grid article,
.recert-support-grid article {
 padding: 1.5rem;
 border: 1px solid var(--surface-warm-line);
 border-radius: 12px;
 background: var(--surface-white);
}

.recert-info-grid span {
 display: inline-flex;
 margin-bottom: 1rem;
 color: var(--secondary-container);
 font-family: var(--font-display);
 font-size: 1.6rem;
 font-weight: 700;
}

.recert-info-grid h2,
.recert-support-grid h2 {
 font-size: 1.7rem;
}

.recert-support-band {
 padding-top: 0;
}

.gs-self-promo-section {
 padding: var(--section-y-tight) 0;
 border-top: 1px solid var(--surface-container);
 border-bottom: 1px solid var(--surface-container);
 background: var(--surface-container-low);
}

.gs-required-section {
 padding-bottom: var(--section-y-tight);
}

.gs-self-promo-section + .gs-path-choice-section {
 padding-top: var(--section-y-tight);
 padding-bottom: var(--space-2xl);
}

.gs-category-section {
 padding: var(--space-2xl) 0 var(--section-y-tight);
}

.gs-self-promo-heading {
 max-width: 760px;
 margin-bottom: 2rem;
}

.gs-self-promo-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1rem;
}

.gs-self-promo-card {
 display: flex;
 flex-direction: column;
 min-height: 300px;
 padding: 1.45rem;
 border: 1px solid var(--surface-warm-line);
 border-radius: var(--radius-lg);
 background: var(--surface-white);
 box-shadow: var(--shadow-soft);
 transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.gs-self-promo-card:hover,
.gs-self-promo-card:focus-within {
 border-color: rgba(0, 32, 70, 0.28);
 box-shadow: 0 14px 34px rgba(0, 32, 70, 0.09);
 transform: translateY(-3px);
}

.gs-self-promo-card::before {
 content: "";
 display: block;
 width: 44px;
 height: 4px;
 margin-bottom: 1.25rem;
 border-radius: 999px;
 background: var(--primary);
}

.gs-self-promo-card > p {
 margin-bottom: 0.7rem;
 color: var(--primary);
 font-size: 0.78rem;
 font-weight: 600;
 letter-spacing: 0.08em;
 text-transform: uppercase;
}

.gs-self-promo-card h3 {
 margin-bottom: 0.8rem;
 color: var(--primary);
 font-size: clamp(1.55rem, 2vw, 2rem);
 font-weight: 650;
 line-height: 1.08;
}

.gs-self-promo-card > span {
 display: block;
 margin-bottom: 1.45rem;
 color: var(--text-muted);
 line-height: 1.6;
}

.gs-self-promo-card .button {
 margin-top: auto;
 align-self: flex-start;
}
@media (max-width: 900px) {
 .recert-page {
 --gs-margin: 16px;
 }

 .recert-hero-grid,
 .recert-product-grid,
 .recert-contact-grid,
 .recert-info-grid,
 .recert-support-grid,
 .gs-self-promo-grid {
 grid-template-columns: 1fr;
 }

 .gs-hero-section.gs-hero-dark {
 padding: 3.75rem 0 4rem;
 }

 .gs-hero-dark .gs-hero-media {
 height: auto;
 aspect-ratio: 4 / 3;
 box-shadow: 0 18px 38px rgba(0, 0, 0, 0.3);
 }

 .gs-self-promo-card {
 min-height: 0;
 }
}

@media (max-width: 620px) {
 .gs-hero-section.gs-hero-dark {
 padding: 2.75rem 0 3.25rem;
 }

 .gs-hero-dark .gs-hero-grid {
 gap: 2rem;
 }

 .gs-hero-dark .gs-hero-copy {
 gap: 1.1rem;
 }

 .gs-hero-dark .gs-hero-copy h1 {
 font-size: 2.05rem;
 line-height: 1.08;
 }

 .gs-hero-dark .gs-hero-copy > p {
 font-size: 1rem;
 line-height: 1.5;
 }

 .gs-hero-dark .gs-hero-kicker {
 font-size: 0.78rem;
 line-height: 1.5;
 }

 .gs-hero-dark .gs-hero-creds {
 gap: 0.45rem 1rem;
 margin-top: 0.15rem;
 padding-top: 1rem;
 }

 .gs-hero-dark .gs-hero-media {
 aspect-ratio: 16 / 10;
 }

 .recert-hero,
 .recert-section {
 padding: 3.25rem 0;
 }

 .recert-product-card {
 grid-template-rows: 180px 1fr;
 }

 .recert-product-facts {
 grid-template-columns: 1fr;
 }

 .recert-contact-card {
 align-items: flex-start;
 flex-direction: column;
 }

 .recert-contact-card strong {
 text-align: left;
 }

 .gs-choice-panel {
 padding: 2.25rem 1.5rem;
 }

 .gs-category-tile {
 padding: 1.55rem 1.4rem 1.4rem;
 }

 .gs-employer-steps {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 2rem 1rem;
 }

 .gs-credibility-approvals > div {
 padding: 0 0 1.25rem;
 border-bottom: 1px solid var(--surface-warm-line);
 }

 .gs-credibility-approvals > div:last-child {
 padding-bottom: 0;
 border-bottom: 0;
 }

 .gs-logo-strip {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 1.75rem 1rem;
 }

 .gs-logo-strip img {
 justify-self: center;
 width: auto;
 max-width: 132px;
 height: 40px;
 }

 .gs-logo-strip img:last-child:nth-child(odd) {
 grid-column: 1 / -1;
 }

 .recert-product-actions .button,
 .recert-inline-actions .button {
 width: 100%;
 }
}

/* Industry destination pages */
.industry-page {
 --gs-max: 1280px;
 --gs-margin: 40px;
 background: var(--surface-container-lowest);
 color: var(--on-surface);
}

.industry-hero {
 padding: 5.5rem 0 4.25rem;
 border-bottom: 1px solid var(--surface-warm-line);
 background: linear-gradient(180deg, var(--surface-white) 0%, var(--surface-warm) 100%);
}

.industry-hero-grid {
 display: grid;
 grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr);
 gap: 3rem;
 align-items: center;
}

.industry-kicker {
 margin-bottom: 0.75rem;
 color: var(--secondary-container);
 font-size: 0.8rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
}

.industry-hero h1 {
 max-width: 800px;
 margin-bottom: 1rem;
 color: var(--primary);
 font-size: clamp(2.6rem, 5.2vw, 5.2rem);
 font-weight: 700;
 line-height: 0.98;
}

.industry-hero p:not(.industry-kicker) {
 max-width: 760px;
 color: var(--text-muted);
 font-size: 1.08rem;
 line-height: 1.68;
}

.industry-hero-actions,
.industry-cta-actions,
.industry-course-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 0.75rem;
 align-items: center;
}

.industry-hero-actions {
 margin-top: 2rem;
}

.industry-hero-media {
 overflow: hidden;
 aspect-ratio: 4 / 3;
 border: 1px solid var(--surface-warm-line);
 border-radius: 12px;
 background: var(--surface-warm);
}

.industry-hero-media img {
 width: 100%;
 height: 100%;
 object-fit: cover;
}

.industry-context-nav {
 border-bottom: 1px solid var(--surface-warm-line);
 background: var(--surface-white);
}

.industry-context-inner {
 display: flex;
 justify-content: space-between;
 gap: 1.5rem;
 align-items: center;
 padding-top: 0.85rem;
 padding-bottom: 0.85rem;
}

.industry-context-inner > span {
 flex: 0 0 auto;
 color: var(--primary);
 font-size: 0.78rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
}

.industry-context-inner > div {
 display: flex;
 flex-wrap: wrap;
 justify-content: flex-end;
 gap: 0.45rem;
}

.industry-context-inner a {
 display: inline-flex;
 align-items: center;
 min-height: 32px;
 padding: 0.4rem 0.65rem;
 border: 1px solid var(--surface-warm-line);
 border-radius: 999px;
 color: var(--primary);
 background: var(--surface-white);
 font-size: 0.86rem;
 font-weight: 600;
 text-decoration: none;
 transition: border-color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.industry-context-inner a:hover,
.industry-context-inner a:focus-visible {
 border-color: var(--primary);
 outline: none;
 background: var(--surface-warm);
 transform: translateY(-1px);
}

.industry-section {
 padding: 5rem 0;
}

.industry-authority-section,
.industry-related-section {
 background: var(--surface-white);
}

.industry-authority-grid,
.industry-cta-card,
.industry-related-grid {
 display: grid;
 grid-template-columns: minmax(0, 0.75fr) minmax(0, 1fr);
 gap: 2.5rem;
 align-items: start;
}

.industry-authority-grid h2,
.industry-section-heading h2,
.industry-use-case-card h2,
.industry-cta-card h2 {
 margin-bottom: 0.8rem;
 color: var(--primary);
 font-size: clamp(2rem, 4vw, 3rem);
 line-height: 1.05;
}

.industry-authority-grid p,
.industry-section-heading > span,
.industry-use-case-card p,
.industry-cta-card p {
 color: var(--text-muted);
 line-height: 1.65;
}

.industry-authority-stack {
 display: grid;
 gap: 1rem;
}

.industry-marker-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 0.8rem;
}

.industry-marker-grid article,
.industry-belief-grid article,
.industry-use-case-card,
.industry-cta-card,
.industry-course-card {
 border: 1px solid var(--surface-warm-line);
 border-radius: 12px;
 background: var(--surface-white);
}

.industry-marker-grid article {
 padding: 1.1rem;
}

.industry-marker-grid span {
 display: block;
 margin-bottom: 0.45rem;
 color: var(--secondary-container);
 font-size: 0.76rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
}

.industry-marker-grid strong {
 display: block;
 color: var(--primary);
 font-size: 1rem;
 line-height: 1.35;
}

.industry-logo-panel {
 display: flex;
 flex-wrap: wrap;
 gap: 1rem 1.5rem;
 align-items: center;
 width: fit-content;
 max-width: 100%;
 margin-inline: auto;
 padding: 0.75rem 0;
}

.industry-logo-panel img {
 width: auto;
 max-width: 100%;
 object-fit: contain;
}

.industry-logo-panel.logo-count-1 img {
 max-height: 64px;
}

.industry-logo-panel.logo-count-2 img:first-child {
 width: 184px;
}

.industry-logo-panel.logo-count-2 img:last-child {
 width: 154px;
}

@media (max-width: 420px) {
 .industry-logo-panel.logo-count-2 {
  gap: 0.85rem;
 }

 .industry-logo-panel.logo-count-2 img:first-child {
  width: min(174px, 52%);
 }

 .industry-logo-panel.logo-count-2 img:last-child {
  width: min(146px, 43%);
 }
}

.industry-belief-section {
 padding-top: 3rem;
 padding-bottom: 3rem;
 background: var(--surface-warm);
}

.industry-belief-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1rem;
}

.industry-belief-grid article {
 padding: 1.25rem;
 color: var(--primary);
 font-weight: 600;
 line-height: 1.45;
}

.industry-section-heading {
 max-width: 820px;
 margin-bottom: 1.6rem;
}

.industry-section-heading > p {
 margin-bottom: 0.6rem;
 color: var(--secondary-container);
 font-size: 0.78rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
}

.industry-course-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1rem;
}

.industry-course-card {
 display: flex;
 flex-direction: column;
 overflow: hidden;
 min-height: 100%;
 transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.industry-course-card:hover,
.industry-course-card:focus-within {
 border-color: rgba(0, 32, 70, 0.28);
 box-shadow: 0 14px 34px rgba(0, 32, 70, 0.08);
 transform: translateY(-3px);
}

.industry-course-image {
 position: relative;
 display: block;
 overflow: hidden;
 aspect-ratio: 16 / 9;
 background: var(--surface-warm);
}

.industry-course-image img {
 width: 100%;
 height: 100%;
 object-fit: cover;
}

.industry-course-image span {
 position: absolute;
 top: 0.8rem;
 left: 0.8rem;
 padding: 0.38rem 0.6rem;
 border-radius: 999px;
 color: var(--surface-white);
 background: var(--primary);
 font-size: 0.74rem;
 font-weight: 700;
 letter-spacing: 0.03em;
}

.industry-course-body {
 display: flex;
 flex: 1;
 flex-direction: column;
 gap: 1rem;
 padding: 1.2rem;
}

.industry-course-body h3 {
 margin-bottom: 0.45rem;
 color: var(--primary);
 font-size: 1.28rem;
 line-height: 1.18;
}

.industry-course-body h3 a {
 color: inherit;
 text-decoration: none;
}

.industry-course-body p {
 margin: 0;
 color: var(--text-muted);
 line-height: 1.55;
}

.industry-course-body dl {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0.75rem;
 margin: auto 0 0;
 padding-top: 0.9rem;
 border-top: 1px solid var(--surface-warm-line);
}

.industry-course-body dt {
 margin-bottom: 0.15rem;
 color: var(--text-muted);
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
}

.industry-course-body dd {
 margin: 0;
 color: var(--primary);
 font-family: var(--font-display);
 font-size: 1.1rem;
 font-weight: 600;
 line-height: 1.15;
}

.industry-course-actions {
 margin-top: 0.2rem;
}

.industry-course-actions .button {
 flex: 1 1 150px;
}

.industry-course-actions .session-add-to-cart {
 flex: 1 1 150px;
}

.industry-course-actions .session-add-to-cart > .button {
 width: 100%;
}

.industry-use-case-section {
 padding-top: 0;
}

.industry-use-case-card {
 max-width: 900px;
 padding: 1.5rem;
 border-left: 4px solid var(--secondary-container);
}

.industry-cta-section {
 padding-top: 3rem;
}

.industry-cta-card {
 padding: 2rem;
 background: var(--primary);
}

.industry-cta-card h2,
.industry-cta-card p,
.industry-cta-card .industry-kicker {
 color: var(--surface-white);
}

.industry-cta-card p {
 opacity: 0.88;
}

.industry-cta-actions {
 justify-content: flex-end;
 align-self: center;
}

.industry-cta-actions .button.secondary {
 border-color: rgba(255, 255, 255, 0.72);
 color: var(--surface-white);
 background: transparent;
}

.industry-related-section {
 padding-top: 2rem;
 padding-bottom: 4rem;
}

.industry-related-grid {
 grid-template-columns: minmax(0, 0.55fr) minmax(0, 1fr);
 align-items: center;
}

.industry-related-grid > span {
 color: var(--primary);
 font-weight: 700;
}

.industry-related-grid > div {
 display: flex;
 flex-wrap: wrap;
 justify-content: flex-end;
 gap: 0.6rem;
}

.industry-related-grid a {
 color: var(--primary);
 font-weight: 600;
 text-decoration: none;
}

.industry-related-grid a:hover,
.industry-related-grid a:focus-visible {
 color: var(--secondary-container);
 outline: none;
}

.nav-industries-groups {
 grid-template-columns: repeat(3, minmax(0, 1fr));
}

.nav-courses-group-label a {
 color: inherit;
 text-decoration: none;
}

@media (max-width: 1100px) {
 .industry-course-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }
}

@media (max-width: 900px) {
 .industry-page {
 --gs-margin: 16px;
 }

 .industry-hero-grid,
 .industry-authority-grid,
 .industry-cta-card,
 .industry-related-grid {
 grid-template-columns: 1fr;
 }

 .industry-marker-grid,
 .industry-belief-grid,
 .nav-industries-groups {
 grid-template-columns: 1fr;
 }

 .industry-context-inner {
 align-items: flex-start;
 flex-direction: column;
 }

 .industry-context-inner > div,
 .industry-related-grid > div,
 .industry-cta-actions {
 justify-content: flex-start;
 }
}

@media (max-width: 620px) {
 .industry-hero,
 .industry-section {
 padding: 3.5rem 0;
 }

 .industry-course-grid {
 grid-template-columns: 1fr;
 }

 .industry-hero-media {
 aspect-ratio: 16 / 10;
 }

 .industry-course-actions .button,
 .industry-cta-actions .button,
 .industry-hero-actions .button {
 width: 100%;
 }
}

/* Final cascade overrides for the secondary-page quality pass */
.refined-course-page .course-detail-layout {
 padding-top: 3.35rem;
 padding-bottom: 4.25rem;
}

.refined-course-page .course-section {
 padding-bottom: 2.25rem;
}

.refined-course-page .course-section + .course-section,
.refined-course-page .course-callout-grid + .course-section {
 padding-top: 2.25rem;
}

.grant-tool-results {
 border-top: 1px solid var(--surface-container);
 background: var(--surface-container-lowest);
}

.grant-output-card {
 border-color: var(--outline-variant);
 box-shadow: none;
}

.grant-portal-list {
 gap: 0;
 border-top: 1px solid var(--surface-container);
}

.grant-portal-link {
 padding: 1rem 0;
 border: 0;
 border-bottom: 1px solid var(--surface-container);
 border-radius: 0;
 background: transparent;
 box-shadow: none;
}

.grant-portal-link:hover,
.grant-portal-link:focus-visible {
 padding-right: 0.5rem;
 padding-left: 0.5rem;
 border-color: var(--surface-container);
 background: var(--surface-container-lowest);
 box-shadow: none;
 transform: none;
}

.recert-hero {
 padding-top: 4.5rem;
 padding-bottom: 4rem;
 background: var(--surface-container-lowest);
}

.recert-hero-grid {
 grid-template-columns: minmax(0, 1fr) minmax(260px, 0.5fr);
}

.recert-hero h1 {
 max-width: 820px;
 font-size: clamp(2.7rem, 5vw, 4.7rem);
}

.recert-hero-panel.recert-hero-details {
 display: grid;
 gap: 1.1rem;
 padding: 1.5rem 0 1.5rem 1.5rem;
 border: 0;
 border-left: 3px solid var(--primary);
 border-radius: 0;
 background: transparent;
}

.recert-hero-panel.recert-hero-details .icon {
 width: 34px;
 height: 34px;
 margin-bottom: 0.25rem;
 color: var(--primary);
}

.recert-hero-details div {
 display: grid;
 gap: 0.2rem;
}

.recert-hero-details strong {
 color: var(--primary);
 font-family: var(--font-display);
 font-size: 1.15rem;
}

.recert-hero-details span {
 color: var(--text-muted);
 line-height: 1.45;
}

.recert-product-card {
 grid-template-rows: 260px 1fr;
}

.recert-info-grid {
 gap: 0;
 border-top: 1px solid var(--surface-container);
}

.recert-info-grid article {
 padding: 1.5rem 1.5rem 0;
 border: 0;
 border-right: 1px solid var(--surface-container);
 border-radius: 0;
}

.recert-info-grid article:first-child {
 padding-left: 0;
}

.recert-info-grid article:last-child {
 border-right: 0;
}

.recert-support-grid {
 overflow: hidden;
 gap: 0;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius-lg);
 background: var(--surface-container-lowest);
}

.recert-support-grid article {
 border: 0;
 border-right: 1px solid var(--outline-variant);
 border-radius: 0;
 background: transparent;
}

.recert-support-grid article:last-child {
 border-right: 0;
}

@media (max-width: 1120px) {
 .refined-course-page .course-sidebar,
 .refined-generic-course-page .generic-course-sidebar {
 order: -1;
 }
}

@media (max-width: 760px) {
 .refined-course-page .course-detail-layout {
 padding-top: 2.35rem;
 padding-bottom: 3.25rem;
 }

 .refined-course-page .course-section {
 padding-bottom: 1.6rem;
 }

 .refined-course-page .course-section + .course-section,
 .refined-course-page .course-callout-grid + .course-section {
 padding-top: 1.6rem;
 }

 .refined-course-page .course-callout-grid {
 padding-top: 1.6rem;
 padding-bottom: 1.6rem;
 }

 .refined-course-page .course-action-callout {
 padding: 1.1rem;
 }

 .recert-hero-grid,
 .recert-info-grid,
 .recert-support-grid {
 grid-template-columns: 1fr;
 }

 .recert-hero-panel.recert-hero-details {
 padding: 1.25rem 0 0;
 border-top: 1px solid var(--surface-container);
 border-left: 0;
 }

 .recert-info-grid article,
 .recert-info-grid article:first-child {
 padding: 1.25rem 0;
 border-right: 0;
 border-bottom: 1px solid var(--surface-container);
 }

 .recert-support-grid article {
 border-right: 0;
 border-bottom: 1px solid var(--outline-variant);
 }

 .recert-support-grid article:last-child {
 border-bottom: 0;
 }
}

/* Recertification split decision block */
.recert-support-band {
 padding-top: 1rem;
}

.recert-support-grid {
 overflow: hidden;
 gap: 0;
 border: 0;
 border-radius: var(--radius-lg);
 background: transparent;
 box-shadow: var(--shadow-soft);
}

.recert-support-grid article {
 display: flex;
 flex-direction: column;
 align-items: flex-start;
 min-height: 300px;
 padding: clamp(2rem, 4vw, 2.75rem);
 border: 0;
 border-radius: 0;
}

.recert-support-grid article:first-child {
 background: var(--surface-warm);
}

.recert-support-grid article:last-child {
 color: var(--surface-white);
 background: var(--primary);
}

.recert-support-grid h2 {
 margin-bottom: 0.85rem;
 font-size: clamp(1.75rem, 3vw, 2.25rem);
 line-height: 1.15;
}

.recert-support-grid article:last-child h2,
.recert-support-grid article:last-child p {
 color: var(--surface-white);
}

.recert-support-grid article > p:not(.recert-support-kicker) {
 max-width: 560px;
 margin-bottom: 1.5rem;
}

.recert-support-kicker {
 margin: 0 0 1rem;
 color: var(--secondary-container) !important;
 font-size: var(--fs-small);
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
}

.recert-support-grid article:last-child .recert-support-kicker {
 color: var(--accent-amber) !important;
}

.recert-support-grid .recert-inline-actions,
.recert-support-grid article > .button {
 margin-top: auto;
}

@media (max-width: 760px) {
 .recert-support-grid article {
 min-height: 0;
 padding: 1.6rem;
 border: 0;
 }
}

/* Secondary-page visual consistency */
.about-story-grid {
 grid-template-columns: minmax(250px, 0.42fr) minmax(0, 1fr);
 gap: clamp(2.5rem, 5vw, 5rem);
}

.about-pillar-grid article {
 min-height: 0;
 padding: 1.35rem 0 0;
 border: 0;
 border-top: 3px solid var(--primary);
 border-radius: 0;
 background: transparent;
 box-shadow: none;
}

.about-pillar-grid .icon {
 width: 30px;
 height: 30px;
 padding: 0;
 border-radius: 0;
 color: var(--primary);
 background: transparent;
}

.about-training-layout {
 grid-template-columns: minmax(0, 1fr) minmax(300px, 0.38fr);
 align-items: stretch;
}

.about-training-tags {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0;
 margin-top: 1.5rem;
 border-top: 1px solid var(--surface-container);
}

.about-training-tags span {
 padding: 0.8rem 0.75rem 0.8rem 0;
 border: 0;
 border-bottom: 1px solid var(--surface-container);
 border-radius: 0;
 color: var(--on-surface-variant);
 background: transparent;
 font-weight: 600;
}

.about-area-card.enhanced-about-card {
 display: flex;
 flex-direction: column;
 justify-content: center;
 min-height: 100%;
 padding: 2rem;
 border: 0;
 border-radius: var(--radius-lg);
 color: var(--surface-white);
 background: var(--primary);
 box-shadow: none;
}

.about-area-card.enhanced-about-card h3,
.about-area-card.enhanced-about-card p {
 color: var(--surface-white);
}

.about-employer-band {
 color: var(--surface-white);
 background: var(--primary);
}

.about-employer-grid {
 grid-template-columns: minmax(280px, 0.7fr) minmax(0, 1.3fr);
 align-items: center;
}

.about-employer-band .stitch-kicker {
 color: var(--accent-amber);
}

.about-employer-band h2 {
 color: var(--surface-white);
}

.about-support-list {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1.25rem;
}

.about-support-list > div {
 padding: 1rem 0 0;
 border: 0;
 border-top: 2px solid var(--accent-amber);
 border-radius: 0;
 background: transparent;
}

.about-support-list strong,
.about-support-list span {
 color: var(--surface-white);
}

.contact-main-office-card {
 display: grid;
 grid-template-areas:
  "icon kicker ."
  "icon title ."
  "icon address links";
 grid-template-columns: auto minmax(0, 1fr) auto;
 gap: 0.3rem 1.25rem;
 align-items: center;
 width: 100%;
 max-width: none;
 padding: 1.5rem;
 border: 0;
 border-left: 4px solid var(--primary);
 border-radius: var(--radius-lg);
 background: var(--surface-container-lowest);
 box-shadow: none;
}

.contact-main-office-card > .icon {
 grid-area: icon;
}

.contact-main-office-card > .stitch-kicker {
 grid-area: kicker;
 margin: 0;
}

.contact-main-office-card > h2 {
 grid-area: title;
 margin: 0;
}

.contact-main-office-card > p:not(.stitch-kicker) {
 grid-area: address;
 margin: 0;
}

.contact-main-office-card .contact-office-links {
 grid-area: links;
 min-width: 220px;
 align-self: start;
 margin-top: 0;
}

.request-inline-summary strong {
 display: block;
 margin-bottom: 0.2rem;
}

.support-flow-page .request-inline-summary ul,
.form-section .request-inline-summary ul,
.grant-tool-section .request-inline-summary ul,
.contact-form-intro ul {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 0.85rem 1.25rem;
 margin-top: 0.5rem;
}

.support-flow-page .request-inline-summary li,
.form-section .request-inline-summary li,
.grant-tool-section .request-inline-summary li,
.contact-form-intro li {
 margin-top: 0;
 padding: 0.8rem 0 0;
 border-top: 2px solid var(--surface-container);
}

.support-flow-page .request-inline-summary li::before,
.form-section .request-inline-summary li::before,
.grant-tool-section .request-inline-summary li::before,
.contact-form-intro li::before {
 display: none;
}

.industry-section {
 padding-top: 4rem;
 padding-bottom: 4rem;
}

.industry-authority-section {
 padding-top: 3.5rem;
 padding-bottom: 2.5rem;
}

.industry-authority-grid {
 grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
 align-items: center;
}

.industry-marker-grid {
 gap: 1.25rem;
}

.industry-marker-grid article {
 padding: 1rem 0 0;
 border: 0;
 border-top: 3px solid var(--primary);
 border-radius: 0;
 background: transparent;
}

.industry-safety-strip .button {
 margin-top: 1.25rem;
}

.mini-course-grid article {
 border-color: var(--outline-variant);
 box-shadow: none;
 transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.mini-course-grid article:hover,
.mini-course-grid article:focus-within {
 border-color: var(--primary-container);
 box-shadow: var(--shadow-soft);
 transform: translateY(-3px);
}

.mini-course-grid article .button {
 min-height: 44px;
 color: var(--primary);
 font-weight: 600;
}

.final-band {
 width: min(100% - 48px, var(--max));
 margin: 0 auto 5rem;
 padding: clamp(2rem, 4vw, 3rem);
 border: 0;
 border-radius: var(--radius-lg);
 color: var(--surface-white);
 background: var(--primary);
}

.final-band .eyebrow {
 color: var(--accent-amber);
}

.final-band h2 {
 max-width: 760px;
 color: var(--surface-white);
}

.final-band .button.secondary {
 border-color: var(--surface-white);
 color: var(--surface-white);
 background: transparent;
}

@media (max-width: 900px) {
 .about-story-grid,
 .about-training-layout,
 .about-employer-grid,
 .contact-main-office-card,
 .industry-authority-grid {
 grid-template-columns: 1fr;
 }

 .about-support-list,
 .support-flow-page .request-inline-summary ul,
 .form-section .request-inline-summary ul,
 .grant-tool-section .request-inline-summary ul,
 .contact-form-intro ul {
 grid-template-columns: 1fr;
 }

 .contact-main-office-card {
 grid-template-areas:
  "icon"
  "kicker"
  "title"
  "address"
  "links";
 align-items: start;
 }

 .contact-main-office-card .contact-office-links {
 min-width: 0;
 }
}

@media (max-width: 620px) {
 .about-training-tags {
 grid-template-columns: 1fr;
 }

 .final-band {
 width: min(100% - 32px, var(--max));
 margin-bottom: 3.5rem;
 }
}

.blog-card {
 overflow: hidden;
 padding: 0;
 border-color: var(--outline-variant);
 box-shadow: none;
 transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.blog-card:hover,
.blog-card:focus-within {
 border-color: var(--primary-container);
 box-shadow: var(--shadow-soft);
 transform: translateY(-3px);
}

.blog-card-media {
 display: block;
 overflow: hidden;
 aspect-ratio: 16 / 9;
 background: var(--surface-container);
}

.blog-card-media img {
 width: 100%;
 height: 100%;
 object-fit: cover;
}

.blog-card > .blog-card-body {
 display: grid;
 gap: 1rem;
 padding: 1.5rem;
}

.blog-card-body > div {
 display: flex;
 justify-content: space-between;
 gap: 1rem;
}

.blog-card-body h2,
.blog-card-body p {
 margin: 0;
}

.blog-card-body > a {
 color: var(--primary);
 font-weight: 600;
 text-decoration: none;
}

.blog-card-body > a::after {
 content: "\2192";
 display: inline-block;
 margin-left: 0.45rem;
 transition: transform 160ms ease;
}

.blog-card:hover .blog-card-body > a::after,
.blog-card:focus-within .blog-card-body > a::after {
 transform: translateX(3px);
}

.blog-post-hero-grid {
 display: grid;
 grid-template-columns: minmax(0, 1fr) minmax(360px, 0.68fr);
 gap: clamp(2.5rem, 5vw, 5rem);
 align-items: center;
}

.blog-post-hero-grid > img {
 width: 100%;
 aspect-ratio: 4 / 3;
 border-radius: var(--radius-lg);
 object-fit: cover;
}

@media (max-width: 900px) {
 .blog-post-hero-grid {
  grid-template-columns: 1fr;
 }

 .blog-post-hero-grid > img {
 aspect-ratio: 16 / 9;
 }
}

/* Compact category and industry browser */
.taxonomy-bar-shell {
 position: relative;
 z-index: 35;
 padding: 0 var(--gutter);
 border-bottom: 1px solid var(--outline-variant);
 background: var(--surface-white);
}

.taxonomy-browser {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 width: min(100%, 680px);
 margin: 0 auto;
}

.taxonomy-browser-menu {
 position: relative;
 min-width: 0;
}

.taxonomy-browser-menu + .taxonomy-browser-menu {
 border-left: 1px solid var(--outline-variant);
}

.taxonomy-browser-trigger {
 position: relative;
 display: flex;
 align-items: center;
 width: 100%;
 min-height: 66px;
 padding: 0.65rem 3rem 0.65rem 1.35rem;
 border: 0;
 border-radius: 0;
 background: transparent;
 color: var(--primary);
 font-family: var(--font-body);
 text-align: left;
 cursor: pointer;
 transition: background-color 160ms ease, box-shadow 160ms ease;
}

.taxonomy-browser-trigger:hover,
.taxonomy-browser-trigger:focus-visible,
.taxonomy-browser-menu.is-open .taxonomy-browser-trigger {
 background: var(--surface-container-low);
 outline: none;
}

.taxonomy-browser-menu.is-open .taxonomy-browser-trigger {
 box-shadow: inset 0 -3px 0 var(--secondary-container);
}

.taxonomy-browser-trigger::after {
 content: "";
 position: absolute;
 top: 50%;
 right: 1.35rem;
 width: 8px;
 height: 8px;
 border-right: 1.5px solid currentColor;
 border-bottom: 1.5px solid currentColor;
 transform: translateY(-65%) rotate(45deg);
 transition: transform 160ms ease;
}

.taxonomy-browser-menu.is-open .taxonomy-browser-trigger::after {
 transform: translateY(-30%) rotate(225deg);
}

.taxonomy-browser-trigger-copy {
 display: grid;
 min-width: 0;
 gap: 0.15rem;
}

.taxonomy-browser-trigger-label {
 color: var(--text-muted);
 font-size: 0.65rem;
 font-weight: 700;
 letter-spacing: 0.07em;
 line-height: 1.2;
 text-transform: uppercase;
}

.taxonomy-browser-trigger-value {
 overflow: hidden;
 color: var(--primary);
 font-family: var(--font-display);
 font-size: 1rem;
 font-weight: 600;
 line-height: 1.15;
 text-overflow: ellipsis;
 white-space: nowrap;
}

.taxonomy-browser-panel {
 position: absolute;
 top: calc(100% + 0.65rem);
 left: 0;
 z-index: 80;
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0.25rem;
 width: min(520px, calc(100vw - 2rem));
 padding: 0.75rem;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: var(--surface-white);
 box-shadow: var(--shadow-soft);
}

.taxonomy-browser-menu-industries .taxonomy-browser-panel {
 right: 0;
 left: auto;
 grid-template-columns: 1fr;
 width: min(340px, calc(100vw - 2rem));
}

.taxonomy-browser-link {
 position: relative;
 display: flex;
 align-items: center;
 min-height: 50px;
 padding: 0.7rem 0.8rem;
 border-radius: var(--radius);
 color: var(--on-surface-variant);
 font-size: 0.82rem;
 font-weight: 600;
 line-height: 1.3;
 text-decoration: none;
 transition: color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.taxonomy-browser-link:hover,
.taxonomy-browser-link:focus-visible,
.taxonomy-browser-link.is-active {
 color: var(--primary);
 background: var(--surface-container-low);
 outline: none;
}

.taxonomy-browser-link:hover,
.taxonomy-browser-link:focus-visible {
 transform: translateX(2px);
}

.taxonomy-browser-link.is-active {
 box-shadow: inset 3px 0 0 var(--secondary-container);
}

.context-lineup-icon {
 width: 25px;
 height: 25px;
 fill: none;
 stroke: currentColor;
 stroke-width: 1.75;
 stroke-linecap: round;
 stroke-linejoin: round;
}

.nav-courses-panel:not(.nav-industries-panel) .nav-courses-groups {
 grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 760px) {
 .taxonomy-bar-shell {
  padding-inline: var(--gutter);
 }

 .taxonomy-browser {
  width: 100%;
 }

 .taxonomy-browser-trigger {
  min-height: 52px;
  padding: 0.65rem 2.4rem 0.65rem 0.75rem;
 }

 .taxonomy-browser-trigger-label {
  color: var(--primary);
  font-family: var(--font-display);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
 }

 .taxonomy-browser-trigger-value {
  display: none;
 }

 .taxonomy-browser-panel,
 .taxonomy-browser-menu-industries .taxonomy-browser-panel {
  grid-template-columns: 1fr;
  width: min(430px, calc(100vw - (2 * var(--gutter))));
 }

 .taxonomy-browser-menu-categories .taxonomy-browser-panel {
  grid-template-columns: repeat(2, minmax(0, 1fr));
 }

 .taxonomy-browser-trigger::after {
  right: 0.85rem;
 }
}

@media (max-width: 420px) {
 .taxonomy-browser-trigger {
  padding-right: 1.8rem;
  padding-left: 0.6rem;
 }

 .taxonomy-browser-trigger-label {
  font-size: 0.78rem;
 }

 .taxonomy-browser-trigger::after {
  right: 0.65rem;
 }

 .taxonomy-browser-menu-categories .taxonomy-browser-panel {
  grid-template-columns: 1fr;
 }
}
.mobile-nav-disclosure {
 display: none;
}

/* Category and industry directory pages reuse the established industry system. */
.category-course-section,
.industries-index-section {
 background: var(--surface-container-lowest);
}

.category-heading-row {
 display: flex;
 align-items: end;
 justify-content: space-between;
 gap: 1.5rem;
}

.category-heading-row > div {
 max-width: 760px;
}

.category-heading-row > strong {
 flex: 0 0 auto;
 color: var(--primary);
 font-family: var(--font-display);
 font-size: var(--fs-h4);
 font-weight: var(--fw-h3);
}

.industries-index-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1.5rem;
}

.industry-destination-card {
 display: flex;
 flex-direction: column;
 overflow: hidden;
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius-lg);
 background: var(--surface-white);
 transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.industry-destination-card:hover,
.industry-destination-card:focus-within {
 border-color: var(--primary-container);
 box-shadow: var(--shadow-soft);
 transform: translateY(-3px);
}

.industry-destination-media {
 display: block;
 overflow: hidden;
 aspect-ratio: 16 / 10;
 background: var(--surface-container);
}

.industry-destination-media img {
 width: 100%;
 height: 100%;
 object-fit: cover;
}

.industry-destination-card > div {
 display: flex;
 flex: 1;
 flex-direction: column;
 align-items: flex-start;
 padding: 1.5rem;
}

.industry-destination-card h2 {
 margin-bottom: 0.75rem;
 font-size: var(--fs-h3);
}

.industry-destination-card h2 a {
 color: var(--primary);
 text-decoration: none;
}

.industry-destination-card > div > span {
 margin-bottom: 1.5rem;
 color: var(--on-surface-variant);
 line-height: 1.6;
}

.industry-destination-card .button {
 margin-top: auto;
}

@media (max-width: 980px) {
 .context-rail {
  justify-content: flex-start;
  overflow-x: auto;
 }

 .industries-index-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
 }
}

@media (max-width: 768px) {
 .context-rail-shell {
  padding: 0.65rem 0 0.55rem;
 }

 .context-rail {
  width: 100%;
  padding-inline: var(--gutter);
  gap: 0.5rem;
 }

 .context-rail-item {
  flex-basis: 84px;
  min-height: 51px;
  font-size: 0.66rem;
 }

 .context-rail-item::after {
  right: 31px;
  left: 31px;
 }

 .context-rail-icon {
  width: 27px;
  height: 25px;
 }

 .context-lineup-icon {
  width: 22px;
  height: 22px;
 }

 .mobile-nav-disclosure {
  display: block;
  border-bottom: 1px solid var(--surface-container);
 }

 .mobile-nav-disclosure summary {
  position: relative;
  padding: 0.65rem 1.8rem 0.65rem 0.4rem;
  color: var(--primary);
  font-family: var(--font-display);
  font-size: 1.02rem;
  font-weight: 600;
  cursor: pointer;
  list-style: none;
 }

 .mobile-nav-disclosure summary::-webkit-details-marker {
  display: none;
 }

 .mobile-nav-disclosure summary::after {
  content: "+";
  position: absolute;
  top: 50%;
  right: 0.45rem;
  color: var(--secondary-container);
  font-family: var(--font-body);
  font-size: 1.2rem;
  font-weight: 500;
  transform: translateY(-50%);
 }

 .mobile-nav-disclosure[open] summary::after {
  content: "âˆ’";
 }

 .mobile-nav-disclosure > div {
  display: grid;
  padding: 0 0.4rem 0.75rem 1rem;
 }

 .mobile-nav-disclosure > div > span {
  margin: 0.65rem 0 0.25rem;
  color: var(--text-muted);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
 }

 .mobile-nav-disclosure a {
  padding: 0.38rem 0;
  color: var(--on-surface-variant);
  font-size: 0.9rem;
  font-weight: 600;
 }

 .category-heading-row {
  align-items: flex-start;
  flex-direction: column;
  gap: 0.75rem;
 }
}

@media (max-width: 620px) {
 .industries-index-grid {
  grid-template-columns: 1fr;
 }
}

/* Navigation finish pass */
@media (min-width: 769px) {
 .site-header {
  border-bottom: 1px solid var(--surface-container);
 }

 .site-header .main-nav {
  align-items: center;
  gap: 0.15rem;
 }

 .site-header .main-nav > a,
 .site-header .nav-courses-trigger {
  min-height: 40px;
  height: 40px;
  padding-right: 0.72rem;
  padding-left: 0.72rem;
  border: 0;
  border-radius: var(--radius);
  color: var(--primary);
  font-weight: 600;
  transition: color 160ms ease, background-color 160ms ease;
 }

 .site-header .main-nav > a:hover,
 .site-header .main-nav > a:focus-visible,
 .site-header .main-nav > a.active,
 .site-header .nav-courses-trigger:hover,
 .site-header .nav-courses-trigger:focus-visible,
 .site-header .nav-courses-trigger[aria-expanded="true"] {
  color: var(--primary);
  background: var(--surface-container-low);
  outline: none;
 }

 .site-header .main-nav > a.active {
  color: var(--secondary-container);
 }
}

.nav-courses-panel {
 overflow: hidden;
 padding: 0;
 border-radius: var(--radius-lg);
 background: var(--surface-white);
 box-shadow: var(--shadow-soft);
}

.nav-courses-panel .nav-courses-groups {
 gap: 0;
 padding: 1.15rem 1rem 1rem;
}

.nav-courses-panel .nav-courses-group {
 min-width: 0;
 padding: 0 1rem 0.2rem;
}

.nav-courses-panel .nav-courses-group + .nav-courses-group {
 border-left: 1px solid var(--surface-container);
}

.nav-courses-panel .nav-courses-group-label {
 margin-bottom: 0.4rem;
 padding: 0 0.65rem 0.6rem;
 border-bottom: 1px solid var(--surface-container);
 color: var(--text-muted);
 font-family: var(--font-body);
 font-size: 0.68rem;
 font-weight: 700;
 letter-spacing: 0.08em;
}

.nav-courses-panel .nav-courses-group-label::before {
 content: none;
}

.nav-courses-panel .nav-courses-group ul {
 gap: 0.05rem;
}

.nav-courses-panel .nav-courses-group ul a {
 position: relative;
 display: flex;
 align-items: center;
 min-height: 42px;
 margin: 0;
 padding: 0.55rem 2rem 0.55rem 0.7rem;
 border-radius: var(--radius);
 color: var(--on-surface-variant);
 font-size: 0.86rem;
 font-weight: 600;
}

.nav-courses-panel .nav-courses-group ul a::after {
 content: "\2192";
 position: absolute;
 right: 0.7rem;
 color: var(--secondary-container);
 opacity: 0;
 transform: translateX(-4px);
 transition: opacity 160ms ease, transform 160ms ease;
}

.nav-courses-panel .nav-courses-group ul a:hover,
.nav-courses-panel .nav-courses-group ul a:focus-visible {
 color: var(--primary);
 background: var(--surface-container-low);
 box-shadow: none;
 transform: none;
}

.nav-courses-panel .nav-courses-group ul a:hover::after,
.nav-courses-panel .nav-courses-group ul a:focus-visible::after {
 opacity: 1;
 transform: translateX(0);
}

.nav-courses-panel .nav-courses-all {
 display: flex;
 justify-content: space-between;
 width: 100%;
 margin: 0;
 padding: 0.95rem 1.35rem;
 border-top: 0;
 background: var(--primary);
 color: var(--on-primary);
}

.nav-courses-panel .nav-courses-all:hover,
.nav-courses-panel .nav-courses-all:focus-visible {
 color: var(--on-primary);
 background: var(--primary-container);
 outline: none;
}

.taxonomy-browser-panel {
 top: 100%;
 gap: 0.25rem;
 width: min(580px, calc(100vw - 2rem));
 padding: 0.65rem;
 border-top: 1px solid var(--outline-variant);
 border-radius: 0 0 var(--radius-lg) var(--radius-lg);
 background: var(--surface-white);
 box-shadow: var(--shadow-soft);
}

.taxonomy-browser-menu-industries .taxonomy-browser-panel {
 width: min(390px, calc(100vw - 2rem));
}

.taxonomy-browser-link {
 display: grid;
 grid-template-columns: 28px minmax(0, 1fr);
 align-items: center;
 gap: 0.65rem;
 min-height: 68px;
 padding: 0.6rem 0.7rem;
 border: 0;
 border-radius: var(--radius);
}

.taxonomy-browser-link-icon {
 display: inline-flex;
 align-items: center;
 justify-content: flex-start;
 width: 28px;
 height: 28px;
 color: var(--primary);
 background: transparent;
 transition: color 160ms ease, transform 160ms ease;
}

.taxonomy-browser-link-copy {
 display: grid;
 min-width: 0;
 gap: 0.12rem;
}

.taxonomy-browser-link-title {
 color: var(--primary);
 font-family: var(--font-display);
 font-size: 0.94rem;
 font-weight: 600;
 line-height: 1.15;
}

.taxonomy-browser-link-description {
 color: var(--text-muted);
 font-size: 0.7rem;
 font-weight: 500;
 line-height: 1.35;
}

.taxonomy-browser-link:hover,
.taxonomy-browser-link:focus-visible,
.taxonomy-browser-link.is-active {
 border-color: transparent;
 background: var(--surface-container-low);
 box-shadow: none;
 transform: none;
}

.taxonomy-browser-link.is-active {
 box-shadow: inset 3px 0 0 var(--secondary-container);
}

.taxonomy-browser-link:hover .taxonomy-browser-link-icon,
.taxonomy-browser-link:focus-visible .taxonomy-browser-link-icon,
.taxonomy-browser-link.is-active .taxonomy-browser-link-icon {
 color: var(--secondary-container);
 background: transparent;
 transform: translateX(2px);
}

.mobile-nav-disclosure[open] summary::after {
 content: "\2212";
}

@media (max-width: 760px) {
 .taxonomy-browser-panel,
 .taxonomy-browser-menu-industries .taxonomy-browser-panel {
  width: min(430px, calc(100vw - (2 * var(--gutter))));
 }

 .taxonomy-browser-link {
  min-height: 64px;
 }
}

@media (max-width: 420px) {
 .taxonomy-browser-link-description {
  font-size: 0.68rem;
 }
}
/* Catalogue action alignment */
.catalog-course-card .directory-course-actions {
 grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
}

.catalog-course-card .directory-course-actions .button {
 min-width: 0;
 padding-right: 0.6rem;
 padding-left: 0.6rem;
 font-size: 0.8rem;
 white-space: nowrap;
}
/* Sticky-header offsets for course-page anchor navigation */
.course-detail-page {
 --course-anchor-offset: 6.5rem;
}

.course-detail-page [id] {
 scroll-margin-top: var(--course-anchor-offset);
}

@media (min-width: 769px) and (max-width: 1320px) {
 .course-detail-page {
  --course-anchor-offset: 8.5rem;
 }
}

@media (max-width: 768px) {
 .course-detail-page {
  --course-anchor-offset: 5rem;
 }
}
/* Shared, in-page product selector for variable course cards. */
.course-option-action {
 flex: 1 1 0;
 min-width: 0;
}

.course-option-trigger {
 width: 100%;
}

.course-option-inline {
 display: grid;
 gap: var(--space-sm);
 width: 100%;
 min-width: 0;
 padding: var(--space-md);
 border: 1px solid var(--outline-variant);
 border-radius: var(--radius);
 background: var(--surface-warm);
 animation: course-option-reveal 180ms ease-out;
}

@keyframes course-option-reveal {
 from {
  opacity: 0;
  transform: translateY(4px);
 }
 to {
  opacity: 1;
  transform: translateY(0);
 }
}

.course-option-field {
 display: grid;
 gap: var(--space-xs);
 min-width: 0;
}

.course-option-field > span {
 color: var(--primary);
 font-size: var(--fs-small);
 font-weight: 600;
}

.course-option-field .modern-select,
.course-option-field .modern-select-trigger {
 width: 100%;
 min-width: 0;
}

.course-option-field .modern-select-trigger {
 min-height: 42px;
 background: var(--surface-container-lowest);
}

.course-option-unavailable {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: var(--space-sm);
 padding: var(--space-sm) 0;
 border-top: 1px solid var(--surface-warm-line);
 border-bottom: 1px solid var(--surface-warm-line);
 color: var(--on-surface-variant);
 font-size: var(--fs-small);
}

.course-option-unavailable a {
 flex: 0 0 auto;
 color: var(--accent-blue);
 font-weight: 600;
 text-decoration: underline;
 text-underline-offset: 0.18em;
}

.course-option-actions {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: var(--space-sm);
}

.course-option-actions .button {
 width: 100%;
 min-width: 0;
 min-height: 42px;
 padding-right: var(--space-sm);
 padding-left: var(--space-sm);
 white-space: nowrap;
}

.course-option-actions .button:disabled {
 opacity: 0.48;
 cursor: not-allowed;
 transform: none;
}

.gs-flagship-actions > .course-option-action,
.industry-course-actions > .course-option-action,
.course-option-action-host > .course-option-action {
 flex: 1 1 0;
}

:is(
 .directory-course-actions,
 .industry-course-actions,
 .gs-flagship-actions,
 .card-actions,
 .course-option-action-host
):has(> .course-option-action.is-open) {
 display: grid;
 grid-template-columns: minmax(0, 1fr);
 width: 100%;
}

:is(
 .directory-course-actions,
 .industry-course-actions,
 .gs-flagship-actions,
 .card-actions,
 .course-option-action-host
):has(> .course-option-action.is-open) > :not(.course-option-action) {
 display: none;
}

@media (max-width: 480px) {
 .course-option-inline {
  padding: var(--space-sm);
 }

 .course-option-unavailable {
  align-items: flex-start;
  flex-direction: column;
 }
}

/* Shared course-page icon and cart-state refinement */
.refined-course-page .course-exam-note {
 align-items: flex-start;
 padding: var(--space-md);
 border-color: var(--surface-warm-line);
 background: var(--surface-warm);
}

.course-exam-icon,
.course-instruction-icon,
.course-proof-icon {
 display: inline-grid;
 flex: 0 0 auto;
 place-items: center;
 border: 1px solid var(--surface-warm-line);
 border-radius: var(--radius);
}

.course-exam-icon {
 width: 44px;
 height: 44px;
 color: var(--on-primary);
 border-color: var(--primary);
 background: var(--primary);
}

.course-exam-icon svg {
 width: 22px;
 height: 22px;
}

.refined-course-page .course-proof-bullets div {
 align-items: center;
 gap: var(--space-sm);
}

.course-proof-icon {
 width: 36px;
 height: 36px;
 color: var(--primary);
 background: var(--surface-warm);
}

.course-proof-icon svg {
 width: 18px;
 height: 18px;
}

.course-instruction-icon {
 width: 42px;
 height: 42px;
 color: var(--on-primary);
 border-color: var(--primary);
 background: var(--primary);
}

.course-instruction-icon svg {
 width: 21px;
 height: 21px;
}

.cart-item-controls .quantity-stepper {
 align-self: start;
}

.empty-cart {
 padding: var(--space-lg) var(--space-md) var(--space-md);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.context-rail-entry {
  display: contents;
}

.site-search .search-input-wrap > svg {
  flex: 0 0 auto;
  color: var(--text-muted);
}

.portal-login > svg,
.mobile-portal-login > svg {
  width: 20px;
  height: 20px;
}

.cart-button > svg,
.icon-button > svg {
  width: 20px;
  height: 20px;
  stroke-width: 2;
}

.footer-brand > img {
  height: auto;
}
.footer-brand address a {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
}

.footer-columns a > svg {
  display: inline-block;
  margin-left: var(--space-2xs);
  vertical-align: -0.15em;
}

.production-path-section {
  background: var(--surface-container-lowest);
}

.production-path-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-xl);
}

.production-path-grid article {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: 260px;
  padding: var(--space-xl);
  border-top: 3px solid var(--primary);
  background: var(--surface-warm);
}

.production-path-grid article:nth-child(2) {
  border-top-color: var(--secondary-container);
}

.production-path-grid article p {
  flex: 1;
}

@media (max-width: 900px) {
  .production-path-grid {
    grid-template-columns: 1fr;
  }

  .production-path-grid article {
    min-height: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
.production-state-page {
  min-height: 52vh;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

.production-state-page > p:not(.eyebrow) {
  max-width: 620px;
  font-size: var(--fs-body-lg);
}

.production-loading {
  min-height: 42vh;
  display: flex;
  align-items: center;
}

.production-loading-bar {
  display: block;
  width: min(420px, 100%);
  height: 4px;
  overflow: hidden;
  background: var(--surface-container-high);
}

.production-loading-bar::after {
  content: "";
  display: block;
  width: 45%;
  height: 100%;
  background: var(--secondary-container);
  animation: production-loading 1.1s ease-in-out infinite alternate;
}

@keyframes production-loading {
  from { transform: translateX(-20%); }
  to { transform: translateX(140%); }
}
@media (max-width: 768px) {
  .empty-cart {
    padding-top: var(--space-md);
  }
}

/* Production catalogue and shared course-detail vertical slice */
.catalog-section {
  background: var(--surface-container-lowest);
}

.catalog-operational-note {
  margin: 0 0 var(--space-lg);
  padding: var(--space-md) var(--space-lg);
  border-left: 3px solid var(--primary);
  color: var(--on-surface-variant);
  background: var(--surface-container-low);
}

.catalog-loading {
  min-height: 240px;
  display: grid;
  place-items: center;
  color: var(--text-muted);
}

.catalog-input-shell > svg {
  position: absolute;
  top: 50%;
  left: 0.9rem;
  width: 18px;
  height: 18px;
  color: var(--text-muted);
  pointer-events: none;
  transform: translateY(-50%);
}

.catalog-course-card .directory-course-image > img,
.refined-course-page .course-image-card > img,
.refined-course-page .course-related-image > img {
  object-fit: cover;
}

.directory-course-actions > .course-session-action {
  width: 100%;
}

.directory-course-actions > .course-session-action .button {
  width: 100%;
}

.directory-course-actions > :only-child {
  grid-column: 1 / -1;
}

.refined-course-page .course-image-card {
  position: relative;
}

.refined-course-page .course-included-list {
  display: grid;
  gap: var(--space-sm);
  margin: var(--space-md) 0 0;
  padding: 0;
  list-style: none;
}

.refined-course-page .course-included-list li {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: var(--space-sm);
  align-items: start;
  color: var(--on-surface-variant);
  line-height: var(--lh-body);
}

.refined-course-page .course-included-list li > span {
  display: grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border-radius: 50%;
  color: var(--on-primary);
  background: var(--primary);
}

.refined-course-page .course-included-list svg {
  width: 14px;
  height: 14px;
  stroke-width: 2.5;
}

.refined-course-page .course-empty-review-card {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}

.refined-course-page .course-empty-review-card > svg {
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  color: var(--primary);
}

.refined-course-page .course-empty-review-card p {
  margin: 0;
}

.refined-course-page .course-upcoming-link {
  margin-top: var(--space-sm);
}

@media (max-width: 760px) {
  .directory-hero-panel {
    min-height: 300px;
  }

  .directory-hero-panel img {
    height: 300px;
  }

  .directory-course-actions {
    grid-template-columns: 1fr;
  }
}
.refined-course-page .course-review-card-head > div {
  display: grid;
  gap: 0.18rem;
}

.refined-course-page .course-review-card-head small {
  display: block;
  color: var(--text-muted);
  line-height: var(--lh-tight);
}
/* Final shared visual layer. Page-specific content and behavior remain unchanged. */
:root {
  --site-ink: #123554;
  --site-body: #5e6f7f;
  --site-line: #dfe7ee;
  --site-soft: #f4f7fa;
  --site-cool: #47789c;
  --site-cool-soft: #e8f0f6;
  --site-shadow: 0 18px 44px rgba(18, 53, 84, 0.08);
}

body {
  color: var(--site-body);
  background: var(--surface-white);
}

.site-header {
  background: var(--surface-white);
  border-bottom-color: var(--site-line);
  box-shadow: 0 1px 0 rgba(18, 53, 84, 0.02);
  transition: box-shadow 180ms ease;
}

.main-nav > a,
.nav-courses-trigger {
  color: var(--site-ink);
  font-size: 0.84rem;
  font-weight: 500;
  border: 0;
  border-radius: 6px;
  transition: color 150ms ease, background-color 150ms ease;
}

.main-nav > a:hover,
.main-nav > a.active,
.nav-courses-trigger:hover,
.nav-courses-trigger:focus-visible,
.nav-courses.is-open .nav-courses-trigger {
  color: var(--site-ink);
  background: var(--site-soft);
  border-bottom-color: transparent;
}

.search-input-wrap {
  min-height: 42px;
  border-color: transparent;
  border-radius: 6px;
  background: var(--site-soft);
  box-shadow: inset 0 0 0 1px transparent;
  transition: background-color 150ms ease, box-shadow 150ms ease;
}

.search-input-wrap:focus-within {
  background: var(--surface-white);
  box-shadow: inset 0 0 0 1px var(--site-cool), 0 0 0 3px var(--site-cool-soft);
}

.header-link,
.header-cta {
  min-height: 42px;
  padding-inline: 0.9rem;
  border-radius: 6px;
  font-weight: 600;
}

.header-link {
  color: var(--site-ink);
  border-color: var(--site-ink);
}

.header-cta {
  color: var(--surface-white);
  background: var(--site-ink);
}

.header-link:hover,
.header-link:focus-visible,
.header-cta:hover,
.header-cta:focus-visible {
  transform: translateY(-1px);
}

.portal-login,
.cart-button,
.nav-toggle {
  color: var(--site-ink);
}

.cart-button {
  border-color: transparent;
  background: transparent;
}

.cart-button:hover,
.cart-button:focus-visible,
.portal-login:hover,
.portal-login:focus-visible,
.nav-toggle:hover,
.nav-toggle:focus-visible {
  background: var(--site-soft);
}

.nav-courses-panel {
  overflow: hidden;
  padding: 0;
  border: 1px solid var(--site-line);
  border-radius: 12px;
  background: var(--surface-white);
  box-shadow: 0 24px 70px rgba(18, 53, 84, 0.15);
  animation: site-menu-reveal 160ms cubic-bezier(0.22, 1, 0.36, 1);
}

.nav-courses-panel .nav-courses-groups {
  gap: 0;
  padding: 0.9rem;
}

.nav-courses-panel .nav-courses-group {
  min-width: 0;
  padding: 0.5rem 0.75rem 0.7rem;
}

.nav-courses-panel .nav-courses-group + .nav-courses-group {
  border-left: 1px solid var(--site-line);
}

.nav-courses-panel .nav-courses-group-label {
  margin: 0 0 0.35rem;
  padding: 0.35rem 0.75rem 0.55rem;
  border: 0;
  color: var(--site-cool);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.1em;
}

.nav-courses-panel .nav-courses-group li + li {
  margin-top: 0;
}

.nav-courses-panel .nav-courses-group ul a {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 42px;
  margin: 0;
  padding: 0.55rem 0.75rem;
  border-radius: 6px;
  color: var(--site-ink);
  font-size: 0.84rem;
  font-weight: 500;
  transition: color 140ms ease, background-color 140ms ease;
}

.nav-courses-panel .nav-courses-group ul a::after {
  content: none;
}

.nav-courses-panel .nav-courses-group ul a:hover,
.nav-courses-panel .nav-courses-group ul a:focus-visible {
  color: var(--site-ink);
  background: var(--site-soft);
  box-shadow: none;
  transform: none;
}

.nav-courses-panel .nav-courses-all {
  display: flex;
  justify-content: space-between;
  width: 100%;
  min-height: 54px;
  margin: 0;
  padding: 0.9rem 1.65rem;
  border-top: 1px solid var(--site-line);
  color: var(--site-ink);
  background: var(--surface-white);
  font-size: 0.84rem;
  font-weight: 600;
}

.nav-courses-panel .nav-courses-all:hover,
.nav-courses-panel .nav-courses-all:focus-visible {
  color: var(--site-ink);
  background: var(--site-soft);
  outline: none;
}

.taxonomy-bar-shell {
  z-index: 19;
  padding: 0 2rem;
  border-top: 0;
  border-bottom: 1px solid var(--site-line);
  background: rgba(255, 255, 255, 0.98);
}

.taxonomy-browser {
  width: min(760px, 100%);
}

.taxonomy-browser-menu + .taxonomy-browser-menu {
  border-left-color: var(--site-line);
}

.taxonomy-browser-trigger {
  min-height: 56px;
  padding: 0.65rem 2.75rem 0.65rem 1.25rem;
}

.taxonomy-browser-trigger:hover,
.taxonomy-browser-trigger:focus-visible,
.taxonomy-browser-menu.is-open .taxonomy-browser-trigger {
  background: var(--site-soft);
  box-shadow: none;
}

.taxonomy-browser-trigger-label {
  color: var(--site-cool);
  font-weight: 600;
}

.taxonomy-browser-trigger-value {
  color: var(--site-ink);
  font-family: var(--font-body);
  font-size: 0.84rem;
  font-weight: 500;
}

.taxonomy-browser-panel {
  top: calc(100% + 0.5rem);
  padding: 0.7rem;
  border-color: var(--site-line);
  border-radius: 12px;
  background: var(--surface-white);
  box-shadow: 0 22px 60px rgba(18, 53, 84, 0.13);
  animation: site-menu-reveal 160ms cubic-bezier(0.22, 1, 0.36, 1);
}

.taxonomy-browser-link {
  border-radius: 7px;
}

.taxonomy-browser-link:hover,
.taxonomy-browser-link:focus-visible,
.taxonomy-browser-link.is-active {
  background: var(--site-soft);
  box-shadow: none;
}

.taxonomy-browser-link:hover .taxonomy-browser-link-icon,
.taxonomy-browser-link:focus-visible .taxonomy-browser-link-icon,
.taxonomy-browser-link.is-active .taxonomy-browser-link-icon {
  color: var(--site-cool);
}

@keyframes site-menu-reveal {
  from { opacity: 0; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (min-width: 1321px) {
  .site-header {
    grid-template-columns: 168px minmax(470px, 1fr) minmax(210px, 235px) auto;
    min-height: 72px;
    gap: 1.1rem;
    padding-inline: max(2rem, calc((100vw - 1280px) / 2));
  }

  .main-nav {
    height: 72px;
  }

  .brand img {
    width: 160px;
  }
}

@media (max-width: 768px) {
  .site-header {
    box-shadow: 0 1px 0 var(--site-line);
  }

  .mobile-menu {
    border-top-color: var(--site-line);
    background: var(--surface-white);
  }

  .mobile-menu > a,
  .mobile-disclosure summary,
  .mobile-disclosure a {
    color: var(--site-ink);
    font-weight: 500;
  }

  .taxonomy-bar-shell {
    padding-inline: 1rem;
  }
}

/* Shared page rhythm and hero language */
.directory-page,
.course-detail-page,
.industry-page,
.site-page,
.employer-page,
.grant-page,
.pathway-page,
.recert-page,
.checkout-page {
  color: var(--site-body);
  background: var(--surface-white);
}

.stitch-container,
.gs-container,
.course-detail-container {
  width: min(1280px, calc(100% - 64px));
}

.stitch-section,
.industry-section,
.recert-section {
  padding-block: clamp(5rem, 7vw, 7rem);
}

.stitch-section-heading,
.industry-section-heading,
.recert-section-heading {
  margin-bottom: clamp(2rem, 3vw, 2.75rem);
}

.stitch-section-heading h2,
.industry-section-heading h2,
.recert-section-heading h2,
.course-section h2,
.about-copy-stack h2 {
  color: var(--site-ink);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.08;
}

.stitch-kicker,
.industry-kicker,
.eyebrow {
  color: var(--site-cool);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.11em;
}

.site-page-hero,
.industry-hero,
.directory-hero,
.generic-course-hero,
.recert-hero,
.support-flow-hero,
.employer-page > .page-hero,
.grant-page > .page-hero,
.pathway-page > .page-hero {
  border: 0;
  background: var(--site-soft);
}

.site-page-hero,
.industry-hero,
.directory-hero,
.generic-course-hero,
.recert-hero,
.support-flow-hero {
  padding-block: clamp(3.75rem, 5vw, 5rem);
}

.employer-page > .page-hero,
.grant-page > .page-hero,
.pathway-page > .page-hero {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(3.75rem, 5vw, 5rem) max(2rem, calc((100vw - 1280px) / 2));
}

.site-page-hero-grid,
.industry-hero-grid,
.directory-hero-grid,
.generic-course-hero-grid,
.recert-hero-grid,
.employer-page > .split-hero,
.grant-page > .split-hero {
  gap: clamp(3.25rem, 5vw, 4.75rem);
  align-items: center;
}

.site-page-hero h1,
.industry-hero h1,
.directory-hero h1,
.generic-course-hero h1,
.recert-hero h1,
.support-flow-hero h1,
.employer-page .page-hero h1,
.grant-page .page-hero h1,
.pathway-page .page-hero h1 {
  max-width: 760px;
  margin-bottom: 1.35rem;
  color: var(--site-ink);
  font-size: clamp(2.75rem, 4.2vw, 3.8rem);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1;
  text-wrap: balance;
}

.site-page-hero p:not(.stitch-kicker),
.industry-hero p:not(.industry-kicker),
.directory-hero p:not(.stitch-kicker),
.generic-course-hero p:not(.stitch-kicker),
.recert-hero p:not(.stitch-kicker),
.support-flow-hero p:not(.stitch-kicker),
.employer-page .hero-copy p:not(.eyebrow),
.grant-page .hero-copy p:not(.eyebrow),
.pathway-page .hero-copy p:not(.eyebrow) {
  max-width: 660px;
  color: var(--site-body);
  font-size: clamp(1rem, 1.35vw, 1.16rem);
  line-height: 1.65;
}

.site-page-hero-image,
.industry-hero-media,
.directory-hero-panel,
.generic-course-hero-media,
.recert-hero-panel,
.employer-page .hero-media,
.grant-page .hero-media {
  overflow: hidden;
  border: 1px solid rgba(18, 53, 84, 0.08);
  border-radius: 12px;
  background: var(--surface-white);
  box-shadow: var(--site-shadow);
}

.site-page-hero-image img,
.industry-hero-media img,
.directory-hero-panel img,
.generic-course-hero-media img,
.employer-page .hero-media img,
.grant-page .hero-media img {
  transition: none;
  transform: none;
}

.stitch-hero-actions,
.industry-hero-actions,
.hero-actions {
  gap: 0.75rem;
  margin-top: 2rem;
}

.button,
button.button {
  min-height: 48px;
  border-radius: 6px;
  font-weight: 600;
  letter-spacing: 0;
  transition: transform 160ms ease, color 160ms ease, background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.button:hover,
button.button:hover {
  transform: translateY(-2px);
}

.button:focus-visible,
button.button:focus-visible,
a:focus-visible,
button:focus-visible {
  outline: 3px solid rgba(71, 120, 156, 0.28);
  outline-offset: 3px;
}

.button.primary,
.button.secondary,
.button.cta {
  border-radius: 6px;
}

.button.primary {
  background: var(--site-ink);
}

.button.secondary {
  color: var(--site-ink);
  border-color: var(--site-ink);
}

.button.cta {
  background: var(--secondary-container);
}

@media (max-width: 980px) {
  .site-page-hero-grid,
  .industry-hero-grid,
  .directory-hero-grid,
  .generic-course-hero-grid,
  .recert-hero-grid,
  .employer-page > .split-hero,
  .grant-page > .split-hero {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .site-page-hero-image,
  .industry-hero-media,
  .directory-hero-panel,
  .generic-course-hero-media,
  .recert-hero-panel,
  .employer-page .hero-media,
  .grant-page .hero-media {
    max-width: 760px;
  }
}

@media (max-width: 760px) {
  .stitch-container,
  .gs-container,
  .course-detail-container,
  .section {
    width: min(100% - 32px, 1280px);
  }

  .stitch-section,
  .industry-section,
  .recert-section {
    padding-block: 4rem;
  }

  .site-page-hero,
  .industry-hero,
  .directory-hero,
  .generic-course-hero,
  .recert-hero,
  .support-flow-hero,
  .employer-page > .page-hero,
  .grant-page > .page-hero,
  .pathway-page > .page-hero {
    padding-block: 3.25rem;
    padding-inline: 1rem;
  }

  .site-page-hero h1,
  .industry-hero h1,
  .directory-hero h1,
  .generic-course-hero h1,
  .recert-hero h1,
  .support-flow-hero h1,
  .employer-page .page-hero h1,
  .grant-page .page-hero h1,
  .pathway-page .page-hero h1 {
    font-size: clamp(2.45rem, 12vw, 3.15rem);
  }
}

/* Pathways, recertification, content, and checkout */
.asbestos-trail-section,
.recert-how-section,
.recert-contact-section,
.blog-page .stitch-section {
  background: var(--surface-white);
}

.asbestos-trail-heading,
.recert-section-heading {
  max-width: 760px;
}

.asbestos-trail-heading h2,
.pathway-tier-body h3,
.recert-product-body h3,
.recert-contact-card h2,
.recert-support-grid h2 {
  color: var(--site-ink);
  font-weight: 600;
}

.asbestos-trail-map {
  border-color: var(--site-line);
  border-radius: 12px;
  background: var(--site-soft);
  box-shadow: none;
}

.asbestos-trail-route-dashes,
.asbestos-trail-route-branch {
  stroke: var(--site-cool);
}

.asbestos-trail-marker {
  border-color: var(--site-cool);
  color: var(--site-ink);
  background: var(--surface-white);
  box-shadow: 0 8px 20px rgba(18, 53, 84, 0.09);
}

.pathway-tier-grid,
.recert-product-grid {
  gap: 1rem;
}

.pathway-tier-body,
.recert-product-body {
  padding: 1.4rem;
}

.recert-product-facts {
  border-color: var(--site-line);
  background: var(--site-soft);
}

.pathway-tier-price {
  background: transparent;
}

.level-s-callout,
.recert-contact-card {
  padding: clamp(1.5rem, 3vw, 2rem);
  border: 1px solid var(--site-line);
  border-radius: 12px;
  background: var(--site-soft);
  box-shadow: none;
}

.recert-support-band {
  color: var(--surface-white);
  background: var(--site-ink);
}

.recert-support-grid {
  border-radius: 12px;
}

.recert-support-grid article:last-child h2,
.recert-support-grid article:last-child p {
  color: var(--surface-white);
}

.legal-page,
.blog-page,
.utility-page {
  background: var(--surface-white);
}

.legal-content-section {
  padding-block: clamp(4.5rem, 7vw, 6.5rem);
}

.legal-layout,
.legal-document-layout,
.blog-index-layout {
  gap: clamp(2.5rem, 5vw, 4.5rem);
}

.legal-hero-card,
.legal-side-card,
.legal-contact-box,
.policy-card,
.blog-training-callout {
  border: 1px solid var(--site-line);
  border-radius: 10px;
  background: var(--surface-white);
  box-shadow: none;
}

.legal-hero-card,
.legal-side-card,
.blog-training-callout {
  padding: 1.5rem;
}

.legal-side-card h2,
.legal-document h2,
.blog-card h2,
.blog-card h3,
.blog-training-callout h2 {
  color: var(--site-ink);
  font-weight: 600;
}

.legal-document-nav {
  top: 7rem;
  align-self: start;
}

.legal-document-nav nav {
  gap: 0.25rem;
}

.legal-document-nav a {
  padding: 0.65rem 0.75rem;
  border-radius: 6px;
  color: var(--site-body);
  font-weight: 500;
}

.legal-document-nav a:hover,
.legal-document-nav a:focus-visible,
.legal-document-nav a.active {
  color: var(--site-ink);
  background: var(--site-soft);
}

.legal-document section {
  padding-block: 2rem;
  border-top-color: var(--site-line);
}

.legal-faq-list {
  overflow: hidden;
  border: 1px solid var(--site-line);
  border-radius: 10px;
  background: var(--surface-white);
}

.legal-faq-item {
  border: 0;
  border-radius: 0;
  background: var(--surface-white);
}

.legal-faq-item + .legal-faq-item {
  border-top: 1px solid var(--site-line);
}

.legal-faq-item summary {
  min-height: 62px;
  padding: 1.15rem 1.25rem;
  color: var(--site-ink);
  font-weight: 600;
  background: var(--surface-white);
}

.legal-faq-item summary:hover,
.legal-faq-item summary:focus-visible {
  background: var(--site-soft);
}

.legal-faq-answer {
  padding: 0 1.25rem 1.35rem;
}

.blog-index-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.blog-card-media {
  aspect-ratio: 16 / 9;
  background: var(--site-soft);
}

.blog-card-body {
  padding: 1.4rem;
}

.blog-training-callout {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  background: var(--surface-warm);
  border-color: var(--surface-warm-line);
}

.checkout-hero {
  background: var(--site-soft);
}

.checkout-layout {
  gap: clamp(2rem, 4vw, 3.5rem);
}

.checkout-panel,
.checkout-summary-card,
.checkout-empty-card,
.checkout-confirmation-card {
  border-color: var(--site-line);
  border-radius: 12px;
  background: var(--surface-white);
  box-shadow: none;
}

.checkout-panel h2,
.checkout-summary-card h2,
.checkout-line-item h3 {
  color: var(--site-ink);
  font-weight: 600;
}

.checkout-summary-card {
  box-shadow: 0 14px 34px rgba(18, 53, 84, 0.08);
}

.checkout-line-item,
.checkout-summary-rows div,
.checkout-panel-heading {
  border-color: var(--site-line);
}

.checkout-steps span {
  color: var(--site-body);
  font-weight: 500;
}

.checkout-steps span.active {
  color: var(--site-ink);
  font-weight: 600;
}

.site-footer {
  border-top-width: 3px;
}

.footer-links a {
  font-weight: 600;
}

@media (max-width: 860px) {
  .legal-layout,
  .legal-document-layout,
  .blog-index-grid {
    grid-template-columns: 1fr;
  }

  .legal-document-nav {
    position: static;
  }

  .blog-training-callout {
    grid-column: auto;
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 760px) {
  .asbestos-trail-map {
    border-radius: 10px;
  }

  .pathway-tier-grid,
  .recert-product-grid,
  .recert-contact-grid,
  .recert-info-grid,
  .recert-support-grid {
    grid-template-columns: 1fr;
  }

  .checkout-layout {
    grid-template-columns: 1fr;
  }
}

/* Company, support, and form pages */
.about-origin-section,
.contact-path-section,
.employer-page .muted {
  background: var(--site-soft);
}

.about-story-grid,
.about-training-layout,
.about-employer-grid {
  gap: clamp(3rem, 6vw, 5.5rem);
}

.about-story-lead,
.about-section-intro {
  color: var(--site-body);
  font-size: 1.08rem;
  line-height: 1.7;
}

.about-story-points {
  gap: 0;
  border-top: 1px solid var(--site-line);
}

.about-story-points > * {
  padding-block: 1.5rem;
  border-bottom: 1px solid var(--site-line);
}

.about-training-tags span,
.about-chip-row span {
  border-color: var(--site-line);
  border-radius: 5px;
  color: var(--site-body);
  background: var(--site-soft);
  font-weight: 500;
}

.about-employer-band,
.about-cta,
.stitch-final-cta {
  border-radius: 12px;
}

.contact-single-layout,
.single-form-layout,
.single-form-section {
  max-width: 860px;
  margin-inline: auto;
}

.contact-main-office-card {
  margin-bottom: 2.5rem;
  padding: 1.5rem;
  border: 1px solid var(--site-line);
  border-radius: 10px;
  background: var(--site-soft);
  box-shadow: none;
}

.contact-hero-form-link,
.contact-office-address {
  color: var(--primary);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--site-line);
  text-underline-offset: 0.18em;
  transition: color 150ms ease, text-decoration-color 150ms ease;
}

.contact-hero-form-link:hover,
.contact-hero-form-link:focus-visible,
.contact-office-address:hover,
.contact-office-address:focus-visible {
  color: var(--site-cool);
  text-decoration-color: currentColor;
}

.contact-single-form {
  scroll-margin-top: 6rem;
}

.contact-main-office-card h2,
.contact-path-card h3,
.support-flow-context h2,
.request-inline-summary h2 {
  color: var(--site-ink);
  font-weight: 600;
}

.contact-path-grid {
  gap: 1rem;
}

.contact-path-grid .contact-path-card {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  grid-template-rows: auto;
  gap: 0.9rem;
  min-height: 126px;
  padding: 1.35rem;
  align-items: start;
}

.contact-path-icon {
  display: inline-flex;
  margin-top: 0.05rem;
  color: var(--site-cool);
}

.contact-path-icon svg {
  width: 24px;
  height: 24px;
  stroke-width: 1.55;
}

.contact-path-copy {
  display: grid;
  gap: 0.4rem;
  align-self: start;
}

.contact-path-copy h3,
.contact-path-copy p {
  margin: 0;
}

.contact-path-copy h3 {
  font-family: var(--font-body);
  font-size: 1.05rem;
}

.contact-path-copy p {
  color: var(--site-body);
  font-size: 0.82rem;
  line-height: 1.45;
}

.contact-path-arrow {
  width: 18px;
  height: 18px;
  align-self: center;
  color: var(--site-cool);
  transition: transform 160ms ease;
}

.contact-path-card:hover .contact-path-arrow,
.contact-path-card:focus-visible .contact-path-arrow {
  transform: translateX(3px);
}

.uncontained-form-column,
.contact-form-card,
.support-flow-form-card {
  max-width: 820px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.request-inline-summary,
.support-flow-context {
  margin-bottom: 2rem;
  padding: 0 0 1.5rem;
  border: 0;
  border-bottom: 1px solid var(--site-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.contact-form-intro .request-detail-checklist,
.request-inline-summary .request-summary-steps {
  margin: 1rem 0 0;
  padding: 0;
  list-style: none;
}

.contact-form-intro .request-detail-checklist {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem 1.25rem;
}

.contact-form-intro .request-detail-checklist li {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 0.65rem;
  margin: 0;
  padding: 0;
  align-items: center;
  border: 0;
  color: var(--site-ink);
  font-size: 0.9rem;
  line-height: 1.4;
}

.request-detail-check {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 50%;
  color: var(--site-ink);
  background: var(--site-cool-soft);
}

.request-detail-check svg {
  width: 13px;
  height: 13px;
  stroke-width: 2.2;
}

.request-inline-summary .request-summary-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem 1.25rem;
}

.request-inline-summary .request-summary-steps li {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 0.7rem;
  min-height: 68px;
  margin: 0;
  padding: 0.75rem 0.85rem;
  align-items: center;
  border: 0;
  border-radius: 8px;
  color: var(--site-ink);
  background: var(--site-soft);
  font-size: 0.9rem;
  line-height: 1.4;
}

.contact-form-intro .request-detail-checklist li::before,
.request-inline-summary .request-summary-steps li::before {
  display: none;
}

.request-step-number {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 50%;
  color: var(--site-ink);
  background: var(--site-cool-soft);
  font-size: 0.72rem;
  font-weight: 700;
}

@media (max-width: 700px) {
  .contact-path-grid {
    gap: 0;
    border-top: 1px solid var(--site-line);
  }

  .contact-path-grid .contact-path-card {
    grid-template-columns: 28px minmax(0, 1fr) auto;
    min-height: 0;
    padding: 1.15rem 0;
    border: 0;
    border-bottom: 1px solid var(--site-line);
    border-radius: 0;
    box-shadow: none;
  }

  .contact-path-card:hover,
  .contact-path-card:focus-visible {
    border-color: var(--site-line);
    box-shadow: none;
    transform: none;
  }

  .contact-path-copy p {
    display: none;
  }

  .contact-form-intro .request-detail-checklist,
  .request-inline-summary .request-summary-steps {
    grid-template-columns: 1fr;
  }
}

.request-form,
.contact-form {
  gap: 1.25rem;
}

.request-form label,
.contact-form label,
.checkout-form-grid label,
.checkout-coupon-box label {
  color: var(--site-ink);
  font-size: 0.82rem;
  font-weight: 600;
}

.request-form input,
.request-form textarea,
.contact-form input,
.contact-form textarea,
.checkout-form-grid input,
.checkout-coupon-box input {
  min-height: 48px;
  border: 1px solid var(--site-line);
  border-radius: 8px;
  color: var(--site-ink);
  background: var(--surface-white);
  box-shadow: none;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.request-form textarea,
.contact-form textarea {
  min-height: 132px;
  resize: vertical;
}

.request-form input:focus,
.request-form textarea:focus,
.contact-form input:focus,
.contact-form textarea:focus,
.checkout-form-grid input:focus,
.checkout-coupon-box input:focus {
  border-color: var(--site-cool);
  outline: 0;
  box-shadow: 0 0 0 3px var(--site-cool-soft);
}

.mini-course-grid {
  gap: 1rem;
}

.mini-course-grid article {
  padding: 0;
}

.mini-course-grid article > *:not(img):not(.button) {
  margin-inline: 1.25rem;
}

.mini-course-grid article > .button {
  margin: 1rem 1.25rem 1.25rem;
}

.mini-course-grid img {
  width: 100%;
  height: 230px;
  object-fit: cover;
}

.funding-compact-notice,
.grant-tool-boundary {
  gap: 1rem;
  padding: 1.25rem;
  border: 1px solid var(--surface-warm-line);
  border-radius: 10px;
  background: var(--surface-warm);
  box-shadow: none;
}

.grant-notice-icon {
  border: 0;
  border-radius: 8px;
  background: rgba(184, 80, 30, 0.1);
}

.grant-tool-form-panel,
.grant-output-card,
.request-summary {
  border-color: var(--site-line);
  border-radius: 10px;
  box-shadow: none;
}

.grant-tool-form-panel {
  padding: clamp(1.35rem, 3vw, 2rem);
}

.grant-output-grid {
  gap: 1rem;
}

.submitted-page,
.checkout-confirmation-page {
  min-height: calc(100svh - 260px);
}

.submitted-page main,
.submitted-page .stitch-section,
.checkout-confirmation-page .checkout-empty-section {
  display: grid;
  align-items: center;
  min-height: min(640px, calc(100svh - 260px));
}

.submitted-card,
.checkout-confirmation-card,
.checkout-empty-card {
  max-width: 720px;
  margin-inline: auto;
  padding: clamp(1.75rem, 4vw, 2.5rem);
  border: 1px solid var(--site-line);
  border-radius: 12px;
  box-shadow: var(--site-shadow);
}

@media (max-width: 760px) {
  .form-grid,
  .grant-tool-form-panel .form-grid {
    grid-template-columns: 1fr;
  }

  .mini-course-grid img {
    height: 215px;
  }

  .grant-output-grid {
    grid-template-columns: 1fr;
    padding-inline: 1rem;
  }
}

/* Shared course-detail template */
.course-detail-page {
  overflow-x: clip;
}

.course-detail-hero {
  padding-block: clamp(3.5rem, 5vw, 5rem);
  background: var(--site-soft);
}

.course-detail-hero-grid {
  gap: clamp(3rem, 5vw, 4.5rem);
  align-items: center;
}

.course-breadcrumbs,
.course-label-row {
  color: var(--site-cool);
  font-weight: 600;
}

.refined-course-page .course-detail-copy h1 {
  color: var(--site-ink);
  font-size: clamp(2.75rem, 4.1vw, 3.75rem);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1;
  text-wrap: balance;
}

.checkout-page .checkout-hero h1 {
  font-weight: 600;
  line-height: 1;
}

.course-subtitle,
.course-detail-copy > p {
  color: var(--site-body);
  line-height: 1.65;
}

.course-image-card {
  overflow: hidden;
  border: 1px solid rgba(18, 53, 84, 0.08);
  border-radius: 12px;
  background: var(--surface-white);
  box-shadow: var(--site-shadow);
}

.course-image-card img {
  transition: none;
  transform: none;
}

.course-hero-divider {
  border-bottom-color: var(--site-line);
}

.course-fact-section {
  background: var(--surface-white);
}

.course-fact-strip {
  gap: 0;
  padding-block: 1.65rem;
  border: 0;
  background: var(--surface-white);
}

.course-fact-strip > div {
  min-width: 0;
  padding: 0 1.5rem;
  border-left: 1px solid var(--site-line);
}

.course-fact-strip > div:first-child {
  padding-left: 0;
  border-left: 0;
}

.course-fact-strip span,
.registration-panel dt,
.course-panel-kicker {
  color: var(--site-cool);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.08em;
}

.course-fact-strip strong {
  color: var(--site-ink);
  font-family: var(--font-display);
  font-size: 1.08rem;
  font-weight: 600;
  line-height: 1.25;
}

.course-detail-layout {
  grid-template-columns: minmax(0, 1fr) minmax(300px, 350px);
  gap: clamp(3rem, 5vw, 5rem);
  padding-block: clamp(4.5rem, 7vw, 6.75rem);
}

.refined-course-main {
  gap: 0;
}

.course-section {
  padding-block: clamp(2.4rem, 4vw, 3.4rem);
  border-top: 1px solid var(--site-line);
  background: transparent;
}

.course-section:first-child {
  padding-top: 0;
  border-top: 0;
}

.course-section h2 {
  margin-bottom: 1.1rem;
  font-size: clamp(1.75rem, 2.5vw, 2.15rem);
}

.course-section h3 {
  color: var(--site-ink);
  font-weight: 600;
}

.course-section p,
.course-section li {
  color: var(--site-body);
  line-height: 1.68;
}

.course-section-soft {
  margin-inline: 0;
  padding-inline: 0;
  border-radius: 0;
  background: transparent;
}

.registration-panel {
  padding: 1.5rem;
  border: 1px solid var(--site-line);
  border-radius: 12px;
  background: var(--surface-white);
  box-shadow: 0 18px 44px rgba(18, 53, 84, 0.1);
}

.registration-panel h2,
.registration-course-full-name {
  color: var(--site-ink);
  font-weight: 600;
}

.registration-panel dl {
  border-color: var(--site-line);
}

.registration-panel dl div {
  border-bottom-color: var(--site-line);
}

.registration-panel dd {
  color: var(--site-ink);
  font-weight: 600;
}

.registration-team-block {
  margin-top: 0.8rem;
  padding-top: 1rem;
  border-top-color: var(--site-line);
}

.course-callout-grid {
  gap: 1rem;
}

.course-action-callout {
  min-height: 100%;
  padding: clamp(1.5rem, 3vw, 2rem);
  border: 0;
  border-radius: 10px;
  box-shadow: none;
}

.course-action-callout.employer-card {
  color: var(--surface-white);
  background: var(--site-ink);
}

.course-action-callout.employer-card h2,
.course-action-callout.employer-card h3,
.course-action-callout.employer-card p,
.course-action-callout.employer-card li {
  color: var(--surface-white);
}

.course-action-callout.grant-card {
  border: 1px solid var(--surface-warm-line);
  background: var(--surface-warm);
}

.course-instructor-card,
.course-review-summary,
.course-review-list,
.course-related-card {
  border-color: var(--site-line);
  border-radius: 10px;
  box-shadow: none;
}

.course-review-summary {
  background: var(--site-soft);
}

.course-review-score > strong {
  color: var(--site-ink);
  font-weight: 600;
}

.course-purchase-option-copy > .course-purchase-option-includes {
  color: var(--site-ink);
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.4;
}

.course-purchase-online-requirement {
  width: calc((100% - 0.65rem) / 2);
  margin: 0.15rem 0 0;
  color: var(--site-muted);
  font-size: 0.86rem;
  line-height: 1.55;
}

.course-jhsc .course-purchase-path-grid {
  border-bottom: 0;
}

.course-purchase-online-requirement a,
.registration-review-summary a {
  color: var(--site-blue);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

.registration-review-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.8rem;
  padding-top: 0.9rem;
  border-top: 1px solid var(--site-line);
  font-size: 0.82rem;
}

.registration-review-summary > div {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  min-width: 0;
}

.registration-review-summary strong {
  color: var(--site-ink);
}

.registration-review-summary > div > span:last-child {
  color: var(--site-muted);
  white-space: nowrap;
}

.course-reviews-section {
  scroll-margin-top: 6rem;
}

.course-jhsc-outcome {
  margin-top: 1.25rem;
  border-top: 1px solid var(--site-line);
}

.course-jhsc-outcome-row {
  display: grid;
  grid-template-columns: 1.5rem minmax(0, 1fr);
  gap: 0.85rem;
  align-items: start;
  padding: 1rem 0;
}

.course-jhsc-outcome-row + .course-jhsc-outcome-row {
  border-top: 1px solid var(--site-line);
}

.course-jhsc-outcome-row > svg {
  width: 1.35rem;
  height: 1.35rem;
  margin-top: 0.1rem;
  color: var(--site-blue);
  stroke-width: 1.8;
}

.course-jhsc-outcome-row > div {
  display: grid;
  gap: 0.22rem;
}

.course-jhsc-outcome-row span {
  color: var(--site-cool);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.course-jhsc-outcome-row p {
  margin: 0;
  color: var(--site-body);
  line-height: 1.55;
}

.course-review-list article + article {
  border-top-color: var(--site-line);
}

.course-related-card {
  overflow: hidden;
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.course-related-card:hover,
.course-related-card:focus-within {
  border-color: #c4d1dc;
  box-shadow: 0 14px 32px rgba(18, 53, 84, 0.08);
  transform: translateY(-3px);
}

.course-related-image img {
  transition: none;
  transform: none;
}

.course-related-card h3 {
  color: var(--site-ink);
  font-weight: 600;
}

.course-faq-list {
  overflow: hidden;
  border: 1px solid var(--site-line);
  border-radius: 10px;
  box-shadow: none;
}

.refined-course-page .course-faq-item + .course-faq-item {
  border-top-color: var(--site-line);
}

.refined-course-page .course-faq-item summary {
  min-height: 62px;
  padding: 1.15rem 1.25rem;
  color: var(--site-ink);
  font-weight: 600;
  background: var(--surface-white);
}

.refined-course-page .course-faq-item summary:hover,
.refined-course-page .course-faq-item summary:focus-visible {
  background: var(--site-soft);
}

.refined-course-page .course-faq-item[open] summary {
  background: var(--surface-white);
}

@media (max-width: 920px) {
  .course-detail-layout {
    grid-template-columns: 1fr;
  }

  .course-sidebar {
    position: static;
    max-width: 620px;
  }
}

@media (max-width: 760px) {
  .course-detail-hero {
    padding-block: 3rem;
  }

  .course-detail-copy h1 {
    font-size: clamp(2.35rem, 11vw, 3rem);
  }

  .course-fact-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 1.25rem;
  }

  .course-fact-strip > div,
  .course-fact-strip > div:first-child {
    padding-inline: 0.9rem;
    border-left: 0;
  }

  .course-fact-strip > div:nth-child(even) {
    border-left: 1px solid var(--site-line);
  }

  .course-detail-layout {
    gap: 2.5rem;
    padding-block: 3.5rem;
  }

  .course-purchase-online-requirement {
    width: 100%;
  }
}

/* Catalogue and discovery cards */
.directory-page .stitch-section {
  padding-top: clamp(4.25rem, 6vw, 6rem);
}

.catalog-controls {
  gap: 1rem 1.1rem;
  margin-bottom: 2rem;
  padding: 1.25rem;
  border: 1px solid var(--site-line);
  border-radius: 12px;
  background: var(--site-soft);
  box-shadow: none;
}

.catalog-controls .catalog-control > span,
.catalog-control-footer > span {
  color: var(--site-body);
  font-size: 0.76rem;
  font-weight: 600;
}

.catalog-controls input,
.catalog-controls select,
.catalog-controls .modern-select-trigger,
.modern-select-trigger {
  min-height: 48px;
  border-color: var(--site-line);
  border-radius: 8px;
  color: var(--site-ink);
  background: var(--surface-white);
  box-shadow: none;
}

.catalog-controls input:hover,
.catalog-controls select:hover,
.catalog-controls .modern-select-trigger:hover,
.modern-select-trigger:hover {
  border-color: #b9c8d4;
  background: var(--surface-white);
}

.catalog-controls input:focus,
.catalog-controls input:focus-visible,
.catalog-controls .modern-select-trigger:focus-visible,
.modern-select-trigger:focus-visible {
  border-color: var(--site-cool);
  outline: 0;
  box-shadow: 0 0 0 3px var(--site-cool-soft);
}

.modern-select-menu {
  padding: 0.45rem;
  border-color: var(--site-line);
  border-radius: 10px;
  background: var(--surface-white);
  box-shadow: 0 18px 40px rgba(18, 53, 84, 0.14);
}

.modern-select-option {
  min-height: 40px;
  border-radius: 6px;
  color: var(--site-ink);
  font-weight: 500;
}

.modern-select-option:hover,
.modern-select-option:focus-visible,
.modern-select-option.is-highlighted,
.modern-select-option[aria-selected=true] {
  color: var(--site-ink);
  background: var(--site-soft);
}

.catalog-control-footer {
  border-top-color: var(--site-line);
}

.catalog-clear-button {
  min-height: 36px;
  border-color: #b9c8d4;
  border-radius: 6px;
  color: var(--site-ink);
  background: var(--surface-white);
  font-weight: 600;
  box-shadow: none;
}

.catalog-clear-button:hover,
.catalog-clear-button:focus-visible {
  border-color: var(--site-ink);
  background: var(--surface-white);
  box-shadow: none;
  transform: translateY(-1px);
}

.catalog-course-card,
.industry-course-card,
.industry-destination-card,
.mini-course-grid article,
.contact-path-card,
.about-area-card,
.blog-card,
.recert-product-card,
.pathway-tier-card {
  overflow: hidden;
  border: 1px solid var(--site-line);
  border-radius: 12px;
  background: var(--surface-white);
  box-shadow: none;
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.catalog-course-card:hover,
.catalog-course-card:focus-within,
.industry-course-card:hover,
.industry-course-card:focus-within,
.industry-destination-card:hover,
.industry-destination-card:focus-within,
.mini-course-grid article:hover,
.mini-course-grid article:focus-within,
.contact-path-card:hover,
.contact-path-card:focus-within,
.blog-card:hover,
.blog-card:focus-within,
.recert-product-card:hover,
.recert-product-card:focus-within,
.pathway-tier-card:hover,
.pathway-tier-card:focus-within {
  border-color: #c4d1dc;
  box-shadow: 0 16px 34px rgba(18, 53, 84, 0.08);
  transform: translateY(-3px);
}

.catalog-course-card .directory-course-image,
.industry-course-card .directory-course-image {
  height: 244px;
  background: var(--site-soft);
}

.directory-course-image img,
.industry-destination-media img,
.blog-card-media img,
.recert-product-media img,
.pathway-tier-media img {
  transition: none;
  transform: none;
}

.directory-course-image > span,
.industry-course-card .industry-course-image > span,
.pathway-tier-media span,
.recert-product-type {
  border-radius: 6px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.catalog-course-card .directory-course-body,
.industry-course-card .directory-course-body {
  padding: 1.35rem 1.35rem 0;
}

.catalog-course-card .directory-course-body h3,
.industry-course-card .directory-course-body h3 {
  color: var(--site-ink);
  font-size: 1.18rem;
  font-weight: 600;
  line-height: 1.22;
}

.catalog-course-card .directory-course-body p,
.industry-course-card .directory-course-body p {
  color: var(--site-body);
  line-height: 1.55;
}

.catalog-course-card .directory-price strong,
.industry-course-card .directory-price strong {
  color: var(--site-ink);
  font-weight: 600;
}

.directory-tags span {
  border-color: var(--site-line);
  border-radius: 5px;
  color: var(--site-body);
  background: var(--site-soft);
  font-weight: 500;
}

.directory-meta {
  border-color: var(--site-line);
  background: transparent;
}

.directory-meta dt,
.directory-session-field > span {
  color: var(--site-cool);
  font-weight: 600;
}

.directory-meta dd {
  color: var(--site-ink);
  font-weight: 500;
}

.catalog-course-card .directory-course-actions,
.industry-course-card .directory-course-actions {
  gap: 0.65rem;
  border-top-color: var(--site-line);
}

.catalog-pagination button,
.catalog-pagination a {
  min-width: 42px;
  min-height: 42px;
  border-color: var(--site-line);
  border-radius: 6px;
  color: var(--site-ink);
  background: var(--surface-white);
}

.catalog-pagination .active,
.catalog-pagination [aria-current=page] {
  color: var(--surface-white);
  border-color: var(--site-ink);
  background: var(--site-ink);
}

.industry-page {
  overflow: hidden;
}

.industry-safety-strip-section,
.industry-related-section,
.category-course-section {
  background: var(--surface-white);
}

.industry-authority-section,
.industries-index-section:nth-of-type(even) {
  background: var(--site-soft);
}

.industry-cta-card {
  border-radius: 12px;
  box-shadow: none;
}

@media (max-width: 760px) {
  .catalog-controls {
    padding: 1rem;
  }

  .catalog-course-card .directory-course-image,
  .industry-course-card .directory-course-image {
    height: 230px;
  }
}
/* Sitewide typography hierarchy audit */
body .site-shell main h1,
body .site-shell main h2,
body .site-shell main h3,
body .site-shell main h4,
body .site-shell main .refined-course-page .course-action-callout h2 {
  font-weight: 600;
}

body .site-shell .button,
body .site-shell main .catalog-pagination button,
body .site-header .main-nav a.active {
  font-weight: 600;
}

body .site-shell main .stitch-kicker,
body .site-shell main .industry-kicker,
body .site-shell main .eyebrow {
  font-size: 0.74rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.11em;
}

body .site-shell main strong,
body .site-shell main .form-grid span,
body .site-shell main dt,
body .site-shell main .catalog-results-bar span,
body .site-shell main .course-fact-strip span,
body .site-shell main .registration-team-block strong,
body .site-shell main .pathway-tier-body strong,
body .site-shell main .pathway-tier-price,
body .site-shell main .checkout-line-controls strong,
body .site-shell main .course-renewal-note a {
  font-weight: 600;
}

body .site-shell main .course-fact-strip strong,
body .site-shell main .course-certification-grid dd,
body .site-shell main .refined-course-page .course-subtitle {
  font-weight: 500;
}

/* Sitewide visual audit: shared course hierarchy and responsive cleanup */
body .site-shell main .refined-course-page .course-panel-kicker {
  display: block;
  max-width: none;
  margin: 0 0 0.55rem;
  color: var(--site-cool);
  font-size: 0.69rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body .site-shell main .refined-course-page .course-action-callout.employer-card .course-panel-kicker {
  color: rgba(255, 255, 255, 0.76);
}

@media (min-width: 621px) {
  .industry-course-actions > :first-child {
    flex: 1.2 1 0;
    min-width: 0;
  }

  .industry-course-actions > :last-child {
    flex: 0.8 1 0;
    min-width: 0;
  }

  .industry-course-actions .button {
    min-width: 0;
    padding-inline: 0.8rem;
    white-space: nowrap;
  }
}

/* Keep the generated grant package editorial rather than card-within-card. */
.grant-print-package .grant-document-grid {
  gap: 0;
}

.grant-print-package .grant-document-grid > section,
.grant-print-package .grant-document-section,
.grant-print-package .grant-outline-list article {
  border: 0;
  border-radius: 0;
  background: transparent;
}

.grant-print-package .grant-document-grid > section {
  padding: 0 1.25rem 0 0;
}

.grant-print-package .grant-document-grid > section + section {
  padding: 0 0 0 1.25rem;
  border-left: 1px solid var(--surface-warm-line);
}

.grant-print-package .grant-document-section {
  padding: 1.25rem 0 0;
  border-top: 1px solid var(--surface-warm-line);
}

.grant-print-package .grant-outline-list {
  gap: 0;
  border-top: 1px solid var(--surface-warm-line);
}

.grant-print-package .grant-outline-list article {
  padding: 1rem 0;
  border-bottom: 1px solid var(--surface-warm-line);
}

@media (max-width: 980px) {
  .grant-print-package .grant-document-grid > section,
  .grant-print-package .grant-document-grid > section + section {
    padding: 0;
    border-left: 0;
  }

  .grant-print-package .grant-document-grid > section + section {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--surface-warm-line);
  }
}

@media (max-width: 768px) {
  .site-header.is-menu-open {
    position: fixed;
    inset: 0 0 auto;
    width: 100%;
  }
}

@media (max-width: 520px) {
  .refined-course-page .course-fact-strip > div,
  .refined-course-page .course-fact-strip > div:nth-child(even) {
    border-left: 0;
  }
}

/* Final taxonomy and renewal hierarchy. */
.industry-authority-grid {
  align-items: start;
}

.industry-authority-stack {
  overflow: visible;
  gap: 1rem;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.industry-authority-panel {
  padding: clamp(1.25rem, 2.5vw, 1.75rem);
  border: 1px solid var(--site-line);
  border-radius: 10px;
  background: var(--surface-white);
  box-shadow: var(--site-shadow);
}

.industry-authority-heading {
  display: grid;
  gap: 0.3rem;
}

.industry-authority-heading h3 {
  margin: 0;
  color: var(--site-ink);
  font-size: 1.35rem;
  line-height: 1.2;
}

.industry-authority-label,
.industry-logo-group > span {
  display: block;
  margin: 0;
  color: var(--site-cool);
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.industry-marker-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  margin: 1.1rem 0 0;
}

.industry-marker-grid > div {
  min-width: 0;
  padding: 1rem;
  border-left: 3px solid var(--site-cool);
  border-radius: 0 7px 7px 0;
  background: var(--site-soft);
}

.industry-marker-grid dt {
  margin: 0 0 0.4rem;
  color: var(--site-cool);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.industry-marker-grid dd {
  margin: 0;
  color: var(--site-ink);
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.45;
}

.industry-logo-group {
  padding: 1.25rem clamp(1.25rem, 2.5vw, 1.75rem) 1.4rem;
  border: 1px solid var(--site-line);
  border-radius: 10px;
  background: var(--surface-white);
}

.industry-logo-group .industry-logo-panel {
  justify-content: flex-start;
  width: 100%;
  margin: 0.85rem 0 0;
  padding: 0;
}

.category-heading-row {
  align-items: flex-end;
  width: 100%;
  max-width: none;
}

.category-heading-row > .category-course-count {
  min-width: 130px;
  margin-left: auto;
  padding-top: 0;
  color: var(--primary);
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-weight: var(--fw-h3);
  line-height: 1.2;
  text-align: right;
}

.recert-hero-media {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--site-line);
  border-radius: 10px;
  background: var(--site-soft);
  box-shadow: var(--site-shadow);
  aspect-ratio: 3 / 2;
}

.recert-hero-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.footer-address-lines {
  display: block;
  margin-bottom: 0.15rem;
}

.footer-brand address .footer-contact-link {
  display: inline-flex;
  gap: 0.5rem;
  min-height: 24px;
  align-items: center;
}

.footer-brand address .footer-contact-link svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
}

@media (max-width: 768px) {
  .cart-drawer {
    padding: 0 1rem 1rem;
  }

  .cart-header {
    box-sizing: border-box;
    height: 64px;
    min-height: 64px;
    margin: 0 -1rem;
    padding: 7px 1rem 6px;
  }

  .mobile-menu {
    max-height: calc(100dvh - 64px);
    padding-bottom: calc(1.6rem + env(safe-area-inset-bottom));
    scroll-padding-bottom: calc(1.6rem + env(safe-area-inset-bottom));
  }

  .mobile-menu-cta {
    padding-bottom: 0.25rem;
  }

  .mobile-menu-cta .header-link {
    border-bottom: 1px solid var(--site-ink);
  }

  .mobile-menu-cta .header-cta,
  .mobile-menu-cta .header-cta:hover,
  .mobile-menu-cta .header-cta:focus-visible {
    color: var(--surface-white);
    background: var(--site-ink);
    border: 1px solid var(--site-ink);
  }

  .category-heading-row > .category-course-count {
    width: 100%;
    margin-left: 0;
    padding-top: 0;
    text-align: right;
  }
}

@media (max-width: 560px) {
  .industry-marker-grid {
    grid-template-columns: 1fr;
  }
}

/* About, pathway, and category-directory finish. */
.about-story-grid {
  grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(3rem, 7vw, 6rem);
}

.about-section-intro {
  max-width: 410px;
}

.about-section-intro h2 {
  max-width: 390px;
}

.about-section-intro .about-story-lead {
  max-width: 390px;
  margin: 1.3rem 0 0;
  color: var(--site-body);
  font-size: 1.08rem !important;
  line-height: 1.6 !important;
}

.about-editorial-copy {
  display: grid;
  gap: 1.1rem;
  max-width: 760px;
  color: var(--site-body);
  font-size: 1rem;
  line-height: 1.68;
}

.about-editorial-copy > p {
  margin: 0;
}

.about-story-focus {
  display: grid;
  gap: 0.35rem;
  margin-top: 0.55rem;
  padding-top: 1.35rem;
  border-top: 1px solid var(--site-line);
}

.about-story-focus span {
  color: var(--site-cool);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.about-story-focus strong {
  max-width: 650px;
  color: var(--site-ink);
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.45;
}

.about-area-card.enhanced-about-card {
  justify-content: flex-start;
  gap: 0;
}

.about-area-card.enhanced-about-card .stitch-kicker {
  margin-bottom: 0.65rem;
  color: var(--site-cool);
}

.about-area-list {
  display: grid;
  margin: 1.25rem 0 1.5rem;
  padding: 0;
  list-style: none;
}

.about-area-list li {
  display: grid;
  gap: 0.18rem;
  padding: 0.9rem 0;
  border-top: 1px solid var(--site-line);
}

.about-area-list strong {
  color: var(--site-ink);
  font-size: 0.94rem;
  font-weight: 600;
}

.about-area-list span {
  color: var(--site-body);
  font-size: 0.84rem;
  line-height: 1.48;
}

.about-area-card.enhanced-about-card .button {
  align-self: flex-start;
  margin-top: auto;
}

.pathway-guidance-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: min(100%, 500px);
}

.pathway-guidance-actions .button {
  width: 100%;
  min-width: 0;
  justify-content: center;
}

.category-destination-heading {
  display: flex;
  gap: 1rem;
  align-items: baseline;
  justify-content: space-between;
}

.category-destination-heading h2 {
  min-width: 0;
  margin: 0;
}

.category-destination-heading > span {
  flex: 0 0 auto;
  color: var(--site-body);
  font-size: 0.78rem;
  font-weight: 600;
  white-space: nowrap;
}

.categories-index-grid .industry-destination-card > div > span {
  min-height: 3em;
}

@media (max-width: 900px) {
  .about-story-grid {
    grid-template-columns: 1fr;
  }

  .about-section-intro,
  .about-section-intro h2,
  .about-section-intro .about-story-lead,
  .about-editorial-copy {
    max-width: 720px;
  }
}

@media (max-width: 620px) {
  .pathway-guidance-actions {
    grid-template-columns: 1fr;
  }
}

@media print {
  .grant-print-package {
    border: 0;
    border-radius: 0;
    background: var(--surface-white);
  }
}
/* Shared header parity: homepage and inner routes use one composition. */
@media (min-width: 769px) {
  .site-header .main-nav > a,
  .site-header .nav-courses-trigger {
    color: var(--on-surface-variant);
    font-family: var(--font-body);
    font-size: 0.8rem;
    font-weight: 500;
  }

  .site-header .main-nav > a:hover,
  .site-header .main-nav > a:focus-visible,
  .site-header .main-nav > a.active,
  .site-header .nav-courses-trigger:hover,
  .site-header .nav-courses-trigger:focus-visible,
  .site-header .nav-courses-trigger[aria-expanded="true"] {
    color: var(--primary);
    background: var(--surface-container-low);
  }

  .site-header .search-input-wrap {
    min-height: 42px;
    border-color: transparent;
    border-radius: 6px;
    background: var(--surface-container-low);
  }

  .site-header .header-cta {
    min-height: 42px;
    padding-inline: 1rem;
    border-color: var(--primary);
    border-radius: 6px;
    color: var(--on-primary);
    background: var(--primary);
  }
}

@media (min-width: 1321px) {
  .site-header {
    grid-template-columns: 168px minmax(470px, 1fr) minmax(210px, 235px) auto;
    gap: 1.1rem;
    min-height: 72px;
  }

  .site-header .brand img {
    width: 150px;
  }

  .site-header .main-nav {
    gap: 0.1rem;
    min-height: 72px;
    height: 72px;
  }

  .site-header .main-nav > a,
  .site-header .nav-courses-trigger {
    min-height: 38px;
    height: 38px;
    padding-inline: 0.7rem;
  }

  .site-header .header-actions .header-link {
    display: none;
  }
}
/* Direct category and industry lineup shared by discovery pages. */
.browse-lineup-shell {
  position: relative;
  z-index: 35;
  overflow: hidden;
  border-bottom: 1px solid var(--outline-variant);
  background: var(--surface-white);
}

.browse-lineup-scroller {
  min-width: 0;
}

.browse-lineup-scroll-cue {
  display: none;
}

.nav-courses-groups.nav-courses-groups--two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.browse-lineup {
  display: grid;
  grid-template-columns: minmax(0, 8fr) 1px minmax(0, 3fr);
  gap: 0.65rem;
  align-items: stretch;
  width: min(1280px, calc(100% - 64px));
  margin: 0 auto;
  padding: 0.4rem 0;
}

.browse-lineup-group {
  display: flex;
  min-width: 0;
  flex-direction: column;
}


.browse-lineup-items {
  display: grid;
  min-width: 0;
  align-items: stretch;
}

.browse-lineup-group:first-child .browse-lineup-items {
  grid-template-columns: repeat(8, minmax(0, 1fr));
}

.browse-lineup-group:last-child .browse-lineup-items {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.browse-lineup-divider {
  width: 1px;
  margin: 0.25rem 0;
  background: var(--outline-variant);
}

.browse-lineup-link {
  position: relative;
  display: flex;
  gap: 0.25rem;
  min-width: 0;
  min-height: 72px;
  padding: 0.45rem 0.25rem;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 7px;
  color: var(--on-surface-variant);
  text-align: center;
  transition: color 160ms ease, background-color 160ms ease;
}

.browse-lineup-link > svg {
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  color: var(--primary-container);
  stroke-width: 1.65;
  transition: color 160ms ease, transform 160ms ease;
}

.browse-lineup-link > span {
  display: flex;
  min-height: 2.35em;
  align-items: center;
  justify-content: center;
  color: inherit;
  font-size: 0.69rem;
  font-weight: 600;
  line-height: 1.18;
  text-wrap: balance;
}

.browse-lineup-link::after {
  content: "";
  position: absolute;
  right: 32%;
  bottom: 0;
  left: 32%;
  height: 2px;
  border-radius: 2px;
  background: var(--secondary-container);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 160ms ease;
}

.browse-lineup-link:hover,
.browse-lineup-link.is-active {
  color: var(--primary);
  background: transparent;
}

.browse-lineup-link:focus-visible {
  color: var(--primary);
  background: transparent;
  outline: 2px solid var(--primary-container);
  outline-offset: -2px;
}

.browse-lineup-link:hover > svg,
.browse-lineup-link:focus-visible > svg {
  color: var(--secondary-container);
  transform: translateY(-1px);
}

.browse-lineup-link:hover::after,
.browse-lineup-link:focus-visible::after,
.browse-lineup-link.is-active::after {
  transform: scaleX(1);
}

@media (max-width: 1100px) and (min-width: 981px) {
  .browse-lineup {
    width: min(960px, calc(100% - 40px));
    gap: 0.4rem;
  }

  .browse-lineup-link {
    padding-inline: 0.15rem;
  }

  .browse-lineup-link > span {
    font-size: 0.65rem;
  }
}

@media (max-width: 980px) {
  .browse-lineup-scroller {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-padding-inline: 20px;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .browse-lineup-scroller::-webkit-scrollbar {
    display: none;
  }

  .browse-lineup-scroll-cue {
    position: absolute;
    z-index: 2;
    top: 0;
    right: 0;
    display: flex;
    width: 44px;
    height: 100%;
    padding-right: 6px;
    align-items: center;
    justify-content: flex-end;
    color: var(--primary-container);
    background: linear-gradient(
      90deg,
      rgba(255, 255, 255, 0),
      var(--surface-white) 64%
    );
    opacity: 0;
    pointer-events: none;
    transition: opacity 160ms ease;
  }

  .browse-lineup-scroll-cue.is-visible {
    opacity: 1;
  }

  .browse-lineup-scroll-cue svg {
    width: 18px;
    height: 18px;
    stroke-width: 1.8;
  }

  .browse-lineup {
    display: flex;
    width: max-content;
    min-width: 100%;
    gap: 0.6rem;
    padding: 0.5rem 20px;
  }

  .browse-lineup-group {
    display: flex;
    flex-direction: column;
  }


  .browse-lineup-items {
    display: flex;
  }

  .browse-lineup-link {
    width: 96px;
    min-height: 68px;
    flex: 0 0 96px;
    scroll-snap-align: start;
  }

  .browse-lineup:not(.browse-lineup--employer) .browse-lineup-divider,
  .browse-lineup:not(.browse-lineup--employer) .browse-lineup-group--industries {
    display: none;
  }
}

@media (max-width: 520px) {
  .browse-lineup {
    padding-inline: 12px;
  }

  .browse-lineup-scroller {
    scroll-padding-inline: 12px;
  }

  .browse-lineup-link {
    width: 76px;
    flex-basis: 76px;
  }
}

/* About and contact page rhythm refinement */
.about-page .site-page-hero {
  padding-block: clamp(4.5rem, 6vw, 6rem);
}

.about-page .site-page-hero-grid {
  grid-template-columns: minmax(0, 0.92fr) minmax(420px, 0.86fr);
  gap: clamp(3.5rem, 6vw, 6rem);
}

.about-page .site-page-hero-image {
  aspect-ratio: 4 / 3;
  border-radius: 10px;
  box-shadow: var(--site-shadow);
}

.about-page .about-chip-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem 1.25rem;
  margin-top: 1.5rem;
}

.about-page .about-chip-row span {
  position: relative;
  min-height: 0;
  padding: 0 0 0 1rem;
  border: 0;
  border-radius: 0;
  color: var(--site-body);
  background: transparent;
  font-size: 0.88rem;
  line-height: 1.45;
}

.about-page .about-chip-row span::before {
  content: "";
  position: absolute;
  top: 0.52em;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--secondary-container);
}

.about-origin-section {
  padding-block: clamp(5rem, 7vw, 6.75rem);
  background: var(--surface-white);
}

.about-story-grid {
  gap: clamp(3.5rem, 7vw, 6.5rem);
  align-items: start;
}

.about-section-intro {
  max-width: 350px;
}

.about-section-intro h2 {
  max-width: 330px;
}

.about-editorial-copy {
  padding-left: 0;
  border-left: 0;
}

.about-story-lead {
  max-width: 780px;
  margin-bottom: 0;
  font-size: clamp(1.16rem, 1.6vw, 1.34rem) !important;
  line-height: 1.58 !important;
}

.about-story-points {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem 2.5rem;
  margin-top: 2.25rem;
  border: 0;
}

.about-story-points > *,
.about-story-points article {
  align-content: start;
  padding: 0;
  border: 0;
}

.about-story-points article:nth-child(3) {
  grid-column: 1 / -1;
}

.about-story-points h3 {
  margin-bottom: 0.2rem;
  font-family: var(--font-display);
  font-size: 1.2rem;
}

.about-story-points blockquote {
  padding: 1.45rem 1.6rem;
  border: 0;
  border-left: 4px solid var(--secondary-container);
  border-radius: 0 8px 8px 0;
  background: var(--site-soft);
  font-family: var(--font-display);
  font-size: clamp(1.08rem, 1.4vw, 1.22rem);
  line-height: 1.55;
}

.about-strength-section {
  padding-block: clamp(5rem, 7vw, 6.5rem);
  border: 0;
  background: var(--site-soft);
}

.about-strength-section .stitch-section-heading {
  max-width: 700px;
}

.about-pillar-grid {
  gap: 1.15rem;
}

.about-pillar-grid article {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 0.35rem 1rem;
  align-content: start;
  padding: 1.55rem;
  border: 1px solid var(--site-line);
  border-radius: 9px;
  background: var(--surface-white);
  box-shadow: none;
}

.about-pillar-grid article > svg {
  grid-row: 1 / span 2;
  width: 44px;
  height: 44px;
  padding: 0.65rem;
  border-radius: 8px;
  color: var(--site-cool);
  background: var(--site-cool-soft);
  stroke-width: 1.7;
}

.about-pillar-grid h3 {
  align-self: end;
  font-family: var(--font-display);
  font-size: 1.18rem;
}

.about-pillar-grid p {
  font-size: 0.94rem;
  line-height: 1.58;
}

.about-training-section {
  padding-block: clamp(5rem, 7vw, 6.5rem);
  background: var(--surface-white);
}

.about-training-layout {
  grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.58fr);
  gap: clamp(3rem, 6vw, 5.5rem);
  align-items: stretch;
}

.about-training-layout > div:first-child > p:not(.stitch-kicker) {
  max-width: 720px;
}

.about-training-tags {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
  margin-top: 1.75rem;
  border: 0;
}

.about-training-tags span {
  position: relative;
  min-height: 48px;
  padding: 0.75rem 0.85rem 0.75rem 1.8rem;
  border: 1px solid var(--site-line);
  border-radius: 7px;
  color: var(--site-body);
  background: var(--site-soft);
  font-size: 0.9rem;
  font-weight: 500;
  line-height: 1.4;
}

.about-training-tags span::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0.85rem;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--site-cool);
  transform: translateY(-50%);
}

.about-area-card.enhanced-about-card {
  min-height: 100%;
  padding: clamp(1.75rem, 3vw, 2.35rem);
  border: 1px solid var(--site-line);
  border-radius: 9px;
  color: var(--site-ink);
  background: var(--site-soft);
  box-shadow: none;
  transform: none;
  transition: none;
}

.about-area-card.enhanced-about-card:hover,
.about-area-card.enhanced-about-card:focus-within {
  border-color: var(--site-line);
  box-shadow: none;
  transform: none;
}

.about-area-card.enhanced-about-card h3 {
  color: var(--site-ink);
  font-size: 1.35rem;
}

.about-area-card.enhanced-about-card p {
  color: var(--site-body);
  font-size: 0.98rem;
}

.about-employer-band {
  padding-block: clamp(5rem, 7vw, 6.25rem);
  border: 0;
  border-radius: 0;
}

.about-employer-grid {
  gap: clamp(3rem, 6vw, 5rem);
}

.about-support-list {
  gap: 1.5rem;
}

.about-support-list > div {
  gap: 0.5rem;
  padding-top: 1.2rem;
  border-top-width: 1px;
}

.about-support-list strong {
  font-family: var(--font-display);
  font-size: 1.08rem;
}

.about-support-list span {
  font-size: 0.92rem;
  line-height: 1.58;
}

.about-cta {
  padding-block: clamp(4.75rem, 7vw, 6rem);
  border: 0;
  border-radius: 0;
  background: var(--surface-warm);
}

.contact-page .contact-hero {
  padding-block: clamp(4.25rem, 6vw, 5.5rem);
  background: var(--site-soft);
}

.contact-page .contact-hero-single {
  display: grid;
  grid-template-columns: minmax(0, 780px);
  justify-content: center;
  text-align: center;
}

.contact-page .contact-hero-single h1,
.contact-page .contact-hero-single > div > p:not(.stitch-kicker) {
  margin-inline: auto;
}

.contact-page .contact-hero-single .stitch-hero-actions {
  justify-content: center;
}

.contact-path-section {
  padding-block: clamp(4.75rem, 6vw, 5.75rem);
  background: var(--surface-white);
}

.contact-path-section .stitch-section-heading {
  margin-bottom: 2.25rem;
}

.contact-main-section.enhanced-contact-main {
  padding-block: clamp(4.75rem, 7vw, 6.25rem);
  border: 0;
  background: var(--site-soft);
}

.contact-single-layout {
  gap: clamp(3rem, 5vw, 4.25rem);
  width: min(100%, 900px);
  max-width: 900px;
}

.contact-main-office-card {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 1.6rem 1.75rem;
  border: 1px solid var(--site-line);
  border-radius: 9px;
  background: var(--surface-white);
}

.contact-main-office-card > .icon {
  width: 48px;
  height: 48px;
  padding: 0.72rem;
  border-radius: 8px;
  color: var(--site-cool);
  background: var(--site-cool-soft);
}

.contact-main-office-card .contact-office-links {
  gap: 0.4rem;
}

.contact-main-office-card .contact-office-links a {
  color: var(--site-cool);
}

.contact-single-form {
  width: 100%;
  max-width: none;
}

.contact-single-form > .stitch-section-heading {
  max-width: 720px;
  margin-bottom: 2rem;
}

.contact-form-intro {
  margin-bottom: 2.5rem;
  padding-bottom: 2.25rem;
}

.contact-form-intro > p {
  max-width: 760px;
  color: var(--site-body);
  line-height: 1.6;
}

.contact-form-intro > p strong {
  display: block;
  margin-bottom: 0.35rem;
  color: var(--site-ink);
  font-family: var(--font-display);
  font-size: 1.08rem;
}

@media (max-width: 980px) {
  .about-page .site-page-hero-grid,
  .about-story-grid,
  .about-training-layout,
  .about-employer-grid {
    grid-template-columns: 1fr;
  }

  .about-page .site-page-hero-image {
    max-width: 760px;
  }

  .about-section-intro,
  .about-section-intro h2 {
    max-width: 650px;
  }

  .about-support-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .about-page .about-chip-row,
  .about-story-points,
  .about-training-tags {
    grid-template-columns: 1fr;
  }

  .about-story-points article:nth-child(3) {
    grid-column: auto;
  }

  .about-pillar-grid {
    grid-template-columns: 1fr;
  }

  .about-pillar-grid article {
    grid-template-columns: 40px minmax(0, 1fr);
    padding: 1.25rem;
  }

  .about-pillar-grid article > svg {
    width: 40px;
    height: 40px;
  }

  .contact-page .contact-hero-single {
    justify-content: start;
    text-align: left;
  }

  .contact-page .contact-hero-single .stitch-hero-actions {
    justify-content: flex-start;
  }

  .contact-main-office-card {
    grid-template-areas:
      "icon kicker"
      "icon title"
      "address address"
      "links links";
    grid-template-columns: auto minmax(0, 1fr);
    padding: 1.35rem;
  }

  .contact-main-office-card > p:not(.stitch-kicker) {
    margin-top: 0.75rem;
  }

  .contact-main-office-card .contact-office-links {
    margin-top: 0.75rem;
  }
}
/* Employer-specific contextual training rail */
.browse-lineup-shell--employer {
  background: var(--surface-white);
}

.browse-lineup--employer {
  display: block;
  width: min(760px, calc(100% - 64px));
  padding-block: 0.4rem;
}

.browse-lineup--employer .browse-lineup-items,
.browse-lineup--employer .browse-lineup-group:first-child .browse-lineup-items,
.browse-lineup--employer .browse-lineup-group:last-child .browse-lineup-items {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

@media (max-width: 980px) {
  .browse-lineup--employer {
    display: flex;
    width: max-content;
    min-width: 100%;
    justify-content: center;
    padding: 0.5rem 20px;
  }

  .browse-lineup--employer .browse-lineup-items,
  .browse-lineup--employer .browse-lineup-group:first-child .browse-lineup-items,
  .browse-lineup--employer .browse-lineup-group:last-child .browse-lineup-items {
    display: flex;
  }
}

@media (max-width: 560px) {
  .browse-lineup--employer {
    justify-content: flex-start;
    padding-inline: 12px;
  }
}
/* Separate the employer course band from the hero surface. */
.employer-page > .section.band.muted {
  border-top: 0;
  background: var(--surface-white);
}
/* Recertification price */
.recert-product-facts {
  background: transparent;
}

.recert-product-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
  align-items: stretch;
}

.recert-product-actions > *,
.recert-product-actions .button {
  width: 100%;
  min-width: 0;
}

.recert-product-actions .button {
  justify-content: center;
}

.recert-product-facts .recert-sale-price {
  display: block;
}

.recert-sale-price span {
  color: var(--secondary-container);
  font-family: var(--font-display);
  font-size: 1.45rem;
  font-weight: 700;
  line-height: 1;
}

@media (max-width: 560px) {
  .recert-product-actions {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* Production checkout flow */
.checkout-hero {
  padding-block: clamp(2.75rem, 5vw, 4.5rem);
  border-bottom: 1px solid var(--site-line);
}

.checkout-hero-grid {
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.7fr);
  gap: clamp(2rem, 5vw, 5rem);
}

.checkout-hero h1 {
  margin-block: 0.45rem 0.8rem;
  font-size: clamp(2.4rem, 4vw, 3.65rem);
}

.checkout-hero p {
  margin-bottom: 0;
}

.checkout-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  list-style: none;
}

.checkout-steps li {
  position: relative;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 0.65rem;
  align-items: center;
  min-width: 0;
  color: var(--site-body);
}

.checkout-steps li::after {
  content: "";
  position: absolute;
  z-index: 0;
  top: 14px;
  right: 0;
  left: 28px;
  height: 1px;
  background: var(--site-line);
}

.checkout-steps li:last-child::after {
  display: none;
}

.checkout-steps li > span {
  position: relative;
  z-index: 1;
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  padding: 0;
  border: 1px solid var(--site-line);
  border-radius: 50%;
  color: var(--site-body);
  background: var(--surface-white);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}

.checkout-steps li > span::before {
  display: none;
}

.checkout-steps li > strong {
  position: relative;
  z-index: 1;
  width: fit-content;
  padding-right: 0.65rem;
  color: inherit;
  background: var(--site-soft);
  font-size: 0.86rem;
  font-weight: 500;
}

.checkout-steps li.active,
.checkout-steps li.complete {
  color: var(--site-ink);
}

.checkout-steps li.active > span {
  border-color: var(--secondary-container);
  color: var(--on-secondary);
  background: var(--secondary-container);
}

.checkout-steps li.complete > span {
  border-color: var(--primary);
  color: var(--on-primary);
  background: var(--primary);
}

.checkout-main-section {
  padding-block: clamp(2.75rem, 5vw, 5rem);
}

.checkout-layout {
  grid-template-columns: minmax(0, 1fr) minmax(330px, 380px);
  gap: clamp(2rem, 5vw, 4.5rem);
}

.checkout-main > form {
  display: grid;
  gap: 1.4rem;
}

.checkout-step-panel,
.checkout-review-panel,
.checkout-payment-review {
  padding: clamp(1.5rem, 3vw, 2.15rem);
}

.checkout-panel-heading {
  margin-top: 0;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--site-line);
}

.checkout-panel-heading h2,
.checkout-panel-heading p {
  margin-bottom: 0;
}

.checkout-panel-heading p {
  margin-top: 0.3rem;
  font-size: 0.94rem;
}

.checkout-registration-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
  margin-top: 1.35rem;
}

.checkout-registration-options > label {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
  min-height: 108px;
  padding: 1.1rem;
  border: 1px solid var(--site-line);
  border-radius: 9px;
  color: var(--site-ink);
  background: var(--surface-white);
  cursor: pointer;
  transition: border-color 160ms ease, background-color 160ms ease;
}

.checkout-registration-options > label:hover,
.checkout-registration-options > label.selected {
  border-color: var(--site-cool);
  background: var(--site-cool-soft);
}

.checkout-registration-options input {
  margin-top: 0.22rem;
  accent-color: var(--primary);
}

.checkout-registration-options span,
.checkout-registration-options strong,
.checkout-registration-options small {
  display: block;
}

.checkout-registration-options strong {
  color: var(--site-ink);
  font-weight: 600;
}

.checkout-registration-options small {
  margin-top: 0.35rem;
  color: var(--site-body);
  font-size: 0.84rem;
  line-height: 1.45;
}

.checkout-fields-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.1rem 1.2rem;
  margin-top: 1.35rem;
}

.checkout-fields-grid label {
  display: grid;
  gap: 0.5rem;
  min-width: 0;
  color: var(--site-ink);
  font-size: 0.82rem;
  font-weight: 600;
}

.checkout-fields-grid input,
.checkout-fields-grid .modern-select-trigger {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--site-line);
  border-radius: 8px;
  color: var(--site-ink);
  background: var(--surface-white);
  box-shadow: none;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.checkout-fields-grid input {
  padding: 0.7rem 0.85rem;
}

.checkout-fields-grid input:focus,
.checkout-fields-grid .modern-select-trigger:focus-visible {
  border-color: var(--site-cool);
  outline: 0;
  box-shadow: 0 0 0 3px var(--site-cool-soft);
}

.checkout-field-wide {
  grid-column: 1 / -1;
}

.checkout-step-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 0.35rem;
}

.checkout-step-actions > a:not(.button),
.checkout-panel-heading > a,
.checkout-summary-heading > a {
  color: var(--site-cool);
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
}

.checkout-payment-notice {
  margin: 1.35rem 2rem 0;
  padding: 1rem 1.1rem;
  border: 1px solid var(--surface-warm-line);
  border-radius: 7px;
  color: var(--site-ink);
  background: var(--surface-warm);
}

.checkout-payment-notice strong {
  display: block;
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 600;
}

.checkout-payment-notice p {
  margin: 0.25rem 0 0;
  color: var(--site-body);
  font-size: 0.9rem;
}
.checkout-form-error {
  margin: 0;
  padding: 0.9rem 1rem;
  border-left: 3px solid var(--secondary-container);
  color: var(--warning-text);
  background: var(--warning-bg);
  font-size: 0.9rem;
}

.checkout-summary {
  top: 118px;
}

.checkout-summary-card {
  padding: 1.4rem;
}

.checkout-summary-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--site-line);
}

.checkout-summary-heading h2 {
  margin: 0;
}

.checkout-order-items {
  display: grid;
}

.checkout-order-item {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 0.8rem;
  padding-block: 1rem;
  border-bottom: 1px solid var(--site-line);
}

.checkout-order-item img {
  width: 58px;
  height: 58px;
  border-radius: 7px;
  object-fit: cover;
}

.checkout-order-item-copy {
  min-width: 0;
}

.checkout-order-item-copy h3 {
  margin: 0;
  color: var(--site-ink);
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.35;
}

.checkout-order-item-copy p {
  margin: 0.2rem 0 0;
  color: var(--site-body);
  font-size: 0.76rem;
  line-height: 1.4;
}

.checkout-order-item-copy strong {
  display: block;
  margin-top: 0.35rem;
  color: var(--site-ink);
  font-size: 0.84rem;
  font-weight: 600;
}

.checkout-order-item-actions {
  grid-column: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.quantity-stepper.compact {
  height: 34px;
}

.quantity-stepper.compact button,
.quantity-stepper.compact span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 31px;
  height: 32px;
  padding: 0;
  line-height: 1;
}

.quantity-stepper.compact span {
  font-variant-numeric: tabular-nums;
}

.checkout-summary-rows {
  margin-bottom: 0.5rem;
}

.checkout-summary-rows span {
  color: var(--site-body);
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}

.checkout-tax-note {
  margin: 0;
  color: var(--site-body);
  font-size: 0.78rem;
}

.checkout-coupon-box {
  margin-block: 1.3rem;
  padding-block: 1.1rem;
  border-top: 1px solid var(--site-line);
  border-bottom: 1px solid var(--site-line);
}

.checkout-summary-card > .button {
  min-height: 44px;
}

.checkout-seat-count {
  flex: 0 0 auto;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  color: var(--site-ink);
  background: var(--site-cool-soft);
  font-size: 0.78rem;
  font-weight: 600;
}

.checkout-learner-groups,
.checkout-learner-list {
  display: grid;
  gap: 1rem;
}

.checkout-learner-groups {
  margin-top: 1.35rem;
  gap: 1.75rem;
}

.checkout-learner-group + .checkout-learner-group {
  padding-top: 1.75rem;
  border-top: 1px solid var(--site-line);
}

.checkout-learner-course {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.85rem;
}

.checkout-learner-course h3,
.checkout-learner-course p {
  margin-bottom: 0;
}

.checkout-learner-course h3 {
  color: var(--site-ink);
  font-size: 1.05rem;
}

.checkout-learner-course p {
  margin-top: 0.2rem;
  color: var(--site-body);
  font-size: 0.84rem;
}

.checkout-learner-course > strong {
  color: var(--site-body);
  font-size: 0.8rem;
  font-weight: 600;
  white-space: nowrap;
}

.checkout-learner-card {
  padding: 1.1rem;
  border: 1px solid var(--site-line);
  border-radius: 9px;
  background: var(--site-soft);
}

.checkout-learner-card-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.checkout-learner-card-heading h4 {
  margin: 0;
  color: var(--site-ink);
}

.checkout-defer-option {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  color: var(--site-body);
  font-size: 0.8rem;
  font-weight: 500;
  cursor: pointer;
}

.checkout-defer-option input,
.checkout-confirm-row input {
  accent-color: var(--primary);
}

.checkout-learner-card .checkout-fields-grid {
  margin-top: 1rem;
}

.checkout-individual-learner {
  display: grid;
  gap: 0.2rem;
  margin-top: 0.85rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--site-line);
}

.checkout-individual-learner strong {
  color: var(--site-ink);
  font-size: 0.95rem;
  font-weight: 600;
}

.checkout-individual-learner span {
  color: var(--site-body);
  font-size: 0.84rem;
}

.checkout-deferred-note {
  margin: 0.9rem 0 0;
  padding: 0.8rem 0.9rem;
  border-left: 3px solid var(--accent-amber);
  color: var(--site-body);
  background: var(--surface-warm);
  font-size: 0.86rem;
}

.checkout-review-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
  margin-top: 1.35rem;
}

.checkout-review-details > div {
  display: grid;
  align-content: start;
  gap: 0.2rem;
}

.checkout-review-details span,
.checkout-review-learners li > span {
  color: var(--site-body);
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.checkout-review-details strong {
  margin-block: 0.35rem 0.15rem;
  color: var(--site-ink);
  font-weight: 600;
}

.checkout-review-details p {
  margin: 0;
  color: var(--site-body);
  font-size: 0.9rem;
  line-height: 1.5;
}

.checkout-review-learners {
  display: grid;
  gap: 1.5rem;
  margin-top: 1.35rem;
}

.checkout-review-learners > section + section {
  padding-top: 1.5rem;
  border-top: 1px solid var(--site-line);
}

.checkout-review-learners ul {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--site-line);
  list-style: none;
}

.checkout-review-learners li {
  display: grid;
  grid-template-columns: 95px minmax(0, 1fr) minmax(150px, auto);
  gap: 1rem;
  align-items: center;
  padding-block: 0.85rem;
  border-bottom: 1px solid var(--site-line);
}

.checkout-review-learners li > strong {
  color: var(--site-ink);
  font-weight: 600;
}

.checkout-review-learners li > small {
  color: var(--site-body);
  text-align: right;
}

.checkout-payment-review > p {
  max-width: 620px;
}

.checkout-payment-handoff {
  margin-top: 1.1rem;
  padding: 1rem;
  border-left: 3px solid var(--site-cool);
  color: var(--site-ink);
  background: var(--site-cool-soft);
}

.checkout-payment-handoff strong {
  color: var(--site-ink);
  font-weight: 600;
}

.checkout-payment-handoff p {
  margin: 0.25rem 0 0;
  color: var(--site-body);
  font-size: 0.88rem;
}

.checkout-guard {
  display: grid;
  justify-items: start;
  gap: 0.8rem;
}

.checkout-guard h2,
.checkout-guard p {
  margin: 0;
}

@media (max-width: 980px) {
  .checkout-hero-grid,
  .checkout-layout {
    grid-template-columns: 1fr;
  }

  .checkout-summary {
    position: static;
  }
}

@media (max-width: 680px) {
  .checkout-hero {
    padding-block: 2.25rem;
  }

  .checkout-steps {
    margin-top: 0.75rem;
  }

  .checkout-steps li {
    grid-template-columns: 25px minmax(0, 1fr);
    gap: 0.45rem;
  }

  .checkout-steps li > span {
    width: 25px;
    height: 25px;
    font-size: 0.72rem;
  }

  .checkout-steps li::after {
    top: 12px;
    left: 25px;
  }

  .checkout-steps li > strong {
    padding-right: 0.35rem;
    font-size: 0.76rem;
  }

  .checkout-registration-options,
  .checkout-fields-grid,
  .checkout-review-details {
    grid-template-columns: 1fr;
  }

  .checkout-field-wide {
    grid-column: auto;
  }

  .checkout-registration-options > label {
    min-height: 0;
  }

  .checkout-step-actions,
  .checkout-learner-card-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .checkout-step-actions .button {
    width: 100%;
  }

  .checkout-step-actions > a:not(.button) {
    order: 2;
    padding-block: 0.5rem;
    text-align: center;
  }

  .checkout-panel-heading {
    align-items: flex-start;
  }

  .checkout-review-learners li {
    grid-template-columns: 1fr;
    gap: 0.2rem;
  }

  .checkout-review-learners li > small {
    text-align: left;
  }
}
/* Checkout visual refinement */
.checkout-page {
  background: var(--site-soft);
}

.checkout-hero {
  padding-block: clamp(2.25rem, 4vw, 3.5rem) clamp(1.75rem, 3vw, 2.5rem);
  border-bottom: 1px solid var(--site-line);
  background: var(--surface-white);
}

.checkout-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 760px);
  gap: 1.75rem;
  align-items: start;
}

.checkout-hero h1 {
  margin-block: 0.25rem 0.65rem;
  font-size: clamp(2.25rem, 3.5vw, 3.25rem);
  line-height: 1.04;
}

.checkout-hero .stitch-kicker {
  margin-bottom: 0.45rem;
  color: var(--site-cool);
  font-size: 0.74rem;
}

.checkout-hero p:last-child {
  max-width: 660px;
  font-size: 1rem;
  line-height: 1.6;
}

.checkout-steps {
  width: min(100%, 650px);
}

.checkout-steps li {
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 0.7rem;
}

.checkout-steps li::after {
  top: 16px;
  left: 32px;
}

.checkout-steps li > span {
  width: 32px;
  height: 32px;
  border-width: 1px;
  font-size: 0.76rem;
}

.checkout-steps li > strong {
  padding-right: 0.8rem;
  background: var(--surface-white);
  font-size: 0.86rem;
}

.checkout-main-section {
  padding-block: clamp(2.5rem, 5vw, 4.75rem);
}

.checkout-layout {
  grid-template-columns: minmax(0, 760px) minmax(330px, 370px);
  justify-content: space-between;
  gap: clamp(2rem, 5vw, 4rem);
}

.checkout-main {
  display: block;
}

.checkout-main > form {
  display: grid;
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--site-line);
  border-radius: 12px;
  background: var(--surface-white);
  box-shadow: 0 12px 30px rgba(18, 53, 84, 0.055);
}

.checkout-main > form > .checkout-panel {
  margin: 0;
  padding: clamp(1.5rem, 3vw, 2.15rem);
  border: 0;
  border-bottom: 1px solid var(--site-line);
  border-radius: 0;
  background: var(--surface-white);
  box-shadow: none;
}

.checkout-main > form > .checkout-panel:last-of-type {
  border-bottom: 0;
}

.checkout-panel-heading {
  margin: 0;
  padding: 0;
  border: 0;
}

.checkout-panel-heading h2 {
  font-size: clamp(1.35rem, 2vw, 1.65rem);
  line-height: 1.2;
}

.checkout-panel-heading p {
  max-width: 580px;
  margin-top: 0.4rem;
  color: var(--site-body);
  font-size: 0.9rem;
  line-height: 1.55;
}

.checkout-registration-options {
  gap: 0.75rem;
  margin-top: 1.3rem;
}

.checkout-registration-options > label {
  position: relative;
  min-height: 96px;
  padding: 1rem 1.05rem;
  border-color: var(--site-line);
  border-radius: 8px;
  background: var(--site-soft);
}

.checkout-registration-options > label:hover {
  border-color: var(--site-cool);
  background: var(--surface-white);
}

.checkout-registration-options > label.selected {
  border-color: var(--primary);
  background: var(--site-cool-soft);
  box-shadow: inset 3px 0 0 var(--primary);
}

.checkout-registration-options input {
  width: 17px;
  height: 17px;
}

.checkout-fields-grid {
  gap: 1rem 1.15rem;
  margin-top: 1.3rem;
}

.checkout-fields-grid label {
  gap: 0.45rem;
  font-size: 0.8rem;
  font-weight: 600;
}

.checkout-fields-grid input,
.checkout-fields-grid .modern-select-trigger {
  min-height: 46px;
  border-color: var(--outline-variant);
  border-radius: 6px;
  background: var(--surface-white);
}

.checkout-fields-grid input:hover,
.checkout-fields-grid .modern-select-trigger:hover {
  border-color: var(--site-cool);
}

.checkout-main > form > .checkout-form-error {
  margin: 1.25rem 2rem 0;
}

.checkout-step-actions {
  min-height: 82px;
  padding: 1rem clamp(1.5rem, 3vw, 2.15rem);
  border-top: 1px solid var(--site-line);
  background: var(--surface-warm);
}

.checkout-step-actions .button {
  min-width: 210px;
}

.checkout-step-actions > a:not(.button) {
  color: var(--site-body);
  font-weight: 500;
}

.checkout-step-actions > a:not(.button):hover {
  color: var(--site-ink);
}

.checkout-summary {
  top: 104px;
}

.checkout-summary-card {
  overflow: hidden;
  padding: 0;
  border-color: var(--site-line);
  border-radius: 12px;
  background: var(--surface-white);
  box-shadow: 0 12px 30px rgba(18, 53, 84, 0.055);
}

.checkout-summary-heading {
  padding: 1.25rem 1.35rem 1rem;
  border-bottom: 1px solid var(--site-line);
}

.checkout-summary-heading h2 {
  font-size: 1.35rem;
}

.checkout-summary-heading > a {
  font-size: 0.8rem;
}

.checkout-order-items {
  padding-inline: 1.35rem;
}

.checkout-order-item {
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 0.75rem;
  padding-block: 1rem;
}

.checkout-order-item img {
  width: 54px;
  height: 54px;
  border-radius: 6px;
}

.checkout-order-item-copy h3 {
  font-size: 0.86rem;
  line-height: 1.35;
}

.checkout-order-item-copy p {
  margin-top: 0.15rem;
}

.checkout-order-item-copy strong {
  margin-top: 0.25rem;
  font-size: 0.82rem;
}

.checkout-order-item-actions {
  margin-top: 0.1rem;
}

.checkout-summary-rows {
  gap: 0;
  margin: 0;
  padding: 0 1.35rem;
}

.checkout-summary-rows div {
  min-height: 46px;
  padding: 0.65rem 0;
}

.checkout-summary-rows div:last-child {
  border-bottom: 0;
}

.checkout-total-row {
  margin-top: 0;
  border-top: 0;
}

.checkout-total-row span {
  color: var(--site-ink);
  font-weight: 600;
}

.checkout-total-row strong {
  font-size: 1.25rem;
}

.checkout-tax-note {
  padding: 0 1.35rem;
}

.checkout-coupon-box {
  margin: 1.15rem 1.35rem 0;
  padding-block: 1rem;
}

.checkout-coupon-box label {
  margin-top: 0;
}

.checkout-summary-card > .button {
  width: calc(100% - 2.7rem);
  margin: 1.15rem 1.35rem 1.35rem;
  min-height: 44px;
}

.checkout-learner-groups {
  margin-top: 1.4rem;
}

.checkout-learner-group + .checkout-learner-group {
  padding-top: 1.5rem;
}

.checkout-learner-course {
  margin-bottom: 0.85rem;
}

.checkout-learner-card {
  padding: 1rem 1.05rem;
  border-color: var(--site-line);
  border-radius: 8px;
  background: var(--site-soft);
}

.checkout-learner-card-heading h4 {
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 600;
}

.checkout-defer-option {
  font-size: 0.78rem;
}

.checkout-deferred-note {
  border-left-width: 2px;
  border-radius: 0 6px 6px 0;
}

.checkout-review-details {
  margin-top: 1.2rem;
}

.checkout-review-learners {
  margin-top: 1.2rem;
}

.checkout-review-learners ul {
  border-top-color: var(--site-line);
}

.checkout-payment-review {
  background: var(--surface-warm) !important;
}

.checkout-payment-review .checkout-confirm-row {
  max-width: 600px;
  margin-top: 1rem;
  padding: 0;
}

.checkout-payment-handoff {
  border-radius: 0 7px 7px 0;
}

.checkout-guard {
  border: 1px solid var(--site-line);
  border-radius: 12px;
  background: var(--surface-white);
}

@media (max-width: 980px) {
  .checkout-layout {
    grid-template-columns: minmax(0, 760px);
    justify-content: center;
  }

  .checkout-summary {
    position: static;
  }
}

@media (max-width: 680px) {
  .checkout-hero {
    padding-block: 1.85rem 1.5rem;
  }

  .checkout-hero h1 {
    font-size: 2.15rem;
  }

  .checkout-steps {
    width: 100%;
  }

  .checkout-steps li {
    grid-template-columns: 27px minmax(0, 1fr);
    gap: 0.42rem;
  }

  .checkout-steps li > span {
    width: 27px;
    height: 27px;
  }

  .checkout-steps li::after {
    top: 13px;
    left: 27px;
  }

  .checkout-steps li > strong {
    font-size: 0.72rem;
  }

  .checkout-main-section {
    padding-block: 1.5rem 2.5rem;
  }

  .checkout-main > form,
  .checkout-summary-card {
    border-radius: 9px;
  }

  .checkout-main > form > .checkout-panel {
    padding: 1.35rem 1.15rem;
  }

  .checkout-payment-notice {
    margin: 1rem 1.15rem 0;
  }
  .checkout-main > form > .checkout-form-error {
    margin: 1rem 1.15rem 0;
  }

  .checkout-step-actions {
    min-height: 0;
    padding: 1.15rem;
  }

  .checkout-step-actions .button {
    min-width: 0;
  }

  .checkout-registration-options {
    grid-template-columns: 1fr;
  }

  .checkout-registration-options > label {
    min-height: 0;
  }

  .checkout-learner-course {
    flex-direction: column;
    gap: 0.35rem;
  }

  .checkout-review-details {
    gap: 1.4rem;
  }
}
/* Final checkout alignment adjustments */
@media (min-width: 981px) {
  .checkout-hero-grid {
    grid-template-columns: minmax(0, 650px) minmax(430px, 520px);
    justify-content: space-between;
    gap: clamp(2.5rem, 6vw, 6rem);
    align-items: center;
  }

  .checkout-steps {
    width: 100%;
  }

  .checkout-main-section {
    padding-top: clamp(2rem, 3vw, 3rem);
  }
}

.checkout-defer-option input[type="checkbox"] {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  min-height: 0;
  margin: 0;
  border: 1px solid var(--outline);
  border-radius: 3px;
  appearance: auto;
}

.checkout-defer-option span {
  white-space: nowrap;
}

@media (max-width: 520px) {
  .checkout-defer-option span {
    white-space: normal;
  }
}
/* Professional checkout controls */
.checkout-steps {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
  margin: 0;
  padding: 0;
  isolation: isolate;
}

.checkout-steps::before,
.checkout-steps::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: 15px;
  left: 16.666%;
  height: 2px;
  border-radius: 999px;
}

.checkout-steps::before {
  right: 16.666%;
  background: var(--site-line);
}

.checkout-steps::after {
  width: 0;
  background: var(--primary);
  transition: width 220ms ease;
}

.checkout-steps-students::after {
  width: 33.333%;
}

.checkout-steps-summary::after {
  width: 66.666%;
}

.checkout-steps li,
.checkout-steps li + li {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 32px auto;
  gap: 0.55rem;
  justify-items: center;
  min-width: 0;
  margin: 0;
  color: var(--site-body);
  text-align: center;
}

.checkout-steps li::after {
  display: none;
}

.checkout-steps li > span {
  position: relative;
  z-index: 1;
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  padding: 0;
  border: 1px solid var(--site-line);
  border-radius: 50%;
  color: var(--site-body);
  background: var(--surface-white);
  font-size: 0.76rem;
  font-weight: 600;
}

.checkout-steps li > strong {
  position: static;
  z-index: auto;
  width: auto;
  padding: 0;
  color: inherit;
  background: transparent;
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.3;
}

.checkout-steps li.complete > span {
  border-color: var(--primary);
  color: var(--on-primary);
  background: var(--primary);
}

.checkout-steps li.complete > strong,
.checkout-steps li.active > strong {
  color: var(--site-ink);
  font-weight: 600;
}

.checkout-steps li.active > span {
  border-color: var(--secondary-container);
  color: var(--on-secondary);
  background: var(--secondary-container);
  box-shadow: 0 0 0 4px var(--surface-white);
}

.checkout-registration-options > label,
.checkout-registration-options > label:hover,
.checkout-registration-options > label.selected {
  box-shadow: none;
}

.checkout-registration-options > label {
  border: 1px solid var(--site-line);
  background: var(--site-soft);
}

.checkout-registration-options > label:hover {
  border-color: var(--site-cool);
  background: var(--surface-white);
}

.checkout-registration-options > label.selected {
  border-color: var(--primary);
  background: var(--surface-white);
  box-shadow: 0 0 0 1px var(--primary);
}

.checkout-registration-options input[type="radio"] {
  display: grid;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  min-height: 0;
  padding: 0;
  margin: 0.2rem 0 0;
  place-content: center;
  border: 1.5px solid var(--outline);
  border-radius: 50%;
  background: var(--surface-white);
  appearance: none;
  cursor: pointer;
}

.checkout-registration-options input[type="radio"]::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--primary);
  transform: scale(0);
  transition: transform 120ms ease;
}

.checkout-registration-options input[type="radio"]:checked {
  border-color: var(--primary);
}

.checkout-registration-options input[type="radio"]:checked::before {
  transform: scale(1);
}

.checkout-registration-options input[type="radio"]:focus-visible,
.checkout-defer-option input[type="checkbox"]:focus-visible,
.checkout-confirm-row input[type="checkbox"]:focus-visible {
  outline: 2px solid var(--site-cool);
  outline-offset: 3px;
}

.checkout-defer-option input[type="checkbox"],
.checkout-confirm-row input[type="checkbox"] {
  display: grid;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  min-height: 0;
  margin: 0;
  place-content: center;
  border: 1px solid var(--outline);
  border-radius: 3px;
  background: var(--surface-white);
  appearance: none;
  cursor: pointer;
}

.checkout-defer-option input[type="checkbox"]::before,
.checkout-confirm-row input[type="checkbox"]::before {
  content: "";
  width: 8px;
  height: 4px;
  border-bottom: 2px solid var(--on-primary);
  border-left: 2px solid var(--on-primary);
  transform: translateY(-1px) rotate(-45deg) scale(0);
  transition: transform 120ms ease;
}

.checkout-defer-option input[type="checkbox"]:checked,
.checkout-confirm-row input[type="checkbox"]:checked {
  border-color: var(--primary);
  background: var(--primary);
}

.checkout-defer-option input[type="checkbox"]:checked::before,
.checkout-confirm-row input[type="checkbox"]:checked::before {
  transform: translateY(-1px) rotate(-45deg) scale(1);
}

@media (max-width: 680px) {
  .checkout-steps {
    padding-inline: 0.1rem;
  }

  .checkout-steps::before,
  .checkout-steps::after {
    top: 14px;
  }

  .checkout-steps li,
  .checkout-steps li + li {
    grid-template-rows: 29px auto;
    gap: 0.45rem;
  }

  .checkout-steps li > span {
    width: 29px;
    height: 29px;
    font-size: 0.7rem;
  }

  .checkout-steps li > strong {
    font-size: 0.72rem;
  }
}
/* Checkout confirmation status */
.checkout-confirmation-status-card {
  max-width: 720px;
  margin-inline: auto;
  padding: clamp(2rem, 5vw, 3rem);
  text-align: left;
}

.checkout-confirmation-status-icon {
  display: grid;
  width: 52px;
  height: 52px;
  margin-bottom: 1.35rem;
  place-items: center;
  border-radius: 50%;
  color: var(--site-ink);
  background: var(--site-cool-soft);
}

.checkout-confirmation-status-icon svg {
  width: 26px;
  height: 26px;
  stroke-width: 1.8;
}

.checkout-confirmation-status-card.is-processing .checkout-confirmation-status-icon,
.checkout-confirmation-status-card.is-attention .checkout-confirmation-status-icon {
  color: var(--secondary-container);
  background: var(--surface-warm);
}

.checkout-confirmation-status-card h1 {
  max-width: 620px;
  margin: 0.45rem 0 0;
  color: var(--site-ink);
  font-size: var(--fs-h2);
  font-weight: 600;
  line-height: var(--lh-heading);
}

.checkout-confirmation-lead {
  max-width: 610px;
  margin: 1rem 0 0;
  color: var(--site-body);
  font-size: var(--fs-body-lg);
  line-height: var(--lh-body);
}


.checkout-confirmation-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.75rem;
}

.checkout-confirmation-actions .button {
  min-height: 48px;
}


@media (max-width: 760px) {
  .checkout-confirmation-status-card {
    padding: 1.5rem;
  }


  .checkout-confirmation-actions {
    display: grid;
  }

  .checkout-confirmation-actions .button {
    width: 100%;
  }
}
/* Keep catalogue and taxonomy course cards balanced across page types. */
.catalog-course-card .directory-heading-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.45rem;
  align-items: start;
}

.catalog-course-card .directory-course-heading h3,
.industry-course-card .industry-course-body h3 {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.catalog-course-card .directory-price {
  justify-self: start;
  color: var(--site-body);
  line-height: 1.25;
  text-align: left;
}

.catalog-course-card .directory-price strong {
  color: var(--site-ink);
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 600;
}


.catalog-course-card .directory-course-actions,
.industry-course-card .industry-course-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  align-items: stretch;
}

.catalog-course-card .directory-course-actions > *,
.industry-course-card .industry-course-actions > * {
  width: 100%;
  min-width: 0;
}

.catalog-course-card .directory-course-actions .button,
.industry-course-card .industry-course-actions .button {
  width: 100%;
  min-width: 0;
  justify-content: center;
  padding-right: 0.7rem;
  padding-left: 0.7rem;
  white-space: nowrap;
}

@media (max-width: 520px) {
  .catalog-course-card .directory-course-heading h3,
  .industry-course-card .industry-course-body h3 {
    min-height: 0;
  }

  .catalog-course-card .directory-course-actions,
  .industry-course-card .industry-course-actions {
    grid-template-columns: 1fr;
  }
}

/* Match course-image labels to the established homepage treatment. */
.directory-course-image > span,
.industry-course-card .industry-course-image > span {
  top: 1rem;
  left: 1rem;
  padding: 0.38rem 0.6rem;
  border: 0;
  border-radius: 6px;
  color: #3f6f91;
  background: rgba(255, 255, 255, 0.94);
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* Align course outcomes without separating the price from its title. */
.catalog-course-card .directory-card-switch {
  min-height: 8.4rem;
}

.catalog-course-card .directory-course-body {
  display: flex;
  flex-direction: column;
}

.catalog-course-card .directory-meta {
  align-content: start;
}

@media (min-width: 521px) {
  .catalog-course-card .directory-course-heading {
    min-height: 7.7rem;
  }

  .catalog-course-card .directory-card-switch {
    min-height: 6.75rem;
  }

  .catalog-course-card .directory-card-switch.show-session-picker {
    min-height: 7.25rem;
  }

  .catalog-course-card .directory-meta {
    grid-template-rows: 2.4rem auto;
    align-content: start;
    padding-top: 0.65rem;
  }

  .catalog-course-card .directory-meta > div {
    align-items: start;
  }

  .catalog-course-card .directory-meta > div:first-child {
    align-items: center;
  }
}

/* Private staging preview */
.preview-banner {
  display: flex;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: 0.5rem 1rem;
  border-bottom: 1px solid rgba(46, 102, 139, 0.18);
  color: #244d69;
  background: #f0f6fa;
  font-size: 0.8rem;
  line-height: 1.35;
  text-align: center;
}

.preview-banner svg {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  stroke-width: 1.8;
}

.preview-banner strong {
  margin-right: 0.4rem;
  color: #002046;
  font-weight: 650;
}

.cart-button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.cart-button:disabled:hover {
  transform: none;
  box-shadow: none;
}

@media (max-width: 520px) {
  .preview-banner {
    align-items: flex-start;
    font-size: 0.74rem;
  }

  .preview-banner span {
    display: grid;
    gap: 0.05rem;
  }

  .preview-banner strong {
    margin-right: 0;
  }
}

/* Header course search */
.site-search .search-results-panel {
  z-index: 1200;
  right: 0;
  left: auto;
  width: min(26rem, calc(100vw - 2rem));
  gap: 0;
  max-height: min(31rem, calc(100vh - 7rem));
  padding: 0.55rem;
  overflow-y: auto;
  border-color: var(--site-line);
  border-radius: 8px;
  box-shadow: 0 18px 42px rgba(0, 32, 70, 0.16);
  scrollbar-color: #aab8c5 transparent;
  scrollbar-width: thin;
}

.site-search .search-results-panel::-webkit-scrollbar {
  width: 8px;
}

.site-search .search-results-panel::-webkit-scrollbar-button {
  display: none;
}

.site-search .search-results-panel::-webkit-scrollbar-thumb {
  border: 2px solid var(--surface-white);
  border-radius: 999px;
  background: #aab8c5;
}

.site-search .search-results-heading {
  align-items: center;
  padding: 0.35rem 0.45rem 0.65rem;
}

.site-search .search-result {
  gap: 0.18rem;
  padding: 0.7rem 0.55rem;
  border-radius: 6px;
  text-decoration: none;
}

.site-search .search-result:hover,
.site-search .search-result:focus-visible,
.site-search .search-result.is-active {
  background: var(--site-soft);
  outline: none;
}

.site-search .search-result span {
  color: var(--site-cool);
  letter-spacing: 0.06em;
}

.site-search .search-result strong {
  color: var(--site-ink);
  line-height: 1.3;
}

.site-search .search-result small {
  display: -webkit-box;
  overflow: hidden;
  color: var(--site-muted);
  line-height: 1.4;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.site-search .search-results-all {
  display: flex;
  min-height: 2.5rem;
  align-items: center;
  justify-content: center;
  margin-top: 0.3rem;
  border-top: 1px solid var(--site-line);
  color: var(--site-blue);
  font-size: 0.8rem;
  font-weight: 600;
  text-decoration: none;
}

.site-search .search-results-all:hover,
.site-search .search-results-all:focus-visible {
  color: var(--site-ink);
  outline: none;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

/* Shared course-detail polish */
.refined-course-page .course-detail-hero {
  padding-bottom: clamp(1.75rem, 2.4vw, 2.25rem);
}

.refined-course-page .course-hero-divider {
  display: none;
}

.refined-course-page .course-purchase-path-grid {
  border-bottom: 0;
}

.refined-course-page .course-certification-outcome {
  padding-inline: 0;
  border-right: 0;
  border-left: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.refined-course-page .course-outcome-list {
  max-width: 48rem;
  margin-top: 1.25rem;
  border-top: 1px solid var(--site-line);
}

.refined-course-page .course-outcome-row {
  display: grid;
  grid-template-columns: 1.5rem minmax(0, 1fr);
  gap: 0.85rem;
  align-items: start;
  padding: 1rem 0;
}

.refined-course-page .course-outcome-row + .course-outcome-row {
  border-top: 1px solid var(--site-line);
}

.refined-course-page .course-outcome-row > svg {
  width: 1.35rem;
  height: 1.35rem;
  margin-top: 0.1rem;
  color: var(--site-blue);
  stroke-width: 1.8;
}

.refined-course-page .course-outcome-row > div {
  display: grid;
  gap: 0.22rem;
  min-width: 0;
}

.refined-course-page .course-outcome-row span {
  color: var(--site-cool);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.refined-course-page .course-outcome-row p {
  margin: 0;
  color: var(--site-body);
  font-size: 1rem;
  line-height: 1.55;
}

.refined-course-page .popular-registration-panel h2 {
  margin-bottom: 0.9rem;
}

.refined-course-page .popular-registration-panel dd {
  max-width: none;
}

.refined-course-page .course-purchase-online-requirement {
  color: var(--site-muted);
}

.refined-course-page .course-two-column-list.is-single {
  grid-template-columns: minmax(0, 1fr);
}

.refined-course-page .course-two-column-list.is-single > div {
  max-width: 44rem;
}

@media (max-width: 760px) {
  .refined-course-page .course-outcome-list {
    max-width: none;
  }

  .refined-course-page .course-purchase-online-requirement {
    width: 100%;
  }
}
/* Blog posts share the original public article template. */
.blog-draft-banner { padding: 10px 24px; background: #fff1d4; color: #614914; text-align: center; font-size: 14px; }
.blog-post-document img { max-width: 100%; height: auto; }
.blog-document-without-nav { display: block; max-width: 960px; }
.blog-author { font-size: 14px; }

.nwsi-home-root {
  --vd-ink: #123554;
  --vd-body: #5e6f7f;
  --vd-line: #dfe7ee;
  --vd-soft: #f4f7fa;
  --vd-warm: var(--surface-warm);
  --vd-orange: var(--secondary-container);
  --vd-cool: #3f6f91;
  --vd-cool-soft: #e8f0f6;
  color: var(--vd-body);
  background: var(--surface-white);
}

.nwsi-home-container {
  width: min(1280px, calc(100% - 64px));
  margin: 0 auto;
}

.nwsi-home-discoveryRail {
  position: relative;
  z-index: 36;
  border-bottom: 1px solid var(--vd-line);
  background: rgba(255, 255, 255, 0.96);
}

.nwsi-home-discoveryRail .taxonomy-bar-shell {
  padding: 0 2rem;
  border: 0;
  background: transparent;
}

.nwsi-home-discoveryRail .taxonomy-browser {
  width: min(760px, 100%);
}

.nwsi-home-discoveryRail .taxonomy-browser-menu + .taxonomy-browser-menu {
  border-left-color: var(--vd-line);
}

.nwsi-home-discoveryRail .taxonomy-browser-trigger {
  min-height: 56px;
  padding: 0.65rem 2.75rem 0.65rem 1.25rem;
}

.nwsi-home-discoveryRail .taxonomy-browser-trigger:hover,
.nwsi-home-discoveryRail .taxonomy-browser-trigger:focus-visible,
.nwsi-home-discoveryRail .taxonomy-browser-menu.is-open .taxonomy-browser-trigger {
  background: var(--vd-soft);
}

.nwsi-home-discoveryRail .taxonomy-browser-menu.is-open .taxonomy-browser-trigger {
  box-shadow: none;
}

.nwsi-home-discoveryRail .taxonomy-browser-trigger-label {
  color: var(--vd-cool);
  font-weight: 600;
}

.nwsi-home-discoveryRail .taxonomy-browser-trigger-value {
  color: var(--vd-ink);
  font-family: var(--font-body);
  font-size: 0.84rem;
  font-weight: 500;
}

.nwsi-home-discoveryRail .taxonomy-browser-panel {
  top: calc(100% + 0.5rem);
  padding: 0.7rem;
  border-color: var(--vd-line);
  border-radius: 12px;
  box-shadow: 0 22px 60px rgba(18, 53, 84, 0.13);
  transform-origin: top center;
  animation: menu-reveal 160ms cubic-bezier(0.22, 1, 0.36, 1);
}

.nwsi-home-discoveryRail .taxonomy-browser-link {
  border-radius: 7px;
}

.nwsi-home-discoveryRail .taxonomy-browser-link.is-active {
  box-shadow: none;
}

.nwsi-home-discoveryRail .taxonomy-browser-link:hover,
.nwsi-home-discoveryRail .taxonomy-browser-link:focus-visible,
.nwsi-home-discoveryRail .taxonomy-browser-link.is-active {
  background: var(--vd-soft);
}

.nwsi-home-discoveryRail .taxonomy-browser-link:hover .taxonomy-browser-link-icon,
.nwsi-home-discoveryRail .taxonomy-browser-link:focus-visible .taxonomy-browser-link-icon,
.nwsi-home-discoveryRail .taxonomy-browser-link.is-active .taxonomy-browser-link-icon {
  color: var(--vd-cool);
}

.nwsi-home-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  min-height: clamp(600px, 48vw, 680px);
  align-items: center;
  padding: clamp(4.5rem, 7vw, 6.5rem) 0;
  overflow: hidden;
  background: var(--vd-ink);
}

.nwsi-home-hero::after {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(3, 27, 50, 0.92) 0%,
    rgba(3, 27, 50, 0.82) 38%,
    rgba(3, 27, 50, 0.4) 68%,
    rgba(3, 27, 50, 0.18) 100%
  );
  content: "";
}

.nwsi-home-heroPicture {
  position: absolute;
  z-index: -2;
  inset: 0;
}

.nwsi-home-heroBackdrop {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.nwsi-home-heroGrid {
  min-height: 0;
}

.nwsi-home-heroCopy {
  max-width: min(640px, 52vw);
}

.nwsi-home-eyebrow {
  margin: 0 0 1rem;
  color: var(--vd-cool);
  font-family: var(--font-body);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  line-height: 1.2;
  text-transform: uppercase;
}

.nwsi-home-hero .nwsi-home-eyebrow {
  color: #a9d5f0;
}

.nwsi-home-hero h1 {
  margin: 0;
  color: var(--surface-white);
  font-family: var(--font-display);
  font-size: clamp(3.25rem, 4.15vw, 3.85rem);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1;
  text-shadow: 0 2px 18px rgba(0, 19, 38, 0.3);
  text-wrap: balance;
}

.nwsi-home-hero h1 > span {
  display: block;
}

.nwsi-home-noBreak {
  white-space: nowrap;
}

.nwsi-home-heroLead {
  max-width: 560px;
  margin: 1.5rem 0 0;
  color: rgba(255, 255, 255, 0.9);
  font-size: clamp(1rem, 1.35vw, 1.18rem);
  line-height: 1.6;
  text-shadow: 0 1px 10px rgba(0, 19, 38, 0.32);
  text-wrap: pretty;
}

.nwsi-home-heroActions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  margin-top: 2rem;
}

.nwsi-home-heroActions .button {
  min-height: 50px;
  border-radius: 6px;
}

.nwsi-home-heroActions .button svg {
  width: 17px;
  height: 17px;
  transition: transform 160ms ease;
}

.nwsi-home-heroActions .button:hover svg {
  transform: translateX(3px);
}

.nwsi-home-heroTextLink {
  display: inline-flex;
  gap: 0.45rem;
  align-items: center;
  margin-top: 1.25rem;
  color: var(--surface-white);
  font-size: 0.86rem;
  font-weight: 600;
  text-decoration: none;
  transition: color 160ms ease;
}

.nwsi-home-heroTextLink svg {
  width: 15px;
  height: 15px;
  transition: transform 160ms ease;
}

.nwsi-home-heroTextLink:hover svg {
  transform: translateX(3px);
}

.nwsi-home-heroTextLink:hover {
  color: #c8e4f7;
}

.nwsi-home-partnerStrip {
  padding: 0;
  border-top: 1px solid var(--vd-line);
  border-bottom: 1px solid var(--vd-line);
  background: var(--surface-white);
}

.nwsi-home-partnerStrip .nwsi-home-container {
  display: block;
}

.nwsi-home-partnerRail {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 2.5rem;
  align-items: center;
  padding: 1.65rem 0;
}

.nwsi-home-partnerRail > p {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.45;
  text-transform: uppercase;
}

.nwsi-home-partnerViewport {
  min-width: 0;
  overflow: hidden;
  mask-image: linear-gradient(
    to right,
    transparent,
    black 5%,
    black 95%,
    transparent
  );
  -webkit-mask-image: linear-gradient(
    to right,
    transparent,
    black 5%,
    black 95%,
    transparent
  );
}

.nwsi-home-partnerTrack {
  --partner-gap: 3.5rem;
  display: flex;
  width: max-content;
  gap: 0;
  animation: partner-marquee 36s linear infinite;
  will-change: transform;
}

.nwsi-home-partnerViewport:hover .nwsi-home-partnerTrack,
.nwsi-home-partnerViewport:focus-within .nwsi-home-partnerTrack {
  animation-play-state: paused;
}

.nwsi-home-partnerGroup {
  display: flex;
  gap: var(--partner-gap);
  align-items: center;
  flex: 0 0 auto;
  padding-right: var(--partner-gap);
}

.nwsi-home-partnerStrip img {
  width: 130px;
  height: 42px;
  flex: 0 0 130px;
  object-fit: contain;
  filter: grayscale(1);
  opacity: 0.74;
}

@keyframes partner-marquee {
  to {
    transform: translateX(-50%);
  }
}

@keyframes menu-reveal {
  from {
    opacity: 0;
    transform: translateY(-6px) scale(0.99);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.nwsi-home-section,
.nwsi-home-categorySection,
.nwsi-home-credibilitySection {
  padding: clamp(5.25rem, 7vw, 7rem) 0;
}

.nwsi-home-sectionHeader {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(2rem, 4vw, 4rem);
  align-items: end;
  margin-bottom: 2.75rem;
}

.nwsi-home-sectionHeaderAction {
  align-self: end;
  justify-self: end;
  margin-bottom: 0.2rem;
  white-space: nowrap;
}

.nwsi-home-sectionHeader h2,
.nwsi-home-centeredHeader h2,
.nwsi-home-credibilityIntro h2,
.nwsi-home-finalCta h2 {
  max-width: 780px;
  margin: 0;
  color: var(--vd-ink);
  font-family: var(--font-body);
  font-size: clamp(2.1rem, 3vw, 3.05rem);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.1;
  text-wrap: balance;
}

.nwsi-home-sectionHeader > p,
.nwsi-home-sectionHeader > div:last-child p {
  max-width: 440px;
  margin: 0 0 1rem;
  color: var(--text-muted);
  font-size: 1rem;
  line-height: 1.6;
  text-wrap: pretty;
}

.nwsi-home-textLink {
  display: inline-flex;
  gap: 0.45rem;
  align-items: center;
  color: var(--vd-ink);
  font-size: 0.88rem;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 0.22rem;
  transition: color 160ms ease, text-decoration-color 160ms ease;
}

.nwsi-home-textLink svg {
  width: 16px;
  height: 16px;
  transition: transform 160ms ease;
}

.nwsi-home-textLink:hover svg {
  transform: translateX(3px);
}

.nwsi-home-textLink:hover {
  text-decoration-color: currentColor;
}

.nwsi-home-courseGrid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
}

.nwsi-home-courseCard {
  display: grid;
  grid-template-rows: 232px minmax(0, 1fr);
  min-height: 510px;
  overflow: hidden;
  border: 1px solid var(--vd-line);
  border-radius: 12px;
  background: var(--surface-white);
  box-shadow: 0 8px 24px rgba(18, 53, 84, 0.035);
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.nwsi-home-courseCard:hover,
.nwsi-home-courseCard:focus-within {
  border-color: #cbd8e2;
  box-shadow: 0 18px 44px rgba(18, 53, 84, 0.09);
}

.nwsi-home-courseCard:hover {
  transform: translateY(-2px);
}

.nwsi-home-courseImage {
  position: relative;
  overflow: hidden;
  background: var(--vd-soft);
}

.nwsi-home-courseImage img {
  object-fit: cover;
}

.nwsi-home-courseImage span {
  position: absolute;
  top: 1rem;
  left: 1rem;
  padding: 0.38rem 0.6rem;
  border-radius: 6px;
  color: var(--vd-cool);
  background: rgba(255, 255, 255, 0.94);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.nwsi-home-courseBody {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto auto;
  gap: 1.15rem;
  padding: 1.4rem 1.5rem 1.5rem;
}

.nwsi-home-courseHeading h3 {
  min-height: 3.2rem;
  margin: 0;
  color: var(--vd-ink);
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.18;
}

.nwsi-home-courseHeading h3 a {
  transition: color 160ms ease;
}

.nwsi-home-courseHeading h3 a:hover {
  color: var(--vd-cool);
}

.nwsi-home-courseHeading p {
  display: -webkit-box;
  min-height: 3rem;
  margin: 0.65rem 0 0;
  overflow: hidden;
  color: var(--text-muted);
  font-size: 0.88rem;
  line-height: 1.55;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.nwsi-home-courseMeta {
  display: flex;
  gap: 1rem;
  align-items: baseline;
  justify-content: space-between;
  padding-top: 0.9rem;
  border-top: 1px solid var(--vd-line);
}

.nwsi-home-courseMeta strong {
  color: var(--vd-ink);
  font-size: 1rem;
  font-weight: 600;
}

.nwsi-home-courseMeta span {
  color: var(--text-muted);
  font-size: 0.78rem;
  text-align: right;
}

.nwsi-home-courseActions {
  display: flex;
  gap: 0.85rem;
  align-items: center;
  min-height: 48px;
}

.nwsi-home-courseActions .course-session-action {
  flex: 0 0 auto;
}

.nwsi-home-courseActions .button {
  min-height: 44px;
  padding: 0.7rem 1rem;
  border-radius: 5px;
  font-size: 0.8rem;
}

.nwsi-home-courseActions .nwsi-home-textLink {
  margin-left: auto;
  white-space: nowrap;
}

.nwsi-home-audienceSection {
  padding: clamp(5.25rem, 7vw, 7rem) 0;
  background: var(--vd-soft);
}

.nwsi-home-centeredHeader {
  max-width: 800px;
  margin: 0 auto 3rem;
  text-align: center;
}

.nwsi-home-centeredHeader h2 {
  margin-right: auto;
  margin-left: auto;
}

.nwsi-home-audienceGrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--vd-line);
  border-radius: 12px;
  box-shadow: 0 18px 44px rgba(18, 53, 84, 0.08);
}

.nwsi-home-audienceGrid article {
  display: flex;
  min-height: 390px;
  padding: clamp(2rem, 4vw, 3.5rem);
  flex-direction: column;
  align-items: flex-start;
}

.nwsi-home-audienceKicker {
  display: inline-flex;
  gap: 0.65rem;
  align-items: center;
  margin-bottom: 1.5rem;
}

.nwsi-home-audienceKicker svg {
  width: 22px;
  height: 22px;
  stroke-width: 1.6;
}

.nwsi-home-audienceKicker p {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.nwsi-home-audienceGrid h3 {
  max-width: 480px;
  margin: 0;
  font-family: var(--font-body);
  font-size: clamp(1.85rem, 2.5vw, 2.45rem);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.08;
}

.nwsi-home-audienceGrid ul {
  display: grid;
  gap: 0.75rem;
  margin: 1.8rem 0 2.35rem;
  padding: 0;
  list-style: none;
}

.nwsi-home-audienceGrid li {
  position: relative;
  margin: 0;
  padding-left: 1.35rem;
  font-size: 0.92rem;
}

.nwsi-home-audienceGrid li::before {
  content: "";
  position: absolute;
  top: 0.55em;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--vd-cool);
}

.nwsi-home-audienceGrid .button {
  margin-top: auto;
  border-radius: 5px;
}

.nwsi-home-individualPanel {
  color: var(--vd-ink);
  background: var(--surface-warm);
}

.nwsi-home-individualPanel .nwsi-home-audienceKicker {
  color: var(--secondary-container);
}

.nwsi-home-individualPanel h3 {
  color: var(--vd-ink);
}

.nwsi-home-employerPanel {
  color: var(--on-primary);
  background: var(--primary);
}

.nwsi-home-employerPanel .nwsi-home-audienceKicker {
  color: var(--accent-amber);
}

.nwsi-home-employerPanel .nwsi-home-audienceKicker p {
  color: inherit;
}

.nwsi-home-employerPanel h3,
.nwsi-home-employerPanel li {
  color: var(--on-primary);
}

.nwsi-home-employerPanel li::before {
  background: var(--accent-amber);
}

.nwsi-home-categorySection {
  background: var(--surface-white);
}

.nwsi-home-categoryGrid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.nwsi-home-categoryItem {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: 1fr auto;
  gap: 1.25rem;
  min-height: 188px;
  padding: 1.6rem;
  overflow: hidden;
  border: 1px solid var(--vd-line);
  border-radius: 12px;
  background: var(--surface-white);
  box-shadow: 0 10px 28px rgba(18, 53, 84, 0.035);
  transition: border-color 180ms ease, box-shadow 180ms ease,
    transform 180ms ease;
}

.nwsi-home-categoryMarker {
  display: inline-flex;
  grid-column: 1;
  grid-row: 1;
  align-self: start;
  color: var(--vd-cool);
}

.nwsi-home-categoryMarker svg {
  width: 24px;
  height: 24px;
  stroke-width: 1.55;
}

.nwsi-home-categoryCopy {
  display: grid;
  grid-column: 1 / -1;
  grid-row: 2;
  align-self: end;
  gap: 0.35rem;
}

.nwsi-home-categoryItem strong {
  color: var(--vd-ink);
  font-family: var(--font-body);
  font-size: 1.05rem;
  font-weight: 600;
}

.nwsi-home-categoryItem small {
  color: var(--text-muted);
  font-size: 0.82rem;
  line-height: 1.45;
}

.nwsi-home-categoryItem > svg {
  grid-column: 2;
  grid-row: 1;
  width: 18px;
  height: 18px;
  color: var(--vd-cool);
  transition: transform 160ms ease;
}

.nwsi-home-categoryItem:hover,
.nwsi-home-categoryItem:focus-visible {
  border-color: #cbd8e2;
  box-shadow: 0 18px 42px rgba(18, 53, 84, 0.08);
  outline: none;
}

.nwsi-home-categoryItem:hover {
  transform: translateY(-2px);
}

.nwsi-home-categoryItem:hover > svg,
.nwsi-home-categoryItem:focus-visible > svg {
  transform: translateX(4px);
}

.nwsi-home-credibilitySection {
  background: var(--vd-soft);
}

.nwsi-home-credibilityGrid {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.1fr);
  gap: clamp(4rem, 7vw, 7rem);
  align-items: start;
  padding: clamp(3.25rem, 5vw, 5rem);
  overflow: hidden;
  border-radius: 14px;
  color: var(--on-primary);
  background: var(--primary);
  box-shadow: 0 24px 60px rgba(0, 32, 70, 0.12);
}

.nwsi-home-credibilityIntro {
  position: static;
}

.nwsi-home-credibilityIntro .nwsi-home-eyebrow {
  color: var(--accent-amber);
}

.nwsi-home-credibilityIntro h2 {
  color: var(--on-primary);
}

.nwsi-home-credibilityIntro > p:not(.nwsi-home-eyebrow) {
  max-width: 580px;
  margin: 1.5rem 0 2rem;
  color: rgba(255, 255, 255, 0.76);
  line-height: 1.7;
}

.nwsi-home-credibilityIntro .button {
  border-radius: 5px;
  color: var(--primary);
  border-color: var(--surface-white);
  background: var(--surface-white);
}

.nwsi-home-proofList {
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.nwsi-home-proofList article {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 1.5rem;
  padding: 1.75rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.nwsi-home-proofList article > span {
  display: inline-flex;
  margin-top: 0.15rem;
  color: var(--accent-amber);
  font-family: var(--font-display);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.06em;
}

.nwsi-home-proofList h3 {
  margin: 0;
  color: var(--on-primary);
  font-family: var(--font-body);
  font-size: 1.08rem;
  font-weight: 600;
}

.nwsi-home-proofList p {
  margin: 0.45rem 0 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.9rem;
  line-height: 1.6;
}

.nwsi-home-finalCta {
  padding: clamp(4.5rem, 6vw, 6rem) 0;
  border-top: 1px solid var(--surface-warm-line);
  background: var(--surface-warm);
}

.nwsi-home-finalCta .nwsi-home-container {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.7fr);
  gap: 5rem;
  align-items: center;
}

.nwsi-home-finalCta .nwsi-home-container > div:last-child > p {
  margin: 0 0 1.5rem;
  color: var(--text-muted);
  line-height: 1.65;
}

.nwsi-home-finalActions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.nwsi-home-finalSupportLinks {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1.25rem;
  margin-top: 1.35rem;
}

.nwsi-home-finalSupportLinks a {
  color: var(--vd-body);
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--surface-warm-line);
  text-underline-offset: 0.25rem;
  transition: color 160ms ease, text-decoration-color 160ms ease;
}

.nwsi-home-finalSupportLinks a:hover {
  color: var(--vd-ink);
  text-decoration-color: currentColor;
}

.nwsi-home-finalCta .button {
  border-radius: 5px;
}

.site-shell:has(.nwsi-home-root) {
  background: var(--surface-white);
}

.site-shell:has(.nwsi-home-root) .site-footer {
  margin-top: 0;
}

.nwsi-home-heroTextLink:focus-visible,
.nwsi-home-textLink:focus-visible,
.nwsi-home-courseImage:focus-visible,
.nwsi-home-courseHeading a:focus-visible,
.nwsi-home-finalSupportLinks a:focus-visible {
  border-radius: 3px;
  outline: 2px solid var(--vd-cool);
  outline-offset: 3px;
}

.nwsi-home-courseImage:focus-visible {
  outline-offset: -4px;
}
@media (max-width: 1100px) {
  .nwsi-home-container {
    width: min(calc(100% - 40px), 960px);
  }

  .nwsi-home-hero h1 {
    font-size: clamp(3.15rem, 5vw, 3.65rem);
  }

  .nwsi-home-partnerRail {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .nwsi-home-courseGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nwsi-home-categoryGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nwsi-home-sectionHeader {
    gap: 3rem;
  }
}

@media (max-width: 980px) {
  .nwsi-home-hero::after {
    background: rgba(3, 27, 50, 0.58);
  }

  .nwsi-home-heroBackdrop {
    object-position: 56% center;
  }

  .nwsi-home-heroCopy {
    max-width: 680px;
  }
}

@media (max-width: 760px) {
  .nwsi-home-discoveryRail .taxonomy-bar-shell {
    padding: 0;
  }

  .nwsi-home-discoveryRail .taxonomy-browser-trigger {
    min-height: 56px;
    padding: 0.7rem 2rem 0.7rem 1rem;
  }

  .nwsi-home-discoveryRail .taxonomy-browser-trigger-label {
    color: var(--vd-ink);
    font-family: var(--font-body);
    font-size: 0.72rem;
    font-weight: 600;
    white-space: nowrap;
  }

  .nwsi-home-discoveryRail .taxonomy-browser-trigger-value {
    display: none;
  }

  .nwsi-home-discoveryRail .taxonomy-browser-trigger::after {
    right: 1rem;
  }

  .nwsi-home-container {
    width: min(calc(100% - 32px), 680px);
  }

  .nwsi-home-hero {
    min-height: 0;
    padding-top: 3rem;
    padding-bottom: 3.25rem;
  }

  .nwsi-home-hero::after {
    background: rgba(3, 27, 50, 0.54);
  }

  .nwsi-home-heroGrid {
    min-height: 0;
  }

  .nwsi-home-heroCopy {
    max-width: none;
    padding-bottom: 0;
  }

  .nwsi-home-hero h1 {
    font-size: clamp(2.5rem, 10.6vw, 3rem);
    line-height: 1.03;
  }

  .nwsi-home-hero h1 > span {
    display: block;
  }

  .nwsi-home-noBreak {
    white-space: nowrap;
  }

  .nwsi-home-hero .nwsi-home-eyebrow {
    max-width: 31ch;
    font-size: 0.7rem;
    line-height: 1.45;
  }

  .nwsi-home-heroLead {
    font-size: 1rem;
    line-height: 1.55;
  }

  .nwsi-home-heroActions {
    gap: 0.65rem;
    align-items: stretch;
    flex-direction: column;
    margin-top: 1.7rem;
  }

  .nwsi-home-heroActions .button {
    width: 100%;
  }

  .nwsi-home-heroTextLink {
    align-items: flex-start;
    justify-content: flex-start;
    margin-top: 1.1rem;
    line-height: 1.45;
    text-align: left;
  }

  .nwsi-home-partnerStrip img {
    width: 112px;
    height: 38px;
    flex-basis: 112px;
  }

  .nwsi-home-partnerTrack {
    --partner-gap: 2.5rem;
  }

  .nwsi-home-partnerRail {
    gap: 1.15rem;
    padding: 1.4rem 0;
  }

  .nwsi-home-section,
  .nwsi-home-categorySection,
  .nwsi-home-credibilitySection,
  .nwsi-home-audienceSection,
  .nwsi-home-finalCta {
    padding: 4rem 0;
  }

  .nwsi-home-sectionHeader,
  .nwsi-home-finalCta .nwsi-home-container {
    grid-template-columns: 1fr;
    gap: 1.3rem;
    align-items: start;
  }

  .nwsi-home-sectionHeaderAction {
    justify-self: start;
    margin-bottom: 0;
  }

  .nwsi-home-sectionHeader h2,
  .nwsi-home-centeredHeader h2,
  .nwsi-home-credibilityIntro h2,
  .nwsi-home-finalCta h2 {
    font-size: clamp(2rem, 9vw, 2.65rem);
  }

  .nwsi-home-audienceGrid,
  .nwsi-home-categoryGrid,
  .nwsi-home-credibilityGrid {
    grid-template-columns: 1fr;
  }

  .nwsi-home-centeredHeader {
    margin-bottom: 2rem;
  }

  .nwsi-home-courseGrid {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: min(82vw, 330px);
    gap: 1rem;
    margin-right: -16px;
    padding: 0 16px 1rem 0;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline mandatory;
    scrollbar-width: thin;
    scrollbar-color: var(--outline-variant) transparent;
  }

  .nwsi-home-courseCard {
    grid-template-rows: 220px minmax(0, 1fr);
    min-height: 495px;
    scroll-snap-align: start;
  }

  .nwsi-home-courseHeading h3,
  .nwsi-home-courseHeading p {
    min-height: 0;
  }

  .nwsi-home-audienceGrid article {
    min-height: 0;
    padding: 2rem;
  }

  .nwsi-home-audienceGrid article + article {
    border-top: 1px solid rgba(255, 255, 255, 0.14);
  }

  .nwsi-home-audienceGrid ul {
    margin: 1.5rem 0 2rem;
  }

  .nwsi-home-categoryItem,
  .nwsi-home-categoryItem:nth-child(odd),
  .nwsi-home-categoryItem:nth-child(even) {
    grid-template-columns: 28px minmax(0, 1fr) auto;
    grid-template-rows: auto;
    gap: 0.85rem;
    min-height: 0;
    padding: 1.15rem 0;
    border: 0;
    border-bottom: 1px solid var(--vd-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .nwsi-home-categoryGrid {
    gap: 0;
    border-top: 1px solid var(--vd-line);
  }

  .nwsi-home-categoryItem:hover {
    border-color: var(--vd-line);
    box-shadow: none;
    transform: none;
  }

  .nwsi-home-categoryItem:focus-visible {
    border-color: var(--vd-cool);
    box-shadow: none;
  }

  .nwsi-home-categoryMarker,
  .nwsi-home-categoryCopy,
  .nwsi-home-categoryItem > svg {
    grid-row: 1;
    align-self: center;
  }

  .nwsi-home-categoryMarker {
    grid-column: 1;
  }

  .nwsi-home-categoryMarker svg {
    width: 20px;
    height: 20px;
  }

  .nwsi-home-categoryCopy {
    grid-column: 2;
  }

  .nwsi-home-categoryCopy small {
    display: none;
  }

  .nwsi-home-categoryItem > svg {
    grid-column: 3;
  }

  .nwsi-home-credibilityGrid {
    gap: 2.25rem;
    padding: 2.25rem 1.5rem;
    border-radius: 10px;
  }

  .nwsi-home-credibilityIntro > p:not(.nwsi-home-eyebrow) {
    margin: 1.1rem 0 1.5rem;
  }

  .nwsi-home-proofList article {
    gap: 1rem;
    padding: 1.25rem 0;
  }

  .nwsi-home-proofList p {
    margin-top: 0.3rem;
    line-height: 1.5;
  }

  .nwsi-home-finalSupportLinks {
    margin-top: 1.1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nwsi-home-partnerTrack {
    animation: none;
    width: 100%;
  }

  .nwsi-home-partnerViewport {
    overflow: visible;
    mask-image: none;
    -webkit-mask-image: none;
  }

  .nwsi-home-partnerGroup:not([aria-hidden=true]) {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 1rem;
    padding-right: 0;
  }

  .nwsi-home-partnerGroup:not([aria-hidden=true]) img {
    width: min(100%, 82px);
    height: 36px;
    flex-basis: auto;
    justify-self: center;
  }

  .nwsi-home-partnerGroup[aria-hidden=true] {
    display: none;
  }

  .nwsi-home-root *,
  .nwsi-home-root *::before,
  .nwsi-home-root *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }

  .nwsi-home-discoveryRail .taxonomy-browser-panel {
    animation: none;
  }
}

@media (prefers-reduced-motion: reduce) and (max-width: 1100px) {
  .nwsi-home-partnerGroup:not([aria-hidden=true]) {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 1rem 1.5rem;
  }
}

@media (prefers-reduced-motion: reduce) and (max-width: 760px) {
  .nwsi-home-partnerGroup:not([aria-hidden=true]) {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
  }
}

@media (hover: none) {
  .nwsi-home-courseCard:hover,
  .nwsi-home-categoryItem:hover {
    box-shadow: 0 8px 24px rgba(18, 53, 84, 0.035);
    transform: none;
  }
}

/* Homepage meeting refinements: direct rail, promoted course tier, and compact discovery. */
.nwsi-home-discoveryRail {
  border-bottom: 0;
  background: var(--surface-white);
}

.nwsi-home-flagshipGrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

.nwsi-home-promotedCourseCard {
  grid-template-columns: minmax(215px, 0.78fr) minmax(0, 1.22fr);
  grid-template-rows: minmax(340px, auto);
  min-height: 0;
}

.nwsi-home-promotedCourseCard .nwsi-home-courseImage {
  min-height: 0;
  align-self: stretch;
}

.nwsi-home-promotedCourseCard .nwsi-home-courseBody {
  padding: 1.5rem;
}

.nwsi-home-promotedCourseCard .nwsi-home-courseHeading h3,
.nwsi-home-promotedCourseCard .nwsi-home-courseHeading p {
  min-height: 0;
}

.nwsi-home-courseTitleRow {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.85rem;
  align-items: start;
}

.nwsi-home-coursePrice {
  padding-top: 0.1rem;
  color: var(--vd-ink);
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  text-align: right;
  white-space: nowrap;
}

.nwsi-home-courseTags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-content: flex-start;
}

.nwsi-home-courseTags span {
  display: inline-flex;
  min-height: 27px;
  padding: 0.38rem 0.55rem;
  align-items: center;
  border: 1px solid var(--vd-line);
  border-radius: 5px;
  color: var(--vd-ink);
  background: var(--vd-soft);
  font-size: 0.7rem;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
}

.nwsi-home-courseActions {
  align-items: stretch;
}

.nwsi-home-courseActions > .button,
.nwsi-home-courseActions > .course-session-action {
  min-width: 0;
  flex: 1 1 0;
}

.nwsi-home-courseActions > .button,
.nwsi-home-courseActions > [data-nwsi-widget] > .course-session-action {
  min-width: 0;
  flex: 1 1 0;
}

.nwsi-home-courseActions .course-session-action > .button,
.nwsi-home-courseActions > .button {
  width: 100%;
  min-height: 44px;
  justify-content: center;
  white-space: nowrap;
}

.nwsi-home-courseActions > .button.secondary {
  border-color: var(--primary);
  color: var(--primary);
  background: var(--surface-white);
}

.nwsi-home-courseActions > .button.secondary:hover,
.nwsi-home-courseActions > .button.secondary:focus-visible {
  color: var(--on-primary);
  background: var(--primary);
}

.nwsi-home-courseActions > .button.secondary svg {
  width: 15px;
  height: 15px;
  transition: transform 160ms ease;
}

.nwsi-home-courseActions > .button.secondary:hover svg,
.nwsi-home-courseActions > .button.secondary:focus-visible svg {
  transform: translateX(3px);
}

.nwsi-home-categoryItem {
  grid-template-columns: 30px minmax(0, 1fr) auto;
  grid-template-rows: auto;
  gap: 0.9rem;
  min-height: 126px;
  padding: 1.35rem;
  align-items: start;
}

.nwsi-home-categoryMarker {
  grid-column: 1;
  grid-row: 1;
  margin-top: 0.05rem;
}

.nwsi-home-categoryCopy {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
  gap: 0.4rem;
}

.nwsi-home-categoryItem > svg {
  grid-column: 3;
  grid-row: 1;
  align-self: center;
  margin-top: 0;
}

.nwsi-home-quoteSection {
  padding: clamp(4.5rem, 6vw, 6rem) 0;
  color: var(--on-primary);
  background: var(--primary);
}

.nwsi-home-quoteLayout {
  display: grid;
  grid-template-columns: minmax(300px, 0.8fr) minmax(0, 1.2fr);
  gap: clamp(3rem, 6vw, 6rem);
  align-items: center;
}

.nwsi-home-quoteIntro .nwsi-home-eyebrow {
  color: var(--accent-amber);
}

.nwsi-home-quoteIntro h2 {
  margin: 0;
  color: var(--on-primary);
  font-family: var(--font-body);
  font-size: clamp(2.1rem, 3vw, 3rem);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.08;
}

.nwsi-home-quoteIntro > p:not(.nwsi-home-eyebrow) {
  max-width: 530px;
  margin: 1.15rem 0 1.75rem;
  color: rgba(255, 255, 255, 0.76);
  line-height: 1.65;
}

.nwsi-home-quoteIntro .button {
  border-radius: 5px;
}

.nwsi-home-quoteSteps {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  list-style: none;
}

.nwsi-home-quoteSteps li {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 0.85rem;
  min-height: 96px;
  padding: 1.25rem 1rem 1.25rem 0;
  align-items: start;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.nwsi-home-quoteSteps li:nth-child(odd) {
  padding-right: 1.5rem;
}

.nwsi-home-quoteSteps li:nth-child(even) {
  padding-left: 1.5rem;
  border-left: 1px solid rgba(255, 255, 255, 0.2);
}

.nwsi-home-quoteSteps span {
  color: var(--accent-amber);
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 600;
}

.nwsi-home-quoteSteps strong {
  color: var(--on-primary);
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.45;
}

.nwsi-home-proofList article {
  grid-template-columns: 70px minmax(0, 1fr);
  gap: 1.25rem;
}

.nwsi-home-proofList article > span {
  margin-top: -0.15rem;
  font-size: clamp(2rem, 2.8vw, 2.65rem);
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1;
}

@media (max-width: 1100px) {
  .nwsi-home-courseGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nwsi-home-promotedCourseCard {
    grid-template-columns: minmax(190px, 0.72fr) minmax(0, 1.28fr);
  }
}

@media (max-width: 900px) {
  .nwsi-home-flagshipGrid,
  .nwsi-home-quoteLayout {
    grid-template-columns: 1fr;
  }

  .nwsi-home-promotedCourseCard {
    grid-template-columns: minmax(230px, 0.72fr) minmax(0, 1.28fr);
    min-height: 320px;
  }

  .nwsi-home-quoteLayout {
    gap: 2.75rem;
  }
}

@media (max-width: 760px) {
  .nwsi-home-flagshipGrid {
    gap: 1rem;
  }

  .nwsi-home-promotedCourseCard {
    grid-template-columns: 1fr;
    grid-template-rows: 220px minmax(0, 1fr);
    min-height: 0;
  }

  .nwsi-home-promotedCourseCard .nwsi-home-courseImage {
    min-height: 0;
  }

  .nwsi-home-courseGrid {
    grid-template-columns: none;
  }

  .nwsi-home-categoryItem,
  .nwsi-home-categoryItem:nth-child(odd),
  .nwsi-home-categoryItem:nth-child(even) {
    grid-template-columns: 30px minmax(0, 1fr) auto;
    min-height: 0;
    padding: 1.15rem 0;
  }

  .nwsi-home-categoryMarker,
  .nwsi-home-categoryCopy,
  .nwsi-home-categoryItem > svg {
    grid-row: 1;
  }

  .nwsi-home-categoryMarker {
    grid-column: 1;
  }

  .nwsi-home-categoryCopy {
    grid-column: 2;
  }

  .nwsi-home-categoryItem > svg {
    grid-column: 3;
  }

  .nwsi-home-quoteSection {
    padding: 4rem 0;
  }

  .nwsi-home-quoteSteps li {
    min-height: 88px;
  }

  .nwsi-home-proofList article {
    grid-template-columns: 58px minmax(0, 1fr);
  }
}

@media (max-width: 520px) {
  .nwsi-home-courseTitleRow {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }

  .nwsi-home-coursePrice {
    text-align: left;
  }

  .nwsi-home-courseActions {
    flex-direction: column;
  }

  .nwsi-home-quoteSteps {
    grid-template-columns: 1fr;
  }

  .nwsi-home-quoteSteps li,
  .nwsi-home-quoteSteps li:nth-child(odd),
  .nwsi-home-quoteSteps li:nth-child(even) {
    min-height: 0;
    padding: 1rem 0;
    border-left: 0;
  }
}

/* Keep paired homepage course actions on identical tracks and control heights. */
.nwsi-home-courseActions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(140px, 100%), 1fr));
  gap: 0.85rem;
  align-items: start;
}

.nwsi-home-courseActions > .course-session-action,
.nwsi-home-courseActions > .button {
  width: 100%;
  min-width: 0;
}

.nwsi-home-courseActions > [data-nwsi-widget] > .course-session-action,
.nwsi-home-courseActions > .button {
  width: 100%;
  min-width: 0;
}

.nwsi-home-courseActions .course-session-action > .button,
.nwsi-home-courseActions > .button {
  width: 100%;
  height: 48px;
  min-height: 48px;
  padding-block: 0.7rem;
}

@media (max-width: 520px) {
  .nwsi-home-courseActions {
    grid-template-columns: 1fr;
  }
}

/* The promoted and standard homepage cards show their complete descriptions. */
.nwsi-home-courseHeading p,
.nwsi-home-promotedCourseCard .nwsi-home-courseHeading p {
  display: block;
  min-height: 0;
  overflow: visible;
  -webkit-box-orient: initial;
  -webkit-line-clamp: unset;
}

/* Restore the prototype's centered employer quote sequence. */
.nwsi-home-quoteLayout {
  display: flex;
  max-width: 960px;
  flex-direction: column;
  align-items: center;
  gap: 0;
  text-align: center;
}

.nwsi-home-quoteIntro h2 {
  font-size: clamp(2.4rem, 3.5vw, 3.2rem);
}

.nwsi-home-quoteIntro > p:not(.nwsi-home-eyebrow) {
  max-width: 720px;
  margin: 1.2rem auto 3rem;
  font-size: 1.05rem;
  line-height: 1.6;
}

.nwsi-home-quoteSteps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2rem;
  width: 100%;
  margin: 0 0 2.5rem;
  padding: 0;
  border: 0;
}

.nwsi-home-quoteSteps li,
.nwsi-home-quoteSteps li:nth-child(odd),
.nwsi-home-quoteSteps li:nth-child(even) {
  display: flex;
  min-height: 0;
  padding: 0;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  border: 0;
}

.nwsi-home-quoteSteps span {
  display: inline-flex;
  width: 64px;
  height: 64px;
  flex: 0 0 64px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: var(--on-secondary);
  background: var(--secondary-container);
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 600;
}

.nwsi-home-quoteSteps strong {
  max-width: 190px;
  font-size: 1rem;
  line-height: 1.4;
  text-align: center;
}

.nwsi-home-quoteChecks {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 2rem;
  justify-content: center;
  margin: 0 0 2rem;
  padding: 0;
  color: rgba(255, 255, 255, 0.8);
  list-style: none;
}

.nwsi-home-quoteChecks li {
  display: inline-flex;
  gap: 0.6rem;
  align-items: center;
  font-size: 0.9rem;
}

.nwsi-home-quoteChecks li::before {
  content: "";
  width: 8px;
  height: 8px;
  flex: 0 0 8px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.55);
}

.nwsi-home-quoteLayout > .button {
  border-radius: 5px;
}

@media (max-width: 900px) {
  .nwsi-home-quoteSteps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.25rem 1rem;
  }
}

@media (max-width: 520px) {
  .nwsi-home-quoteIntro > p:not(.nwsi-home-eyebrow) {
    margin-bottom: 2.4rem;
  }

  .nwsi-home-quoteSteps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem 0.75rem;
  }

  .nwsi-home-quoteSteps span {
    width: 56px;
    height: 56px;
    flex-basis: 56px;
  }

  .nwsi-home-quoteSteps strong {
    font-size: 0.9rem;
  }

  .nwsi-home-quoteChecks {
    align-items: flex-start;
    flex-direction: column;
    margin-bottom: 1.75rem;
  }

  .nwsi-home-quoteLayout > .button {
    width: 100%;
  }
}

.nwsi-home-quoteSteps {
  align-items: start;
}

.nwsi-home-quoteSteps li,
.nwsi-home-quoteSteps li + li {
  margin: 0;
}

/* Why Northwest Skills proof points are independent, not numbered steps. */
.nwsi-home-proofList article {
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 1.25rem;
}

.nwsi-home-proofList article > span {
  display: inline-flex;
  width: 44px;
  height: 44px;
  margin: 0;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 9px;
  color: var(--accent-amber);
  background: rgba(255, 255, 255, 0.06);
  font-size: inherit;
  line-height: 1;
}

.nwsi-home-proofList article > span svg {
  width: 22px;
  height: 22px;
  stroke-width: 1.7;
}

@media (max-width: 760px) {
  .nwsi-home-proofList article {
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 1rem;
  }

  .nwsi-home-proofList article > span {
    width: 40px;
    height: 40px;
  }

  .nwsi-home-proofList article > span svg {
    width: 20px;
    height: 20px;
  }
}

.nwsi-home-quoteChecks li,
.nwsi-home-quoteChecks li + li {
  margin: 0;
}

.nwsi-home-quoteChecks li::before {
  display: none;
}

.nwsi-home-quoteChecks li > svg {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  color: var(--accent-amber);
  stroke-width: 2;
}

.nwsi-wp-content>p:empty{display:none}
.nwsi-new-page{width:min(1280px,calc(100% - 48px));margin:3rem auto}
.nwsi-new-page .wp-block-image img{height:auto}
.nwsi-new-page .alignwide{max-width:1280px}
.nwsi-new-page .alignfull{max-width:none}
.nwsi-preview-notice{padding:.6rem 1rem;text-align:center;background:#fff1d2;color:#573800;font-size:14px}
body.admin-bar .site-header{top:32px}
@media(max-width:782px){body.admin-bar .site-header{top:46px}}

/* The WordPress widget marker sits between the card and its React controls. */
:is(.directory-course-actions,.industry-course-actions,.gs-flagship-actions,.card-actions,.course-option-action-host):has(> [data-nwsi-widget] > .course-option-action.is-open){
 display:grid;
 grid-template-columns:minmax(0,1fr);
 width:100%;
}
:is(.directory-course-actions,.industry-course-actions,.gs-flagship-actions,.card-actions,.course-option-action-host):has(> [data-nwsi-widget] > .course-option-action.is-open)>:not([data-nwsi-widget]:has(> .course-option-action.is-open)){
 display:none;
}
