.calendar-page {
    --bg: #0d2a33;
    --bg-deep: #071a20;
    --surface: #143944;
    --surface-soft: #1d4b57;
    --field: #173e49;
    --text: #f4eddf;
    --muted: #b9c8c5;
    --faint: #819d9c;
    --sand: #ddc69c;
    --sand-deep: #bfa574;
    --orange: #cd682f;
    --ink: #102f38;
    --paper: #cec2ad;
    --line: #315c67;
    --header: #091d23;
    background: var(--bg-deep);
}

html[data-theme="light"] .calendar-page {
    --bg: #b8ad99;
    --bg-deep: #9c9281;
    --surface: #ccc0ab;
    --surface-soft: #afbfba;
    --field: #d5cab7;
    --text: #102e36;
    --muted: #314b50;
    --faint: #53696b;
    --sand: #d8c39d;
    --sand-deep: #8f744c;
    --orange: #a84b24;
    --ink: #112f37;
    --paper: #d7ccb9;
    --line: #788c8b;
    --header: #a89d8a;
}

.calendar-page .site-header,
.calendar-page .footer-top,
.calendar-page .menu-toggle,
.calendar-page .button { border: 0; }
.calendar-page .menu-toggle { border-radius: 0; background: var(--surface); }
.calendar-page .theme-toggle { border: 2px solid var(--line); border-radius: 50%; background: var(--surface); color: var(--sand); }
.calendar-page .theme-toggle:hover,
.calendar-page .theme-toggle:focus-visible { border-color: var(--sand); background: var(--surface); color: var(--sand); }
.calendar-page .button { border-radius: 0; }
.calendar-menu-toggle .fa-xmark { display: none; }
.calendar-menu-toggle[aria-expanded="true"] .fa-bars { display: none; }
.calendar-menu-toggle[aria-expanded="true"] .fa-xmark { display: inline-block; }

