.page-dates #main{
  width:min(1320px,100%);
  max-width:1320px;
  padding:clamp(46px,6vw,76px) 32px clamp(68px,8vw,96px)
}

.calendar-intro{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:36px;
  padding-bottom:28px;
  border-bottom:1px solid var(--line)
}

.page-dates .calendar-intro h1{
  margin:0 0 14px!important;
  font-size:clamp(3.2rem,6vw,5.8rem)!important;
  letter-spacing:-.055em!important;
  line-height:.9!important
}

.calendar-year{white-space:nowrap}

.calendar-intro .desc{
  max-width:760px;
  margin:0;
  color:var(--muted);
  font-size:1.02rem;
  line-height:1.65
}

.calendar-coverage{
  display:flex;
  flex-wrap:wrap;
  gap:7px 18px;
  margin:16px 0 0;
  color:var(--muted);
  font-size:.76rem
}

.calendar-coverage strong{color:var(--cardinal)}

.calendar-official-link{
  flex:0 0 auto;
  padding-bottom:4px;
  border-bottom:1px solid currentColor;
  color:var(--cardinal);
  font-size:.86rem;
  font-weight:720;
  text-decoration:none
}

.calendar-shell{padding-top:30px}

.calendar-toolbar{
  display:grid;
  grid-template-columns:auto minmax(190px,1fr) minmax(0,1.45fr);
  gap:28px;
  align-items:center;
  padding-bottom:20px
}

.calendar-navigation{
  display:flex;
  gap:8px
}

.calendar-navigation button,
.calendar-filters button{
  min-height:40px;
  border:1px solid var(--line);
  border-radius:7px;
  background:var(--white);
  color:var(--ink);
  font:700 .78rem/1 var(--sans);
  cursor:pointer
}

.calendar-navigation button{
  min-width:44px;
  padding:9px 13px
}

.calendar-navigation button:hover,
.calendar-filters button:hover{
  border-color:var(--cardinal);
  color:var(--cardinal)
}

.calendar-toolbar h2{
  margin:0;
  color:var(--cardinal)!important;
  font-size:clamp(1.7rem,3vw,2.45rem);
  text-align:center
}

.calendar-filters{
  display:flex;
  justify-content:flex-end;
  gap:7px;
  min-width:0;
  overflow-x:auto;
  scrollbar-width:none
}

.calendar-filters::-webkit-scrollbar{display:none}

.calendar-filters button{
  flex:0 0 auto;
  padding:9px 13px
}

.calendar-filters button[aria-pressed="true"]{
  border-color:var(--cardinal);
  background:var(--cardinal);
  color:var(--white)
}

.calendar-filters button{
  display:inline-flex;
  align-items:center;
  gap:7px
}

.calendar-filter-count{
  display:inline-grid;
  place-items:center;
  min-width:20px;
  min-height:20px;
  padding-inline:5px;
  border-radius:999px;
  background:#f2ede6;
  color:var(--muted);
  font-size:.64rem;
  font-variant-numeric:tabular-nums
}

.calendar-filters button[aria-pressed="true"] .calendar-filter-count{
  background:rgba(255,255,255,.18);
  color:var(--white)
}

.calendar-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,340px);
  gap:28px;
  align-items:start
}

.calendar-grid-wrap{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--white)
}

.calendar-weekdays,
.calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr))
}

.calendar-weekdays{
  border-bottom:1px solid var(--line);
  color:var(--cardinal);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.08em;
  text-align:center;
  text-transform:uppercase
}

.calendar-weekdays span{padding:12px 6px}

.calendar-day{
  position:relative;
  min-width:0;
  min-height:146px;
  padding:10px;
  border:0;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:var(--white);
  color:var(--ink);
  font:inherit;
  text-align:left;
  cursor:pointer
}

