:root {
	--idrive-ink: #07110e;
	--idrive-ink-soft: #13211d;
	--idrive-green: #15944b;
	--idrive-green-deep: #0f6f3b;
	--idrive-lime: #8ddd3f;
	--idrive-mist: #f2f6f3;
	--idrive-line: #dce5df;
	--idrive-white: #fff;
	--idrive-text: #1e2a26;
	--idrive-muted: #64716c;
	--idrive-shadow: 0 24px 70px rgba(6, 26, 18, .14);
	--idrive-radius: 1.25rem;
	--idrive-width: 1240px;
}

*, *::before, *::after { box-sizing: border-box; }
/* SC 2.4.11 Focus Not Obscured (Minimum). .site-header below is sticky at
   top:0 with .site-header__inner min-height 5.35rem (4.75rem <=760px), so every
   in-page jump - the skip link to #main-content, the article outline, the
   booking error-summary links, and sequential Tab focus that scrolls a control
   to the viewport top - previously landed the target underneath 76-86px of
   permanently pinned header. 6rem clears the 5.35rem header plus the 3px
   :focus-visible outline and its 3px offset. The reduced-motion block at the
   foot of this file resets scroll-behavior only and is unaffected. */
html { scroll-behavior: smooth; scroll-padding-top: 6rem; }
body { margin: 0; color: var(--idrive-text); background: var(--idrive-white); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.6; }
body.drawer-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--idrive-green-deep); outline-offset: 3px; }
/* SC 1.4.11 Non-text Contrast. --idrive-lime #8ddd3f measures 1.67:1 on white,
   1.53:1 on --idrive-mist and 1.50:1 on the #e7f6ec chip ground — below the 3:1
   floor on every surface it is drawn on, i.e. the focus indicator was invisible
   to the users who depend on it. --idrive-green-deep #0f6f3b measures 6.26 / 5.73
   / 5.60:1 on those same three grounds. */
.container { width: min(calc(100% - 2rem), var(--idrive-width)); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: .75rem; left: .75rem; z-index: 1000; padding: .75rem 1rem; background: var(--idrive-white); color: var(--idrive-ink); border-radius: .5rem; transform: translateY(-150%); }
.skip-link:focus { transform: none; }
.button { display: inline-flex; min-height: 2.75rem; align-items: center; justify-content: center; gap: .5rem; padding: .72rem 1.1rem; border: 1px solid transparent; border-radius: .75rem; font-weight: 750; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease; }
.button:hover { transform: translateY(-2px); }
.button--primary { color: var(--idrive-white); background: linear-gradient(135deg, var(--idrive-green), var(--idrive-green-deep)); box-shadow: 0 10px 24px rgba(21, 148, 75, .2); }
.button--ghost { color: var(--idrive-ink); border-color: var(--idrive-line); background: rgba(255,255,255,.8); }
.button--lime { color: var(--idrive-ink); background: var(--idrive-lime); }

