body[data-page=calendar] .calendar-main{width:100%;max-width:1180px;margin:0 auto;padding:28px 24px 60px;box-sizing:border-box;color:#513d2b;min-width:0}
body[data-page=calendar] .calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:14px 0 32px;margin:0;background:none;border:0;box-shadow:none}
body[data-page=calendar] .calendar-heading h1{font:650 clamp(32px,4vw,52px)/1.13 Georgia,serif;letter-spacing:-.04em;margin:13px 0 18px;color:#513a27}body[data-page=calendar] .calendar-heading h1 span{color:#9a794e}body[data-page=calendar] .calendar-heading p{font:14px/1.85 system-ui;max-width:53ch;color:#827059}
body[data-page=calendar] .calendar-heading-art{width:108px;height:120px;min-width:108px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:15px;border:1px solid #d2b98f;border-radius:18px;background:#ecdfc8;transform:rotate(4deg);box-shadow:6px 6px 0 #b49a6a1c}body[data-page=calendar] .calendar-heading-art span{font-size:28px}body[data-page=calendar] .calendar-heading-art small{font-size:9px;letter-spacing:.12em}
body[data-page=calendar] .calendar-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);align-items:start;gap:22px;margin:0}
body[data-page=calendar] .calendar-card{box-sizing:border-box;min-width:0;padding:24px;border:1px solid #ddc9a8;border-radius:22px;background:#fff9ee;box-shadow:0 8px 30px #5f431208}
body[data-page=calendar] .calendar-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}
.calendar-overline{font:750 9px/1.6 system-ui;letter-spacing:.13em;color:#9b7c54}
body[data-page=calendar] #calendarMonth{font:650 clamp(21px,2.5vw,29px)/1.25 Georgia,serif;color:#59412b;margin:7px 0 0;text-transform:capitalize}
body[data-page=calendar] .calendar-navigation{display:flex;gap:6px;align-items:center}body[data-page=calendar] .calendar-navigation button{min-height:40px;padding:9px 12px;border:1px solid #d7c09a;border-radius:9px;background:#f4e8d3;color:#6f5033;font:650 12px/1.4 system-ui;box-shadow:none}body[data-page=calendar] .calendar-navigation button:disabled{opacity:.4}
body[data-page=calendar] .calendar-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin:0 0 22px;padding:15px;background:#f2e8d6;border:0;border-radius:12px}
body[data-page=calendar] .calendar-toolbar label{display:flex;flex-direction:column;min-width:0;gap:7px;font:650 11px/1.5 system-ui;color:#846c4e}
body[data-page=calendar] .calendar-toolbar :is(input,select){width:100%;min-width:0;max-width:100%;box-sizing:border-box;min-height:40px;padding:9px 10px;border:1px solid #d6c3a4;border-radius:8px;background:#fffbf3;color:#644b34;font:500 12px/1.4 system-ui}
body[data-page=calendar] .calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;width:100%;min-width:0}
body[data-page=calendar] .calendar-weekday{text-align:center;font:700 10px/1.5 system-ui;padding:7px 0;color:#a08a6c;min-width:0}
body[data-page=calendar] .calendar-day{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:6px;min-width:0;min-height:78px;padding:9px 7px;border:1px solid transparent;border-radius:10px;background:#f7f0e3;color:#6b543a;font:500 12px/1.4 system-ui;box-shadow:none;overflow:hidden;cursor:pointer}
body[data-page=calendar] .calendar-day strong{font:700 13px/1.2 system-ui}body[data-page=calendar] .calendar-day.has-events{background:#eee7d7;border-color:#e1d3ba}body[data-page=calendar] .calendar-day.is-today strong{background:#785d3d;color:#fff8e9;border-radius:50%;min-width:23px;min-height:23px;display:grid;place-items:center;margin:-3px}
body[data-page=calendar] .calendar-day[aria-pressed=true]{background:#e5d4b7;border:2px solid #9c7848;padding:8px 6px;color:#503a24}body[data-page=calendar] .calendar-day:hover{border-color:#b79a6c}
body[data-page=calendar] .calendar-markers{display:flex;align-items:center;gap:3px;min-height:5px;max-width:100%;flex-wrap:wrap}body[data-page=calendar] .calendar-marker{width:5px;height:5px;border-radius:50%;background:#9a865a;flex:0 0 5px}.calendar-marker.marker-holiday{background:#b77562}.calendar-marker.marker-culture{background:#7d8c68}.calendar-marker.marker-event{background:#9b8baf}
body[data-page=calendar] .calendar-event-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:9px;line-height:1.35;overflow-wrap:anywhere;max-width:100%}
body[data-page=calendar] .calendar-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:18px}body[data-page=calendar] .calendar-legend{display:flex;gap:12px;flex-wrap:wrap;font:500 10px/1.5 system-ui;color:#947c5c}.calendar-legend span{display:inline-flex;align-items:center;gap:5px}.calendar-legend i{width:5px;height:5px;border-radius:50%;background:#9b8baf}.calendar-legend .legend-holiday{background:#b77562}.calendar-legend .legend-culture{background:#7d8c68}
body[data-page=calendar] .calendar-refresh{border:0;background:none;color:#8d704a;padding:8px 0;font:600 11px system-ui}body[data-page=calendar] #calendarStatus{font-size:10px;line-height:1.7;color:#9d8768;margin:12px 0 0}
body[data-page=calendar] .calendar-agenda{min-width:0;border:1px solid #d7c19d;background:#eee2cc;padding:23px;border-radius:22px;position:static}
body[data-page=calendar] .calendar-agenda-top{display:flex;align-items:center;gap:14px;padding:0 0 19px;border-bottom:1px solid #d8c5a4;margin-bottom:18px}.calendar-date-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:0 0 55px;min-height:65px;border:1px solid #cdb68e;background:#fff6e6;border-radius:12px}.calendar-date-tile small{font-size:10px;text-transform:uppercase}.calendar-date-tile strong{font:600 27px Georgia,serif}
body[data-page=calendar] #calendarDate{font:650 17px/1.45 Georgia,serif;margin:6px 0 0;color:#6d5133;overflow-wrap:anywhere}
body[data-page=calendar] .calendar-event{padding:20px;margin:0;border:1px solid #dfceb1;border-radius:15px;background:#fff9ef;min-width:0;box-sizing:border-box}.calendar-event+.calendar-event{margin-top:12px}.calendar-event h3{font:650 20px/1.4 Georgia,serif;margin:10px 0;color:#60452d;overflow-wrap:anywhere}.calendar-event h3 a{color:inherit;text-decoration:none}.calendar-event h3 a:hover{text-decoration:underline;text-underline-offset:4px}.event-category{display:inline-block;font:750 9px/1.5 system-ui;letter-spacing:.03em;text-transform:uppercase;padding:5px 8px;background:#e8dec7;color:#8d714a;border-radius:5px}.calendar-event p{font:400 13px/1.85 system-ui;color:#897356;overflow-wrap:anywhere}.calendar-event .calendar-event-meta{font:500 11px/1.7 system-ui;color:#a18b6d}.calendar-event .calendar-event-link{font:750 11px/1.5 system-ui;color:#785635;text-decoration:none;display:inline-flex;gap:15px;padding:8px 0;align-items:center}
body[data-page=calendar] .calendar-event h3{font:650 20px/1.4 Georgia,serif;margin:10px 0;color:#60452d;overflow-wrap:anywhere}body[data-page=calendar] .calendar-event h3 a{display:inline;font:inherit;color:inherit;text-decoration:none;border:0;background:transparent;border-radius:0;padding:0}body[data-page=calendar] .calendar-event h3 a:hover{background:transparent;text-decoration:underline;text-underline-offset:4px}body[data-page=calendar] .calendar-event p{font:400 13px/1.85 system-ui;color:#897356;overflow-wrap:anywhere}
body[data-page=calendar] .calendar-empty-state{text-align:center;padding:24px 4px}.calendar-empty-symbol{font-size:42px;color:#a78c61}.calendar-empty-state h3{font:600 20px/1.4 Georgia,serif}.calendar-empty-state p{font:13px/1.8 system-ui;color:#8f795b}
body[data-page=calendar] .calendar-month-events{margin:38px 0 0;min-width:0}.calendar-list-heading h2{font:650 29px/1.2 Georgia,serif;color:#5f442d;margin:10px 0 22px}.calendar-event-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;min-width:0}.calendar-event-list .calendar-event{margin:0}.calendar-list-empty{font:14px/1.8 system-ui;color:#8b7354;grid-column:1/-1}.calendar-disclaimer{font:11px/1.8 system-ui;color:#a38e6d;margin:18px 0}
.event-breadcrumb{display:flex;gap:10px;flex-wrap:wrap;font:12px/1.8 system-ui;color:#a18a69;margin:0 0 20px}.event-breadcrumb a{color:#805f3a}.event-story{border:1px solid #dbc5a2;border-radius:25px;padding:36px;background:#fff8ec;overflow-wrap:anywhere}.event-story-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;border-bottom:1px solid #e4d5bc;padding-bottom:25px}.event-story h1{font:650 clamp(28px,4vw,46px)/1.2 Georgia,serif;letter-spacing:-.035em;color:#5b3e27;margin:14px 0}.event-story-date{font:14px/1.8 system-ui;color:#9a7b53}.event-date-badge{flex:0 0 110px;display:flex;flex-direction:column;align-items:center;gap:5px;padding:20px 10px;border:1px solid #ceb58c;border-radius:17px;background:#eee0c5;color:#795b35}.event-date-badge strong{font:600 45px/1 Georgia,serif}.event-date-badge span{font-size:11px}.event-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:25px 0;padding:20px;border-radius:13px;background:#f0e6d2}.event-facts dt{font:750 10px/1.5 system-ui;color:#a18661;text-transform:uppercase;margin-bottom:7px}.event-facts dd{font:550 13px/1.7 system-ui;margin:0;color:#755c3e}.event-story-body{max-width:75ch;font:16px/1.95 system-ui;color:#74604a;white-space:normal}.event-source{display:inline-block;color:#846039;font:650 12px/1.8 system-ui;margin:15px 0}.event-story-footer{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin-top:28px}.event-story-footer small{font-size:11px;color:#a18a69}
body[data-page=calendar] :is(button,a,input,select):focus-visible{outline:3px solid #a37c4b;outline-offset:3px}
@media(max-width:950px){body[data-page=calendar] .calendar-layout{grid-template-columns:minmax(0,1fr)}body[data-page=calendar] .calendar-agenda{padding:20px}body[data-page=calendar] .calendar-event-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){body[data-page=calendar] .calendar-main{padding:20px 12px 40px!important;width:100%!important;max-width:100%!important}body[data-page=calendar] .calendar-heading{gap:10px;padding:8px 5px 23px}.calendar-heading-copy{min-width:0}body[data-page=calendar] .calendar-heading h1{font-size:34px}body[data-page=calendar] .calendar-heading p{font-size:12px}body[data-page=calendar] .calendar-heading-art{display:none}body[data-page=calendar] .calendar-card{padding:17px 12px;border-radius:18px}body[data-page=calendar] .calendar-controls{gap:15px}body[data-page=calendar] #calendarMonth{font-size:22px}body[data-page=calendar] .calendar-toolbar{grid-template-columns:minmax(0,1fr);padding:12px}body[data-page=calendar] .calendar-grid{gap:3px}body[data-page=calendar] .calendar-day{min-height:49px;padding:9px 5px;gap:7px;border-radius:8px;align-items:center}body[data-page=calendar] .calendar-day[aria-pressed=true]{padding:8px 4px}body[data-page=calendar] .calendar-event-name{display:none}body[data-page=calendar] .calendar-day strong{font-size:12px}body[data-page=calendar] .calendar-weekday{font-size:9px}body[data-page=calendar] .calendar-month-events{margin-top:28px}body[data-page=calendar] .calendar-event-list{grid-template-columns:minmax(0,1fr)}body[data-page=calendar] .calendar-agenda{padding:18px;border-radius:18px}.calendar-list-heading h2{font-size:26px}.event-story{padding:22px 18px;border-radius:18px}.event-story-heading{display:block}.event-date-badge{display:none}.event-facts{grid-template-columns:minmax(0,1fr);gap:15px;padding:18px}.event-story-body{font-size:15px}.event-story h1{font-size:30px}.event-story-footer>a{box-sizing:border-box;max-width:100%;white-space:normal}}
/* Category colors remain visible on hover, today and the selected date. */
body[data-page=calendar] .calendar-day.has-holiday{background:#f8dce6;border-color:#d99bb4;color:#68354b}body[data-page=calendar] .calendar-day.has-concert{background:#dcefdc;border-color:#96bf9c;color:#294b34}body[data-page=calendar] .calendar-day.has-holiday.has-concert{background:linear-gradient(135deg,#f8dce6 0%,#f8dce6 52%,#dcefdc 52%,#dcefdc 100%);border-color:#ad8d9b;color:#513b42}body[data-page=calendar] .calendar-day:is(.has-holiday,.has-concert)[aria-pressed=true]{outline:2px solid #785d3d;outline-offset:2px}body[data-page=calendar] .calendar-day.has-holiday:hover{border-color:#a64f75}body[data-page=calendar] .calendar-day.has-concert:hover{border-color:#487c55}body[data-page=calendar] .calendar-day:is(.has-holiday,.has-concert)[aria-pressed=true] strong{color:inherit}body[data-page=calendar] .calendar-marker.marker-holiday,body[data-page=calendar] .calendar-legend .legend-holiday{background:#bb4474}body[data-page=calendar] .calendar-marker.marker-concert,body[data-page=calendar] .calendar-legend .legend-concert{background:#32844a}body[data-page=calendar] .event-concert .event-category{color:#286038;background:#deeddd;border-color:#a9c8ac}body[data-page=calendar] .event-holiday .event-category{color:#8e3d5d;background:#f5dce6;border-color:#d8a5bb}body[data-page=calendar] .calendar-holiday-name{font-weight:750}
@media(max-width:600px){body[data-page=calendar] .calendar-day.has-holiday{min-height:69px}body[data-page=calendar] .calendar-holiday-name{display:-webkit-box;font-size:8px;line-height:1.3;-webkit-line-clamp:3;text-align:center}}
body[data-page=calendar] .calendar-day:is(.has-holiday,.has-concert).is-today strong{background:#fff8ed;color:#523b2b;box-shadow:0 0 0 1px currentColor}
@media(max-width:600px){body[data-page=calendar] .calendar-main .calendar-day.has-holiday{min-height:86px;padding:7px 3px;gap:4px}body[data-page=calendar] .calendar-main .calendar-day .calendar-holiday-name{display:-webkit-box;font:750 8px/1.25 system-ui;-webkit-box-orient:vertical;-webkit-line-clamp:3;max-height:30px;overflow:hidden;overflow-wrap:anywhere;white-space:normal;width:100%;margin:0;text-align:center}}
@media(min-width:601px){body[data-page=calendar] .calendar-main .calendar-day.has-holiday{min-height:94px}body[data-page=calendar] .calendar-main .calendar-day .calendar-holiday-name{display:-webkit-box;font:750 9px/1.3 system-ui;-webkit-box-orient:vertical;-webkit-line-clamp:3;max-height:36px;width:100%;overflow:hidden;overflow-wrap:anywhere;white-space:normal;margin:0}}

/* Let native month/select controls shrink inside narrow mobile cards. */
@media(max-width:600px){
 body[data-page=calendar] .calendar-main :is(.calendar-heading-copy,.calendar-month-label,.calendar-navigation,.calendar-toolbar,.calendar-bottom,.calendar-legend,.calendar-agenda-top>div,.calendar-event-meta){min-width:0;max-width:100%;overflow-wrap:anywhere}
 body[data-page=calendar] .calendar-main .calendar-controls{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
 body[data-page=calendar] .calendar-main .calendar-navigation{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;width:100%;gap:8px}
 body[data-page=calendar] .calendar-main .calendar-navigation button{box-sizing:border-box;min-width:0;width:100%;min-height:44px;margin:0;padding:10px 8px;white-space:normal}
 body[data-page=calendar] .calendar-main .calendar-toolbar{width:100%;grid-template-columns:minmax(0,1fr);padding:12px;gap:14px;box-sizing:border-box}
 body[data-page=calendar] .calendar-main .calendar-toolbar label{width:100%;min-width:0;max-width:100%;margin:0}
 body[data-page=calendar] .calendar-main .calendar-toolbar :is(input,select){display:block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-inline-size:0;min-height:44px;height:44px;margin:0;padding:9px 10px;font-size:16px;line-height:1.4}
 body[data-page=calendar] .calendar-main #calendarJump::-webkit-datetime-edit{min-width:0;padding:0}
 body[data-page=calendar] .calendar-main #calendarJump::-webkit-date-and-time-value{min-width:0;text-align:left}
 body[data-page=calendar] .calendar-main #calendarFilter{white-space:nowrap;text-overflow:ellipsis}
 body[data-page=calendar] .calendar-main .calendar-bottom{align-items:flex-start;gap:12px}
 body[data-page=calendar] .calendar-main .calendar-legend{gap:8px 12px}
 body[data-page=calendar] .calendar-main .calendar-legend span{min-width:0;max-width:100%;white-space:normal}
 body[data-page=calendar] .calendar-main .calendar-refresh{min-height:44px;max-width:100%;white-space:normal}
 body[data-page=calendar] .calendar-main :is(.calendar-event-meta,.event-category,.calendar-event-link){max-width:100%;overflow-wrap:anywhere;white-space:normal}
 body[data-page=calendar] .calendar-main .calendar-event-meta{display:block}
 body[data-page=calendar] .calendar-main .calendar-event-link{display:inline-block}
 body[data-page=calendar] .calendar-main .calendar-agenda-top>div:last-child{flex:1}
 body[data-page=calendar] .calendar-main .calendar-event{padding:16px}
 body[data-page=calendar] .calendar-main :is(.calendar-overline,.calendar-disclaimer,#calendarStatus){overflow-wrap:anywhere;white-space:normal}
 body[data-page=calendar] .calendar-main :is(.event-story,.event-facts,.event-facts>div){min-width:0;max-width:100%;box-sizing:border-box}
}
/* Explicit month/year selects avoid intrinsic native month-input widths on iOS. */
body[data-page=calendar] .calendar-main .calendar-toolbar .calendar-jump{display:flex;flex-direction:column;gap:7px;min-width:0;max-width:100%;font:650 11px/1.5 system-ui;color:#846c4e}
body[data-page=calendar] .calendar-main .calendar-month-picker{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:8px;min-width:0;width:100%;max-width:100%;box-sizing:border-box}
body[data-page=calendar] .calendar-main .calendar-month-picker select{display:block;box-sizing:border-box;width:100%;min-width:0;min-inline-size:0;max-width:100%;margin:0;white-space:nowrap;text-overflow:ellipsis}

.calendar-pagination{margin:20px 0 0;padding:16px;border:1px solid #dfcbb0;border-radius:14px;background:#fff9ed;text-align:center;box-sizing:border-box;max-width:100%}
.calendar-pagination p{margin:0 0 12px;color:#705236;font:600 13px/1.5 system-ui}
.calendar-page-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:7px;min-width:0}
.calendar-page-links>a,.calendar-page-links>span{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:42px;min-width:38px;max-width:100%;padding:9px 12px;border:1px solid #d9c2a0;border-radius:9px;color:#69482d;background:#fffcf5;text-decoration:none;font:650 13px/1.4 system-ui}
.calendar-page-links>a[aria-current=page]{background:#80532f;border-color:#80532f;color:#fffaf0}
.calendar-page-links>a:hover{border-color:#956b3f;box-shadow:0 2px 8px #65452d12}
.calendar-page-links>[aria-disabled=true]{opacity:.55;background:transparent}
.calendar-page-links>.page-gap{border:0;background:transparent;min-width:12px;padding:4px}
.calendar-page-links>a:focus-visible{outline:3px solid #a77139;outline-offset:3px}
#calendarMonthEvents{scroll-margin-top:18px}
@media(max-width:420px){.calendar-pagination{padding:12px 8px}.calendar-page-links{gap:5px}.calendar-page-links>a,.calendar-page-links>span{font-size:12px;padding:9px 10px;min-height:44px;white-space:normal}}
