/* ============================================================
   BOOKING V2 — Override Layer for Legacy AJAX-Injected HTML
   All rules scoped under .booking-v2 to avoid global leaks.
   Remaps old Bootstrap 3 / custom NYC classes to V2 design.

   Applied to: PaymentNew.cshtml, ConfirmationNew.cshtml,
               ReturnIndexNew.cshtml, ReturnPaymentNew.cshtml,
               ReturnConfirmationNew.cshtml
   ============================================================ */

/* ============================================================
   PROGRESS BAR — clickable completed steps
   ============================================================ */
.bk-progress-step.is-completed:hover .bk-step-number {
    background: var(--rd-gold);
    color: #fff;
    transition: all 0.2s ease;
}
.bk-progress-step.is-completed:hover .bk-step-label {
    color: var(--rd-gold);
}

/* ============================================================
   GLOBAL FONT & RESET
   ============================================================ */
.booking-v2 *:not([class*="fa-"]) {
    font-family: var(--rd-font);
}
.booking-v2 {
    line-height: 1.6;
    color: var(--rd-text);
}

/* Hide old progress bar, breadcrumbs — we have our own */
.booking-v2 #progress_bar,
.booking-v2 #nyc-crouton,
.booking-v2 .progress-wizard {
    display: none !important;
}

/* Hide old scroll-down arrow */
.booking-v2 #spnbottom,
.booking-v2 #spnbottomForReturn {
    display: none !important;
}

/* ============================================================
   MAIN WRAPPER — vehicles-part
   ============================================================ */
.booking-v2 .vehicles-part {
    padding: 0 24px;
    max-width: 1140px;
    margin: 0 auto;
}

/* ============================================================
   SECTION 1: TWO-COLUMN FLEXBOX LAYOUT
   Convert BS3 float layout to flexbox with sticky sidebar.
   ============================================================ */
.booking-v2 .vehicles-part > .row {
    display: flex !important;
    gap: 24px !important;
    padding: 16px 0 !important;
    margin: 0 !important;
    align-items: flex-start;
}
/* Right sidebar column */
.booking-v2 .vehicles-part > .row > .col-sm-3.pull-right {
    flex: 0 0 300px !important;
    width: 300px !important;
    float: none !important;
    position: sticky;
    top: 120px;
    padding: 0 !important;
    order: 2;
}
/* Left form column */
.booking-v2 .vehicles-part > .row > .col-sm-9.pull-left {
    flex: 1 !important;
    width: auto !important;
    float: none !important;
    padding: 0 !important;
    padding-right: 0 !important;
    min-width: 0;
    order: 1;
}

/* Clear floats */
.booking-v2 .clear {
    clear: both;
    height: 0;
    overflow: hidden;
}

/* ============================================================
   VEHICLE BOX (sidebar in payment & confirmation)
   ============================================================ */
.booking-v2 .nyc-vehicle-box {
    background: var(--rd-white);
    border-radius: var(--rd-radius);
    box-shadow: var(--rd-shadow);
    overflow: hidden;
    margin-bottom: 16px;
    border: 1px solid var(--rd-border);
}
.booking-v2 .nyc-vehicle-name {
    background: var(--rd-dark) !important;
    color: #F5F3EE !important;
    font-family: var(--rd-font) !important;
    padding: 12px 16px !important;
    border-radius: 0 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    margin: 0 !important;
    line-height: 1.4;
}
.booking-v2 .nyc-vehicle-image {
    padding: 12px !important;
    text-align: center;
}
.booking-v2 .nyc-vehicle-image img {
    max-width: 100%;
    max-height: 140px;
    height: auto;
    object-fit: contain;
}
.booking-v2 .hover_img {
    text-align: center;
    margin: 8px 0;
}
.booking-v2 .hover_img a {
    font-family: var(--rd-font);
    font-size: 12px;
    color: var(--rd-gold-hover);
}
.booking-v2 .collapsible-content {
    padding: 0;
}

/* Discount badge — override Razor inline styles (width:60px, height:40px, text-align:right, background-image) */
.booking-v2 .disc {
    background: var(--rd-gold) !important;
    background-image: none !important;
    color: #fff !important;
    font-family: var(--rd-font) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    width: auto !important;
    height: auto !important;
    padding: 4px 10px !important;
    text-align: center !important;
    border-radius: var(--rd-radius-sm) !important;
    position: absolute !important;
    right: 8px !important;
    top: 8px !important;
    z-index: 2;
    letter-spacing: 0.3px;
}

/* Accordion buttons in vehicle/fare sections */
.booking-v2 .accordian-btn {
    background: none;
    border: none;
    color: var(--rd-gold);
    font-size: 14px;
    cursor: pointer;
    float: right;
}

/* ============================================================
   FARE CONTAINERS (payment & confirmation sidebar)
   ============================================================ */
.booking-v2 .fare_container,
.booking-v2 .fare_container1,
.booking-v2 .fare_container2,
.booking-v2 .fare_container3 {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-family: var(--rd-font) !important;
    font-size: 13px;
    padding: 6px 12px !important;
    border-bottom: 1px solid var(--rd-light) !important;
    background: transparent !important;
    color: var(--rd-text) !important;
    float: none !important;
    width: 100% !important;
    clear: both;
}
.booking-v2 .fare_container3 {
    font-weight: 700;
    font-size: 14px;
    border-top: 2px solid var(--rd-dark) !important;
    border-bottom: none !important;
    padding: 10px 12px !important;
    color: var(--rd-dark) !important;
    background: var(--rd-light) !important;
    border-left: 3px solid var(--rd-gold) !important;
}
.booking-v2 .fare_container_left {
    font-family: var(--rd-font);
    color: var(--rd-text-light);
    flex: 1;
    text-align: left;
    float: none !important;
    width: auto !important;
}
.booking-v2 .fare_container_right {
    font-family: var(--rd-font);
    font-weight: 600;
    color: var(--rd-dark);
    text-align: right;
    float: none !important;
    width: auto !important;
    white-space: nowrap;
    padding-left: 12px;
}
.booking-v2 .fare_container3 .fare_container_left {
    color: var(--rd-dark);
    font-weight: 700;
}
.booking-v2 .fare_container3 .fare_container_right {
    font-weight: 700;
    font-size: 15px;
}
.booking-v2 .fare_container_left_fullWidth {
    font-family: var(--rd-font);
    font-size: 11px;
    color: var(--rd-text-light);
    width: 100%;
    padding: 6px 12px;
    font-style: italic;
    border-top: 1px solid var(--rd-border);
    margin-top: 4px;
}

/* Rate details wrapper */
.booking-v2 #rateDetailsDiv,
.booking-v2 #rateDetailsDiv1 {
    background: var(--rd-white);
    border-radius: var(--rd-radius) !important;
    box-shadow: var(--rd-shadow);
    overflow: hidden;
    margin-bottom: 16px;
    border: 1px solid var(--rd-border) !important;
}

/* ============================================================
   FORM CONTROLS — scoped to .vehicles-part (legacy HTML only)
   New V2 forms use .bv-form-control and don't need these overrides.
   ============================================================ */
