/*
 * Theme "Modern" — CSS-only skin (Fase A multi-template, jul 2026).
 *
 * Laadt NA style.css; alle regels zijn geprefixt met body.theme-modern zodat
 * ze alleen op sites met dit theme gelden en altijd van style.css winnen.
 * Zelfde markup, zelfde CSS-variabelen (--main-color / --secondary-color /
 * --tertiary-color) als classic — de kleurkiezer in het CMS blijft dus werken.
 *
 * Bewust CSS-only: geen layout-herindeling, geen img-sizing (zie de
 * `.container img !important`-valkuil), RTL-neutraal (symmetrische spacing).
 */

/* Montserrat voor de merk-typografie (mail Rutger 20 jul 2026). Bewust hier via
 * @import i.p.v. een <link> in de head: dit bestand laadt alleen bij theme
 * modern, dus de font-request blijft netjes theme-scoped (classic/andere themes
 * halen 'm niet op). Zelfde Google-Fonts-bron als de landingpages al gebruiken. */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@600;700;800&display=swap');

/* ---------- Typografie ---------- */
body.theme-modern {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
		"Helvetica Neue", Arial, sans-serif;
	color: #3a4149;
	background-color: #f6f8fa;
}
body.theme-modern h2,
body.theme-modern h3,
body.theme-modern h4 {
	font-weight: 700;
	color: #1d2530;
	letter-spacing: -0.015em;
}
body.theme-modern h2 { line-height: 1.25; }
body.theme-modern p { line-height: 1.65; }
body.theme-modern a { color: var(--main-color); }
/* Montserrat op ALLE h1 (mail Rutger 20 jul 2026): de merk-typografie (tot nu toe
 * alleen het tekst-logo) trekken we door naar elke <h1> — zowel de hero-kop
 * (.header_h1 h1) als de artikel-<h1> (#article_title). Eén blanket-regel op de
 * property font-family; de bestaande h1-regels zetten die niet, dus geen
 * specificiteitsconflict (ook niet met #article_title). Montserrat is al ge-import
 * bovenaan dit bestand (weights 600;700;800 — h1 gebruikt 800). Alleen theme modern. */
body.theme-modern h1 {
	font-family: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI",
		Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* ---------- Header / navigatie ---------- */
body.theme-modern #main-nav {
	background-color: #fff;
	box-shadow: 0 1px 12px rgba(29, 37, 48, 0.08);
}
/* Merk-identiteit gemoderniseerd (mail Rutger 20 jul 2026): één schone,
 * gebrande tekst-logo i.p.v. de vroegere "double button". style.css zet op de
 * .header-logo-container een border + box-shadow + padding, en wij zetten daar
 * eerder óók nog een getinte chip op de <a> bovenop => twee geneste kaders die
 * als twee knoppen ogen. Nu: container volledig strippen (geen rand/schaduw/
 * padding) en de <a> is de merknaam zelf — Montserrat, bold, in de hoofdkleur,
 * zonder achtergrond. Symmetrische spacing = RTL-neutraal. Geldt voor de
 * tekst-logo (geen ge-uploade logo-afbeelding). Alleen theme modern. */
body.theme-modern .header-logo {
	border: 0;
	box-shadow: none;
	padding: 0;
}
body.theme-modern .header-logo a {
	display: inline-block;
	font-family: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI",
		Roboto, "Helvetica Neue", Arial, sans-serif;
	font-weight: 800;
	font-size: 26px;
	letter-spacing: -0.03em;
	color: var(--main-color);
	padding: 0;
	border-radius: 0;
	background-color: transparent;
	transition: color 0.15s ease;
}
body.theme-modern .header-logo a:hover {
	color: var(--secondary-color);
	text-decoration: none;
}
body.theme-modern ul#main-menu > li > a {
	font-size: 13px;
	text-transform: none;
	font-weight: 600;
	border-radius: 999px;
	transition: background-color 0.15s ease, color 0.15s ease;
}
body.theme-modern .sm-mint a:hover,
body.theme-modern .sm-mint a:focus,
body.theme-modern .sm-mint a:active,
body.theme-modern .sm-mint a.highlighted {
	border-radius: 999px;
}
body.theme-modern #top_bar {
	background-color: #eef1f5;
	font-size: 13px;
}
body.theme-modern.container #top_bar {
	border-top: solid 4px var(--main-color);
}

/* CTA geconsolideerd in de hoofdnav op DESKTOP (mail Rutger 20 jul 2026):
 * vanaf 992px (waar .main-nav flext) verbergen we de CTA in de paginakop en
 * tonen we 'm rechts in de nav-balk (.mdn-nav-cta, gerenderd in header2.php).
 * Onder 992px blijft alles bij het oude (header-CTA + mobiele sticky-balk),
 * dus geen dubbele knop. Alleen theme modern. */
@media (min-width: 992px) {
	body.theme-modern .mdn-header-cta { display: none; }
	body.theme-modern .mdn-nav-cta {
		margin-left: 1.25rem;
		white-space: nowrap;
		align-self: center;
	}
	/* Menu-items naar de rechterkant van de navbar (mail Rutger 20 jul 2026):
	 * de nav flext vanaf 992px (d-lg-flex). margin-left:auto slurpt alle vrije
	 * ruimte op zodat het logo links blijft en het menu (+ eventuele CTA) rechts
	 * uitlijnt. Alleen desktop, alleen theme modern. */
	body.theme-modern ul#main-menu {
		margin-left: auto;
	}
}

