/* Shared checkout structure: details first, confirmation beside the price summary. */
body:not(.admin-layout) .site-checkout-tool {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 40px;
    padding: 9px 14px;
    border: 1px solid #cfe1f0;
    border-radius: 999px;
    background: #fff;
    box-shadow: none;
    color: #17324d;
    font-size: 14px;
    font-weight: 700;
    line-height: 20px;
    text-decoration: none;
    cursor: pointer;
    transition: border-color .2s ease, color .2s ease, background-color .2s ease;
}
body:not(.admin-layout) .site-checkout-tool .fa { color: inherit; }
body:not(.admin-layout) .site-checkout-tool:hover {
    border-color: #7da5c7;
    background: #fff;
    box-shadow: none;
    color: #102b45;
    text-decoration: none;
}
body:not(.admin-layout) .site-checkout-tool:focus-visible {
    outline: 2px solid #2a70aa;
    outline-offset: 2px;
}
body:not(.admin-layout) .site-checkout-tool--danger {
    border-color: #f1c3c3;
    color: #bb3d3d;
}
body:not(.admin-layout) .site-checkout-tool--danger:hover {
    border-color: #d66767;
    color: #9f2f2f;
}
body:not(.admin-layout) .site-checkout-tool--icon {
    width: 44px;
    min-height: 44px;
    padding: 0;
}
body:not(.admin-layout) .site-checkout-heading {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 16px;
    line-height: 1.35;
}
body:not(.admin-layout) .site-checkout-heading .fa {
    flex: 0 0 auto;
    color: inherit;
    opacity: .74;
    font-size: .83em;
}
body:not(.admin-layout) .site-checkout-secure-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 16px;
}
body:not(.admin-layout) .site-checkout-secure-heading > div:first-child {
    min-width: 0;
}
body:not(.admin-layout) .site-checkout-secure-heading .site-checkout-heading {
    min-width: 0;
    margin-bottom: 0;
}
body:not(.admin-layout) .site-checkout-secure-heading .bus-booking-section__note {
    margin-top: 6px;
}
body:not(.admin-layout) .site-checkout-secure-badge {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 6px;
    padding: 7px 11px;
    border-radius: 999px;
    background: #eaf4ff;
    color: #17456d;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.4;
    white-space: nowrap;
}
body:not(.admin-layout) .site-checkout-secure-badge .fa {
    color: inherit;
}
body:not(.admin-layout) .site-checkout-contact-grid {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
body:not(.admin-layout) .site-checkout-contact-field {
    min-width: 0;
}
body:not(.admin-layout) .site-checkout-input-wrap {
    width: 100%;
    min-width: 0;
}
body:not(.admin-layout) .site-checkout-contact-field--wide {
    grid-column: 1 / -1;
}
body:not(.admin-layout) .site-checkout-contact-field > label {
    display: block;
    margin-bottom: 7px;
    color: #24415c;
    font-weight: 650;
    line-height: 1.4;
}
body:not(.admin-layout) .site-checkout-contact-field > label .site-checkout-label-icon {
    display: inline-block;
    width: 15px;
    margin-right: 6px;
    color: inherit;
    font-size: .95em;
    line-height: 1;
    text-align: center;
    opacity: .8;
}
body:not(.admin-layout) .site-checkout-contact-field input,
body:not(.admin-layout) .site-checkout-contact-field textarea,
body:not(.admin-layout) .site-checkout-payment-field select {
    width: 100%;
    max-width: 100%;
}
body:not(.admin-layout) .site-checkout-required { color: #b42318; }
body:not(.admin-layout) .site-checkout-field-hint {
    display: block;
    margin-top: 6px;
    color: #5d7287;
    line-height: 1.45;
}
body:not(.admin-layout) .site-checkout-payment-field { min-width: 0; }
body:not(.admin-layout) .site-checkout-payment-field .site-payment-gateway-card,
body:not(.admin-layout) .site-checkout-payment-field .site-payment-bank-card {
    display: inline-grid;
    grid-template-columns: 18px minmax(0, 1fr);
    column-gap: 12px;
    box-sizing: border-box;
    max-width: 100%;
}
body:not(.admin-layout) .site-checkout-payment-field .site-payment-gateway-card { align-items: center; }
body:not(.admin-layout) .site-checkout-payment-field .site-payment-bank-card { align-items: start; }
body:not(.admin-layout) .site-checkout-payment-field .site-payment-gateway-card > input[type="radio"],
body:not(.admin-layout) .site-checkout-payment-field .site-payment-bank-card > input[type="radio"] {
    width: 16px;
    height: 16px;
    margin: 0;
    padding: 0;
    justify-self: center;
}
body:not(.admin-layout) .site-checkout-payment-field .site-payment-bank-card > input[type="radio"] { margin-top: 2px; }
body:not(.admin-layout) .site-checkout-payment-field .site-payment-gateway-card > span,
body:not(.admin-layout) .site-checkout-payment-field .site-payment-bank-card > span { min-width: 0; }
body:not(.admin-layout) .site-checkout-payment-field .site-payment-bank-card > span > strong {
    display: block;
    line-height: 1.35;
}
body:not(.admin-layout) .site-checkout-payment-field .site-payment-bank-card > span > small {
    margin-top: 9px;
}
body:not(.admin-layout) .site-checkout-confirm {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: var(--site-button-height);
    padding: 0 var(--site-button-padding-x);
    border: 1px solid var(--site-button-bg);
    border-radius: var(--site-button-radius);
    background: var(--site-button-bg);
    color: var(--site-button-text);
    box-shadow: var(--site-button-shadow);
}
body:not(.admin-layout) .site-checkout-confirm:hover,
body:not(.admin-layout) .site-checkout-confirm:focus {
    border-color: var(--site-button-bg-hover);
    background: var(--site-button-bg-hover);
    color: var(--site-button-text);
}
body:not(.admin-layout) .site-checkout-confirm:focus-visible {
    outline: 3px solid #80c8f4;
    outline-offset: 3px;
}
body:not(.admin-layout) .site-checkout-total {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    min-width: 0;
    line-height: 1.45;
}
body:not(.admin-layout) .site-checkout-total strong {
    min-width: 0;
    overflow-wrap: anywhere;
    text-align: right;
}
body:not(.admin-layout) .site-checkout-total.hotel-booking-summary__grand,
body:not(.admin-layout) .site-checkout-total.cruise-total {
    flex-direction: column;
    align-items: flex-start;
}
body:not(.admin-layout) .site-checkout-total.hotel-booking-summary__grand strong,
body:not(.admin-layout) .site-checkout-total.cruise-total strong {
    text-align: left;
}
body:not(.admin-layout) .site-checkout-total.hotel-booking-summary__grand > span {
    color: #bfe9ff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}
body:not(.admin-layout) .site-checkout-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 350px);
    gap: 22px;
    align-items: start;
}

body:not(.admin-layout) .site-checkout-main,
body:not(.admin-layout) .site-checkout-summary {
    min-width: 0;
}

body:not(.admin-layout) .cruise-checkout-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 20px 24px;
    align-items: start;
}