.booking-v2 .vehicles-part .form-control,
.booking-v2 .vehicles-part .form_field_input,
.booking-v2 .vehicles-part .imputeField,
.booking-v2 .vehicles-part input[type="text"],
.booking-v2 .vehicles-part input[type="email"],
.booking-v2 .vehicles-part input[type="tel"],
.booking-v2 .vehicles-part input[type="number"],
.booking-v2 .vehicles-part input[type="password"],
.booking-v2 .vehicles-part select,
.booking-v2 .vehicles-part textarea {
    font-family: var(--rd-font) !important;
    font-size: 14px !important;
    border: 1px solid var(--rd-border) !important;
    border-radius: var(--rd-radius-sm) !important;
    padding: 10px 14px !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
    background: var(--rd-white) !important;
    color: var(--rd-text) !important;
    height: auto !important;
}
.booking-v2 .vehicles-part .form-control:focus,
.booking-v2 .vehicles-part .form_field_input:focus,
.booking-v2 .vehicles-part input[type="text"]:focus,
.booking-v2 .vehicles-part input[type="email"]:focus,
.booking-v2 .vehicles-part input[type="tel"]:focus,
.booking-v2 .vehicles-part input[type="number"]:focus,
.booking-v2 .vehicles-part select:focus,
.booking-v2 .vehicles-part textarea:focus {
    border-color: var(--rd-gold) !important;
    box-shadow: 0 0 0 3px rgba(184, 134, 11, 0.15) !important;
    outline: none !important;
}

/* Validation error state */
.booking-v2 .requireddetail {
    border-color: #e74c3c !important;
    box-shadow: 0 0 0 3px rgba(231, 76, 60, 0.15) !important;
}

/* Labels — scoped to .vehicles-part (legacy HTML only) */
.booking-v2 .vehicles-part label,
.booking-v2 .resControlTitle,
.booking-v2 .resControlTime {
    font-family: var(--rd-font) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--rd-text) !important;
    margin-bottom: 4px !important;
}
.booking-v2 .Unbold_Lable {
    font-weight: 400 !important;
    color: var(--rd-text-light) !important;
}
.booking-v2 .drop_lables {
    font-family: var(--rd-font) !important;
    font-size: 12px !important;
    color: var(--rd-text-light) !important;
}

/* Required field indicator */
.booking-v2 .redstar {
    color: #e74c3c !important;
    font-weight: 700;
}

/* Helper text below inputs */
.booking-v2 .about-input-detail {
    font-family: var(--rd-font);
    font-size: 11px;
    color: var(--rd-text-light);
    position: relative !important;
    margin-top: 2px;
}

/* Form group spacing */
.booking-v2 .form-group {
    margin-bottom: 16px;
}
.booking-v2 .firstpayment_formgroup {
    margin-bottom: 12px;
}
.booking-v2 .delayformgroup {
    margin-bottom: 12px;
}

/* ============================================================
   BUTTONS
   ============================================================ */
.booking-v2 .btn-primary,
.booking-v2 .last-btn-calc,
.booking-v2 .reviewbutton,
.booking-v2 .button,
.booking-v2 button[type="submit"],
.booking-v2 #btnconfirm {
    background: var(--rd-gold) !important;
    color: #fff !important;
    border: none !important;
    font-family: var(--rd-font) !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    padding: 12px 28px !important;
    border-radius: var(--rd-radius-sm) !important;
    cursor: pointer !important;
    transition: var(--rd-transition) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.booking-v2 .btn-primary:hover,
.booking-v2 .last-btn-calc:hover,
.booking-v2 .reviewbutton:hover,
.booking-v2 .button:hover,
.booking-v2 button[type="submit"]:hover,
.booking-v2 #btnconfirm:hover {
    background: var(--rd-gold-hover) !important;
    transform: translateY(-1px);
}
.booking-v2 .btn-default {
    background: var(--rd-white) !important;
    color: var(--rd-text) !important;
    border: 1px solid var(--rd-border) !important;
    font-family: var(--rd-font) !important;
    border-radius: var(--rd-radius-sm) !important;
    padding: 8px 16px !important;
}
.booking-v2 .view-res-btn {
    background: var(--rd-dark) !important;
    color: #F5F3EE !important;
    border: none !important;
    font-family: var(--rd-font) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    padding: 8px 16px !important;
    border-radius: var(--rd-radius-sm) !important;
    cursor: pointer;
    width: 100%;
    text-align: left;
}

/* ============================================================
   HEADINGS & LABELS
   ============================================================ */
.booking-v2 .vehicles-part h3,
.booking-v2 .vehicles-part h4,
.booking-v2 .vehicles-part h5 {
    font-family: var(--rd-font) !important;
    color: var(--rd-dark) !important;
}
.booking-v2 .headlabel {
    font-family: var(--rd-font) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--rd-dark) !important;
    margin-bottom: 4px;
}
.booking-v2 .headlabelto {
    font-family: var(--rd-font) !important;
    font-size: 14px !important;
    color: var(--rd-dark) !important;
    font-weight: 500;
    margin-bottom: 6px;
    line-height: 1.5;
}
.booking-v2 .headlabelto .orangehead,
.booking-v2 .headlabel .orangehead {
    color: var(--rd-text) !important;
    font-weight: 500 !important;
}
/* Override inline color:#daa520 on headlabel globally */
.booking-v2 .headlabel[style*="color: #daa520"],
.booking-v2 .headlabel[style*="color:#daa520"] {
    color: var(--rd-gold) !important;
}
.booking-v2 .roboto-400-bol-heading,
.booking-v2 .croboto-400-bol-heading {
    font-family: var(--rd-font) !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    color: var(--rd-dark) !important;
    margin-bottom: 16px;
    display: block;
}

/* ============================================================
   PANELS / SECTIONS / CONTAINERS
   ============================================================ */
.booking-v2 .panel,
.booking-v2 .form_container {
    background: var(--rd-white) !important;
    border-radius: var(--rd-radius) !important;
    box-shadow: var(--rd-shadow) !important;
    border: none !important;
    margin-bottom: 16px !important;
    overflow: hidden !important;
}
.booking-v2 .panel-heading {
    background: var(--rd-dark) !important;
    color: var(--rd-white) !important;
    font-family: var(--rd-font) !important;
    padding: 14px 20px !important;
    border: none !important;
}

/* Form detail sections */
.booking-v2 .container-fluid.firstdetails {
    background: var(--rd-white) !important;
    border-radius: var(--rd-radius) !important;
    box-shadow: var(--rd-shadow);
    padding: 20px !important;
    margin-bottom: 16px !important;
    border: none !important;
    background-image: none !important;
}

/* SECTION 4: Pickup Date/Time Banner — first .firstdetails with .margintop20 */
.booking-v2 .container-fluid.firstdetails.margintop20 {
    background: var(--rd-dark) !important;
    border-radius: var(--rd-radius) !important;
    padding: 16px 24px !important;
    margin-top: 0 !important;
}
.booking-v2 .firstdetails.margintop20 .headlabel {
    color: #F5F3EE !important;
    font-size: 14px !important;
}
.booking-v2 .firstdetails.margintop20 .headlabel .orangehead {
    color: var(--rd-white) !important;
    font-weight: 400 !important;
}
.booking-v2 .firstdetails.margintop20 .firstpayment_rowul li {
    padding: 2px 0;
}

