/* =====================================================================
   Taxi Harms — main.css
   Compiled from the design handoff. Mobile-first; media queries live in
   responsive.css.
   ===================================================================== */

/* ─── Design tokens ─────────────────────────────────────── */
:root {
	/* Brand */
	--yellow:        #FDD52E;
	--yellow-dark:   #F5BD0F;
	--yellow-deep:   #E8A800;
	--navy:          #133649;
	--navy-deep:     #0C1F2C;
	--sky:           #64C5E3;
	--sky-soft:      #D8EEF6;
	--cream:         #FAF6EC;
	--cream-warm:    #F2EAD5;
	--paper:         #FFFFFF;
	--ink:           #0C1317;
	--ink-soft:      #3A4651;
	--ink-mute:      #6B7681;
	--line:          #E8E2D3;
	--danger:        #C8341C;
	--ok:            #1F7A4D;

	/* Layout */
	--section-py:    clamp(64px, 9vw, 128px);
	--gutter:        clamp(16px, 3vw, 32px);
	--maxw:          1240px;

	--r-sm: 6px;
	--r-md: 12px;
	--r-lg: 20px;
	--r-xl: 28px;

	--t: cubic-bezier(.4, .14, .3, 1);

	/* Z-index */
	--z-sticky-call: 90;
	--z-header:      100;
	--z-mobile-menu: 200;
}

/* ─── Base ──────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
	font-size: 17px;
	line-height: 1.55;
	color: var(--ink);
	background: var(--paper);
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

body.th-page.v-trust  { background: var(--cream); }

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
input, textarea, select { font-family: inherit; }

/* ─── Buttons ───────────────────────────────────────────── */
.th-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 12px 18px;
	border-radius: 999px;
	font-weight: 700;
	font-size: 15px;
	letter-spacing: -.01em;
	border: 0;
	transition: transform .15s var(--t), background .2s var(--t), color .2s var(--t), box-shadow .2s var(--t);
	white-space: nowrap;
	cursor: pointer;
	text-decoration: none;
}
.th-btn:hover { transform: translateY(-1px); }
.th-btn:active { transform: translateY(0); }
.th-btn-primary {
	background: var(--yellow);
	color: var(--ink);
	box-shadow: 0 1px 0 var(--yellow-dark) inset;
}
.th-btn-primary:hover { background: var(--yellow-dark); }
.th-btn-secondary {
	background: var(--ink);
	color: var(--paper);
}
.th-btn-secondary:hover { background: var(--navy-deep); }
.th-btn-ghost {
	background: transparent;
	color: var(--paper);
	border: 1.5px solid rgba(255,255,255,.4);
}
.v-trust .th-btn-ghost { color: var(--ink); border-color: var(--ink); }
.v-trust .th-btn-ghost:hover { background: var(--ink); color: var(--paper); }
.th-btn-lg { padding: 14px 22px; font-size: 16px; }
.th-btn-lg.th-btn-primary {
	padding: 12px 22px 12px 16px;
	gap: 14px;
}
.th-btn-lg.th-btn-primary span {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	line-height: 1.15;
}
.th-btn-lg.th-btn-primary em {
	font-style: normal;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .04em;
	opacity: .7;
	text-transform: uppercase;
}
.th-btn-lg.th-btn-primary strong {
	font-size: 18px;
	font-weight: 800;
	letter-spacing: -.02em;
}

/* ─── Header ────────────────────────────────────────────── */
.th-header {
	position: sticky;
	top: 0;
	z-index: var(--z-header);
	background: transparent;
	transition: background .25s var(--t), box-shadow .25s var(--t), backdrop-filter .25s var(--t);
}
.th-header.is-scrolled {
	background: rgba(255, 255, 255, .92);
	backdrop-filter: blur(12px) saturate(140%);
	-webkit-backdrop-filter: blur(12px) saturate(140%);
	box-shadow: 0 1px 0 var(--line);
}
.v-trust .th-header { background: var(--cream); }
.v-trust .th-header.is-scrolled { background: rgba(250, 246, 236, .92); }

.th-header-inner {
	max-width: var(--maxw);
	margin: 0 auto;
	padding: 12px var(--gutter);
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 24px;
}

