/* Homepage: verberg Kadence's standaard grijze paginatitel-band, de eigen hero vervangt hem */
.home .entry-hero.page-hero-section {
	display: none;
}

.home .content-area {
	margin-top: 0;
}

.home .entry.single-entry {
	box-shadow: none;
}

.home .entry-content-wrap {
	padding-top: 0;
}

/* Hero: het "platform"-signatuurelement. Amber-op-zwart is bewust: zo zien Europese
   vertrekborden (Solari-borden) er in het echt uit, dit is geen willekeurige kleurkeuze.
   Full-bleed via de viewport-breedte-truc, onafhankelijk van Kadence's boxed content. */
.lt-hero {
	background:
		radial-gradient(ellipse 900px 420px at 50% -8%, rgba(200, 155, 60, 0.12), transparent 62%),
		repeating-linear-gradient(90deg, rgba(247, 245, 240, 0.035) 0 1px, transparent 1px 96px),
		var(--lt-inkt);
	color: var(--lt-krijtwit);
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 3.5rem 1.5rem 3.5rem;
	position: relative;
	width: 100vw;
}

/* Geperforeerde treinkaartje-rand: de hero "scheurt af" naar de rest van de pagina */
.lt-hero::after {
	background: radial-gradient(circle at 11px 0, transparent 7px, var(--lt-krijtwit) 7.5px) repeat-x;
	background-size: 22px 14px;
	bottom: -1px;
	content: "";
	height: 14px;
	left: 0;
	position: absolute;
	right: 0;
}

/* Paginatitel-band op binnenpagina's: Kadence's eigen bleekblauwe standaardbalk
   (rgb(237,242,247)) had geen enkele relatie met de donkere homepage-hero, waardoor
   binnenpagina's als een ander, generiek sjabloon oogden (onafhankelijke review). Nu
   dezelfde donkere achtergrond, textuur en geperforeerde rand als .lt-hero, zodat het
   hele merk (niet alleen de homepage) uit hetzelfde ontwerp-DNA komt. Alleen zichtbaar
   op binnenpagina's: op de homepage staat deze band al op display:none. */
.entry-hero.page-hero-section {
	background:
		radial-gradient(ellipse 900px 420px at 50% -8%, rgba(200, 155, 60, 0.12), transparent 62%),
		repeating-linear-gradient(90deg, rgba(247, 245, 240, 0.035) 0 1px, transparent 1px 96px),
		var(--lt-inkt) !important;
	position: relative;
}

.entry-hero.page-hero-section::after {
	background: radial-gradient(circle at 11px 0, transparent 7px, var(--lt-krijtwit) 7.5px) repeat-x;
	background-size: 22px 14px;
	bottom: -1px;
	content: "";
	height: 14px;
	left: 0;
	position: absolute;
	right: 0;
}

.entry-hero.page-hero-section .entry-hero-container-inner,
.entry-hero.page-hero-section .hero-section-overlay {
	background: transparent !important;
}

.entry-hero.page-hero-section .entry-title {
	color: var(--lt-krijtwit) !important;
}

/* Kruimelpad boven de titel: klein en gedempt, zodat de H1 het zwaartepunt blijft.
   --lt-rood-licht i.p.v. --lt-rood voor de link: kale --lt-rood haalt op deze donkere
   achtergrond zelf maar 3.1:1, onder de 4.5:1-eis voor deze kleine tekst. */
.lt-breadcrumb {
	color: rgba(247, 245, 240, 0.55);
	display: block;
	font-family: var(--lt-font-mono);
	font-size: 0.78rem;
	letter-spacing: 0.03em;
	margin-bottom: 0.75rem;
}

.lt-breadcrumb a {
	color: var(--lt-rood-licht);
	text-decoration: none;
}

.lt-breadcrumb a:hover {
	color: var(--lt-krijtwit);
	text-decoration: underline;
}

.lt-breadcrumb .breadcrumb_last {
	color: rgba(247, 245, 240, 0.75);
}

/* Mini-route in de titelband van de vertrekstad-pagina's: dezelfde stationstaal als de
   kaart (open cirkel per halte, gevuld met halo voor je eigen vertrekpunt, crème cirkel
   voor Londen). Reistijd in messing: dat is de kleur van de tijden op het vertrekbord. */
.lt-routestrip {
	margin: 1.5rem 0 2.6rem;
}

.lt-routestrip ol {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
}

.lt-routestrip li {
	flex: 1 1 0;
	min-width: 0;
	padding-top: 1.7rem;
	position: relative;
	text-align: left;
}

.lt-routestrip li:last-child {
	flex: 0 0 auto;
	text-align: right;
}

.lt-routestrip li::before {
	background: var(--lt-inkt);
	border: 2px solid var(--lt-rood-licht);
	border-radius: 50%;
	content: "";
	height: 14px;
	left: 0;
	position: absolute;
	top: 0;
	width: 14px;
}

.lt-routestrip li.is-origin::before {
	background: var(--lt-rood-licht);
	box-shadow: 0 0 0 4px rgba(232, 114, 31, 0.25);
}

.lt-routestrip li.is-end::before {
	background: var(--lt-krijtwit);
	left: auto;
	right: 0;
}

.lt-routestrip li::after {
	border-top: 2px solid var(--lt-rood-licht);
	content: "";
	left: 20px;
	opacity: 0.75;
	position: absolute;
	right: 6px;
	top: 5px;
}

.lt-routestrip li:last-child::after {
	display: none;
}

.lt-routestrip li.is-ns::after {
	border-top-style: dashed;
}

.lt-routestrip li.is-tunnel::after {
	border-top-style: dotted;
	opacity: 0.55;
}

.lt-routestrip__naam {
	color: var(--lt-krijtwit);
	display: block;
	font-size: 0.82rem;
	font-weight: 600;
	line-height: 1.2;
}

.lt-routestrip__tijd {
	color: var(--lt-messing);
	display: block;
	font-family: var(--lt-font-mono);
	font-size: 0.72rem;
	letter-spacing: 0.02em;
	margin-top: 0.15rem;
}

.lt-routestrip li:last-child .lt-routestrip__tijd {
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0;
	margin-top: 0.1rem;
}

.lt-routestrip__seg {
	color: rgba(247, 245, 240, 0.7);
	font-family: var(--lt-font-mono);
	font-size: 0.68rem;
	left: 1.6rem;
	letter-spacing: 0.06em;
	position: absolute;
	right: 0.4rem;
	text-transform: uppercase;
	top: -0.95rem;
}

@media (max-width: 640px) {
	.lt-routestrip__naam { font-size: 0.58rem; letter-spacing: -0.01em; padding-right: 2px; }
	.lt-routestrip__tijd { font-size: 0.58rem; }
	.lt-routestrip li:last-child .lt-routestrip__tijd { font-size: 0.78rem; }
	.lt-routestrip__zuid,
	.lt-routestrip__seg { display: none; }
	.lt-routestrip__seg--ns { display: block; }
	.lt-routestrip li::after { border-top-width: 3px; }
	.lt-routestrip li:not(:last-child)::after { top: 4px; }
	.entry-hero.page-hero-section .entry-title { font-size: 1.7rem; line-height: 1.15; }
}

@media (prefers-reduced-motion: no-preference) {
	.lt-hero__eyebrow,
	.lt-hero__headline,
	.lt-map,
	.lt-hero__ticket {
		animation: lt-rise 0.6s cubic-bezier(0.16, 1, 0.3, 1) both;
	}
	.lt-hero__headline { animation-delay: 0.06s; }
	.lt-map { animation-delay: 0.14s; }
	.lt-hero__ticket { animation-delay: 0.22s; }
}

@keyframes lt-rise {
	from { opacity: 0; transform: translateY(10px); }
	to { opacity: 1; transform: translateY(0); }
}

.lt-hero__inner {
	margin: 0 auto;
	max-width: 760px;
}

.lt-hero__eyebrow {
	color: var(--lt-rood-licht);
	font-family: var(--lt-font-mono);
	font-size: 0.8rem;
	letter-spacing: 0.14em;
	margin: 0 0 1rem;
	text-transform: uppercase;
}

.lt-hero__headline {
	color: var(--lt-krijtwit) !important;
	font-size: clamp(2.1rem, 5.5vw, 3.4rem);
	line-height: 1.08;
	margin: 0 0 1.5rem;
}

/* "Londen" krijgt een eigen bestemmingsmarkering i.p.v. een generieke onderstreping:
   een gestippelde routelijn die eindigt in een stip met crème rand, exact de stijl
   waarmee de kaart eronder een eindpunt tekent (.lt-map__node--end). Zo is het
   duidelijkste woord van de titel meteen de eerste "stop" op de kaart die volgt. */
.lt-hero__dest {
	color: var(--lt-rood);
	display: inline-block;
	letter-spacing: 0.04em;
	padding-right: 4.3rem;
	position: relative;
}

/* Open cirkel (crème vulling + rode rand) i.p.v. een gevulde stip: dat is exact hoe
   .lt-map__node--end een eindpunt op de kaart eronder tekent. Eerste versie gebruikte
   een gevulde stip, wat een eigen (inconsistente) icoontaal was t.o.v. de kaart, en oogde
   te klein/te dicht op de tekst om als bewust element te lezen (onafhankelijke review). */
.lt-hero__dest::after {
	background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjYiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCA2NiAyMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8bGluZSB4MT0iNCIgeTE9IjEwIiB4Mj0iMzgiIHkyPSIxMCIgc3Ryb2tlPSIjQzA0QTA1IiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtZGFzaGFycmF5PSIwLjUgOCIvPgogIDxjaXJjbGUgY3g9IjUzIiBjeT0iMTAiIHI9IjguNSIgZmlsbD0iI0MwNEEwNSIgZmlsbC1vcGFjaXR5PSIwLjE4Ii8+CiAgPGNpcmNsZSBjeD0iNTMiIGN5PSIxMCIgcj0iNyIgZmlsbD0iI0Y3RjVGMCIgc3Ryb2tlPSIjQzA0QTA1IiBzdHJva2Utd2lkdGg9IjIiLz4KPC9zdmc+");
	background-position: left center;
	background-repeat: no-repeat;
	background-size: contain;
	bottom: 0.4em;
	content: "";
	height: 20px;
	position: absolute;
	right: 0;
	width: 66px;
}

.lt-hero__ticket {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin: 0 0 1.75rem;
}

.lt-hero__ticket span {
	background: rgba(247, 245, 240, 0.05);
	border: 1px solid rgba(247, 245, 240, 0.18);
	border-radius: 7px;
	color: var(--lt-messing);
	font-family: var(--lt-font-mono);
	font-size: 0.82rem;
	letter-spacing: 0.03em;
	padding: 0.5rem 0.85rem;
}

.lt-hero__intro {
	color: rgba(247, 245, 240, 0.88);
	font-size: 1.05rem;
	margin: 0 0 2rem;
	max-width: 62ch;
}

.lt-hero__cta {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-top: 1.75rem;
}

.lt-hero .lt-microdisclaimer {
	color: rgba(247, 245, 240, 0.6);
	margin-top: 0;
}

.lt-hero .lt-board {
	box-shadow: none;
	background: rgba(247, 245, 240, 0.04);
	border: 1px solid rgba(247, 245, 240, 0.14);
}

.lt-hero .lt-updated {
	background: transparent;
	border-color: rgba(247, 245, 240, 0.3);
	color: var(--lt-krijtwit);
}

/* Gewone tekstlinks in de hero (bijv. in de toelichting bij het vertrekbord) vielen
   terug op Kadence's eigen standaard-linkkleur (blauw, ~2.8:1 op --lt-inkt, onder de
   4.5:1-eis) i.p.v. het sitepalet. --lt-rood-licht i.p.v. --lt-rood: kale --lt-rood
   haalt op deze donkere achtergrond zelf ook maar 3.1:1. */
.lt-hero a:not(.lt-cta) {
	color: var(--lt-rood-licht);
}

.lt-hero a:not(.lt-cta):hover {
	color: var(--lt-krijtwit);
}

/* Routekaart: het echte signatuurmoment. Toont hoe de trein via Amsterdam, Rotterdam,
   Brussel-Zuid en Lille door de Kanaaltunnel naar Londen rijdt. Derde versie (17 sep
   2026): licht kaartpalet met een verzadigd routeaccent, zie tools/build-map.mjs voor
   de generator en tokens.css voor de --map-* kleurtokens. */
/* Full-bleed zoals .lt-hero zelf, i.p.v. een smallere kaart die als los kaartje
   "zwevend" binnen de donkere hero staat. */
.lt-hero__wide {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 0 1.5rem;
	width: 100vw;
}

.lt-map {
	margin: 2rem auto 2.5rem;
	max-width: 1800px;
}

.lt-map svg {
	border-radius: var(--lt-radius-lg);
	box-shadow: 0 20px 45px -18px rgba(0, 0, 0, 0.45);
	display: block;
	height: auto;
	width: 100%;
}

.lt-map svg.lt-map--mobile {
	display: none;
}

@media (max-width: 640px) {
	.lt-map svg.lt-map--desktop {
		display: none;
	}
	.lt-map svg.lt-map--mobile {
		display: block;
	}
}

.lt-map__sea {
	fill: var(--map-sea);
}

.lt-map__coast-glow {
	stroke: var(--map-coast-glow);
}

.lt-map__land {
	fill: var(--map-land);
	stroke: var(--map-label);
	stroke-linejoin: round;
	stroke-opacity: 0.35;
	stroke-width: 1;
}