/* Paginakop: kleurverloop op de hoofdkleur i.p.v. vlakke tertiary + randen */
body.theme-modern .header_h1 {
	background-color: var(--main-color);
	background-image: linear-gradient(135deg,
		var(--main-color),
		color-mix(in srgb, var(--main-color), #101820 38%));
	border-top: 0;
	border-bottom: 0;
	padding: 26px 0;
}
body.theme-modern .header_h1 h1 {
	font-weight: 800;
	letter-spacing: -0.02em;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.18);
}
/* Breadcrumbs goed leesbaar op elke achtergrond (mail Rutger 20 jul 2026): tekst
 * én scheidingstekens solide wit — de chevron-separators (.breadcrumb > li+li:
 * before in style.css) erven hun kleur van #breadcrumbs, dus wit hier maakt ook
 * die wit. Een subtiele text-shadow (erft door naar de separators) houdt ze
 * leesbaar tegen een lichte/variabele header-achtergrond. Vervangt de eerdere
 * low-contrast opzet. De laatste crumb (.mdn-crumb-current) blijft wit +
 * prominent (regel verderop). Alleen theme modern. */
body.theme-modern #breadcrumbs,
body.theme-modern #breadcrumbs a {
	color: #fff;
}
body.theme-modern #breadcrumbs {
	font-size: 12px;
	letter-spacing: 0.01em;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}

/* ---------- Kaarten (top10, reviews, artikelen) ---------- */
body.theme-modern .card,
body.theme-modern .post-block,
body.theme-modern .summary_div {
	border: 0;
	border-radius: 14px;
	box-shadow: 0 2px 14px rgba(29, 37, 48, 0.07);
	overflow: hidden;
}
body.theme-modern .card-footer {
	background-color: #fafbfc;
	border-top: 1px solid #eef1f5;
}

/* ---------- Product-samenvatting als compacte kaart (mail Rutger 21 jul 2026) ----
 * Herontwerp van .summary_div op de offer-pagina tot één witte kaart met een
 * kaart-header (productnaam groot + datum klein/muted), een compacte samenvatting,
 * een inline (minder bulky) rating en de twee CTA-knoppen gegroepeerd onderaan.
 * Markup: templates/themes/modern/modules/details.php. De basis-kaartstijl
 * (radius/schaduw/overflow/border:0) erft van de .summary_div-regel hierboven;
 * hier komen achtergrond, padding, flex-indeling en de subcomponenten. Alleen
 * theme modern; classic gebruikt de donkere tabel-layout uit style.css. */
body.theme-modern .summary_div.mdn-summary-card {
	background: #fff;
	padding: 1.25rem;
	display: flex;
	flex-direction: column;
}
/* Header binnen de kaart: titel + sterren op één rij (sterren rechts), datum eronder
 * (mail Rutger 21 jul 2026). */