.th-brand {
	display: flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
	color: inherit;
}
.th-logo {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--yellow);
	padding: 2px;
	box-shadow: 0 1px 0 rgba(0,0,0,.08) inset, 0 1px 2px rgba(0,0,0,.08);
}
.th-brand-text { display: flex; flex-direction: column; line-height: 1; }
.th-brand-1 { font-weight: 900; font-size: 18px; letter-spacing: -.01em; }
.th-brand-2 { font-weight: 600; font-size: 12px; opacity: .7; margin-top: 3px; letter-spacing: .02em; }

.th-nav {
	display: flex;
	gap: 24px;
	justify-content: center;
}
.th-nav a {
	font-size: 14px;
	font-weight: 600;
	color: var(--ink-soft);
	padding: 8px 2px;
	position: relative;
	transition: color .15s var(--t);
}
.th-nav a:hover { color: var(--ink); }
.th-nav a::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 2px;
	width: 0;
	height: 2px;
	background: var(--yellow);
	transition: width .2s var(--t), left .2s var(--t);
}
.th-nav a:hover::after { width: 100%; left: 0; }

.th-header-actions {
	display: flex;
	align-items: center;
	gap: 10px;
}
.th-call-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 10px 16px;
	background: var(--yellow);
	color: var(--ink);
	border-radius: 999px;
	font-weight: 800;
	font-size: 15px;
	letter-spacing: -.01em;
	box-shadow: 0 1px 0 var(--yellow-dark) inset;
	transition: transform .15s var(--t), background .2s var(--t);
}
.th-call-btn:hover { background: var(--yellow-dark); transform: translateY(-1px); }
.th-call-short { display: none; }

.th-menu-btn {
	display: none;
	background: transparent;
	border: 1.5px solid var(--line);
	border-radius: 10px;
	padding: 8px;
	color: inherit;
	min-width: 44px;
	min-height: 44px;
	align-items: center;
	justify-content: center;
}

/* ─── Mobile menu (full overlay) ────────────────────────── */
.th-mobile-menu {
	position: fixed;
	inset: 0;
	background: var(--paper);
	z-index: var(--z-mobile-menu);
	display: flex;
	flex-direction: column;
	padding: 0;
	animation: thMmIn .25s var(--t);
}
.th-mobile-menu[hidden] { display: none !important; }
@keyframes thMmIn {
	from { opacity: 0; transform: translateY(-8px); }
	to   { opacity: 1; transform: translateY(0); }
}
.th-mm-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px var(--gutter);
	border-bottom: 1px solid var(--line);
}
.th-mm-nav {
	flex: 1;
	display: flex;
	flex-direction: column;
	padding: 12px var(--gutter);
}
.th-mm-nav a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 4px;
	font-size: 22px;
	font-weight: 700;
	border-bottom: 1px solid var(--line);
	color: var(--ink);
	min-height: 44px;
}
.th-mm-call {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 16px var(--gutter);
	padding: 18px 20px;
	background: var(--yellow);
	border-radius: var(--r-md);
	color: var(--ink);
	text-decoration: none;
}
.th-mm-call div { display: flex; flex-direction: column; line-height: 1.2; }
.th-mm-call span { font-size: 13px; font-weight: 600; opacity: .7; }
.th-mm-call strong { font-size: 22px; font-weight: 900; letter-spacing: -.02em; }

/* ─── Hero (trust variant) ──────────────────────────────── */
.th-hero {
	position: relative;
	padding: clamp(48px, 7vw, 96px) var(--gutter) clamp(80px, 12vw, 160px);
	overflow: hidden;
}
.th-hero.v-trust { background: var(--cream); display: block; max-width: 100%; }
.th-hero.v-trust::before {
	content: "";
	position: absolute;
	right: -120px;
	top: -120px;
	width: 380px;
	height: 380px;
	background: var(--yellow);
	border-radius: 50%;
	opacity: .35;
	filter: blur(80px);
	pointer-events: none;
}
.th-hero.v-trust .th-hero-inner {
	max-width: var(--maxw);
	margin: 0 auto;
	position: relative;
	z-index: 1;
}
.th-hero.v-trust .th-hero-sub,
.th-hero.v-trust .th-hero-bullets { max-width: 720px; }

.th-hero-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 8px 14px;
	background: rgba(12, 19, 23, .06);
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	margin-bottom: 28px;
}
.th-dot {
	width: 8px;
	height: 8px;
	background: var(--ok);
	border-radius: 50%;
	position: relative;
}
.th-dot::after {
	content: "";
	position: absolute;
	inset: -4px;
	border-radius: 50%;
	background: var(--ok);
	opacity: .25;
	animation: thPulse 1.8s var(--t) infinite;
}
@keyframes thPulse {
	0%   { transform: scale(.8); opacity: .4; }
	100% { transform: scale(2);  opacity: 0; }
}

