/**
 * Fiscale Wegwijs — ZenBlog finetune (UTF-8, geen BOM).
 */

:root {
	--fw-primary: #0f3d5c;
	--fw-primary-dark: #0a2d45;
	--fw-accent: #0d9488;
	--fw-accent-dark: #0f766e;
	--fw-surface: #f8fafc;
	--fw-border: rgba(15, 61, 92, 0.12);
	--fw-gutter: clamp(1.35rem, 4.5vw, 3.25rem);
	--fw-content-max: 72rem;
	--fw-read-max: 42rem;
}

html {
	-webkit-text-size-adjust: 100%;
}

body {
	--accent-color: var(--fw-accent);
	--heading-color: var(--fw-primary);
	--nav-font: "Inter", system-ui, sans-serif;
	--default-font: "Inter", system-ui, sans-serif;
	--background-color: #ffffff;
	--nav-color: var(--fw-primary);
	--nav-hover-color: var(--fw-accent);
	--nav-dropdown-color: #334155;
	--nav-dropdown-hover-color: var(--fw-accent);
	--nav-dropdown-background-color: #ffffff;
	--nav-mobile-background-color: #ffffff;
	color: #334155;
	line-height: 1.65;
}

h1, h2, h3, h4, h5, h6 {
	font-family: "EB Garamond", Georgia, serif;
	color: var(--fw-primary);
	line-height: 1.25;
}

p {
	max-width: var(--fw-read-max);
}

.main .container {
	max-width: var(--fw-content-max);
	padding-left: var(--fw-gutter);
	padding-right: var(--fw-gutter);
}

/* --- Header & navigatie --- */
.header,
.fw-header {
	box-shadow: 0 1px 0 var(--fw-border);
	background: #fff !important;
}

.fw-logo-img {
	height: auto;
	max-height: 46px;
	width: auto;
}

.fw-nav-toggle {
	border: 0;
	background: transparent;
	padding: 0.25rem;
	line-height: 1;
	color: var(--fw-primary);
}

.fw-nav-toggle:focus-visible {
	outline: 2px solid var(--fw-accent);
	outline-offset: 3px;
	border-radius: 0.25rem;
}

.fw-nav-toggle__icon {
	font-size: 1.75rem;
}

.fw-nav-backdrop {
	position: fixed;
	inset: 0;
	z-index: 9996;
	background: rgba(15, 61, 92, 0.45);
}

.navmenu > ul > li > a,
.navmenu .fw-nav__parent {
	font-weight: 600;
	color: var(--fw-primary);
}

.navmenu a:hover,
.navmenu a:focus-visible {
	color: var(--fw-accent) !important;
}

.navmenu a.active:not(.fw-nav-cta),
.navmenu .fw-nav__parent.active {
	color: var(--fw-accent) !important;
}

.navmenu a.fw-nav-cta {
	background: var(--fw-primary);
	color: #fff !important;
	padding: 0.5rem 1.15rem !important;
	border-radius: 0.4rem;
	font-weight: 600;
	margin-left: 0.35rem;
	white-space: nowrap;
}

.navmenu a.fw-nav-cta:hover,
.navmenu a.fw-nav-cta:focus-visible,
.navmenu a.fw-nav-cta.active {
	background: var(--fw-primary-dark);
	color: #fff !important;
}

/* Kenniscentrum-dropdown: rij met link + toggle */
.fw-nav__row {
	display: flex;
	align-items: stretch;
	width: 100%;
}

.fw-nav__parent {
	flex: 1;
	display: flex;
	align-items: center;
}

.fw-nav__subtoggle {
	flex-shrink: 0;
	border: 0;
	background: color-mix(in srgb, var(--fw-accent) 12%, transparent);
	color: var(--fw-primary);
	width: 2.5rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 0.35rem;
	margin-left: 0.35rem;
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease;
}

.fw-nav__subtoggle:hover,
.fw-nav__subtoggle:focus-visible {
	background: var(--fw-accent);
	color: #fff;
}