body:not(.admin-layout) .cruise-checkout-layout--empty {
    display: block;
}

body:not(.admin-layout) .cruise-checkout-layout > .cruise-box {
    grid-column: 1;
    margin: 0;
}

body:not(.admin-layout) .cruise-checkout-layout > .cruise-grid {
    display: contents;
}

body:not(.admin-layout) .cruise-checkout-layout > .cruise-grid > div {
    min-width: 0;
    grid-column: 1;
    grid-row: 2;
}

body:not(.admin-layout) .cruise-checkout-layout > .cruise-grid > .cruise-summary {
    grid-column: 2;
    grid-row: 1 / 3;
}

body:not(.admin-layout) .site-checkout-main {
    display: grid;
    gap: 16px;
}

body:not(.admin-layout) .site-checkout-section,
body:not(.admin-layout) .site-checkout-summary {
    padding: 20px;
    border: 1px solid #d9e8f3;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 8px 28px rgba(18, 54, 83, .045);
}

body:not(.admin-layout) .site-checkout-section h2,
body:not(.admin-layout) .site-checkout-summary h2 {
    margin: 0 0 16px;
    color: #153550;
    font-size: clamp(18px, 2vw, 21px);
    line-height: 1.35;
}

body:not(.admin-layout) .site-checkout-section .site-booking-field--note {
    margin-top: 16px;
}

body:not(.admin-layout) .site-checkout-selected {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    align-items: baseline;
    margin: 0;
    line-height: 1.55;
}

body:not(.admin-layout) .site-checkout-selected strong {
    color: #17324d;
}

body:not(.admin-layout) .site-checkout-selected span {
    color: #5d7287;
}

body:not(.admin-layout) .site-checkout-summary {
    position: sticky;
    top: 24px;
    background: #f8fbfe;
}

body:not(.admin-layout) .site-checkout-summary__row,
body:not(.admin-layout) .site-checkout-summary__total {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px dashed #cedfec;
    line-height: 1.5;
}

