:root {
    --ink: #0D0F14;
    --ink-2: #1C1F28;
    --ink-3: #2B2F3E;
    --mist: #8891A8;
    --mist-2: #B4BCCF;
    --paper: #F5F6FA;
    --white: #FFFFFF;
    --gold: #C9A84C;
    --gold-2: #E8C97A;
    --gold-pale: #FDF6E3;
    --teal: #2BBFA4;
    --teal-pale: #E6FAF7;
    --red: #E05252;
    --radius-sm: 8px;
    --radius-md: 14px;
    --radius-lg: 22px;
    --shadow-sm: 0 2px 8px rgba(13,15,20,.06);
    --shadow-md: 0 6px 24px rgba(13,15,20,.10);
    --shadow-lg: 0 16px 48px rgba(13,15,20,.14);
    --font-display: 'Syne',sans-serif;
    --font-body: 'DM Sans',sans-serif;
    --transition: .2s cubic-bezier(.4,0,.2,1);
}

*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-body);
    background: var(--paper);
    color: var(--ink);
    font-size: 15px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

a {
    color: inherit;
    text-decoration: none;
}

button {
    cursor: pointer;
    border: none;
    background: none;
    font-family: inherit;
}

input, select {
    font-family: inherit;
}

/* HEADER */
.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--ink);
    border-bottom: 1px solid var(--ink-3);
}

.header-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.logo {
    display: flex;
    align-items: center;
    gap: 10px;
}

.logo-icon {
    font-size: 20px;
}

.logo-text {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 17px;
    color: var(--white);
    letter-spacing: .06em;
}

    .logo-text strong {
        color: var(--gold);
    }

.header-nav {
    display: flex;
    align-items: center;
    gap: 28px;
}

    .header-nav a {
        color: var(--mist-2);
        font-size: 13.5px;
        font-weight: 500;
        letter-spacing: .03em;
        transition: color var(--transition);
    }

        .header-nav a:hover {
            color: var(--white);
        }

.nav-cta {
    background: var(--gold);
    color: var(--ink) !important;
    padding: 8px 20px;
    border-radius: 99px;
    font-weight: 600 !important;
}

    .nav-cta:hover {
        background: var(--gold-2) !important;
    }

/* HERO */
.hero {
    position: relative;
    background: var(--ink);
    overflow: hidden;
    padding: 72px 24px 56px;
}

.hero-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.hero-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: .35;
}

