/*
 * Toegankelijkheid (theme 5.0.902)
 *
 * Danny, 24 oktober 2026: "Alles", na het rapport "Toegankelijkheid letscruise.nl door de ogen van 1000 bezoekers".
 * Een laag over alle andere stijlen (als laatste geladen), zodat main.css en index.css niet uit de pas lopen.
 * De maten komen uit de meting van 15 pagina's op 4 schermbreedtes:
 *   1. letters: niets wat gelezen moet worden onder 13 px, tegels en kleine regels 14 px, lopende tekst 16 px;
 *   2. contrast: tekst minstens 4,5 staat tot 1 (de kleuren hieronder zijn nagerekend);
 *   3. tikdoelen op een aanraakscherm minstens 44 px, kleine links in tekst met een grotere tikzone;
 *   5. links in lopende tekst onderstreept (niet alleen kleur);
 *   8. zichtbare focus voor wie met het toetsenbord werkt.
 * Haal je dit bestand weg, dan staat de site er weer bij zoals hij stond.
 * Bij letters en kleuren !important: de bestaande stijlen gebruiken vaak zwaardere selectors (html body ..., .lcd-balans ...),
 * en deze laag is juist de ondergrens die moet gelden.
 */

/* ---------- 1. Letters ---------- */

/* Cruisetegels (overzicht, beginpagina, rederij, schip, bestemming, familie) */
.lct-tegel-regel span,
.lct-tegel-havenslijst,
.lct-tegel-plaatskop,
.lct-tegel-nacht,
.lct-tegel-merknaam,
.lct-tegel-schipnaam,
.lct-tegel-datum,
.lct-tegel-havenskop,
.lct-tegel-datakop,
.lct-tegel-enkel span,
.lct-tegel-prijs small,
.lct-tegel-vanaf,
.lct-tegel-tot,
.lct-tegel-knop { font-size: 14px !important; }
.lct-kaartpil { font-size: 13px !important; }

/* Kopregel, voettekst, kleine regels die overal staan */
.lct-reis-title,
.lct-reis-info,
.lct-stat-bron,
.lct-footer-label,
.lct-footer-bottom small,
.lct-footer address small,
.lct-appknop-tekst small,
.lct-newsletter-fine { font-size: 14px !important; }
.lct-breadcrumbs, .lc-crumbs { font-size: 14px !important; }

/* Rederij, schip, haven, bestemming, acties, familie */
.lct-kl-lijst > li,
.lct-rederij-ship-meta,
.lct-rederij-ship-cta,
.lct-rb-dim-label,
.lct-rb-dim-criteria > summary,
.lct-voertaal-note,
.lct-region-season-row-desc,
.lc-drink-card-bullets > li,
.lc-deal-meta,
.lca-telling,
.lcs-tl-rederij,
.lc-hv-call-sub,
.lc-hv-opt-title,
.lc-hv-opt-dur,
.lc-hv-embark,
.lc-hv-portcall,
.lc-hv-link,
.lcf-ab-onb,
.lcf-ab-chips > li,
.lcf-dt-naam small,
.lcf-ov-balk b,
.lct-aanboord { font-size: 14px !important; }

/* Cruisepagina */
.lcd-fooien-r2,
.lcd-visum p,
.lct-bartab-fijn,
.lct-bartab-prijs,
.lcb-ab-incl,
.lcsb-detail-nr { font-size: 14px !important; }

/* Offerte- en keuzeformulieren */
.lcoff-pk-in b,
.lcoff-keuze > span,
.lcoff-bouw-chip > span,
.lcoff-vink > span,
.lcoff-klein { font-size: 15px !important; }

/* Lopende tekst: 16 px */
.lct-rederij-ship-desc p,
.lcd-dag-tekst p,
.lct-faq-a p,
.lct-faq-answer p,
.lct-rederij-faq-a p,
.lcd-rederij-tekst p,
.lct-region-port-desc,
.lct-footer-brand p,
.lcb-ov-tekst p,
.lcf-eo-vast p,
.lct-zowerkt-stap p,
.lct-kl-klein p,
.lct-kl-uitleg p { font-size: 16px !important; line-height: 1.6 !important; }
@media (max-width: 767px) {
	.lct-blog-content p,
	.lc-hv-prose p,
	.lcf-sub p { font-size: 17px !important; }
}

/* ---------- 1b. Letters, tweede meting (20 pagina's, mobiel en desktop): alles wat nog onder 14 px stond ---------- */

