/* Scoped booking calendar: the navigation and the rest of the page retain their themes. */
.session-calendar{--cal-ink:#eee;--cal-muted:#b0b4b2;--cal-line:#ffffff29;--cal-surface:#151817;--cal-accent:#c0d9ba;--cal-wash:#c0d9ba12;background:var(--cal-surface);color:var(--cal-ink);border:1px solid var(--cal-line);padding:clamp(18px,3vw,38px);margin:30px 0 36px;scroll-margin-top:150px}
.theme-light .session-calendar{--cal-ink:#202320;--cal-muted:#606760;--cal-line:#dce1dc;--cal-surface:#fff;--cal-accent:#496448;--cal-wash:#4964480a}
.calendar-intro{display:flex;justify-content:space-between;gap:24px;align-items:end;padding-bottom:26px;border-bottom:1px solid var(--cal-line)}
.calendar-intro .eyebrow{font-size:9px;margin-bottom:15px;color:var(--cal-muted)}
.calendar-intro h3{font-size:clamp(32px,3.5vw,52px);font-weight:400;letter-spacing:-.055em;line-height:1.05;margin:0}
.calendar-intro h3 em{font-family:Georgia,serif;font-weight:400}
.calendar-intro>p{font-size:13px;line-height:1.6;max-width:220px;margin:0;color:var(--cal-muted)}
.calendar-label{font-size:9px;letter-spacing:.15em;margin:0 0 12px;color:var(--cal-muted)}
.calendar-offers{padding:24px 0}
.calendar-chips{display:flex;flex-wrap:wrap;gap:7px}
.session-calendar button{background:transparent;color:inherit;border:1px solid var(--cal-line);box-shadow:none;transition:background .15s,color .15s;min-height:36px}
.calendar-chips button{border-radius:24px;padding:8px 13px;font-size:11px;line-height:1.25}
.session-calendar button:hover:not(:disabled){background:var(--cal-wash);border-color:var(--cal-accent)}
.session-calendar .calendar-chips button[aria-pressed=true]{background:var(--cal-ink);color:var(--cal-surface);border-color:var(--cal-ink)}
.session-calendar button:focus-visible{outline:2px solid var(--cal-accent);outline-offset:3px}
.campaign-detail{border-left:2px solid var(--cal-accent);padding:2px 0 2px 16px;margin-top:20px;min-height:130px}
.campaign-detail h4{font-size:23px;font-weight:400;letter-spacing:-.035em;margin:0 0 8px;line-height:1.2}
.campaign-detail p{font-size:13px;line-height:1.6;margin:0 0 10px;color:var(--cal-muted);max-width:58ch}
.campaign-detail small{font-size:10px;color:var(--cal-accent)}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:22px 0 18px;border-top:1px solid var(--cal-line)}
.calendar-toolbar .calendar-label{margin-bottom:6px}
.calendar-toolbar h4{font-size:25px;font-weight:400;letter-spacing:-.035em;margin:0}
.calendar-month-nav{display:flex;gap:6px}
.calendar-month-nav button{border-radius:50%;width:36px;padding:0;font-size:18px}
.calendar-month-nav #calendar-today{border-radius:20px;width:auto;padding:0 12px;font-size:10px}
.session-calendar button:disabled{opacity:.27;cursor:default}
.calendar-hint{font-size:11px;color:var(--cal-muted);margin:13px 0 18px;min-height:18px}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.calendar-weekdays span{text-align:center;font-size:10px;color:var(--cal-muted);padding:0 0 12px}
.session-calendar .calendar-day{position:relative;border-color:transparent;border-top-color:var(--cal-line);border-radius:4px;min-height:66px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:5px 1px;font-size:17px;font-variant-numeric:tabular-nums}
.calendar-day small{font-size:8px;min-height:12px;line-height:1.2}
.session-calendar .calendar-day.has-offer:not(:disabled){background:var(--cal-wash);color:var(--cal-accent)}
.session-calendar .calendar-day[aria-current=date] span{text-decoration:underline;text-underline-offset:5px}
.session-calendar .calendar-day[aria-pressed=true]{background:var(--cal-ink);color:var(--cal-surface);border-color:var(--cal-ink)}
.session-calendar .calendar-day.in-range{background:var(--cal-wash);color:var(--cal-ink);border-color:var(--cal-line)}
.calendar-legend{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:9px;color:var(--cal-muted);padding:16px 0 22px}
.calendar-legend i{display:inline-block;width:6px;height:6px;border-radius:100%;background:var(--cal-accent);margin-right:5px}
.calendar-bottom{display:grid;grid-template-columns:1fr;gap:24px;padding-top:22px;border-top:1px solid var(--cal-line)}
#calendar-selection{font-size:17px;line-height:1.5;margin:0;letter-spacing:-.02em}
.session-calendar .calendar-clear{font-size:10px;border:0;border-bottom:1px solid var(--cal-line);border-radius:0;min-height:24px;padding:0;margin-top:8px;color:var(--cal-muted)}
@media(max-width:600px){.calendar-intro{display:block}.calendar-intro>p{max-width:100%;margin-top:18px}.calendar-toolbar h4{font-size:23px}.calendar-day small{font-size:7px}.session-calendar .calendar-day{min-height:55px}.calendar-chips button{min-height:40px}.calendar-legend{font-size:9px}.campaign-detail{min-height:160px}.calendar-month-nav #calendar-today{display:none}.session-calendar{padding:18px 12px}.calendar-intro,.calendar-offers,.calendar-bottom{padding-left:5px;padding-right:5px}}
@media(prefers-reduced-motion:reduce){.session-calendar button{transition:none}}

.booking-summary{font-size:12px;line-height:1.6;border-top:1px solid var(--line);padding-top:16px;margin:20px 0 16px}
