/* ==========================================================================
   Neve Websiteverbeteraar – themastijlen
   Alle kleuren via CSS-variabelen (Customizer > Websiteverbeteraar).
   ========================================================================== */
:root {
	--wv-bg: #eff4fb;
	--wv-primary: #004aad;
	--wv-accent: #f04e29;
	--wv-text: #1d2939;
	--wv-dark: #061a3a;
	--wv-muted: color-mix(in srgb, var(--wv-text) 68%, #fff);
	--wv-line: color-mix(in srgb, var(--wv-primary) 12%, #fff);
	--wv-radius: 18px;
	--wv-shadow: 0 10px 30px -12px rgba(6, 26, 58, .25);
	--wv-shadow-lg: 0 30px 60px -20px rgba(6, 26, 58, .35);
	--wv-font-head: system-ui, -apple-system, "Segoe UI", sans-serif;
	--wv-font-body: system-ui, -apple-system, "Segoe UI", sans-serif;
	--wv-wrap: 1200px;
}

body.wv-site {
	font-family: var(--wv-font-body);
	color: var(--wv-text);
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

.wv-site h1, .wv-site h2, .wv-site h3, .wv-site h4, .wv-site h5, .wv-site h6 {
	font-family: var(--wv-font-head);
	color: var(--wv-primary);
	letter-spacing: -0.02em;
	line-height: 1.15;
	font-weight: 800;
}
.wv-site h1 { font-size: clamp(2.1rem, 4.6vw, 3.6rem); }
.wv-site h2 { font-size: clamp(1.7rem, 3.2vw, 2.6rem); }
.wv-site h3 { font-size: clamp(1.2rem, 2vw, 1.45rem); font-weight: 750; }
.wv-site h4 { font-size: 1.15rem; }

.wv-site a { color: var(--wv-primary); text-underline-offset: .18em; }
.wv-site a:hover { color: var(--wv-accent); }
.wv-site ::selection { background: var(--wv-accent); color: #fff; }

.wv-site :focus-visible {
	outline: 3px solid var(--wv-accent);
	outline-offset: 3px;
	border-radius: 6px;
}

/* Knoppen (ook Neve-/Gutenberg-knoppen) */
.wv-site .wp-block-button__link,
.wv-site .button,
.wv-site button.button,
.wv-site input[type="submit"] {
	background: var(--wv-accent);
	color: #fff;
	border-radius: 999px;
	font-weight: 700;
	padding: .85em 1.6em;
	border: 0;
	box-shadow: 0 10px 20px -10px color-mix(in srgb, var(--wv-accent) 80%, transparent);
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.wv-site .wp-block-button__link:hover,
.wv-site .button:hover,
.wv-site input[type="submit"]:hover {
	transform: translateY(-2px);
	color: #fff;
	background: color-mix(in srgb, var(--wv-accent) 88%, #000);
}

/* Header */
/* Header altijd boven de pagina-inhoud, zodat submenu's niet achter de hero vallen. */
.wv-site .hfg_header,
.wv-site header.header {
	position: relative;
	z-index: 1000;
}
.wv-site .hfg_header .sub-menu,
.wv-site .nav-ul .sub-menu,
.wv-site header.header .sub-menu {
	z-index: 1001;
}
.wv-site .hfg_header.wv-scrolled,
.wv-site header.header.wv-scrolled {
	box-shadow: 0 8px 30px -18px rgba(6, 26, 58, .45);
}
.wv-site .nav-ul > li > a,
.wv-site .primary-menu-ul > li > a,
.wv-site .header-main nav a {
	font-weight: 600;
}
.wv-site .wv-menu-cta { white-space: nowrap; margin-left: 6px; }
.wv-site .wv-menu-cta > a {
	display: inline-flex !important;
	align-items: center;
	gap: .5em;
	background: var(--wv-accent);
	color: #fff !important;
	border-radius: 999px;
	padding: .55em 1.15em !important;
	font-weight: 700;
	line-height: 1.2;
	box-shadow: 0 8px 18px -10px var(--wv-accent);
	transition: transform .2s ease;
}
.wv-site .wv-menu-cta > a:hover { transform: translateY(-1px); }
.wv-menu-cta__dot {
	width: 8px; height: 8px; border-radius: 50%;
	background: #fff;
	box-shadow: 0 0 0 0 rgba(255,255,255,.8);
	animation: wv-pulse 2s infinite;
}
@keyframes wv-pulse {
	0% { box-shadow: 0 0 0 0 rgba(255,255,255,.7); }
	70% { box-shadow: 0 0 0 8px rgba(255,255,255,0); }
	100% { box-shadow: 0 0 0 0 rgba(255,255,255,0); }
}

/* Volledige-breedte sjabloon */
.wv-canvas .neve-main > .container,
.wv-canvas .wv-canvas-content { max-width: none; padding: 0; }
.wv-canvas-article > * { margin-top: 0; margin-bottom: 0; }
.wv-canvas-article > :where(p, ul, ol, h2, h3, h4, .wp-block-group:not(.alignfull), .wp-block-columns:not(.alignfull)) {
	max-width: var(--wv-wrap);
	margin-left: auto;
	margin-right: auto;
	padding-left: 20px;
	padding-right: 20px;
}
.wv-canvas .nv-page-title-wrap, .wv-canvas .nv-title-meta-wrap { display: none; }

/* WhatsApp */
.wv-whatsapp {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 999;
	display: flex;
	align-items: center;
	gap: 8px;
	background: #25d366;
	color: #fff !important;
	border-radius: 999px;
	padding: 12px;
	box-shadow: 0 12px 30px -10px rgba(0,0,0,.45);
	text-decoration: none;
	transition: transform .2s ease, padding .2s ease;
}
.wv-whatsapp:hover { transform: translateY(-3px) scale(1.03); }
.wv-whatsapp__label {
	font-weight: 700;
	font-size: 15px;
	max-width: 0;
	overflow: hidden;
	white-space: nowrap;
	transition: max-width .3s ease, margin .3s ease;
}
.wv-whatsapp:hover .wv-whatsapp__label,
.wv-whatsapp:focus-visible .wv-whatsapp__label { max-width: 120px; margin-right: 6px; }

/* Mobiele actiebalk */
.wv-mobilebar { display: none; }
@media (max-width: 760px) {
	.wv-mobilebar {
		display: flex;
		position: fixed;
		left: 0; right: 0; bottom: 0;
		z-index: 998;
		gap: 8px;
		padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
		background: rgba(255,255,255,.96);
		backdrop-filter: blur(8px);
		box-shadow: 0 -10px 30px -18px rgba(6,26,58,.5);
		transform: translateY(110%);
		transition: transform .3s ease;
	}
	.wv-mobilebar.is-visible { transform: none; }
	.wv-mobilebar a {
		flex: 1;
		text-align: center;
		border-radius: 999px;
		padding: 12px 10px;
		font-weight: 700;
		text-decoration: none;
	}
	.wv-mobilebar__call { background: var(--wv-bg); color: var(--wv-primary) !important; flex: 0 0 34%; }
	.wv-mobilebar__cta { background: var(--wv-accent); color: #fff !important; }
	body.wv-site { padding-bottom: 72px; }
	.wv-whatsapp { bottom: 84px; right: 14px; }
}

/* Footer: Neve-copyright ("Neve | Mogelijk gemaakt door WordPress") nooit tonen. */
.wv-hide-neve-footer footer.site-footer { display: none; }
.wv-site .builder-item--footer_copyright,
.wv-site .site-footer .component-wrap:has(a[href*="themeisle.com"]),
.wv-site .site-footer p:has(> a[href*="themeisle.com"]) { display: none !important; }
.wv-footer {
	position: relative;
	overflow: hidden;
	background: var(--wv-dark);
	color: rgba(255,255,255,.82);
	padding: 72px 20px 24px;
}
.wv-footer__glow {
	position: absolute;
	inset: -40% -10% auto auto;
	width: 620px; height: 620px;
	background: radial-gradient(circle, color-mix(in srgb, var(--wv-primary) 70%, transparent) 0%, transparent 65%);
	opacity: .55;
	pointer-events: none;
}
.wv-footer__inner {
	position: relative;
	max-width: var(--wv-wrap);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.4fr 1fr 1.2fr 1fr;
	gap: 40px;
}
.wv-footer__brand { font-family: var(--wv-font-head); font-weight: 800; font-size: 1.5rem; color: #fff; margin: 0 0 12px; }
.wv-footer__intro { font-size: .95rem; margin: 0 0 18px; }
.wv-footer__title { font-family: var(--wv-font-head); color: #fff; font-weight: 750; margin: 0 0 14px; font-size: 1.05rem; }
.wv-footer__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.wv-footer a { color: rgba(255,255,255,.85); text-decoration: none; }
.wv-footer a:hover { color: #fff; text-decoration: underline; }
.wv-footer__nap { font-style: normal; font-size: .95rem; line-height: 1.8; }
.wv-footer__nap strong { color: #fff; }
.wv-footer__small { font-size: .82rem; opacity: .7; margin-top: 12px; }
.wv-footer__rating {
	display: inline-flex; align-items: center; gap: 10px;
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.14);
	border-radius: 999px;
	padding: 8px 16px;
	font-size: .9rem;
}
.wv-stars { color: #fbbc04; letter-spacing: 2px; }
.wv-footer__bottom {
	position: relative;
	max-width: var(--wv-wrap);
	margin: 48px auto 0;
	padding-top: 20px;
	border-top: 1px solid rgba(255,255,255,.12);
	display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px;
	font-size: .85rem;
}
.wv-footer__legal { list-style: none; display: flex; gap: 18px; margin: 0; padding: 0; }
@media (max-width: 960px) {
	.wv-footer__inner { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
	.wv-footer__inner { grid-template-columns: 1fr; gap: 28px; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* WhatsApp-knop van het thema volledig uit (ook bij oude gecachete instellingen). */
body:not(.wv-wa-on) .wv-whatsapp { display: none !important; }

/* Nette header (Customizer > Websiteverbeteraar > "Nette header").
   Neve zet links in <li><div class="wrap"><a>, daarom brede selectors met !important. */
.wv-header-clean .site-logo .nv-title-tagline-wrap,
.wv-header-clean .site-logo .site-title,
.wv-header-clean .site-logo .site-description,
.wv-header-clean .site-logo .title-with-logo small { display: none !important; }
.wv-header-clean .site-logo img,
.wv-header-clean .site-logo .custom-logo { width: auto !important; max-width: min(380px, 60vw) !important; max-height: var(--wv-logo-h, 72px) !important; height: var(--wv-logo-h, 72px) !important; object-fit: contain; }
@media (max-width: 960px) { .wv-header-clean .site-logo img, .wv-header-clean .site-logo .custom-logo { height: calc(var(--wv-logo-h, 72px) * .72) !important; max-height: calc(var(--wv-logo-h, 72px) * .72) !important; } }
.wv-no-header-btn .hfg_header .builder-item--button_base,
.wv-no-header-btn .hfg_header .builder-item--button_base_2,
.wv-no-header-btn .header-menu-sidebar .builder-item--button_base { display: none !important; }
.wv-header-clean .hfg_header .nav-ul,
.wv-header-clean .hfg_header .primary-menu-ul { flex-wrap: nowrap !important; align-items: center; }
.wv-header-clean .hfg_header .nav-ul li,
.wv-header-clean .hfg_header .nav-ul .wrap,
.wv-header-clean .hfg_header .nav-ul a { white-space: nowrap !important; }
.wv-header-clean .hfg_header .nav-ul a,
.wv-header-clean .hfg_header .nav-ul li > .wrap > a,
.wv-header-clean .hfg_header .primary-menu-ul a {
	text-transform: none !important;
	letter-spacing: 0 !important;
	font-family: var(--wv-font-head) !important;
	font-weight: 650 !important;
	font-size: 16px !important;
	color: var(--wv-dark);
}
.wv-header-clean .hfg_header .nav-ul a:hover,
.wv-header-clean .hfg_header .nav-ul .current-menu-item > .wrap > a,
.wv-header-clean .hfg_header .nav-ul .current-menu-item > a { color: var(--wv-accent) !important; }
.wv-header-clean .hfg_header .nav-ul .sub-menu a { font-size: 15px !important; font-weight: 550 !important; }
.wv-header-clean .hfg_header .button,
.wv-header-clean .hfg_header .builder-item--button_base a { white-space: nowrap !important; padding: .75em 1.35em !important; line-height: 1.2 !important; font-size: 15px !important; border-radius: 999px !important; text-transform: none !important; }
@media (min-width: 960px) and (max-width: 1440px) {
	.wv-header-clean .hfg_header .nav-ul > li { margin: 0 0 0 18px !important; padding: 0 !important; }
	.wv-header-clean .hfg_header .nav-ul a { font-size: 15px !important; }
}
@media (min-width: 960px) and (max-width: 1180px) {
	.wv-header-clean .hfg_header .nav-ul > li { margin-left: 12px !important; }
	.wv-header-clean .hfg_header .nav-ul a { font-size: 14px !important; }
	}

/* Zwevende bel-/WhatsApp-knoppen van andere plugins (bijv. Lokaal Zichtbaar) verbergen. */
.wv-site:not(.wv-wa-on) [class*="lvk"][class*="float"],
.wv-site:not(.wv-wa-on) [class*="lvk"][class*="fab"],
.wv-site:not(.wv-wa-on) [class*="lvk"][class*="sticky-btn"],
.wv-site:not(.wv-wa-on) [id*="lvk"][id*="float"] { display: none !important; }
