/* Snel Luxury Transport — front-end + editor styles */

:root {
	--snel-base: var(--wp--preset--color--base, #f5f3ef);
	--snel-sand: var(--wp--preset--color--sand, #e9e5de);
	--snel-stone: var(--wp--preset--color--stone, #d8d3ca);
	--snel-ink: var(--wp--preset--color--contrast, #121211);
	--snel-graphite: var(--wp--preset--color--graphite, #33302b);
	--snel-text: var(--wp--preset--color--body, #3a3833);
	--snel-text-2: #2a2925;
	--snel-muted: var(--wp--preset--color--muted, #5f5b54);
	--snel-dim: #6f6a62;
	--snel-gold: var(--wp--preset--color--gold, #c9a96e);
	--snel-bronze: var(--wp--preset--color--bronze, #6e5a36);
	--snel-line: rgba(18, 18, 17, .14);
	--snel-line-dark: rgba(245, 243, 239, .14);
	--snel-on-dark: #cfcbc3;
	--snel-on-dark-dim: #a8a39a;
	--snel-display: var(--wp--preset--font-family--display, 'Cormorant Garamond', Georgia, serif);
	--snel-gutter: 32px;
}

@media (max-width: 600px) {
	:root { --snel-gutter: 20px; }
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

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

html { scroll-behavior: smooth; scroll-padding-top: 110px; }

.snel-main :is(h1, h2, h3, h4, p, ul, ol, figure),
.snel-header :is(p, figure),
.snel-footer :is(p, figure) {
	margin: 0;
}

/* ---------- Layout primitives ---------- */

.snel-wrap {
	width: 100%;
	max-width: 1360px;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: var(--snel-gutter);
	padding-right: var(--snel-gutter);
}

.snel-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
	gap: 40px;
}
.snel-grid--380 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 64px; }
.snel-grid--440 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: 48px; }
.snel-grid--460 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); gap: 72px; }
.snel-grid--64 { gap: 64px; }
.snel-grid.is-end { align-items: end; }
.snel-grid.is-center { align-items: center; }
.snel-grid.is-start { align-items: start; }

.snel-stackgap { display: flex; flex-direction: column; gap: 24px; }
.snel-stackgap-sm { display: flex; flex-direction: column; gap: 16px; }
.snel-measure { max-width: 560px; }
.snel-measure-sm { max-width: 480px; }
.snel-measure-md { max-width: 720px; }

.snel-section { padding-top: 104px; padding-bottom: 104px; }
.snel-section--88 { padding-top: 88px; padding-bottom: 88px; }
.snel-section--96 { padding-top: 96px; padding-bottom: 96px; }
.snel-section--line { border-top: 1px solid rgba(18, 18, 17, .1); }
.snel-section#wie { padding-top: 96px; padding-bottom: 96px; }

.is-dark { background: var(--snel-ink); color: var(--snel-base); }
.is-dark p { color: var(--snel-on-dark); }
.is-dark a { color: var(--snel-base); }
.is-dark a:hover { color: var(--snel-gold); }
.is-sand { background: var(--snel-sand); }

.snel-intro { margin-bottom: 56px; }

/* ---------- Typography ---------- */

.snel-main p { line-height: 1.65; text-wrap: pretty; }
.snel-main p:not([class]) { color: var(--snel-text); }
.is-dark p:not([class]) { color: var(--snel-on-dark); }
.is-sand p:not([class]) { color: var(--snel-text-2); }

.snel-kicker {
	font-family: inherit !important;
	font-size: 12px !important;
	font-weight: 400;
	line-height: 1.4 !important;
	letter-spacing: .28em;
	text-transform: uppercase;
	color: var(--snel-muted);
}
.snel-kicker.is-gold, .is-dark .snel-kicker { color: var(--snel-gold) !important; font-weight: 500; }

.snel-title {
	font-size: clamp(40px, 5.2vw, 76px);
	line-height: 1.02;
	letter-spacing: -.01em;
	text-wrap: balance;
}
.snel-title--xl { font-size: clamp(44px, 6vw, 88px); line-height: 1; }

.snel-h2 { font-size: clamp(34px, 4vw, 56px); line-height: 1.05; text-wrap: balance; }
.snel-h2--sm { font-size: clamp(30px, 3.6vw, 50px); line-height: 1.08; }

.snel-lead { font-size: 18px; line-height: 1.6 !important; color: var(--snel-text); max-width: 520px; }
.snel-body-lg { font-size: 19px; color: var(--snel-text-2); }
.is-sand .snel-body-lg { font-size: 18px; line-height: 1.7 !important; }
.snel-small { font-size: 15px; line-height: 1.6 !important; color: var(--snel-on-dark-dim) !important; }

.snel-bignum {
	font-family: var(--snel-display);
	font-weight: 500;
	font-size: clamp(88px, 11vw, 160px);
	line-height: .85 !important;
	letter-spacing: -.02em;
	color: var(--snel-ink);
}
.snel-bignum sup { font-size: .4em; vertical-align: top; margin-left: 6px; line-height: 1; }
.snel-bignum-label {
	font-size: 13px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--snel-muted);
	margin-top: -8px !important;
}

.snel-more a, .snel-inline-link, .snel-link-underline {
	border-bottom: 1px solid currentColor;
	padding-bottom: 3px;
}
.snel-more { margin-top: 32px !important; font-size: 15px; }

/* Inline links in running text: underlined so they read as clickable on every background. */
.snel-main p:not([class*="snel-"]) a,
.snel-main .snel-lead a {
	color: var(--snel-ink);
	font-weight: 500;
	text-decoration: underline;
	text-decoration-color: var(--snel-bronze);
	text-decoration-thickness: 1px;
	text-underline-offset: .22em;
	border-bottom: 0;
	padding-bottom: 0;
	transition: color .2s ease, text-decoration-color .2s ease, text-decoration-thickness .2s ease;
}
.snel-main p:not([class*="snel-"]) a:hover,
.snel-main .snel-lead a:hover,
.snel-main p:not([class*="snel-"]) a:focus-visible,
.snel-main .snel-lead a:focus-visible {
	color: var(--snel-bronze);
	text-decoration-color: currentColor;
	text-decoration-thickness: 2px;
}
.snel-main .is-dark p:not([class*="snel-"]) a,
.snel-main .is-dark .snel-lead a,
.snel-hero-b .snel-lead a {
	color: #fff;
	text-decoration-color: var(--snel-gold);
}
.snel-main .is-dark p:not([class*="snel-"]) a:hover,
.snel-main .is-dark .snel-lead a:hover,
.snel-hero-b .snel-lead a:hover,
.snel-main .is-dark p:not([class*="snel-"]) a:focus-visible,
.snel-main .is-dark .snel-lead a:focus-visible,
.snel-hero-b .snel-lead a:focus-visible {
	color: var(--snel-gold);
	text-decoration-color: currentColor;
}

/* ---------- Buttons ---------- */

.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.wp-block-buttons.is-centered { justify-content: center; }

.wp-block-button__link { transition: background-color .2s ease, color .2s ease; }

.wp-block-button.is-style-underline .wp-block-button__link {
	background: transparent !important;
	color: var(--snel-ink) !important;
	padding: 17px 8px;
	border-bottom: 1px solid rgba(18, 18, 17, .3);
}
.wp-block-button.is-style-underline .wp-block-button__link:hover { color: var(--snel-bronze) !important; }
.is-dark .wp-block-button.is-style-underline .wp-block-button__link { color: #fff !important; border-bottom-color: rgba(255, 255, 255, .5); }

.wp-block-button.is-style-light .wp-block-button__link { background: var(--snel-base) !important; color: var(--snel-ink) !important; }
.wp-block-button.is-style-light .wp-block-button__link:hover { background: #fff !important; }

/* ---------- Header ---------- */

.wp-site-blocks > header.wp-block-template-part,
.snel-site-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 20;
}
.wp-site-blocks > * { margin-block-start: 0; }

.snel-header {
	background: rgba(245, 243, 239, .92);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid rgba(18, 18, 17, .08);
}
/* backdrop-filter would trap the fixed mobile menu overlay inside the header. */
.snel-header:has(.is-menu-open) { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--snel-base); }
.snel-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 24px;
	padding-top: 18px;
	padding-bottom: 18px;
}
.snel-logo img { height: 56px; width: auto; display: block; }
.snel-logo a { display: block; }

.snel-nav { font-size: 14px; }
.snel-nav .wp-block-navigation__container { gap: 28px; }
.snel-nav .wp-block-navigation-item__content { padding-bottom: 2px; border-bottom: 1px solid transparent; }
.snel-nav .current-menu-item > .wp-block-navigation-item__content { border-bottom-color: var(--snel-ink); }
.snel-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--snel-base);
	color: var(--snel-ink);
	padding: 32px var(--snel-gutter);
}
.snel-nav .is-menu-open .wp-block-navigation__container { gap: 20px; font-family: var(--snel-display); font-size: 32px; }

.snel-header__cta { display: flex; align-items: center; gap: 10px; }
.snel-header__tel { font-size: 14px; }
.snel-header__tel a { padding: 10px 4px; }

@media (max-width: 600px) {
	.snel-header__inner { gap: 12px; padding-top: 12px; padding-bottom: 12px; }
	.snel-logo img { height: 44px; }
	.snel-header__inner { flex-wrap: nowrap; }
	.snel-header__tel { display: none; }
	.snel-header__cta { margin-left: auto; }
	.snel-nav { order: 3; }
}

/* ---------- Image stacks (hover sequences) ---------- */

.snel-media {
	position: relative;
	overflow: hidden;
	background: var(--snel-stone);
}
.snel-stack > .wp-block-image {
	position: absolute;
	inset: 0;
	margin: 0 !important;
	opacity: 0;
	transition: opacity .9s ease;
}
.snel-stack:not([data-ready]) > .wp-block-image:first-child,
.snel-stack > .wp-block-image.is-active { opacity: 1; }
.snel-stack > .wp-block-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1);
	transition: transform 7s cubic-bezier(.2, .6, .2, 1);
}
.snel-stack.is-hover > .wp-block-image img { transform: scale(1.06); }
.snel-stack.is-zoom.is-hover > .wp-block-image img { transform: scale(1.12) translateX(-1.5%); }