body.theme-modern .mdn-summary-head {
	border-bottom: 1px solid #eef1f5;
	padding-bottom: 0.75rem;
	margin-bottom: 0.85rem;
}
body.theme-modern .mdn-summary-titlerow {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
}
/* min-width:0 zodat een lange titel afbreekt i.p.v. de sterren van de rij te duwen */
body.theme-modern .mdn-summary-titlewrap {
	min-width: 0;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.35rem 0.6rem;
}
body.theme-modern .mdn-summary-title {
	font-size: 1.8rem;
	font-weight: 800;
	line-height: 1.15;
	margin: 0;
	color: #1d2530;
	text-transform: none;
}
body.theme-modern .mdn-summary-date {
	font-size: 0.8rem;
	color: #7a8494;
	margin: 0.4rem 0 0;
}
body.theme-modern .mdn-summary-date em { font-style: normal; }
body.theme-modern .mdn-summary-edit { font-size: 0.9rem; margin-left: 0.5rem; }
/* Body: samenvatting compact (tighter line-height) */
body.theme-modern .mdn-summary-body { margin-bottom: 0.85rem; }
body.theme-modern .mdn-summary-body .summary {
	font-size: 0.9rem;
	line-height: 1.45;
	color: #3a424e;
}
body.theme-modern .mdn-summary-body .summary-label { color: #1d2530; }
/* Rating: alleen de sterren, rechts uitgelijnd in de header-rij. Geen cijfer en
 * geen pill-achtergrond meer (mail Rutger 21 jul 2026). */
body.theme-modern .mdn-rating {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	margin: 0;
	padding: 0;
	background: none;
	font-size: 1.05rem;
	white-space: nowrap;
}
body.theme-modern .mdn-rating .stars {
	display: inline-flex;
	align-items: center;
	line-height: 1;
	padding: 0;
}
/* Acties: knoppen onderaan de kaart, compact dicht op elkaar */
body.theme-modern .mdn-summary-actions { margin-top: auto; }
body.theme-modern .mdn-summary-actions .btn.btn-block { margin: 0; }
body.theme-modern .mdn-summary-actions .btn.btn-block + .btn.btn-block { margin-top: 0.3rem; }
/* Wat lucht tussen de hero (afbeelding + samenvattingskaart) en de tekst eronder,
 * zodat de onderkant van de kaart de tekst niet raakt (mail Rutger 21 jul 2026). */
body.theme-modern .product-details-section { margin-bottom: 20px; }
/* Primaire CTA in de door Rutger opgegeven brand-kleur #35549f */
body.theme-modern .mdn-summary-actions .mdn-cta-primary,
body.theme-modern .mdn-summary-actions .mdn-cta-primary:focus {
	background-color: #35549f;
	border-color: #35549f;
	color: #fff;
}
body.theme-modern .mdn-summary-actions .mdn-cta-primary:hover {
	background-color: #2c4788;
	border-color: #2c4788;
}
/* Kaarthoogte gelijk aan de naastgelegen gallery-afbeelding (desktop, side-by-side) */
@media (min-width: 992px) {
	body.theme-modern .product-details-section .product-details-gallery { height: 100%; }
	body.theme-modern .summary_div.mdn-summary-card { height: 100%; }
}
body.theme-modern section.figure.product-box {
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 2px 14px rgba(29, 37, 48, 0.07);
	padding: 1.25rem !important;
	margin-bottom: 1.25rem;
	border-bottom: 0 !important;
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}
body.theme-modern section.figure.product-box:hover {
	box-shadow: 0 6px 24px rgba(29, 37, 48, 0.12);
	transform: translateY(-2px);
}
/* Kaart-overflow op mobiel (mail Rutger 20 jul 2026), alleen theme modern.
 * section.figure.product-box is óók een Bootstrap .row (zie src/design.php) en
 * erft dus margin-left/right:-15px. In classic viel die -15px netjes weg tegen
 * de .container-padding (15px). Maar in modern is deze section een ZICHTBARE
 * witte kaart (achtergrond + box-shadow + border-radius + padding). Die
 * negatieve marges trokken de kaartranden tot vóór de container-padding, zodat
 * de kaart de schermranden raakte / werd afgekapt (bv. deetz.nl op mobiel).
 * Fix, alleen op smalle viewports:
 *  1) negatieve row-marges opheffen => de kaart blijft binnen de container-
 *     padding en houdt zo een zichtbare marge (15px) van de schermrand;
 *  2) de eigen horizontale kaart-padding trimmen — de kolommen erbinnen dragen
 *     zelf al 15px gutter-padding (de `p0`-helper op de content-kolom bestaat
 *     niet in onze CSS, dus die 15px blijft staan), dus 1.25rem er nóg bovenop
 *     maakte de content dubbel ingesprongen ("te grote" kaarten). Nu gebalanceerd.
 * Verticale padding (1.25rem) en het desktop-grid blijven ongemoeid. */
@media (max-width: 767.98px) {
	body.theme-modern section.figure.product-box {
		margin-left: 0;
		margin-right: 0;
		padding-left: 0.75rem !important;
		padding-right: 0.75rem !important;
	}
}
/* Blog-overzicht kaartfooter (mail Rutger 20 jul 2026), alleen theme modern.
 * Was: datum links, en de 'Read More'-knop viel op mobiel (d-block + mt-3) op
 * een eigen regel eronder met een gat ertussen. Nu: post-meta is een flex-rij
 * zodat datum en knop op dezelfde regel staan; de knop wordt met margin-left
 * auto naar rechts geduwd en zijn top-marge weggehaald (gat weg). Scoped op
 * .post-medium => raakt alleen de overzichtskaarten, niet de losse artikelpagina. */
body.theme-modern .post-medium .post-meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.4rem 1rem;
}
body.theme-modern .post-medium .post-meta > span:last-child {
	margin-left: auto;              /* knop naar rechts op dezelfde regel */
	margin-top: 0 !important;       /* mt-3-gap op mobiel weg */
	float: none !important;         /* float-md-right niet nodig binnen flex */
	display: inline-block !important; /* overschrijft d-block op mobiel */
}
body.theme-modern .post-medium .post-meta .btn {
	padding-left: 1.1rem;           /* wat meer horizontale ademruimte in de knop */
	padding-right: 1.1rem;
}
body.theme-modern .image,
body.theme-modern .product.image {
	border-radius: 10px;
}
body.theme-modern .site_title {
	text-transform: none;
	font-weight: 800;
}
body.theme-modern .site_meta {
	font-size: 13px;
	color: #7a8494;
}

/* Ranking-badge (#1, #2, ...) als pil in de hoofdkleur */
body.theme-modern .badge.wd-badge {
	background-color: var(--main-color) !important;
	color: #fff;
	border-radius: 999px;
	padding: 0.4em 0.75em;
	font-weight: 700;
}

/* ---------- Knoppen ---------- */
body.theme-modern .btn {
	border-radius: 999px;
	font-weight: 700;
	letter-spacing: 0.01em;
	transition: filter 0.15s ease, box-shadow 0.15s ease;
}
body.theme-modern .btn-success,
body.theme-modern .btn-primary {
	border: 0;
	box-shadow: 0 3px 10px rgba(29, 37, 48, 0.16);
	padding-top: 0.6rem;
	padding-bottom: 0.6rem;
}
body.theme-modern .btn-success:hover,
body.theme-modern .btn-primary:hover {
	box-shadow: 0 5px 16px rgba(29, 37, 48, 0.22);
}
/* Contrast-fix (mail Rutger 20 jul 2026): gevulde knoppen zijn vaak <a>-links,
 * dus de regel `a { color: var(--main-color) }` hierboven kleurde hun tekst
 * gelijk aan hun eigen achtergrond (bv. .btn-primary heeft ook main-color als
 * bg) => onleesbaar tot je erover hoverde. Gevulde varianten krijgen daarom
 * expliciet witte tekst — kleur-onafhankelijk, net als classic/Bootstrap.
 * Outline-knoppen laten we bewust met rust (die willen juist gekleurde tekst).
 * Hogere specificiteit (0,2,1) dan de a-regel (0,1,2), dus dit wint. */
