@import url('/fonts.css?v=1');
/* Sistema institucional: presentación compartida, sin lógica comercial. */
:root {
  --blue: #0057b8;
  --blue-2: #004895;
  --navy: #102d50;
  --ink: #182c43;
  --muted: #526174;
  --yellow: #ffc72c;
  --pale: #f5f7fa;
  --line: #dbe2e9;
  --shadow: 0 8px 24px rgba(16, 45, 80, .06);
  --font-ui: Poppins, sans-serif;
  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem;
  --space-6:1.5rem; --space-8:2rem; --space-12:3rem; --space-16:4rem;
  --radius-control:.625rem; --radius-card:1rem;
  --content-width:80rem; --page-gutter:clamp(1rem,3vw,3rem);
  --header-height:5rem; --motion-fast:160ms ease;
  /* Breakpoints are mirrored in media queries (CSS variables cannot drive them). */
  --breakpoint-mobile:40rem; --breakpoint-tablet:64rem; --breakpoint-nav:75rem;
}
html { scroll-padding-top:calc(var(--header-height) + 1rem); }
body { font-family:var(--font-ui); line-height:1.65; }
button,input,select,textarea { font-family:var(--font-ui); }
h1, h2, h3 { font-weight:700; letter-spacing:-.025em; text-wrap:balance; line-height:1.2; }
h1 { font-size:clamp(2rem,3.8vw,3.5rem); font-weight:800; }
h2 { font-size:clamp(1.6rem,2.6vw,2.5rem); }
h3 { font-size:1.25rem; }
p { text-wrap: pretty; }
.site-header { background: #fff; backdrop-filter: none; box-shadow: none; }
.site-header .nav-wrap { width:min(var(--content-width),calc(100% - var(--page-gutter)*2)); min-height:var(--header-height); gap:1.25rem; position:relative; }
.site-header .brand { flex-shrink:0; }
.site-header .brand-logo-official { width:166px; height:50px; border-radius:0; object-fit:contain; background:transparent; }
.site-header .nav { font-weight:600; font-size:.875rem; gap:1.125rem; }
.site-header .nav a { white-space:nowrap; padding-block:.625rem; }
.site-header .nav-cta, .btn { border-radius:var(--radius-control); box-shadow:none; font-weight:600; font-size:.9375rem; line-height:1.45; }
.btn { min-height:48px; padding:.75rem 1.25rem; max-width:100%; white-space:normal; }
.nav-cta { min-height:44px; flex-shrink:0; }
.nav .mobile-enroll { display:none; }
.eyebrow { letter-spacing: .13em; }
:where(a, button, input, select, textarea, summary):focus-visible { outline:3px solid var(--blue); outline-offset:3px; box-shadow:0 0 0 6px white; }
.promo-slide :where(a, button):focus-visible { outline-color: var(--yellow); }

/* Inicio: se conserva el carrusel y todos sus mensajes y controles. */
.home-banner-page { background: #fff; overflow: auto; }
.home-banner-page .banner-stage { height: auto; min-height: 0; padding: 20px 24px 92px; overflow: visible; }
.home-banner-page .banner-carousel { height: 600px; max-width: 1360px; border-radius: 16px; box-shadow: none; }
.home-banner-page .promo-slide { grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); padding: 90px 64px 78px; gap: 48px; background: linear-gradient(115deg, #102558 40%, #153875); }
.home-banner-page .promo-slide::before { opacity: .25; }
.home-banner-page .promo-slide h1, .home-banner-page .promo-slide h2 { font-size: clamp(2.4rem, 3.8vw, 3.65rem); font-weight:800; line-height: 1.08; letter-spacing: -.04em; }
.home-banner-page .promo-slide p { font-size: 1.08rem; line-height: 1.65; color: #e1e8f6; }
.home-banner-page .promo-kicker { font-size: .8125rem; font-weight:700; letter-spacing: .16em; }
.home-banner-page .promo-art { min-height: 350px; border-radius: 14px; border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.035); }
.home-banner-page .calendar-card { position: relative; border-radius: 14px; transform: none; box-shadow: 0 18px 36px #06163533; }
.home-banner-page .calendar-card::before { border-radius: 14px 14px 0 0; }
.home-banner-page .promo-slide .btn { box-shadow: none; }
.home-banner-page .route-stop, .home-banner-page .open-badge { border-radius: 12px; }
.home-banner-page .quality-seal-home { top: 18px; right: 24px; border-radius: 12px; }
.home-route-summary { max-width: 1240px; margin: 38px auto 0; }
.home-route-summary > h2 { margin:0 0 24px; font-size:clamp(1.9rem,3vw,2.8rem); font-weight:700; letter-spacing:-.025em; }
.home-route-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.home-route-card { display: flex; flex-direction: column; gap: 14px; padding: 26px; border: 1px solid var(--line); border-radius: 12px; background: #fff; transition: border-color .15s ease, box-shadow .15s ease; }
.home-route-card:hover { border-color: var(--blue); box-shadow: var(--shadow); }
.home-route-card > span { color: var(--blue); font-size: .875rem; font-weight:700; }
.home-route-card h3 { font-size: 1.4rem; line-height: 1.2; }
.home-route-card p { margin: 0; color: var(--muted); font-size: 1rem; line-height: 1.6; }
.home-route-card strong { margin-top: auto; padding-top: 6px; color: var(--blue); font-size: 1rem; }
@media (max-width: 1000px) {
  .home-banner-page .promo-slide { padding: 90px 48px 76px; gap: 28px; }
  .home-banner-page .promo-art { min-height: 310px; }
}
@media (max-width: 700px) {
  .site-header .nav-wrap { width: calc(100% - 28px); }
  .home-banner-page .banner-stage { padding: 12px 14px 88px; }
  .home-banner-page .banner-carousel { height: 850px; border-radius: 14px; }
  .home-banner-page .promo-slide { grid-template-columns: 1fr; grid-template-rows: auto minmax(210px, 1fr); align-content: start; align-items: center; gap: 24px; padding: 82px 24px 80px; }
  .home-banner-page .promo-slide h1, .home-banner-page .promo-slide h2 { font-size: clamp(2rem, 8.8vw, 2.6rem); }
  .home-banner-page .promo-slide p { font-size: 1rem; line-height: 1.55; }
  .home-banner-page .promo-art { min-height: 210px; max-height: 250px; }
  .home-banner-page .quality-seal-home { top: 14px; bottom: auto; right: 14px; }
  .home-banner-page .calendar-card { min-height: 200px; }
  .home-route-summary { margin-top: 30px; }
  .home-route-grid { grid-template-columns: 1fr; gap: 14px; }
  .home-route-card { padding: 24px; }
}
/* Puertas de entrada y catálogo: lectura cómoda, sin paneles comprimidos. */
.academic-hub-page, .guided-program-page { overflow: auto; background: var(--pale); }
.academic-hub-main { padding: 56px 0 96px; background: var(--pale); }
.academic-hub-heading h1 { font-size: clamp(2.2rem, 4vw, 3.6rem); line-height: 1.1; }
.academic-hub-heading p { font-size: 1.0625rem; line-height: 1.65; }
.academic-route-grid { gap: 24px; margin-top: 36px; }
.academic-route-card { padding: 30px; min-height: 380px; border-radius: 14px; box-shadow: var(--shadow); }
.academic-route-card::before { display: none; }
.academic-route-card h2 { font-size: 1.65rem; line-height: 1.2; }
.academic-route-card p { font-size: 1rem; line-height: 1.65; }
.academic-route-card > strong { padding-top: 20px; font-size: 1rem; }
.academic-route-card > div:nth-of-type(2) > span { font-size: .8125rem; font-weight:700; }
.academic-hub-help { margin-top: 28px; font-size: 1rem; }
.guided-journey { height: auto; min-height: calc(100vh - 78px); display: block; overflow: visible; background: var(--pale); }
.journey-topbar { min-height: 86px; border-bottom: 1px solid var(--line); }
.journey-progress li:not(:last-child)::after { display: none; }
.journey-topbar, .journey-workspace { width: min(1280px, calc(100% - 64px)); }
.journey-workspace { display: block; padding: 40px 0 96px; overflow: visible; }
.journey-heading { margin-bottom: 32px; }
.journey-heading h1, .journey-heading.compact h1 { font-size: clamp(2rem, 3.4vw, 3.25rem); line-height: 1.12; }
.journey-heading > div > p { margin-top: 14px; font-size: 1rem; line-height: 1.65; }
.modular-primer { border-radius: 12px; box-shadow: none; padding: 20px; }
.modular-primer b { font-size: 1rem; }
.modular-primer p { font-size: .9375rem; line-height: 1.6; }
.guided-nucleus-grid { grid-template-rows: none; gap: 20px; overflow: visible; }
.guided-nucleus-card { min-height: 188px; padding: 24px 42px 24px 24px; grid-template-columns: 44px minmax(0, 1fr); gap: 16px; border-radius: 14px; box-shadow: 0 4px 12px #10255805; }
.guided-nucleus-card > span { width: 44px; height: 44px; background: #edf2fc; border-radius: 10px; font-size: .875rem; }
.guided-nucleus-card h2 { font-size: 1.1875rem; line-height: 1.3; }
.guided-nucleus-card p { margin-top: 8px; font-size: 1rem; line-height: 1.5; white-space: normal; overflow: visible; }
.guided-nucleus-card small { margin-top: 12px; font-size: .8125rem; line-height: 1.5; }
.guided-mode-grid, .guided-program-grid { overflow: visible; gap: 22px; }
.guided-mode-card, .guided-program-card { border-radius: 14px; box-shadow: var(--shadow); }
.guided-mode-card p, .guided-program-card p { font-size: 1rem; line-height: 1.6; }
.guided-mode-card > strong { font-size: .9375rem; margin-top: 24px; }

/* Circuito: misma geometría y datos; espacio vertical en lugar de letra diminuta. */
.guided-directory-page { overflow: auto; background: var(--pale); }
.guided-directory-page .module-directory-shell { display: block; height: auto; overflow: visible; }
.guided-directory-page .directory-heading { padding: 26px 0; background: #fff; border-bottom: 1px solid var(--line); }
.guided-directory-page .directory-heading-grid { height: auto; min-height: 86px; }
.guided-directory-page .directory-heading h1 { max-width: 900px; font-size: clamp(1.9rem, 3vw, 2.8rem); line-height: 1.15; white-space: normal; overflow: visible; }
.guided-directory-page .module-directory-workspace { display: block; height: auto; max-width: 1400px; margin: auto; padding: 12px 16px 90px; overflow: visible; }
.guided-directory-page .directory-route-menu { padding: 10px 0 20px; gap: 12px; }
.guided-directory-page .directory-route-menu-card { border-radius: 12px; min-height: 116px; padding: 16px; box-shadow: none; }
.guided-directory-page .directory-route-menu-card strong { font-size: .9375rem; line-height: 1.35; }
.guided-directory-page .directory-route-menu-card small, .guided-directory-page .directory-route-menu-card em { font-size: .8125rem; line-height: 1.45; }
.guided-directory-page .directory-route-menu-card.active { background: var(--navy); }
.guided-directory-page .directory-stage, .guided-directory-page .directory-stage.module-open { display: block; height: auto; padding: 0; overflow: visible; }
.guided-directory-page .directory-view { height: auto; padding: 24px; border-radius: 14px; box-shadow: none; overflow: visible; }
.guided-directory-page .directory-modules-view { grid-template-rows: auto auto auto; }
.guided-directory-page .directory-view-head { padding: 4px 0 22px; }
.guided-directory-page .directory-view-head h2 { font-size: 1.75rem; line-height: 1.2; }
.guided-directory-page .directory-view-head p { font-size: 1rem; line-height: 1.6; }
.guided-directory-page .directory-orbit { background: #fafbfd; border-radius: 12px; }
.guided-directory-page .directory-orbit::before { border: 1px solid #becde4; box-shadow: none; }
.guided-directory-page .directory-orbit-core { border-radius: 16px; background: var(--navy); border: 0; box-shadow: none; }
.guided-directory-page .directory-orbit-core > p { font-size: .9375rem; line-height: 1.5; }
.guided-directory-page .directory-orbit-core > small { font-size: .8125rem; line-height: 1.5; border-radius: 8px; }
.guided-directory-page .directory-orbit-list .directory-module-button { border-radius: 10px; box-shadow: 0 3px 10px #10255808; }
.guided-directory-page .directory-orbit-list .directory-module-button.route-active { border-color: #14804a; background: #e8f7ee; box-shadow: 0 0 0 3px #14804a15; }
.guided-directory-page .directory-orbit-list .directory-module-button.route-active > span { background: #14804a; }
.guided-directory-page .directory-source-note { font-size: .875rem; line-height: 1.5; }
@media (min-width: 1121px) {
  .guided-directory-page .directory-orbit[data-count] { height: 1120px; min-height: 1120px; }
  .guided-directory-page .directory-orbit[data-count="20"] { height: clamp(1480px, calc(2300px - 50vw), 1740px); min-height: 1480px; }
  .guided-directory-page .directory-orbit-list .directory-module-button { width: 13%; min-height: 100px; padding: 10px; grid-template-columns: 38px minmax(0, 1fr); grid-template-rows: auto auto; gap: 8px; }
  .guided-directory-page .directory-orbit[data-count="20"] .directory-module-button { width: 12%; }
  .guided-directory-page .directory-orbit-list .directory-module-button > span { width: 38px; height: 30px; grid-column: 1; grid-row: 1; font-size: .8125rem; border-radius: 6px; }
  .guided-directory-page .directory-orbit-list .directory-module-button > b { grid-column: 1 / -1; grid-row: 2; display: -webkit-box; overflow: hidden; font-size: .8125rem; font-weight:700; line-height: 1.35; -webkit-line-clamp: 3; }
  .guided-directory-page .directory-orbit-list .directory-module-button > small { grid-column: 2; grid-row: 1; display: block; overflow: visible; white-space: normal; font-size: .75rem; line-height: 1.3; }
  .guided-directory-page .directory-orbit-core { width: 30%; min-height: 190px; padding: 24px; }
  html.large-text .guided-directory-page .directory-orbit[data-count] { height: 1320px; }
  html.large-text .guided-directory-page .directory-orbit[data-count="20"] { height: 1800px; }
}

/* Institución y alianzas: logos originales sobre blanco y jerarquía editorial. */
.institution-page { background: #f7f8fb; }
.institution-main { padding-top: 42px; }
.institution-intro { margin-bottom: 38px; }
.institution-intro h1 { font-size: clamp(2.2rem, 4.4vw, 3.7rem); line-height: 1.1; }
.institution-door, .institution-panel, .about-value, .news-card, .news-article { border-radius: 14px; box-shadow: 0 5px 18px #10255805; }
.institution-door { padding: 32px; min-height: 240px; }
.institution-door.featured, .about-hero { background: var(--navy); border-color: var(--navy); border-radius: 14px; }
.institution-panel h2 { letter-spacing: -.025em; line-height: 1.25; }
.alliance-live-list { gap: 24px; }
.alliance-live-list .institution-panel { padding: 30px; }
.alliance-live-list .alliance-logo { display: flex; justify-content: flex-start; align-items: center; min-height: 130px; padding: 12px 0 26px; margin-bottom: 22px; border-bottom: 1px solid var(--line); background: white; }
.alliance-live-list .alliance-logo img { width: auto; max-width: 100%; max-height: 94px; object-fit: contain; }
.alliance-live-list .alliance-status { font-size: .8125rem; line-height: 1.5; }
.alliance-live-list h2 { margin-top: 16px; font-size: 1.5rem; }
.alliance-live-list p { line-height: 1.75; }
.alliance-live-list[data-type="academic"] .institution-panel { display: grid; grid-template-columns: minmax(210px, .7fr) minmax(0, 1.6fr); gap: 0 40px; padding: 40px; }
.alliance-live-list[data-type="academic"] .institution-panel > * { grid-column: 2; }
.alliance-live-list[data-type="academic"] .institution-panel > .alliance-logo { grid-column: 1; grid-row: 1 / span 5; align-self: stretch; justify-content: center; margin: 0; padding: 24px; border: 0; border-right: 1px solid var(--line); }
.alliance-live-list[data-type="academic"] .alliance-logo img { max-height: 180px; }
.alliance-live-list[data-type="academic"] .alliance-status { justify-self: start; }
.alliance-live-list[data-type="academic"] h2 { font-size: clamp(1.75rem, 2.4vw, 2.4rem); }

/* Extensión del sistema visual a las demás páginas públicas, nunca al administrador. */
.continuous-choice, .continuous-catalog, .continuous-company,
.professional-choice-page, .professional-category-page, .professional-offer-page { background: var(--pale); }
.course-card, .course-filters, .professional-university-card, .professional-category-card,
.professional-offer-card, .continuous-choice-card, .continuous-company-story, .continuous-company-plan,
.hb-line-choice, .hb-product-card, .platform-card, .card, .model-choice, .campus-choice-grid > a,
.enrollment-form, .payment-plan, .payment-summary { border-radius: 14px; box-shadow: var(--shadow); }
.course-card { padding: 26px; }
.course-card h2 { font-size: 1.35rem; font-weight:700; }
.course-card .btn { border-radius: 10px; }
.continuous-company-story { background: var(--navy); }
.continuous-company-story > p, .continuous-company-plan li p { font-size: 1rem; line-height: 1.65; }
.continuous-company-plan li b { font-size: 1rem; }
.professional-university-card { padding: 28px; box-shadow: 0 5px 18px #10255806; }
.professional-university-card:hover { box-shadow: var(--shadow); }
.flow-intro { background: var(--navy); }
.flow-intro h1 { line-height: 1.12; }
.enrollment-form { border: 1px solid var(--line); }

@media (max-width: 1120px) and (min-width: 701px) {
  .journey-topbar { grid-template-columns: 1fr auto; padding: 16px 0; gap: 16px; }
  .journey-progress { grid-column: 1 / -1; grid-row: 2; }
  .journey-heading { grid-template-columns: 1fr; gap: 22px; }
  .guided-nucleus-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1120px) {
  .guided-directory-page .directory-route-menu { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .guided-directory-page .directory-orbit { min-height: 0; padding: 18px 12px 44px; overflow: visible; }
  .guided-directory-page .directory-orbit::before { inset: 230px 26px 22px; border-radius: 80px; }
  .guided-directory-page .directory-orbit-core { position: relative; width: calc(100% - 32px); min-width: 0; min-height: 0; top: auto; left: auto; transform: none; padding: 20px; margin: 0 auto 24px; }
  .guided-directory-page .directory-orbit-list { position: relative; inset: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; height: auto; gap: 12px; }
  .guided-directory-page .directory-orbit-list .directory-module-button,
  .guided-directory-page .directory-orbit-list .directory-module-button:hover,
  .guided-directory-page .directory-orbit-list .directory-module-button:focus-visible { position: static; transform: none; width: 100%; min-height: 108px; padding: 12px; grid-template-columns: 1fr; grid-template-rows: auto auto auto; gap: 7px; }
  .guided-directory-page .directory-orbit-list .directory-module-button > span { grid-column: 1; grid-row: 1; width: 38px; height: 30px; font-size: .8125rem; }
  .guided-directory-page .directory-orbit-list .directory-module-button > b { grid-column: 1; grid-row: 2; display: block; overflow: visible; font-size: .875rem; line-height: 1.4; -webkit-line-clamp: unset; }
  .guided-directory-page .directory-orbit-list .directory-module-button > small { grid-column: 1; grid-row: 3; display: block; overflow: visible; white-space: normal; font-size: .75rem; line-height: 1.4; }
}
@media (max-width: 700px) {
  .academic-hub-main { padding-top: 30px; }
  .home-banner-page .carousel-counter { top: 24px; bottom: auto; left: 24px; right: auto; }
  .academic-route-grid { gap: 16px; margin-top: 24px; }
  .academic-route-card { padding: 26px; }
  .journey-topbar, .journey-workspace { width: calc(100% - 32px); }
  .journey-workspace { padding-top: 28px; }
  .guided-nucleus-grid { grid-template-columns: 1fr; gap: 14px; }
  .guided-nucleus-card { min-height: 160px; padding: 22px 38px 22px 18px; }
  .guided-directory-page .module-directory-workspace { padding: 12px 12px 90px; }
  .guided-directory-page .directory-route-menu { grid-template-columns: 1fr; }
  .guided-directory-page .directory-route-menu-card { min-height: 90px; }
  .guided-directory-page .directory-view { padding: 14px; }
  .guided-directory-page .directory-view-head { flex-direction: column; align-items: stretch; }
  .guided-directory-page .directory-orbit { padding-inline: 0; }
  .institution-main { padding-top: 26px; }
  .institution-door, .alliance-live-list .institution-panel { padding: 24px; }
  .alliance-live-list[data-type="academic"] .institution-panel { display: block; padding: 24px; }
  .alliance-live-list[data-type="academic"] .institution-panel > .alliance-logo { min-height: 140px; margin-bottom: 24px; padding: 12px 0 24px; border: 0; border-bottom: 1px solid var(--line); }
  .alliance-live-list[data-type="academic"] .alliance-logo img { max-height: 100px; }
}
/* Los colores de alto contraste siguen definidos por el control original. */
@media (prefers-reduced-motion: reduce) {
  .home-route-card { transition: none; }
}

/* Shared dimensions and controls. No fixed text heights or clipping to hide overflow. */
.container { width:min(var(--content-width),calc(100% - var(--page-gutter)*2)); }
:where(main,section,article,form,fieldset,figure,nav,header,footer,div) { min-width:0; }
:where(p,h1,h2,h3,h4,label,a,button,small,strong) { overflow-wrap:break-word; }
:where(input,select,textarea) { max-width:100%; }
:where(button,select,input,textarea) { line-height:1.5; }
:where(button,.btn,.nav-cta) { transition:background-color var(--motion-fast),border-color var(--motion-fast),transform var(--motion-fast); }
:where(button:disabled,[aria-disabled="true"]) { cursor:not-allowed; }
.btn.secondary,.btn.outline { background:white; color:var(--blue); border:1px solid var(--blue); }
.btn.ghost { background:transparent; color:var(--blue); border:1px solid transparent; }
.btn:hover,.nav-cta:hover { transform:translateY(-1px); }
.card,.home-route-card,.institution-door,.course-card,.platform-card,.model-choice,
.academic-route-card,.continuous-door,.professional-university-card,.professional-category-card,
.professional-offer-card,.hb-line-choice,.hb-product-card,.institution-panel,.news-card,.about-value {
  border-radius:var(--radius-card); box-shadow:var(--shadow);
}
.cards,.home-route-grid,.institution-doors,.course-grid,.platform-grid,.academic-route-grid,
.professional-university-grid,.model-choice-grid { gap:var(--space-6); align-items:stretch; }
.academic-route-card,.institution-door,.home-route-card,.course-card,.platform-card { padding:clamp(1.25rem,2.2vw,2rem); }
.academic-route-card>strong,.institution-door>strong,.home-route-card>strong { margin-top:auto; }
.academic-route-card p,.institution-door p,.home-route-card p,.platform-description,.model-choice small { font-size:1rem; line-height:1.65; }
.academic-hub-main,.institution-main,.virtual-classroom,.professional-main,.campus-entry,.community-entry { padding-block:var(--space-12) 6rem; }
.academic-hub-heading,.institution-intro,.journey-heading,.professional-choice-heading { margin-bottom:var(--space-8); }
.academic-hub-heading p,.institution-intro>p,.journey-heading p { max-width:68ch; }
.academic-route-card { min-height:22rem; }
.academic-route-card h2,.institution-door h2 { font-size:clamp(1.4rem,1.9vw,1.8rem); line-height:1.3; }
.institution-panel p,.news-article p { max-width:75ch; }
.footer { padding-bottom:6rem; background:var(--navy); }
.footer-grid { gap:var(--space-8); }
.footer a { padding-block:.375rem; }
.footer small { color:#d6e0ed; }

/* Navigation owns accessibility: the closed control no longer floats over content. */
.site-header .accessibility-tools { position:relative; inset:auto; z-index:45; flex:none; order:3; align-self:center; }
.site-header .accessibility-toggle { width:44px; height:44px; padding:0; border-radius:var(--radius-control); background:var(--pale); color:var(--navy); box-shadow:none; font-size:1rem; font-weight:600; }
.site-header .accessibility-toggle span { display:none; }
.site-header .accessibility-panel { position:absolute; top:calc(100% + 1rem); right:0; width:min(21rem,calc(100vw - 2rem)); max-height:calc(100dvh - var(--header-height) - 2rem); overflow:auto; padding:var(--space-4); border-radius:var(--radius-card); box-shadow:0 12px 36px #102d501f; }
.accessibility-panel strong { font-size:1rem; }
.accessibility-panel button { font-size:.9375rem; min-height:48px; border-radius:var(--radius-control); font-weight:500; }
.accessibility-panel button[aria-pressed="true"] { border-color:var(--blue); color:var(--blue); background:#edf5ff; }

/* Support controls have a consistent reserved lower edge on every public route. */
body[class] .alma-fab,body[class] .advisor-fab { width:52px; height:52px; bottom:max(1rem,env(safe-area-inset-bottom)); padding:5px; z-index:35; border:1px solid #dbe2e9; box-shadow:0 4px 16px #102d501f; }
body[class] .alma-fab { left:var(--page-gutter); right:auto; background:white; }
body[class] .alma-fab img { width:40px; height:40px; object-fit:contain; }
body[class] .advisor-fab { left:auto; right:var(--page-gutter); display:grid; background:white; }
body[class] .advisor-fab img { width:38px; height:38px; object-fit:contain; }
body[class] .advisor-fab::after,body[class] .alma-fab::before,body[class] .alma-fab::after { content:none; display:none; }
body[class] .alma-fab .alma-greeting { position:absolute; left:0; bottom:calc(100% + .5rem); width:max-content; height:auto; overflow:visible; clip:auto; padding:.4rem .75rem; background:var(--navy); color:white; border-radius:.625rem .625rem .625rem 0; font-size:.875rem; line-height:1.5; font-weight:600; animation:alma-welcome 500ms ease both; pointer-events:none; }
.alma-fab[aria-expanded="true"] .alma-greeting,body:has(.nav.open) .alma-greeting,body:has(input:focus) .alma-greeting { visibility:hidden; }
@keyframes alma-welcome { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:translateY(0); } }
body[class] .alma-panel { left:var(--page-gutter); right:auto; bottom:calc(max(1rem,env(safe-area-inset-bottom)) + 4rem); width:min(25rem,calc(100vw - var(--page-gutter)*2)); max-height:calc(100dvh - var(--header-height) - 6rem); padding:var(--space-6); border:1px solid var(--line); border-radius:var(--radius-card); box-shadow:0 12px 36px #102d5024; z-index:46; overflow:auto; }
.alma-panel header { padding-right:48px; min-height:48px; align-items:center; }
.alma-panel .alma-close { width:44px; height:44px; font-weight:500; }
.alma-panel header strong { font-size:1.125rem; }
.alma-panel header small { font-size:.875rem; }
.alma-panel>p,.alma-panel .alma-answer { font-size:1rem; line-height:1.65; }
.alma-quick-actions button { min-height:44px; font-size:.875rem; border-radius:var(--radius-control); }
.alma-panel form { display:flex; gap:.5rem; }
.alma-panel input { width:100%; min-width:0; min-height:48px; font-size:1rem; }
.alma-panel form button { min-height:48px; padding:.625rem .75rem; }
body:has(.alma-panel.open) .advisor-fab { visibility:hidden; }

/* Previously full-height presentations now grow with text and font preferences. */
.model-page,.campus-page,.atlantia-directory-page,.atlantia-catalog-page,.virtual-classroom-page { overflow:auto; background:var(--pale); }
.model-experience,.campus-detail,.atlantia-map,.atlantia-space-detail { height:auto; min-height:calc(100dvh - var(--header-height)); overflow:visible; }
.model-experience { grid-template-rows:auto auto; }
.model-intro-grid { height:auto; min-height:11rem; padding-block:var(--space-6); }
.model-intro { background:var(--navy); }
.model-intro p,.model-entry-heading p { font-size:1rem; line-height:1.65; }
.model-formula { min-width:0; flex-wrap:wrap; }
.model-formula span,.model-formula strong { font-size:.875rem; }
.model-entry { overflow:visible; padding-block:var(--space-8) 6rem; background:var(--pale); }
.model-choice { min-height:14rem; padding:var(--space-6); }
.model-choice::after { display:none; }
.model-choice strong { font-size:1.125rem; line-height:1.4; }
.model-workspace,.model-stage,.campus-detail-stage { height:auto; overflow:visible; }
.model-board { height:auto; overflow:visible; }
.model-panels { overflow:visible; }
.model-panel { height:auto; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); border-radius:var(--radius-card); background:var(--blue); }
.model-panel p { font-size:1rem; line-height:1.6; }
.model-panel small,.model-example span,.route-rule span,.authorship-rule span,.feedback-loop { font-size:.8125rem; line-height:1.5; }
.model-panel .knowledge-flow strong,.model-panel .evidence-equation strong,.model-panel .support-grid strong { font-size:1rem; }
.model-detail-toolbar { min-height:64px; }
.model-detail-toolbar button,.model-detail-toolbar>a { min-height:44px; font-size:.875rem; }
.model-detail-toolbar>span { font-size:.875rem; }
.knowledge-flow,.evidence-equation { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.knowledge-flow>i,.evidence-equation>i { display:none; }
.knowledge-path header,.evidence-board header { flex-wrap:wrap; }
.feedback-loop { flex-wrap:wrap; }
.campus-entry { background:var(--pale); }
.campus-choice-grid a { min-height:13rem; padding:var(--space-6); border-radius:var(--radius-card); }
.campus-choice-grid small { font-size:.9375rem; line-height:1.65; }
.campus-project-disclaimer { font-size:.875rem; line-height:1.6; grid-template-columns:1fr; margin-top:1rem; }
.campus-detail-panel { height:auto; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:var(--space-6); }
.campus-detail-story>p,.campus-project-note small,.hybrid-learning p { font-size:1rem; line-height:1.65; }
.campus-experience { min-height:32rem; }
.campus-detail-story h2 { line-height:1.15; }
.hybrid-learning { grid-template-columns:1fr; }
.hybrid-learning li { font-size:.875rem; }
.campus-system-grid p,.campus-wide-visual figcaption span,.chair-visual figcaption span { font-size:.875rem; line-height:1.5; }
.campus-system-grid h3 { font-size:1rem; }
.campus-wide-visual figcaption b,.chair-visual figcaption b,.hybrid-flow span { font-size:.875rem; }
.atlantia-map { padding:var(--space-8) var(--page-gutter) 6rem; }
.atlantia-space-grid { height:auto; grid-template-rows:none; gap:var(--space-6); }
.atlantia-space-grid a { min-height:20rem; border-radius:var(--radius-card); }
.atlantia-space-grid a>span { height:auto; min-height:6rem; padding:1rem; }
.atlantia-space-grid small { font-size:.875rem; margin-left:0; max-width:85%; }
.atlantia-space-grid img { height:calc(100% - 6rem); }
.atlantia-space-grid a>i { bottom:1rem; }
.atlantia-space-detail>article { height:auto; }
.atlantia-detail-copy p { font-size:1rem; line-height:1.65; }
.atlantia-catalog-shell { height:auto; min-height:calc(100dvh - var(--header-height)); padding:var(--space-8) var(--page-gutter) 6rem; }
.atlantia-catalog-view { min-height:35rem; padding-bottom:0; }
.atlantia-catalog-intro { min-width:0; }
.atlantia-catalog-view article { height:auto; }
.atlantia-catalog-view article>div strong { position:static; display:block; max-width:none; margin-top:1rem; font-size:.875rem; }
.atlantia-catalog-navigation { position:relative; inset:auto; height:auto; padding:1rem; grid-template-rows:auto auto; gap:1rem; }
.atlantia-catalog-dots { min-height:48px; padding-inline:3.5rem; gap:0; align-items:center; flex-wrap:wrap; }
.atlantia-catalog-dots button,.atlantia-catalog-dots button.is-active { width:24px; height:24px; flex:none; border:7px solid #0e151e; }
.atlantia-catalog-thumbnails { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); overflow:visible; }
.atlantia-catalog-thumbnails button { min-width:0; height:auto; min-height:76px; grid-template-columns:48px minmax(0,1fr); }
.atlantia-catalog-thumbnails img { width:48px; height:52px; }
.atlantia-catalog-thumbnails span { font-size:.8125rem; line-height:1.4; overflow-wrap:anywhere; }
.atlantia-catalog-arrow { top:1rem; bottom:auto; }
.atlantia-catalog-view article>div p { font-size:1rem; line-height:1.65; }
.virtual-classroom { background:var(--pale); }
.platform-card { min-height:0; }
.platform-card p,.virtual-access-note p { font-size:1rem; line-height:1.65; }
.platform-card :is(a,button) { min-height:44px; }
.professional-choice-page,.professional-main,.continuous-entry,.continuous-company { background:var(--pale); }
.continuous-door { padding:var(--space-8); border-radius:var(--radius-card); }
.continuous-door h2 { line-height:1.2; }
.continuous-door p { font-size:1rem; line-height:1.65; }
.professional-offer-card p,.professional-category-card p { font-size:1rem; line-height:1.65; }
.hb-store-page .hb-product-options h4 { line-height:1.4; }
.hb-store-page .hb-product-card footer { gap:1rem; }
.hb-store-page .hb-product-card footer button { white-space:normal; }
.enrollment-form input,.enrollment-form select { min-height:48px; font:inherit; }
.flow-intro p,.payment-summary p { font-size:1rem; line-height:1.65; }
.quality-seal small { font-size:.75rem; }
.quality-seal b { font-size:.8125rem; }
.quality-clarification,.payment-program-context,.payment-view-head p,.journey-explainer-trigger { font-size:.875rem; }
.guided-program-page .guided-nucleus-card small,.module-button small,.professional-route-stage small,
.continuous-toolbar small,.continuous-company small,.directory-orbit-core small,
.payment-page main small,.selected-start small { font-size:.8125rem; line-height:1.5; }
.payment-page main p,.flexible-route>p { font-size:.875rem; line-height:1.6; }
.continuous-company-plan header small,.guided-directory-page .directory-orbit-core p { font-size:.8125rem; line-height:1.5; }
.module-catalog-controls button { min-height:44px; font-size:.875rem; }
.continuous-toolbar button { min-height:44px; font-size:.875rem; }
.route-module small { font-size:.75rem; }

/* Inclusive color and motion settings override presentation, never business states. */
html.high-contrast { --blue:#004087; --navy:#061b33; --muted:#304155; --line:#8293a8; }
html.high-contrast .accessibility-panel button { border-color:#53657c; }
html.high-contrast :is(.card,.course-card,.institution-panel) { border-color:var(--line); }
html.large-text .site-header .nav { font-size:1rem; }
@media(max-width:75rem) {
  :root { --header-height:4.5rem; }
  .site-header .nav-wrap { gap:.75rem; }
  .site-header .menu { display:block; order:4; margin-left:0; width:44px; height:44px; padding:0; }
  .site-header .accessibility-tools { margin-left:auto; }
  .site-header .nav-wrap>.nav-cta { display:none; }
  .site-header .nav { display:none; position:absolute; top:calc(100% + .5rem); left:0; right:0; margin:0; padding:1rem; gap:.25rem; flex-direction:column; align-items:stretch; max-height:calc(100dvh - var(--header-height) - 2rem); overflow:auto; background:white; border:1px solid var(--line); border-radius:var(--radius-card); box-shadow:var(--shadow); font-size:1rem; }
  .site-header .nav.open { display:flex; }
  .site-header .nav a { padding:.625rem .75rem; white-space:normal; }
  .site-header .nav .mobile-enroll { display:flex; background:var(--yellow); color:var(--navy); border-radius:var(--radius-control); margin-top:.5rem; }
  .model-intro-grid { grid-template-columns:1fr; gap:1rem; }
  .model-choice-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:64rem) {
  .academic-route-grid,.platform-grid,.course-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .campus-entry-grid,.campus-detail-panel,.hybrid-visuals { grid-template-columns:minmax(0,1fr); }
  .campus-entry-grid { gap:var(--space-8); }
  .campus-experience { min-height:0; }
  .campus-wide-visual { min-height:22rem; }
  .community-entry-grid,.professional-intro { grid-template-columns:1fr; }
  .model-panel { grid-template-columns:minmax(0,1fr); }
  .atlantia-catalog-shell { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:40rem) {
  :root { --page-gutter:1rem; --header-height:4.25rem; }
  .site-header .nav-wrap { width:calc(100% - 2rem); }
  .site-header .brand-logo-official { width:136px; height:44px; }
  .site-header .accessibility-panel { position:fixed; top:calc(var(--header-height) + .5rem); right:1rem; }
  .academic-route-grid,.platform-grid,.course-grid,.institution-doors,.model-choice-grid,.home-route-grid,.footer-grid { grid-template-columns:minmax(0,1fr); }
  .academic-hub-main,.institution-main,.virtual-classroom,.professional-main,.campus-entry,.community-entry { padding-top:var(--space-8); }
  .academic-route-card,.institution-door,.continuous-door { min-height:0; }
  .campus-choice-grid,.hybrid-learning ol { grid-template-columns:1fr; }
  .campus-choice-grid a { min-height:11rem; }
  .model-entry-heading { grid-template-columns:1fr; gap:1rem; }
  .model-formula { gap:.5rem; }
  .model-formula span,.model-formula strong { min-width:5rem; }
  .knowledge-flow,.evidence-equation,.support-grid { grid-template-columns:minmax(0,1fr); }
  .knowledge-path,.support-map,.evidence-board,.circular-board { margin:.5rem; padding:1rem; }
  .model-back,.model-workspace .model-tabs button { min-height:44px; font-size:.875rem; }
  .atlantia-space-grid { grid-template-columns:1fr; }
  .atlantia-catalog-view article { grid-template-rows:auto auto; }
  .atlantia-catalog-view figure img { height:auto; min-height:0; object-fit:contain; }
  .atlantia-catalog-view article>div { padding:1.25rem 1rem 5rem; }
  .atlantia-catalog-intro h1 { font-size:clamp(2rem,8vw,2.8rem); line-height:1.2; }
  .atlantia-catalog-thumbnails { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .atlantia-catalog-thumbnails button { grid-template-columns:minmax(0,1fr); align-content:start; }
  .atlantia-catalog-thumbnails img { width:100%; height:64px; object-fit:contain; }
  .atlantia-catalog-view { min-height:0; }
  .continuous-company-inner { width:calc(100% - 2rem); grid-template-columns:minmax(0,1fr); }
  .professional-offer-footer { align-items:stretch; flex-direction:column; }
  .alma-panel form { flex-wrap:wrap; }
  .alma-panel form input { flex:1 1 9rem; }
  .alma-panel form button { flex:1 1 4rem; }
  .footer { padding-inline:0; }
}
