/* Booking page — extends style.css using the same palette + fonts */

.booking-card {
    max-width: 480px;
    width: 100%;
    margin: 0 auto;
    background: #ffffff;
    border-radius: var(--radius);
    padding: 40px 34px;
    border: 1px solid rgba(106, 73, 54, 0.1);
    box-shadow: var(--shadow-soft);
}

.booking-card__logo {
    text-align: center;
    margin-bottom: 6px;
}
.booking-card__logo img {
    max-width: 170px;
    margin: 0 auto;
}

.booking-card h1 {
    text-align: center;
    font-size: 1.7rem;
    margin-bottom: 6px;
}

.booking-card__intro {
    text-align: center;
    color: var(--sage-dark);
    margin-bottom: 22px;
}

.booking-divider {
    height: 2px;
    background: linear-gradient(to right, transparent, rgba(106,73,54,0.18), transparent);
    margin: 0 0 22px;
}

.fee-badge {
    text-align: center;
    font-weight: 700;
    color: #fff;
    font-size: 1rem;
    background: var(--sage);
    padding: 8px 20px;
    border-radius: 999px;
    margin: 0 auto 22px;
    display: table;
    box-shadow: 0 4px 12px rgba(96, 106, 81, 0.25);
}

.booking-alert {
    padding: 14px 16px;
    border-radius: 10px;
    margin-bottom: 20px;
    font-size: 0.95rem;
    text-align: center;
    display: none;
}
.booking-alert.visible { display: block; }
.booking-alert.success { background: #eef3ea; color: #3c4a34; border: 1px solid #cddcc0; }
.booking-alert.error { background: #fbeef1; color: #8f384d; border: 1px solid #edccd4; }
.booking-alert.warning { background: #faf4e8; color: #7d5e29; border: 1px solid #ebd9b5; display: block; }

.booking-form label {
    display: block;
    margin-top: 18px;
    font-weight: 700;
    font-size: 0.78rem;
    color: var(--brown);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.booking-form input,
.booking-form select {
    width: 100%;
    box-sizing: border-box;
    padding: 12px 14px;
    margin-top: 6px;
    border: 1px solid rgba(106,73,54,0.18);
    border-radius: 8px;
    font-size: 1rem;
    font-family: var(--font-body);
    color: var(--charcoal);
    background: #fff;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.booking-form input:focus,
.booking-form select:focus {
    outline: none;
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(182, 150, 103, 0.22);
}
.booking-form select:disabled {
    background: #fbf9f4;
    cursor: not-allowed;
    color: #9e978e;
}

.checkbox-field {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 20px;
    text-transform: none;
    font-weight: 400 !important;
    font-size: 0.92rem !important;
    letter-spacing: normal !important;
    color: var(--charcoal) !important;
    cursor: pointer;
}
.checkbox-field input[type="checkbox"] {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    margin-top: 2px;
    accent-color: var(--rose);
    cursor: pointer;
}
.checkbox-field .consent-note {
    display: block;
    margin-top: 4px;
    font-size: 0.68rem;
    line-height: 1.5;
    color: #6e675e;
}

#paypal-button-container {
    margin-top: 26px;
    min-height: 45px;
}

.booking-note {
    text-align: center;
    margin-top: 24px;
    font-size: 0.92rem;
}
.booking-note a { color: var(--rose-dark); font-weight: 700; }

/* Flatpickr calendar re-themed to match the site */
.flatpickr-calendar {
    background: #ffffff !important;
    border: 1px solid rgba(106,73,54,0.15) !important;
    box-shadow: 0 10px 25px rgba(42,37,33,0.12) !important;
    border-radius: 12px !important;
    font-family: var(--font-body) !important;
}
.flatpickr-months {
    background: var(--sage) !important;
    color: var(--cream) !important;
    border-radius: 12px 12px 0 0;
}
.flatpickr-months .flatpickr-month,
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year {
    color: #ffffff !important;
    fill: #ffffff !important;
    font-weight: 700;
}
.flatpickr-months .flatpickr-prev-month svg,
.flatpickr-months .flatpickr-next-month svg {
    fill: var(--cream) !important;
}
span.flatpickr-weekday {
    color: var(--brown) !important;
    font-weight: 700;
}
.flatpickr-day.has-slots {
    font-weight: 800 !important;
    color: var(--charcoal) !important;
    position: relative;
}
.flatpickr-day.has-slots::after {
    content: '';
    position: absolute;
    bottom: 4px;
    left: 50%;
    transform: translateX(-50%);
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background-color: var(--rose);
}
.flatpickr-day.selected,
.flatpickr-day.selected:hover {
    background: var(--rose) !important;
    border-color: var(--rose) !important;
    color: #ffffff !important;
}
.flatpickr-day.selected.has-slots::after { background-color: #ffffff; }
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover { color: #d0c8be !important; }