body.theme-modern .btn-primary,
body.theme-modern .btn-secondary,
body.theme-modern .btn-success,
body.theme-modern .btn-danger,
body.theme-modern .btn-info,
body.theme-modern .btn-dark {
	color: #fff;
}

/* ---------- Formulieren ---------- */
body.theme-modern .form-control {
	border-radius: 10px;
	border-color: #dde3ea;
}
body.theme-modern .form-control:focus {
	border-color: var(--main-color);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--main-color), transparent 78%);
}
body.theme-modern .input-group-append .btn {
	border-radius: 0 999px 999px 0;
}

/* ---------- Paginering ---------- */
body.theme-modern .pagination > li > a,
body.theme-modern .pagination > li > span,
body.theme-modern .pagination .page-link {
	border-radius: 8px;
	margin: 0 2px;
	border-color: #e4e9ef;
}

/* ---------- Footer ---------- */
body.theme-modern footer {
	background-color: #1d2530;
	margin-top: 56px;
}
body.theme-modern .footer_ul_amrc li a,
body.theme-modern footer p {
	color: #aeb8c4;
}

/* ---------- Diversen ---------- */
body.theme-modern .pricetag { border-radius: 8px; }
body.theme-modern .suggestions { border-radius: 10px; overflow: hidden; }
body.theme-modern #myBtn { border-radius: 999px; }

/* =====================================================================
 * Artikel-layout & mobiel (mail Rutger 16 jul 2026) — alleen theme modern.
 * Bijbehorende markup: templates/themes/modern/modules/{article_content,
 * article_toc}.php + de sidebar-zoek in sidebar.php (rt_theme()-guard).
 * ===================================================================== */

/* --- Titel direct onder de breadcrumbs (overtollige marges weg) --- */
body.theme-modern .header_h1 #breadcrumbs { margin-bottom: 0.4rem; }
body.theme-modern .header_h1 h1 { margin-top: 0.1rem; margin-bottom: 0; }

/* --- Artikel-kop herindeling (mail Rutger 20 jul 2026), alleen theme modern ---
 * Vroeger: grote hero-<h1> in de kop + identieke <h2> boven de afbeelding
 * (dubbele titel). Nu: de titel is de laatste, kleine breadcrumb-crumb en de
 * kop krimpt tot een slanke balk; de echte <h1> is de titel boven de afbeelding
 * (article_title-override). header2.php zet de class + injecteert de crumb, en
 * laat de hero-<h1> op artikelpagina's weg. */
body.theme-modern .header_h1.mdn-crumbs-only { padding: 12px 0; }
body.theme-modern .header_h1.mdn-crumbs-only #breadcrumbs { margin-bottom: 0; }
/* de titel-crumb erft de witte breadcrumb-kleur + chevron-separator van #breadcrumbs */
body.theme-modern #breadcrumbs .mdn-crumb-current {
	color: #fff;
	font-weight: 600;
}
/* Titel boven de afbeelding is nu de <h1>: prominente paginakop-grootte.
 * Extra ademruimte tussen de <h1> en de afbeelding/inhoud eronder (mail Rutger
 * 20 jul 2026) — 0.75rem was wat krap; 1.5rem laat de kop rustiger ademen. */
body.theme-modern h1#article_title {
	font-size: 2rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.25;
	color: #1d2530;
	margin-bottom: 1.5rem;
}
@media (max-width: 767.98px) {
	body.theme-modern h1#article_title { font-size: 1.6rem; }
}

/* --- Breadcrumbs altijd op één regel, horizontaal scrollbaar (mail Rutger 20 jul
 *     2026) --- Voorheen alleen < 768px; nu op élke schermbreedte: de crumbs
 *     mogen nooit meer naar een tweede regel afbreken. Past de rij niet, dan
 *     verschijnt horizontaal scrollen (touch/trackpad); de scrollbar zelf blijft
 *     verborgen zodat het strak oogt. Alleen theme modern. */
body.theme-modern #breadcrumbs {
	white-space: nowrap;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	-ms-overflow-style: none;   /* IE/Edge legacy */
	scrollbar-width: none;      /* Firefox */
	/* #breadcrumbs is de <ul class="breadcrumb"> zelf; Bootstrap zet daarop
	 * display:flex + flex-wrap:wrap. white-space:nowrap stopt flex-items NIET van
	 * afbreken naar een tweede regel — daarom brak de rij op mobiel alsnog af
	 * (mail Rutger 20 jul 2026). flex-wrap:nowrap dwingt één regel af; het
	 * overflow-x:auto hierboven laat 'm dan horizontaal scrollen i.p.v. wrappen. */
	flex-wrap: nowrap;
}
/* Crumbs mogen niet krimpen (anders perst flex ze samen i.p.v. te scrollen). */
body.theme-modern #breadcrumbs > li { flex: 0 0 auto; }
body.theme-modern #breadcrumbs::-webkit-scrollbar { display: none; } /* WebKit */

/* design==2 rendert de breadcrumbs als <nav id="breadcrumbs"><ol class="breadcrumb">
 * (zie bc() in legacy_helpers.php). Dan is #breadcrumbs de <nav> (scroll-container)
 * en is de ECHTE flex-lijst de .breadcrumb (<ol>) daarbinnen — de nowrap/flex-regels
 * hierboven op #breadcrumbs raken die <ol> niet, waardoor de crumbs op design==2
 * alsnog naar een tweede regel afbraken (mail Rutger 20 jul 2026). Daarom de
 * flex-lijst hier expliciet óók op .breadcrumb. design==1 (<ul id="breadcrumbs"
 * class="breadcrumb">) valt onder beide selectoren; dat geeft hetzelfde resultaat,
 * geen conflict. Alleen theme modern. */