.booking-v2 .container-fluid.rechangecontainer {
    margin-top: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
}

/* ============================================================
   SECTION 5: From/To Location Cards
   Left gold accent · compact density · premium layout
   ============================================================ */

/* --- Card container — left gold accent bar --- */
.booking-v2 .col-lg-12[style*="border: 1px solid"] {
    border: none !important;
    border-left: 3px solid var(--rd-gold) !important;
    border-radius: 0 var(--rd-radius-sm) var(--rd-radius-sm) 0 !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 0 0 1px rgba(0,0,0,0.04) !important;
    background: var(--rd-white) !important;
    padding: 14px 18px !important;
    margin-top: 10px !important;
    margin-bottom: 4px !important;
    transition: box-shadow 0.2s ease !important;
}
.booking-v2 .col-lg-12[style*="border: 1px solid"]:hover {
    box-shadow: 0 2px 8px rgba(0,0,0,0.08), 0 0 0 1px rgba(0,0,0,0.06) !important;
}

/* --- "From:" / "To:" header — tiny gold label + location name --- */
.booking-v2 .headlabelto[style*="color: #daa520"],
.booking-v2 .headlabelto[style*="color:#daa520"] {
    display: flex !important;
    align-items: baseline !important;
    gap: 6px !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px !important;
    color: var(--rd-gold-hover) !important;
    padding: 0 0 6px !important;
    margin: 0 0 10px !important;
    border-bottom: 1px solid var(--rd-border) !important;
    line-height: 1.6 !important;
}
.booking-v2 .headlabelto .orangehead {
    font-size: 13px !important;
    font-weight: 500 !important;
    color: var(--rd-dark) !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

/* --- Inputs inside cards — slim, compact --- */
.booking-v2 .col-lg-12[style*="border"] .form_field_input,
.booking-v2 .col-lg-12[style*="border"] .form-control {
    font-family: var(--rd-font) !important;
    font-size: 13px !important;
    border: 1px solid var(--rd-border) !important;
    border-radius: var(--rd-radius-sm) !important;
    padding: 7px 10px !important;
    background: var(--rd-white) !important;
    color: var(--rd-dark) !important;
    height: auto !important;
    width: 100% !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.booking-v2 .col-lg-12[style*="border"] .form_field_input:focus,
.booking-v2 .col-lg-12[style*="border"] .form-control:focus {
    border-color: var(--rd-gold) !important;
    box-shadow: 0 0 0 2px rgba(169,119,8,0.12) !important;
    outline: none !important;
}

/* --- Labels inside cards — tiny uppercase --- */
.booking-v2 .col-lg-12[style*="border"] label {
    font-family: var(--rd-font) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    color: var(--rd-text-light) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.3px !important;
    margin-bottom: 3px !important;
    display: block !important;
}
.booking-v2 .col-lg-12[style*="border"] label .redstar {
    color: #e74c3c !important;
}
/* "Type of flight" heading — slightly larger than field labels */
.booking-v2 .col-lg-12[style*="border"] .headlabel.typeofflight {
    font-size: 12px !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    margin: 8px 0 4px !important;
}

/* --- Form group spacing inside cards --- */
.booking-v2 .col-lg-12[style*="border"] .form-group,
.booking-v2 .col-lg-12[style*="border"] .firstpayment_formgroup {
    margin-bottom: 2px !important;
}

/* --- Non-card form defaults (contact, payment sections) --- */
.booking-v2 .firstpayment_formgroup label {
    font-family: var(--rd-font) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: var(--rd-text-light) !important;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin-bottom: 6px !important;
}
.booking-v2 .firstpayment_formgroup .redstar {
    color: #e74c3c !important;
}
.booking-v2 .firstpayment_formgroup {
    margin-bottom: 12px !important;
}

/* --- Row layout — force single-line flex grid --- */
.booking-v2 .col-lg-12[style*="border"] .row {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    margin: 0 0 6px !important;
}

/* --- Column sizing — proportional, never wrap --- */
.booking-v2 .col-lg-12[style*="border"] .row > [class*="col-"] {
    float: none !important;
    padding: 0 !important;
    width: auto !important;
    min-width: 0;
    flex: 1 1 0;
    max-width: none !important;
}
/* Override any inline max-width on To-card columns */
.booking-v2 .col-lg-12[style*="border"] .row > [class*="col-"][style*="max-width"] {
    max-width: none !important;
}
/* Airline Name (col-sm-5) — 2x wider proportion */
.booking-v2 .col-lg-12[style*="border"] .row > .col-sm-5 {
    flex: 2 1 0 !important;
}
/* Origin Airport — half-width when alone in its row */
.booking-v2 .col-lg-12[style*="border"] .row > .col-lg-5:only-child {
    flex: 0 1 50% !important;
    min-width: 180px;
}
/* Override maxwidth utility classes inside cards */
.booking-v2 .col-lg-12[style*="border"] .maxwidth401,
.booking-v2 .col-lg-12[style*="border"] .maxwidth320,
.booking-v2 .col-lg-12[style*="border"] .maxwidth150 {
    max-width: none !important;
}
/* Headlabel inside location cards */
.booking-v2 .headlabel {
    font-family: var(--rd-font) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--rd-dark) !important;
}

/* The passengers/suitcases container needs card spacing */
.booking-v2 .container-fluid[style*="padding:0"] {
    margin-top: 16px !important;
}
/* Rate details section card — match vehicle box (curved corners, overflow hidden for header) */
.booking-v2 #rateDetailsDiv[style*="border: 1px solid"] {
    border: 1px solid var(--rd-border) !important;
    border-radius: var(--rd-radius) !important;
    box-shadow: var(--rd-shadow) !important;
    background: var(--rd-white) !important;
    overflow: hidden !important;
    padding: 0 !important;
}

/* Payment details lists */
.booking-v2 .firstpayment_rowul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.booking-v2 .firstpayment_rowul li {
    padding: 4px 0;
    font-family: var(--rd-font);
    font-size: 14px;
}
.booking-v2 .lastpayment {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}
.booking-v2 .lastpayment li {
    font-family: var(--rd-font);
    font-size: 14px;
}

/* Trip summary (mobile) */
.booking-v2 .trip_summary {
    padding: 12px;
}
.booking-v2 .ultrip {
    list-style: none;
    padding: 0;
    margin: 0;
}
.booking-v2 .ultrip li {
    font-family: var(--rd-font);
    font-size: 13px;
    padding: 4px 0;
    color: var(--rd-text);
}
.booking-v2 .ultrip li span {
    font-weight: 600;
    color: var(--rd-dark);
}
.booking-v2 .ultrip li a {
    color: var(--rd-text);
    text-decoration: none;
}

/* ============================================================
   TABLES (confirmation summary)
   ============================================================ */