.lt-map__graticule {
	stroke: var(--map-graticule);
	stroke-opacity: 0.5;
	stroke-width: 0.75;
}

.lt-map__grid-label {
	/* --map-label i.p.v. --map-label-muted en geen opacity-verlaging: bij 0.8 opacity
	   over zee zakte dit onder 4.5:1 (CSS-opacity mengt met de achtergrond, dus het
	   werkelijke contrast lag lager dan de kale kleurwaarde deed vermoeden). */
	fill: var(--map-label);
	font-family: var(--lt-font-mono);
	font-size: 9px;
}

.lt-map__country {
	fill: var(--map-country);
	font-family: var(--lt-font-body);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-transform: uppercase;
}

.lt-map__sea-label {
	fill: var(--map-sea-label);
	font-family: var(--lt-font-body);
	font-size: 12px;
	font-variant-caps: small-caps;
	font-weight: 600;
	letter-spacing: 2.5px;
}

.lt-map__feeder {
	fill: none;
	stroke: var(--map-route-alt);
	stroke-dasharray: 4 5;
	stroke-linecap: round;
	stroke-width: 1.5;
}

.lt-map__route-case {
	fill: none;
	stroke: var(--map-route-case);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 7;
}

.lt-map__route {
	fill: none;
	stroke: var(--map-route);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2.6;
}

.lt-map__route--tunnel {
	stroke-dasharray: 3 4;
	stroke-opacity: 0.6;
}

.lt-map__leader {
	stroke: var(--map-label-muted);
	stroke-dasharray: 2 3;
	stroke-opacity: 0.6;
	stroke-width: 1;
}

.lt-map__link {
	outline-offset: 3px;
}

.lt-map__link:focus-visible {
	outline: 2px solid var(--map-route);
	outline-offset: 3px;
}

.lt-map__node {
	fill: var(--map-station-fill);
	stroke: var(--map-station-outline);
	stroke-width: 1.25;
	transition: r 0.15s ease, fill 0.15s ease;
}

.lt-map__node:hover,
.lt-map__link:hover .lt-map__node,
.lt-map__link:focus-visible .lt-map__node {
	fill: var(--map-route);
}

.lt-map__node--end {
	fill: var(--map-station-halo);
	stroke: var(--map-station-outline);
	stroke-width: 1.5;
}

.lt-map__node.lt-map__node--passed {
	fill: var(--map-route);
}

.lt-map__label {
	fill: var(--map-label);
	font-family: var(--lt-font-body);
	font-weight: 600;
	paint-order: stroke;
	stroke: var(--map-land);
	stroke-width: 3px;
}

.lt-map__label--endpoint {
	font-weight: 700;
	letter-spacing: 0.01em;
	stroke-width: 3.5px;
}

.lt-map__label-muted {
	fill: var(--map-label-muted);
	font-family: var(--lt-font-body);
	font-weight: 400;
	paint-order: stroke;
	stroke: var(--map-land);
	stroke-width: 3px;
}

.lt-map__caption {
	/* --map-label i.p.v. --map-label-muted: die laatste haalde maar 4.19:1 op de zee,
	   onder de 4.5:1-eis voor tekst. Zie het verslag. */
	fill: var(--map-label);
	font-family: var(--lt-font-body);
	font-size: 11px;
	letter-spacing: 0.06em;
	paint-order: stroke;
	stroke: var(--map-sea);
	stroke-width: 3px;
	text-transform: uppercase;
	transition: fill 0.2s ease;
}

.lt-map__caption.lt-map__caption--lit {
	fill: var(--map-route);
}

.lt-map__scale {
	stroke: var(--map-label-muted);
	stroke-width: 1;
}

.lt-map__frame {
	fill: none;
	stroke: var(--map-label-muted);
	stroke-opacity: 0.4;
	stroke-width: 1;
}

.lt-map__train {
	transition: opacity 0.3s ease;
}

.lt-map__train-casing {
	fill: var(--map-train-line);
}

.lt-map__train-body {
	fill: var(--map-train);
}

.lt-map__train-window {
	fill: var(--map-train-line);
}

.lt-map__train-trail {
	stroke: var(--map-route);
	stroke-linecap: round;
	stroke-width: 1.5;
}

.lt-map__train.lt-map__train--in-tunnel {
	opacity: 0.25;
}

/* Afbeeldingsplaceholder: duidelijk als productienotitie, niet als lopende tekst */
.lt-placeholder {
	background: rgba(247, 245, 240, 0.04);
	border: 1px dashed rgba(247, 245, 240, 0.3);
	border-radius: var(--lt-radius);
	color: rgba(247, 245, 240, 0.55);
	font-size: 0.82rem;
	margin: 0 0 1.75rem;
	padding: 0.6rem 0.9rem;
}

/* Callout ("Goed om te weten"), buiten de hero */
.lt-callout {
	background: var(--lt-wit);
	border-left: 3px solid var(--lt-rood);
	border-radius: 0 var(--lt-radius) var(--lt-radius) 0;
	padding: 1rem 1.25rem;
}

/* Vijf stappen: een echte reisvolgorde, dus getekend als spoorlijn met vijf stations
   (vertrekstad, boeken, voorbereiden, aankomst, verblijf). Zelfde stationstaal als de
   kaart: open cirkel per halte, gevulde cirkel met halo voor het eindpunt Londen. */
.lt-steps {
	counter-reset: stap;
	display: grid;
	gap: 0 1.5rem;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	margin: 2.5rem 0 3rem;
	position: relative;
}

.lt-steps::before {
	border-top: 3px dashed var(--lt-rood);
	content: "";
	left: 8px;
	opacity: 0.55;
	position: absolute;
	right: calc(20% - 8px);
	top: 9px;
}

.lt-step {
	padding: 1.7rem 0 0;
	position: relative;
}

.lt-step::before {
	background: var(--lt-krijtwit);
	border: 3px solid var(--lt-rood);
	border-radius: 50%;
	content: "";
	height: 21px;
	left: 0;
	position: absolute;
	top: 0;
	width: 21px;
}

.lt-step:last-child::before {
	background: var(--lt-rood);
	box-shadow: 0 0 0 5px rgba(192, 74, 5, 0.18);
}

.lt-step__nr {
	color: var(--lt-rood);
	display: block;
	font-family: var(--lt-font-mono);
	font-size: 0.8rem;
	letter-spacing: 0.1em;
	margin-bottom: 0.4rem;
}

.lt-step h3 {
	font-size: 1.1rem;
	margin: 0 0 0.4rem;
}

.lt-step p {
	color: #445;
	font-size: 0.9rem;
	line-height: 1.55;
	margin: 0;
}

@media (max-width: 900px) {
	.lt-steps {
		gap: 1.75rem 0;
		grid-template-columns: 1fr;
		padding-left: 2.25rem;
	}
	.lt-steps::before {
		border-left: 3px dashed var(--lt-rood);
		border-top: 0;
		bottom: 1.5rem;
		left: 9px;
		right: auto;
		top: 9px;
	}
	.lt-step {
		padding: 0;
	}
	.lt-step::before {
		left: -2.25rem;
		top: 0.1rem;
	}
}

/* Parallelle factoren (bijv. "drie dingen die de prijs bepalen"): zelfde kaartvorm als
   .lt-step, maar zonder volgordenummer, want hier is geen volgorde. Vervangt platte
   alinea's die begonnen met een vet label ("Vraag. tekst...") - die lazen als een
   Word-document i.p.v. drie gelijkwaardige, van elkaar te onderscheiden factoren. */
.lt-factoren {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	margin: 1.5rem 0 2rem;
}

.lt-factor {
	background: var(--lt-wit);
	border: 1px solid var(--lt-lijn);
	border-radius: var(--lt-radius);
	border-top: 3px solid var(--lt-rood);
	padding: 1.25rem 1.25rem 1.5rem;
}

.lt-factor h3 {
	font-size: 1.05rem;
	margin: 0 0 0.4rem;
}

.lt-factor p {
	color: #445;
	font-size: 0.92rem;
	line-height: 1.55;
	margin: 0;
}

/* FAQ-accordion op basis van <details>, geen extra JS nodig */
.lt-faq details {
	border-bottom: 1px solid var(--lt-lijn);
	padding: 1rem 0;
}

.lt-faq summary {
	cursor: pointer;
	font-family: var(--lt-font-display);
	font-size: 1.05rem;
	font-weight: 600;
	list-style: none;
	padding-right: 2rem;
	position: relative;
}

.lt-faq summary::-webkit-details-marker {
	display: none;
}

.lt-faq summary::after {
	color: var(--lt-rood);
	content: "+";
	font-family: var(--lt-font-mono);
	font-size: 1.3rem;
	position: absolute;
	right: 0;
	top: -0.15rem;
}

.lt-faq details[open] summary::after {
	content: "\2212";
}

.lt-faq details p {
	color: #445;
	margin: 0.75rem 0 0;
}

/* Signatuurelement: het vertrekbord (NL-stad -> Brussel -> tunnel -> St Pancras) */
.lt-board {
	background: var(--lt-inkt);
	border-radius: var(--lt-radius-lg);
	color: var(--lt-krijtwit);
	padding: 1.5rem;
	box-shadow: var(--lt-schaduw);
}

.lt-board__row {
	align-items: center;
	border-bottom: 1px solid rgba(247, 245, 240, 0.12);
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	padding: 0.6rem 0;
}

.lt-board__row:last-child {
	border-bottom: none;
}

.lt-board__route {
	font-size: 0.95rem;
	letter-spacing: 0.02em;
}

.lt-board__tijd {
	color: var(--lt-messing);
	font-size: 1.1rem;
	font-weight: 600;
	text-align: right;
	white-space: nowrap;
}

@media (max-width: 480px) {
	.lt-board__row {
		flex-wrap: wrap;
	}
}

/* Prijstabel: kaartomlijsting, kopregel en zebra-rijen erbij i.p.v. alleen dunne
   onderrandjes - naast .lt-board (donker) en .lt-factor (kaart met rode bovenrand) las
   de tabel zonder dat als het "kale" element van de drie (onafhankelijke review). */
.lt-prijzen {
	border: 1px solid var(--lt-lijn);
	border-radius: var(--lt-radius);
	overflow: hidden;
}

.lt-prijzen table {
	border-collapse: collapse;
	width: 100%;
}

.lt-prijzen th,
.lt-prijzen td {
	padding: 0.75rem 1rem;
	text-align: left;
}

.lt-prijzen th {
	background: var(--lt-krijtwit);
	border-bottom: 2px solid var(--lt-rood);
	font-family: var(--lt-font-display);
}

.lt-prijzen tbody tr:not(:last-child) td {
	border-bottom: 1px solid var(--lt-lijn);
}

.lt-prijzen tbody tr:nth-child(even) {
	background: rgba(228, 222, 210, 0.25);
}

.lt-prijzen td.lt-prijs {
	color: var(--lt-rood);
	font-weight: 600;
}

/* Checklist */
.lt-check {
	display: grid;
	gap: 0.6rem;
	list-style: none;
	margin: 1.5rem 0;
	padding: 0;
}

.lt-check li {
	background: var(--lt-wit);
	border: 1px solid var(--lt-lijn);
	border-radius: var(--lt-radius);
	padding: 0.75rem 1rem;
	padding-left: 2.5rem;
	position: relative;
}

.lt-check li::before {
	content: "\2713";
	color: var(--lt-rood);
	font-weight: 700;
	left: 1rem;
	position: absolute;
}

/* Beschrijvende opsommingen (bijv. een lijst wijken of bezienswaardigheden): geen
   vinkje, want er is niets af te vinken, maar ook geen kale browser-bullet. Zelfde
   gedachte als .lt-check (rustige kaartlijst i.p.v. standaard <ul>), alleen zonder de
   actie-connotatie van een checkmark. */
.lt-list {
	display: grid;
	gap: 0.5rem;
	list-style: none;
	margin: 1.5rem 0;
	padding: 0;
}

.lt-list li {
	border-bottom: 1px solid var(--lt-lijn);
	padding: 0.6rem 0 0.6rem 1.25rem;
	position: relative;
}

.lt-list li:last-child {
	border-bottom: none;
}

.lt-list li::before {
	color: var(--lt-rood);
	content: "\2014";
	left: 0;
	position: absolute;
}

/* Voordelen/nadelen naast elkaar: plus- en minteken i.p.v. een vinkje, want een
   "nadeel" is per definitie niet iets om af te vinken. */
.lt-voordelen,
.lt-nadelen {
	display: grid;
	gap: 0.5rem;
	list-style: none;
	margin: 1rem 0 1.5rem;
	padding: 0;
}

.lt-voordelen li,
.lt-nadelen li {
	padding-left: 1.5rem;
	position: relative;
}

.lt-voordelen li::before {
	color: var(--lt-rood);
	content: "+";
	font-weight: 700;
	left: 0;
	position: absolute;
}

.lt-nadelen li::before {
	color: #667;
	content: "\2212";
	font-weight: 700;
	left: 0;
	position: absolute;
}

/* Micro-disclaimer bij elke boekingsmodule */
.lt-microdisclaimer {
	color: #5b6b78;
	font-size: 0.82rem;
	margin-top: 0.5rem;
}

/* Updated-datum badge */
.lt-updated {
	background: var(--lt-krijtwit);
	border: 1px solid var(--lt-lijn);
	border-radius: 999px;
	color: var(--lt-inkt);
	display: inline-flex;
	font-size: 0.8rem;
	gap: 0.4rem;
	padding: 0.3rem 0.8rem;
}

