/* WC Booking Calendar - Frontend Styles */

.wc-booking-form {
        background: #fff;
        border: 1px solid #e3e6ea;
        border-radius: 12px;
        padding: 24px;
        margin: 24px 0;
        box-shadow: 0 8px 24px rgba(16, 24, 40, 0.08);
}

.wc-booking-form .form-section {
        margin-bottom: 24px;
}

.wc-booking-form .form-section-title {
        font-size: 1.05rem;
        font-weight: 700;
        color: #102a43;
        margin-bottom: 12px;
}

.wc-booking-form label {
        display: block;
        font-weight: 600;
        margin-bottom: 8px;
        color: #243b53;
}

.wc-booking-form input[type="text"],
.wc-booking-form input[type="number"],
.wc-booking-form select,
.wc-booking-form textarea {
        width: 100%;
        padding: 12px 14px;
        border: 1px solid #cbd2d9;
        border-radius: 8px;
        font-size: 15px;
        background: #fff;
}

.wc-booking-form input[type="text"]:focus,
.wc-booking-form input[type="number"]:focus,
.wc-booking-form select:focus,
.wc-booking-form textarea:focus {
        outline: none;
        border-color: #2684ff;
        box-shadow: 0 0 0 3px rgba(38, 132, 255, 0.12);
}

.booking-mode-description {
        margin-top: 14px;
        background: linear-gradient(135deg, #f8fbff 0%, #eef5ff 100%);
        border: 1px solid #d9e7ff;
        border-radius: 10px;
        padding: 14px 16px;
        color: #334e68;
}

.booking-mode-description__inner {
        line-height: 1.6;
}

.booking-date-picker,
.booking-time-slots,
.booking-resource {
        margin-bottom: 18px;
}

.loading-slots {
        margin-top: 8px;
        font-size: 14px;
        color: #52606d;
}

.booking-person-types {
        display: grid;
        gap: 12px;
}

.person-type-input {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
        padding: 12px 14px;
        background: #f8fafc;
        border: 1px solid #e4e7eb;
        border-radius: 10px;
}

.person-type-input label {
        margin: 0;
        flex: 1;
}

.person-type-input input[type="number"] {
        width: 90px;
}

.age-range {
        display: inline-block;
        margin-left: 6px;
        font-weight: 400;
        font-size: 0.92em;
        color: #61758a;
}

.booking-addons-list,
.booking-payment-options {
        display: grid;
        gap: 12px;
}

.booking-addon-option,
.booking-payment-option {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: 14px 16px;
        border: 1px solid #d9e2ec;
        border-radius: 10px;
        background: #fff;
}

.booking-addon-option input,
.booking-payment-option input {
        margin-right: 8px;
}

.booking-addon-option__label {
        flex: 1;
        font-weight: 600;
        color: #243b53;
}

.booking-addon-option__price {
        color: #486581;
        font-size: 0.95rem;
        white-space: nowrap;
}

.limited-mobility-checkbox {
        display: flex;
        align-items: center;
        gap: 10px;
        margin-top: 12px;
        font-weight: 500;
}

.limited-mobility-checkbox input {
        width: auto;
}

.booking-price-display {
        display: flex;
        justify-content: space-between;
        gap: 20px;
        align-items: center;
        padding: 18px 20px;
        border-radius: 12px;
        background: #f8fafc;
        border: 1px solid #e4e7eb;
}

.price-label,
.price-due-label {
        font-weight: 600;
        color: #486581;
        margin-bottom: 4px;
}

.price-amount,
.price-due-amount {
        font-size: 1.6rem;
        font-weight: 700;
        color: #102a43;
}

.booking-price-display__due {
        text-align: right;
}

.booking-submit-section {
        margin-bottom: 0;
}

.booking-add-to-cart {
        display: block;
        width: 100%;
        box-sizing: border-box;
        margin: 0;
        padding: 16px 22px;
        border: none;
        border-radius: 10px;
        background: #127fbf;
        color: #fff;
        font-size: 1.05rem;
        font-weight: 700;
        cursor: pointer;
        transition: background 0.2s ease, transform 0.1s ease;
}

.booking-add-to-cart:hover {
        background: #0f6da4;
}

.booking-add-to-cart:active {
        transform: translateY(1px);
}

.booking-availability-status {
        margin-top: 16px;
        padding: 10px 14px;
        border-radius: 8px;
        font-weight: 600;
}

.booking-availability-status.available {
        background: #ecfdf3;
        border: 1px solid #abefc6;
        color: #067647;
}

.booking-availability-status.unavailable {
        background: #fef3f2;
        border: 1px solid #fecdca;
        color: #b42318;
}

@media (max-width: 767px) {
        .wc-booking-form {
                padding: 18px;
        }

        .person-type-input,
        .booking-addon-option,
        .booking-payment-option,
        .booking-price-display {
                flex-direction: column;
                align-items: flex-start;
        }

        .person-type-input input[type="number"] {
                width: 100%;
        }

        .booking-price-display__due {
                text-align: left;
        }
}

/* ------------------------------------------------------------------
 * jQuery UI Datepicker — ensure popup is always on top
 *
 * The datepicker popup (#ui-datepicker-div) is appended to <body> by
 * default. Some themes, page builders, or WooCommerce elements use
 * high z-index values that can obscure the calendar. This rule ensures
 * the datepicker popup is always rendered above other page content.
 * ------------------------------------------------------------------ */
#ui-datepicker-div {
        z-index: 99999 !important;
}
