.cal-page{--cal-pink:var(--pink);--cal-blush:#f5e3e9;--cal-muted:var(--muted)}
.cal-page h2{font-size:clamp(31px,3.2vw,45px);line-height:1.18}.cal-page h2 span{color:#9c4664}
.cal-page h3{font-size:27px;line-height:1.25}.cal-page p,.cal-page li,.cal-page dd{overflow-wrap:break-word}
.cal-page .eyebrow{font-size:10px;letter-spacing:.12em}.cal-page .text-link{font-size:12px;line-height:1.6;gap:9px}
.cal-page .button{min-height:48px;text-align:center;line-height:1.5}
.cal-page .button.cal-primary{background:var(--red);border-color:var(--red);color:white}
.cal-page .button.cal-primary:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.cal-page .button.cal-secondary{background:transparent;border-color:var(--ink);color:var(--ink)}
.cal-page .button.cal-secondary:hover{background:var(--ink);color:var(--paper)}
.cal-page a:focus-visible,.cal-page button:focus-visible,.cal-page summary:focus-visible{outline:3px solid #a14668;outline-offset:5px}
.cal-hero,.cal-detail-hero{background:var(--ink);color:var(--paper);padding:23px 0 58px}
.cal-hero a:focus-visible,.cal-detail-hero a:focus-visible{outline-color:var(--cal-pink)}
.cal-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:11px;color:#d3d9e2;margin-bottom:38px}.cal-breadcrumb a:hover{color:var(--cal-pink)}
.cal-hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:72px;align-items:center}
.cal-hero-grid>div>.eyebrow{color:var(--cal-pink);margin-bottom:21px}
.cal-hero h1{font-size:clamp(43px,5.8vw,77px);line-height:1.13;letter-spacing:-.02em;margin-bottom:25px}.cal-hero h1 span{color:var(--cal-pink)}
.cal-lead{font-family:Fraunces,Georgia,serif;font-size:clamp(19px,2vw,24px);line-height:1.55}.cal-hero .cal-lead{color:var(--paper);margin-bottom:22px}
.cal-hero-grid>div>p:not(.eyebrow):not(.cal-lead){font-size:14px;line-height:1.9;color:#e0e5ed;max-width:550px}
.cal-hero-link{display:inline-flex;align-items:center;gap:12px;font-size:12px;font-weight:600;color:var(--cal-pink);margin-top:26px;min-height:44px}
.cal-feature{padding:35px;background:var(--cal-blush);color:var(--ink);border-top:4px solid var(--cal-pink)}
.cal-hero-grid .cal-feature>.eyebrow{color:#744457;margin-bottom:19px}.cal-feature h2{font-size:36px;margin:0 0 18px}
.cal-hero-grid .cal-feature>p:not(.eyebrow){color:#414a59;font-size:13px;line-height:1.85;margin-bottom:19px}
.cal-feature .button{margin-top:8px}.cal-feature-icon{display:flex;margin-bottom:25px}.cal-feature-icon .icon{width:43px;height:43px;stroke-width:1.3}
.cal-hero-grid .cal-feature>.cal-feature-date{font-weight:600;color:var(--ink);text-transform:capitalize}
.cal-section{padding:60px 0;border-top:1px solid var(--line);scroll-margin-top:24px}
.cal-section-heading{display:flex;justify-content:space-between;align-items:end;gap:45px;margin-bottom:30px}
.cal-section-heading .eyebrow{color:var(--cal-muted);margin-bottom:15px}.cal-section-heading>p{font-size:13px;line-height:1.9;color:var(--cal-muted);max-width:390px}
.cal-filters{display:flex;flex-wrap:wrap;gap:9px}.cal-filters button{min-height:44px;padding:10px 15px;background:transparent;border:1px solid #cec7c9;border-radius:3px;font-size:12px;color:var(--ink)}
.cal-filters button:hover{border-color:var(--ink)}.cal-filters button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.cal-results{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;justify-content:space-between;font-size:11px;color:var(--cal-muted);padding:23px 0}.cal-results>p{color:var(--ink);font-weight:600}
.cal-results button{padding:6px 0;min-height:32px;background:none;border:0;text-decoration:underline;text-underline-offset:4px;color:#9c4664;font-size:11px}.cal-results button[hidden]{display:none}
.cal-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}
.cal-event-card{border:1px solid var(--line);background:var(--surface);min-width:0;display:flex;flex-direction:column}.cal-event-card[hidden]{display:none}
.cal-event-card>img{width:100%;aspect-ratio:1.7;object-fit:cover}.cal-event-date{padding:23px 23px 17px;display:flex;align-items:center;justify-content:space-between;gap:15px}
.cal-event-date time{display:flex;align-items:center;gap:11px}.cal-event-date time strong{font-family:Antonio,sans-serif;font-size:47px;line-height:1}
.cal-event-date time>span{font-size:10px;font-weight:600;line-height:1.6;max-width:70px}.cal-state{font-size:9px;line-height:1.5;background:var(--cal-blush);padding:7px 9px;border-radius:3px;text-align:center}
.cal-event-content{padding:0 23px 24px;display:flex;flex-direction:column;flex:1}.cal-event-content>.eyebrow{color:#9c4664;margin:3px 0 12px;font-size:9px}
.cal-event-content h3{font-size:31px;margin-bottom:16px}.cal-event-content h3 a:hover{color:#9c4664}
.cal-event-content>p:not(.eyebrow){font-size:13px;line-height:1.85;color:var(--cal-muted);margin-bottom:16px}.cal-event-content>.cal-card-audience{font-size:12px!important;color:var(--ink)!important}
.cal-card-facts{padding:17px 0 0;margin:0 0 17px;list-style:none;border-top:1px solid var(--line);font-size:11px;display:grid;gap:9px}
.cal-card-facts li{display:flex;align-items:start;gap:9px}.cal-card-facts .icon{width:15px;height:15px;margin-top:3px}
.cal-event-content>.cal-organizes{font-size:10px!important;line-height:1.7}.cal-event-content>.text-link{margin-top:auto;padding-top:6px}
.cal-empty{display:grid;grid-template-columns:55px minmax(0,1fr);gap:25px;background:var(--cal-blush);border:1px solid #e5c6d1;border-left:4px solid var(--ink);padding:37px 40px}.cal-empty[hidden]{display:none}
.cal-empty-icon .icon{width:43px;height:43px;stroke-width:1.3}.cal-empty .eyebrow{color:#744457;margin-bottom:13px}.cal-empty h3{font-size:30px;margin-bottom:13px}
.cal-empty p:not(.eyebrow){font-size:13px;color:#414a59;line-height:1.9;max-width:700px}.cal-empty .button{margin-top:22px}
.cal-note{font-size:12px;line-height:1.8;color:var(--cal-muted);margin-top:20px}
.cal-types{background:var(--surface)}.cal-types-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px}
.cal-types-grid article{border-top:1px solid var(--line);padding-top:20px;display:flex;flex-direction:column;align-items:start}
.cal-category-index{font-size:11px;letter-spacing:.1em;color:#9c4664;margin-bottom:15px}.cal-types-grid h3{font-size:26px;text-transform:uppercase;margin-bottom:17px}
.cal-types-grid p{font-size:13px;line-height:1.85;color:var(--cal-muted);margin-bottom:18px}.cal-types-grid .text-link{margin-top:auto}
.cal-how{background:var(--ink);color:var(--paper);border-color:var(--ink)}.cal-how>.container{display:grid;grid-template-columns:1fr 1fr;gap:90px}
.cal-how .eyebrow{color:var(--cal-pink);margin-bottom:18px}.cal-how h2 span{color:var(--cal-pink)}.cal-how ol{list-style:none;margin:0;padding:0}
.cal-how li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:20px;border-top:1px solid #efb7ca66;padding:22px 0}.cal-how li:first-child{padding-top:0;border:0}.cal-how li:last-child{padding-bottom:0}
.cal-how li>span{color:var(--cal-pink);font-size:11px;padding-top:5px}.cal-how h3{font-size:26px;margin-bottom:11px}.cal-how li p{font-size:13px;line-height:1.85;color:#e0e5ed}
.cal-archive{background:var(--surface)}.cal-archive>.container>.eyebrow{color:var(--cal-muted);margin-bottom:15px}.cal-archive details{margin-top:25px}.cal-archive summary{cursor:pointer;font-size:13px;padding:15px 0}.cal-archive .cal-cards{margin-top:20px}
.cal-questions>.container{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px}.cal-questions .eyebrow{color:var(--cal-muted);margin-bottom:15px}.cal-questions h2{font-size:35px}
.cal-faq-list details{border-top:1px solid var(--line)}.cal-faq-list details:last-child{border-bottom:1px solid var(--line)}.cal-faq-list summary{cursor:pointer;font-size:14px;font-weight:600;padding:20px 0;line-height:1.6}.cal-faq-list p{font-size:13px;line-height:1.9;color:var(--cal-muted);padding-bottom:22px}
.cal-community{padding:39px 0;background:var(--cal-blush)}.cal-community>.container,.cal-closing>.container{display:flex;align-items:center;justify-content:space-between;gap:50px}
.cal-community h2{font-size:34px;margin:13px 0 16px}.cal-community p:not(.eyebrow){font-size:13px;line-height:1.9;max-width:650px;color:#414a59}
.cal-community .button,.cal-closing .button{flex-shrink:0}.cal-closing{padding:52px 0}.cal-closing .eyebrow{color:var(--cal-muted);margin-bottom:17px}
.cal-closing h2{font-size:39px;margin-bottom:18px}.cal-closing p:not(.eyebrow){font-size:13px;color:var(--cal-muted);line-height:1.9;max-width:600px}
.cal-detail-hero>.container>.eyebrow{color:var(--cal-pink);margin-bottom:21px}.cal-detail-hero h1{font-size:clamp(39px,5.5vw,72px);line-height:1.13;text-transform:uppercase;max-width:1000px;margin-bottom:24px}
.cal-detail-hero .cal-lead{max-width:850px}.cal-detail-date{display:flex;flex-wrap:wrap;gap:12px 30px;margin-top:27px;font-size:13px;color:#e0e5ed}.cal-detail-date time{text-transform:capitalize}
.cal-detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:75px;align-items:start;padding-top:48px;padding-bottom:40px}
.cal-detail-image{margin:0 0 35px}.cal-detail-image img{width:100%;max-height:450px;object-fit:contain}
.cal-detail-section{border-bottom:1px solid var(--line);padding:0 0 26px;margin-bottom:27px}.cal-detail-section .eyebrow{margin-bottom:15px;color:var(--cal-muted)}
.cal-detail-section h2{font-size:30px;margin-bottom:19px}.cal-detail-section p,.cal-detail-section li{font-size:14px;line-height:1.9;color:var(--cal-muted)}
.cal-detail-section p+p{margin-top:16px}.cal-detail-section ul{margin:0;padding-left:19px}.cal-detail-section li{padding-bottom:8px}
.cal-program{list-style:none;margin:0;padding:0}.cal-program li{display:grid;grid-template-columns:75px 1fr;gap:15px;border-top:1px solid var(--line);padding:12px 0}.cal-program strong{color:var(--ink)}
.cal-booking{position:sticky;top:24px;border:1px solid #e5c6d1;border-top:4px solid var(--ink);background:var(--cal-blush);padding:29px}
.cal-booking>.eyebrow{color:#744457;margin-bottom:16px}.cal-booking h2{font-size:30px;margin-bottom:24px}.cal-booking dl{margin:0}
.cal-booking dl>div{border-top:1px solid #d4b7c2;padding:15px 0}.cal-booking dt{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#744457;margin-bottom:6px}
.cal-booking dd{margin:0;font-size:13px;line-height:1.85}.cal-booking dd small{font-size:11px}.cal-booking dd a{text-decoration:underline;text-underline-offset:4px}
.cal-booking dd .icon{display:inline;width:13px;height:13px}.cal-booking dd p{font-size:12px}.cal-booking-actions{display:grid;gap:10px;margin:16px 0 22px}.cal-detail-back{padding-bottom:38px}
@media(max-width:1050px){
 .cal-hero-grid{gap:35px}.cal-hero h1{font-size:63px}.cal-feature{padding:28px}.cal-feature h2{font-size:32px}
 .cal-section{padding:49px 0}.cal-types-grid{gap:22px}.cal-types-grid h3{font-size:24px}.cal-how>.container{gap:50px}.cal-questions>.container{gap:40px}
 .cal-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.cal-detail-grid{gap:35px}.cal-booking{padding:24px}
}
@media(max-width:800px){
 .cal-hero-grid{grid-template-columns:1fr;gap:30px}.cal-hero h1{font-size:66px}.cal-feature{max-width:none}
 .cal-hero-grid .cal-feature>p:not(.eyebrow){max-width:650px}.cal-section-heading{display:block}.cal-section-heading>p,.cal-section-heading>.text-link{margin-top:19px;max-width:650px}
 .cal-types-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.cal-how>.container,.cal-questions>.container{grid-template-columns:1fr;gap:28px}
 .cal-community>.container,.cal-closing>.container{display:block}.cal-community .button,.cal-closing .button{margin-top:24px}
 .cal-detail-grid{grid-template-columns:1fr;gap:10px}.cal-booking{position:static}
}
@media(max-width:580px){
 .cal-hero,.cal-detail-hero{padding:18px 0 35px}.cal-breadcrumb{margin-bottom:29px;font-size:10px}.cal-hero h1{font-size:clamp(35px,10vw,57px);margin-bottom:22px}
 .cal-page .eyebrow{font-size:9px}.cal-hero .cal-lead{font-size:20px}.cal-hero .cal-lead br{display:none}.cal-hero-grid>div>p:not(.eyebrow):not(.cal-lead){font-size:13px}
 .cal-hero-link{margin-top:16px}.cal-feature{padding:25px}.cal-feature h2{font-size:30px}.cal-feature .button{width:100%;font-size:12px}.cal-feature-icon{margin-bottom:21px}
 .cal-section{padding:38px 0}.cal-section-heading{margin-bottom:25px}.cal-filters{gap:7px}.cal-filters button{font-size:10px;padding:10px 12px}
 .cal-results{padding:19px 0}.cal-results>span{display:none}.cal-cards{grid-template-columns:1fr}.cal-empty{grid-template-columns:1fr;gap:15px;padding:25px 23px}
 .cal-empty-icon .icon{width:35px;height:35px}.cal-empty h3{font-size:28px}.cal-empty .button{width:100%;font-size:12px}
 .cal-types-grid{grid-template-columns:1fr;gap:25px}.cal-types-grid article{display:grid;grid-template-columns:27px 1fr;gap:0 13px}.cal-types-grid h3{font-size:28px}
 .cal-types-grid p,.cal-types-grid .text-link{grid-column:2}.cal-category-index{padding-top:5px}.cal-how li{grid-template-columns:25px 1fr;gap:14px}.cal-how h3{font-size:25px}
 .cal-questions h2{font-size:32px}.cal-faq-list summary{font-size:13px}.cal-community{padding:31px 0}.cal-community h2{font-size:32px}
 .cal-closing{padding:37px 0}.cal-closing h2{font-size:34px}.cal-detail-hero h1{font-size:39px}.cal-detail-hero .cal-lead{font-size:19px}
 .cal-detail-date{display:grid;gap:10px;font-size:12px}.cal-detail-grid{padding-top:32px}.cal-detail-section h2{font-size:28px}
 .cal-detail-section p,.cal-detail-section li{font-size:13px}.cal-booking{padding:24px}
}

.cal-hero-grid--single{grid-template-columns:1fr;max-width:1040px}
.cal-hero-grid--single>div>p:not(.eyebrow):not(.cal-lead){max-width:760px}
.cal-filters[hidden],.cal-results[hidden],.cal-mobile-action{display:none}
@media(max-width:800px){
 body.calendar-event-body{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
 .cal-mobile-action{display:block;position:fixed;inset:auto 0 0;z-index:15;background:var(--paper);border-top:1px solid var(--line);padding:12px 18px calc(12px + env(safe-area-inset-bottom));box-shadow:0 -5px 20px #0b172b0d}
 .cal-mobile-action .button{display:flex;width:100%;max-width:600px;margin-inline:auto}
}