/* ---------- Header/menu: herstijld naar het designsysteem ---------- */

.site-branding .site-title {
	font-family: var(--lt-font-display);
	font-size: 1.3rem;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.site-branding .brand {
	align-items: center;
	display: flex;
	gap: 0.6rem;
}

.site-branding .brand::before {
	background-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cmVjdCB4PSIyIiB5PSIyIiB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHJ4PSIyMiIgZmlsbD0iIzEyMjYzQSIvPgogIDxyZWN0IHg9IjIiIHk9IjIiIHdpZHRoPSI5NiIgaGVpZ2h0PSI5NiIgcng9IjIyIiBmaWxsPSJub25lIiBzdHJva2U9IiNDMDRBMDUiIHN0cm9rZS13aWR0aD0iMiIvPgogIDxwb2x5bGluZSBwb2ludHM9IjM4LDM2IDQ0LDI5LjUgNTAsMzYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0Y3RjVGMCIgc3Ryb2tlLXdpZHRoPSIxLjciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogIDxsaW5lIHgxPSI0MC41IiB5MT0iMjkuNSIgeDI9IjQ3LjUiIHkyPSIyOS41IiBzdHJva2U9IiNGN0Y1RjAiIHN0cm9rZS13aWR0aD0iMS43IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICA8cGF0aCBkPSJNMTYsMzYgTDU4LDM2IEM3NCwzNiA4Niw0NiA5NCw2MCBDOTUuNSw2MyA5NCw2NiA5MSw2NiBMMTYsNjYgUTE0LDY2IDE0LDY0IEwxNCwzOCBRMTQsMzYgMTYsMzYgWiIgZmlsbD0iI0Y3RjVGMCIvPgogIDxyZWN0IHg9IjE0IiB5PSI2MiIgd2lkdGg9Ijc5IiBoZWlnaHQ9IjQiIGZpbGw9IiNEQ0Q2QzkiLz4KICA8cGF0aCBkPSJNNjEsNDAgQzcwLDQwIDc4LDQ1IDg0LDU0IEw2MSw1NCBaIiBmaWxsPSIjMTIyNjNBIi8+CiAgPHBhdGggZD0iTTYzLDQyLjIgQzY5LDQyLjQgNzQsNDUgNzcuNSw0OSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjRjdGNUYwIiBzdHJva2Utb3BhY2l0eT0iMC4zNSIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogIDxyZWN0IHg9IjE5IiB5PSI0MyIgd2lkdGg9IjYiIGhlaWdodD0iOCIgcng9IjIiIGZpbGw9IiMxMjI2M0EiLz4KICA8cmVjdCB4PSIyNy41IiB5PSI0MyIgd2lkdGg9IjYiIGhlaWdodD0iOCIgcng9IjIiIGZpbGw9IiMxMjI2M0EiLz4KICA8cmVjdCB4PSIzNiIgeT0iNDMiIHdpZHRoPSI2IiBoZWlnaHQ9IjgiIHJ4PSIyIiBmaWxsPSIjMTIyNjNBIi8+CiAgPHJlY3QgeD0iNDQuNSIgeT0iNDMiIHdpZHRoPSI2IiBoZWlnaHQ9IjgiIHJ4PSIyIiBmaWxsPSIjMTIyNjNBIi8+CiAgPHJlY3QgeD0iNTMiIHk9IjQzIiB3aWR0aD0iNiIgaGVpZ2h0PSI4IiByeD0iMiIgZmlsbD0iIzEyMjYzQSIvPgogIDxwYXRoIGQ9Ik0xNCw1NyBMODYuNSw1NyBMOTAuNSw2MS41IEwxNCw2MS41IFoiIGZpbGw9IiNDMDRBMDUiLz4KICA8Y2lyY2xlIGN4PSI5MS42IiBjeT0iNjIuNiIgcj0iMS43IiBmaWxsPSIjQzg5QjNDIi8+CiAgPGNpcmNsZSBjeD0iMjgiIGN5PSI2OCIgcj0iMy4zIiBmaWxsPSIjRjdGNUYwIi8+PGNpcmNsZSBjeD0iMjgiIGN5PSI2OCIgcj0iMS4yIiBmaWxsPSIjMTIyNjNBIi8+CiAgPGNpcmNsZSBjeD0iNDYiIGN5PSI2OCIgcj0iMy4zIiBmaWxsPSIjRjdGNUYwIi8+PGNpcmNsZSBjeD0iNDYiIGN5PSI2OCIgcj0iMS4yIiBmaWxsPSIjMTIyNjNBIi8+CiAgPGNpcmNsZSBjeD0iNzIiIGN5PSI2OCIgcj0iMy4zIiBmaWxsPSIjRjdGNUYwIi8+PGNpcmNsZSBjeD0iNzIiIGN5PSI2OCIgcj0iMS4yIiBmaWxsPSIjMTIyNjNBIi8+CiAgPGxpbmUgeDE9IjEwIiB5MT0iNzQuNSIgeDI9IjkyIiB5Mj0iNzQuNSIgc3Ryb2tlPSIjRjdGNUYwIiBzdHJva2Utb3BhY2l0eT0iMC42IiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPg==");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	border-radius: 8px;
	content: "";
	display: block;
	flex-shrink: 0;
	height: 38px;
	transition: transform 0.2s ease;
	width: 38px;
}

.site-branding .brand:hover::before,
.site-branding .brand:focus-visible::before {
	transform: rotate(-4deg) scale(1.06);
}

@media (prefers-reduced-motion: reduce) {
	.site-branding .brand::before {
		transition: none;
	}
}

/* Donker masthead i.p.v. Kadence's standaard wit: zo loopt de header direct door in de
   donkere hero/H1 eronder in plaats van als afzonderlijke witte balk erboven te staan.
   Sitebreed (niet alleen homepage), zodat de navigatie er op elke pagina hetzelfde
   uitziet in plaats van per pagina te wisselen. */
/* !important: Kadence's Customizer-kleur voor de header komt uit een losse, later
   ingeladen <style>-blok met dezelfde specificiteit, die wint anders op laadvolgorde. */
#masthead {
	background: var(--lt-inkt) !important;
	border-bottom: 1px solid rgba(247, 245, 240, 0.12);
}

.site-branding .site-title,
.site-branding .site-title a {
	color: var(--lt-krijtwit) !important;
}

/* Onderstreping die aanlegt als een spoor i.p.v. rechtstreeks verschijnt: groeit vanuit
   het midden naar buiten bij hover, blijft aan bij de huidige pagina. Zelfde beweging
   als het treintje op de kaart eronder een lijn aflegt, dus consistent motief. */
.main-navigation .primary-menu-container > ul > li.menu-item > a {
	color: var(--lt-krijtwit) !important;
	font-family: var(--lt-font-body);
	font-weight: 600;
	position: relative;
}

.main-navigation .primary-menu-container > ul > li.menu-item > a::after {
	background: var(--lt-rood-licht);
	bottom: 0.25rem;
	content: "";
	height: 2px;
	left: 0.9rem;
	position: absolute;
	right: 0.9rem;
	transform: scaleX(0);
}

@media (prefers-reduced-motion: no-preference) {
	.main-navigation .primary-menu-container > ul > li.menu-item > a::after {
		transition: transform 0.25s ease;
	}
}

/* :focus naast :hover: Kadence zet zelf outline:0 op linknavigatie zonder eigen
   vervanging, dus zonder dit had een toetsenbordgebruiker geen enkele zichtbare
   aanwijzing welk menu-item actief is (bevestigd: outline-style stond op "none").
   :focus i.p.v. :focus-visible: dat laatste loste in test onverklaarbaar niet in
   ondanks correcte specificiteit; :focus is breder ondersteund en ondubbelzinnig. */
.main-navigation .primary-menu-container > ul > li.menu-item > a:hover,
.main-navigation .primary-menu-container > ul > li.menu-item > a:focus,
.main-navigation .primary-menu-container > ul > li.menu-item.current-menu-item > a {
	color: var(--lt-rood-licht) !important;
}

.main-navigation .primary-menu-container > ul > li.menu-item > a:hover::after,
.main-navigation .primary-menu-container > ul > li.menu-item > a:focus::after,
.main-navigation .primary-menu-container > ul > li.menu-item.current-menu-item > a::after {
	transform: scaleX(1);
}

.main-navigation .primary-menu-container > ul > li.menu-item > a:focus {
	outline: 2px solid var(--lt-rood-licht) !important;
	outline-offset: 2px !important;
}

.mobile-toggle-open-container,
.menu-toggle-open {
	color: var(--lt-krijtwit) !important;
}

/* --lt-schaduw is een donkere schaduw voor op een licht vlak; op het nu eveneens
   donkere masthead/hero-oppervlak was die vrijwel onzichtbaar, waardoor het dropdown-
   paneel optisch niet duidelijk "los" kwam van de achtergrond erachter (onafhankelijke
   review: onduidelijke grens). Een lichte schaduw plus dunne lichte rand geeft wel
   diepte op een donkere ondergrond. */
.header-navigation .header-menu-container ul ul.sub-menu {
	background: var(--lt-inkt) !important;
	border: 1px solid rgba(247, 245, 240, 0.12);
	border-top: 2px solid var(--lt-rood-licht);
	box-shadow: 0 16px 32px -12px rgba(0, 0, 0, 0.55) !important;
}

.header-navigation .header-menu-container ul ul li.menu-item {
	border-bottom-color: rgba(247, 245, 240, 0.1) !important;
}

.header-navigation .header-menu-container ul ul li.menu-item > a {
	color: var(--lt-krijtwit) !important;
	font-family: var(--lt-font-body);
}

.header-navigation .header-menu-container ul ul li.menu-item > a:hover {
	background: rgba(247, 245, 240, 0.06) !important;
	color: var(--lt-rood-licht) !important;
}

/* ---------- Footer: eigen ontwerp i.p.v. Kadence's kale standaardfooter ---------- */

#colophon.site-footer {
	display: none;
}

.lt-footer {
	background: var(--lt-inkt);
	color: rgba(247, 245, 240, 0.8);
	padding: 3rem 1.5rem 0;
}

.lt-footer__grid {
	display: grid;
	gap: 2rem;
	grid-template-columns: 1.4fr repeat(5, 1fr);
	margin: 0 auto;
	max-width: 1180px;
	padding-bottom: 2.5rem;
}

.lt-footer__wordmark {
	align-items: center;
	color: var(--lt-krijtwit);
	display: flex;
	font-family: var(--lt-font-display);
	font-size: 1.2rem;
	font-weight: 700;
	gap: 0.6rem;
	margin: 0 0 0.75rem;
}

.lt-footer__wordmark span {
	color: var(--lt-rood-licht);
}

.lt-footer__mark {
	flex-shrink: 0;
	height: 30px;
	width: 30px;
}

.lt-footer__desc {
	color: rgba(247, 245, 240, 0.6);
	font-size: 0.88rem;
	line-height: 1.6;
	margin: 0;
	max-width: 32ch;
}