.hero-orb-1 {
    width: 500px;
    height: 500px;
    background: radial-gradient(circle,#C9A84C 0%,transparent 70%);
    top: -150px;
    right: -100px;
}

.hero-orb-2 {
    width: 400px;
    height: 400px;
    background: radial-gradient(circle,#2BBFA4 0%,transparent 70%);
    bottom: -100px;
    left: -80px;
}

.hero-grid {
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
    background-size: 48px 48px;
}

.hero-content {
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(201,168,76,.12);
    border: 1px solid rgba(201,168,76,.3);
    color: var(--gold);
    font-size: 13px;
    font-weight: 500;
    padding: 6px 14px;
    border-radius: 99px;
    margin-bottom: 24px;
}

.hero-title {
    font-family: var(--font-display);
    font-size: clamp(40px,7vw,76px);
    font-weight: 800;
    color: var(--white);
    line-height: 1.05;
    letter-spacing: -.02em;
    margin-bottom: 16px;
}

    .hero-title em {
        font-style: normal;
        color: var(--gold);
    }

.hero-sub {
    color: var(--mist-2);
    font-size: 17px;
    max-width: 500px;
    font-weight: 300;
}

.hero-stats {
    position: relative;
    max-width: 1200px;
    margin: 40px auto 0;
    display: flex;
    align-items: center;
}

.stat {
    padding: 0 32px;
}

    .stat:first-child {
        padding-left: 0;
    }

.stat-num {
    display: block;
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 800;
    color: var(--gold);
    line-height: 1;
}

.stat-label {
    font-size: 12px;
    color: var(--mist);
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-top: 2px;
    display: block;
}

.stat-divider {
    width: 1px;
    height: 40px;
    background: rgba(255,255,255,.12);
}

/* CALCULATOR */
.calculator-section {
    width: 100%;
    padding: 0 0 80px;
}

.calc-container {
    background: var(--white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    margin-top: -32px;
    position: relative;
    z-index: 10;
}

/* STEPS BAR */
.steps-bar {
    display: flex;
    align-items: center;
    padding: 18px 28px;
    background: var(--ink);
    border-bottom: 1px solid var(--ink-3);
}

.step {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    opacity: .45;
    transition: opacity var(--transition);
}

    .step.active, .step.done {
        opacity: 1;
    }

.step-num {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 1.5px solid var(--mist);
    color: var(--mist);
    font-size: 12px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-family: var(--font-display);
    transition: all var(--transition);
}

.step.active .step-num {
    background: var(--gold);
    border-color: var(--gold);
    color: var(--ink);
}

.step.done .step-num {
    background: var(--teal);
    border-color: var(--teal);
    color: var(--white);
}

.step-label {
    font-size: 12px;
    color: var(--mist-2);
    font-weight: 500;
    letter-spacing: .04em;
    white-space: nowrap;
}

.step.active .step-label {
    color: var(--white);
}

.step-line {
    flex: 1;
    height: 1px;
    background: rgba(255,255,255,.12);
    margin: 0 12px;
    min-width: 16px;
}

/* FORM STEPS */
.form-step {
    display: none;
    padding: 26px 32px 32px;
    animation: fadeSlide .3s ease;
}

    .form-step.active {
        display: block;
    }

@keyframes fadeSlide {
    from {
        opacity: 0;
        transform: translateY(12px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.step-header {
    margin-bottom: 32px;
}

    .step-header h2 {
        font-family: var(--font-display);
        font-size: 26px;
        font-weight: 700;
        color: var(--ink);
        margin-bottom: 6px;
    }

    .step-header p {
        color: var(--mist);
        font-size: 14px;
    }

/* REGION PILLS */
.region-pills {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 8px;
}

.region-pill {
    padding: 8px 20px;
    border-radius: 99px;
    border: 1.5px solid var(--paper);
    background: var(--paper);
    color: var(--ink-3);
    font-size: 13.5px;
    font-weight: 500;
    transition: all var(--transition);
}

    .region-pill:hover {
        border-color: var(--gold);
        color: var(--gold);
    }

    .region-pill.active {
        background: var(--ink);
        border-color: var(--ink);
        color: var(--gold);
    }

/* ADDRESS CARD */
.address-card {
    background: var(--paper);
    border-radius: var(--radius-md);
    border: 1.5px solid #E8EAF0;
    margin-bottom: 24px;
}

.address-row {
    display: flex;
    align-items: flex-start;
    padding: 18px 20px;
    position: relative;
}

.address-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-top: 16px;
}

.pickup-icon {
    color: var(--teal);
    background: var(--teal-pale);
}

.dropoff-icon {
    color: var(--gold);
    background: var(--gold-pale);
}

.address-input-wrap {
    flex: 1;
    position: relative;
    padding-left: 14px;
}

.addr-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .1em;
    color: var(--mist);
    text-transform: uppercase;
    display: block;
    margin-bottom: 4px;
}

.addr-input {
    width: 100%;
    border: none;
    background: transparent;
    font-size: 16px;
    font-weight: 500;
    color: var(--ink);
    outline: none;
    padding: 4px 0;
}

    .addr-input::placeholder {
        color: var(--mist-2);
        font-weight: 400;
    }

.address-divider {
    display: flex;
    align-items: center;
    padding: 0 20px;
}

.divider-line {
    flex: 1;
    height: 1px;
    background: #E8EAF0;
}

.swap-btn {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--white);
    border: 1.5px solid #E8EAF0;
    color: var(--ink-3);
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 12px;
    transition: all var(--transition);
    flex-shrink: 0;
}

    .swap-btn:hover {
        background: var(--ink);
        color: var(--gold);
        border-color: var(--ink);
    }

/* CLEAR INPUT BUTTON */
.clear-input-btn{position:absolute;right:0;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:50%;background:var(--mist-2);color:var(--white);font-size:14px;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition);cursor:pointer;border:none;line-height:1;}
.address-input-wrap:hover .clear-input-btn,.clear-input-btn:focus{opacity:1;}
.addr-input{padding-right:28px;}

/* STOP ROWS */
.stop-row{display:flex;align-items:flex-start;padding:14px 20px;position:relative;border-top:1px solid #E8EAF0;}
.stop-icon{width:40px;height:40px;border-radius:10px;background:rgba(201,168,76,.12);color:var(--gold);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:12px;font-size:12px;font-weight:700;}
.remove-stop-btn{width:28px;height:28px;border-radius:50%;background:var(--paper);color:var(--mist);font-size:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:16px;border:1.5px solid #E0E3EC;cursor:pointer;transition:all var(--transition);}
.remove-stop-btn:hover{background:var(--red);color:var(--white);border-color:var(--red);}
.add-stop-btn{width:28px;height:28px;border-radius:50%;background:var(--paper);color:var(--ink-3);font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1.5px solid #E0E3EC;cursor:pointer;transition:all var(--transition);margin:0 8px;}
.add-stop-btn:hover{background:var(--gold);color:var(--ink);border-color:var(--gold);}
.address-divider-actions{display:flex;align-items:center;gap:4px;}

/* AIRPORT TERMINAL MODAL */
.terminal-modal{position:fixed;inset:0;background:rgba(13,15,20,.6);z-index:600;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);padding:20px;}
.terminal-modal-card{background:var(--white);border-radius:var(--radius-lg);padding:28px;width:100%;max-width:440px;box-shadow:var(--shadow-lg);}
.terminal-modal-card h4{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--ink);margin-bottom:6px;}
.terminal-modal-card p{font-size:13px;color:var(--mist);margin-bottom:18px;}
.terminal-list{display:flex;flex-direction:column;gap:8px;}
.terminal-btn{text-align:left;padding:12px 16px;border:1.5px solid #E8EAF0;border-radius:var(--radius-sm);font-size:14px;font-weight:500;color:var(--ink);background:var(--paper);cursor:pointer;transition:all var(--transition);}
.terminal-btn:hover{border-color:var(--gold);background:var(--gold-pale);color:var(--ink);}
.terminal-modal-skip{margin-top:14px;text-align:center;}
.terminal-modal-skip button{font-size:13px;color:var(--mist);cursor:pointer;background:none;border:none;text-decoration:underline;}

/* AUTOCOMPLETE */
.autocomplete-dropdown {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    background: var(--white);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
    z-index: 200;
    border: 1px solid #E8EAF0;
    max-height: 260px;
    overflow-y: auto;
    display: none;
}

    .autocomplete-dropdown.open {
        display: block;
    }

.autocomplete-item {
    padding: 12px 16px;
    cursor: pointer;
    border-bottom: 1px solid var(--paper);
    transition: background var(--transition);
}

    .autocomplete-item:last-child {
        border-bottom: none;
    }

    .autocomplete-item:hover {
        background: var(--paper);
    }

.autocomplete-main {
    font-weight: 500;
    font-size: 14px;
    color: var(--ink);
}

.autocomplete-secondary {
    font-size: 12px;
    color: var(--mist);
    margin-top: 1px;
}

/* FIELDS */
.fields-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 20px;
}

.field-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.field-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--ink-3);
    letter-spacing: .04em;
    display: flex;
    align-items: center;
    gap: 5px;
    text-transform: uppercase;
}

.field-input {
    border: 1.5px solid #E0E3EC;
    border-radius: var(--radius-sm);
    padding: 11px 14px;
    font-size: 15px;
    color: var(--ink);
    background: var(--white);
    transition: border-color var(--transition),box-shadow var(--transition);
    outline: none;
}

    .field-input:focus {
        border-color: var(--gold);
        box-shadow: 0 0 0 3px rgba(201,168,76,.12);
    }

/* COUNTER */
.counter-input {
    display: flex;
    align-items: center;
    border: 1.5px solid #E0E3EC;
    border-radius: var(--radius-sm);
    overflow: hidden;
    background: var(--white);
}

.counter-btn {
    width: 40px;
    height: 44px;
    background: transparent;
    color: var(--ink);
    font-size: 18px;
    font-weight: 300;
    transition: background var(--transition);
    flex-shrink: 0;
}

    .counter-btn:hover {
        background: var(--paper);
    }

.counter-val {
    flex: 1;
    text-align: center;
    border: none;
    outline: none;
    font-size: 15px;
    font-weight: 600;
    color: var(--ink);
    background: transparent;
    min-width: 40px;
}

.counter-input.small .counter-btn {
    width: 34px;
    height: 38px;
    font-size: 16px;
}

.counter-input.small .counter-val {
    font-size: 14px;
}

/* MODE TOGGLE */
.mode-toggle-wrap {
    margin-bottom: 20px;
}

.mode-toggle {
    display: flex;
    background: var(--paper);
    border-radius: var(--radius-sm);
    padding: 4px;
    gap: 2px;
    margin-top: 8px;
    border: 1.5px solid #E0E3EC;
}

.mode-btn {
    flex: 1;
    padding: 10px;
    border-radius: calc(var(--radius-sm) - 2px);
    font-size: 13.5px;
    font-weight: 500;
    color: var(--mist);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    transition: all var(--transition);
}

    .mode-btn.active {
        background: var(--ink);
        color: var(--gold);
        box-shadow: var(--shadow-sm);
    }

/* TOGGLE */
.toggle-field {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 0;
    border-top: 1px solid var(--paper);
    margin-top: 4px;
}

.toggle-title {
    font-weight: 600;
    font-size: 14px;
    color: var(--ink);
}

.toggle-desc {
    font-size: 12px;
    color: var(--mist);
    margin-top: 1px;
}

.toggle-switch {
    position: relative;
    display: inline-block;
    width: 44px;
    height: 24px;
    flex-shrink: 0;
}

    .toggle-switch input {
        opacity: 0;
        width: 0;
        height: 0;
    }

.toggle-slider {
    position: absolute;
    inset: 0;
    background: #E0E3EC;
    border-radius: 99px;
    cursor: pointer;
    transition: background .2s;
}

    .toggle-slider::before {
        content: '';
        position: absolute;
        width: 18px;
        height: 18px;
        left: 3px;
        top: 3px;
        background: var(--white);
        border-radius: 50%;
        transition: transform .2s;
        box-shadow: var(--shadow-sm);
    }

input:checked + .toggle-slider {
    background: var(--teal);
}

    input:checked + .toggle-slider::before {
        transform: translateX(20px);
    }

/* EXPAND-SELECT DROPDOWN */
.expand-select {
    border: 1.5px solid #E8EAF0;
    border-radius: var(--radius-sm);
    background: var(--white);
    margin-bottom: 10px;
    overflow: hidden;
    transition: border-color var(--transition);
}
.expand-select:focus-within,
.expand-select.open { border-color: var(--gold); }
.expand-select-trigger {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 14px;
    background: none;
    cursor: pointer;
    text-align: left;
    transition: background var(--transition);
}
.expand-select-trigger:hover { background: var(--paper); }
.expand-select-icon {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gold);
    flex-shrink: 0;
}
.expand-select-info { flex: 1; min-width: 0; }
.expand-select-label {
    display: block;
    font-size: 10.5px;
    font-weight: 700;
    color: var(--mist);
    text-transform: uppercase;
    letter-spacing: .07em;
    line-height: 1.2;
}
.expand-select-val {
    display: block;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--ink);
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.expand-select-arrow {
    color: var(--mist-2);
    flex-shrink: 0;
    transition: transform var(--transition);
}
.expand-select.open .expand-select-arrow { transform: rotate(180deg); }
.expand-select-panel {
    display: none;
    border-top: 1.5px solid #F0F2F8;
    padding: 4px 14px 10px;
    background: #FAFBFD;
}
.expand-select.open .expand-select-panel { display: block; }
.expand-select-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0;
}
.expand-select-row:not(:last-child) { border-bottom: 1px solid #EAECF3; }
.expand-select-row-info { flex: 1; min-width: 0; }
.expand-select-row-label { display: block; font-size: 13px; font-weight: 600; color: var(--ink); }
.expand-select-row-sub { display: block; font-size: 11px; color: var(--mist); margin-top: 1px; }
.counter-input-sm .counter-btn{width:28px;height:28px;font-size:15px;}
.counter-input-sm .counter-val{width:32px;font-size:13px;}

.return-fields {
    padding: 16px 0;
}

/* BUTTONS */
.btn-next {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--ink);
    color: var(--gold);
    padding: 14px 28px;
    border-radius: 99px;
    font-size: 15px;
    font-weight: 600;
    font-family: var(--font-display);
    letter-spacing: .03em;
    transition: all var(--transition);
    margin-top: 24px;
}

    .btn-next:hover {
        background: var(--ink-3);
        transform: translateY(-1px);
        box-shadow: var(--shadow-md);
    }

    .btn-next:disabled {
        opacity: .4;
        cursor: not-allowed;
        transform: none;
    }