.booking-v2 table {
    font-family: var(--rd-font) !important;
    width: 100% !important;
    border-collapse: collapse !important;
}
.booking-v2 .res-table,
.booking-v2 .table-bordered {
    border: 1px solid var(--rd-border) !important;
    border-radius: var(--rd-radius) !important;
    overflow: hidden;
}
.booking-v2 .res-table thead tr,
.booking-v2 table thead tr {
    background: var(--rd-dark) !important;
    color: #F5F3EE !important;
}
.booking-v2 .res-table thead th,
.booking-v2 table thead th {
    background: var(--rd-dark) !important;
    color: #F5F3EE !important;
    font-family: var(--rd-font) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    padding: 10px 12px !important;
    border-color: rgba(255,255,255,0.1) !important;
    white-space: nowrap;
}
.booking-v2 table td,
.booking-v2 table th {
    padding: 10px 12px !important;
    font-size: 13px !important;
    border-bottom: 1px solid var(--rd-light) !important;
    border-color: var(--rd-light) !important;
    vertical-align: top;
}
.booking-v2 .togglingrow td {
    font-weight: 500;
    color: var(--rd-dark);
}
.booking-v2 .view-reservation-table {
    width: 100%;
}
.booking-v2 .view-reservation-table td {
    padding: 6px 8px !important;
    font-size: 13px !important;
}
.booking-v2 .view-reservation-table td:first-child {
    font-weight: 600;
    color: var(--rd-text-light);
    white-space: nowrap;
    width: 140px;
}

/* Eye icon toggle */
.booking-v2 .fa-eye {
    color: var(--rd-gold) !important;
    cursor: pointer;
    transition: color 0.2s ease;
}
.booking-v2 .fa-eye:hover {
    color: var(--rd-gold-hover) !important;
}

/* ============================================================
   SUMMARY BOXES (confirmation page)
   ============================================================ */
.booking-v2 .left-summary-box {
    padding: 0 !important;
}
.booking-v2 .inner-left-summary {
    padding: 0 !important;
    border: none !important;
}
.booking-v2 .summary-date-time-box {
    background: var(--rd-light);
    border-radius: var(--rd-radius-sm);
    padding: 12px 16px;
    margin-bottom: 12px;
}
.booking-v2 .summary-pick-time {
    font-family: var(--rd-font);
    font-size: 14px;
}
.booking-v2 .large-date {
    font-family: var(--rd-font);
    font-size: 32px;
    font-weight: 700;
    color: var(--rd-dark);
    line-height: 1;
}
.booking-v2 .date-month,
.booking-v2 .date-month-year {
    font-family: var(--rd-font);
    font-size: 13px;
    color: var(--rd-text-light);
    line-height: 1.5;
}
.booking-v2 .pick-drop-title {
    font-family: var(--rd-font);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rd-text-light);
    margin-bottom: 4px;
}

/* ============================================================
   STOP DETAILS
   ============================================================ */
.booking-v2 .clsStopDetail {
    margin-bottom: 16px;
}
.booking-v2 .stopAirportDetail {
    background: var(--rd-light);
    border-radius: var(--rd-radius-sm);
    padding: 12px;
    margin-bottom: 8px;
}

/* ============================================================
   RADIO BUTTONS & CHECKBOXES
   ============================================================ */
.booking-v2 .radio,
.booking-v2 .checkbox {
    font-family: var(--rd-font);
    font-size: 14px;
    color: var(--rd-text);
}
.booking-v2 .radio-inline,
.booking-v2 .checkbox-inline {
    font-family: var(--rd-font) !important;
    font-size: 14px !important;
    color: var(--rd-text) !important;
    padding-left: 24px;
}
.booking-v2 .radio2outside {
    font-family: var(--rd-font);
}
.booking-v2 input[type="checkbox"],
.booking-v2 input[type="radio"] {
    accent-color: var(--rd-gold);
}

/* ============================================================
   MODALS (Terms, VIP Greeter, Additional Charges)
   ============================================================ */
.booking-v2 .modal-content {
    border-radius: var(--rd-radius) !important;
    border: none !important;
    box-shadow: 0 16px 48px rgba(0,0,0,0.2) !important;
    overflow: hidden;
}
.booking-v2 .modal-header {
    background: var(--rd-dark) !important;
    color: var(--rd-white) !important;
    border: none !important;
    padding: 16px 20px !important;
}
.booking-v2 .modal-header .close {
    color: var(--rd-white) !important;
    opacity: 0.7;
    text-shadow: none !important;
}
.booking-v2 .modal-header .close:hover {
    opacity: 1;
}
.booking-v2 .modal-title {
    font-family: var(--rd-font) !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    color: var(--rd-white) !important;
}
.booking-v2 .modal-body {
    font-family: var(--rd-font) !important;
    font-size: 14px !important;
    color: var(--rd-text) !important;
    padding: 20px !important;
    line-height: 1.7;
    max-height: 60vh;
    overflow-y: auto;
}
.booking-v2 .modal-footer {
    border-top: 1px solid var(--rd-light) !important;
    padding: 12px 20px !important;
    background: var(--rd-light);
}
.booking-v2 .extended-modal .modal-content {
    border-radius: var(--rd-radius) !important;
}

/* Terms/conditions modal specific */
.booking-v2 #divterms {
    width: auto !important;
    margin: auto !important;
}

/* ============================================================
   NOTES / INSTRUCTIONS / MESSAGES
   ============================================================ */
.booking-v2 .notesdown,
.booking-v2 .notesdownNoMarginBottom {
    font-family: var(--rd-font);
    font-size: 12px;
    color: var(--rd-text-light);
    line-height: 1.6;
    margin-bottom: 8px;
    background: var(--rd-light);
    padding: 10px 14px;
    border-radius: var(--rd-radius-sm);
}

/* Read more / expandable text */
.booking-v2 .moreellipses {
    color: var(--rd-text-light);
}
.booking-v2 .morelink {
    font-family: var(--rd-font);
    font-size: 13px;
    color: var(--rd-gold-hover);
    cursor: pointer;
    display: inline-block;
    margin-top: 4px;
}
.booking-v2 .morelink:hover {
    text-decoration: underline;
}
.booking-v2 .morecontent {
    display: none;
}

/* ============================================================
   MEETING POINT / FLIGHT INFO
   ============================================================ */
.booking-v2 #hideWaitingAndmeeting {
    background: var(--rd-white);
    border-radius: var(--rd-radius);
    padding: 20px 24px;
    margin-top: 16px;
    margin-bottom: 16px;
    border: 1px solid var(--rd-border);
}
/* Row of flight info fields — flexbox instead of float */
.booking-v2 #hideWaitingAndmeeting > .row {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 16px !important;
    margin: 0 !important;
}
/* Each field column in the flight info row */
.booking-v2 #hideWaitingAndmeeting .col-lg-3,
.booking-v2 #hideWaitingAndmeeting .floatleftauto,
.booking-v2 #hideWaitingAndmeeting .delayformgroup {
    float: none !important;
    width: auto !important;
    min-width: 140px;
    flex: 1 1 140px;
    padding: 0 !important;
}
/* Labels inside flight info */
.booking-v2 #hideWaitingAndmeeting label {
    font-family: var(--rd-font) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: var(--rd-text-light) !important;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin-bottom: 6px !important;
    display: block !important;
}
/* Red star */
.booking-v2 #hideWaitingAndmeeting .redstar {
    color: #e74c3c !important;
}
/* Tooltip icon in labels */
.booking-v2 #hideWaitingAndmeeting label img[src*="ToolTip"] {
    width: 14px;
    height: 14px;
    opacity: 0.5;
    vertical-align: middle;
    margin-left: 4px;
    cursor: pointer;
    transition: opacity 0.2s ease;
}
.booking-v2 #hideWaitingAndmeeting label img[src*="ToolTip"]:hover {
    opacity: 1;
}
/* Time input and delay select */
.booking-v2 #hideWaitingAndmeeting .resControlTime,
.booking-v2 #hideWaitingAndmeeting select,
.booking-v2 #hideWaitingAndmeeting .form-control {
    font-family: var(--rd-font) !important;
    font-size: 14px !important;
    border: 1px solid var(--rd-border) !important;
    border-radius: var(--rd-radius-sm) !important;
    padding: 8px 12px !important;
    background: var(--rd-white) !important;
    color: var(--rd-dark) !important;
    width: 100% !important;
    height: auto !important;
}
.booking-v2 #hideWaitingAndmeeting select:focus,
.booking-v2 #hideWaitingAndmeeting .form-control:focus {
    border-color: var(--rd-gold) !important;
    box-shadow: 0 0 0 2px rgba(169,119,8,0.15) !important;
    outline: none !important;
}
/* Info spans (driver on location, free waiting, pickup time) */
.booking-v2 #hideWaitingAndmeeting span.col-sm-2 {
    font-family: var(--rd-font) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--rd-dark) !important;
    padding: 8px 0 !important;
    width: auto !important;
}