.lct-combo-item-label,
.lcf-ab-chips small,
.lct-rb-dim-criteria li,
.lcsb-stap span,
.lcf-dt-vak li,
.lc-hvz-geb,
.lct-combo-item-count,
.lct-rederij-card-tagline,
.lct-footer-bottom a,
.lcf-dt-clubs span,
.lcsb-stap small,
.lcd-dag-lijst span,
.lc-hv-opt-dur strong,
.lct-shiptype-hint,
.lcd-mij-beleid li,
.lcb-vgl-item small,
.lcf-dt-vak dd,
.lc-hvz-n,
.lcd-noot,
.lc-hvz-meta,
.lc-bst-meta,
.lct-rederij-card-cta,
.lct-date-hint,
.lct-tegel-dataalles,
.lct-rb-foot,
.lct-rederij-card-stat,
.lcf-dt-clubs b,
.lct-combo-item-hint,
.lct-combo-meer,
.lcoff-veld label,
.lcoff-bouw-wat small,
.lct-fooi-klein,
.lcb-vgl-oms,
.lcb-vgl-weet-i li,
.lc-ship-stipt-noot,
.lcf-tel,
.lcoff-pk-in small,
.lc-ship-dekplan span,
.lct-rederij-ship-year,
.lc-action-validity,
.lcf-ov-balk small,
.lcoff-label,
.lcoff-ft-vb,
.lcf-red-sub,
.lcs-m,
.lc-vergelijk-page p,
.lc-hvz-bez,
.lcd-dag-tijden,
.lcd-vervoerkaart-noot,
.lca-bijgewerkt,
.lct-rb-header-sub,
.lcd-regiokaart-tekst,
.lcd-vervoerkaart p,
.lcd-voorbehoud,
.lct-breadcrumb a,
.lct-fooi-note,
.lct-destination-card-meta,
.lc-ship-dekplan p,
.lc-hv-d-yr,
.lcd-vervoerlijst li,
.lcf-ab-lb,
.lct-breadcrumb span,
.lct-region-port-country,
.lct-searchbar-tab,
.lcd-lead,
.lct-date-or,
.lcs-foot,
.lct-reis-tm,
.lct-deal-card-subtitle,
.lct-shows-voet,
.lcoff-stap,
.lct-checkbox span,
.lct-blog-toc-list a,
.lct-btn-portal-tekst,
.lc-deal-date strong,
.lcd-klas-desc,
.lcd-ontdek a,
.lct-gs-soort small,
.lcoff-pk-prijs,
.lcs-om-stat span,
.lca-rederij,
.lct-nieuw-deur-sub,
.lc-deal-date,
.lct-ship-hint,
.lcd-datarij span,
.lct-adviseur-desc,
.lc-hv-d-mon,
.lcb-pak-lijst li,
.lc-hv-buurt-naam,
.lct-dab-voet,
.lcd-inclusief-voet,
.lcd-offerte-kader,
.lct-tegel-datameer,
.lct-bartab-veld label,
.lct-rederij-card-stat strong,
.lct-bartab-uitleg,
.lc-acties-banner-sub,
.lcb-vgl-wat small,
.lcd-tarief-uitleg,
.lct-haven-naam,
.lcd-vertrouwen span,
.lc-ship-spec-key,
.lca-cta,
.lct-rederij-keyfact-eye,
.lcd-dagprijs-l small,
.lcoff-hint,
.lct-haven-aantal,
.lc-ship-dekplan button,
.lcd-feitenlijst dd,
.lca-urgent,
.lcb-sr-links a,
.lct-story-card-meta,
.lcd-vluchten-klap small,
.lct-rb-foot strong,
.lct-hero-punten li,
.lcf-mini-t b,
.lct-schipnu-regel span,
.lcd-klas-meer,
.lcd-keuze span,
.lct-deal-card-link,
.lcs-tl-aantal,
.lcf-zk-veld label,
.lcf-dt-vak p,
.lct-danny2-cijfers span,
.lcf-uitkomst,
.lc-ship-breadcrumb a,
.lcd-vluchtrij-mij em,
.lcd-vervoerlijst strong,
.lcf-dt-vak dt,
.lct-price-mode-opt span,
.lct-danny2-voet,
.lcd-balk-titel,
.lct-field-label,
.lct-revstrip-wie em,
.lct-voertaal-l,
.lct-section-alle,
.lct-taal span,
.lct-field-help,
.lcd-dagprijs-l strong,
.lcd-prijs-uitleg span,
.lct-blog-related-card-eye,
.lc-deal-pp,
.lc-action-validity a,
.lc-hv-meta,
.lct-region-subregion-cta,
.lcd-datarij-prijs,
.lcd-secnav-link,
.lcoff-label small,
.lct-adviseur-header,
.lcp-feiten span,
.lcd-klas-prijs small,
.lcd-eerstekeer,
.lc-ship-stipt-getal small,
.lcf-zk-veld legend,
.lct-deal-card-cta,
.lc-hv-fbtn,
.lct-rederij-review-verified,
.lct-tegel-oud,
.lcd-vluchtrij-type,
.lcd-vluchtrij-via,
.lcd-matcher-titel,
.lcoff-label em,
.lct-region-season-row-month-temp,
.lc-hero-quick-lang,
.lcd-vluchtrij-van strong,
.lct-vestiging-note small,
.lct-blog-share-btn span,
.lcd-prijs-uitleg,
.lcoff-ft-naam,
.lcs-om-pre,
.lcd-prijs-basis,
.lc-hv-bezocht,
.lct-revstrip-wie b,
.lcd-keuze,
.lcd-prijsalert-knop,
.lct-blog-related-card-meta,
.lcd-prijs-belofte b,
.lcd-offerte-contact,
.lc-hv-buurt-km,
.lcd-feitenlijst dt,
.lcd-dag-nr,
.lc-ekc-pre,
.lct-blog-side-title,
.lc-hvz-tel,
.lcd-fooien-r1,
.lc-hv-buurt-soort,
.lcd-huidig,
.lcd-offerte-contact a,
.lc-ship-dekplan div,
.lc-hv-toggle,
.lcb-vgl-wat,
.lcd-prijs-bezetting,
.lct-adviseur-role,
.lcd-knop-klein,
.lcb-vgl-vb,
.lcd-prijs-belofte span,
.lcd-cta-tweede,
.lc-ship-danny,
.lct-btn-light,
.lcd-klas-prijs b,
.lct-combo-meer strong,
.lcd-pakket-inbegrepen span,
.lcd-fooien-info,
.lca-feiten dt,
.lcd-visum strong,
.lcd-regiokaart-link,
.lcd-tarief-laagst,
.lcd-zijfoto-tekst,
.lcoff-veld small,
.lc-ship-breadcrumb span,
.lct-region-season-list-header,
.lct-blog-aside-title,
.lcd-mij-beleid summary,
.lcd-offerte-kader strong,
.lct-reis-ico,
.lct-appband-eb,
.lct-revstrip-alle,
.lcd-regiokaart-titel,
.lcb-vgl-cel small,
.lcd-eerstekeer a,
.lct-cruise-card-meta,
.lcs-om-quote-naam,
.lct-blog-aside-card-title,
.lc-hvz-veld label { font-size: 14px !important; }

