/**
 * Groomzo v2 — legal-/sitemap-documentpagina's (presentatie-only).
 * Warm paper-vlak, rustige centrale leeskolom, Fraunces-koppen, Instrument
 * Sans-body, pine links/accenten, amber uitsluitend als signatuurlijntje en
 * focus. Scoped op .gzv-legal; content komt ongefilterd uit de DB.
 */

/* Vuurregel (service-fase): body-contextklasse 'gzv-legal' is hook-only —
   element-selectors daarom op main.gzv-legal, anders erft de body de
   sectie-padding mee (dikke balk boven header/onder footer). */
main.gzv-legal {
	background: var(--gz-paper);
	color: var(--gz-body);
	font-family: var(--gz-sans);
	font-size: 1.03rem;
	line-height: 1.75;
	padding: clamp(56px, 9vw, 108px) 0 clamp(72px, 10vw, 128px);
	min-height: 52vh;
	/* Astra's .ast-container is flex — zonder dit krimpt <main> naar content-breedte links (zelfde val als .gz-pdp). */
	flex: 1 1 auto;
	width: 100%;
}

.gzv-legal__inner {
	max-width: 46rem;
	margin: 0 auto;
	padding: 0 var(--gz-gutter);
}

/* Koppen — één H1 by construction; amber signatuurlijntje (enige amber).
   !important: Elementor Kit-CSS (post-*.css) overrideet h1–h4 sitewide op
   Fredoka New met gelijkwaardige specificity (repo-bekende kit-val). */
.gzv-legal__title {
	font-family: var(--gz-disp) !important;
	font-weight: 600;
	font-size: clamp(1.9rem, 4.2vw, 2.6rem) !important;
	line-height: 1.12;
	letter-spacing: -0.01em;
	color: var(--gz-ink) !important;
	margin: 0 0 6px;
}

/* Content-h1 = Elementor-duplicaat van de paginatitel; zelfde tekst als onze
   zichtbare H1 — puur presentatie-deduplicatie. De titel-only Elementor-
   container eromheen reserveert zélf ~290px hoogte+marge (75/80px marges),
   dus volledig verbergen (contains h1, géén body-inhoud). */
.gzv-legal__content h1 {
	display: none !important;
}

.gzv-legal__content .elementor-element:has(h1):not(:has(p)):not(:has(ul)):not(:has(ol)):not(:has(table)) {
	display: none !important;
}

/* Elementor-slot-marge (95px) onder het laatste content-blok (section of
   e-con) — de main-padding verzorgt de pagina-afsluiting. */
.gzv-legal__content .elementor > *:last-child {
	margin-bottom: 0 !important;
}

.gzv-legal__header {
	margin-bottom: 28px;
	border-bottom: 1px solid var(--gz-line);
	padding-bottom: 18px;
	position: relative;
}

.gzv-legal__header::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 56px;
	height: 3px;
	background: var(--gz-amber);
	border-radius: 2px;
}

/* Content — bestaande juridische markup alleen typografisch gestyled. */
.gzv-legal__content > p:first-child {
	color: var(--gz-muted);
	font-size: 0.95rem;
}

.gzv-legal__content h2,
.gzv-legal__content h3,
.gzv-legal__content h4 {
	font-family: var(--gz-disp) !important;
	font-weight: 600;
	color: var(--gz-pine) !important;
	line-height: 1.25;
	letter-spacing: -0.005em;
	margin: 2.2em 0 0.6em;
}

.gzv-legal__content h2 { font-size: 1.45rem !important; }
.gzv-legal__content h3 { font-size: 1.22rem !important; }
.gzv-legal__content h4 { font-size: 1.08rem !important; }

.gzv-legal__content h2:first-child,
.gzv-legal__content h3:first-child {
	margin-top: 0;
}

/* Voorwaarden-pagina's gebruiken hele p's met alleen <strong> als sectiekop. */
.gzv-legal__content p > strong:only-child {
	font-family: var(--gz-disp) !important;
	font-weight: 600;
	font-size: 1.16rem;
	letter-spacing: -0.005em;
	color: var(--gz-pine) !important;
}