.th-hero-h1 {
	font-family: "Manrope", sans-serif;
	font-weight: 900;
	font-size: clamp(48px, 7vw, 96px);
	line-height: .98;
	letter-spacing: -.035em;
	margin: 0 0 28px;
	text-wrap: balance;
}
.th-hero-h1 .th-h1-em {
	background: linear-gradient(to bottom, transparent 60%, var(--yellow) 60%);
	padding: 0 .05em;
}

.th-hero-sub {
	font-size: clamp(17px, 1.4vw, 20px);
	color: var(--ink-soft);
	margin: 0 0 36px;
	max-width: 580px;
	text-wrap: pretty;
}
.th-hero-ctas {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
}
.th-hero-bullets {
	list-style: none;
	padding: 0;
	margin: 40px 0 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px 24px;
	max-width: 520px;
}
.th-hero-bullets li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 15px;
	font-weight: 600;
	color: var(--ink-soft);
}
.th-hero-bullets li svg { color: var(--ok); }

/* ─── Section base ──────────────────────────────────────── */
.th-section {
	padding: var(--section-py) var(--gutter);
	max-width: var(--maxw);
	margin: 0 auto;
}
.th-section-header {
	max-width: 760px;
	margin: 0 0 56px;
}
.th-kicker {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ink-mute);
	margin-bottom: 16px;
}
.th-section-header h2 {
	font-size: clamp(36px, 4.5vw, 64px);
	font-weight: 900;
	letter-spacing: -.03em;
	line-height: 1.02;
	margin: 0 0 20px;
	text-wrap: balance;
}
.th-lead {
	font-size: clamp(17px, 1.3vw, 20px);
	color: var(--ink-soft);
	margin: 0;
	max-width: 640px;
	text-wrap: pretty;
}

/* ─── Services grid ─────────────────────────────────────── */
.th-services-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 1px;
	background: var(--line);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	overflow: hidden;
}
.th-service-card {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 32px 28px 28px;
	background: var(--paper);
	color: var(--ink);
	position: relative;
	text-decoration: none;
	transition: background .2s var(--t);
}
.th-service-card:hover { background: var(--cream); }
.th-service-card:hover .th-service-link svg,
.th-service-card:hover .th-service-link .icon { transform: translateX(4px); }
.th-service-num {
	position: absolute;
	top: 22px;
	right: 28px;
	font-size: 12px;
	font-weight: 700;
	color: var(--ink-mute);
	letter-spacing: .08em;
}
.th-service-icon {
	width: 56px;
	height: 56px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--yellow);
	border-radius: var(--r-md);
	color: var(--ink);
	margin-bottom: 8px;
}
.th-service-card h3 {
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -.02em;
	margin: 0;
}
.th-service-card p {
	font-size: 15px;
	color: var(--ink-soft);
	margin: 0;
	flex: 1;
	text-wrap: pretty;
}
.th-service-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	font-weight: 700;
	color: var(--ink);
	margin-top: 8px;
}
.th-service-link svg { transition: transform .2s var(--t); }

/* ─── Vehicles (tabbed) ─────────────────────────────────── */
.th-vehicles-tabs {
	display: flex;
	gap: 8px;
	border-bottom: 1px solid var(--line);
	margin-bottom: 40px;
	overflow-x: auto;
	scrollbar-width: none;
}
.th-vehicles-tabs::-webkit-scrollbar { display: none; }
.th-vehicles-tabs button {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	padding: 18px 24px;
	background: transparent;
	border: 0;
	border-bottom: 3px solid transparent;
	margin-bottom: -1px;
	font: inherit;
	text-align: left;
	cursor: pointer;
	white-space: nowrap;
	color: var(--ink-mute);
	transition: color .2s var(--t), border-color .2s var(--t);
	min-height: 44px;
}
.th-vehicles-tabs button:hover { color: var(--ink); }
.th-vehicles-tabs button.is-active {
	color: var(--ink);
	border-color: var(--yellow);
}
.th-veh-tab-num {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	color: var(--ink-mute);
}
.th-vehicles-tabs button > span:nth-child(2) {
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -.02em;
}
.th-vehicles-tabs button em {
	font-style: normal;
	font-size: 12px;
	font-weight: 600;
	color: var(--ink-mute);
}

