/* BlackWay Car Service — landing page (Bootstrap 5.3 + custom design system) */

/* ---------- Fonts (served locally, no CDN) ---------- */
@font-face { font-family: "Geist"; font-style: normal; font-weight: 400; font-display: swap; src: url("/vendor/geist/Geist-Regular.woff2") format("woff2"); }
@font-face { font-family: "Geist"; font-style: normal; font-weight: 500; font-display: swap; src: url("/vendor/geist/Geist-Medium.woff2") format("woff2"); }
@font-face { font-family: "Geist"; font-style: normal; font-weight: 600; font-display: swap; src: url("/vendor/geist/Geist-SemiBold.woff2") format("woff2"); }
@font-face { font-family: "Fraunces"; font-style: normal; font-weight: 400; font-display: swap; src: url("/vendor/fraunces/fraunces-400.woff2") format("woff2"); }
@font-face { font-family: "Fraunces"; font-style: normal; font-weight: 500; font-display: swap; src: url("/vendor/fraunces/fraunces-500.woff2") format("woff2"); }
@font-face { font-family: "Fraunces"; font-style: normal; font-weight: 600; font-display: swap; src: url("/vendor/fraunces/fraunces-600.woff2") format("woff2"); }

/* ---------- Tokens ---------- */
:root {
    --bw-cream: #fbf8f2;
    --bw-ink: #0f1319;
    --bw-gray: #6e6e73;
    --bw-blue: #0f63bd;
    --bw-blue-dark: #0d4a8c;
    --bw-band: #aecbf2;          /* solid light-blue section band */
    --bw-band-soft: #cddfe6;
    --bw-accent: #c5a059;        /* champagne gold */
    --bw-champagne: #c5a059;
    --bw-border: #e7e2d7;
    --bw-sans: "Geist", -apple-system, "Segoe UI", Roboto, system-ui, sans-serif;
    --bw-display: "Fraunces", Georgia, "Times New Roman", serif;
}

html { scroll-behavior: smooth; }
body { font-family: var(--bw-sans); color: var(--bw-ink); background: var(--bw-cream); letter-spacing: .15px; }

/* Wider layout — less empty space at the sides */
@media (min-width: 992px) {
    .container { max-width: min(1320px, 95vw); }
}
/* +10px breathing room around all content */
.container { padding-left: calc(var(--bs-gutter-x) * .5 + 10px); padding-right: calc(var(--bs-gutter-x) * .5 + 10px); }

/* Scroll progress bar */
.bw-progress { position: fixed; top: 0; left: 0; height: 3px; width: 0; z-index: 2000; background: linear-gradient(90deg, var(--bw-blue), var(--bw-accent)); transition: width .1s linear; }

/* ---------- Typography ---------- */
.bw-display-xl { font-family: var(--bw-display); font-weight: 400; font-size: clamp(44px, 7.5vw, 96px); line-height: 1.12; letter-spacing: .25px; }
.bw-display-lg { font-family: var(--bw-display); font-weight: 400; font-size: clamp(34px, 5.5vw, 72px); line-height: 1.12; letter-spacing: .25px; }
.bw-h4 { font-weight: 600; font-size: 1.35rem; margin: .4rem 0 .5rem; }
.bw-sub { font-weight: 500; font-size: clamp(17px, 2vw, 22px); color: var(--bw-gray); line-height: 1.45; }
.bw-body-sm { color: var(--bw-gray); font-size: 15px; line-height: 22px; }
.bw-tag { display: block; font-size: 13px; color: var(--bw-gray); font-weight: 500; letter-spacing: .3px; }

