.event-banner,.events-section{font-family:Manrope,system-ui,sans-serif;color:#032f58}
.event-banner{display:flex;align-items:center;gap:24px;padding:22px clamp(20px,6vw,90px);background:#fbdd28;border-block:1px solid #032f5820}
.event-banner-label{font-size:.73rem;text-transform:uppercase;font-weight:900;letter-spacing:.1em}.event-banner>div{display:grid;gap:4px;flex:1}.event-banner strong{font-size:1.1rem}.event-banner>div>span{font-size:.85rem}.event-banner>a{font-weight:800;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center;gap:20px;color:inherit}
.events-section{padding:80px clamp(20px,6vw,90px);background:#e9fbf7;scroll-margin-top:90px}
.events-heading{margin-bottom:38px;max-width:680px}.events-kicker{font-size:.75rem;text-transform:uppercase;letter-spacing:.14em;font-weight:900;color:#167b83}
.events-heading h2{font-size:clamp(2.5rem,5vw,4.6rem);font-weight:800;line-height:1.05;letter-spacing:-.05em;margin:18px 0}.events-heading h2 em{font-style:normal;color:#167b83}.events-heading>p:last-child{color:#42667b;line-height:1.6}
.public-event-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:24px;align-items:start}
.public-event-card{min-width:0;background:#fff;border:1px solid #b6d3ce;border-radius:20px;overflow:hidden;scroll-margin-top:100px;max-width:600px;color:#032f58}
.event-card-body{padding:26px}.event-flyer{padding:16px;background:#d8f2ec}.event-flyer img{display:block;width:100%;height:auto;max-height:500px;object-fit:contain;border-radius:10px}
.event-date{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:.8rem;font-weight:900;color:#167b83}.event-cancelled{padding:5px 8px;background:#fde8e9;color:#963145;border-radius:6px;font-size:.7rem}
.event-card-body h3{font-size:1.5rem;line-height:1.2;letter-spacing:-.025em;margin:15px 0 12px;overflow-wrap:anywhere}.event-time{font-size:.88rem;font-weight:700}.event-location,.event-description{font-size:.9rem;line-height:1.65;color:#42667b}.event-description{white-space:pre-line;overflow-wrap:anywhere}
.event-links{display:flex;gap:8px 18px;flex-wrap:wrap;margin-top:18px}.event-links a{display:inline-flex;align-items:center;min-height:44px;font-size:.82rem;font-weight:800;color:#032f58;text-underline-offset:4px}
.event-calendar{max-width:760px;border:1px solid #b6d3ce;border-radius:20px;background:#fff;padding:24px;margin:0 0 32px}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.calendar-month{font-size:1.25rem;margin:0}
.event-calendar button{font:inherit;cursor:pointer;color:#032f58}.calendar-toolbar button{border:1px solid #b6d3ce;background:#fff;border-radius:50%;width:44px;height:44px}.calendar-toolbar button:disabled{opacity:.35;cursor:default}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekdays{font-size:.75rem;font-weight:800;color:#42667b;text-align:center;margin-bottom:10px}
.calendar-days button{min-height:52px;position:relative;border:1px solid transparent;border-radius:10px;background:#f5f8f7;font-size:.88rem}.calendar-days button.has-events{background:#e1f8ee;font-weight:900;border-color:#93cfc0}.calendar-days button.has-events:after{content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:#167b83;bottom:5px;left:calc(50% - 2px)}.calendar-days button[aria-pressed=true]{background:#fbdd28;border-color:#032f58}.calendar-days button.is-today{box-shadow:inset 0 0 0 1px #167b83}
.calendar-footer{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:18px}.calendar-selection,.calendar-empty{font-size:.85rem;color:#42667b;line-height:1.5}.calendar-footer button{padding:10px 0;border:0;background:none;font-weight:800;font-size:.78rem;text-decoration:underline;white-space:nowrap}
.events-section [hidden],.event-calendar[hidden],.public-event-card[hidden]{display:none!important}
.event-calendar button:focus-visible,.event-links a:focus-visible,.event-banner a:focus-visible{outline:3px solid #167b83;outline-offset:3px}
@media(max-width:600px){.event-banner{flex-wrap:wrap;gap:10px 16px;padding:20px}.event-banner-label{flex-basis:100%}.event-banner>div{min-width:200px}.event-banner>a{font-size:.85rem}.events-section{padding:56px 20px}.event-calendar{padding:16px}.calendar-days{gap:3px}.calendar-days button{min-height:42px;border-radius:7px}.calendar-month{font-size:1.05rem}.calendar-footer{align-items:flex-start;flex-direction:column;gap:0}.event-card-body{padding:22px}}
