/*
Theme Name: Oog voor fitness
Theme URI: https://oogvoorfitness.nl/
Description: Child theme voor GeneratePress – Oog voor fitness.
Author: Oog voor fitness
Template: generatepress
Version: 1.0.0
Text Domain: oogvoorfitness
*/

/* ---------- Fonts (self-hosted Inter, variable) ---------- */
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("assets/fonts/inter-latin-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("assets/fonts/inter-latin-ext-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ---------- Tokens (colors come from GP Global Colors) ---------- */
:root {
	--ovf-max: 1240px;
	--ovf-smal: 760px;
	--ovf-gutter: 20px;
	--ovf-radius: 6px;
	--ovf-lijn: var(--base);
	--ovf-schaduw: 0 1px 2px color-mix(in srgb, var(--contrast) 8%, transparent), 0 8px 24px color-mix(in srgb, var(--contrast) 8%, transparent);
}

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	font-feature-settings: "cv11", "ss01";
}
h1, h2, h3, h4 {
	letter-spacing: -0.02em;
	text-wrap: balance;
}
a { text-underline-offset: 3px; }
::selection { background: var(--accent); color: var(--contrast); }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }

.ovf-wrap {
	max-width: var(--ovf-max);
	margin-inline: auto;
	padding-inline: var(--ovf-gutter);
}
.ovf-wrap--smal { max-width: calc(var(--ovf-smal) + 2 * var(--ovf-gutter)); }
.ovf-wrap--breed { max-width: calc(1200px + 2 * var(--ovf-gutter)); }

.ovf-icon { flex: none; vertical-align: middle; }

/* ---------- Top bar ---------- */
.ovf-topbar {
	background: var(--contrast);
	color: var(--base);
	font-size: 13px;
	line-height: 1;
}
.ovf-topbar-in {
	display: flex;
	justify-content: space-between;
	align-items: center;
	min-height: 36px;
	gap: 16px;
}
.ovf-topbar-tag { font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; font-size: 11px; color: var(--accent); }
.ovf-topbar-nav { display: flex; gap: 20px; }
.ovf-topbar-nav a { color: var(--base); text-decoration: none; }
.ovf-topbar-nav a:hover { color: var(--accent); }

/* ---------- Header ---------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	border-bottom: 3px solid var(--contrast);
	transition: box-shadow .2s ease;
}
.admin-bar .site-header { top: 32px; }
.site-header.is-gescrold { box-shadow: 0 6px 18px color-mix(in srgb, var(--contrast) 12%, transparent); }
.ovf-logo a { display: block; line-height: 0; }
.ovf-logo-svg { display: block; height: 52px; width: auto; }
.main-navigation .main-nav ul li a {
	text-transform: uppercase;
	letter-spacing: 0.04em;
	position: relative;
}
.main-navigation .main-nav > ul > li > a::after {
	content: "";
	position: absolute;
	left: 14px;
	right: 14px;
	bottom: 22px;
	height: 3px;
	background: var(--accent);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .2s ease;
}
.main-navigation .main-nav > ul > li:hover > a::after,
.main-navigation .main-nav > ul > li.current-menu-item > a::after,
.main-navigation .main-nav > ul > li.current-category-ancestor > a::after,
.main-navigation .main-nav > ul > li.current-post-ancestor > a::after { transform: scaleX(1); }
.navigation-search input[type="search"] { font-size: 18px; }

@media (max-width: 1024px) {
	.ovf-logo-svg { height: 40px; }
	.main-navigation .main-nav > ul > li > a::after { display: none; }
	.main-navigation.toggled .main-nav ul li a { border-top: 1px solid var(--ovf-lijn); }
	.admin-bar .site-header { top: 0; position: relative; }
}
@media (max-width: 600px) {
	.ovf-topbar-tag { display: none; }
	.ovf-topbar-in { justify-content: flex-end; }
	.ovf-logo-svg { height: 34px; }
}

/* ---------- Generic blocks ---------- */
.ovf-kicker,
.ovf-label {
	display: inline-block;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--accent-2);
	text-decoration: none;
	margin: 0 0 8px;
}
a.ovf-label:hover { color: var(--contrast); }
.ovf-meta { display: block; font-size: 13px; color: var(--contrast-3); margin-top: 8px; }
.ovf-blokkop,
.ovf-sectiekop h2 {
	font-size: 22px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 10px;
}
.ovf-sectiekop {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	border-top: 4px solid var(--contrast);
	padding-top: 14px;
	margin-bottom: 24px;
}
.ovf-sectiekop h2 a { color: inherit; text-decoration: none; }
.ovf-sectiekop h2 a:hover { color: var(--accent-2); }
.ovf-sectiekop .ovf-icon { color: var(--accent-2); }
.ovf-meer {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	font-weight: 700;
	color: var(--contrast);
	text-decoration: none;
	white-space: nowrap;
}
.ovf-meer:hover { color: var(--accent-2); }
.ovf-meer:hover .ovf-icon { transform: translateX(3px); }
.ovf-meer .ovf-icon { transition: transform .15s ease; }