.calendar-hero {
    min-height: calc(100vh - 86px);
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(330px, .9fr);
    align-items: center;
    gap: clamp(3rem, 8vw, 8rem);
    padding: clamp(5rem, 10vw, 9rem) max(24px, calc((100vw - var(--max)) / 2));
    background: var(--bg);
}
.calendar-hero h1 { margin-bottom: 2rem; font-size: clamp(4.8rem, 10vw, 9.5rem); line-height: .8; }
.calendar-hero h1 span, .calendar-hero h1 strong { display: block; }
.calendar-hero h1 strong { color: var(--orange); font-size: .62em; letter-spacing: -.045em; line-height: 1.08; }
.calendar-hero > div:first-child > p:not(.calendar-lede) { max-width: 680px; color: var(--muted); }
.calendar-lede { max-width: 650px; margin-bottom: .85rem; color: var(--text); font-family: var(--display); font-size: clamp(1.5rem, 2.7vw, 2.35rem); font-weight: 600; line-height: 1.25; }
.calendar-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2.2rem; }
.calendar-actions .button { gap: .7rem; }
.calendar-download { background: var(--surface-soft); color: var(--text); }
.calendar-download:hover, .calendar-download:focus-visible { background: var(--orange); color: #fff8ed; }
.calendar-share { display: grid; grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr); align-items: center; gap: clamp(2rem, 6vw, 6rem); padding: clamp(2rem, 4vw, 3.5rem) max(24px, calc((100vw - var(--max)) / 2)); background: var(--surface); }
.calendar-share > div { display: flex; align-items: center; gap: 1.15rem; }
.calendar-share > div > i { color: var(--sand); font-size: 1.6rem; }
.calendar-share h2 { margin: 0 0 .2rem; font-size: clamp(1.55rem, 2.5vw, 2.2rem); }
.calendar-share p { margin: 0; color: var(--muted); font-size: .88rem; }
.calendar-share nav { display: grid; grid-template-columns: repeat(7, minmax(62px, 1fr)); gap: .45rem; }
.calendar-share nav a { min-height: 76px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .45rem; padding: .65rem .3rem; background: var(--bg-deep); color: var(--text); text-decoration: none; transition: background-color .2s ease, color .2s ease, transform .2s ease; }
.calendar-share nav a:hover, .calendar-share nav a:focus-visible { background: var(--orange); color: #fff8ed; transform: translateY(-2px); }
.calendar-share nav i { font-size: 1.2rem; }
.calendar-share nav span { font-family: var(--display); font-size: .62rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.calendar-share-top { grid-template-columns: 1fr; gap: 1.4rem; margin-top: 2.5rem; padding: 1.5rem; background: var(--bg-deep); }
.calendar-share-top nav { grid-template-columns: repeat(7, minmax(52px, 1fr)); }
.calendar-share-top nav a { min-height: 64px; background: var(--surface); }
.calendar-share-middle { background: var(--surface-soft); }
.calendar-share-bottom { background: #102e37; }
html[data-theme="light"] .calendar-share-bottom { background: #83928e; color: #fff8ed; }
html[data-theme="light"] .calendar-share-bottom p { color: #edf1ed; }
.calendar-order { min-height: 560px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 3rem; background: var(--bg-deep); text-align: center; }
.calendar-order > span { color: var(--faint); font-family: var(--display); font-size: 1rem; font-weight: 700; letter-spacing: .2em; }
.calendar-order strong { color: var(--orange); font-family: var(--display); font-size: clamp(4rem, 9vw, 8rem); letter-spacing: -.07em; line-height: 1; }
.calendar-order p { margin: .7rem 0 2rem; color: var(--muted); font-family: var(--display); font-size: 1.1rem; font-weight: 700; text-transform: uppercase; }
.calendar-order i { color: var(--sand); font-size: 3rem; }

.calendar-declaration { display: grid; grid-template-columns: repeat(3, 1fr); background: var(--bg-deep); }
.calendar-declaration article { padding: clamp(2.5rem, 5vw, 4.5rem); background: var(--surface); }
.calendar-declaration article:nth-child(2) { background: var(--surface-soft); }
.calendar-declaration article:nth-child(3) { background: #102e37; }
html[data-theme="light"] .calendar-declaration article:nth-child(3) { background: #83928e; color: #fff8ed; }
.calendar-declaration i { margin-bottom: 1.5rem; color: var(--sand); font-size: 1.7rem; }
.calendar-declaration h2 { margin-bottom: .8rem; font-size: clamp(1.75rem, 3vw, 2.5rem); }
.calendar-declaration p { margin: 0; color: var(--muted); }
html[data-theme="light"] .calendar-declaration article:nth-child(3) p { color: #eef2ed; }

.calendar-story,
.calendar-case,
.full-calendar,
.calendar-closing,
.calendar-sources { padding: clamp(6rem, 11vw, 10rem) max(24px, calc((100vw - var(--max)) / 2)); }
.calendar-story { background: var(--paper); color: var(--ink); }
.calendar-story-intro { max-width: 950px; margin-bottom: clamp(4rem, 8vw, 7rem); }
.calendar-story-intro h2 { font-size: clamp(3rem, 6vw, 6rem); }
.calendar-story-intro p { max-width: 720px; color: #314f55; font-size: 1.1rem; }
.calendar-history { display: grid; gap: 1rem; }
.calendar-history article { display: grid; grid-template-columns: minmax(100px, .28fr) 1fr; gap: clamp(2rem, 7vw, 7rem); padding: clamp(2rem, 5vw, 4.5rem); background: #b9ad98; }
.calendar-history article:nth-child(even) { background: #a9bbb6; }
.calendar-history span { color: #8e3e20; font-family: var(--display); font-size: 1rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.calendar-history h3 { margin-bottom: .7rem; font-size: clamp(2rem, 4vw, 3.4rem); }
.calendar-history p { max-width: 760px; margin: 0; color: #2d4a50; }

.calendar-case { background: var(--bg-deep); }
.calendar-case > div:first-child { max-width: 980px; margin-bottom: clamp(4rem, 8vw, 7rem); }
.calendar-case h2 { font-size: clamp(3.3rem, 7vw, 6.8rem); }
.calendar-case-lede { max-width: 780px; color: var(--muted); font-size: 1.15rem; }
.calendar-case-points { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.calendar-case-points article { min-height: 320px; padding: clamp(2rem, 4vw, 3.5rem); background: var(--surface); }
.calendar-case-points article:nth-child(2), .calendar-case-points article:nth-child(3) { background: var(--surface-soft); }
.calendar-case-points i { margin-bottom: 2rem; color: var(--sand); font-size: 1.65rem; }
.calendar-case-points h3 { margin-bottom: .8rem; }
.calendar-case-points p { margin: 0; color: var(--muted); }
.calendar-conviction { max-width: 1020px; margin: clamp(4rem, 8vw, 7rem) 0 0; color: var(--sand); font-family: var(--display); font-size: clamp(2rem, 4.2vw, 4rem); font-weight: 600; letter-spacing: -.03em; line-height: 1.18; }

.full-calendar { background: var(--paper); color: var(--ink); }
.full-calendar > header { max-width: 900px; margin-bottom: clamp(4rem, 7vw, 6rem); }
.full-calendar > header h2 { margin-bottom: 1rem; font-size: clamp(3.2rem, 7vw, 6.5rem); }
.full-calendar > header p { max-width: 680px; color: #334f54; }
.full-calendar > header .button { margin-top: 1.2rem; background: var(--ink); color: #fff8ed; }
.calendar-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.month-card { padding: clamp(1.5rem, 3.5vw, 3rem); background: #b9ad98; }
.month-card:nth-child(even) { background: #a9bbb6; }
.month-card-first { background: #973f20; color: #fff8ed; }
.month-card-last { background: #153b45 !important; color: #fff8ed; }
.month-heading { min-height: 85px; display: grid; grid-template-columns: auto 1fr auto; align-items: start; gap: 1.25rem; margin-bottom: 1.8rem; }
.month-heading > span { color: #7e3820; font-family: var(--display); font-size: 1rem; font-weight: 700; }
.month-card-first .month-heading > span, .month-card-last .month-heading > span { color: var(--sand); }
.month-heading h3 { margin: 0; font-size: clamp(2rem, 4vw, 3.2rem); }
.month-heading p { margin: 0; color: #425c60; font-family: var(--display); }
.month-card-first .month-heading p, .month-card-last .month-heading p { color: #d8dfdb; }
.month-heading strong { color: inherit; font-family: var(--display); font-size: .69rem; letter-spacing: .1em; text-transform: uppercase; }
.month-weekdays,
.month-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: .3rem; }
.month-weekdays { margin-bottom: .45rem; }
.month-weekdays span { color: #53686b; font-family: var(--display); font-size: .64rem; font-weight: 700; text-align: center; text-transform: uppercase; }
.month-card-first .month-weekdays span, .month-card-last .month-weekdays span { color: #d3dcd8; }
.month-days span { display: grid; min-height: 42px; place-items: center; background: rgba(255,255,255,.23); color: #17343c; font-family: var(--display); font-size: .8rem; font-weight: 700; }
.month-days .day-empty { background: transparent; }
.month-card-first .month-days span:not(.day-empty), .month-card-last .month-days span:not(.day-empty) { background: rgba(255,255,255,.12); color: #fff8ed; }
.month-days .day-special { background: var(--sand) !important; color: var(--ink) !important; }

.calendar-closing { background: var(--bg); text-align: center; }
.calendar-closing > i { margin-bottom: 2rem; color: var(--sand); font-size: 2.7rem; }
.calendar-closing h2 { margin-bottom: 1.5rem; color: var(--text); font-size: clamp(3.2rem, 7.5vw, 7rem); }
.calendar-closing p { max-width: 800px; margin: 0 auto 2.2rem; color: var(--muted); }
.calendar-sources { background: var(--bg-deep); }
.calendar-sources h2 { font-size: 1.35rem; }
.calendar-sources p { max-width: 940px; margin: 0; color: var(--faint); font-size: .86rem; }
.calendar-sources a { color: var(--sand); }

@media (max-width: 900px) {
    .calendar-hero { grid-template-columns: 1fr; }
    .calendar-order { min-height: 420px; }
    .calendar-declaration { grid-template-columns: 1fr; }
    .calendar-grid { grid-template-columns: 1fr; }
    .calendar-share { grid-template-columns: 1fr; }
    .calendar-share nav { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 760px) {
    .calendar-page .main-nav,
    .calendar-page .main-nav.is-open,
    .calendar-page .main-nav a { border: 0; }
    .calendar-page .main-nav a:nth-child(even) { background: var(--surface); }
    .calendar-hero { padding-top: 4rem; }
    .calendar-order { min-height: 340px; }
    .calendar-case-points { grid-template-columns: 1fr; }
    .calendar-history article { grid-template-columns: 1fr; gap: 1rem; }
    .month-heading { grid-template-columns: auto 1fr; }
    .month-heading strong { grid-column: 2; }
    .month-days span { min-height: 36px; }
    .calendar-share nav, .calendar-share-top nav { grid-template-columns: repeat(2, 1fr); }
    .calendar-share nav a { min-height: 62px; flex-direction: row; }
}

@media print {
    .calendar-page .site-header,
    .calendar-page .site-footer,
    .calendar-hero,
    .calendar-declaration,
    .calendar-story,
    .calendar-case,
    .calendar-share,
    .calendar-closing,
    .calendar-sources,
    .full-calendar > header .button { display: none !important; }
    .full-calendar { padding: 0; background: #fff; }
    .calendar-grid { gap: 8mm; }
    .month-card { break-inside: avoid; }
}