/* Pillen, kleine koppen in hoofdletters, bronvermelding: 13 px */
.lct-kaartpil,
.lct-eyebrow,
.lct-rederij-onboard-label,
.lct-searchbar-label,
.lcoff-bouw-gkop,
.lct-kl-label,
.lct-reis-pill,
.lc-hv-chip,
.lcf-dt-chips li,
.lcd-vluchten-kop span,
.lcbs-kop,
.lct-region-stat-label,
.lcsb-bron a,
.lct-rederij-keyfact-label,
.lct-region-port-badge,
.lcd-cijfer-label,
.lct-nieuwschip,
.lcd-dag-tag,
.lct-date-legend,
.lcoff-bouw-kop small,
.lcs-om-chip,
.lcf-ab-kop,
.lct-rb-dim-num,
.lcf-band-kop,
.lct-story-card-badge,
.lcd-chip,
.lct-sv-bron,
.lcf-chip small,
.lcd-kaart-bron a,
.lcd-dag-credit,
.lct-chip small,
.lct-appband-winkel small,
.lct-danny2-badge,
.lcf-eyebrow,
.lct-price-axis span,
.lcd-prijs-label,
.lct-danny2-eyebrow,
.lct-nieuw-hier-eyebrow,
.lcp-eyebrow,
.lcd-matcher-chips span,
.lcd-hero-pil,
.lcb-blokkop,
.lct-region-hero-badge,
.lct-section-label,
.lcd-subkop,
.lcd-label,
.lc-ship-eyebrow,
.lc-hv-eyebrow,
.lcd-vluchten-kop strong,
.lc-deal-badge,
.lcd-tarieven-kop,
.lct-region-subregion-count-label,
.lct-snel-kop { font-size: 13px !important; }

/* ---------- 2. Contrast ---------- */