/* ---------- Buttons ---------- */
.bw-btn-dark { background: var(--bw-ink); color: #fff; border-radius: 999px; padding: .65rem 1.6rem; font-weight: 600; border: none; transition: transform .2s, background .2s, box-shadow .2s; }
.bw-btn-dark:hover { background: #000; color: #fff; transform: translateY(-2px); box-shadow: 0 10px 24px rgba(15,19,25,.25); }
.bw-btn-accent { display: inline-flex; align-items: center; gap: .55rem; background: var(--bw-accent); color: var(--bw-ink); border-radius: 999px; padding: .7rem 1.5rem; font-weight: 700; font-size: .98rem; border: none; transition: transform .2s, filter .2s, box-shadow .2s; animation: bwGlow 2.6s ease-in-out infinite; }
.bw-btn-accent:hover {
    background: #fff;
    filter: none;
    transform: translateY(-2px);
    color: var(--bw-ink);
    box-shadow: 0 12px 28px rgba(15, 19, 25, .2);
    animation-play-state: paused;
}
@keyframes bwGlow {
    0%, 100% { box-shadow: 0 0 0 0 rgba(197, 160, 89, .35); }
    50% { box-shadow: 0 0 0 12px rgba(197, 160, 89, 0); }
}
.bw-btn-outline { border: 1px solid var(--bw-blue); color: var(--bw-blue); background: #fff; border-radius: 999px; padding: .5rem 1.5rem; font-weight: 600; font-size: .95rem; transition: background .2s, color .2s, transform .2s; }
.bw-btn-outline:hover { background: var(--bw-blue); color: #fff; transform: translateY(-2px); }

/* ---------- Navbar (transparent over hero → white after first banner) ---------- */
.bw-navbar { background: transparent; padding: 1.15rem 0; min-height: 84px; transition: background .5s ease, box-shadow .5s ease, padding .35s ease; }
.bw-navbar .navbar-brand {
    padding: 0;
    margin: 0;
    line-height: 1;
    position: relative;
}
.bw-navbar .navbar-brand .bw-logo {
    display: block;
    height: 48px;
    width: auto;
    max-width: min(220px, 52vw);
    object-fit: contain;
}
.bw-navbar .navbar-brand .bw-logo-dark { display: none; }
.bw-navbar .navbar-brand .bw-logo-light { display: block; }
.bw-navbar.scrolled .navbar-brand .bw-logo-light { display: none; }
.bw-navbar.scrolled .navbar-brand .bw-logo-dark { display: block; }
.bw-navbar.scrolled .navbar-brand .bw-logo {
    height: 42px;
}
.bw-navbar .nav-link { color: #fff; font-weight: 500; font-size: 1rem; margin: 0 .65rem; padding: .5rem .35rem; position: relative; transition: color .2s, opacity .2s; }
.bw-navbar .nav-link:hover { color: #fff; opacity: .8; }
.bw-navbar .navbar-toggler-icon { filter: invert(1); }
.bw-navbar.scrolled { background: #fff; box-shadow: 0 4px 20px rgba(15,19,25,.1); padding: .75rem 0; min-height: 68px; }
.bw-navbar.scrolled .navbar-brand,
.bw-navbar.scrolled .navbar-brand span { color: var(--bw-ink); }
.bw-navbar.scrolled .nav-link { color: var(--bw-ink); }
.bw-navbar.scrolled .nav-link:hover { color: var(--bw-blue); opacity: 1; }
.bw-navbar.scrolled .navbar-toggler-icon { filter: none; }
.bw-navbar.scrolled .bw-btn-glass { color: var(--bw-ink); border-color: rgba(15,19,25,.4); background: rgba(15,19,25,.04); }

/* Thin chevron dropdown icons (replaces Bootstrap caret) */
.bw-navbar .dropdown-toggle::after {
    content: "";
    border: none;
    width: .5em; height: .5em;
    border-right: 1.6px solid currentColor;
    border-bottom: 1.6px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
    margin-left: .5em;
    vertical-align: .12em;
    display: inline-block;
    transition: transform .25s;
}
.bw-navbar .dropdown-toggle[aria-expanded="true"]::after,
.bw-navbar .nav-item.dropdown.open > .dropdown-toggle::after { transform: rotate(225deg) translateY(-2px); }

/* Glass pill button (navbar CTA) */
.bw-btn-glass {
    display: inline-flex; align-items: center; gap: .5rem;
    color: #fff; font-weight: 500;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 999px;
    padding: .6rem 1.35rem;
    backdrop-filter: blur(12px);
    transition: background .2s, border-color .2s, transform .2s;
}
.bw-btn-glass:hover {
    background: var(--bw-accent);
    border-color: var(--bw-accent);
    color: #131a05;
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(200, 242, 48, .35);
}
.bw-navbar.scrolled .bw-btn-glass:hover {
    background: var(--bw-accent);
    border-color: var(--bw-accent);
    color: #131a05;
    box-shadow: 0 8px 20px rgba(200, 242, 48, .3);
}

/* Dropdowns + nested submenus */
.bw-navbar .dropdown-menu {
    border: 1px solid var(--bw-border);
    border-radius: 12px;
    box-shadow: 0 1rem 2rem rgba(0,0,0,.14);
    min-width: 230px;
    padding: .4rem 0;
}
.bw-navbar .dropdown-item { font-weight: 500; padding: .55rem 1.1rem; border-radius: 8px; margin: .1rem .35rem; width: auto; transition: background .15s, color .15s; }
.bw-navbar .dropdown-item:hover,
.bw-navbar .dropdown-item:focus { background: #eef4fc; color: var(--bw-blue); }
.dropdown-submenu { position: relative; }
.dropdown-submenu > .dropdown-item { display: flex; align-items: center; justify-content: space-between; gap: .8rem; cursor: pointer; }
.bw-sub-arrow { font-size: 1.05rem; line-height: 1; color: var(--bw-gray); transition: transform .2s, color .2s; }
.dropdown-submenu:hover > .dropdown-item .bw-sub-arrow,
.dropdown-submenu.open > .dropdown-item .bw-sub-arrow { color: var(--bw-blue); }

/* Desktop: open on hover (no click) */
@media (min-width: 992px) {
    .bw-navbar .nav-item.dropdown { position: relative; }
    .bw-navbar .nav-item.dropdown > .dropdown-toggle { pointer-events: auto; }
    .bw-navbar .nav-item.dropdown > .dropdown-menu {
        display: block;
        position: absolute;
        top: calc(100% - 2px);
        left: 0;
        margin: 0;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(8px);
        transition: opacity .18s ease, transform .18s ease, visibility .18s;
    }
    .bw-navbar .nav-item.dropdown > .dropdown-menu::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        top: -14px;
        height: 14px;
    }
    .bw-navbar .nav-item.dropdown:hover > .dropdown-menu,
    .bw-navbar .nav-item.dropdown:focus-within > .dropdown-menu {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
    }
    .bw-navbar .nav-item.dropdown:hover > .dropdown-toggle::after,
    .bw-navbar .nav-item.dropdown:focus-within > .dropdown-toggle::after {
        transform: rotate(225deg) translateY(-2px);
    }

    .dropdown-submenu > .dropdown-menu {
        display: block;
        position: absolute;
        top: -0.35rem;
        left: calc(100% - 4px);
        margin: 0;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateX(6px);
        transition: opacity .18s ease, transform .18s ease, visibility .18s;
    }
    .dropdown-submenu > .dropdown-menu::before {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        left: -12px;
        width: 12px;
    }
    .dropdown-submenu:hover > .dropdown-menu,
    .dropdown-submenu:focus-within > .dropdown-menu {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateX(0);
    }
}

/* Mobile: tap to open */
@media (max-width: 991.98px) {
    .bw-navbar .navbar-collapse {
        background: rgba(15, 19, 25, .98);
        border-radius: 14px;
        padding: 1rem;
        margin-top: .6rem;
    }
    .bw-navbar.scrolled .navbar-collapse {
        background: #fff;
        box-shadow: 0 1rem 2rem rgba(15, 19, 25, .12);
    }
    .bw-navbar .nav-link {
        color: #fff !important;
    }
    .bw-navbar.scrolled .nav-link {
        color: var(--bw-ink) !important;
    }
    .bw-navbar .nav-item.dropdown > .dropdown-menu {
        display: none;
        position: static;
        float: none;
        margin: .35rem 0 .6rem;
        box-shadow: none;
        border: 1px solid rgba(255, 255, 255, .2);
        background: rgba(255, 255, 255, .08);
        border-radius: 12px;
        padding: .35rem 0;
    }
    .bw-navbar .nav-item.dropdown > .dropdown-menu .dropdown-item {
        color: rgba(255, 255, 255, .92) !important;
        background: transparent;
    }
    .bw-navbar .nav-item.dropdown > .dropdown-menu .dropdown-item:hover,
    .bw-navbar .nav-item.dropdown > .dropdown-menu .dropdown-item:focus {
        background: rgba(197, 160, 89, .18) !important;
        color: #fff !important;
    }
    .bw-navbar .nav-item.dropdown > .dropdown-menu .bw-sub-arrow {
        color: rgba(255, 255, 255, .65);
    }
    .bw-navbar.scrolled .nav-item.dropdown > .dropdown-menu {
        border-color: var(--bw-border);
        background: #f7f8fa;
    }
    .bw-navbar.scrolled .nav-item.dropdown > .dropdown-menu .dropdown-item {
        color: var(--bw-ink) !important;
    }
    .bw-navbar.scrolled .nav-item.dropdown > .dropdown-menu .dropdown-item:hover,
    .bw-navbar.scrolled .nav-item.dropdown > .dropdown-menu .dropdown-item:focus {
        background: #eef4fc !important;
        color: var(--bw-blue) !important;
    }
    .bw-navbar.scrolled .nav-item.dropdown > .dropdown-menu .bw-sub-arrow {
        color: var(--bw-gray);
    }
    .bw-navbar .nav-item.dropdown.open > .dropdown-menu { display: block; }
    .dropdown-submenu > .dropdown-menu {
        position: static;
        margin: 0 0 .35rem .85rem;
        box-shadow: none;
        border: none;
        display: none;
        background: transparent;
        padding-left: .25rem;
    }
    .dropdown-submenu.open > .dropdown-menu { display: block; }
    .dropdown-submenu > .dropdown-menu .dropdown-item {
        color: rgba(255, 255, 255, .85) !important;
        font-size: .92rem;
    }
    .bw-navbar.scrolled .dropdown-submenu > .dropdown-menu .dropdown-item {
        color: var(--bw-ink) !important;
    }
    .bw-navbar .bw-btn-glass {
        color: #fff;
        border-color: rgba(255, 255, 255, .45);
        background: rgba(255, 255, 255, .1);
        justify-content: center;
        width: 100%;
        margin-top: .75rem;
    }
    .bw-navbar .bw-btn-glass:hover {
        background: var(--bw-accent);
        border-color: var(--bw-accent);
        color: var(--bw-ink);
    }
    .bw-navbar.scrolled .bw-btn-glass {
        color: var(--bw-ink);
        border-color: rgba(15, 19, 25, .35);
        background: rgba(15, 19, 25, .04);
    }
    .bw-navbar.scrolled .bw-btn-glass:hover {
        background: var(--bw-accent);
        border-color: var(--bw-accent);
        color: #131a05;
    }
}

/* Blue CTA (navbar BOOK NOW) */
.bw-btn-blue { background: var(--bw-blue); color: #fff; border-radius: 8px; padding: .6rem 1.5rem; font-weight: 700; letter-spacing: .04em; border: none; transition: background .2s, transform .2s, box-shadow .2s; }
.bw-btn-blue:hover { background: var(--bw-blue-dark); color: #fff; transform: translateY(-2px); box-shadow: 0 10px 22px rgba(15,99,189,.35); }

/* ---------- 1. Hero ---------- */
.bw-hero {
    position: relative;
    padding: 7.5rem 0 3.5rem;
    background:
        linear-gradient(100deg, rgba(9,12,16,.72) 0%, rgba(9,12,16,.42) 55%, rgba(9,12,16,.22) 100%),
        url("/images/hero.jpg") 28% center / cover no-repeat, var(--bw-ink);
    color: #fff;
    overflow: visible;
}
/* Static banner: image stays fixed while the page scrolls over it (desktop) */
@media (min-width: 992px) {
    .bw-hero { background-attachment: fixed, fixed; }
}
.bw-hero-title { font-family: var(--bw-sans); font-weight: 700; font-size: clamp(28px, 3.6vw, 46px); line-height: 1.14; margin: 1.1rem 0 1rem; }
.bw-accent { color: var(--bw-accent); }
.bw-hero-sub { color: rgba(255,255,255,.82); font-size: .95rem; line-height: 1.65; max-width: 31rem; margin-bottom: 1.4rem; }

.bw-live-pill { display: inline-flex; align-items: center; gap: .6rem; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); backdrop-filter: blur(8px); border-radius: 999px; padding: .4rem .95rem; font-size: .82rem; font-weight: 500; }
.bw-live-dot { width: 9px; height: 9px; border-radius: 50%; background: #3ddc60; box-shadow: 0 0 0 0 rgba(61,220,96,.6); animation: bwPulse 1.8s infinite; }
@keyframes bwPulse { 0% { box-shadow: 0 0 0 0 rgba(61,220,96,.55); } 70% { box-shadow: 0 0 0 9px rgba(61,220,96,0); } 100% { box-shadow: 0 0 0 0 rgba(61,220,96,0); } }

.bw-trust-chip { display: inline-flex; align-items: center; gap: .5rem; width: 100%; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); backdrop-filter: blur(6px); border-radius: 10px; padding: .62rem .85rem; font-size: .85rem; font-weight: 500; transition: background .2s, transform .2s; }
.bw-trust-chip-icon { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 1.15rem; height: 1.15rem; border-radius: 50%; background: var(--bw-accent); color: var(--bw-ink); font-size: .68rem; font-weight: 800; line-height: 1; }
.bw-trust-chip:hover { background: rgba(255,255,255,.16); transform: translateY(-2px); }

/* ---------- Booking quote card ---------- */
.bw-quote-card { background: #fff; border-radius: 20px; padding: 1.6rem; box-shadow: 0 2rem 4rem rgba(6,10,13,.35); transition: transform .25s ease-out; will-change: transform; }
.bw-quote-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: .3rem; border: 1px solid var(--bw-ink); border-radius: 999px; padding: .3rem; margin-bottom: 1.4rem; }
.bw-quote-tabs button { border: none; background: transparent; border-radius: 999px; padding: .55rem 1rem; font-weight: 600; color: var(--bw-ink); transition: background .25s, color .25s; }
.bw-quote-tabs button.active { background: var(--bw-ink); color: #fff; }
.bw-quote-form label { display: block; font-size: .78rem; font-weight: 600; color: var(--bw-gray); margin-bottom: .3rem; }
.bw-quote-form .form-control, .bw-quote-form .form-select {
    height: 44px;
    border: 1px solid #dfe3e8;
    border-radius: 10px;
    padding: .5rem .8rem;
    font-size: .9rem;
    color: var(--bw-ink);
    background-color: #fff;
    transition: border-color .2s, box-shadow .2s;
}
.bw-quote-form .form-control::placeholder { color: #a7adb5; }
.bw-quote-form .form-control:focus, .bw-quote-form .form-select:focus { border-color: var(--bw-ink); box-shadow: 0 0 0 .18rem rgba(15,19,25,.1); }

/* Selects: custom thin chevron, room for it, and gray text while unselected */
.bw-quote-form .form-select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236e6e73' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right .8rem center;
    background-size: 15px;
    padding-right: 2.4rem;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    cursor: pointer;
}
.bw-quote-form .form-select:hover { border-color: #b9c0c9; }
.bw-quote-form .form-select:has(option[value=""]:checked) { color: #a7adb5; }
.bw-quote-form .form-select option { color: var(--bw-ink); }
.bw-quote-form .form-select option[value=""] { color: #a7adb5; }

.bw-quote-form .bw-form-alert {
    margin-bottom: 1rem;
    font-size: .9rem;
    border-radius: 10px;
}

/* Bootstrap validation feedback (booking form) */
.bw-quote-form .valid-feedback,
.bw-quote-form .invalid-feedback {
    font-size: .75rem;
    margin-top: .25rem;
}
.bw-quote-form.was-validated .form-control:invalid,
.bw-quote-form.was-validated .form-select:invalid {
    border-color: #dc3545;
    padding-right: 2.4rem;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right .75rem center;
    background-size: 1rem 1rem;
}
.bw-quote-form.was-validated .form-control:valid,
.bw-quote-form.was-validated .form-select:valid {
    border-color: #198754;
    padding-right: 2.4rem;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right .75rem center;
    background-size: .875rem .875rem;
}
.bw-quote-form.was-validated .form-select:invalid,
.bw-quote-form.was-validated .form-select:valid {
    background-position: right 2.1rem center, right .8rem center;
    background-size: 1rem 1rem, 15px;
}
.bw-quote-form.was-validated .form-select:invalid {
    background-image:
        url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"),
        url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236e6e73' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}
.bw-quote-form.was-validated .form-select:valid {
    background-image:
        url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"),
        url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236e6e73' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}
.bw-quote-form.was-validated .form-control:invalid:focus,
.bw-quote-form.was-validated .form-select:invalid:focus {
    border-color: #dc3545;
    box-shadow: 0 0 0 .18rem rgba(220, 53, 69, .2);
}
.bw-quote-form.was-validated .form-control:valid:focus,
.bw-quote-form.was-validated .form-select:valid:focus {
    border-color: #198754;
    box-shadow: 0 0 0 .18rem rgba(25, 135, 84, .2);
}
.bw-quote-form.was-validated .bw-phone-number {
    background-image: none !important;
    padding-right: .8rem !important;
}
.bw-phone-input.is-invalid {
    border-color: #dc3545 !important;
}
.bw-phone-input.is-valid {
    border-color: #198754 !important;
}
.bw-quote-form.was-validated .bw-phone-input.is-invalid:focus-within {
    box-shadow: 0 0 0 .18rem rgba(220, 53, 69, .2);
}
.bw-quote-form.was-validated .bw-phone-input.is-valid:focus-within {
    box-shadow: 0 0 0 .18rem rgba(25, 135, 84, .2);
}
.bw-quote-form.was-validated .bw-phone-input.is-invalid ~ .invalid-feedback,
.bw-quote-form.was-validated .bw-phone-input.is-valid ~ .valid-feedback {
    display: block;
}

/* ---------- Sections ---------- */
.bw-section { padding: calc(5.5rem + 10px) 0; }
.bw-band-cream { background: var(--bw-cream); }

/* ---------- 3. Featured service cards (3-up) ---------- */
.bw-highlight-services {
    background: var(--bw-cream);
    padding-top: 4.5rem;
}
.bw-service-card {
    background: transparent;
    height: 100%;
    display: flex;
    flex-direction: column;
}
.bw-service-media {
    border-radius: 20px;
    overflow: hidden;
    aspect-ratio: 3 / 2;
    margin-bottom: 1.15rem;
    background: #e8e4dc;
}
.bw-service-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .6s cubic-bezier(.2,.6,.2,1);
}
.bw-service-card:hover .bw-service-media img { transform: scale(1.04); }
.bw-service-body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex: 1;
}
.bw-service-body .bw-h4 {
    font-weight: 700;
    font-size: clamp(1.2rem, 1.6vw, 1.45rem);
    letter-spacing: -.01em;
    line-height: 1.25;
    margin: .35rem 0 .55rem;
    color: var(--bw-ink);
}
.bw-service-body .bw-body-sm {
    margin-bottom: 1.25rem;
    max-width: 36ch;
    line-height: 1.5;
}
.bw-service-body .bw-btn-outline {
    margin-top: auto;
    background: transparent;
}

/* ---------- 7. Expect excellence (carousel) ---------- */
.bw-feature-section {
    background: #fff;
}
.bw-feature-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.75rem;
}
.bw-feature-title {
    font-family: var(--bw-sans);
    font-weight: 700;
    font-size: clamp(1.75rem, 3vw, 2.35rem);
    letter-spacing: -.02em;
    margin: 0;
    color: var(--bw-ink);
}
.bw-feature-more {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: var(--bw-ink);
    font-weight: 600;
    font-size: .95rem;
    text-decoration: none;
    white-space: nowrap;
    transition: opacity .2s, transform .2s;
}
.bw-feature-more:hover {
    opacity: .7;
    color: var(--bw-ink);
    transform: translateX(2px);
}
.bw-feature-carousel {
    position: relative;
    display: block;
}
.bw-feature-viewport {
    width: 100%;
    overflow: hidden;
}
.bw-feature-track {
    display: flex;
    gap: 1rem;
    transition: transform .45s cubic-bezier(.2, .7, .2, 1);
    will-change: transform;
}
.bw-feature-track.is-instant {
    transition: none;
}
.bw-feature-slide {
    flex: 0 0 100%;
    min-width: 0;
}
.bw-feature-nav-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: 1.5px solid rgba(15, 19, 25, .2);
    background: #fff;
    color: var(--bw-ink);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 18px rgba(15, 19, 25, .12);
    transition: background .2s, border-color .2s, color .2s, transform .2s, box-shadow .2s;
    z-index: 3;
    cursor: pointer;
}
.bw-feature-prev { left: .65rem; }
.bw-feature-next { right: .65rem; }
.bw-feature-nav-btn:hover {
    background: var(--bw-ink);
    border-color: var(--bw-ink);
    color: #fff;
    transform: translateY(-50%) scale(1.06);
    box-shadow: 0 10px 24px rgba(15, 19, 25, .18);
}
.bw-feature-nav-btn:disabled {
    opacity: .35;
    pointer-events: none;
}
@media (min-width: 768px) {
    .bw-feature-slide { flex-basis: calc((100% - 1rem) / 2); }
}
@media (min-width: 992px) {
    .bw-feature-slide { flex-basis: calc((100% - 2rem) / 3); }
}
.bw-feature-card {
    position: relative;
    display: block;
    height: min(68vh, 560px);
    min-height: 420px;
    border-radius: 20px;
    overflow: hidden;
    text-decoration: none;
    color: #fff;
    box-shadow: 0 10px 28px rgba(15, 19, 25, .12);
    transition: transform .35s ease, box-shadow .35s ease;
}
.bw-feature-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform .55s ease;
}
.bw-feature-card-shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 48%, rgba(8,10,14,.72) 100%);
    transition: background .35s ease;
    pointer-events: none;
}
.bw-feature-card-body {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    padding: 1.35rem 1.35rem 1.4rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
}
.bw-feature-card h5 {
    margin: 0;
    font-weight: 700;
    font-size: clamp(1.2rem, 1.8vw, 1.45rem);
    letter-spacing: .01em;
    color: #fff;
}
.bw-feature-card p {
    margin: .45rem 0 0;
    color: rgba(255,255,255,.9);
    font-size: .88rem;
    line-height: 1.45;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transform: translateY(8px);
    text-align: left;
    align-self: stretch;
    transition: max-height .35s ease, opacity .3s ease, transform .3s ease, margin .3s ease;
}
.bw-feature-card-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-top: 0;
    border-radius: 50%;
    border: 1.5px solid rgba(255,255,255,.85);
    color: #fff;
    font-size: 1rem;
    line-height: 1;
    opacity: 0;
    transform: translateY(10px) scale(.9);
    align-self: flex-start;
    transition: opacity .3s ease, transform .3s ease, margin .3s ease, background .2s ease;
}
.bw-feature-card:hover,
.bw-feature-card:focus-visible,
.bw-feature-card.is-active {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(15, 19, 25, .18);
    color: #fff;
}
.bw-feature-card:hover img,
.bw-feature-card:focus-visible img,
.bw-feature-card.is-active img {
    transform: scale(1.05);
}
.bw-feature-card:hover .bw-feature-card-shade,
.bw-feature-card:focus-visible .bw-feature-card-shade,
.bw-feature-card.is-active .bw-feature-card-shade {
    background: linear-gradient(180deg, transparent 32%, rgba(8,10,14,.88) 100%);
}
.bw-feature-card:hover p,
.bw-feature-card:focus-visible p,
.bw-feature-card.is-active p {
    max-height: 5rem;
    opacity: 1;
    transform: translateY(0);
    margin-top: .55rem;
}
.bw-feature-card:hover .bw-feature-card-btn,
.bw-feature-card:focus-visible .bw-feature-card-btn,
.bw-feature-card.is-active .bw-feature-card-btn {
    opacity: 1;
    transform: translateY(0) scale(1);
    margin-top: 1rem;
}
.bw-feature-card-btn:hover {
    background: rgba(255,255,255,.15);
}
@media (hover: none) {
    .bw-feature-card p {
        max-height: 5rem;
        opacity: 1;
        transform: none;
        margin-top: .45rem;
    }
    .bw-feature-card-btn {
        opacity: 1;
        transform: none;
        margin-top: 1rem;
    }
    .bw-feature-card-shade {
        background: linear-gradient(180deg, transparent 34%, rgba(8,10,14,.86) 100%);
    }
}
@media (max-width: 991.98px) {
    .bw-feature-carousel { gap: .55rem; }
    .bw-feature-nav-btn { width: 42px; height: 42px; }
}
@media (max-width: 767.98px) {
    .bw-feature-head {
        align-items: flex-start;
        flex-direction: column;
        gap: .85rem;
        margin-bottom: 1.25rem;
    }
    .bw-feature-carousel { gap: .4rem; }
    .bw-feature-nav-btn { width: 38px; height: 38px; }
    .bw-feature-card { height: 360px; min-height: 320px; }
}

/* ---------- Our Services (4-up) ---------- */
.bw-services-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 2rem;
}
.bw-services-head h2 {
    font-family: var(--bw-sans);
    font-weight: 700;
    font-size: clamp(1.75rem, 3vw, 2.35rem);
    letter-spacing: -.02em;
    margin: 0;
    color: var(--bw-ink);
}
.bw-see-all {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    color: var(--bw-ink);
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    transition: opacity .2s, transform .2s;
}
.bw-see-all:hover { color: var(--bw-ink); opacity: .7; transform: translateX(2px); }
.bw-see-all-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: 1.5px solid var(--bw-ink);
    border-radius: 50%;
    font-size: .85rem;
    line-height: 1;
}
.bw-svc-card { height: 100%; }
.bw-svc-card img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 1.35rem;
    display: block;
    margin-bottom: 1.1rem;
}
.bw-svc-card h5 {
    font-weight: 700;
    font-size: 1.1rem;
    margin: 0 0 .45rem;
    color: var(--bw-ink);
}
.bw-svc-card p {
    margin: 0;
    color: var(--bw-gray);
    font-size: .95rem;
    line-height: 1.5;
}

/* ---------- Why choose (blue top accent cards) ---------- */
.bw-why-card {
    background: #fff;
    border-radius: 14px;
    padding: 1.6rem 1.5rem 1.5rem;
    border-top: 5px solid var(--bw-accent);
    height: 100%;
    box-shadow: 0 8px 24px rgba(15, 19, 25, 0.08);
    transition: transform .25s ease, box-shadow .25s ease;
}
.bw-why-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 32px rgba(15, 19, 25, 0.12);
}
.bw-why-icon {
    width: 48px;
    height: 48px;
    margin-bottom: 1rem;
    color: var(--bw-accent);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    font-size: 1.75rem;
    line-height: 1;
}
.bw-why-icon svg { width: 100%; height: 100%; }
.bw-why-card h5 {
    font-weight: 700;
    font-size: 1.15rem;
    margin: 0 0 .5rem;
    color: var(--bw-ink);
}
.bw-why-card p {
    margin: 0;
    color: #444;
    font-size: .95rem;
    line-height: 1.5;
}

/* Home — tighter spacing around trust cards between fleet & services */
.bw-fleet-section--tight {
    padding-bottom: 3.25rem;
}
.bw-home-trust {
    padding-top: 2rem;
    padding-bottom: 2rem;
}
.bw-home-services {
    padding-top: 3.25rem;
}

/* ---------- Top Destination ---------- */
.bw-destinations {
    background: var(--bw-cream);
}
.bw-dest-head {
    margin-bottom: 2.25rem;
}
.bw-dest-head h2 {
    font-family: var(--bw-sans);
    font-weight: 700;
    font-size: clamp(1.75rem, 3vw, 2.35rem);
    letter-spacing: -.02em;
    margin: 0 0 .55rem;
    color: var(--bw-ink);
}
.bw-dest-head p {
    margin: 0 auto;
    max-width: 36rem;
    color: var(--bw-gray);
    font-size: 1.05rem;
    line-height: 1.5;
}
.bw-dest-card {
    display: block;
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid rgba(15, 19, 25, .06);
    box-shadow: 0 8px 24px rgba(15, 19, 25, .06);
    text-decoration: none;
    color: var(--bw-ink);
    height: 100%;
    transition: transform .25s ease, box-shadow .25s ease;
}
.bw-dest-card:hover {
    color: var(--bw-ink);
    transform: translateY(-4px);
    box-shadow: 0 16px 36px rgba(15, 19, 25, .12);
}
.bw-dest-media {
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: #e8e4dc;
}
.bw-dest-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .55s cubic-bezier(.2,.6,.2,1);
}
.bw-dest-card:hover .bw-dest-media img {
    transform: scale(1.04);
}
.bw-dest-label {
    text-align: center;
    font-weight: 700;
    font-size: .98rem;
    padding: 1rem .75rem;
    background: #fff;
    letter-spacing: -.01em;
}

/* ---------- Our Fleet ---------- */
.bw-fleet-section { background: #fff; }
.bw-fleet-section > .container {
    max-width: min(1140px, 94vw);
    padding-left: clamp(1.5rem, 4.5vw, 3rem);
    padding-right: clamp(1.5rem, 4.5vw, 3rem);
}
.bw-fleet-badge {
    display: inline-block;
    background: var(--bw-ink);
    color: #fff;
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .04em;
    padding: .4rem 1rem;
    border-radius: 999px;
    margin-bottom: 1rem;
}
.bw-fleet-title {
    font-family: var(--bw-sans);
    font-weight: 700;
    font-size: clamp(1.85rem, 3.5vw, 2.6rem);
    letter-spacing: -.02em;
    margin: 0 0 .85rem;
    color: var(--bw-ink);
}
.bw-fleet-sub {
    max-width: 40rem;
    margin: 0 auto 1.75rem;
    color: var(--bw-gray);
    font-size: 1.02rem;
    line-height: 1.55;
}
.bw-fleet-tabs {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .35rem .15rem;
    margin-bottom: 2.25rem;
}
.bw-fleet-tabs button {
    appearance: none;
    border: none;
    background: transparent;
    color: var(--bw-ink);
    font-weight: 600;
    font-size: .95rem;
    padding: .55rem 1.15rem;
    border-radius: 999px;
    transition: background .2s, color .2s;
}
.bw-fleet-tabs button:hover { background: #f0f1f3; }
.bw-fleet-tabs button.active {
    background: var(--bw-ink);
    color: #fff;
}
.bw-fleet-card {
    background: #fff;
    border-radius: 16px;
    box-shadow:
        0 4px 12px rgba(15, 19, 25, .06),
        0 12px 32px rgba(15, 19, 25, .12);
    padding: 0 0 1.45rem;
    height: 100%;
    min-height: 460px;
    max-width: 380px;
    margin-inline: auto;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: transform .25s ease, box-shadow .25s ease;
}
.bw-fleet-card:hover {
    transform: translateY(-4px);
    box-shadow:
        0 8px 20px rgba(15, 19, 25, .08),
        0 20px 44px rgba(15, 19, 25, .16);
}
.bw-fleet-card img {
    width: 100%;
    height: 210px;
    object-fit: cover;
    object-position: center;
    display: block;
    margin: 0 0 1rem;
}
.bw-fleet-card h5 {
    font-weight: 700;
    font-size: .98rem;
    margin: 0 1.15rem .35rem;
}
.bw-fleet-card > p {
    color: var(--bw-gray);
    font-size: .8rem;
    line-height: 1.45;
    margin: 0 1.15rem .9rem;
    min-height: 2.9em;
}
.bw-fleet-feats {
    list-style: none;
    padding: 0 1.15rem;
    margin: 0 0 1.1rem;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .45rem .55rem;
    flex: 1;
}
.bw-fleet-feats li {
    display: flex;
    align-items: center;
    gap: .35rem;
    font-size: .76rem;
    color: #555;
}
.bw-fleet-feats li::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--bw-ink);
    flex-shrink: 0;
}
.bw-fleet-card .btn {
    display: block;
    align-self: stretch;
    width: auto;
    box-sizing: border-box;
    border-radius: 10px;
    font-weight: 600;
    padding: .7rem 1rem;
    margin: 0 1.15rem;
    text-align: center;
    background: var(--bw-ink);
    border: none;
    color: #fff;
    font-size: .82rem;
}
.bw-fleet-card .btn:hover {
    background: #000;
    border: none;
    color: #fff;
}
#bwFleetGrid [data-fleet-cat].is-hidden { display: none !important; }

.bw-fleet-carousel-nav {
    display: none;
    align-items: center;
    justify-content: center;
    margin-top: 1.1rem;
}
.bw-fleet-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
}
.bw-fleet-dots button {
    width: 7px;
    height: 7px;
    border-radius: 999px;
    border: none;
    padding: 0;
    background: #c5c9cf;
    transition: width .25s ease, background .25s ease;
}
.bw-fleet-dots button.active {
    width: 22px;
    background: var(--bw-ink);
}