.th-vehicle-stage {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 56px;
	align-items: center;
	padding: 40px 0;
}
.th-vehicle-art {
	position: relative;
	padding: 32px 8%;
	background: var(--cream);
	border-radius: var(--r-lg);
}
.th-vehicle-art svg { position: relative; z-index: 1; }
.th-vehicle-floor {
	position: absolute;
	left: 6%;
	right: 6%;
	bottom: 26px;
	height: 2px;
	background: var(--ink);
	opacity: .15;
}
.th-vehicle-info h3 {
	font-size: clamp(32px, 4vw, 48px);
	font-weight: 900;
	letter-spacing: -.03em;
	margin: 0 0 12px;
	line-height: 1.05;
}
.th-vehicle-info p {
	font-size: 17px;
	color: var(--ink-soft);
	margin: 0 0 24px;
	text-wrap: pretty;
}
.th-vehicle-spec {
	display: grid;
	grid-template-columns: repeat(3, auto);
	gap: 32px;
	margin: 0 0 28px;
}
.th-vehicle-spec dt {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ink-mute);
	margin-bottom: 4px;
}
.th-vehicle-spec dd {
	margin: 0;
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -.02em;
}

.th-vehicle-panel { display: none; }
.th-vehicle-panel.is-active { display: grid; }

/* ─── Trust / Why us ────────────────────────────────────── */
.th-trust-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 24px;
	margin-bottom: 64px;
}
.th-trust-card {
	position: relative;
	padding: 28px 24px 24px;
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.v-trust .th-trust-card { background: var(--cream-warm); border-color: transparent; }
.th-trust-card svg { color: var(--ink); margin-bottom: 8px; }
.th-trust-num {
	position: absolute;
	top: 20px;
	right: 24px;
	font-size: 12px;
	font-weight: 700;
	color: var(--ink-mute);
	letter-spacing: .08em;
}
.th-trust-card h3 {
	font-size: 19px;
	font-weight: 800;
	letter-spacing: -.02em;
	margin: 0;
}
.th-trust-card p {
	font-size: 15px;
	color: var(--ink-soft);
	margin: 0;
	text-wrap: pretty;
}

.th-trust-quote {
	position: relative;
	background: var(--ink);
	color: var(--paper);
	padding: 48px 56px 40px;
	border-radius: var(--r-xl);
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 32px;
	align-items: end;
}
.th-trust-quote blockquote {
	font-size: clamp(22px, 2.4vw, 32px);
	font-weight: 700;
	letter-spacing: -.02em;
	line-height: 1.25;
	margin: 0;
	position: relative;
	text-wrap: pretty;
}
.th-quote-mark {
	font-size: 80px;
	line-height: .5;
	position: absolute;
	left: -16px;
	top: 0;
	opacity: .25;
	font-weight: 900;
}
.th-trust-quote cite {
	font-style: normal;
	display: flex;
	flex-direction: column;
	text-align: right;
	gap: 4px;
}
.th-trust-quote cite strong { font-size: 17px; font-weight: 800; letter-spacing: -.01em; }
.th-trust-quote cite span { font-size: 13px; opacity: .65; font-weight: 500; }

/* ─── Service area ──────────────────────────────────────── */
.th-area-split {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 48px;
	align-items: center;
}
.th-area-map {
	position: relative;
	background: var(--cream);
	border-radius: var(--r-xl);
	padding: 28px;
}
.th-area-legend {
	display: flex;
	gap: 24px;
	margin-top: 12px;
	font-size: 13px;
	font-weight: 600;
	color: var(--ink-soft);
}
.th-area-legend span { display: inline-flex; align-items: center; gap: 8px; }
.th-leg-prim, .th-leg-sec {
	display: inline-block;
	width: 12px;
	height: 12px;
	border-radius: 50%;
}
.th-leg-prim { background: var(--yellow); border: 2px solid var(--ink); }
.th-leg-sec  { background: var(--ink); }

.th-area-list h4 {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ink-mute);
	margin: 0 0 16px;
}
.th-area-list ul {
	list-style: none;
	padding: 0;
	margin: 0 0 24px;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px 16px;
}
.th-area-list li {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 15px;
	font-weight: 600;
	color: var(--ink-soft);
}
.th-area-list li svg { color: var(--ink-mute); }
.th-area-list li.is-primary { color: var(--ink); font-weight: 800; }
.th-area-list li.is-primary svg { color: var(--yellow-deep); }
.th-area-list li em {
	margin-left: auto;
	font-style: normal;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .08em;
	background: var(--yellow);
	color: var(--ink);
	padding: 3px 8px;
	border-radius: 999px;
}
.th-area-note {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	padding: 18px 20px;
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--r-md);
}
.v-trust .th-area-note { background: var(--cream-warm); border-color: transparent; }
.th-area-note svg { flex-shrink: 0; margin-top: 2px; }
.th-area-note p { margin: 0; font-size: 15px; color: inherit; }
.v-trust .th-area-note p { color: var(--ink-soft); }
.v-trust .th-area-note p strong { color: var(--ink); }