.btn-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--paper);
    color: var(--ink-3);
    padding: 14px 24px;
    border-radius: 99px;
    font-size: 14px;
    font-weight: 500;
    transition: all var(--transition);
    border: 1.5px solid #E0E3EC;
}

    .btn-back:hover {
        background: #EBEBEB;
    }

.step-nav {
    display: flex;
    gap: 12px;
    margin-top: 24px;
    align-items: center;
}

.btn-calculate {
    background: var(--teal);
    color: var(--white);
}

    .btn-calculate:hover {
        background: #22A892;
    }

.spin {
    animation: spin 1s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* FARE TOGGLE */
.fare-toggle-bar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;}
.fare-toggle-label{font-size:12px;font-weight:600;color:var(--mist);text-transform:uppercase;letter-spacing:.05em;}
.fare-toggle{display:flex;background:var(--paper);border-radius:99px;padding:3px;gap:2px;border:1.5px solid #E0E3EC;}
.fare-tog-btn{padding:6px 16px;border-radius:99px;font-size:13px;font-weight:500;color:var(--mist);transition:all var(--transition);}
.fare-tog-btn.active{background:var(--ink);color:var(--gold);box-shadow:var(--shadow-sm);}

/* VEHICLES — single-column list */
.vehicles-list{display:flex;flex-direction:column;gap:10px;margin-bottom:8px;}

.vehicle-card{border:2px solid #E8EAF0;border-radius:var(--radius-md);overflow:hidden;transition:all var(--transition);cursor:pointer;background:var(--white);}
.vehicle-card:hover{border-color:var(--gold);box-shadow:var(--shadow-md);}
.vehicle-card.selected{border-color:var(--ink);background:var(--ink);}

/* Horizontal card header row */
.vehicle-card-header{display:flex;align-items:center;gap:0;padding:0;}

.vehicle-img-wrap{background:var(--paper);width:150px;min-width:150px;height:110px;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;flex-shrink:0;transition:all var(--transition);}
.vehicle-card.selected .vehicle-img-wrap{background:var(--ink-3);}
.vehicle-card.expanded .vehicle-img-wrap{width:110px;min-width:110px;height:80px;}

.vehicle-img{width:100%;height:100%;object-fit:contain;padding:8px;}
.vehicle-img-placeholder{color:var(--mist-2);}

.vehicle-badge{position:absolute;top:4px;right:4px;background:var(--teal);color:var(--white);font-size:10px;font-weight:600;padding:2px 6px;border-radius:99px;}

.vehicle-info{flex:1;padding:12px 14px;display:flex;flex-direction:column;gap:4px;min-width:0;border-right:1px solid #E8EAF0;}
.vehicle-card.selected .vehicle-info{border-color:var(--ink-3);}

.vehicle-name{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--ink);}
.vehicle-card.selected .vehicle-name{color:var(--white);}

.vehicle-model{font-size:11px;color:var(--mist);margin-top:1px;}
.vehicle-card.selected .vehicle-model{color:var(--mist-2);}

.vehicle-card-wrap{display:flex;align-items:flex-start;gap:8px;margin-bottom:0;}
.vehicle-card-wrap .vehicle-card{flex:1;min-width:0;}

.vehicle-specs{display:flex;align-items:center;gap:8px;margin-top:2px;flex-wrap:wrap;}
.spec{font-size:11px;color:var(--mist);display:flex;align-items:center;gap:3px;}
.vehicle-card.selected .spec{color:var(--mist-2);}
.spec-sep{font-size:11px;color:#D0D3DC;line-height:1;}

/* Info icon — sits OUTSIDE the card, right side */
.vehicle-info-icon{position:relative;display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;cursor:pointer;color:var(--teal);margin-top:14px;border-radius:50%;transition:background .15s;}
.vehicle-info-icon:hover,.vehicle-info-icon:focus{background:rgba(0,128,100,.1);outline:none;}
.vehicle-info-icon svg{pointer-events:none;}
.vehicle-info-tooltip{display:none;position:absolute;right:calc(100% + 8px);top:50%;transform:translateY(-50%);background:var(--ink);color:var(--white);border-radius:8px;padding:10px 12px;min-width:190px;z-index:9999;box-shadow:0 4px 20px rgba(0,0,0,.3);pointer-events:none;white-space:nowrap;}
.vehicle-info-icon:hover .vehicle-info-tooltip,.vehicle-info-icon:focus .vehicle-info-tooltip{display:block;}
.tip-row{display:flex;justify-content:space-between;gap:16px;font-size:11.5px;padding:2px 0;}
.tip-row span:first-child{color:rgba(255,255,255,.65);}
.tip-row span:last-child{font-weight:700;white-space:nowrap;}
.tip-footer{border-top:1px solid rgba(255,255,255,.15);margin-top:6px;padding-top:6px;font-size:10px;color:rgba(255,255,255,.45);text-align:center;}

/* Price column on the right */
.vehicle-price-col{display:flex;flex-direction:column;align-items:flex-end;padding:12px 16px;flex-shrink:0;min-width:120px;text-align:right;gap:2px;}

.price-label{font-size:10px;color:var(--mist);text-transform:uppercase;letter-spacing:.05em;}
.price-val{font-size:20px;font-weight:800;color:var(--ink);line-height:1.1;}
.vehicle-card.selected .price-val{color:var(--gold);}

.price-val-range{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--teal);line-height:1.1;}
.vehicle-card.selected .price-val-range{color:var(--gold-2);}

.btn-select-vehicle{background:var(--paper);color:var(--ink);border:1.5px solid #E0E3EC;padding:8px 18px;border-radius:99px;font-size:13px;font-weight:600;transition:all var(--transition);}
.btn-select-vehicle:hover,.vehicle-card.selected .btn-select-vehicle{background:var(--gold);color:var(--ink);border-color:var(--gold);}

.vehicle-card.selected .vehicle-breakdown{background:var(--ink-2);border-color:var(--ink-3);}
.vehicle-card.selected .bd-total-row{border-color:var(--ink-3);color:var(--white);}
.vehicle-card.selected .breakdown-row .label{color:var(--mist);}
.vehicle-card.selected .breakdown-row .val{color:var(--mist-2);}

/* 13cabs reference row in breakdown */
.bd-13cabs-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0 4px;margin-top:8px;border-top:1px dashed #E0E3EC;font-size:13px;color:var(--mist);}
.bd-13cabs-row .val{color:var(--teal);font-weight:600;}
.vehicle-card.selected .bd-13cabs-row{border-color:var(--ink-3);}
.vehicle-card.selected .bd-13cabs-row .val{color:var(--gold-2);}
.bd-saving-tag{display:inline-block;background:#16a34a;color:#fff;font-size:10px;font-weight:700;padding:1px 5px;border-radius:3px;margin-left:4px;vertical-align:middle;}

/* SEATS */
.seats-grid {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 8px;
}

.seat-card {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 18px 20px;
    background: var(--paper);
    border-radius: var(--radius-md);
    border: 1.5px solid #E8EAF0;
}

.seat-icon {
    font-size: 28px;
    flex-shrink: 0;
}

.seat-info {
    flex: 1;
}

    .seat-info h4 {
        font-weight: 600;
        font-size: 15px;
        color: var(--ink);
    }

.seat-price {
    font-size: 12.5px;
    color: var(--mist);
    margin-top: 2px;
}

/* QUOTE */
.quote-error {
    background: #FEE2E2;
    border: 1px solid #FCA5A5;
    color: var(--red);
    padding: 16px 20px;
    border-radius: var(--radius-md);
    font-size: 14px;
    margin-bottom: 20px;
}

.quote-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--teal-pale);
    color: var(--teal);
    font-size: 13px;
    font-weight: 600;
    padding: 6px 14px;
    border-radius: 99px;
    margin-bottom: 8px;
}

.quote-ref {
    font-size: 12px;
    color: var(--mist);
    font-family: var(--font-display);
    letter-spacing: .06em;
}

.quote-hero {
    background: var(--ink);
    border-radius: var(--radius-lg);
    padding: 32px;
    margin: 20px 0;
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}

.quote-vehicle-name {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 700;
    color: var(--white);
    flex: 1;
    min-width: 160px;
}

.quote-total-wrap {
    text-align: right;
}

.quote-total-label {
    font-size: 11px;
    color: var(--mist);
    text-transform: uppercase;
    letter-spacing: .08em;
    display: block;
}

.quote-total {
    font-size: 44px;
    font-weight: 800;
    color: var(--gold);
    display: block;
    line-height: 1.1;
}

.quote-tags {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    width: 100%;
    margin-top: 4px;
}

.quote-tag {
    font-size: 12px;
    background: rgba(255,255,255,.08);
    color: var(--mist-2);
    padding: 4px 10px;
    border-radius: 99px;
}

.quote-breakdown {
    background: var(--paper);
    border-radius: var(--radius-md);
    padding: 24px;
}

.breakdown-title {
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 700;
    color: var(--ink);
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 16px;
}

.breakdown-lines {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.breakdown-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14px;
}

    .breakdown-row .label {
        color: var(--mist);
    }

    .breakdown-row .val {
        color: var(--ink);
        font-weight: 500;
    }

.breakdown-total-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 16px;
    margin-top: 16px;
    border-top: 1.5px solid #E0E3EC;
    font-size: 16px;
    font-weight: 700;
}

.breakdown-total-val {
    font-size: 22px;
    color: var(--ink);
}

.quote-actions {
    display: flex;
    gap: 12px;
    margin-top: 28px;
    align-items: center;
    flex-wrap: wrap;
}

.btn-book {
    background: var(--gold);
    color: var(--ink);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 24px;
    border-radius: 99px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all var(--transition);
    border: none;
}

    .btn-book:hover {
        background: var(--gold-2);
        transform: translateY(-1px);
        box-shadow: var(--shadow-md);
    }

.btn-new-quote {
    background: var(--paper);
    color: var(--ink-3);
    border: 1.5px solid #E0E3EC;
    padding: 14px 24px;
    border-radius: 99px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all var(--transition);
}

    .btn-new-quote:hover {
        background: #EBEBEB;
    }

/* TRUST */
.trust-strip {
    background: var(--ink);
    padding: 20px 24px;
}

.trust-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 48px;
    flex-wrap: wrap;
}