/* Type of flight radios — pill-style */
.booking-v2 .typeofflight {
    font-family: var(--rd-font) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--rd-dark) !important;
    margin: 10px 0 4px !important;
}
.booking-v2 .typeofflight + .radio,
.booking-v2 .typeofflight ~ .radio {
    display: inline-block !important;
    margin: 0 6px 4px 0 !important;
    padding: 0 !important;
}
.booking-v2 .typeofflight ~ .radio label {
    font-family: var(--rd-font) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: var(--rd-text) !important;
    padding: 8px 16px !important;
    border: 1px solid var(--rd-border) !important;
    border-radius: 20px !important;
    cursor: pointer;
    transition: all 0.2s ease;
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
}
.booking-v2 .typeofflight ~ .radio label:hover {
    border-color: var(--rd-gold) !important;
    background: rgba(169,119,8,0.05);
}
.booking-v2 .typeofflight ~ .radio input[type="radio"]:checked + .headlabel,
.booking-v2 .typeofflight ~ .radio label:has(input:checked) {
    background: var(--rd-gold) !important;
    border-color: var(--rd-gold) !important;
    color: var(--rd-dark) !important;
    font-weight: 600 !important;
}
/* Tooltip image in radio labels */
.booking-v2 .typeofflight ~ .radio label img[src*="ToolTip"] {
    width: 14px;
    height: 14px;
    opacity: 0.5;
    vertical-align: middle;
}

/* Airport waiting time heading */
.booking-v2 .waitingtime,
.booking-v2 #hideWaitingAndmeeting .headlabel {
    font-family: var(--rd-font) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--rd-dark) !important;
    margin: 16px 0 8px !important;
}
/* Airport waiting time paragraph */
.booking-v2 #hideWaitingAndmeeting p,
.booking-v2 #spdelaypickval {
    font-family: var(--rd-font) !important;
    font-size: 13px !important;
    color: var(--rd-text-light) !important;
    line-height: 1.7 !important;
    background: var(--rd-light);
    border-radius: var(--rd-radius-sm);
    padding: 12px 16px;
    margin-bottom: 12px;
}

/* Meeting point section */
.booking-v2 #DivMeetingPoint {
    background: var(--rd-white);
    border-radius: var(--rd-radius);
    padding: 16px 20px;
    margin-top: 12px;
    margin-bottom: 12px;
    border: 1px solid var(--rd-border);
}
.booking-v2 #MeetingPointins {
    font-size: 13px;
    color: var(--rd-text-light);
    line-height: 1.7;
}
/* Meeting instructions text blocks */
.booking-v2 #divInside,
.booking-v2 #divOutside,
.booking-v2 #divmeetgreet {
    background: var(--rd-light);
    border-radius: var(--rd-radius-sm);
    padding: 12px 16px;
    margin-top: 8px;
    font-size: 13px;
    line-height: 1.7;
}

/* Tooltip overrides */
.booking-v2 .tooltip-inner {
    font-family: var(--rd-font) !important;
    font-size: 12px !important;
    background: var(--rd-dark) !important;
    border-radius: var(--rd-radius-sm) !important;
    padding: 8px 12px !important;
    max-width: 300px !important;
}
.booking-v2 .tooltip.top .tooltip-arrow {
    border-top-color: var(--rd-dark) !important;
}

/* ============================================================
   LOADING OVERLAYS
   ============================================================ */
.booking-v2 #ajaxLoader,
.booking-v2 #ajaxLoaderThankyou {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(255,255,255,0.85);
    display: flex;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(2px);
}

/* ============================================================
   UTILITY CLASSES
   ============================================================ */
.booking-v2 .hide-div {
    display: none !important;
}
.booking-v2 .hide-divfloat {
    display: none !important;
}
.booking-v2 .no-display {
    display: none !important;
}
.booking-v2 .marginbottom0 {
    margin-bottom: 0 !important;
}
.booking-v2 .marginbottom25 {
    margin-bottom: 25px !important;
}
.booking-v2 .margintop15 {
    margin-top: 15px !important;
}
.booking-v2 .margintop20 {
    margin-top: 20px !important;
}
.booking-v2 .nopaddingleft {
    padding-left: 0 !important;
}
.booking-v2 .nopaddingright {
    padding-right: 0 !important;
}
.booking-v2 .width100 {
    width: 100% !important;
}

/* ============================================================
   REVIEW PAGE — Confirmation-specific
   ============================================================ */
/* "Please review" heading */
.booking-v2 .roboto-400-bol-heading[style*="color:red"],
.booking-v2 .roboto-400-bol-heading[style*="color: red"] {
    color: #e74c3c !important;
    font-size: 16px !important;
    padding: 16px 0 8px !important;
}

/* Order button area */
.booking-v2 #orderButtonDiv {
    background: var(--rd-white);
    border-radius: var(--rd-radius);
    box-shadow: var(--rd-shadow);
    padding: 20px 24px;
    margin-top: 16px;
    text-align: right;
}
.booking-v2 #orderButtonDiv .checkbox {
    text-align: left;
    margin-bottom: 12px;
}
.booking-v2 #orderButtonDiv label {
    font-size: 14px !important;
    font-weight: 500 !important;
    color: var(--rd-text) !important;
}
.booking-v2 #orderButtonDiv a {
    color: var(--rd-gold-hover);
    text-decoration: underline;
}

/* reCAPTCHA container */
.booking-v2 #captcha_container {
    margin: 12px 0;
}

/* ============================================================
   VEHICLE GRID — Return Vehicle Selection (ReturnIndexNew)
   ============================================================ */
