
.cal-hero{background:#004596;color:white;padding:54px 0 44px;border-bottom:5px solid #009fe3}
.cal-hero h1{font-size:clamp(40px,6vw,82px);font-weight:900;font-style:italic;line-height:1;text-transform:uppercase;margin:16px 0 24px;max-width:1000px}
.cal-hero p{max-width:670px;color:white}
.cal-hero .eyebrow{color:white}
.cal-tools{display:flex;align-items:end;flex-wrap:wrap;gap:16px;padding:28px 0}
.cal-categories{display:flex;gap:6px;flex-wrap:wrap;margin-right:auto}
.cal-categories button{padding:12px 16px;min-height:48px;border:1px solid #ccdbea;background:white;color:#004596;border-radius:3px;font-weight:700;cursor:pointer}
.cal-categories button[aria-pressed=true]{background:#004596;color:white;border-color:#004596}
.cal-tools label{font-size:12px;font-weight:700;color:#415970;display:grid;gap:6px}
.cal-tools select,.cal-tools input{font:inherit;font-size:16px;color:#102e4b;border:1px solid #bccddd;background:white;border-radius:3px;padding:12px;min-height:48px;max-width:100%}
.cal-search{flex:1 1 190px;max-width:270px}
.cal-count{font-size:13px;color:#415970;margin:0 0 24px}
.cal-group{padding:10px 0 48px}
.cal-group-head{display:flex;gap:24px;align-items:baseline;justify-content:space-between;border-top:2px solid #004596;padding-top:18px;margin-bottom:22px}
.cal-group h2{font-size:clamp(26px,3vw,42px);font-weight:900;text-transform:uppercase;color:#004596;margin:0}
.cal-group-head p{font-size:13px;color:#415970;max-width:430px;margin:0}
.cal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.cal-card{display:flex;flex-direction:column;min-width:0;min-height:330px;background:#004596;color:white;border-top:5px solid #009fe3;border-radius:4px;overflow:hidden}
.cal-card-main{padding:24px;display:flex;flex-direction:column;flex:1}
.cal-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:11px;font-weight:700;letter-spacing:.06em}
.cal-status{padding:5px 7px;background:#ffffff20;border:1px solid #ffffff55;border-radius:2px;letter-spacing:0}
.cal-date{margin:24px 0 20px;display:flex;gap:12px;align-items:baseline}
.cal-date strong{font-size:clamp(48px,5vw,72px);font-weight:900;font-style:italic;line-height:1;letter-spacing:-.05em}
.cal-date span{font-size:15px;font-weight:700;text-transform:uppercase}
.cal-card h3{font-size:24px;font-weight:800;line-height:1.15;margin:0 0 12px;color:inherit}
.cal-place{font-size:14px;margin:0 0 18px;color:inherit}
.cal-card a{margin-top:auto;padding-top:16px;border-top:1px solid #ffffff50;min-height:48px;color:inherit;font-size:14px;font-weight:700;text-decoration:none}
.cal-card a:hover{text-decoration:underline}
.cal-card img{width:100%;height:180px;object-fit:cover;display:block}
.cal-card.is-past{background:#e8ecf0;color:#394b5b;border-top-color:#8c9ba8}
.cal-card.is-past .cal-status{background:#f5f7f9;border-color:#bcc6ce}
.cal-card.is-past a{border-color:#bac5ce}
.cal-card.is-past img{filter:grayscale(1)}
.cal-empty{padding:24px;border:1px solid #ccdbea;color:#415970;background:white}
.cal-note{font-size:13px;color:#415970;margin:20px 0;max-width:900px}
.cal-archive{border-top:1px solid #ccdbea;padding:30px 0 50px}
.cal-archive h2{font-size:26px;color:#004596}
.cal-archive-links{display:flex;gap:12px;flex-wrap:wrap}
.cal-archive-links a{display:inline-flex;align-items:center;min-height:48px;padding:12px 18px;background:#fff;border:1px solid #ccdbea;color:#004596;font-weight:700;border-radius:3px}
[hidden]{display:none!important}
@media(max-width:1000px){.cal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cal-group-head{display:block}.cal-group-head p{margin-top:12px}}
@media(max-width:600px){.cal-grid{grid-template-columns:1fr}.cal-hero{padding:36px 0}.cal-tools{gap:12px}.cal-tools>label{flex:1 1 130px}.cal-tools .cal-search{max-width:none;flex-basis:100%}.cal-categories{width:100%;flex-wrap:nowrap;overflow-x:auto}.cal-categories button{flex-shrink:0}.cal-card{min-height:300px}.cal-card-main{padding:22px}.cal-date strong{font-size:64px}}