.trust-item {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--mist-2);
    font-size: 13.5px;
    font-weight: 500;
}

    .trust-item svg {
        color: var(--gold);
        flex-shrink: 0;
    }

/* FOOTER */
.site-footer {
    background: var(--ink-2);
    border-top: 1px solid var(--ink-3);
    padding: 24px;
}

.footer-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.footer-brand p {
    font-size: 12px;
    color: var(--mist);
    margin-top: 4px;
}

.footer-links {
    display: flex;
    align-items: center;
    gap: 20px;
    font-size: 13px;
    color: var(--mist);
}

    .footer-links a:hover {
        color: var(--gold);
    }

@media(max-width:768px) {
    .hero {
        padding: 48px 20px 40px;
    }

    .stat {
        padding: 0 16px;
    }

    .form-step {
        padding: 24px 20px;
    }

    .fields-grid {
        grid-template-columns: 1fr;
    }

    .vehicles-grid {
        grid-template-columns: 1fr;
    }

    .hero-title {
        font-size: 38px;
    }

    .steps-bar {
        padding: 16px 20px;
        overflow-x: auto;
    }

    .step-label {
        display: none;
    }

    .trust-inner {
        gap: 24px;
    }

    .quote-hero {
        flex-direction: column;
        text-align: center;
    }

    .quote-total-wrap {
        text-align: center;
    }

    .header-nav a:not(.nav-cta) {
        display: none;
    }
}