.calendar-day:nth-child(7n){border-right:0}
.calendar-day:nth-last-child(-n+7){border-bottom:0}
.calendar-day:hover{background:#fffaf8}
.calendar-day.is-outside{background:#faf8f3;color:#a5a19a}
.calendar-day.is-selected{box-shadow:inset 0 0 0 2px var(--cardinal);background:#fff7f6}
.calendar-day.is-today .calendar-day-number{
  display:grid;
  place-items:center;
  width:26px;
  height:26px;
  border-radius:50%;
  background:var(--cardinal);
  color:var(--white)
}

.calendar-day-number{
  display:block;
  margin-bottom:9px;
  font-family:var(--serif);
  font-size:1rem;
  font-weight:700
}

.calendar-day-events{
  display:grid;
  gap:5px
}

.calendar-event-chip{
  display:-webkit-box;
  min-width:0;
  overflow:hidden;
  color:#5d6255;
  font-size:.66rem;
  font-weight:680;
  line-height:1.28;
  overflow-wrap:anywhere;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  white-space:normal
}

.calendar-event-chip::before{
  display:inline-block;
  width:6px;
  height:6px;
  margin:0 6px 1px 0;
  border-radius:50%;
  background:var(--event-color,var(--cardinal));
  content:""
}

.calendar-agenda{
  position:sticky;
  top:120px;
  min-width:0;
  min-height:400px;
  padding:26px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--white)
}

.calendar-agenda h2{
  margin:0;
  padding-bottom:16px;
  border-bottom:1px solid var(--line);
  color:var(--cardinal)!important;
  font-size:1.55rem
}

.calendar-agenda-summary{
  margin:16px 0;
  color:var(--muted);
  font-size:.78rem
}

.calendar-agenda-events{
  display:grid;
  margin-bottom:22px
}

.calendar-agenda-event{
  position:relative;
  padding:16px 0 16px 19px;
  border-bottom:1px solid var(--line)
}

.calendar-agenda-event::before{
  position:absolute;
  top:22px;
  left:0;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--event-color,var(--cardinal));
  content:""
}

.calendar-agenda-event h3{
  margin:0;
  color:var(--ink);
  font-family:var(--sans)!important;
  font-size:.87rem;
  letter-spacing:0!important;
  line-height:1.4;
  overflow-wrap:anywhere
}

.calendar-agenda-event p{
  margin:5px 0 0;
  color:var(--muted);
  font-size:.72rem;
  line-height:1.45;
  overflow-wrap:anywhere
}

.calendar-agenda-event a{font-size:.72rem}

.calendar-agenda>a{
  color:var(--cardinal);
  font-size:.78rem;
  font-weight:740
}

.calendar-notes{
  display:grid;
  gap:1px;
  margin-top:24px;
  border-left:3px solid var(--cardinal);
  background:var(--paper-deep)
}

.calendar-note{
  margin:0;
  padding:16px 18px;
  color:#4f514d;
  font-size:.8rem
}

.calendar-note+.calendar-note{
  padding-top:0
}

.calendar-note-reminder{
  color:var(--ink)
}

.calendar-note-links{
  display:flex;
  flex-wrap:wrap;
  gap:8px 22px
}

.calendar-note-links a{
  color:var(--cardinal);
  font-weight:720;
  text-decoration:underline;
  text-underline-offset:3px
}

.calendar-empty{
  padding:16px 0;
  color:var(--muted);
  font-size:.82rem
}

@media (max-width:1040px){
  .calendar-toolbar{
    grid-template-columns:auto 1fr;
    gap:18px
  }
  .calendar-toolbar h2{text-align:right}
  .calendar-filters{grid-column:1/-1;justify-content:flex-start}
  .calendar-layout{grid-template-columns:1fr}
  .calendar-agenda{position:static;min-height:0}
}

@media (max-width:700px){
  .page-dates #main{padding-right:20px;padding-left:20px}
  .calendar-intro{align-items:flex-start;flex-direction:column}
  .calendar-official-link{white-space:normal}
  .calendar-day{min-height:86px;padding:7px 5px}
  .calendar-day-number{margin-bottom:6px;font-size:.88rem}
  .calendar-event-chip{font-size:0}
  .calendar-event-chip::before{
    width:8px;
    height:8px;
    margin:0 3px 0 0
  }
  .calendar-agenda{padding:22px}
}

@media (max-width:480px){
  .calendar-toolbar{grid-template-columns:1fr}
  .calendar-toolbar h2{grid-row:1;text-align:left}
  .calendar-navigation{grid-row:2}
  .calendar-filters{grid-row:3;margin-inline:-20px;padding-inline:20px}
  .calendar-weekdays{font-size:.61rem}
  .calendar-weekdays span{padding:10px 2px}
  .calendar-day{min-height:72px}
  .calendar-day.is-today .calendar-day-number{width:23px;height:23px}
}

@media (prefers-reduced-motion:reduce){
  .calendar-day,
  .calendar-navigation button,
  .calendar-filters button{transition:none}
}
