.page-academic-calendar .site-wrap { min-height: 100vh; padding-top: clamp(2px,.35vw,6px); }
.page-academic-calendar .nav-header { top: clamp(4px,.45vw,8px); margin-bottom: 10px; }
.academic-calendar-page { display: grid; gap: 26px; padding-bottom: 44px; background: #f6f8fb; }
.calendar-hero { padding-top: 4px; }
.calendar-hero-shell {
    position: relative; min-height: 420px; display: grid;
    grid-template-columns: minmax(0,1.35fr) minmax(300px,.65fr); align-items: stretch; gap: 22px;
    padding: clamp(34px,5vw,72px); overflow: hidden; border: 1px solid rgba(31,78,151,.22);
    border-radius: 30px; color: #fff;
    background: radial-gradient(circle at 84% 8%,rgba(215,25,32,.24),transparent 24%),
        radial-gradient(circle at 16% 110%,rgba(31,110,218,.55),transparent 42%),
        linear-gradient(135deg,#071b44 0%,#0b357e 54%,#0d4dba 100%);
    box-shadow: 0 34px 70px -48px rgba(7,27,68,.95);
}
.calendar-hero-shell::before {
    content: ""; position: absolute; inset: 0; opacity: .16;
    background-image: linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px);
    background-size: 54px 54px; pointer-events: none;
}
.calendar-hero-copy,.calendar-hero-card { position: relative; z-index: 1; }
.calendar-hero-copy { display: flex; flex-direction: column; justify-content: center; }
.calendar-kicker { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; color: #ed1c24; font-size: 12px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.calendar-kicker span { width: 34px; height: 3px; border-radius: 999px; background: #d71920; }
.calendar-hero-copy h1 { max-width: 780px; margin: 0; color: #fff; font-family: Manrope,Inter,sans-serif; font-size: clamp(43px,5.2vw,76px); font-weight: 850; line-height: 1.02; letter-spacing: -.045em; text-wrap: balance; }
.calendar-hero-copy h1 span { color: #ed1c24; }
.calendar-hero-copy>p:not(.calendar-kicker) { max-width: 690px; margin: 20px 0 0; color: rgba(255,255,255,.78); font-size: clamp(16px,1.25vw,19px); line-height: 1.65; }
.calendar-hero-card { align-self: center; min-height: 246px; display: flex; flex-direction: column; justify-content: center; padding: 30px; border: 1px solid rgba(255,255,255,.2); border-radius: 26px; background: rgba(255,255,255,.12); box-shadow: inset 0 1px rgba(255,255,255,.14); backdrop-filter: blur(16px); }
.hero-card-icon { width: 58px; height: 58px; display: grid; place-items: center; margin-bottom: 24px; border-radius: 18px; color: #fff; background: #ed1c24; }
.hero-card-icon svg,.calendar-option svg,.document-actions svg,.document-fallback svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.calendar-hero-card p { margin: 0 0 6px; color: rgba(255,255,255,.65); font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.calendar-hero-card h2 { margin: 0; color: #fff; font: 800 clamp(25px,2.3vw,35px)/1.1 Manrope,Inter,sans-serif; }
.calendar-hero-card>span { width: max-content; margin-top: 16px; padding: 7px 11px; border-radius: 999px; color: #ed1c24; background: rgba(215,25,32,.14); font-size: 12px; font-weight: 800; }

.calendar-workspace { scroll-margin-top: 22px; }
.calendar-workspace-shell { display: grid; grid-template-columns: minmax(280px,360px) minmax(0,1fr); gap: 22px; align-items: start; }
.calendar-selector,.calendar-document { border: 1px solid #dce4f1; border-radius: 28px; background: #fff; box-shadow: 0 26px 56px -44px rgba(13,36,86,.72); }
.calendar-selector { position: sticky; top: 18px; padding: 26px; }
.selector-heading>span,.document-toolbar p { margin: 0 0 7px; color: #0d4dba; font-size: 11px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.selector-heading h2,.document-toolbar h2 { margin: 0; color: #071b44; font-family: Manrope,Inter,sans-serif; font-size: clamp(24px,2vw,31px); line-height: 1.12; }
.calendar-list { display: grid; gap: 9px; margin-top: 22px; }
.calendar-option { min-height: 76px; display: flex; align-items: center; gap: 12px; padding: 11px 12px; border: 1px solid #e3e9f3; border-radius: 19px; color: #43506a; background: #fbfcfe; text-decoration: none; transition: transform .2s ease,border-color .2s ease,background .2s ease; }
.calendar-option:hover { transform: translateX(3px); border-color: #bfd2ef; background: #f5f9ff; }
.calendar-option.is-active { color: #fff; border-color: transparent; background: linear-gradient(135deg,#0d4dba,#071b44); box-shadow: 0 18px 30px -24px rgba(7,27,68,.9); }
.option-icon { width: 42px; height: 42px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 14px; color: #0d4dba; background: #edf4ff; }
.is-active .option-icon { color: #fff; background: linear-gradient(180deg,#ed1c24,#b70f17); }
.option-icon svg { width: 20px; height: 20px; }
.option-copy { min-width: 0; display: grid; gap: 4px; }
.option-copy strong { font-size: 13px; line-height: 1.2; }
.option-copy small { color: #7a869b; font-size: 11px; }
.is-active .option-copy small { color: rgba(255,255,255,.68); }
.option-arrow { margin-left: auto; font-weight: 900; }
.calendar-note { margin-top: 18px; padding: 17px; border-radius: 18px; color: #8f151b; background: #fff1f2; border: 1px solid #f4b8bc; }
.calendar-note strong { font-size: 13px; }
.calendar-note p { margin: 6px 0 0; color: #9f3136; font-size: 12px; line-height: 1.55; }

.calendar-document { min-width: 0; overflow: hidden; }
.document-toolbar { min-height: 100px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 26px; border-bottom: 1px solid #e3e9f3; }
.document-actions a { min-height: 44px; display: inline-flex; align-items: center; gap: 9px; padding: 0 16px; border-radius: 999px; color: #fff; background: linear-gradient(135deg,#0d4dba,#071b44); font-size: 13px; font-weight: 850; text-decoration: none; }
.document-actions svg { width: 18px; height: 18px; }
.document-frame-wrap { position: relative; height: min(920px,82vh); min-height: 640px; padding: 16px; background: linear-gradient(180deg,#eef2f7,#e4eaf3); }
.document-frame-wrap iframe { position: relative; z-index: 2; width: 100%; height: 100%; display: block; border: 0; border-radius: 16px; background: #fff; box-shadow: 0 16px 34px -26px rgba(7,27,68,.6); }
.document-fallback { position: absolute; inset: 16px; z-index: 1; display: grid; place-content: center; justify-items: center; padding: 28px; border-radius: 16px; text-align: center; background: #fff; }
.document-fallback svg { width: 48px; height: 48px; color: #0d4dba; }
.document-fallback h3 { margin: 16px 0 5px; color: #071b44; }
.document-fallback p { max-width: 430px; margin: 0; color: #68748a; line-height: 1.55; }
.document-fallback a { margin-top: 18px; color: #0d4dba; font-weight: 800; }

@media (max-width:1040px) {
    .calendar-hero-shell { grid-template-columns: 1fr; }
    .calendar-hero-card { min-height: auto; display: grid; grid-template-columns: auto 1fr; column-gap: 18px; }
    .hero-card-icon { grid-row: span 3; margin: 0; }
    .calendar-workspace-shell { grid-template-columns: 1fr; }
    .calendar-selector { position: static; }
    .calendar-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width:680px) {
    .academic-calendar-page { gap: 18px; }
    .calendar-hero-shell { min-height: auto; padding: 30px 22px; border-radius: 24px; }
    .calendar-hero-copy h1 { font-size: clamp(39px,13vw,54px); }
    .calendar-hero-card { padding: 22px; border-radius: 20px; }
    .calendar-selector { padding: 20px; border-radius: 22px; }
    .calendar-list { grid-template-columns: 1fr; }
    .calendar-document { border-radius: 22px; }
    .document-toolbar { align-items: flex-start; flex-direction: column; padding: 20px; }
    .document-actions,.document-actions a { width: 100%; justify-content: center; }
    .document-frame-wrap { min-height: 560px; height: 72vh; padding: 10px; }
    .document-fallback { inset: 10px; }
}
@media (prefers-reduced-motion:reduce) {
    .calendar-option { transition: none; }
}