/* ══════════════════════════════════════════════
   MAIN LAYOUT  —  form+map (left) | vehicles (right)
   ══════════════════════════════════════════════ */
.calculator-section{width:100%;background:var(--paper);}

.calc-layout{
  display:grid;
  grid-template-columns:560px 1fr;
  gap:0;
  align-items:start;
}

/* ── Left: Trip details + map ────────────────── */
.calc-panel{
  background:var(--white);
  box-shadow:3px 0 28px rgba(13,15,20,.08);
  position:relative;
  z-index:10;
  min-height:calc(100vh - 64px);
  overflow:visible;
}

/* ── Map — inline card inside the form column ── */
.map-panel{
  width:100%;
  height:220px;
  border-radius:var(--radius-md);
  overflow:hidden;
  background:var(--ink-2);
  position:relative;
  margin:16px 0 20px;
  border:1px solid #E8EAF0;
}

/* Info bar — glassmorphism overlay at bottom of map */
.map-info-bar{
  position:absolute;bottom:0;left:0;right:0;z-index:10;
  display:flex;gap:16px;
  background:rgba(13,15,20,.72);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  padding:8px 16px;
}
.map-info-item{display:flex;align-items:center;gap:6px;color:rgba(255,255,255,.85);font-size:12px;font-weight:500;}
.map-info-item svg{color:var(--gold);flex-shrink:0;}