.gzv-legal__content p {
	margin: 0 0 1.05em;
}

.gzv-legal__content a {
	color: var(--gz-pine);
	text-decoration: underline;
	text-decoration-color: var(--gz-line-hover);
	text-decoration-thickness: 1.5px;
	text-underline-offset: 3px;
	transition: text-decoration-color .15s ease, color .15s ease;
}

.gzv-legal__content a:hover {
	color: var(--gz-moss);
	text-decoration-color: var(--gz-moss);
}

.gzv-legal__content a:focus-visible {
	outline: 2px solid var(--gz-amber);
	outline-offset: 3px;
	border-radius: 2px;
}

.gzv-legal__content ul,
.gzv-legal__content ol {
	margin: 0 0 1.2em;
	padding-left: 1.5em;
}

.gzv-legal__content li {
	margin: 0 0 0.45em;
}

.gzv-legal__content li > ul,
.gzv-legal__content li > ol {
	margin: 0.45em 0 0.35em;
}

.gzv-legal__content li::marker {
	color: var(--gz-moss);
	font-variant-numeric: tabular-nums;
}

.gzv-legal__content strong {
	color: var(--gz-ink);
	font-weight: 600;
}

.gzv-legal__content table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 1.4em;
	font-size: 0.97rem;
}

.gzv-legal__content th,
.gzv-legal__content td {
	border: 1px solid var(--gz-line);
	padding: 9px 12px;
	text-align: left;
	vertical-align: top;
}

.gzv-legal__content th {
	background: var(--gz-moss-soft);
	color: var(--gz-pine);
	font-weight: 600;
}

.gzv-legal__content hr {
	border: 0;
	border-top: 1px solid var(--gz-line);
	margin: 2.4em 0;
}

/* Dynamische V2-sitemap (template-parts/legal/sitemap-hub.php): secties
   met koppen (erven .gzv-legal__content h2 = Fraunces/pine), rustige
   linkregels met hairline, op desktop twee kolommen. Selectors prefixed
   met .gzv-legal__content (0,2,0) zodat ze winnen van de basis-ul/li-
   regels hierboven (0,1,1) — anders houdt de lijst stiekem 1,5em
   list-indent en staan de rijen naast i.p.v. onder de h2-uitlijning. */
.gzv-smap__sec {
	margin: 0 0 34px;
}

.gzv-smap__sec:last-child {
	margin-bottom: 0;
}

.gzv-legal__content .gzv-smap__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 0 40px;
}

.gzv-legal__content .gzv-smap__list li {
	margin: 0;
	border-bottom: 1px solid var(--gz-line-soft);
	break-inside: avoid;
}

.gzv-legal__content .gzv-smap__list a {
	display: block;
	padding: 10px 0;
	color: var(--gz-body);
	text-decoration: none;
	transition: color .15s ease;
}

.gzv-legal__content .gzv-smap__list a:hover {
	color: var(--gz-pine);
	text-decoration: underline;
	text-underline-offset: 4px;
}

/* FAQ-categorie-hubs: ingesprongen sublijst onder Klantenservice. */
.gzv-legal__content .gzv-smap__list--sub {
	margin: 4px 0 10px 18px;
}

.gzv-legal__content .gzv-smap__list--sub a {
	padding: 8px 0;
	font-size: 0.95rem;
	color: var(--gz-muted);
}

@media (min-width: 780px) {
	.gzv-legal__content .gzv-smap__list {
		grid-template-columns: 1fr 1fr;
	}

	.gzv-legal__content .gzv-smap__list--sub {
		grid-template-columns: 1fr;
	}
}

/* Mobiele leescomfort. */
@media (max-width: 600px) {
	main.gzv-legal {
		font-size: 1rem;
		padding-top: 44px;
		padding-bottom: 64px;
	}

	.gzv-legal__inner {
		padding: 0 20px;
	}
}
