/* Форма бронирования — общий компонент для главной и страниц экскурсий.
   Подключается вместе с booking/form.js, разметка — в booking/form.html.
   Переменные цветов (--burgundy и т.п.) задаёт сама страница. */

/* Базовые стили секции — чтобы форма выглядела одинаково на любой странице,
   даже если у неё нет собственных .container / .label / h2 */
.booking .container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.booking .label {
    font-family: 'Montserrat', sans-serif;
    font-size: 11px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 2.5px;
    color: var(--gold);
    display: block; margin-bottom: 10px;
}
.booking h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(28px, 3.5vw, 42px); font-weight: 500;
    color: var(--brown); line-height: 1.25;
}

.btn {
    display: inline-block;
    font-family: 'Montserrat', sans-serif;
    font-size: 13px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 1.5px;
    padding: 14px 32px;
    border-radius: 4px;
    border: none; cursor: pointer;
    text-decoration: none;
    transition: background .2s, color .2s;
}
.btn-primary { background: var(--burgundy); color: var(--white); }
.btn-primary:hover { background: #6e2323; }
.btn-secondary {
    background: transparent; color: var(--burgundy);
    border: 1.5px solid var(--burgundy);
    padding: 12px 30px;
}
.btn-secondary:hover { background: var(--burgundy); color: var(--white); }
.btn-sm { padding: 10px 22px; font-size: 12px; }

/* ── Секция бронирования ── */
.booking { padding: 76px 0 90px; background: var(--beige); }
.booking-inner {
    display: grid; grid-template-columns: 1fr 1.35fr;
    gap: 80px; align-items: start;
}
.booking-info { position: sticky; top: 96px; }
.booking-info h2 { margin-bottom: 16px; }
.booking-info > p { color: var(--gray); margin-bottom: 36px; font-size: 16px; }

.contact-list { list-style: none; display: flex; flex-direction: column; gap: 14px; }
.contact-item {
    display: flex; align-items: center; gap: 11px;
    font-family: 'Montserrat', sans-serif;
    font-size: 13px; color: var(--brown);
}
.contact-item svg { color: var(--burgundy); flex-shrink: 0; }
.contact-item a { text-decoration: none; color: var(--brown); transition: color .2s; }
.contact-item a:hover { color: var(--burgundy); }

/* Form */
.form-card {
    background: var(--white); border-radius: 8px;
    padding: 40px;
    box-shadow: 0 4px 28px rgba(44,31,20,.1);
}
.form-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 26px; font-weight: 600;
    color: var(--brown); margin-bottom: 28px;
}
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-group { margin-bottom: 18px; }
.form-group label {
    display: block;
    font-family: 'Montserrat', sans-serif;
    font-size: 11px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 1px;
    color: var(--gray); margin-bottom: 7px;
}
.req { color: var(--burgundy); }
.form-group input,
.form-group select,
.form-group textarea {
    width: 100%; padding: 11px 13px;
    border: 1.5px solid var(--border); border-radius: 4px;
    font-family: 'Lora', serif; font-size: 15px;
    color: var(--brown); background: var(--ivory);
    transition: border-color .2s;
    -webkit-appearance: none; appearance: none;
}
.form-group select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%237A6A5A' stroke-width='2'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 34px;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    outline: none; border-color: var(--burgundy);
}
.form-group input::placeholder,
.form-group textarea::placeholder { color: #b8a898; }
.form-group textarea { min-height: 96px; resize: vertical; }

/* «Применить» — ссылкой внутри поля, у правого края */
.promo-row { position: relative; }
.promo-row input { padding-right: 104px; }
.promo-apply {
    position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
    background: none; border: none; padding: 0; cursor: pointer;
    font-family: 'Montserrat', sans-serif;
    font-size: 11px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 1px;
    color: var(--burgundy);
    text-decoration: underline; text-underline-offset: 3px;
    transition: opacity .2s;
}
.promo-apply:hover { opacity: .7; }
.promo-apply:disabled { opacity: .45; cursor: default; text-decoration: none; }

.promo-msg {
    font-family: 'Montserrat', sans-serif;
    font-size: 11px; margin-top: 6px;
    padding: 6px 10px; border-radius: 3px; display: none;
}
.promo-msg.ok  { display: block; color: #2d6a2d; background: #eaf5ea; }
.promo-msg.err { display: block; color: var(--burgundy); background: #fdf0f0; }

/* Стоимость: обычная — одним числом, со скидкой — старая зачёркнута, новая крупнее */
.price-box {
    display: flex; align-items: baseline; justify-content: center;
    flex-wrap: wrap; gap: 2px 10px;
    margin-bottom: 18px; padding: 6px 0;
}
.price-caption {
    font-family: 'Montserrat', sans-serif;
    font-size: 11px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 1px; color: var(--gray);
}
.price-values { display: flex; align-items: baseline; gap: 8px; }
.price-old {
    font-family: 'Cormorant Garamond', serif;
    font-size: 20px; color: var(--gray); text-decoration-thickness: 1.5px;
}
.price-new {
    font-family: 'Cormorant Garamond', serif;
    font-size: 28px; font-weight: 600; color: var(--burgundy); line-height: 1;
}

.form-check {
    display: flex; align-items: flex-start; gap: 11px;
    margin-bottom: 22px;
}
.form-check input[type="checkbox"] {
    width: 17px; height: 17px; min-width: 17px;
    margin-top: 3px; accent-color: var(--burgundy); cursor: pointer;
}
.form-check label {
    font-family: 'Lora', serif; font-size: 14px;
    color: var(--gray); cursor: pointer; line-height: 1.6;
}
.form-check label a { color: var(--burgundy); text-underline-offset: 2px; }

.btn-submit { width: 100%; padding: 15px; font-size: 13px; }


@media (max-width: 1199px) {
    .booking-inner { grid-template-columns: 1fr; gap: 48px; }
    .booking-info { position: static; }
}
@media (max-width: 767px) {
    .form-row { grid-template-columns: 1fr; }
    .form-card { padding: 24px 20px; }
    .btn-submit { width: 100%; }
}