/* ---------- Top Airports ---------- */
.bw-airports {
    background: #0a0a0a;
    color: #fff;
    padding: 4.5rem 0;
    overflow: hidden;
}
.bw-airports-title {
    font-family: var(--bw-sans);
    font-weight: 700;
    font-size: clamp(1.85rem, 3.5vw, 2.5rem);
    margin: 0 0 1rem;
    letter-spacing: -.02em;
}
.bw-airports-copy {
    color: rgba(255,255,255,.78);
    font-size: 1rem;
    line-height: 1.6;
    max-width: 32rem;
    margin: 0;
}
.bw-airport-carousel { width: 100%; }
.bw-airport-viewport {
    overflow: hidden;
    width: 100%;
}
.bw-airport-track {
    display: flex;
    gap: 1rem;
    will-change: transform;
    transition: transform .55s cubic-bezier(.2, .6, .2, 1);
}
.bw-airport-card {
    flex: 0 0 auto;
    width: calc((100% - 2rem) / 3);
    max-width: none;
    border-radius: 14px;
    overflow: hidden;
    background: #141414;
    text-decoration: none;
    color: #fff;
    transition: transform .25s ease, box-shadow .25s ease;
}
.bw-airport-card:hover { transform: translateY(-4px); color: #fff; }
.bw-airport-card img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
}
.bw-airport-meta {
    padding: .9rem 1rem 1.1rem;
    background: #0a0a0a;
}
.bw-airport-meta strong {
    display: block;
    font-size: 1.55rem;
    font-weight: 700;
    letter-spacing: .02em;
    line-height: 1.1;
}
.bw-airport-meta span {
    font-size: .9rem;
    color: rgba(255,255,255,.7);
}
.bw-airport-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    margin-top: 1.15rem;
}
.bw-airport-dots button {
    width: 7px;
    height: 7px;
    border-radius: 999px;
    border: none;
    padding: 0;
    background: rgba(255,255,255,.35);
    transition: width .25s ease, background .25s ease;
}
.bw-airport-dots button.active {
    width: 22px;
    background: #fff;
}

/* ---------- Testimonials ---------- */
.bw-social-proof { background: #f5f6f8; }
.bw-social-proof-title {
    font-family: var(--bw-sans);
    font-weight: 700;
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    letter-spacing: -.02em;
    margin: 0 0 .75rem;
    text-align: center;
}
.bw-social-proof-sub {
    text-align: center;
    color: var(--bw-gray);
    max-width: 38rem;
    margin: 0 auto 2.25rem;
    font-size: 1rem;
    line-height: 1.5;
}
.bw-testi-carousel { width: 100%; }
.bw-testi-viewport {
    overflow: hidden;
    width: 100%;
}
.bw-testi-track {
    display: flex;
    gap: 1.25rem;
    will-change: transform;
    transition: transform .55s cubic-bezier(.2, .6, .2, 1);
}
.bw-testi-card {
    flex: 0 0 auto;
    width: calc((100% - 2.5rem) / 3);
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 8px 24px rgba(15,19,25,.07);
    padding: 1.5rem 1.35rem 1.35rem;
    display: flex;
    flex-direction: column;
    min-height: 220px;
}
.bw-testi-card blockquote {
    margin: 0 0 1.25rem;
    font-style: italic;
    color: #444;
    font-size: .95rem;
    line-height: 1.55;
    flex: 1;
}
.bw-testi-author {
    display: flex;
    align-items: center;
    gap: .65rem;
}
.bw-testi-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--bw-ink);
    color: var(--bw-accent);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    flex-shrink: 0;
}
.bw-testi-author strong {
    font-size: .95rem;
    font-weight: 600;
    color: var(--bw-ink);
}
.bw-testi-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    margin-top: 1.75rem;
}
.bw-testi-dots button {
    width: 7px;
    height: 7px;
    border-radius: 999px;
    border: none;
    padding: 0;
    background: #c5c9cf;
    transition: width .25s ease, background .25s ease;
}
.bw-testi-dots button.active {
    width: 22px;
    background: var(--bw-ink);
}