.booking-v2 .rates_outer {
    padding: 0;
}
.booking-v2 .rates1 {
    padding: 0;
}
.booking-v2 .paddingbox {
    padding: 12px;
}
.booking-v2 .nyc-vehicle-rate-and-select {
    font-family: var(--rd-font);
    font-size: 20px;
    font-weight: 700;
    color: var(--rd-dark);
    text-align: center;
    margin: 8px 0 4px;
}
.booking-v2 .nyc-vehicle-seat-and-discount {
    text-align: center;
    font-family: var(--rd-font);
    font-size: 12px;
    color: var(--rd-text-light);
    margin-bottom: 8px;
}
.booking-v2 .discount-text,
.booking-v2 .discount-text1 {
    font-family: var(--rd-font);
    font-size: 11px;
    color: var(--rd-gold-hover);
    display: block;
    text-align: center;
}
.booking-v2 .vehicle-box-btns {
    text-align: center;
    padding: 0 12px 12px;
}
.booking-v2 .vehicle-box-btns .btn,
.booking-v2 .nyc-vehicle-select-btn {
    background: var(--rd-gold) !important;
    color: #fff !important;
    font-family: var(--rd-font) !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    padding: 10px 20px !important;
    border-radius: var(--rd-radius-sm) !important;
    border: none !important;
    cursor: pointer;
    transition: var(--rd-transition);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    width: 100%;
}
.booking-v2 .vehicle-box-btns .btn:hover,
.booking-v2 .nyc-vehicle-select-btn:hover {
    background: var(--rd-gold-hover) !important;
    transform: translateY(-1px);
}
.booking-v2 .sold-out-disabled {
    opacity: 0.5;
    pointer-events: none;
    background: var(--rd-border) !important;
    color: var(--rd-text-light) !important;
}
.booking-v2 .dislcaimer {
    font-family: var(--rd-font);
    font-size: 13px;
    color: #e74c3c;
    font-weight: 600;
    margin-bottom: 12px;
}

/* ============================================================
   VEHICLE DETAILS MODAL (ReturnIndexNew)
   ============================================================ */
.booking-v2 .modal-dialog-vehicle-details {
    max-width: 700px;
}
.booking-v2 .modal-content-vehicle-details {
    border-radius: var(--rd-radius) !important;
    border: none !important;
    box-shadow: 0 16px 48px rgba(0,0,0,0.2) !important;
    overflow: hidden;
}
.booking-v2 .modal-body-vehicle-details {
    padding: 20px !important;
    font-family: var(--rd-font);
}
.booking-v2 .modal-footer-vehicle-details {
    border-top: 1px solid var(--rd-light) !important;
    padding: 12px 20px !important;
    background: var(--rd-light);
}
.booking-v2 .vehicle-fare-box {
    padding: 8px;
}

/* ============================================================
   AMENITIES (ReturnIndexNew vehicle details modal)
   ============================================================ */
.booking-v2 .amenities-box {
    padding: 8px;
}
.booking-v2 .amenity-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.booking-v2 .nycc-amenity_block,
.booking-v2 .nyc-amenity-caption {
    font-family: var(--rd-font);
    font-size: 12px;
    color: var(--rd-text);
}
.booking-v2 .nyc-amenity-caption {
    font-weight: 600;
    margin-bottom: 6px;
}
.booking-v2 .for-tooltip-setting {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.booking-v2 .feature_img {
    max-width: 28px;
    max-height: 28px;
}
.booking-v2 .featureshead {
    font-family: var(--rd-font);
    font-size: 14px;
    font-weight: 600;
    color: var(--rd-dark);
    margin-bottom: 8px;
}
.booking-v2 .tooltiphide {
    cursor: pointer;
    max-width: 16px;
}
.booking-v2 .uncheck {
    opacity: 0.4;
}
.booking-v2 .mainviewresponse {
    padding: 0;
}
.booking-v2 .rates_div2 {
    padding: 12px;
    font-family: var(--rd-font);
    font-size: 12px;
    color: var(--rd-text-light);
}
.booking-v2 .innerpage-ratecalculator {
    font-family: var(--rd-font);
}

/* Bootstrap well overrides */
.booking-v2 .well,
.booking-v2 .well-sm {
    background: var(--rd-white) !important;
    border: 1px solid var(--rd-border) !important;
    border-radius: var(--rd-radius-sm) !important;
    box-shadow: none !important;
    padding: 12px !important;
    margin-bottom: 12px;
}

/* ============================================================
   SUMMARY BOXES — Additional (ReturnConfirmationNew)
   ============================================================ */
.booking-v2 .right-summary-box {
    padding: 0 !important;
}
.booking-v2 .summary-date-wrapper {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}
.booking-v2 .for-one-way,
.booking-v2 .for-round-way {
    margin-bottom: 16px;
}
.booking-v2 .mobile-view-border {
    border: 1px solid var(--rd-border);
    border-radius: var(--rd-radius-sm);
    margin-bottom: 12px;
}
.booking-v2 .mobile-view-payment-box {
    background: var(--rd-light);
    border-radius: var(--rd-radius-sm);
    padding: 12px;
    margin-bottom: 12px;
}

/* ============================================================
   PAYMENT FORM — Additional utilities
   ============================================================ */
.booking-v2 .firstpayment_row {
    margin-bottom: 8px;
}
.booking-v2 .rechangerow {
    margin-bottom: 12px;
}
.booking-v2 .default-card {
    max-height: 28px;
    margin-right: 8px;
}
.booking-v2 .chkCard {
    margin-right: 6px;
    accent-color: var(--rd-gold);
}
.booking-v2 .heading-radio {
    font-family: var(--rd-font);
    font-size: 13px;
    font-weight: 600;
    color: var(--rd-dark);
    margin-bottom: 6px;
}
.booking-v2 .typeofflight {
    font-family: var(--rd-font);
    font-size: 13px;
}
.booking-v2 .padding_special {
    padding: 8px 0;
}
.booking-v2 .float-left {
    float: left;
}
.booking-v2 .forpaddingright {
    padding-right: 15px;
}
.booking-v2 .responsive_ipad_pad {
    padding: 0 15px;
}

/* Max-width utilities */
.booking-v2 .maxwidth401 {
    max-width: 401px !important;
}
.booking-v2 .maxwidth320 {
    max-width: 320px !important;
}
.booking-v2 .maxwidth150 {
    max-width: 150px !important;
}

/* Margin left utilities */
.booking-v2 .marginleft1 {
    margin-left: 1px !important;
}
.booking-v2 .marginleft5 {
    margin-left: 5px !important;
}

/* Scroll-to-bottom arrow (hide — we don't use it) */
.booking-v2 .arrrow-to-bottom {
    display: none !important;
}

/* ============================================================
   PAYMENT FORM SECTION
   ============================================================ */
.booking-v2 #Paymentdiv {
    background: var(--rd-white);
    border-radius: var(--rd-radius);
    padding: 20px;
    margin-bottom: 16px;
}
.booking-v2 #divdefaultCard {
    background: var(--rd-light);
    border-radius: var(--rd-radius-sm);
    padding: 12px 16px;
    margin-bottom: 12px;
}
.booking-v2 #Maskpaymentdiv {
    margin-bottom: 16px;
}

/* Card type image */
.booking-v2 #imgSelectedCard {
    max-height: 24px;
    margin-left: 8px;
}

/* ============================================================
   INPUT GROUP (time pickers, etc.)
   ============================================================ */