/* ─── Booking ───────────────────────────────────────────── */
.th-booking {
	max-width: var(--maxw);
	padding: var(--section-py) var(--gutter);
	margin: 0 auto;
}
.th-booking-grid {
	display: grid;
	grid-template-columns: minmax(300px, .9fr) 1fr;
	gap: 64px;
	align-items: start;
}
.th-booking-aside h2 {
	font-size: clamp(32px, 4vw, 56px);
	font-weight: 900;
	letter-spacing: -.03em;
	line-height: 1.02;
	margin: 12px 0 28px;
	text-wrap: balance;
}
.th-booking-aside .th-em {
	background: var(--yellow);
	padding: .02em .12em;
	display: inline-block;
	transform: rotate(-1deg);
	box-shadow: 4px 4px 0 var(--ink);
}
.th-booking-phone {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 20px 24px;
	background: var(--ink);
	color: var(--paper);
	border-radius: var(--r-lg);
	text-decoration: none;
	transition: transform .15s var(--t);
}
.th-booking-phone:hover { transform: translateY(-2px); }
.th-booking-phone > svg {
	width: 52px;
	height: 52px;
	background: var(--yellow);
	border-radius: 50%;
	padding: 12px;
	color: var(--ink);
}
.th-booking-phone span { display: flex; flex-direction: column; line-height: 1.2; }
.th-booking-phone em {
	font-style: normal;
	font-size: 12px;
	font-weight: 600;
	opacity: .65;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.th-booking-phone strong {
	font-size: clamp(22px, 2.6vw, 32px);
	font-weight: 900;
	letter-spacing: -.02em;
}
.th-booking-or {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 24px 0;
	color: var(--ink-mute);
	font-size: 13px;
	font-weight: 600;
}
.th-booking-or::before, .th-booking-or::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--line);
}
.th-booking-bullets {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.th-booking-bullets li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 14px;
	font-weight: 600;
	color: var(--ink-soft);
}
.th-booking-bullets li svg { color: var(--ok); flex-shrink: 0; margin-top: 2px; }

/* ─── Form ──────────────────────────────────────────────── */
.th-form {
	background: var(--paper);
	border-radius: var(--r-xl);
	padding: 32px;
	border: 1px solid var(--line);
	box-shadow: 0 30px 60px -40px rgba(12, 19, 23, .25);
}
.th-form.is-sent { display: none; }
.th-form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}
.th-field { display: flex; flex-direction: column; gap: 6px; }
.th-field-wide { grid-column: span 2; }
.th-field-full { grid-column: 1 / -1; }
.th-field label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--ink-mute);
}
.th-field input,
.th-field textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1.5px solid var(--line);
	border-radius: var(--r-md);
	background: var(--paper);
	font-size: 15px;
	color: var(--ink);
	transition: border-color .15s var(--t), box-shadow .15s var(--t);
	min-height: 44px;
}
.th-field input:focus,
.th-field textarea:focus {
	outline: 0;
	border-color: var(--ink);
	box-shadow: 0 0 0 3px var(--yellow);
}
.th-field-err {
	font-size: 12px;
	color: var(--danger);
	font-weight: 600;
	display: none;
}
.th-field.has-error .th-field-err { display: block; }
.th-field.has-error input,
.th-field.has-error textarea { border-color: var(--danger); }
.th-form-foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin-top: 24px;
	flex-wrap: wrap;
}
.th-form-note {
	font-size: 12px;
	color: var(--ink-mute);
	margin: 0;
	max-width: 360px;
	line-height: 1.5;
}
.th-form-note a { text-decoration: underline; color: var(--ink-soft); }