/* ---------- FAQ ---------- */
.bw-faq-section {
    background: #f5f6f8;
    padding-top: 4.25rem;
    padding-bottom: calc(5.5rem + 10px);
}
.bw-faq-head {
    margin-top: .35rem;
    margin-bottom: 1.75rem;
}
.bw-faq-title {
    font-family: var(--bw-sans);
    font-weight: 700;
    font-size: clamp(1.75rem, 3vw, 2.35rem);
    text-align: center;
    margin: 0 0 .55rem;
    letter-spacing: -.02em;
    color: var(--bw-ink);
}
.bw-faq-sub {
    margin: 0 auto;
    max-width: 28rem;
    color: var(--bw-gray);
    font-size: 1.02rem;
    line-height: 1.5;
}
.bw-faq {
    max-width: 760px;
    margin: 0 auto;
}
.bw-faq .accordion-item {
    background: #fff;
    border: 1px solid rgba(15, 19, 25, .08);
    border-radius: 14px;
    margin-bottom: .7rem;
    overflow: hidden;
    box-shadow: 0 4px 14px rgba(15, 19, 25, .04);
    transition: box-shadow .25s ease, border-color .25s ease;
}
.bw-faq .accordion-item:has(.accordion-button:not(.collapsed)) {
    border-color: rgba(197, 160, 89, .45);
    box-shadow: 0 8px 24px rgba(15, 19, 25, .08);
}
.bw-faq .accordion-button {
    background: #fff;
    box-shadow: none !important;
    font-weight: 600;
    font-size: 1.02rem;
    color: var(--bw-ink);
    padding: 1.15rem 1.2rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: 1rem;
    text-align: left;
    transition: color .25s ease, background .25s ease;
}
.bw-faq .accordion-button:not(.collapsed) {
    color: var(--bw-ink);
    background: #fff;
}
.bw-faq .accordion-button:focus {
    box-shadow: none !important;
    border-color: transparent;
}
.bw-faq .accordion-button::after {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: 1.5px solid rgba(15, 19, 25, .2);
    background-image: none !important;
    background-color: transparent;
    transform: none !important;
    content: "+" !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    font-weight: 500;
    line-height: 1;
    color: var(--bw-ink);
    margin-left: auto;
    flex-shrink: 0;
    transition: border-color .25s ease, color .25s ease, background .25s ease;
}
.bw-faq .accordion-button:not(.collapsed)::after {
    content: "−" !important;
    border-color: var(--bw-accent);
    color: var(--bw-accent);
    background: rgba(197, 160, 89, .12);
}
.bw-faq .accordion-collapse {
    transition: height .35s ease;
}
.bw-faq .accordion-body {
    padding: 0 1.2rem 1.2rem;
    color: var(--bw-gray);
    font-size: .95rem;
    line-height: 1.6;
}
.bw-faq .accordion-body a {
    color: var(--bw-accent);
    text-decoration: none;
    font-weight: 600;
}
.bw-faq .accordion-body a:hover {
    text-decoration: underline;
}

/* ---------- Store badges ---------- */
.bw-store-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    border: 1px solid rgba(197, 160, 89, .55);
    color: var(--bw-champagne);
    border-radius: 10px;
    padding: .65rem 1.15rem;
    text-decoration: none;
    font-weight: 600;
    font-size: .88rem;
    transition: background .2s, transform .2s, border-color .2s, color .2s;
}
.bw-store-badge:hover {
    background: rgba(197, 160, 89, .12);
    border-color: var(--bw-champagne);
    color: #f3e6c8;
    transform: translateY(-2px);
}

/* ---------- Footer (LuxRide-inspired) ---------- */
.bw-footer {
    --bw-champagne: var(--bw-accent);
    --bw-champagne-soft: rgba(197, 160, 89, .7);
    position: relative;
    background: #050505;
    color: #fff;
    overflow: hidden;
}
.bw-footer-inner {
    position: relative;
    z-index: 1;
    padding: 4.5rem 0 2.25rem;
}
.bw-footer-inner::before {
    content: "";
    position: absolute;
    inset: -20% -10%;
    z-index: -1;
    pointer-events: none;
    background:
        linear-gradient(125deg, transparent 0%, rgba(197, 160, 89, .09) 38%, transparent 62%),
        linear-gradient(305deg, transparent 10%, rgba(197, 160, 89, .05) 48%, transparent 72%);
    animation: bwFootShimmer 14s ease-in-out infinite alternate;
}
@keyframes bwFootShimmer {
    0% { transform: translate3d(-4%, 2%, 0) scale(1); opacity: .85; }
    100% { transform: translate3d(5%, -3%, 0) scale(1.06); opacity: 1; }
}
.bw-foot-top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem 2rem;
    margin-bottom: 1.75rem;
}
.bw-foot-top-left {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.75rem;
}
.bw-foot-brand {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    line-height: 1;
    transition: opacity .25s ease, transform .25s ease;
}
.bw-foot-brand .bw-logo-footer {
    display: block;
    height: 56px;
    width: auto;
    max-width: min(260px, 70vw);
    object-fit: contain;
}
.bw-foot-brand:hover { opacity: .9; transform: translateY(-1px); }
.bw-foot-phone {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    color: rgba(255, 255, 255, .82);
    text-decoration: none;
    font-weight: 500;
    font-size: .98rem;
    transition: color .2s;
}
.bw-foot-phone svg { color: var(--bw-champagne); flex-shrink: 0; }
.bw-foot-phone:hover { color: var(--bw-champagne); }
.bw-foot-social-wrap {
    display: flex;
    align-items: center;
    gap: 1rem;
}
.bw-foot-follow {
    font-size: .92rem;
    font-weight: 600;
    color: rgba(255, 255, 255, .9);
}
.bw-foot-social {
    display: flex;
    align-items: center;
    gap: .55rem;
}
.bw-foot-social a {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1px solid rgba(197, 160, 89, .35);
    color: var(--bw-champagne);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: background .2s, border-color .2s, color .2s, transform .2s;
}
.bw-foot-social a:hover {
    background: rgba(197, 160, 89, .14);
    border-color: var(--bw-champagne);
    color: #f3e6c8;
    transform: translateY(-2px);
}
.bw-foot-rule {
    border: 0;
    border-top: 1px solid rgba(197, 160, 89, .22);
    opacity: 1;
    margin: 0 0 2.5rem;
    transform-origin: left center;
}
.bw-foot-rule-anim {
    transform: scaleX(.35);
    opacity: 0;
    transition: transform .8s cubic-bezier(.2, .6, .2, 1), opacity .6s ease;
}
.bw-foot-rule-anim.in-view {
    transform: scaleX(1);
    opacity: 1;
}
.bw-foot-grid {
    margin-bottom: 2.5rem;
}
@media (min-width: 992px) {
    .bw-foot-grid > [class*="col-"] {
        flex: 1 1 0;
        max-width: 100%;
        width: auto;
    }
}
.bw-foot-title {
    font-weight: 700;
    font-size: .98rem;
    letter-spacing: .02em;
    margin: 0 0 1.15rem;
    color: #fff;
}
.bw-foot-links {
    margin: 0;
    padding: 0;
}
.bw-foot-links a {
    color: rgba(255, 255, 255, .58);
    text-decoration: none;
    display: block;
    padding: .32rem 0;
    font-size: .92rem;
    line-height: 1.4;
    transition: color .25s ease, padding-left .25s ease;
}
.bw-foot-links a:hover {
    color: var(--bw-champagne);
    padding-left: .35rem;
}
.bw-foot-contact-list {
    margin: 0 0 1.35rem;
    padding: 0;
}
.bw-foot-contact-list li {
    margin-bottom: 1rem;
}
.bw-foot-contact-list li:last-child { margin-bottom: 0; }
.bw-foot-contact-label {
    display: block;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--bw-champagne);
    margin-bottom: .3rem;
}
.bw-foot-contact-list a,
.bw-foot-contact-list span:not(.bw-foot-contact-label) {
    color: rgba(255, 255, 255, .72);
    text-decoration: none;
    font-size: .92rem;
    line-height: 1.45;
}
.bw-foot-contact-list a:hover { color: var(--bw-champagne); }
.bw-foot-app {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: .55rem;
    margin-top: 1.5rem;
}
.bw-foot-app-label {
    font-weight: 700;
    font-size: .92rem;
    margin-bottom: .15rem;
    color: #fff;
}
.bw-foot-bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    padding-top: 1.35rem;
    margin-top: .25rem;
    opacity: 1;
    visibility: visible;
}
.bw-foot-copy {
    color: rgba(255, 255, 255, .65);
    font-size: .88rem;
}
.bw-foot-legal {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem 1.25rem;
}
.bw-foot-legal a {
    color: rgba(255, 255, 255, .65);
    text-decoration: none;
    font-size: .88rem;
    transition: color .2s;
}
.bw-foot-legal a:hover { color: var(--bw-champagne); }
.bw-foot-meta {
    display: flex;
    align-items: center;
    gap: 1.15rem;
    color: rgba(255, 255, 255, .65);
    font-size: .88rem;
}
.bw-foot-meta span {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}
.bw-foot-meta svg { color: var(--bw-champagne); flex-shrink: 0; }

/* ---------- Reveal animations ---------- */
.reveal, .reveal-left, .reveal-right, .reveal-zoom { opacity: 0; transition: opacity .7s ease, transform .7s cubic-bezier(.2,.6,.2,1); will-change: opacity, transform; }
.reveal { transform: translateY(28px); }
.reveal-left { transform: translateX(-40px); }
.reveal-right { transform: translateX(40px); }
.reveal-zoom { transform: scale(.94); }
.in-view { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
    .reveal, .reveal-left, .reveal-right, .reveal-zoom { opacity: 1; transform: none; transition: none; }
    .bw-live-dot, .bw-btn-accent, .bw-navbar .dropdown-menu { animation: none; }
    .bw-footer-inner::before { animation: none; }
    .bw-hero { background-attachment: scroll, scroll; }
    .bw-foot-rule-anim { transform: none; opacity: 1; transition: none; }
}

/* ---------- Responsive (mobile / tablet only — desktop unchanged) ---------- */
@media (max-width: 991.98px) {
    /* Clip horizontal reveal effects without creating a scroll container for sticky sections. */
    html, body { overflow-x: clip; }

    /* Bootstrap g-5 has 48px gutters: its negative margins exceed mobile container padding. */
    .row.g-5 { --bs-gutter-x: 1.5rem; }
    .row > * { min-width: 0; }

    .bw-navbar { padding: .85rem 0; min-height: 68px; }
    .bw-navbar .navbar-brand .bw-logo { height: 40px; }
    .bw-navbar .nav-link {
        margin: 0;
        padding: .7rem .5rem;
        font-size: .98rem;
    }
    .bw-navbar .navbar-toggler {
        padding: .35rem;
        border: 1px solid rgba(255, 255, 255, .35) !important;
        border-radius: 10px;
    }
    .bw-navbar.scrolled .navbar-toggler {
        border-color: rgba(15, 19, 25, .2) !important;
    }
    .bw-navbar .navbar-collapse {
        max-height: min(78vh, 560px);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .bw-hero {
        padding-top: 6.5rem;
        padding-bottom: 3rem;
        background-attachment: scroll, scroll;
        background-position: center center, 40% center;
    }
    .bw-hero .row.g-5 { --bs-gutter-y: 2rem; }
    .bw-hero-left { margin-bottom: .25rem; }
    .bw-hero-sub { max-width: none; font-size: .92rem; }
    .bw-live-pill {
        max-width: 100%;
        font-size: .78rem;
        padding: .38rem .8rem;
        white-space: normal;
        line-height: 1.35;
    }
    .bw-quote-card {
        padding: 1.2rem;
        border-radius: 16px;
        margin-top: .5rem;
    }
    .bw-section { padding: 3.5rem 0; }
    .bw-highlight-services { padding-top: 3rem; }

    .bw-fleet-section > .container {
        max-width: 100%;
        padding-left: 1rem;
        padding-right: 1rem;
    }
    .bw-fleet-card {
        max-width: none;
        margin-inline: 0;
        min-height: 0;
    }
    .bw-fleet-tabs {
        flex-wrap: nowrap;
        justify-content: flex-start;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        gap: .4rem;
        padding-bottom: .35rem;
        margin-bottom: 1.35rem;
        scrollbar-width: none;
    }
    .bw-fleet-tabs::-webkit-scrollbar { display: none; }
    .bw-fleet-tabs button {
        flex: 0 0 auto;
        white-space: nowrap;
        font-size: .88rem;
        padding: .55rem 1.1rem;
        background: #fff;
        border: 1px solid #e4e6ea;
        box-shadow: 0 2px 8px rgba(15, 19, 25, .04);
    }
    .bw-fleet-tabs button.active {
        background: var(--bw-ink);
        border-color: var(--bw-ink);
        color: #fff;
        box-shadow: none;
    }

    .bw-feature-head {
        flex-wrap: wrap;
        align-items: flex-start;
        gap: .75rem;
    }
    .bw-airports { padding: 3.25rem 0; }
    .bw-airports-title { font-size: clamp(1.6rem, 5vw, 2.1rem); }
    .bw-airport-card img { height: 190px; }

    .bw-social-proof-title { font-size: clamp(1.45rem, 5vw, 2rem); }
    .bw-faq-title { font-size: clamp(1.6rem, 5vw, 2.2rem); }
}

@media (max-width: 767.98px) {
    .bw-hero { padding-top: 5.75rem; padding-bottom: 2.5rem; }
    .bw-hero .row.g-5 { --bs-gutter-y: 1.75rem; }
    .bw-trust-chip { font-size: .8rem; padding: .55rem .7rem; }
    .bw-quote-tabs button { padding: .5rem .75rem; font-size: .9rem; }

    .bw-section { padding: 3rem 0; }
    .bw-service-media { border-radius: 16px; aspect-ratio: 16 / 10; }
    .bw-service-body .bw-h4 { font-size: 1.15rem; }
    .bw-service-body .bw-body-sm { max-width: none; }

    .bw-dest-head { margin-bottom: 1.5rem; }
    .bw-dest-label { font-size: .82rem; padding: .85rem .5rem; }
    .bw-dest-media { aspect-ratio: 3 / 4; }

    .bw-feature-head { align-items: center; margin-bottom: 1.25rem; }
    .bw-feature-card { height: 340px; min-height: 300px; }

    .bw-fleet-card img { height: 180px; }
    .bw-fleet-feats { grid-template-columns: 1fr 1fr; }

    .bw-fleet-carousel-nav { display: flex; }
    #bwFleetGrid.row {
        display: flex;
        flex-wrap: nowrap;
        align-items: stretch;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        scroll-behavior: smooth;
        --bs-gutter-x: 0;
        --bs-gutter-y: 0;
        margin-left: 0;
        margin-right: 0;
        padding: .25rem 0 1rem;
        gap: 0;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    #bwFleetGrid.row::-webkit-scrollbar { display: none; }
    #bwFleetGrid > [class*="col-"] {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        scroll-snap-align: start;
        scroll-snap-stop: always;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    #bwFleetGrid .bw-fleet-card {
        max-width: none;
        width: 100%;
        margin-inline: 0;
        min-height: 0;
    }
    #bwFleetGrid .bw-fleet-card img {
        height: clamp(180px, 48vw, 220px);
    }

    .bw-airport-card img { height: 200px; }

    .bw-footer-inner { padding: 3rem 0 1.75rem; }
    .bw-foot-top {
        flex-direction: column;
        align-items: flex-start;
        gap: 1.1rem;
    }
    .bw-foot-social-wrap {
        width: 100%;
        justify-content: space-between;
    }
    .bw-foot-bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: .85rem;
    }
    .bw-foot-legal {
        gap: .5rem 1rem;
    }
}

