.week-section, .calendar-page {
  background: var(--background-color);
  color: var(--status-color);
  font-family: "Sweet Boys Futura", sans-serif;
}
.week-section {
  padding: clamp(40px, 5vw, 72px) clamp(20px, 5vw, 72px) calc(40px + var(--flames-divider-height));
  transition: background-color var(--theme-transition-duration) ease, color var(--theme-transition-duration) ease;
}
.calendar-inner { max-width: 1280px; margin-inline: auto; }
.calendar-title {
  font-family: "Sweet Boys Pretender Bold", sans-serif;
  font-size: clamp(2.2rem, 5.8vw, 5.5rem);
  font-weight: normal;
  font-synthesis: none;
  line-height: .95;
  margin: 0;
  text-transform: uppercase;
}
.calendar-bar { align-items: center; border-block: 2px solid currentColor; display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; padding: 18px 0; }
.calendar-range { font-size: .7rem; letter-spacing: .07em; line-height: 1.5; margin: 0; text-transform: uppercase; }
.calendar-link { color: inherit; font-family: "Sweet Boys Pretender Light", sans-serif; font-size: 1.5rem; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }
.calendar-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.calendar-link:focus-visible, .calendar-controls button:focus-visible, .month-day:focus-visible { outline: 3px solid currentColor; outline-offset: 4px; position: relative; z-index: 2; }
.week-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-bottom: 1px solid currentColor; }
.week-expand { background: transparent; border: 1px solid currentColor; color: inherit; cursor: pointer; font: 1.3rem "Sweet Boys Pretender Light", sans-serif; min-height: 44px; margin-top: 16px; padding: 10px 18px; text-transform: uppercase; }
.week-expand[hidden] { display: none; }
.week-expand:is(:hover, :focus-visible) { background: var(--status-color); color: var(--background-color); text-decoration: none; }
.week-expand:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.week-day { border-right: 1px solid color-mix(in srgb, currentColor 30%, transparent); display: flex; flex-direction: column; min-width: 0; padding: 12px; }
.week-day:last-child { border-right: 0; }
.week-day.is-today { background: var(--status-color); color: var(--background-color); }
.week-day-heading { margin: 0 0 14px; }
.week-day-heading time { display: flex; align-items: baseline; gap: 8px; }
.week-day-name { font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; }
.week-day-number { font-family: "Sweet Boys Pretender Light", sans-serif; font-size: 2.25rem; font-weight: 300; line-height: 1; }
.week-day .calendar-entries { text-transform: uppercase; }
.week-day.is-past .week-day-heading { opacity: .6; }
.calendar-entries { display: grid; gap: 20px; list-style: none; margin: 0 0 24px; padding: 0; }
.calendar-kind { display: block; font-size: .55rem; letter-spacing: .14em; margin-bottom: 6px; text-transform: uppercase; }
.calendar-entry-title { font-size: .85rem; line-height: 1.35; margin: 0; overflow-wrap: anywhere; }
.calendar-entry-time { font-size: .68rem; line-height: 1.5; margin: 8px 0 0; }
.calendar-hours { border-top: 1px solid color-mix(in srgb, currentColor 30%, transparent); font-size: .6rem; line-height: 1.5; margin: auto 0 0; padding-top: 14px; }
.week-section .calendar-bar { padding-block: 12px; }
.week-day .calendar-entries { gap: 12px; margin-bottom: 16px; }
.week-day .calendar-entry-time { margin-top: 4px; }
.week-day .calendar-hours { padding-top: 8px; }
.calendar-shell { box-sizing: border-box; margin: 0 auto; max-width: 1440px; padding: 32px clamp(20px, 5vw, 72px) 80px; }
.calendar-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.calendar-controls button { background: transparent; border: 1px solid currentColor; color: inherit; cursor: pointer; font: inherit; font-size: .75rem; min-height: 44px; padding: 10px 16px; }
.calendar-controls button:is(:hover, :focus-visible) { background: var(--status-color); color: var(--background-color); text-decoration: none; }
.calendar-month-label { font-family: "Sweet Boys Pretender Light", sans-serif; font-size: clamp(1.8rem, 3vw, 2.8rem); font-weight: 300; letter-spacing: .03em; margin: 0; text-transform: uppercase; }
.month-weekdays, .month-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.month-weekdays { font-size: .65rem; letter-spacing: .1em; padding-block: 16px; text-align: center; text-transform: uppercase; }
.month-grid { border-top: 1px solid currentColor; border-left: 1px solid currentColor; }
.month-day, .month-blank { border: 0; border-right: 1px solid color-mix(in srgb, currentColor 30%, transparent); border-bottom: 1px solid color-mix(in srgb, currentColor 30%, transparent); box-sizing: border-box; min-width: 0; }
.month-day { align-items: flex-start; background: transparent; color: inherit; cursor: pointer; display: flex; flex-direction: column; font: inherit; min-height: 150px; padding: 14px; position: relative; text-align: left; }
.month-day[aria-pressed="true"] { background: var(--status-color); color: var(--background-color); }
.month-day:enabled:hover { box-shadow: inset 0 0 0 2px currentColor; }
.month-day:disabled, .agenda-select:disabled { cursor: default; opacity: 1; color: inherit; }
.month-date { font-family: "Sweet Boys Pretender Light", sans-serif; font-size: 1.8rem; }
.month-today { font-size: .55rem; position: absolute; right: 12px; top: 20px; text-transform: uppercase; }
.month-items { display: grid; gap: 8px; margin-top: 14px; }
.month-item { font-size: .65rem; line-height: 1.4; overflow-wrap: anywhere; }
.month-item--event { border-left: 3px solid currentColor; padding-left: 6px; }
.calendar-day-title { font-family: "Sweet Boys Pretender Light", sans-serif; font-size: clamp(1.5rem, 3vw, 2.5rem); font-weight: 300; margin: 0; text-transform: uppercase; }
.calendar-entry-description { font-size: .8rem; line-height: 1.6; max-width: 50ch; }
.calendar-fallback { font-size: .85rem; line-height: 1.6; }
@media (max-width: 900px) {
  .week-grid { grid-template-columns: minmax(0, 1fr); }
  .week-day { display: grid; grid-template-columns: 75px minmax(0, 1fr); gap: 8px 16px; border-right: 0; border-bottom: 1px solid color-mix(in srgb, currentColor 30%, transparent); padding: 12px 16px; }
  .week-day:last-child { border-bottom: 0; }
  .week-day-heading { grid-row: span 2; margin: 0; }
  .week-day .calendar-entries { margin: 0; }
  .calendar-hours { grid-column: 2; }
}
@media (max-width: 700px) {
  .month-day { align-items: center; min-height: 64px; padding: 8px 4px; text-align: center; }
  .month-items, .month-today { display: none; }
  .month-date { font-size: 1.5rem; }
  .month-day[aria-current="date"] .month-date { text-decoration: underline; text-underline-offset: 4px; }
  .calendar-controls button { padding-inline: 12px; }
}
@media (prefers-reduced-motion: reduce) { .week-section { transition: none; } }

