/* ============================================================
   Chauffeur Booking System Pro — Premium Design
   Gold & Dark Luxury Theme
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700&display=swap');

:root {
    --cbs-gold:       #c9a84c;
    --cbs-gold-l:     #e2c06d;
    --cbs-gold-d:     #a07d30;
    --cbs-dark:       #0d0d14;
    --cbs-dark-2:     #141420;
    --cbs-dark-3:     #1c1c2e;
    --cbs-dark-4:     #252538;
    --cbs-white:      #ffffff;
    --cbs-cream:      #f8f5ef;
    --cbs-text:       #1a1a2e;
    --cbs-muted:      #888;
    --cbs-border:     #e8e0d0;
    --cbs-success:    #2e7d32;
    --cbs-error:      #c62828;
    --cbs-radius:     12px;
    --cbs-radius-lg:  20px;
    --cbs-shadow:     0 8px 40px rgba(0,0,0,0.12);
    --cbs-shadow-lg:  0 20px 60px rgba(0,0,0,0.18);
    --cbs-font-body:  'Inter', sans-serif;
    --cbs-font-serif: 'Cormorant Garamond', Georgia, serif;
    --cbs-transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ============================================================
   BOOKING WIDGET — Hero Form
   ============================================================ */
.cbs-booking-widget {
    background: rgba(13, 13, 20, 0.88);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(201, 168, 76, 0.2);
    border-radius: var(--cbs-radius-lg);
    padding: 28px 32px 24px;
    max-width: 1080px;
    margin: 0 auto;
    font-family: var(--cbs-font-body);
    box-shadow: 0 32px 80px rgba(0,0,0,0.4), inset 0 1px 0 rgba(201,168,76,0.1);
}

/* Toggle */
.cbs-trip-toggle {
    display: flex;
    gap: 0;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(201,168,76,0.15);
    border-radius: 50px;
    padding: 4px;
    width: fit-content;
    margin: 0 auto 24px;
}

.cbs-toggle-btn {
    background: transparent;
    border: none;
    color: rgba(255,255,255,0.45);
    padding: 9px 26px;
    border-radius: 50px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 500;
    font-family: var(--cbs-font-body);
    letter-spacing: 0.5px;
    transition: var(--cbs-transition);
}
.cbs-toggle-btn.active {
    background: var(--cbs-gold);
    color: var(--cbs-dark);
    font-weight: 700;
    box-shadow: 0 2px 14px rgba(201,168,76,0.4);
}
.cbs-toggle-btn:not(.active):hover {
    color: rgba(255,255,255,0.8);
}

/* Form row */
.cbs-booking-form {
    display: flex;
    gap: 0;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: var(--cbs-radius);
    overflow: visible;
    align-items: stretch;
    flex-wrap: wrap;
}

.cbs-field-group {
    flex: 1;
    min-width: 150px;
    padding: 14px 20px;
    border-right: 1px solid rgba(255,255,255,0.07);
    position: relative;
    transition: background 0.2s;
}
.cbs-field-group:hover { background: rgba(255,255,255,0.03); }
.cbs-field-group:last-child { border-right: none; }

.cbs-field-label {
    display: block;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--cbs-gold);
    margin-bottom: 7px;
}

/* Borderless inputs */
.cbs-field-input,
.cbs-select-input {
    width: 100%;
    background: transparent;
    border: none;
    outline: none;
    color: rgba(255,255,255,0.9);
    font-size: 14px;
    font-family: var(--cbs-font-body);
    padding: 0;
    line-height: 1.4;
}
.cbs-field-input::placeholder {
    color: rgba(255,255,255,0.28);
    font-size: 13px;
}
.cbs-select-input {
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
}
.cbs-select-input option { background: var(--cbs-dark-3); color: #fff; }
.cbs-select-input::-webkit-calendar-picker-indicator { filter: invert(0.7) sepia(1) saturate(2) hue-rotate(5deg); }

.cbs-select-arrow {
    position: absolute;
    right: 16px;
    bottom: 16px;
    color: rgba(201,168,76,0.5);
    pointer-events: none;
    font-size: 16px;
}

.cbs-field-submit {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    padding: 10px 14px;
}

/* View Options button */
.cbs-submit-btn {
    background: linear-gradient(135deg, var(--cbs-gold) 0%, var(--cbs-gold-d) 100%);
    color: var(--cbs-dark);
    border: none;
    border-radius: 50px;
    padding: 14px 32px;
    font-size: 14px;
    font-weight: 700;
    font-family: var(--cbs-font-body);
    letter-spacing: 0.5px;
    cursor: pointer;
    transition: var(--cbs-transition);
    white-space: nowrap;
    box-shadow: 0 4px 20px rgba(201,168,76,0.35);
}
.cbs-submit-btn:hover {
    background: linear-gradient(135deg, var(--cbs-gold-l) 0%, var(--cbs-gold) 100%);
    transform: translateY(-1px);
    box-shadow: 0 8px 28px rgba(201,168,76,0.45);
}
.cbs-submit-btn:active { transform: translateY(0); }
.cbs-submit-full { width:100%; border-radius:var(--cbs-radius); padding:16px; font-size:15px; margin-top:12px; }

/* Error */
.cbs-booking-error {
    background: rgba(198,40,40,0.12);
    border: 1px solid rgba(198,40,40,0.3);
    color: #ff8a80;
    padding: 12px 18px;
    border-radius: 8px;
    margin-top: 14px;
    font-size: 13px;
    font-family: var(--cbs-font-body);
}

/* ============================================================
   CUSTOM DATEPICKER — Luxury Calendar
   ============================================================ */
.cbs-date-display { cursor:pointer !important; }

.cbs-datepicker {
    position: absolute;
    top: calc(100% + 12px);
    left: -20px;
    width: 320px;
    background: var(--cbs-dark-3);
    border: 1px solid rgba(201,168,76,0.2);
    border-radius: 16px;
    padding: 20px;
    z-index: 9999;
    box-shadow: 0 24px 60px rgba(0,0,0,0.5), inset 0 1px 0 rgba(201,168,76,0.08);
    animation: cbs-dp-in 0.18s cubic-bezier(0.4,0,0.2,1);
}
@keyframes cbs-dp-in { from { opacity:0; transform:translateY(-8px) scale(0.97); } to { opacity:1; transform:translateY(0) scale(1); } }

.cbs-dp-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}
.cbs-dp-nav button {
    background: rgba(201,168,76,0.1);
    border: 1px solid rgba(201,168,76,0.2);
    color: var(--cbs-gold);
    width: 32px; height: 32px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 14px;
    display: flex; align-items:center; justify-content:center;
    transition: var(--cbs-transition);
}
.cbs-dp-nav button:hover { background: rgba(201,168,76,0.2); }
.cbs-dp-nav span {
    color: #fff;
    font-weight: 600;
    font-size: 15px;
    font-family: var(--cbs-font-body);
    letter-spacing: 0.3px;
}