@media (max-width: 575.98px) {
    .container {
        padding-left: calc(var(--bs-gutter-x) * .5 + 6px);
        padding-right: calc(var(--bs-gutter-x) * .5 + 6px);
    }

    .bw-hero-title {
        font-size: clamp(26px, 8vw, 34px);
        margin: .9rem 0 .85rem;
    }
    .bw-hero-sub { font-size: .88rem; margin-bottom: 1.15rem; }
    .bw-btn-accent {
        width: 100%;
        justify-content: center;
    }
    .bw-live-pill { font-size: .74rem; }

    .bw-quote-card { padding: 1rem; border-radius: 14px; }
    .bw-quote-form .form-control,
    .bw-quote-form .form-select {
        height: 42px;
        font-size: .88rem;
    }

    .bw-section { padding: 2.6rem 0; }
    .bw-highlight-services { padding-top: 2.4rem; }

    .bw-services-head {
        flex-direction: column;
        align-items: flex-start;
        gap: .65rem;
        margin-bottom: 1.4rem;
    }
    .bw-svc-card img {
        aspect-ratio: 16 / 11;
        border-radius: 1.1rem;
        margin-bottom: .9rem;
    }

    .bw-fleet-title { font-size: clamp(1.55rem, 7vw, 2rem); }
    .bw-fleet-sub { font-size: .95rem; margin-bottom: 1.25rem; }
    .bw-fleet-card h5 { font-size: .95rem; }
    .bw-fleet-card > p { font-size: .78rem; min-height: 0; }
    .bw-fleet-feats {
        grid-template-columns: 1fr 1fr;
        gap: .4rem .5rem;
    }
    .bw-fleet-feats li { font-size: .74rem; }

    .bw-dest-head h2 { font-size: clamp(1.5rem, 7vw, 1.9rem); }
    .bw-dest-head p { font-size: .95rem; }
    .bw-dest-label {
        font-size: .78rem;
        padding: .75rem .4rem;
        line-height: 1.3;
    }

    .bw-why-card { padding: 1.35rem 1.2rem 1.25rem; }
    .bw-why-icon { width: 42px; height: 42px; }

    .bw-feature-title { font-size: clamp(1.45rem, 6.5vw, 1.85rem); }
    .bw-feature-card { height: 300px; min-height: 280px; }

    .bw-airports { padding: 2.75rem 0; }
    .bw-airports-copy { font-size: .92rem; }
    .bw-airport-card img { height: 180px; }

    .bw-social-proof-sub { font-size: .92rem; }
    .bw-testi-card { padding: 1.25rem; }
    .bw-testi-dots { gap: .4rem; }
    .bw-faq .accordion-button { font-size: .95rem; padding: 1rem 1.1rem; }
    .bw-faq .accordion-body { font-size: .92rem; }

    .bw-foot-brand .bw-logo-footer { height: 48px; }
    .bw-foot-phone { font-size: .92rem; }
    .bw-foot-title { margin-bottom: .85rem; }
    .bw-foot-app .bw-store-badge { text-align: center; }
    .bw-foot-copy,
    .bw-foot-legal a,
    .bw-foot-meta { font-size: .82rem; }
}

/* ---------- Service Area page ---------- */
.bw-service-area-page {
    background: #fff;
}
.bw-service-area-hero {
    position: relative;
    margin-top: 84px;
    padding: clamp(4.75rem, 8vw, 6.5rem) 0 4.5rem;
    overflow: hidden;
    background: #08111a;
    color: #fff;
}
.bw-service-area-hero-bg,
.bw-service-area-hero-shade {
    position: absolute;
    inset: 0;
}
.bw-service-area-hero-bg {
    pointer-events: none;
}
.bw-service-area-hero-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
    opacity: .45;
}
.bw-service-area-hero-shade {
    background:
        linear-gradient(90deg, rgba(5, 7, 10, .92) 0%, rgba(5, 7, 10, .76) 42%, rgba(5, 7, 10, .45) 100%),
        linear-gradient(180deg, rgba(5, 7, 10, .18) 0%, rgba(5, 7, 10, .58) 100%);
}
.bw-service-area-hero-title {
    font-family: var(--bw-sans);
    font-size: clamp(2.25rem, 4.9vw, 4.2rem);
    line-height: 1.04;
    font-weight: 700;
    letter-spacing: -.03em;
    margin: 0 0 1rem;
    max-width: 11ch;
}
.bw-service-area-hero-sub {
    max-width: 42rem;
    color: rgba(255,255,255,.82);
    font-size: 1.04rem;
    line-height: 1.75;
    margin: 0 0 1.4rem;
}
.bw-service-area-checklist {
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
    display: grid;
    gap: .7rem;
}
.bw-service-area-checklist li {
    position: relative;
    padding-left: 1.5rem;
    color: rgba(255,255,255,.92);
    font-weight: 500;
}
.bw-service-area-checklist li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .55rem;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--bw-accent);
    box-shadow: 0 0 0 5px rgba(197, 160, 89, .16);
}
.bw-service-area-phone {
    margin: 0 0 1.25rem;
}
.bw-service-area-intro {
    background:
        linear-gradient(180deg, #fff 0%, #fbfbfc 100%);
}
.bw-service-area-routes {
    background: #f7f7f9;
}
.bw-service-area-routes-title {
    font-family: var(--bw-sans);
    font-weight: 700;
    font-size: clamp(1.75rem, 3vw, 2.35rem);
    letter-spacing: -.02em;
    color: var(--bw-ink);
    margin: 0 0 .55rem;
}
.bw-service-area-routes-sub {
    color: var(--bw-gray);
    max-width: 42rem;
    margin: 0 auto;
}
.bw-service-route-card {
    height: 100%;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid rgba(15, 19, 25, .08);
    border-radius: 18px;
    box-shadow: 0 10px 28px rgba(15, 19, 25, .06);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
    overflow: hidden;
}
.bw-service-route-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 36px rgba(15, 19, 25, .1);
    border-color: rgba(197, 160, 89, .32);
}
.bw-service-route-media {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 10;
    background: #111;
}
.bw-service-route-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, .06) 0%, rgba(0, 0, 0, .52) 100%);
}
.bw-service-route-media img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform .4s ease;
}
.bw-service-route-card:hover .bw-service-route-media img {
    transform: scale(1.04);
}
.bw-service-route-tag {
    position: absolute;
    left: 1rem;
    top: 1rem;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: .45rem .8rem;
    border-radius: 999px;
    background: rgba(15, 19, 25, .74);
    border: 1px solid rgba(255, 255, 255, .14);
    color: #fff;
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .01em;
}
.bw-service-route-icon {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 19, 25, .05);
    color: var(--bw-ink);
}
.bw-service-route-icon svg {
    width: 24px;
    height: 24px;
}
.bw-service-route-copy h3 {
    margin: 0 0 .3rem;
    color: var(--bw-ink);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.4;
}
.bw-service-route-copy p {
    margin: 0;
    color: var(--bw-gray);
    font-size: .9rem;
}
.bw-service-route-copy {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1.15rem 1.15rem 1.2rem;
}
.bw-service-area-banner {
    padding: 2rem 0 1rem;
    background: #fff;
}
.bw-service-area-banner-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, .82fr);
    align-items: center;
    gap: 0;
    background:
        radial-gradient(circle at 34% 50%, rgba(197, 160, 89, .2), transparent 26%),
        linear-gradient(90deg, #cfab47 0%, #d8b454 56%, #0f1319 56%, #0a0d12 100%);
    border: 1px solid rgba(15, 19, 25, .04);
    border-radius: 26px;
    box-shadow: 0 16px 44px rgba(15, 19, 25, .11);
    overflow: hidden;
}
.bw-service-area-banner-media {
    height: 100%;
    min-height: 260px;
    position: relative;
}
.bw-service-area-banner-media img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    padding: 1.15rem 1rem 0;
    filter: drop-shadow(0 16px 24px rgba(0, 0, 0, .25));
}
.bw-service-area-banner-copy {
    padding: 2rem 2rem 2rem 2.2rem;
}
.bw-service-area-banner-eyebrow {
    margin: 0 0 .55rem;
    text-transform: uppercase;
    letter-spacing: .12em;
    font-size: .74rem;
    font-weight: 700;
    color: rgba(15, 19, 25, .72);
}
.bw-service-area-banner-copy h2 {
    margin: 0 0 .8rem;
    color: #101317;
    font-family: var(--bw-sans);
    font-size: clamp(1.7rem, 3vw, 2.4rem);
    line-height: 1.12;
    letter-spacing: -.02em;
}
.bw-service-area-banner-copy p {
    color: rgba(16, 19, 23, .8);
    line-height: 1.7;
    margin: 0 0 1.2rem;
    max-width: 30rem;
}
.bw-service-area-banner-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 200px;
    min-height: 52px;
    padding: .85rem 1.4rem;
    border-radius: 999px;
    background: #0f1319;
    color: #fff;
    text-decoration: none;
    font-weight: 600;
    box-shadow: 0 12px 26px rgba(15, 19, 25, .18);
    transition: transform .2s ease, background .2s ease, color .2s ease;
}
.bw-service-area-banner-btn:hover {
    background: #050607;
    color: #fff;
    transform: translateY(-2px);
}
.bw-service-area-why {
    background: #fff;
}

@media (max-width: 991.98px) {
    .bw-service-area-hero {
        padding-top: 4rem;
        padding-bottom: 3.5rem;
    }
    .bw-service-area-banner-card {
        grid-template-columns: 1fr;
    }
    .bw-service-area-banner-copy {
        padding: 1.5rem 1.4rem 1rem;
    }
    .bw-service-area-banner-media {
        order: -1;
    }
}

@media (max-width: 767.98px) {
    .bw-service-area-hero-title {
        max-width: none;
    }
    .bw-service-area-hero-sub {
        font-size: .95rem;
        line-height: 1.65;
    }
    .bw-service-area-checklist {
        gap: .6rem;
    }
    .bw-service-route-card {
        border-radius: 16px;
    }
    .bw-service-area-banner {
        padding-top: 1rem;
    }
    .bw-service-area-banner-media {
        min-height: 220px;
    }
    .bw-service-route-copy {
        padding: 1rem;
        gap: .85rem;
    }
}

@media (max-width: 575.98px) {
    .bw-service-area-hero {
        padding-top: 3.4rem;
        padding-bottom: 2.8rem;
    }
    .bw-service-area-banner-card {
        border-radius: 20px;
    }
    .bw-service-area-banner-media img {
        padding: 1rem .7rem 0;
    }
    .bw-service-area-banner-copy {
        padding: 1.2rem 1rem 1rem;
    }
    .bw-service-area-banner-btn {
        width: 100%;
    }
}

/* ---------- Services page ---------- */
.bw-services-page {
    background: #fff;
}
.bw-services-grid-section {
    background: #f7f7f9;
}
.bw-services-grid-title {
    margin: 0 0 .6rem;
    font-family: var(--bw-sans);
    font-weight: 700;
    font-size: clamp(1.75rem, 3vw, 2.4rem);
    letter-spacing: -.02em;
    color: var(--bw-ink);
}
.bw-services-grid-sub {
    margin: 0 auto;
    max-width: 42rem;
    color: var(--bw-gray);
    line-height: 1.65;
    font-size: 1rem;
}
.bw-services-offer-card {
    height: 100%;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid rgba(15, 19, 25, .08);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 12px 30px rgba(15, 19, 25, .06);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.bw-services-offer-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 18px 40px rgba(15, 19, 25, .1);
    border-color: rgba(197, 160, 89, .35);
}
.bw-services-offer-media {
    overflow: hidden;
    aspect-ratio: 16 / 10;
    background: #111;
}
.bw-services-offer-media img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform .4s ease;
}
.bw-services-offer-card:hover .bw-services-offer-media img {
    transform: scale(1.04);
}
.bw-services-offer-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 1.35rem 1.35rem 1.45rem;
}
.bw-services-offer-body h3 {
    margin: 0 0 .55rem;
    color: var(--bw-ink);
    font-size: 1.18rem;
    font-weight: 700;
    letter-spacing: -.01em;
}
.bw-services-offer-body p {
    margin: 0 0 1.15rem;
    color: var(--bw-gray);
    font-size: .95rem;
    line-height: 1.65;
    flex: 1;
}
.bw-services-offer-btn {
    align-self: flex-start;
    min-width: 148px;
}
.bw-services-why {
    background: #fff;
}
.bw-services-why-title {
    margin: 0 0 .55rem;
    font-family: var(--bw-sans);
    font-weight: 700;
    font-size: clamp(1.75rem, 3vw, 2.35rem);
    letter-spacing: -.02em;
    color: var(--bw-ink);
}
.bw-services-why-sub {
    margin: 0 auto;
    max-width: 40rem;
    color: var(--bw-gray);
    line-height: 1.65;
}
.bw-services-why-card {
    height: 100%;
    text-align: center;
}
.bw-services-why-card .bw-why-icon {
    margin-left: auto;
    margin-right: auto;
    color: var(--bw-accent);
}
.bw-services-why-card h3 {
    margin: 0 0 .45rem;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--bw-ink);
}
.bw-services-why-card p {
    margin: 0;
    color: var(--bw-gray);
    font-size: .92rem;
    line-height: 1.55;
}