.lt-footer__heading {
	color: var(--lt-rood-licht);
	font-family: var(--lt-font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	margin: 0 0 0.9rem;
	text-transform: uppercase;
}

.lt-footer__col {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
}

.lt-footer__col a {
	color: rgba(247, 245, 240, 0.78);
	font-size: 0.9rem;
	text-decoration: none;
}

.lt-footer__col a:hover {
	color: var(--lt-krijtwit);
	text-decoration: underline;
}

.lt-footer__strip {
	border-top: 1px solid rgba(247, 245, 240, 0.12);
	display: flex;
	font-family: var(--lt-font-mono);
	font-size: 0.78rem;
	justify-content: center;
	letter-spacing: 0.12em;
	margin: 0 auto;
	max-width: 1180px;
	padding: 1rem 0;
}

.lt-footer__strip span {
	color: rgba(247, 245, 240, 0.35);
	padding: 0 0.9rem;
	position: relative;
}

.lt-footer__strip span:not(:last-child)::after {
	content: "\2192";
	position: absolute;
	right: -0.15rem;
}

.lt-footer__strip-end {
	color: var(--lt-rood-licht) !important;
	font-weight: 600;
}

@media (max-width: 900px) {
	.lt-footer__grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.lt-footer__brand {
		grid-column: 1 / -1;
	}
}

@media (max-width: 480px) {
	.lt-footer__grid {
		grid-template-columns: 1fr;
	}
	.lt-footer__strip {
		flex-wrap: wrap;
	}
}

/* Footer-bottombar disclaimer */
.lt-footer-disclaimer {
	background: var(--lt-inkt);
	color: var(--lt-krijtwit);
	font-size: 0.82rem;
	padding: 0.75rem 1rem;
	text-align: center;
}

.lt-footer-disclaimer a {
	color: var(--lt-rood-licht);
}

/* Cookiebanner */
.lt-cookiebanner {
	background: var(--lt-inkt);
	border-radius: var(--lt-radius-lg);
	bottom: 1rem;
	box-shadow: var(--lt-schaduw);
	color: var(--lt-krijtwit);
	left: 1rem;
	max-width: 340px;
	padding: 1rem 1.1rem;
	position: fixed;
	right: 1rem;
	z-index: 999999;
}

.lt-cookiebanner__kop {
	font-weight: 600;
	margin: 0 0 0.2rem;
}

.lt-cookiebanner__tekst {
	font-size: 0.85rem;
	line-height: 1.4;
	margin: 0;
}

@media (max-width: 640px) {
	.lt-cookiebanner {
		bottom: 0.5rem;
		left: 0.5rem;
		max-width: none;
		padding: 0.7rem 0.85rem;
		right: 0.5rem;
	}

	.lt-cookiebanner__kop {
		display: none;
	}

	.lt-cookiebanner__tekst {
		font-size: 0.8rem;
	}

	.lt-cookiebanner__acties {
		margin-top: 0.55rem !important;
	}

	.lt-cookiebanner button {
		flex: 1;
		font-size: 0.85rem;
		padding: 0.5rem 0.6rem !important;
	}
}

.lt-cookiebanner__acties {
	display: flex;
	gap: 0.75rem;
	margin-top: 1rem;
}

.lt-cookiebanner button {
	font-size: 0.85rem;
	white-space: nowrap;
	border: none;
	border-radius: var(--lt-radius);
	cursor: pointer;
	font-weight: 600;
	padding: 0.6rem 1.1rem;
}

.lt-cookiebanner .lt-accept {
	background: var(--lt-rood);
	color: var(--lt-wit);
}

.lt-cookiebanner .lt-decline {
	background: transparent;
	border: 1px solid rgba(247, 245, 240, 0.4);
	color: var(--lt-krijtwit);
}

/* Foto's in de content: afgeronde hoeken en een rustig bijschrift in de mono-stijl van de site. */
.entry-content .wp-block-image {
	margin: 1.75rem 0;
}

.entry-content .wp-block-image img {
	aspect-ratio: 16 / 9;
	border-radius: var(--lt-radius);
	display: block;
	height: auto;
	max-height: 380px;
	object-fit: cover;
	object-position: 30% 55%;
	width: 100%;
}

.entry-content .wp-block-image figcaption {
	color: #556;
	font-family: var(--lt-font-mono);
	font-size: 0.76rem;
	letter-spacing: 0.02em;
	margin-top: 0.6rem;
	text-align: left;
}

/* ---------- Reisrooster: tekstkolom + sticky zijkolom op inhoudspagina's ---------- */
.lt-layout {
	align-items: start;
	display: grid;
	gap: 3rem;
	grid-template-columns: minmax(0, 1fr) 300px;
}

.lt-aside {
	display: grid;
	gap: 1rem;
	position: sticky;
	top: 1.5rem;
}

.lt-toc-mobiel {
	display: none;
}

.lt-aside__kaart {
	background: var(--lt-inkt);
	border-radius: var(--lt-radius);
	color: var(--lt-krijtwit);
	padding: 1.25rem;
}

.lt-aside__label {
	color: var(--lt-rood-licht);
	font-family: var(--lt-font-mono);
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	margin: 0 0 0.6rem;
	text-transform: uppercase;
}

.lt-aside__label--licht {
	color: #556;
}

.lt-aside__groot {
	color: var(--lt-messing);
	font-family: var(--lt-font-mono);
	font-size: 2rem;
	font-weight: 600;
	line-height: 1.1;
	margin: 0;
}

.lt-aside__sub {
	color: rgba(247, 245, 240, 0.7);
	font-family: var(--lt-font-mono);
	font-size: 0.74rem;
	margin: 0.2rem 0 0.9rem;
}

.lt-aside__prijs {
	border-top: 1px dashed rgba(247, 245, 240, 0.25);
	font-size: 0.9rem;
	margin: 0 0 1rem;
	padding-top: 0.8rem;
}

.lt-aside__prijs strong {
	color: var(--lt-krijtwit);
	font-family: var(--lt-font-mono);
}

.lt-aside__links {
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
}

.lt-aside__links li {
	border-bottom: 1px dashed rgba(247, 245, 240, 0.2);
	padding: 0.45rem 0;
}

.lt-aside .lt-aside__kaart a:not(.lt-cta) {
	color: var(--lt-rood-licht);
	text-decoration: none;
}

.lt-aside .lt-aside__kaart a:not(.lt-cta):hover {
	color: var(--lt-krijtwit);
}

.lt-aside .lt-cta {
	display: block;
	text-align: center;
}

.lt-aside .lt-microdisclaimer {
	color: rgba(247, 245, 240, 0.6);
	font-size: 0.72rem;
}

.lt-aside__toc,
.lt-aside__ander {
	background: var(--lt-wit);
	border: 1px solid var(--lt-lijn);
	border-radius: var(--lt-radius);
	padding: 1.1rem 1.25rem;
}

/* Inhoudsopgave als stukje spoorlijn: gestippelde lijn, een stip per sectie, de sectie
   waar je nu bent licht op (lt-aside.js). */
.lt-toc ol {
	list-style: none;
	margin: 0;
	padding: 0 0 0 1.4rem;
	position: relative;
}

.lt-toc ol::before {
	border-left: 2px dashed var(--lt-lijn);
	bottom: 0.7rem;
	content: "";
	left: 5px;
	position: absolute;
	top: 0.7rem;
}

.lt-toc li {
	margin: 0;
	padding: 0.32rem 0;
	position: relative;
}

.lt-toc li::before {
	background: var(--lt-wit);
	border: 2px solid var(--lt-lijn);
	border-radius: 50%;
	content: "";
	height: 12px;
	left: -1.4rem;
	position: absolute;
	top: 0.62rem;
	width: 12px;
}

.lt-toc a {
	color: #334;
	font-size: 0.86rem;
	line-height: 1.35;
	text-decoration: none;
}

.lt-toc a:hover {
	color: var(--lt-rood);
}

.lt-toc li.is-actief::before {
	background: var(--lt-rood);
	border-color: var(--lt-rood);
	box-shadow: 0 0 0 4px rgba(192, 74, 5, 0.16);
}

.lt-toc li.is-actief a {
	color: var(--lt-rood);
	font-weight: 600;
}

.lt-aside__ander p:last-child {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: 0;
}

.lt-aside__ander a {
	border: 1px solid var(--lt-lijn);
	border-radius: 999px;
	color: var(--lt-inkt);
	font-family: var(--lt-font-mono);
	font-size: 0.74rem;
	padding: 0.25rem 0.7rem;
	text-decoration: none;
}

.lt-aside__ander a:hover {
	border-color: var(--lt-rood);
	color: var(--lt-rood);
}

@media (max-width: 1000px) {
	.lt-layout {
		display: block;
	}
	.lt-aside {
		display: none;
	}
	.lt-toc-mobiel {
		background: var(--lt-wit);
		border: 1px solid var(--lt-lijn);
		border-radius: var(--lt-radius);
		display: block;
		margin: 0 0 1.5rem;
		padding: 0.8rem 1rem;
	}
	.lt-toc-mobiel summary {
		cursor: pointer;
		font-family: var(--lt-font-mono);
		font-size: 0.78rem;
		letter-spacing: 0.1em;
		text-transform: uppercase;
	}
	.lt-toc-mobiel .lt-toc {
		margin-top: 0.8rem;
	}
}

/* Ritme in de tekstkolom: elke sectie is een halte op een gestippelde routelijn, met een
   grotere kop en ruimte ervoor. Geen nummers: de secties van een artikel zijn geen reeks
   haltes, dus nummeren zou iets beweren dat niet klopt. */
.lt-artikel h2 {
	border-top: 2px dashed var(--lt-lijn);
	font-size: clamp(1.45rem, 2.2vw, 1.85rem);
	line-height: 1.2;
	margin: 3.25rem 0 1.1rem;
	padding-top: 1.5rem;
	position: relative;
	scroll-margin-top: 1.5rem;
}

.lt-artikel > h2:first-child,
.lt-artikel > .wp-block-heading:first-child {
	margin-top: 2rem;
}

/* Checklist als tijdlijn (gestippelde lijn, stip met vinkje) i.p.v. grijze balkjes. */
.lt-check {
	gap: 0;
	position: relative;
}

.lt-check::before {
	border-left: 2px dashed var(--lt-rood);
	bottom: 1rem;
	content: "";
	left: 8px;
	opacity: 0.45;
	position: absolute;
	top: 1rem;
}

.lt-check li {
	background: none;
	border: 0;
	border-radius: 0;
	padding: 0.35rem 0 0.9rem 2.5rem;
}

.lt-check li::before {
	align-items: center;
	background: var(--lt-wit);
	border: 2px solid var(--lt-rood);
	border-radius: 50%;
	display: flex;
	font-size: 0.6rem;
	height: 18px;
	justify-content: center;
	left: 0;
	top: 0.4rem;
	width: 18px;
}

html {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

/* Eén kader om de tabel: de kaartrand van .lt-prijzen, geen extra Gutenberg-/Kadence-randen. */
.lt-prijzen figure.wp-block-table {
	margin: 0;
}

.lt-prijzen table {
	border: 0;
	margin: 0;
}

.lt-prijzen th,
.lt-prijzen td {
	border-left: 0;
	border-right: 0;
	border-top: 0;
}

.lt-aside__sub {
	margin-bottom: 0.7rem;
}

.lt-aside__groot {
	margin-top: 0;
}

/* Kadence zet zelf marges/inspringing op lijsten en figuren in de content; deze regels
   zijn bewust specifieker zodat het reisrooster en de foto's niet meeschuiven. */
.entry-content .lt-aside ul,
.entry-content .lt-aside ol {
	margin: 0;
	padding: 0;
}

.entry-content .lt-aside .lt-toc ol {
	padding-left: 1.4rem;
}

.entry-content .lt-aside li {
	margin-left: 0;
}

.entry-content .lt-aside .lt-aside__label {
	margin-bottom: 0.7rem;
}

.entry-content .lt-artikel figure.wp-block-image {
	margin: 1.75rem 0;
}

.entry-content .lt-check {
	margin-left: 0;
	padding: 0;
}

.entry-content .lt-check li {
	margin-left: 0;
}

/* Tabel: lege alinea die WordPress in het kader zet weghalen, Kadence's celranden (1px grijs)
   overschrijven, en ruimte onder het kader zodat de volgende alinea er niet tegenaan plakt. */
.lt-prijzen > p:empty {
	display: none;
}

.entry-content .lt-prijzen table,
.entry-content .lt-prijzen th,
.entry-content .lt-prijzen td {
	border-left: 0;
	border-right: 0;
	border-top: 0;
}

.entry-content .lt-prijzen tbody td {
	border-bottom: 1px solid var(--lt-lijn);
}

.entry-content .lt-prijzen tbody tr:last-child td {
	border-bottom: 0;
}

.entry-content .lt-prijzen th {
	border-bottom: 2px solid var(--lt-rood);
}

.lt-prijzen {
	margin-bottom: 1.75rem;
}

/* Checklist-tijdlijn: minder lucht erboven, stip op de hoogte van de eerste regel. */
.entry-content .lt-check {
	margin: 0.75rem 0 1.75rem;
}

.lt-check li::before {
	top: 0.5rem;
}

/* Reisrooster: compactere kaart, leesbaardere kleine tekst en inhoudsopgave. */
.entry-content .lt-aside p {
	margin: 0;
}

.entry-content .lt-aside .lt-aside__sub {
	color: rgba(247, 245, 240, 0.82);
	font-size: 0.8rem;
	margin: 0.15rem 0 0.9rem;
}

.entry-content .lt-aside .lt-aside__prijs {
	margin: 0 0 1rem;
}

.entry-content .lt-aside .lt-aside__links {
	margin-bottom: 1.1rem;
}

.entry-content .lt-aside .lt-microdisclaimer {
	color: rgba(247, 245, 240, 0.72);
	font-size: 0.75rem;
	line-height: 1.4;
	margin-top: 0.7rem;
}

.entry-content .lt-aside .lt-toc li {
	line-height: 1.35;
	padding: 0.4rem 0;
}

.entry-content .lt-aside .lt-toc li::before {
	border-color: #c9c2b3;
	top: 0.62rem;
}

.entry-content .lt-aside .lt-toc a {
	line-height: 1.35;
}

.lt-artikel p:empty {
	display: none;
}

/* =====================================================================================
   Gelikt: zachte, consistente vormtaal (review: "AI-erig, hoekerig, Wikipedia-stijl")
   Eruit: perforatierand, gestippelde koppenlijn, kaartjes met randjes, stipjes-inhoudsopgave,
   mono-labels overal. Erin: een straal, vlakken en schaduw i.p.v. lijntjes, grote getallen.
   ===================================================================================== */

/* Titelband en hero lopen met een zachte boog in de pagina over, geen postzegelrand. */
.lt-hero::after,
.entry-hero.page-hero-section::after {
	background: var(--lt-pagina);
	border-radius: 50% 50% 0 0 / 100% 100% 0 0;
	height: 34px;
	background-image: none;
}

.entry.single-entry {
	border-radius: 28px;
	box-shadow: 0 30px 60px -40px rgba(18, 38, 58, 0.35);
}

/* Koppen: geen streeplijn of balk, alleen meer lucht. */
.lt-artikel h2 {
	border-top: 0;
	font-size: clamp(1.7rem, 3vw, 2.3rem);
	letter-spacing: -0.01em;
	margin: 3.25rem 0 1rem;
	padding-top: 0;
}

.lt-artikel h2::before {
	content: none;
	display: none;
}

/* Foto's: zachter, met schaduw en een bijschrift in de leestekst i.p.v. mono. */
.entry-content .wp-block-image img {
	border-radius: 26px;
	box-shadow: 0 24px 50px -28px rgba(18, 38, 58, 0.55);
}

.entry-content .wp-block-image figcaption {
	color: #556;
	font-family: var(--lt-font-body);
	font-size: 0.86rem;
	font-style: italic;
	letter-spacing: 0;
}

/* "Laatst gecontroleerd" als gewone kleine tekst, geen pil. */
.entry-content .lt-updated {
	background: none;
	border: 0;
	color: #667;
	font-size: 0.82rem;
	padding: 0;
}

.lt-breadcrumb {
	font-family: var(--lt-font-body);
	font-size: 0.82rem;
	letter-spacing: 0;
}

/* Knoppen als pil. */
.lt-cta,
.button-primary,
.wp-block-button__link {
	border-radius: 999px !important;
}

/* ---- Kernfeiten als grote getallen (vervangt de tabel als eerste blik) ---- */
.lt-feiten {
	background: var(--lt-inkt);
	border-radius: 26px;
	color: var(--lt-krijtwit);
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	margin: 1.5rem 0;
	padding: 1.75rem 2rem;
}

.lt-feiten__cel {
	display: grid;
	gap: 0.3rem;
}

.lt-feiten__getal {
	color: var(--lt-messing);
	font-family: var(--lt-font-display);
	font-size: clamp(2rem, 4vw, 2.9rem);
	font-weight: 700;
	line-height: 1;
}

.lt-feiten__label {
	color: rgba(247, 245, 240, 0.78);
	font-size: 0.86rem;
	line-height: 1.35;
}

.entry-content details.lt-details {
	margin: 1rem 0 1.5rem;
}

.entry-content details.lt-details > summary {
	background: var(--lt-wit);
	border-radius: 999px;
	box-shadow: 0 8px 22px -14px rgba(18, 38, 58, 0.5);
	cursor: pointer;
	display: inline-block;
	font-size: 0.9rem;
	font-weight: 600;
	list-style: none;
	padding: 0.55rem 1.1rem;
}

.entry-content details.lt-details > summary::-webkit-details-marker {
	display: none;
}

.entry-content details.lt-details > summary::after {
	color: var(--lt-rood);
	content: "+";
	font-weight: 700;
	margin-left: 0.6rem;
}

.entry-content details.lt-details[open] > summary::after {
	content: "\2212";
}

.entry-content details.lt-details .lt-prijzen {
	margin-top: 1rem;
}

/* ---- Hoe lang duurt het: de rit als balk (verhoudingen uit de echte reistijden) ---- */
.lt-duur {
	background: var(--lt-wit);
	border-radius: 26px;
	box-shadow: 0 26px 50px -34px rgba(18, 38, 58, 0.5);
	margin: 1.25rem 0 1.75rem;
	padding: 1.6rem 1.75rem 1.4rem;
}

.lt-duur__kop {
	align-items: baseline;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1rem;
	margin-bottom: 1.4rem;
}

.lt-duur__getal {
	color: var(--lt-inkt);
	font-family: var(--lt-font-display);
	font-size: clamp(2.3rem, 5vw, 3.3rem);
	font-weight: 700;
	line-height: 1;
}

.lt-duur__sub {
	color: #556;
	font-size: 0.92rem;
}

.lt-duur__balk {
	display: flex;
	gap: 6px;
	margin-bottom: 1.3rem;
}

.lt-duur__seg,
.lt-duur__eind {
	min-width: 0;
	padding-top: 1.7rem;
	position: relative;
}

.lt-duur__seg::before {
	background: var(--lt-rood);
	border-radius: 999px;
	content: "";
	height: 12px;
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
}

.lt-duur__seg:nth-child(2)::before {
	background: #e08a4c;
}

.lt-duur__seg:nth-child(3)::before {
	background: var(--lt-messing);
}

.lt-duur__eind {
	flex: 0 0 auto;
	text-align: right;
}

.lt-duur__eind::before {
	background: var(--lt-inkt);
	border-radius: 50%;
	content: "";
	height: 12px;
	position: absolute;
	right: 0;
	top: 0;
	width: 12px;
}

.lt-duur__seg b,
.lt-duur__eind b {
	color: var(--lt-inkt);
	display: block;
	font-size: 0.86rem;
}

.lt-duur__tijd {
	color: #556;
	display: block;
	font-family: var(--lt-font-mono);
	font-size: 0.8rem;
	margin-bottom: 0.1rem;
}

.entry-content .lt-duur__feiten {
	display: grid;
	gap: 0.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.entry-content .lt-duur__feiten li {
	background: var(--lt-pagina);
	border-radius: 14px;
	font-size: 0.9rem;
	line-height: 1.45;
	margin: 0;
	padding: 0.65rem 0.95rem;
}

/* ---- Tabel: rustiger, geen zebra of scherpe kop ---- */
.lt-prijzen {
	border: 0;
	border-radius: 20px;
	box-shadow: 0 18px 40px -30px rgba(18, 38, 58, 0.5);
}

.lt-prijzen tbody tr:nth-child(even) {
	background: none;
}

.entry-content .lt-prijzen th {
	background: var(--lt-pagina);
	border-bottom: 1px solid var(--lt-lijn);
}

/* ---- Reisrooster: een kaart plus een rustige inhoudsopgave, geen drie kaartjes ---- */
.lt-aside__kaart {
	border-radius: 26px;
	box-shadow: 0 26px 50px -30px rgba(18, 38, 58, 0.7);
}

.lt-aside__label,
.lt-aside__label--licht {
	font-family: var(--lt-font-body);
	font-size: 0.74rem;
	font-weight: 700;
	letter-spacing: 0.1em;
}

.lt-aside__label--licht {
	color: #667;
}

.lt-aside__toc,
.lt-aside__ander {
	background: none;
	border: 0;
	padding: 0.4rem 0.4rem 0;
}

.entry-content .lt-aside .lt-toc ol {
	padding-left: 0;
}

.lt-toc ol::before,
.lt-toc li::before {
	display: none;
}

.entry-content .lt-aside .lt-toc li {
	padding: 0;
}

.entry-content .lt-aside .lt-toc a {
	border-radius: 12px;
	display: block;
	padding: 0.4rem 0.75rem;
}

.entry-content .lt-aside .lt-toc li.is-actief a {
	background: rgba(192, 74, 5, 0.09);
	color: var(--lt-rood);
}

.lt-aside__ander a {
	border-color: transparent;
	background: var(--lt-wit);
	box-shadow: 0 6px 16px -10px rgba(18, 38, 58, 0.5);
	font-family: var(--lt-font-body);
	font-size: 0.8rem;
}

/* ---- Checklist: zachte stippen, geen lijn meer tussen de stappen ---- */
.lt-check::before {
	display: none;
}

.lt-check li::before {
	background: rgba(192, 74, 5, 0.1);
	border: 0;
	color: var(--lt-rood);
	height: 22px;
	width: 22px;
}

.entry-content .lt-check li {
	padding-left: 2.2rem;
}

/* Uitklapper duidelijk herkenbaar als knop, niet als verdwijnend pilletje. */
.entry-content details.lt-details > summary {
	background: rgba(192, 74, 5, 0.08);
	border: 1.5px solid var(--lt-rood);
	box-shadow: none;
	color: var(--lt-rood);
	padding: 0.6rem 1.25rem;
}

.entry-content details.lt-details > summary:hover {
	background: var(--lt-rood);
	color: var(--lt-wit);
}

.entry-content details.lt-details > summary:hover::after {
	color: var(--lt-wit);
}

.entry-content .lt-updated {
	display: block;
	margin-bottom: 1.1rem;
}

.lt-duur__tijd,
.lt-duur__seg b,
.lt-duur__eind b {
	white-space: nowrap;
}

@media (max-width: 640px) {
	.lt-duur {
		padding: 1.25rem 1.1rem 1.1rem;
	}
	.lt-duur__tijd {
		font-size: 0.7rem;
	}
	.lt-duur__seg b,
	.lt-duur__eind b {
		font-size: 0.78rem;
	}
	.lt-feiten {
		padding: 1.4rem 1.25rem;
	}
}

/* Homepage in dezelfde zachte taal als de binnenpagina's: grote getallen i.p.v. mono-labeltjes,
   vertrekbord in leestekst met de tijden in de kopfont, en een afgeronde callout. */
.lt-hero__eyebrow {
	font-family: var(--lt-font-body);
	font-weight: 700;
}

.lt-hero__ticket {
	gap: 0.6rem 2.75rem;
	margin: 1.5rem 0 1.75rem;
}

.lt-hero__ticket span {
	background: none;
	border: 0;
	border-radius: 0;
	color: rgba(247, 245, 240, 0.8);
	display: grid;
	font-family: var(--lt-font-body);
	font-size: 0.86rem;
	gap: 0.25rem;
	letter-spacing: 0;
	padding: 0;
}

.lt-hero__ticket b {
	color: var(--lt-messing);
	font-family: var(--lt-font-display);
	font-size: clamp(1.9rem, 4vw, 2.6rem);
	font-weight: 700;
	line-height: 1;
}

.lt-hero .lt-board {
	background: rgba(247, 245, 240, 0.07);
	border: 0;
	border-radius: 26px;
	font-family: var(--lt-font-body);
	padding: 1.25rem 1.6rem;
}

.lt-hero .lt-board__route {
	font-size: 0.95rem;
	letter-spacing: 0;
}

.lt-hero .lt-board__tijd {
	font-family: var(--lt-font-display);
	font-size: 1.2rem;
}

.lt-hero .lt-board__row {
	border-bottom-color: rgba(247, 245, 240, 0.1);
}

.lt-callout {
	background: rgba(192, 74, 5, 0.07);
	border-left: 0;
	border-radius: 20px;
	padding: 1.1rem 1.4rem;
}

/* Reistijdbalk: langere notatie ("1 uur 30 min") mag op smalle schermen afbreken. */
@media (max-width: 640px) {
	.lt-duur__seg {
		min-width: 0;
	}

	.lt-duur__tijd {
		display: block;
		font-size: 0.68rem;
		line-height: 1.25;
		white-space: normal;
	}
}

/* Statische routekaart in een artikel (hergebruikt de .lt-map__*-stijlen van de homepagina). */
.entry-content .lt-routekaart {
	margin: 2rem 0;
}

.lt-routekaart svg {
	border-radius: var(--lt-radius-lg);
	box-shadow: 0 20px 45px -28px rgba(18, 38, 58, 0.55);
	display: block;
	height: auto;
	width: 100%;
}

.entry-content .lt-routekaart figcaption {
	color: #556;
	font-size: 0.9rem;
	margin-top: 0.7rem;
}

/* Afsluiter onder een artikel: donkere kaart in dezelfde taal als de reistijd-kaart
   en de sidebar, met een decoratief treintje/route-motief, zodat de laatste CTA van
   de pagina opvalt in plaats van een vlak grijs vakje te zijn. */
.entry-content .lt-afsluiter {
	background-color: var(--lt-inkt);
	background-image: url("img/afsluiter-motief.svg");
	background-position: calc(100% + 0.5rem) calc(100% + 0.5rem);
	background-repeat: no-repeat;
	background-size: min(60%, 320px) auto;
	border-radius: var(--lt-radius-lg);
	box-sizing: border-box;
	color: var(--lt-krijtwit);
	margin: 2rem 0 0.75rem;
	max-width: 100%;
	overflow: hidden;
	padding: 2rem;
	position: relative;
}

.entry-content .lt-afsluiter__tekst {
	margin: 0 0 1.25rem;
	max-width: 26rem;
	position: relative;
	z-index: 1;
}

.entry-content .lt-afsluiter .lt-cta {
	font-size: 1.05rem;
	padding: 0.85rem 1.8rem;
}

.entry-content .lt-afsluiter .lt-microdisclaimer {
	color: rgba(247, 245, 240, 0.68);
	margin: 0.7rem 0 0;
	position: relative;
	z-index: 1;
}

.entry-content .lt-afsluiter__links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	list-style: none;
	margin: 1.5rem 0 0;
	padding: 0;
	position: relative;
	z-index: 1;
}

.entry-content .lt-afsluiter__links li {
	margin: 0;
}

.entry-content .lt-afsluiter__links a {
	background: rgba(247, 245, 240, 0.08);
	border: 1px solid rgba(247, 245, 240, 0.28);
	border-radius: 999px;
	color: var(--lt-krijtwit);
	display: inline-block;
	font-size: 0.88rem;
	padding: 0.4rem 0.9rem;
	text-decoration: none;
	transition: background 0.15s ease, border-color 0.15s ease;
}

.entry-content .lt-afsluiter__links a:hover {
	background: rgba(247, 245, 240, 0.16);
	border-color: rgba(247, 245, 240, 0.45);
}

.entry-content .lt-afsluiter__tekst a {
	color: var(--lt-rood-licht);
}

/* Partnerlogo boven een boekknop: op een witte chip zodat het donkerblauwe logo ook in de donkere kaart leest. */
.lt-partnerlogo {
	align-items: center;
	background: var(--lt-wit, #fff);
	border-radius: 10px;
	display: inline-flex;
	margin: 0 0 0.8rem;
	padding: 0.4rem 0.8rem;
}

.lt-partnerlogo img {
	display: block;
	height: 22px;
	width: auto;
}

/* Links in de donkere reiskaart: wit, oranje pas bij hover. */
.lt-aside .lt-aside__kaart .lt-aside__links a:not(.lt-cta),
.entry-content .lt-aside .lt-aside__kaart .lt-aside__links a:not(.lt-cta) {
	color: var(--lt-krijtwit);
}

.lt-aside .lt-aside__kaart .lt-aside__links a:not(.lt-cta):hover {
	color: var(--lt-rood-licht);
}

/* Reistijdbalk op smalle schermen: drie delen (Amsterdam) mogen elkaars label niet raken. */
@media (max-width: 640px) {
	.lt-duur__seg {
		min-width: 25%;
	}

	.lt-duur__seg b {
		font-size: 0.78rem;
		overflow-wrap: anywhere;
	}
}

.entry-content .lt-tijden__noot {
	color: #556;
	font-size: 0.85rem;
	margin: 0.6rem 0 0;
}

.entry-content .lt-tijden .lt-tijden__noot {
	margin: 0;
	padding: 0.7rem 1rem 1rem;
}

.entry-content .lt-tijden p:empty {
	display: none;
}

/* Kruimelpad + controledatum als één rij boven de tekst. */
.entry-content .lt-meta {
	align-items: baseline;
	color: #667;
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem 1.25rem;
	justify-content: space-between;
	margin: 0 0 1.25rem;
}

.entry-content .lt-meta .lt-breadcrumb {
	color: #667;
	font-size: 0.82rem;
}

.entry-content .lt-meta .lt-breadcrumb a {
	color: #667;
	text-decoration: none;
}

.entry-content .lt-meta .lt-breadcrumb a:hover {
	color: var(--lt-rood);
}

.entry-content .lt-meta .lt-updated {
	white-space: nowrap;
}

.entry-content .lt-meta .lt-breadcrumb .breadcrumb_last,
.entry-content .lt-meta .lt-breadcrumb strong {
	color: #445;
	font-weight: 500;
}

/* Korte delen (bijv. de NS-rit) houden genoeg breedte voor hun label. */
.lt-duur__seg {
	min-width: 16%;
}

/* Plakkende boekbalk (telefoon en tablet, zie lt-sticky.js). */
.lt-sticky {
	display: none;
}

@media (max-width: 1000px) {
	.lt-sticky {
		align-items: center;
		background: var(--lt-inkt);
		border-radius: 18px;
		bottom: 0.6rem;
		box-shadow: 0 12px 30px -8px rgba(0, 0, 0, 0.5);
		display: flex;
		gap: 0.9rem;
		justify-content: space-between;
		left: 0.6rem;
		opacity: 0;
		padding: 0.6rem 0.6rem 0.6rem 1rem;
		position: fixed;
		right: 0.6rem;
		transform: translateY(140%);
		transition: transform 0.25s ease, opacity 0.25s ease;
		z-index: 9990;
	}

	.lt-sticky[hidden] {
		display: none;
	}

	.lt-sticky.is-zichtbaar {
		opacity: 1;
		transform: none;
	}

	.lt-sticky__tekst {
		color: var(--lt-krijtwit);
		display: flex;
		flex-direction: column;
		line-height: 1.25;
	}

	.lt-sticky__kop {
		color: var(--lt-rood-licht);
		font-size: 0.7rem;
		font-weight: 700;
		letter-spacing: 0.08em;
		text-transform: uppercase;
	}

	.lt-sticky__prijs {
		font-size: 0.95rem;
		font-weight: 600;
	}

	.lt-sticky .lt-sticky__knop {
		flex: none;
		padding: 0.7rem 1.2rem;
		text-align: center;
		white-space: nowrap;
	}
}

/* Vertrektijden per dagtype: uitklapbaar, eerste open. */
.entry-content .lt-tijden__dag {
	border-top: 1px solid var(--lt-lijn);
}

.entry-content .lt-tijden__dag:first-of-type {
	border-top: 0;
}

.entry-content .lt-tijden__dag > summary {
	cursor: pointer;
	font-weight: 600;
	padding: 0.9rem 1rem;
}

.entry-content .lt-tijden__dag > summary small {
	color: #667;
	font-weight: 400;
}

/* Vertrektabel: "uit NL" blijft op één regel; dagkoppen zien er klikbaar uit. */
.entry-content .lt-tijden .lt-tijden__nl {
	background: var(--lt-pagina, #f7fafc);
	border-radius: 999px;
	color: #556;
	font-size: 0.7rem;
	margin-left: 0.3rem;
	padding: 0.1rem 0.45rem;
	white-space: nowrap;
}

.entry-content .lt-tijden__dag > summary {
	background: var(--lt-pagina, #f7fafc);
	border-radius: 12px;
	margin: 0.4rem 0.6rem;
}

@media (max-width: 640px) {
	.entry-content .lt-tijden th,
	.entry-content .lt-tijden td {
		font-size: 0.82rem;
		padding-left: 0.5rem;
		padding-right: 0.5rem;
	}
}

/* Tabellen in artikelen op smalle schermen: iets compacter, zodat cellen niet in drie regels breken. */
@media (max-width: 640px) {
	.entry-content .lt-prijzen th,
	.entry-content .lt-prijzen td {
		font-size: 0.82rem;
		padding-left: 0.5rem;
		padding-right: 0.5rem;
	}

	.entry-content .lt-tijden td:last-child {
		white-space: nowrap;
	}
}

/* Vergelijkingstabellen op smalle schermen: past binnen de kolom, tekst mag afbreken. */
@media (max-width: 640px) {
	.entry-content .lt-prijzen table {
		table-layout: fixed;
		width: 100%;
	}

	.entry-content .lt-prijzen th,
	.entry-content .lt-prijzen td {
		hyphens: auto;
		overflow-wrap: anywhere;
	}
}

/* Reclame-aanduiding bij een boekknop: goed leesbaar, niet weggestopt. */
.lt-microdisclaimer--reclame strong {
	background: var(--lt-inkt);
	border-radius: 6px;
	color: var(--lt-krijtwit);
	font-size: 0.7rem;
	letter-spacing: 0.06em;
	margin-right: 0.5rem;
	padding: 0.1rem 0.45rem;
	text-transform: uppercase;
}

.lt-aside .lt-microdisclaimer--reclame strong,
.entry-content .lt-aside .lt-microdisclaimer--reclame strong {
	background: var(--lt-krijtwit);
	color: var(--lt-inkt);
}

/* Schematische Londenkaart in dezelfde stijl als de routekaarten. */
.entry-content .lt-londenkaart {
	margin: 1.75rem 0;
}

.lt-londenkaart svg {
	border-radius: var(--lt-radius-lg);
	box-shadow: 0 20px 45px -28px rgba(18, 38, 58, 0.55);
	display: block;
	height: auto;
	width: 100%;
}

.lt-lk__land { fill: #fbe9cf; }
.lt-lk__rivier { fill: none; stroke: #b6dcf0; stroke-linecap: round; stroke-width: 30; }
.lt-lk__water { fill: #6c96b0; font-family: var(--lt-font-body); font-size: 11px; letter-spacing: 0.2em; }
.lt-lk__lijnen line { stroke: #c7a77a; stroke-dasharray: 3 5; stroke-width: 1.4; }
.lt-lk__buurt circle { fill: #fff; stroke: #12263a; stroke-width: 2; }
.lt-lk__buurt text { fill: #12263a; font-family: var(--lt-font-body); font-size: 15px; font-weight: 600; }
.lt-lk__station circle { fill: #c04a05; stroke: #fff; stroke-width: 3; }
.lt-lk__station text { fill: #12263a; font-family: var(--lt-font-display); font-size: 19px; font-weight: 700; }
.lt-lk__station .lt-lk__sub { font-family: var(--lt-font-body); font-size: 13px; font-weight: 500; }
.lt-lk__pin circle { fill: #12263a; stroke: #fff; stroke-width: 2; }
.lt-lk__pin text { fill: #fff; font-family: var(--lt-font-mono); font-size: 12px; font-weight: 700; }
.lt-lk__onder { fill: #8a7a63; font-family: var(--lt-font-body); font-size: 11px; }

.entry-content .lt-londenkaart figcaption {
	color: #556;
	font-size: 0.88rem;
	margin-top: 0.7rem;
}

.lt-lk__nr {
	background: var(--lt-inkt);
	border-radius: 999px;
	color: #fff;
	display: inline-block;
	font-family: var(--lt-font-mono);
	font-size: 0.7rem;
	height: 1.3rem;
	line-height: 1.3rem;
	text-align: center;
	width: 1.3rem;
}

/* Stay22-kaart: placeholder tot toestemming of klik, zelfde hoogte als de widget. */
.entry-content .lt-kaartwidget {
	background: var(--lt-pagina, #f7fafc);
	border-radius: var(--lt-radius-lg);
	margin: 1.5rem 0;
	overflow: hidden;
	position: relative;
}

.lt-kaartwidget iframe {
	border: 0;
	display: block;
	height: var(--lt-kaart-h, 428px);
	width: 100%;
}

.lt-kaartwidget.is-geladen .lt-kaartwidget__leeg {
	display: none;
}

.lt-kaartwidget__leeg {
	align-items: center;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 200px;
	padding: 1.75rem 1.5rem;
	text-align: center;
}

.entry-content .lt-kaartwidget__leeg p {
	margin: 0 0 0.75rem;
	max-width: 30rem;
}

.entry-content .lt-kaartwidget__kop {
	font-family: var(--lt-font-display);
	font-size: 1.25rem;
	font-weight: 600;
}

/* Londenkaart op smalle schermen: grotere labels, zodat ze leesbaar blijven. */
@media (max-width: 640px) {
	.lt-lk__buurt text { font-size: 24px; }
	.lt-lk__station text { font-size: 28px; }
	.lt-lk__station .lt-lk__sub { font-size: 20px; }
	.lt-lk__pin text { font-size: 17px; }
	.lt-lk__onder { font-size: 16px; }
	.lt-lk__buurt circle { r: 9; }
	.lt-lk__pin circle { r: 14; }
}

/* Genummerde stappen: de volgorde telt. */
.entry-content .lt-stappen {
	counter-reset: stap;
	list-style: none;
	margin: 1.25rem 0;
	padding: 0;
}

.entry-content .lt-stappen li {
	counter-increment: stap;
	margin: 0 0 0.9rem;
	padding-left: 2.6rem;
	position: relative;
}

.entry-content .lt-stappen li::before {
	background: var(--lt-inkt);
	border-radius: 999px;
	color: #fff;
	content: counter(stap);
	font-family: var(--lt-font-mono);
	font-size: 0.85rem;
	font-weight: 600;
	height: 1.8rem;
	left: 0;
	line-height: 1.8rem;
	position: absolute;
	text-align: center;
	top: 0;
	width: 1.8rem;
}

/* Schematische stationskaart. */
.entry-content .lt-stationskaart {
	margin: 1.75rem 0;
}

.lt-stationskaart svg {
	border-radius: var(--lt-radius-lg);
	box-shadow: 0 20px 45px -28px rgba(18, 38, 58, 0.55);
	display: block;
	height: auto;
	width: 100%;
}

.lt-sk__bg { fill: #f3ede1; }
.lt-sk__laag { stroke: none; }
.lt-sk__laag--boven { fill: #dcecf6; }
.lt-sk__laag--onder { fill: #fbe9cf; }
.lt-sk__kop { fill: #6c7f8f; font-family: var(--lt-font-body); font-size: 12px; font-weight: 700; letter-spacing: 0.12em; }
.lt-sk__blok { fill: #fff; stroke: #12263a; stroke-width: 2; }
.lt-sk__blok--start { fill: #c04a05; stroke: #c04a05; }
.lt-sk__blok--start + .lt-sk__t,
.lt-sk__blok--start + .lt-sk__t + .lt-sk__s { fill: #fff; }
.lt-sk__blok--metro { fill: #12263a; }
.lt-sk__blok--metro + .lt-sk__t,
.lt-sk__blok--metro + .lt-sk__t + .lt-sk__t { fill: #fff; }
.lt-sk__t { fill: #12263a; font-family: var(--lt-font-body); font-size: 16px; font-weight: 700; }
.lt-sk__s { fill: #556; font-family: var(--lt-font-body); font-size: 12px; }
.lt-sk__pijl { fill: none; stroke: #c04a05; stroke-dasharray: 6 6; stroke-width: 3; }
.lt-sk__onder { fill: #8a7a63; font-family: var(--lt-font-body); font-size: 11px; }

.entry-content .lt-stationskaart figcaption {
	color: #556;
	font-size: 0.88rem;
	margin-top: 0.7rem;
}

@media (max-width: 640px) {
	.lt-sk__t { font-size: 22px; }
	.lt-sk__s { font-size: 16px; }
	.lt-sk__kop { font-size: 15px; }
	.lt-sk__onder { font-size: 14px; }
}

/* Ruimte tussen de FAQ en de afsluitende regel. */
.entry-content .lt-faq + p,
.entry-content .lt-faq + .wp-block-paragraph {
	margin-top: 1.75rem;
}

@media (max-width: 640px) {
	.lt-lk__buurt text { font-size: 22px; }
	.lt-lk__station text { font-size: 28px; }
	.lt-lk__station .lt-lk__sub { font-size: 20px; }
}

/* Tijden in tabellen breken niet over twee regels. */
.entry-content .lt-tijden .lt-mono {
	white-space: nowrap;
}

@media (max-width: 640px) {
	.entry-content .lt-tijden th,
	.entry-content .lt-tijden td {
		font-size: 0.76rem;
		padding-left: 0.35rem;
		padding-right: 0.35rem;
	}
}

/* Lijst-variant van de tijdentabel (één kolom): tekst mag afbreken. */
.entry-content .lt-tijden--lijst td,
.entry-content .lt-tijden--lijst td:last-child {
	white-space: normal;
}

/* ---- Aanvinkbare checklist ---- */
.entry-content .lt-check--vak li {
	padding-left: 0;
}

.lt-check--vak li::before {
	display: none;
}

.lt-check--vak label {
	align-items: flex-start;
	cursor: pointer;
	display: flex;
	gap: 0.75rem;
}

.lt-check--vak input[type="checkbox"] {
	accent-color: var(--lt-rood);
	flex: none;
	height: 1.35rem;
	margin-top: 0.2rem;
	width: 1.35rem;
}

.lt-check--vak li.is-af label > span {
	color: var(--lt-inkt-zacht, #5b6773);
	text-decoration: line-through;
	text-decoration-thickness: 1px;
}

.lt-checkacties {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin: 1.25rem 0 0;
}

.lt-knop-print,
.lt-knop-reset {
	background: transparent;
	border: 1.5px solid var(--lt-rood);
	border-radius: 999px;
	color: var(--lt-rood);
	cursor: pointer;
	font: inherit;
	font-weight: 600;
	padding: 0.5rem 1.25rem;
}

.lt-knop-print:hover {
	background: var(--lt-rood);
	color: var(--lt-wit);
}

.lt-knop-reset {
	border-color: transparent;
	text-decoration: underline;
}

.lt-checkacties [hidden] {
	display: none;
}

@media print {
	header,
	footer,
	.lt-aside,
	.lt-toc-mobiel,
	.lt-sticky,
	.lt-checkacties,
	.lt-cta,
	.lt-microdisclaimer,
	#lt-consent,
	.lt-consent,
	nav {
		display: none !important;
	}

	body,
	.site,
	.content-bg {
		background: #fff !important;
	}

	.lt-layout {
		display: block;
	}

	.lt-check--vak li {
		break-inside: avoid;
	}
}

/* ---- Homepage: foto-hero, vraagtegels, fotoband ---- */
.lt-fotohero {
	background: var(--lt-inkt);
	color: var(--lt-krijtwit);
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	min-height: clamp(560px, 82svh, 780px);
	overflow: hidden;
	position: relative;
	width: 100vw;
}

.lt-fotohero__foto {
	filter: saturate(0.9) contrast(1.05);
	height: 100%;
	inset: 0;
	object-fit: cover;
	object-position: 25% 45%;
	position: absolute;
	width: 100%;
}

.lt-fotohero::before {
	background:
		linear-gradient(90deg, rgba(18, 38, 58, 0.94) 0%, rgba(18, 38, 58, 0.8) 38%, rgba(18, 38, 58, 0.3) 72%, rgba(18, 38, 58, 0.1) 100%),
		linear-gradient(0deg, rgba(18, 38, 58, 1) 0%, rgba(18, 38, 58, 0) 48%);
	content: "";
	inset: 0;
	position: absolute;
	z-index: 1;
}

.lt-fotohero__inner {
	margin: 0 auto;
	max-width: 1200px;
	padding: 5rem 1.5rem 2rem;
	position: relative;
	width: 100%;
	z-index: 2;
}

.lt-fotohero__kop {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.25rem;
	margin-bottom: 1rem;
}

.lt-fotohero__eyebrow {
	color: var(--lt-rood-licht);
	font-family: var(--lt-font-body);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	margin: 0;
	text-transform: uppercase;
}

.lt-fotohero .lt-updated {
	background: transparent;
	border-color: rgba(247, 245, 240, 0.35);
	color: var(--lt-krijtwit);
}

.lt-fotohero__h1 {
	color: var(--lt-krijtwit) !important;
	font-size: clamp(2.6rem, 7vw, 4.6rem);
	line-height: 1.04;
	margin: 0 0 1rem;
	max-width: 14ch;
}

.lt-fotohero__h1 span {
	color: var(--lt-rood-licht);
}

.lt-fotohero__lead {
	color: rgba(247, 245, 240, 0.92);
	font-size: 1.15rem;
	margin: 0 0 1.5rem;
	max-width: 46ch;
}

.lt-fotohero__acties {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.5rem;
}

.lt-fotohero a.lt-fotohero__link {
	color: var(--lt-krijtwit);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.lt-fotohero .lt-microdisclaimer {
	color: rgba(247, 245, 240, 0.85);
	font-size: 0.85rem;
	margin: 0.6rem 0 0;
}

.lt-fotohero__feiten {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 2.5rem;
	list-style: none;
	margin: 1.75rem 0 1.25rem;
	padding: 0;
}

.lt-fotohero__feiten li {
	color: rgba(247, 245, 240, 0.85);
	font-size: 0.9rem;
	margin: 0;
	padding: 0;
}

.lt-fotohero__feiten b {
	color: var(--lt-krijtwit);
	display: block;
	font-family: var(--lt-font-head);
	font-size: 1.55rem;
	line-height: 1.1;
}

.lt-fotohero__stations {
	display: grid;
	gap: 0.6rem;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.lt-fotohero__stations li {
	margin: 0;
	padding: 0;
}

.lt-fotohero__stations a {
	background: rgba(18, 38, 58, 0.72);
	border: 1px solid rgba(247, 245, 240, 0.22);
	border-radius: 12px;
	color: var(--lt-krijtwit) !important;
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	height: 100%;
	padding: 0.75rem 0.9rem;
	text-decoration: none;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

.lt-fotohero__stations a:hover {
	border-color: var(--lt-rood-licht);
}

.lt-fotohero__stad {
	font-weight: 700;
}

.lt-fotohero__tijd {
	color: var(--lt-messing);
	font-family: var(--lt-font-mono);
	font-size: 0.85rem;
}

.lt-fotohero__via {
	color: rgba(247, 245, 240, 0.7);
	font-size: 0.75rem;
}

.lt-fotohero__bijschrift {
	bottom: 0.5rem;
	color: rgba(247, 245, 240, 0.55);
	font-size: 0.7rem;
	margin: 0;
	position: absolute;
	right: 1rem;
	z-index: 2;
}

.lt-hero--kaart .lt-kaartkop {
	color: var(--lt-krijtwit) !important;
	font-size: clamp(1.8rem, 4vw, 2.6rem);
	margin: 0 0 1rem;
}

.lt-vragen {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: 2rem 0 2.5rem;
}

.lt-vraag {
	background: var(--lt-wit);
	border: 1px solid var(--lt-lijn);
	border-radius: 16px;
	box-shadow: 0 14px 30px -24px rgba(18, 38, 58, 0.45);
	padding: 1.25rem;
}

.lt-vraag h3 {
	font-size: 1.1rem;
	margin: 0 0 0.5rem;
}

.lt-vraag p {
	font-size: 0.95rem;
	margin: 0 0 0.75rem;
}

.lt-vraag__links a {
	display: block;
	font-weight: 600;
	margin-top: 0.25rem;
}

.lt-fotoband {
	margin: 2.5rem 0;
}

.lt-fotoband img {
	border-radius: 18px;
	display: block;
	height: auto;
	width: 100%;
}

.lt-fotoband figcaption {
	color: var(--lt-inkt);
	font-size: 0.95rem;
	margin-top: 0.75rem;
	max-width: 70ch;
}

.lt-slot {
	margin: 2rem 0 1rem;
}

@media (max-width: 1000px) {
	.lt-vragen {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lt-fotohero__stations {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.lt-fotohero {
		min-height: 0;
	}

	.lt-fotohero__foto {
		object-position: 18% 50%;
	}

	.lt-fotohero__inner {
		padding: 9rem 1rem 1.5rem;
	}

	.lt-fotohero__acties .lt-cta {
		width: 100%;
	}

	.lt-fotohero__stations {
		display: flex;
		gap: 0.6rem;
		margin-right: -1rem;
		overflow-x: auto;
		padding-bottom: 0.5rem;
		scroll-snap-type: x proximity;
	}

	.lt-fotohero__stations li {
		flex: 0 0 auto;
		scroll-snap-align: start;
		width: 9.5rem;
	}

	.lt-vragen {
		grid-template-columns: 1fr;
	}
}

/* Foto-hero: de trein staat links in beeld, tekst rechts erover. */
.lt-fotohero::before {
	background:
		linear-gradient(270deg, rgba(18, 38, 58, 0.94) 0%, rgba(18, 38, 58, 0.82) 42%, rgba(18, 38, 58, 0.2) 72%, rgba(18, 38, 58, 0) 100%),
		linear-gradient(0deg, rgba(18, 38, 58, 1) 0%, rgba(18, 38, 58, 0) 34%);
}

.lt-fotohero__foto {
	object-position: 20% 40%;
}

.lt-fotohero__inner > .lt-fotohero__kop,
.lt-fotohero__inner > .lt-fotohero__h1,
.lt-fotohero__inner > .lt-fotohero__lead,
.lt-fotohero__inner > .lt-fotohero__acties,
.lt-fotohero__inner > .lt-microdisclaimer,
.lt-fotohero__inner > .lt-fotohero__feiten {
	margin-left: 46%;
}

.lt-fotohero__h1 {
	max-width: 12ch;
}

@media (max-width: 1000px) {
	.lt-fotohero__inner > .lt-fotohero__kop,
	.lt-fotohero__inner > .lt-fotohero__h1,
	.lt-fotohero__inner > .lt-fotohero__lead,
	.lt-fotohero__inner > .lt-fotohero__acties,
	.lt-fotohero__inner > .lt-microdisclaimer,
	.lt-fotohero__inner > .lt-fotohero__feiten {
		margin-left: 0;
	}

	.lt-fotohero__inner {
		padding-top: 14rem;
	}

	.lt-fotohero::before {
		background: linear-gradient(0deg, rgba(18, 38, 58, 1) 0%, rgba(18, 38, 58, 0.92) 48%, rgba(18, 38, 58, 0.25) 78%, rgba(18, 38, 58, 0) 100%);
	}
}

.entry-content .lt-fotohero__feiten,
.entry-content .lt-fotohero__stations {
	list-style: none;
	padding-left: 0;
}

.entry-content .lt-fotohero__feiten {
	margin-left: 46%;
}

@media (max-width: 1000px) {
	.entry-content .lt-fotohero__feiten {
		margin-left: 0;
	}
}

@media (max-width: 640px) {
	.lt-fotohero__foto {
		bottom: auto;
		height: 320px;
		object-position: 15% 50%;
	}

	.lt-fotohero::before {
		background: linear-gradient(180deg, rgba(18, 38, 58, 0) 0, rgba(18, 38, 58, 0) 150px, rgba(18, 38, 58, 1) 320px);
	}

	.lt-fotohero__inner {
		padding-top: 15.5rem;
	}
}

/* Homepage, ronde 2: tegels onder de hero, routelijst op mobiel, leesbaardere kleine tekst */
.lt-vragen {
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.lt-vraag__links a {
	padding: 0.35rem 0;
}

.lt-bronnen {
	color: #4a5a6b;
	font-size: 0.85rem;
	margin: 0.5rem 0 0;
}

.lt-fotohero__eyebrow {
	color: var(--lt-krijtwit);
	font-size: 0.85rem;
	opacity: 0.92;
}

.lt-fotohero__tijd {
	font-size: 0.95rem;
}

.lt-fotohero__via {
	color: rgba(247, 245, 240, 0.85);
	font-size: 0.8rem;
}

.lt-routelijst {
	display: none;
}

@media (max-width: 640px) {
	.lt-hero--kaart .lt-hero__wide {
		display: none;
	}

	.lt-routelijst {
		border-left: 2px solid var(--lt-rood-licht);
		display: block;
		list-style: none;
		margin: 2.25rem 1rem 0.5rem 1.5rem;
		padding: 0 0 0 1.25rem;
	}

	.lt-routelijst li {
		margin: 0 0 1rem;
		padding: 0;
		position: relative;
	}

	.lt-routelijst li::before {
		background: var(--lt-inkt);
		border: 2px solid var(--lt-rood-licht);
		border-radius: 50%;
		content: "";
		height: 10px;
		left: -1.7rem;
		position: absolute;
		top: 0.4rem;
		width: 10px;
	}

	.lt-routelijst b {
		color: var(--lt-krijtwit);
		display: block;
	}

	.lt-routelijst span {
		color: rgba(247, 245, 240, 0.8);
		font-size: 0.9rem;
	}

	.lt-fotohero__stations {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		margin-right: 0;
		overflow: visible;
	}

	.lt-fotohero__stations li {
		width: auto;
	}
}

.entry-content .lt-fotohero__feiten {
	gap: 0.75rem 2rem;
	margin-bottom: 1.5rem;
	margin-top: 1.75rem;
}

/* Homepage: bijschrift over de volle breedte van de foto, en linkraster naar Londen-pagina's */
.lt-fotoband {
	position: relative;
}

.lt-fotoband figcaption {
	background: linear-gradient(0deg, rgba(18, 38, 58, 0.92) 0%, rgba(18, 38, 58, 0.55) 70%, rgba(18, 38, 58, 0) 100%);
	border-radius: 0 0 18px 18px;
	bottom: 0;
	color: var(--lt-krijtwit);
	font-size: 1rem;
	left: 0;
	margin: 0;
	max-width: none;
	padding: 2.5rem 1.5rem 1.25rem;
	position: absolute;
	right: 0;
}

.lt-linkgrid {
	display: grid;
	gap: 0.75rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: 1rem 0 2rem;
}

.lt-linkgrid a {
	background: var(--lt-wit);
	border: 1px solid var(--lt-lijn);
	border-radius: 14px;
	color: var(--lt-inkt);
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	padding: 1rem 1.1rem;
	text-decoration: none;
}

.lt-linkgrid a:hover {
	border-color: var(--lt-rood);
}

.lt-linkgrid b {
	color: var(--lt-rood);
}

.lt-linkgrid span {
	font-size: 0.9rem;
}

@media (max-width: 1000px) {
	.lt-linkgrid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 520px) {
	.lt-linkgrid {
		grid-template-columns: 1fr;
	}

	.lt-fotoband figcaption {
		font-size: 0.9rem;
		padding: 2rem 1rem 1rem;
	}
}

/* ETA-melding: belangrijk onderdeel van de reisinformatie */
.lt-etabalk {
	background: #fff4e6;
	border: 1px solid #f0c9a0;
	border-left: 6px solid var(--lt-rood);
	border-radius: 14px;
	margin: 1.5rem auto 0;
	max-width: 1100px;
	padding: 1.1rem 1.4rem;
}

.lt-etabalk__label {
	background: var(--lt-rood);
	border-radius: 999px;
	color: var(--lt-wit);
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	margin-bottom: 0.5rem;
	padding: 0.2rem 0.75rem;
	text-transform: uppercase;
}

.lt-etabalk p {
	color: var(--lt-inkt);
	margin: 0 0 0.6rem;
}

.lt-etabalk .lt-etabalk__acties {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.5rem;
	margin: 0;
}

.lt-etabalk a.lt-etabalk__knop {
	background: var(--lt-rood);
	border-radius: 999px;
	color: var(--lt-wit);
	font-weight: 700;
	padding: 0.55rem 1.2rem;
	text-decoration: none;
}

.lt-aside__eta {
	background: rgba(232, 114, 31, 0.16);
	border-radius: 10px;
	color: var(--lt-krijtwit) !important;
	display: block;
	font-size: 0.85rem;
	margin-top: 0.9rem;
	padding: 0.65rem 0.8rem;
	text-decoration: none;
}

.lt-aside__eta strong {
	color: var(--lt-rood-licht);
}

.site-branding .site-title .lt-merk-trein {
	color: var(--lt-rood-licht);
}

/* Londenkaart op mobiel: de kaart schaalt anders naar 40% en de labels worden onleesbaar.
   In plaats daarvan blijft hij op leesbare breedte en is de kaart zijwaarts te schuiven. */
@media (max-width: 640px) {
	.entry-content .lt-londenkaart {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 0.25rem;
	}

	.lt-londenkaart svg {
		max-width: none;
		min-width: 540px;
		width: 540px;
	}

	.lt-lk__buurt text {
		font-size: 18px;
	}

	.lt-lk__station text {
		font-size: 22px;
	}

	.entry-content .lt-londenkaart figcaption {
		position: sticky;
		left: 0;
		width: calc(100vw - 4.75rem);
	}

	.entry-content .lt-londenkaart figcaption::after {
		content: " Veeg over de kaart om hem te verschuiven.";
	}
}

/* Routekaart op de homepage: smaller dan de volle breedte, zodat hij niet het hele scherm vult. */
.lt-hero--kaart .lt-map {
	margin: 1.5rem auto 2rem;
	max-width: 1000px;
}

/* Kaartsectie: kop en tekst beginnen op dezelfde lijn als de kaart (in plaats van een smallere kolom). */
.lt-hero--kaart .lt-hero__inner {
	max-width: 1000px;
}

.lt-hero--kaart .lt-hero__intro {
	max-width: none;
}


/* Tikvlakken: links in de vraagtegels en het linkraster minimaal 44px hoog. */
.lt-vraag__links a {
	display: block;
	min-height: 44px;
	padding: 0.65rem 0;
}

.lt-footer__naam {
	display: inline-block;
}

.lt-faq ~ .lt-cta {
	margin-top: 1.75rem;
}

.lt-footer__wordmark .lt-footer__naam {
	color: var(--lt-krijtwit);
}

.lt-footer__wordmark .lt-footer__naam span {
	color: var(--lt-rood-licht);
}

/* ---- Vertrekschema: echte eerstvolgende dagen i.p.v. één voorbeelddag, boekknop per rij ---- */
.entry-content .lt-tijden__badge {
	background: var(--lt-rood);
	border-radius: 999px;
	color: var(--lt-wit);
	font-family: var(--lt-font-body);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	margin-left: 0.5rem;
	padding: 0.15rem 0.55rem;
	text-transform: uppercase;
	vertical-align: middle;
}

.entry-content .lt-tijden table {
	border-collapse: separate;
	border-spacing: 0;
}

/* Donkere kopbalk i.p.v. het vlakke grijs: zelfde taal als de hero en de kaartsectie. */
.entry-content .lt-tijden thead th {
	background: var(--lt-inkt);
	color: var(--lt-krijtwit);
	font-family: var(--lt-font-body);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	padding-bottom: 0.7rem;
	padding-top: 0.7rem;
	text-transform: uppercase;
}

.entry-content .lt-tijden thead th:first-child {
	border-radius: 10px 0 0 0;
}

.entry-content .lt-tijden thead th:last-child {
	border-radius: 0 10px 0 0;
}

.entry-content .lt-tijden tbody tr:nth-child(even) {
	background: rgba(200, 155, 60, 0.07);
}

.entry-content .lt-tijden tbody tr:hover {
	background: rgba(192, 74, 5, 0.08);
}

.entry-content .lt-tijden .lt-mono {
	color: var(--lt-rood);
	font-weight: 600;
}

/* "direct"-badge: klein, groen-teal accent, los van het oranje van de rest zodat het
   als een apart signaal leest (klopt/geen overstap) i.p.v. nog een oranje label. */
.entry-content .lt-tijden__direct {
	background: #e4f3ee;
	border-radius: 999px;
	color: #1d7a5f;
	display: inline-block;
	font-family: var(--lt-font-body);
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	margin-left: 0.5rem;
	padding: 0.12rem 0.5rem;
	text-transform: uppercase;
	vertical-align: middle;
}

/* Boekknop in de tabel zelf i.p.v. los eronder: elke rij zijn eigen kleine pil. */
.entry-content .lt-tijden__boek {
	background: var(--lt-rood);
	border-radius: 999px;
	color: var(--lt-wit) !important;
	display: inline-block;
	font-size: 0.78rem;
	font-weight: 700;
	padding: 0.35rem 0.9rem;
	text-decoration: none;
	white-space: nowrap;
}

.entry-content .lt-tijden__boek:hover {
	background: var(--lt-rood-hover);
}

@media (max-width: 640px) {
	.entry-content .lt-tijden__direct {
		display: block;
		margin: 0.2rem 0 0;
	}

	.entry-content .lt-tijden__boek {
		padding: 0.3rem 0.65rem;
	}
}

/* ---- Homepage: vertrektijden per station als tabs, één station tegelijk zichtbaar.
   Puur CSS (verborgen radio's + labels als tabblad), geen JS nodig: werkt ook zonder
   JavaScript, en er hoeft maar één tabel tegelijk te renderen i.p.v. drie naast elkaar
   (bevinding Bram 22 sep 2026: drie kolommen naast elkaar oogde rommelig). ---- */
.lt-tijdtabs {
	margin: 1.5rem 0 0.75rem;
}

.lt-tijdtabs__radio {
	clip: rect(0 0 0 0);
	position: absolute;
	height: 1px;
	width: 1px;
	overflow: hidden;
}

.lt-tijdtabs__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin: 0 0 1rem;
}

.lt-tijdtabs__nav label {
	background: var(--lt-wit);
	border: 1.5px solid var(--lt-lijn);
	border-radius: 999px;
	color: var(--lt-inkt);
	cursor: pointer;
	font-weight: 600;
	padding: 0.55rem 1.15rem;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.lt-tijdtabs__nav label:hover {
	border-color: var(--lt-rood);
}

.lt-tijdtabs__panel {
	display: none;
}

#lt-tijdtab-amsterdam:checked ~ .lt-tijdtabs__nav label[for="lt-tijdtab-amsterdam"],
#lt-tijdtab-rotterdam:checked ~ .lt-tijdtabs__nav label[for="lt-tijdtab-rotterdam"],
#lt-tijdtab-brussel:checked ~ .lt-tijdtabs__nav label[for="lt-tijdtab-brussel"] {
	background: var(--lt-inkt);
	border-color: var(--lt-inkt);
	color: var(--lt-krijtwit);
}

#lt-tijdtab-amsterdam:checked ~ .lt-tijdtabs__panel[data-panel="amsterdam"],
#lt-tijdtab-rotterdam:checked ~ .lt-tijdtabs__panel[data-panel="rotterdam"],
#lt-tijdtab-brussel:checked ~ .lt-tijdtabs__panel[data-panel="brussel"] {
	display: block;
}

.lt-tijdtabs__panel .lt-tijden {
	margin: 0;
}

.lt-tijdtabs__panel .lt-tijden__dag {
	border-top: 0;
}

.lt-tijdgrid__meer {
	margin: 0.6rem 0 0;
}

.lt-tijdgrid__meer a {
	font-weight: 600;
}

@media (max-width: 640px) {
	.lt-tijdtabs__nav {
		gap: 0.5rem;
	}

	.lt-tijdtabs__nav label {
		font-size: 0.85rem;
		padding: 0.5rem 0.9rem;
	}
}

/* ---- [lt_tijden weergave="labels"]: dagen als klikbare labels i.p.v. accordions.
   Puur CSS (verborgen radio's), nth-of-type-gebaseerd zodat dit meerdere keren op één
   pagina kan voorkomen (bijv. drie keer op de homepage, één per station) zonder dat de
   CSS per instantie hoeft te weten hoeveel dagen of welk station het is. ---- */
.lt-tijden--labels .lt-tijden__dagradio {
	clip: rect(0 0 0 0);
	position: absolute;
	height: 1px;
	width: 1px;
	overflow: hidden;
}

.lt-tijden--labels .lt-tijden__dagnav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 1.1rem;
}

.lt-tijden--labels .lt-tijden__daglabel {
	background: var(--lt-wit);
	border: 1.5px solid var(--lt-lijn);
	border-radius: 999px;
	color: var(--lt-inkt);
	cursor: pointer;
	font-size: 0.85rem;
	font-weight: 600;
	padding: 0.5rem 1.05rem;
	text-transform: capitalize;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.lt-tijden--labels .lt-tijden__daglabel:hover {
	border-color: var(--lt-rood);
}

.lt-tijden--labels .lt-tijden__dagpanel {
	display: none;
}

.lt-tijden--labels .lt-tijden__dagkop {
	color: #556;
	font-size: 0.85rem;
	font-weight: 600;
	margin: 0 0 0.5rem;
}

.lt-tijden--labels .lt-tijden__dagradio:nth-of-type(1):checked ~ .lt-tijden__dagnav .lt-tijden__daglabel:nth-of-type(1),
.lt-tijden--labels .lt-tijden__dagradio:nth-of-type(2):checked ~ .lt-tijden__dagnav .lt-tijden__daglabel:nth-of-type(2),
.lt-tijden--labels .lt-tijden__dagradio:nth-of-type(3):checked ~ .lt-tijden__dagnav .lt-tijden__daglabel:nth-of-type(3),
.lt-tijden--labels .lt-tijden__dagradio:nth-of-type(4):checked ~ .lt-tijden__dagnav .lt-tijden__daglabel:nth-of-type(4),
.lt-tijden--labels .lt-tijden__dagradio:nth-of-type(5):checked ~ .lt-tijden__dagnav .lt-tijden__daglabel:nth-of-type(5),
.lt-tijden--labels .lt-tijden__dagradio:nth-of-type(6):checked ~ .lt-tijden__dagnav .lt-tijden__daglabel:nth-of-type(6),
.lt-tijden--labels .lt-tijden__dagradio:nth-of-type(7):checked ~ .lt-tijden__dagnav .lt-tijden__daglabel:nth-of-type(7) {
	background: var(--lt-inkt);
	border-color: var(--lt-inkt);
	color: var(--lt-krijtwit);
}

.lt-tijden--labels .lt-tijden__dagradio:nth-of-type(1):checked ~ .lt-tijden__dagpanel:nth-of-type(1),
.lt-tijden--labels .lt-tijden__dagradio:nth-of-type(2):checked ~ .lt-tijden__dagpanel:nth-of-type(2),
.lt-tijden--labels .lt-tijden__dagradio:nth-of-type(3):checked ~ .lt-tijden__dagpanel:nth-of-type(3),
.lt-tijden--labels .lt-tijden__dagradio:nth-of-type(4):checked ~ .lt-tijden__dagpanel:nth-of-type(4),
.lt-tijden--labels .lt-tijden__dagradio:nth-of-type(5):checked ~ .lt-tijden__dagpanel:nth-of-type(5),
.lt-tijden--labels .lt-tijden__dagradio:nth-of-type(6):checked ~ .lt-tijden__dagpanel:nth-of-type(6),
.lt-tijden--labels .lt-tijden__dagradio:nth-of-type(7):checked ~ .lt-tijden__dagpanel:nth-of-type(7) {
	display: block;
}

@media (max-width: 640px) {
	.lt-tijden--labels .lt-tijden__daglabel {
		font-size: 0.78rem;
		padding: 0.45rem 0.85rem;
	}
}