.snel-media--hero { aspect-ratio: 4 / 3.1; cursor: pointer; }
.snel-media--portrait { aspect-ratio: 4 / 5; max-height: 640px; }
.snel-media--portrait img { object-position: 50% 60%; transition-duration: 8s !important; }
.snel-media--portrait.is-hover img { transform: scale(1.08) !important; }
.snel-media--svc { aspect-ratio: 4 / 3; position: sticky; top: 110px; }
.snel-media--svc > .wp-block-image { transition: opacity .7s ease; }
.snel-media--svc > .wp-block-image img { transition-duration: 6s; }
.snel-media--svc > .wp-block-image.is-active img { transform: scale(1.07); }
.snel-media--card { aspect-ratio: 4 / 3; }
.snel-media--card > .wp-block-image, .snel-media--car > .wp-block-image { transition: opacity .6s ease; }
.snel-media--card > .wp-block-image img, .snel-media--car > .wp-block-image img { transition-duration: 6s; }
.snel-media--car { aspect-ratio: 3 / 2; cursor: pointer; }
.snel-media--car.is-hover > .wp-block-image img { transform: scale(1.05); }

.snel-dots {
	position: absolute;
	left: 20px;
	bottom: 18px;
	display: flex;
	gap: 6px;
	z-index: 2;
}
.snel-dots span { width: 22px; height: 2px; background: #fff; opacity: .4; transition: opacity .4s; }
.snel-dots span.is-active { opacity: 1; }

.snel-counter {
	position: absolute;
	right: 16px;
	top: 14px;
	z-index: 2;
	font-size: 12px;
	letter-spacing: .12em;
	color: var(--snel-ink);
	background: rgba(245, 243, 239, .88);
	padding: 6px 10px;
}

.snel-thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.snel-thumbs button {
	aspect-ratio: 3 / 2;
	padding: 0;
	border: 0;
	overflow: hidden;
	background: var(--snel-stone);
	outline: 1px solid transparent;
	outline-offset: 2px;
	transition: outline-color .3s;
	cursor: pointer;
}
.snel-thumbs button.is-active { outline-color: var(--snel-ink); }
.snel-thumbs img { width: 100%; height: 100%; object-fit: cover; display: block; opacity: .55; transition: opacity .3s; }
.snel-thumbs button.is-active img, .snel-thumbs button:hover img { opacity: 1; }

/* ---------- Home: hero + video ---------- */

/* Variant B: full-bleed video behind the hero copy. */
.snel-hero-b {
	position: relative;
	width: 100%;
	min-height: min(88vh, 900px);
	overflow: hidden;
	background: var(--snel-ink);
	display: flex;
	align-items: flex-end;
}
.snel-hero-b__video {
	position: absolute !important;
	inset: 0;
	margin: 0 !important;
}
.snel-hero-b__video video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.snel-hero-b::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		linear-gradient(90deg, rgba(10, 10, 9, .82) 0%, rgba(10, 10, 9, .55) 45%, rgba(10, 10, 9, .1) 80%),
		linear-gradient(0deg, rgba(10, 10, 9, .6) 0%, rgba(10, 10, 9, 0) 50%);
}
.snel-hero-b__inner {
	position: relative;
	z-index: 1;
	padding-top: 120px;
	padding-bottom: 72px;
}
.snel-hero__text {
	display: flex;
	flex-direction: column;
	gap: 28px;
	max-width: 720px;
	text-shadow: 0 1px 18px rgba(0, 0, 0, .35);
}
.snel-hero-b .snel-kicker { color: #e4d3b0; }
/* Brand name is part of the H1 but shown as a small line above it. */
.snel-title__brand {
	display: block;
	margin-bottom: 16px;
	font-family: var(--wp--preset--font-family--body);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: .28em;
	text-transform: uppercase;
	color: #e4d3b0;
}
/* Visually hidden, still read by search engines and screen readers. */
.snel-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.snel-hero-b .snel-title { color: #fff; }
.snel-hero-b .snel-lead { color: #ece8e1; }
.snel-hero-b .wp-block-button__link { text-shadow: none; }
.snel-hero-b .wp-block-button.is-style-underline .wp-block-button__link {
	color: #fff !important;
	border-bottom-color: rgba(255, 255, 255, .5);
}
.snel-hero-b .wp-block-button.is-style-underline .wp-block-button__link:hover { color: var(--snel-gold) !important; }

@media (max-width: 600px) {
	.snel-hero-b { min-height: 82vh; }
	.snel-hero-b__inner { padding-top: 96px; padding-bottom: 48px; }
	.snel-hero-b::after {
		background: linear-gradient(0deg, rgba(10, 10, 9, .85) 0%, rgba(10, 10, 9, .55) 60%, rgba(10, 10, 9, .3) 100%);
	}
}

/* ---------- USPs ---------- */

.snel-usps {
	list-style: none;
	padding: 0;
	margin-top: 48px !important;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	border-left: 1px solid rgba(245, 243, 239, .1);
	counter-reset: usp;
}
.snel-usps li {
	counter-increment: usp;
	padding: 28px 24px 8px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	border-right: 1px solid rgba(245, 243, 239, .1);
	font-size: 18px;
	line-height: 1.35;
}
.snel-usps li::before {
	content: "No. " counter(usp);
	font-family: var(--snel-display);
	font-weight: 500;
	font-style: italic;
	font-size: 21px;
	color: var(--snel-gold);
}

/* ---------- Services ---------- */

.snel-services { gap: 48px; }
.snel-services__list { display: flex; flex-direction: column; }
.snel-svc { list-style: none; padding: 0; border-top: 1px solid var(--snel-line); counter-reset: svc; }
.snel-svc li { counter-increment: svc; border-bottom: 1px solid var(--snel-line); }
.snel-svc a {
	display: grid;
	grid-template-columns: 48px 1fr auto;
	align-items: baseline;
	gap: 16px;
	padding: 26px 0;
	color: var(--snel-dim);
	transition: color .3s;
	font-family: var(--snel-display);
	font-weight: 500;
	font-size: clamp(24px, 2.4vw, 34px);
	line-height: 1.1;
}
.snel-svc a::before {
	content: "0" counter(svc);
	font-family: var(--wp--preset--font-family--body);
	font-size: 13px;
	color: var(--snel-muted);
	align-self: center;
}
.snel-svc a::after { content: "→"; font-family: var(--wp--preset--font-family--body); font-size: 20px; opacity: 0; transition: opacity .3s; }
.snel-svc a { transition: color .3s, grid-template-columns .4s; }
/* Shifting the first column nudges the title 8px right, as in the design. */
.snel-svc li.is-active a { color: var(--snel-ink); grid-template-columns: 56px 1fr auto; }
.snel-svc li.is-active a::after { opacity: 1; }

@media (max-width: 900px) {
	.snel-media--svc { position: relative; top: 0; order: -1; }
}

/* ---------- Languages ---------- */

.snel-langs {
	list-style: none;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1px;
	background: var(--snel-line);
	border: 1px solid var(--snel-line);
}
.snel-langs li {
	background: var(--snel-sand);
	padding: 32px 28px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 14px;
	color: var(--snel-muted);
}
.snel-langs strong {
	font-family: var(--snel-display);
	font-weight: 500;
	font-size: 52px;
	line-height: 1;
	color: var(--snel-ink);
}

/* ---------- Fleet slider ---------- */

.snel-fleet-section { padding-bottom: 104px; }
.snel-fleet-section > .snel-intro { margin-bottom: 48px; }
.snel-fleet {
	display: flex;
	gap: 20px;
	overflow-x: auto;
	padding: 8px 0 32px;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-ms-overflow-style: none;
	cursor: grab;
	user-select: none;
}
.snel-fleet::-webkit-scrollbar { display: none; }
.snel-fleet.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.snel-fleet.is-dragging * { pointer-events: none; }
.snel-card {
	position: relative;
	flex: 0 0 min(78vw, 400px);
	display: flex;
	flex-direction: column;
	gap: 16px;
	scroll-snap-align: start;
}
.snel-card img { -webkit-user-drag: none; }
.snel-card__meta { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.snel-card__title { font-size: 24px !important; line-height: 1.2; }
.snel-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 3; }
.snel-card__cap { flex: none; font-size: 13px; color: var(--snel-muted) !important; white-space: nowrap; }

.snel-fleet-controls { display: flex; align-items: center; gap: 24px; }
.snel-fleet-controls[hidden] { display: none; }
.snel-track { position: relative; flex: 1; height: 18px; cursor: pointer; display: flex; align-items: center; }
.snel-track::before { content: ""; position: absolute; left: 0; right: 0; height: 1px; background: rgba(18, 18, 17, .18); }
.snel-track__thumb { position: absolute; height: 3px; background: var(--snel-ink); left: 0; width: 40%; }
.snel-arrows { display: flex; gap: 8px; }
.snel-arrow {
	width: 44px;
	height: 44px;
	border: 1px solid rgba(18, 18, 17, .25);
	background: transparent;
	cursor: pointer;
	font-size: 16px;
	color: var(--snel-ink);
	transition: background-color .2s, color .2s, opacity .2s;
}
.snel-arrow:hover { background: var(--snel-ink); color: var(--snel-base); }
.snel-arrow[aria-disabled="true"] { opacity: .35; }
.snel-fleet-cta { margin-top: 40px; }

/* ---------- Places ---------- */

.snel-places { list-style: none; padding: 0; }
.snel-places li {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	padding: 18px 0;
	border-bottom: 1px solid var(--snel-line-dark);
	font-family: var(--snel-display);
	font-weight: 500;
	font-size: clamp(24px, 2.6vw, 36px);
	line-height: 1.2;
}
.snel-places em {
	font-style: normal;
	font-family: var(--wp--preset--font-family--body);
	font-size: 13px;
	color: var(--snel-on-dark-dim);
	letter-spacing: .08em;
	text-transform: uppercase;
	white-space: nowrap;
}

/* ---------- CTA ---------- */

.snel-cta {
	max-width: 1000px;
	margin: 0 auto;
	padding: 120px var(--snel-gutter);
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 28px;
}
.snel-cta__title { font-size: clamp(40px, 5vw, 72px); line-height: 1.02; }
.snel-cta .snel-lead { max-width: 660px; }
.snel-cta .snel-lead + .snel-lead { margin-top: -4px !important; }
.snel-cta .snel-more { margin-top: 0 !important; }

/* ---------- Footer ---------- */

.snel-footer { color: var(--snel-on-dark); font-size: 14px; }
.snel-footer__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 40px;
	padding-top: 64px;
	padding-bottom: 32px;
}
.snel-footer__logo img { width: 170px; height: auto; display: block; }
.snel-footer__col { line-height: 2 !important; color: var(--snel-on-dark) !important; }
.snel-footer__col strong { color: var(--snel-base); font-weight: 400; }
.snel-footer__col a { color: var(--snel-on-dark) !important; }
.snel-footer__col a:hover { color: var(--snel-gold) !important; }
.snel-footer__note {
	padding-top: 20px;
	padding-bottom: 32px;
	font-size: 12px;
	color: #8d887f !important;
	position: relative;
}
.snel-footer__note::before {
	content: "";
	position: absolute;
	top: 0;
	left: var(--snel-gutter);
	right: var(--snel-gutter);
	border-top: 1px solid rgba(245, 243, 239, .1);
}

/* ---------- Fleet page ---------- */

.snel-pagehead { padding-top: 72px; padding-bottom: 64px; }
.snel-pagehead p:not([class]) { font-size: 17px; }

.snel-cars { padding-top: 64px; padding-bottom: 96px; }
.snel-cars__intro { padding-bottom: 24px; }
.snel-cars__list { display: flex; flex-direction: column; gap: 96px; padding-top: 24px; }

.snel-car { display: flex; flex-wrap: wrap; gap: 56px; align-items: center; }
.snel-car--rev { flex-direction: row-reverse; }
.snel-car__media, .snel-car > .snel-media { flex: 1 1 560px; min-width: 0; }
.snel-car__media { display: flex; flex-direction: column; gap: 12px; }
.snel-car__body { flex: 1 1 360px; min-width: 0; display: flex; flex-direction: column; gap: 22px; }
.snel-car__n {
	font-family: var(--snel-display);
	font-weight: 500;
	font-style: italic;
	font-size: 16px;
	color: var(--snel-bronze) !important;
}
.snel-car__title { font-size: clamp(34px, 3.6vw, 52px); line-height: 1.02; }
.snel-tags { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.snel-tags li { font-size: 13px; padding: 7px 12px; border: 1px solid rgba(18, 18, 17, .2); color: var(--snel-text-2); line-height: 1.4; }
.snel-car__actions { gap: 10px; margin-top: 6px !important; }
.snel-car__actions .wp-block-button__link { padding: 15px 24px; }

.snel-occasions { list-style: none; padding: 0; counter-reset: occ; }
.snel-occasions li {
	counter-increment: occ;
	display: flex;
	gap: 20px;
	align-items: baseline;
	padding: 14px 0;
	border-bottom: 1px solid var(--snel-line-dark);
	font-size: 18px;
	line-height: 1.4;
}
.snel-occasions li::before {
	content: counter(occ);
	font-family: var(--snel-display);
	font-weight: 500;
	font-style: italic;
	font-size: 14px;
	color: var(--snel-gold);
	width: 24px;
	flex: none;
}
.snel-occasions + .snel-small { margin-top: 8px !important; }
.is-dark .snel-stackgap-sm { gap: 20px; }

/* ---------- Contact page ---------- */

.snel-contact { padding-bottom: 96px; }
.snel-tiles {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 1px;
	background: var(--snel-line);
	border: 1px solid var(--snel-line);
	margin-top: 8px;
}
.snel-tile {
	position: relative;
	background: var(--snel-base);
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	transition: background-color .2s;
}
.snel-tile:hover { background: #ece8e1; color: var(--snel-ink); }
.snel-tile > * { margin: 0; }
.snel-tile__label { display: flex; align-items: center; gap: 8px; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--snel-muted); }
.snel-tile__value { font-size: 22px; font-weight: 500; }
.snel-tile__value a { color: inherit; text-decoration: none; }
/* The whole tile is clickable. */
.snel-tile__value a::after { content: ""; position: absolute; inset: 0; }

.snel-form-card { background: #fff; border: 1px solid rgba(18, 18, 17, .1); padding: clamp(24px, 4vw, 48px); }

.snel-form { display: flex; flex-direction: column; gap: 26px; }
.snel-form input, .snel-form textarea, .snel-form button { font: inherit; }
.snel-form fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.snel-form legend { font-size: 14px; font-weight: 500; padding: 0; margin-bottom: 12px; }
.snel-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.snel-chip { position: relative; cursor: pointer; }
.snel-chip input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.snel-chip span {
	display: block;
	font-size: 14px;
	padding: 10px 14px;
	border: 1px solid rgba(18, 18, 17, .2);
	transition: all .2s;
}
.snel-chip input:checked + span { background: var(--snel-ink); color: var(--snel-base); border-color: var(--snel-ink); }
.snel-chip input:focus-visible + span { outline: 2px solid var(--snel-bronze); outline-offset: 2px; }
.snel-field { display: flex; flex-direction: column; gap: 8px; }
.snel-field > span { font-size: 14px; font-weight: 500; }
.snel-field input {
	border: 0;
	border-bottom: 1px solid rgba(18, 18, 17, .3);
	padding: 10px 0;
	font-size: 17px;
	background: transparent;
	outline: none;
	border-radius: 0;
	color: var(--snel-ink);
}
.snel-field textarea {
	border: 1px solid rgba(18, 18, 17, .2);
	padding: 14px;
	font-size: 16px;
	background: transparent;
	outline: none;
	resize: vertical;
	border-radius: 0;
	color: var(--snel-ink);
}
.snel-field input:focus { border-bottom-color: var(--snel-ink); }
.snel-field textarea:focus { border-color: var(--snel-ink); }
.snel-form__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 26px; }
.snel-form__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.snel-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: var(--snel-ink);
	color: var(--snel-base);
	border: 0;
	padding: 17px 28px;
	font-size: 15px;
	cursor: pointer;
	transition: background-color .2s;
}
.snel-btn:hover { background: var(--snel-graphite); color: var(--snel-base); }
.snel-form__error { background: #fbeaea; color: #7a1f1f; padding: 12px 16px; font-size: 15px; margin: 0; }
.snel-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.snel-form-done { display: flex; flex-direction: column; gap: 20px; padding: 40px 0; }
.snel-form-done h2 { font-size: 40px; line-height: 1.1; margin: 0; }
.snel-form-done p { margin: 0; font-size: 17px; line-height: 1.6; color: var(--snel-text); }
.snel-form-done .snel-form-done__kicker { font-family: var(--snel-display); font-weight: 500; font-style: italic; font-size: 18px; color: var(--snel-bronze); }
.snel-form-done .snel-link-underline { align-self: flex-start; font-size: 15px; }

.snel-help { list-style: none; padding: 0; border-top: 1px solid rgba(18, 18, 17, .16); }
.snel-help li {
	padding: 16px 0;
	border-bottom: 1px solid rgba(18, 18, 17, .16);
	font-family: var(--snel-display);
	font-weight: 500;
	font-size: 24px;
	line-height: 1.25;
}

.snel-details { display: flex; flex-direction: column; gap: 32px; padding: clamp(28px, 4vw, 48px); }
.snel-details__title { font-size: 36px; }
.snel-details__item { font-size: 18px; line-height: 1.5 !important; color: var(--snel-base) !important; }
.snel-details__item strong {
	display: inline-block;
	margin-bottom: 6px;
	font-size: 12px;
	font-weight: 400;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--snel-gold);
}

/* ---------- Generic pages ---------- */

.snel-prose { padding-bottom: 104px; }
.snel-prose .snel-title { margin-bottom: 40px; }
.snel-prose .wp-block-post-content > * + * { margin-top: 1.1em; }
.snel-prose .wp-block-post-content a { border-bottom: 1px solid currentColor; }

/* ---------- Content pages (services, fleet, about) ---------- */

.snel-content > * { margin-block-start: 0; }

.snel-phero { padding-bottom: 80px; }
.snel-phero__text { max-width: 640px; }
.snel-title--page { font-size: clamp(36px, 4.4vw, 64px); line-height: 1.04; }
.snel-phero .snel-lead { max-width: 600px; }
.snel-media--phero { aspect-ratio: 4 / 3.2; }
.snel-crumb a { color: var(--snel-bronze); border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.snel-crumb a:hover { color: var(--snel-ink); }

/* Heading left, text right. */
.snel-split {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 32px 72px;
	align-items: start;
}
.snel-split__head { position: sticky; top: 120px; }
.snel-split > .snel-h2:only-child { grid-column: 1 / -1; }

.snel-body { display: flex; flex-direction: column; gap: 18px; max-width: 700px; }
.snel-body p:not([class]) { font-size: 17px; }
.snel-h3 { font-size: clamp(24px, 2.2vw, 30px); line-height: 1.15; }
.snel-body .snel-h3 { margin-top: 16px !important; }
.snel-body__cta { margin-top: 10px !important; }

/* Photo beside text. */
.snel-mediasplit {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 40px 72px;
	align-items: center;
}
.snel-mediasplit.is-flip > .snel-media { order: 2; }
.snel-media--section { aspect-ratio: 4 / 3.3; }
.snel-body--media { gap: 18px; }
.snel-body--media .snel-h2 { margin-bottom: 8px !important; }

.snel-wide { margin-top: 56px !important; }
.snel-split + .snel-wide:has(.snel-infocards) { margin-top: 48px !important; }

@media (max-width: 900px) {
	.snel-split, .snel-mediasplit { grid-template-columns: 1fr; }
	.snel-split__head { position: static; }
	.snel-mediasplit.is-flip > .snel-media { order: 0; }
	.snel-phero { padding-bottom: 56px; }
}

/* Bulleted lists. */
.snel-bullets { list-style: none; padding: 0; border-top: 1px solid var(--snel-line); }
.snel-bullets li {
	position: relative;
	padding: 13px 0 13px 30px;
	border-bottom: 1px solid var(--snel-line);
	line-height: 1.55;
	color: var(--snel-text-2);
}
.snel-bullets li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 1.45em;
	width: 14px;
	height: 1px;
	background: var(--snel-bronze);
}
.snel-bullets strong { font-weight: 600; color: var(--snel-ink); }
.is-dark .snel-bullets, .is-dark .snel-bullets li { border-color: var(--snel-line-dark); }
.is-dark .snel-bullets li { color: var(--snel-on-dark); }
.is-dark .snel-bullets li::before { background: var(--snel-gold); }
.is-dark .snel-bullets strong { color: var(--snel-base); }

/* Link cards (services and cars). */
.snel-cardlist {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr));
	gap: 40px 24px;
}
.snel-cardlist .snel-card { flex: none; }
.snel-cardlist .snel-card__title { font-size: 26px !important; }
.snel-card__arrow { font-size: 20px !important; transition: transform .3s; }
.snel-card:hover .snel-card__arrow { transform: translateX(6px); color: var(--snel-ink) !important; }
.snel-card:hover .snel-card__title a { color: var(--snel-bronze); }

