.calendar-page-header{padding:clamp(3.5rem,7vw,5.5rem)0;text-align:center;background:var(--color-background)}.calendar-page-heading{max-width:850px}.calendar-page-heading h1{margin:0;color:var(--pcars-navy);font-size:clamp(2.75rem,6vw,4.75rem);line-height:1.05;letter-spacing:-.025em}.calendar-page-description{max-width:700px;margin:1.25rem auto 0;color:var(--color-text-muted);font-size:1.1rem;line-height:1.7}.calendar-section{padding:clamp(3rem,6vw,5rem)0;background:var(--color-background-alt);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.calendar-app{width:100%}.calendar-toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;margin-bottom:1.5rem}.calendar-current-month{text-align:center}.calendar-current-month h2{margin:0;color:var(--pcars-navy);font-size:clamp(1.75rem,4vw,2.5rem);line-height:1.15}.calendar-button,.calendar-today-button{appearance:none;padding:.7rem 1rem;color:var(--pcars-navy);background:var(--color-surface);font:inherit;font-weight:700;border:1px solid var(--color-border);border-radius:.4rem;cursor:pointer}.calendar-button:first-child{justify-self:start}.calendar-button:last-child{justify-self:end}.calendar-today-button{margin-top:.65rem;padding:.45rem .8rem;color:var(--pcars-dark-navy);background:var(--pcars-yellow);border-color:var(--pcars-yellow)}.calendar-button:hover,.calendar-button:focus-visible{background:var(--color-background-alt);border-color:var(--pcars-blue)}.calendar-today-button:hover,.calendar-today-button:focus-visible{color:#fff;background:var(--pcars-dark-navy);border-color:var(--pcars-dark-navy)}.calendar-weekday-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));color:var(--color-text-muted);font-size:.8rem;font-weight:800;letter-spacing:.08em;text-align:center;text-transform:uppercase}.calendar-weekday-row span{padding:.75rem .25rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--color-border);border:1px solid var(--color-border);border-radius:.6rem;overflow:hidden}.calendar-day{min-width:0;min-height:10rem;padding:.55rem;background:var(--color-surface);outline:1px solid var(--color-border)}.calendar-day-outside-month{background:var(--color-background-alt)}.calendar-day-selected{box-shadow:inset 0 0 0 3px var(--pcars-blue)}.calendar-day-today .calendar-day-number{color:var(--pcars-dark-navy);background:var(--pcars-yellow)}.calendar-day-header{display:flex;align-items:center;justify-content:flex-end;margin-bottom:.45rem}.calendar-mobile-weekday{display:none;color:var(--color-text-muted);font-size:.8rem;font-weight:700;text-transform:uppercase}.calendar-day-number{display:inline-grid;place-items:center;width:2rem;height:2rem;padding:0;color:var(--color-text);background:0 0;font:inherit;font-weight:750;border:0;border-radius:50%;cursor:pointer}.calendar-day-number:hover,.calendar-day-number:focus-visible{color:var(--pcars-dark-navy);background:var(--pcars-yellow)}.calendar-day-events{display:grid;gap:.35rem}.calendar-event{width:100%;padding:.4rem .45rem;color:var(--color-text);background:var(--color-background-alt);font:inherit;font-size:.78rem;line-height:1.3;text-align:left;border:1px solid var(--color-border);border-left:3px solid var(--pcars-blue);border-radius:.3rem;cursor:pointer}.calendar-event:hover,.calendar-event:focus-visible{border-color:var(--pcars-blue)}.calendar-event-featured{border-left-color:var(--pcars-yellow)}.calendar-event-recurring{border-left-style:double}.calendar-event-canceled{opacity:.65;text-decoration:line-through}.calendar-event-time,.calendar-event-title{display:block}.calendar-event-time{color:var(--color-text-muted);font-size:.7rem;font-weight:700}.calendar-event-title{margin-top:.12rem;font-weight:700}.calendar-day-empty{display:none}.calendar-day-details{margin-top:2rem;padding:clamp(1.5rem,4vw,2.5rem);background:var(--color-surface);border:1px solid var(--color-border);border-radius:.6rem}.calendar-day-details>h2{margin:0 0 1.5rem;color:var(--pcars-navy);font-size:clamp(1.5rem,3vw,2rem)}#calendar-details-list{display:grid;gap:1rem}.calendar-event-detail{padding:1.25rem;background:var(--color-background-alt);border:1px solid var(--color-border);border-left:4px solid var(--pcars-blue);border-radius:.45rem}.calendar-event-detail-canceled{opacity:.7}.calendar-event-detail h3{margin:0;color:var(--pcars-navy);font-size:1.25rem}.calendar-event-detail h3 a{color:inherit;text-decoration:none}.calendar-event-detail h3 a:hover,.calendar-event-detail h3 a:focus-visible{text-decoration:underline;text-underline-offset:.2em}.calendar-event-detail p{margin:1rem 0 0;color:var(--color-text-muted);line-height:1.65}.calendar-event-metadata{display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1rem;margin:1rem 0 0}.calendar-event-metadata dt{color:var(--color-text);font-weight:750}.calendar-event-metadata dd{margin:0;color:var(--color-text-muted)}.calendar-detail-link{display:inline-block;margin-top:1rem;color:var(--pcars-blue);font-weight:750;text-decoration:none}.calendar-detail-link:hover,.calendar-detail-link:focus-visible{text-decoration:underline;text-underline-offset:.2em}.calendar-empty-message,.calendar-error-message{margin:0;color:var(--color-text-muted)}.calendar-notice{margin-bottom:2rem;padding:1.25rem;background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--pcars-yellow);border-radius:.45rem}.calendar-notice h2{margin:0;color:var(--pcars-navy)}.calendar-notice p{margin:.75rem 0 0;line-height:1.65}.calendar-about{padding:clamp(3.5rem,7vw,5.5rem)0}.calendar-about-content{max-width:850px}.calendar-about h2{margin:0;color:var(--pcars-navy);font-size:clamp(1.75rem,4vw,2.5rem)}.calendar-about-text{margin-top:1.25rem;color:var(--color-text);line-height:1.75}.calendar-about-text p{margin:0}.calendar-about-text p+p{margin-top:1rem}@media(max-width:900px){.calendar-day{min-height:8rem;padding:.4rem}.calendar-event{padding:.35rem;font-size:.72rem}}@media(max-width:700px){.calendar-toolbar{grid-template-columns:1fr 1fr}.calendar-current-month{grid-column:1/-1;grid-row:1}.calendar-button:first-child{grid-column:1;grid-row:2}.calendar-button:last-child{grid-column:2;grid-row:2}.calendar-weekday-row{display:none}.calendar-grid{display:grid;grid-template-columns:1fr;gap:.75rem;background:0 0;border:0;border-radius:0;overflow:visible}.calendar-day{min-height:0;padding:.8rem;border:1px solid var(--color-border);border-radius:.45rem;outline:0}.calendar-day-outside-month{display:none}.calendar-day-header{justify-content:space-between}.calendar-mobile-weekday{display:inline}.calendar-day-empty{display:block;color:var(--color-text-muted);font-size:.85rem}.calendar-event{font-size:.85rem}}@media(max-width:500px){.calendar-button{width:100%}.calendar-event-metadata{grid-template-columns:1fr;gap:.15rem}.calendar-event-metadata dd+dt{margin-top:.65rem}}