.cbs-dp-weekdays {
    display: grid;
    grid-template-columns: repeat(7,1fr);
    margin-bottom: 8px;
    border-bottom: 1px solid rgba(201,168,76,0.1);
    padding-bottom: 8px;
}
.cbs-dp-weekdays span {
    text-align: center;
    font-size: 10px;
    font-weight: 700;
    color: var(--cbs-gold);
    padding: 4px 0;
    text-transform: uppercase;
    letter-spacing: 0.8px;
}

.cbs-dp-days {
    display: grid;
    grid-template-columns: repeat(7,1fr);
    gap: 3px;
}

.cbs-dp-day {
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: var(--cbs-transition);
    color: rgba(255,255,255,0.85);
    font-family: var(--cbs-font-body);
}
.cbs-dp-day.dp-past        { color: rgba(255,255,255,0.18); cursor:not-allowed; }
.cbs-dp-day.dp-blocked     { background: rgba(198,40,40,0.12); color: rgba(255,100,100,0.45); cursor:not-allowed; text-decoration:line-through; }
.cbs-dp-day.dp-available:hover { background: rgba(201,168,76,0.15); color: var(--cbs-gold); }
.cbs-dp-day.dp-selected    { background: var(--cbs-gold) !important; color: var(--cbs-dark) !important; font-weight: 800; box-shadow: 0 3px 12px rgba(201,168,76,0.45); }
.cbs-dp-day.dp-today:not(.dp-past):not(.dp-blocked) { outline: 1.5px solid rgba(201,168,76,0.4); }

.cbs-dp-legend {
    display: flex;
    gap: 14px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid rgba(201,168,76,0.08);
}
.cbs-dp-leg { font-size: 11px; font-weight: 600; display:flex; align-items:center; gap:5px; }
.cbs-dp-leg::before { content:''; width:10px; height:10px; border-radius:3px; display:inline-block; }
.cbs-dp-leg-blocked::before   { background: rgba(198,40,40,0.35); }
.cbs-dp-leg-available::before { background: rgba(201,168,76,0.2); }
.cbs-dp-leg-blocked   { color: rgba(255,120,120,0.7); }
.cbs-dp-leg-available { color: rgba(255,255,255,0.4); }