/* H3 cards. */
.snel-infocards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	gap: 1px;
	background: var(--snel-line);
	border: 1px solid var(--snel-line);
}
.snel-infocard { background: var(--snel-base); padding: 36px 32px; display: flex; flex-direction: column; gap: 14px; }
.is-sand .snel-infocard { background: var(--snel-sand); }
.snel-infocard p:not([class]) { font-size: 16px; }
.is-dark .snel-infocards { background: var(--snel-line-dark); border-color: var(--snel-line-dark); }
.is-dark .snel-infocard { background: var(--snel-ink); }
.is-dark .snel-infocard .snel-h3 { color: var(--snel-base); }

/* FAQ. */
.snel-faq { border-top: 1px solid var(--snel-line); }
.snel-faq__item { padding: 28px 0; border-bottom: 1px solid var(--snel-line); display: flex; flex-direction: column; gap: 12px; }
.snel-faq__q { font-size: clamp(22px, 2vw, 27px); line-height: 1.2; }
.snel-faq__item p:not([class]) { font-size: 16px; }

/* USPs on a light background. */
.snel-section:not(.is-dark) .snel-usps { border-left-color: var(--snel-line); }
.snel-section:not(.is-dark) .snel-usps li { border-right-color: var(--snel-line); }
.snel-wide .snel-usps { margin-top: 0 !important; }