.lct-nieuw-deur-sub { color: #fff !important; }                                   /* was #d4e6f3 op blauw, 3,82 */
.lcb-ab-incl { color: #0a6870 !important; }                                       /* was #0e7c86 op #e3f3f2, 4,32 > 5,69 */
.lct-btn-wa, .lct-btn-wa:visited { background-color: #1a7f37 !important; }         /* wit op groen 3,31 > 5,08 */
.lct-btn-wa:hover { background-color: #15692d !important; }
.lct-bartab-fijn, .lct-bartab-prijs,
.lct-region-port-note, .lct-region-port-desc { color: #5b6b7a !important; }       /* grijs 2,3 tot 3,2 > 5,48 */
.lct-region-port-country { color: #1a6f99 !important; }                            /* lichtblauw 2,07 > 5,56 */
.lcsb-detail-nr { color: #8a6100 !important; }                                     /* goud 3,63 > 5,54 */
a[data-lcsb-lat] > div > b { color: #3d4b59 !important; }                          /* vlootlijst bij een rederij */
a[data-lcsb-lat] > div > small,
a[data-lcsb-lat] > div > span { color: #5b6b7a !important; }
li[data-uur] > time { color: #1a6f99 !important; }                                 /* een dag aan boord (eerste keer cruisen) */
li[data-uur] > p { color: #4b5866 !important; }
/* Stappen en lijsten die gedimd worden tot ze aan de beurt zijn: wel leesbaar houden */
.lct-dab-stap, a[data-lcsb-lat], article[data-lcsb-lat] { opacity: 1 !important; }
/* Logo's van rederijen die bijna wit zijn, op de witte strook van de beginpagina */
.lct-searchbar-brands img[src*="scenic" i],
.lct-searchbar-brands img[src*="silversea" i],
.lct-searchbar-brands img[src*="holland" i],
.lct-searchbar-brands img[alt*="Scenic" i],
.lct-searchbar-brands img[alt*="Silversea" i],
.lct-searchbar-brands img[alt*="Holland" i] { filter: brightness(0.35) contrast(1.2) !important; }
/* Kruimelpad over een foto */
.lct-page-hero.has-image .lct-breadcrumbs,
.lct-page-hero.has-image .lct-breadcrumbs a,
.lct-post-hero .lct-breadcrumbs,
.lct-post-hero .lct-breadcrumbs a { color: #fff !important; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.75) !important; }

/* ---------- 5. Links in tekst onderstreept ---------- */

:where(main, footer, #lct-cookie-banner) :is(p, li, dd, td) > a:not([class]),
.lct-blog-content a:not([class]),
.wp-block-paragraph a:not([class]) { text-decoration: underline !important; text-underline-offset: 2px; text-decoration-thickness: 1px; }

/* ---------- 3. Tikdoelen op een aanraakscherm ---------- */

@media (pointer: coarse) {
	/* Kleine links in een regel tekst: een grotere tikzone zonder dat de regel verschuift */
	.lct-footer-bottom a,
	.lct-footer-contact a,
	.lct-footer-menu a,
	.lct-breadcrumbs a,
	.lc-crumbs a,
	small a,
	.lcoff-klein,
	.lct-newsletter-fine a,
	.lcd-offerte-contact a,
	.lcd-visum a,
	.lcb-sr-links a,
	.lcf-eo-bron a,
	.leaflet-control-attribution a { padding-top: 13px; padding-bottom: 13px; }
	.lct-footer-bottom button { min-height: 44px; }
	.lct-footer-menu a, .lct-footer-contact a { display: inline-block; }

	/* Knoppen en chips minstens 44 px hoog */
	.lct-snel-chip,
	.lct-deal-card-link,
	.lcd-cruisecode-w,
	.lcp-fotoknop,
	.lct-rb-dim-criteria > summary { min-height: 44px; display: inline-flex; align-items: center; }
	.lct-rb-dim-criteria > summary { display: flex; }

	/* Ronde vraagtekens en kleine knoppen: de knop blijft even groot, de tikzone wordt 44 px */
	.lcoff-bouw-vraag,
	.lcoff-ft-vraag,
	.lck-jaar,
	.lcd-fooien-info,
	.lct-search-btn,
	.lc-pagination-num { position: relative; }
	.lcoff-bouw-vraag::after,
	.lcoff-ft-vraag::after,
	.lck-jaar::after,
	.lcd-fooien-info::after,
	.lct-search-btn::after,
	.lc-pagination-num::after { content: ""; position: absolute; left: 50%; top: 50%; width: max(100%, 44px); height: max(100%, 44px); transform: translate(-50%, -50%); }
}

/* ---------- 10. Tabbladen op een cruisepagina: laten zien dat er meer is ---------- */

@media (max-width: 767px) {
	.lcd-secnav:not(.is-eind) {
		-webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 48px), transparent);
		mask-image: linear-gradient(90deg, #000 calc(100% - 48px), transparent);
	}
	.lcd-secnav a { min-height: 44px; display: inline-flex; align-items: center; }
}

/* ---------- 8. Zichtbare focus ---------- */

a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
[role="button"]:focus-visible {
	outline: 3px solid #0F75BC !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 5px #fff !important;
	border-radius: 4px;
}

/* ---------- 7. Het mobiele menu (op desktop helemaal weg): niet buiten beeld laten uitsteken, en dicht = niet bereikbaar ---------- */

html, body { overflow-x: clip; }
.lct-nav-mobile { visibility: hidden; transition: right 0.3s ease, visibility 0s linear 0.3s; }
.lct-nav-mobile.is-open { visibility: visible; transition: right 0.3s ease, visibility 0s; }
/* v5.0.912, Danny: "Op een iPad verschijnt het hamburger menu niet". Boven 901 px stond het menu altijd uit, ook als het
   desktopmenu niet past en de kop het hamburgermenu toont (lct-kop-vol, bijvoorbeeld een iPad liggend). */
@media (min-width: 901px) { #lct-header:not(.lct-kop-vol) .lct-nav-mobile { display: none !important; } }
/* De vergelijkingstabel op Familie was breder dan de pagina: hij schuift nu in zijn eigen vak */
.lcf-ab-schuif, .lcf-ov-schuif { max-width: 100%; min-width: 0; overflow-x: auto; }
.lcf-ab-schuif { contain: inline-size; }

/* ---------- 6. Pauzeknop bij bewegende achtergrond ---------- */

.lct-video-pauze {
	position: absolute; right: 16px; bottom: 16px; z-index: 5;
	display: inline-flex; align-items: center; gap: 8px;
	min-height: 44px; padding: 0 16px; border: 0; border-radius: 999px;
	background: rgba(10, 37, 64, 0.72); color: #fff;
	font: 600 14px/1 'Plus Jakarta Sans', system-ui, sans-serif; cursor: pointer;
}
.lct-video-pauze:hover { background: rgba(10, 37, 64, 0.9); }
.lct-video-pauze svg { width: 16px; height: 16px; }
/* Op de beginpagina ligt de zoekkaart over de onderkant van de foto: de knop erboven */
.lct-hero > .lct-video-pauze { bottom: 112px; }
@media (max-width: 768px) { .lct-video-pauze { display: none; } } /* op mobiel speelt geen video */

/* v5.0.911: cruisetegel op de telefoon. Sinds de letters 14 px zijn (toegankelijkheid) paste de prijs niet meer
   naast de knop: "per persoon" en de nachtprijs liepen over elkaar en "nacht" viel onder de tegel weg (Danny,
   iPhone, 25 oktober). Nu gaat de knop eerder onder de prijs, en de regel met nachtprijs en enkele reis mag
   meegroeien in plaats van een vaste 20 px hoog te zijn. */
.lct-tegel-prijsrij { height: auto; min-height: 20px; flex-wrap: wrap; row-gap: 2px; }
.lct-tegel-prijsrij .lct-tegel-nacht { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lct-tegel-prijsvak { min-height: 0; }
@container tegel (max-width: 460px) {
	.lct-tegel-voetrij { flex-direction: column; align-items: stretch; gap: 10px; }
	.lct-tegel-voetrij .lct-tegel-knop { justify-content: center; }
}
/* Op een smalle tegel gaat "Enkele reis" onder de nachtprijs. De rij is dan op elke tegel twee regels hoog, ook
   zonder enkele reis, zodat de tegels naast elkaar gelijk blijven staan. */
@container tegel (max-width: 400px) {
	.lct-tegel-prijsrij { min-height: 42px; align-content: flex-start; }
}

/* v5.0.914, Danny: "zorg dat de prijzen op dezelfde hoogte staan (uitlijning)". In de tegelrij (vanaf 521 px) is de
   tegel geen container (hij is een subgrid), dus de regel hierboven voor smalle tegels gold daar niet. Een tegel met
   "Enkele reis" kreeg een regel extra onder de nachtprijs; de voet hangt aan de onderkant, dus bij die tegel schoven de
   prijs en de databalk omhoog. Nu krijgt in een rij met een enkele reis elke tegel die tweede regel, en staan prijs,
   databalk en knop overal op dezelfde hoogte. Zonder enkele reis in de rij blijft het een regel. */
@media (min-width: 521px) {
	.lct-tegelrij:has(.lct-tegel-enkel) > .lct-tegel .lct-tegel-prijsrij { min-height: 42px; align-content: flex-start; }
}
