.event-calendar{max-width:1500px;margin:10px auto 65px;padding:35px 4%;color:var(--navy)}
.calendar-intro{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:28px}
.calendar-intro h2{font:italic 900 clamp(32px,4.8vw,70px)/1 var(--display);letter-spacing:-.06em}
.calendar-intro h2 span{color:var(--blue-core)}.calendar-intro p{font-size:15px;line-height:1.4;max-width:28ch}
.calendar-months{display:grid;grid-template-columns:1fr 1fr;gap:25px}
.calendar-month{border:1px solid #08445c40;border-radius:16px;overflow:hidden;background:var(--paper);box-shadow:0 8px 0 #08445c09}
.calendar-month-heading{background:var(--navy);color:var(--paper);padding:19px 23px;display:flex;justify-content:space-between;align-items:center}
.calendar-month-heading h3{font:italic 900 clamp(27px,3vw,43px)/1 var(--display);letter-spacing:-.055em}.calendar-month-heading>span{font-size:15px;color:var(--lime)}
.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));padding:12px}
.calendar-weekday{text-align:center;font-size:11px;font-weight:700;color:var(--blue-core);padding:7px 0 12px}
.calendar-day{min-height:74px;padding:7px 4px;border-top:1px solid #08445c17;border-right:1px solid #08445c10;display:flex;flex-direction:column;align-items:start;gap:4px;min-width:0}
.calendar-day:nth-child(7n){border-right:0}.day-number{font-size:13px;width:24px;height:24px;display:grid;place-items:center;border-radius:50%}.is-today .day-number{background:var(--blue-core);color:white}.is-past .day-number{opacity:.35}
.calendar-event{background:var(--blue-core);color:var(--paper);padding:5px 6px;border-radius:5px;font-size:11px;font-weight:600;line-height:1.2;text-align:left;max-width:100%;overflow-wrap:anywhere;transition:background .2s,transform .2s}
.calendar-event:hover,.calendar-event:focus-visible{background:var(--navy);transform:translateY(-2px)}.calendar-empty{padding:5px 20px 22px;font-size:13px;color:var(--blue-core)}.calendar-status{font-size:12px;margin-top:20px}
.calendar-dialog{border:1px solid #08445c30;border-radius:20px;background:var(--paper);color:var(--navy);padding:48px;max-width:600px;width:calc(100% - 32px);max-height:85dvh;overflow:auto;box-shadow:0 30px 100px #0004}
.calendar-dialog::backdrop{background:#08445c88;backdrop-filter:blur(7px)}.calendar-open{overflow:hidden}.calendar-close{position:absolute;right:17px;top:13px;background:none;font-size:34px;line-height:1;width:40px;height:40px}.calendar-event-category{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue-core)}.calendar-dialog h3{font:italic 900 clamp(35px,5vw,65px)/.97 var(--display);letter-spacing:-.06em;margin:22px 0}.calendar-event-when{font-size:16px;font-weight:600}.calendar-event-venue{font-size:16px;margin-top:8px}.calendar-event-description{font-size:19px;line-height:1.5;margin:25px 0;white-space:pre-line}.calendar-ticket-note{font-size:12px;margin-top:15px}
@media(max-width:900px){.calendar-months{grid-template-columns:1fr}.calendar-day{min-height:85px}.calendar-event{font-size:12px}}
@media(max-width:520px){.event-calendar{padding:25px 16px;margin-bottom:30px}.calendar-intro{display:block}.calendar-intro h2{font-size:39px}.calendar-intro p{margin-top:16px;max-width:none}.calendar-months{gap:20px}.calendar-day{min-height:66px;padding:5px 2px}.calendar-days{padding:8px}.calendar-event{font-size:10px;padding:5px 3px;min-height:44px;width:100%}.calendar-dialog{padding:40px 25px 30px}.calendar-month-heading{padding:16px}.calendar-event-description{font-size:17px}}