/* ---------- Header submenus ---------- */

.snel-nav .wp-block-navigation__submenu-container {
	background: var(--snel-base) !important;
	border: 1px solid rgba(18, 18, 17, .1) !important;
	box-shadow: 0 12px 32px rgba(18, 18, 17, .08);
	padding: 10px 0 !important;
	min-width: 280px !important;
	top: calc(100% + 8px) !important;
}
.snel-nav .wp-block-navigation__submenu-container::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -12px;
	height: 12px;
}
.snel-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 9px 20px !important;
	border-bottom: 0 !important;
}
.snel-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { color: var(--snel-bronze); }
.snel-nav .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content { color: var(--snel-bronze); }
.snel-nav .wp-block-navigation-submenu__toggle { margin-left: 4px; }
.snel-nav .is-menu-open .wp-block-navigation__submenu-container {
	border: 0 !important;
	box-shadow: none;
	padding: 4px 0 8px 16px !important;
	font-family: var(--wp--preset--font-family--body);
	font-size: 17px;
	gap: 10px;
}
.snel-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 2px 0 !important; }

/* ---------- Footer links ---------- */

.snel-footer__links { padding-top: 0; }
.snel-footer__links strong a, .snel-footer__links a strong { color: var(--snel-base); }

/* ---------- Motion preferences ---------- */

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.snel-stack > .wp-block-image,
	.snel-stack > .wp-block-image img { transition: none !important; transform: none !important; }
}