/* Buttons */
.ovf-knop,
.wp-block-button__link,
.gform_wrapper .gform_footer input[type="submit"],
.gform_wrapper .gform_button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--accent) !important;
	color: var(--contrast) !important;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 14px;
	padding: 15px 24px !important;
	border-radius: 0 !important;
	border: 0;
	text-decoration: none;
	transition: background .15s ease, transform .15s ease;
}
.ovf-knop:hover,
.wp-block-button__link:hover,
.gform_wrapper .gform_button:hover { background: var(--contrast) !important; color: var(--base-3) !important; }
.ovf-knop--rand { background: transparent !important; color: var(--base-3) !important; box-shadow: inset 0 0 0 2px var(--base-3); }
.ovf-knop--rand:hover { background: var(--base-3) !important; color: var(--contrast) !important; }

/* ---------- Cards ---------- */
.ovf-card { position: relative; }
.ovf-card-link { display: block; color: inherit; text-decoration: none; height: 100%; }
.ovf-card-media { overflow: hidden; background: var(--base-2); position: relative; }
.ovf-card-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}
.ovf-card-img--leeg { aspect-ratio: 3 / 2; background: linear-gradient(135deg, var(--base-2), var(--base)); }
.ovf-card-link:hover .ovf-card-img { transform: scale(1.04); }
.ovf-card-title {
	font-weight: 800;
	line-height: 1.2;
	margin: 0;
	color: var(--contrast);
	transition: color .15s ease;
}
.ovf-card-link:hover .ovf-card-title { color: var(--accent-2); }
.ovf-card-intro { color: var(--contrast-2); font-size: 15px; line-height: 1.55; margin: 8px 0 0; }

.ovf-card--kaart .ovf-card-media { aspect-ratio: 3 / 2; }
.ovf-card--kaart .ovf-card-body { padding-top: 14px; }
.ovf-card--kaart .ovf-card-title { font-size: 20px; }

.ovf-card--groot .ovf-card-link { display: grid; }
.ovf-card--groot .ovf-card-media { aspect-ratio: 16 / 10; }
.ovf-card--groot .ovf-card-media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 35%, color-mix(in srgb, var(--contrast) 88%, transparent));
}
.ovf-card--groot .ovf-card-body {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 28px 32px;
	color: var(--base-3);
}
.ovf-card--groot .ovf-label { background: var(--accent); color: var(--contrast); padding: 5px 8px; }
.ovf-card--groot .ovf-card-title { color: var(--base-3); font-size: clamp(26px, 3.2vw, 40px); line-height: 1.08; }
.ovf-card--groot .ovf-card-link:hover .ovf-card-title { color: var(--accent); }
.ovf-card--groot .ovf-card-intro { color: color-mix(in srgb, var(--base-3) 85%, transparent); font-size: 17px; max-width: 640px; }
.ovf-card--groot .ovf-meta { color: color-mix(in srgb, var(--base-3) 70%, transparent); }