.dropdown.is-open > .fw-nav__row .fw-nav__subtoggle i {
	transform: rotate(180deg);
}

/* Submenu: label + korte omschrijving */
.fw-nav__sub a.fw-nav__topic {
	display: block;
	padding: 0.55rem 1rem !important;
	font-weight: 500;
	font-size: 0.95rem;
	color: var(--fw-primary);
	white-space: normal;
	text-decoration: none;
}

.fw-nav__sub a.fw-nav__topic:hover,
.fw-nav__sub a.fw-nav__topic:focus-visible,
.fw-nav__sub a.fw-nav__topic.active {
	color: var(--fw-accent) !important;
}

.fw-nav__label {
	display: block;
	font-weight: 600;
	line-height: 1.3;
}

.fw-nav__desc {
	display: block;
	margin-top: 0.12rem;
	font-size: 0.8125rem;
	font-weight: 400;
	line-height: 1.35;
	color: var(--nav-dropdown-color);
}

.fw-nav__sub a.fw-nav__topic:hover .fw-nav__desc,
.fw-nav__sub a.fw-nav__topic:focus-visible .fw-nav__desc,
.fw-nav__sub a.fw-nav__topic.active .fw-nav__desc {
	color: var(--nav-dropdown-hover-color);
}

.fw-nav__sub--overview a.fw-nav__topic {
	border-bottom: 1px solid var(--fw-border);
}

/* Desktop dropdown */
@media (min-width: 1200px) {
	.navmenu .dropdown > .fw-nav__row > .fw-nav__parent {
		padding: 18px 12px 18px 15px;
	}

	.navmenu .dropdown .fw-nav__subtoggle {
		display: none;
	}

	.navmenu .dropdown ul.fw-nav__sub {
		min-width: 19.5rem;
		max-width: 22rem;
		padding: 0.5rem 0 !important;
		border-radius: 0.5rem;
		border: 1px solid var(--fw-border);
		box-shadow: 0 12px 32px rgba(15, 61, 92, 0.12);
		left: 0;
	}

	/* Touch-desktop: chevron blijft zichtbaar (geen hover) */
	html.fw-nav-touch .navmenu .dropdown .fw-nav__subtoggle {
		display: inline-flex;
	}

	.navmenu .dropdown:hover > ul.fw-nav__sub,
	.navmenu .dropdown.is-open > ul.fw-nav__sub {
		opacity: 1;
		top: 100%;
		visibility: visible;
	}
}

/* Mobiel: Kenniscentrum als accordeon (alleen labels) */
@media (max-width: 1199px) {
	.mobile-nav-active .fw-nav-backdrop:not([hidden]) {
		display: block;
	}

	.navmenu .fw-nav-accordion > .fw-nav__row {
		padding: 0 0.25rem;
		border-radius: 0.4rem;
		background: transparent;
		transition: background 0.2s ease;
	}

	.navmenu .fw-nav-accordion.is-open > .fw-nav__row {
		background: var(--fw-surface);
	}

	.navmenu .fw-nav-accordion > .fw-nav__row > .fw-nav__parent {
		padding: 10px 12px !important;
	}

	.navmenu .fw-nav-accordion .fw-nav__sub {
		display: block !important;
		max-height: 0;
		overflow: hidden;
		margin: 0 0.5rem !important;
		padding: 0 !important;
		border: 0 solid var(--fw-border);
		border-radius: 0.4rem;
		background: var(--fw-surface);
		opacity: 0;
		transition: max-height 0.28s ease, opacity 0.2s ease, margin 0.2s ease, border-width 0.1s ease;
	}

	.navmenu .fw-nav-accordion.is-open .fw-nav__sub {
		max-height: min(70vh, 32rem);
		opacity: 1;
		margin: 0.25rem 0.5rem 0.6rem !important;
		padding: 0.35rem 0 !important;
		border-width: 1px;
		overflow-y: auto;
	}

	.navmenu .fw-nav-accordion .fw-nav__sub[hidden] {
		display: block !important;
	}

	.navmenu .fw-nav-accordion .fw-nav__sub a.fw-nav__topic {
		padding: 0.65rem 1rem !important;
	}

	.navmenu .fw-nav-accordion .fw-nav__sub--overview a.fw-nav__topic {
		padding-top: 0.5rem !important;
	}
}