body:not(.admin-layout) .site-checkout-summary__row span,
body:not(.admin-layout) .site-checkout-summary__total span {
    flex: 0 0 auto;
    color: #5d7287;
}
body:not(.admin-layout) .site-checkout-summary__row span,
body:not(.admin-layout) .site-checkout-summary__note,
body:not(.admin-layout) .hotel-booking-summary__sub,
body:not(.admin-layout) .hotel-booking-summary__item-meta,
body:not(.admin-layout) .cruise-summary .cruise-list li span {
    font-weight: 400;
}
body:not(.admin-layout) .site-checkout-summary__row i,
body:not(.admin-layout) .hotel-booking-summary__card i,
body:not(.admin-layout) .cruise-summary i {
    color: inherit;
}

body:not(.admin-layout) .site-checkout-summary__row strong,
body:not(.admin-layout) .site-checkout-summary__total strong {
    min-width: 0;
    overflow-wrap: anywhere;
    color: #17324d;
    text-align: right;
}

body:not(.admin-layout) .site-checkout-summary__total {
    margin-top: 4px;
    border-bottom: 0;
    font-weight: 800;
}

body:not(.admin-layout) .site-checkout-summary__total strong {
    color: #00805e;
}

body:not(.admin-layout) .site-checkout-summary__total .site-price {
    min-width: 0;
    color: #00805e;
    text-align: right;
}

body:not(.admin-layout) .site-checkout-summary__note {
    margin: 8px 0 16px;
    color: #5d7287;
    font-size: 13px;
    line-height: 1.55;
}

body:not(.admin-layout) .site-checkout-preview-note {
    margin: 10px 0 14px;
    color: inherit;
    opacity: .78;
    font-size: 12px;
    line-height: 1.5;
}

body:not(.admin-layout) .site-checkout-field-error {
    display: block;
    margin-top: 5px;
    color: #b42318;
    font-size: 12px;
    line-height: 1.4;
}

body:not(.admin-layout) [aria-invalid="true"] {
    border-color: #b42318 !important;
    box-shadow: 0 0 0 2px rgba(180, 35, 24, .10);
}

body:not(.admin-layout) .site-checkout-confirm:disabled,
body:not(.admin-layout) .site-checkout-confirm:disabled:hover,
body:not(.admin-layout) .site-checkout-confirm:disabled:focus {
    cursor: not-allowed;
    border-color: #dce9f5;
    background: #dce9f5;
    color: #173a5d;
    box-shadow: none;
    transform: none;
}

body:not(.admin-layout) .site-checkout-summary-details > summary {
    display: none;
}

body:not(.admin-layout) .site-checkout-summary-details__content {
    min-width: 0;
}

body:not(.admin-layout) .site-checkout-summary .site-booking-actions,
body:not(.admin-layout) .site-checkout-summary .site-booking-actions .site-button {
    width: 100%;
}

body:not(.admin-layout) .site-checkout-summary .site-booking-actions .site-button {
    justify-content: center;
}

/* Dark bus cards need explicit contrast against the generic booking heading rule. */
body:not(.admin-layout) .bus-booking-hero.site-hero h1,
body:not(.admin-layout) .bus-summary-card__box h3,
body:not(.admin-layout) .tour-checkout-summary__box h3 {
    color: #fff;
}

@media (max-width: 991px) {
    body:not(.admin-layout) .site-checkout-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    body:not(.admin-layout) .cruise-checkout-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    body:not(.admin-layout) .cruise-checkout-layout > .cruise-grid > div,
    body:not(.admin-layout) .cruise-checkout-layout > .cruise-grid > .cruise-summary {
        grid-column: 1;
        grid-row: auto;
    }

    body:not(.admin-layout) .site-checkout-summary {
        position: static;
    }
}

