/* Shared fluid navigation/footer: opt in only on Index, About Us, Admission, Program, Alumni, Alumni Stories and Admissions Information.
 * Mobile <=767px; desktop >=768px, capped at the 1920px reference. */
.v2-fluid .hx-header, .v2-fluid .hx-header * { box-sizing: border-box; }
.v2-fluid .hx-header { position: sticky; inset: 0 0 auto; }
.v2-fluid .hx-root { padding-top: 0; }

@media (min-width: 768px) {
    html:has(> body.v2-fluid) { background: #061c40; }
    body.v2-fluid { max-width: 1920px; margin-inline: auto; }
    .v2-fluid { --desktop-width: 100vw; --desktop-unit: calc(100vw / 1920); --hx-header-h: max(64px, calc(108 * var(--desktop-unit))); }
    /* Reclaim spacing before the 12px text floor forces the desktop header to wrap.
     * Spacing stops growing with the complete page at the 1920px reference.
     * Clamp complete lengths so Firefox does not round a shared 1px unit. */
    .v2-fluid .hx-header {
        --header-space-unit: calc((var(--desktop-width) - 768px) / 1152);
        height: auto;
        min-height: max(64px, calc(108 * var(--desktop-unit)));
        padding: calc(8 * var(--desktop-unit)) max(6px, min(calc(111 * var(--desktop-unit)), calc(111 * var(--header-space-unit)))) calc(8 * var(--desktop-unit)) max(6px, min(calc(58 * var(--desktop-unit)), calc(58 * var(--header-space-unit))));
    }
    .v2-fluid .hx-header .hx-brand { margin-right: max(4px, min(calc(140 * var(--desktop-unit)), calc(140 * var(--header-space-unit)))); }
    .v2-fluid .hx-header .hx-brand-mark { width: calc(242 * var(--desktop-unit)); }
    .v2-fluid .hx-header > .hx-nav { display: flex; flex: 1 1 auto; min-width: 0; flex-wrap: nowrap; gap: calc(8 * var(--desktop-unit)) max(2px, min(calc(22 * var(--desktop-unit)), calc(22 * var(--header-space-unit)))); }
    .v2-fluid .hx-header .hx-nav > li { flex: 0 0 auto; height: auto; min-width: 0; min-height: 24px; }
    .v2-fluid .hx-header .hx-nav > li > a { font-size: max(12px, calc(20 * var(--desktop-unit))); line-height: 1.45; gap: max(1px, min(calc(7 * var(--desktop-unit)), calc(7 * var(--header-space-unit)))); }
    .v2-fluid .hx-header .hx-caret { font-size: max(8px, calc(11 * var(--desktop-unit))); }
    .v2-fluid .hx-header > .hx-header-end { display: flex; flex: 0 0 auto; width: auto; min-width: 0; gap: max(2px, min(calc(35 * var(--desktop-unit)), calc(35 * var(--header-space-unit)))); padding-left: max(2px, min(calc(30 * var(--desktop-unit)), calc(30 * var(--header-space-unit)))); }
    .v2-fluid .hx-header .hx-lang { flex: 0 0 auto; width: max(54px, calc(126 * var(--desktop-unit))); height: max(18px, calc(29 * var(--desktop-unit))); align-items: flex-start; justify-content: space-between; gap: 0; font-size: max(12px, calc(16 * var(--desktop-unit))); font-weight: 600; line-height: 1.4375; }
    .v2-fluid .hx-header .hx-lang-sep { align-self: center; height: calc(21 * var(--desktop-unit)); }
    .v2-fluid .hx-header > .hx-header-end > .hx-actions { display: flex; flex: 0 0 auto; flex-wrap: nowrap; gap: calc(15 * var(--desktop-unit)) max(2px, min(calc(28 * var(--desktop-unit)), calc(28 * var(--header-space-unit)))); }
    .v2-fluid .hx-header .hx-btn { flex: 0 0 auto; width: auto; min-width: calc(124 * var(--desktop-unit)); height: auto; min-height: max(28px, calc(52 * var(--desktop-unit))); padding: calc(6 * var(--desktop-unit)) calc(10 * var(--desktop-unit)); gap: calc(4 * var(--desktop-unit)); border-radius: calc(6 * var(--desktop-unit)); font-size: max(12px, calc(18 * var(--desktop-unit))); font-weight: 600; letter-spacing: calc(1 * var(--desktop-unit)); white-space: nowrap; line-height: 1.444444; }
    .v2-fluid .hx-header .hx-btn span { flex: 0 0 auto; white-space: nowrap; overflow-wrap: normal; }
    .v2-fluid .hx-header .hx-ico { width: calc(22 * var(--desktop-unit)); height: calc(22 * var(--desktop-unit)); }
    .v2-fluid .hx-header .hx-burger { display: none; }
    .v2-fluid .hx-header-en .hx-brand { margin-right: max(2px, min(calc(24 * var(--desktop-unit)), calc(24 * var(--header-space-unit)))); }
    .v2-fluid .hx-header-en .hx-nav > li > a { font-size: max(12px, calc(17 * var(--desktop-unit))); }

    .v2-fluid footer#footer.ft-footer { min-height: calc(848 * var(--desktop-unit)); }
    .v2-fluid .ft-footer .ft-inner { width: calc(1540 * var(--desktop-unit)); max-width: none; margin: 0 auto; padding-top: calc(55 * var(--desktop-unit)); }
    .v2-fluid .ft-footer .ft-lockup { margin-bottom: calc(60 * var(--desktop-unit)); }
    .v2-fluid .ft-footer .ft-lockup img { width: calc(394 * var(--desktop-unit)); margin-left: calc(-10 * var(--desktop-unit)); }
    .v2-fluid .ft-footer .ft-columns { grid-template-columns: minmax(0, 560fr) minmax(0, 900fr); gap: calc(80 * var(--desktop-unit)); padding-bottom: calc(70 * var(--desktop-unit)); }
    .v2-fluid footer#footer.ft-footer .ft-heading { margin-bottom: calc(14 * var(--desktop-unit)); font-size: max(14px, calc(28 * var(--desktop-unit))); line-height: 1.75; }
    .v2-fluid footer#footer.ft-footer .ft-contact-copy,
    .v2-fluid footer#footer.ft-footer .ft-contact-copy p,
    .v2-fluid .ft-footer .ft-links { font-size: max(12px, calc(20 * var(--desktop-unit))); line-height: 2.45; overflow-wrap: anywhere; }
    .v2-fluid .ft-footer .ft-links { gap: 0; margin-bottom: calc(24 * var(--desktop-unit)); }
    .v2-fluid .ft-footer .ft-qr-grid { grid-template-columns: repeat(4, minmax(0, 139fr)); width: calc(694 * var(--desktop-unit)); max-width: 100%; gap: calc(46 * var(--desktop-unit)); padding-top: 0; }
    .v2-fluid .ft-footer .ft-qr-image { width: 100%; height: auto; aspect-ratio: 1; }
    .v2-fluid .ft-footer .ft-qr-label { font-size: max(12px, calc(18 * var(--desktop-unit))); line-height: 2.722222; overflow-wrap: anywhere; }
    .v2-fluid .ft-footer .ft-legal { padding: 0 calc(24 * var(--desktop-unit)) calc(60 * var(--desktop-unit)); font-size: max(12px, calc(20.64 * var(--desktop-unit))); }
}
/* A sizing ceiling, with the same desktop composition. Keep the original vw
 * calculation below it: putting min() inside the shared unit changes Firefox's
 * flex-basis rounding and can wrap Program's exactly fitting three-card row. */
@media (min-width: 1920px) {
    .v2-fluid { --desktop-width: 1920px; --desktop-unit: 1px; }
}
