.calendar-section{background:var(--paper);color:var(--ink)}
.calendar-section .section-top{border-color:#18171935}
.calendar-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;margin-bottom:65px}
.calendar-heading p{font-size:14px;color:#655f63;max-width:300px;padding-bottom:5px}
.calendar-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(30px,6vw,90px);align-items:start}
.calendar-board{min-width:0}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px}
.calendar-toolbar h3{font-family:Georgia,serif;font-size:clamp(24px,3vw,38px);font-weight:400;letter-spacing:-.04em;margin:0;text-transform:capitalize}
.calendar-section button{background:transparent;border:1px solid #18171945;color:var(--ink);border-radius:30px;min-height:44px;padding:10px 16px;font-size:11px;transition:background .2s}
.calendar-section button:hover{background:var(--pink)}
.calendar-section button:focus-visible,.calendar-section a:focus-visible,.calendar-section summary:focus-visible{outline-color:#b32d60}
.calendar-toolbar button{flex-shrink:0}
.calendar-navigation{display:flex;justify-content:space-between;gap:15px;margin:20px 0 22px}
.calendar-navigation button{border:0;padding:0;text-decoration:underline;text-underline-offset:5px;border-radius:0}
.calendar-navigation button:hover{background:transparent;color:#a12e57}
.calendar-table{width:100%;border-collapse:collapse;table-layout:fixed}
.calendar-table th{font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:400;color:#655f63;padding-bottom:15px}
.calendar-table abbr{text-decoration:none}
.calendar-table td{height:58px;border-top:1px solid #18171920;text-align:center;font-size:14px;padding:3px}
.calendar-table time,.calendar-table button{width:44px;max-width:100%;height:44px;display:inline-flex;justify-content:center;align-items:center;border-radius:50%;position:relative}
.calendar-table button{font-size:14px;border:1px solid #b32d60;padding:0;background:#f6a7c240}
.calendar-table button:after{content:'';width:4px;height:4px;position:absolute;bottom:5px;border-radius:50%;background:#b32d60}
.calendar-table button[aria-pressed=true]{background:var(--pink);border-color:var(--ink)}
.calendar-table [aria-current=date]{background:var(--ink);color:var(--paper)}
.calendar-table .calendar-outside{color:#aaa3a7}
.calendar-legend{font-size:10px;color:#655f63;display:flex;align-items:center;gap:9px;margin-top:18px}
.calendar-legend>span{width:6px;height:6px;border-radius:50%;background:#b32d60}
.calendar-program{border-top:1px solid #18171935;padding-top:23px}
.calendar-program>.eyebrow{color:#a12e57}
.calendar-program h3{font-family:Georgia,serif;font-weight:400;letter-spacing:-.04em;font-size:clamp(27px,3vw,40px);line-height:1.1;margin:18px 0 26px}
.calendar-empty{font-size:15px;line-height:1.7;color:#655f63;margin-bottom:24px;max-width:330px}
.calendar-empty strong{display:block;font-weight:400;font-size:18px;line-height:1.5;color:var(--ink);margin-bottom:10px}
.calendar-program>.text-link{margin-top:20px}
.calendar-event{padding:22px 0;border-top:1px solid #18171925;display:grid;grid-template-columns:60px minmax(0,1fr);gap:18px}
.calendar-event-date{display:flex;flex-direction:column;font-family:Barlow,'Arial Narrow',sans-serif;font-size:40px;line-height:1}
.calendar-event-date small{font-family:Arial,sans-serif;font-size:10px;text-transform:uppercase;line-height:1.5;margin-top:7px;letter-spacing:.06em}
.calendar-event h4{font-weight:500;font-size:20px;letter-spacing:-.03em;margin:0 0 8px}
.calendar-event p{font-size:12px;line-height:1.6;color:#655f63}
.calendar-event .calendar-event-times{color:var(--ink);font-size:13px;line-height:1.8;margin-top:10px;font-weight:600}
.calendar-event-times time{white-space:nowrap;font-variant-numeric:tabular-nums}
.calendar-event .text-link{font-size:10px;margin-top:8px}
.calendar-event-status{display:inline-block;font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:#655f63;margin-bottom:10px}
.calendar-archive{border-top:1px solid #18171935;margin-top:55px;padding-top:12px}
.calendar-archive summary{cursor:pointer;min-height:52px;display:flex;align-items:center;justify-content:space-between;font-size:14px;list-style:none}
.calendar-archive summary::-webkit-details-marker{display:none}
.calendar-archive summary:after{content:'+';font-size:23px;font-weight:400}
.calendar-archive[open] summary:after{content:'−'}
.calendar-past{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.calendar-fallback{font-size:15px;max-width:600px}
.calendar-fallback a{text-decoration:underline;text-underline-offset:4px}
.calendar-fallback ul{padding-left:20px;margin:18px 0}
.calendar-fallback li{line-height:1.8;margin-bottom:14px}
@media(min-width:601px) and (max-width:900px){.site-header{gap:16px}#main-nav{gap:18px}.header-listen{display:none}}
@media(max-width:900px){.calendar-layout{grid-template-columns:1fr;gap:40px}.calendar-heading{gap:25px;align-items:flex-start}.calendar-heading p{max-width:225px}.calendar-program h3{font-size:36px}.calendar-program>.text-link{margin-top:0}}
@media(max-width:600px){.calendar-heading{display:block;margin-bottom:40px}.calendar-heading h2{font-size:clamp(42px,9vw,60px)}.calendar-heading p{margin-top:25px;font-size:13px;max-width:none}.calendar-toolbar h3{font-size:27px}.calendar-toolbar button{padding:8px 10px;font-size:10px}.calendar-table td{height:50px;padding:2px}.calendar-table time,.calendar-table button{width:36px;height:36px;min-height:36px}.calendar-past{grid-template-columns:1fr;gap:0}.calendar-archive{margin-top:35px}}
