/* Admissions information, isolated from the application page. */
.v2-admissions { margin: 0; background: #102852; color: #fff; font-family: 'Noto Sans SC', system-ui, -apple-system, 'PingFang SC', 'Microsoft YaHei', sans-serif; }
.ix-admissions, .ix-admissions * { box-sizing: border-box; }
.ix-admissions h1, .ix-admissions h2, .ix-admissions h3, .ix-admissions p { margin: 0; }
.ix-admissions [id] { scroll-margin-top: calc(var(--hx-header-h) + 24px); }
.ix-admissions [hidden] { display: none !important; }
.ix-admissions a { color: inherit; }
.ix-admissions a:focus-visible, .ix-admissions button:focus-visible, .ix-admissions input:focus-visible, .ix-admissions select:focus-visible { outline: 3px solid #ffde90; outline-offset: 5px; }
.ix-admissions button, .ix-admissions input, .ix-admissions select { font: inherit; }
.ix-admissions button { cursor: pointer; }
.ix-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.ix-container { width: 82.4%; max-width: 1584px; margin-inline: auto; }
.ix-admissions .ix-title { color: #ffde90; font: 700 clamp(28px, 2.5vw, 48px)/1.4 'Alimama ShuHeiTi', 'Noto Sans SC', sans-serif; }
.ix-hero { height: min(37.5vw, 720px); background: url('../images/admissions-hero.webp') center / cover no-repeat; }
.ix-interviews { padding: 0 0 clamp(56px, 6vw, 115px); }
.ix-interview-grid { display: grid; grid-template-columns: 40% minmax(0, 1fr); align-items: stretch; margin-top: clamp(28px, 3vw, 58px); }
.ix-interview-grid.ix-interview-grid-calendar-only { grid-template-columns: minmax(0, 1fr); }
.ix-admissions .ix-interviews-empty { margin-top: 24px; text-align: center; font-size: 18px; line-height: 1.8; }
.ix-poster-frame { padding: clamp(10px, .85vw, 16px); border-radius: 20px 0 20px 0; background: linear-gradient(135deg, #8dc3f0, #e1e4ea 25%, #438eff 60%, #a5b3d2); }
.ix-poster-frame img { display: block; width: 100%; height: auto; }
.ix-calendar { position: relative; display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: 200px 60px 60px; background: #172e72; }
.ix-admissions .ix-month { position: absolute; top: 0; right: 60px; min-width: 150px; min-height: 160px; padding: 36px 12px; background: linear-gradient(#4677c7, #1e4089); text-align: center; text-shadow: 0 4px 4px #061531; font-size: clamp(26px, 2.6vw, 50px); font-weight: 700; }
.ix-calendar table { width: 100%; table-layout: fixed; border-collapse: collapse; color: #fff; text-align: center; font-size: clamp(18px, 1.67vw, 32px); font-weight: 700; }
.ix-calendar th { border-bottom: 1px solid #b3c5e0; padding: 18px 0 36px; text-align: center; }
.ix-calendar td { height: 80px; padding: 0; }
.ix-calendar tbody tr:first-child td { padding-top: 36px; }
.ix-calendar td span, .ix-interview-day { display: inline-flex; align-items: center; justify-content: center; width: 70px; height: 70px; }
.ix-interview-day { border: 0; border-radius: 50%; background: #ffde90; color: #132b66; font-weight: 700; }
.ix-consultation { position: relative; padding: clamp(60px, 5.5vw, 106px) 0 clamp(60px, 7.5vw, 144px); background: linear-gradient(125deg, #16385dea, #173f8bea), url('../images/program-schedule-bg.webp') center / cover; }
.ix-consultation::before { content: ''; position: absolute; inset: 0; background: url('../images/program-emblem.webp') 95% center / 42% auto no-repeat; opacity: .1; pointer-events: none; }
.ix-consultation > .ix-container { position: relative; }
.ix-form { width: 81%; max-width: 1280px; margin: 64px auto 0; font-size: clamp(16px, 1.67vw, 32px); }
.ix-field { min-width: 0; margin: 0 0 30px; padding: 0; border: 0; }
.ix-field > label, .ix-field legend { display: block; width: auto; margin: 0 0 20px; padding: 0; border: 0; color: #fff; font-size: inherit; font-weight: 700; line-height: 1.6; }
.ix-required { color: #ffde90; }
.ix-field input:not([type='radio']):not([type='hidden']), .ix-field select { display: block; width: 100%; min-width: 0; min-height: 66px; margin: 0; padding: 12px 32px; border: 1px solid transparent; border-image: linear-gradient(90deg, #30ccfa, #ffde90) 1; border-radius: 0; background: #102b5e; color: #fff; line-height: 1.4; box-shadow: none; }
.ix-field input::placeholder { color: #e4ebf5; opacity: 1; }
.ix-field select { color-scheme: dark; }
.ix-options { display: flex; flex-wrap: wrap; gap: 22px 52px; padding: 6px 32px 0; }
.ix-options label { display: flex; gap: 12px; align-items: flex-start; min-width: 0; margin: 0; font-weight: 500; line-height: 1.6; cursor: pointer; }
.ix-options input { appearance: none; flex: 0 0 40px; width: 40px; height: 40px; margin: 5px 0 0; border: 2px solid #fff; border-radius: 50%; background: transparent; cursor: pointer; }
.ix-options input:checked { border-color: #ffde90; background: radial-gradient(circle, #ffde90 0 35%, transparent 40%); }
.ix-sources { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 28px 16px; }
.ix-other { margin-top: 20px; }
.ix-other label { display: block; margin-bottom: 12px; }
.ix-captcha { display: flex; gap: 20px; align-items: center; }
.ix-captcha img { flex-shrink: 0; width: 135px; height: 60px; object-fit: contain; background: #fff; }
.ix-captcha button { flex-shrink: 0; padding: 8px 0; border: 0; background: transparent; color: #ffde90; font-weight: 600; }
.ix-captcha input:not([type='hidden']) { flex: 1; width: 0; }
.ix-admissions .ix-form-status { margin-top: 24px; padding: 16px; border: 1px solid #ffde90; font-size: 16px; line-height: 1.8; }
.ix-admissions .ix-form-status[data-kind='error'] { border-color: #ffc1bd; color: #ffc1bd; }
.ix-admissions .ix-form-help { margin-top: 18px; font-size: 14px; line-height: 1.8; }
.ix-form [aria-invalid='true'] { outline: 2px solid #ffc1bd; outline-offset: 2px; }
.ix-form .v2-field-error { display: block; margin-top: 10px; color: #ffc1bd; font-size: max(14px, .75em); line-height: 1.5; }
.ix-form .v2-field-error[hidden] { display: none; }
.ix-admissions .ix-cta { display: flex; justify-content: center; align-items: center; width: fit-content; min-width: 280px; min-height: 76px; margin: 80px auto 0; padding: 14px 36px; border: 1px solid #ffda96; border-radius: 5px; background: linear-gradient(#ffefd2, #ccaa6a); color: #082d76; font-size: clamp(20px, 1.67vw, 32px); font-weight: 700; letter-spacing: .1em; line-height: 1.4; text-decoration: none; }
.ix-admissions .ix-cta:hover { filter: brightness(1.08); }
.ix-admissions button:disabled { opacity: .55; cursor: wait; }
.ix-events { padding: clamp(65px, 8vw, 154px) 0 clamp(65px, 6vw, 115px); background: linear-gradient(125deg, #163965e6, #173e86e6), url('../images/menu-building.png') center / cover; }
.ix-month-filters { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 36px 44px; margin-top: 56px; }
.ix-month-filters button { min-height: 60px; padding: 6px 12px; border: 2px solid #fff; border-radius: 40px; background: transparent; color: #fff; font-size: clamp(16px, 1.4vw, 27px); font-weight: 600; }
.ix-month-filters button[aria-pressed='true'] { border-color: #ffde90; background: #ffde90; color: #143775; }
.ix-event-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 88px 76px; margin-top: 52px; }
.ix-event { min-width: 0; }
.ix-event-image { display: block; padding: 18px 22px; background: #8697bf45; }
.ix-event img { display: block; width: 100%; height: auto; aspect-ratio: 489 / 275; object-fit: cover; }
.ix-event-copy { position: relative; margin: 30px 0 0 22px; padding-left: 24px; }
.ix-event-copy::before { content: ''; position: absolute; top: 0; bottom: 0; left: 0; width: 7px; background: linear-gradient(#ffe49b, #ffe49b00); }
.ix-event-copy h3, .ix-event-copy p { font-size: clamp(18px, 1.67vw, 32px); font-weight: 700; line-height: 1.65; overflow-wrap: anywhere; }
.ix-event-copy h3 { color: #ffde90; }
.ix-event-copy h3 a { text-decoration: none; }
.ix-event-copy h3 a:hover { text-decoration: underline; }
.ix-event-copy p { margin-top: 8px; }
.ix-admissions .ix-events-empty { margin-top: 48px; font-size: 18px; line-height: 1.8; }
.ix-phrase { display: inline-block; max-width: 100%; vertical-align: top; overflow-wrap: anywhere; }
.v2-admissions .ix-event-copy .ix-headline-fit { white-space: nowrap; text-wrap: nowrap; overflow-wrap: normal; }
.v2-admissions .ix-event-copy .ix-headline-fit .ix-phrase { display: inline; }
.v2-admissions .ix-interview-day { position: relative; }
.v2-admissions .ix-date-ring { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; transform: rotate(-90deg); }
.v2-admissions .ix-date-ring circle { fill: none; stroke: #ffde90; stroke-width: 3; stroke-dasharray: 1; }
.v2-admissions .ix-event-image { overflow: hidden; }
.v2-admissions .ix-event-image img { transition: transform 250ms ease-out; }
.v2-admissions .ix-event-copy h3 a { transition: color 180ms ease-out; }
.v2-admissions .ix-month-filters button { transition: color 180ms ease-out, background-color 180ms ease-out, border-color 180ms ease-out; }
.v2-admissions .ix-event:focus-within .ix-event-image img { transform: scale(1.025); }
.v2-admissions .ix-event:focus-within .ix-event-copy h3 a { color: #fff0ca; }
@media (hover: hover) and (pointer: fine) {
    .v2-admissions .ix-event:hover .ix-event-image img { transform: scale(1.025); }
    .v2-admissions .ix-event:hover .ix-event-copy h3 a { color: #fff0ca; }
}
@media (prefers-reduced-motion: reduce) {
    .v2-admissions .ix-event-image img, .v2-admissions .ix-event-copy h3 a, .v2-admissions .ix-month-filters button { transition: none; }
    .v2-admissions .ix-event:hover .ix-event-image img, .v2-admissions .ix-event:focus-within .ix-event-image img { transform: none; }
}
@media (max-width: 767px) {
    .ix-hero { height: 104vw; max-height: 620px; background-position: 60% center; }
    .ix-admissions .ix-title { text-align: center; font-size: 28px; }
    .ix-interview-grid { grid-template-columns: minmax(0, 1fr); margin-top: 28px; }
    .ix-poster-frame { max-width: 550px; width: 100%; margin-inline: auto; padding: 10px; border-radius: 16px 0; }
    .ix-calendar { min-height: 310px; padding: 110px 16px 28px; }
    .ix-admissions .ix-month { top: 24px; right: auto; left: 0; min-width: 86px; min-height: 62px; padding: 12px 10px; font-size: 26px; }
    .ix-calendar table { font-size: clamp(14px, 3.8vw, 20px); }
    .ix-calendar th { padding: 0 0 16px; }
    .ix-calendar td { height: 46px; }
    .ix-calendar td span, .ix-interview-day { width: 38px; height: 38px; }
    .ix-form { width: 94%; font-size: 16px; }
    .ix-field { margin-bottom: 24px; }
    .ix-field > label, .ix-field legend { margin-bottom: 12px; }
    .ix-options { padding: 4px 0 0; gap: 16px 28px; }
    .ix-options label { gap: 8px; }
    .ix-options input { flex-basis: 24px; width: 24px; height: 24px; margin: 0; }
    .ix-experience { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ix-sources { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 12px; }
    .ix-captcha { gap: 10px; }
    .ix-captcha img { width: 80px; height: 40px; }
    .ix-captcha button { max-width: 90px; font-size: 14px; }
    .ix-captcha input:not([type='hidden']) { min-width: 60px; padding-inline: 8px; }
    .ix-admissions .ix-cta { min-width: 200px; min-height: 54px; margin-top: 48px; padding: 12px 24px; }
    .ix-month-filters { gap: 16px 12px; }
    .ix-month-filters button { min-height: 36px; padding: 4px; font-size: 14px; }
    .ix-event-grid { grid-template-columns: minmax(0, 1fr); gap: 48px; margin-top: 36px; }
    .ix-event-copy { margin-top: 24px; }
    .ix-event-copy h3, .ix-event-copy p { font-size: 18px; }
    .ix-event-copy::before { width: 4px; }
}