.fw-skip-link {
	position: absolute;
	left: -9999px;
	z-index: 9999;
	padding: 0.75rem 1rem;
	background: var(--fw-primary);
	color: #fff;
	border-radius: 0.25rem;
}

.fw-skip-link:focus {
	left: 1rem;
	top: 1rem;
}

/* --- Knoppen (Bootstrap) --- */
.btn-primary {
	--bs-btn-bg: var(--fw-primary);
	--bs-btn-border-color: var(--fw-primary);
	--bs-btn-hover-bg: var(--fw-primary-dark);
	--bs-btn-hover-border-color: var(--fw-primary-dark);
}

.btn-outline-primary {
	--bs-btn-color: var(--fw-primary);
	--bs-btn-border-color: var(--fw-primary);
	--bs-btn-hover-bg: var(--fw-primary);
	--bs-btn-hover-border-color: var(--fw-primary);
}

/* --- Hero slider --- */
#slider.slider {
	padding: 0;
	margin: 0;
}

#slider.slider > .container {
	max-width: none;
	padding: 0;
	width: 100%;
}

#slider .swiper-slide::before {
	background: linear-gradient(
		180deg,
		rgba(15, 61, 92, 0.15) 0%,
		rgba(15, 61, 92, 0.75) 55%,
		rgba(10, 45, 69, 0.92) 100%
	) !important;
}

#slider .swiper-slide {
	min-height: clamp(340px, 48vh, 520px);
	background-size: cover;
	background-position: center 35%;
}

#slider .swiper-slide.fw-hero-slide--portrait {
	background-position: center 22%;
}

#slider .content {
	padding: clamp(2rem, 5vw, 3.5rem) var(--fw-gutter) !important;
	max-width: var(--fw-content-max) !important;
	margin: 0 auto;
	width: 100%;
}

#slider .content h2 {
	color: #fff !important;
	font-size: clamp(1.85rem, 4.2vw, 2.65rem);
	margin-bottom: 0.65rem;
	font-weight: 700;
}

#slider .content h2 a {
	color: inherit;
	text-decoration: none;
}

#slider .content h2 a:hover {
	text-decoration: underline;
}

#slider .content p {
	color: rgba(255, 255, 255, 0.94) !important;
	max-width: 38rem;
	margin-bottom: 0;
	font-family: var(--nav-font);
	font-size: 1.05rem;
}

#slider .swiper-pagination .swiper-pagination-bullet-active {
	background: var(--fw-accent) !important;
}

/* --- Secties --- */
.section {
	padding-top: clamp(2.75rem, 5vw, 4.5rem);
	padding-bottom: clamp(2.75rem, 5vw, 4.5rem);
}

.section.fw-section-alt {
	background: var(--fw-surface);
}

.fw-section-title {
	margin-bottom: 2.25rem !important;
	text-align: center;
	border: 0;
}

.fw-section-title .section-title-container {
	border: 0 !important;
	padding-bottom: 0;
	justify-content: center;
}

.fw-section-title h2 {
	font-size: clamp(1.65rem, 3vw, 2.15rem) !important;
	font-weight: 700 !important;
	margin-bottom: 0.5rem;
}

.fw-section-title p {
	font-family: var(--nav-font);
	font-size: 1.05rem;
	color: #64748b;
	max-width: 36rem;
	margin: 0 auto;
}

.fw-section-title p a {
	border: 0;
	text-transform: none;
	letter-spacing: 0;
	font-size: inherit;
}

