.legacy-booking-form { display: none; }
.booking-page-wrap { padding: 2.5rem 0; }
.booking-widget { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(330px, 1fr); gap: 2rem; align-items: start; }
.booking-calendar-panel, .booking-details-panel { overflow: hidden; border: 1px solid #e2e4e8; border-radius: 16px; background: #fff; box-shadow: 0 2px 5px rgba(22, 38, 61, .12); }
.calendar-heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.65rem 1.5rem 1.35rem; border-bottom: 1px solid #e4e7eb; }
.calendar-navigation { display: flex; gap: .45rem; }.calendar-navigation button { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #d8dee6; border-radius: 50%; background: #fff; color: #243550; font-size: 1.55rem; line-height: 1; cursor: pointer; }.calendar-navigation button:hover:not(:disabled) { border-color: #e56827; color: #e56827; }.calendar-navigation button:disabled { opacity: .35; cursor: not-allowed; }
.calendar-heading h3, .booking-details-panel > h3 { margin: 0; color: #243550; font-size: 1.48rem; font-weight: 700; }
.calendar-heading p { margin: .35rem 0 0; color: #4a5d7b; font-size: .9rem; }
.calendar-months { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.calendar-month { padding: 1.15rem 1.3rem 1.35rem; }
.calendar-month + .calendar-month { border-left: 1px solid #e4e7eb; }
.calendar-month-title { margin-bottom: 1rem; color: #1b3559; font-size: .88rem; font-weight: 700; letter-spacing: .1em; text-align: center; text-transform: uppercase; }
.calendar-weekdays, .calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: .22rem; text-align: center; }
.calendar-weekdays { margin-bottom: .5rem; color: #1b3559; font-size: .72rem; }
.calendar-day { display: grid; place-items: center; width: 100%; aspect-ratio: 1; border: 0; border-radius: 9px; background: transparent; color: #183259; font-size: .83rem; cursor: pointer; }
.calendar-day:hover:not(:disabled) { background: #fff0e6; color: #e36625; }
.calendar-day:disabled { color: #c5cbd4; cursor: not-allowed; }
.calendar-day.today { outline: 2px solid #e56827; outline-offset: -2px; }
.calendar-day.selected { background: #e56827; color: #fff; font-weight: 700; }
.calendar-day.in-range { border-radius: 0; background: #fce8dc; }
.calendar-legend { display: flex; flex-wrap: wrap; gap: 1rem; padding: .9rem 1.35rem; border-top: 1px solid #e4e7eb; color: #334763; font-size: .72rem; }
.calendar-legend span { display: inline-flex; align-items: center; gap: .38rem; }.calendar-legend i { width: 14px; height: 14px; border-radius: 50%; display: inline-block; }.legend-today { border: 2px solid #e56827; }.legend-selected { background: #e56827; }.legend-range { background: #fce8dc; }.legend-disabled { background: #dfe3e8; }
.booking-details-panel > h3 { padding: 1.65rem 1.5rem; color: #fff; background: #253852; }
.booking-fields { padding: 1.45rem 1.5rem; }.booking-fields label { display: block; margin: .8rem 0 .4rem; color: #435674; font-size: .75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }.booking-fields label:first-child { margin-top: 0; }
.booking-fields input, .booking-fields select, .booking-fields textarea { width: 100%; padding: .75rem .85rem; border: 1px solid #ced3da; border-radius: 10px; color: #293b55; font: inherit; font-size: .9rem; background: #fff; }.booking-fields .date-display { background: #fbf8f2; cursor: pointer; }.booking-fields textarea { resize: vertical; }.booking-fields input:focus, .booking-fields select:focus, .booking-fields textarea:focus { outline: 0; border-color: #e56827; box-shadow: 0 0 0 3px rgba(229,104,39,.12); }
.booking-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }.booking-field-grid label { margin-top: .8rem; }.availability-btn { display: flex; justify-content: center; align-items: center; gap: .65rem; width: 100%; margin-top: 1.35rem; padding: .95rem 1rem; border: 0; border-radius: 10px; background: #e56827; color: #fff; font-weight: 700; cursor: pointer; }.availability-btn:hover { background: #cc571c; }.availability-btn span { font-size: 1.45rem; line-height: .6; }.booking-safe-note { margin: .85rem 0 0; color: #6a778a; font-size: .76rem; text-align: center; }
.children-ages { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin-top: .8rem; }.children-ages[hidden] { display: none; }.children-ages label { margin: 0 0 .35rem; }.children-ages input { width: 100%; }
.booking-fields label[for="name"], .booking-fields #name, .booking-fields label[for="email"], .booking-fields #email, .booking-fields label[for="phone"], .booking-fields #phone, .booking-fields label[for="requests"], .booking-fields #requests, .booking-fields label[for="captcha_answer"], .booking-fields #captcha_answer, .booking-safe-note { display: none; }
.availability-results { max-width: 580px; margin: 2rem 0 0 auto; padding: 1.5rem; border: 1px solid #e2e4e8; border-radius: 16px; background: #fff; box-shadow: 0 2px 5px rgba(22, 38, 61, .12); }.availability-results[hidden] { display: none; }.availability-title { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }.availability-title span { color: #e56827; font-size: .76rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }.availability-title h3 { margin: 0; color: #243550; font-size: 1.2rem; }.availability-info, .room-quantity, .availability-total { display: flex; justify-content: space-between; align-items: center; padding: 1rem 0; border-bottom: 1px solid #e4e7eb; color: #56667d; }.availability-info strong, .availability-total strong { color: #243550; font-size: 1.1rem; }.quantity-control { display: inline-flex; align-items: center; gap: .85rem; }.quantity-control button { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid #d2d8e0; border-radius: 50%; background: #fff; color: #e56827; font-size: 1.25rem; line-height: 1; cursor: pointer; }.quantity-control button:hover { background: #fff0e6; }
@media (max-width: 991.98px) { .booking-widget { grid-template-columns: 1fr; } }
@media (max-width: 575.98px) { .booking-widget { gap: 1rem; }.calendar-months { grid-template-columns: 1fr; }.calendar-month + .calendar-month { border-top: 1px solid #e4e7eb; border-left: 0; }.calendar-month { padding: 1rem; }.booking-fields, .booking-details-panel > h3 { padding: 1.2rem; }.calendar-legend { gap: .6rem; padding: .8rem 1rem; } }