/* Map canvas fills panel; placeholder overlays it */
.map-body{position:absolute;inset:0;}
#tripMap{position:absolute;inset:0;}
.map-placeholder{
  position:absolute;inset:0;z-index:5;
  background:linear-gradient(150deg,#12151D 0%,#1B1F2C 100%);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:12px;text-align:center;padding:32px;
}
.map-placeholder svg{color:rgba(255,255,255,.13);}
.map-placeholder p{font-size:12.5px;max-width:180px;line-height:1.6;color:rgba(255,255,255,.38);letter-spacing:.01em;}

/* ── Right: Vehicles — sticky full-height ──────── */
.vehicles-panel{
  position:sticky;
  top:64px;
  height:calc(100vh - 64px);
  overflow:hidden;
  background:var(--white);
  display:flex;
  flex-direction:column;
  border-left:1px solid #EAEDF5;
}

/* Loading overlay — absolute, clipped to the panel */
.vehicles-loading{
  position:absolute;inset:0;z-index:30;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  display:none;
  align-items:center;
  justify-content:center;
}
.vehicles-loading-inner{
  display:flex;flex-direction:column;align-items:center;
  gap:14px;color:var(--mist);font-size:13.5px;font-weight:500;
}
.spinner{
  width:34px;height:34px;
  border:3px solid #E8EAF0;
  border-top-color:var(--gold);
  border-radius:50%;
  animation:spin .75s linear infinite;
}

/* Inner scrollable wrapper */
.vehicles-scroll{
  flex:1;
  overflow-y:auto;
  display:flex;
  flex-direction:column;
}

.vehicles-section-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:13px 20px;flex-shrink:0;
  border-bottom:1px solid #EAEDF5;
  background:var(--white);
  position:sticky;top:0;z-index:4;
}
.vehicles-section-title{font-size:11px;font-weight:700;color:var(--mist);text-transform:uppercase;letter-spacing:.1em;}
.vehicles-panel .trip-summary-bar{margin:0;border-radius:0;padding:10px 20px;flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.07);}
.vehicles-panel .vehicles-list{padding:10px 16px 40px;flex:1;}
.vehicles-panel .vehicle-card-wrap{margin-bottom:8px;}
.vehicles-panel #priceToggleWrap{padding:10px 20px;border-bottom:1px solid #EAEDF5;flex-shrink:0;}

/* ── Trip summary bar ────────────────────────── */
.trip-summary-bar{display:flex;align-items:center;flex-wrap:wrap;gap:6px;background:var(--ink);padding:11px 20px;}
.ts-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--mist-2);}
.ts-item svg{color:var(--gold);flex-shrink:0;}
.ts-sep{color:var(--ink-3);font-size:12px;padding:0 2px;}

