/* The existing booking controls, arranged into the same full-screen chapters as programs. */
.dates-page .catalog-chapter-scene.calendar-scene { background: linear-gradient(90deg,#03182cbf,#041e3570),url('night-calendar.jpg') center / cover #0b1c2b; }
.dates-page .catalog-chapter-navigation { width: min(360px,calc(100% - 40px)); }
@media(min-width:1200px) and (min-height:700px) {
 .dates-page[data-program-transitions] .catalog-chapter-scene { padding: 90px 0 60px; }
 .dates-page .calendar-scene > .container { width: min(1240px,calc(100% - 80px)); }
 .dates-page .calendar-scene > .container > .container { width: 100%; margin: 0; padding: 0; }
 .dates-page .breadcrumbs { margin: 0 0 10px; padding-top: 0; }
 .dates-page .calendar-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 20px; max-width: none; }
 .dates-page .calendar-heading h1 { font-size: clamp(38px,3.5vw,52px); line-height: 1.05; }
 .dates-page .calendar-heading h1 br { display: none; }
 .dates-page .calendar-heading h1 em::before { content: ' '; }
 .dates-page .calendar-heading p { margin: 0; max-width: 360px; font-size: 13px; line-height: 1.5; }
 .dates-page .calendar-layout { grid-template-columns: 1.15fr 1fr; gap: 28px; align-items: stretch; }
 .dates-page .calendar-board { padding: 24px; }
 .dates-page .calendar-header { margin-bottom: 16px; }
 .dates-page .calendar-header h2 { font-size: 34px; }
 .dates-page .calendar-weekdays { margin-bottom: 10px; }
 .dates-page .calendar-days { min-height: 289px; grid-auto-rows: 44px; gap: 5px; }
 .dates-page .day { aspect-ratio: auto; width: 44px; height: 44px; justify-self: center; font-size: 21px; }
 .dates-page .calendar-legend { margin-top: 15px; }
 .dates-page .calendar-quote { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; padding: 20px 24px; align-content: start; }
 .dates-page .calendar-quote .scene-snow-branch { height: 65px; top: -23px; }
 .dates-page .calendar-quote > .scene-kicker { grid-column: 1/-1; margin: 0; }
 .dates-page .calendar-quote h2 { grid-column: 1/-1; font-size: 29px; line-height: 1.1; margin: 0; }
 .dates-page .calendar-quote > p { grid-column: 1/-1; margin: 0; }
 .dates-page .calendar-quote > label:has(#calendar-program) { grid-column: 1/-1; }
 .dates-page .calendar-quote label { min-width: 0; margin: 0; gap: 4px; }
 .dates-page .calendar-quote input,.dates-page .calendar-quote select { min-height: 38px; padding: 7px 10px; }
 .dates-page .quote-controls { grid-column: 1/-1; gap: 16px; }
 .dates-page .calendar-quote > label:has(#calendar-duration) { align-self: center; }
 .dates-page .quote-price { align-self: end; margin: 0; padding: 8px 0; font-size: 30px; text-align: right; border: 0; }
 .dates-page .calendar-quote > .button { grid-column: 1/-1; min-height: 46px; margin-top: 9px; font-size: 14px; }
 .dates-page .calendar-quote > .scene-benefits { display: none; }
}
@media(max-width:767px) {
 .dates-page .calendar-scene > .container > .container { width: 100%; padding: 0; }
}
/* The calendar and quote share one frost-window visual system. */
.dates-page .calendar-scene { background:linear-gradient(90deg,#03122566,#03122522),url('night-calendar.jpg') center/cover; }
.dates-page .calendar-heading { display:block;max-width:none;margin-bottom:22px; }
.dates-page .calendar-heading .dates-art-heading { position:relative;width:min(760px,63%);max-width:none;margin:0;font:400 55px/1 'Cormorant Garamond',serif; }
.dates-art-heading > img { width:100%;height:auto;display:none; }
.dates-art-heading.art-ready > img { display:block; }
.dates-art-heading.art-ready > span { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap; }
.dates-page .calendar-heading h1 em::before { content:none; }
.dates-page .calendar-heading > p { margin:0;max-width:690px;font:400 21px/1.4 'Cormorant Garamond',serif;color:#fff3e6; }
.dates-page .calendar-layout { grid-template-columns:1.06fr .94fr;gap:28px;align-items:stretch; }
.dates-page .calendar-board,.dates-page .calendar-quote { position:relative;isolation:isolate;border:1px solid #e7d7ae;border-radius:23px;background:linear-gradient(125deg,#0b233ce8,#061a30eb);box-shadow:0 0 10px #c2e8ff44,inset 0 0 28px #b7d9f414; }
.dates-page :is(.calendar-board,.calendar-quote)::after { content:'';position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:inherit;background:url('program-frost.svg') center/100% 100% no-repeat;opacity:.7; }
.dates-page :is(.calendar-board,.calendar-quote) > * { position:relative;z-index:2; }
.dates-page .calendar-board { padding:28px 32px; }
.dates-page .calendar-header { margin-bottom:20px; }
.dates-page .calendar-header h2 { font:400 42px/1 'Cormorant Garamond',serif;color:#fff4e6; }
.dates-page .month-actions button { width:48px;height:48px;min-height:48px;padding:12px; }
.month-actions svg { width:100%;height:100%; }
.dates-page .calendar-weekdays { margin-bottom:10px;padding-bottom:12px;border-bottom:1px solid #c1dcf21a;font:400 13px/1.2 Manrope,sans-serif;color:#d8e2ee; }
.dates-page .calendar-days { min-height:288px;grid-auto-rows:44px;gap:4px; }
.dates-page .day { aspect-ratio:1;width:44px;height:44px;justify-self:center;font:500 25px/1 'Cormorant Garamond',serif; }
.dates-page .day[aria-pressed=true] { background:linear-gradient(140deg,#ffe09a,#e8b64c);border:1px solid #ffe4a2;color:#071a2b;box-shadow:0 0 20px #e9b95566; }
.dates-page .calendar-legend { align-items:center;gap:12px;flex-wrap:wrap;font:400 14px/1.3 'Cormorant Garamond',serif;margin-top:20px; }
.calendar-availability { display:flex;align-items:center;gap:10px; }.calendar-availability > span { font:400 22px/1 Georgia,serif; }
.calendar-selected-legend { display:flex;align-items:center;gap:9px; }.calendar-selected-legend i { width:14px;height:14px;border-radius:50%;background:#efc267;box-shadow:0 0 8px #e7ae4a55; }
.dates-page .calendar-quote { display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;align-content:start;padding:28px 32px; }
.dates-page .calendar-quote > .scene-kicker { grid-column:1/-1;font:500 13px/1.3 'Cormorant Garamond',serif;letter-spacing:.16em;margin:0;color:#edc578; }
.dates-page .calendar-quote > .scene-kicker::after { content:'✧';display:inline-block;margin-left:10px;font-size:22px;line-height:10px; }
.dates-page .calendar-quote h2 { grid-column:1/-1;font:400 37px/1 'Cormorant Garamond',serif;margin:0 0 3px;color:#fff4e6; }
.dates-page .calendar-quote > label:has(#calendar-program),.dates-page .quote-controls { grid-column:1/-1; }
.dates-page .calendar-quote label { margin:0;gap:8px;min-width:0;font-size:14px; }
.dates-page .calendar-quote :is(input,select) { width:100%;min-height:46px;padding:10px 14px;background:#0d2a44bd;border:1px solid #d2e4f29c;border-radius:7px;color:#f9f5ee;font-size:14px;color-scheme:dark; }
.dates-page .calendar-quote select option { background:#0b2239;color:#fff; }
.dates-page .calendar-quote :is(input,select):focus-visible,.dates-page .day:focus-visible,.dates-page .month-actions button:focus-visible { outline:2px solid #edc578;outline-offset:3px; }
.dates-page .calendar-quote > label:has(#calendar-duration) { align-self:end; }
.dates-page .quote-price { align-self:end;margin:0;padding:0;border:0;color:#f1c477;text-align:right;font:600 43px/1.08 'Cormorant Garamond',serif; }
.dates-page .quote-price.is-unpriced { font-size:29px; }
.dates-page .quote-controls { gap:20px; }
.dates-page .calendar-quote > #quote-note { grid-column:1/-1;margin:0;color:#d7e0ec;font:400 16px/1.4 'Cormorant Garamond',serif; }
.dates-page .calendar-quote > .button { position:relative;grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;width:100%;min-height:66px;margin:8px 0 0;padding:18px 26px;border:1px solid #ffe2a4;border-radius:12px;background:linear-gradient(110deg,#ffe1a0,#d99e3d);color:#122739;font:600 27px/1.2 'Cormorant Garamond',serif;box-shadow:0 0 16px #e4af5522;transition:transform .25s,box-shadow .25s; }
.dates-page .calendar-quote > .button::before { content:none;display:none; }
.dates-page .calendar-quote > .button::after { display:none; }
.dates-page .calendar-quote > .button > span { font:400 32px/1 Georgia,serif;transition:transform .25s; }
.dates-page .calendar-quote > .button:hover { transform:translateY(-2px);box-shadow:0 0 22px #e4af5544; }.dates-page .calendar-quote > .button:hover > span { transform:translateX(5px); }
.dates-page .calendar-quote > .scene-benefits { display:none; }
.dates-page .calendar-validation { grid-column:1/-1;color:#ffe0b9; }
@media(min-width:1200px) and (min-height:700px) {
 .dates-page .calendar-scene > .container { width:min(1450px,calc(100% - 100px)); }
 .dates-page .calendar-quote { margin-top:-42px; }
 .dates-page .calendar-heading .dates-art-heading { width:min(740px,59%); }
 .dates-page[data-program-transitions] .catalog-chapter-scene.calendar-scene { padding-top:90px;padding-bottom:65px; }
}
@media(max-width:1199px) {
 .dates-page .calendar-layout { grid-template-columns:1fr;gap:28px; }
 .dates-page .calendar-heading .dates-art-heading { width:100%;max-width:760px; }
 .dates-page .calendar-board,.dates-page .calendar-quote { margin:0; }
}
@media(max-width:767px) {
 .dates-page .calendar-heading > p { font-size:19px;line-height:1.4; }
 .dates-page .calendar-heading .dates-art-heading { font-size:40px; }
 .dates-page .calendar-board { padding:22px 15px; }
 .dates-page .calendar-header h2 { font-size:34px; }
 .dates-page .month-actions { gap:6px; }.dates-page .month-actions button { width:39px;height:39px;min-height:39px;padding:9px; }
 .dates-page .calendar-days { min-height:253px;grid-auto-rows:39px;gap:3px; }
 .dates-page .day { width:37px;height:37px;font-size:23px; }
 .dates-page .calendar-legend { font-size:13px;gap:13px;margin-top:14px; }
 .dates-page .calendar-quote { padding:24px 20px;gap:16px 12px; }
 .dates-page .calendar-quote h2 { font-size:33px; }
 .dates-page .calendar-quote label { font-size:13px; }
 .dates-page .quote-controls { gap:12px; }
 .dates-page .calendar-quote :is(input,select) { padding:10px;min-height:44px;font-size:13px; }
 .dates-page .quote-price { font-size:31px; }.dates-page .quote-price.is-unpriced { font-size:23px; }
 .dates-page .calendar-quote > .button { font-size:25px;padding:17px; }
}
@keyframes dates-arrive { from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none} }
@media(prefers-reduced-motion:no-preference) {
 .dates-page .calendar-heading { animation:dates-arrive .8s backwards; }.dates-page .calendar-board { animation:dates-arrive .8s .1s backwards; }.dates-page .calendar-quote { animation:dates-arrive .8s .2s backwards; }
}
@media(prefers-reduced-motion:reduce) { .dates-page .calendar-scene *, .dates-page .calendar-scene *::before { animation:none!important;transition:none!important; } }

.dates-page .calendar-heading h1 br { display:initial; }
@media(min-width:1200px) and (min-height:700px) {
 .dates-page .calendar-heading .dates-art-heading { display:flow-root; }
 .dates-page .dates-art-heading > img { margin-block:-24px; }
 .dates-page .calendar-quote { gap:10px 20px;padding:24px 28px; }
 .dates-page .calendar-quote > .button { min-height:62px; }
}

/* Keep the date composition wide without shrinking its navigation text. */
.dates-page .breadcrumbs { font-size:16px;gap:14px; }
.dates-page .breadcrumbs .breadcrumb-button { font-size:16px;min-height:40px;padding:8px 14px; }
@media(min-width:1200px) and (min-height:700px) {
 .dates-page .calendar-scene > .container { width:calc(100% - clamp(48px,4vw,128px)); }
 .dates-page .calendar-heading .dates-art-heading { width:100%; }
 .dates-page .dates-art-heading > img { width:auto;max-width:100%;height:clamp(140px,20svh,260px);margin:-20px 0 -16px;object-fit:contain;object-position:left center; }
 .dates-page .calendar-heading { margin-bottom:18px; }
}
@media(min-width:1200px) and (min-height:700px) and (max-height:850px) {
 .dates-page .calendar-heading > p { font-size:18px;line-height:1.3; }
 .dates-page .calendar-heading { margin-bottom:14px; }
 .dates-page .calendar-board { padding:18px 26px; }
 .dates-page .calendar-header { margin-bottom:12px; }
 .dates-page .calendar-header h2 { font-size:37px; }
 .dates-page .calendar-weekdays { padding-bottom:8px;margin-bottom:8px; }
 .dates-page .calendar-days { min-height:210px;grid-auto-rows:32px;gap:4px; }
 .dates-page .day { width:32px;height:32px;font-size:22px; }
 .dates-page .calendar-legend { margin-top:12px; }
 .dates-page .calendar-quote { padding:20px 26px;gap:8px 18px; }
 .dates-page .calendar-quote h2 { font-size:33px; }
 .dates-page .calendar-quote :is(input,select) { min-height:40px;padding:7px 12px; }
 .dates-page .calendar-quote label { gap:6px; }
 .dates-page .calendar-quote > .button { min-height:54px;padding:12px 24px; }
 .dates-page .calendar-quote { margin-top:0; }
}
@media(max-width:767px) {
 .dates-page .breadcrumbs { font-size:14px;gap:10px; }
 .dates-page .breadcrumbs .breadcrumb-button { font-size:14px; }
}

/* The introduction aligns with the two booking columns below it. */
@media(min-width:1200px) {
 .dates-page .calendar-heading { display:grid;grid-template-columns:1.06fr .94fr;align-items:center;gap:28px; }
 .dates-page .calendar-heading .dates-art-heading { width:100%;min-width:0; }
 .dates-page .calendar-heading > p { max-width:none;margin:0;font-size:clamp(26px,1.8vw,36px);line-height:1.35; }
 .dates-page .calendar-quote { margin-top:0; }
}

/* Keep dropdown arrows clear of the border at every calendar size. */
.dates-page .calendar-quote select {
 appearance:none;-webkit-appearance:none;padding-right:44px;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10'%3E%3Cpath d='m2 2 6 6 6-6' fill='none' stroke='%23f9f5ee' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
 background-repeat:no-repeat;background-position:right 16px center;background-size:16px 10px;
}