@media (max-width: 767px) {
    body:not(.admin-layout) .site-checkout-contact-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 13px;
    }

    body:not(.admin-layout) .site-checkout-confirm {
        width: 100%;
    }
    body:not(.admin-layout) .site-checkout-summary-details > summary {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 8px;
        padding: 10px 0;
        color: inherit;
        font-size: 13px;
        font-weight: 700;
        cursor: pointer;
        list-style: none;
    }

    body:not(.admin-layout) .site-checkout-summary-details > summary::-webkit-details-marker {
        display: none;
    }

    body:not(.admin-layout) .site-checkout-summary-details > summary::before {
        content: '+';
        display: inline-grid;
        flex: 0 0 22px;
        place-items: center;
        width: 22px;
        height: 22px;
        border: 1px solid currentColor;
        border-radius: 50%;
        font-family: Arial, sans-serif;
        font-size: 17px;
        font-weight: 700;
        line-height: 1;
    }

    body:not(.admin-layout) .site-checkout-summary-details[open] > summary::before {
        content: '−';
    }

    body:not(.admin-layout) .site-checkout-layout,
    body:not(.admin-layout) .site-checkout-main {
        gap: 12px;
    }

    body:not(.admin-layout) .site-checkout-section,
    body:not(.admin-layout) .site-checkout-summary {
        padding: 16px;
        border-radius: 16px;
    }
}
body:not(.admin-layout) .site-checkout-live-preview { margin: 12px 0; }
body:not(.admin-layout) .site-checkout-live-preview__status { padding: 10px 12px; border: 1px solid #cfe1f3; border-radius: 10px; background: #f3f8fd; color: #24516d; font-size: 13px; line-height: 1.5; }
body:not(.admin-layout) .site-checkout-live-preview[data-state="loading"] .site-checkout-live-preview__status { border-color: #b6d3ed; background: #eaf4fd; }
body:not(.admin-layout) .site-checkout-live-preview[data-state="unavailable"] .site-checkout-live-preview__status { border-color: #e9b9b9; background: #fff1f1; color: #a23535; }
body:not(.admin-layout) .site-checkout-live-preview__lines { display: grid; gap: 7px; margin: 10px 0; }
body:not(.admin-layout) .site-checkout-live-preview__line { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; }
body:not(.admin-layout) .site-checkout-live-preview__line span { min-width: 0; }
body:not(.admin-layout) .site-checkout-live-preview__line strong { white-space: nowrap; text-align: right; }
body:not(.admin-layout) .site-checkout-live-preview__deposit { padding-top: 9px; border-top: 1px dashed currentColor; font-size: 13px; }
body:not(.admin-layout) [aria-busy="true"] .site-checkout-confirm { opacity: .62; cursor: wait; }

body:not(.admin-layout) .bus-summary-coupon {
    margin: 16px 0 4px;
    padding: 16px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 14px;
    background: rgba(255, 255, 255, .075);
}
body:not(.admin-layout) .bus-summary-coupon > label {
    display: block;
    margin-bottom: 10px;
    color: #fff;
    font-weight: 700;
}
body:not(.admin-layout) .bus-summary-coupon > label .fa { margin-right: 7px; color: inherit; }
body:not(.admin-layout) .bus-summary-coupon .bus-booking-coupon-row { grid-template-columns: minmax(0, 1fr) auto; }
body:not(.admin-layout) .bus-summary-coupon .bus-booking-coupon-row .site-booking-control {
    width: 100%;
    min-width: 0;
    background: #fff;
    color: #17324d;
}
body:not(.admin-layout) .bus-summary-coupon .bus-booking-coupon-row .site-button {
    min-height: 44px !important;
    height: 44px !important;
    border: 1px solid rgba(255, 255, 255, .35);
    background: #f4faff;
    color: #173a5d;
    white-space: nowrap;
}
body:not(.admin-layout) .bus-summary-coupon .bus-booking-coupon-row .site-button:hover { background: #e3f2ff; }
body:not(.admin-layout) .bus-summary-coupon__result { margin-top: 12px; }
body:not(.admin-layout) .bus-summary-coupon__result[hidden] { display: none; }
body:not(.admin-layout) .bus-summary-coupon__message {
    margin: 0 0 10px;
    color: #b8efd8;
    font-size: 13px;
    line-height: 1.5;
}
body:not(.admin-layout) .bus-summary-coupon__message--warning { color: #ffe1aa; }
body:not(.admin-layout) .bus-summary-coupon__price-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 7px 0;
    border-top: 1px dashed rgba(255, 255, 255, .16);
    font-size: 13px;
}
body:not(.admin-layout) .bus-summary-coupon__price-row strong { text-align: right; }
body:not(.admin-layout) .bus-summary-coupon__price-row--saving strong { color: #b8efd8; }
body:not(.admin-layout) [data-checkout-preview-fragment][hidden] { display: none; }
body:not(.admin-layout) .hotel-booking-coupon-result { margin-top: 12px; }
body:not(.admin-layout) .hotel-booking-coupon-result__message {
    color: #d5f6e4;
    font-size: 13px;
    line-height: 1.5;
}
body:not(.admin-layout) .hotel-booking-coupon-result__message--warning { color: #ffe2b6; }
body:not(.admin-layout) .hotel-booking-coupon-result__saving strong { color: #b8efd8; text-align: right; }
@media (max-width: 420px) {
    body:not(.admin-layout) .bus-summary-coupon .bus-booking-coupon-row { grid-template-columns: minmax(0, 1fr); }
    body:not(.admin-layout) .bus-summary-coupon .bus-booking-coupon-row .site-button { width: 100%; }
}