/* Google Places dropdown */
.pac-container {
    border-radius: 12px !important;
    box-shadow: 0 16px 48px rgba(0,0,0,0.45) !important;
    border: 1px solid rgba(201,168,76,0.15) !important;
    background: var(--cbs-dark-3) !important;
    font-family: var(--cbs-font-body) !important;
    z-index: 99999 !important;
    overflow: hidden;
    margin-top: 4px !important;
}
.pac-item { color: rgba(255,255,255,0.7) !important; border-top-color: rgba(255,255,255,0.05) !important; padding: 10px 16px !important; cursor:pointer; transition:background 0.15s; }
.pac-item:hover { background: rgba(201,168,76,0.1) !important; }
.pac-item-selected { background: rgba(201,168,76,0.12) !important; }
.pac-item-query { color: #fff !important; font-weight: 600; }
.pac-matched { color: var(--cbs-gold) !important; }
.pac-icon { filter: invert(0.6) sepia(1) saturate(2) hue-rotate(5deg); }
.pac-logo:after { display:none !important; }

/* ============================================================
   VEHICLE SELECTION PAGE
   ============================================================ */
.cbs-vsp-layout {
    display: grid;
    grid-template-columns: 1fr 400px;
    min-height: 85vh;
    font-family: var(--cbs-font-body);
    background: var(--cbs-cream);
}

.cbs-vsp-left {
    padding: 28px 32px;
    background: #f8f5ef;
    overflow-y: auto;
}

/* Trip bar */
.cbs-vsp-trip-bar {
    background: var(--cbs-dark-3);
    border: 1px solid rgba(201,168,76,0.15);
    color: #fff;
    border-radius: var(--cbs-radius);
    padding: 14px 22px;
    margin-bottom: 22px;
    font-size: 13px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}
.cbs-vsp-trip-bar strong { color: #fff; font-size: 13px; font-weight: 600; }
.cbs-vsp-trip-bar span   { color: var(--cbs-gold); font-size: 12px; }

/* Vehicle cards */
.cbs-vehicle-card {
    background: #fff;
    border-radius: 16px;
    border: 1.5px solid #ede8df;
    display: flex;
    align-items: stretch;
    margin-bottom: 16px;
    overflow: hidden;
    transition: var(--cbs-transition);
    cursor: pointer;
    box-shadow: 0 2px 12px rgba(0,0,0,0.05);
}
.cbs-vehicle-card:hover {
    border-color: var(--cbs-gold);
    box-shadow: 0 8px 32px rgba(201,168,76,0.15);
    transform: translateY(-2px);
}

.cbs-vehicle-img-wrap { width:210px; min-width:210px; height:155px; overflow:hidden; background:#f0ede8; flex-shrink:0; }
.cbs-vehicle-img      { width:100%; height:100%; object-fit:cover; transition:transform 0.4s; }
.cbs-vehicle-card:hover .cbs-vehicle-img { transform:scale(1.04); }
.cbs-vehicle-img-placeholder { width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#f0ede8; }

.cbs-vehicle-info { flex:1; padding:20px 22px; }
.cbs-vehicle-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:6px; }
.cbs-vehicle-name { font-size:18px; font-weight:700; color:var(--cbs-text); margin:0 0 3px; font-family:var(--cbs-font-body); }
.cbs-vehicle-category {
    display: inline-block;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--cbs-gold-d);
    font-weight: 700;
    background: rgba(201,168,76,0.08);
    padding: 3px 8px;
    border-radius: 4px;
}
.cbs-vehicle-price { font-size:22px; font-weight:800; color:var(--cbs-text); white-space:nowrap; text-align:right; }
.cbs-vehicle-price small { display:block; font-size:10px; font-weight:400; color:var(--cbs-muted); text-align:right; letter-spacing:0.3px; }
.cbs-vehicle-desc { font-size:13px; color:#888; margin:8px 0 14px; line-height:1.6; }
.cbs-vehicle-specs { display:flex; gap:18px; margin-bottom:10px; }
.cbs-vehicle-specs span { font-size:12px; color:#666; display:flex; align-items:center; gap:5px; font-weight:500; }
.cbs-vehicle-features { display:flex; flex-wrap:wrap; gap:5px; }
.cbs-feature-tag { background:#f5f0e8; color:var(--cbs-gold-d); font-size:11px; padding:3px 10px; border-radius:50px; font-weight:600; border:1px solid rgba(160,125,48,0.15); }

.cbs-vehicle-action { padding:20px 18px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.cbs-select-vehicle-btn {
    background: var(--cbs-dark-3);
    color: #fff;
    border: none;
    border-radius: 50px;
    padding: 12px 26px;
    font-size: 13px;
    font-weight: 700;
    font-family: var(--cbs-font-body);
    cursor: pointer;
    transition: var(--cbs-transition);
    white-space: nowrap;
    letter-spacing: 0.3px;
}
.cbs-select-vehicle-btn:hover {
    background: var(--cbs-gold);
    color: var(--cbs-dark);
    box-shadow: 0 4px 16px rgba(201,168,76,0.35);
}

/* Right sidebar */
.cbs-vsp-right {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-left: 1px solid #ede8df;
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
}
.cbs-vsp-map { flex:1; min-height:260px; background:#e8e4dc; }

/* Booking panel */
.cbs-vsp-booking-panel { padding:22px 24px; background:#fff; border-top:1px solid #f0ece4; flex-shrink:0; }

.cbs-vsp-panel-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    border-radius: 12px;
    border: 1.5px solid #ede8df;
    margin-bottom: 10px;
    transition: var(--cbs-transition);
    cursor: pointer;
}
.cbs-vsp-panel-row:hover   { border-color: var(--cbs-gold-d); }
.cbs-vsp-panel-active      { border-color: var(--cbs-gold) !important; background: #fdf8ef; }

.cbs-vsp-panel-icon {
    width:40px; height:40px;
    background: #f5f0e8;
    border-radius: 50%;
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
    color: #888;
    transition: var(--cbs-transition);
}
.cbs-vsp-panel-active .cbs-vsp-panel-icon { background: var(--cbs-gold); color: var(--cbs-dark); }

.cbs-vsp-panel-row > div:nth-child(2) strong { display:block; font-size:14px; font-weight:700; color:var(--cbs-text); }
.cbs-vsp-panel-row > div:nth-child(2) span   { font-size:12px; color:#999; }
.cbs-vsp-panel-row.cbs-vsp-guest-filled > div:nth-child(2) span { color:var(--cbs-success); font-weight:600; }

.cbs-vsp-chevron { margin-left:auto; color:#ccc; flex-shrink:0; }
.cbs-vsp-panel-divider { height:1px; background:#f0ece4; margin:8px 0; }

.cbs-vsp-panel-offer { display:flex; align-items:center; gap:8px; font-size:13px; color:#aaa; padding:8px 0; }
.cbs-vsp-offer-right { margin-left:auto; font-weight:600; color:var(--cbs-success); font-size:12px; }

/* No service */
.cbs-no-service-box { text-align:center; padding:60px 40px; max-width:420px; margin:0 auto; }
.cbs-no-service-box h3 { font-size:18px; font-weight:700; color:var(--cbs-text); margin:0 0 10px; }
.cbs-no-service-box p  { font-size:13px; color:#888; margin:0 0 24px; line-height:1.6; }
.cbs-vsp-back-btn { display:inline-block; background:var(--cbs-dark-3); color:#fff; padding:12px 28px; border-radius:50px; text-decoration:none; font-weight:700; font-size:13px; transition:var(--cbs-transition); }
.cbs-vsp-back-btn:hover { background:var(--cbs-gold); color:var(--cbs-dark); }
.cbs-vsp-retry-btn { width:100%; background:#999; color:#fff; border:none; border-radius:8px; padding:14px; font-size:14px; font-weight:700; cursor:pointer; margin-top:12px; opacity:0.7; font-family:var(--cbs-font-body); }

/* ============================================================
   GUEST MODAL — Luxury Style
   ============================================================ */
.cbs-vsp-guest-modal-box {
    position: absolute;
    top:50%; left:50%;
    transform: translate(-50%,-50%);
    background: #fff;
    border-radius: 20px;
    padding: 40px 44px;
    width: 520px;
    max-width: 95vw;
    max-height: 90vh;
    overflow-y: auto;
    z-index: 1;
    box-shadow: 0 32px 80px rgba(0,0,0,0.25);
}
.cbs-vsp-guest-close { position:absolute; top:16px; right:18px; background:#f5f0e8; border:none; width:32px; height:32px; border-radius:50%; font-size:15px; cursor:pointer; color:#666; display:flex; align-items:center; justify-content:center; transition:var(--cbs-transition); }
.cbs-vsp-guest-close:hover { background:#ede8df; }
.cbs-vsp-guest-title { font-size:26px; font-weight:700; color:var(--cbs-text); margin:0 0 10px; font-family:var(--cbs-font-serif); }
.cbs-vsp-guest-subtitle { font-size:13px; color:#888; line-height:1.7; margin:0 0 28px; }
.cbs-vsp-guest-form { display:flex; flex-direction:column; gap:22px; }
.cbs-vsp-guest-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.cbs-vsp-guest-field { display:flex; flex-direction:column; gap:6px; }
.cbs-vsp-guest-field label { font-size:11px; font-weight:700; color:#777; text-transform:uppercase; letter-spacing:0.8px; }

.cbs-vsp-guest-input {
    padding: 0 0 10px;
    border: none;
    border-bottom: 1.5px solid #e8e0d0;
    font-size: 14px;
    color: var(--cbs-text);
    outline: none;
    background: transparent;
    transition: border-color 0.2s;
    width: 100%;
    font-family: var(--cbs-font-body);
}
.cbs-vsp-guest-input:focus { border-bottom-color: var(--cbs-gold); }
.cbs-vsp-guest-input::placeholder { color: #ccc; }

.cbs-vsp-confirm-btn {
    background: linear-gradient(135deg, var(--cbs-gold) 0%, var(--cbs-gold-d) 100%);
    color: var(--cbs-dark);
    border: none;
    border-radius: 50px;
    padding: 13px 44px;
    font-size: 14px;
    font-weight: 700;
    font-family: var(--cbs-font-body);
    cursor: pointer;
    transition: var(--cbs-transition);
    box-shadow: 0 4px 16px rgba(201,168,76,0.3);
    letter-spacing: 0.3px;
}
.cbs-vsp-confirm-btn:hover { background: linear-gradient(135deg, var(--cbs-gold-l) 0%, var(--cbs-gold) 100%); transform:translateY(-1px); box-shadow:0 6px 20px rgba(201,168,76,0.4); }

/* ============================================================
   CHECKOUT PAGE
   ============================================================ */
.cbs-checkout-page { max-width:1060px; margin:40px auto; padding:0 24px; font-family:var(--cbs-font-body); }
.cbs-checkout-grid { display:grid; grid-template-columns:1fr 360px; gap:32px; }

.cbs-checkout-form-wrap h2 { font-size:28px; font-weight:700; color:var(--cbs-text); margin-bottom:28px; font-family:var(--cbs-font-serif); }

.cbs-form-section { margin-bottom:32px; }
.cbs-form-section h3 {
    font-size:11px; font-weight:700; color:var(--cbs-gold-d);
    text-transform:uppercase; letter-spacing:1.5px;
    margin-bottom:16px;
    padding-bottom:10px;
    border-bottom:1px solid var(--cbs-border);
}

.cbs-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.cbs-form-group { display:flex; flex-direction:column; gap:6px; }
.cbs-form-group label { font-size:11px; font-weight:700; color:#888; text-transform:uppercase; letter-spacing:0.8px; }

.cbs-co-input {
    border: none;
    border-bottom: 1.5px solid var(--cbs-border);
    border-radius: 0;
    padding: 10px 0;
    font-size: 14px;
    color: var(--cbs-text);
    outline: none;
    width: 100%;
    background: transparent;
    font-family: var(--cbs-font-body);
    transition: border-color 0.2s;
}
.cbs-co-input:focus { border-bottom-color: var(--cbs-gold); }
.cbs-co-input::placeholder { color: #ccc; }

select.cbs-co-input { cursor:pointer; }
textarea.cbs-co-input { resize:vertical; border:1.5px solid var(--cbs-border); border-radius:8px; padding:10px 14px; }
textarea.cbs-co-input:focus { border-color:var(--cbs-gold); }

.cbs-full-width { grid-column:1/-1; }

/* Booking for toggle */
.cbs-checkout-option-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.cbs-checkout-radio {
    display:flex; flex-direction:column; gap:4px;
    border: 1.5px solid var(--cbs-border);
    border-radius: 12px; padding:16px 18px; cursor:pointer;
    transition: var(--cbs-transition);
}
.cbs-checkout-radio.active { border-color:var(--cbs-gold); background:#fdf8ef; }
.cbs-checkout-radio input[type=radio] { display:none; }
.cbs-checkout-radio strong { font-size:14px; color:var(--cbs-text); }
.cbs-checkout-radio small  { font-size:12px; color:#aaa; }

/* Payment options */
.cbs-payment-options { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.cbs-payment-option {
    display:flex; align-items:center; gap:12px;
    border: 1.5px solid var(--cbs-border);
    border-radius:12px; padding:16px 18px; cursor:pointer;
    transition: var(--cbs-transition);
}
.cbs-payment-option.active { border-color:var(--cbs-gold); background:#fdf8ef; }
.cbs-payment-option input { display:none; }
.cbs-payment-icon { font-size:22px; }
.cbs-payment-option strong { display:block; font-size:14px; color:var(--cbs-text); }
.cbs-payment-option small  { color:#aaa; font-size:12px; }

.cbs-card-element { border:1.5px solid var(--cbs-border); border-radius:8px; padding:12px 14px; background:#fff; margin-top:12px; }
.cbs-card-errors  { color:var(--cbs-error); font-size:13px; margin-top:6px; min-height:18px; }

.cbs-checkout-note { font-size:12px; color:#aaa; text-align:center; margin-top:12px; }

/* Summary sidebar */
.cbs-summary-card {
    background: #fff;
    border-radius: 16px;
    box-shadow: var(--cbs-shadow);
    padding: 24px;
    border: 1px solid var(--cbs-border);
    position: sticky;
    top: 24px;
}
.cbs-summary-card h3 { font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:1px; margin-bottom:16px; color:var(--cbs-gold-d); }

.cbs-summary-row { display:flex; justify-content:space-between; font-size:13px; padding:9px 0; border-bottom:1px solid #f5f0e8; color:#666; }
.cbs-summary-row:last-child { border-bottom:none; }
.cbs-summary-total { font-weight:800; font-size:16px; color:var(--cbs-text); }

/* Promo boxes */
.cbs-promo-box { background:#f9f6f1; border-radius:10px; padding:12px 16px; border:1px solid #ede8df; margin-top:10px; }
.cbs-promo-row { display:flex; gap:8px; }
.cbs-promo-input { flex:1; padding:9px 0; border:none; border-bottom:1.5px solid #ddd; font-size:13px; background:transparent; outline:none; font-family:var(--cbs-font-body); color:var(--cbs-text); }
.cbs-promo-input:focus { border-bottom-color:var(--cbs-gold); }
.cbs-promo-input::placeholder { color:#ccc; }
.cbs-promo-apply-btn { background:var(--cbs-dark-3); color:#fff; border:none; border-radius:6px; padding:9px 16px; font-size:12px; font-weight:700; cursor:pointer; font-family:var(--cbs-font-body); transition:var(--cbs-transition); }
.cbs-promo-apply-btn:hover { background:var(--cbs-gold); color:var(--cbs-dark); }
.cbs-summary-fees { font-size:11px; color:#bbb; text-align:center; margin:10px 0 0; }

/* Guest badge */
#cbs-guest-filled-badge { background:#f0faf0; border:1px solid #a5d6a7; border-radius:10px; padding:12px 16px; margin-top:12px; display:none; align-items:center; gap:12px; }

/* ============================================================
   CONFIRMATION PAGE
   ============================================================ */
.cbs-confirmation { text-align:center; max-width:580px; margin:60px auto; padding:0 24px; font-family:var(--cbs-font-body); }
.cbs-confirmation-icon { width:72px; height:72px; background:linear-gradient(135deg, var(--cbs-gold),var(--cbs-gold-d)); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:32px; margin:0 auto 24px; color:var(--cbs-dark); box-shadow:0 8px 24px rgba(201,168,76,0.35); }
.cbs-confirmation h2 { font-size:30px; font-weight:700; color:var(--cbs-text); margin-bottom:12px; font-family:var(--cbs-font-serif); }
.cbs-ref { font-family:monospace; font-size:16px; background:#f5f0e8; padding:4px 14px; border-radius:6px; border:1px solid #ede0c8; }
.cbs-booking-summary { background:#fff; border:1px solid var(--cbs-border); border-radius:16px; margin:28px 0; text-align:left; box-shadow:var(--cbs-shadow); overflow:hidden; }
.cbs-summary-row { display:flex; justify-content:space-between; font-size:14px; padding:12px 20px; border-bottom:1px solid #f5f0e8; }
.cbs-summary-row:last-child { border-bottom:none; }
.cbs-summary-total { font-weight:800; font-size:16px; color:var(--cbs-text); }

/* ============================================================
   REVIEWS WIDGET
   ============================================================ */
.cbs-reviews-widget { font-family:var(--cbs-font-body); max-width:1000px; margin:0 auto; }
.cbs-reviews-header { text-align:center; margin-bottom:36px; }
.cbs-reviews-avg { display:inline-flex; flex-direction:column; align-items:center; gap:10px; }
.cbs-avg-number { font-size:60px; font-weight:800; color:var(--cbs-text); line-height:1; font-family:var(--cbs-font-serif); }
.cbs-avg-stars  { display:flex; gap:5px; }
.cbs-star       { font-size:22px; color:#e0d8cc; }
.cbs-star-full  { color:var(--cbs-gold); }
.cbs-avg-label  { font-size:13px; color:#aaa; }

.cbs-reviews-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:20px; }
.cbs-review-card { background:#fff; border-radius:16px; padding:24px; box-shadow:0 2px 16px rgba(0,0,0,0.06); border:1px solid #f0ece4; transition:var(--cbs-transition); }
.cbs-review-card:hover { box-shadow:0 8px 30px rgba(201,168,76,0.12); border-color:rgba(201,168,76,0.3); }
.cbs-review-stars { display:flex; gap:3px; margin-bottom:14px; }
.cbs-review-stars .cbs-star { font-size:16px; }
.cbs-review-comment { font-size:14px; color:#555; line-height:1.75; margin:0 0 18px; font-style:italic; }
.cbs-review-author { display:flex; align-items:center; gap:12px; }
.cbs-review-avatar { width:38px; height:38px; border-radius:50%; background:var(--cbs-dark-3); color:var(--cbs-gold); display:flex; align-items:center; justify-content:center; font-weight:800; font-size:15px; flex-shrink:0; }
.cbs-review-author strong { display:block; font-size:13px; color:var(--cbs-text); }
.cbs-review-author small  { font-size:12px; color:#bbb; }

/* ============================================================
   INSTANT QUOTE WIDGET
   ============================================================ */
.cbs-quote-widget { background:#fff; border-radius:16px; padding:28px 32px; box-shadow:var(--cbs-shadow); border:1px solid var(--cbs-border); max-width:600px; font-family:var(--cbs-font-body); }
.cbs-quote-title { font-size:20px; font-weight:700; color:var(--cbs-text); margin:0 0 18px; font-family:var(--cbs-font-serif); }
.cbs-quote-form  { display:flex; flex-direction:column; gap:12px; }
.cbs-quote-row   { display:flex; gap:10px; }
.cbs-quote-input { flex:1; padding:11px 0; border:none; border-bottom:1.5px solid var(--cbs-border); font-size:14px; outline:none; background:transparent; font-family:var(--cbs-font-body); color:var(--cbs-text); transition:border-color 0.2s; }
.cbs-quote-input:focus { border-bottom-color:var(--cbs-gold); }
.cbs-quote-input::placeholder { color:#ccc; }
.cbs-quote-btn { background:linear-gradient(135deg,var(--cbs-gold),var(--cbs-gold-d)); color:var(--cbs-dark); border:none; border-radius:50px; padding:12px 28px; font-size:13px; font-weight:700; cursor:pointer; font-family:var(--cbs-font-body); transition:var(--cbs-transition); box-shadow:0 4px 14px rgba(201,168,76,0.3); }
.cbs-quote-btn:hover { transform:translateY(-1px); box-shadow:0 6px 20px rgba(201,168,76,0.4); }
.cbs-quote-results-title { font-size:11px; font-weight:700; color:var(--cbs-gold-d); text-transform:uppercase; letter-spacing:1px; margin:18px 0 10px; }
.cbs-quote-vehicle { display:flex; justify-content:space-between; align-items:center; padding:12px 16px; border:1px solid #ede8df; border-radius:10px; margin-bottom:8px; transition:var(--cbs-transition); }
.cbs-quote-vehicle:hover { border-color:var(--cbs-gold); background:#fdf8ef; }
.cbs-quote-vehicle-name { font-weight:700; color:var(--cbs-text); font-size:14px; }
.cbs-quote-vehicle-desc { font-size:12px; color:#aaa; margin-top:2px; }
.cbs-quote-price { font-size:20px; font-weight:900; color:var(--cbs-text); }
.cbs-quote-price small { font-size:11px; color:#aaa; font-weight:400; display:block; text-align:right; }
.cbs-quote-book-link { display:block; text-align:center; margin-top:16px; background:var(--cbs-dark-3); color:#fff; padding:13px; border-radius:10px; text-decoration:none; font-weight:700; font-size:14px; transition:var(--cbs-transition); }
.cbs-quote-book-link:hover { background:var(--cbs-gold); color:var(--cbs-dark); }

/* ============================================================
   SPINNER
   ============================================================ */
.cbs-spinner { width:40px; height:40px; border:3px solid rgba(201,168,76,0.15); border-top-color:var(--cbs-gold); border-radius:50%; animation:cbs-spin 0.8s linear infinite; }
@keyframes cbs-spin { to { transform:rotate(360deg); } }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:900px) {
    .cbs-vsp-layout { grid-template-columns:1fr; }
    .cbs-vsp-right  { position:relative; height:auto; }
    .cbs-vsp-map    { min-height:220px; }
    .cbs-checkout-grid { grid-template-columns:1fr; }
}
@media (max-width:768px) {
    .cbs-booking-widget { padding:20px 18px; border-radius:14px; }
    .cbs-booking-form   { flex-direction:column; }
    .cbs-field-group    { border-right:none; border-bottom:1px solid rgba(255,255,255,0.07); }
    .cbs-vehicle-card   { flex-direction:column; }
    .cbs-vehicle-img-wrap { width:100%; min-width:unset; height:180px; }
    .cbs-vehicle-action { padding:14px 20px; width:100%; }
    .cbs-select-vehicle-btn { width:100%; }
    .cbs-form-grid      { grid-template-columns:1fr; }
    .cbs-payment-options { grid-template-columns:1fr; }
    .cbs-checkout-option-grid { grid-template-columns:1fr; }
    .cbs-vsp-guest-row  { grid-template-columns:1fr; }
    .cbs-vsp-guest-modal-box { padding:28px 24px; }
    .cbs-quote-row      { flex-direction:column; }
}

/* ============================================================
   VEHICLE CARDS — 3 Column Grid + Detail Panel
   ============================================================ */

/* Override old list layout — now grid */
.cbs-vehicles-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-bottom: 28px;
}

/* Card — compact, clickable */
.cbs-vehicle-card {
    background: #fff;
    border-radius: 14px;
    border: 2px solid #ede8df;
    overflow: hidden;
    cursor: pointer;
    transition: var(--cbs-transition, all 0.25s ease);
    box-shadow: 0 2px 10px rgba(0,0,0,0.06);
    display: flex;
    flex-direction: column;
    position: relative;
}
.cbs-vehicle-card:hover {
    border-color: var(--cbs-gold, #c9a84c);
    box-shadow: 0 8px 28px rgba(201,168,76,0.18);
    transform: translateY(-3px);
}
.cbs-vehicle-card.cbs-card-selected {
    border-color: var(--cbs-gold, #c9a84c);
    box-shadow: 0 0 0 3px rgba(201,168,76,0.25), 0 8px 28px rgba(201,168,76,0.2);
}
.cbs-card-selected-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    background: var(--cbs-gold, #c9a84c);
    color: #1a1a2e;
    font-size: 10px;
    font-weight: 800;
    padding: 3px 10px;
    border-radius: 50px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    z-index: 2;
}

/* Card image */
.cbs-vehicle-img-wrap {
    width: 100%;
    min-width: unset;
    height: 160px;
    overflow: hidden;
    background: #f0ede8;
    flex-shrink: 0;
}
.cbs-vehicle-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}
.cbs-vehicle-card:hover .cbs-vehicle-img { transform: scale(1.05); }

/* Card body */
.cbs-vehicle-info {
    padding: 14px 16px 16px;
    display: flex;
    flex-direction: column;
    flex: 1;
}
.cbs-vehicle-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 6px;
}
.cbs-vehicle-name     { font-size: 15px; font-weight: 800; color: var(--cbs-text, #1a1a2e); margin: 0 0 4px; }
.cbs-vehicle-category { font-size: 10px; text-transform: uppercase; letter-spacing: 1.5px; color: var(--cbs-gold-d, #a07d30); font-weight: 700; background: rgba(201,168,76,0.08); padding: 2px 8px; border-radius: 4px; display: inline-block; }
.cbs-vehicle-price    { font-size: 18px; font-weight: 900; color: var(--cbs-text, #1a1a2e); text-align: right; white-space: nowrap; }
.cbs-vehicle-price small { font-size: 10px; font-weight: 400; color: #aaa; display: block; text-align: right; }
.cbs-vehicle-desc     { font-size: 12px; color: #888; margin: 4px 0 10px; line-height: 1.5; flex: 1; }
.cbs-vehicle-specs    { display: flex; gap: 12px; margin-bottom: 8px; }
.cbs-vehicle-specs span { font-size: 11px; color: #666; font-weight: 500; }
.cbs-vehicle-features { display: flex; flex-wrap: wrap; gap: 4px; }
.cbs-feature-tag      { background: #f5f0e8; color: var(--cbs-gold-d, #a07d30); font-size: 10px; padding: 2px 7px; border-radius: 50px; font-weight: 600; }

/* No select button — whole card is clickable */
.cbs-vehicle-action { display: none; }

/* ============================================================
   VEHICLE DETAIL PANEL — Full Width Below Cards
   ============================================================ */
.cbs-detail-panel {
    background: #fff;
    border-radius: 18px;
    border: 2px solid var(--cbs-gold, #c9a84c);
    overflow: hidden;
    box-shadow: 0 12px 40px rgba(201,168,76,0.15);
    display: grid;
    grid-template-columns: 420px 1fr;
    min-height: 320px;
    animation: cbs-detail-in 0.3s cubic-bezier(0.4,0,0.2,1);
}
@keyframes cbs-detail-in {
    from { opacity:0; transform:translateY(16px); }
    to   { opacity:1; transform:translateY(0); }
}

/* ---- Image Slider ---- */
.cbs-slider-wrap {
    position: relative;
    overflow: hidden;
    background: #f0ede8;
}
.cbs-slider-track {
    display: flex;
    height: 100%;
    min-height: 320px;
    transition: transform 0.4s cubic-bezier(0.4,0,0.2,1);
}
.cbs-slider-slide {
    min-width: 100%;
    height: 100%;
    object-fit: cover;
    flex-shrink: 0;
}
.cbs-slider-slide-placeholder {
    min-width: 100%;
    height: 100%;
    min-height: 320px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f0ede8;
    color: #ccc;
    font-size: 60px;
}
.cbs-slider-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255,255,255,0.9);
    border: none;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    font-size: 16px;
    cursor: pointer;
    z-index: 3;
    box-shadow: 0 2px 10px rgba(0,0,0,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    color: #333;
}
.cbs-slider-btn:hover { background: var(--cbs-gold, #c9a84c); color: #fff; }
.cbs-slider-prev { left: 10px; }
.cbs-slider-next { right: 10px; }
.cbs-slider-btn.cbs-hidden { display: none; }
.cbs-slider-dots {
    position: absolute;
    bottom: 12px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 6px;
}
.cbs-slider-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: rgba(255,255,255,0.5);
    cursor: pointer;
    transition: all 0.2s;
    border: none;
}
.cbs-slider-dot.active {
    background: var(--cbs-gold, #c9a84c);
    transform: scale(1.3);
}

/* ---- Detail Info ---- */
.cbs-detail-info {
    padding: 28px 32px;
    display: flex;
    flex-direction: column;
}
.cbs-detail-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 12px;
}
.cbs-detail-name { font-size: 24px; font-weight: 800; color: var(--cbs-text, #1a1a2e); margin: 0 0 6px; }
.cbs-detail-price-wrap { text-align: right; }
.cbs-detail-price-wrap small { font-size: 11px; color: #aaa; display: block; }
.cbs-detail-desc {
    font-size: 14px;
    color: #666;
    line-height: 1.7;
    margin-bottom: 20px;
    flex: 1;
}
.cbs-detail-specs {
    display: flex;
    gap: 24px;
    margin-bottom: 16px;
    padding: 14px 18px;
    background: #f9f6f1;
    border-radius: 10px;
}
.cbs-detail-spec-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}
.cbs-detail-spec-icon { font-size: 20px; }
.cbs-detail-spec-value { font-size: 16px; font-weight: 800; color: var(--cbs-text, #1a1a2e); }
.cbs-detail-spec-label { font-size: 11px; color: #aaa; text-transform: uppercase; letter-spacing: 0.5px; }
.cbs-detail-features {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 22px;
}
.cbs-detail-actions {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
}
.cbs-detail-back-btn {
    background: transparent;
    border: 1.5px solid #ddd;
    border-radius: 50px;
    padding: 12px 22px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    color: #666;
    transition: all 0.2s;
    font-family: var(--cbs-font-body, sans-serif);
}
.cbs-detail-back-btn:hover { border-color: #aaa; color: #333; }

/* ============================================================
   Responsive Grid
   ============================================================ */
@media (max-width: 1100px) {
    .cbs-vehicles-grid { grid-template-columns: repeat(2, 1fr); }
    .cbs-detail-panel  { grid-template-columns: 320px 1fr; }
}
@media (max-width: 768px) {
    .cbs-vehicles-grid { grid-template-columns: 1fr; }
    .cbs-detail-panel  { grid-template-columns: 1fr; }
    .cbs-slider-track  { min-height: 220px; }
    .cbs-slider-slide-placeholder { min-height: 220px; }
}

/* ============================================================
   CHECKOUT INPUT FIX — Ensure inputs are always visible
   ============================================================ */
.cbs-co-input {
    border: none !important;
    border-bottom: 2px solid #d4c9b5 !important;
    border-radius: 0 !important;
    padding: 10px 0 !important;
    font-size: 15px !important;
    color: var(--cbs-text, #1a1a2e) !important;
    background: transparent !important;
    outline: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
    display: block !important;
    font-family: var(--cbs-font-body, sans-serif) !important;
    transition: border-color 0.2s !important;
    -webkit-appearance: none !important;
}
.cbs-co-input:focus {
    border-bottom-color: var(--cbs-gold, #c9a84c) !important;
    background: transparent !important;
}
.cbs-co-input::placeholder {
    color: #bbb !important;
    font-size: 14px !important;
}
/* Textarea override */
textarea.cbs-co-input {
    border: 2px solid #d4c9b5 !important;
    border-radius: 8px !important;
    padding: 10px 14px !important;
    resize: vertical !important;
    min-height: 80px !important;
}
textarea.cbs-co-input:focus {
    border-color: var(--cbs-gold, #c9a84c) !important;
}
/* Select override */
select.cbs-co-input {
    border-bottom: 2px solid #d4c9b5 !important;
    cursor: pointer !important;
}
/* Form group label always visible */
.cbs-form-group label {
    display: block !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    color: #999 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px !important;
    margin-bottom: 6px !important;
}

/* Checkout page background ensure white */
.cbs-checkout-page {
    background: #fff;
    padding: 30px 24px;
}
.cbs-checkout-form-wrap {
    background: #fff;
}