@media (max-width: 767.98px) {
    .bw-services-offer-body {
        padding: 1.15rem 1.1rem 1.2rem;
    }
    .bw-services-offer-btn {
        width: 100%;
        justify-content: center;
    }
}

/* ---------- Contact page ---------- */
.bw-inner-page { background: #fff; }
.bw-inner-page .bw-navbar {
    background: #fff;
    box-shadow: 0 4px 20px rgba(15,19,25,.08);
}
.bw-contact-hero {
    margin-top: 84px;
    width: 100%;
    background: #0f1319;
}
.bw-contact-hero-media {
    position: relative;
    width: 100%;
    aspect-ratio: 2.4 / 1;
    max-height: min(560px, 58vh);
    min-height: 280px;
    overflow: hidden;
}
.bw-contact-hero-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 28%;
}
.bw-contact-hero-shade {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(15, 19, 25, .18) 0%, transparent 28%),
        linear-gradient(0deg, rgba(15, 19, 25, .22) 0%, transparent 34%);
}
.bw-contact-form-section {
    background: #fff;
    padding-top: 3.5rem;
    padding-bottom: 2.5rem;
}
.bw-contact-title {
    font-family: var(--bw-sans);
    font-weight: 700;
    font-size: clamp(1.85rem, 3.5vw, 2.5rem);
    text-align: center;
    letter-spacing: -.02em;
    margin: 0 0 2.25rem;
    color: var(--bw-ink);
}
.bw-contact-form {
    max-width: 720px;
    margin: 0 auto;
}
.bw-contact-input {
    border: 1px solid #d8d8dc;
    border-radius: 10px;
    padding: .9rem 1.1rem;
    font-size: 1rem;
    color: var(--bw-ink);
    background: #fff;
    box-shadow: none;
    transition: border-color .2s, box-shadow .2s;
}
.bw-contact-input::placeholder { color: #9a9aa1; }
.bw-contact-input:focus {
    border-color: var(--bw-accent);
    box-shadow: 0 0 0 3px rgba(197, 160, 89, .18);
}
.bw-contact-textarea {
    min-height: 160px;
    resize: vertical;
}
.bw-contact-phone {
    display: flex;
    align-items: stretch;
    gap: 0;
    border: 1px solid #d8d8dc;
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
    transition: border-color .2s, box-shadow .2s;
}
.bw-contact-phone:focus-within {
    border-color: var(--bw-accent);
    box-shadow: 0 0 0 3px rgba(197, 160, 89, .18);
}
.bw-contact-phone-prefix {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: 0 1rem;
    background: #f7f7f8;
    border-right: 1px solid #d8d8dc;
    color: var(--bw-ink);
    font-weight: 600;
    font-size: .95rem;
    white-space: nowrap;
}
.bw-contact-flag { font-size: 1.1rem; line-height: 1; }
.bw-contact-phone .bw-contact-input {
    border: none;
    border-radius: 0;
    box-shadow: none !important;
}
.bw-contact-phone .bw-contact-input:focus {
    box-shadow: none !important;
}
.bw-contact-submit {
    min-width: 220px;
    padding: .85rem 2rem;
    font-size: 1rem;
}
.bw-contact-map {
    background: #fff;
    padding: 0 0 4rem;
}
.bw-contact-map-frame {
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid var(--bw-border);
    background: #ebe7df;
    box-shadow: 0 10px 28px rgba(15, 19, 25, .06);
    aspect-ratio: 21 / 9;
    min-height: 280px;
}
.bw-contact-map-frame iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

@media (max-width: 991.98px) {
    .bw-contact-hero { margin-top: 68px; }
    .bw-contact-hero-media {
        aspect-ratio: 16 / 9;
        max-height: none;
        min-height: 240px;
    }
    .bw-contact-hero-img { object-position: center 30%; }
    .bw-contact-map-frame { aspect-ratio: 16 / 10; }
}
@media (max-width: 575.98px) {
    .bw-contact-hero-media {
        aspect-ratio: 4 / 3;
        min-height: 220px;
    }
    .bw-contact-hero-img { object-position: center 26%; }
    .bw-contact-form-section { padding-top: 2.5rem; }
    .bw-contact-title { margin-bottom: 1.5rem; }
    .bw-contact-submit { width: 100%; }
    .bw-contact-map { padding-bottom: 3rem; }
    .bw-contact-map-frame { aspect-ratio: 4 / 3; border-radius: 12px; }
}

/* ---------- Fleet page ---------- */
.bw-fleet-page-hero {
    position: relative;
    margin-top: 84px;
    min-height: min(68vh, 580px);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #0a0a0a;
    color: #fff;
}
.bw-fleet-page-hero-media {
    position: absolute;
    inset: 0;
}
.bw-fleet-page-hero-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 62%;
    display: block;
}
.bw-fleet-page-hero-shade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(0, 0, 0, .62) 0%, rgba(0, 0, 0, .38) 45%, rgba(0, 0, 0, .7) 100%),
        rgba(0, 0, 0, .22);
}
.bw-fleet-page-hero-content {
    position: relative;
    z-index: 1;
    text-align: center;
    padding: 4.5rem 1.25rem 4rem;
    max-width: 820px;
}
.bw-fleet-page-eyebrow {
    margin: 0 0 .85rem;
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--bw-champagne, var(--bw-accent));
}
.bw-fleet-page-title {
    font-family: var(--bw-sans);
    font-weight: 700;
    font-size: clamp(2rem, 5vw, 3.35rem);
    letter-spacing: -.03em;
    line-height: 1.1;
    margin: 0 0 1rem;
    color: #fff;
}
.bw-fleet-page-lead {
    margin: 0 auto 1.75rem;
    max-width: 34rem;
    font-size: clamp(1rem, 2vw, 1.12rem);
    line-height: 1.55;
    color: rgba(255, 255, 255, .82);
}
.bw-fleet-page-ctas {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .75rem 1rem;
}
.bw-fleet-services {
    background: var(--bw-cream);
}
.bw-fleet-services-title {
    font-family: var(--bw-sans);
    font-weight: 700;
    font-size: clamp(1.85rem, 3.5vw, 2.5rem);
    letter-spacing: -.02em;
    margin-bottom: 2rem;
    color: var(--bw-ink);
}
.bw-btn-ghost-light {
    border: 1.5px solid rgba(255, 255, 255, .85);
    color: #fff;
    background: transparent;
    border-radius: 999px;
    padding: .7rem 1.55rem;
    font-weight: 700;
    font-size: .98rem;
    transition: background .2s, color .2s, transform .2s, border-color .2s;
}
.bw-btn-ghost-light:hover {
    background: #fff;
    color: var(--bw-ink);
    border-color: #fff;
    transform: translateY(-2px);
}

.bw-fleet-card--page {
    min-height: 520px;
    padding-bottom: 1.35rem;
    box-shadow:
        0 6px 18px rgba(15, 19, 25, .07),
        0 16px 40px rgba(15, 19, 25, .1);
}
.bw-fleet-card--page:hover {
    transform: translateY(-6px);
    box-shadow:
        0 10px 24px rgba(15, 19, 25, .1),
        0 24px 48px rgba(15, 19, 25, .14);
}
.bw-fleet-card-top {
    padding: 1.15rem 1.2rem .35rem;
}
.bw-fleet-card--page .bw-fleet-card-top h5 {
    margin: 0 0 .2rem;
    font-size: 1.05rem;
}
.bw-fleet-card-model {
    display: block;
    font-size: .78rem;
    color: var(--bw-gray);
    letter-spacing: .01em;
}
.bw-fleet-card--page img {
    height: 200px;
    margin-bottom: .85rem;
}
.bw-fleet-card--page > p {
    min-height: 2.6em;
}
.bw-fleet-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem 1.15rem;
    padding: 0 1.15rem .85rem;
    margin: 0 0 .15rem;
    border-bottom: 1px solid #eee;
    margin-left: 1.15rem;
    margin-right: 1.15rem;
    padding-left: 0;
    padding-right: 0;
}
.bw-fleet-meta span {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: .78rem;
    font-weight: 600;
    color: var(--bw-ink);
}
.bw-fleet-meta svg {
    width: 16px;
    height: 16px;
    color: var(--bw-accent);
    flex-shrink: 0;
}
.bw-fleet-card--page .bw-fleet-feats {
    margin-top: .85rem;
}

.bw-why-choose {
    background: #0a0a0a;
    color: #fff;
    padding: 4.75rem 0 4.25rem;
}
.bw-why-choose-title {
    font-family: var(--bw-sans);
    font-weight: 700;
    font-size: clamp(1.85rem, 3.5vw, 2.55rem);
    letter-spacing: -.02em;
    margin: 0 0 .85rem;
    color: #fff;
}
.bw-why-choose-sub {
    max-width: 36rem;
    margin: 0 auto 2.5rem;
    color: rgba(255, 255, 255, .68);
    font-size: 1.02rem;
    line-height: 1.55;
}
.bw-why-choose-card {
    height: 100%;
    background: #161616;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 14px;
    padding: 1.65rem 1.2rem 1.45rem;
    transition: transform .25s ease, border-color .25s ease, background .25s ease;
}
.bw-why-choose-card:hover {
    transform: translateY(-4px);
    border-color: rgba(197, 160, 89, .35);
    background: #1a1a1a;
}
.bw-why-choose-icon {
    width: 44px;
    height: 44px;
    margin: 0 auto 1rem;
    color: var(--bw-champagne, var(--bw-accent));
}
.bw-why-choose-icon svg {
    width: 100%;
    height: 100%;
}
.bw-why-choose-card h3 {
    font-size: .98rem;
    font-weight: 700;
    margin: 0 0 .45rem;
    line-height: 1.3;
    color: #fff;
}
.bw-why-choose-card p {
    margin: 0;
    font-size: .84rem;
    line-height: 1.45;
    color: rgba(255, 255, 255, .62);
}
.bw-why-choose-cta {
    margin-top: 2.5rem;
}
.bw-btn-why-choose {
    background: #fff;
    color: var(--bw-ink);
    border: none;
    border-radius: 999px;
    padding: .8rem 1.85rem;
    font-weight: 700;
    font-size: .98rem;
    transition: transform .2s, box-shadow .2s, background .2s;
}
.bw-btn-why-choose:hover {
    background: var(--bw-accent);
    color: var(--bw-ink);
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(0, 0, 0, .35);
}

@media (max-width: 991.98px) {
    .bw-fleet-page-hero {
        margin-top: 68px;
        min-height: min(58vh, 480px);
    }
    .bw-fleet-page-hero-content { padding: 3.5rem 1rem 3.25rem; }
}
@media (max-width: 767.98px) {
    .bw-fleet-card--page { min-height: 0; }
    .bw-fleet-card--page img { height: 180px; }
    .bw-why-choose { padding: 3.5rem 0 3.25rem; }
    .bw-why-choose-card { padding: 1.35rem 1rem 1.2rem; }
    .bw-why-choose-card h3 { font-size: .9rem; }
    .bw-why-choose-card p { font-size: .78rem; }
}
@media (max-width: 575.98px) {
    .bw-fleet-page-ctas { flex-direction: column; align-items: stretch; }
    .bw-fleet-page-ctas .btn { width: 100%; text-align: center; }
    .bw-btn-why-choose { width: 100%; }
}