.site-header { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,.9); border-bottom: 1px solid rgba(220,229,223,.8); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
.site-header__inner { min-height: 5.35rem; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.brand { flex: 0 0 auto; display: flex; align-items: center; gap: .55rem; }
.brand img { width: 3.4rem; height: 3.4rem; object-fit: contain; transition: opacity .25s ease, transform .25s ease; }
.brand:hover img, .brand:focus-visible img { opacity: .88; transform: scale(1.03); }
.brand > span { display: grid; line-height: 1.05; }
.brand strong { color: var(--idrive-ink); font-size: 1.2rem; font-weight: 900; letter-spacing: -.05em; }
.brand strong span, .drawer-brand strong span { color: var(--idrive-green); }
.brand small { margin-top: .3rem; color: var(--idrive-green-deep); font-size: .56rem; font-weight: 850; letter-spacing: .105em; text-transform: uppercase; }
.desktop-nav { display: flex; align-items: center; gap: clamp(.8rem, 1.5vw, 1.45rem); font-size: .93rem; font-weight: 680; }
.desktop-nav a, .nav-explore { position: relative; padding: .5rem 0; color: #27342f; }
.desktop-nav a::after, .nav-explore::after { content: ""; position: absolute; left: 0; bottom: .25rem; width: 100%; height: 2px; background: var(--idrive-green); transform: scaleX(0); transform-origin: right; transition: transform .2s ease; }
.desktop-nav a:hover::after, .nav-explore:hover::after { transform: scaleX(1); transform-origin: left; }
.nav-explore { display: inline-flex; gap: .35rem; border: 0; background: none; cursor: pointer; font-weight: inherit; }
.site-header__actions { display: flex; align-items: center; gap: .65rem; }
.header-social { display: flex; align-items: center; gap: .35rem; }
.header-social a { display: grid; place-items: center; min-width: 2.25rem; min-height: 2.25rem; padding: 0 .35rem; color: var(--idrive-green-deep); border: 1px solid var(--idrive-line); border-radius: 50%; background: var(--idrive-white); font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.header-social a:hover { color: var(--idrive-white); background: var(--idrive-green-deep); border-color: var(--idrive-green-deep); }
.menu-toggle { display: none; width: 2.9rem; height: 2.9rem; border: 1px solid var(--idrive-line); border-radius: .75rem; background: var(--idrive-white); align-items: center; justify-content: center; flex-direction: column; gap: 5px; }
.menu-toggle > span:not(.sr-only) { width: 1.25rem; height: 2px; background: var(--idrive-ink); border-radius: 999px; }
.mega-menu { position: absolute; inset: 100% 0 auto; padding: 2rem 0; background: var(--idrive-white); border-bottom: 1px solid var(--idrive-line); box-shadow: var(--idrive-shadow); }
.mega-menu__grid { display: grid; grid-template-columns: 1.1fr 1.1fr .8fr 1.2fr; gap: 2rem; }
.mega-menu section { display: flex; flex-direction: column; gap: .75rem; }
.mega-menu section > a:not(.button) { display: grid; gap: .1rem; padding: .25rem; border-radius: .5rem; }
.mega-menu section > a:hover { color: var(--idrive-green-deep); }
.mega-menu section span { font-size: .8rem; color: var(--idrive-muted); }
.menu-kicker { margin: 0 0 .3rem; font-size: .72rem; color: var(--idrive-green-deep); text-transform: uppercase; letter-spacing: .13em; font-weight: 850; }
.mega-menu__feature { padding: 1.25rem; color: var(--idrive-white); background: var(--idrive-ink); border-radius: 1rem; }
.mega-menu__feature span { color: #b7c8bf !important; }
.drawer-backdrop { position: fixed; inset: 0; z-index: 200; background: rgba(4, 14, 10, .58); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.mobile-drawer { position: fixed; top: 0; right: 0; z-index: 210; width: min(92vw, 26rem); height: 100dvh; padding: 1rem; background: var(--idrive-white); transform: translateX(105%); transition: transform .25s ease; overflow-y: auto; }
.mobile-drawer.is-open { transform: none; }
.mobile-drawer__head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 1rem; border-bottom: 1px solid var(--idrive-line); }
.drawer-brand { display: flex; align-items: center; gap: .65rem; color: var(--idrive-ink); font-size: 1.14rem; font-weight: 900; letter-spacing: -.045em; }
.drawer-brand img { width: 3.85rem; height: 3.85rem; object-fit: contain; }
.mobile-drawer__head button { width: 2.75rem; height: 2.75rem; border: 0; border-radius: 50%; background: var(--idrive-mist); font-size: 1.7rem; }
.mobile-drawer nav { display: grid; padding: 1rem 0; }
.mobile-drawer nav a { padding: .95rem .25rem; border-bottom: 1px solid var(--idrive-line); font-weight: 720; }
.mobile-drawer__actions { display: grid; gap: .7rem; }
.drawer-social { display: flex; justify-content: center; gap: 1.25rem; padding-top: .5rem; color: var(--idrive-green-deep); font-size: .82rem; font-weight: 800; }
/* SC 2.5.8 Target Size (Minimum), 24x24 CSS px. Runtime measurement across 184 device x page
   runs found the footer and drawer social links rendering 70x21 and 75x21, and .text-link
   rendering 171x19 — all failing on every page. axe-core does not implement 2.5.8, which is
   why the same 184 runs returned zero axe violations while these were failing. These are
   standalone block links, so the inline-in-sentence exception does not apply. */
.drawer-social a,
.social-links a { display: inline-flex; align-items: center; min-height: 1.5rem; }
.text-link { display: inline-flex; align-items: center; justify-content: flex-end; min-height: 1.5rem; }

.hero { position: relative; overflow: hidden; padding: clamp(3.5rem, 8vw, 7.5rem) 0 0; color: var(--idrive-white); background: radial-gradient(circle at 75% 30%, #1a5139 0, #0b2319 32%, var(--idrive-ink) 68%); }
.hero__glow { position: absolute; width: 30rem; aspect-ratio: 1; border-radius: 50%; opacity: .22; filter: blur(100px); background: var(--idrive-lime); pointer-events: none; }
.hero__glow--one { top: -14rem; right: -8rem; }
.hero__glow--two { bottom: -20rem; left: -16rem; }
.hero__grid { position: relative; display: grid; grid-template-columns: minmax(0, .9fr) minmax(28rem, 1.1fr); align-items: center; gap: 1.5rem; }
.hero__copy { position: relative; z-index: 2; padding-bottom: 8rem; }
.eyebrow { display: flex; align-items: center; gap: .65rem; margin: 0 0 1rem; color: var(--idrive-green-deep); font-size: .74rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.eyebrow > span { width: 2rem; height: 2px; background: var(--idrive-lime); }
.eyebrow--light { color: #d9e6df; }
.hero h1 { max-width: 13ch; margin: 0; font-size: clamp(2.8rem, 5.4vw, 5.4rem); line-height: .98; letter-spacing: -.055em; }
.hero h1 em { color: var(--idrive-lime); font-style: normal; }
.hero__lead { max-width: 39rem; margin: 1.5rem 0 2rem; color: #c9d5cf; font-size: clamp(1rem, 1.5vw, 1.2rem); }
.hero__proof { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.hero__proof span { display: grid; padding-right: 1.5rem; border-right: 1px solid rgba(255,255,255,.18); color: #b8c7c0; font-size: .78rem; }
.hero__proof strong { color: var(--idrive-white); font-size: 1.05rem; }
.hero__visual { position: relative; min-height: clamp(24rem, 46vw, 40rem); align-self: end; }
.hero__vehicle { position: absolute; z-index: 2; right: -8%; bottom: 2rem; width: 112%; filter: drop-shadow(0 35px 35px rgba(0,0,0,.42)); animation: vehicle-float 6s ease-in-out infinite; }
.orbit { position: absolute; top: 13%; left: 7%; width: 72%; aspect-ratio: 1; border: 1px solid rgba(141,221,63,.25); border-radius: 50%; }
.orbit::after { content: ""; position: absolute; top: 13%; right: 5%; width: .65rem; aspect-ratio: 1; border-radius: 50%; background: var(--idrive-lime); box-shadow: 0 0 20px var(--idrive-lime); }
.orbit--two { top: 23%; left: 17%; width: 52%; animation: orbit-spin 22s linear infinite reverse; }
.orbit--one { animation: orbit-spin 28s linear infinite; }
.hero-badge { position: absolute; z-index: 4; display: flex; align-items: center; gap: .55rem; padding: .72rem .95rem; color: var(--idrive-ink); background: rgba(255,255,255,.94); border: 1px solid rgba(255,255,255,.72); border-radius: 999px; box-shadow: 0 15px 40px rgba(0,0,0,.22); font-size: .78rem; font-weight: 800; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); animation: badge-pulse 4s ease-in-out infinite; }
.hero-badge span { display: grid; place-items: center; width: 1.65rem; aspect-ratio: 1; border-radius: 50%; color: var(--idrive-white); background: var(--idrive-green); }
.hero-badge--one { top: 16%; right: 4%; }
.hero-badge--two { top: 43%; left: -2%; animation-delay: -1.2s; }
.hero-badge--three { right: 0; bottom: 18%; animation-delay: -2.1s; }
.hero__booking { position: relative; z-index: 5; margin-top: -5rem; transform: translateY(50%); }

.booking-shell { position: relative; isolation: isolate; color: var(--idrive-text); background: linear-gradient(150deg, #071611 0%, #0a2118 54%, #0d2d20 100%); border: 1px solid rgba(141,221,63,.18); border-radius: clamp(1.25rem, 2vw, 1.75rem); box-shadow: 0 32px 85px rgba(3,18,12,.24); overflow: hidden; }
.booking-shell::before { content: ""; position: absolute; z-index: -1; inset: -12rem -7rem auto auto; width: 27rem; aspect-ratio: 1; border: 1px solid rgba(141,221,63,.12); border-radius: 50%; box-shadow: 0 0 0 3.5rem rgba(141,221,63,.025), 0 0 0 7rem rgba(141,221,63,.018); pointer-events: none; }
.booking-shell__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: clamp(1.25rem, 2.8vw, 2rem) clamp(1rem, 2.8vw, 2rem) 1rem; color: var(--idrive-white); }
.booking-shell__head h2 { margin: .24rem 0 0; color: var(--idrive-white); font-size: clamp(1.6rem, 3vw, 2.5rem); line-height: 1; letter-spacing: -.045em; }
.booking-shell__kicker { color: var(--idrive-lime); font-size: .65rem; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.booking-shell__step { flex: 0 0 auto; margin-top: .15rem; padding: .48rem .7rem; color: #c8d7d0; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; background: rgba(255,255,255,.05); font-size: .68rem; font-weight: 780; letter-spacing: .04em; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.booking-shell__tabs { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem; margin: 0 clamp(1rem, 2.8vw, 2rem) 1rem; padding: .35rem; border: 1px solid rgba(255,255,255,.09); border-radius: 1rem; background: rgba(0,0,0,.2); }
.booking-shell__tabs button { min-width: 0; min-height: 3.75rem; display: flex; align-items: center; gap: .7rem; padding: .58rem .8rem; text-align: left; color: #b7c8c0; border: 0; border-radius: .75rem; background: transparent; cursor: pointer; }
.booking-shell__tabs button > span:last-child { min-width: 0; display: grid; line-height: 1.2; }
.booking-shell__tabs button strong { color: inherit; font-size: .88rem; }
.booking-shell__tabs button small { margin-top: .16rem; color: #849b91; font-size: .68rem; font-weight: 600; }
.booking-shell__tab-icon { flex: 0 0 auto; display: grid; width: 2rem; aspect-ratio: 1; place-items: center; color: var(--idrive-lime); border: 1px solid rgba(141,221,63,.2); border-radius: .6rem; background: rgba(141,221,63,.07); font-size: .72rem; }
.booking-shell__tabs button[aria-selected="true"],
.booking-shell__tabs button[aria-checked="true"] { color: var(--idrive-white); background: rgba(255,255,255,.1); box-shadow: inset 0 0 0 1px rgba(255,255,255,.06), 0 9px 25px rgba(0,0,0,.16); }
.booking-shell__tabs button[aria-selected="true"] small,
.booking-shell__tabs button[aria-checked="true"] small { color: #adbbb5; }
.booking-shell__tabs button[aria-selected="true"] .booking-shell__tab-icon,
.booking-shell__tabs button[aria-checked="true"] .booking-shell__tab-icon { color: #0a1a13; background: var(--idrive-lime); border-color: var(--idrive-lime); box-shadow: 0 0 20px rgba(141,221,63,.16); }
.booking-shell__fields { position: relative; display: grid; grid-template-columns: 1.3fr 1.3fr .82fr .68fr .7fr minmax(11rem,.8fr); align-items: stretch; gap: .65rem; padding: 1rem clamp(1rem, 2.8vw, 2rem) 1.15rem 3.8rem; }
.booking-shell__field, .booking-shell__control { position: relative; min-width: 0; display: grid; align-content: center; gap: .18rem; min-height: 4.55rem; padding: .72rem .9rem; color: var(--idrive-muted); border: 1px solid rgba(220,229,223,.9); border-radius: .9rem; background: rgba(255,255,255,.98); box-shadow: 0 8px 24px rgba(0,0,0,.09); font-size: .65rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.booking-shell__field > label { padding: 0; border: 0; font: inherit; color: inherit; }
.booking-shell__field:hover, .booking-shell__control:hover { border-color: #a9bdb2; transform: translateY(-1px); }
.booking-shell__field:focus-within, .booking-shell__control:focus-within { border-color: var(--idrive-green); box-shadow: 0 0 0 3px rgba(141,221,63,.2), 0 12px 28px rgba(0,0,0,.13); transform: none; }
.field-control input, .field-control select { width: 100%; min-height: 2.15rem; padding: .15rem 0; border: 0; color: var(--idrive-ink); background: transparent; outline: none; font-size: .91rem; font-weight: 710; text-transform: none; letter-spacing: normal; }
.field-control select { padding-right: 1.4rem; cursor: pointer; }
.place-control { position: relative; min-width: 0; }
.place-control input[data-place-verified="true"] { padding-right: 1.75rem; background: radial-gradient(circle at calc(100% - .45rem) 50%, var(--idrive-green) 0 .22rem, transparent .24rem); }
.booking-shell__route-rail { position: absolute; z-index: 2; left: 2rem; top: 2rem; bottom: 2rem; width: 1rem; display: flex; flex-direction: column; align-items: center; justify-content: space-between; }
.booking-shell__route-rail i { width: .72rem; height: .72rem; border: 2px solid var(--idrive-lime); border-radius: 50%; background: #0a2118; box-shadow: 0 0 0 4px rgba(141,221,63,.06); }
.booking-shell__route-rail i:last-child { border-radius: .12rem; border-color: #d7e5de; }
.booking-shell__route-rail b { width: 1px; flex: 1; margin: .28rem 0; background: repeating-linear-gradient(to bottom, rgba(196,220,207,.65) 0 4px, transparent 4px 8px); }
.place-suggestions { position: absolute; top: calc(100% + 1rem); left: -.9rem; z-index: 80; width: max(calc(100% + 1.8rem), 20rem); max-width: min(32rem, calc(100vw - 2rem)); max-height: 19rem; padding: .45rem; overflow-y: auto; border: 1px solid #cfdcd4; border-radius: 1rem; background: rgba(255,255,255,.98); box-shadow: 0 24px 60px rgba(3,22,14,.24); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); }
.place-suggestions[hidden] { display: none !important; }
.place-suggestion { position: relative; width: 100%; min-height: 3.5rem; display: grid; gap: .08rem; padding: .72rem 2.4rem .72rem .85rem; text-align: left; color: var(--idrive-ink); border: 0; border-radius: .72rem; background: transparent; cursor: pointer; }
.place-suggestion::after { content: "→"; position: absolute; right: .9rem; top: 50%; color: var(--idrive-green-deep); transform: translateY(-50%); opacity: 0; transition: opacity .18s ease, transform .18s ease; }
.place-suggestion strong { font-size: .88rem; line-height: 1.35; }
.place-suggestion span { color: var(--idrive-muted); font-size: .75rem; line-height: 1.35; }
.place-suggestion:hover, .place-suggestion[aria-selected="true"] { background: linear-gradient(90deg, #edf9f1, #f7fbf8); }
.place-suggestion:hover::after, .place-suggestion[aria-selected="true"]::after { opacity: 1; transform: translate(.15rem,-50%); }
.place-suggestion:focus-visible { outline-offset: -2px; }
.button--search { min-height: 4.55rem; justify-content: space-between; gap: 1rem; padding: .7rem 1rem .7rem 1.15rem; color: #07130e; border-radius: .9rem; background: linear-gradient(135deg, #9bed46, var(--idrive-lime)); box-shadow: 0 13px 34px rgba(108,176,35,.25); }
.button--search > span { display: grid; text-align: left; line-height: 1.15; }
.button--search strong { font-size: .86rem; white-space: nowrap; }
.button--search small { margin-top: .18rem; color: #35521d; font-size: .63rem; font-weight: 720; }
.button--search b { display: grid; width: 2rem; aspect-ratio: 1; place-items: center; border-radius: 50%; background: rgba(7,19,14,.11); font-size: 1.05rem; }
.button--search:hover { background: linear-gradient(135deg, #a8f45a, #92e33e); box-shadow: 0 17px 40px rgba(108,176,35,.32); }
.booking-shell__note { display: flex; align-items: flex-start; gap: .45rem; margin: 0; padding: .8rem clamp(1rem, 2.8vw, 2rem); color: #afc0b8; border-top: 1px solid rgba(255,255,255,.08); background: rgba(0,0,0,.12); font-size: .7rem; line-height: 1.45; }
.booking-shell__note span { flex: 0 0 auto; margin: .05rem 0 0; color: var(--idrive-lime); }
.idrive-status-card { display: grid; gap: .25rem; padding: 1.2rem; color: var(--idrive-ink); background: var(--idrive-white); border-radius: 1rem; box-shadow: var(--idrive-shadow); }

.trust-strip { padding: 8.5rem 0 2.4rem; background: var(--idrive-white); border-bottom: 1px solid var(--idrive-line); }
.trust-strip__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.trust-strip span { display: flex; align-items: center; gap: .7rem; padding: .45rem 1rem; border-right: 1px solid var(--idrive-line); font-size: .84rem; font-weight: 680; }
.trust-strip span:last-child { border-right: 0; }
.trust-strip b { color: var(--idrive-green); font-size: .72rem; letter-spacing: .1em; }
.section { padding: clamp(4rem, 8vw, 7rem) 0; }
.section-heading { display: grid; grid-template-columns: 1.4fr .7fr; gap: 3rem; align-items: end; margin-bottom: 2.6rem; }
.section-heading h2, .how-section h2, .global-cta h2 { margin: 0; color: var(--idrive-ink); font-size: clamp(2rem, 3.8vw, 3.6rem); line-height: 1.08; letter-spacing: -.04em; }
.section-heading > p { margin: 0; color: var(--idrive-muted); }
.section-heading--compact { align-items: center; }
.text-link { color: var(--idrive-green-deep); font-weight: 800; text-align: right; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.service-card { position: relative; min-height: 23rem; display: flex; flex-direction: column; padding: 1.7rem; background: var(--idrive-mist); border: 1px solid var(--idrive-line); border-radius: var(--idrive-radius); transition: transform .25s ease, box-shadow .25s ease; overflow: hidden; }
.service-card:hover { transform: translateY(-6px); box-shadow: var(--idrive-shadow); }
.service-card--dark { color: var(--idrive-white); background: var(--idrive-ink); border-color: var(--idrive-ink); }
.service-card__number { color: var(--idrive-green); font-size: .75rem; font-weight: 850; letter-spacing: .1em; }
.service-card__icon { display: grid; width: 4rem; aspect-ratio: 1; margin: 3rem 0 auto; place-items: center; color: var(--idrive-white); background: var(--idrive-green); border-radius: 50%; font-size: 1.7rem; }
.service-card h3 { margin: 1.3rem 0 .5rem; font-size: 1.45rem; }
.service-card p { margin: 0 0 1.2rem; color: var(--idrive-muted); }
.service-card--dark p { color: #b7c6bf; }
.service-card strong { color: var(--idrive-green-deep); font-size: .85rem; }
.service-card--dark strong { color: var(--idrive-lime); }
.fleet-preview { background: #f7faf8; }
.vehicle-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.vehicle-card { padding: 1rem; background: var(--idrive-white); border: 1px solid var(--idrive-line); border-radius: 1rem; }
.vehicle-card__top { display: flex; justify-content: space-between; align-items: center; }
.vehicle-card__top span { padding: .32rem .55rem; color: var(--idrive-green-deep); background: #e7f6ec; border-radius: 999px; font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.vehicle-card__top button { border: 0; background: transparent; color: var(--idrive-muted); font-size: 1.35rem; }
.vehicle-card img { width: 100%; aspect-ratio: 16/9; margin: 1rem 0; object-fit: contain; }
.vehicle-card h3 { margin: 0; color: var(--idrive-ink); font-size: 1rem; }
.vehicle-card p { display: flex; gap: 1rem; margin: .5rem 0 0; color: var(--idrive-muted); font-size: .76rem; }
.how-section { color: var(--idrive-white); background: var(--idrive-ink); }
.how-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem, 8vw, 8rem); align-items: start; }
.how-section h2 { color: var(--idrive-white); }
.how-section > .container > div:first-child > p:not(.eyebrow) { color: #b6c5be; }
.steps-list { margin: 0; padding: 0; list-style: none; }
.steps-list li { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; padding: 1.35rem 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.steps-list > li > span { display: grid; width: 2.6rem; aspect-ratio: 1; place-items: center; color: var(--idrive-ink); background: var(--idrive-lime); border-radius: 50%; font-size: .72rem; font-weight: 900; }
.steps-list h3 { margin: 0 0 .2rem; }
.steps-list p { margin: 0; color: #aebdb6; }
.destination-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.destination-grid a { position: relative; min-height: 19rem; display: flex; flex-direction: column; justify-content: flex-end; padding: 1.4rem; color: var(--idrive-white); background: linear-gradient(145deg, #1e4332, #08130e); border-radius: var(--idrive-radius); overflow: hidden; }
.destination-grid a::before { content: ""; position: absolute; inset: -35% -20% auto auto; width: 15rem; aspect-ratio: 1; border: 1px solid rgba(141,221,63,.3); border-radius: 50%; }
.destination-grid span { position: absolute; top: 1.2rem; left: 1.2rem; color: var(--idrive-lime); font-size: .75rem; font-weight: 900; letter-spacing: .15em; }
.destination-grid strong { font-size: 1.65rem; }
.destination-grid small { color: #b8c7c0; }
.global-cta { padding: 4rem 0; color: var(--idrive-white); background: linear-gradient(135deg, var(--idrive-green-deep), #113c29); }
.global-cta__inner { display: grid; grid-template-columns: 1.2fr .8fr; gap: 3rem; align-items: center; }
.global-cta h2 { color: var(--idrive-white); }
.global-cta p { color: #d1ded7; }

.site-footer { padding: 4rem 0 0; color: #b8c5bf; background: #050b08; }
.site-footer__grid { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 3rem; padding-bottom: 3rem; }
.site-footer__brand img { width: 8.5rem; height: 8.5rem; object-fit: contain; object-position: left; }
.site-footer__brand p { max-width: 28rem; }
.site-footer h2 { margin: 0 0 1rem; color: var(--idrive-white); font-size: .82rem; text-transform: uppercase; letter-spacing: .1em; }
.site-footer__grid > div:not(.site-footer__brand) { display: flex; flex-direction: column; gap: .6rem; }
.site-footer a:hover { color: var(--idrive-lime); }
.social-links { display: flex; gap: 1rem; color: var(--idrive-white); font-weight: 750; }
.site-footer__bottom { display: flex; justify-content: space-between; gap: 1rem; padding: 1.3rem 0; border-top: 1px solid rgba(255,255,255,.1); font-size: .75rem; }
.site-footer__bottom p { margin: 0; }
.site-footer__bottom p:first-child span { margin-left: .55rem; }
.entry-shell { min-height: 60vh; padding: 5rem 0; }
.entry-shell > article, .entry-shell > section { width: min(100%, 820px); }
.entry-shell h1 { color: var(--idrive-ink); font-size: clamp(2.2rem, 5vw, 4rem); line-height: 1.05; }
.account-gateway__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(18rem, .6fr); gap: 1.5rem; padding: clamp(2.5rem, 6vw, 5rem) 0; }
.account-gateway__card, .account-gateway__status { padding: clamp(1.35rem, 3vw, 2.5rem); border: 1px solid var(--idrive-line); border-radius: var(--idrive-radius); background: var(--idrive-white); box-shadow: 0 16px 50px rgba(6, 26, 18, .08); }
.account-gateway__card h2 { margin-top: 0; color: var(--idrive-ink); }
.account-gateway__card li { margin: .65rem 0; }
.account-gateway__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.account-gateway__status { align-self: start; color: var(--idrive-white); background: var(--idrive-ink); }
.account-gateway__status p { color: #c6d5ce; }

.search-page { position: relative; min-height: 70vh; padding: clamp(2rem, 5vw, 4.5rem) 0 clamp(4rem, 8vw, 7rem); background: linear-gradient(180deg, #edf5f0 0, #f8faf9 34rem, #fff 34rem); overflow: hidden; }
.search-page::before { content: ""; position: absolute; inset: -14rem auto auto -12rem; width: 31rem; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(21,148,75,.12), transparent 68%); pointer-events: none; }
.search-workspace { display: grid; gap: 1.5rem; }
.search-workspace__header { position: relative; max-width: 64rem; padding: clamp(1rem, 3vw, 2.25rem) 0 .5rem; }
.search-workspace__header h1 { max-width: 17ch; margin: 0; color: var(--idrive-ink); font-size: clamp(2.4rem, 5.3vw, 4.9rem); line-height: .98; letter-spacing: -.06em; }
.search-workspace__header > p:last-child { max-width: 48rem; color: var(--idrive-muted); font-size: 1.05rem; }
.booking-shell--expanded { overflow: visible; }
.booking-shell--expanded .booking-shell__fields { grid-template-columns: minmax(12rem,1.35fr) minmax(12rem,1.35fr) minmax(9rem,.82fr) minmax(8rem,.68fr) minmax(8rem,.7fr) minmax(11rem,.8fr); }
.booking-shell__advanced { display: grid; grid-template-columns: minmax(14rem,1.35fr) minmax(8rem,.55fr) minmax(8rem,.55fr) minmax(14rem,1fr); gap: .65rem; align-items: stretch; padding: 0 clamp(1rem,2.8vw,2rem) 1.15rem; }
.booking-shell__advanced > label, .booking-shell__return label { display: grid; align-content: center; gap: .28rem; min-height: 3.85rem; padding: .65rem .8rem; color: #aebeb7; border: 1px solid rgba(255,255,255,.13); border-radius: .8rem; background: rgba(255,255,255,.06); font-size: .64rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.booking-shell__advanced select, .booking-shell__advanced input:not([type="checkbox"]) { width: 100%; min-height: 2.05rem; padding: .15rem 1.3rem .15rem 0; color: var(--idrive-white); border: 0; outline: 0; background: transparent; color-scheme: dark; font-weight: 700; }
/* SC 2.5.8 Target Size (Minimum). Runtime measurement found the two booking-shell checkboxes
   rendering 20x20 and 18x18 on all eight devices — the last remaining sub-24px targets after
   the social and .text-link fixes. Sizing the native control keeps the label association and
   the native checked semantics intact, which a custom-styled replacement would put at risk. */
.booking-shell__check input[type="checkbox"],
.booking-shell__check input[type="radio"],
.cta-intent__check input[type="checkbox"],
.cta-intent__check input[type="radio"] { inline-size: 1.5rem; block-size: 1.5rem; min-inline-size: 1.5rem; min-block-size: 1.5rem; margin: 0; accent-color: var(--idrive-lime); flex: 0 0 auto; }
.booking-shell__check,
.cta-intent__check { display: flex; align-items: center; gap: .55rem; min-block-size: 1.5rem; }.booking-shell__advanced > label:hover, .booking-shell__return label:hover { border-color: rgba(141,221,63,.38); background: rgba(255,255,255,.075); }
.booking-shell__advanced > label:focus-within, .booking-shell__return label:focus-within { border-color: var(--idrive-lime); box-shadow: 0 0 0 3px rgba(141,221,63,.15); }
.booking-shell__return { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; }
.booking-shell__return[hidden], .booking-shell__return-toggle[hidden] { display: none !important; }
.booking-shell__check { display: flex !important; align-items: center; gap: .7rem !important; min-height: 3.85rem; padding: .68rem .8rem !important; color: #e4eee9 !important; font-size: .72rem !important; letter-spacing: normal !important; text-transform: none !important; cursor: pointer; }
.booking-shell__check input { flex: 0 0 auto; width: 1.25rem; height: 1.25rem; accent-color: var(--idrive-lime); }
.booking-shell__errors { margin: 0 1rem 1rem; padding: .9rem 1rem; color: #7a271a; border: 1px solid #f2a99d; border-radius: .8rem; background: #fff1ef; }
.booking-shell__errors:focus { outline: 3px solid var(--idrive-green); outline-offset: 2px; }
.booking-shell__errors ul { display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; margin: .35rem 0 0; padding-left: 1.2rem; }
[aria-invalid="true"] { outline: 2px solid var(--idrive-error, #b42318) !important; outline-offset: 2px; }
.search-results { min-height: 18rem; container-type: inline-size; }
.search-state-card { display: grid; grid-template-columns: auto 1fr; gap: 1rem; align-items: start; padding: clamp(1.25rem, 3vw, 2rem); color: var(--idrive-text); border: 1px solid var(--idrive-line); border-radius: var(--idrive-radius); background: var(--idrive-white); box-shadow: 0 16px 45px rgba(6, 26, 18, .06); }
.search-state-card__icon { display: grid; min-width: 3.5rem; height: 3.5rem; place-items: center; color: var(--idrive-white); border-radius: .85rem; background: var(--idrive-green); font-weight: 900; }
.search-state-card h2 { margin: 0 0 .35rem; color: var(--idrive-ink); }
.search-state-card p { margin: 0 0 1rem; color: var(--idrive-muted); }
.search-state-card--warning .search-state-card__icon { background: var(--idrive-warning, #b56800); }
.results-overview { position: relative; isolation: isolate; margin-top: 1.8rem; color: var(--idrive-white); border: 1px solid rgba(141,221,63,.18); border-radius: 1.5rem; background: radial-gradient(circle at 88% -20%, rgba(141,221,63,.2), transparent 38%), linear-gradient(145deg, #071611 0%, #0a2118 58%, #0d2d20 100%); box-shadow: 0 28px 75px rgba(3,18,12,.18); overflow: hidden; }
.results-overview::before { content: ""; position: absolute; z-index: -1; top: -12rem; right: -10rem; width: 28rem; aspect-ratio: 1; border: 1px solid rgba(141,221,63,.1); border-radius: 50%; box-shadow: 0 0 0 4rem rgba(141,221,63,.025), 0 0 0 8rem rgba(141,221,63,.015); pointer-events: none; }
.results-header { display: flex; justify-content: space-between; gap: 2rem; align-items: end; padding: clamp(1.35rem,3vw,2.2rem); }
.results-header h2 { max-width: 17ch; margin: 0; color: var(--idrive-white); font-size: clamp(1.9rem, 3.5vw, 3.25rem); line-height: 1; letter-spacing: -.045em; }
.results-header .eyebrow { margin-bottom: .7rem; color: #cfddd6; }
.results-itinerary { max-width: 33rem; display: grid; gap: .55rem; justify-items: end; padding: .8rem .9rem; color: #b9c9c1; border: 1px solid rgba(255,255,255,.12); border-radius: 1rem; background: rgba(255,255,255,.06); font-size: .75rem; text-align: right; -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.results-itinerary__route { display: grid; grid-template-columns: 1.45rem minmax(0,1fr) 1.25rem 1.45rem minmax(0,1fr); gap: .5rem; align-items: center; width: 100%; color: var(--idrive-white); }
.results-itinerary__route b { display: grid; width: 1.45rem; aspect-ratio: 1; place-items: center; color: #0a1a13; border-radius: .45rem; background: var(--idrive-lime); font-size: .65rem; }
.results-itinerary__route b:nth-of-type(2) { color: var(--idrive-white); border: 1px solid rgba(255,255,255,.28); background: rgba(255,255,255,.08); }
.results-itinerary__route i { height: 1px; background: repeating-linear-gradient(to right, rgba(211,228,219,.7) 0 4px, transparent 4px 8px); }
.results-itinerary__route strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .78rem; }
.results-boundary { display: flex; gap: .75rem 1.5rem; justify-content: space-between; margin-inline: clamp(1.35rem,3vw,2.2rem); padding: .85rem 1rem; color: #d9e5df; border: 1px solid rgba(255,255,255,.1); border-radius: .85rem; background: rgba(0,0,0,.18); font-size: .78rem; }
.results-boundary strong { color: var(--idrive-lime); white-space: nowrap; }
.results-tools { display: none; }
.results-tools--enhanced { display: grid; grid-template-columns: minmax(14rem,1.35fr) minmax(11rem,.72fr) minmax(10rem,.62fr) auto; gap: .65rem; align-items: end; margin-top: 1rem; padding: 1rem clamp(1.35rem,3vw,2.2rem) 1.2rem; border-top: 1px solid rgba(255,255,255,.08); background: rgba(0,0,0,.11); }
.results-tool { min-width: 0; display: grid; gap: .34rem; color: #b7c8c0; font-size: .62rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.results-tool__control { min-width: 0; min-height: 3.35rem; display: flex; align-items: center; gap: .55rem; padding: .55rem .75rem; color: var(--idrive-ink); border: 1px solid rgba(255,255,255,.32); border-radius: .85rem; background: rgba(255,255,255,.97); box-shadow: 0 9px 24px rgba(0,0,0,.13); }
.results-tool__control:focus-within { border-color: var(--idrive-green-deep); box-shadow: 0 0 0 3px rgba(15,111,59,.28), 0 12px 30px rgba(0,0,0,.16); }
/* SC 1.4.11. This control's own ground is rgba(255,255,255,.97) — effectively
   white — so a --idrive-lime border measures 1.67:1 against the surface it sits
   on and the focus state was invisible. --idrive-green-deep gives 6.26:1.
   The lime focus-within on .booking-shell__advanced (app.css:242) is NOT changed:
   that one sits on the dark booking shell where lime measures 9.92:1 and passes. */
.results-tool__control b { flex: 0 0 auto; color: var(--idrive-green-deep); font-size: 1rem; }
.results-tool input, .results-tool select { min-width: 0; width: 100%; min-height: 2rem; padding: 0; color: var(--idrive-ink); border: 0; outline: 0; background: transparent; font-size: .82rem; font-weight: 720; text-transform: none; letter-spacing: normal; }
.results-tool select { cursor: pointer; }
.results-tools__clear { min-height: 3.35rem; color: var(--idrive-white); border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.08); }
.results-tools__clear:hover { background: rgba(255,255,255,.14); }
.results-tools__status { grid-column: 1 / -1; margin: .1rem 0 0; color: #aec1b7; font-size: .7rem; }
.results-layout { display: grid; grid-template-columns: minmax(14rem, .29fr) minmax(0, 1fr); gap: 1rem; margin-top: 1rem; align-items: start; }
.results-assumptions { position: sticky; top: 6rem; padding: 1.2rem; color: #c1d0c8; border: 1px solid rgba(7,17,14,.08); border-radius: 1.15rem; background: linear-gradient(150deg,#0a1c15,#102b20); box-shadow: 0 14px 40px rgba(6,26,18,.11); }
.results-assumptions h2 { margin: 0 0 .45rem; color: var(--idrive-white); font-size: .74rem; text-transform: uppercase; letter-spacing: .1em; }
.results-assumptions h2:not(:first-child) { margin-top: 1.1rem; }
.results-assumptions ul { margin: 0; padding: 0; list-style: none; color: #b7c8c0; font-size: .78rem; }
.results-assumptions li { position: relative; margin: .48rem 0; padding-left: 1.15rem; }
.results-assumptions li::before { content: ""; position: absolute; top: .55em; left: 0; width: .42rem; height: .42rem; border: 1px solid var(--idrive-lime); border-radius: 50%; }
.results-list { display: grid; gap: .8rem; }
.result-card { position: relative; display: grid; grid-template-columns: 5rem minmax(0, 1fr) minmax(12rem, auto); gap: 1.15rem; align-items: center; padding: 1.1rem; border: 1px solid #d9e4dd; border-radius: 1.2rem; background: linear-gradient(120deg,rgba(255,255,255,1),rgba(247,251,248,.96)); box-shadow: 0 12px 36px rgba(6,26,18,.055); overflow: hidden; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.result-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: .23rem; background: linear-gradient(var(--idrive-lime),var(--idrive-green)); opacity: .7; }
.result-card:hover { border-color: #b9cec0; box-shadow: 0 18px 46px rgba(6,26,18,.09); transform: translateY(-2px); }
.result-card[hidden] { display: none; }
.result-card__mark { display: grid; width: 4.65rem; height: 4.65rem; align-content: center; justify-items: center; color: var(--idrive-white); border: 1px solid rgba(141,221,63,.16); border-radius: 1.15rem; background: radial-gradient(circle at 70% 18%,rgba(141,221,63,.2),transparent 40%),linear-gradient(145deg,var(--idrive-green-deep),var(--idrive-ink)); box-shadow: inset 0 0 24px rgba(141,221,63,.06),0 10px 24px rgba(7,17,14,.16); }
.result-card__mark span { font-size: .82rem; font-weight: 900; letter-spacing: .08em; }
.result-card__mark small { margin-top: .18rem; color: #a9beb3; font-size: .58rem; letter-spacing: .13em; }
.result-card__status { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 .4rem !important; font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .055em; }
.result-card__status span { padding: .2rem .4rem; color: var(--idrive-green-deep); border-radius: 999px; background: #e7f6ec; }
.result-card__status b { align-self: center; color: var(--idrive-muted); font-weight: 800; }
.result-card h3 { margin: 0; color: var(--idrive-ink); font-size: 1.35rem; letter-spacing: -.02em; }
.result-card__body > p { margin: .38rem 0; color: var(--idrive-muted); }
.result-card__models { font-size: .82rem; }
.result-card__models em { color: var(--idrive-green-deep); font-style: normal; font-weight: 800; }
.result-card__capacity { font-size: .76rem; }
.result-card__action { display: grid; gap: .55rem; justify-items: end; text-align: right; }
.result-card__action > span { color: var(--idrive-muted); font-size: .72rem; font-weight: 750; }
.button--disabled { color: #66736d; border: 1px solid var(--idrive-line); background: #edf1ef; cursor: not-allowed; }
.results-empty { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 1rem; align-items: start; padding: 1.4rem; border: 1px dashed #b7cbbf; border-radius: 1.2rem; background: #f7faf8; }
.results-empty[hidden] { display: none; }
.results-empty > span { display: grid; width: 3.5rem; aspect-ratio: 1; place-items: center; color: var(--idrive-white); border-radius: .9rem; background: var(--idrive-ink); font-weight: 900; }
.results-empty h3 { margin: 0 0 .25rem; color: var(--idrive-ink); }
.results-empty p { margin: 0 0 .8rem; color: var(--idrive-muted); }

@keyframes vehicle-float { 0%, 100% { transform: translate3d(0, 0, 0); } 50% { transform: translate3d(0, -12px, 0); } }
@keyframes orbit-spin { to { transform: rotate(360deg); } }
@keyframes badge-pulse { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }

@media (max-width: 1050px) {
	.desktop-nav, .header-account, .header-social { display: none; }
	.menu-toggle { display: flex; }
	.hero__grid { grid-template-columns: 1fr 1fr; }
	.booking-shell__fields { grid-template-columns: repeat(3, 1fr); gap: .7rem; padding-left: clamp(1rem,2.8vw,2rem); }
	.booking-shell__route-rail { display: none; }
	.booking-shell__field, .booking-shell__control { padding: .72rem .9rem; }
	.vehicle-grid { grid-template-columns: repeat(2, 1fr); }
	.site-footer__grid { grid-template-columns: 1.5fr repeat(3, 1fr); gap: 1.5rem; }
	.booking-shell--expanded .booking-shell__fields { grid-template-columns: repeat(3, 1fr); }
	.booking-shell__advanced { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
	.container { width: min(calc(100% - 1.25rem), var(--idrive-width)); }
	.site-header__inner { min-height: 4.75rem; }
	.brand { gap: .4rem; }
	.brand img { width: 2.7rem; height: 2.7rem; }
	.brand strong { font-size: 1.08rem; }
	.brand small { display: none; }
	.brand > span { padding-left: .5rem; }
	.site-header .header-book { display: none; } /* SLICE 102 FIX. Same specificity as app.css's own .header-book rule, so a later stylesheet's bare .button{display:inline-flex} (corridor-v1.css) was winning this tie by load order alone and the button never actually hid on mobile -- it was overlapping the menu toggle and pushing it off the right edge. Two classes beats one regardless of file order. */
	.hero { padding-top: 3.5rem; }
	.hero__grid { grid-template-columns: 1fr; }
	.hero__copy { padding-bottom: 0; }
	.hero h1 { max-width: 12ch; }
	.hero__visual { min-height: 23rem; }
	.hero__vehicle { right: -14%; bottom: 1.5rem; width: 118%; }
	.hero-badge { padding: .55rem .68rem; font-size: .67rem; }
	.hero-badge span { width: 1.3rem; }
	.hero-badge--one { top: 5%; right: 0; }
	.hero-badge--two { top: 32%; left: 0; }
	.hero-badge--three { right: 0; bottom: 8%; }
	.hero__booking { margin-top: -1rem; transform: translateY(4rem); }
	.booking-shell__head { padding-top: 1.25rem; }
	.booking-shell__fields { grid-template-columns: 1fr 1fr; }
	.booking-shell__field--from, .booking-shell__field--to, .button--search { grid-column: 1 / -1; }
	.booking-shell__tabs button { min-height: 3.45rem; }
	.booking-shell__advanced { grid-template-columns: 1fr 1fr; }
	.booking-shell__note { font-size: .68rem; }
	.trust-strip { padding-top: 6.5rem; }
	.trust-strip__grid { grid-template-columns: 1fr 1fr; }
	.trust-strip span { border-bottom: 1px solid var(--idrive-line); }
	.section-heading, .global-cta__inner { grid-template-columns: 1fr; gap: 1rem; }
	.text-link { text-align: left; }
	.service-grid, .destination-grid { grid-template-columns: 1fr; }
	.service-card { min-height: 19rem; }
	.how-grid { grid-template-columns: 1fr; }
	.site-footer__grid { grid-template-columns: 1fr 1fr; }
	.site-footer__brand { grid-column: 1 / -1; }
	.site-footer__bottom { flex-direction: column; }
	.account-gateway__grid { grid-template-columns: 1fr; }
	.results-header { display: grid; gap: .5rem; }
	.results-itinerary { max-width: none; justify-items: start; text-align: left; }
	.results-boundary { display: grid; gap: .25rem; }
	.results-tools--enhanced { grid-template-columns: 1fr 1fr auto; }
	.results-tool--search { grid-column: 1 / -1; }
	.results-layout { grid-template-columns: 1fr; }
	.results-assumptions { position: static; }
	.result-card { grid-template-columns: 3.75rem 1fr; align-items: start; }
	.result-card__mark { width: 3.5rem; height: 3.5rem; }
	.result-card__action { grid-column: 2; justify-items: start; text-align: left; }
	.site-footer__bottom p:first-child span { display: block; margin: .3rem 0 0; }
}

@media (max-width: 430px) {
	.hero h1 { font-size: 2.55rem; }
	.hero__proof { gap: .7rem; }
	.hero__proof span { padding-right: .7rem; }
	.hero__visual { min-height: 19rem; }
	.hero__vehicle { bottom: 2rem; }
	.booking-shell__head { align-items: center; }
	.booking-shell__step { display: none; }
	.booking-shell__tabs button { gap: .45rem; padding: .5rem; }
	.booking-shell__tabs button small { display: none; }
	.booking-shell__tab-icon { width: 1.75rem; }
	.booking-shell__fields { grid-template-columns: 1fr; }
	.booking-shell__field, .booking-shell__fields > label, .button--search { grid-column: 1 / -1 !important; }
	.place-suggestions { left: -.9rem; width: calc(100vw - 3.25rem); min-width: 0; }
	.trust-strip__grid, .vehicle-grid, .site-footer__grid { grid-template-columns: 1fr; }
	.site-footer__brand { grid-column: auto; }
	.booking-shell__advanced, .booking-shell__return { grid-template-columns: 1fr; }
	.results-header { padding: 1.25rem; }
	.results-header h2 { font-size: 2rem; }
	.results-itinerary__route { grid-template-columns: 1.45rem minmax(0,1fr) 1rem 1.45rem minmax(0,1fr); }
	.results-boundary { margin-inline: 1.25rem; }
	.results-tools--enhanced { grid-template-columns: 1fr; padding-inline: 1.25rem; }
	.results-tool--search { grid-column: auto; }
	.results-tools__clear { width: 100%; }
	.result-card { grid-template-columns: 1fr; }
	.result-card__mark { width: 3.25rem; height: 3.25rem; }
	.result-card__action { grid-column: 1; width: 100%; }
	.result-card__action .button { width: 100%; }
	.results-empty { grid-template-columns: 1fr; }
}

@media (max-width: 350px) {
	.booking-shell__head h2 { font-size: 1.45rem; }
	.booking-shell__tabs button strong { font-size: .76rem; }
	.booking-shell__tabs button { min-height: 3.2rem; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