.th-form-success {
	background: var(--paper);
	border-radius: var(--r-xl);
	padding: 56px 40px;
	text-align: center;
	border: 1px solid var(--line);
	display: none;
}
.th-form-success.is-active { display: block; }
.th-form-success-icon {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: var(--yellow);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 24px;
}
.th-form-success h3 {
	font-size: 28px;
	font-weight: 900;
	letter-spacing: -.02em;
	margin: 0 0 12px;
}
.th-form-success p {
	font-size: 16px;
	color: var(--ink-soft);
	margin: 0 0 28px;
}
.th-form-reset {
	display: block;
	margin: 16px auto 0;
	background: transparent;
	border: 0;
	font-size: 13px;
	font-weight: 600;
	text-decoration: underline;
	color: var(--ink-mute);
	padding: 8px;
	cursor: pointer;
}

/* ─── Footer ────────────────────────────────────────────── */
.th-footer {
	background: var(--ink);
	color: var(--paper);
	padding: 72px 0 24px;
	margin-top: 0;
}
.th-footer-inner {
	max-width: var(--maxw);
	margin: 0 auto;
	padding: 0 var(--gutter);
}
.th-footer-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: 48px;
	margin-bottom: 48px;
}
.th-footer-brand p {
	font-size: 14px;
	line-height: 1.6;
	color: rgba(255,255,255,.7);
	margin: 16px 0 20px;
}
.th-footer-logo-row {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 4px;
}
.th-footer-logo-row .th-logo { width: 48px; height: 48px; }
.th-footer-logo-row div { display: flex; flex-direction: column; line-height: 1.2; }
.th-footer-logo-row strong { font-size: 16px; font-weight: 800; letter-spacing: -.01em; }
.th-footer-logo-row span  { font-size: 12px; color: rgba(255,255,255,.6); font-weight: 500; }

.th-footer-call {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 10px 16px;
	background: var(--yellow);
	color: var(--ink);
	border-radius: 999px;
	font-weight: 800;
	font-size: 15px;
	margin-bottom: 12px;
	margin-right: 8px;
}
.th-footer-email {
	display: inline-block;
	color: rgba(255,255,255,.65);
	font-size: 14px;
	text-decoration: underline;
}
.th-footer-col h4 {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: rgba(255,255,255,.4);
	margin: 0 0 16px;
}
.th-footer-col h4.mt { margin-top: 28px; }
.th-footer-col ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.th-footer-col a {
	color: rgba(255,255,255,.78);
	font-size: 14px;
	transition: color .15s var(--t);
}
.th-footer-col a:hover { color: var(--yellow); }
.th-footer-col p {
	color: rgba(255,255,255,.7);
	font-size: 14px;
	margin: 0 0 8px;
}
.th-footer-247 {
	display: flex;
	align-items: center;
	gap: 10px;
	font-weight: 700;
	color: var(--paper) !important;
}
.th-pulse {
	width: 8px;
	height: 8px;
	background: var(--ok);
	border-radius: 50%;
	box-shadow: 0 0 0 3px rgba(31,122,77,.25);
	animation: thBlink 1.8s var(--t) infinite;
}
@keyframes thBlink {
	0%, 60%, 100% { opacity: 1; }
	30%           { opacity: .35; }
}
.th-footer-247 .th-pulse { background: var(--ok); box-shadow: 0 0 0 3px rgba(31,122,77,.25); }
.th-footer-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding-top: 24px;
	border-top: 1px solid rgba(255,255,255,.1);
	font-size: 13px;
	color: rgba(255,255,255,.5);
	flex-wrap: wrap;
}

/* ─── Sticky mobile call (hidden by default; shown by responsive.css) ── */
.th-sticky-call {
	position: fixed;
	bottom: 12px;
	left: 12px;
	right: 12px;
	z-index: var(--z-sticky-call);
	display: none;
	align-items: center;
	gap: 14px;
	padding: 14px 18px;
	background: var(--yellow);
	color: var(--ink);
	border-radius: var(--r-lg);
	text-decoration: none;
	box-shadow: 0 14px 30px -10px rgba(12,19,23,.4);
	min-height: 44px;
}
.th-sticky-call span {
	flex: 1;
	display: flex;
	flex-direction: column;
	line-height: 1.2;
}
.th-sticky-call strong { font-size: 17px; font-weight: 900; letter-spacing: -.01em; }
.th-sticky-call em     { font-style: normal; font-size: 11px; opacity: .75; font-weight: 600; letter-spacing: .04em; }