.booking-v2 .input-group {
    display: flex;
    align-items: stretch;
}
.booking-v2 .input-group .form-control {
    border-radius: var(--rd-radius-sm) 0 0 var(--rd-radius-sm) !important;
}
.booking-v2 .input-group-addon {
    background: var(--rd-light) !important;
    border: 1px solid var(--rd-border) !important;
    border-radius: 0 var(--rd-radius-sm) var(--rd-radius-sm) 0 !important;
    padding: 10px 14px;
    font-family: var(--rd-font);
    font-size: 14px;
    color: var(--rd-text-light);
}

/* ============================================================
   TOASTR OVERRIDES (notification styling)
   ============================================================ */
.toast-info {
    background-color: var(--rd-dark) !important;
}
.toast-error {
    background-color: #e74c3c !important;
}
.toast-success {
    background-color: #27ae60 !important;
}

/* ============================================================
   SECTION 6: FLIGHT INFO (Airport Bookings)
   ============================================================ */
.booking-v2 #hideWaitingAndmeeting {
    background: var(--rd-light) !important;
    border-radius: var(--rd-radius-sm) !important;
    padding: 16px !important;
    margin-top: 12px !important;
    margin-bottom: 12px !important;
    border: 1px solid var(--rd-border) !important;
}
/* Flight type label */
.booking-v2 .typeofflight {
    font-family: var(--rd-font) !important;
    font-size: 13px !important;
    font-weight: 500;
    color: var(--rd-text);
    margin-bottom: 4px;
}
.booking-v2 .heading-radio {
    font-family: var(--rd-font) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--rd-dark) !important;
    margin-bottom: 8px !important;
}
/* Waiting time info box */
.booking-v2 #spFreeWaitingTime,
.booking-v2 #spdriverOnLocationTime,
.booking-v2 #spdelaypickval2 {
    display: inline-block;
    background: rgba(184, 134, 11, 0.1);
    padding: 3px 8px;
    border-radius: var(--rd-radius-sm);
    font-size: 12px;
    color: var(--rd-dark);
    font-weight: 500;
}
/* Meeting point section */
.booking-v2 #DivMeetingPoint {
    background: var(--rd-light) !important;
    border-radius: var(--rd-radius-sm) !important;
    padding: 14px 16px !important;
    margin-top: 8px !important;
    border: 1px solid var(--rd-border) !important;
}
.booking-v2 #MeetingPointins {
    font-size: 12px !important;
    color: var(--rd-text-light) !important;
    line-height: 1.6 !important;
    margin-bottom: 8px;
}
/* Tooltip images */
.booking-v2 .tooltiphide {
    cursor: pointer;
    max-width: 16px;
    opacity: 0.6;
    transition: opacity 0.2s ease;
}
.booking-v2 .tooltiphide:hover {
    opacity: 1;
}
/* Float left auto for flight inputs */
.booking-v2 .floatleftauto {
    display: block !important;
    width: 100% !important;
    padding: 4px 0 !important;
}

/* ============================================================
   SECTION 7: PASSENGERS & LUGGAGE
   ============================================================ */
.booking-v2 .vehicles-part .col-lg-12[style*="border: 1px solid"] select {
    max-width: 160px;
}
.booking-v2 #txtInstruction {
    min-height: 80px;
    resize: vertical;
}

/* ============================================================
   SECTION 8: CONTACT / BOOKING PERSON
   ============================================================ */
/* "Are you booking for someone else?" row */
.booking-v2 .form-group.marginbottom0 > .headlabel.drop_lables.radio-inline {
    display: block !important;
    margin-bottom: 6px;
    font-weight: 500 !important;
    color: var(--rd-text) !important;
}
/* Broker/passenger fields section */
.booking-v2 #divbroker {
    border-top: 2px solid var(--rd-gold) !important;
    padding-top: 16px !important;
    margin-top: 12px !important;
    display: block !important;
}
.booking-v2 #divbroker.hide-div {
    display: none !important;
}
/* Prefix dropdown — match adjacent name input */
.booking-v2 #textB_Prefix,
.booking-v2 #textP_Prefix {
    width: 72px !important;
    margin-right: 0 !important;
    border-right: none !important;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    padding: 10px 8px !important;
}

/* ============================================================
   SECTION 9: PAYMENT / CREDIT CARD
   ============================================================ */
.booking-v2 #divmain {
    background: var(--rd-white) !important;
    border-radius: var(--rd-radius) !important;
    box-shadow: var(--rd-shadow) !important;
    padding: 20px !important;
    margin-top: 16px !important;
    border-top: 3px solid var(--rd-dark) !important;
}
/* Payment heading with lock icon */
.booking-v2 #divmain > .headlabelto[style*="font-size: 18px"] {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: var(--rd-dark) !important;
    margin-bottom: 16px !important;
    padding-bottom: 12px !important;
    border-bottom: 1px solid var(--rd-border) !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}
.booking-v2 #divmain > .headlabelto[style*="font-size: 18px"]::before {
    content: "\f023";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 14px;
    color: var(--rd-gold);
}
/* Billing address separator */
.booking-v2 #Paymentdiv > .col-lg-12:last-child {
    border-top: 1px solid var(--rd-light);
    padding-top: 16px !important;
    margin-top: 8px;
}
/* Saved card section */
.booking-v2 #divdefaultCard {
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--rd-light) !important;
    border-radius: var(--rd-radius-sm) !important;
    padding: 12px 16px !important;
    margin-bottom: 16px !important;
    border: 1px solid var(--rd-border) !important;
}
/* Card type selector icon */
.booking-v2 #imgSelectedCard {
    max-height: 28px !important;
    margin-left: 8px !important;
}

/* ============================================================
   SECTION 10: REVIEW ORDER BUTTON
   ============================================================ */
.booking-v2 .reviewbutton {
    width: 100% !important;
    float: none !important;
    padding: 16px 28px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    border-radius: var(--rd-radius-sm) !important;
    box-shadow: 0 4px 12px rgba(184, 134, 11, 0.2) !important;
    margin-top: 20px !important;
    position: relative;
    text-align: center !important;
    letter-spacing: 1px !important;
}
.booking-v2 .reviewbutton::after {
    content: "\f054";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 12px;
    margin-left: 8px;
}
.booking-v2 .reviewbutton:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(184, 134, 11, 0.25) !important;
}

/* ============================================================
   CONTINUE TO PAYMENT BUTTON (Step 3 → Step 4 transition)
   ============================================================ */
.booking-v2 .bk-continue-btn {
    width: 100% !important;
    float: none !important;
    padding: 16px 28px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    font-family: var(--rd-font) !important;
    background: var(--rd-gold) !important;
    color: #fff !important;
    border: none !important;
    border-radius: var(--rd-radius-sm) !important;
    box-shadow: 0 4px 12px rgba(184, 134, 11, 0.2) !important;
    margin-top: 24px !important;
    margin-bottom: 8px !important;
    cursor: pointer !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    text-align: center !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 10px;
    transition: var(--rd-transition);
}
.booking-v2 .bk-continue-btn:hover {
    background: var(--rd-gold-hover) !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(184, 134, 11, 0.25) !important;
}
.booking-v2 .bk-continue-btn i {
    font-size: 14px;
}

/* ============================================================
   SECTION 11: CUSTOM RADIO & CHECKBOX
   ============================================================ */