.ovf-card--lijst .ovf-card-link { display: grid; grid-template-columns: 38% 1fr; gap: 16px; align-items: start; }
.ovf-card--lijst .ovf-card-media { aspect-ratio: 4 / 3; }
.ovf-card--lijst .ovf-card-title { font-size: 18px; }
.ovf-card--lijst .ovf-card-intro { font-size: 14px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ovf-card--lijst .ovf-meta { margin-top: 6px; }

.ovf-card--mini .ovf-card-link { display: grid; grid-template-columns: 88px 1fr; gap: 14px; align-items: center; }
.ovf-card--mini .ovf-card-media { aspect-ratio: 1; }
.ovf-card--mini .ovf-card-title { font-size: 16px; }
.ovf-card--mini .ovf-label { margin-bottom: 4px; font-size: 11px; }

.ovf-card--nummer .ovf-card-link { display: grid; grid-template-columns: 44px 1fr; gap: 12px; align-items: start; }
.ovf-nr { font-size: 38px; font-weight: 900; line-height: .9; color: var(--accent); letter-spacing: -0.04em; }
.ovf-card--nummer .ovf-card-title { font-size: 17px; }
.ovf-card--nummer .ovf-label { font-size: 11px; margin-bottom: 4px; }

/* Grids */
.ovf-grid { display: grid; gap: 32px 28px; }
.ovf-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ovf-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ovf-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ovf-cols-4 .ovf-card--kaart .ovf-card-title { font-size: 18px; }
.ovf-cols-4 .ovf-card--kaart .ovf-card-intro { display: none; }
.ovf-grid--lijst { gap: 22px; }
.ovf-grid--lijst > .ovf-card { padding-bottom: 22px; border-bottom: 1px solid var(--ovf-lijn); }
.ovf-grid--lijst > .ovf-card:last-child { border-bottom: 0; padding-bottom: 0; }
@media (max-width: 1024px) {
	.ovf-cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ovf-cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.ovf-grid { gap: 28px; }
	.ovf-cols-2, .ovf-cols-3, .ovf-cols-4 { grid-template-columns: minmax(0, 1fr); }
	.ovf-cols-4 .ovf-card--kaart .ovf-card-link { display: grid; grid-template-columns: 38% 1fr; gap: 14px; }
	.ovf-cols-4 .ovf-card--kaart .ovf-card-media { aspect-ratio: 4 / 3; }
	.ovf-cols-4 .ovf-card--kaart .ovf-card-body { padding-top: 0; }
	.ovf-cols-4 .ovf-card--kaart .ovf-meta { display: none; }
}

/* ---------- Home ---------- */
.ovf-sec { padding-block: 56px; }
.ovf-sec--eerst { padding-top: 32px; }
.ovf-sec--licht { background: var(--base-2); }
.ovf-sec--donker { background: var(--contrast); color: var(--base); }
.ovf-sec-in { max-width: var(--ovf-max); margin-inline: auto; padding-inline: var(--ovf-gutter); }

.ovf-lead { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); gap: 28px; }
.ovf-lead-side { display: grid; gap: 22px; align-content: start; }
.ovf-lead-side .ovf-card { padding-bottom: 22px; border-bottom: 1px solid var(--ovf-lijn); }
.ovf-lead-side .ovf-card:last-child { border-bottom: 0; padding-bottom: 0; }
.ovf-lead-side .ovf-card-intro { display: none; }
@media (max-width: 900px) {
	.ovf-lead { grid-template-columns: minmax(0, 1fr); }
	.ovf-card--groot .ovf-card-media { aspect-ratio: 4 / 5; }
	.ovf-card--groot .ovf-card-body { padding: 20px; }
	.ovf-card--groot .ovf-card-intro { font-size: 15px; }
}

.ovf-split { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 48px; align-items: start; }
.ovf-split > aside { position: sticky; top: 120px; }
@media (max-width: 1024px) {
	.ovf-split { grid-template-columns: minmax(0, 1fr); }
	.ovf-split > aside { position: static; }
}