/* ---------- Book Now page ---------- */
.bw-book-page {
    background:
        radial-gradient(ellipse 80% 50% at 50% -10%, rgba(197, 160, 89, .12), transparent 55%),
        linear-gradient(180deg, #f3eee4 0%, var(--bw-cream) 38%, #f7f3eb 100%);
}
.bw-book-section {
    padding: 7.5rem 0 5rem;
}
.bw-book-intro {
    max-width: 40rem;
    margin: 0 auto 2rem;
}
.bw-book-badge {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    background: var(--bw-ink);
    color: #fff;
    font-size: .8rem;
    font-weight: 600;
    letter-spacing: .03em;
    padding: .45rem 1.05rem;
    border-radius: 999px;
    margin-bottom: 1.15rem;
}
.bw-book-badge svg { flex-shrink: 0; color: var(--bw-accent); }
.bw-book-title {
    font-family: var(--bw-sans);
    font-weight: 700;
    font-size: clamp(2rem, 4.5vw, 2.85rem);
    letter-spacing: -.03em;
    margin: 0 0 .85rem;
    color: var(--bw-ink);
}
.bw-book-lead {
    margin: 0 auto;
    color: var(--bw-gray);
    font-size: clamp(1rem, 2vw, 1.08rem);
    line-height: 1.55;
    max-width: 34rem;
}
.bw-book-card {
    max-width: 820px;
    margin: 0 auto;
    background: #fff;
    border-radius: 22px;
    padding: clamp(1.35rem, 3vw, 2rem);
    border: 1px solid rgba(15, 19, 25, .06);
    box-shadow:
        0 4px 16px rgba(15, 19, 25, .05),
        0 24px 56px rgba(15, 19, 25, .1);
}
.bw-book-card .bw-quote-tabs {
    max-width: 320px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 1.65rem;
}
/* Urban-style phone: flag + country select overlay + number */
.bw-phone-input {
    display: flex;
    align-items: stretch;
    height: 44px;
    border: 1px solid #dfe3e8;
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
    transition: border-color .2s, box-shadow .2s;
}
.bw-phone-input:focus-within {
    border-color: var(--bw-ink);
    box-shadow: 0 0 0 .18rem rgba(15, 19, 25, .1);
}
.bw-phone-country {
    position: relative;
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    padding: 0 .55rem 0 .7rem;
    gap: .35rem;
    background: #f6f7f8;
    border-right: 1px solid #dfe3e8;
}
.bw-phone-flag {
    display: block;
    width: 20px;
    height: 15px;
    object-fit: cover;
    border-radius: 2px;
    box-shadow: 0 0 0 1px rgba(15, 19, 25, .08);
    pointer-events: none;
}
.bw-phone-country-select {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    border: 0;
    z-index: 1;
    font-size: 16px; /* prevent iOS zoom on open */
}
.bw-phone-country-arrow {
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid #6e6e73;
    pointer-events: none;
    flex-shrink: 0;
}
.bw-quote-form .bw-phone-number,
.bw-phone-number {
    flex: 1 1 auto;
    min-width: 0;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    height: 100% !important;
    background: transparent !important;
}
.bw-phone-number:focus {
    box-shadow: none !important;
}
.bw-airport-quote .bw-phone-input {
    border-color: rgba(255, 255, 255, .18);
    background: rgba(255, 255, 255, .06);
}
.bw-airport-quote .bw-phone-input:focus-within {
    border-color: rgba(255, 255, 255, .45);
    box-shadow: 0 0 0 .18rem rgba(255, 255, 255, .08);
}
.bw-airport-quote .bw-phone-country {
    background: rgba(255, 255, 255, .08);
    border-right-color: rgba(255, 255, 255, .18);
}
.bw-airport-quote .bw-phone-country-arrow {
    border-top-color: rgba(255, 255, 255, .7);
}
.bw-book-phone {
    display: flex;
    align-items: stretch;
    border: 1px solid #dfe3e8;
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
    transition: border-color .2s, box-shadow .2s;
}
.bw-book-phone:focus-within {
    border-color: var(--bw-ink);
    box-shadow: 0 0 0 .18rem rgba(15, 19, 25, .1);
}
.bw-book-phone-prefix {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: 0 .9rem;
    background: #f6f7f8;
    border-right: 1px solid #dfe3e8;
    color: var(--bw-ink);
    font-weight: 600;
    font-size: .9rem;
    white-space: nowrap;
}
.bw-book-flag { font-size: 1rem; line-height: 1; }
.bw-book-submit {
    border-radius: 12px !important;
    padding: .95rem 1.25rem !important;
    font-size: 1.02rem;
    letter-spacing: .01em;
}
.bw-book-form .form-control,
.bw-book-form .form-select {
    min-height: 48px;
}

@media (max-width: 991.98px) {
    .bw-book-section { padding: 6.25rem 0 4rem; }
}
@media (max-width: 575.98px) {
    .bw-book-section { padding: 5.5rem 0 3.25rem; }
    .bw-book-card {
        border-radius: 16px;
        padding: 1.15rem 1rem 1.25rem;
    }
    .bw-book-card .bw-quote-tabs { max-width: none; }
}

/* ---------- Airport pages (shared template) ---------- */
.bw-airport-hero {
    position: relative;
    margin-top: 84px;
    padding: 3.75rem 0 4.25rem;
    color: #fff;
    overflow: hidden;
}
.bw-airport-hero-bg { position: absolute; inset: 0; }
.bw-airport-hero-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}
.bw-airport-hero-shade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(105deg, rgba(8, 10, 14, .92) 0%, rgba(8, 10, 14, .72) 52%, rgba(8, 10, 14, .5) 100%),
        rgba(0, 0, 0, .28);
}
.bw-airport-hero .container { z-index: 1; }
.bw-airport-eyebrow-hero {
    margin: 0 0 .55rem;
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .16em;
    color: var(--bw-accent);
}
.bw-airport-hero-title {
    font-family: var(--bw-sans);
    font-weight: 700;
    font-size: clamp(1.9rem, 4vw, 2.85rem);
    letter-spacing: -.03em;
    line-height: 1.12;
    margin: 0 0 1rem;
    color: #fff;
}
.bw-airport-hero-sub {
    margin: 0 0 1.25rem;
    max-width: 34rem;
    font-size: 1.02rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, .82);
}
.bw-airport-checklist {
    list-style: none;
    padding: 0;
    margin: 0 0 1.5rem;
    display: grid;
    gap: .55rem;
}
.bw-airport-checklist li {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    font-size: .95rem;
    font-weight: 500;
    color: rgba(255, 255, 255, .9);
    line-height: 1.4;
}
.bw-airport-checklist li::before {
    content: "";
    width: 1.15rem;
    height: 1.15rem;
    margin-top: .1rem;
    flex-shrink: 0;
    border-radius: 50%;
    background:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f1319' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / .7rem no-repeat,
        var(--bw-accent);
}
.bw-airport-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-bottom: 1rem;
}
.bw-airport-phone {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    margin-bottom: 1.25rem;
    padding: .7rem 1.35rem;
    border-radius: 999px;
    background: #fff;
    color: var(--bw-ink);
    font-weight: 700;
    text-decoration: none;
    transition: transform .2s, background .2s, box-shadow .2s;
}
.bw-airport-phone:hover {
    background: var(--bw-accent);
    color: var(--bw-ink);
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(0, 0, 0, .25);
}
.bw-airport-hero-trust {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}
.bw-airport-trust-chip {
    display: inline-block;
    padding: .4rem .85rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, .28);
    background: rgba(255, 255, 255, .08);
    font-size: .76rem;
    font-weight: 600;
    color: #fff;
}

/* Dark airport booking card */
.bw-airport-quote {
    background: rgba(15, 19, 25, .92);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 18px;
    box-shadow: 0 1.5rem 3.5rem rgba(0, 0, 0, .45);
    color: #fff;
}
.bw-airport-quote .bw-quote-tabs,
.bw-quote-tabs--2 {
    grid-template-columns: 1fr 1fr;
    border-color: rgba(255, 255, 255, .35);
}
.bw-airport-quote .bw-quote-tabs button {
    color: rgba(255, 255, 255, .85);
    padding: .55rem .75rem;
    font-size: .88rem;
}
.bw-airport-quote .bw-quote-tabs button.active {
    background: var(--bw-accent);
    color: var(--bw-ink);
}
.bw-airport-quote .bw-quote-form label { color: rgba(255, 255, 255, .65); }
.bw-airport-quote .bw-quote-form .form-control,
.bw-airport-quote .bw-quote-form .form-select {
    background: rgba(255, 255, 255, .06);
    border-color: rgba(255, 255, 255, .18);
    color: #fff;
}
.bw-airport-quote .bw-quote-form .form-control::placeholder { color: rgba(255, 255, 255, .4); }
.bw-airport-quote .bw-quote-form .form-control:focus,
.bw-airport-quote .bw-quote-form .form-select:focus {
    border-color: var(--bw-accent);
    box-shadow: 0 0 0 .18rem rgba(197, 160, 89, .25);
}
.bw-airport-quote .bw-quote-form .form-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23c5a059' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E");
}
.bw-airport-quote .bw-quote-form .form-select:has(option[value=""]:checked) { color: rgba(255, 255, 255, .4); }
.bw-airport-quote .bw-quote-form .form-select option { color: var(--bw-ink); background: #fff; }
.bw-quote-search { position: relative; }
.bw-quote-search .form-control { padding-left: 2.35rem; }
.bw-quote-search-icon {
    position: absolute;
    left: .85rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--bw-accent);
    pointer-events: none;
}
.bw-airport-quote-btn {
    background: var(--bw-accent);
    color: var(--bw-ink);
    border: none;
    border-radius: 12px;
    font-weight: 700;
    letter-spacing: .02em;
    transition: transform .2s, filter .2s, box-shadow .2s;
}
.bw-airport-quote-btn:hover {
    background: #d4b36e;
    color: var(--bw-ink);
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(0, 0, 0, .3);
}

.bw-airport-intro-media {
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 16px 40px rgba(15, 19, 25, .12);
}
.bw-airport-intro-media img {
    width: 100%;
    height: 100%;
    min-height: 320px;
    max-height: 460px;
    object-fit: cover;
    display: block;
}
.bw-airport-intro-title {
    font-family: var(--bw-sans);
    font-weight: 700;
    font-size: clamp(1.55rem, 3vw, 2.15rem);
    letter-spacing: -.02em;
    margin: 0 0 1rem;
    color: var(--bw-ink);
}
.bw-airport-intro-text {
    color: var(--bw-gray);
    font-size: 1.02rem;
    line-height: 1.65;
    margin: 0 0 1.1rem;
}
.bw-airport-intro-points {
    list-style: none;
    padding: 0;
    margin: 0 0 1.5rem;
    display: grid;
    gap: .55rem;
}
.bw-airport-intro-points li {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    color: var(--bw-ink);
    font-size: .95rem;
    font-weight: 500;
    line-height: 1.45;
}
.bw-airport-intro-points li::before {
    content: "";
    width: 1.05rem;
    height: 1.05rem;
    margin-top: .15rem;
    flex-shrink: 0;
    border-radius: 50%;
    background:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f1319' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / .65rem no-repeat,
        var(--bw-accent);
}
.bw-airport-fleet-link {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-weight: 700;
    font-size: .88rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--bw-ink);
    text-decoration: none;
    border-bottom: 2px solid var(--bw-accent);
    padding-bottom: .2rem;
    transition: color .2s, gap .2s;
}
.bw-airport-fleet-link:hover {
    color: var(--bw-accent);
    gap: .65rem;
}

.bw-airport-section-title {
    font-family: var(--bw-sans);
    font-weight: 700;
    font-size: clamp(1.65rem, 3vw, 2.25rem);
    letter-spacing: -.02em;
    margin: 0 0 .65rem;
}
.bw-airport-section-sub {
    max-width: 32rem;
    margin: 0 auto;
    color: var(--bw-gray);
    font-size: 1.02rem;
}
.bw-airport-features { background: #fff; }
.bw-airport-feat-card {
    height: 100%;
    text-align: center;
    padding: 1.65rem 1.1rem 1.4rem;
    border-radius: 14px;
    border: 1px solid var(--bw-border);
    background: var(--bw-cream);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.bw-airport-feat-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 32px rgba(15, 19, 25, .08);
    border-color: rgba(197, 160, 89, .45);
}
.bw-airport-feat-icon {
    width: 44px;
    height: 44px;
    margin: 0 auto 1rem;
    color: var(--bw-accent);
}
.bw-airport-feat-icon svg { width: 100%; height: 100%; }
.bw-airport-feat-card h3 {
    font-size: .98rem;
    font-weight: 700;
    margin: 0 0 .45rem;
    color: var(--bw-ink);
}
.bw-airport-feat-card p {
    margin: 0;
    font-size: .84rem;
    line-height: 1.45;
    color: var(--bw-gray);
}

.bw-airport-steps {
    background: #0a0a0a;
    color: #fff;
    padding: 4.5rem 0;
}
.bw-airport-steps-title {
    font-family: var(--bw-sans);
    font-weight: 700;
    font-size: clamp(1.55rem, 3vw, 2.2rem);
    letter-spacing: -.02em;
    margin: 0 0 .65rem;
    color: var(--bw-accent);
}
.bw-airport-steps-sub {
    margin: 0 auto;
    max-width: 34rem;
    color: rgba(255, 255, 255, .65);
    font-size: 1.02rem;
}
.bw-airport-timeline {
    list-style: none;
    padding: 1.5rem 0 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1rem;
    position: relative;
}
.bw-airport-timeline::before {
    content: "";
    position: absolute;
    top: calc(1.5rem + 1.15rem);
    left: 8%;
    right: 8%;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(197, 160, 89, .55), transparent);
}
.bw-airport-timeline-item {
    text-align: center;
    position: relative;
    z-index: 1;
}
.bw-airport-timeline-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    margin-bottom: .9rem;
    border-radius: 50%;
    background: var(--bw-accent);
    color: var(--bw-ink);
    font-weight: 700;
    font-size: 1rem;
    box-shadow: 0 0 0 6px #0a0a0a;
}
.bw-airport-timeline-item h3 {
    font-size: .95rem;
    font-weight: 700;
    margin: 0 0 .4rem;
    color: var(--bw-accent);
}
.bw-airport-timeline-item p {
    margin: 0;
    font-size: .82rem;
    line-height: 1.45;
    color: rgba(255, 255, 255, .62);
}