body.theme-modern .breadcrumb {
	flex-wrap: nowrap;
	white-space: nowrap;
}
body.theme-modern .breadcrumb > li { flex: 0 0 auto; }

/* --- Artikel-body in een witte kaart --- */
body.theme-modern .mdn-article-card {
	background: #fff;
	border-radius: 14px;
	padding: 1.75rem 1.9rem;
	box-shadow: 0 2px 14px rgba(29, 37, 48, 0.07);
	margin-bottom: 1.5rem;
}
@media (max-width: 767.98px) {
	body.theme-modern .mdn-article-card { padding: 1.15rem; }
}

/* --- Subkoppen (h2) kleiner dan de titel + meer ruimte erboven --- */
body.theme-modern .mdn-article-card h2 {
	font-size: 1.75rem;
	margin-top: 2rem;
	line-height: 1.3;
}
@media (max-width: 767.98px) {
	body.theme-modern .mdn-article-card h2 {
		font-size: 1.35rem;
		margin-top: 1.5rem;
	}
}

/* --- Auteursblok als eigen kaart met lichte achtergrond ---
 * Gelijke marge boven én onder (mail Rutger 20 jul 2026) zodat het blok
 * comfortabel tussen het artikel en de reacties zweeft i.p.v. tegen de
 * reacties aan te plakken. */
body.theme-modern .post-author {
	background: #f8fafc;
	padding: 1.5rem 1.75rem;
	margin-top: 1.5rem;
	margin-bottom: 1.5rem;
}
body.theme-modern .post-author .heading-primary { margin-top: 0; }

/* --- Geconsolideerde sidebar-zoekbalk --- */
body.theme-modern .mdn-sidebar-search .input-group-append .btn {
	border-radius: 0 999px 999px 0;
}

/* --- Inhoudsopgave: desktop sticky rechter-rail, volgt de scroll --- */
body.theme-modern .mdn-toc-toggle { display: none; }
body.theme-modern .mdn-toc {
	display: block;
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 2px 14px rgba(29, 37, 48, 0.07);
	padding: 1rem 1.15rem;
	margin: 0 0 1.5rem;
}
body.theme-modern .mdn-toc-tab {
	display: block;
	margin: 0 0 0.6rem;
	font-weight: 700;
	color: #1d2530;
	cursor: default;
}
body.theme-modern .mdn-toc-caret { display: none; } /* pijl is enkel voor de mobiele tab */
body.theme-modern .mdn-toc .list-group-item { padding: 0.4rem 0.5rem; }

/* In de sidebar-aside (blog): sticky rail die de scroll volgt op desktop. In de
 * module-flow (bv. content-sites zonder aside) blijft het een gewone kaart. */
@media (min-width: 768px) {
	body.theme-modern .sidebar .mdn-toc {
		position: sticky;
		top: 88px;
		max-height: calc(100vh - 110px);
		overflow-y: auto;
	}
	/* Ademruimte tussen de CTA-pill en de inhoudsopgave in de sidebar-aside
	 * (mail Rutger 20 jul 2026) — alleen desktop, alleen theme modern. */
	body.theme-modern aside#sidebar a.btn.btn-primary {
		margin-bottom: 1.5rem;
	}
}

/* --- Inhoudsopgave op mobiel: sticky tab onderaan, klapt omhoog open ---
 * Herzien (mail Rutger 21 jul 2026): de tab-knop is de bovenste laag, pal
 * onderaan de viewport; het lijst-paneel groeit daar OMHOOG achter vandaan
 * (flexbox met omgekeerde richting). Er zit interne padding onder de lijst
 * zodat de laatste links altijd boven de tab uit scrollen. Sluiten kan ook
 * door buiten de TOC te tikken (click-away JS in footer.php). */
@media (max-width: 767.98px) {
	body.theme-modern .mdn-toc {
		position: fixed;
		left: 50%;
		transform: translateX(-50%);
		bottom: 0;
		z-index: 1035;
		width: auto;
		max-width: calc(100% - 16px);
		margin: 0;
		padding: 0;
		background: transparent;
		box-shadow: none;
		border-radius: 0;
		display: flex;
		flex-direction: column-reverse; /* DOM: label, body => omgekeerd: body boven, tab onder */
		align-items: center;
		overflow: visible;
	}
	/* De tab is de bovenste laag, pal onderaan; het paneel schuift erachter omhoog. */
	body.theme-modern .mdn-toc-tab {
		position: relative;
		z-index: 2;
		display: inline-flex;
		align-items: center;
		gap: 0.5rem;
		margin: 0;
		padding: 0.5rem 1.35rem;
		background-color: var(--main-color);
		color: #fff;
		font-size: 14px;
		border-radius: 999px 999px 0 0;
		box-shadow: 0 -4px 16px rgba(29, 37, 48, 0.22);
		cursor: pointer;
	}
	body.theme-modern .mdn-toc-caret {
		display: inline-block;
		transition: transform 0.2s ease;
	}
	body.theme-modern .mdn-toc-body {
		position: relative;
		z-index: 1;
		width: min(92vw, 420px);
		background: #fff;
		border-radius: 14px 14px 0 0;
		box-shadow: 0 -6px 24px rgba(29, 37, 48, 0.2);
		margin-bottom: -0.75rem; /* laatste stukje tucks achter de tab (laag-effect) */
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.28s ease;
	}
	body.theme-modern .mdn-toc-toggle:checked ~ .mdn-toc .mdn-toc-body {
		max-height: 60vh;
		overflow-y: auto;
		/* Ruimte onder de laatste link zodat 'ie volledig boven de tab uit scrollt. */
		padding-bottom: 2.75rem;
	}
	body.theme-modern .mdn-toc-toggle:checked ~ .mdn-toc .mdn-toc-caret {
		transform: rotate(180deg);
	}
}

