/* ═══════════════════════════════════════════════════════════════
       Samui Payment Page Styles v6.0 — Clean Rewrite
       
       RULES:
       1. ALL selectors scoped to .tourmaster-template-payment
       2. NEVER override native layout: float, width, calc(), 
          padding-right:400px, overflow
       3. Only override visual properties
       ═══════════════════════════════════════════════════════════════ */

    /* ── 1. PAGE LAYOUT ───────────────────────────────────────────── */
    .tourmaster-template-payment .tourmaster-page-content.tourmaster-item-pdlr {
        padding-left: 15px !important;
        padding-right: 15px !important;
        padding-top: 30px !important;  /* native 70px is too much gap */
    }

    /* ── 2. STEP PROGRESS BAR ─────────────────────────────────────
       CRITICAL: step-inner has native padding-right:400px for sidebar.
       We MUST NOT override padding. Only style visuals.
    ─────────────────────────────────────────────────────────────── */
    .tourmaster-template-payment .tourmaster-payment-step-inner {
        background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%) !important;
        border-radius: 10px !important;
        box-shadow: 0 4px 16px rgba(0,0,0,0.15) !important;
        padding-left: 24px !important;
        /* padding-right: 400px preserved from tourmaster.css for sidebar clearance */
    }
    .tourmaster-template-payment .tourmaster-payment-step-overlay {
        display: none !important;
    }
    .tourmaster-template-payment .tourmaster-payment-step-item {
        padding: 18px 30px 18px 0 !important;
    }
    .tourmaster-template-payment .tourmaster-payment-step-item-title {
        font-size: 12px !important;
        font-weight: 600 !important;
        color: rgba(255,255,255,0.4) !important;
        border-bottom: none !important;
        white-space: nowrap !important;
    }
    .tourmaster-template-payment .tourmaster-payment-step-item-icon {
        width: 28px !important;
        height: 28px !important;
        border-radius: 50% !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 12px !important;
        background: rgba(255,255,255,0.12) !important;
        color: rgba(255,255,255,0.5) !important;
        border: 2px solid rgba(255,255,255,0.15) !important;
        margin-right: 8px !important;
        vertical-align: middle !important;
    }
    .tourmaster-template-payment .tourmaster-payment-step-item-icon .fa-check {
        display: none !important;
    }
    .tourmaster-template-payment .tourmaster-payment-step-item-icon .tourmaster-text {
        font-weight: 700 !important;
    }
    .tourmaster-template-payment .tourmaster-payment-step-item.tourmaster-checked .tourmaster-payment-step-item-icon,
    .tourmaster-template-payment .tourmaster-payment-step-item.tourmaster-enable .tourmaster-payment-step-item-icon {
        background: #00b5f7 !important;
        border-color: #00b5f7 !important;
        color: #fff !important;
    }
    .tourmaster-template-payment .tourmaster-payment-step-item.tourmaster-current .tourmaster-payment-step-item-icon {
        background: rgba(0,181,247,0.15) !important;
        border-color: #00b5f7 !important;
        color: #00b5f7 !important;
    }
    .tourmaster-template-payment .tourmaster-payment-step-item.tourmaster-checked .tourmaster-payment-step-item-icon .tourmaster-text,
    .tourmaster-template-payment .tourmaster-payment-step-item.tourmaster-enable .tourmaster-payment-step-item-icon .tourmaster-text {
        display: none !important;
    }
    .tourmaster-template-payment .tourmaster-payment-step-item.tourmaster-checked .tourmaster-payment-step-item-icon .fa-check,
    .tourmaster-template-payment .tourmaster-payment-step-item.tourmaster-enable .tourmaster-payment-step-item-icon .fa-check {
        display: inline-block !important;
        color: #fff !important;
    }
    .tourmaster-template-payment .tourmaster-payment-step-item.tourmaster-checked .tourmaster-payment-step-item-title,
    .tourmaster-template-payment .tourmaster-payment-step-item.tourmaster-enable .tourmaster-payment-step-item-title,
    .tourmaster-template-payment .tourmaster-payment-step-item.tourmaster-current .tourmaster-payment-step-item-title {
        color: #fff !important;
    }
    /* Current step — subtle bottom accent line */
    .tourmaster-template-payment .tourmaster-payment-step-item.tourmaster-current {
        position: relative;
    }
    .tourmaster-template-payment .tourmaster-payment-step-item.tourmaster-current::after {
        content: "";
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        height: 2px;
        background: #00b5f7;
        border-radius: 2px 2px 0 0;
        opacity: 0.7;
    }

    /* ── 3. SECTION CARDS ─────────────────────────────────────────── */
    /* Remove native max-width caps so forms fill the content area */
    .tourmaster-template-payment .tourmaster-payment-contact-wrap {
        max-width: none !important;
        padding-bottom: 20px !important;
    }
    .tourmaster-template-payment .tourmaster-payment-traveller-info-wrap {
        max-width: none !important;
        padding-bottom: 20px !important;
    }
    .tourmaster-template-payment .tourmaster-payment-billing-wrap {
        max-width: none !important;
        padding-bottom: 20px !important;
    }
    .tourmaster-template-payment .tourmaster-payment-traveller-info-wrap,
    .tourmaster-template-payment .tourmaster-payment-contact-wrap,
    .tourmaster-template-payment .tourmaster-payment-billing-wrap,
    .tourmaster-template-payment .tourmaster-payment-additional-note-wrap {
        background: #fff !important;
        border: 1px solid #e8ecf0 !important;
        border-radius: 12px !important;
        padding: 20px 24px !important;
        margin-bottom: 16px !important;
        box-shadow: 0 1px 4px rgba(0,0,0,0.04) !important;
    }
    @keyframes samui-section-in {
        from { opacity: 0; transform: translateY(6px); }
        to { opacity: 1; transform: translateY(0); }
    }
    .tourmaster-template-payment .tourmaster-payment-traveller-info-wrap,
    .tourmaster-template-payment .tourmaster-payment-contact-wrap {
        animation: samui-section-in 0.3s ease both !important;
    }

    /* ── 4. SECTION TITLES ────────────────────────────────────────── */
    .tourmaster-template-payment .tourmaster-payment-traveller-info-wrap h3,
    .tourmaster-template-payment .tourmaster-payment-contact-wrap h3,
    .tourmaster-template-payment .tourmaster-payment-billing-wrap h3,
    .tourmaster-template-payment .tourmaster-payment-additional-note-wrap h3 {
        font-size: 15px !important;
        font-weight: 700 !important;
        color: #1a1a2e !important;
        margin: 0 0 12px !important;
        padding: 0 0 10px !important;
        border-bottom: 2px solid #00b5f7 !important;
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
    }
    .tourmaster-template-payment .tourmaster-payment-traveller-info-wrap h3 i,
    .tourmaster-template-payment .tourmaster-payment-contact-wrap h3 i,
    .tourmaster-template-payment .tourmaster-payment-billing-wrap h3 i,
    .tourmaster-template-payment .tourmaster-payment-additional-note-wrap h3 i {
        color: #00b5f7 !important;
        font-size: 16px !important;
    }

    /* ── 5. HIDE FORM LABELS ──────────────────────────────────────── */
    .tourmaster-template-payment .tourmaster-contact-field > .tourmaster-head,
    .tourmaster-template-payment .tourmaster-billing-field > .tourmaster-head {
        display: none !important;
    }

    /* ── 6. INPUT STYLING ─────────────────────────────────────────── */
    .tourmaster-template-payment .tourmaster-form-field input[type="text"],
    .tourmaster-template-payment .tourmaster-form-field input[type="email"],
    .tourmaster-template-payment .tourmaster-form-field input[type="tel"],
    .tourmaster-template-payment .tourmaster-form-field input[type="number"],
    .tourmaster-template-payment .tourmaster-form-field input[type="date"],
    .tourmaster-template-payment .tourmaster-form-field textarea,
    .tourmaster-template-payment .tourmaster-form-field select {
        border: 1px solid #dce1e6 !important;
        border-radius: 8px !important;
        padding: 12px 14px !important;
        font-size: 14px !important;
        color: #1a1a2e !important;
        background: #fff !important;
        transition: border-color 0.2s, box-shadow 0.2s !important;
        height: auto !important;
        box-sizing: border-box !important;
    }
    .tourmaster-template-payment .tourmaster-form-field input:focus,
    .tourmaster-template-payment .tourmaster-form-field textarea:focus,
    .tourmaster-template-payment .tourmaster-form-field select:focus {
        border-color: #00b5f7 !important;
        box-shadow: 0 0 0 3px rgba(0,181,247,0.1) !important;
        outline: none !important;
    }
    .tourmaster-template-payment .tourmaster-form-field input::placeholder,
    .tourmaster-template-payment .tourmaster-form-field textarea::placeholder {
        color: #9ca3af !important;
    }

    /* ── 7. SELECT / COMBOBOX ─────────────────────────────────────── */
    .tourmaster-template-payment .tourmaster-combobox-wrap {
        border: 1px solid #dce1e6 !important;
        border-radius: 8px !important;
        background: #fff !important;
        overflow: hidden !important;
    }
    .tourmaster-template-payment .tourmaster-combobox-wrap select {
        border: none !important;
        border-radius: 0 !important;
        background: transparent !important;
    }

    /* ── 8. CONTACT/BILLING FIELDS ────────────────────────────────── */
    /* Remove native float label (150px) — we use placeholders */
    .tourmaster-template-payment .tourmaster-payment-contact-wrap .tourmaster-head,
    .tourmaster-template-payment .tourmaster-payment-billing-wrap .tourmaster-head {
        display: none !important;
    }
    .tourmaster-template-payment .tourmaster-payment-contact-wrap .tourmaster-tail,
    .tourmaster-template-payment .tourmaster-payment-billing-wrap .tourmaster-tail {
        overflow: visible !important;
        display: block !important;
        width: 100% !important;
    }
    /* IMPORTANT: Do NOT set display:grid on the wraps themselves!
       jQuery .hide() sets display:none which would be overridden by
       display:grid!important. Instead, use float-based 2-column layout
       on the CHILDREN (contact-field / billing-field). */
    .tourmaster-template-payment .tourmaster-payment-contact-wrap {
        overflow: hidden !important;
        /* Negative margin trick: children have 16px gap via margin, parent absorbs overflow */
        margin-right: -16px !important;
    }
    .tourmaster-template-payment .tourmaster-payment-contact-wrap .tourmaster-contact-field {
        float: left !important;
        width: calc(50% - 16px) !important;
        margin-right: 16px !important;
        margin-bottom: 14px !important;
        box-sizing: border-box !important;
    }
    /* Full-width fields: select (country), textarea */
    .tourmaster-template-payment .tourmaster-payment-contact-wrap .tourmaster-contact-field:has(select),
    .tourmaster-template-payment .tourmaster-payment-contact-wrap .tourmaster-contact-field:has(textarea) {
        float: none !important;
        clear: both !important;
        width: calc(100% - 16px) !important;
    }
    /* Title spans full width */
    .tourmaster-template-payment .tourmaster-payment-contact-wrap .tourmaster-payment-contact-title {
        float: none !important;
        clear: both !important;
        width: calc(100% - 16px) !important;
    }

    /* --- BILLING: "Gleich wie Kontaktinformationen" checkbox full-width --- */
    .tourmaster-template-payment .tourmaster-payment-billing-wrap {
        overflow: hidden !important;
        margin-right: -16px !important;
    }
    .tourmaster-template-payment .tourmaster-payment-billing-copy-wrap {
        float: none !important;
        clear: both !important;
        width: 100% !important;
        margin-bottom: 16px !important;
        padding: 0 !important;
        background: none !important;
        border: none !important;
    }
    .tourmaster-template-payment .tourmaster-payment-billing-copy-wrap label {
        display: inline-flex !important;
        align-items: center !important;
        gap: 8px !important;
        cursor: pointer !important;
        padding: 8px 0 !important;
        font-size: 13px !important;
        color: #555 !important;
    }
    .tourmaster-template-payment .tourmaster-payment-billing-copy {
        width: 18px !important;
        height: 18px !important;
        margin: 0 !important;
        accent-color: #00b5f7 !important;
        cursor: pointer !important;
    }
    .tourmaster-template-payment .tourmaster-payment-billing-copy-text {
        font-size: 13px !important;
        font-weight: 500 !important;
        color: #555 !important;
    }
    .tourmaster-template-payment .tourmaster-payment-billing-wrap .tourmaster-payment-billing-title {
        float: none !important;
        clear: both !important;
        width: 100% !important;
    }
    .tourmaster-template-payment .tourmaster-payment-billing-wrap .tourmaster-billing-field {
        float: left !important;
        width: calc(50% - 16px) !important;
        margin-right: 16px !important;
        margin-bottom: 14px !important;
        box-sizing: border-box !important;
    }
    .tourmaster-template-payment .tourmaster-payment-billing-wrap .tourmaster-billing-field:has(select),
    .tourmaster-template-payment .tourmaster-payment-billing-wrap .tourmaster-billing-field:has(textarea) {
        float: none !important;
        clear: both !important;
        width: calc(100% - 16px) !important;
    }
    /* Mobile: stack to 1 column */
    @media screen and (max-width: 767px) {
        .tourmaster-template-payment .tourmaster-payment-contact-wrap .tourmaster-contact-field,
        .tourmaster-template-payment .tourmaster-payment-billing-wrap .tourmaster-billing-field {
            float: none !important;
            width: 100% !important;
            margin-right: 0 !important;
        }
    }
    .tourmaster-template-payment .tourmaster-contact-field,
    .tourmaster-template-payment .tourmaster-billing-field {
        margin-bottom: 10px !important;
    }
    .tourmaster-template-payment .tourmaster-contact-field > .tourmaster-tail,
    .tourmaster-template-payment .tourmaster-billing-field > .tourmaster-tail {
        width: 100% !important;
    }
    .tourmaster-template-payment .tourmaster-contact-field > .tourmaster-tail input,
    .tourmaster-template-payment .tourmaster-contact-field > .tourmaster-tail select,
    .tourmaster-template-payment .tourmaster-billing-field > .tourmaster-tail input,
    .tourmaster-template-payment .tourmaster-billing-field > .tourmaster-tail select {
        width: 100% !important;
        box-sizing: border-box !important;
    }

    /* ── 9. TRAVELLER FIELDS ──────────────────────────────────────── */
    /* Remove native float label (120px "Person 1" label) — use as block header */
    .tourmaster-template-payment .tourmaster-traveller-info-field .tourmaster-head {
        float: none !important;
        width: auto !important;
        display: block !important;
        line-height: 1.4 !important;
        font-weight: 700 !important;
        font-size: 14px !important;
        margin-bottom: 10px !important;
        color: #1a1a2e !important;
    }
    /* Tail fills full width */
    .tourmaster-template-payment .tourmaster-traveller-info-field .tourmaster-tail {
        overflow: visible !important;
        display: grid !important;
        grid-template-columns: auto 1fr 1fr !important;
        gap: 10px !important;
        width: 100% !important;
    }
    /* Title (Herr/Frau select) */
    .tourmaster-template-payment .tourmaster-traveller-info-field .tourmaster-tail .tourmaster-traveller-info-title {
        float: none !important;
        width: auto !important;
        min-width: 80px !important;
        margin-right: 0 !important;
    }
    /* Name inputs */
    .tourmaster-template-payment .tourmaster-traveller-info-field .tourmaster-tail .tourmaster-traveller-info-input {
        float: none !important;
        width: 100% !important;
        margin-right: 0 !important;
    }
    /* Passport, date, custom fields span full width */
    .tourmaster-template-payment .tourmaster-traveller-info-field .tourmaster-tail .tourmaster-traveller-info-passport,
    .tourmaster-template-payment .tourmaster-traveller-info-field .tourmaster-tail .tourmaster-traveller-info-custom {
        float: none !important;
        width: 100% !important;
        margin-right: 0 !important;
        margin-top: 0 !important;
        grid-column: 1 / -1 !important;
    }
    /* Mobile: stack traveller fields */
    @media screen and (max-width: 767px) {
        .tourmaster-template-payment .tourmaster-traveller-info-field .tourmaster-tail {
            grid-template-columns: 1fr !important;
        }
    }
    .tourmaster-template-payment .tourmaster-traveller-info-field {
        margin-bottom: 10px !important;
    }
    .tourmaster-template-payment .tourmaster-traveller-info-field > .tourmaster-head {
        font-size: 13px !important;
        font-weight: 700 !important;
        color: #1a1a2e !important;
        margin-bottom: 6px !important;
    }
    .tourmaster-template-payment .tourmaster-traveller-info-field > .tourmaster-tail {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
    }
    .tourmaster-template-payment .tourmaster-traveller-info-field .tourmaster-combobox-wrap.tourmaster-traveller-info-title {
        flex: 0 0 100px !important;
    }
    .tourmaster-template-payment .tourmaster-traveller-info-field .tourmaster-traveller-info-input {
        flex: 1 1 120px !important;
    }
    .tourmaster-template-payment .tourmaster-traveller-info-field .tourmaster-traveller-info-passport,
    .tourmaster-template-payment .tourmaster-traveller-info-field .tourmaster-traveller-info-dob {
        flex: 1 1 calc(50% - 4px) !important;
        min-width: 140px !important;
    }

    /* ── 10. BILLING COPY CHECKBOX ────────────────────────────────── */
    .tourmaster-template-payment .tourmaster-payment-billing-copy-wrap {
        margin: 0 0 16px !important;
        padding: 10px 14px !important;
        background: #f7fafc !important;
        border-radius: 8px !important;
        border: 1px solid #e8ecf0 !important;
    }

    /* ── 11. ADDITIONAL NOTES (collapsible) ──────────────────────── */
    .tourmaster-template-payment .tourmaster-payment-additional-note-wrap {
        max-width: none !important;
    }
    .tourmaster-template-payment .tourmaster-payment-additional-note-wrap .tourmaster-head {
        display: none !important;
    }
    .tourmaster-template-payment .tourmaster-payment-additional-note-wrap .tourmaster-tail {
        overflow: visible !important;
        width: 100% !important;
    }
    .tourmaster-template-payment .tourmaster-additional-note-field {
        max-width: none !important;
    }
    .tourmaster-template-payment .tourmaster-additional-note-field textarea {
        width: 100% !important;
        min-height: 100px !important;
        box-sizing: border-box !important;
    }
    .tourmaster-template-payment .tourmaster-additional-note-field > .tourmaster-head {
        display: none !important;
    }
    .tourmaster-template-payment .tourmaster-additional-note-field textarea {
        min-height: 80px !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    /* ── 11b. COLLAPSIBLE TOGGLE LINKS ────────────────────────── */
    .samui-collapse-toggle {
        display: flex;
        align-items: center;
        gap: 8px;
        color: #00b5f7;
        font-size: 13.5px;
        font-weight: 600;
        cursor: pointer;
        padding: 10px 14px;
        margin-top: 6px;
        margin-bottom: 2px;
        border-radius: 8px;
        transition: color 0.2s ease, background 0.2s ease;
        user-select: none;
        clear: both;
    }
    .samui-collapse-toggle:hover {
        color: #0090cc;
        background: rgba(0, 181, 247, 0.04);
    }
    .samui-collapse-toggle .samui-toggle-icon {
        display: inline-flex;
        width: 20px;
        height: 20px;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        background: rgba(0,181,247,0.1);
        font-size: 14px;
        transition: transform 0.2s ease, background 0.2s ease;
    }
    .samui-collapse-toggle.samui-open .samui-toggle-icon {
        transform: rotate(45deg);
        background: rgba(0,181,247,0.15);
    }
    /* Collapsed section — use display:none for reliability (jQuery slideDown/slideUp handles animation) */
    .samui-collapsed {
        display: none !important;
    }

    /* ── 11c. INLINE VALIDATION FEEDBACK ──────────────────────── */
    .tourmaster-template-payment input.samui-valid {
        border-color: #22c55e !important;
    }
    .tourmaster-template-payment input.samui-invalid {
        border-color: #ef4444 !important;
        box-shadow: 0 0 0 3px rgba(239,68,68,0.08) !important;
    }

    /* ── 11d. (moved to §12 — content CTA defaults to display:none, mobile overrides to block) ── */

    /* ── 12. CTA BUTTONS ──────────────────────────────────────────── */
    /* Content CTA: hidden on desktop (sidebar has its own), visible on mobile */
    .tourmaster-template-payment #tourmaster-tour-payment-content a.tourmaster-tour-booking-continue {
        display: none !important;
        width: fit-content !important;
        margin: 16px auto 0 !important;
        padding: 14px 40px !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        letter-spacing: 0.04em !important;
        text-transform: uppercase !important;
        text-align: center !important;
        background: linear-gradient(135deg, #00b5f7 0%, #0090cc 100%) !important;
        color: #fff !important;
        border: none !important;
        border-radius: 8px !important;
        box-shadow: 0 4px 12px rgba(0,181,247,0.25) !important;
        transition: all 0.2s ease !important;
        cursor: pointer !important;
    }
    @media (max-width: 767px) {
        .tourmaster-template-payment #tourmaster-tour-payment-content a.tourmaster-tour-booking-continue {
            display: block !important;
        }
    }
    .tourmaster-template-payment #tourmaster-tour-payment-content a.tourmaster-tour-booking-continue:hover {
        background: linear-gradient(135deg, #0090cc 0%, #0078b0 100%) !important;
        box-shadow: 0 6px 20px rgba(0,181,247,0.35) !important;
        transform: translateY(-1px) !important;
    }
    /* Hide BOTH next-step buttons during multi-step sub-step 2a.
       Body class .samui-hide-next persists across AJAX DOM replacements.
       This is the ONLY reliable way to keep them hidden. */
    body.samui-hide-next #tourmaster-tour-payment-content a.tourmaster-tour-booking-continue.tourmaster-payment-step[data-step="3"] {
        display: none !important;
    }
    body.samui-hide-next #tourmaster-tour-booking-bar-wrap a.tourmaster-payment-step[data-step="3"] {
        display: none !important;
    }
    .tourmaster-template-payment #tourmaster-tour-booking-bar-wrap a.tourmaster-payment-step {
        display: block !important;
        width: calc(100% - 40px) !important;
        margin: 0 20px 16px !important;
        padding: 14px 20px !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        letter-spacing: 0.04em !important;
        text-transform: uppercase !important;
        text-align: center !important;
        box-sizing: border-box !important;
        border-radius: 8px !important;
        background: linear-gradient(135deg, #00b5f7 0%, #0090cc 100%) !important;
        color: #fff !important;
        border: none !important;
        transition: background 0.2s ease, transform 0.1s ease !important;
        position: relative !important;
        overflow: hidden !important;
    }
    .tourmaster-template-payment #tourmaster-tour-booking-bar-wrap a.tourmaster-payment-step:hover {
        background: linear-gradient(135deg, #0090cc 0%, #007ab8 100%) !important;
    }
    .tourmaster-template-payment #tourmaster-tour-booking-bar-wrap a.tourmaster-payment-step:active {
        transform: scale(0.98) !important;
    }

    /* ── 13. REVIEW STEP (Step 3) ─────────────────────────────────── */
    .tourmaster-template-payment .tourmaster-summary-info-outer {
        background: #fff !important;
        border: 1px solid #e8ecf0 !important;
        border-radius: 10px !important;
        padding: 6px 12px !important;
        box-shadow: 0 1px 4px rgba(0,0,0,0.04) !important;
    }
    .tourmaster-template-payment .tourmaster-payment-detail-title {
        font-size: 15px !important;
        font-weight: 700 !important;
        color: #1a1a2e !important;
        margin-bottom: 16px !important;
        padding-bottom: 10px !important;
        border-bottom: 2px solid #00b5f7 !important;
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
    }
    .tourmaster-template-payment .tourmaster-payment-detail-title .fa {
        color: #00b5f7 !important;
        font-size: 14px !important;
    }

    /* ── 13b. STEP 3 — Contact/Billing 2-Column Grid ──────────────── */
    .tourmaster-template-payment .tourmaster-payment-contact-detail-wrap.tourmaster-item-rvpdlr {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 20px !important;
        padding: 0 !important;
    }
    @media (max-width: 768px) {
        .tourmaster-template-payment .tourmaster-payment-contact-detail-wrap.tourmaster-item-rvpdlr {
            flex-direction: column !important;
        }
    }
    .tourmaster-template-payment .tourmaster-payment-contact-detail-wrap .tourmaster-payment-detail-wrap {
        float: none !important;
        flex: 1 1 300px !important;
        width: auto !important;
        padding: 20px !important;
        background: #f8fafc !important;
        border: 1px solid #e8ecf0 !important;
        border-radius: 10px !important;
        box-shadow: 0 1px 3px rgba(0,0,0,0.04) !important;
    }
    /* Each label+value row */
    .tourmaster-template-payment .tourmaster-payment-contact-detail-wrap .tourmaster-payment-detail {
        display: flex !important;
        align-items: baseline !important;
        gap: 8px !important;
        padding: 6px 0 !important;
        border-bottom: 1px solid #f0f4f8 !important;
        font-size: 13.5px !important;
        line-height: 1.5 !important;
    }
    .tourmaster-template-payment .tourmaster-payment-contact-detail-wrap .tourmaster-payment-detail:last-child {
        border-bottom: none !important;
    }
    .tourmaster-template-payment .tourmaster-payment-contact-detail-wrap .tourmaster-payment-detail .tourmaster-head {
        flex: 0 0 110px !important;
        font-weight: 600 !important;
        color: #6b7d8f !important;
        font-size: 12px !important;
        text-transform: uppercase !important;
        letter-spacing: 0.04em !important;
        white-space: nowrap !important;
    }
    .tourmaster-template-payment .tourmaster-payment-contact-detail-wrap .tourmaster-payment-detail .tourmaster-tail {
        flex: 1 !important;
        color: #1a2b3c !important;
        font-weight: 500 !important;
        word-break: break-word !important;
    }

    /* Traveller detail — seamless */
    .tourmaster-template-payment .tourmaster-payment-traveller-detail {
        padding: 0 !important;
        margin: 0 !important;
        border: none !important;
        box-shadow: none !important;
        background: transparent !important;
    }
    .tourmaster-template-payment .tourmaster-payment-traveller-detail .tourmaster-payment-detail-title {
        font-size: 13px !important;
        font-weight: 700 !important;
        margin: 0 !important;
        padding: 10px 2px !important;
        border-bottom: none !important;
        border-radius: 6px !important;
        cursor: pointer !important;
    }
    .tourmaster-template-payment .tourmaster-payment-traveller-detail .tourmaster-payment-detail-title:hover {
        background: rgba(0, 181, 247, 0.03) !important;
    }

    /* Step bar */
    .tourmaster-template-payment .tourmaster-payment-step-item {
        padding: 8px 16px 8px 0 !important;
    }

    /* Payment method section */
    .tourmaster-template-payment .tourmaster-payment-method-wrap {
        padding: 14px !important;
        margin-top: 4px !important;
    }