/* ─── Landing pages ─────────────────────────────────────── */
.th-landing-hero {
	padding: clamp(56px, 8vw, 120px) var(--gutter) clamp(48px, 6vw, 80px);
	background: var(--cream);
	border-bottom: 1px solid var(--line);
}
.th-landing-hero-inner {
	max-width: var(--maxw);
	margin: 0 auto;
}
.th-landing-breadcrumb {
	display: flex;
	gap: 8px;
	font-size: 13px;
	color: var(--ink-mute);
	margin-bottom: 24px;
	font-weight: 600;
}
.th-landing-breadcrumb a:hover { color: var(--ink); text-decoration: underline; }
.th-landing-h1 {
	font-size: clamp(40px, 5.5vw, 80px);
	font-weight: 900;
	letter-spacing: -.035em;
	line-height: 1;
	margin: 0 0 24px;
	max-width: 900px;
	text-wrap: balance;
}
.th-landing-h1 .th-h1-em {
	background: var(--yellow);
	padding: .02em .12em;
	display: inline-block;
}
.th-landing-sub {
	font-size: clamp(17px, 1.4vw, 21px);
	color: var(--ink-soft);
	max-width: 720px;
	margin: 0 0 32px;
	text-wrap: pretty;
}
.th-landing-ctas { display: flex; gap: 14px; flex-wrap: wrap; }

.th-landing-body {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(280px, 1fr);
	gap: 64px;
	max-width: var(--maxw);
	margin: 0 auto;
	padding: var(--section-py) var(--gutter);
}
.th-landing-prose h2 {
	font-size: clamp(28px, 3vw, 40px);
	font-weight: 900;
	letter-spacing: -.025em;
	line-height: 1.1;
	margin: 48px 0 16px;
	text-wrap: balance;
}
.th-landing-prose h2:first-child { margin-top: 0; }
.th-landing-prose h3 {
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -.02em;
	margin: 32px 0 12px;
}
.th-landing-prose p {
	font-size: 17px;
	line-height: 1.65;
	color: var(--ink-soft);
	margin: 0 0 16px;
	text-wrap: pretty;
}
.th-landing-prose strong { color: var(--ink); font-weight: 700; }
.th-landing-prose ul {
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}
.th-landing-prose ul li {
	position: relative;
	padding-left: 28px;
	margin-bottom: 10px;
	font-size: 17px;
	color: var(--ink-soft);
	line-height: 1.55;
}
.th-landing-prose ul li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 9px;
	width: 16px;
	height: 8px;
	border-bottom: 2.5px solid var(--yellow-deep);
	border-left: 2.5px solid var(--yellow-deep);
	transform: rotate(-45deg);
}

.th-landing-cta-block {
	background: var(--ink);
	color: var(--paper);
	padding: 32px;
	border-radius: var(--r-xl);
	margin: 32px 0;
}
.th-landing-cta-block h3 {
	font-size: 24px;
	margin: 0 0 12px;
	font-weight: 900;
	letter-spacing: -.02em;
}
.th-landing-cta-block p {
	font-size: 15px;
	color: rgba(255,255,255,.7);
	margin: 0 0 20px;
}
.th-landing-aside {
	position: sticky;
	top: 88px;
	align-self: start;
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.th-landing-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	padding: 24px;
}
.v-trust .th-landing-card { background: var(--cream); border-color: transparent; }
.th-landing-card h4 {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ink-mute);
	margin: 0 0 14px;
}
.th-landing-card ul {
	list-style: none;
	padding: 0;
	margin: 0;
}
.th-landing-card ul li {
	padding: 12px 0;
	border-bottom: 1px solid var(--line);
	font-size: 15px;
	font-weight: 600;
}
.th-landing-card ul li:last-child { border: 0; padding-bottom: 0; }
.th-landing-card ul li a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	color: var(--ink-soft);
}
.th-landing-card ul li a:hover { color: var(--ink); }
.v-trust .th-landing-card ul li { border-color: rgba(12,19,23,.08); }

.th-landing-card-phone {
	background: var(--yellow);
	border: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	text-decoration: none;
	color: var(--ink);
}
.th-landing-card-phone strong {
	font-size: 28px;
	font-weight: 900;
	letter-spacing: -.02em;
	line-height: 1;
}
.th-landing-card-phone span {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	opacity: .75;
}
.th-landing-card-phone .th-btn {
	width: 100%;
	justify-content: center;
}