/* --- Offer-pagina: eerste review-CTA op mobiel sticky zodra je eronder scrolt
 *     (mail Rutger 21 jul 2026). Zolang de knop in beeld staat blijft 'ie gewoon
 *     inline onder de rating; zodra je 'm voorbij scrolt, klapt 'ie vast als
 *     brede balk pal boven de index-toggle — zelfde gevoel als de sticky CTA op
 *     de artikelpagina's. JS (footer.php) zet .mdn-offer-cta-stuck; op offer-
 *     pagina's onderdrukt diezelfde JS de generieke header-CTA-balk zodat er
 *     nooit twee sticky balken over elkaar vallen. Alleen theme modern, mobiel. */
@media (max-width: 767.98px) {
	/* Ontkoppeld van de ouder-selector (mail Rutger 21 jul 2026 – vervolg): de knop
	 * zit genest in .summary_div, dus een direct-child (>) regel greep 'm niet.
	 * De .mdn-offer-cta-stuck-class wordt enkel door onze JS op de juiste knop
	 * gezet, dus sturen we puur op die class (modern + mobiel). */
	body.theme-modern a.btn-success.btn-block.mdn-offer-cta-stuck {
		position: fixed;
		left: 8px;
		right: 8px;
		bottom: 52px;              /* pal boven de index-toggle (bottom:0, ~44px hoog) */
		z-index: 1032;
		display: block;
		width: auto;
		margin: 0 !important;
		padding: 0.55rem 1rem;
		border-radius: 999px;
		box-shadow: 0 6px 20px rgba(29, 37, 48, 0.3);
	}
	/* Op een offer-pagina is de offer-eigen CTA leidend: verberg de generieke
	 * sticky header-CTA daar, anders overlappen ze op dezelfde bodem-positie. */
	body.theme-modern.mdn-has-offer-cta .mdn-header-cta.mdn-cta-stuck {
		display: none !important;
	}
}

/* --- Offer-pagina index (inhoudsopgave) op mobiel: zelfde bodem-toggle als de
 *     blog-TOC i.p.v. een kaart onderaan de pagina (mail Rutger 21 jul 2026).
 * Desktop: .mdn-otoc-tab is verborgen, dus de aside toont gewoon de kaart met de
 * lijst zoals voorheen (ongewijzigd). Alleen theme modern. --- */
body.theme-modern .mdn-otoc-toggle { display: none; }
body.theme-modern .mdn-otoc-tab { display: none; } /* toggle-chrome enkel op mobiel */
@media (max-width: 767.98px) {
	body.theme-modern .mdn-otoc {
		position: fixed;
		left: 50%;
		transform: translateX(-50%);
		bottom: 0;
		z-index: 1035;
		width: auto;
		max-width: calc(100% - 16px);
		margin: 0 !important;
		padding: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
		border-radius: 0 !important;
		display: flex;
		flex-direction: column-reverse;
		align-items: center;
		overflow: visible;
	}
	body.theme-modern .mdn-otoc-tab {
		position: relative;
		z-index: 2;
		display: inline-flex;
		align-items: center;
		gap: 0.5rem;
		margin: 0;
		padding: 0.5rem 1.35rem;
		background-color: var(--main-color);
		color: #fff;
		font-size: 14px;
		border-radius: 999px 999px 0 0;
		box-shadow: 0 -4px 16px rgba(29, 37, 48, 0.22);
		cursor: pointer;
	}
	body.theme-modern .mdn-otoc-caret {
		display: inline-block;
		transition: transform 0.2s ease;
	}
	body.theme-modern .mdn-otoc-body {
		position: relative;
		z-index: 1;
		width: min(92vw, 420px);
		background: #fff;
		border-radius: 14px 14px 0 0;
		box-shadow: 0 -6px 24px rgba(29, 37, 48, 0.2);
		margin-bottom: -0.75rem;
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.28s ease;
		padding: 0 0.9rem;
	}
	/* De titel staat op mobiel al in de tab-knop; verberg de kaart-heading in het paneel. */
	body.theme-modern .mdn-otoc-body .site_heading { display: none; }
	body.theme-modern .mdn-otoc-toggle:checked ~ .mdn-otoc .mdn-otoc-body {
		max-height: 60vh;
		overflow-y: auto;
		padding-bottom: 2.75rem;
	}
	body.theme-modern .mdn-otoc-toggle:checked ~ .mdn-otoc .mdn-otoc-caret {
		transform: rotate(180deg);
	}
}

/* --- Header-CTA: op mobiel als brede, slanke balk onderaan vastzetten zodra de
 *     bezoeker voorbij de header scrollt (mail Rutger 20 jul 2026).
 * Desktop: de knop staat gewoon in de header (geen regel hier => ongewijzigd).
 * De .mdn-cta-stuck-class wordt door JS toegevoegd/weggehaald (zie footer.php);
 * bovenaan de pagina staat 'ie dus weer in de header. Alleen theme modern. --- */