/* ── Price range toggle ──────────────────────── */
.price-toggle-wrap{display:flex;gap:6px;}
.price-toggle-btn{padding:6px 16px;border-radius:99px;font-size:12px;font-weight:500;color:var(--mist);border:1.5px solid #E0E3EC;background:var(--paper);cursor:pointer;transition:all var(--transition);}
.price-toggle-btn.active{background:var(--ink);color:var(--gold);border-color:var(--ink);}

/* ── Vehicle card expansion ──────────────────── */
.vehicle-breakdown{display:none;padding:16px;border-top:1.5px solid #E8EAF0;background:var(--paper);}
.vehicle-card.expanded .vehicle-breakdown{display:block;}
.vehicle-card.expanded{box-shadow:var(--shadow-lg);}
.bd-loading{font-size:13px;color:var(--mist);text-align:center;padding:8px 0;}
.bd-total-row{display:flex;justify-content:space-between;align-items:center;padding-top:10px;margin-top:10px;border-top:1.5px solid #E0E3EC;font-size:14px;font-weight:700;color:var(--ink);}
.bd-comp .label{font-size:12px;color:var(--mist);}
.bd-comp .val{font-size:12px;}
.vehicle-card.selected .bd-comp .label{color:var(--mist-2);}
.bd-comps-detail{background:rgba(0,0,0,.03);border-radius:5px;padding:3px 8px;margin:2px 0 4px;}
.vehicle-card.selected .bd-comps-detail{background:rgba(255,255,255,.06);}
.bd-comp-detail .label{font-size:11px;color:var(--mist);padding:2px 0;}
.bd-comp-detail .val{font-size:11px;padding:2px 0;}
.bd-sep{border:none;border-top:1px solid #E0E3EC;margin:7px 0;}
.vehicle-card.selected .bd-sep{border-color:var(--ink-3);}
.bd-subtotal-row{padding:4px 0;}
.bd-subtotal-row .label{font-weight:600;color:var(--ink);font-size:13px;}
.bd-subtotal-row .val{font-weight:700;color:var(--teal);font-size:13px;}
.vehicle-card.selected .bd-subtotal-row .label{color:var(--white);}
.vehicle-card.selected .bd-subtotal-row .val{color:var(--gold-2);}
.bd-dist-toggle{cursor:pointer;user-select:none;}
.bd-dist-toggle:hover .label{opacity:.8;}
.bd-toggle-icon{font-size:10px;opacity:.55;margin-left:3px;}
.bd-extra .label{font-size:12px;}
.bd-extra .val{font-size:12px;}
.bd-rule-row{background:rgba(0,128,96,.07);border-radius:4px;padding:5px 6px;margin:2px -4px;}
.bd-rule-row .label{font-size:12px;color:var(--ink);display:flex;align-items:center;gap:5px;}
.bd-rule-row .val{font-size:11px;color:var(--mist);font-style:italic;}
.bd-rule-badge{display:inline-block;background:#008060;color:#fff;font-size:9px;font-weight:700;padding:1px 5px;border-radius:3px;letter-spacing:.5px;flex-shrink:0;}
.bd-rule-detail{font-size:11px;color:var(--mist);font-style:italic;margin-left:2px;}
.vehicle-card.selected .bd-rule-row{background:rgba(255,255,255,.08);}
.vehicle-card.selected .bd-rule-row .label{color:var(--mist-2);}
.vehicle-card.selected .bd-rule-badge{background:var(--gold-2);color:var(--ink);}
.card-tap-hint{font-size:10px;color:var(--mist);font-style:italic;margin-top:4px;}
.vehicle-card.selected .card-tap-hint{color:var(--mist-2);}
.vehicle-card.expanded .card-tap-hint::after{content:' ▴';}
.vehicle-card:not(.expanded) .card-tap-hint::after{content:' ▾';}

/* ── Admin styles ────────────────────────────── */
.admin-page{max-width:1200px;margin:0 auto;padding:32px 24px 80px;}
.admin-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;gap:16px;flex-wrap:wrap;}
.admin-page-header h1{font-family:var(--font-display);font-size:28px;font-weight:800;color:var(--ink);}
.admin-nav-tabs{display:flex;gap:4px;flex-wrap:wrap;margin-top:16px;}
.tab-btn{padding:8px 16px;border-radius:99px;font-size:13px;font-weight:500;color:var(--mist);background:var(--paper);border:1.5px solid #E0E3EC;cursor:pointer;transition:all var(--transition);text-decoration:none;}
.tab-btn.active{background:var(--ink);color:var(--gold);border-color:var(--ink);}
.tab-btn:hover:not(.active){border-color:var(--gold);color:var(--gold);}
.admin-tab{animation:fadeSlide .2s ease;}
.admin-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.admin-section-header h3{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--ink);}
.admin-table-wrap{overflow-x:auto;border-radius:var(--radius-md);border:1.5px solid #E8EAF0;background:var(--white);}
.admin-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.admin-table th{background:var(--ink);color:var(--mist-2);text-align:left;padding:11px 14px;font-size:11px;letter-spacing:.05em;text-transform:uppercase;font-weight:600;}
.admin-table td{padding:11px 14px;border-bottom:1px solid var(--paper);color:var(--ink);vertical-align:middle;}
.admin-table tr:last-child td{border-bottom:none;}
.admin-table tr:hover td{background:#FAFBFF;}
.td-addr{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.td-price{font-weight:700;color:var(--teal);}
.td-empty{text-align:center;color:var(--mist);padding:28px!important;font-style:italic;}
.td-actions{display:flex;gap:6px;align-items:center;}
.row-inactive td{opacity:.5;}
.sync-badge{font-size:11px;padding:2px 8px;border-radius:99px;font-weight:600;}
.sync-pending{background:rgba(201,168,76,.15);color:var(--gold);}
.sync-synced{background:var(--teal-pale);color:var(--teal);}
.sync-failed{background:#FEE2E2;color:var(--red);}
.active-badge{font-size:11px;padding:3px 10px;border-radius:99px;font-weight:600;}
.active-badge.active{background:var(--teal-pale);color:var(--teal);}
.active-badge.inactive{background:var(--paper);color:var(--mist);}
.rule-type-badge{background:rgba(201,168,76,.1);color:var(--gold);font-size:11px;padding:2px 8px;border-radius:4px;font-weight:600;}
.btn-admin-save{background:var(--teal);color:var(--white);border:none;padding:9px 18px;border-radius:99px;font-size:13px;font-weight:600;cursor:pointer;transition:all var(--transition);}
.btn-admin-save:hover{background:#22A892;}
.btn-admin-edit{background:var(--paper);color:var(--ink);border:1.5px solid #E0E3EC;padding:6px 14px;border-radius:99px;font-size:12px;font-weight:600;cursor:pointer;}
.btn-admin-delete{background:#FEE2E2;color:var(--red);border:none;padding:6px 14px;border-radius:99px;font-size:12px;font-weight:600;cursor:pointer;}
.admin-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;}
.admin-card{background:var(--white);border:1.5px solid #E8EAF0;border-radius:var(--radius-md);padding:20px;}
.admin-card.wide{grid-column:1/-1;}
.admin-card h4{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--ink);margin-bottom:4px;}
.admin-card-sub{font-size:12px;color:var(--mist);margin-bottom:16px;}
.admin-form{display:flex;flex-direction:column;gap:12px;}
.grid-form{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;}
.grid-form-full{grid-column:1/-1;}
.admin-modal{position:fixed;inset:0;background:rgba(13,15,20,.7);z-index:500;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);padding:16px;}
.admin-modal-card{background:var(--white);border-radius:var(--radius-lg);padding:32px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);}
.admin-modal-wide{max-width:760px;}
.admin-modal-card h4{font-family:var(--font-display);font-size:20px;font-weight:700;margin-bottom:20px;}
.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:8px;}
.vr-image-row{display:flex;align-items:center;gap:12px;}
.vr-image-upload-wrap{display:flex;flex-direction:column;flex:1;gap:4px;}
.admin-alert{padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:18px;font-size:13.5px;font-weight:500;}
.admin-alert-success{background:#E6F9F5;color:#1A6B57;border:1px solid #A3D9CC;}
.admin-alert-error{background:#FEF0F0;color:#B33A3A;border:1px solid #EFAAAA;}
.td-conditions{max-width:240px;}
.cond-tag{display:inline-block;background:#F0F2F8;border:1px solid #D8DCE8;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:500;color:var(--ink);margin:2px 2px 2px 0;white-space:nowrap;}
.rule-basic-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px;}
.rule-conditions-label{font-size:13px;font-weight:600;color:var(--ink);margin-bottom:10px;padding-bottom:6px;border-bottom:1.5px solid #E0E3EC;}
.rule-conditions-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px;}
.cond-group{background:#F8F9FC;border:1px solid #E4E7EF;border-radius:8px;padding:10px 12px;}
.cond-group-wide{grid-column:1/-1;}
.cond-toggle-label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--ink);cursor:pointer;margin:0;}
.cond-toggle-label input[type="checkbox"]{width:15px;height:15px;accent-color:var(--ink);cursor:pointer;flex-shrink:0;}
.cond-fields .field-label{font-size:12px;}
.cond-fields .field-input{font-size:13px;padding:7px 10px;}
.field-group-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.days-check-row{display:flex;gap:14px;flex-wrap:wrap;}
.days-check-row label{display:flex;align-items:center;gap:5px;font-size:13px;cursor:pointer;}
.days-check-row input[type="checkbox"]{width:14px;height:14px;accent-color:var(--ink);}
.vehicle-cb-grid{display:flex;flex-wrap:wrap;gap:8px 20px;}
.vehicle-cb-label{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;cursor:pointer;padding:5px 10px;border-radius:6px;border:1px solid #E4E7EF;background:var(--white);}
.vehicle-cb-label:has(input:checked){background:var(--ink);color:var(--white);border-color:var(--ink);}
.vehicle-cb-label input[type="checkbox"]{width:14px;height:14px;accent-color:var(--gold);cursor:pointer;}
.admin-login-wrap{min-height:calc(100vh - 128px);display:flex;align-items:center;justify-content:center;padding:40px 24px;background:var(--paper);}
.admin-login-card{background:var(--white);border-radius:var(--radius-lg);padding:40px;width:100%;max-width:400px;box-shadow:var(--shadow-lg);}
.admin-login-header{text-align:center;margin-bottom:28px;}
.admin-login-header h2{font-family:var(--font-display);font-size:22px;font-weight:700;margin-top:8px;}
.admin-login-header p{color:var(--mist);font-size:13px;margin-top:4px;}
.login-back{text-align:center;margin-top:20px;font-size:13px;color:var(--mist);}
.login-back a:hover{color:var(--gold);}
.nav-admin-active{color:var(--gold)!important;}
.filter-bar{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap;}
.filter-bar .field-input{max-width:200px;}
.pagination{display:flex;align-items:center;gap:16px;justify-content:center;margin-top:24px;}
.page-num{font-size:14px;color:var(--mist);}
.mb-16{margin-bottom:16px;}
.mb-8{margin-bottom:8px;}
.w-full{width:100%;}
.flash-success{background:var(--teal-pale);color:var(--teal);border:1px solid rgba(43,191,164,.3);padding:12px 24px;text-align:center;font-weight:500;font-size:14px;}
.seat-qty{display:flex;flex-direction:column;align-items:center;gap:4px;}
.seat-qty-label{font-size:11px;color:var(--mist);font-weight:500;}

/* ── Responsive ──────────────────────────────── */
@media(max-width:1400px){
  .calc-layout{grid-template-columns:520px 1fr;}
}
@media(max-width:1200px){
  .calc-layout{grid-template-columns:460px 1fr;}
}
@media(max-width:1080px){
  .calc-layout{grid-template-columns:420px 1fr;}
  .form-step{padding:22px 24px 28px;}
}
@media(max-width:860px){
  /* Stack: form+map on top, vehicles below */
  .calculator-section{padding-bottom:0;}
  .calc-layout{grid-template-columns:1fr;padding:16px 16px 24px;}
  .calc-panel{
    border-radius:var(--radius-lg);
    box-shadow:var(--shadow-lg);
    min-height:auto;
    overflow:visible;
  }
  .map-panel{height:200px;margin:14px 0 18px;}
  .vehicles-panel{
    height:auto;
    position:relative;top:auto;
    border-radius:var(--radius-lg);
    border:1px solid #EAEDF5;
    margin-top:16px;
  }
  .vehicles-scroll{overflow-y:visible;}
  .grid-form{grid-template-columns:1fr 1fr;}
  .admin-cards{grid-template-columns:1fr;}
}
@media(max-width:640px){
  .calc-layout{padding:12px 12px 20px;}
  .calc-panel{border-radius:var(--radius-md);}
  .map-panel{height:170px;margin:12px 0 16px;}
  .vehicles-panel{border-radius:var(--radius-md);margin-top:12px;}
  .form-step{padding:18px 16px 24px;}
  .vehicle-img-wrap{width:80px;min-width:80px;height:64px;}
  .vehicle-price-col{min-width:88px;padding:10px;}
  .price-val{font-size:16px;}
  .grid-form{grid-template-columns:1fr;}
  .admin-nav-tabs{gap:4px;}
  .tab-btn{font-size:11px;padding:6px 10px;}
}
