/*
Theme Name: Silver Taxi Melbourne
Theme URI: https://www.silvertaxi-melbourne.com.au/
Author: Silver Taxi Melbourne
Description: A conversion-focused WordPress theme with a dedicated Melbourne taxi fare estimator.
Version: 2.29.1
Requires at least: 6.3
Requires PHP: 7.4
Text Domain: silver-taxi-melbourne
*/

@media (min-width: 783px) { body.admin-bar .site-header { top: 32px; } }
@media (max-width: 782px) { body.admin-bar .site-header { top: 46px; } }

:root {
  --ink: #101114;
  --ink-2: #191b20;
  --paper: #ffffff;
  --soft: #f4f3ef;
  --line: #dfdfdc;
  --muted: #696b70;
  --gold: #f5ae12;
  --gold-2: #ffd15c;
  --radius: 6px;
}

/* Booking experience v2 — compact, staged and motion-led */
.booking-workspace{max-width:1180px;margin:42px auto 0;padding:0 18px 22px;border:1px solid rgba(16,17,20,.1);border-radius:24px;background:rgba(255,255,255,.56);box-shadow:0 34px 100px rgba(16,17,20,.11);backdrop-filter:blur(12px)}
.booking-workspace .booking-progress{max-width:none;margin:0 -18px;padding:13px 22px;border:0;border-bottom:1px solid #e2e0da;border-radius:24px 24px 0 0;background:rgba(255,255,255,.94);box-shadow:none;scroll-margin-top:88px}
.booking-progress::before{display:none}.booking-progress-track{position:absolute;z-index:0;top:32px;left:17%;right:17%;height:2px;overflow:hidden;border-radius:999px;background:#e4e2db}.booking-progress-track i{width:0;height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,#c88900,var(--gold));box-shadow:0 0 12px rgba(245,174,18,.42);transition:width .48s cubic-bezier(.22,1,.36,1)}
.booking-workspace .booking-progress button{position:relative;z-index:1;display:grid;grid-template-columns:34px auto;grid-template-rows:auto auto;column-gap:10px;justify-content:center;padding:7px 11px;border-radius:12px;transition:color .25s ease,background .25s ease,transform .25s ease}.booking-workspace .booking-progress button:hover.complete{transform:translateY(-1px);background:#fff8e7}.booking-workspace .booking-progress button.current{background:transparent;color:var(--ink);box-shadow:none}.booking-workspace .booking-progress button>span{grid-row:1/3;width:34px;height:34px;border-width:2px;box-shadow:0 0 0 5px #fff;transition:transform .32s cubic-bezier(.22,1,.36,1),background .25s ease}.booking-workspace .booking-progress button.current>span{transform:scale(1.08);box-shadow:0 0 0 5px #fff,0 7px 20px rgba(245,174,18,.3)}.booking-workspace .booking-progress button strong{align-self:end;overflow:visible;color:inherit;text-align:left}.booking-workspace .booking-progress button small{align-self:start;color:#999a9c;font-size:8px;line-height:1.2;text-align:left;white-space:nowrap}
.booking-step-status{display:flex;align-items:center;gap:9px;margin:18px 5px 14px;color:#73757a;font-size:10px}.booking-step-status span{padding:5px 8px;border-radius:999px;background:var(--ink);color:#fff;font-size:8px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.booking-step-status b{font-weight:500}.booking-view,.booking-success{animation:bookingViewIn .46s cubic-bezier(.22,1,.36,1) both}@keyframes bookingViewIn{from{opacity:0;transform:translateY(12px) scale(.992)}to{opacity:1;transform:translateY(0) scale(1)}}
.booking-workspace .booking-panel,.booking-workspace .booking-map-card,.booking-workspace .booking-review{border-radius:17px}.booking-workspace .booking-panel{box-shadow:0 18px 55px rgba(16,17,20,.08)}.booking-addresses{gap:12px;padding:14px;border:1px solid #deddd7;border-radius:13px;background:#f8f8f5}.booking-workspace .booking-addresses::before{left:29px;top:55px;height:74px;border-left-style:solid;border-left-color:#cbc8be}.address-field{position:relative;z-index:3}.address-field>label,.booking-field-grid label>span{display:flex;align-items:center;gap:9px;margin-bottom:7px;color:#5a5c61;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.address-field>label small{margin-left:auto;color:#a2a3a5;font-size:7px}.address-input-shell{position:relative}.address-field .address-input-shell input{height:54px;padding:0 46px 0 15px;border-color:#d1d0ca;border-radius:9px;background:#fff;box-shadow:0 5px 18px rgba(16,17,20,.035)}.address-state{position:absolute;top:50%;right:14px;width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#f0efe9;color:#907000;font-size:10px;font-weight:900;transform:translateY(-50%)}.address-state>i,.suggestion-loading i{width:12px;height:12px;border:2px solid rgba(16,17,20,.18);border-top-color:var(--gold);border-radius:50%;animation:bookingSpin .7s linear infinite}@keyframes bookingSpin{to{transform:rotate(360deg)}}
.swap-route{position:absolute;z-index:6;top:95px;right:24px;width:32px;height:32px;display:grid;place-items:center;border:1px solid #d8d5ca;border-radius:50%;background:#fff;color:#7c5b00;box-shadow:0 6px 16px rgba(16,17,20,.1);cursor:pointer;transition:transform .25s ease,border-color .25s ease,background .25s ease}.swap-route:hover{transform:rotate(180deg);border-color:var(--gold);background:#fff8e6}.booking-workspace .address-suggestions{top:calc(100% + 7px);overflow:hidden;padding:6px;border:1px solid #d9d7cf;border-radius:11px;box-shadow:0 22px 50px rgba(16,17,20,.18)}.booking-workspace .address-suggestions button{border-radius:8px;transition:background .18s ease,transform .18s ease}.booking-workspace .address-suggestions button:hover,.booking-workspace .address-suggestions button.active{transform:translateX(2px)}
.booking-timing{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:17px;padding:5px;border:1px solid #deddd7;border-radius:12px;background:#f5f4ef}.booking-timing button{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:55px;padding:8px 12px;border:0;border-radius:8px;background:transparent;color:#73757a;cursor:pointer;transition:color .22s ease,background .22s ease,box-shadow .22s ease,transform .22s ease}.booking-timing button:hover{color:var(--ink)}.booking-timing button.active{background:var(--ink);color:#fff;box-shadow:0 9px 22px rgba(16,17,20,.2);transform:translateY(-1px)}.booking-timing button span{font-size:10px;font-weight:900}.booking-timing button small{margin-top:4px;color:inherit;font-size:7px;opacity:.68}.booking-schedule{animation:bookingFieldsIn .3s ease both}@keyframes bookingFieldsIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
.booking-next,.booking-nav .button{transition:transform .22s ease,box-shadow .22s ease,background .22s ease}.booking-next:hover,.booking-nav .button-gold:hover{transform:translateY(-2px);box-shadow:0 13px 28px rgba(197,133,0,.25)}.booking-error{animation:bookingErrorIn .28s ease both}@keyframes bookingErrorIn{0%{transform:translateX(-5px)}45%{transform:translateX(4px)}100%{transform:translateX(0)}}.booking-map-card{position:relative;transition:transform .35s ease,box-shadow .35s ease}.booking-map-card.route-ready{box-shadow:0 30px 80px rgba(16,17,20,.25),0 0 0 1px rgba(245,174,18,.24)}.booking-map-card.route-ready .map-toolbar>span i{animation:routePulse 1.8s ease-out infinite}@keyframes routePulse{0%{box-shadow:0 0 0 0 rgba(31,199,116,.55)}70%{box-shadow:0 0 0 7px rgba(31,199,116,0)}100%{box-shadow:0 0 0 0 rgba(31,199,116,0)}}.booking-vehicle-grid>label:focus-within{outline:3px solid rgba(245,174,18,.25);outline-offset:2px}.booking-vehicle-grid>label.selected{transform:translateY(-2px);box-shadow:inset 0 0 0 1px var(--gold),0 14px 30px rgba(16,17,20,.08)}.booking-success{margin-top:8px}
@media(max-width:1050px){.booking-workspace{max-width:760px}.booking-workspace .booking-step-grid{grid-template-columns:1fr}.booking-workspace .booking-map-card{order:2}}
@media(max-width:620px){.booking-workspace{margin-top:30px;padding:0 8px 12px;border-radius:17px}.booking-workspace .booking-progress{margin:0 -8px;padding:10px 6px;border-radius:17px 17px 0 0}.booking-progress-track{top:28px;left:17%;right:17%}.booking-workspace .booking-progress button{grid-template-columns:28px;grid-template-rows:28px auto;gap:4px;padding:5px 2px}.booking-workspace .booking-progress button>span{grid-row:auto;width:28px;height:28px;margin:0 auto;box-shadow:0 0 0 4px #fff}.booking-workspace .booking-progress button strong{align-self:auto;max-width:92px;font-size:7px;text-align:center}.booking-workspace .booking-progress button small{display:none}.booking-step-status{margin:13px 5px 10px;font-size:9px}.booking-addresses{padding:11px}.booking-workspace .booking-addresses::before{left:26px;top:51px;height:73px}.swap-route{top:90px;right:17px}.booking-timing button{min-height:52px;padding-inline:6px}.booking-timing button span{font-size:9px}.booking-timing button small{font-size:6px}.booking-workspace .booking-map-card iframe{height:280px}.booking-next{position:sticky;z-index:20;bottom:82px;box-shadow:0 12px 28px rgba(16,17,20,.2)}.booking-nav{position:sticky;z-index:20;bottom:78px;margin:20px -10px -10px;padding:10px;border:1px solid rgba(16,17,20,.08);border-radius:13px;background:rgba(255,255,255,.94);box-shadow:0 12px 30px rgba(16,17,20,.14);backdrop-filter:blur(10px)}}
@media(prefers-reduced-motion:reduce){.booking-view,.booking-success,.booking-schedule,.booking-error,.address-state>i,.suggestion-loading i,.booking-map-card.route-ready .map-toolbar>span i{animation:none!important}.booking-progress-track i,.booking-progress button,.swap-route,.booking-timing button,.booking-next,.booking-nav .button,.booking-vehicle-grid>label{transition:none!important}html:focus-within{scroll-behavior:auto}}
.offline-fare-card .map-toolbar b{padding:5px 8px;border:1px solid rgba(245,174,18,.35);border-radius:999px;color:var(--gold);font-size:8px;letter-spacing:.08em;text-transform:uppercase}.offline-route-visual{min-height:360px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:18px;align-content:center;align-items:center;padding:42px;background:radial-gradient(circle at 50% 20%,rgba(245,174,18,.2),transparent 34%),linear-gradient(145deg,#191b20,#0e0f11);color:#fff;text-align:center}.offline-route-visual>span{min-height:88px;display:grid;place-items:center;padding:18px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:rgba(255,255,255,.05);font-family:Georgia,serif;font-size:20px;line-height:1.2}.offline-route-visual>i{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--gold);color:var(--ink);font-style:normal;font-weight:900}.offline-route-visual>small{grid-column:1/-1;max-width:440px;margin:10px auto 0;color:#aeb0b5;font-size:11px;line-height:1.6}.offline-fare-card.route-ready .offline-route-visual>span{border-color:rgba(245,174,18,.42);background:rgba(245,174,18,.08)}
@media(max-width:620px){.offline-route-visual{min-height:250px;gap:9px;padding:24px 14px}.offline-route-visual>span{min-height:70px;padding:10px;font-size:15px}.offline-route-visual>i{width:32px;height:32px}.offline-fare-card .map-toolbar b{font-size:7px}}
.booking-osm-map{height:360px;background:#e8e5dc;color:#4f5155}.booking-osm-map>p{height:100%;display:grid;place-items:center;margin:0;font-size:12px}.booking-osm-map .leaflet-control-attribution{font-size:9px}.booking-osm-map .leaflet-popup-content{font-family:Arial,sans-serif}.map-location-summary{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:9px;align-items:center;padding:12px 14px;background:#17191d;color:#fff;text-align:center}.map-location-summary>span{font-size:11px;font-weight:800}.map-location-summary>i{color:var(--gold);font-style:normal}.map-location-summary>small{grid-column:1/-1;color:#aeb0b5;font-size:9px;line-height:1.45}.booking-osm-map-unavailable{height:100%;display:grid;place-items:center;padding:30px;background:linear-gradient(145deg,#191b20,#0e0f11);color:#fff;text-align:center}
.booking-map-pin-shell{border:0;background:transparent}.booking-map-pin-shell span{width:24px;height:24px;display:block;border:4px solid #fff;border-radius:50%;box-shadow:0 3px 12px rgba(0,0,0,.42)}
@media(max-width:620px){.booking-osm-map{height:250px}.map-location-summary{padding:9px}.map-location-summary>span{font-size:10px}}

/* v2.20 — footer payments, inner reviews and mobile progress alignment */
.trust-payment small{max-width:190px;line-height:1.45}.footer-payments{width:100%;margin-top:15px;padding-top:19px;border-top:1px solid #2b2d32}.footer-payments strong{display:block;color:#f1f2f3;font-size:10px;line-height:1.5}.footer-payments img{width:min(100%,260px);height:auto;display:block;margin-top:10px;object-fit:contain;object-position:left center}.inner-reviews-section{border-top:1px solid #e5e4df}.inner-reviews-section .reviews-grid blockquote{background:#fff}
@media(max-width:620px){.trust-payment small{max-width:none}.booking-workspace .booking-progress{align-items:start}.booking-workspace .booking-progress button{align-content:start;justify-items:center;min-height:68px}.booking-workspace .booking-progress button strong{min-height:24px;display:flex;align-items:flex-start;justify-content:center;line-height:1.25}.booking-progress-track{top:29px}.footer-payments img{width:min(100%,475px)}}
@media(max-width:390px){.booking-workspace .booking-progress button strong{max-width:96px;font-size:7px}.booking-workspace .booking-progress button{padding-inline:0}}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Arial, Helvetica, sans-serif; font-size: 16px; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
.shell { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }

.topline { background: var(--ink); color: #c8c9cc; font-size: 12px; letter-spacing: .04em; }
.topline-inner { min-height: 34px; display: flex; align-items: center; justify-content: space-between; }
.live-dot { display: inline-block; width: 7px; height: 7px; margin-right: 8px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 4px rgba(245,174,18,.13); }
.topline-links { display: flex; gap: 24px; }
.topline a:hover { color: white; }

.site-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.97); border-bottom: 1px solid rgba(16,17,20,.1); backdrop-filter: blur(12px); }
.nav-wrap { min-height: 78px; display: flex; align-items: center; gap: 32px; }
.brand { display: flex; align-items: center; gap: 12px; margin-right: auto; }
.custom-logo-link { display: flex; align-items: center; }
.custom-logo-link img { width: auto; max-width: 220px; max-height: 52px; }
.brand-mark { width: 42px; height: 42px; display: grid; place-items: center; background: var(--ink); color: var(--gold); border: 2px solid var(--gold); border-radius: 50%; font-family: Georgia, serif; font-size: 24px; font-weight: 800; }
.brand-copy { display: flex; flex-direction: column; line-height: 1; }
.brand-copy strong { font-family: Georgia, serif; font-size: 20px; }
.brand-copy small { margin-top: 5px; color: var(--muted); font-size: 10px; letter-spacing: .22em; text-transform: uppercase; }
.nav-links { display: flex; align-items: center; gap: 27px; }
.primary-menu { display: flex; align-items: center; gap: inherit; margin: 0; padding: 0; list-style: none; }
.primary-menu li { margin: 0; padding: 0; }
.nav-links a { position: relative; padding: 29px 0 27px; color: #34363a; font-size: 13px; font-weight: 700; }
.nav-links a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 21px; height: 2px; background: var(--gold); transition: right .25s ease; }
.nav-links a:hover::after { right: 0; }
.nav-actions { display: flex; align-items: center; gap: 18px; }
.phone-link { display: flex; flex-direction: column; text-align: right; }
.phone-link span { color: var(--muted); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.phone-link strong { margin-top: 3px; font-size: 14px; }
.menu-button { display: none; width: 38px; height: 38px; border: 0; background: transparent; padding: 9px; }
.menu-button > span:not(.sr-only) { display: block; height: 2px; margin: 5px 0; background: var(--ink); }

.button { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 0 24px; border: 1px solid transparent; border-radius: var(--radius); cursor: pointer; font-weight: 800; font-size: 13px; letter-spacing: .02em; transition: transform .2s ease, background .2s ease, border .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-gold { background: var(--gold); color: var(--ink); box-shadow: 0 12px 28px rgba(245,174,18,.22); }
.button-gold:hover { background: var(--gold-2); }
.button-ghost { color: white; border-color: rgba(255,255,255,.48); background: rgba(255,255,255,.07); }
.button-ghost:hover { border-color: white; background: rgba(255,255,255,.14); }
.button.compact { min-height: 43px; padding: 0 18px; }

.hero { position: relative; min-height: 680px; overflow: hidden; background: var(--ink); }
.hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center 58%; transform: scale(1.02); }
.hero-wash { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,9,12,.94) 0%, rgba(8,9,12,.84) 42%, rgba(8,9,12,.42) 72%, rgba(8,9,12,.24) 100%), linear-gradient(0deg, rgba(8,9,12,.5), transparent 45%); }
.hero-grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(370px, .7fr); gap: 72px; align-items: center; min-height: 680px; padding: 68px 0; }
.eyebrow { display: flex; align-items: center; gap: 12px; color: #8b6200; font-size: 11px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 34px; height: 2px; background: var(--gold); }
.eyebrow.light { color: #e3e4e6; }
.hero-copy h1 { max-width: 720px; margin: 22px 0 24px; color: white; font-family: Georgia, "Times New Roman", serif; font-size: clamp(46px, 5.5vw, 76px); font-weight: 500; line-height: .99; letter-spacing: -.045em; }
.hero-copy h1 em { color: var(--gold); font-weight: 600; }
.hero-copy > p { max-width: 610px; margin: 0; color: #d4d5d8; font-size: 17px; line-height: 1.75; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 31px; }
.hero-proof { display: flex; align-items: center; gap: 0; margin-top: 43px; }
.hero-proof div { min-width: 118px; padding: 0 24px; border-left: 1px solid rgba(255,255,255,.2); }
.hero-proof div:first-child { padding-left: 0; border: 0; }
.hero-proof strong, .hero-proof span { display: block; }
.hero-proof strong { color: white; font-family: Georgia, serif; font-size: 23px; }
.hero-proof span { margin-top: 5px; color: #aeb0b5; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }

.quote-card { background: white; border-radius: 10px; box-shadow: 0 35px 80px rgba(0,0,0,.35); overflow: hidden; }
.quote-top { display: flex; gap: 15px; align-items: center; padding: 24px 26px 18px; border-bottom: 1px solid var(--line); }
.quote-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: var(--gold); font-size: 19px; font-weight: 900; }
.quote-top small { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.quote-top h2 { margin: 3px 0 0; font-family: Georgia, serif; font-size: 22px; }
.quote-card form { padding: 20px 26px 23px; }
.quote-card label { display: block; margin-bottom: 13px; color: #55575c; font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.quote-card input, .quote-card select { width: 100%; height: 45px; margin-top: 6px; padding: 0 12px; border: 1px solid #d5d5d2; border-radius: 4px; background: #fafaf8; color: var(--ink); font-size: 13px; outline: none; text-transform: none; }
.quote-card input:focus, .quote-card select:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(245,174,18,.13); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }
.quote-submit { width: 100%; min-height: 49px; margin-top: 2px; border: 0; }
.form-note { margin: 11px 0 0; color: var(--muted); font-size: 10px; text-align: center; }
.form-alert { margin: 18px 26px 0; padding: 10px 12px; border-radius: 4px; background: #fff0ec; color: #9b301b; font-size: 11px; line-height: 1.5; }
.success-note { padding: 35px 28px; text-align: center; }
.success-note > span { width: 48px; height: 48px; display: grid; place-items: center; margin: 0 auto; border-radius: 50%; background: #eaf8ef; color: #178347; font-size: 25px; }
.success-note h3 { margin: 16px 0 8px; font-family: Georgia, serif; font-size: 24px; }
.success-note p { margin: 0 0 20px; color: var(--muted); font-size: 14px; line-height: 1.6; }
.success-note .button { width: 100%; }
.success-note button:last-child { margin-top: 15px; border: 0; background: none; color: var(--muted); font-size: 12px; text-decoration: underline; cursor: pointer; }

.trust-band { position: relative; z-index: 3; background: white; border-bottom: 1px solid var(--line); box-shadow: 0 20px 50px rgba(16,17,20,.06); }
.trust-grid { min-height: 108px; display: grid; grid-template-columns: repeat(4, 1fr); align-items: center; }
.trust-grid > div { display: flex; align-items: center; gap: 14px; min-height: 52px; padding: 0 25px; border-right: 1px solid var(--line); }
.trust-grid > div:first-child { padding-left: 0; }
.trust-grid > div:last-child { border: 0; }
.trust-icon { width: 37px; height: 37px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: #fff7e4; color: #9c6d00; font-weight: 900; }
.trust-grid p { margin: 0; }
.trust-grid strong, .trust-grid small { display: block; }
.trust-grid strong { font-size: 13px; }
.trust-grid small { margin-top: 5px; color: var(--muted); font-size: 11px; }
.section-heading { max-width: 720px; text-align: center; }
.section-heading .eyebrow { justify-content: center; }
.section-heading h2 { margin: 18px 0 16px; font-family: Georgia, serif; font-size: clamp(35px, 4vw, 52px); line-height: 1.05; }
.section-heading p { margin: 0 auto; color: var(--muted); font-size: 16px; line-height: 1.75; }
.meter-rates-section{padding:92px 0;background:linear-gradient(180deg,#f6f5f1 0%,#fff 100%)}
.meter-rates-section .section-heading{margin:0 auto}.meter-rate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:42px}.meter-rate-grid article{position:relative;overflow:hidden;padding:29px;border:1px solid #deddd7;border-radius:18px;background:#fff;box-shadow:0 20px 55px rgba(16,17,20,.06)}.meter-rate-grid article>span{position:absolute;top:20px;right:22px;color:#dad8d1;font-family:Georgia,serif;font-size:34px;font-weight:700}.meter-rate-grid article>small{display:block;max-width:75%;color:#886000;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.meter-rate-grid h3{margin:12px 0 23px;font-family:Georgia,serif;font-size:27px}.meter-rate-grid dl{margin:0}.meter-rate-grid dl div{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-top:1px solid #eceae4}.meter-rate-grid dt{color:var(--muted);font-size:12px}.meter-rate-grid dd{margin:0;font-size:14px;font-weight:900}.meter-rate-grid article.is-peak{border-color:#e2a000;background:linear-gradient(145deg,#fff9e8,#fff)}.meter-rate-grid article.is-peak>span{color:rgba(245,174,18,.32)}.meter-rate-note{margin-top:18px;padding:24px 28px;border-radius:15px;background:var(--ink);color:#fff}.meter-rate-note strong{color:var(--gold);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.meter-rate-note p{margin:9px 0 0;color:#c9cacf;font-size:12px;line-height:1.7}
@media(max-width:820px){.meter-rates-section{padding:68px 0}.meter-rate-grid{grid-template-columns:1fr;margin-top:30px}.meter-rate-grid article{padding:24px}.meter-rate-note{padding:21px}}
.content-section { padding: 104px 0; }
.services-section { background: var(--soft); }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 52px; }
.service-card { overflow: hidden; background: white; border: 1px solid #dededb; border-radius: 8px; box-shadow: 0 20px 50px rgba(16,17,20,.05); transition: transform .25s ease, box-shadow .25s ease; }
.service-card:hover { transform: translateY(-7px); box-shadow: 0 28px 55px rgba(16,17,20,.12); }
.card-image { height: 195px; overflow: hidden; background: #ddd; }
.card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.service-card:hover .card-image img { transform: scale(1.04); }
.service-body { padding: 25px 25px 29px; }
.card-tag { display: flex; align-items: center; gap: 9px; color: #7d5a00; font-size: 9px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.card-tag > span { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; background: var(--gold); color: var(--ink); font-size: 12px; }
.service-body h3 { margin: 17px 0 10px; font-family: Georgia, serif; font-size: 23px; }
.service-body p { min-height: 68px; margin: 0 0 21px; color: var(--muted); font-size: 13px; line-height: 1.7; }
.service-body > a { display: inline-flex; gap: 8px; padding-bottom: 5px; border-bottom: 2px solid var(--gold); color: #6e4e00; font-size: 11px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.service-body > a:hover { gap: 13px; }

.difference-section { padding: 112px 0; }
.difference-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 82px; align-items: center; }
.difference-image { position: relative; min-height: 570px; }
.difference-image::before { content: ""; position: absolute; left: -20px; top: -20px; width: 56%; height: 48%; background: var(--gold); border-radius: 7px; }
.difference-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; border-radius: 8px; box-shadow: 0 28px 70px rgba(16,17,20,.2); }
.image-badge { position: absolute; right: -26px; bottom: 30px; width: 180px; padding: 24px; background: var(--ink); color: white; border-radius: 6px; box-shadow: 0 24px 50px rgba(0,0,0,.24); }
.image-badge strong, .image-badge span { display: block; }
.image-badge strong { color: var(--gold); font-family: Georgia, serif; font-size: 38px; }
.image-badge span { margin-top: 6px; color: #c7c8cb; font-size: 11px; line-height: 1.5; }
.difference-copy h2 { margin: 20px 0; font-family: Georgia, serif; font-size: clamp(37px, 4.2vw, 55px); font-weight: 500; line-height: 1.05; letter-spacing: -.025em; }
.difference-copy > p { color: var(--muted); font-size: 16px; line-height: 1.8; }
.tick-list { display: grid; gap: 0; margin: 30px 0 34px; padding: 0; list-style: none; }
.tick-list li { display: flex; gap: 15px; padding: 18px 0; border-top: 1px solid var(--line); }
.tick-list li > span { width: 28px; height: 28px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: #fff5db; color: #8a6100; font-weight: 900; }
.tick-list strong, .tick-list small { display: block; }
.tick-list strong { font-size: 14px; }
.tick-list small { margin-top: 6px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.inline-actions { display: flex; align-items: center; gap: 26px; }
.button-dark { background: var(--ink); color: white; }
.button-dark:hover { background: #2b2e35; }
.text-link { color: #705000; font-size: 13px; font-weight: 800; }

.fleet-section { padding: 108px 0 116px; background: var(--ink); color: white; }
.dark-heading p { color: #aeb0b5; }
.fleet-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 17px; margin-top: 54px; }
.fleet-card { position: relative; overflow: hidden; background: var(--ink-2); border: 1px solid rgba(255,255,255,.1); border-radius: 8px; transition: transform .25s ease, border-color .25s ease; }
.fleet-card:hover { transform: translateY(-7px); border-color: rgba(245,174,18,.6); }
.fleet-card.popular { border-color: var(--gold); }
.popular-label { position: absolute; z-index: 2; top: 14px; right: 14px; padding: 7px 10px; border-radius: 4px; background: var(--gold); color: var(--ink); font-size: 9px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.fleet-card > img { width: 100%; height: 170px; object-fit: cover; }
.fleet-body { position: relative; padding: 30px 23px 25px; }
.fleet-number { position: absolute; top: -21px; left: 22px; width: 42px; height: 42px; display: grid; place-items: center; border: 2px solid var(--gold); border-radius: 50%; background: var(--ink); color: var(--gold); font-size: 11px; font-weight: 900; }
.fleet-body h3 { margin: 7px 0 5px; font-family: Georgia, serif; font-size: 22px; }
.fleet-body > p { margin: 0 0 20px; color: #898c92; font-size: 11px; }
.fleet-body ul { min-height: 115px; display: grid; align-content: start; gap: 10px; margin: 0 0 22px; padding: 19px 0 0; border-top: 1px solid rgba(255,255,255,.1); list-style: none; }
.fleet-body li { display: flex; gap: 8px; color: #c5c7cb; font-size: 11px; line-height: 1.4; }
.fleet-body li span { color: var(--gold); }
.fleet-button { width: 100%; min-height: 44px; border-color: rgba(255,255,255,.25); color: white; }
.fleet-button:hover { border-color: var(--gold); color: var(--gold); }

.steps-section { padding: 105px 0; background: white; }
.steps-grid { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; margin-top: 58px; }
.steps-grid::before { content: ""; position: absolute; top: 29px; left: 9%; right: 9%; height: 1px; background: var(--line); }
.steps-grid article { position: relative; text-align: center; }
.steps-grid article > span { position: relative; z-index: 1; width: 59px; height: 59px; display: grid; place-items: center; margin: 0 auto 23px; border: 1px solid #d5d5d2; border-radius: 50%; background: white; color: #765500; font-family: Georgia, serif; font-weight: 700; }
.steps-grid article:nth-child(2) > span { border-color: var(--gold); background: var(--gold); color: var(--ink); box-shadow: 0 10px 22px rgba(245,174,18,.25); }
.steps-grid h3 { margin: 0 0 9px; font-family: Georgia, serif; font-size: 19px; }
.steps-grid p { margin: 0 auto; max-width: 220px; color: var(--muted); font-size: 12px; line-height: 1.65; }
.center-action { display: flex; justify-content: center; margin-top: 43px; }

.areas-section { padding: 110px 0; background: #16181c; color: white; }
.areas-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 80px; align-items: center; }
.areas-grid-html { display: block; }
.areas-grid-html .areas-content { max-width: 940px; margin: 0 auto; text-align: center; }
.areas-grid-html .eyebrow { justify-content: center; }
.areas-grid-html h2,
.areas-grid-html p { margin-left: auto; margin-right: auto; }
.areas-section h2 { max-width: 650px; margin: 20px 0; font-family: Georgia, serif; font-size: clamp(40px, 5vw, 61px); font-weight: 500; line-height: 1.02; }
.areas-section p { max-width: 620px; color: #b9bbc0; font-size: 15px; line-height: 1.75; }
.area-pills { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin: 28px 0 34px; }
.area-pills a { padding: 8px 12px; border: 1px solid rgba(255,255,255,.13); border-radius: 20px; color: #d2d3d6; font-size: 10px; transition: border-color .2s ease, background .2s ease, color .2s ease, transform .2s ease; }
.area-pills a:hover,
.area-pills a:focus-visible { border-color: var(--gold); background: rgba(245,174,18,.1); color: #fff; transform: translateY(-2px); }
.route-card { padding: 34px; background: white; color: var(--ink); border-top: 5px solid var(--gold); border-radius: 9px; box-shadow: 0 28px 70px rgba(0,0,0,.3); }
.route-card > small { color: #806000; font-size: 10px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.route-point { display: flex; align-items: center; gap: 15px; margin: 26px 0; }
.route-point > span { width: 39px; height: 39px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--gold); font-weight: 900; }
.route-point p { margin: 0; color: var(--ink); }
.route-point strong, .route-point small { display: block; }
.route-point strong { font-size: 14px; }
.route-point small { margin-top: 5px; color: var(--muted); font-size: 11px; }
.route-line { position: relative; min-height: 52px; margin-left: 19px; border-left: 1px dashed #bbb; }
.route-line i { position: absolute; left: -4px; top: 23px; width: 7px; height: 7px; border-radius: 50%; background: var(--ink); }
.route-line em { display: inline-block; margin: 17px 0 0 22px; color: var(--muted); font-size: 10px; font-style: normal; }
.route-card ul { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 27px 0 0; padding: 21px 0 0; border-top: 1px solid var(--line); list-style: none; }
.route-card li { color: #55575c; font-size: 10px; }

.reviews-section { padding: 110px 0; background: #f5f4f1; }
.reviews-head { display: flex; align-items: end; justify-content: space-between; gap: 40px; }
.reviews-head h2 { margin: 18px 0 0; font-family: Georgia, serif; font-size: clamp(38px, 4.5vw, 55px); }
.rating { display: grid; grid-template-columns: auto 1fr; align-items: center; column-gap: 10px; padding: 18px 24px; background: white; border: 1px solid var(--line); border-radius: 7px; }
.rating strong { grid-row: 1 / 3; font-family: Georgia, serif; font-size: 38px; }
.rating span { color: var(--gold); font-size: 13px; letter-spacing: .12em; }
.rating small { color: var(--muted); font-size: 9px; }
.reviews-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 21px; margin-top: 48px; }
.reviews-grid blockquote { position: relative; margin: 0; padding: 30px; background: white; border: 1px solid var(--line); border-radius: 8px; }
.quote-mark { position: absolute; top: 14px; right: 22px; color: #efeee9; font-family: Georgia, serif; font-size: 72px; line-height: 1; }
.stars { position: relative; color: var(--gold); font-size: 12px; letter-spacing: .13em; }
.reviews-grid blockquote > p { position: relative; min-height: 98px; margin: 19px 0 25px; color: #4f5156; font-family: Georgia, serif; font-size: 16px; line-height: 1.65; }
.reviews-grid blockquote footer { display: flex; align-items: center; gap: 12px; padding-top: 19px; border-top: 1px solid var(--line); }
.reviews-grid blockquote footer > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: var(--ink); color: var(--gold); font-weight: 900; }
.reviews-grid blockquote footer strong, .reviews-grid blockquote footer small { display: block; }
.reviews-grid blockquote footer strong { font-size: 12px; }
.reviews-grid blockquote footer small { margin-top: 4px; color: var(--muted); font-size: 9px; }

.faq-section { padding: 110px 0; }
.faq-grid { display: grid; grid-template-columns: .72fr 1.28fr; gap: 90px; align-items: start; }
.faq-intro { position: sticky; top: 120px; }
.faq-intro h2 { margin: 20px 0 16px; font-family: Georgia, serif; font-size: clamp(38px, 4.4vw, 53px); line-height: 1.05; }
.faq-intro p { margin: 0 0 19px; color: var(--muted); font-size: 14px; }
.faq-list details { border-top: 1px solid var(--line); }
.faq-list details:last-child { border-bottom: 1px solid var(--line); }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 0; cursor: pointer; list-style: none; font-size: 14px; font-weight: 800; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { width: 27px; height: 27px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: #fff3d6; color: #7b5900; transition: transform .2s ease; }
.faq-list details[open] summary span { transform: rotate(45deg); background: var(--gold); color: var(--ink); }
.faq-list details p { max-width: 690px; margin: -4px 45px 23px 0; color: var(--muted); font-size: 13px; line-height: 1.75; }

.final-cta { padding: 78px 0; background: var(--gold); }
.final-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 70px; }
.final-cta-inner > div:first-child > span { font-size: 10px; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.final-cta h2 { margin: 11px 0 9px; font-family: Georgia, serif; font-size: clamp(36px, 4.2vw, 54px); line-height: 1.05; }
.final-cta p { max-width: 650px; margin: 0; color: #3f3520; font-size: 14px; line-height: 1.7; }
.final-actions { display: flex; flex: 0 0 auto; gap: 10px; }
.final-cta .button-gold { background: var(--ink); color: white; box-shadow: none; }
.final-cta .button-ghost { border-color: rgba(16,17,20,.35); color: var(--ink); background: transparent; }

.site-footer { padding: 75px 0 0; background: #0d0e10; color: white; }
.footer-grid { display: grid; grid-template-columns: 1.55fr .8fr .8fr .8fr; gap: 55px; padding-bottom: 60px; }
.brand.inverted .brand-copy strong { color: white; }
.brand.inverted .brand-copy small { color: #989a9f; }
.footer-brand > p { max-width: 380px; margin: 23px 0; color: #8f9196; font-size: 13px; line-height: 1.7; }
.footer-brand > a:not(.brand) { display: block; width: fit-content; margin-top: 8px; color: #aeb0b4; font-size: 12px; }
.footer-brand > a:hover { color: var(--gold); }
.footer-brand .footer-phone { color: var(--gold) !important; font-family: Georgia, serif; font-size: 22px !important; font-weight: 700; }
.footer-grid > div:not(.footer-brand) { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.footer-grid h3 { margin: 8px 0 9px; color: white; font-size: 10px; letter-spacing: .15em; text-transform: uppercase; }
.footer-grid > div:not(.footer-brand) a { color: #8f9196; font-size: 12px; }
.footer-grid > div:not(.footer-brand) a:hover { color: var(--gold); }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding: 22px 0; border-top: 1px solid rgba(255,255,255,.09); color: #707277; font-size: 10px; }

/* Fare estimator */
.nav-links a.active { color: #785500; }
.nav-links a.active::after { right: 0; }
.primary-menu .current-menu-item>a,.primary-menu .current_page_parent>a,.primary-menu .current-menu-ancestor>a { color: #785500; }
.primary-menu .current-menu-item>a::after,.primary-menu .current_page_parent>a::after,.primary-menu .current-menu-ancestor>a::after { right: 0; }
.estimator-hero { position: relative; overflow: hidden; padding: 92px 0 150px; background: linear-gradient(115deg, rgba(10,11,14,.96), rgba(10,11,14,.78)), url("assets/images/services/airport-transfer.webp") center 62% / cover; color: white; }
.estimator-hero::after { content: ""; position: absolute; right: -120px; bottom: -220px; width: 600px; height: 600px; border: 1px solid rgba(245,174,18,.17); border-radius: 50%; box-shadow: 0 0 0 90px rgba(245,174,18,.025), 0 0 0 180px rgba(245,174,18,.02); }
.estimator-heading { position: relative; z-index: 1; }
.estimator-heading h1 { max-width: 820px; margin: 22px 0 24px; font-family: Georgia, serif; font-size: clamp(50px, 6vw, 78px); font-weight: 500; line-height: .98; letter-spacing: -.045em; }
.estimator-heading h1 em { color: var(--gold); }
.estimator-heading p { max-width: 650px; margin: 0; color: #ced0d4; font-size: 17px; line-height: 1.75; }
.estimator-workspace { position: relative; z-index: 3; margin-top: -84px; padding-bottom: 112px; }
.estimator-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 26px; align-items: start; }
.estimator-form, .estimate-result { background: white; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 28px 70px rgba(16,17,20,.13); }
.estimator-form { padding: 38px; }
.estimator-step { display: flex; align-items: center; gap: 16px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.estimator-step.spaced { margin-top: 36px; }
.estimator-step > span { width: 43px; height: 43px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--gold); font-family: Georgia, serif; font-size: 13px; font-weight: 800; }
.estimator-step small { color: #896200; font-size: 9px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.estimator-step h2 { margin: 3px 0 0; font-family: Georgia, serif; font-size: 25px; }
.estimator-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; padding-top: 25px; }
.estimator-fields label { color: #52545a; font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.estimator-fields input { width: 100%; height: 49px; margin-top: 7px; padding: 0 13px; border: 1px solid #d4d5d3; border-radius: 5px; background: #fafaf8; color: var(--ink); font-size: 13px; outline: none; text-transform: none; }
.estimator-fields input:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(245,174,18,.14); }
.estimator-row { display: grid; grid-column: 1 / -1; grid-template-columns: 1fr 1fr; gap: 15px; }
.estimator-row label { position: relative; }
.estimator-row label > span { position: absolute; z-index: 1; top: 42px; right: 13px; color: #898b90; font-size: 9px; letter-spacing: .04em; text-transform: uppercase; }
.field-help { grid-column: 1 / -1; margin: -2px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.vehicle-options { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding-top: 24px; }
.vehicle-choice { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 11px; padding: 15px; border: 1px solid #d8d8d5; border-radius: 6px; cursor: pointer; transition: border .2s ease, background .2s ease; }
.vehicle-choice input, .toggle-card input { position: absolute; opacity: 0; pointer-events: none; }
.vehicle-choice.selected { border-color: var(--gold); background: #fff9ea; box-shadow: inset 0 0 0 1px var(--gold); }
.vehicle-radio { width: 18px; height: 18px; border: 1px solid #aaa; border-radius: 50%; }
.vehicle-choice.selected .vehicle-radio { border: 5px solid var(--gold); background: var(--ink); }
.vehicle-choice strong, .vehicle-choice small { display: block; }
.vehicle-choice strong { font-size: 12px; }
.vehicle-choice small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.vehicle-choice em { color: #755400; font-size: 10px; font-style: normal; font-weight: 900; }
.extras-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 22px; }
.toggle-card { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 11px; padding: 15px; border: 1px solid var(--line); border-radius: 6px; cursor: pointer; }
.toggle-ui { position: relative; width: 35px; height: 20px; border-radius: 12px; background: #d7d7d4; transition: background .2s ease; }
.toggle-ui::after { content: ""; position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; border-radius: 50%; background: white; transition: transform .2s ease; }
.toggle-card input:checked + .toggle-ui { background: var(--gold); }
.toggle-card input:checked + .toggle-ui::after { transform: translateX(15px); background: var(--ink); }
.toggle-card strong, .toggle-card small { display: block; }
.toggle-card strong { font-size: 10px; }
.toggle-card small { margin-top: 4px; color: var(--muted); font-size: 8px; line-height: 1.4; }
.estimate-button { width: 100%; margin-top: 24px; border: 0; }
.estimate-result { position: sticky; top: 106px; overflow: hidden; padding: 32px; background: var(--ink); color: white; border-color: rgba(255,255,255,.08); box-shadow: 0 28px 70px rgba(16,17,20,.25); }
.estimate-result::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 5px; background: var(--gold); }
.estimate-result.calculated { animation: estimatePulse .5s ease; }
@keyframes estimatePulse { 50% { transform: translateY(-4px); box-shadow: 0 36px 80px rgba(16,17,20,.32); } }
.result-top { display: flex; align-items: center; justify-content: space-between; gap: 15px; color: #b8bac0; font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.result-top small { color: #74777e; font-size: 8px; }
.fare-range { display: flex; align-items: center; gap: 12px; margin: 25px 0 10px; }
.fare-range strong { color: var(--gold); font-family: Georgia, serif; font-size: clamp(42px, 4vw, 55px); font-weight: 500; }
.fare-range span { color: #5f6269; }
.route-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-height: 45px; margin: 0; color: #a9abb0; font-size: 10px; line-height: 1.5; }
.route-summary strong { color: #e5e6e8; }
.route-summary span { color: var(--gold); }
.fare-breakdown { margin: 22px 0; padding: 20px 0; border-top: 1px solid rgba(255,255,255,.1); border-bottom: 1px solid rgba(255,255,255,.1); }
.fare-breakdown h3 { margin: 0 0 14px; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.fare-breakdown > div { display: flex; justify-content: space-between; gap: 18px; margin-top: 10px; color: #989ba1; font-size: 9px; }
.fare-breakdown > div strong { color: #e5e6e8; }
.estimate-note { display: flex; align-items: flex-start; gap: 10px; padding: 13px; border: 1px solid rgba(245,174,18,.18); border-radius: 5px; background: rgba(245,174,18,.06); }
.estimate-note > span { width: 20px; height: 20px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--gold); color: var(--ink); font-size: 10px; font-weight: 900; }
.estimate-note p { margin: 0; color: #aaaeb5; font-size: 8px; line-height: 1.6; }
.result-cta { width: 100%; margin-top: 19px; }
.result-secondary { display: block; margin-top: 15px; color: #c1c3c8; font-size: 10px; font-weight: 800; text-align: center; }
.result-secondary:hover { color: var(--gold); }
.estimator-trust { padding: 105px 0; background: var(--soft); }
.estimator-benefits { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 48px; }
.estimator-benefits article { padding: 30px; background: white; border: 1px solid var(--line); border-radius: 7px; }
.estimator-benefits article > span { color: #8d6600; font-family: Georgia, serif; font-size: 13px; }
.estimator-benefits h3 { margin: 18px 0 10px; font-family: Georgia, serif; font-size: 22px; }
.estimator-benefits p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.compact-footer { padding-top: 0; }
.compact-footer .footer-bottom { border-top: 0; }
.compact-footer a:hover { color: var(--gold); }
.mobile-cta { display: none; }

@media (max-width: 1080px) {
  .nav-links { gap: 18px; }
  .phone-link { display: none; }
  .hero-grid { gap: 36px; }
  .fleet-grid { grid-template-columns: repeat(2, 1fr); }
  .fleet-body ul { min-height: 0; }
  .difference-grid, .areas-grid { gap: 45px; }
  .estimator-grid { grid-template-columns: 1.05fr .95fr; }
  .estimator-form { padding: 30px; }
}

@media (max-width: 860px) {
  .topline-links, .nav-actions .compact { display: none; }
  .menu-button { display: block; order: 3; }
  .nav-wrap { min-height: 70px; }
  .nav-links { position: absolute; top: 70px; left: 0; right: 0; display: none; padding: 12px 24px 20px; background: white; border-bottom: 1px solid var(--line); box-shadow: 0 20px 35px rgba(16,17,20,.12); }
  .nav-links.open { display: grid; }
  .nav-links a { padding: 13px 0; border-bottom: 1px solid #eee; }
  .nav-links a::after { display: none; }
  .hero-grid { grid-template-columns: 1fr; padding: 70px 0; }
  .hero { min-height: 0; }
  .hero-grid { min-height: 0; }
  .hero-photo { background-position: 63% center; }
  .quote-card { max-width: 620px; }
  .trust-grid { grid-template-columns: 1fr 1fr; padding: 22px 0; }
  .trust-grid > div { padding: 14px 18px; }
  .trust-grid > div:nth-child(2) { border-right: 0; }
  .service-grid { grid-template-columns: repeat(2, 1fr); }
  .difference-grid, .areas-grid, .faq-grid { grid-template-columns: 1fr; }
  .difference-image { min-height: 500px; }
  .difference-copy { padding-top: 15px; }
  .steps-grid { grid-template-columns: repeat(2, 1fr); }
  .steps-grid::before { display: none; }
  .reviews-grid { grid-template-columns: 1fr; }
  .reviews-grid blockquote > p { min-height: 0; }
  .faq-intro { position: static; }
  .final-cta-inner { display: grid; gap: 30px; }
  .footer-grid { grid-template-columns: 1.3fr 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
  .estimator-workspace { margin-top: -60px; }
  .estimator-grid { grid-template-columns: 1fr; }
  .estimate-result { position: relative; top: auto; }
}

/* v2.1 — shared inner hero, centred trust cards and Yoast FAQ accordion */
.stm-inner-hero { position: relative; overflow: hidden; background-color: #18191b; background-image: linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px),radial-gradient(circle at 72% 18%,rgba(245,174,18,.08),transparent 34%); background-size: 60px 60px,60px 60px,auto; color: #fff; }
.stm-inner-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(11,12,14,.05),rgba(11,12,14,.2)); pointer-events: none; }
.stm-inner-hero-content { position: relative; z-index: 1; min-height: 360px; display: flex; align-items: flex-start; justify-content: center; flex-direction: column; padding-top: 34px; padding-bottom: 58px; }
.stm-breadcrumbs { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin-bottom: 25px; color: #a8aaae; font-size: 12px; line-height: 1.4; }
.stm-breadcrumbs a { color: var(--gold); font-weight: 800; }
.stm-breadcrumbs b { max-width: min(58vw,620px); overflow: hidden; color: #7f8288; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.stm-inner-hero h1 { max-width: 900px; margin: 0; color: #fff; font-family: "Avenir Next","Segoe UI",Helvetica,Arial,sans-serif; font-size: clamp(48px,5.4vw,76px); font-weight: 800; line-height: 1.05; letter-spacing: -.045em; text-wrap: balance; }
.stm-inner-hero-content>p { max-width: 780px; margin: 22px 0 0; color: #b9bbc0; font-size: 17px; line-height: 1.75; }
.stm-hero-chips { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; margin-top: 32px; }
.stm-hero-chips a { min-height: 38px; display: inline-flex; align-items: center; gap: 9px; padding: 0 16px; border: 1px solid rgba(245,174,18,.35); border-radius: 999px; background: rgba(245,174,18,.09); color: var(--gold); font-size: 12px; font-weight: 800; transition: background .2s ease,border-color .2s ease,transform .2s ease; }
.stm-hero-chips a:hover { transform: translateY(-2px); border-color: var(--gold); background: rgba(245,174,18,.15); }
.stm-hero-chips a span { font-size: 14px; }
.stm-hero-proof { position: relative; z-index: 1; border-top: 1px solid rgba(255,255,255,.05); background: rgba(36,37,39,.92); }
.stm-hero-proof-grid { min-height: 76px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); align-items: center; }
.stm-hero-proof-grid>div { min-width: 0; display: flex; align-items: center; justify-content: center; gap: 14px; padding: 14px 22px; border-right: 1px solid rgba(255,255,255,.06); }
.stm-hero-proof-grid>div:last-child { border-right: 0; }
.stm-hero-proof-grid>div>span { flex: 0 0 auto; color: var(--gold); font-size: 17px; }
.stm-hero-proof-grid p { min-width: 0; margin: 0; }
.stm-hero-proof-grid strong,.stm-hero-proof-grid small { display: block; }
.stm-hero-proof-grid strong { overflow: hidden; color: #fff; font-size: 15px; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.stm-hero-proof-grid small { margin-top: 3px; color: #999ca2; font-size: 9px; font-weight: 700; letter-spacing: .05em; line-height: 1.2; text-transform: uppercase; }

.stm-inner-feature-block { width: min(1180px,calc(100% - 48px)); margin: 82px auto; }
.services-page-grid>.stm-inner-feature-block { width: 100%; grid-column: 1/-1; margin: 28px 0; }
.article-content>.stm-inner-feature-block { width: 100%; margin: 60px auto; }
.stm-inner-feature-heading { max-width: 760px; margin: 0 auto 38px; text-align: center; }
.stm-inner-feature-heading>span { display: inline-flex; align-items: center; min-height: 30px; padding: 0 13px; border-radius: 999px; background: #fff3d5; color: #8d6100; font-size: 11px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.stm-inner-feature-heading h2 { margin: 16px 0 13px; color: #101114; font-family: "Avenir Next","Segoe UI",Helvetica,Arial,sans-serif; font-size: clamp(34px,4vw,50px); font-weight: 800; line-height: 1.08; letter-spacing: -.045em; text-wrap: balance; }
.stm-inner-feature-heading p { margin: 0 auto; color: #66696f; font-size: 16px; line-height: 1.7; }
.stm-inner-feature-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.stm-inner-service-card { position: relative; overflow: hidden; min-width: 0; border: 1px solid #dddcd7; border-radius: 22px; background: #fff; box-shadow: 0 16px 42px rgba(16,17,20,.065); transition: transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s ease,box-shadow .3s ease; }
.stm-inner-service-card:hover { transform: translateY(-8px); border-color: rgba(245,174,18,.75); box-shadow: 0 28px 62px rgba(16,17,20,.14); }
.stm-inner-service-card>a { height: 100%; display: flex; flex-direction: column; }
.stm-inner-service-image { position: relative; overflow: hidden; aspect-ratio: 3/2; background: #151619; }
.stm-inner-service-image::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent,rgba(10,11,13,.72)); pointer-events: none; }
.stm-inner-service-image img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .65s cubic-bezier(.2,.8,.2,1),filter .3s ease; }
.stm-inner-service-card:hover .stm-inner-service-image img { transform: scale(1.065); filter: saturate(1.08); }
.stm-inner-service-image>span { position: absolute; z-index: 2; right: 20px; bottom: 18px; width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.12); border-radius: 13px; background: #17181a; color: var(--gold); box-shadow: 0 10px 28px rgba(0,0,0,.28); font-size: 19px; font-weight: 900; }
.stm-inner-service-copy { flex: 1; display: flex; flex-direction: column; padding: 25px 25px 27px; }
.stm-inner-service-copy>small { color: #a66f00; font-size: 10px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.stm-inner-feature-grid .stm-inner-service-copy h3 { margin: 9px 0 10px; color: #111216; font-family: "Avenir Next","Segoe UI",Helvetica,Arial,sans-serif; font-size: 22px; font-weight: 800; line-height: 1.16; letter-spacing: -.03em; }
.stm-inner-feature-grid .stm-inner-service-copy p { margin: 0 0 21px; color: #66696f; font-size: 14px; line-height: 1.7; }
.stm-inner-service-copy>b { display: flex; align-items: center; gap: 8px; margin-top: auto; color: #17181b; font-size: 12px; font-weight: 900; }
.stm-inner-service-copy>b i { color: #ba7b00; font-style: normal; transition: transform .2s ease; }
.stm-inner-service-card:hover .stm-inner-service-copy>b i { transform: translateX(5px); }
.stm-inner-service-card.is-cabcharge { border-color: rgba(245,174,18,.62); background: linear-gradient(145deg,#fff,#fff9e9); }

.wp-block-yoast-faq-block,.schema-faq { margin: 64px 0; padding: 8px; border: 1px solid #d8d7d2; border-radius: 24px; background: linear-gradient(145deg,#faf9f5,#fff); box-shadow: 0 24px 64px rgba(16,17,20,.09); }
.stm-faq-enhanced>.schema-faq-section { overflow: hidden; margin: 0; padding: 0; border: 0; border-bottom: 1px solid #dfded8; background: transparent; }
.stm-faq-enhanced>.schema-faq-section:last-child { border-bottom: 0; }
.stm-faq-enhanced>.schema-faq-section>.schema-faq-question { min-height: 78px; display: grid; grid-template-columns: 38px minmax(0,1fr) 34px; align-items: center; gap: 15px; margin: 0; padding: 16px 18px; border-radius: 15px; background: transparent; color: #101114; cursor: pointer; font-family: "Avenir Next","Segoe UI",Helvetica,Arial,sans-serif; font-size: 16px; font-weight: 800; line-height: 1.45; outline: none; transition: background .22s ease,color .22s ease; }
.stm-faq-enhanced>.schema-faq-section>.schema-faq-question:hover { background: #fff8e7; }
.stm-faq-enhanced>.schema-faq-section>.schema-faq-question:focus-visible { box-shadow: inset 0 0 0 3px rgba(245,174,18,.42); }
.stm-faq-enhanced .stm-faq-number { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; background: #202123; color: var(--gold); font-size: 10px; font-weight: 900; letter-spacing: .04em; }
.stm-faq-enhanced .stm-faq-question-text { min-width: 0; }
.stm-faq-enhanced .stm-faq-arrow { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--gold); color: #151619; box-shadow: 0 7px 16px rgba(197,133,0,.2); font-family: Arial,sans-serif; font-size: 23px; font-weight: 700; line-height: 1; transform: rotate(90deg); transition: transform .24s cubic-bezier(.2,.8,.2,1),background .2s ease; }
.stm-faq-enhanced>.schema-faq-section.is-open>.schema-faq-question { background: #fff0df; }
.stm-faq-enhanced>.schema-faq-section.is-open>.schema-faq-question .stm-faq-arrow { transform: rotate(-90deg); background: #151619; color: var(--gold); }
.stm-faq-enhanced>.schema-faq-section>.schema-faq-answer { margin: 0; padding: 4px 67px 27px 71px; background: #fff; color: #5e6168; font-size: 15px; line-height: 1.78; }
.stm-faq-enhanced>.schema-faq-section>.schema-faq-answer[hidden] { display: none!important; }
.stm-faq-enhanced>.schema-faq-section>.schema-faq-answer a { color: #b67800; font-weight: 800; text-decoration: none; }
.stm-faq-enhanced>.schema-faq-section>.schema-faq-answer a:hover { color: #775000; text-decoration: underline; }
.stm-faq-enhanced>.schema-faq-section>.schema-faq-answer>p:last-child:has(a) { margin: 18px 0 0; padding: 13px 15px; border-radius: 11px; background: #fff0df; }

.detail-faq { overflow: hidden; border: 1px solid #d1d1ce; border-radius: 15px; }
.detail-faq>h2 { margin: 0; padding: 24px 22px; border: 0; background: #18191b; color: #fff; }
.detail-faq details { border-bottom-color: #d1d1ce; background: #fff; }
.detail-faq summary { min-height: 58px; align-items: center; padding: 17px 60px 17px 21px; font-size: 15px; }
.detail-faq summary span,.detail-faq summary::after { color: #111216; }
.detail-faq summary span { width: 24px; height: 24px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--gold); }
.detail-faq details[open] summary { background: #fff0df; }
.detail-faq details p { margin: 0; padding: 0 21px 22px; font-size: 14px; line-height: 1.75; }

@media (max-width: 860px) {
	.stm-inner-hero-content { min-height: 330px; padding-top: 28px; padding-bottom: 48px; }
	.stm-inner-hero h1 { font-size: clamp(41px,8vw,60px); }
	.stm-hero-proof-grid { grid-template-columns: 1fr 1fr; padding: 9px 0; }
	.stm-hero-proof-grid>div:nth-child(2) { border-right: 0; }
	.stm-hero-proof-grid>div:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.06); }
	.stm-inner-feature-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
	.stm-inner-hero { background-size: 44px 44px,44px 44px,auto; }
	.stm-inner-hero-content { min-height: 300px; padding-top: 23px; padding-bottom: 40px; }
	.stm-breadcrumbs { margin-bottom: 20px; font-size: 10px; }
	.stm-breadcrumbs b { max-width: 46vw; }
	.stm-inner-hero h1 { font-size: clamp(35px,10.2vw,47px); line-height: 1.07; }
	.stm-inner-hero-content>p { margin-top: 17px; font-size: 15px; line-height: 1.65; }
	.stm-hero-chips { gap: 9px; margin-top: 24px; }
	.stm-hero-chips a { min-height: 36px; padding: 0 12px; font-size: 10px; }
	.stm-hero-proof-grid { grid-template-columns: minmax(0,1fr); }
	.stm-hero-proof-grid>div { justify-content: flex-start; min-height: 58px; padding: 10px 18px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.06); }
	.stm-hero-proof-grid>div:last-child { border-bottom: 0; }
	.stm-inner-feature-block { width: calc(100% - 28px); margin: 55px auto; }
	.services-page-grid>.stm-inner-feature-block,.article-content>.stm-inner-feature-block { width: 100%; }
	.stm-inner-feature-grid { grid-template-columns: minmax(0,1fr); gap: 15px; }
	.stm-inner-feature-heading { margin-bottom: 28px; }
	.stm-inner-feature-heading h2 { font-size: clamp(31px,9vw,41px); }
	.stm-inner-feature-heading p { font-size: 15px; }
	.stm-inner-service-card { min-height: 0; border-radius: 17px; }
	.stm-inner-service-image { aspect-ratio: 16/10; }
	.wp-block-yoast-faq-block,.schema-faq { margin: 48px 0; padding: 5px; border-radius: 18px; }
	.stm-faq-enhanced>.schema-faq-section>.schema-faq-question { min-height: 68px; grid-template-columns: 30px minmax(0,1fr) 30px; gap: 10px; padding: 13px 11px; border-radius: 13px; font-size: 14px; }
	.stm-faq-enhanced .stm-faq-number { width: 29px; height: 29px; border-radius: 9px; font-size: 9px; }
	.stm-faq-enhanced .stm-faq-arrow { width: 28px; height: 28px; font-size: 21px; }
	.stm-faq-enhanced>.schema-faq-section>.schema-faq-answer { padding: 4px 14px 21px 51px; font-size: 14px; }
}

@media (max-width: 560px) {
  html { scroll-padding-top: 70px; }
  .shell { width: min(100% - 32px, 1180px); }
  .topline-inner { justify-content: center; }
  .brand-mark { width: 38px; height: 38px; font-size: 21px; }
  .brand-copy strong { font-size: 17px; }
  .hero-grid { gap: 42px; padding: 54px 0 62px; }
  .hero-wash { background: linear-gradient(90deg, rgba(8,9,12,.92), rgba(8,9,12,.69)), linear-gradient(0deg, rgba(8,9,12,.66), transparent 50%); }
  .hero-copy h1 { font-size: 43px; }
  .hero-copy > p { font-size: 15px; }
  .hero-actions .button { width: 100%; }
  .hero-proof { justify-content: space-between; }
  .hero-proof div { min-width: 0; padding: 0 14px; }
  .hero-proof strong { font-size: 20px; }
  .quote-card { margin: 0 -5px; }
  .quote-card form, .quote-top { padding-left: 20px; padding-right: 20px; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .trust-grid { grid-template-columns: 1fr; }
  .trust-grid > div { border-right: 0; border-bottom: 1px solid var(--line); padding-left: 0; }
  .trust-grid > div:last-child { border: 0; }
  .content-section, .difference-section, .fleet-section, .steps-section, .areas-section, .reviews-section, .faq-section { padding: 78px 0; }
  .service-grid, .fleet-grid, .steps-grid { grid-template-columns: 1fr; }
  .card-image { height: 210px; }
  .difference-image { min-height: 410px; margin: 8px 0 26px; }
  .difference-image::before { left: -8px; top: -8px; }
  .image-badge { right: -7px; bottom: -20px; }
  .inline-actions { align-items: flex-start; flex-direction: column; }
  .reviews-head { align-items: flex-start; flex-direction: column; }
  .route-card { padding: 28px 22px; }
  .route-card ul { grid-template-columns: 1fr; }
  .final-actions { width: 100%; flex-direction: column; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 38px 24px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-bottom { align-items: flex-start; flex-direction: column; padding-bottom: 86px; }
  .estimator-hero { padding: 70px 0 120px; }
  .estimator-heading h1 { font-size: 46px; }
  .estimator-heading p { font-size: 15px; }
  .estimator-workspace { padding-bottom: 78px; }
  .estimator-form, .estimate-result { padding: 24px 20px; }
  .estimator-fields, .estimator-row, .vehicle-options, .extras-grid, .estimator-benefits { grid-template-columns: 1fr; }
  .estimator-fields label:first-child, .estimator-fields label:nth-child(2) { grid-column: 1; }
  .fare-range strong { font-size: 40px; }
  .mobile-cta { position: fixed; z-index: 80; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: 1fr 1fr; padding: 8px; background: var(--ink); box-shadow: 0 -8px 30px rgba(0,0,0,.2); }
  .mobile-cta a { min-height: 50px; display: flex; align-items: center; justify-content: center; gap: 8px; color: white; font-size: 13px; font-weight: 800; }
  .mobile-cta a:last-child { background: var(--gold); color: var(--ink); border-radius: 4px; }
}

@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; transition: none !important; }
}
/* Luxury homepage refresh */
.hero { min-height: 620px; }
.hero-photo { background-position: 64% 53%; transform: scale(1.015); }
.hero-wash { background: linear-gradient(90deg, rgba(7,8,10,.96) 0%, rgba(7,8,10,.82) 34%, rgba(7,8,10,.35) 67%, rgba(7,8,10,.12) 100%), linear-gradient(0deg, rgba(6,7,9,.72), transparent 45%); }
.hero::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(245,174,18,.055) 0, transparent 32%), linear-gradient(0deg, rgba(0,0,0,.18), transparent 55%); }
.cinematic-grid { position: relative; z-index: 2; grid-template-columns: minmax(0, 780px); align-items: center; min-height: 620px; padding: 64px 0 92px; }
.cinematic-grid .hero-copy { max-width: 760px; }
.hero-kicker { width: fit-content; padding: 11px 16px; border: 1px solid rgba(245,174,18,.36); border-radius: 999px; background: rgba(8,9,11,.45); backdrop-filter: blur(8px); }
.hero-kicker::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 6px rgba(245,174,18,.13); }
.cinematic-grid .hero-copy h1 { max-width: 740px; margin-top: 24px; font-size: clamp(56px, 6.25vw, 88px); line-height: .92; letter-spacing: -.052em; text-shadow: 0 8px 32px rgba(0,0,0,.35); }
.cinematic-grid .hero-copy > p { max-width: 680px; font-size: 17px; line-height: 1.8; }
.cinematic-grid .hero-actions { margin-top: 32px; }
.cinematic-grid .hero-proof { width: min(100%, 610px); margin-top: 38px; padding: 22px 24px; border: 1px solid rgba(255,255,255,.19); border-radius: 12px; background: rgba(10,11,13,.76); box-shadow: 0 24px 60px rgba(0,0,0,.25); backdrop-filter: blur(14px); }
.cinematic-grid .hero-proof div { flex: 1; padding: 0 27px; }
.cinematic-grid .hero-proof div:first-child { padding-left: 0; }
.cinematic-grid .hero-proof div:last-child { padding-right: 0; }
.cinematic-grid .hero-proof strong { font-size: 22px; }
.cinematic-grid .hero-proof span { margin-top: 7px; color: #aeb0b4; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; letter-spacing: .05em; text-transform: uppercase; }
.hero-slider-dots { position: absolute; left: 50%; bottom: 25px; display: flex; align-items: center; gap: 8px; transform: translateX(-50%); }
.hero-slider-dots span, .hero-slider-dots i { width: 8px; height: 8px; border-radius: 99px; background: rgba(255,255,255,.38); }
.hero-slider-dots span { width: 22px; background: var(--gold); }

.trust-band { position: relative; z-index: 3; background: #111214; border-top-color: rgba(255,255,255,.07); border-bottom-color: rgba(255,255,255,.07); }
.trust-grid { padding: 26px 0; }
.trust-grid > div { border-right-color: rgba(255,255,255,.1); }
.trust-grid strong { color: #f5f5f2; }
.trust-grid small { color: #8f9298; }
.trust-icon { width: 49px; height: 49px; border: 1px solid rgba(245,174,18,.55); background: rgba(245,174,18,.12); color: var(--gold); border-radius: 12px; transition: transform .25s ease, background .25s ease, box-shadow .25s ease; }
.trust-grid > div:hover .trust-icon { transform: translateY(-4px) rotate(-3deg); background: var(--gold); color: var(--ink); box-shadow: 0 12px 30px rgba(245,174,18,.18); }

.route-planner-section { padding: 104px 0; background: linear-gradient(135deg, #f7f6f2, #eceae3); }
.route-planner-shell { display: grid; grid-template-columns: .83fr 1.17fr; gap: 54px; align-items: center; }
.route-planner-copy h2 { max-width: 570px; margin: 20px 0 17px; font-family: Georgia, serif; font-size: clamp(42px, 4.7vw, 62px); font-weight: 500; line-height: 1.02; letter-spacing: -.035em; }
.route-planner-copy > p { max-width: 550px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.72; }
.route-form { position: relative; display: grid; gap: 12px; margin-top: 30px; }
.route-form::before { content: ""; position: absolute; z-index: 1; left: 19px; top: 38px; height: 61px; border-left: 1px dashed #bdbdb9; }
.route-form label { position: relative; display: block; }
.route-form label > span { display: flex; align-items: center; gap: 9px; margin-bottom: 7px; color: #595b60; font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.pickup-dot, .dropoff-dot { position: relative; z-index: 2; width: 9px; height: 9px; display: inline-block; border: 2px solid var(--gold); border-radius: 50%; background: white; }
.dropoff-dot { border-color: var(--ink); }
.route-form input { width: 100%; height: 55px; padding: 0 16px; border: 1px solid #d1d1cd; border-radius: 7px; background: rgba(255,255,255,.84); color: var(--ink); font: inherit; font-size: 13px; outline: none; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; }
.route-form input:focus { border-color: var(--gold); background: white; box-shadow: 0 0 0 4px rgba(245,174,18,.14); }
.route-form-actions { display: flex; align-items: center; gap: 22px; margin-top: 8px; }
.route-form-actions .button { border: 0; cursor: pointer; }
.live-map-card { overflow: hidden; border: 1px solid rgba(16,17,20,.12); border-radius: 16px; background: #111214; box-shadow: 0 32px 85px rgba(16,17,20,.2); transition: transform .3s ease, box-shadow .3s ease; }
.live-map-card:hover { transform: translateY(-6px); box-shadow: 0 42px 90px rgba(16,17,20,.25); }
.map-toolbar { min-height: 56px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 20px; color: #ddd; }
.map-toolbar span { display: flex; align-items: center; gap: 9px; font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.map-toolbar span i { width: 8px; height: 8px; border-radius: 50%; background: #23c66b; box-shadow: 0 0 0 5px rgba(35,198,107,.12); }
.map-toolbar a { color: var(--gold); font-size: 10px; font-weight: 800; }
.live-map-card iframe { width: 100%; height: 385px; display: block; border: 0; filter: saturate(.82) contrast(1.02); }
.map-route-summary { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 13px; min-height: 80px; padding: 14px 20px; color: white; }
.map-route-summary > span { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: var(--gold); color: var(--ink); font-weight: 900; }
.map-route-summary p { min-width: 0; margin: 0; }
.map-route-summary strong, .map-route-summary small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.map-route-summary strong { font-size: 11px; }
.map-route-summary small { margin-top: 5px; color: #8f9298; font-size: 9px; }
.map-route-summary > a { padding: 10px 13px; border: 1px solid rgba(245,174,18,.4); border-radius: 5px; color: var(--gold); font-size: 9px; font-weight: 900; text-transform: uppercase; }

.services-section { background: #fbfaf7; }
.service-heading { max-width: 760px; margin-left: auto; margin-right: auto; text-align: center; }
.service-heading .eyebrow { justify-content: center; }
.service-grid { gap: 24px; }
.service-card { border-radius: 13px; box-shadow: 0 14px 45px rgba(16,17,20,.065); transition: transform .32s cubic-bezier(.2,.8,.2,1), box-shadow .32s ease, border-color .32s ease; }
.service-card::after { content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit; box-shadow: inset 0 0 0 1px transparent; transition: box-shadow .3s ease; }
.service-card:hover { transform: translateY(-10px); border-color: rgba(245,174,18,.45); box-shadow: 0 30px 70px rgba(16,17,20,.14); }
.service-card:hover::after { box-shadow: inset 0 0 0 1px rgba(245,174,18,.4); }
.service-card .card-image img { transition: transform .7s cubic-bezier(.2,.8,.2,1), filter .35s ease; }
.service-card:hover .card-image img { transform: scale(1.075); filter: saturate(1.08); }
.service-body { text-align: center; }
.service-body .card-tag { justify-content: center; }
.service-body > a { justify-content: center; }

.trusted-section { padding: 112px 0; background: #f3f2ee; }
.trusted-grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: 70px; align-items: center; }
.trusted-copy h2 { max-width: 610px; margin: 20px 0 18px; font-family: Georgia, serif; font-size: clamp(43px, 5vw, 63px); font-weight: 500; line-height: 1.03; letter-spacing: -.04em; }
.trusted-intro { max-width: 620px; margin: 0; color: #65676c; font-size: 14px; line-height: 1.75; }
.trusted-features { display: grid; gap: 21px; margin-top: 34px; }
.trusted-features article { display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: start; }
.trusted-features article > span { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 9px; background: #fff1cf; color: #b47700; font-family: Georgia, serif; transition: transform .25s ease, background .25s ease; }
.trusted-features article:hover > span { transform: translateY(-3px) rotate(-4deg); background: var(--gold); color: var(--ink); }
.trusted-features h3 { margin: 3px 0 7px; font-family: Georgia, serif; font-size: 17px; }
.trusted-features p { max-width: 560px; margin: 0; color: #6b6d72; font-size: 12px; line-height: 1.65; }
.trusted-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.trusted-stats article { min-height: 170px; display: flex; align-items: center; justify-content: center; flex-direction: column; padding: 25px; border: 1px solid #dddcd8; border-radius: 13px; background: rgba(255,255,255,.78); box-shadow: 0 10px 35px rgba(16,17,20,.045); text-align: center; transition: transform .27s ease, border-color .27s ease, box-shadow .27s ease; }
.trusted-stats article:hover { transform: translateY(-7px); border-color: rgba(245,174,18,.75); box-shadow: 0 24px 50px rgba(16,17,20,.1); }
.trusted-stats strong { color: #eda700; font-family: Georgia, serif; font-size: 40px; font-weight: 700; }
.trusted-stats span { margin-top: 18px; color: #83858b; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; letter-spacing: .055em; text-transform: uppercase; }

.site-footer { padding-top: 48px; background: #0d0f13; }
.footer-logo-row { display: flex; justify-content: center; padding: 0 0 40px; }
.footer-logo-row .brand { margin: 0; transform: scale(1.1); }
.footer-contact-bar { display: grid; grid-template-columns: .7fr .7fr 1.35fr; max-width: 1134px; margin-bottom: 42px; padding: 18px 32px; border: 1px solid rgba(255,255,255,.12); border-radius: 13px; background: rgba(255,255,255,.025); }
.footer-contact-bar > a { min-width: 0; display: flex; align-items: center; justify-content: center; gap: 12px; padding: 0 22px; border-right: 1px solid rgba(255,255,255,.09); color: white; }
.footer-contact-bar > a:last-child { border-right: 0; }
.footer-contact-bar > a > span { width: 35px; height: 35px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: rgba(245,174,18,.09); color: var(--gold); }
.footer-contact-bar > a > span.whatsapp-dot { background: #21c866; color: white; }
.footer-contact-bar p { min-width: 0; margin: 0; }
.footer-contact-bar small, .footer-contact-bar strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.footer-contact-bar small { color: #747d91; font-size: 9px; letter-spacing: .06em; text-transform: uppercase; }
.footer-contact-bar strong { margin-top: 5px; font-size: 11px; }
.footer-links-grid { grid-template-columns: repeat(4, 1fr); gap: 70px; padding-bottom: 55px; }
.footer-links-grid > div { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.footer-links-grid h3 { color: #f5f6f7; font-family: Georgia, serif; font-size: 15px; letter-spacing: 0; text-transform: none; }
.footer-links-grid > div a { color: #9ca3af; font-size: 11px; }
.footer-links-grid > div a:hover { color: var(--gold); transform: translateX(3px); }
.payment-chips { display: flex !important; flex-flow: row wrap !important; gap: 7px !important; }
.payment-chips span { padding: 7px 10px; border-radius: 5px; background: white; color: #111827; font-size: 9px; font-weight: 900; }
.payment-chips span:nth-child(2) { background: #1a56a8; color: white; font-style: italic; }
.payment-chips span:nth-child(3) { background: linear-gradient(90deg, #eb001b 0 48%, #f79e1b 52% 100%); color: white; }
.payment-column > p { margin: 3px 0 0; color: #6f7785; font-size: 9px; }
.mobile-dock { display: none; }

@media (max-width: 1080px) {
  .route-planner-shell, .trusted-grid { gap: 38px; }
  .footer-links-grid { gap: 36px; }
}

@media (max-width: 860px) {
  .cinematic-grid { min-height: 610px; }
  .route-planner-shell, .trusted-grid { grid-template-columns: 1fr; }
  .route-planner-copy { max-width: 680px; }
  .live-map-card { margin-top: 8px; }
  .trusted-stats { max-width: 680px; }
  .footer-contact-bar { grid-template-columns: 1fr 1fr; padding: 14px; }
  .footer-contact-bar > a { justify-content: flex-start; min-height: 58px; padding: 0 16px; }
  .footer-contact-bar > a:nth-child(2) { border-right: 0; }
  .footer-contact-bar > a:last-child { grid-column: 1 / -1; border-top: 1px solid rgba(255,255,255,.09); }
  .footer-links-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
  .hero { min-height: 610px; }
  .hero-photo { background-position: 62% center; }
  .hero-wash { background: linear-gradient(90deg, rgba(7,8,10,.94), rgba(7,8,10,.58)), linear-gradient(0deg, rgba(7,8,10,.82), transparent 58%); }
  .cinematic-grid { min-height: 610px; padding: 50px 0 72px; }
  .cinematic-grid .hero-copy h1 { font-size: clamp(44px, 13.2vw, 60px); }
  .cinematic-grid .hero-copy > p { font-size: 14px; line-height: 1.67; }
  .cinematic-grid .hero-actions { display: grid; }
  .cinematic-grid .hero-proof { display: grid; grid-template-columns: repeat(3, 1fr); padding: 16px 10px; }
  .cinematic-grid .hero-proof div, .cinematic-grid .hero-proof div:first-child, .cinematic-grid .hero-proof div:last-child { padding: 0 8px; }
  .cinematic-grid .hero-proof strong { font-size: 16px; }
  .cinematic-grid .hero-proof span { font-size: 7px; line-height: 1.35; }
  .trust-grid { padding: 10px 0; }
  .trust-grid > div { min-height: 72px; padding: 11px 0; }
  .trust-icon { width: 42px; height: 42px; }
  .route-planner-section, .trusted-section { padding: 78px 0; }
  .route-planner-copy h2, .trusted-copy h2 { font-size: 40px; }
  .route-form-actions { align-items: stretch; flex-direction: column; gap: 15px; }
  .route-form-actions .button { width: 100%; }
  .route-form-actions .text-link { text-align: center; }
  .live-map-card iframe { height: 310px; }
  .map-toolbar { padding: 0 15px; }
  .map-toolbar a { font-size: 9px; }
  .map-route-summary { grid-template-columns: auto 1fr; }
  .map-route-summary > a { grid-column: 1 / -1; text-align: center; }
  .trusted-stats { gap: 10px; }
  .trusted-stats article { min-height: 135px; padding: 15px 10px; }
  .trusted-stats strong { font-size: 31px; }
  .trusted-stats span { margin-top: 13px; font-size: 7px; line-height: 1.4; }
  .footer-logo-row { padding-bottom: 30px; }
  .footer-contact-bar { grid-template-columns: 1fr; margin-bottom: 34px; }
  .footer-contact-bar > a, .footer-contact-bar > a:nth-child(2), .footer-contact-bar > a:last-child { grid-column: auto; border-right: 0; border-top: 1px solid rgba(255,255,255,.09); }
  .footer-contact-bar > a:first-child { border-top: 0; }
  .footer-links-grid { grid-template-columns: 1fr 1fr; gap: 34px 20px; }
  .footer-bottom { padding-bottom: 104px; }
  .mobile-dock { position: fixed; z-index: 100; left: 50%; bottom: max(10px, env(safe-area-inset-bottom)); width: min(calc(100% - 22px), 470px); min-height: 62px; display: grid; grid-template-columns: 58px minmax(0, 1fr) 48px 48px; align-items: center; gap: 8px; padding: 6px; border: 1px solid rgba(16,17,20,.1); border-radius: 999px; background: #f8f8fa; box-shadow: 0 14px 45px rgba(0,0,0,.28); transform: translateX(-50%); }
  .mobile-dock > a { min-height: 48px; display: flex; align-items: center; justify-content: center; color: var(--ink); }
  .dock-rating { position: relative; flex-direction: column; margin-left: -2px; border-radius: 50%; background: #11141a; box-shadow: 0 0 0 4px #fff, 0 0 20px 5px rgba(245,174,18,.65); color: white !important; }
  .dock-rating strong { color: #4285f4; font-size: 16px; }
  .dock-rating small { color: var(--gold); font-size: 8px; font-weight: 900; }
  .dock-call { gap: 9px; border-radius: 999px; background: linear-gradient(135deg, #f8c955, var(--gold)); font-size: 13px; font-weight: 900; text-transform: capitalize; }
  .dock-icon { border: 1px solid #d7d8dc; border-radius: 15px; background: white; font-size: 18px; }
  .dock-whatsapp { border-color: #21c866; background: #21c866; color: white !important; }
}
/* Multi-step Melbourne booking engine */
.booking-engine-section { position: relative; overflow: visible; padding: 108px 0 118px; background: linear-gradient(145deg, #f7f6f2 0%, #eeece6 100%); }
.booking-engine-section::before { content: ""; position: absolute; top: -160px; right: -140px; width: 430px; height: 430px; border: 1px solid rgba(245,174,18,.13); border-radius: 50%; box-shadow: 0 0 0 80px rgba(245,174,18,.025), 0 0 0 160px rgba(245,174,18,.018); pointer-events: none; }
.booking-heading { position: relative; max-width: 810px; margin: 0 auto; text-align: center; }
.booking-heading .eyebrow { justify-content: center; }
.booking-heading h2 { margin: 20px 0 16px; font-family: Georgia, serif; font-size: clamp(43px, 5vw, 64px); font-weight: 500; line-height: 1.02; letter-spacing: -.04em; }
.booking-heading p { max-width: 680px; margin: 0 auto; color: var(--muted); font-size: 14px; line-height: 1.75; }
.booking-progress { position: relative; z-index: 3; max-width: 820px; display: grid; grid-template-columns: repeat(3, 1fr); margin: 46px auto 30px; padding: 8px; border: 1px solid #deded9; border-radius: 14px; background: rgba(255,255,255,.8); box-shadow: 0 15px 50px rgba(16,17,20,.07); }
.booking-progress::before { content: ""; position: absolute; z-index: -1; left: 17%; right: 17%; top: 29px; border-top: 1px dashed #d5d2c9; }
.booking-progress button { min-width: 0; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 12px 10px; border: 0; border-radius: 9px; background: transparent; color: #8b8d91; cursor: default; }
.booking-progress button.complete { cursor: pointer; }
.booking-progress button.current { background: var(--ink); color: white; box-shadow: 0 8px 22px rgba(16,17,20,.18); }
.booking-progress button > span { width: 28px; height: 28px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid #d1d1cc; border-radius: 50%; background: white; color: #74767b; font-size: 10px; font-weight: 900; }
.booking-progress button.current > span, .booking-progress button.complete > span { border-color: var(--gold); background: var(--gold); color: var(--ink); }
.booking-progress strong { overflow: hidden; font-size: 10px; letter-spacing: .06em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.booking-form { position: relative; }
.booking-step-grid { display: grid; grid-template-columns: minmax(0, .88fr) minmax(440px, 1.12fr); gap: 25px; align-items: stretch; }
.booking-panel, .booking-review { border: 1px solid #dbdbd6; border-radius: 16px; background: white; box-shadow: 0 28px 80px rgba(16,17,20,.11); }
.booking-panel { padding: 34px; }
.panel-title { display: flex; align-items: center; gap: 14px; padding-bottom: 23px; border-bottom: 1px solid var(--line); }
.panel-title > span { width: 42px; height: 42px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--gold); font-family: Georgia, serif; font-weight: 900; }
.panel-title small { color: #8a6200; font-size: 9px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.panel-title h3 { margin: 3px 0 0; font-family: Georgia, serif; font-size: 25px; font-weight: 600; }
.booking-addresses { position: relative; display: grid; gap: 14px; margin-top: 25px; }
.booking-addresses::before { content: ""; position: absolute; z-index: 1; left: 18px; top: 40px; height: 72px; border-left: 1px dashed #bdbdb8; }
.address-field { position: relative; display: block; }
.address-field > span, .booking-field-grid label > span { display: flex; align-items: center; gap: 9px; margin-bottom: 7px; color: #5a5c61; font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.address-field input, .booking-field-grid input, .booking-field-grid select, .booking-field-grid textarea { width: 100%; border: 1px solid #d2d2ce; border-radius: 8px; background: #fbfbf9; color: var(--ink); font: inherit; font-size: 13px; outline: none; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; }
.address-field input, .booking-field-grid input, .booking-field-grid select { height: 51px; padding: 0 14px; }
.booking-field-grid textarea { min-height: 100px; padding: 13px 14px; resize: vertical; line-height: 1.5; }
.address-field input:focus, .booking-field-grid input:focus, .booking-field-grid select:focus, .booking-field-grid textarea:focus { border-color: var(--gold); background: white; box-shadow: 0 0 0 4px rgba(245,174,18,.13); }
.address-suggestions { position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 6px); overflow: hidden; padding: 7px; border: 1px solid #d6d6d1; border-radius: 10px; background: white; box-shadow: 0 24px 55px rgba(16,17,20,.18); }
.address-suggestions > button { width: 100%; display: grid; grid-template-columns: auto 1fr; gap: 11px; align-items: center; padding: 10px; border: 0; border-radius: 7px; background: transparent; color: var(--ink); cursor: pointer; text-align: left; }
.address-suggestions > button:hover, .address-suggestions > button.active { background: #fff6df; }
.address-suggestions > button > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: #f2f1ec; color: #8a6200; }
.address-suggestions p { min-width: 0; margin: 0; }
.address-suggestions strong, .address-suggestions small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.address-suggestions strong { font-size: 11px; }
.address-suggestions small { margin-top: 3px; color: #818388; font-size: 8px; }
.suggestion-loading { display: flex; align-items: center; gap: 9px; padding: 9px 12px; color: #84868b; font-size: 9px; }
.suggestion-loading i { width: 12px; height: 12px; border: 2px solid #deded9; border-top-color: var(--gold); border-radius: 50%; animation: bookingSpin .8s linear infinite; }
@keyframes bookingSpin { to { transform: rotate(360deg); } }
.booking-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 20px; }
.booking-field-grid label { min-width: 0; }
.booking-field-grid label > span em { margin-left: auto; color: #a0a2a6; font-size: 7px; font-style: normal; }
.booking-error { margin: 17px 0 0; padding: 11px 13px; border: 1px solid #efc3b8; border-radius: 7px; background: #fff2ef; color: #9c3f2b; font-size: 10px; line-height: 1.5; }
.booking-next { width: 100%; margin-top: 19px; border: 0; }
.booking-map-card { min-width: 0; overflow: hidden; border: 1px solid rgba(16,17,20,.1); border-radius: 16px; background: #111214; box-shadow: 0 30px 80px rgba(16,17,20,.22); }
.booking-map-card iframe, .booking-map-frame { width: 100%; height: 500px; display: block; border: 0; background: #e8e7e2; filter: saturate(.85) contrast(1.02); }
.booking-map-setup{display:grid;place-items:center;padding:32px;background:linear-gradient(145deg,#e9e8e3,#d8d6cf);text-align:center}.booking-map-setup p{max-width:390px;margin:0;color:#4e5055;font-size:12px;line-height:1.65}.pac-container{z-index:100000;border:0;border-radius:8px;box-shadow:0 16px 45px rgba(16,17,20,.2);font-family:Arial,sans-serif}.pac-item{padding:8px 10px;cursor:pointer}.pac-item:hover{background:#fff8e7}.pac-icon{margin-top:7px}
.booking-map-frame .leaflet-control-attribution { font-size: 8px; }
.stm-route-marker { background: transparent; border: 0; }
.stm-route-marker span { width: 28px; height: 28px; display: grid; place-items: center; border: 3px solid #fff; border-radius: 50%; background: var(--gold); color: var(--ink); box-shadow: 0 3px 10px rgba(16,17,20,.35); font-size: 10px; font-weight: 900; }
.route-metrics { min-height: 90px; display: grid; grid-template-columns: repeat(3, 1fr); padding: 15px; color: white; }
.route-metrics > div { display: flex; align-items: center; justify-content: center; flex-direction: column; padding: 8px 13px; border-right: 1px solid rgba(255,255,255,.1); text-align: center; }
.route-metrics > div:last-child { border: 0; }
.route-metrics span { color: #797d84; font-size: 8px; letter-spacing: .07em; text-transform: uppercase; }
.route-metrics strong { margin-top: 7px; color: #f2f3f4; font-family: Georgia, serif; font-size: 16px; }
.route-metrics > div:last-child strong { color: var(--gold); }
.panel-intro { margin: 23px 0 0; color: var(--muted); font-size: 12px; }
.vehicle-panel { max-width: 1050px; margin: 0 auto; }
.booking-vehicle-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; margin-top: 23px; }
.booking-vehicle-grid > label { position: relative; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 15px; min-height: 110px; padding: 17px; border: 1px solid #d8d8d4; border-radius: 11px; cursor: pointer; transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease, background .22s ease; }
.booking-vehicle-grid > label:hover { transform: translateY(-3px); border-color: rgba(245,174,18,.7); box-shadow: 0 15px 35px rgba(16,17,20,.09); }
.booking-vehicle-grid > label.selected { border-color: var(--gold); background: #fff8e7; box-shadow: inset 0 0 0 1px var(--gold); }
.booking-vehicle-grid > label.unsuitable { opacity: .45; cursor: not-allowed; filter: grayscale(.5); }
.booking-vehicle-grid input { position: absolute; opacity: 0; pointer-events: none; }
.vehicle-art { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 12px; background: var(--ink); color: var(--gold); font-size: 23px; transition: transform .2s ease; }
.booking-vehicle-grid label:hover .vehicle-art, .booking-vehicle-grid label.selected .vehicle-art { transform: scale(1.06) rotate(-3deg); }
.booking-vehicle-grid small { color: #8a6200; font-size: 8px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.booking-vehicle-grid h4 { margin: 5px 0 6px; font-family: Georgia, serif; font-size: 20px; }
.booking-vehicle-grid p { margin: 0; color: var(--muted); font-size: 9px; }
.booking-vehicle-grid label > i { color: #8d6500; font-size: 8px; font-style: normal; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.booking-extras { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 17px; }
.booking-extras label { position: relative; display: flex; align-items: center; gap: 12px; padding: 15px; border: 1px solid var(--line); border-radius: 9px; cursor: pointer; }
.booking-extras input, .booking-consent input { position: absolute; opacity: 0; pointer-events: none; }
.booking-extras label > span, .booking-consent > span { width: 23px; height: 23px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid #c9c9c5; border-radius: 6px; background: white; color: transparent; font-size: 10px; font-weight: 900; }
.booking-extras input:checked + span, .booking-consent input:checked + span { border-color: var(--gold); background: var(--gold); color: var(--ink); }
.booking-extras strong, .booking-extras small { display: block; }
.booking-extras strong { font-size: 10px; }
.booking-extras small { margin-top: 4px; color: var(--muted); font-size: 8px; }
.vehicle-fare-bar { display: grid; grid-template-columns: .8fr 1.2fr; gap: 28px; align-items: center; margin-top: 18px; padding: 22px; border-radius: 10px; background: var(--ink); color: white; }
.vehicle-fare-bar > div { display: grid; grid-template-columns: auto 1fr; align-items: end; column-gap: 14px; }
.vehicle-fare-bar small { grid-column: 1 / -1; color: #8d9097; font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
.vehicle-fare-bar strong { margin-top: 7px; color: var(--gold); font-family: Georgia, serif; font-size: 30px; }
.vehicle-fare-bar span { padding-bottom: 5px; color: #a9acb2; font-size: 9px; }
.vehicle-fare-bar > p { margin: 0; color: #85888f; font-size: 8px; line-height: 1.55; }
.booking-nav { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 22px; }
.booking-nav .button { min-width: 155px; border: 0; }
.booking-back { border: 1px solid #d2d2cd !important; background: white; color: var(--ink); }
.contact-step-grid { grid-template-columns: minmax(0, 1fr) 380px; align-items: start; }
.contact-fields .full-field { grid-column: 1 / -1; }
.booking-consent { display: flex; align-items: flex-start; gap: 11px; margin-top: 18px; padding: 14px; border-radius: 8px; background: #f6f5f1; cursor: pointer; }
.booking-consent p { margin: 1px 0 0; color: #67696f; font-size: 9px; line-height: 1.55; }
.booking-review { position: sticky; top: 105px; overflow: hidden; padding: 31px; background: var(--ink); color: white; border-color: rgba(255,255,255,.08); box-shadow: 0 28px 70px rgba(16,17,20,.25); }
.booking-review::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 5px; background: var(--gold); }
.booking-review > small { color: var(--gold); font-size: 8px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.booking-review h3 { margin: 17px 0 24px; font-family: Georgia, serif; font-size: 22px; line-height: 1.35; }
.booking-review h3 span { display: block; margin: 7px 0; color: #777b83; font-family: Arial, sans-serif; font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }
.booking-review dl { margin: 0; }
.booking-review dl > div { display: flex; justify-content: space-between; gap: 20px; padding: 12px 0; border-top: 1px solid rgba(255,255,255,.09); }
.booking-review dt { color: #7f838b; font-size: 8px; text-transform: uppercase; }
.booking-review dd { margin: 0; color: #e4e5e7; font-size: 9px; font-weight: 800; text-align: right; }
.booking-review dl > div:last-child dd { color: var(--gold); font-family: Georgia, serif; font-size: 16px; }
.booking-review > p { display: flex; gap: 10px; margin: 22px 0 0; padding: 13px; border: 1px solid rgba(245,174,18,.18); border-radius: 7px; background: rgba(245,174,18,.06); color: #9b9ea5; font-size: 8px; line-height: 1.55; }
.booking-review > p span { width: 19px; height: 19px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--gold); color: var(--ink); font-weight: 900; }
.booking-success { max-width: 900px; margin: 0 auto; padding: 55px; border: 1px solid #d8d8d3; border-radius: 17px; background: white; box-shadow: 0 30px 80px rgba(16,17,20,.13); text-align: center; }
.success-check { width: 67px; height: 67px; display: grid; place-items: center; margin: 0 auto 18px; border-radius: 50%; background: var(--gold); color: var(--ink); font-size: 28px; font-weight: 900; box-shadow: 0 0 0 9px #fff4d7; }
.booking-success > small { color: #876000; font-size: 9px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.booking-success h3 { margin: 13px 0 12px; font-family: Georgia, serif; font-size: 42px; }
.booking-success > p { max-width: 690px; margin: 0 auto; color: var(--muted); font-size: 13px; line-height: 1.7; }
.success-summary { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; margin-top: 30px; border: 1px solid var(--line); border-radius: 10px; background: #f8f7f3; text-align: left; }
.success-summary > div { min-width: 0; padding: 16px; border-right: 1px solid var(--line); }
.success-summary > div:last-child { border: 0; }
.success-summary span, .success-summary strong { display: block; }
.success-summary span { color: #8c8e93; font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }
.success-summary strong { overflow: hidden; margin-top: 7px; font-size: 9px; line-height: 1.45; text-overflow: ellipsis; }
.success-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 11px; margin-top: 28px; }
.success-actions > button { border: 0; background: transparent; cursor: pointer; }
.estimator-engine { margin-top: -88px; padding-top: 0; background: #f4f3ef; }
.estimator-engine::before { display: none; }
.estimator-engine .booking-heading { padding-top: 116px; }
.booking-estimator-hero { padding-bottom: 170px; }

@media (max-width: 900px) {
  .booking-step-grid, .contact-step-grid { grid-template-columns: 1fr; }
  .booking-map-card { order: -1; }
  .booking-map-card iframe { height: 410px; }
  .booking-review { position: static; }
}

@media (max-width: 560px) {
  .booking-engine-section { padding: 78px 0 88px; }
  .booking-heading h2 { font-size: 40px; }
  .booking-progress { margin-top: 32px; }
  .booking-progress button { gap: 5px; padding: 9px 4px; }
  .booking-progress button > span { width: 24px; height: 24px; }
  .booking-progress strong { font-size: 7px; }
  .booking-step-grid { gap: 14px; }
  .booking-panel { padding: 23px 18px; }
  .booking-map-card iframe { height: 300px; }
  .route-metrics { padding: 8px; }
  .route-metrics > div { padding: 7px 5px; }
  .route-metrics span { font-size: 6px; }
  .route-metrics strong { font-size: 12px; }
  .booking-field-grid, .booking-vehicle-grid, .booking-extras { grid-template-columns: 1fr; }
  .contact-fields .full-field { grid-column: auto; }
  .booking-vehicle-grid > label { grid-template-columns: auto 1fr; }
  .booking-vehicle-grid label > i { grid-column: 2; }
  .vehicle-fare-bar { grid-template-columns: 1fr; gap: 13px; }
  .booking-nav { align-items: stretch; flex-direction: column-reverse; }
  .booking-nav .button { width: 100%; }
  .success-summary { grid-template-columns: 1fr 1fr; }
  .success-summary > div:nth-child(2) { border-right: 0; }
  .success-summary > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .booking-success { padding: 40px 20px; }
  .booking-success h3 { font-size: 35px; }
  .success-actions { align-items: stretch; flex-direction: column; }
  .success-actions .button { width: 100%; }
  .estimator-engine { margin-top: -72px; padding-top: 0; }
  .estimator-engine .booking-heading { padding-top: 90px; }
  .booking-estimator-hero { padding-bottom: 135px; }
}

/* Premium header, fleet, reviews and footer refinement */
.site-header .nav-wrap{width:min(1280px,calc(100% - 36px));min-height:82px;gap:30px}.site-header .brand{min-width:205px;align-self:stretch;align-items:center;gap:13px;margin-right:auto}.site-header .brand-mark{width:48px;height:48px;flex:0 0 auto;border-width:1px;background:linear-gradient(145deg,#1c1e22,#08090b);box-shadow:0 8px 22px rgba(16,17,20,.18),inset 0 0 0 4px rgba(245,174,18,.08);font-size:25px}.site-header .brand-copy{justify-content:center;min-height:48px}.site-header .brand-copy strong{font-size:21px;letter-spacing:-.025em}.site-header .brand-copy small{margin-top:6px;font-size:9px;letter-spacing:.25em}.site-header .nav-links{gap:clamp(18px,1.7vw,30px)}.site-header .nav-links a{padding:31px 0 28px;color:#282a2f;font-size:14px;font-weight:750;letter-spacing:.015em}.site-header .nav-links a::after{bottom:22px;height:2px;box-shadow:0 2px 9px rgba(245,174,18,.28)}.custom-logo-link{display:flex;align-items:center;height:100%}.custom-logo-link img{width:auto;max-width:205px;max-height:62px;display:block;object-fit:contain}
.header-cta{position:relative;min-height:50px;overflow:hidden;padding:0 21px 0 24px;border:1px solid #dd9700;border-radius:999px;background:linear-gradient(135deg,#ffd063 0%,#f5ae12 52%,#e89a00 100%);color:#111214;box-shadow:0 12px 28px rgba(213,142,0,.25),inset 0 1px 0 rgba(255,255,255,.45);font-size:12px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.header-cta::before{content:"";position:absolute;top:-40%;bottom:-40%;left:-45%;width:35%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.52),transparent);transform:skewX(-20deg);transition:left .55s ease}.header-cta:hover::before{left:115%}.header-cta i{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:rgba(16,17,20,.1);font-style:normal;transition:transform .22s ease}.header-cta:hover i{transform:translateX(3px)}
.cinematic-grid .hero-copy h1{max-width:900px;font-size:clamp(54px,5.7vw,82px);line-height:.95}.cinematic-grid .hero-copy h1 em{display:inline-block;margin-top:8px}.fleet-card>img{height:230px;object-position:center 36%;background:#e8e8e5;filter:saturate(.9) contrast(1.03);transition:transform .55s cubic-bezier(.22,1,.36,1),filter .35s ease}.fleet-card:hover>img{transform:scale(1.045);filter:saturate(1) contrast(1.04)}.fleet-card:nth-child(4)>img{object-position:center 30%}
.booking-vehicle-grid .vehicle-art{width:112px;height:78px;display:block;border:1px solid #deddd7;border-radius:10px;background:#ecece8;object-fit:cover;object-position:center 38%;box-shadow:0 8px 20px rgba(16,17,20,.1);transition:transform .3s ease,box-shadow .3s ease}.booking-vehicle-grid label:nth-child(4) .vehicle-art{object-position:center 27%}.booking-vehicle-grid label:hover .vehicle-art,.booking-vehicle-grid label.selected .vehicle-art{transform:translateY(-2px) scale(1.035);box-shadow:0 13px 26px rgba(16,17,20,.16)}
.reviews-section{overflow:hidden;padding:104px 0 96px;background:linear-gradient(180deg,#f8f8f7,#f2f2f0)}.reviews-shell{position:relative}.reviews-head{display:flex;align-items:center;flex-direction:column;justify-content:flex-start;gap:0;text-align:center}.reviews-head .eyebrow{justify-content:center;color:var(--ink)}.reviews-head h2{max-width:950px;margin:21px auto 23px;font-family:Arial,Helvetica,sans-serif;font-size:clamp(38px,4.2vw,58px);font-weight:780;line-height:1.05;letter-spacing:-.045em}.reviews-head .rating{display:inline-flex;align-items:center;gap:11px;padding:14px 20px;border:1px solid #e8e7e3;border-radius:999px;background:#fff;box-shadow:0 12px 30px rgba(16,17,20,.045)}.reviews-head .rating strong{font-size:23px}.reviews-head .rating span{color:var(--gold);font-size:17px;letter-spacing:2px}.reviews-head .rating small{color:#66696f;font-size:11px}.reviews-head .rating b{color:#4285f4;font-size:17px}.reviews-carousel{position:relative;margin-top:40px}.reviews-grid{display:grid;grid-auto-columns:minmax(310px,1fr);grid-auto-flow:column;grid-template-columns:none;gap:24px;margin-top:0;overflow-x:auto;padding:4px 2px 16px;scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:none}.reviews-grid::-webkit-scrollbar{display:none}.reviews-grid blockquote{min-height:296px;display:flex;flex-direction:column;padding:30px 32px;border-color:#d2d2cf;border-radius:17px;box-shadow:0 11px 26px rgba(16,17,20,.055);scroll-snap-align:start;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.reviews-grid blockquote:hover{transform:translateY(-5px);border-color:rgba(245,174,18,.65);box-shadow:0 19px 38px rgba(16,17,20,.09)}.review-card-top{display:flex;align-items:center;justify-content:space-between}.review-card-top .quote-mark{color:#c9c9c6;font-family:Georgia,serif;font-size:18px;font-weight:900}.reviews-grid blockquote>p{min-height:0;flex:1;margin:15px 0 25px;color:#303237;font-family:Georgia,serif;font-size:15px;font-style:italic;line-height:1.72}.reviews-grid blockquote footer{padding-top:0;border-top:0}.reviews-grid blockquote footer>span{width:46px;height:46px;background:linear-gradient(145deg,#6239bb,#412390);color:#fff;font-size:20px;font-weight:500}.reviews-grid blockquote:nth-child(2) footer>span{background:linear-gradient(145deg,#a928bd,#771695)}.reviews-grid blockquote:nth-child(3) footer>span{background:linear-gradient(145deg,#0cae99,#007d72)}.reviews-grid blockquote footer strong{font-size:13px}.reviews-grid blockquote footer small{font-size:10px}.review-arrow{position:absolute;z-index:4;top:50%;width:47px;height:47px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--gold);color:var(--ink);box-shadow:0 10px 22px rgba(16,17,20,.18);cursor:pointer;font-size:24px;transform:translateY(-50%);transition:transform .22s ease,background .22s ease}.review-arrow:hover{background:var(--gold-2);transform:translateY(-50%) scale(1.08)}.review-prev{left:-23px}.review-next{right:-23px}.review-action{margin-top:22px;text-align:center}.review-action .button{min-width:225px;border:1px solid #d38f00;text-transform:uppercase}.review-action p{margin:13px 0 0;color:#6b6e74;font-size:10px}
.site-footer.luxury-footer{padding:74px 0 0;background:#0d0e10}.luxury-footer-grid{display:grid;grid-template-columns:1.45fr 1fr .95fr .9fr;gap:clamp(40px,6vw,88px);padding-bottom:65px}.luxury-footer-grid>div{display:flex;flex-direction:column;align-items:flex-start;gap:14px}.luxury-footer-grid .footer-company{gap:0}.footer-company .brand{margin:0 0 22px}.footer-company>p{max-width:335px;margin:0 0 24px;color:#9a9da3;font-size:12px;line-height:1.8}.footer-detail{display:flex;align-items:center;gap:12px;min-height:38px;color:#aeb1b8;font-size:11px}.footer-detail>span{width:32px;height:32px;display:grid;place-items:center;border-radius:7px;background:rgba(245,174,18,.1);color:var(--gold)}.footer-socials{display:flex;gap:9px;margin-top:17px}.footer-socials a{width:38px;height:38px;display:grid;place-items:center;border:1px solid #33363c;border-radius:7px;background:#17191d;color:#fff;font-weight:900;transition:border-color .2s ease,color .2s ease,transform .2s ease}.footer-socials a:hover{transform:translateY(-3px);border-color:var(--gold);color:var(--gold)}.luxury-footer-grid h3{margin:7px 0 17px;color:#fff;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.luxury-footer-grid>div:not(.footer-company) a{color:#9da0a7;font-size:11px;line-height:1.45;transition:color .2s ease,transform .2s ease}.luxury-footer-grid>div:not(.footer-company) a:hover{color:var(--gold);transform:translateX(4px)}.luxury-footer .footer-bottom{align-items:center;min-height:76px;padding:22px 0}.luxury-footer .footer-bottom>span:last-child{display:flex;gap:25px}.luxury-footer .footer-bottom a:hover{color:var(--gold)}
.footer-company .footer-brand .custom-logo-link { height: auto; }
.footer-company .footer-brand .custom-logo-link img { width: auto; max-width: 220px; max-height: 72px; object-fit: contain; }
@media(min-width:1021px){.reviews-grid{grid-auto-columns:calc((100% - 48px)/3)}}
@media(max-width:1180px){.site-header .nav-wrap{gap:18px}.site-header .nav-links{gap:17px}.site-header .nav-links a{font-size:12px}.site-header .brand{min-width:176px}.header-cta{padding-inline:17px}}
@media(max-width:1020px){.site-header .brand{min-width:0}.luxury-footer-grid{grid-template-columns:1.35fr 1fr 1fr}.luxury-footer-grid>div:last-child{grid-column:2/4}.review-prev{left:-10px}.review-next{right:-10px}}
@media(max-width:720px){.site-header .nav-wrap{width:min(100% - 28px,1280px);min-height:72px}.site-header .brand{align-self:auto}.site-header .brand-mark{width:42px;height:42px}.site-header .brand-copy strong{font-size:18px}.site-header .brand-copy small{font-size:8px}.cinematic-grid .hero-copy h1{font-size:clamp(42px,12vw,58px);line-height:.98}.fleet-card>img{height:250px}.booking-vehicle-grid .vehicle-art{width:94px;height:70px}.reviews-grid{grid-auto-columns:min(88vw,345px);margin-inline:-8px;padding-inline:8px}.review-arrow{width:42px;height:42px}.review-prev{left:-6px}.review-next{right:-6px}.luxury-footer-grid{grid-template-columns:1fr 1fr;gap:48px 28px}.luxury-footer-grid .footer-company{grid-column:1/-1}.luxury-footer-grid>div:last-child{grid-column:auto}}
@media(max-width:480px){.reviews-section{padding:78px 0 84px}.reviews-head h2{font-size:37px}.reviews-head .rating{gap:7px;padding:12px 14px}.reviews-head .rating small{font-size:9px}.reviews-grid blockquote{min-height:310px;padding:27px 25px}.luxury-footer-grid{grid-template-columns:1fr}.luxury-footer-grid>div:last-child{grid-column:auto}.luxury-footer .footer-bottom{align-items:flex-start;flex-direction:column;padding-bottom:112px}.luxury-footer .footer-bottom>span:last-child{gap:17px}}

/* Mobile stability, navigation drawer and refined typography */
html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

@supports (overflow: clip) {
  html,
  body { overflow-x: clip; }
}

body {
  font-family: "Avenir Next", "Segoe UI", Inter, Helvetica, Arial, sans-serif;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}

body.menu-open { overflow: hidden; }
button,
input,
select,
textarea { font-family: inherit; }
img,
video { max-width: 100%; height: auto; }
iframe { max-width: 100%; }
main,
.site-header,
.site-footer,
main > section { width: 100%; max-width: 100%; }
.booking-engine-section,
.reviews-section,
.fleet-section,
.areas-section,
.difference-section { overflow-x: clip; }
.hero-grid > *,
.service-grid > *,
.fleet-grid > *,
.trusted-grid > *,
.areas-grid > *,
.booking-step-grid > *,
.booking-field-grid > *,
.luxury-footer-grid > *,
.footer-bottom > * { min-width: 0; }
p,
a,
strong,
small,
h1,
h2,
h3,
h4 { overflow-wrap: break-word; }
h1,
h2,
h3,
h4,
.panel-title h3,
.booking-heading h2,
.section-heading h2,
.trusted-copy h2,
.route-planner-copy h2,
.faq-intro h2 {
  font-family: Georgia, "Times New Roman", serif;
  text-wrap: balance;
}
.section-heading h2,
.trusted-copy h2,
.route-planner-copy h2,
.booking-heading h2,
.faq-intro h2 { line-height: 1.08; letter-spacing: -.035em; }
.section-heading p,
.trusted-copy p,
.booking-heading p,
.service-body p,
.fleet-body p { line-height: 1.72; }
.eyebrow { letter-spacing: .14em; }

.mobile-only,
.mobile-menu-head,
.mobile-menu-actions,
.mobile-menu-overlay,
.nav-icon,
.nav-tail,
.nav-badge { display: none; }

.booking-workspace,
.booking-form,
.booking-step,
.booking-step-grid,
.booking-panel,
.booking-addresses,
.address-field,
.address-input-shell,
.booking-map-card,
.booking-vehicle-grid,
.contact-step-grid { width: 100%; max-width: 100%; min-width: 0; }
.address-field input,
.booking-field-grid input,
.booking-field-grid select,
.booking-field-grid textarea { min-width: 0; }
.booking-workspace .address-suggestions {
  max-height: 260px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.booking-workspace .address-suggestions strong,
.booking-workspace .address-suggestions small { white-space: normal; line-height: 1.35; }
.address-help {
  margin: 9px 2px 0;
  color: #777a80;
  font-size: 10px;
  line-height: 1.5;
}
.route-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.reviews-carousel { width: 100%; max-width: 100%; overflow: hidden; }
.luxury-footer .footer-bottom > span:last-child { flex-wrap: wrap; }
.footer-detail { max-width: 100%; overflow-wrap: anywhere; }

@media (max-width: 860px) {
  .site-header { z-index: 150; }
  .site-header .nav-wrap {
    width: calc(100% - 28px);
    max-width: 100%;
    min-height: 70px;
    gap: 12px;
  }
  .site-header .brand {
    min-width: 0;
    max-width: calc(100% - 58px);
    margin-right: auto;
  }
  .site-header .custom-logo-link,
  .site-header .custom-brand { max-width: 100%; min-width: 0; }
  .site-header .custom-logo-link img {
    width: auto;
    max-width: min(190px, 58vw);
    max-height: 52px;
  }
  .site-header .nav-actions { display: none; }
  .site-header .menu-button {
    position: relative;
    z-index: 172;
    width: 44px;
    height: 44px;
    display: block;
    flex: 0 0 44px;
    order: 3;
    padding: 10px;
    border: 1px solid #e1e1dd;
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
  }
  .site-header .menu-button > span:not(.sr-only) {
    width: 20px;
    height: 2px;
    margin: 4px auto;
    border-radius: 99px;
  }
  .mobile-menu-overlay {
    position: fixed;
    z-index: 160;
    inset: 0;
    display: block;
    border: 0;
    background: rgba(7, 10, 15, .52);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .25s ease, visibility .25s ease;
  }
  .mobile-menu-overlay.open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  .site-header .nav-links {
    position: fixed;
    z-index: 170;
    top: 0;
    right: 0;
    bottom: 0;
    left: auto;
    width: min(92vw, 380px);
    height: 100dvh;
    display: flex;
    align-items: stretch;
    flex-direction: column;
    gap: 0;
    padding: 0 22px max(30px, env(safe-area-inset-bottom));
    border: 0;
    background: #fff;
    box-shadow: -22px 0 60px rgba(6, 9, 14, .2);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    opacity: 0;
    visibility: hidden;
    transform: translate3d(102%, 0, 0);
    transition: transform .3s cubic-bezier(.22, 1, .36, 1), opacity .2s ease, visibility .3s ease;
  }
  .site-header .nav-links.open {
    display: flex;
    opacity: 1;
    visibility: visible;
    transform: translate3d(0, 0, 0);
  }
  .mobile-menu-head {
    min-height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex: 0 0 auto;
    order: 0;
    border-bottom: 1px solid #e5e5e1;
  }
  .mobile-menu-head strong {
    font-size: 12px;
    letter-spacing: .14em;
    text-transform: uppercase;
  }
  .mobile-menu-close {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    padding: 0 0 3px;
    border: 1px solid #dcddd9;
    border-radius: 50%;
    background: #fff;
    color: #191a1e;
    cursor: pointer;
    font-size: 27px;
    font-weight: 300;
    line-height: 1;
  }
  .site-header .nav-links a {
    min-height: 54px;
    display: flex;
    align-items: center;
    gap: 13px;
    flex: 0 0 auto;
    padding: 9px 10px;
    border: 0;
    border-bottom: 1px solid #eeeeea;
    color: #222329;
    font-size: 15px;
    font-weight: 650;
    line-height: 1.25;
  }
  .site-header .nav-links a::after { display: none; }
  .site-header .nav-links a:hover { color: #111214; background: #faf9f5; }
  .site-header .nav-links a.mobile-only { display: flex; }
  .site-header .nav-links span.mobile-only,
  .site-header .nav-links small.mobile-only { display: inline-flex; }
  .site-header .nav-links .desktop-only { display: none; }
  .site-header .nav-icon {
    width: 21px;
    display: inline-grid;
    place-items: center;
    flex: 0 0 21px;
    color: #e29a00;
    font-size: 20px;
    font-weight: 500;
  }
  .site-header .nav-label { min-width: 0; }
  .site-header .nav-tail { margin-left: auto; color: #17181c; }
  .site-header .nav-badge {
    margin-left: auto;
    color: #c48300;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  .site-header .nav-links .fare-menu-item {
    margin: 5px 0;
    border: 1px solid #f0ab18;
    border-radius: 11px;
    background: #fff7e4;
    font-weight: 800;
  }
  .site-header .menu-home { order: 1; }
  .site-header .menu-services { order: 2; }
  .site-header .fare-menu-item { order: 3; }
  .site-header .menu-areas { order: 4; }
  .site-header .menu-fleet { order: 5; }
  .site-header .menu-contact { order: 6; }
  .mobile-menu-actions {
    display: block;
    flex: 0 0 auto;
    order: 10;
    padding-top: 22px;
  }
  .site-header .nav-links .mobile-book-cta {
    min-height: 52px;
    justify-content: center;
    gap: 10px;
    padding: 0 18px;
    border: 0;
    border-radius: 10px;
    background: #111217;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 17px;
    font-weight: 700;
  }
  .site-header .nav-links .mobile-book-cta span { color: var(--gold); }
  .mobile-menu-contacts {
    display: grid;
    gap: 3px;
    margin-top: 17px;
    padding-top: 12px;
    border-top: 1px solid #ecece8;
  }
  .site-header .nav-links .mobile-menu-contacts a {
    min-height: 57px;
    padding: 8px 9px;
    border: 0;
  }
  .menu-contact-icon {
    width: 25px;
    display: grid;
    place-items: center;
    flex: 0 0 25px;
    color: #17181c;
    font-size: 18px;
  }
  .menu-contact-icon.whatsapp { color: #0caf53; }
  .mobile-menu-contacts a > span:last-child { min-width: 0; }
  .mobile-menu-contacts strong,
  .mobile-menu-contacts small { display: block; }
  .mobile-menu-contacts strong { font-size: 14px; }
  .mobile-menu-contacts small {
    margin-top: 2px;
    color: #7c7e84;
    font-size: 10px;
    font-weight: 500;
    overflow-wrap: anywhere;
  }
  body.admin-bar .site-header .nav-links {
    top: 46px;
    height: calc(100dvh - 46px);
  }
}

@media (max-width: 620px) {
  .shell,
  .site-header .nav-wrap { width: calc(100% - 28px); }
  .topline { font-size: 10px; }
  .topline-inner { min-height: 32px; text-align: center; }
  .hero,
  .cinematic-grid { min-height: 560px; }
  .cinematic-grid { padding: 46px 0 68px; }
  .cinematic-grid .hero-copy h1 {
    max-width: 100%;
    font-size: clamp(39px, 11.5vw, 52px);
    line-height: 1;
    letter-spacing: -.045em;
  }
  .cinematic-grid .hero-copy > p { font-size: 15px; }
  .cinematic-grid .hero-proof { width: 100%; }
  .section-heading h2,
  .trusted-copy h2,
  .route-planner-copy h2,
  .booking-heading h2,
  .faq-intro h2 { font-size: clamp(34px, 9.5vw, 43px); }
  .booking-engine-section { padding: 70px 0 88px; }
  .booking-engine-section::before { display: none; }
  .booking-workspace {
    margin-top: 28px;
    padding: 0 6px 10px;
    border-radius: 16px;
  }
  .booking-workspace .booking-progress {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0 -6px;
    padding: 10px 4px;
  }
  .booking-workspace .booking-progress button {
    width: 100%;
    min-width: 0;
    padding: 5px 1px;
  }
  .booking-workspace .booking-progress button strong {
    width: 100%;
    max-width: 88px;
    overflow-wrap: anywhere;
    white-space: normal;
  }
  .booking-step-status { margin-inline: 4px; }
  .booking-panel { padding: 21px 13px; }
  .panel-title { gap: 12px; }
  .panel-title > span { width: 42px; height: 42px; flex-basis: 42px; }
  .panel-title h3 { font-size: 27px; }
  .booking-addresses { padding: 10px; }
  .address-field > label,
  .booking-field-grid label > span { font-size: 8px; }
  .address-field .address-input-shell input,
  .booking-field-grid input,
  .booking-field-grid select,
  .booking-field-grid textarea { font-size: 16px; }
  .booking-field-grid,
  .booking-vehicle-grid,
  .booking-extras { grid-template-columns: minmax(0, 1fr); }
  .booking-workspace .address-suggestions { max-height: 220px; }
  .booking-workspace .address-suggestions > button {
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 8px;
    padding: 9px 8px;
  }
  .booking-workspace .address-suggestions strong { font-size: 12px; }
  .booking-workspace .address-suggestions small { font-size: 10px; }
  .swap-route { right: 13px; }
  .booking-map-card iframe { height: 260px; }
  .map-toolbar { gap: 8px; padding: 0 12px; }
  .map-toolbar > span { min-width: 0; font-size: 8px; }
  .map-toolbar a { flex: 0 0 auto; font-size: 8px; }
  .route-metrics { padding: 7px 3px; }
  .route-metrics > div { min-width: 0; padding: 7px 3px; }
  .route-metrics span { font-size: 6px; line-height: 1.35; }
  .route-metrics strong { font-size: 12px; }
  .booking-vehicle-grid > label {
    grid-template-columns: 86px minmax(0, 1fr);
    gap: 11px;
    padding: 12px;
  }
  .booking-vehicle-grid .vehicle-art { width: 86px; height: 66px; }
  .booking-vehicle-grid label > i { grid-column: 2; }
  .vehicle-fare-bar { padding: 17px; }
  .booking-next,
  .booking-nav { position: static; }
  .booking-nav { margin: 20px 0 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
  .reviews-head { align-items: center; text-align: center; }
  .reviews-head .rating { max-width: 100%; flex-wrap: wrap; justify-content: center; }
  .reviews-carousel { padding: 0 2px; }
  .reviews-grid {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: calc(100% - 4px);
    gap: 12px;
    margin-inline: 0;
    padding: 4px 0 14px;
  }
  .review-arrow { width: 40px; height: 40px; }
  .review-prev { left: 5px; }
  .review-next { right: 5px; }
  .luxury-footer-grid { grid-template-columns: minmax(0, 1fr); gap: 38px; }
  .luxury-footer-grid .footer-company,
  .luxury-footer-grid > div:last-child { grid-column: auto; }
  .luxury-footer .footer-bottom > span:last-child { gap: 13px 18px; }
  .mobile-dock {
    width: calc(100% - 20px);
    max-width: 470px;
    grid-template-columns: 52px minmax(0, 1fr) 46px 46px;
    gap: 6px;
  }
}

@media (max-width: 390px) {
  .site-header .custom-logo-link img { max-width: 164px; }
  .footer-company .footer-brand,
  .footer-company .footer-brand .custom-logo-link { max-width: 100%; }
  .footer-company .footer-brand .custom-logo-link img { max-width: min(200px,100%); max-height: 64px; }
  .site-header .nav-links { width: 94vw; padding-inline: 18px; }
  .cinematic-grid .hero-copy h1 { font-size: 38px; }
  .cinematic-grid .hero-proof { grid-template-columns: 1fr; gap: 13px; text-align: center; }
  .cinematic-grid .hero-proof div,
  .cinematic-grid .hero-proof div:first-child,
  .cinematic-grid .hero-proof div:last-child { padding: 0; border: 0; }
  .booking-workspace .booking-progress button strong { font-size: 6px; }
  .booking-vehicle-grid > label { grid-template-columns: 74px minmax(0, 1fr); }
  .booking-vehicle-grid .vehicle-art { width: 74px; height: 60px; }
  .mobile-dock { grid-template-columns: 46px minmax(0, 1fr) 43px 43px; }
  .dock-call { font-size: 12px; }
}

/* v1.7 — instant address picker, current location and non-sticky mobile header */
.booking-addresses {
  gap: 14px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.booking-addresses::before,
.booking-workspace .booking-addresses::before,
.address-state,
.swap-route { display: none; }
.address-field > label {
  display: flex;
  align-items: center;
  margin: 0 0 7px;
  color: #111216;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: -.01em;
  line-height: 1.3;
  text-transform: none;
}
.address-field > label small { display: none; }
.address-field:focus-within { z-index: 35; }
.address-input-shell { position: relative; }
.address-field .address-input-shell input {
  height: 52px;
  padding: 0 14px;
  border: 1px solid #d9dce2;
  border-radius: 9px;
  background: #fff;
  box-shadow: none;
  color: #202228;
  font-size: 14px;
}
.address-field .address-input-shell input::placeholder { color: #777b84; opacity: 1; }
.address-field .address-input-shell input:focus {
  border-color: #e5a000;
  box-shadow: 0 0 0 4px rgba(245,174,18,.14);
}
.address-field .has-location-button input { padding-right: 60px; }
.current-location-button {
  position: absolute;
  z-index: 4;
  top: 50%;
  right: 5px;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid #f2dfb5;
  border-radius: 9px;
  background: #fff4d9;
  color: #d28d00;
  cursor: pointer;
  transform: translateY(-50%);
  transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.current-location-button:hover {
  background: #ffe9ae;
  box-shadow: 0 7px 18px rgba(194,128,0,.16);
  transform: translateY(-50%) scale(1.03);
}
.current-location-button:focus-visible { outline: 3px solid rgba(245,174,18,.3); outline-offset: 2px; }
.current-location-button:disabled { cursor: wait; opacity: .72; }
.location-target {
  position: relative;
  width: 15px;
  height: 15px;
  display: block;
  border: 2px solid currentColor;
  border-radius: 50%;
}
.location-target::before {
  content: "";
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  background: currentColor;
}
.location-target::after {
  content: "";
  position: absolute;
  top: -5px;
  right: -5px;
  bottom: -5px;
  left: -5px;
  border: 1px solid currentColor;
  border-color: currentColor transparent;
  border-radius: 50%;
  opacity: .5;
}
.current-location-button.loading .location-target::after { animation: locationSpin .7s linear infinite; }
@keyframes locationSpin { to { transform: rotate(360deg); } }
.address-provider-note {
  display: block;
  margin: 7px 2px 0;
  color: #8a8c91;
  font-size: 8px;
  line-height: 1.4;
}
.address-provider-note a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.location-status {
  margin: 10px 1px 0;
  padding: 9px 11px;
  border-radius: 8px;
  background: #f4f5f5;
  color: #53565d;
  font-size: 10px;
  line-height: 1.45;
}
.location-status[data-status="success"] { background: #eef8f1; color: #246a3b; }
.location-status[data-status="error"] { background: #fff0ec; color: #99412d; }
.booking-workspace .address-suggestions {
  top: calc(100% + 6px);
  padding: 5px;
  border-color: #d9dce2;
  border-radius: 9px;
  box-shadow: 0 18px 42px rgba(16,17,20,.16);
}
.booking-workspace .address-suggestions > button {
  min-height: 48px;
  border-radius: 7px;
}
.booking-workspace .address-suggestions > button.manual-address {
  border-top: 1px solid #ecece8;
  background: #fffaf0;
}
.booking-workspace .address-suggestions > button:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: -2px;
}

@media (max-width: 860px) {
  html { scroll-padding-top: 0; }
  .site-header,
  body.admin-bar .site-header {
    position: relative;
    top: auto !important;
  }
}

@media (max-width: 620px) {
  .booking-addresses { padding: 0; }
  .address-field > label { font-size: 13px; }
  .address-field .address-input-shell input { height: 52px; font-size: 16px; }
  .current-location-button { width: 42px; height: 42px; }
}

@media (prefers-reduced-motion: reduce) {
  .current-location-button.loading .location-target::after { animation: none; }
}

/* Complete-site inner pages, service template and editorial system */
.skip-link:focus { z-index: 1000; top: 10px; left: 10px; width: auto; height: auto; padding: 12px 16px; clip: auto; background: #fff; color: #111; box-shadow: 0 8px 30px rgba(0,0,0,.25); }
.inner-hero { position: relative; overflow: hidden; padding: 86px 0; background: radial-gradient(circle at 75% 20%, rgba(245,174,18,.17), transparent 32%), linear-gradient(135deg,#0c0d10 0%,#17191e 100%); color: #fff; }
.inner-hero-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(380px,.8fr); gap: 70px; align-items: center; }
.inner-hero h1,.inner-title h1 { max-width: 800px; margin: 21px 0 22px; color: #fff; font-size: clamp(45px,5vw,72px); font-weight: 500; line-height: 1; letter-spacing: -.045em; }
.inner-hero p,.inner-title p { max-width: 680px; margin: 0; color: #c9cbd0; font-size: 17px; line-height: 1.75; }
.inner-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.inner-hero-image { position: relative; overflow: hidden; aspect-ratio: 4/3; border: 1px solid rgba(255,255,255,.17); border-radius: 18px; box-shadow: 0 35px 80px rgba(0,0,0,.36); }
.inner-hero-image::after { content: ""; position: absolute; inset: 0; border: 1px solid rgba(245,174,18,.28); border-radius: inherit; pointer-events: none; }
.inner-hero-image img { width: 100%; height: 100%; object-fit: cover; }
.compact-inner-hero { min-height: 500px; display: grid; place-items: center; }
.inner-title { text-align: center; }
.inner-title .eyebrow { justify-content: center; }
.inner-title h1,.inner-title p { margin-right: auto; margin-left: auto; }
.inner-section { padding: 100px 0; }
.story-grid { display: grid; grid-template-columns: minmax(0,.7fr) minmax(0,1fr); gap: 90px; align-items: start; }
.story-grid h2,.contact-details h2,.contact-form-card h2,.about-proof h2 { margin: 18px 0 0; font-size: clamp(38px,4.5vw,60px); font-weight: 500; line-height: 1.05; letter-spacing: -.04em; }
.prose p,.article-content p { margin: 0 0 1.35em; color: #55585f; font-size: 17px; line-height: 1.82; }
.values-section { background: var(--soft); }
.values-section .section-heading,.service-extras .section-heading { margin: 0 auto; }
.value-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; margin-top: 48px; }
.value-grid article { min-height: 230px; padding: 30px; border: 1px solid #deded9; border-radius: 12px; background: #fff; transition: transform .25s ease,border-color .25s ease,box-shadow .25s ease; }
.value-grid article:hover { transform: translateY(-6px); border-color: rgba(245,174,18,.75); box-shadow: 0 22px 46px rgba(16,17,20,.09); }
.value-grid article>span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: #fff3d2; color: #825b00; font-size: 13px; font-weight: 900; }
.value-grid h3 { margin: 24px 0 11px; font-size: 22px; }
.value-grid p { margin: 0; color: #686b71; font-size: 14px; line-height: 1.7; }
.about-proof { background: #101216; color: #fff; }
.about-proof-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(420px,.78fr); gap: 80px; align-items: center; }
.about-proof h2 { max-width: 680px; }
.about-proof p { max-width: 650px; margin: 20px 0 30px; color: #bfc1c7; line-height: 1.75; }
.about-stat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; overflow: hidden; border: 1px solid #33363c; border-radius: 14px; background: #33363c; }
.about-stat-grid article { min-height: 160px; display: flex; align-items: center; justify-content: center; flex-direction: column; background: #181a1f; text-align: center; }
.about-stat-grid strong { color: var(--gold); font-family: Georgia,serif; font-size: 39px; }
.about-stat-grid span { margin-top: 8px; color: #aaadb4; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }

.services-page-section { background: #f5f5f2; }
.services-page-grid { display: grid; gap: 28px; }
.service-page-card { display: grid; grid-template-columns: minmax(320px,.9fr) minmax(0,1.1fr); overflow: hidden; border: 1px solid #deded9; border-radius: 15px; background: #fff; box-shadow: 0 18px 45px rgba(16,17,20,.055); }
.service-page-card:nth-child(even) .service-page-image { order: 2; }
.service-page-image { min-height: 390px; overflow: hidden; }
.service-page-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.22,1,.36,1); }
.service-page-card:hover .service-page-image img { transform: scale(1.035); }
.service-page-content { display: flex; align-items: flex-start; justify-content: center; flex-direction: column; padding: clamp(34px,5vw,66px); }
.service-page-content>small { color: #8b6200; font-size: 10px; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.service-page-content h2 { margin: 14px 0 16px; font-size: clamp(31px,3.3vw,46px); line-height: 1.05; }
.service-page-content p { margin: 0; color: #5e6167; line-height: 1.75; }
.service-page-content ul { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 22px 0; padding: 0; list-style: none; }
.service-page-content li { color: #45484e; font-size: 12px; font-weight: 700; }
.service-page-content li::first-letter { color: #b77900; }
.service-page-content>a { padding-bottom: 5px; border-bottom: 2px solid var(--gold); color: #704f00; font-size: 12px; font-weight: 900; text-transform: uppercase; }

.contact-page { background: #f4f4f1; }
.contact-page-grid { display: grid; grid-template-columns: minmax(330px,.7fr) minmax(0,1fr); gap: 65px; align-items: start; }
.contact-details { padding-top: 24px; }
.contact-details>p { margin: 22px 0 28px; color: #60636a; line-height: 1.75; }
.contact-details>a { display: flex; align-items: center; gap: 16px; padding: 18px 0; border-top: 1px solid #d9d9d5; }
.contact-details>a>span { width: 44px; height: 44px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: #fff1c9; color: #8a6100; }
.contact-details>a small,.contact-details>a strong { display: block; }
.contact-details>a small { color: #7d8086; font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.contact-details>a strong { margin-top: 3px; font-size: 15px; overflow-wrap: anywhere; }
.contact-note { margin-top: 30px; padding: 22px; border-left: 3px solid var(--gold); border-radius: 0 8px 8px 0; background: #fff; }
.contact-note p { margin: 6px 0 0; color: #65686d; font-size: 12px; line-height: 1.65; }
.contact-form-card { padding: clamp(28px,5vw,60px); border: 1px solid #deded9; border-radius: 17px; background: #fff; box-shadow: 0 30px 75px rgba(16,17,20,.1); }
.contact-form-card>small { color: #8b6200; font-size: 10px; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.contact-form-card h2 { margin-top: 10px; }
.contact-form { margin-top: 30px; }
.contact-honeypot { position: absolute!important; left: -9999px!important; }
.contact-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.contact-field-grid label { min-width: 0; }
.contact-field-grid label>span { display: block; margin-bottom: 7px; color: #45474d; font-size: 11px; font-weight: 800; }
.contact-field-grid input,.contact-field-grid select,.contact-field-grid textarea { width: 100%; min-width: 0; padding: 13px 14px; border: 1px solid #d7d7d3; border-radius: 7px; background: #fafaf8; color: #17191d; font-size: 16px; outline: none; }
.contact-field-grid input,.contact-field-grid select { height: 50px; }
.contact-field-grid textarea { resize: vertical; }
.contact-field-grid input:focus,.contact-field-grid select:focus,.contact-field-grid textarea:focus { border-color: #d89a09; box-shadow: 0 0 0 4px rgba(245,174,18,.13); }
.contact-form .button { margin-top: 22px; }
.contact-form>p { margin: 12px 0 0; color: #7a7c82; font-size: 10px; }
.form-message { margin: 22px 0; padding: 13px 15px; border-radius: 7px; font-size: 13px; line-height: 1.55; }
.form-message.success { background: #eaf8ef; color: #20703c; }
.form-message.error { background: #fff0ec; color: #9b301b; }

.blog-hero { min-height: 480px; display: grid; place-items: center; }
.blog-index { background: #f5f5f2; }
.blog-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.blog-card { overflow: hidden; border: 1px solid #deded9; border-radius: 12px; background: #fff; box-shadow: 0 18px 42px rgba(16,17,20,.055); transition: transform .25s ease,box-shadow .25s ease; }
.blog-card:hover { transform: translateY(-6px); box-shadow: 0 28px 55px rgba(16,17,20,.11); }
.blog-card-image { position: relative; display: block; overflow: hidden; aspect-ratio: 760/460; background: #ddd; }
.blog-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.blog-card:hover .blog-card-image img { transform: scale(1.035); }
.blog-card-image>span { position: absolute; right: 14px; bottom: 14px; padding: 7px 10px; border-radius: 999px; background: rgba(13,14,16,.88); color: #fff; font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.blog-card-content { padding: 27px 26px 30px; }
.post-meta { color: #8b6200; font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.blog-card h2 { margin: 13px 0 11px; font-size: 25px; line-height: 1.15; }
.blog-card p { margin: 0 0 21px; color: #686b71; font-size: 13px; line-height: 1.7; }
.blog-read { display: inline-flex; gap: 8px; padding-bottom: 4px; border-bottom: 2px solid var(--gold); color: #745300; font-size: 10px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.blog-pagination { margin-top: 48px; }
.blog-pagination .nav-links { display: flex; align-items: center; justify-content: center; gap: 7px; }
.blog-pagination .page-numbers { min-width: 42px; height: 42px; display: grid; place-items: center; padding: 0 12px; border: 1px solid #d8d8d3; border-radius: 6px; background: #fff; font-size: 12px; font-weight: 800; }
.blog-pagination .page-numbers.current { border-color: var(--gold); background: var(--gold); }
.empty-state { max-width: 720px; margin: 0 auto; padding: 60px; border: 1px solid #deded9; border-radius: 15px; background: #fff; text-align: center; }
.empty-state h2 { margin: 0 0 12px; font-size: 42px; }
.empty-state p { margin: 0 0 25px; color: #686b71; }

.single-post-header { padding: 92px 0 70px; background: #101216; color: #fff; }
.single-post-heading { max-width: 940px; text-align: center; }
.post-back { display: inline-block; margin-bottom: 24px; color: #d7a32e; font-size: 11px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.single-post-header h1 { margin: 18px 0 20px; font-size: clamp(45px,5.5vw,75px); font-weight: 500; line-height: 1; letter-spacing: -.045em; }
.single-post-header p { max-width: 720px; margin: 0 auto; color: #c5c7cc; font-size: 17px; line-height: 1.7; }
.single-post-layout,.default-page-layout { display: grid; grid-template-columns: minmax(0,760px) minmax(280px,340px); gap: 75px; align-items: start; padding-top: 80px; padding-bottom: 100px; }
.single-featured,.default-featured { overflow: hidden; margin: 0 0 40px; border-radius: 14px; box-shadow: 0 24px 55px rgba(16,17,20,.11); }
.single-featured img,.default-featured img { width: 100%; height: auto; display: block; }
.article-content h2 { margin: 1.55em 0 .55em; font-size: clamp(31px,3.3vw,43px); line-height: 1.08; }
.article-content h3 { margin: 1.5em 0 .55em; font-size: 27px; }
.article-content ul,.article-content ol { margin: 0 0 1.5em; padding-left: 1.35em; color: #55585f; font-size: 17px; line-height: 1.75; }
.article-content a { color: #765400; text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 3px; }
.article-content blockquote { margin: 35px 0; padding: 25px 30px; border-left: 4px solid var(--gold); background: #f5f5f2; color: #313339; font-family: Georgia,serif; font-size: 20px; line-height: 1.6; }
.article-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 50px; padding-top: 24px; border-top: 1px solid #deded9; color: #66696f; font-size: 12px; }
.article-footer a { color: #765400; font-weight: 800; }
.article-sidebar,.default-page-sidebar { position: sticky; top: 112px; }
.sidebar-booking { padding: 29px; border-radius: 13px; background: #15171b; color: #fff; box-shadow: 0 23px 55px rgba(16,17,20,.18); }
.sidebar-booking>small { color: var(--gold); font-size: 9px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.sidebar-booking h2 { margin: 12px 0 14px; font-size: 31px; line-height: 1.08; }
.sidebar-booking p { margin: 0 0 22px; color: #b7bac0; font-size: 12px; line-height: 1.65; }
.sidebar-booking .button { width: 100%; }
.sidebar-phone,.sidebar-text-link { display: block; margin-top: 15px; color: #fff; font-size: 13px; font-weight: 800; text-align: center; }
.sidebar-call { display: block; margin: 20px 0 12px; padding: 13px 15px; border-radius: 8px; background: #25272c; }
.sidebar-call span,.sidebar-call strong { display: block; }
.sidebar-call span { color: #aeb1b7; font-size: 9px; letter-spacing: .09em; text-transform: uppercase; }
.sidebar-call strong { margin-top: 3px; font-size: 18px; }
.sidebar-links { display: grid; gap: 0; margin-top: 20px; padding: 24px; border: 1px solid #deded9; border-radius: 11px; background: #fff; }
.sidebar-links>strong { margin-bottom: 9px; font-size: 12px; text-transform: uppercase; }
.sidebar-links a { padding: 11px 0; border-top: 1px solid #ecece8; color: #62656b; font-size: 12px; }
.comments-area { margin-top: 70px; padding-top: 40px; border-top: 1px solid #deded9; }
.comment-list { padding: 0; list-style: none; }
.comment-list li { margin: 20px 0; padding: 20px; border: 1px solid #deded9; border-radius: 9px; }
.comment-form label { display: block; margin-bottom: 6px; font-size: 12px; font-weight: 800; }
.comment-form input,.comment-form textarea { width: 100%; padding: 12px; border: 1px solid #d7d7d3; border-radius: 6px; font-size: 16px; }
.comment-form .submit { min-height: 48px; padding: 0 22px; border: 0; border-radius: 6px; background: var(--gold); font-weight: 900; cursor: pointer; }

.default-page-hero { padding: 82px 0 65px; border-bottom: 1px solid #deded9; background: linear-gradient(135deg,#f7f7f4,#fff); }
.default-page-hero h1 { max-width: 900px; margin: 19px 0 0; font-size: clamp(44px,5vw,68px); font-weight: 500; line-height: 1; letter-spacing: -.04em; }
.default-page-content:empty::before { content: "Add your page content in the WordPress editor."; display: block; padding: 25px; border: 1px dashed #ccc; color: #777; }

.service-detail-page { padding: 72px 0 100px; }
.service-detail-grid { display: grid; grid-template-columns: minmax(0,820px) minmax(250px,300px); gap: 55px; align-items: start; }
.service-detail-intro { margin-bottom: 32px; padding-left: 19px; border-left: 4px solid var(--gold); }
.service-detail-intro h1,.service-detail-intro h2 { margin: 13px 0 17px; font-size: clamp(34px,3.8vw,50px); font-weight: 600; line-height: 1.05; letter-spacing: -.035em; }
.service-detail-intro p { margin: 0 0 14px; color: #55585f; font-size: 16px; line-height: 1.72; }
.airport-feature-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; }
.airport-feature-grid article { min-height: 190px; padding: 21px; border: 1px solid #deded9; border-radius: 10px; background: #fff; }
.airport-feature-grid article>span { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 8px; background: #17191d; color: var(--gold); font-weight: 900; }
.airport-feature-grid h2 { margin: 17px 0 8px; font-family: inherit; font-size: 15px; line-height: 1.25; }
.airport-feature-grid p { margin: 0; color: #6a6d73; font-size: 11px; line-height: 1.65; }
.terminal-strip { display: flex; gap: 18px; margin: 27px 0 40px; padding: 26px; border-radius: 12px; background: #17191d; color: #fff; }
.terminal-strip>span { width: 42px; height: 42px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 9px; background: rgba(245,174,18,.14); color: var(--gold); }
.terminal-strip h2 { margin: 0 0 5px; font-family: inherit; font-size: 17px; }
.terminal-strip p { margin: 0; color: #bfc1c6; font-size: 11px; line-height: 1.6; }
.terminal-strip ul { display: flex; flex-wrap: wrap; gap: 9px 22px; margin: 17px 0 0; padding: 0; list-style: none; color: #dddfe4; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.detail-content-section { margin-top: 45px; }
.detail-content-section>h2 { margin: 0 0 16px; padding-left: 14px; border-left: 3px solid var(--gold); font-size: clamp(31px,3.2vw,43px); line-height: 1.06; }
.detail-content-section>p { color: #55585f; font-size: 15px; line-height: 1.75; }
.pickup-step-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 23px; }
.pickup-step-grid article { padding: 20px; border-top: 3px solid var(--gold); border-radius: 7px; background: #f2f2f0; }
.pickup-step-grid strong { font-size: 12px; }
.pickup-step-grid p { margin: 8px 0 0; color: #666970; font-size: 11px; line-height: 1.6; }
.delay-note { margin-top: 12px; padding: 18px 20px; border-radius: 7px; background: #f2f2f0; }
.delay-note strong { font-size: 12px; }
.delay-note p { margin: 5px 0 0; color: #666970; font-size: 11px; }
.suburb-fare-list { display: grid; margin-top: 20px; border-top: 1px solid #deded9; }
.suburb-fare-list>div { display: grid; grid-template-columns: 1fr auto auto; gap: 18px; align-items: center; min-height: 48px; padding: 0 13px; border-bottom: 1px solid #deded9; background: #f7f7f5; }
.suburb-fare-list span { font-size: 12px; font-weight: 700; }
.suburb-fare-list strong { font-size: 11px; }
.suburb-fare-list a { color: #9a6a00; font-size: 9px; font-weight: 900; text-transform: uppercase; }
.fine-print { color: #777a80!important; font-size: 9px!important; }
.inline-cta { display: flex; align-items: center; gap: 10px; margin-top: 24px; padding: 20px; border-radius: 10px; background: #17191d; color: #fff; }
.inline-cta>div { margin-right: auto; }
.inline-cta strong { font-size: 15px; }
.inline-cta p { margin: 3px 0 0; color: #b7bac0; font-size: 9px; }
.inline-cta .button { min-height: 42px; padding: 0 15px; font-size: 10px; }
.button-dark { border-color: #2d3036; background: #17191d; color: #fff; }
.responsive-table { overflow-x: auto; margin-top: 22px; border: 1px solid #deded9; border-radius: 8px; }
.responsive-table table { width: 100%; min-width: 620px; border-collapse: collapse; font-size: 11px; }
.responsive-table th { padding: 13px; background: #17191d; color: #fff; text-align: left; }
.responsive-table td { padding: 12px 13px; border-top: 1px solid #e5e5e1; }
.responsive-table tr:nth-child(even) td { background: #f7f7f5; }
.route-list { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; padding: 0; list-style: none; }
.route-list li { position: relative; padding-left: 15px; color: #55585f; font-size: 12px; }
.route-list li::before { content: "›"; position: absolute; left: 0; color: #ae7800; font-weight: 900; }
.why-card { margin-top: 24px; padding: 26px; border-left: 4px solid var(--gold); border-radius: 0 10px 10px 0; background: #f2f2f0; }
.why-card h3 { margin: 0 0 12px; font-size: 25px; }
.why-card p { margin: 0 0 10px; color: #55585f; font-size: 13px; line-height: 1.7; }
.detail-faq details { border-bottom: 1px solid #deded9; }
.detail-faq summary { display: flex; justify-content: space-between; gap: 15px; padding: 16px 2px; cursor: pointer; font-size: 12px; font-weight: 800; }
.detail-faq summary::marker { content: ""; }
.detail-faq summary span { color: #ad7600; }
.detail-faq details p { margin: 0 0 17px; color: #64676d; font-size: 12px; line-height: 1.65; }
.service-booking-sidebar { position: sticky; top: 110px; }
.service-booking-sidebar>div { padding: 24px; border: 1px solid #deded9; border-radius: 12px; background: #f7f7f5; box-shadow: 0 16px 35px rgba(16,17,20,.07); }
.service-booking-sidebar>div>small { font-size: 10px; font-weight: 900; text-transform: uppercase; }
.service-booking-sidebar .sidebar-call { background: #17191d; color: #fff; }
.service-booking-sidebar .button { width: 100%; min-height: 44px; font-size: 11px; }
.service-booking-sidebar>div>a:not(.button):not(.sidebar-call) { display: block; margin: 15px 0; color: #765400; font-size: 11px; font-weight: 800; text-align: center; }
.service-booking-sidebar hr { margin: 19px 0; border: 0; border-top: 1px solid #ddd; }
.service-booking-sidebar>div>strong { display: block; margin-bottom: 8px; font-size: 11px; text-transform: uppercase; }
.service-booking-sidebar p { display: flex; justify-content: space-between; gap: 15px; margin: 0; padding: 9px 0; border-bottom: 1px solid #e1e1dd; font-size: 10px; }
.service-booking-sidebar p b { color: #9a6a00; }
.service-booking-sidebar em { display: block; margin-top: 12px; color: #7a7c82; font-size: 8px; }

.not-found-page { min-height: 70vh; display: grid; place-items: center; padding: 100px 0; background: #111318; color: #fff; text-align: center; }
.not-found-page span { color: var(--gold); font-family: Georgia,serif; font-size: clamp(80px,15vw,180px); line-height: .8; opacity: .28; }
.not-found-page h1 { margin: 26px 0 13px; font-size: clamp(42px,5vw,68px); }
.not-found-page p { max-width: 600px; margin: 0 auto 28px; color: #b9bbc1; }
.not-found-page>div>div { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; }

@media (max-width: 1050px) {
  .inner-hero-grid,.about-proof-grid { grid-template-columns: 1fr 420px; gap: 45px; }
  .value-grid { grid-template-columns: 1fr 1fr; }
  .blog-grid { grid-template-columns: 1fr 1fr; }
  .single-post-layout,.default-page-layout { grid-template-columns: minmax(0,1fr) 290px; gap: 45px; }
  .service-detail-grid { grid-template-columns: minmax(0,1fr) 260px; gap: 35px; }
}

@media (max-width: 860px) {
  .inner-hero-grid,.story-grid,.about-proof-grid,.contact-page-grid,.single-post-layout,.default-page-layout,.service-detail-grid { grid-template-columns: minmax(0,1fr); }
  .inner-hero-image { max-width: 650px; width: 100%; }
  .story-grid { gap: 30px; }
  .service-page-card { grid-template-columns: minmax(280px,.85fr) minmax(0,1.15fr); }
  .article-sidebar,.default-page-sidebar,.service-booking-sidebar { position: static; }
  .article-sidebar,.default-page-sidebar { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
  .sidebar-links,.sidebar-service-menu { margin-top: 0; }
  .service-booking-sidebar { max-width: 540px; }
}

@media (max-width: 680px) {
  .inner-hero { padding: 68px 0; }
  .compact-inner-hero,.blog-hero { min-height: 430px; }
  .inner-hero h1,.inner-title h1 { font-size: clamp(39px,11vw,52px); }
  .inner-hero p,.inner-title p { font-size: 15px; }
  .inner-section { padding: 76px 0; }
  .value-grid,.blog-grid,.article-sidebar,.default-page-sidebar { grid-template-columns: minmax(0,1fr); }
  .service-page-card { grid-template-columns: minmax(0,1fr); }
  .service-page-card:nth-child(even) .service-page-image { order: 0; }
  .service-page-image { min-height: 250px; }
  .service-page-content { padding: 31px 25px 36px; }
  .contact-field-grid { grid-template-columns: minmax(0,1fr); }
  .single-post-header { padding: 72px 0 56px; }
  .single-post-layout,.default-page-layout { padding-top: 55px; padding-bottom: 75px; }
  .article-footer { align-items: flex-start; flex-direction: column; }
  .default-page-hero { padding: 65px 0 52px; }
  .airport-feature-grid { grid-template-columns: 1fr 1fr; }
  .inline-cta { align-items: stretch; flex-direction: column; }
  .inline-cta>div { margin-right: 0; }
  .route-list { grid-template-columns: minmax(0,1fr); }
}

@media (max-width: 460px) {
  .about-stat-grid,.airport-feature-grid,.pickup-step-grid { grid-template-columns: minmax(0,1fr); }
  .value-grid article { min-height: 0; }
  .contact-form-card { padding: 28px 20px; }
  .suburb-fare-list>div { grid-template-columns: 1fr auto; }
  .suburb-fare-list a { grid-column: 1/-1; padding-bottom: 9px; }
  .terminal-strip { padding: 20px; }
}

@media (max-width: 860px) {
  .site-header .mobile-menu-head { order: 0; }
	.site-header .primary-menu { width: 100%; display: flex; align-items: stretch; flex-direction: column; gap: 0; flex: 0 0 auto; order: 1; margin: 0; padding: 0; }
	.site-header .primary-menu li { width: 100%; display: block; flex: 0 0 auto; }
	.site-header .primary-menu li>a { width: 100%; }
  .site-header .menu-home { order: 1; }
  .site-header .menu-airport { order: 2; }
  .site-header .menu-services { order: 3; }
  .site-header .fare-menu-item { order: 4; }
  .site-header .menu-about { order: 5; }
  .site-header .menu-blog { order: 6; }
  .site-header .menu-contact { order: 7; }
  .site-header .mobile-menu-actions { order: 10; }
}

/* Keep shared inner-page components consistent when rendered inside post content. */
.article-content .stm-inner-feature-grid .stm-inner-service-copy h3 {
  margin: 9px 0 10px;
  color: #101114;
  font-size: 22px;
  line-height: 1.16;
  letter-spacing: -0.02em;
}

.article-content .stm-inner-feature-grid .stm-inner-service-copy p {
  margin: 0 0 21px;
  color: #64676d;
  font-size: 14px;
  line-height: 1.72;
}

.article-content .wp-block-yoast-faq-block .schema-faq-answer p,
.article-content .schema-faq .schema-faq-answer p {
  margin: 0 0 1em;
  color: inherit;
  font-size: inherit;
  line-height: inherit;
}

.article-content .wp-block-yoast-faq-block .schema-faq-answer p:last-child,
.article-content .schema-faq .schema-faq-answer p:last-child {
  margin-bottom: 0;
}

.detail-faq details[open] summary span {
  transform: rotate(45deg);
}

/* Wide conversion panel used by default and service-area templates. */
.stm-cabcharge-cta { position: relative; isolation: isolate; overflow: hidden; width: 100%; display: grid; grid-template-columns: 64px minmax(0,1fr) auto; align-items: center; gap: 24px; margin: 54px 0; padding: 30px 32px; border: 1px solid rgba(174,115,0,.2); border-radius: 23px; background: linear-gradient(115deg,#f5ae12 0%,#ffc644 68%,#ffd76f 100%); color: #17181a; box-shadow: 0 24px 58px rgba(191,127,0,.2); }
.stm-cabcharge-cta::before { content: ""; position: absolute; z-index: -1; right: -70px; bottom: -115px; width: 250px; height: 250px; border: 42px solid rgba(255,255,255,.2); border-radius: 50%; }
.stm-cabcharge-mark { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 17px; background: #18191b; color: var(--gold); box-shadow: 0 12px 28px rgba(16,17,20,.2); font-size: 15px; font-weight: 900; }
.stm-cabcharge-copy { min-width: 0; }
.stm-cabcharge-copy>span { color: #664800; font-size: 10px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.stm-cabcharge-copy h2,.article-content .stm-cabcharge-copy h2 { margin: 7px 0 7px; color: #17181a; font-family: "Avenir Next","Segoe UI",Helvetica,Arial,sans-serif; font-size: clamp(25px,2.4vw,34px); font-weight: 850; line-height: 1.08; letter-spacing: -.035em; }
.stm-cabcharge-copy p,.article-content .stm-cabcharge-copy p { max-width: 610px; margin: 0; color: #5f4712; font-size: 14px; line-height: 1.65; }
.stm-cabcharge-actions { min-width: 190px; display: flex; align-items: flex-end; flex-direction: column; gap: 9px; }
.stm-cabcharge-actions>a { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 12px; padding: 0 18px; border-radius: 10px; background: #18191b; color: #fff; box-shadow: 0 12px 26px rgba(16,17,20,.19); font-size: 12px; font-weight: 900; text-decoration: none!important; transition: transform .22s ease,background .22s ease; }
.stm-cabcharge-actions>a:hover { transform: translateY(-2px); background: #292b2f; }
.stm-cabcharge-actions>a b { color: var(--gold); }
.stm-cabcharge-actions>small { color: #684900; font-size: 9px; font-weight: 700; text-align: right; }
.article-content .stm-inner-service-card a,.article-content .stm-inner-service-card h3,.article-content .stm-inner-service-card p,.article-content .stm-inner-service-card small,.article-content .stm-inner-service-card b { text-decoration: none!important; }

/* v2.2 — dynamic Service Area template */
.service-area-layout-section { padding: 94px 0 110px; background: #f5f4f0; }
.service-area-layout { display: grid; grid-template-columns: minmax(0,1fr) 370px; align-items: start; gap: 42px; }
.service-area-main { min-width: 0; }
.service-area-introduction,.service-area-content-card { border: 1px solid #deddd7; border-radius: 25px; background: #fff; box-shadow: 0 22px 64px rgba(16,17,20,.07); }
.service-area-introduction { padding: 43px; }
.service-area-introduction h2,.service-area-content-card>h2,.service-area-faq-section>header h2 { margin: 17px 0 20px; font-family: "Avenir Next","Segoe UI",Helvetica,Arial,sans-serif; font-size: clamp(34px,4vw,49px); font-weight: 800; line-height: 1.08; letter-spacing: -.04em; text-wrap: balance; }
.service-area-introduction>p,.service-area-editor-content { color: #62656b; font-size: 16px; line-height: 1.8; }
.service-area-editor-content>:first-child { margin-top: 0; }
.service-area-editor-content>:last-child { margin-bottom: 0; }
.service-area-highlights { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 28px; padding-top: 26px; border-top: 1px solid #e3e2dd; }
.service-area-highlights span { min-height: 44px; display: flex; align-items: center; padding: 10px 13px; border-radius: 10px; background: #f7f6f2; color: #303238; font-size: 13px; font-weight: 800; }
.service-area-after-content>.stm-inner-feature-block { width: 100%; margin: 92px 0 0; }
.service-area-after-content .stm-inner-feature-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.service-area-content-card { position: relative; overflow: hidden; padding: 45px; border-color: rgba(255,255,255,.08); background-color: #18191b; background-image: linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px),radial-gradient(circle at 85% 12%,rgba(245,174,18,.11),transparent 35%); background-size: 48px 48px,48px 48px,auto; color: #fff; box-shadow: 0 28px 72px rgba(16,17,20,.18); }
.service-area-content-card .eyebrow span { color: var(--gold); }
.service-area-content-card>h2 { max-width: 710px; color: #fff; }
.service-area-copy-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; overflow: hidden; margin-top: 32px; border: 1px solid rgba(255,255,255,.1); border-radius: 17px; background: rgba(255,255,255,.1); }
.service-area-copy-grid>div { min-width: 0; padding: 25px; background: #202123; }
.service-area-copy-grid h3 { margin: 0 0 9px; color: #fff; font-family: "Avenir Next","Segoe UI",Helvetica,Arial,sans-serif; font-size: 18px; font-weight: 800; line-height: 1.25; letter-spacing: -.02em; }
.service-area-copy-grid p { margin: 0; color: #b6b8bc; font-size: 14px; line-height: 1.7; }
.service-area-faq-section { margin-top: 72px; }
.service-area-faq-section>header { max-width: 680px; margin-bottom: 28px; }
.service-area-faq-section>header>span { color: #a46d00; font-size: 11px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.service-area-faq-section .detail-faq { border-radius: 20px; background: #fff; box-shadow: 0 20px 55px rgba(16,17,20,.07); }
.service-area-faq-section .detail-faq details { margin: 0; padding: 0 19px; border-bottom: 1px solid #deded9; }
.service-area-faq-section .detail-faq details:last-child { border-bottom: 0; }
.service-area-faq-section .detail-faq summary { min-height: 70px; align-items: center; padding: 17px 0; color: #151619; font-size: 15px; line-height: 1.45; }
.service-area-faq-section .detail-faq summary span { width: 30px; height: 30px; color: #151619; transition: transform .22s ease,background .22s ease; }
.service-area-faq-section .detail-faq details[open] summary { background: transparent; }
.service-area-faq-section .detail-faq details[open] summary span { background: #18191b; color: var(--gold); }
.service-area-faq-section .detail-faq details p { margin: 0; padding: 0 48px 24px 0; color: #62656b; font-size: 15px; line-height: 1.75; }

.service-area-sidebar { position: static; top: auto; display: block; min-width: 0; }
.service-area-calculator { overflow: hidden; padding: 27px; border: 1px solid rgba(255,255,255,.08); border-radius: 24px; background: radial-gradient(circle at 88% 4%,rgba(245,174,18,.18),transparent 29%),#18191b; color: #fff; box-shadow: 0 28px 70px rgba(16,17,20,.2); }
.service-area-calculator header>span,.service-area-cabcharge>span,.service-area-popular-services>span { color: var(--gold); font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.service-area-calculator header h2 { margin: 8px 0 9px; color: #fff; font-family: "Avenir Next","Segoe UI",Helvetica,Arial,sans-serif; font-size: 29px; font-weight: 800; line-height: 1.12; letter-spacing: -.035em; }
.service-area-calculator header p { margin: 0 0 20px; color: #aeb0b5; font-size: 13px; line-height: 1.6; }
.service-area-origin { display: flex; align-items: center; gap: 12px; margin-bottom: 17px; padding: 13px; border: 1px solid rgba(255,255,255,.09); border-radius: 12px; background: rgba(255,255,255,.055); }
.service-area-origin>span { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 10px; background: var(--gold); color: #151619; font-weight: 900; }
.service-area-origin p { min-width: 0; margin: 0; }
.service-area-origin small,.service-area-origin strong { display: block; }
.service-area-origin small { margin-bottom: 3px; color: #8f9298; font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.service-area-origin strong { overflow: hidden; color: #fff; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.service-area-calculator>label { display: block; margin-top: 13px; }
.service-area-calculator>label>span { display: block; margin-bottom: 7px; color: #c8c9cc; font-size: 10px; font-weight: 800; }
.service-area-calculator select,.service-area-calculator input { width: 100%; height: 48px; padding: 0 13px; border: 1px solid rgba(255,255,255,.13); border-radius: 10px; outline: none; background: #24262a; color: #fff; font-size: 14px; }
.service-area-calculator select:focus,.service-area-calculator input:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(245,174,18,.15); }
.service-area-manual-distance small { display: block; margin-top: 6px; color: #999ca2; font-size: 10px; line-height: 1.5; }
.service-area-result { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; overflow: hidden; margin: 20px 0 12px; border: 1px solid rgba(255,255,255,.09); border-radius: 14px; background: rgba(255,255,255,.08); }
.service-area-result>div { padding: 13px; background: #202226; }
.service-area-result>div.primary { grid-column: 1/-1; padding: 17px 13px; background: linear-gradient(100deg,rgba(245,174,18,.16),rgba(245,174,18,.06)); }
.service-area-result span,.service-area-result strong { display: block; }
.service-area-result span { margin-bottom: 4px; color: #96999f; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.service-area-result strong { color: #fff; font-size: 16px; }
.service-area-result .primary strong { color: var(--gold); font-size: 25px; letter-spacing: -.03em; }
.service-area-calculator-status { min-height: 18px; margin: 0 0 13px; color: #b8bbc0; font-size: 11px; line-height: 1.5; }
.service-area-calculator-status[data-status="success"] { color: #92dfb4; }
.service-area-calculator-status[data-status="notice"] { color: #ffd574; }
.service-area-book-button { width: 100%; min-height: 50px; justify-content: center; }
.service-area-map-link { display: block; margin-top: 13px; color: #e8e8e8; font-size: 11px; font-weight: 800; text-align: center; }
.service-area-map-link:hover { color: var(--gold); }
.service-area-disclaimer { display: block; margin-top: 15px; color: #85888e; font-size: 9px; line-height: 1.55; text-align: center; }

.service-area-cabcharge { position: relative; overflow: hidden; padding: 27px; border-radius: 22px; background: linear-gradient(145deg,#f5ae12,#ffd463); color: #17181a; box-shadow: 0 21px 48px rgba(191,127,0,.22); }
.service-area-cabcharge::after { content: ""; position: absolute; right: -43px; bottom: -50px; width: 150px; height: 150px; border: 28px solid rgba(255,255,255,.18); border-radius: 50%; }
.service-area-cabcharge>* { position: relative; z-index: 1; }
.cabcharge-mark { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 19px; border-radius: 13px; background: #18191b; color: var(--gold); font-size: 13px; font-weight: 900; letter-spacing: -.02em; }
.service-area-cabcharge>span { color: #5f4300; }
.service-area-cabcharge h2 { max-width: 280px; margin: 8px 0 10px; font-family: "Avenir Next","Segoe UI",Helvetica,Arial,sans-serif; font-size: 27px; line-height: 1.08; letter-spacing: -.035em; }
.service-area-cabcharge p { margin: 0 0 18px; color: #4f3a0b; font-size: 13px; line-height: 1.65; }
.service-area-cabcharge>a { min-height: 44px; display: inline-flex; align-items: center; gap: 11px; padding: 0 15px; border-radius: 9px; background: #18191b; color: #fff; font-size: 12px; font-weight: 900; }
.service-area-cabcharge>a b { color: var(--gold); }
.service-area-cabcharge>small { display: block; margin-top: 12px; color: #654800; font-size: 10px; font-weight: 700; }

.service-area-popular-services { padding: 25px; border: 1px solid #deddd8; border-radius: 22px; background: #fff; box-shadow: 0 19px 52px rgba(16,17,20,.07); }
.service-area-popular-services>span { color: #9d6a00; }
.service-area-popular-services>h2 { margin: 8px 0 15px; font-family: "Avenir Next","Segoe UI",Helvetica,Arial,sans-serif; font-size: 24px; line-height: 1.15; letter-spacing: -.03em; }
.service-area-popular-services>div { display: grid; }
.service-area-popular-services a { min-width: 0; display: grid; grid-template-columns: 52px minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 11px 0; border-top: 1px solid #e7e6e1; transition: color .2s ease,transform .2s ease; }
.service-area-popular-services a:hover { color: #a66f00; transform: translateX(3px); }
.service-area-popular-services img { width: 52px; height: 40px; display: block; border-radius: 8px; object-fit: cover; }
.service-area-popular-services p { min-width: 0; margin: 0; }
.service-area-popular-services strong,.service-area-popular-services small { display: block; }
.service-area-popular-services strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.service-area-popular-services small { margin-top: 3px; color: #8b8d92; font-size: 9px; }
.service-area-popular-services a>b { color: #b67900; font-size: 15px; }

.sidebar-service-menu { overflow: hidden; margin-top: 20px; padding: 23px; border: 1px solid #deddd8; border-radius: 18px; background: linear-gradient(145deg,#fff,#faf9f5); box-shadow: 0 18px 48px rgba(16,17,20,.065); }
.sidebar-service-menu>span { color: #9a6800; font-size: 9px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.sidebar-service-menu>h2 { margin: 7px 0 14px; font-family: "Avenir Next","Segoe UI",Helvetica,Arial,sans-serif; font-size: 23px; line-height: 1.14; letter-spacing: -.035em; }
.sidebar-service-menu>div { display: grid; }
.sidebar-service-menu>div>a { min-width: 0; display: grid; grid-template-columns: 56px minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 11px 0; border-top: 1px solid #e7e6e1; transition: color .2s ease,transform .2s ease; }
.sidebar-service-menu>div>a:hover { color: #9f6a00; transform: translateX(3px); }
.sidebar-service-menu img { width: 56px; height: 42px; display: block; border-radius: 8px; object-fit: cover; }
.sidebar-service-menu p { min-width: 0; margin: 0; }
.sidebar-service-menu strong,.sidebar-service-menu small { display: block; }
.sidebar-service-menu strong { overflow: hidden; color: #26282d; font-size: 12px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-service-menu small { margin-top: 3px; color: #898c91; font-size: 9px; }
.sidebar-service-menu>div>a>b { color: #b57900; font-size: 15px; }
.sidebar-service-all { min-height: 43px; display: flex; align-items: center; justify-content: space-between; margin-top: 11px; padding: 0 13px; border-radius: 9px; background: #18191b; color: #fff; font-size: 10px; font-weight: 900; }
.sidebar-service-all b { color: var(--gold); }
.sidebar-service-all:hover { background: #292b2f; }

@media (max-width: 1050px) {
  .service-area-layout { grid-template-columns: minmax(0,1fr); }
  .service-area-sidebar { display: block; }
  .service-area-calculator { grid-row: auto; }
  .service-area-after-content .stm-inner-feature-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 700px) {
  .service-area-layout-section { padding: 62px 0 85px; }
  .service-area-introduction,.service-area-content-card { padding: 28px 22px; border-radius: 19px; }
  .service-area-layout { gap: 28px; }
  .service-area-sidebar { order: -1; }
  .service-area-highlights,.service-area-copy-grid,.service-area-after-content .stm-inner-feature-grid { grid-template-columns: minmax(0,1fr); }
  .service-area-calculator { grid-row: auto; padding: 23px 19px; border-radius: 19px; }
  .service-area-after-content>.stm-inner-feature-block { margin-top: 65px; }
  .service-area-faq-section { margin-top: 58px; }
  .service-area-faq-section .detail-faq details { padding: 0 14px; }
  .service-area-faq-section .detail-faq summary { min-height: 65px; font-size: 14px; }
  .service-area-faq-section .detail-faq details p { padding-right: 0; font-size: 14px; }
	.sidebar-service-menu { margin-top: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .stm-inner-service-card,.stm-inner-service-image img,.stm-inner-service-copy>b i,.stm-faq-arrow,.service-area-popular-services a,.sidebar-service-menu>div>a,.stm-cabcharge-actions>a { transition: none!important; }
}

/* v2.3 — compact responsive conversion layout */
main,main section,main article,main aside,.shell,.service-area-layout,.service-area-main,.service-area-sidebar { min-width: 0; }
iframe,svg { max-width: 100%; }
.stm-cabcharge-cta a,.stm-cabcharge-cta h2,.stm-cabcharge-cta p { text-decoration: none!important; }

@media (max-width: 860px) {
  .stm-cabcharge-cta { grid-template-columns: 58px minmax(0,1fr); gap: 18px; padding: 27px; }
  .stm-cabcharge-mark { width: 58px; height: 58px; border-radius: 15px; }
  .stm-cabcharge-actions { grid-column: 1/-1; min-width: 0; align-items: center; flex-direction: row; padding-left: 76px; }
  .stm-cabcharge-actions>small { flex: 1; text-align: left; }
}

@media (max-width: 560px) {
  .shell,.site-header .nav-wrap { width: calc(100% - 24px); }
  .stm-inner-hero-content { min-height: 0; }
  .stm-hero-proof-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .stm-hero-proof-grid>div { min-height: 62px; padding: 10px 12px; border-right: 1px solid rgba(255,255,255,.06); border-bottom: 1px solid rgba(255,255,255,.06); }
  .stm-hero-proof-grid>div:nth-child(2n) { border-right: 0; }
  .stm-hero-proof-grid>div:nth-last-child(-n+2) { border-bottom: 0; }
  .stm-hero-proof-grid strong { font-size: 13px; }
  .stm-cabcharge-cta { grid-template-columns: minmax(0,1fr); gap: 15px; margin: 42px 0; padding: 24px 20px; border-radius: 18px; }
  .stm-cabcharge-mark { width: 52px; height: 52px; }
  .stm-cabcharge-copy h2,.article-content .stm-cabcharge-copy h2 { font-size: 27px; }
  .stm-cabcharge-copy p,.article-content .stm-cabcharge-copy p { font-size: 14px; }
  .stm-cabcharge-actions { grid-column: auto; align-items: stretch; flex-direction: column; padding-left: 0; }
  .stm-cabcharge-actions>a { width: 100%; min-height: 50px; }
  .stm-cabcharge-actions>small { width: 100%; text-align: left; }
  .service-area-copy-grid>div { padding: 21px 18px; }
  .service-area-result>div { padding: 11px; }
  .service-area-result .primary strong { font-size: 23px; }
  .service-area-popular-services,.sidebar-service-menu { padding: 19px; }
  .button,input,select,textarea { max-width: 100%; }
}

@media (max-width: 380px) {
  .stm-hero-proof-grid { grid-template-columns: minmax(0,1fr); }
  .stm-hero-proof-grid>div,.stm-hero-proof-grid>div:nth-child(2n),.stm-hero-proof-grid>div:nth-last-child(-n+2) { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.06); }
  .stm-hero-proof-grid>div:last-child { border-bottom: 0; }
}

/* v2.4 — accessible desktop and mobile submenus */
.primary-menu li { position: relative; }
.primary-menu .sub-menu { margin: 0; list-style: none; }
.submenu-toggle { border: 0; cursor: pointer; }
.submenu-toggle>span { display: block; transition: transform .22s ease; }
.menu-item-has-children.submenu-open>.submenu-toggle>span { transform: rotate(180deg); }
.service-card-image-link,.service-page-image { display: block; }
.service-body h3 a,.service-page-content h2 a { color: inherit; text-decoration: none; }
.service-body h3 a:hover,.service-page-content h2 a:hover { color: #9b6800; }

@media (min-width: 861px) {
  .primary-menu>.menu-item-has-children>a { padding-right: 22px; }
  .primary-menu .submenu-toggle {
    position: absolute;
    z-index: 4;
    top: 50%;
    right: -2px;
    width: 24px;
    height: 34px;
    display: grid;
    place-items: center;
    padding: 0;
    background: transparent;
    color: #55585e;
    font-size: 17px;
    line-height: 1;
    transform: translateY(-52%);
  }
  .primary-menu .submenu-toggle:hover,
  .primary-menu .submenu-toggle:focus-visible { color: #9d6900; }
  .primary-menu .submenu-toggle:focus-visible { outline: 2px solid var(--gold); outline-offset: 1px; border-radius: 5px; }
  .primary-menu .sub-menu {
    position: absolute;
    z-index: 120;
    top: calc(100% - 12px);
    left: -20px;
    width: max-content;
    min-width: 268px;
    max-width: 330px;
    padding: 10px;
    border: 1px solid rgba(16,17,20,.1);
    border-radius: 16px;
    background: rgba(255,255,255,.99);
    box-shadow: 0 24px 60px rgba(8,10,14,.18);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(10px);
    transition: opacity .2s ease,visibility .2s ease,transform .25s cubic-bezier(.22,1,.36,1);
  }
  .primary-menu .sub-menu .sub-menu { top: -10px; left: calc(100% - 4px); }
  .primary-menu li:hover>.sub-menu,
  .primary-menu li.submenu-open>.sub-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }
  .primary-menu .sub-menu li { width: 100%; }
  .site-header .primary-menu .sub-menu a {
    min-height: 46px;
    display: flex;
    align-items: center;
    padding: 10px 14px;
    border-radius: 10px;
    color: #292b30;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
    white-space: normal;
  }
  .site-header .primary-menu .sub-menu a::after { display: none; }
  .site-header .primary-menu .sub-menu a:hover,
  .site-header .primary-menu .sub-menu a:focus-visible { background: #fff5dc; color: #8d5f00; }
  .primary-menu .sub-menu .menu-item-has-children>a { padding-right: 42px; }
  .primary-menu .sub-menu .submenu-toggle { right: 8px; }
}

@media (max-width: 860px) {
  .site-header .primary-menu .menu-item-has-children { position: relative; }
  .site-header .primary-menu .menu-item-has-children>a { padding-right: 56px; }
  .site-header .primary-menu .submenu-toggle {
    position: absolute;
    z-index: 3;
    top: 7px;
    right: 4px;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    padding: 0;
    border-radius: 10px;
    background: #f5f3ed;
    color: #1b1c20;
    font-size: 19px;
    line-height: 1;
  }
  .site-header .primary-menu .submenu-toggle:hover,
  .site-header .primary-menu .submenu-toggle:focus-visible { background: #fff0c9; color: #8d5f00; outline: none; }
  .site-header .primary-menu .sub-menu {
    position: static;
    width: 100%;
    display: block;
    padding: 4px 0 8px 17px;
    border: 0;
    border-bottom: 1px solid #eeeeea;
    background: #faf9f6;
  }
  .site-header .primary-menu .sub-menu[hidden] { display: none!important; }
  .site-header .primary-menu .sub-menu li { width: 100%; }
  .site-header .primary-menu .sub-menu a {
    min-height: 45px;
    padding: 8px 48px 8px 12px;
    border-bottom: 1px solid #e8e6df;
    color: #505259;
    font-size: 13px;
    font-weight: 700;
  }
  .site-header .primary-menu .sub-menu li:last-child>a { border-bottom: 0; }
  .site-header .primary-menu .sub-menu .submenu-toggle { top: 2px; width: 38px; height: 38px; }
}

@media (prefers-reduced-motion: reduce) {
  .primary-menu .sub-menu,.submenu-toggle>span { transition: none!important; }
}

/* v2.5 — correctly anchored dropdowns and three-image hero */
.hero-slides { position: absolute; z-index: 0; inset: 0; overflow: hidden; background: #111318; }
.hero-slides .hero-slide {
  opacity: 0;
  visibility: hidden;
  transform: scale(1.055);
  transition: opacity 1s ease,visibility 1s ease,transform 7s linear;
}
.hero-slides .hero-slide.is-active { opacity: 1; visibility: visible; transform: scale(1.015); }
.hero-wash { z-index: 1; }
.hero::after { z-index: 1; }
.hero-slider-dots { z-index: 4; }
.hero-slider-dots button {
  width: 9px;
  height: 9px;
  display: block;
  padding: 0;
  border: 1px solid rgba(255,255,255,.5);
  border-radius: 99px;
  background: rgba(255,255,255,.34);
  cursor: pointer;
  transition: width .25s ease,background .25s ease,border-color .25s ease,transform .2s ease;
}
.hero-slider-dots button:hover { transform: scale(1.18); border-color: #fff; background: rgba(255,255,255,.7); }
.hero-slider-dots button:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.hero-slider-dots button.is-active { width: 25px; border-color: var(--gold); background: var(--gold); }

@media (min-width: 861px) {
  .site-header .nav-links,
  .site-header .primary-menu { align-self: stretch; }
  .site-header .primary-menu>li {
    min-height: 78px;
    display: flex;
    align-items: center;
  }
  .site-header .primary-menu>li>a {
    min-height: 78px;
    display: inline-flex;
    align-items: center;
    padding-top: 0;
    padding-bottom: 0;
  }
  .primary-menu>.menu-item-has-children>.sub-menu { top: calc(100% - 1px); }
  .site-header .primary-menu>li>a:hover,
  .site-header .primary-menu>li>a:focus-visible,
  .site-header .primary-menu>.current-menu-item>a,
  .site-header .primary-menu>.current_page_parent>a,
  .site-header .primary-menu>.current-menu-ancestor>a { color: #9a6700; }
  .site-header .primary-menu .sub-menu .current-menu-item>a,
  .site-header .primary-menu .sub-menu .current-menu-parent>a { background: #fff2cf; color: #8b5d00; }
}

@media (max-width: 860px) {
  .site-header .primary-menu>.current-menu-item>a,
  .site-header .primary-menu>.current_page_parent>a,
  .site-header .primary-menu>.current-menu-ancestor>a { background: #fff5df; color: #8d5f00; }
  .site-header .primary-menu .sub-menu .current-menu-item>a { background: #ffefc6; color: #845900; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-slides .hero-slide,.hero-slider-dots button { transition: none!important; }
}

/* v2.6 — Service Areas directory and refined desktop navigation */
@media (min-width: 861px) {
  .site-header .primary-menu .submenu-toggle { display: none!important; }
  .site-header .primary-menu>.menu-item-has-children>a { padding-right: 0; }
  .primary-menu li:focus-within>.sub-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }
  .site-header .primary-menu>li>a:hover,
  .site-header .primary-menu>li>a:focus-visible,
  .site-header .primary-menu>.current-menu-item>a,
  .site-header .primary-menu>.current_page_item>a,
  .site-header .primary-menu>.current_page_parent>a,
  .site-header .primary-menu>.current-menu-ancestor>a {
    color: #9a6700;
    font-weight: 800;
  }
}

.area-directory-section {
  position: relative;
  overflow: hidden;
  padding: 90px 0 112px;
  background: radial-gradient(circle at 12% 4%,rgba(245,174,18,.075),transparent 25%),linear-gradient(180deg,#fff 0%,#faf9f6 100%);
}
.area-directory-section::before {
  content: "";
  position: absolute;
  right: -190px;
  top: 190px;
  width: 420px;
  height: 420px;
  border: 1px solid rgba(245,174,18,.12);
  border-radius: 50%;
  box-shadow: 0 0 0 75px rgba(245,174,18,.025),0 0 0 150px rgba(245,174,18,.018);
  pointer-events: none;
}
.area-directory-section>.shell { position: relative; z-index: 1; }
.area-directory-intro { display: grid; grid-template-columns: minmax(0,1fr) minmax(340px,440px); align-items: end; gap: 65px; margin-bottom: 35px; }
.area-directory-kicker { display: inline-flex; align-items: center; gap: 10px; color: #966400; font-size: 10px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.area-directory-kicker::before { content: ""; width: 31px; height: 2px; background: var(--gold); }
.area-directory-intro h2 { max-width: 620px; margin: 14px 0 13px; color: #111216; font-family: "Avenir Next","Segoe UI",Helvetica,Arial,sans-serif; font-size: clamp(38px,4.6vw,58px); font-weight: 800; line-height: 1.03; letter-spacing: -.045em; }
.area-directory-intro p { max-width: 670px; margin: 0; color: #676a70; font-size: 15px; line-height: 1.75; }
.area-directory-search { position: relative; }
.area-directory-search>span { position: absolute; z-index: 1; left: 18px; top: 50%; color: #a26c00; font-size: 23px; transform: translateY(-54%); pointer-events: none; }
.area-directory-search input { width: 100%; height: 60px; padding: 0 52px 0 50px; border: 1px solid #d4d3ce; border-radius: 15px; outline: none; background: #fff; color: #17181b; box-shadow: 0 16px 42px rgba(16,17,20,.08); font-size: 14px; }
.area-directory-search input:focus { border-color: var(--gold); box-shadow: 0 0 0 4px rgba(245,174,18,.14),0 18px 45px rgba(16,17,20,.09); }
.area-directory-search button { position: absolute; z-index: 2; right: 9px; top: 9px; width: 42px; height: 42px; display: grid; place-items: center; padding: 0 0 2px; border: 0; border-radius: 10px; background: #f2f1ed; color: #5e6065; cursor: pointer; font-size: 23px; opacity: 0; visibility: hidden; transition: opacity .2s ease,background .2s ease; }
.area-directory-search button.is-visible { opacity: 1; visibility: visible; }
.area-directory-search button:hover { background: #fff0c8; color: #875a00; }
.area-directory-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 58px; padding: 16px 19px; border: 1px solid #dfded8; border-radius: 16px; background: rgba(255,255,255,.9); box-shadow: 0 13px 35px rgba(16,17,20,.045); }
.area-letter-nav { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; }
.area-letter-nav a { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 8px; color: #565960; font-size: 11px; font-weight: 850; transition: background .2s ease,color .2s ease,transform .2s ease; }
.area-letter-nav a:hover,.area-letter-nav a:focus-visible { background: #18191b; color: var(--gold); transform: translateY(-2px); outline: none; }
.area-directory-toolbar>p { flex: 0 0 auto; margin: 0; color: #777a80; font-size: 11px; }
.area-directory-toolbar>p strong { color: #17181b; font-size: 17px; }
.area-directory-groups { display: grid; gap: 58px; }
.area-directory-group { scroll-margin-top: 105px; }
.area-directory-group[hidden] { display: none!important; }
.area-directory-group>header { display: flex; align-items: center; gap: 13px; margin-bottom: 17px; }
.area-directory-group>header::after { content: ""; height: 1px; flex: 1; background: linear-gradient(90deg,#deddd8,transparent); }
.area-directory-group>header h2 { width: 48px; height: 48px; display: grid; place-items: center; flex: 0 0 48px; margin: 0; border-radius: 14px; background: #18191b; color: var(--gold); font-family: "Avenir Next","Segoe UI",Helvetica,Arial,sans-serif; font-size: 20px; font-weight: 900; }
.area-directory-group>header span { order: 2; padding: 6px 10px; border-radius: 999px; background: #fff1cf; color: #926100; font-size: 9px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.area-directory-group>header::after { order: 3; }
.area-directory-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 10px; }
.area-directory-grid>a { min-width: 0; min-height: 78px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 5px; padding: 12px 9px; border: 1px solid #dddcd7; border-radius: 12px; background: rgba(255,255,255,.94); color: #23252a; text-align: center; box-shadow: 0 8px 22px rgba(16,17,20,.035); transition: transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease,color .22s ease; }
.area-directory-grid>a:hover,.area-directory-grid>a:focus-visible { transform: translateY(-4px); border-color: var(--gold); outline: none; background: #fff8e7; color: #895b00; box-shadow: 0 16px 34px rgba(16,17,20,.09); }
.area-directory-grid>a[hidden] { display: none!important; }
.area-directory-grid strong { max-width: 100%; font-size: 12px; line-height: 1.3; overflow-wrap: anywhere; }
.area-directory-grid small { color: #919399; font-size: 8px; font-weight: 700; letter-spacing: .035em; text-transform: uppercase; }
.area-directory-empty { margin: 50px 0 0; padding: 58px 25px; border: 1px dashed #d5d3cc; border-radius: 24px; background: #fff; text-align: center; }
.area-directory-empty[hidden] { display: none!important; }
.area-directory-empty>span { width: 52px; height: 52px; display: grid; place-items: center; margin: 0 auto 18px; border-radius: 15px; background: #18191b; color: var(--gold); font-size: 22px; }
.area-directory-empty h2 { margin: 0 0 8px; font-size: 27px; }
.area-directory-empty p { margin: 0; color: #73767c; }
.area-directory-cta { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 50px; margin-top: 85px; padding: 48px 52px; border-radius: 24px; background: radial-gradient(circle at 90% 20%,rgba(245,174,18,.22),transparent 28%),#18191b; color: #fff; box-shadow: 0 30px 70px rgba(16,17,20,.2); }
.area-directory-cta::after { content: ""; position: absolute; right: -105px; bottom: -135px; width: 290px; height: 290px; border: 48px solid rgba(255,255,255,.035); border-radius: 50%; pointer-events: none; }
.area-directory-cta>* { position: relative; z-index: 1; }
.area-directory-cta span { color: var(--gold); font-size: 10px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.area-directory-cta h2 { margin: 9px 0 8px; color: #fff; font-family: "Avenir Next","Segoe UI",Helvetica,Arial,sans-serif; font-size: clamp(30px,3vw,43px); font-weight: 800; line-height: 1.08; letter-spacing: -.035em; }
.area-directory-cta p { max-width: 650px; margin: 0; color: #b6b8bd; font-size: 14px; line-height: 1.65; }
.area-directory-cta>div:last-child { min-width: 215px; display: flex; align-items: center; flex-direction: column; gap: 13px; }
.area-directory-cta>div:last-child>a:last-child { color: #d6d7da; font-size: 10px; font-weight: 800; }
.area-directory-cta>div:last-child>a:last-child:hover { color: var(--gold); }

@media (max-width: 1080px) {
  .area-directory-grid { grid-template-columns: repeat(5,minmax(0,1fr)); }
}

@media (max-width: 860px) {
  .area-directory-section { padding: 70px 0 90px; }
  .area-directory-intro { grid-template-columns: minmax(0,1fr); gap: 25px; }
  .area-directory-search { max-width: 620px; }
  .area-directory-toolbar { align-items: flex-start; flex-direction: column; margin-bottom: 46px; }
  .area-directory-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .area-directory-cta { grid-template-columns: minmax(0,1fr); gap: 28px; padding: 40px 34px; }
  .area-directory-cta>div:last-child { min-width: 0; align-items: flex-start; }
}

@media (max-width: 620px) {
  .area-directory-section { padding: 58px 0 75px; }
  .area-directory-section::before { display: none; }
  .area-directory-intro h2 { font-size: clamp(34px,10.5vw,46px); }
  .area-directory-search input { height: 56px; }
  .area-directory-search button { top: 7px; }
  .area-directory-toolbar { margin-bottom: 40px; padding: 14px; }
  .area-letter-nav { gap: 4px; }
  .area-letter-nav a { width: 29px; height: 29px; }
  .area-directory-groups { gap: 46px; }
  .area-directory-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .area-directory-grid>a { min-height: 74px; padding: 10px 7px; }
  .area-directory-group>header { gap: 9px; }
  .area-directory-group>header h2 { width: 43px; height: 43px; flex-basis: 43px; border-radius: 12px; }
  .area-directory-group>header span { padding: 5px 8px; font-size: 8px; }
  .area-directory-cta { margin-top: 65px; padding: 33px 24px; border-radius: 20px; }
  .area-directory-cta .button { width: 100%; }
  .area-directory-cta>div:last-child { align-items: stretch; text-align: center; }
}

@media (max-width: 390px) {
  .area-directory-grid { grid-template-columns: minmax(0,1fr); }
}

/* Homepage refinement v2.7.0 */
.services-section .section-heading,
.fleet-section .section-heading,
.homepage-section-heading { width: min(820px,100%); margin-inline: auto; text-align: center; }
.services-section .section-heading .eyebrow,
.fleet-section .section-heading .eyebrow,
.homepage-section-heading .eyebrow { justify-content: center; }
.homepage-section-heading h2 { margin: 20px 0 17px; font-family: "Avenir Next","Segoe UI",Helvetica,Arial,sans-serif; font-size: clamp(40px,5vw,66px); font-weight: 800; line-height: 1.02; letter-spacing: -.052em; text-wrap: balance; }
.homepage-section-heading>p { max-width: 720px; margin: 0 auto; color: #686b71; font-size: 15px; line-height: 1.78; }
.service-card { position: relative; }
.service-card .card-image { height: auto; aspect-ratio: 3/2; }
.service-card .card-image img { object-position: center; }
.service-body h3 a { transition: color .2s ease; }
.service-card:hover .service-body h3 a { color: #9b6800; }

.why-choose-section { position: relative; overflow: hidden; padding: 116px 0; background: radial-gradient(circle at 5% 8%,rgba(245,174,18,.13),transparent 25%),linear-gradient(180deg,#fff,#f6f4ee); }
.why-choose-section::after { content: ""; position: absolute; right: -140px; top: 120px; width: 360px; height: 360px; border: 60px solid rgba(245,174,18,.07); border-radius: 50%; pointer-events: none; }
.why-choose-section>.shell { position: relative; z-index: 1; }
.why-choose-layout { display: grid; grid-template-columns: .87fr 1.13fr; gap: 26px; margin-top: 56px; }
.why-choose-story { position: relative; overflow: hidden; min-height: 100%; padding: 46px; border-radius: 24px; background: #151619; color: #fff; box-shadow: 0 30px 70px rgba(16,17,20,.18); }
.why-choose-story::after { content: ""; position: absolute; right: -95px; bottom: -115px; width: 270px; height: 270px; border: 45px solid rgba(245,174,18,.12); border-radius: 50%; }
.why-choose-story>* { position: relative; z-index: 1; }
.why-years { display: inline-flex; align-items: center; gap: 12px; padding: 10px 14px; border: 1px solid rgba(245,174,18,.3); border-radius: 999px; background: rgba(245,174,18,.08); }
.why-years strong { color: var(--gold); font-size: 21px; }
.why-years small { color: #d1d2d5; font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.why-choose-story h3 { max-width: 480px; margin: 30px 0 19px; font-family: "Avenir Next","Segoe UI",Helvetica,Arial,sans-serif; font-size: clamp(30px,3.3vw,46px); font-weight: 800; line-height: 1.08; letter-spacing: -.04em; }
.why-choose-story p { max-width: 540px; margin: 0 0 31px; color: #b7b9be; font-size: 14px; line-height: 1.76; }
.why-choose-story .button-dark { border-color: rgba(255,255,255,.16); background: var(--gold); color: #111214; }
.why-choose-story .button-dark:hover { background: var(--gold-2); }
.why-choose-cards { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.why-choose-cards article { display: grid; grid-template-columns: auto 1fr; align-content: start; gap: 17px; min-height: 210px; padding: 31px 28px; border: 1px solid #deddd8; border-radius: 19px; background: rgba(255,255,255,.92); box-shadow: 0 15px 38px rgba(16,17,20,.055); transition: transform .28s ease,border-color .28s ease,box-shadow .28s ease; }
.why-choose-cards article:hover { transform: translateY(-7px); border-color: var(--gold); box-shadow: 0 24px 50px rgba(16,17,20,.1); }
.why-choose-cards article>span { width: 43px; height: 43px; display: grid; place-items: center; border-radius: 12px; background: #17181b; color: var(--gold); font-size: 10px; font-weight: 900; }
.why-choose-cards h3 { margin: 3px 0 11px; font-size: 19px; letter-spacing: -.025em; }
.why-choose-cards p { margin: 0; color: #66696f; font-size: 13px; line-height: 1.7; }

.reviews-grid blockquote:nth-child(4) footer>span { background: linear-gradient(145deg,#d88913,#9b5e00); }
.reviews-grid blockquote:nth-child(5) footer>span { background: linear-gradient(145deg,#3275d4,#174c99); }
.reviews-grid blockquote:nth-child(6) footer>span { background: linear-gradient(145deg,#dd533f,#9d281b); }

.trusted-taxi-section { position: relative; overflow: hidden; padding: 116px 0; background: #fff; }
.trusted-taxi-section::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(16,17,20,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(16,17,20,.025) 1px,transparent 1px); background-size: 54px 54px; pointer-events: none; }
.trusted-taxi-section>.shell { position: relative; z-index: 1; }
.trusted-taxi-copy-panel { width: min(980px,100%); margin: 48px auto 0; padding: 42px 48px 48px; border: 1px solid #deddd9; border-radius: 24px; background: rgba(255,255,255,.96); box-shadow: 0 24px 65px rgba(16,17,20,.08); }
.trusted-taxi-lead { max-width: 850px; margin: 0 auto; color: #555960; font-size: 16px; line-height: 1.85; text-align: center; }
.trusted-taxi-lead strong { color: #111216; }
.trusted-taxi-read-more { margin-top: 25px; }
.trusted-taxi-read-more>summary { width: max-content; min-width: 154px; display: flex; align-items: center; justify-content: center; gap: 12px; margin: 0 auto; padding: 14px 24px; border: 1px solid #e3a10f; border-radius: 999px; background: linear-gradient(135deg,#ffc13c,#f2a900); color: #111216; box-shadow: 0 10px 26px rgba(226,153,0,.22); cursor: pointer; list-style: none; font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; transition: transform .22s ease,box-shadow .22s ease,background .22s ease; }
.trusted-taxi-read-more>summary::-webkit-details-marker { display: none; }
.trusted-taxi-read-more>summary:hover { transform: translateY(-2px); background: linear-gradient(135deg,#ffca50,#f5ae12); box-shadow: 0 14px 30px rgba(226,153,0,.3); }
.trusted-taxi-read-more>summary:focus-visible { outline: 3px solid rgba(245,174,18,.32); outline-offset: 4px; }
.trusted-taxi-read-more>summary i { width: 23px; height: 23px; display: grid; place-items: center; border-radius: 50%; background: #17181b; color: var(--gold); font-style: normal; transition: transform .25s ease; }
.trusted-taxi-read-more .read-less-label { display: none; }
.trusted-taxi-read-more[open]>summary i { transform: rotate(180deg); }
.trusted-taxi-read-more[open]>summary .read-more-label { display: none; }
.trusted-taxi-read-more[open]>summary .read-less-label { display: inline; }
.trusted-taxi-expanded-content { margin-top: 39px; border-top: 1px solid #e6e4df; }
.trusted-taxi-expanded-content>section { padding: 32px 4px; border-bottom: 1px solid #e6e4df; }
.trusted-taxi-expanded-content h3 { margin: 0 0 13px; color: #151619; font-family: "Avenir Next","Segoe UI",Helvetica,Arial,sans-serif; font-size: clamp(23px,2.5vw,30px); line-height: 1.18; letter-spacing: -.035em; }
.trusted-taxi-expanded-content h3::before { content: ""; width: 28px; height: 3px; display: inline-block; margin: 0 12px 7px 0; background: var(--gold); }
.trusted-taxi-expanded-content p { margin: 0; color: #62656b; font-size: 14px; line-height: 1.82; }
.trusted-taxi-expanded-content p+p { margin-top: 12px; }
.trusted-taxi-expanded-content .text-link { display: inline-flex; gap: 8px; margin-top: 17px; padding-bottom: 4px; border-bottom: 2px solid var(--gold); font-size: 11px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.trusted-taxi-cta { position: relative; overflow: hidden; display: flex; align-items: center; justify-content: space-between; gap: 38px; margin-top: 23px; padding: 36px 39px; border-radius: 20px; background: radial-gradient(circle at 85% 15%,rgba(245,174,18,.2),transparent 30%),#151619; color: #fff; box-shadow: 0 26px 60px rgba(16,17,20,.16); }
.trusted-taxi-cta small { color: var(--gold); font-size: 9px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.trusted-taxi-cta h3 { max-width: 650px; margin: 9px 0 0; color: #fff; font-size: clamp(25px,3vw,38px); line-height: 1.1; letter-spacing: -.035em; }
.trusted-taxi-cta p { margin: 10px 0 0; color: #c7c9cd; font-size: 13px; }
.trusted-taxi-cta>div:last-child { display: flex; flex: 0 0 auto; gap: 10px; }

.home-latest-posts { padding: 112px 0 118px; background: linear-gradient(180deg,#f6f4ee,#fff); }
.home-post-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 23px; margin-top: 55px; }
.home-post-card { overflow: hidden; border: 1px solid #deddd8; border-radius: 19px; background: #fff; box-shadow: 0 16px 45px rgba(16,17,20,.065); transition: transform .28s ease,border-color .28s ease,box-shadow .28s ease; }
.home-post-card:hover { transform: translateY(-8px); border-color: var(--gold); box-shadow: 0 27px 60px rgba(16,17,20,.12); }
.home-post-image { position: relative; overflow: hidden; display: block; aspect-ratio: 16/10; background: #ddd; }
.home-post-image img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .55s ease; }
.home-post-card:hover .home-post-image img { transform: scale(1.055); }
.home-post-image>span { position: absolute; left: 18px; bottom: 18px; padding: 7px 10px; border-radius: 999px; background: rgba(16,17,20,.88); color: #fff; font-size: 8px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; backdrop-filter: blur(8px); }
.home-post-card>div { padding: 28px 27px 31px; }
.home-post-card>div>small { color: #9a6700; font-size: 9px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.home-post-card h3 { margin: 13px 0 12px; font-family: "Avenir Next","Segoe UI",Helvetica,Arial,sans-serif; font-size: 23px; line-height: 1.2; letter-spacing: -.03em; }
.home-post-card h3 a:hover { color: #956300; }
.home-post-card p { min-height: 68px; margin: 0 0 21px; color: #66696f; font-size: 13px; line-height: 1.7; }
.home-post-link { display: inline-flex; gap: 8px; padding-bottom: 5px; border-bottom: 2px solid var(--gold); font-size: 10px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.home-post-link:hover { gap: 13px; }
.home-post-action { margin-top: 38px; text-align: center; }

@media (max-width: 1020px) {
  .why-choose-layout { grid-template-columns: minmax(0,1fr); }
  .why-choose-story { min-height: auto; }
  .home-post-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-post-card:last-child { grid-column: 1/-1; width: calc(50% - 12px); justify-self: center; }
}

@media (max-width: 720px) {
  .homepage-section-heading h2 { font-size: clamp(36px,10vw,48px); }
  .why-choose-section,.trusted-taxi-section,.home-latest-posts { padding: 78px 0 84px; }
  .why-choose-layout,.home-post-grid { margin-top: 40px; }
  .why-choose-story { padding: 34px 27px; border-radius: 19px; }
  .why-choose-cards { grid-template-columns: minmax(0,1fr); }
  .why-choose-cards article { min-height: 0; padding: 27px 23px; }
  .trusted-taxi-copy-panel { margin-top: 36px; padding: 31px 24px 28px; border-radius: 19px; }
  .trusted-taxi-lead { font-size: 14px; line-height: 1.76; }
  .trusted-taxi-read-more>summary { min-width: 148px; padding: 13px 21px; }
  .trusted-taxi-expanded-content { margin-top: 31px; }
  .trusted-taxi-expanded-content>section { padding: 27px 0; }
  .trusted-taxi-expanded-content h3 { font-size: 23px; }
  .trusted-taxi-cta { align-items: stretch; flex-direction: column; padding: 31px 25px; }
  .trusted-taxi-cta>div:last-child { width: 100%; }
  .trusted-taxi-cta .button { flex: 1; padding-inline: 14px; }
  .home-post-grid { grid-template-columns: minmax(0,1fr); }
  .home-post-card:last-child { grid-column: auto; width: 100%; }
  .home-post-card p { min-height: 0; }
}

/* Final small-screen booking progress alignment override. */
@media (max-width: 620px) {
  .booking-workspace .booking-progress { align-items: start; }
  .booking-workspace .booking-progress button { align-content: start; justify-items: center; min-height: 68px; padding-inline: 1px; }
  .booking-workspace .booking-progress button strong { width: 100%; max-width: 96px; min-height: 24px; display: flex; align-items: flex-start; justify-content: center; font-size: 7px; line-height: 1.25; text-align: center; white-space: normal; overflow-wrap: normal; }
  .booking-progress-track { top: 29px; }
}

/* v2.21 — footer payments and scroll-triggered contact controls */
.footer-payments-highlight{margin-top:22px;padding:16px;border:1px solid rgba(245,174,18,.32);border-radius:14px;background:linear-gradient(145deg,rgba(245,174,18,.14),rgba(245,174,18,.035));box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}.footer-payments-highlight strong{color:var(--gold);font-size:11px}.footer-payments-highlight>span{display:block;color:#b8bbc1;font-size:9px;line-height:1.55}.footer-payments-highlight img{width:100%;max-width:260px;margin-top:8px}.floating-contact-rail{position:fixed;z-index:92;top:50%;right:18px;display:flex;flex-direction:column;gap:11px;opacity:0;pointer-events:none;transform:translate(22px,-50%);transition:opacity .28s ease,transform .28s ease}.floating-contact-rail.is-visible{opacity:1;pointer-events:auto;transform:translate(0,-50%)}.floating-contact-rail a{position:relative;width:52px;height:52px;display:grid;place-items:center;border:1px solid rgba(16,17,20,.09);border-radius:50%;background:#fff;color:#121316;box-shadow:0 10px 26px rgba(16,17,20,.18);font-size:19px;transition:transform .2s ease,background .2s ease,color .2s ease}.floating-contact-rail a:hover,.floating-contact-rail a:focus-visible{transform:translateX(-4px);background:var(--gold);outline:3px solid rgba(245,174,18,.28);outline-offset:2px}.floating-contact-rail a.contact-sms{background:#2878d7;color:#fff}.floating-contact-rail a.contact-sms:hover,.floating-contact-rail a.contact-sms:focus-visible{background:#1c64b6}.floating-contact-rail .contact-sms-icon{font-size:10px;font-weight:900;letter-spacing:.04em}.floating-contact-rail a.contact-whatsapp{background:#25d366;color:#fff}.floating-contact-rail a.contact-whatsapp:hover,.floating-contact-rail a.contact-whatsapp:focus-visible{background:#16b956}.floating-contact-rail b{position:absolute;right:61px;padding:7px 9px;border-radius:6px;background:#111214;color:#fff;box-shadow:0 7px 18px rgba(0,0,0,.17);font-size:9px;letter-spacing:.04em;opacity:0;pointer-events:none;transform:translateX(5px);transition:opacity .18s ease,transform .18s ease;white-space:nowrap}.floating-contact-rail a:hover b,.floating-contact-rail a:focus-visible b{opacity:1;transform:translateX(0)}.back-to-top{position:fixed;z-index:93;right:22px;bottom:22px;width:46px;height:46px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.18);border-radius:50%;background:#111214;color:#fff;box-shadow:0 10px 25px rgba(16,17,20,.25);cursor:pointer;font-size:19px;opacity:0;pointer-events:none;transform:translateY(15px);transition:opacity .25s ease,transform .25s ease,background .2s ease}.back-to-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.back-to-top:hover,.back-to-top:focus-visible{background:var(--gold);color:var(--ink);outline:3px solid rgba(245,174,18,.25);outline-offset:2px}
@media(max-width:860px){.mobile-dock{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:7px;min-height:62px;padding:6px 7px}.mobile-dock>a{min-height:48px;gap:8px;border-radius:999px;font-size:13px;font-weight:900}.mobile-dock .dock-call{background:linear-gradient(135deg,#f8c955,var(--gold))}.mobile-dock .dock-whatsapp{display:flex;align-items:center;justify-content:center;background:#25d366;color:#fff}.floating-contact-rail{display:none}.back-to-top{right:14px;bottom:88px;width:42px;height:42px}.footer-payments-highlight{width:100%;max-width:360px}.footer-payments-highlight img{max-width:100%}}

/* v2.22+ — route display, payment choice and service-area booking form */
.booking-google-map-unavailable{height:100%;min-height:280px;display:grid;align-content:center;justify-items:center;gap:9px;padding:30px;background:linear-gradient(145deg,#f4f3ef,#e3e1da);color:#25272b;text-align:center}.booking-google-map-unavailable strong{font-size:15px}.booking-google-map-unavailable span{max-width:360px;color:#6f7278;font-size:11px;line-height:1.55}.booking-payment-options{min-width:0;margin:20px 0 0;padding:0;border:0}.booking-payment-options legend{margin-bottom:9px;color:#5a5c61;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.booking-payment-options>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.booking-payment-options label{position:relative;min-width:0;cursor:pointer}.booking-payment-options input{position:absolute;opacity:0;pointer-events:none}.booking-payment-options span{min-height:48px;display:flex;align-items:center;justify-content:center;padding:9px;border:1px solid #d2d2ce;border-radius:9px;background:#fbfbf9;color:#45474c;font-size:10px;font-weight:850;text-align:center;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.booking-payment-options input:checked+span{border-color:var(--gold);background:#fff5d9;box-shadow:inset 0 0 0 1px var(--gold);color:#6d4c00}.booking-payment-options input:focus-visible+span{outline:3px solid rgba(245,174,18,.26);outline-offset:2px}.booking-extras:has(input[name="toll"]){grid-template-columns:repeat(3,minmax(0,1fr))}
.service-area-layout{grid-template-columns:minmax(0,1fr) 460px}.sidebar-booking-engine{padding:0;background:transparent}.sidebar-booking-engine::before{display:none}.sidebar-booking-engine>.shell{width:100%}.sidebar-booking-engine .booking-heading{padding:23px 21px;border:1px solid #deddd8;border-radius:18px;background:#fff;text-align:left;box-shadow:0 14px 35px rgba(16,17,20,.06)}.sidebar-booking-engine .booking-heading .eyebrow{justify-content:flex-start}.sidebar-booking-engine .booking-heading h2{margin:10px 0 8px;font-size:31px}.sidebar-booking-engine .booking-heading p{font-size:11px;line-height:1.55}.sidebar-booking-engine .booking-progress{margin:14px 0;padding:5px}.sidebar-booking-engine .booking-progress button{gap:5px;padding:8px 3px}.sidebar-booking-engine .booking-progress button>span{width:24px;height:24px}.sidebar-booking-engine .booking-progress strong{font-size:7px}.sidebar-booking-engine .booking-progress small{display:none}.sidebar-booking-engine .booking-step-grid,.sidebar-booking-engine .confirmation-step-grid{grid-template-columns:minmax(0,1fr);gap:14px}.sidebar-booking-engine .booking-panel{padding:22px 19px}.sidebar-booking-engine .panel-title{padding-bottom:18px}.sidebar-booking-engine .panel-title>span{width:35px;height:35px}.sidebar-booking-engine .panel-title h3{font-size:21px}.sidebar-booking-engine .booking-map-card{box-shadow:0 18px 45px rgba(16,17,20,.16)}.sidebar-booking-engine .booking-map-frame{height:280px}.sidebar-booking-engine .booking-field-grid{grid-template-columns:1fr 1fr}.sidebar-booking-engine .booking-vehicle-grid{grid-template-columns:1fr}.sidebar-booking-engine .booking-vehicle-grid>label{grid-template-columns:78px minmax(0,1fr) auto;gap:9px;padding:12px}.sidebar-booking-engine .booking-vehicle-grid .vehicle-art{width:74px;height:55px}.sidebar-booking-engine .vehicle-fare-bar{grid-template-columns:1fr;gap:13px;padding:17px}.sidebar-booking-engine .vehicle-fare-bar strong{font-size:25px}.sidebar-booking-engine .booking-extras,.sidebar-booking-engine .booking-extras:has(input[name="toll"]){grid-template-columns:1fr}.sidebar-booking-engine .booking-payment-options>div{grid-template-columns:1fr 1fr}.sidebar-booking-engine .booking-review{position:static;padding:24px 21px}.sidebar-booking-engine .booking-nav .button{min-width:0;padding-inline:13px;font-size:9px}.sidebar-booking-engine .booking-success{padding:30px 20px}.sidebar-booking-engine .booking-success h3{font-size:31px}
@media(max-width:1050px){.service-area-layout{grid-template-columns:minmax(0,1fr)}.sidebar-booking-engine{max-width:760px;margin:0 auto}.sidebar-booking-engine .booking-step-grid{grid-template-columns:minmax(0,1fr)}.sidebar-booking-engine .booking-field-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.booking-payment-options>div{grid-template-columns:1fr 1fr}.booking-extras:has(input[name="toll"]){grid-template-columns:1fr}.sidebar-booking-engine .booking-heading{padding:20px 18px}.sidebar-booking-engine .booking-heading h2{font-size:28px}.sidebar-booking-engine .booking-field-grid{grid-template-columns:1fr}.sidebar-booking-engine .booking-map-frame{height:250px}}
@media(prefers-reduced-motion:reduce){.floating-contact-rail,.floating-contact-rail a,.floating-contact-rail b,.back-to-top{transition:none}}

@media (max-width: 460px) {
  .why-choose-cards article { grid-template-columns: minmax(0,1fr); }
  .why-choose-story .button,.trusted-taxi-cta .button { width: 100%; }
  .trusted-taxi-cta>div:last-child { flex-direction: column; }
}

/* Review controls and full Reasons to Choose Us introduction v2.7.1 */
.why-choose-section .homepage-section-heading { width: min(1040px,100%); }
.why-choose-intro-text { max-width: 980px; margin: 0 auto; color: #62656b; }
.why-choose-intro-text p { margin: 0; font-size: 15px; line-height: 1.8; }
.why-choose-intro-text p+p { margin-top: 12px; }
.reviews-carousel { overflow: hidden; padding-right: 34px; padding-left: 34px; }
.review-prev { left: 4px; }
.review-next { right: 4px; }
.review-arrow { line-height: 1; padding: 0 0 3px; }

@media (max-width: 720px) {
  .why-choose-intro-text { max-width: 620px; }
  .why-choose-intro-text p { font-size: 14px; line-height: 1.72; }
  .reviews-carousel { padding-right: 26px; padding-left: 26px; }
  .review-prev { left: 2px; }
  .review-next { right: 2px; }
}

/* Vehicle catalogue and three-stage booking flow v2.9.0 */
.fleet-card>img {
  height: 250px;
  padding: 18px 18px 8px;
  object-fit: contain;
  object-position: center;
  background: radial-gradient(circle at 50% 75%,#fff 0%,#f7f7f4 54%,#ecece8 100%);
  filter: none;
}
.fleet-card:nth-child(4)>img { object-position: center; }
.fleet-card:hover>img {
  transform: translateY(-4px) scale(1.035);
  filter: none;
}

.booking-contact-inline {
  margin-top: 25px;
  padding-top: 23px;
  border-top: 1px solid #e3e1da;
}
.booking-contact-first {
  margin-top: 23px;
  padding-top: 0;
  border-top: 0;
}
.booking-contact-first .booking-field-grid { margin-top: 0; }
.booking-trip-heading {
  margin-top: 27px;
  margin-bottom: -5px;
  padding-top: 24px;
  border-top: 1px solid #e3e1da;
}
.booking-subheading { margin-bottom: -3px; }
.booking-subheading small {
  color: #966400;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.booking-subheading h4 {
  margin: 7px 0 0;
  color: #17181b;
  font-family: "Avenir Next","Segoe UI",Helvetica,Arial,sans-serif;
  font-size: 21px;
  line-height: 1.2;
  letter-spacing: -.025em;
}
.confirmation-step-grid {
  grid-template-columns: minmax(0,1fr) 380px;
  align-items: start;
}
.options-panel { min-width: 0; }
.booking-notes { grid-template-columns: minmax(0,1fr); }

.vehicle-panel { max-width: 1180px; }
.booking-vehicle-grid {
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 14px;
  align-items: stretch;
}
.booking-vehicle-grid>label {
  min-width: 0;
  min-height: 390px;
  display: flex;
  align-items: stretch;
  flex-direction: column;
  gap: 0;
  overflow: hidden;
  padding: 0;
  border: 1px solid #d9d9d5;
  border-radius: 18px;
  background: #fff;
}
.booking-vehicle-grid>label:hover {
  transform: translateY(-5px);
  box-shadow: 0 18px 38px rgba(16,17,20,.1);
}
.booking-vehicle-grid>label.selected {
  border-color: #eea300;
  background: linear-gradient(180deg,#fff 0%,#fff9ea 100%);
  box-shadow: inset 0 0 0 2px #f0a600,0 16px 34px rgba(16,17,20,.09);
}
.vehicle-art-shell {
  aspect-ratio: 3/2;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: 10px 10px 2px;
  border-bottom: 1px solid #eceae4;
  background: radial-gradient(circle at 50% 76%,#fff 0%,#f8f8f5 64%,#eeeeea 100%);
}
.booking-vehicle-grid .vehicle-art {
  width: 100%;
  height: 100%;
  display: block;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  object-fit: contain;
  object-position: center;
  box-shadow: none;
  transition: transform .35s cubic-bezier(.22,1,.36,1);
}
.booking-vehicle-grid label:nth-child(4) .vehicle-art { object-position: center; }
.booking-vehicle-grid label:hover .vehicle-art,
.booking-vehicle-grid label.selected .vehicle-art {
  transform: translateY(-2px) scale(1.045);
  box-shadow: none;
}
.vehicle-card-copy {
  min-width: 0;
  display: flex;
  flex: 1;
  align-items: stretch;
  flex-direction: column;
  padding: 19px 18px 18px;
}
.booking-vehicle-grid .vehicle-card-copy>small {
  color: #9b6800;
  font-size: 8px;
  line-height: 1.25;
}
.booking-vehicle-grid .vehicle-card-copy h4 {
  margin: 7px 0 14px;
  font-family: "Avenir Next","Segoe UI",Helvetica,Arial,sans-serif;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -.035em;
}
.vehicle-specs {
  display: grid;
  gap: 8px;
  padding: 13px 0;
  border-top: 1px solid #deddd8;
  border-bottom: 1px solid #deddd8;
}
.booking-vehicle-grid .vehicle-specs p {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: #565960;
  font-size: 10px;
  line-height: 1.35;
}
.vehicle-specs p::before {
  content: "";
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border: 1.5px solid #8c8e93;
  border-radius: 2px;
}
.vehicle-specs p b {
  margin-right: auto;
  color: #303237;
  font-weight: 750;
}
.vehicle-card-copy>i {
  width: 100%;
  min-height: 37px;
  display: grid;
  place-items: center;
  margin-top: auto;
  padding: 8px 10px;
  border: 1px solid #d7d6d1;
  border-radius: 9px;
  color: #5d6066;
  font-size: 8px;
  font-style: normal;
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.booking-vehicle-grid>label.selected .vehicle-card-copy>i {
  border-color: #eba000;
  background: var(--gold);
  color: #151619;
}

@media (max-width: 980px) {
  .booking-vehicle-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .confirmation-step-grid { grid-template-columns: minmax(0,1fr); }
  .booking-first-step-grid .booking-map-card { order: initial; }
}

@media (max-width: 620px) {
  .fleet-card>img { height: 230px; padding: 16px 14px 5px; }
  .booking-panel.vehicle-panel { padding: 22px 10px; }
  .booking-vehicle-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .booking-vehicle-grid>label { min-height: 342px; border-radius: 15px; }
  .vehicle-art-shell { padding: 6px 5px 0; }
  .vehicle-card-copy { padding: 14px 12px 13px; }
  .booking-vehicle-grid .vehicle-card-copy h4 { min-height: 38px; margin: 6px 0 11px; font-size: 17px; }
  .booking-vehicle-grid .vehicle-specs p { align-items: flex-start; flex-wrap: wrap; gap: 5px; font-size: 9px; }
  .vehicle-specs p b { flex: 1 1 calc(100% - 16px); }
  .vehicle-specs p b+* { margin-left: 15px; }
  .vehicle-card-copy>i { min-height: 34px; padding-inline: 4px; font-size: 7px; }
  .booking-contact-inline { margin-top: 22px; padding-top: 20px; }
  .booking-contact-first { margin-top: 20px; padding-top: 0; }
  .booking-trip-heading { margin-top: 24px; padding-top: 21px; }
  .booking-subheading h4 { font-size: 19px; }
}

@media (max-width: 360px) {
  .booking-panel.vehicle-panel { padding-inline: 8px; }
  .booking-vehicle-grid { gap: 7px; }
  .booking-vehicle-grid>label { min-height: 328px; }
  .vehicle-card-copy { padding-inline: 10px; }
  .booking-vehicle-grid .vehicle-card-copy h4 { font-size: 16px; }
}

/* Compact route map: fit its content and stay within step one on desktop only. */
.booking-first-step-grid {
  align-items: start;
}
.booking-first-step-grid .booking-map-card {
  position: static;
  align-self: start;
  height: auto;
  min-height: 0;
}

@media (min-width: 1051px) {
  .booking-first-step-grid .booking-map-card {
    position: sticky;
    top: 24px;
    z-index: 8;
  }
}

@media (max-width: 720px) {
  .booking-first-step-grid .booking-map-card {
    position: static;
    top: auto;
    z-index: auto;
    order: initial;
    width: 100%;
    max-width: 100%;
    box-shadow: 0 14px 34px rgba(16,17,20,.18);
  }
  .booking-first-step-grid .map-toolbar {
    min-height: 42px;
    gap: 10px;
    padding: 0 13px;
  }
  .booking-first-step-grid .map-toolbar span,
  .booking-first-step-grid .map-toolbar a {
    font-size: 8px;
  }
  .booking-first-step-grid .booking-map-frame,
  .booking-first-step-grid .booking-map-card iframe {
    height: 160px;
  }
  .booking-first-step-grid .route-metrics {
    min-height: 58px;
    padding: 5px;
  }
  .booking-first-step-grid .route-metrics > div {
    padding: 5px 3px;
  }
  .booking-first-step-grid .route-metrics span {
    font-size: 6px;
  }
  .booking-first-step-grid .route-metrics strong {
    margin-top: 3px;
    font-size: 12px;
  }
}