@media (max-width: 767.98px) {
	body.theme-modern .mdn-header-cta.mdn-cta-stuck {
		position: fixed;
		left: 8px;
		right: 8px;
		bottom: 52px;              /* net boven de zwevende index/navigatie */
		z-index: 1031;
		margin: 0;
	}
	body.theme-modern .mdn-header-cta.mdn-cta-stuck a.btn {
		display: block;
		width: 100%;               /* breder: volle balk-breedte */
		margin: 0 !important;
		padding-top: 0.45rem !important;   /* slanker dan de py-3 in de header */
		padding-bottom: 0.45rem !important;
		box-shadow: 0 6px 20px rgba(29, 37, 48, 0.3);
	}
}

/* =====================================================================
 * Mobiele side-drawer navigatie (mail Rutger 20 jul 2026) — alleen theme
 * modern. Vervangt het top-down dropdown-menu op mobiel door een moderne
 * side-drawer die van rechts inschuift.
 *
 * Werkt op de bestaande markup: de checkbox #main-menu-state (toggle), het
 * label .main-menu-btn (nu een floating action button) en de ul #main-menu
 * (nu de drawer zelf). De drawer wordt volledig CSS-gestuurd via
 * #main-menu-state:checked, zodat het menu ook zonder JS blijft werken
 * (graceful degradation: valt terug op de smartmenu block-toggle).
 *
 * footer.php (modern-guard) verrijkt dit op mobiel met JS: het verplaatst het
 * mobiele zoekformulier naar de top van de drawer, spuit een aantikbare,
 * blurred overlay in (<label for="main-menu-state">) en zet een scroll-lock
 * op de body. Alleen < 768px (waar smartmenu de hamburger toont). Alleen
 * theme modern; desktop (>= 768px) blijft ongewijzigd (float-right menu).
 * ===================================================================== */
@media (max-width: 767.98px) {
	/* --- 1. Hamburger -> ronde toggle-knop, verticaal gecentreerd in de nav-balk ---
	 * Ankeren binnen .main-nav (position:relative) i.p.v. position:fixed, zodat de
	 * knop met top:50% + translateY(-50%) altijd exact met het verticale midden
	 * van de nav-balk uitlijnt, ongeacht de hoogte van die balk (mail Rutger
	 * 20 jul 2026). #main-nav is op mobiel sticky (stick_in_parent, footer.php),
	 * dus de knop blijft gewoon in beeld bij het scrollen. */
	body.theme-modern .main-nav {
		position: relative;
	}
	body.theme-modern .main-menu-btn {
		position: absolute;
		top: 50%;
		right: 12px;
		transform: translateY(-50%);   /* verticaal midden = nav-midden, hoogte-onafhankelijk */
		margin: 0;
		text-indent: 0;                /* text-indent-hack niet meer nodig (zie .main-menu-btn-label) */
		z-index: 1046;                 /* boven de drawer (1045) => X blijft aantikbaar */
		width: 46px;
		height: 46px;
		background-color: var(--main-color);
		border-radius: 50%;
		box-shadow: 0 4px 14px rgba(29, 37, 48, 0.28);
	}
	/* Toggle-tekst via de standaard 'visually-hidden'-techniek i.p.v. de fragiele
	 * text-indent-hack: onzichtbaar én uit de flow, dus zonder invloed op de
	 * centrering van het icoon, maar wel leesbaar voor screenreaders. */
	body.theme-modern .main-menu-btn .main-menu-btn-label {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		border: 0;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
	}
	/* Icoon-bars wit + perfect gecentreerd in de 46px-knop. Alleen de middenbalk
	 * (.main-menu-btn-icon) centreren we via 50% + translate; de :before/:after
	 * houden left:0 t.o.v. die balk, zodat alle drie horizontaal uitgelijnd
	 * blijven — óók wanneer ze in de 'X'-stand roteren. */
	body.theme-modern .main-menu-btn .main-menu-btn-icon,
	body.theme-modern .main-menu-btn .main-menu-btn-icon:before,
	body.theme-modern .main-menu-btn .main-menu-btn-icon:after {
		background: #fff;
	}
	body.theme-modern .main-menu-btn .main-menu-btn-icon {
		left: 50%;
		transform: translate(-50%, -50%);   /* horizontaal + verticaal exact midden */
	}
	body.theme-modern .main-menu-btn .main-menu-btn-icon:before,
	body.theme-modern .main-menu-btn .main-menu-btn-icon:after {
		left: 0;                            /* t.o.v. de gecentreerde middenbalk */
	}

	/* --- 2. Blurred overlay over de pagina-inhoud (JS-ingespoten label) --- */
	body.theme-modern .mdn-drawer-overlay {
		position: fixed;
		inset: 0;
		margin: 0;
		z-index: 1044;                 /* boven de pagina, onder de drawer */
		background: rgba(17, 24, 32, 0.45);
		-webkit-backdrop-filter: blur(3px);
		backdrop-filter: blur(3px);
		opacity: 0;
		visibility: hidden;
		cursor: pointer;
		transition: opacity 0.28s ease, visibility 0.28s ease;
	}
	body.theme-modern #main-menu-state:checked ~ .mdn-drawer-overlay {
		opacity: 1;
		visibility: visible;
	}

	/* --- 3. #main-menu -> fixed side-drawer, schuift in van rechts --- */
	body.theme-modern #main-menu {
		display: block !important;     /* override smartmenu :not(:checked){display:none} zodat de slide-transitie werkt */
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		width: 300px;
		max-width: 85vw;
		margin: 0;
		padding: 4.75rem 0 1.5rem;     /* ruimte bovenin, naast de FAB */
		background-color: #1d2530;     /* donker drawer-thema */
		box-shadow: -6px 0 24px rgba(0, 0, 0, 0.3);
		z-index: 1045;
		transform: translateX(100%);   /* off-canvas rechts */
		transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}
	body.theme-modern #main-menu-state:checked ~ #main-menu {
		transform: translateX(0);      /* schuift in beeld */
	}

	/* --- 4. Menu-items verticaal gestapeld, strakke padding, wit --- */
	body.theme-modern #main-menu > li {
		float: none;
		width: 100%;
		border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	}
	body.theme-modern #main-menu > li > a,
	body.theme-modern #main-menu ul a {
		color: #e7ecf2 !important;
		padding: 0.85rem 1.5rem;
		border-radius: 0 !important;   /* de pill-radius van desktop hoort niet in de drawer */
		font-size: 15px;
		font-weight: 600;
	}
	body.theme-modern #main-menu a:hover,
	body.theme-modern #main-menu a:focus,
	body.theme-modern #main-menu a:active,
	body.theme-modern #main-menu a.highlighted {
		background-color: rgba(255, 255, 255, 0.06) !important;
		color: #fff !important;
	}
	/* Submenu's iets donkerder + ingesprongen */
	body.theme-modern #main-menu ul {
		background-color: rgba(0, 0, 0, 0.18);
	}
	body.theme-modern #main-menu ul a {
		padding-left: 2.5rem;
		font-weight: 500;
	}

	/* --- 5. Zoekformulier bovenin de drawer (JS verplaatst het hierheen) ---
	 * FOUC-fix (mail Rutger 20 jul 2026): het mobiele zoekformulier staat in de
	 * header-markup (header2.php) maar hoort in deze side-drawer — footer.php-JS
	 * verplaatst het daarheen. Tot dat moment flitste het kort onder de header
	 * ("blink" bij refresh op mobiel). We verbergen het formulier daarom in zijn
	 * oorspronkelijke positie en tonen het pas zodra het in de drawer
	 * (.mdn-drawer-search) staat. Alleen theme modern, alleen mobiel. */
	body.theme-modern #searchForm_mobile { display: none; }
	body.theme-modern .mdn-drawer-search #searchForm_mobile { display: block; }

	body.theme-modern #main-menu .mdn-drawer-search {
		display: block;                /* was .d-md-none; in de drawer altijd tonen op mobiel */
		float: none;
		width: 100%;
		padding: 0 1.5rem 1.25rem;
		border-bottom: 1px solid rgba(255, 255, 255, 0.08);
		margin-bottom: 0.5rem;
	}
	body.theme-modern #main-menu .mdn-drawer-search .input-group-append .btn {
		border-radius: 0 999px 999px 0;
	}

	/* --- 6. Scroll-lock op de body zolang de drawer open is (JS-class) --- */
	body.theme-modern.mdn-drawer-open {
		overflow: hidden;
	}
}