.ovf-populair .ovf-blokkop { border-top: 4px solid var(--contrast); padding-top: 14px; margin-bottom: 18px; }
.ovf-populair-lijst { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.ovf-populair-lijst li { margin: 0; padding-bottom: 18px; border-bottom: 1px solid var(--ovf-lijn); }
.ovf-populair-lijst li:last-child { border-bottom: 0; }

/* Category tiles */
.ovf-cats { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.ovf-cat {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 20px 18px 18px;
	background: var(--base-3);
	border: 1px solid var(--ovf-lijn);
	border-top: 4px solid var(--contrast);
	color: var(--contrast);
	text-decoration: none;
	transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.ovf-cat:hover { border-top-color: var(--accent); transform: translateY(-2px); box-shadow: var(--ovf-schaduw); }
.ovf-cat-icon { color: var(--accent-2); margin-bottom: 6px; }
.ovf-cat-naam { font-weight: 800; font-size: 17px; line-height: 1.2; }
.ovf-cat-kort { font-size: 13px; line-height: 1.45; color: var(--contrast-3); }
.ovf-cat-pijl { margin-top: auto; padding-top: 8px; color: var(--accent-2); }
@media (max-width: 1100px) { .ovf-cats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) { .ovf-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ovf-cat-kort { display: none; } }

/* Dark manifesto block */
.ovf-manifest { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.ovf-manifest h2 { color: var(--base-3); font-size: clamp(30px, 4vw, 48px); line-height: 1.05; font-weight: 900; margin: 0 0 18px; }
.ovf-manifest h2 em { font-style: normal; color: var(--accent); }
.ovf-manifest p { color: var(--base); font-size: 17px; }
.ovf-pijlers { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.ovf-pijlers li {
	display: grid;
	grid-template-columns: 34px 1fr;
	gap: 14px;
	margin: 0;
	padding: 18px;
	background: var(--ink-2);
	border-left: 4px solid var(--accent);
	color: var(--base);
	font-size: 15px;
	line-height: 1.5;
}
.ovf-pijlers li strong { display: block; color: var(--base-3); font-size: 17px; margin-bottom: 2px; }
.ovf-pijlers .ovf-icon { color: var(--accent); }
.ovf-cijfers { display: flex; gap: 36px; flex-wrap: wrap; margin-top: 28px; }
.ovf-cijfers div { font-size: 14px; color: var(--base); }
.ovf-cijfers strong { display: block; font-size: 40px; font-weight: 900; color: var(--accent); letter-spacing: -0.03em; line-height: 1; margin-bottom: 4px; }
@media (max-width: 900px) { .ovf-manifest { grid-template-columns: minmax(0, 1fr); gap: 32px; } }

/* Home FAQ */
.ovf-faq-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 48px; }
.ovf-faq-intro h2 { font-size: clamp(28px, 3vw, 38px); font-weight: 900; line-height: 1.1; margin: 0 0 12px; }
@media (max-width: 900px) { .ovf-faq-intro { grid-template-columns: minmax(0, 1fr); gap: 16px; } }

/* CTA strip */
.ovf-cta { background: var(--accent); color: var(--contrast); }
.ovf-cta-in { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding-block: 36px; }
.ovf-cta h2 { margin: 0; font-size: clamp(22px, 2.6vw, 30px); font-weight: 900; color: var(--contrast); }
.ovf-cta p { margin: 4px 0 0; color: var(--contrast); }
.ovf-cta .ovf-knop { background: var(--contrast) !important; color: var(--base-3) !important; }
.ovf-cta .ovf-knop:hover { background: var(--base-3) !important; color: var(--contrast) !important; }

/* ---------- Archive ---------- */
.ovf-archive-head { background: var(--base-2); border-bottom: 1px solid var(--ovf-lijn); padding: 28px 0 32px; }
.ovf-archive-titel { display: flex; align-items: center; gap: 18px; margin-top: 14px; }
.ovf-archive-icon { display: grid; place-items: center; width: 64px; height: 64px; background: var(--contrast); color: var(--accent); flex: none; }
.ovf-archive-head h1 { font-size: clamp(32px, 4.5vw, 54px); font-weight: 900; line-height: 1.02; margin: 0; }
.ovf-archive-head .ovf-kicker { margin-bottom: 4px; }
.ovf-archive-desc { max-width: 720px; font-size: 18px; color: var(--contrast-2); margin: 16px 0 0; }
.ovf-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.ovf-chip {
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 8px 14px;
	border: 2px solid var(--contrast);
	color: var(--contrast);
	text-decoration: none;
}
.ovf-chip:hover, .ovf-chip.is-actief { background: var(--contrast); color: var(--base-3); }
.ovf-archive-head .search-form { margin-top: 18px; max-width: 560px; display: flex; }

.ovf-overzicht .site-main {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 40px 28px;
	max-width: var(--ovf-max);
	margin-inline: auto !important;
	padding: 40px var(--ovf-gutter) 64px;
}
.ovf-overzicht .site-main > .ovf-card:first-child { grid-column: 1 / -1; }
.ovf-overzicht .site-main > .ovf-card:first-child .ovf-card-link { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 32px; align-items: center; }
.ovf-overzicht .site-main > .ovf-card:first-child .ovf-card-body { padding-top: 0; }
.ovf-overzicht .site-main > .ovf-card:first-child .ovf-card-title { font-size: clamp(26px, 3vw, 36px); }
.ovf-overzicht .site-main > .ovf-card:first-child .ovf-card-intro { font-size: 17px; }
.paged .ovf-overzicht .site-main > .ovf-card:first-child,
.paged.ovf-overzicht .site-main > .ovf-card:first-child { grid-column: auto; }
.paged.ovf-overzicht .site-main > .ovf-card:first-child .ovf-card-link { display: block; }
.ovf-overzicht .site-main > :not(.ovf-card) { grid-column: 1 / -1; }
.ovf-overzicht .site-main .ovf-card .ovf-card-title { font-size: 20px; }
.ovf-overzicht .no-results { padding: 0; }
.paging-navigation { margin-top: 8px; }
.paging-navigation .nav-links { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; }
.paging-navigation .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border: 2px solid var(--contrast);
	color: var(--contrast);
	font-weight: 700;
	text-decoration: none;
}
.paging-navigation .page-numbers.current,
.paging-navigation .page-numbers:hover { background: var(--contrast); color: var(--base-3); }
@media (max-width: 1024px) { .ovf-overzicht .site-main { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
	.ovf-overzicht .site-main { grid-template-columns: minmax(0, 1fr); padding-top: 28px; }
	.ovf-overzicht .site-main > .ovf-card:first-child .ovf-card-link { grid-template-columns: minmax(0, 1fr); gap: 0; }
	.ovf-overzicht .site-main > .ovf-card:first-child .ovf-card-body { padding-top: 14px; }
}

/* ---------- Breadcrumb ---------- */
.ovf-kruimel { font-size: 13px; color: var(--contrast-3); margin-bottom: 14px; }
.ovf-kruimel a { color: var(--contrast-2); text-decoration: none; }
.ovf-kruimel a:hover { color: var(--accent-2); text-decoration: underline; }
.ovf-kruimel .breadcrumb_last { color: var(--contrast-3); }

/* ---------- Article ---------- */
.ovf-post-head { padding-top: 28px; }
.ovf-post-title { font-size: clamp(32px, 5vw, 52px); font-weight: 900; line-height: 1.05; margin: 4px 0 16px; }
.ovf-post-intro { font-size: clamp(18px, 2vw, 21px); line-height: 1.55; color: var(--contrast-2); margin: 0 0 18px; }
.ovf-post-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: 14px; color: var(--contrast-3); margin: 0 0 26px; padding-bottom: 18px; border-bottom: 1px solid var(--ovf-lijn); }
.ovf-dot { opacity: .6; }
.ovf-hero-img { margin: 0 0 8px; }
.ovf-hero-img img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.ovf-hero-img figcaption { font-size: 13px; color: var(--contrast-3); margin-top: 8px; }

.single-post .inside-article { padding: 0 !important; }
.single-post .entry-content {
	max-width: calc(var(--ovf-smal) + 2 * var(--ovf-gutter));
	margin: 36px auto 0 !important;
	padding-inline: var(--ovf-gutter);
	font-size: 18px;
	line-height: 1.75;
}
.single-post .entry-content > * { margin-top: 0; margin-bottom: 1.3em; }
.single-post .entry-content h2 { font-size: clamp(26px, 3vw, 32px); font-weight: 800; line-height: 1.15; margin-top: 1.8em; margin-bottom: .55em; scroll-margin-top: 110px; }
.single-post .entry-content h3 { font-size: 22px; font-weight: 800; line-height: 1.25; margin-top: 1.5em; margin-bottom: .45em; }
.single-post .entry-content a { color: var(--accent-2); font-weight: 600; text-decoration: underline; text-decoration-thickness: 2px; }
.single-post .entry-content a:hover { color: var(--contrast); }
.single-post .entry-content ul,
.single-post .entry-content ol { margin-left: 1.2em; }
.single-post .entry-content li { margin-bottom: .45em; }
.single-post .entry-content ul li::marker { color: var(--accent); }
.single-post .entry-content ol li::marker { color: var(--accent-2); font-weight: 800; }
.single-post .entry-content figure { margin-block: 2em; }
.single-post .entry-content figure img { width: 100%; height: auto; display: block; }
.single-post .entry-content figcaption { font-size: 14px; line-height: 1.5; color: var(--contrast-3); margin-top: 8px; text-align: left; }
.single-post .entry-content blockquote { border-left: 4px solid var(--accent); margin-left: 0; padding: 4px 0 4px 22px; font-size: 21px; font-weight: 700; line-height: 1.45; }
.single-post .entry-content table { width: 100%; border-collapse: collapse; font-size: 16px; line-height: 1.5; }
.single-post .entry-content th { background: var(--contrast); color: var(--base-3); text-align: left; }
.single-post .entry-content th,
.single-post .entry-content td { padding: 10px 12px; border: 1px solid var(--ovf-lijn); }
.single-post .entry-content tr:nth-child(even) td { background: var(--base-2); }
.wp-block-table { overflow-x: auto; }

/* Article boxes (In het kort, Tip, Let op, Schema) */
.ovf-kort,
.ovf-tip,
.ovf-letop,
.ovf-schema {
	padding: 22px 24px !important;
	margin-block: 2em !important;
	font-size: 17px;
	line-height: 1.65;
}
.ovf-kort { background: var(--base-2); border-top: 4px solid var(--contrast); }
.ovf-tip { background: var(--accent-3); border-left: 5px solid var(--accent); }
.ovf-letop { background: var(--base-2); border-left: 5px solid var(--contrast); }
.ovf-schema { border: 2px solid var(--contrast); }
.ovf-kort > :last-child,
.ovf-tip > :last-child,
.ovf-letop > :last-child,
.ovf-schema > :last-child { margin-bottom: 0 !important; }
.ovf-kort ul { margin: 0 0 0 1.1em; }
.ovf-kort li { margin-bottom: .35em; }
p.ovf-blokkop-klein,
.entry-content p.ovf-blokkop-klein {
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	margin: 0 0 10px !important;
	color: var(--contrast);
}
.ovf-tip p.ovf-blokkop-klein { color: var(--accent-2); }

/* Disclaimer note */
.ovf-noot {
	display: grid;
	grid-template-columns: 24px 1fr;
	gap: 12px;
	max-width: calc(var(--ovf-smal) + 2 * var(--ovf-gutter));
	margin: 40px auto 0;
	padding: 18px var(--ovf-gutter);
	border-top: 1px solid var(--ovf-lijn);
	font-size: 14px;
	line-height: 1.6;
	color: var(--contrast-3);
}
.ovf-noot p { margin: 0; }
.ovf-noot a { color: var(--contrast-2); }

/* Related */
.ovf-related { background: var(--base-2); padding: 56px 0 64px; margin-top: 56px; }

/* ---------- FAQ accordion (Yoast) ---------- */
.schema-faq.ovf-accordeon { border-top: 2px solid var(--contrast); margin-block: 1em 2em; }
.ovf-accordeon .schema-faq-section { border-bottom: 1px solid var(--ovf-lijn); margin: 0; }
.ovf-accordeon .schema-faq-question { display: block; margin: 0; font-weight: 800; }
.ovf-faq-knop {
	all: unset;
	box-sizing: border-box;
	display: flex;
	width: 100%;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 18px 2px;
	cursor: pointer;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.35;
	color: var(--contrast);
}
.ovf-faq-knop:hover { color: var(--accent-2); }
.ovf-faq-knop:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.ovf-faq-plus { position: relative; width: 22px; height: 22px; flex: none; }
.ovf-faq-plus::before,
.ovf-faq-plus::after { content: ""; position: absolute; left: 3px; right: 3px; top: 10px; height: 2.5px; background: var(--accent-2); transition: transform .2s ease; }
.ovf-faq-plus::after { transform: rotate(90deg); }
.is-open .ovf-faq-plus::after { transform: rotate(0); }
.ovf-accordeon .schema-faq-answer { margin: 0 0 20px; padding-right: 30px; color: var(--contrast-2); font-size: 17px; line-height: 1.7; }
.ovf-sec--donker .ovf-faq-knop { color: var(--base-3); }

/* ---------- Pages ---------- */
.page .inside-article { padding: 0 !important; }
.ovf-pagina-head { background: var(--contrast); color: var(--base); padding: 48px 0 52px; }
.ovf-pagina-head h1 { color: var(--base-3); font-size: clamp(34px, 5vw, 56px); font-weight: 900; line-height: 1.04; margin: 0 0 12px; }
.ovf-pagina-head p { font-size: 19px; max-width: 680px; margin: 0; color: var(--base); }
.ovf-pagina-head .ovf-kicker { color: var(--accent); }
.ovf-pagina-head .ovf-kruimel, .ovf-pagina-head .ovf-kruimel a, .ovf-pagina-head .ovf-kruimel .breadcrumb_last { color: var(--base); }
.ovf-tekst { max-width: calc(var(--ovf-smal) + 2 * var(--ovf-gutter)); margin-inline: auto; padding: 48px var(--ovf-gutter) 64px; font-size: 18px; line-height: 1.75; }
.ovf-tekst h2 { font-size: 28px; font-weight: 800; margin-top: 1.6em; }
.ovf-tekst h2:first-child { margin-top: 0; }
.ovf-tekst a { color: var(--accent-2); font-weight: 600; }

/* Contact */
.ovf-contact { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 48px; max-width: var(--ovf-max); margin-inline: auto; padding: 48px var(--ovf-gutter) 72px; }
.ovf-contact-kaart { background: var(--base-2); border-top: 4px solid var(--accent); padding: 26px; font-size: 16px; }
.ovf-contact-kaart h2 { font-size: 22px; font-weight: 800; margin: 0 0 10px; }
@media (max-width: 900px) { .ovf-contact { grid-template-columns: minmax(0, 1fr); } }
.gform_wrapper.gravity-theme .gfield_label { font-weight: 700; font-size: 15px; }
.gform_wrapper.gravity-theme input[type="text"],
.gform_wrapper.gravity-theme input[type="email"],
.gform_wrapper.gravity-theme select,
.gform_wrapper.gravity-theme textarea { border: 2px solid var(--base); border-radius: 0; padding: 12px 14px; font-size: 16px; background: var(--base-3); }
.gform_wrapper.gravity-theme input:focus,
.gform_wrapper.gravity-theme textarea:focus,
.gform_wrapper.gravity-theme select:focus { border-color: var(--contrast); outline: none; }

/* Search form */
.search-form { display: flex; gap: 0; }
.search-form .search-field { flex: 1; border: 2px solid var(--contrast); border-right: 0; padding: 12px 14px; font-size: 16px; background: var(--base-3); }
.search-form .search-submit { background: var(--contrast); color: var(--base-3); border: 0; padding: 0 18px; font-weight: 700; }
.search-form .search-submit:hover { background: var(--accent); color: var(--contrast); }

/* ---------- Footer ---------- */
.ovf-footer { background: var(--contrast); color: var(--base); padding: 64px 0 0; font-size: 15px; }
.ovf-footer-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); gap: 40px; }
.ovf-footer .ovf-logo-svg { height: 46px; margin-bottom: 18px; }
.ovf-footer p { color: var(--base); line-height: 1.65; margin: 0 0 12px; }
.ovf-footer h2 { color: var(--base-3); font-size: 14px; text-transform: uppercase; letter-spacing: .1em; font-weight: 800; margin: 6px 0 16px; padding-bottom: 10px; border-bottom: 2px solid var(--accent); display: inline-block; }
.ovf-footer-lijst { list-style: none; margin: 0; padding: 0; }
.ovf-footer-lijst li { margin: 0 0 10px; }
.ovf-footer a { color: var(--base); text-decoration: none; }
.ovf-footer a:hover { color: var(--accent); text-decoration: underline; }
.ovf-footer-lijst--posts a { font-weight: 600; color: var(--base-3); }
.ovf-onderbalk { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 48px; padding: 20px 0 24px; border-top: 1px solid var(--contrast-2); font-size: 13px; color: var(--contrast-3); }
.ovf-onderbalk nav { display: flex; gap: 18px; flex-wrap: wrap; }
.ovf-onderbalk a { color: var(--base); }
@media (max-width: 900px) { .ovf-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ovf-footer-grid > :first-child { grid-column: 1 / -1; } }
@media (max-width: 520px) { .ovf-footer-grid { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Misc ---------- */
.ovf-overzicht .page-header,
.single-post .entry-header,
.single-post .post-image,
.single-post .featured-image { display: none; }
.screen-reader-text:focus { background: var(--base-3); }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ---------- Home extras ---------- */
.ovf-home-titel { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; margin-bottom: 22px; }
.ovf-home-titel .ovf-kicker { margin: 0; }
.ovf-home-h1 { font-size: clamp(22px, 2.4vw, 28px); font-weight: 900; margin: 0; line-height: 1.15; }
.ovf-sec--na { padding-top: 0; }
.ovf-sec--licht + .ovf-sec--na,
.ovf-sec--donker + .ovf-sec--na { padding-top: 56px; }
.ovf-sectiekop .ovf-meer.gb-text { display: inline-flex; }
.ovf-footer-klein { font-size: 13px; color: var(--contrast-3) !important; }
.ovf-faq-kop h2 { font-size: clamp(26px, 3vw, 36px); font-weight: 900; line-height: 1.1; margin: 0 0 12px; }
.ovf-faq-kop p { color: var(--contrast-2); }
.ovf-faq-lijst .schema-faq { margin-top: 0; }

/* GP content link colour must not recolour our components */
.site-content a.ovf-cat,
.site-content a.ovf-card-link,
.site-content a.ovf-meer,
.site-content a.ovf-chip,
.site-content .ovf-sectiekop h2 a { color: var(--contrast); }
.site-content a.ovf-label { color: var(--accent-2); }
.site-content a.ovf-chip:hover, .site-content a.ovf-chip.is-actief { color: var(--base-3); }
.site-content a.ovf-meer:hover, .site-content .ovf-sectiekop h2 a:hover { color: var(--accent-2); }
.site-content .ovf-card--groot a.ovf-card-link { color: var(--base-3); }
.ovf-faq-knop { text-transform: none !important; letter-spacing: -0.01em !important; font-size: 18px !important; }
.ovf-pagina-head a, .ovf-sec--donker a:not(.ovf-knop) { color: var(--accent); }

.ovf-kort > .wp-block-group__inner-container > :last-child,
.ovf-tip > .wp-block-group__inner-container > :last-child,
.ovf-letop > .wp-block-group__inner-container > :last-child,
.ovf-schema > .wp-block-group__inner-container > :last-child { margin-bottom: 0 !important; }
@media (max-width: 600px) {
	.ovf-sectiekop { flex-wrap: wrap; row-gap: 6px; }
	.ovf-meer { white-space: normal; font-size: 13px; }
	.ovf-blokkop, .ovf-sectiekop h2 { font-size: 19px; }
}
