/* /css/pages/booking.css — локальные стили калькулятора /booking */
.booking-page { max-width: 1320px; }
.booking-page .villa-panel { border-radius: 1.35rem; }
.booking-intro { padding-block: clamp(1.5rem, 3vw, 2.25rem); }
.booking-form-panel { padding-bottom: 2rem; }
.booking-page .form-label { font-size: .96rem; }
.booking-page .form-control,
.booking-page .form-select { border-color: rgba(0,100,82,.22); border-radius: .7rem; }
.booking-page .form-control:focus,
.booking-page .form-select:focus { border-color: #006a57; box-shadow: 0 0 0 .2rem rgba(0,106,87,.12); }

/* Каждая строка: номер / возраст / путёвка / крестик */
.booking-guests-list { display: flex; flex-direction: column; gap: .55rem; }
.booking-guest-row {
    display: grid;
    grid-template-columns: 1.7rem minmax(112px, .65fr) minmax(0, 1.65fr) 2rem;
    align-items: center;
    gap: .6rem;
    padding: .55rem .7rem;
    border: 1px solid rgba(0,106,87,.16);
    border-radius: .75rem;
    background: rgba(255,255,255,.72);
}
.booking-guest-row__number { color: #005946; font-weight: 700; white-space: nowrap; }
.booking-guest-row__field { min-width: 0; }
.booking-guest-row__field .form-select { width: 100%; font-size: .92rem; padding: .56rem 2rem .56rem .65rem; }
.booking-guest-row__remove {
    display: inline-flex; align-items: center; justify-content: center;
    border: 0; border-radius: .45rem; background: transparent;
    width: 2rem; height: 2rem; padding: 0; color: #737a78;
}
.booking-guest-row__remove:hover { background: rgba(164,40,40,.08); color: #a42828; }
.booking-guest-row__remove:focus-visible { outline: 2px solid #006a57; }
.booking-guest-row__remove:disabled { opacity: .35; cursor: not-allowed; }
.booking-add-guest { display: block; width: 100%; min-height: 48px; }

/* Результат */
.booking-result { position: relative; }
.booking-result__total { font-size: clamp(1.75rem,3.2vw,2.6rem); color: #006a57; font-weight: 700; line-height: 1.15; }
.booking-result__meta { font-size: .92rem; color: #6d7774; }
.booking-result__room { border-top: 1px solid rgba(0,106,87,.15); padding: 1rem 0; }
.booking-result__room strong { color: #005946; }
.booking-result__status {
    padding: 1rem; border: 1px solid rgba(0,106,87,.14); border-radius: .85rem;
    background: rgba(255,255,255,.65); white-space: pre-line; line-height: 1.55;
}
.booking-result__status--warn { border-color: rgba(150,100,50,.24); background: rgba(255,249,241,.75); }
.booking-result__person { padding-left: .65rem; border-left: 3px solid rgba(0,106,87,.18); margin-top: .45rem; }
.booking-result__season { display: flex; flex-direction: column; gap: .35rem; font-size: .87rem; }
.booking-result__season-item { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; line-height: 1.5; }
.booking-result__season-item span:last-child { white-space: nowrap; flex-shrink: 0; font-variant-numeric: tabular-nums; }
.booking-result__actions { padding-top: 1.2rem; border-top: 1px solid rgba(0,106,87,.15); }
.booking-result__actions .btn-villa-action { min-width: 210px; }
#bookingResultCall .uni-button { width: auto; max-width: 100%; min-width: 220px; justify-content: center; }

/* Контакты и справка */
.booking-conditions p { line-height: 1.6; }
.booking-contact__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 300px));
    justify-content: center;
    gap: 1rem;
}
.booking-contact__button { width: 100%; min-width: 0; min-height: 60px; justify-content: flex-start; text-align: left; }
.booking-contact__button .uni-button__text { overflow-wrap: anywhere; }
.booking-call-hours { margin: .8rem auto 0; max-width: 36rem; font-size: .835rem; line-height: 1.55; color: var(--bs-secondary-color,#6c757d); text-align: center; }
.booking-call-hours strong { color: var(--bs-body-color,#303830); font-weight: 600; }

/* Отдельная модалка заявки */
.booking-feedback-summary { padding: 1rem 1.1rem; border: 1px solid rgba(0,106,87,.18); border-radius: .75rem; background: var(--villa-surface-green,#f2f8f4); }
.booking-feedback-summary__grid { display: grid; grid-template-columns: minmax(6rem,.9fr) minmax(0,1.5fr); gap: .3rem .8rem; font-size: .87rem; }
.booking-feedback-summary__label { color: var(--bs-secondary-color,#6c757d); }
.booking-feedback-summary__value { font-weight: 600; overflow-wrap: anywhere; }
.booking-feedback-summary__guests { margin: .75rem 0 0; padding-left: 1.25rem; font-size: .86rem; }
.booking-feedback-summary__guests li + li { margin-top: .35rem; }
.booking-feedback-summary__guests small { display: block; color: var(--bs-secondary-color,#6c757d); font-size: .78rem; }
.booking-feedback-status:empty { display: none; }

@media (min-width: 992px) { .booking-result { position: sticky; top: 90px; } }
@media (max-width: 767.98px) {
    .booking-contact__actions { grid-template-columns: minmax(0,1fr); max-width: 400px; margin-inline: auto; }
}
@media (max-width: 575.98px) {
    .booking-guest-row { grid-template-columns: 1.7rem minmax(0,1fr) 2rem; gap: .45rem; }
    .booking-guest-row__program { grid-column: 2; grid-row: 2; }
    .booking-guest-row__remove { grid-column: 3; grid-row: 1 / 3; }
    .booking-page .btn-villa-action { width: 100%; }
    .booking-page .uni-button { width: 100%; justify-content: center; }
    .booking-result__season-item { align-items: flex-start; }
}

/* Модальное окно: экран после подтверждённой отправки заявки */
.booking-feedback-success {
    padding: clamp(2rem, 4vw, 3rem) 1.5rem;
    text-align: center;
}
.booking-feedback-success__icon {
    color: #006a57;
    font-size: 3.25rem;
    line-height: 1;
    margin-bottom: 1.25rem;
}
.booking-feedback-success__lead {
    font-size: 1.08rem;
    line-height: 1.5;
}
.booking-feedback-success:focus { outline: none; }