/* ---------- Prestige-style CTA (brand gold + dark pattern + car) ---------- */
.bw-prestige-cta,
.bw-prestige-strip {
    padding: 1.25rem 0 2rem;
    background: #fff;
}
.bw-prestige-cta { padding: 0 0 0; }
.bw-prestige-cta > .container {
    padding-left: 0;
    padding-right: 0;
    max-width: none;
}
.bw-prestige-cta-card {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 10rem;
    overflow: hidden;
    border-radius: 0;
    background-color: #0a0a0a;
    background-image:
        linear-gradient(90deg, rgba(8, 10, 12, .35) 0%, rgba(8, 10, 12, .55) 42%, rgba(8, 10, 12, .72) 100%),
        url("/images/fleet-hero.jpg");
    background-size: cover;
    background-position: center right;
    background-repeat: no-repeat;
}
.bw-prestige-cta-card--strip {
    height: 10rem;
    border-radius: .75rem;
    margin-bottom: 0;
}
.bw-prestige-cta-frame {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 72%;
    transform: scaleX(0.001);
    transform-origin: left center;
    background: linear-gradient(105deg, #d4b15a 0%, var(--bw-accent) 48%, #b8924a 100%);
    clip-path: polygon(0 0, 86% 0, 100% 50%, 86% 100%, 0 100%);
    box-shadow: inset -2px 0 0 rgba(255, 255, 255, .92);
    transition: transform 1500ms cubic-bezier(.22, .7, .2, 1);
    will-change: transform;
    pointer-events: none;
}
.bw-prestige-cta-car {
    position: absolute;
    top: 50%;
    left: 68%;
    z-index: 2;
    width: clamp(150px, 18vw, 230px);
    height: auto;
    transform: translate(-10%, -50%) scale(.2);
    opacity: 0;
    transition:
        transform 1500ms cubic-bezier(.22, .7, .2, 1),
        opacity 700ms ease 350ms;
    pointer-events: none;
    filter: drop-shadow(0 8px 18px rgba(0, 0, 0, .45));
}
.bw-prestige-cta-card.is-in .bw-prestige-cta-frame {
    transform: scaleX(1);
}
.bw-prestige-cta-card.is-in .bw-prestige-cta-car {
    opacity: 1;
    transform: translate(-10%, -50%) scale(1);
}
.bw-prestige-cta-content {
    position: relative;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem 2rem;
    width: 100%;
    padding: 0 1.5rem;
}
.bw-prestige-cta-copy {
    min-width: 0;
    max-width: min(38rem, 58%);
}
.bw-prestige-cta-title {
    margin: 0;
    color: #0f1319;
    font-family: var(--bw-sans);
    font-weight: 700;
    font-size: clamp(1.25rem, 2.4vw, 1.65rem);
    line-height: 1.2;
    letter-spacing: -.02em;
}
.bw-prestige-cta-sub {
    margin: .45rem 0 0;
    color: rgba(15, 19, 25, .82);
    font-size: .95rem;
    line-height: 1.45;
}
.bw-prestige-cta-line {
    margin: 0;
    color: #0f1319;
    font-weight: 700;
    font-size: clamp(1rem, 1.6vw, 1.35rem);
    line-height: 1.25;
    letter-spacing: -.01em;
}
.bw-prestige-cta-btn {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 1rem;
    padding: .4rem 1.5rem;
    border-radius: 999px;
    border: 1.5px solid #fff;
    background: #fff;
    color: #000;
    font-weight: 700;
    font-size: .85rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background .2s, color .2s, transform .2s, border-color .2s;
}
.bw-prestige-cta-btn--outline {
    background: transparent;
    color: #fff;
}
.bw-prestige-cta-btn:hover {
    background: #fff;
    color: #000;
    border-color: #fff;
    transform: translateY(-1px);
}
.bw-prestige-cta-btn--outline:hover {
    background: #fff;
    color: #000;
}

@media (max-width: 991.98px) {
    .bw-prestige-cta-card,
    .bw-prestige-cta-card--strip { height: 9.5rem; }
    .bw-prestige-cta-content {
        flex-wrap: wrap;
        justify-content: center;
        text-align: center;
        padding: 1rem 1.1rem;
        gap: .85rem;
    }
    .bw-prestige-cta-copy { max-width: 100%; }
    .bw-prestige-cta-btn { margin-right: 0; }
    .bw-prestige-cta-frame { width: 100%; clip-path: none; }
    .bw-prestige-cta-car {
        left: auto;
        right: .5rem;
        width: 120px;
        opacity: .35;
    }
    .bw-prestige-cta-card.is-in .bw-prestige-cta-car {
        transform: translate(0, -50%) scale(1);
    }
}
@media (max-width: 767.98px) {
    .bw-prestige-strip { padding: 1rem 0 1.5rem; }
    .bw-prestige-cta-card,
    .bw-prestige-cta-card--strip {
        height: auto;
        min-height: 8.5rem;
        border-radius: .75rem;
    }
    .bw-prestige-cta > .container {
        padding-left: calc(var(--bs-gutter-x) * .5 + 10px);
        padding-right: calc(var(--bs-gutter-x) * .5 + 10px);
    }
    .bw-prestige-cta-card { border-radius: .75rem; }
    .bw-prestige-cta-title { font-size: 1.2rem; }
    .bw-prestige-cta-btn { width: 100%; }
    .bw-prestige-cta-car { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .bw-prestige-cta-frame {
        transition: none;
        transform: scaleX(1);
    }
    .bw-prestige-cta-car {
        transition: none;
        opacity: 1;
        transform: translate(-10%, -50%) scale(1);
    }
}

/* ---------- Global responsive polish ---------- */
@media (max-width: 991.98px) {
    .bw-fleet-page-hero,
    .bw-airport-hero,
    .bw-book-section { overflow-x: clip; }
}
@media (max-width: 767.98px) {
    .bw-quote-card { max-width: 100%; }
    .bw-book-card { width: 100%; }
    .bw-fleet-card--page { max-width: 100%; }
}
@media (max-width: 575.98px) {
    .container {
        padding-left: calc(var(--bs-gutter-x) * .5 + 6px);
        padding-right: calc(var(--bs-gutter-x) * .5 + 6px);
    }
    .bw-quote-form .form-control,
    .bw-quote-form .form-select { font-size: 16px; } /* prevent iOS zoom */
}

/* Urban-style Google Places custom dropdown */
.bw-places-wrap {
    position: relative;
    width: 100%;
    z-index: 30;
}
.bw-places-list {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 6px);
    background: #fff;
    border: 1px solid #e6e8ec;
    border-radius: 12px;
    box-shadow: 0 14px 36px rgba(15, 19, 25, .14);
    max-height: 280px;
    overflow-y: auto;
    z-index: 50;
    padding: .25rem 0;
}
.bw-places-list.is-loading::before {
    content: 'Searching…';
    display: block;
    padding: .7rem 1rem;
    font-size: .82rem;
    color: #6b7280;
}
.bw-places-suggestion {
    display: block;
    width: 100%;
    text-align: left;
    border: 0;
    background: transparent;
    padding: .7rem 1rem;
    font-size: .9rem;
    line-height: 1.35;
    color: #111827;
    cursor: pointer;
}
.bw-places-suggestion:hover,
.bw-places-suggestion.is-active {
    background: #f3f4f6;
}
.bw-places-suggestion-text {
    display: block;
}
.bw-hero {
    overflow: visible;
}
.bw-hero .container,
.bw-hero .row,
.bw-hero [class*="col-"],
.bw-quote-card,
.bw-quote-form {
    overflow: visible;
}
/* Hide legacy Google pac widget if any leftover script attaches */
.pac-container { display: none !important; }

/* ---------- Simple legal pages (privacy, etc.) ---------- */
.bw-simple-page {
    background: #fff;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
.bw-simple-header {
    background: #fff;
    border-bottom: 1px solid var(--bw-border);
    position: sticky;
    top: 0;
    z-index: 100;
}
.bw-simple-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 72px;
    padding-top: .65rem;
    padding-bottom: .65rem;
}
.bw-simple-brand .bw-logo {
    height: 42px;
    width: auto;
    display: block;
}
.bw-simple-nav {
    display: flex;
    align-items: center;
    gap: 1.15rem;
}
.bw-simple-nav > a:not(.btn) {
    color: var(--bw-ink);
    text-decoration: none;
    font-weight: 500;
    font-size: .95rem;
}
.bw-simple-nav > a:not(.btn):hover { color: var(--bw-blue); }
.bw-simple-book {
    padding: .45rem 1.2rem;
    font-size: .9rem;
}
.bw-simple-footer {
    margin-top: auto;
    background: var(--bw-ink);
    color: rgba(255, 255, 255, .7);
    padding: 1.15rem 0;
}
.bw-simple-footer-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem 1.25rem;
    font-size: .88rem;
}
.bw-simple-footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem 1.15rem;
}
.bw-simple-footer-links a {
    color: rgba(255, 255, 255, .7);
    text-decoration: none;
}
.bw-simple-footer-links a:hover { color: var(--bw-champagne); }

.bw-legal {
    flex: 1;
    background: var(--bw-cream);
    padding: 2.25rem 0 4rem;
}
.bw-legal-wrap { max-width: 900px; }
.bw-legal-paper {
    background: #fff;
    border: 1px solid var(--bw-border);
    border-radius: 16px;
    box-shadow: 0 10px 36px rgba(15, 19, 25, .06);
    padding: 2.75rem 2.75rem 3rem;
}
.bw-legal-hero {
    text-align: center;
    margin-bottom: 2.35rem;
    padding-bottom: 1.6rem;
    border-bottom: 1px solid var(--bw-border);
}
.bw-legal-hero h1 {
    font-family: var(--bw-display);
    font-weight: 500;
    font-size: clamp(1.85rem, 3.6vw, 2.55rem);
    margin: 0 0 .55rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--bw-ink);
}
.bw-legal-company {
    font-size: 1.08rem;
    font-weight: 600;
    margin: 0 0 .4rem;
    color: var(--bw-ink);
}
.bw-legal-updated {
    color: var(--bw-gray);
    margin: 0;
    font-size: .95rem;
}
.bw-legal-body section {
    margin-bottom: 2.15rem;
    padding-bottom: 2.05rem;
    border-bottom: 1px solid #eee9de;
}
.bw-legal-body section:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}
.bw-legal-body h2,
.bw-legal-body h3 {
    display: grid;
    grid-template-columns: 3.1rem minmax(0, 1fr);
    column-gap: .7rem;
    align-items: baseline;
    color: var(--bw-ink);
}
.bw-legal-body h2 {
    font-size: 1.18rem;
    font-weight: 700;
    line-height: 1.35;
    margin: 0 0 .95rem;
}
.bw-legal-body h3 {
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.4;
    margin: 1.35rem 0 .55rem;
}
.bw-legal-n {
    display: block;
    color: var(--bw-accent);
    font-variant-numeric: tabular-nums;
    text-align: right;
}
.bw-legal-body p,
.bw-legal-body li,
.bw-legal-body dd {
    color: #2f343c;
    font-size: 1.02rem;
    line-height: 1.78;
}
.bw-legal-body p { margin: 0 0 .85rem; }
.bw-legal-body p:last-child { margin-bottom: 0; }
.bw-legal-body ul {
    margin: .15rem 0 1rem;
    padding: 0 0 0 1.35rem;
}
.bw-legal-body li { margin: 0 0 .42rem; padding-left: .15rem; }
.bw-legal-body li::marker { color: var(--bw-accent); }
.bw-legal-body a { color: var(--bw-blue); text-underline-offset: 2px; }
.bw-legal-clause {
    padding-left: 0;
}
.bw-legal-clause strong { color: var(--bw-ink); font-weight: 600; }
.bw-legal-retain {
    margin: .15rem 0 1rem;
    padding: 0;
}
.bw-legal-retain > div {
    display: grid;
    grid-template-columns: minmax(11rem, 38%) 1fr;
    gap: .35rem 1rem;
    padding: .55rem 0;
    border-bottom: 1px solid #f1ece3;
}
.bw-legal-retain > div:last-child { border-bottom: 0; }
.bw-legal-retain dt {
    margin: 0;
    font-weight: 600;
    color: var(--bw-ink);
    font-size: .98rem;
    line-height: 1.5;
}
.bw-legal-retain dd {
    margin: 0;
    font-size: .98rem;
}
.bw-legal-address {
    margin: 1rem 0 1.1rem;
    padding: 1.15rem 1.25rem;
    background: var(--bw-cream);
    border: 1px solid var(--bw-border);
    border-radius: 12px;
    color: var(--bw-ink) !important;
    font-size: 1rem !important;
    line-height: 1.7 !important;
}

@media (max-width: 767.98px) {
    .bw-legal-paper { padding: 1.5rem 1.15rem 2rem; border-radius: 12px; }
    .bw-legal-body h2,
    .bw-legal-body h3 { grid-template-columns: 2.55rem minmax(0, 1fr); column-gap: .5rem; }
    .bw-legal-retain > div { grid-template-columns: 1fr; gap: .15rem; }
}
@media (max-width: 575.98px) {
    .bw-simple-nav > a:not(.btn) { display: none; }
    .bw-legal { padding: 1.25rem 0 2.5rem; }
}

/* ---------- SMS consent (contact + booking forms) ---------- */
.bw-sms-consent {
    display: grid;
    grid-template-columns: 1.15rem minmax(0, 1fr);
    column-gap: .65rem;
    align-items: start;
    text-align: left;
}
.bw-sms-consent-input {
    width: 1.05rem;
    height: 1.05rem;
    margin: .2rem 0 0;
    accent-color: var(--bw-ink);
    flex-shrink: 0;
}
.bw-sms-consent-label {
    font-size: .82rem;
    line-height: 1.5;
    color: #3a3f47;
    margin: 0;
    font-weight: 400;
}
.bw-sms-consent-label a {
    color: var(--bw-blue);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.bw-sms-consent .invalid-feedback {
    grid-column: 2;
    margin-top: .25rem;
}
.bw-sms-consent.is-invalid .bw-sms-consent-input,
.was-validated .bw-sms-consent-input:invalid {
    outline: 1px solid #dc3545;
    outline-offset: 1px;
}
.was-validated .bw-sms-consent-input:invalid ~ .invalid-feedback {
    display: block;
}
.bw-sms-more {
    margin: .85rem 0 0;
    text-align: center;
    font-size: .82rem;
    line-height: 1.5;
    color: #6e6e73;
}
.bw-sms-more a {
    color: var(--bw-blue);
    text-decoration: none;
    font-weight: 500;
}
.bw-sms-more a:hover { text-decoration: underline; }
.bw-contact-form .bw-sms-more { margin-top: 1rem; }