/* --- Pijlers --- */
.fw-pillars .icon-box {
	padding: 1.65rem 1.35rem;
	height: 100%;
	border: 1px solid var(--fw-border);
	border-radius: 0.65rem;
	background: #fff;
	transition: box-shadow 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.fw-pillars .icon-box:hover {
	border-color: var(--fw-accent);
	box-shadow: 0 10px 28px rgba(15, 61, 92, 0.09);
	transform: translateY(-2px);
}

.fw-pillars i {
	font-size: 2.1rem;
	color: var(--fw-accent);
	margin-bottom: 0.85rem;
	display: block;
}

.fw-pillars h3 {
	font-size: 1.2rem;
	margin-bottom: 0.65rem;
}

.fw-pillars p {
	max-width: none;
	margin: 0 auto 0.75rem;
	font-size: 0.98rem;
}

/* --- Over ons band --- */
.fw-about {
	background: linear-gradient(135deg, var(--fw-accent) 0%, var(--fw-accent-dark) 100%);
	color: #fff;
}

.fw-about .container {
	padding-top: clamp(2.75rem, 5vw, 4rem);
	padding-bottom: clamp(2.75rem, 5vw, 4rem);
	max-width: 50rem;
}

.fw-about h2 {
	color: #fff;
	margin-bottom: 1rem;
}

.fw-about p {
	color: rgba(255, 255, 255, 0.95);
	max-width: none;
	font-size: 1.08rem;
	line-height: 1.7;
}

/* --- Thema-tabs --- */
.fw-theme-panel {
	border: 1px solid var(--fw-border);
	border-radius: 0.65rem;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	background: var(--fw-surface);
}

.fw-theme-tabs {
	border-bottom: 0;
	gap: 0.35rem;
	margin-bottom: 1.5rem !important;
}

.fw-theme-tabs .nav-link {
	color: var(--fw-primary);
	font-weight: 600;
	border: 1px solid var(--fw-border);
	border-radius: 0.4rem !important;
	padding: 0.65rem 1.1rem;
	background: #fff;
}

.fw-theme-tabs .nav-link:hover {
	border-color: var(--fw-accent);
}

.fw-theme-tabs .nav-link.active {
	background: var(--fw-primary) !important;
	color: #fff !important;
	border-color: var(--fw-primary) !important;
}

.fw-theme-card {
	border: 1px solid var(--fw-border);
	border-radius: 0.5rem;
	padding: 1.2rem 1.25rem;
	height: 100%;
	background: #fff;
}

.fw-theme-card h3 {
	font-size: 1.02rem;
	font-family: var(--nav-font);
	font-weight: 600;
	color: var(--fw-primary);
	margin-bottom: 0.4rem;
}

.fw-theme-card p {
	font-size: 0.92rem;
	margin: 0;
	max-width: none;
	line-height: 1.55;
	color: #475569;
}

.fw-theme-media .fw-img-wrap {
	border-radius: 0.55rem;
	width: 100%;
}

/* --- CTA band --- */
.fw-cta-band {
	background: var(--fw-primary);
	color: rgba(255, 255, 255, 0.94);
}

.fw-cta-band h2 {
	color: #fff;
	margin-bottom: 1rem;
}

.fw-cta-band p {
	max-width: none;
	font-size: 1.05rem;
	line-height: 1.7;
}

.fw-cta-band .fw-img-wrap {
	width: 100%;
	max-height: min(22rem, 50vh);
}

/* --- Uitgelichte artikelen --- */
.fw-posts .post-entry {
	height: 100%;
	display: flex;
	flex-direction: column;
	border: 1px solid var(--fw-border);
	border-radius: 0.65rem;
	overflow: hidden;
	background: #fff;
	transition: box-shadow 0.2s ease;
}

.fw-posts .post-entry:hover {
	box-shadow: 0 12px 28px rgba(15, 61, 92, 0.1);
}

.fw-posts .post-entry > a:first-child {
	display: block;
	overflow: hidden;
}

.fw-posts .post-entry > a:first-child .fw-img-wrap {
	display: block;
	width: 100%;
}

.fw-posts .post-entry .post-meta,
.fw-posts .post-entry h3,
.fw-posts .post-entry p,
.fw-posts .post-entry .btn {
	margin-left: 1.25rem;
	margin-right: 1.25rem;
}

.fw-posts .post-entry .post-meta {
	margin-top: 1rem;
	margin-bottom: 0.35rem;
}

.fw-posts .post-entry h3 {
	font-size: 1.15rem;
	margin-bottom: 0.5rem;
	flex-grow: 0;
}

.fw-posts .post-entry h3 a {
	color: var(--fw-primary);
	text-decoration: none;
}

.fw-posts .post-entry h3 a:hover {
	color: var(--fw-accent);
}

.fw-posts .post-entry p {
	font-size: 0.95rem;
	color: #475569;
	max-width: none;
	flex-grow: 1;
	margin-bottom: 1rem;
}

.fw-posts .post-entry .btn {
	margin-bottom: 1.25rem;
	align-self: flex-start;
}

.fw-posts .post-meta .fw-kicker {
	color: var(--fw-accent);
	font-weight: 600;
	font-size: 0.82rem;
	font-family: var(--nav-font);
}

/* --- Subpagina's --- */
.page-title {
	background: var(--fw-surface);
	border-bottom: 1px solid var(--fw-border);
	padding-top: 1.5rem;
	padding-bottom: 1.5rem;
}

.page-title .container {
	max-width: var(--fw-content-max);
	padding-left: var(--fw-gutter);
	padding-right: var(--fw-gutter);
}

.page-title h1 {
	font-size: clamp(1.75rem, 3.5vw, 2.35rem);
	color: var(--fw-primary);
	max-width: none;
}

.page-title .breadcrumbs {
	font-family: var(--nav-font);
	font-size: 0.9rem;
}

.fw-lead {
	font-size: 1.15rem;
	color: #475569;
	max-width: var(--fw-read-max);
	margin-bottom: 1.5rem;
}

.fw-article {
	font-size: 1.02rem;
}

.fw-article > p,
.fw-article > ul,
.fw-article > ol {
	max-width: var(--fw-read-max);
}

.fw-article h2,
.fw-article h3 {
	margin-top: 2rem;
	margin-bottom: 0.75rem;
	color: var(--fw-primary);
}

.fw-post-kicker,
.fw-article .fw-post-kicker {
	color: var(--fw-accent);
	font-weight: 600;
	font-size: 0.9rem;
	font-family: var(--nav-font);
}

.fw-article-hero {
	max-width: 56rem;
	margin-left: auto;
	margin-right: auto;
}

.fw-article-hero .fw-img-wrap {
	border-radius: 0.55rem;
}

/* --- Beeldverhoudingen (cover; bron kan 3:2 of 2:3 zijn) --- */
.fw-img-wrap {
	display: block;
	overflow: hidden;
	position: relative;
}

.fw-img-wrap .fw-img-el {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 38%;
	margin: 0 !important;
}

.fw-img-wrap--full {
	aspect-ratio: 16 / 9;
}

.fw-img-wrap--tab,
.fw-img-wrap--thumb {
	aspect-ratio: 4 / 3;
}

.fw-img-wrap--portrait .fw-img-el {
	object-position: center 22%;
}

.fw-posts .post-entry > a:first-child .fw-img-wrap--thumb {
	aspect-ratio: 4 / 3;
}

/* --- Kenniscentrum grid --- */
.fw-topic-grid {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
	margin: 2rem 0;
}

.fw-topic-card {
	border: 1px solid var(--fw-border);
	border-radius: 0.55rem;
	padding: 1.4rem 1.35rem;
	background: #fff;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.fw-topic-card:hover {
	border-color: var(--fw-accent);
	box-shadow: 0 8px 20px rgba(15, 61, 92, 0.07);
}

.fw-topic-card h2 {
	font-size: 1.2rem;
	margin-bottom: 0.45rem;
}

.fw-topic-card h2 a {
	color: var(--fw-primary);
	text-decoration: none;
}

.fw-topic-card h2 a:hover {
	color: var(--fw-accent);
}

.fw-topic-card p {
	max-width: none;
	margin-bottom: 0.75rem;
	font-size: 0.95rem;
}

/* --- Knoppen (content) --- */
ul.actions {
	list-style: none;
	padding: 0;
	margin: 2rem 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

a.button,
ul.actions input.primary,
ul.actions .button {
	display: inline-block;
	padding: 0.65rem 1.25rem;
	border-radius: 0.4rem;
	background: var(--fw-primary);
	color: #fff !important;
	border: none;
	text-decoration: none;
	font-weight: 600;
	font-family: var(--nav-font);
	font-size: 0.95rem;
	cursor: pointer;
}

a.button:hover,
ul.actions input.primary:hover {
	background: var(--fw-primary-dark);
	color: #fff !important;
}

a.button.primary,
ul.actions input.primary {
	background: var(--fw-accent);
}

a.button.large {
	padding: 0.85rem 1.5rem;
}

/* --- Contact --- */
.fw-contact-form label {
	display: block;
	font-weight: 600;
	font-family: var(--nav-font);
	font-size: 0.95rem;
	margin-top: 1.1rem;
}

.fw-contact-form input,
.fw-contact-form select,
.fw-contact-form textarea {
	width: 100%;
	max-width: 36rem;
	padding: 0.6rem 0.8rem;
	border: 1px solid #cbd5e1;
	border-radius: 0.4rem;
	font-family: var(--nav-font);
}

.fw-contact-form textarea {
	min-height: 11rem;
}

.fw-hp {
	position: absolute;
	left: -9999px;
	opacity: 0;
	pointer-events: none;
}

.fw-form-msg--ok {
	color: #047857;
	font-weight: 600;
}

.fw-form-msg--err {
	color: #b91c1c;
	font-weight: 600;
}

.fw-captcha__desc {
	font-size: 0.9rem;
	color: #64748b;
}

/* --- Disclaimer --- */
.fw-disclaimer {
	background: #f1f5f9;
	border-left: 4px solid var(--fw-accent);
	padding: 1.35rem 1.5rem;
	border-radius: 0 0.45rem 0.45rem 0;
	margin-top: 2.75rem;
	max-width: var(--fw-read-max);
}

.fw-disclaimer__title {
	font-size: 1.05rem;
	margin: 0 0 0.5rem;
	font-family: var(--nav-font);
	font-weight: 600;
	color: var(--fw-primary);
}

.fw-footer-heading {
	font-size: 1.05rem;
	font-family: var(--nav-font);
	font-weight: 600;
	color: #fff;
	margin: 0 0 0.75rem;
}

.fw-mt-form {
	margin-top: 1.25rem;
}

.fw-mt-block {
	margin-top: 2rem;
}

.fw-disclaimer p {
	max-width: none;
	margin: 0;
	font-size: 0.98rem;
}

/* --- Footer --- */
.footer.dark-background {
	background: var(--fw-primary) !important;
}

.footer.dark-background a {
	color: #e0f2fe;
}

.footer.dark-background a:hover {
	color: #fff;
}

.footer .footer-links ul a {
	color: rgba(255, 255, 255, 0.88);
}

.footer .copyright {
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	padding-top: 1.25rem;
}

@media (max-width: 991px) {
	.page-title .container {
		flex-direction: column !important;
		align-items: flex-start !important;
	}

	#slider .content .btn {
		display: block;
		width: 100%;
		margin-bottom: 0.5rem;
	}
}

/* Inhoud zichtbaar als AOS niet start (anders opacity:0 op [data-aos]) */
body.fw-aos-fallback [data-aos],
html:not(.no-js) body.fw-aos-fallback [data-aos^="fade"] {
	opacity: 1 !important;
	transform: none !important;
	visibility: visible !important;
}