/* ─── Icon helpers ──────────────────────────────────────── */
.icon { width: 1em; height: 1em; display: inline-block; flex-shrink: 0; }
.th-service-icon .icon,
.th-trust-card > .icon,
.th-vehicle-art svg.th-veh-svg { width: auto; height: auto; }
.th-service-icon .icon       { width: 28px; height: 28px; }
.th-trust-card > .icon       { width: 32px; height: 32px; }
.th-hero-eyebrow .icon       { width: 8px; height: 8px; }
.th-call-btn .icon,
.th-mm-call .icon            { width: 18px; height: 18px; }
.th-btn .icon                { width: 18px; height: 18px; }
.th-btn-lg .icon             { width: 20px; height: 20px; }
.th-hero-bullets .icon       { width: 16px; height: 16px; color: var(--ok); }
.th-booking-bullets .icon    { width: 16px; height: 16px; color: var(--ok); flex-shrink: 0; margin-top: 2px; }
.th-area-list .icon          { width: 16px; height: 16px; color: var(--ink-mute); }
.th-area-list .is-primary .icon { color: var(--yellow-deep); }
.th-area-note > .icon        { width: 18px; height: 18px; flex-shrink: 0; margin-top: 2px; }
.th-service-link .icon       { width: 16px; height: 16px; transition: transform .2s var(--t); }
.th-service-card:hover .th-service-link .icon { transform: translateX(4px); }
.th-mm-nav .icon             { width: 20px; height: 20px; }
.th-sticky-call .icon:first-child { width: 20px; height: 20px; }
.th-sticky-call .icon:last-child  { width: 18px; height: 18px; }
.th-hero-phone-label .icon   { width: 28px; height: 28px; }
.th-form-success-icon .icon  { width: 40px; height: 40px; color: var(--ink); }
.th-footer-call .icon        { width: 18px; height: 18px; }
.th-footer-247 .icon         { width: 12px; height: 12px; }

/* ─── Vehicle slider block ──────────────────────────────── */
.th-vehicle-slider { position: relative; }
.th-vehicle-slider__viewport { overflow: hidden; }
.th-vehicle-slider__track {
	display: flex;
	transition: transform .35s var(--t);
	will-change: transform;
}
.th-vehicle-slider__slide {
	flex: 0 0 100%;
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 56px;
	align-items: center;
	padding: 40px 0;
}
.th-vehicle-slider__art {
	background: var(--cream);
	border-radius: var(--r-lg);
	padding: 28px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.th-vehicle-slider__art img {
	max-width: 100%;
	height: auto;
	display: block;
}
.th-vehicle-slider__info h3 {
	font-size: clamp(32px, 4vw, 48px);
	font-weight: 900;
	letter-spacing: -.03em;
	margin: 0 0 12px;
	line-height: 1.05;
}
.th-vehicle-slider__category {
	display: inline-block;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ink-mute);
	margin-bottom: 8px;
}
.th-vehicle-slider__seats {
	font-size: 14px;
	font-weight: 700;
	color: var(--ink);
	margin: 0 0 12px;
	letter-spacing: .02em;
}
.th-vehicle-slider__desc {
	font-size: 17px;
	color: var(--ink-soft);
	margin: 0 0 24px;
	text-wrap: pretty;
}
.th-vehicle-slider__prev,
.th-vehicle-slider__next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 48px;
	height: 48px;
	border: 1.5px solid var(--ink);
	background: var(--paper);
	color: var(--ink);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background .2s var(--t), color .2s var(--t);
	font-size: 20px;
	z-index: 2;
}
.th-vehicle-slider__prev:hover,
.th-vehicle-slider__next:hover { background: var(--yellow); }
.th-vehicle-slider__prev { left: -24px; }
.th-vehicle-slider__next { right: -24px; }
.th-vehicle-slider__dots {
	display: flex;
	gap: 8px;
	justify-content: center;
	margin-top: 24px;
}
.th-vehicle-slider__dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--line);
	border: 0;
	cursor: pointer;
	transition: background .2s var(--t), transform .2s var(--t);
	padding: 0;
}
.th-vehicle-slider__dot[aria-current="true"] {
	background: var(--ink);
	transform: scale(1.2);
}

/* ─── Reduced motion ────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
	.th-dot::after, .th-pulse, .th-vehicle-slider__track { animation: none !important; transition: none !important; }
	html { scroll-behavior: auto; }
}