/* ── 14. COMPLETION PAGE (Step 4) ─────────────────────────────── */
    /* Container: white card with subtle shadow on the subtle bg */
    .tourmaster-template-payment .tourmaster-payment-complete-wrap {
        text-align: center !important;
        padding: 0 !important;
        max-width: 520px !important;
        margin: 0 auto !important;
        background: #fff !important;
        border-radius: 6px !important;
        overflow: hidden !important;
    }
    /* Head banner: brand gradient with white text */
    .tourmaster-template-payment .tourmaster-payment-complete-head {
        font-size: 18px !important;
        font-weight: 700 !important;
        color: #fff !important;
        letter-spacing: -0.01em !important;
        margin-bottom: 0 !important;
        padding: 20px 24px !important;
        border-bottom: none !important;
        background: linear-gradient(135deg, #0a1628 0%, #162544 100%) !important;
        display: none !important;
    }
    /* Content wrap: padding inside white card */
    .tourmaster-template-payment .tourmaster-payment-complete-content-wrap {
        padding: 36px 32px 40px !important;
    }
    /* Icon: green circle with white check */
    .tourmaster-template-payment .tourmaster-payment-complete-icon {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 64px !important;
        height: 64px !important;
        margin: 0 auto 16px !important;
        border-radius: 50% !important;
        background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%) !important;
        color: #fff !important;
        font-size: 0 !important;
        position: relative !important;
    }
    .tourmaster-template-payment .tourmaster-payment-complete-icon::after {
        content: "" !important;
        display: block !important;
        width: 18px !important;
        height: 30px !important;
        border: solid #fff !important;
        border-width: 0 4px 4px 0 !important;
        transform: rotate(45deg) !important;
        margin-top: -4px !important;
    }
    /* Thank you heading */
    .tourmaster-template-payment .tourmaster-payment-complete-thank-you {
        font-size: 20px !important;
        font-weight: 700 !important;
        color: #1a1a2e !important;
        margin-bottom: 8px !important;
        letter-spacing: -0.01em !important;
    }
    /* Subtext */
    .tourmaster-template-payment .tourmaster-payment-complete-content {
        font-size: 13px !important;
        color: #555 !important;
        line-height: 1.5 !important;
        margin-bottom: 28px !important;
    }
    /* CTA button: brand gradient with shimmer */
    .tourmaster-template-payment .tourmaster-payment-complete-wrap .tourmaster-button {
        display: inline-block !important;
        background: linear-gradient(135deg, #00b5f7 0%, #0090cc 100%) !important;
        color: #fff !important;
        border: none !important;
        border-radius: 8px !important;
        padding: 14px 40px !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        letter-spacing: 0.04em !important;
        text-transform: uppercase !important;
        text-decoration: none !important;
        transition: background 0.2s ease, transform 0.1s ease !important;
        position: relative !important;
        overflow: hidden !important;
        cursor: pointer !important;
    }
    .tourmaster-template-payment .tourmaster-payment-complete-wrap .tourmaster-button:hover {
        background: linear-gradient(135deg, #0090cc 0%, #007ab8 100%) !important;
    }
    .tourmaster-template-payment .tourmaster-payment-complete-wrap .tourmaster-button:active {
        transform: scale(0.98) !important;
    }
    /* Shimmer on completion CTA */
    .tourmaster-template-payment .tourmaster-payment-complete-wrap .tourmaster-button::after {
        content: "" !important;
        position: absolute !important;
        top: -50% !important;
        left: -50% !important;
        width: 200% !important;
        height: 200% !important;
        background: linear-gradient(
            115deg,
            transparent 30%,
            rgba(255,255,255,0.15) 45%,
            rgba(255,255,255,0.25) 50%,
            rgba(255,255,255,0.15) 55%,
            transparent 70%
        ) !important;
        animation: samuiShimmer 3s ease infinite !important;
        pointer-events: none !important;
    }
    /* Bottom text (if any) */
    .tourmaster-template-payment .tourmaster-payment-complete-bottom-text {
        padding: 16px 24px !important;
        border-top: 1px solid #eee !important;
        margin-top: 0 !important;
        font-size: 12px !important;
        color: #888 !important;
    }

    /* ── 15. SIDEBAR ──────────────────────────────────────────────
       Restores the full custom sidebar styling from v5.x:
       grid-based summary cards, colored icons, payment toggle,
       price breakdown, deposit handling, custom summary card.
    ─────────────────────────────────────────────────────────────── */
    .tourmaster-template-payment .tourmaster-tour-booking-bar-wrap {
        border-radius: 12px !important;
        overflow: hidden !important;
        box-shadow: 0 4px 20px rgba(0,0,0,0.08) !important;
        border: 1px solid #eaeef2 !important;
    }
    .tourmaster-template-payment .tourmaster-tour-booking-bar-outer {
        border-radius: 12px !important;
        overflow: hidden !important;
    }

    /* Hide Tourmaster's native CC fee info (our samui-summary-card replaces it) */
    .tourmaster-template-payment .tourmaster-tour-booking-bar-total-price-info-title,
    .tourmaster-template-payment .tourmaster-tour-booking-bar-total-price-info-content {
        display: none !important;
    }

    /* --- BOOKING-ONLY: "No Payment Required" banner --- */
    .tourmaster-template-payment .samui-no-payment-banner {
        margin: 0 20px 6px;
        padding: 14px 16px;
        background: linear-gradient(135deg, #f0fbff 0%, #e8f6ff 100%);
        border-left: 3px solid #00b5f7;
        border-radius: 0 6px 6px 0;
        animation: samui-fadein 0.3s ease;
    }
    .tourmaster-template-payment .samui-no-payment-banner .samui-npb-icon {
        display: none;
    }
    .tourmaster-template-payment .samui-no-payment-banner .samui-npb-title {
        font-size: 13px;
        font-weight: 700;
        color: #1a1a2e;
        margin-bottom: 4px;
        display: block;
        letter-spacing: -0.01em;
    }
    .tourmaster-template-payment .samui-no-payment-banner .samui-npb-text {
        font-size: 11.5px;
        color: #666;
        line-height: 1.5;
        display: block;
    }

    /* --- Booking Confirm Notice --- */
    .tourmaster-template-payment .samui-booking-confirm-notice {
        background: linear-gradient(135deg, #f0fbff 0%, #f5faff 100%);
        border: 1px solid #ddeef8;
        border-left: 3px solid #00b5f7;
        border-radius: 0 8px 8px 0;
        padding: 14px 16px;
        margin: 10px 20px 6px;
        font-size: 12px;
        color: #555;
        line-height: 1.5;
    }
    .tourmaster-template-payment .samui-booking-confirm-notice .samui-bcn-item {
        display: flex;
        align-items: flex-start;
        gap: 8px;
        margin-bottom: 6px;
    }
    .tourmaster-template-payment .samui-booking-confirm-notice .samui-bcn-item:last-child {
        margin-bottom: 0;
    }
    .tourmaster-template-payment .samui-booking-confirm-notice .samui-bcn-icon {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 20px;
        height: 20px;
        flex-shrink: 0;
        margin-top: 1px;
    }

    /* --- UPPER SUMMARY: Tour info, date, persons --- */
    .tourmaster-template-payment .tourmaster-tour-booking-bar-summary {
        padding: 16px 16px 10px !important;
        background: #fff !important;
        border-bottom: none !important;
    }
    .tourmaster-template-payment .tourmaster-tour-booking-bar-summary-title {
        font-size: 15px !important;
        font-weight: 700 !important;
        color: #1a1a2e !important;
        line-height: 1.35 !important;
        margin-bottom: 10px !important;
        letter-spacing: -0.02em;
        padding-bottom: 0;
        border-bottom: none;
    }

    /* --- INFO ROW: Flat list (no cards) --- */
    .tourmaster-template-payment .tourmaster-tour-booking-bar-summary-info {
        display: flex !important;
        align-items: center !important;
        gap: 10px !important;
        margin-bottom: 0 !important;
        padding: 7px 0 !important;
        background: transparent !important;
        border-radius: 0 !important;
        border: none !important;
        border-bottom: 1px solid #f0f2f5 !important;
        transition: none !important;
    }
    .tourmaster-template-payment .tourmaster-tour-booking-bar-summary-info:hover {
        border-color: #f0f2f5 !important;
        box-shadow: none !important;
    }
    /* Icon — inline, compact */
    .tourmaster-template-payment .tourmaster-tour-booking-bar-summary-info::before {
        font-family: 'FontAwesome';
        font-size: 12px;
        width: 26px;
        height: 26px;
        min-width: 26px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 6px;
        flex-shrink: 0;
    }
    /* Per-type icon colors */
    .tourmaster-template-payment .tourmaster-summary-travel-date::before {
        content: '\f073';
        background: rgba(0, 181, 247, 0.1);
        color: #00b5f7;
    }
    .tourmaster-template-payment .tourmaster-summary-end-date::before {
        content: '\f274';
        background: rgba(76, 175, 80, 0.1);
        color: #4caf50;
    }
    .tourmaster-template-payment .tourmaster-summary-period::before {
        content: '\f017';
        background: rgba(156, 39, 176, 0.1);
        color: #9c27b0;
    }
    .tourmaster-template-payment .tourmaster-summary-package::before {
        content: '\f02b';
        background: rgba(255, 152, 0, 0.1);
        color: #ff9800;
    }
    .tourmaster-template-payment .tourmaster-tour-booking-bar-summary-info:not(.tourmaster-summary-travel-date):not(.tourmaster-summary-end-date):not(.tourmaster-summary-period):not(.tourmaster-summary-package)::before {
        content: '\f129';
        background: rgba(120, 120, 140, 0.08);
        color: #888;
    }
    /* Label — hidden in flat mode, value speaks for itself */
    .tourmaster-template-payment .tourmaster-tour-booking-bar-summary-info .tourmaster-head {
        display: none !important;
    }
    /* Value — inline with icon */
    .tourmaster-template-payment .tourmaster-tour-booking-bar-summary-info .tourmaster-tail {
        font-size: 13px !important;
        color: #1a1a2e !important;
        font-weight: 600 !important;
        line-height: 1.4 !important;
        display: block !important;
        flex: 1 !important;
    }
    /* Edit link */
    .tourmaster-template-payment .tourmaster-tour-booking-bar-summary-info a,
    .tourmaster-template-payment .tourmaster-tour-booking-bar-date-edit {
        color: #00b5f7 !important;
        font-size: 11px !important;
        font-weight: 500 !important;
        text-decoration: none !important;
        cursor: pointer;
        transition: color 0.15s ease;
    }
    .tourmaster-template-payment .tourmaster-tour-booking-bar-summary-info a:hover,
    .tourmaster-template-payment .tourmaster-tour-booking-bar-date-edit:hover {
        color: #0090cc !important;
        text-decoration: underline !important;
    }

    /* --- PERSONS SECTION: Flat row --- */
    .tourmaster-template-payment .tourmaster-tour-booking-bar-summary-people-wrap {
        display: flex !important;
        align-items: center !important;
        gap: 10px !important;
        margin-bottom: 0 !important;
        padding: 7px 0 !important;
        background: transparent !important;
        border-radius: 0 !important;
        border: none !important;
        transition: none !important;
    }
    .tourmaster-template-payment .tourmaster-tour-booking-bar-summary-people-wrap:hover {
        border-color: transparent !important;
        box-shadow: none !important;
    }
    .tourmaster-template-payment .tourmaster-tour-booking-bar-summary-people-wrap::before {
        content: '\f0c0';
        font-family: 'FontAwesome';
        font-size: 12px;
        width: 26px;
        height: 26px;
        min-width: 26px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 6px;
        flex-shrink: 0;
        background: rgba(33, 150, 243, 0.1);
        color: #2196f3;
    }
    .tourmaster-template-payment .tourmaster-tour-booking-bar-summary-people-wrap .tourmaster-tour-booking-bar-summary-people {
        display: flex !important;
        gap: 12px;
        flex-wrap: wrap;
        align-items: baseline;
        flex: 1;
    }
    .tourmaster-template-payment .tourmaster-tour-booking-bar-summary-people-amount {
        display: inline-flex !important;
        align-items: baseline !important;
        gap: 4px;
    }
    .tourmaster-template-payment .tourmaster-tour-booking-bar-summary-people-amount .tourmaster-head {
        font-size: 10px !important;
        text-transform: uppercase;
        letter-spacing: 0.3px;
        color: #999 !important;
        font-weight: 600 !important;
    }
    .tourmaster-template-payment .tourmaster-tour-booking-bar-summary-people-amount .tourmaster-tail {
        font-size: 13px !important;
        color: #1a1a2e !important;
        font-weight: 700 !important;
    }

    /* --- COUPON SECTION (v2 — 2026-07-03) --- */
    .tourmaster-template-payment .tourmaster-tour-booking-bar-coupon-wrap {
        margin: 14px 0 0 !important;
        padding: 14px 0 0 !important;
        border-top: 1px dashed #e0e3e6;
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: stretch !important;
        gap: 0 !important;
    }
    .tourmaster-template-payment .tourmaster-tour-booking-bar-coupon-wrap input[type="text"] {
        flex: 1 !important;
        min-width: 0 !important;
        width: auto !important;
        font-size: 12.5px !important;
        padding: 9px 12px !important;
        border: 1px solid #dde0e4 !important;
        border-radius: 8px 0 0 8px !important;
        background: #fff !important;
        transition: border-color 0.2s ease, box-shadow 0.2s ease;
        outline: none !important;
        margin: 0 !important;
        color: #333 !important;
        letter-spacing: -0.01em;
    }
    .tourmaster-template-payment .tourmaster-tour-booking-bar-coupon-wrap input[type="text"]::placeholder {
        color: #aab !important;
        font-weight: 400;
    }
    .tourmaster-template-payment .tourmaster-tour-booking-bar-coupon-wrap input[type="text"]:focus {
        border-color: #00b5f7 !important;
        box-shadow: 0 0 0 2.5px rgba(0,181,247,0.08) !important;
        z-index: 1;
        position: relative;
    }
    .tourmaster-template-payment .tourmaster-tour-booking-bar-coupon-validate {
        display: inline-flex !important;
        align-items: stretch !important;
        justify-content: center !important;
        font-size: 12px !important;
        font-weight: 600 !important;
        color: #00b5f7 !important;
        background: transparent !important;
        cursor: pointer !important;
        transition: all 0.2s ease !important;
        padding: 9px 14px !important;
        border-radius: 0 8px 8px 0 !important;
        margin: 0 !important;
        white-space: nowrap;
        letter-spacing: 0.02em;
        border: 1px solid #dde0e4 !important;
        border-left: none !important;
    }
    .tourmaster-template-payment .tourmaster-tour-booking-bar-coupon-validate:hover {
        background: rgba(0,181,247,0.06) !important;
        color: #0090cc !important;
    }

    /* Coupon validation message — visible feedback */
    .tourmaster-template-payment .tourmaster-tour-booking-coupon-message {
        font-size: 12px !important;
        margin-top: 10px !important;
        border-radius: 8px !important;
        width: 100% !important;
        box-sizing: border-box !important;
        line-height: 1.4 !important;
    }
    .tourmaster-template-payment .tourmaster-tour-booking-coupon-message.tourmaster-failed {
        color: #b91c1c !important;
        background: linear-gradient(135deg, #fef2f2, #fff5f5) !important;
        border: 1px solid #fecaca !important;
        padding: 10px 14px !important;
        font-weight: 500 !important;
    }
    .tourmaster-template-payment .tourmaster-tour-booking-coupon-message.tourmaster-success {
        color: #15803d !important;
        background: linear-gradient(135deg, #f0fdf4, #f5fff9) !important;
        border: 1px solid #bbf7d0 !important;
        padding: 10px 14px !important;
        font-weight: 500 !important;
    }

    /* --- PRICE BREAKDOWN LINK --- */
    .tourmaster-template-payment .tourmaster-tour-booking-bar-price-breakdown-link {
        margin-top: 12px !important;
        margin-bottom: 2px !important;
        font-size: 12px !important;
        font-weight: 500 !important;
        color: #00b5f7 !important;
        cursor: pointer !important;
        display: inline-flex !important;
        align-items: stretch !important;
        gap: 4px !important;
        transition: color 0.15s ease !important;
    }
    .tourmaster-template-payment .tourmaster-tour-booking-bar-price-breakdown-link:hover {
        color: #0090cc !important;
    }
    .tourmaster-template-payment .tourmaster-tour-booking-bar-summary .tourmaster-price-breakdown {
        padding-top: 10px !important;
        margin-top: 6px;
    }

    /* --- HIDE native deposit text + radios (replaced by our toggle) --- */
    .tourmaster-template-payment .tourmaster-tour-booking-bar-deposit-text.tourmaster-active {
        height: 0 !important;
        overflow: hidden !important;
        padding: 0 !important;
        margin: 0 !important;
        border: none !important;
        opacity: 0 !important;
    }
    .tourmaster-template-payment .tourmaster-tour-booking-bar-deposit-option {
        display: none !important;
    }

    /* --- PAYMENT TYPE TOGGLE (custom styled) --- */
    .tourmaster-template-payment .samui-payment-toggle {
        display: flex;
        gap: 6px;
        margin: 14px 10px 10px;
        animation: samui-fadein 0.3s ease;
    }
    .tourmaster-template-payment .samui-payment-toggle .samui-toggle-btn {
        flex: 1;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        padding: 9px 10px;
        border-radius: 8px;
        border: 1.5px solid #ddd;
        background: #fff;
        cursor: pointer;
        transition: all 0.2s ease;
        font-size: 12px;
        font-weight: 600;
        color: #666;
    }
    .tourmaster-template-payment .samui-payment-toggle .samui-toggle-btn:hover {
        border-color: #bbb;
        background: #f5f5f5;
    }
    .tourmaster-template-payment .samui-payment-toggle .samui-toggle-btn.samui-toggle-active {
        border-color: #00b5f7;
        background: linear-gradient(135deg, #f0fbff 0%, #e6f7ff 100%);
        color: #0090cc;
        box-shadow: 0 1px 6px rgba(0, 181, 247, 0.15);
    }
    .tourmaster-template-payment .samui-payment-toggle .samui-toggle-btn .samui-toggle-icon {
        font-size: 13px;
        flex-shrink: 0;
    }
    .tourmaster-template-payment .samui-payment-toggle .samui-toggle-btn.samui-toggle-active .samui-toggle-icon {
        color: #00b5f7;
    }

    /* --- LOADING SPINNER --- */
    .tourmaster-template-payment .samui-loading-spinner {
        display: flex;
        justify-content: center;
        padding: 24px 0;
        margin: 0 20px;
    }
    .tourmaster-template-payment .samui-loading-spinner::after {
        content: '';
        width: 24px;
        height: 24px;
        border: 3px solid #e8e8e8;
        border-top-color: #00b5f7;
        border-radius: 50%;
        animation: samui-spin 0.7s linear infinite;
    }
    @keyframes samui-spin {
        to { transform: rotate(360deg); }
    }

    /* --- UNIFIED SUMMARY CARD --- */
    .tourmaster-template-payment .samui-summary-card {
        margin: 0 20px 14px;
        animation: samui-fadein 0.3s ease;
    }
    .tourmaster-template-payment .samui-summary-card .samui-row {
        display: flex;
        justify-content: space-between;
        align-items: baseline;
        padding: 10px 0;
        border-bottom: 1px dashed #e4e4e4;
    }
    .tourmaster-template-payment .samui-summary-card .samui-row:last-of-type {
        border-bottom: none;
    }
    .tourmaster-template-payment .samui-row .samui-row-label {
        font-size: 13px;
        color: #888;
        font-weight: 400;
    }
    .tourmaster-template-payment .samui-row .samui-row-value {
        font-size: 14px;
        font-weight: 600;
        color: #333;
        white-space: nowrap;
    }
    .tourmaster-template-payment .samui-row.samui-row-total .samui-row-label {
        font-size: 13px;
        font-weight: 500;
        color: #666;
    }
    .tourmaster-template-payment .samui-row.samui-row-total .samui-row-value {
        font-size: 16px;
        font-weight: 700;
    }
    .tourmaster-template-payment .samui-row.samui-row-fee {
        padding: 6px 0;
        border-bottom: none;
    }
    .tourmaster-template-payment .samui-row.samui-row-fee .samui-row-label {
        font-size: 12px;
        color: #aaa;
    }
    .tourmaster-template-payment .samui-row.samui-row-fee .samui-row-value {
        font-size: 12px;
        font-weight: 500;
        color: #999;
    }
    .tourmaster-template-payment .samui-row.samui-row-paynow {
        padding: 12px 0;
        border-bottom: 1px solid #e4e4e4;
    }
    .tourmaster-template-payment .samui-row.samui-row-paynow .samui-row-label {
        font-size: 14px;
        font-weight: 600;
        color: #333;
    }
    .tourmaster-template-payment .samui-row.samui-row-paynow .samui-row-value {
        font-size: 18px;
        font-weight: 800;
        color: #00b5f7;
    }
    .tourmaster-template-payment .samui-row.samui-row-remaining {
        border-bottom: none;
        padding-bottom: 4px;
    }
    .tourmaster-template-payment .samui-row.samui-row-remaining .samui-row-label {
        font-size: 13px;
        color: #888;
    }
    .tourmaster-template-payment .samui-row.samui-row-remaining .samui-row-value {
        font-size: 14px;
        font-weight: 600;
        color: #555;
    }
    .tourmaster-template-payment .samui-summary-card .samui-row-note {
        font-size: 11px;
        color: #bbb;
        line-height: 1.4;
        padding-bottom: 6px;
    }

    /* --- FIX: Replace broken ElegantIcons price icon with FontAwesome --- */
    .tourmaster-template-payment .tourmaster-header-price .tourmaster-tour-price-wrap:before {
        font-family: 'FontAwesome' !important;
        content: '\f02b' !important;
        font-size: 20px !important;
    }

    /* Total price wrap — HIDDEN by default to prevent stale-price flash.
       Our JS (enhanceSummary) replaces it with .samui-summary-card.
       Failsafe JS un-hides after 3s if no card was injected. (2026-07-04) */
    .tourmaster-template-payment .tourmaster-tour-booking-bar-total-price-wrap {
        padding: 16px 0 !important;
        text-align: center !important;
        height: 0 !important;
        overflow: hidden !important;
        opacity: 0 !important;
        margin: 0 !important;
        border: none !important;
    }
    /* Auto-spinner: appears where total-price-wrap was, removed by JS */
    .tourmaster-template-payment .tourmaster-tour-booking-bar-total-price-wrap + .samui-auto-spinner,
    .tourmaster-template-payment .tourmaster-tour-booking-bar-summary-price > .samui-auto-spinner {
        display: flex;
        justify-content: center;
        padding: 28px 0 16px;
    }
    .tourmaster-template-payment .samui-auto-spinner::after {
        content: '';
        width: 22px;
        height: 22px;
        border: 2.5px solid #e8e8e8;
        border-top-color: #00b5f7;
        border-radius: 50%;
        animation: samui-spin 0.7s linear infinite;
    }
    /* Hide auto-spinner when summary card exists */
    .tourmaster-template-payment .samui-summary-card ~ .samui-auto-spinner,
    .tourmaster-template-payment .samui-auto-spinner.samui-hidden {
        display: none !important;
    }

    /* Summary outer (step 3 review) */
    .tourmaster-template-payment .tourmaster-summary-info-outer {
        margin-bottom: 16px !important;
    }

    /* ── 16. VALIDATION ERROR ─────────────────────────────────────── */
    /* Per-field: red border + subtle background on invalid fields */
    .tourmaster-template-payment input.tourmaster-validate-error,
    .tourmaster-template-payment select.tourmaster-validate-error,
    .tourmaster-template-payment textarea.tourmaster-validate-error {
        border-color: #ef4444 !important;
        background: #fef2f2 !important;
        box-shadow: 0 0 0 3px rgba(239,68,68,0.1) !important;
    }
    /* Shake animation on error */
    @keyframes samui-shake {
        0%, 100% { transform: translateX(0); }
        20%, 60% { transform: translateX(-4px); }
        40%, 80% { transform: translateX(4px); }
    }
    .tourmaster-template-payment input.tourmaster-validate-error,
    .tourmaster-template-payment select.tourmaster-validate-error {
        animation: samui-shake 0.4s ease !important;
    }
    .tourmaster-template-payment .tourmaster-tour-booking-required-error {
        background: #fef2f2 !important;
        border: 1px solid #fecaca !important;
        border-left: 4px solid #ef4444 !important;
        border-radius: 0 8px 8px 0 !important;
        padding: 14px 18px !important;
        color: #dc2626 !important;
        margin: 16px 0 !important;
        clear: both !important;
        font-size: 13px !important;
        margin-top: 12px !important;
    }

    /* ── 17. MULTI-STEP SUBSTEP UI ────────────────────────────────── */
    .tourmaster-template-payment .samui-substep-indicator {
        display: flex !important;
        align-items: stretch !important;
        gap: 8px !important;
        padding: 10px 16px !important;
        background: #f0f7ff !important;
        border-radius: 10px !important;
        margin-bottom: 16px !important;
    }
    .tourmaster-template-payment .samui-substep-dot {
        width: 10px !important;
        height: 10px !important;
        border-radius: 50% !important;
        background: #d1d5db !important;
        flex-shrink: 0 !important;
    }
    .tourmaster-template-payment .samui-substep-dot.samui-active {
        background: #00b5f7 !important;
        box-shadow: 0 0 0 3px rgba(0,181,247,0.2) !important;
    }
    .tourmaster-template-payment .samui-substep-dot.samui-done {
        background: #10b981 !important;
    }
    .tourmaster-template-payment .samui-substep-label {
        font-size: 13px !important;
        font-weight: 500 !important;
        color: #9ca3af !important;
    }
    .tourmaster-template-payment .samui-substep-label.samui-active {
        color: #00b5f7 !important;
        font-weight: 700 !important;
    }
    .tourmaster-template-payment .samui-substep-btn {
        display: inline-block !important;
        padding: 12px 36px !important;
        background: linear-gradient(135deg, #00b5f7 0%, #0090cc 100%) !important;
        color: #fff !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        text-transform: uppercase !important;
        letter-spacing: 0.04em !important;
        border-radius: 8px !important;
        box-shadow: 0 4px 12px rgba(0,181,247,0.25) !important;
        cursor: pointer !important;
        transition: all 0.2s ease !important;
        text-decoration: none !important;
    }
    .tourmaster-template-payment .samui-substep-btn:hover {
        background: linear-gradient(135deg, #0090cc 0%, #0078b0 100%) !important;
        transform: translateY(-1px) !important;
    }
    .tourmaster-template-payment .samui-substep-back {
        font-size: 13px !important;
        color: #00b5f7 !important;
        cursor: pointer !important;
        margin-bottom: 12px !important;
        display: flex !important;
        align-items: stretch !important;
        gap: 6px !important;
    }
    .tourmaster-template-payment .samui-substep-back:hover {
        color: #0090cc !important;
    }

    /* ── 17B. CRO DUPLICATE FIELD HIDE (v6.0) ── */
    .tourmaster-template-payment .tourmaster-payment-traveller-info-wrap ~ .tourmaster-payment-contact-wrap .tourmaster-contact-field-first_name,
    .tourmaster-template-payment .tourmaster-payment-traveller-info-wrap ~ .tourmaster-payment-contact-wrap .tourmaster-contact-field-last_name,
    .tourmaster-template-payment .tourmaster-billing-field-billing_first_name,
    .tourmaster-template-payment .tourmaster-billing-field-billing_last_name,
    .tourmaster-template-payment .tourmaster-billing-field-billing_email,
    .tourmaster-template-payment .tourmaster-billing-field-billing_phone {
        display: none !important;
    }

    /* ── 18. PAYMENT METHOD ───────────────────────────────────────── */
    .tourmaster-template-payment .tourmaster-online-payment-method {
        border: 1px solid #e8ecf0 !important;
        border-radius: 10px !important;
        padding: 16px !important;
        margin-bottom: 10px !important;
        transition: border-color 0.2s !important;
    }
    .tourmaster-template-payment .tourmaster-online-payment-method:hover {
        border-color: #00b5f7 !important;
    }
    .tourmaster-template-payment .tourmaster-none-online-payment .tourmaster-payment-method-title {
        font-size: 15px !important;
        font-weight: 700 !important;
        color: #1a1a2e !important;
    }

    /* ── 18b. PAYMENT METHOD — Premium Design ────────────────────── */
    .tourmaster-template-payment .tourmaster-payment-method-wrap {
        background: #f8f9fa !important;
        border-radius: 8px !important;
        padding: 28px 24px 20px !important;
        margin-top: 20px !important;
    }
    .tourmaster-template-payment .tourmaster-payment-method-title {
        font-size: 16px !important;
        font-weight: 700 !important;
        color: #1a1a2e !important;
        letter-spacing: -0.01em;
        margin-bottom: 20px !important;
        padding-bottom: 14px !important;
        border-bottom: 2px solid #00b5f7 !important;
        text-align: center;
    }
    .tourmaster-template-payment .tourmaster-payment-method-description {
        font-size: 12px !important;
        color: #666 !important;
        text-align: center !important;
        line-height: 1.6 !important;
        margin-bottom: 20px !important;
        padding: 12px 16px !important;
        background: #fff !important;
        border-radius: 6px !important;
        border: 1px solid #eee !important;
    }
    .tourmaster-template-payment .tourmaster-payment-terms {
        font-size: 13px !important;
        color: #555 !important;
        text-align: center !important;
        margin-bottom: 24px !important;
        line-height: 1.5 !important;
    }
    .tourmaster-template-payment .tourmaster-payment-terms input[type="checkbox"] {
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;
        width: 18px;
        height: 18px;
        border: 2px solid #e2e8f0;
        border-radius: 4px;
        background: #fff;
        cursor: pointer;
        vertical-align: middle;
        margin-right: 8px !important;
        position: relative;
        transition: background 0.2s ease, border-color 0.2s ease;
    }
    .tourmaster-template-payment .tourmaster-payment-terms input[type="checkbox"]:checked {
        background: #00b5f7;
        border-color: #00b5f7;
    }
    .tourmaster-template-payment .tourmaster-payment-terms input[type="checkbox"]:checked::after {
        content: "";
        position: absolute;
        left: 5px;
        top: 1px;
        width: 5px;
        height: 10px;
        border: solid #fff;
        border-width: 0 2px 2px 0;
        transform: rotate(45deg);
    }
    .tourmaster-template-payment .tourmaster-payment-terms a {
        color: #00b5f7 !important;
        text-decoration: none;
        font-weight: 500;
    }
    .tourmaster-template-payment .tourmaster-payment-terms a:hover {
        text-decoration: underline;
    }
    .tourmaster-template-payment .tourmaster-payment-method-wrap .tourmaster-pay-later,
    .tourmaster-template-payment .tourmaster-payment-method-wrap .tourmaster-pay-now {
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
        padding: 14px 20px !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        letter-spacing: 0.5px !important;
        text-transform: uppercase !important;
        text-align: center !important;
        border-radius: 8px !important;
        background: linear-gradient(135deg, #00b5f7, #0090cc) !important;
        color: #fff !important;
        border: none !important;
        cursor: pointer !important;
        transition: transform 0.2s ease, box-shadow 0.2s ease !important;
        position: relative;
        overflow: hidden;
    }
    .tourmaster-template-payment .tourmaster-payment-method-wrap .tourmaster-pay-later:hover,
    .tourmaster-template-payment .tourmaster-payment-method-wrap .tourmaster-pay-now:hover {
        transform: translateY(-1px);
        box-shadow: 0 4px 14px rgba(0, 181, 247, 0.35) !important;
    }
    .tourmaster-template-payment .tourmaster-payment-method-wrap .tourmaster-pay-later:active,
    .tourmaster-template-payment .tourmaster-payment-method-wrap .tourmaster-pay-now:active {
        transform: scale(0.98);
    }
    .tourmaster-template-payment .tourmaster-payment-method-wrap .tourmaster-pay-later::after,
    .tourmaster-template-payment .tourmaster-payment-method-wrap .tourmaster-pay-now::after {
        content: "";
        position: absolute;
        top: 0; left: -100%; width: 50%; height: 100%;
        background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
        animation: samuiShimmer 3s ease infinite;
    }
    .tourmaster-template-payment .tourmaster-payment-method-wrap .tourmaster-or {
        text-align: center !important;
        color: #999 !important;
        font-size: 12px !important;
        font-weight: 600 !important;
        text-transform: uppercase !important;
        letter-spacing: 1px !important;
        margin: 16px 0 !important;
        position: relative;
    }
    .tourmaster-template-payment .tourmaster-payment-method-wrap .tourmaster-or::before,
    .tourmaster-template-payment .tourmaster-payment-method-wrap .tourmaster-or::after {
        content: "";
        position: absolute;
        top: 50%;
        width: 38%;
        height: 1px;
        background: #ddd;
    }
    .tourmaster-template-payment .tourmaster-payment-method-wrap .tourmaster-or::before { left: 0; }
    .tourmaster-template-payment .tourmaster-payment-method-wrap .tourmaster-or::after { right: 0; }
    .tourmaster-template-payment .tourmaster-payment-method-wrap .tourmaster-combobox-wrap {
        margin-bottom: 14px !important;
    }
    .tourmaster-template-payment .tourmaster-payment-method-wrap .tourmaster-combobox-wrap select {
        width: 100% !important;
        border: 1px solid #e2e8f0 !important;
        border-radius: 6px !important;
        height: 48px !important;
        padding: 10px 12px !important;
        font-size: 13px !important;
        color: #1a1a2e !important;
        background: #fff !important;
        transition: border-color 0.2s ease !important;
    }
    .tourmaster-template-payment .tourmaster-payment-method-wrap .tourmaster-combobox-wrap select:focus {
        border-color: #00b5f7 !important;
        outline: none !important;
        box-shadow: 0 0 0 3px rgba(0,181,247,0.1) !important;
    }
    .tourmaster-template-payment .tourmaster-payment-method-wrap .tourmaster-payment-gateway {
        margin-bottom: 20px !important;
        text-align: center;
    }
    .tourmaster-template-payment .tourmaster-payment-method-wrap .tourmaster-payment-credit-card-type {
        text-align: center !important;
        margin-bottom: 14px !important;
    }
    .tourmaster-template-payment .tourmaster-payment-method-wrap .tourmaster-payment-credit-card-type img {
        max-height: 26px !important;
        margin: 0 4px !important;
        opacity: 0.7;
        transition: opacity 0.2s ease;
    }
    .tourmaster-template-payment .tourmaster-payment-method-wrap .tourmaster-payment-credit-card-type img:hover {
        opacity: 1;
    }

    /* ── 19. RESPONSIVE ───────────────────────────────────────────── */
    @media screen and (max-width: 999px) {
        .tourmaster-template-payment .tourmaster-page-content.tourmaster-item-pdlr {
            padding-left: 10px !important;
            padding-right: 10px !important;
        }
    }
    @media screen and (max-width: 767px) {
        .tourmaster-template-payment .tourmaster-payment-traveller-info-wrap,
        .tourmaster-template-payment .tourmaster-payment-contact-wrap,
        .tourmaster-template-payment .tourmaster-payment-billing-wrap,
        .tourmaster-template-payment .tourmaster-payment-additional-note-wrap {
            padding: 16px !important;
        }
        .tourmaster-template-payment .tourmaster-payment-step-item {
            padding: 14px 15px 14px 0 !important;
        }
        .tourmaster-template-payment .tourmaster-payment-step-item-title {
            font-size: 10px !important;
        }
    }
    @media screen and (max-width: 480px) {
        .tourmaster-template-payment .tourmaster-payment-step-item-title {
            display: none !important;
        }
        .tourmaster-template-payment .tourmaster-payment-step-item {
            padding: 12px 8px 12px 0 !important;
        }

    /* ── 20. RESPONSIVE — Summary Card + Payment Toggle (Phase 1) ──── */
    @media screen and (max-width: 480px) {
        .tourmaster-template-payment .samui-payment-toggle {
            gap: 4px;
            margin: 10px 8px 8px;
        }
        .tourmaster-template-payment .samui-payment-toggle .samui-toggle-btn {
            font-size: 11px;
            padding: 8px 6px;
            gap: 5px;
            border-radius: 6px;
        }
        .tourmaster-template-payment .samui-summary-card {
            margin: 0 8px 10px;
        }
        .tourmaster-template-payment .samui-summary-card .samui-row {
            padding: 8px 0;
        }
        .tourmaster-template-payment .samui-row .samui-row-label {
            font-size: 12px;
        }
        .tourmaster-template-payment .samui-row .samui-row-value {
            font-size: 13px;
        }
        .tourmaster-template-payment .samui-row.samui-row-total .samui-row-value {
            font-size: 14px;
        }
        .tourmaster-template-payment .samui-row.samui-row-paynow .samui-row-label {
            font-size: 13px;
        }
        .tourmaster-template-payment .samui-row.samui-row-paynow .samui-row-value {
            font-size: 15px;
        }
        .tourmaster-template-payment .samui-row.samui-row-remaining .samui-row-value {
            font-size: 13px;
        }
        .tourmaster-template-payment .samui-no-payment-banner {
            margin: 0 8px 10px;
            padding: 14px 12px;
        }
    }
    @media screen and (max-width: 360px) {
        .tourmaster-template-payment .samui-payment-toggle {
            flex-direction: column;
            gap: 4px;
        }
        .tourmaster-template-payment .samui-payment-toggle .samui-toggle-btn {
            width: 100%;
        }
        .tourmaster-template-payment .samui-summary-card .samui-row {
            flex-wrap: wrap;
            gap: 2px;
        }
        .tourmaster-template-payment .samui-row.samui-row-paynow .samui-row-value {
            font-size: 14px;
        }
    }
    }