.booking-v2 input[type="radio"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: 20px;
    height: 20px;
    border: 2px solid var(--rd-border);
    border-radius: 50%;
    background: var(--rd-white);
    cursor: pointer;
    transition: all 0.2s ease;
    vertical-align: middle;
    position: relative;
    margin: 0 6px 0 0;
    flex-shrink: 0;
}
.booking-v2 input[type="radio"]:checked {
    border-color: var(--rd-gold);
    background: var(--rd-gold);
    box-shadow: inset 0 0 0 3px var(--rd-white);
}
.booking-v2 input[type="radio"]:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(184, 134, 11, 0.15);
}
.booking-v2 input[type="radio"]:checked:focus {
    box-shadow: inset 0 0 0 3px var(--rd-white), 0 0 0 3px rgba(184, 134, 11, 0.15);
}
.booking-v2 input[type="checkbox"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: 20px;
    height: 20px;
    border: 2px solid var(--rd-border);
    border-radius: 4px;
    background: var(--rd-white);
    cursor: pointer;
    transition: all 0.2s ease;
    vertical-align: middle;
    position: relative;
    margin: 0 6px 0 0;
    flex-shrink: 0;
}
.booking-v2 input[type="checkbox"]:checked {
    border-color: var(--rd-gold);
    background: var(--rd-gold);
}
.booking-v2 input[type="checkbox"]:checked::after {
    content: "\f00c";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 11px;
    color: var(--rd-dark);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.booking-v2 input[type="checkbox"]:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(184, 134, 11, 0.15);
}
/* Radio inline layout fix */
.booking-v2 .radio-inline {
    display: inline-flex !important;
    align-items: center !important;
    margin-right: 16px;
}
.booking-v2 .radio-inline input[type="radio"] {
    margin-top: 0 !important;
}

/* ============================================================
   RESPONSIVE — Tablet
   ============================================================ */
@media (max-width: 960px) {
    /* Stack to single column */
    .booking-v2 .vehicles-part > .row {
        flex-direction: column !important;
        gap: 16px !important;
    }
    .booking-v2 .vehicles-part > .row > .col-sm-3.pull-right {
        flex: none !important;
        width: 100% !important;
        position: static !important;
        order: -1;
    }
    .booking-v2 .vehicles-part > .row > .col-sm-9.pull-left {
        width: 100% !important;
    }
    .booking-v2 .col-sm-3.pull-right {
        float: none !important;
        width: 100% !important;
        margin-bottom: 16px;
    }
    .booking-v2 .res-table {
        font-size: 12px !important;
    }
    .booking-v2 .res-table thead {
        display: none;
    }
    .booking-v2 .res-table td {
        display: block;
        text-align: left !important;
        padding: 6px 12px !important;
        border: none !important;
        border-bottom: 1px solid var(--rd-light) !important;
    }
    .booking-v2 .res-table td::before {
        content: attr(data-label);
        font-weight: 600;
        color: var(--rd-text-light);
        display: block;
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: 0.3px;
        margin-bottom: 2px;
    }
    .booking-v2 .desktopView {
        display: none !important;
    }
    .booking-v2 .mobileView {
        display: block !important;
    }
}

/* ============================================================
   RESPONSIVE — Mobile
   ============================================================ */
@media (max-width: 600px) {
    .booking-v2 .fare_container,
    .booking-v2 .fare_container2,
    .booking-v2 .fare_container3 {
        padding: 8px 12px !important;
        font-size: 12px;
    }
    .booking-v2 .nyc-vehicle-name {
        font-size: 14px !important;
        padding: 10px 12px !important;
    }
    .booking-v2 .headlabelto,
    .booking-v2 .headlabel {
        font-size: 13px !important;
    }
    .booking-v2 .container-fluid.firstdetails {
        padding: 12px !important;
    }
    .booking-v2 .firstdetails.margintop20 {
        padding: 12px 16px !important;
    }
    .booking-v2 .col-lg-12[style*="border: 1px solid"] {
        padding: 12px 14px !important;
        margin-top: 8px !important;
        border-left-width: 3px !important;
    }
    /* Stack card columns on mobile */
    .booking-v2 .col-lg-12[style*="border"] .row {
        flex-wrap: wrap !important;
        gap: 8px !important;
    }
    .booking-v2 .col-lg-12[style*="border"] .row > [class*="col-"] {
        flex: 1 1 100% !important;
    }
    .booking-v2 .col-lg-12[style*="border"] .row > .col-lg-5:only-child {
        flex: 1 1 100% !important;
    }
    .booking-v2 #divmain {
        padding: 14px !important;
    }
    .booking-v2 #orderButtonDiv {
        padding: 12px 16px;
    }
    .booking-v2 .reviewbutton,
    .booking-v2 .button,
    .booking-v2 #btnconfirm {
        width: 100% !important;
        padding: 16px 20px !important;
        font-size: 15px !important;
    }
    /* Stack form fields */
    .booking-v2 .col-lg-6,
    .booking-v2 .col-sm-6 {
        width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .booking-v2 .nopaddingleft {
        padding-left: 0 !important;
    }
    /* Radio/checkbox touch targets */
    .booking-v2 input[type="radio"],
    .booking-v2 input[type="checkbox"] {
        width: 24px;
        height: 24px;
    }
    .booking-v2 .radio-inline {
        margin-right: 12px;
        padding: 4px 0;
    }
}

/* ── Small phones (< 480px) ── */
@media (max-width: 480px) {
    .booking-v2 .vehicles-part {
        padding: 0 12px !important;
    }
    .booking-v2 .container-fluid.firstdetails {
        padding: 8px !important;
    }
    .booking-v2 .firstdetails.margintop20 {
        padding: 8px 12px !important;
    }
    .booking-v2 #divmain {
        padding: 10px !important;
    }
    .booking-v2 .reviewbutton,
    .booking-v2 .button,
    .booking-v2 #btnconfirm {
        padding: 12px 16px !important;
        font-size: 14px !important;
    }
    .booking-v2 .nyc-vehicle-name {
        font-size: 13px !important;
        padding: 8px 10px !important;
    }
    .booking-v2 .fare_container,
    .booking-v2 .fare_container2,
    .booking-v2 .fare_container3 {
        padding: 6px 10px !important;
        font-size: 11px;
    }
    .booking-v2 .headlabelto,
    .booking-v2 .headlabel {
        font-size: 12px !important;
    }
    .booking-v2 .col-lg-12[style*="border"] {
        padding: 10px 12px !important;
    }
}

/* ── Small phone safety (375px) ── */
@media (max-width: 375px) {
    .booking-v2 .vehicles-part {
        padding: 0 8px !important;
    }
    .booking-v2 #divmain {
        padding: 8px !important;
    }
    .booking-v2 .reviewbutton,
    .booking-v2 .button,
    .booking-v2 #btnconfirm {
        padding: 10px 14px !important;
        font-size: 13px !important;
    }
    .booking-v2 .nyc-vehicle-name {
        font-size: 12px !important;
    }
    .booking-v2 .fare_container,
    .booking-v2 .fare_container2,
    .booking-v2 .fare_container3 {
        padding: 6px 8px !important;
        font-size: 11px !important;
    }
}