.calendar-page .calendar-shell { padding-top: 24px; }
.calendar-layout { display: block; }
.calendar-board { min-width: 0; }
.calendar-page .calendar-bar { border-top: 0; }
.calendar-dialog-open { overflow: hidden; scrollbar-gutter: stable; }
.calendar-day-dialog { box-sizing: border-box; width: min(600px, calc(100% - 48px)); max-width: none; max-height: 85vh; max-height: 85dvh; margin: auto; padding: 0; border: 1px solid var(--status-color); background: var(--background-color); color: var(--status-color); overflow-y: auto; overscroll-behavior: contain; }
.calendar-day-dialog[open] { animation: calendar-dialog-enter 180ms ease-out; }
.calendar-day-dialog::backdrop { background: rgb(0 0 0 / 65%); }
.calendar-dialog-close { position: absolute; top: 12px; right: 12px; display: grid; place-items: center; width: 44px; height: 44px; border: 0; padding: 0; background: transparent; color: var(--background-color); font: 300 2rem/1 sans-serif; cursor: pointer; }
.calendar-dialog-close:hover { opacity: .65; }
.calendar-dialog-close:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
@keyframes calendar-dialog-enter { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
.calendar-book-button { display: block; margin: 0; border: 1px solid currentColor; padding: 12px 16px; background: transparent; color: inherit; font: 1.1rem/1.2 "Sweet Boys Pretender Light", sans-serif; text-align: center; text-transform: uppercase; text-decoration: none; }
.calendar-book-button:is(:hover, :focus-visible) { background: var(--status-color); color: var(--background-color); text-decoration: none; }
.calendar-book-button:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.month-specials-cue { font-size: .55rem; line-height: 1.4; text-transform: uppercase; opacity: .7; }
.calendar-page .month-day { min-height: clamp(104px, 9vw, 132px); padding: 14px; }
.calendar-page .month-items { margin-top: 8px; gap: 6px; }
.calendar-page .month-item { font-size: .7rem; text-transform: uppercase; }
.month-event-label { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.month-event-compact { display: none; }
.calendar-page .month-today { display: none; }
.calendar-page .month-day[aria-current="date"] .month-date { text-decoration: none; }
.calendar-page .month-date { display: grid; place-items: center; width: 26px; height: 26px; font-size: 1.5rem; }
.calendar-page .calendar-day-details { border: 0; margin: 0; padding: 0; }
.calendar-page .calendar-day-title { display: grid; grid-template-columns: auto 1fr; align-items: end; gap: 6px 24px; padding: 28px 64px 28px 32px; background: var(--status-color); color: var(--background-color); line-height: 1; }
.day-heading-number { grid-row: span 2; font: normal 6rem/.85 "Sweet Boys Pretender Bold", sans-serif; }
.day-heading-weekday { font: 300 2rem/1 "Sweet Boys Pretender Light", sans-serif; }
.day-heading-month { align-self: start; font: 700 .7rem/1.5 "Sweet Boys Futura", sans-serif; letter-spacing: .09em; }
.calendar-day-content { padding: 30px 32px; }
.day-event + .day-event { margin-top: 28px; }
.day-event-meta { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 16px; font: 700 .7rem/1.4 "Sweet Boys Futura", sans-serif; letter-spacing: .06em; text-transform: uppercase; }
.day-event-title { margin: 0; font: normal clamp(1.7rem, 3vw, 2.2rem)/1.08 "Sweet Boys Pretender Bold", sans-serif; text-transform: uppercase; }
.day-specials-title { margin: 0 0 14px; font: 300 1.45rem/1.1 "Sweet Boys Pretender Light", sans-serif; text-transform: uppercase; }
.day-event ~ .day-specials { margin-top: 28px; padding-top: 24px; border-top: 1px solid color-mix(in srgb, currentColor 25%, transparent); }
.day-specials-list { list-style: none; margin: 0; padding: 0; }
.day-special-row { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding: 12px 0; font: 700 .85rem/1.5 "Sweet Boys Futura", sans-serif; }
.day-special-row + .day-special-row { border-top: 1px solid color-mix(in srgb, currentColor 18%, transparent); }
.day-special-time { flex-shrink: 0; font-size: .7rem; }
.calendar-dialog-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 32px; border-top: 1px solid color-mix(in srgb, currentColor 25%, transparent); }
.calendar-dialog-actions .calendar-date-link { margin: 0; }
.calendar-date-link { background: transparent; border: 0; color: inherit; cursor: pointer; display: inline-block; font: 700 .65rem/1.4 "Sweet Boys Futura", sans-serif; letter-spacing: .04em; margin-top: 20px; min-height: 44px; padding: 8px 0; text-transform: uppercase; }
.calendar-date-link:is(:hover, :focus-visible) { background: transparent; color: inherit; text-decoration: underline; text-underline-offset: 4px; }
.calendar-share-status { font-size: .7rem; line-height: 1.5; overflow-wrap: anywhere; margin: 12px 0 0; }
.calendar-share-status:empty { display: none; }
.calendar-view-switch { display: none; gap: 0; margin-top: 20px; }
.calendar-view-switch button { background: transparent; border: 1px solid currentColor; color: inherit; cursor: pointer; font: 1.3rem "Sweet Boys Pretender Light", sans-serif; min-height: 44px; padding: 10px 24px; }
.calendar-view-switch button + button { border-left: 0; }
.calendar-view-switch button[aria-pressed="true"] { background: var(--status-color); color: var(--background-color); }
.calendar-view-switch button:is(:hover, :focus-visible) { background: var(--status-color); color: var(--background-color); text-decoration: none; }
.calendar-view-switch button[aria-pressed="true"]:is(:hover, :focus-visible) { background: var(--background-color); color: var(--status-color); }
.calendar-agenda[hidden] { display: none; }
.agenda-day { border-bottom: 1px solid currentColor; padding: 20px 0; }
.agenda-select { display: block; width: 100%; background: none; border: 0; color: inherit; cursor: pointer; font: 1.5rem "Sweet Boys Pretender Light", sans-serif; min-height: 44px; padding: 0; text-align: left; text-transform: uppercase; }
.agenda-event { display: block; font: 700 .8rem/1.5 "Sweet Boys Futura", sans-serif; margin-top: 10px; }
.agenda-select .month-specials-cue { display: block; margin-top: 8px; }
.agenda-select[aria-current="date"] { text-decoration: underline; text-underline-offset: 5px; }
.agenda-select[aria-pressed="true"] { font-weight: bold; }
.calendar-view-switch button:focus-visible, .agenda-select:focus-visible, .calendar-date-link:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
@media (max-width: 900px) {
  .calendar-view-switch { display: flex; }
  .calendar-page .month-day { min-height: 82px; padding: 10px 3px; align-items: center; }
  .calendar-page .month-items { display: grid; }
  .calendar-page .month-item { border: 0; padding: 0; font-size: .55rem; line-height: 1.3; }
  .month-event-label, .month-items .month-specials-cue { display: none; }
  .month-event-compact { display: block; }
  .calendar-page[data-calendar-view="list"] .month-grid, .calendar-page[data-calendar-view="list"] .month-weekdays { display: none; }
}
@media (max-width: 700px) {
  .calendar-day-dialog { width: 100%; max-height: 88vh; max-height: 88dvh; margin: auto 0 0; padding: 0 0 env(safe-area-inset-bottom); border-inline: 0; border-bottom: 0; }
  .calendar-day-dialog::before { content: ""; position: absolute; top: 8px; left: calc(50% - 20px); width: 40px; height: 3px; background: var(--background-color); opacity: .4; }
  .calendar-page .calendar-day-title { padding: 30px 56px 24px 24px; gap: 6px 18px; }
  .day-heading-number { font-size: 4.7rem; }
  .day-heading-weekday { font-size: 1.6rem; }
  .day-heading-month { font-size: .6rem; }
  .calendar-day-content { padding: 24px; }
  .calendar-dialog-actions { padding: 16px 24px; gap: 12px; }
  .calendar-book-button { font-size: 1rem; padding-inline: 12px; }
}
@media (prefers-reduced-motion: reduce) { .calendar-day-dialog[open] { animation: none; } }
