/* Homepage phone reference: Pixso 187:437, primary page 750px wide.
   Values use design pixels; 375 CSS pixels is the half-size reference.
   Desktop geometry remains owned by index-fluid.css. */
.v2-index .nx-mobile-highlight { display: none; }
.v2-index .rx-heading-colon { font-family: inherit; }

@media (max-width: 767px) {
    .v2-index { --im-px: .133333333vw; }
    /* Pixso 187:64: the entire Why section shares its 750px reference scale. */
    .v2-index .wx-why {
        padding: calc(68 * var(--im-px)) 0 calc(121 * var(--im-px));
        background: url('../images/why-mobile-background.png') center top / 100% auto no-repeat,
            linear-gradient(105deg, #0c1d3e, #082d76);
    }
    .v2-index .wx-inner { width: calc(623 * var(--im-px)); max-width: none; margin-left: calc(61 * var(--im-px)); margin-right: auto; }
    /* One extra width pixel and two 9px leading offsets match Pixso's 522 x 124
       text frame with browser font metrics, while retaining 44/53px type. */
    .v2-index .wx-title { width: calc(523 * var(--im-px)); max-width: 100%; padding-top: calc(9 * var(--im-px)); font-size: calc(44 * var(--im-px)); line-height: calc(53 * var(--im-px)); }
    .v2-index .wx-title > span { margin-top: calc(9 * var(--im-px)); }
    .v2-index .wx-lead { width: calc(618 * var(--im-px)); max-width: 100%; margin-top: calc(17 * var(--im-px)); font-size: calc(24 * var(--im-px)); line-height: calc(29 * var(--im-px)); }
    .v2-index .wx-card { min-height: calc(254 * var(--im-px)); }
    .v2-index .wx-card-school { margin-top: calc(43 * var(--im-px)); }
    .v2-index .wx-card-faculty { margin-top: calc(32 * var(--im-px)); }
    .v2-index .wx-card-innovation { margin-top: calc(44 * var(--im-px)); }
    .v2-index .wx-card-rigour { margin-top: calc(21 * var(--im-px)); }
    .v2-index .wx-card-copy { padding: calc(40 * var(--im-px)) 0 calc(6 * var(--im-px)) calc(13.24 * var(--im-px)); }
    .v2-index .wx-card-copy h3 { width: calc(352.45 * var(--im-px)); max-width: 100%; margin-bottom: calc(7 * var(--im-px)); font-size: calc(26 * var(--im-px)); line-height: calc(38 * var(--im-px)); text-shadow: 0 calc(4 * var(--im-px)) calc(4 * var(--im-px)) #000; }
    .v2-index .wx-card-copy p { width: calc(586.6 * var(--im-px)); max-width: calc(100% - 3.31 * var(--im-px)); margin-left: calc(3.31 * var(--im-px)); font-size: calc(16 * var(--im-px)); line-height: calc(30 * var(--im-px)); text-shadow: 0 calc(4 * var(--im-px)) calc(4 * var(--im-px)) #000; }
    .v2-index .wx-card-copy .desktop-phrase { display: inline; line-break: strict; }
    .v2-index .wx-card-school .wx-card-copy { padding-bottom: calc(8.03 * var(--im-px)); }
    .v2-index .wx-card-school h3 { margin-bottom: calc(-1.67 * var(--im-px)); }
    .v2-index .wx-card-school p { width: calc(601.83 * var(--im-px)); margin-left: calc(2.89 * var(--im-px)); }
    .v2-index .wx-card-school .wx-card-copy br { display: inline; }
    .v2-index .wx-card-innovation p { width: calc(586 * var(--im-px)); margin-left: calc(3.76 * var(--im-px)); }
    .v2-index .wx-en .wx-card-copy h3 { width: auto; }

    .v2-index .rx-title,
    .v2-index .rx-en .rx-title,
    .v2-index .nx-title { font-size: calc(50 * var(--im-px)); line-height: 1.2; }
    .v2-index .rx-roadmap-cta-bottom,
    .v2-index .rx-en .rx-cta,
    .v2-index .fx-cta,
    .v2-index .tx-cta {
        width: calc(623 * var(--im-px));
        max-width: 100%;
        min-width: 0;
        min-height: max(44px, calc(85 * var(--im-px)));
        padding: calc(10 * var(--im-px)) calc(24 * var(--im-px));
        font-size: calc(38 * var(--im-px));
        line-height: 1.447368;
        letter-spacing: calc(5 * var(--im-px));
    }
    .v2-index .rx-en .rx-cta { letter-spacing: .03em; }

    /* The drawing and its live labels share the source's 750 x 600 crop. */
    .v2-index #blueprint.rx-roadmap { background: #0b2651 url('../images/blueprint-pixso-mobile-backdrop.webp') center top / 100% auto no-repeat; padding-bottom: calc(40 * var(--im-px)); }
    .v2-index .rx-roadmap .rx-roadmap-copy { width: calc(623 * var(--im-px)); padding-top: calc(71 * var(--im-px)); }
    .v2-index .rx-roadmap .rx-title { margin-bottom: calc(36 * var(--im-px)); }
    .v2-index .rx-roadmap .rx-lead { font-size: max(11px, calc(24 * var(--im-px))); line-height: 1.75; }
    .v2-index .rx-roadmap .rx-overview {
        min-height: calc(320 * var(--im-px));
        margin-top: calc(31 * var(--im-px));
        padding: calc(19 * var(--im-px)) calc(30 * var(--im-px));
        font-size: max(10px, calc(22 * var(--im-px)));
        line-height: calc(47 * var(--im-px));
        background: rgba(140, 174, 214, .22);
    }
    .v2-index .rx-roadmap .rx-overview strong { font-size: calc(28 * var(--im-px)); }
    .v2-index .rx-roadmap .rx-diagram { width: 100%; margin: calc(38 * var(--im-px)) 0 0; padding: 0; }
    .v2-index .rx-roadmap .rx-diagram-frame { aspect-ratio: 750 / 600; background: url('../images/blueprint-pixso-mobile.webp') center / 100% 100% no-repeat; }
    .v2-index .rx-roadmap .rx-diagram-art { display: none; }
    .v2-index .rx-roadmap .rx-module,
    .v2-index .rx-roadmap .rx-stage {
        font-family: var(--v2-font-display);
        font-weight: 700;
        text-shadow: none;
        transform: none;
        left: calc(var(--im-label-x) * var(--im-px));
        top: calc(var(--im-label-y) * var(--im-px));
    }
    .v2-index .rx-roadmap .rx-module { width: calc(var(--im-label-width) * var(--im-px)); font-size: calc(32 * var(--im-px)); line-height: 1.1875; white-space: normal; }
    .v2-index .rx-roadmap .rx-module-tech { --im-label-x: 39; --im-label-y: 64; --im-label-width: 241; }
    .v2-index .rx-roadmap .rx-module-global { --im-label-x: 276; --im-label-y: 10; --im-label-width: 207; }
    .v2-index .rx-roadmap .rx-module-leadership { --im-label-x: 461; --im-label-y: 64; --im-label-width: 275; }
    .v2-index .rx-roadmap .rx-stage { font-size: calc(45 * var(--im-px)); line-height: 1.2; white-space: normal; }
    .v2-index .rx-roadmap .rx-stage-advanced { --im-label-x: 0; --im-label-y: 316; width: 100%; }
    .v2-index .rx-roadmap .rx-stage-foundation { --im-label-x: 0; --im-label-y: 469; width: 100%; }
    .v2-index .rx-roadmap .rx-roadmap-cta-bottom { margin: calc(29 * var(--im-px)) 0 0; }
    /* Longer translations use the same anchors, with space above each symbol. */
    .v2-index .rx-roadmap.rx-en .rx-module { font-family: var(--v2-font-body); font-size: calc(25 * var(--im-px)); transform: translateY(calc(38 * var(--im-px) - 100%)); }
    .v2-index .rx-roadmap.rx-en .rx-stage { font-family: var(--v2-font-body); font-size: calc(37 * var(--im-px)); }

    /* Homepage-only spacing and smaller labels; shared Program geometry stays in global-study.css. */
    .v2-index #global-study { padding-block: calc(40 * var(--im-px)); }
    .v2-index #global-study .rx-study-map { aspect-ratio: 1530 / 720; }
    .v2-index #global-study.rx-en .rx-study-map { aspect-ratio: 1530 / 820; }
    .v2-index #global-study .rx-destination h3 { font-size: calc(20 * var(--im-px)); gap: calc(6 * var(--im-px)); }
    .v2-index #global-study .rx-destination h3 img { width: calc(25 * var(--im-px)); height: calc(17 * var(--im-px)); }
    .v2-index #global-study .rx-destination p { font-size: max(7px, calc(14 * var(--im-px))); }
    .v2-index #global-study.rx-en .rx-destination h3 { font-size: calc(16 * var(--im-px)); }
    .v2-index #global-study.rx-en .rx-destination p { font-size: calc(12.5 * var(--im-px)); }

    .v2-index .rx-schedule { min-height: 0; padding: calc(40 * var(--im-px)) calc(59 * var(--im-px)) calc(140 * var(--im-px)); background-color: #0d2246; background-image: url('../images/schedule-pixso-mobile.webp'), linear-gradient(90deg, #0d2246, #0a306b); background-position: center top; background-size: 100% auto; }
    .v2-index .rx-schedule > .rx-title { margin-bottom: calc(51 * var(--im-px)); }
    .v2-index .rx-schedule .rx-schedule-grid { gap: calc(35 * var(--im-px)); }
    .v2-index .rx-schedule .rx-gallery { width: calc(606 * var(--im-px)); max-width: 100%; margin-inline: auto; }
    .v2-index .rx-schedule .rx-gallery-controls { margin-top: calc(4 * var(--im-px)); min-height: 24px; }
    .v2-index .rx-schedule .rx-gallery-dot { width: calc(16.47 * var(--im-px)); height: 24px; }
    .v2-index .rx-schedule .rx-gallery-dot span { width: calc(6 * var(--im-px)); height: calc(6 * var(--im-px)); }
    .v2-index .rx-schedule .rx-gallery-dot.is-active { width: calc(50 * var(--im-px)); }
    .v2-index .rx-schedule .rx-gallery-dot.is-active span { width: calc(50 * var(--im-px)); }
    .v2-index .rx-schedule .rx-schedule-copy,
    .v2-index .rx-schedule.rx-en .rx-schedule-copy { gap: calc(67 * var(--im-px)); padding-top: 0; }
    .v2-index .rx-schedule .rx-schedule-copy h3 { margin-bottom: calc(20 * var(--im-px)); font-size: calc(34 * var(--im-px)); line-height: 1.205882; }
    .v2-index .rx-schedule .rx-schedule-copy p,
    .v2-index .rx-schedule.rx-en .rx-schedule-copy p { font-size: max(11px, calc(24 * var(--im-px))); line-height: 1.75; }
    .v2-index .rx-schedule .rx-heading-colon,
    .v2-index .rx-schedule .rx-schedule-cta,
    .v2-index .nx-heading-colon { display: none; }
    .v2-index .rx-schedule-copy .desktop-phrase { display: inline-block; max-width: 100%; white-space: normal; overflow-wrap: anywhere; }

    .v2-index .nx-news { background: #0d2246 url('../images/news-pixso-mobile.webp') center top / 100% 100% no-repeat; }
    .v2-index .nx-wrap { max-width: none; padding: calc(40 * var(--im-px)) calc(33 * var(--im-px)) calc(127 * var(--im-px)); }
    .v2-index .nx-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: calc(16 * var(--im-px)); margin: calc(41 * var(--im-px)) 0 calc(35 * var(--im-px)); }
    .v2-index .nx-tabs[hidden] { display: none; }
    .v2-index .nx-tab { min-width: 0; min-height: calc(55 * var(--im-px)); padding: calc(9 * var(--im-px)) calc(8 * var(--im-px)); font-size: calc(23 * var(--im-px)); line-height: 1.434783; letter-spacing: calc(2 * var(--im-px)); white-space: normal; overflow-wrap: anywhere; }
    .v2-index .nx-en .nx-tab { letter-spacing: .02em; }
    .v2-index .nx-empty { font-size: calc(24 * var(--im-px)); line-height: 1.75; }
    .v2-index .nx-main { grid-template-columns: minmax(0, 1fr); gap: calc(39 * var(--im-px)); }
    .v2-index .nx-frame { padding: calc(15 * var(--im-px)) calc(20 * var(--im-px)); }
    .v2-index .nx-feature .nx-shot { max-width: none; }
    .v2-index .nx-feature-meta { margin: calc(28 * var(--im-px)) calc(20 * var(--im-px)) 0; padding-left: calc(22 * var(--im-px)); }
    .v2-index .nx-rule { width: calc(7 * var(--im-px)); height: calc(100 * var(--im-px)); }
    .v2-index .nx-feature-text { gap: calc(7 * var(--im-px)); }
    .v2-index .nx-feature-title { font-size: calc(33 * var(--im-px)); line-height: 1.666667; }
    .v2-index .nx-feature-date { font-size: calc(20 * var(--im-px)); line-height: 1.75; }
    /* Keep article names/subtitles in the accessible link even when the design shows dates only. */
    .v2-index .nx-feature-subtitle,
    .v2-index .nx-item-heading { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
    .v2-index .nx-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(19 * var(--im-px)); }
    .v2-index .nx-item { position: relative; display: block; }
    .v2-index .nx-item.is-hidden,
    .v2-index .nx-item.is-spare,
    .v2-index .nx-item.nx-desktop-secondary { display: none; }
    .v2-index .nx-item .nx-shot { box-sizing: border-box; width: 100%; border-width: calc(7 * var(--im-px)); }
    .v2-index .nx-item-text { margin-top: calc(4 * var(--im-px)); }
    .v2-index .nx-item-date { font-size: calc(14 * var(--im-px)); line-height: calc(42 * var(--im-px)); }
    .v2-index .nx-more-row,
    .v2-index .nx-activities .nx-more-row { margin-top: calc(26 * var(--im-px)); }
    .v2-index .nx-more { min-height: calc(49 * var(--im-px)); padding: calc(3 * var(--im-px)) calc(17 * var(--im-px)); font-size: calc(20 * var(--im-px)); font-weight: 600; line-height: 2.1; }
    .v2-index .nx-activities { margin-top: calc(71 * var(--im-px)); }
    .v2-index .nx-sub { margin-left: calc(13 * var(--im-px)); font-size: calc(32 * var(--im-px)); line-height: 1.3125; }
    .v2-index .nx-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(18 * var(--im-px)) calc(27 * var(--im-px)); margin-top: calc(44 * var(--im-px)); }
    .v2-index .nx-tile { padding: calc(9 * var(--im-px)); }
    .v2-index .nx-mobile-highlight { display: block; }
    .v2-index .nx-play { width: calc(56 * var(--im-px)); }

    .v2-index section.fx-faculty#tutor-bg { padding: calc(67 * var(--im-px)) 0 calc(96 * var(--im-px)); }
    .v2-index .fx-inner { width: calc(656 * var(--im-px)); }
    .v2-index .fx-title { margin-bottom: calc(36 * var(--im-px)); }
    .v2-index .fx-grid { --fx-gap: calc(54 * var(--im-px)); margin-top: calc(53 * var(--im-px)); }
    .v2-index .fx-pagination:not([hidden]) { margin-top: calc(15 * var(--im-px)); }
    .v2-index .fx-cta-row { margin-top: calc(28 * var(--im-px)); }
    .v2-index .tx-inner { padding-top: calc(98 * var(--im-px)); padding-bottom: calc(112 * var(--im-px)); }
    .v2-index .tx-lead { margin-bottom: calc(55 * var(--im-px)); }
    .v2-index .tx-slide { gap: calc(36 * var(--im-px)); }
    .v2-index .tx-card { --tx-portrait-size: calc(195 * var(--im-px)); width: calc(645 * var(--im-px)); max-width: 100%; min-height: calc(280 * var(--im-px)); }
    .v2-index .tx-role { font-size: calc(27 * var(--im-px)); line-height: 1.555556; }
    .v2-index .tx-cta { margin-top: calc(35 * var(--im-px)); }

    .v2-index .hx-hero-v2 .is-marquee .hx-stat { flex: 0 0 calc(480 * var(--im-px)); width: calc(480 * var(--im-px)); }
    .v2-index .hx-hero-v2 .hx-stat > div { min-width: 0; }
    .v2-index .hx-hero-v2 .hx-stat-icon { width: calc(52 * var(--im-px)); height: calc(52 * var(--im-px)); }
    .v2-index .hx-hero-v2 .hx-stat { gap: calc(10 * var(--im-px)); }
    .v2-index .hx-hero-v2 .hx-stat-headline { font-size: calc(36 * var(--im-px)); line-height: 1.35; gap: calc(7 * var(--im-px)); flex-wrap: wrap; }
    .v2-index .hx-hero-v2 .hx-stat-note { font-size: calc(24 * var(--im-px)); line-height: 1.65; }
    .v2-index .hx-hero-v2 .is-marquee .hx-stat-note { white-space: normal; overflow-wrap: anywhere; }
    .v2-index .hx-hero-v2 .is-marquee .hx-stats { gap: calc(32 * var(--im-px)); padding-bottom: calc(40 * var(--im-px)); }
    .v2-index .hx-hero-v2 .is-marquee .hx-rankings-track { gap: calc(32 * var(--im-px)); animation-name: im-rankings-scroll; }
    .v2-index .hx-hero-v2 .hx-rankings { padding-left: calc(30 * var(--im-px)); }
    @keyframes im-rankings-scroll { to { transform: translateX(calc(-50% - 16 * var(--im-px))); } }
}

@media (max-width: 767px) and (prefers-reduced-motion: reduce) {
    .v2-index .hx-hero-v2 .is-marquee .hx-rankings-track { animation: none; }
    .v2-index .hx-hero-v2 .is-marquee .hx-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(32 * var(--im-px)); }
    .v2-index .hx-hero-v2 .is-marquee .hx-stat { width: auto; }
    .v2-index .hx-hero-v2 .hx-rankings { padding-left: 0; }
}
