:root {
    --ex-ink: #17231f;
    --ex-forest: #355238;
    --ex-forest-dark: #213a2a;
    --ex-sage: #dfe8dc;
    --ex-moss: #6f816a;
    --ex-orange: #e17828;
    --ex-sand: #efe5d2;
    --ex-canvas: #f6f1e7;
    --ex-card: #fffdf8;
    --ex-line: #ded7ca;
    --ex-muted: #66716b;
    --ex-danger: #b83f3f;
    --ex-warning: #a96c18;
    --ex-success: #25745a;
    --ex-shadow: 0 14px 42px rgba(30, 48, 38, .09);
    --ex-radius: 18px;
    --ex-max: 1360px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ex-canvas); }
body.experience-site {
    margin: 0;
    background: var(--ex-canvas);
    color: var(--ex-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 15px;
    line-height: 1.55;
}
body.experience-site a { color: inherit; }
body.experience-site h1,
body.experience-site h2,
body.experience-site h3,
body.experience-site h4 { margin: 0; line-height: 1.12; letter-spacing: -.025em; }
body.experience-site h1 { font-size: clamp(38px, 5vw, 72px); }
body.experience-site h2 { font-size: clamp(25px, 3vw, 38px); }
body.experience-site h3 { font-size: 20px; }
body.experience-site p { margin: 0; }

.ex-shell { width: min(calc(100% - 38px), var(--ex-max)); margin-inline: auto; }
.ex-narrow { width: min(calc(100% - 38px), 980px); margin-inline: auto; }
.ex-section { padding-block: 58px; }
.ex-section.compact { padding-block: 30px; }
.ex-eyebrow { display: block; color: var(--ex-orange); font-size: 11px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.ex-script { color: var(--ex-forest); font-family: "Segoe Script", "Bradley Hand", cursive; font-size: clamp(25px, 4vw, 54px); font-weight: 500; line-height: 1; }
.ex-muted { color: var(--ex-muted); }

.ex-header {
    position: sticky;
    top: 0;
    z-index: 2000;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    min-height: 68px;
    padding: 9px max(18px, calc((100vw - var(--ex-max)) / 2));
    border-bottom: 1px solid rgba(53,82,56,.12);
    background: rgba(255, 253, 248, .94);
    backdrop-filter: blur(18px);
    transition: min-height .18s ease, box-shadow .18s ease;
}
.ex-header.is-scrolled { min-height: 58px; box-shadow: 0 7px 28px rgba(31,52,39,.09); }
.ex-brand { display: inline-flex; align-items: center; gap: 11px; text-decoration: none; }
.ex-brand-mark { position: relative; width: 36px; height: 28px; }
.ex-brand-mark::before,
.ex-brand-mark::after { content: ""; position: absolute; bottom: 2px; border-left: 17px solid transparent; border-right: 17px solid transparent; border-bottom: 25px solid var(--ex-forest-dark); }
.ex-brand-mark::after { left: 10px; bottom: 2px; border-left-width: 11px; border-right-width: 11px; border-bottom-width: 17px; border-bottom-color: var(--ex-card); }
.ex-brand strong { display: block; font-size: 16px; letter-spacing: .15em; }
.ex-brand small { display: block; margin-top: 1px; color: var(--ex-muted); font-size: 9px; letter-spacing: .08em; }
.ex-nav { display: flex; justify-content: center; align-items: center; gap: 25px; }
.ex-nav a { position: relative; padding: 11px 0; color: #34413b; font-size: 13px; font-weight: 670; text-decoration: none; }
.ex-nav a::after { content: ""; position: absolute; right: 0; bottom: 6px; left: 0; height: 2px; background: var(--ex-orange); transform: scaleX(0); transition: transform .16s ease; }
.ex-nav a:hover::after,
.ex-nav a[aria-current="page"]::after { transform: scaleX(1); }
.ex-header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.ex-menu-toggle { display: none; width: 40px; height: 40px; padding: 0; border: 1px solid var(--ex-line); border-radius: 10px; background: var(--ex-card); }
.ex-menu-toggle span { display: block; width: 18px; height: 2px; margin: 4px auto; background: var(--ex-ink); }

.ex-button,
body.experience-site button,
body.experience-site input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 17px;
    border: 1px solid transparent;
    border-radius: 10px;
    background: var(--ex-forest);
    color: #fff;
    box-shadow: none;
    font: inherit;
    font-size: 13px;
    font-weight: 780;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: transform .15s ease, background .15s ease, border-color .15s ease;
}
.ex-button:hover,
body.experience-site button:hover { transform: translateY(-1px); background: var(--ex-forest-dark); }
.ex-button.orange { background: var(--ex-orange); }
.ex-button.orange:hover { background: #c96820; }
.ex-button.secondary,
body.experience-site button.secondary { border-color: var(--ex-line); background: var(--ex-card); color: var(--ex-ink); }
.ex-button.ghost { border-color: transparent; background: transparent; color: var(--ex-forest-dark); }
.ex-button.small,
body.experience-site button.small { min-height: 34px; padding-inline: 12px; font-size: 12px; border-radius: 8px; }
.ex-button.icon { width: 42px; padding: 0; }
.ex-button.wide { width: 100%; }

.ex-flash { width: min(calc(100% - 32px), var(--ex-max)); margin: 12px auto 0; padding: 12px 15px; border-radius: 10px; font-weight: 650; }
.ex-flash.error { background: #fde7e7; color: #8d2929; }
.ex-flash.warning { background: #fff1d8; color: #775018; }
.ex-flash.success { background: #e3f4eb; color: #205f49; }

.ex-hero { position: relative; min-height: 580px; overflow: hidden; background: #c7d0c0; }
.ex-hero-media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ex-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(246,241,231,.96) 0%, rgba(246,241,231,.71) 36%, rgba(246,241,231,.08) 67%); }
.ex-hero-content { position: relative; z-index: 2; display: grid; align-content: center; min-height: 580px; padding-block: 54px 120px; }
.ex-hero-copy { max-width: 610px; }
.ex-hero-copy h1 { margin-top: 4px; }
.ex-hero-copy p { max-width: 500px; margin-top: 18px; font-size: 19px; }
.ex-search-card { position: absolute; z-index: 3; right: 0; bottom: 28px; left: 0; width: min(calc(100% - 38px), 930px); margin-inline: auto; padding: 15px; border: 1px solid rgba(53,82,56,.13); border-radius: 18px; background: rgba(255,253,248,.96); box-shadow: var(--ex-shadow); backdrop-filter: blur(15px); }
.ex-search-fields { display: grid; grid-template-columns: minmax(220px, 1.35fr) minmax(220px, 1.25fr) minmax(130px, .65fr) auto; gap: 9px; align-items: end; }
.ex-trust-strip { display: flex; flex-wrap: wrap; gap: 15px 28px; margin-top: 12px; padding-top: 11px; border-top: 1px solid var(--ex-line); color: var(--ex-muted); font-size: 12px; font-weight: 650; }
.ex-trust-strip span::before { content: "✓"; margin-right: 7px; color: var(--ex-forest); font-weight: 900; }

.ex-field { display: grid; gap: 5px; }
.ex-field > span,
.ex-field > label { color: var(--ex-ink); font-size: 11px; font-weight: 760; }
body.experience-site input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body.experience-site select,
body.experience-site textarea {
    width: 100%;
    min-height: 43px;
    padding: 9px 12px;
    border: 1px solid var(--ex-line);
    border-radius: 9px;
    background: var(--ex-card);
    color: var(--ex-ink);
    font: inherit;
    font-size: 14px;
    outline: none;
}
body.experience-site textarea { min-height: 96px; resize: vertical; }
body.experience-site input:focus,
body.experience-site select:focus,
body.experience-site textarea:focus { border-color: var(--ex-forest); box-shadow: 0 0 0 3px rgba(53,82,56,.12); }
.ex-check { display: flex; align-items: flex-start; gap: 9px; font-size: 13px; font-weight: 600; }
.ex-check input { width: 18px; height: 18px; margin-top: 1px; accent-color: var(--ex-forest); }
.ex-help { color: var(--ex-muted); font-size: 11px; font-weight: 500; }
.ex-error { color: var(--ex-danger); font-size: 11px; }
.ex-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ex-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ex-grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ex-field.full { grid-column: 1 / -1; }

.ex-card { border: 1px solid var(--ex-line); border-radius: var(--ex-radius); background: var(--ex-card); box-shadow: none; }
.ex-card.pad { padding: 22px; }
.ex-card.clickable,
.ex-row.clickable { cursor: pointer; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.ex-card.clickable:hover,
.ex-row.clickable:hover { border-color: #bac8b8; box-shadow: 0 12px 30px rgba(36,55,43,.08); transform: translateY(-2px); }
.ex-card.clickable:focus-within,
.ex-row.clickable:focus-within { outline: 3px solid rgba(53,82,56,.15); outline-offset: 2px; }

.ex-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.ex-section-head p { margin-top: 7px; color: var(--ex-muted); }

.ex-style-card { position: relative; min-height: 270px; overflow: hidden; border-radius: var(--ex-radius); color: #fff; }
.ex-style-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ex-style-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(17,28,22,.78)); }
.ex-style-card div { position: absolute; z-index: 2; right: 18px; bottom: 18px; left: 18px; }
.ex-style-card h3 { font-size: 24px; }
.ex-style-card p { margin-top: 5px; color: rgba(255,255,255,.88); }

.ex-benefits { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; padding: 20px; border-radius: var(--ex-radius); background: #eee6d8; }
.ex-benefit { display: grid; grid-template-columns: 40px 1fr; gap: 9px; align-items: start; }
.ex-benefit i { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid #bfcab9; border-radius: 10px; color: var(--ex-forest); font-style: normal; font-weight: 900; }
.ex-benefit strong { display: block; font-size: 12px; }
.ex-benefit small { display: block; margin-top: 2px; color: var(--ex-muted); }

.ex-market-head { padding: 38px 0 18px; }
.ex-market-head h1 { font-size: clamp(34px, 4vw, 54px); }
.ex-market-head p { margin-top: 7px; color: var(--ex-muted); }
.ex-filter-bar { position: sticky; top: 68px; z-index: 1200; display: flex; flex-wrap: wrap; gap: 8px; align-items: end; margin-bottom: 18px; padding: 11px; border: 1px solid var(--ex-line); border-radius: 14px; background: rgba(246,241,231,.95); backdrop-filter: blur(14px); }
.ex-filter-bar .ex-field { min-width: 125px; flex: 1 1 130px; }
.ex-filter-bar .location { min-width: 190px; flex-grow: 1.6; }
.ex-filter-actions { display: flex; gap: 7px; margin-left: auto; }
.ex-results-meta { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 14px; }
.ex-vehicle-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ex-vehicle-card { position: relative; overflow: hidden; }
.ex-vehicle-image { position: relative; height: 225px; overflow: hidden; background: var(--ex-sage); }
.ex-vehicle-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.ex-vehicle-card:hover .ex-vehicle-image img { transform: scale(1.025); }
.ex-favourite { position: absolute; z-index: 3; top: 10px; right: 10px; width: 36px; min-height: 36px !important; padding: 0 !important; border: 1px solid rgba(255,255,255,.8) !important; border-radius: 50% !important; background: rgba(255,255,255,.88) !important; color: var(--ex-ink) !important; }
.ex-rating { position: absolute; z-index: 2; top: 10px; left: 10px; padding: 5px 8px; border-radius: 999px; background: rgba(255,253,248,.9); font-size: 11px; font-weight: 800; }
.ex-image-tag { position: absolute; bottom: 9px; left: 10px; padding: 4px 7px; border-radius: 6px; background: rgba(24,35,31,.78); color: #fff; font-size: 10px; font-weight: 750; }
.ex-vehicle-body { padding: 14px; }
.ex-vehicle-body h3 { margin-top: 3px; }
.ex-vehicle-location { margin-top: 3px; color: var(--ex-muted); font-size: 12px; }
.ex-vehicle-meta { display: flex; flex-wrap: wrap; gap: 7px 12px; margin-top: 11px; color: #4e5c55; font-size: 11px; }
.ex-vehicle-price { display: flex; justify-content: space-between; align-items: end; gap: 10px; margin-top: 14px; padding-top: 11px; border-top: 1px solid var(--ex-line); }
.ex-vehicle-price strong { font-size: 18px; }
.ex-vehicle-price small { color: var(--ex-muted); }
.ex-restriction { display: block; margin-top: 9px; color: var(--ex-warning); font-size: 11px; font-weight: 750; }

.ex-detail-grid { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(300px, .7fr); gap: 22px; padding-block: 28px 60px; }
.ex-gallery-main { height: min(58vh, 620px); overflow: hidden; border-radius: var(--ex-radius); background: var(--ex-sage); }
.ex-gallery-main img { width: 100%; height: 100%; object-fit: cover; }
.ex-thumbs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; margin-top: 8px; }
.ex-thumbs img { width: 100%; height: 78px; object-fit: cover; border-radius: 10px; }
.ex-book-card { position: sticky; top: 92px; padding: 20px; }
.ex-price-big { margin-block: 15px; font-size: 30px; font-weight: 850; }
.ex-price-big small { color: var(--ex-muted); font-size: 12px; font-weight: 600; }
.ex-feature-chips { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; }
.ex-chip { display: inline-flex; align-items: center; min-height: 27px; padding: 4px 9px; border: 1px solid var(--ex-line); border-radius: 999px; background: #f7f2e8; font-size: 11px; font-weight: 680; }

.ex-date-button { display: grid; grid-template-columns: 1fr auto; align-items: center; min-height: 43px; padding: 8px 12px; border: 1px solid var(--ex-line); border-radius: 9px; background: var(--ex-card); text-align: left; cursor: pointer; }
.ex-date-button strong { font-size: 13px; }
.ex-date-button small { color: var(--ex-muted); font-size: 10px; }
.ex-date-picker { position: fixed; z-index: 5000; inset: 0; display: none; align-items: center; justify-content: center; padding: 18px; background: rgba(23,35,31,.38); backdrop-filter: blur(4px); }
.ex-date-picker.open { display: flex; }
.ex-date-panel { width: min(760px, 100%); max-height: 92vh; overflow: auto; padding: 18px; border-radius: 18px; background: var(--ex-card); box-shadow: var(--ex-shadow); }
.ex-date-panel-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-bottom: 14px; }
.ex-date-summary { display: flex; gap: 8px; }
.ex-date-summary span { min-width: 130px; padding: 7px 10px; border-radius: 8px; background: var(--ex-canvas); font-size: 11px; }
.ex-date-summary strong { display: block; margin-top: 2px; font-size: 13px; }
.ex-calendar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.ex-month-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.ex-weekdays,
.ex-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.ex-weekdays span { padding: 5px; color: var(--ex-muted); font-size: 10px; text-align: center; }
.ex-day { aspect-ratio: 1; min-height: 38px !important; padding: 0 !important; border: 0 !important; border-radius: 8px !important; background: transparent !important; color: var(--ex-ink) !important; font-size: 12px !important; }
.ex-day:hover { background: var(--ex-sage) !important; transform: none !important; }
.ex-day.outside { visibility: hidden; }
.ex-day.disabled { color: #b7b7b0 !important; text-decoration: line-through; cursor: not-allowed; }
.ex-day.selected { background: var(--ex-forest) !important; color: #fff !important; }
.ex-day.in-range { border-radius: 0 !important; background: #e5ecdf !important; }
.ex-date-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 15px; }

.ex-booking-hero { position: relative; min-height: 260px; overflow: hidden; background: var(--ex-forest-dark); color: #fff; }
.ex-booking-hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .62; }
.ex-booking-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(24,43,31,.9), rgba(24,43,31,.25)); }
.ex-booking-hero > div { position: relative; z-index: 2; display: grid; align-content: center; min-height: 260px; padding-block: 35px; }
.ex-booking-hero h1 { font-size: clamp(34px, 4vw, 52px); }
.ex-booking-hero p { max-width: 650px; margin-top: 10px; color: rgba(255,255,255,.88); font-size: 17px; }
.ex-progress { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-top: -25px; padding: 10px; border: 1px solid var(--ex-line); border-radius: 16px; background: var(--ex-card); box-shadow: var(--ex-shadow); }
.ex-progress-step { display: flex; align-items: center; gap: 7px; min-width: 0; padding: 7px; border-radius: 9px; color: var(--ex-muted); font-size: 11px; font-weight: 750; }
.ex-progress-step i { display: grid; place-items: center; flex: 0 0 auto; width: 25px; height: 25px; border-radius: 50%; background: #eceee9; font-style: normal; }
.ex-progress-step.active { color: var(--ex-ink); background: #f7efe2; }
.ex-progress-step.active i { background: var(--ex-orange); color: #fff; }
.ex-progress-step.complete i { background: var(--ex-forest); color: #fff; }
.ex-booking-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 18px; align-items: start; padding-block: 18px 60px; }
.ex-form-card { padding: 24px; }
.ex-form-section + .ex-form-section { margin-top: 25px; padding-top: 22px; border-top: 1px solid var(--ex-line); }
.ex-form-section-head { margin-bottom: 14px; }
.ex-form-section-head p { margin-top: 5px; color: var(--ex-muted); font-size: 13px; }
.ex-summary { position: sticky; top: 88px; padding: 20px; background: var(--ex-forest-dark); color: #fff; }
.ex-summary-row { display: grid; gap: 2px; padding-block: 11px; border-bottom: 1px solid rgba(255,255,255,.12); }
.ex-summary-row span { color: rgba(255,255,255,.63); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.ex-summary-money { padding-block: 16px; }
.ex-summary-money strong { display: block; margin-top: 2px; font-size: 32px; }
.ex-summary-reassurance { display: grid; gap: 7px; color: rgba(255,255,255,.8); font-size: 11px; }
.ex-summary a { color: #f5ad72; }
.ex-account-choice { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 17px; }
.ex-choice { padding: 14px; border: 1px solid var(--ex-line); border-radius: 12px; background: #f9f5ed; }
.ex-choice strong { display: block; }
.ex-choice p { margin: 4px 0 10px; color: var(--ex-muted); font-size: 12px; }
.ex-driver-list { display: grid; gap: 9px; }
.ex-driver-row { display: grid; grid-template-columns: minmax(0, 1fr) 125px 120px auto; gap: 8px; align-items: end; padding: 10px; border: 1px solid var(--ex-line); border-radius: 11px; background: #faf7f0; }
.ex-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; opacity: 0 !important; }

.ex-portal-main { padding-block: 30px 60px; }
.ex-welcome { display: grid; grid-template-columns: minmax(0, 1fr) minmax(330px, .6fr); min-height: 280px; overflow: hidden; margin-bottom: 22px; }
.ex-welcome-copy { display: grid; align-content: center; padding: 30px; }
.ex-welcome-copy p { margin-top: 10px; color: var(--ex-muted); font-size: 16px; }
.ex-welcome-media { min-height: 280px; }
.ex-welcome-media img { width: 100%; height: 100%; object-fit: cover; }
.ex-actions-list { display: grid; gap: 8px; margin-bottom: 28px; }
.ex-action-row { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 11px; min-height: 66px; padding: 10px 12px; }
.ex-action-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: var(--ex-sage); color: var(--ex-forest); font-weight: 900; }
.ex-action-row strong { display: block; }
.ex-action-row small { display: block; margin-top: 2px; color: var(--ex-muted); }
.ex-action-row.high .ex-action-icon { background: #fde4df; color: var(--ex-danger); }
.ex-journey-list { display: grid; gap: 14px; }
.ex-journey-card { display: grid; grid-template-columns: 260px minmax(0, 1fr); overflow: hidden; }
.ex-journey-media { min-height: 210px; background: var(--ex-sage); }
.ex-journey-media img { width: 100%; height: 100%; object-fit: cover; }
.ex-journey-content { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; padding: 22px; }
.ex-journey-content p { margin-top: 7px; color: var(--ex-muted); }
.ex-journey-actions { display: flex; flex-direction: column; align-items: stretch; justify-content: center; gap: 8px; min-width: 190px; }
.ex-status { display: inline-flex; align-items: center; width: fit-content; min-height: 25px; padding: 4px 9px; border-radius: 999px; background: #e7efe3; color: var(--ex-success); font-size: 10px; font-weight: 820; }
.ex-status.warning { background: #fff0d8; color: var(--ex-warning); }
.ex-status.danger { background: #fbe3e3; color: var(--ex-danger); }
.ex-journey-switch { position: sticky; top: 68px; z-index: 900; display: flex; gap: 5px; margin-bottom: 14px; padding: 5px; border: 1px solid var(--ex-line); border-radius: 12px; background: rgba(246,241,231,.95); backdrop-filter: blur(12px); }
.ex-journey-switch a { flex: 1; min-height: 40px; padding: 10px; border-radius: 8px; text-align: center; text-decoration: none; font-size: 13px; font-weight: 780; }
.ex-journey-switch a.active { background: var(--ex-forest); color: #fff; }
.ex-detail-sections { display: grid; gap: 13px; }
.ex-detail-section { padding: 20px; }
.ex-section-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.ex-list { display: grid; gap: 7px; margin-top: 13px; }
.ex-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center; min-height: 54px; padding: 9px 11px; border: 1px solid var(--ex-line); border-radius: 10px; background: #fffefa; }
.ex-row strong { display: block; }
.ex-row small { display: block; margin-top: 2px; color: var(--ex-muted); }
.ex-message-list { display: grid; gap: 10px; max-height: 520px; overflow: auto; padding: 7px; }
.ex-message { max-width: 78%; padding: 10px 12px; border-radius: 14px 14px 14px 4px; background: #edf1e8; }
.ex-message.mine { justify-self: end; border-radius: 14px 14px 4px 14px; background: #f7e4cf; }
.ex-message small { display: block; margin-top: 4px; color: var(--ex-muted); }
.ex-composer { position: sticky; bottom: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding-top: 10px; background: var(--ex-card); }

.ex-drawer-backdrop { position: fixed; z-index: 6000; inset: 0; display: none; background: rgba(23,35,31,.35); backdrop-filter: blur(3px); }
.ex-drawer-backdrop.open { display: block; }
.ex-drawer { position: absolute; inset: 0 0 0 auto; display: grid; grid-template-rows: auto minmax(0, 1fr); width: min(580px, 96vw); background: var(--ex-card); box-shadow: -20px 0 55px rgba(22,34,27,.22); transform: translateX(100%); transition: transform .2s ease; }
.ex-drawer-backdrop.open .ex-drawer { transform: translateX(0); }
.ex-drawer-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 62px; padding: 12px 16px; border-bottom: 1px solid var(--ex-line); }
.ex-drawer-body { min-height: 0; overflow: auto; padding: 16px; }
.ex-drawer-close { width: 38px; min-height: 38px !important; padding: 0 !important; border-radius: 50% !important; background: var(--ex-card) !important; color: var(--ex-ink) !important; border-color: var(--ex-line) !important; }

.ex-launcher { position: fixed; z-index: 5500; right: 18px; bottom: 18px; }
.ex-launcher-button { position: relative; width: 52px; min-height: 52px !important; padding: 0 !important; border-radius: 50% !important; background: var(--ex-forest-dark) !important; box-shadow: 0 12px 30px rgba(25,43,31,.25) !important; font-size: 19px !important; }
.ex-launcher-count { position: absolute; top: -4px; right: -3px; display: none; min-width: 21px; height: 21px; padding: 0 5px; border: 2px solid var(--ex-card); border-radius: 999px; background: var(--ex-orange); color: #fff; font-size: 10px; font-weight: 850; line-height: 17px; }
.ex-launcher-count.show { display: block; }
.ex-launcher-panel { position: absolute; right: 0; bottom: 62px; display: none; width: min(380px, calc(100vw - 30px)); max-height: min(550px, 75vh); overflow: hidden; border: 1px solid var(--ex-line); border-radius: 16px; background: var(--ex-card); box-shadow: var(--ex-shadow); }
.ex-launcher.open .ex-launcher-panel { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.ex-launcher-head { display: flex; align-items: center; justify-content: space-between; padding: 14px; border-bottom: 1px solid var(--ex-line); }
.ex-launcher-items { overflow: auto; padding: 8px; }
.ex-launcher-item { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 8px; padding: 10px; border-radius: 10px; text-decoration: none; }
.ex-launcher-item:hover { background: var(--ex-canvas); }
.ex-launcher-item i { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 8px; background: var(--ex-sage); font-style: normal; }
.ex-launcher-item strong { display: block; font-size: 12px; }
.ex-launcher-item small { display: block; margin-top: 2px; color: var(--ex-muted); font-size: 11px; }
.ex-launcher-foot { padding: 9px 12px; border-top: 1px solid var(--ex-line); background: #f9f5ed; font-size: 11px; }

.ex-footer { margin-top: 60px; padding: 46px 0 25px; background: #eee7da; }
.ex-footer-grid { display: grid; grid-template-columns: 1.3fr repeat(3, 1fr); gap: 30px; }
.ex-footer h3 { font-size: 15px; }
.ex-footer a { display: block; margin-top: 8px; color: var(--ex-muted); font-size: 12px; text-decoration: none; }
.ex-footer p { margin-top: 8px; color: var(--ex-muted); font-size: 12px; }
.ex-footer-legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 14px; margin-top: 30px; padding-top: 18px; border-top: 1px solid #d4ccbd; color: var(--ex-muted); font-size: 11px; }
.ex-footer-legal nav { display: flex; gap: 14px; }
.ex-footer-legal a { display: inline; margin: 0; }

@media (max-width: 1120px) {
    .ex-vehicle-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ex-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ex-benefits { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ex-nav { gap: 14px; }
    .ex-nav a { font-size: 12px; }
    .ex-search-fields { grid-template-columns: 1fr 1fr; }
    .ex-search-fields .ex-button { width: 100%; }
    .ex-detail-grid { grid-template-columns: minmax(0, 1.5fr) minmax(285px, .8fr); }
}

@media (max-width: 850px) {
    .ex-header { grid-template-columns: auto auto; }
    .ex-menu-toggle { display: block; justify-self: end; }
    .ex-nav { position: fixed; inset: 68px 12px auto; display: none; justify-content: flex-start; align-items: stretch; flex-direction: column; gap: 0; padding: 10px; border: 1px solid var(--ex-line); border-radius: 14px; background: var(--ex-card); box-shadow: var(--ex-shadow); }
    .ex-nav.open { display: flex; }
    .ex-nav a { padding: 12px; }
    .ex-header-actions { grid-column: 1 / -1; display: none; padding-top: 8px; }
    .ex-header.menu-open .ex-header-actions { display: flex; }
    .ex-hero,
    .ex-hero-content { min-height: 600px; }
    .ex-hero::after { background: linear-gradient(180deg, rgba(246,241,231,.82), rgba(246,241,231,.35) 52%, rgba(246,241,231,.72)); }
    .ex-hero-content { align-content: start; padding-top: 62px; }
    .ex-search-card { bottom: 18px; }
    .ex-search-fields { grid-template-columns: 1fr; }
    .ex-trust-strip { display: none; }
    .ex-grid-3 { grid-template-columns: 1fr; }
    .ex-detail-grid,
    .ex-booking-grid,
    .ex-welcome { grid-template-columns: 1fr; }
    .ex-book-card,
    .ex-summary { position: static; }
    .ex-progress { overflow-x: auto; grid-template-columns: repeat(7, minmax(105px, 1fr)); }
    .ex-journey-card { grid-template-columns: 1fr; }
    .ex-journey-media { min-height: 260px; }
    .ex-journey-content { grid-template-columns: 1fr; }
    .ex-journey-actions { flex-direction: row; min-width: 0; }
    .ex-calendar { grid-template-columns: 1fr; }
    .ex-calendar > :nth-child(2) { display: none; }
    .ex-footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 620px) {
    .ex-shell,
    .ex-narrow { width: min(calc(100% - 22px), var(--ex-max)); }
    .ex-header { padding-inline: 12px; }
    .ex-brand small { display: none; }
    .ex-vehicle-grid,
    .ex-grid-2,
    .ex-grid-4,
    .ex-account-choice { grid-template-columns: 1fr; }
    .ex-benefits { grid-template-columns: 1fr 1fr; }
    .ex-vehicle-image { height: 215px; }
    .ex-filter-bar { top: 58px; overflow-x: auto; flex-wrap: nowrap; align-items: center; }
    .ex-filter-bar .ex-field { min-width: 145px; }
    .ex-filter-actions { min-width: max-content; }
    .ex-results-meta { align-items: flex-start; flex-direction: column; }
    .ex-form-card { padding: 17px; }
    .ex-driver-row { grid-template-columns: 1fr; }
    .ex-journey-actions { flex-direction: column; }
    .ex-footer-grid { grid-template-columns: 1fr; }
    .ex-footer-legal { flex-direction: column; }
    .ex-date-panel { padding: 12px; }
    .ex-date-panel-head { align-items: flex-start; flex-direction: column; }
    .ex-date-summary { width: 100%; }
    .ex-date-summary span { flex: 1; min-width: 0; }
    .ex-launcher { right: 12px; bottom: 12px; }
    .ex-launcher-panel { position: fixed; right: 0; bottom: 0; left: 0; width: 100%; max-height: 78vh; border-radius: 18px 18px 0 0; }
}

/* Saved and comparison controls */
.ex-favourite.saved {
    background: #fff3e4;
    color: var(--ex-orange, #d9791f);
}
.ex-compare-toggle {
    width: 100%;
    margin-top: 10px;
    min-height: 30px;
    border: 1px solid var(--ex-border, #d8d6cc);
    border-radius: 7px;
    background: transparent;
    color: var(--ex-green, #37543a);
    font: inherit;
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
}
.ex-compare-toggle.selected {
    border-color: var(--ex-green, #37543a);
    background: #eef2e9;
}
.ex-compare-bar {
    position: fixed;
    left: 50%;
    bottom: 18px;
    z-index: 8500;
    width: min(760px, calc(100vw - 32px));
    transform: translateX(-50%);
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    padding: 10px 12px;
    border: 1px solid var(--ex-border, #d8d6cc);
    border-radius: 10px;
    background: rgba(255, 252, 245, .96);
    box-shadow: 0 14px 40px rgba(25, 45, 31, .16);
    backdrop-filter: blur(12px);
}
.ex-compare-bar[hidden] { display: none !important; }
.ex-compare-bar > div { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.ex-compare-bar span { color: var(--ex-muted, #6f766d); font-size: 11px; }
@media (max-width: 650px) {
    .ex-compare-bar { align-items: stretch; flex-direction: column; }
    .ex-compare-bar > div:last-child { justify-content: flex-end; }
}