/* =====================================================================
 * Offer-sidebar: losse kaarten + 'partial sticky' (mail Rutger 20 jul 2026)
 * — alleen theme modern. Markup: handlers/offer.php — elke logische sectie
 * (categorie, externe URL, banner, inhoudsopgave, CTA, Top5) zit in een eigen
 * .mdn-side-card; de TOC-kaart en alles erna zit in .mdn-side-sticky. De JS
 * whole-aside sticky is voor modern-offer uitgezet (footer.php); het plakken
 * gebeurt hier via CSS position:sticky. Zelfde kaart-taal (radius/shadow) als
 * de rest van het modern-thema.
 * ===================================================================== */
body.theme-modern .mdn-side-card {
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 2px 14px rgba(29, 37, 48, 0.07);
	padding: 1.15rem 1.25rem;
	margin-bottom: 1.25rem;
}
/* Kop binnen de kaart sluit aan op de rest van modern: geen uppercase, donker. */
body.theme-modern .mdn-side-card .site_heading {
	text-transform: none;
	font-weight: 700;
	color: #1d2530;
}
/* Eerste kop in een kaart zonder top-marge — overrulet Bootstrap mt-3/mt-5
 * (die !important zijn), zodat de kop netjes tegen de kaart-padding aansluit. */
body.theme-modern .mdn-side-card .site_heading:first-child {
	margin-top: 0 !important;
}
body.theme-modern .mdn-side-card ol,
body.theme-modern .mdn-side-card ul {
	margin-bottom: 0;
	padding-left: 1.1rem;
}
/* CTA-kaart: knop vult de kaart zonder de extra <p>-marge. */
body.theme-modern .mdn-side-cta p { margin: 0 !important; }

/* Partial sticky: de informatie-kaarten (categorie, URL, banner) scrollen
 * normaal mee; vanaf de TOC-kaart plakt het blok bovenaan de viewport zodra het
 * daar aankomt. Alleen desktop (col-lg-3 breekt op 992px); op mobiel stapelen de
 * kaarten gewoon. height:100% op de aside laat het sticky-blok de volledige
 * (flex-gestretchte) kolomhoogte meelopen, zodat het blijft plakken zolang de
 * hoofdcontent langer is — binnen de container, dus zonder de layout te breken. */
@media (min-width: 992px) {
	body.theme-modern .mdn-offer-sidebar {
		height: 100%;
	}
	body.theme-modern .mdn-side-sticky {
		position: sticky;
		/* Wat lucht onder de gestickyde #main-nav (mail Rutger 21 jul 2026): op 88px
		 * plakte het blok pal tegen — feitelijk half achter — de bovenbalk. +16px
		 * geeft ademruimte onder de header zodat de index-kaart er netjes onder blijft. */
		top: 104px;
	}
}
