.calendar-promo{padding:100px 0;background:#fffdf9}.calendar-promo h2{font:400 clamp(2.3rem,4vw,3.7rem)/1.15 'Playfair Display',Georgia,serif;margin:14px 0 18px}.calendar-promo .calendar-intro{max-width:760px;margin:0 0 35px;color:#45606a;font-size:1.08rem}.availability-widget{width:100%;background:#f6f8f5;border:1px solid #dbe3dc;border-radius:18px;overflow:hidden;box-shadow:0 18px 55px rgba(20,46,60,.08)}.availability-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;padding:24px 30px;background:#e9eeeb}.availability-years{display:flex;gap:7px}.availability-years button{border:1px solid #a9bdb6;border-radius:999px;background:transparent;color:#234338;padding:9px 20px;font-weight:700;cursor:pointer}.availability-years button[aria-pressed=true]{background:#235e4b;color:#fff;border-color:#235e4b}.availability-legend{display:flex;gap:18px;flex-wrap:wrap;color:#405861;font-size:.88rem}.availability-legend span{display:inline-flex;align-items:center;gap:7px}.availability-legend i{width:13px;height:13px;border-radius:3px;display:inline-block;background:#daf0e2;border:1px solid #a5cfb6}.availability-legend .busy{background:#ead4ce;border-color:#d5afa5}.availability-message{padding:15px 30px;background:#f1f6f2;color:#31564a;min-height:56px}.availability-months{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:26px}.availability-month{background:#fff;border:1px solid #e2e8e3;border-radius:12px;padding:18px;min-width:0}.availability-month h3{margin:0 0 15px;font:400 1.42rem/1.2 'Playfair Display',Georgia,serif}.availability-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.availability-weekday{text-align:center;font-size:.72rem;color:#667a7c;padding:4px 0 6px}.availability-day{aspect-ratio:1;min-width:0;width:100%;display:grid;place-items:center;border:1px solid transparent;border-radius:6px;background:#def2e4;color:#1e5840;font-weight:600;font-size:.84rem;padding:0;cursor:pointer}.availability-day:hover:not(:disabled),.availability-day:focus-visible{outline:2px solid #1d664a;outline-offset:1px}.availability-day:disabled{cursor:default}.availability-day.is-occupied{background:#eedbd6;color:#8c5e55}.availability-day.is-unset{background:#f1f0ed;color:#777}.availability-day.is-selected{background:#1e674b;color:#fff}.availability-day.is-range{background:#b6dfc5;color:#194831}.availability-day.is-past{opacity:.72}.availability-day.is-today{box-shadow:inset 0 0 0 2px #95774d}.availability-footer{padding:0 26px 25px;color:#536b6c;font-size:.88rem}.availability-footer a{font-weight:700;text-decoration:underline}.map-visual{position:relative;width:100%;height:430px;background:#e7ede9}.map-visual iframe{width:100%;height:100%;display:block;border:0}.map-key{display:flex;flex-wrap:wrap;gap:10px 20px;padding:13px 9px 2px;font-size:.82rem;color:#23414a}.map-key span{display:inline-flex;align-items:center;gap:7px}.map-key b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#1d654b;color:#fff;font-size:.72rem}.map-key .parking b{background:#b07b3e}.map-card .map-note{margin:7px 9px 0;font-size:.78rem;line-height:1.45;color:#53676d}.map-card>a{display:block;text-align:right;padding:12px 7px 4px;font-size:.88rem;font-weight:700;text-decoration:underline}@media(max-width:950px){.availability-months{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.calendar-promo{padding:72px 0}.availability-toolbar{padding:19px;align-items:flex-start}.availability-message{padding:15px 19px}.availability-months{grid-template-columns:1fr;padding:13px;gap:13px}.availability-month{padding:18px}.availability-day{font-size:.94rem}.availability-footer{padding:4px 19px 22px}
.availability-day.has-price{display:flex;flex-direction:column;gap:0;line-height:1.15}.availability-day small{font-size:.59rem;font-weight:600}.booking-panel{margin:0 26px 26px;padding:26px;background:white;border:1px solid #d7e1dc;border-radius:12px}.booking-panel h3{font:400 1.6rem/1.2 'Playfair Display',Georgia,serif;margin:0 0 16px}.booking-panel .booking-dates{margin:0 0 15px;color:#45606a}.booking-breakdown{display:grid;gap:7px;margin:0;padding:0;list-style:none}.booking-breakdown li,.booking-total{display:flex;justify-content:space-between;gap:15px}.booking-breakdown li{border-bottom:1px solid #edf0ed;padding:5px 0}.booking-total{border-top:2px solid #234d40;margin-top:16px;padding-top:16px;font-size:1.16rem;font-weight:700}.booking-panel form{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin-top:22px}.booking-panel label{display:grid;gap:5px;font-size:.88rem;color:#45606a}.booking-panel input{width:100%;min-width:0;border:1px solid #b8c8c1;border-radius:6px;padding:10px;background:#fff;color:#142e3c}.booking-panel button{border:0;border-radius:6px;padding:11px 18px;background:#235e4b;color:white;font-weight:700;cursor:pointer}.booking-panel button:disabled{background:#859791;cursor:default}.booking-note{font-size:.8rem;color:#617477;margin:12px 0 0}@media(max-width:650px){.booking-panel{margin:0 13px 19px;padding:19px}.booking-panel form{grid-template-columns:1fr 1fr}.booking-panel form button{grid-column:1/-1}.availability-day small{font-size:.58rem}}
.booking-rates{border:1px solid #d7e1dc;border-radius:8px;padding:13px 16px;margin:19px 0 17px}.booking-rates legend{padding:0 6px;font-weight:700;color:#234338}.booking-rates label{display:flex;align-items:center;gap:9px;min-height:36px;cursor:pointer}.booking-rates input{accent-color:#235e4b}.booking-price-line{display:flex;justify-content:space-between;gap:15px;padding:4px 0;color:#405861}}

/* Reservation panel: desktop defaults live outside the mobile media query. */
.availability-day.has-price{display:flex;flex-direction:column;gap:0;line-height:1.15}.availability-day small{font-size:.59rem;font-weight:600}.booking-panel{margin:0 26px 26px;padding:26px;background:white;border:1px solid #d7e1dc;border-radius:12px}.booking-panel h3{font:400 1.6rem/1.2 'Playfair Display',Georgia,serif;margin:0 0 16px}.booking-panel .booking-dates{margin:0 0 15px;color:#45606a}.booking-breakdown{display:grid;gap:7px;margin:0;padding:0;list-style:none}.booking-breakdown li,.booking-total{display:flex;justify-content:space-between;gap:15px}.booking-breakdown li{border-bottom:1px solid #edf0ed;padding:5px 0}.booking-total{border-top:2px solid #234d40;margin-top:16px;padding-top:16px;font-size:1.16rem;font-weight:700}.booking-panel form{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin-top:22px}.booking-panel label{display:grid;gap:5px;font-size:.88rem;color:#45606a}.booking-panel input{width:100%;min-width:0;border:1px solid #b8c8c1;border-radius:6px;padding:10px;background:#fff;color:#142e3c}.booking-panel button{border:0;border-radius:6px;padding:11px 18px;background:#235e4b;color:white;font-weight:700;cursor:pointer}.booking-panel button:disabled{background:#859791;cursor:default}.booking-note{font-size:.8rem;color:#617477;margin:12px 0 0}.booking-rates{border:1px solid #d7e1dc;border-radius:8px;padding:13px 16px;margin:19px 0 17px}.booking-rates legend{padding:0 6px;font-weight:700;color:#234338}.booking-rates label{display:flex;align-items:center;gap:9px;min-height:36px;cursor:pointer}.booking-rates input{accent-color:#235e4b}.booking-price-line{display:flex;justify-content:space-between;gap:15px;padding:4px 0;color:#405861}.availability-footer{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}.availability-footer span{max-width:720px}.availability-footer a{white-space:nowrap}@media(max-width:650px){.booking-panel{margin:0 13px 19px;padding:19px}.booking-panel form{grid-template-columns:1fr 1fr}.booking-panel form button{grid-column:1/-1}.availability-day small{font-size:.58rem}.availability-footer{align-items:flex-start}.availability-footer a{white-space:normal}}
