/* ==========================================================================
   MplusWEBSHOPS design system (1:1 uit het Lovable-ontwerp)
   Warm papier, grafiet, één accent: merk-limoengroen. Lettertype: Avenir Next / Nunito Sans.
   Opbouw: 1 tokens · 2 basis · 3 typografie · 4 knoppen · 5 layout · 6 header · 7 componenten
           8 formulier · 9 footer · 10 animatie · 11 responsive
   Elementor-widgets krijgen hun look via CSS-klassen (veld "CSS-klassen"), prefix lv-.
   ========================================================================== */

/* 1 · TOKENS ------------------------------------------------------------ */
@font-face {
	font-family: "Nunito Sans";
	src: url("../fonts/nunito-sans.woff2") format("woff2");
	font-weight: 200 1000;
	font-display: swap;
}

:root {
	--radius: 0.875rem;
	--background: oklch(1 0 0);
	--paper: oklch(0.96 0 0);
	--foreground: oklch(0.2 0.006 120);
	--card: oklch(1 0 0);
	--primary: oklch(0.2 0.006 120);
	--muted: oklch(0.945 0.008 106);
	--muted-foreground: oklch(0.47 0.003 0);
	--accent: oklch(0.75 0.145 127);
	--accent-foreground: oklch(0.18 0.03 125);
	--accent-ink: oklch(0.47 0.11 130);
	--accent-soft: oklch(0.94 0.05 125);
	--destructive: oklch(0.55 0.19 27);
	--border: oklch(0.89 0.008 106);
	--input: oklch(0.85 0.008 106);
	--ring: oklch(0.47 0.11 130);
	--ink: oklch(0.28 0 0);
	--ink-foreground: oklch(0.96 0.005 106);
	--ink-muted: oklch(0.72 0.008 110);
	--ink-line: oklch(1 0 0 / 12%);
	--shadow-lift: 0 1px 0 oklch(0 0 0 / 4%), 0 24px 48px -24px oklch(0.2 0.02 120 / 28%);
	--shadow-panel: 0 1px 2px oklch(0 0 0 / 6%), 0 40px 80px -40px oklch(0.2 0.02 120 / 35%);

	--font-sans: "Avenir Next", "Nunito Sans", ui-sans-serif, system-ui, sans-serif;
	--font-display: var(--font-sans);
	--font-mono: var(--font-sans);
	--header-h: 72px;
}

/* 2 · BASIS ------------------------------------------------------------- */
html {
	scroll-behavior: smooth;
}
body {
	background: var(--background);
	color: var(--foreground);
	font-family: var(--font-sans);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
* {
	border-color: var(--border);
}
::selection {
	background: var(--accent);
	color: var(--accent-foreground);
}
:focus-visible {
	outline: 2px solid var(--ring);
	outline-offset: 3px;
	border-radius: 2px;
}
body h1,
body h2,
body h3,
body h4 {
	font-family: var(--font-display);
	letter-spacing: -0.01em;
	font-weight: 700;
	text-wrap: balance;
}
.elementor-widget-heading .elementor-heading-title {
	font-family: var(--font-display);
	color: inherit;
	text-wrap: balance;
	line-height: 1.25;
}
body p {
	text-wrap: pretty;
}
body .elementor-widget-text-editor,
body .elementor-widget-text-editor p,
body .elementor-icon-list-text {
	font-family: var(--font-sans);
	color: inherit;
}
body .elementor-widget-text-editor p:last-child {
	margin-bottom: 0;
}
body .elementor-widget-text-editor p {
	margin-bottom: 1.2em;
}
a {
	color: inherit;
}

/* 3 · TYPOGRAFIE --------------------------------------------------------- */
.lv-display-xl .elementor-heading-title {
	font-weight: 700;
	font-size: clamp(2.3rem, 5vw, 4rem);
	line-height: 1.08;
	letter-spacing: -0.015em;
}
.lv-display-lg .elementor-heading-title {
	font-weight: 600;
	font-size: clamp(1.9rem, 3.4vw, 2.8rem);
	line-height: 1.12;
	letter-spacing: -0.01em;
}
.lv-display-md .elementor-heading-title {
	font-weight: 700;
	font-size: clamp(1.5rem, 2.4vw, 2.1rem);
	line-height: 1.1;
	letter-spacing: -0.025em;
}
.lv-h3-xl .elementor-heading-title {
	font-weight: 600;
	font-size: 1.25rem;
	line-height: 1.3;
	letter-spacing: -0.01em;
}
.lv-h3-lg .elementor-heading-title {
	font-weight: 600;
	font-size: 1.125rem;
	line-height: 1.3;
}
.lv-h3-2xl .elementor-heading-title {
	font-weight: 600;
	font-size: 1.5rem;
	line-height: 1.25;
}
.lv-lede,
.lv-lede p {
	font-size: clamp(1.05rem, 1.4vw, 1.25rem);
	line-height: 1.6;
	color: var(--muted-foreground);
}
.lv-eyebrow .elementor-heading-title,
.lv-eyebrow {
	font-family: var(--font-mono);
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0;
	color: var(--accent-ink);
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	line-height: 1.5;
}
.lv-ink .lv-eyebrow .elementor-heading-title {
	color: var(--accent);
}
.lv-mono-label,
.lv-mono-label p {
	font-family: var(--font-mono);
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--accent-ink);
	line-height: 1.4;
}
.lv-muted,
.lv-muted p {
	color: var(--muted-foreground);
}
.lv-small,
.lv-small p {
	font-size: 0.875rem;
	line-height: 1.6;
}
.lv-xs,
.lv-xs p {
	font-size: 0.75rem;
	line-height: 1.5;
	color: var(--muted-foreground);
}
.lv-dot-accent {
	color: var(--accent);
}
.lv-nowrap {
	white-space: nowrap;
}

/* 4 · KNOPPEN ------------------------------------------------------------ */
.lv-btn .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 0.95rem;
	line-height: 1;
	padding: 0.95rem 1.6rem;
	border-radius: 999px;
	border: 1px solid transparent;
	white-space: nowrap;
	transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
	box-shadow: none;
	text-shadow: none;
}
.lv-btn .elementor-button-content-wrapper {
	gap: 0.55rem;
}
.lv-btn.lv-arrow .elementor-button-text::after,
.lv-btn.lv-arrow-up .elementor-button-text::after,
.lv-btn.lv-ext .elementor-button-text::after {
	content: "";
	display: inline-block;
	width: 1rem;
	height: 1rem;
	margin-left: 0.55rem;
	vertical-align: -0.2em;
	background: currentColor;
	-webkit-mask: var(--lv-icon) center / contain no-repeat;
	mask: var(--lv-icon) center / contain no-repeat;
	transition: transform 0.2s ease;
}
.lv-btn.lv-arrow {
	--lv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E");
}
.lv-btn.lv-arrow-up {
	--lv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h10v10'/%3E%3Cpath d='M7 17 17 7'/%3E%3C/svg%3E");
}
.lv-btn.lv-ext {
	--lv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6'/%3E%3Cpath d='M10 14 21 3'/%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3C/svg%3E");
}
.lv-btn.lv-phone {
	--lv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
}
.lv-btn.lv-phone .elementor-button-text::before {
	content: "";
	display: inline-block;
	width: 1rem;
	height: 1rem;
	margin-right: 0.55rem;
	vertical-align: -0.2em;
	background: currentColor;
	-webkit-mask: var(--lv-icon) center / contain no-repeat;
	mask: var(--lv-icon) center / contain no-repeat;
}
.lv-btn.lv-arrow .elementor-button:hover .elementor-button-text::after,
.lv-btn.lv-arrow-up .elementor-button:hover .elementor-button-text::after {
	transform: translateX(3px);
}
.lv-btn-accent .elementor-button {
	background: var(--accent);
	color: var(--accent-foreground);
}
.lv-btn-accent .elementor-button:hover {
	background: oklch(0.8 0.15 127);
	color: var(--accent-foreground);
	box-shadow: 0 10px 24px -12px oklch(0.6 0.15 127 / 70%);
}
.lv-btn-dark .elementor-button {
	background: var(--ink);
	color: var(--ink-foreground);
}
.lv-btn-dark .elementor-button:hover {
	background: oklch(0.28 0.008 120);
	color: var(--ink-foreground);
}
.lv-btn-outline .elementor-button {
	background: transparent;
	color: var(--foreground);
	border-color: var(--input);
}
.lv-btn-outline .elementor-button:hover {
	background: var(--card);
	color: var(--foreground);
	border-color: var(--foreground);
}
.lv-btn-block,
.lv-btn-block .elementor-button {
	width: 100%;
}
.lv-link-arrow .elementor-button {
	background-color: transparent;
	background-image: linear-gradient(var(--accent), var(--accent));
	background-size: 100% 2px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	padding: 0 0 2px;
	border-radius: 0;
	color: var(--foreground);
	font-weight: 600;
	font-size: 1rem;
}
.lv-link-arrow .elementor-button:hover {
	color: var(--foreground);
	background-color: transparent;
}
.lv-underline a,
a.lv-underline {
	font-weight: 600;
	color: var(--foreground);
	text-decoration: underline;
	text-decoration-color: var(--accent);
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}

/* 5 · LAYOUT ------------------------------------------------------------- */
.e-con.lv-sec > .e-con-inner,
.e-con.lv-wrap > .e-con-inner {
	padding-inline: 1.25rem;
}
@media (min-width: 768px) {
	.e-con.lv-sec > .e-con-inner,
	.e-con.lv-wrap > .e-con-inner {
		padding-inline: 2rem;
	}
}
.e-con.lv-sec {
	padding-block: 5rem;
}
.e-con.lv-sec-hero {
	padding-block: 4rem;
}
.e-con.lv-sec-sm {
	padding-block: 2.5rem;
}
.e-con.lv-sec-md {
	padding-block: 3.5rem;
}
@media (min-width: 768px) {
	.e-con.lv-sec {
		padding-block: 7rem;
	}
	.e-con.lv-sec-hero {
		padding-block: 6rem;
	}
	.e-con.lv-sec-md {
		padding-block: 4rem;
	}
}
.e-con.lv-sec-hero-pb {
	padding-block: 4rem 5rem;
}
@media (min-width: 768px) {
	.e-con.lv-sec-hero-pb {
		padding-block: 6rem 7rem;
	}
}
.e-con.lv-pb-sec {
	padding-bottom: 5rem;
}
@media (min-width: 768px) {
	.e-con.lv-pb-sec {
		padding-bottom: 7rem;
	}
}
.lv-paper {
	background: var(--paper);
}
.lv-ink,
.e-con.lv-ink {
	background: var(--ink);
	color: var(--ink-foreground);
}
.lv-ink .lv-lede,
.lv-ink-muted,
.lv-ink-muted p {
	color: var(--ink-muted);
}
.lv-bb {
	border-bottom: 1px solid var(--border);
}
.lv-bt {
	border-top: 1px solid var(--border);
}
.lv-bty {
	border-block: 1px solid var(--border);
}
.lv-accent-rule {
	border-left: 2px solid var(--accent);
	padding-left: 2rem;
}

/* 12-koloms raster (alleen ≥1025px; daaronder 1 kolom) */
@media (min-width: 1025px) {
	.e-con.lv-g12 {
		grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
	}
	.e-con.lv-g2 {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
	.e-con.lv-c3 { grid-column: span 3; }
	.e-con.lv-c4 { grid-column: span 4; }
	.e-con.lv-c5 { grid-column: span 5; }
	.e-con.lv-c6 { grid-column: span 6; }
	.e-con.lv-c7 { grid-column: span 7; }
	.e-con.lv-c8 { grid-column: span 8; }
	.e-con.lv-c2 { grid-column: span 2; }
}
.e-con.lv-g12 > .e-con,
.e-con.lv-g2 > .e-con {
	--width: 100%;
	min-width: 0;
}
.e-con.lv-end {
	align-items: end;
}
.e-con.lv-center-y {
	align-items: center;
}

/* Cellen met 1px lijnen ("gap-px bg-border") */
.e-con.lv-cells {
	gap: 1px !important;
	background: var(--border);
	border: 1px solid var(--border);
	border-radius: 1rem;
	overflow: hidden;
}
.e-con.lv-cells.lv-cells--ink {
	background: var(--ink-line);
	border: 0;
	border-radius: 0;
}
.e-con.lv-cells > .e-con {
	background: var(--card);
	--width: 100%;
	min-width: 0;
}
.e-con.lv-cells.lv-cells--ink > .e-con {
	background: var(--ink);
}
.e-con.lv-cell {
	padding: 1.75rem;
}
.e-con.lv-cell-lg {
	padding: 2rem;
}
@media (min-width: 768px) {
	.e-con.lv-cell-lg {
		padding: 2.5rem;
	}
}
.e-con.lv-cell-hover {
	transition: background 0.2s;
}
.e-con.lv-cell-hover:hover {
	background: var(--accent-soft) !important;
}

/* 6 · HEADER ------------------------------------------------------------- */
.elementor-location-header {
	position: sticky;
	top: 0;
	z-index: 50;
}
body.admin-bar .elementor-location-header {
	top: 32px;
}
@media (max-width: 782px) {
	body.admin-bar .elementor-location-header {
		top: 0;
	}
}
.lv-header {
	background: color-mix(in oklab, var(--background) 90%, transparent);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border-bottom: 1px solid var(--border);
}
.lv-header > .e-con-inner {
	min-height: var(--header-h);
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
}
.lv-header .lv-logo img {
	height: 1.75rem;
	width: auto;
}
@media (min-width: 768px) {
	.lv-header .lv-logo img {
		height: 2rem;
	}
}
.e-con.lv-fit {
	--width: auto;
	width: auto;
	flex: 0 0 auto;
}
.lv-header .lv-nav {
	flex: 1 1 auto;
	width: auto;
}
.lv-header .lv-nav .elementor-nav-menu {
	gap: 2rem;
	flex-wrap: nowrap;
}
.lv-header .lv-nav .elementor-nav-menu--main > .elementor-nav-menu > li > a {
	font-family: var(--font-sans);
	font-size: 0.95rem;
	font-weight: 500;
	color: color-mix(in oklab, var(--foreground) 80%, transparent);
	padding: 0.4rem 0;
	background: none;
	transition: color 0.2s;
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
}
.lv-header .lv-nav .elementor-nav-menu--main > .elementor-nav-menu > li > a:hover,
.lv-header .lv-nav .elementor-nav-menu--main > .elementor-nav-menu > li.current-menu-item > a,
.lv-header .lv-nav .elementor-nav-menu--main > .elementor-nav-menu > li.current-menu-ancestor > a {
	color: var(--foreground);
}
.lv-header .lv-nav .elementor-nav-menu--main > .elementor-nav-menu > li.current-menu-item > a {
	text-decoration: underline;
	text-decoration-color: var(--accent);
	text-decoration-thickness: 2px;
	text-underline-offset: 8px;
}
.lv-header .lv-nav .sub-arrow {
	margin: 0;
	display: inline-flex;
}
.lv-header .lv-nav .sub-arrow svg,
.lv-header .lv-nav .sub-arrow i {
	width: 1rem;
	height: 1rem;
}
/* Dropdown-paneel: 34rem, afgerond, schaduw */
.lv-header .elementor-nav-menu--main .sub-menu {
	counter-reset: lvsub;
	width: 34rem;
	max-width: calc(100vw - 2rem);
	background: var(--card);
	border: 1px solid var(--border);
	border-radius: 1rem;
	padding: 0.5rem;
	box-shadow: var(--shadow-panel);
	margin-top: 1rem !important;
}
.lv-header .elementor-nav-menu--main .sub-menu li {
	counter-increment: lvsub;
}
.lv-header .elementor-nav-menu--main .sub-menu li a {
	display: grid;
	grid-template-columns: 2rem 1fr;
	column-gap: 0.75rem;
	align-items: start;
	padding: 1rem;
	border-radius: 0.125rem;
	color: var(--foreground) !important;
	font-family: var(--font-display);
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.2;
	background: none;
	text-align: left;
}
.lv-header .elementor-nav-menu--main .sub-menu li a::before {
	content: "0" counter(lvsub);
	grid-row: 1 / span 2;
	font-family: var(--font-mono);
	font-size: 0.75rem;
	font-weight: 400;
	color: var(--accent-ink);
	padding-top: 0.3rem;
}
.lv-header .elementor-nav-menu--main .sub-menu li a:hover {
	background: var(--muted);
}
.lv-header .elementor-nav-menu--main .sub-menu li a .lv-sub-desc {
	grid-column: 2;
	display: block;
	margin-top: 0.25rem;
	font-family: var(--font-sans);
	font-size: 0.875rem;
	font-weight: 400;
	color: var(--muted-foreground);
}
.lv-header .elementor-nav-menu--main .sub-menu li.lv-sub-all {
	border-top: 1px solid var(--border);
	margin-top: 0.25rem;
	counter-increment: none;
}
.lv-header .elementor-nav-menu--main .sub-menu li.lv-sub-all a {
	display: block;
	padding: 0.9rem 1rem 0.5rem;
	font-family: var(--font-sans);
	font-size: 0.875rem;
}
.lv-header .elementor-nav-menu--main .sub-menu li.lv-sub-all a::before {
	display: none;
}
.lv-header .lv-mobile-only {
	display: none !important;
}
.lv-header .lv-support a {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.95rem;
	font-weight: 500;
	color: color-mix(in oklab, var(--foreground) 80%, transparent);
	white-space: nowrap;
}
.lv-header .lv-support a:hover {
	color: var(--foreground);
}
.lv-header .lv-support svg {
	width: 1rem;
	height: 1rem;
}
.lv-header .elementor-menu-toggle {
	color: var(--foreground);
	background: none;
	width: 2.75rem;
	height: 2.75rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.lv-header .elementor-menu-toggle svg {
	fill: currentColor;
	width: 1.5rem;
	height: 1.5rem;
}
.lv-header .elementor-nav-menu--dropdown {
	background: var(--background);
	border-top: 1px solid var(--border);
	box-shadow: none;
	border-radius: 0;
}
.lv-header .elementor-nav-menu--dropdown a {
	font-family: var(--font-sans);
	font-size: 1.125rem;
	color: var(--foreground) !important;
	padding: 0.6rem 1.25rem;
	line-height: 1.4;
}
.lv-header .elementor-nav-menu--dropdown .sub-menu a {
	font-family: var(--font-display);
	font-size: 1.25rem;
	font-weight: 600;
	padding-left: 2.25rem;
}
.lv-header .elementor-nav-menu--dropdown .sub-menu a .lv-sub-desc {
	display: none;
}
.lv-header .elementor-nav-menu--dropdown li.lv-mobile-only {
	display: block !important;
}
.lv-header .elementor-nav-menu--dropdown li.lv-mobile-cta a {
	display: block;
	margin: 1rem 1.25rem 1.25rem;
	text-align: center;
	background: var(--accent);
	color: var(--accent-foreground) !important;
	border-radius: 999px;
	padding: 0.95rem 1.6rem;
	font-weight: 600;
	font-size: 0.95rem;
}
@media (max-width: 1024px) {
	.lv-header .lv-right {
		display: none !important;
	}
	.lv-header .lv-nav {
		flex: 0 0 auto;
	}
}
@media (min-width: 1025px) {
	.lv-header .lv-nav .elementor-menu-toggle {
		display: none;
	}
}

/* 7 · COMPONENTEN -------------------------------------------------------- */
.lv-hero-img img {
	width: 100%;
	height: auto;
	display: block;
}
.lv-hero {
	border-bottom: 1px solid var(--border);
}

/* Statistieken */
.lv-stat-val .elementor-heading-title {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 1.875rem;
	line-height: 1.2;
}
@media (min-width: 768px) {
	.lv-stat-val .elementor-heading-title {
		font-size: 2.25rem;
	}
}
.lv-stat-lbl,
.lv-stat-lbl p {
	margin-top: 0.25rem;
	font-size: 0.875rem;
	color: var(--muted-foreground);
}
.lv-ink .lv-stat-lbl,
.lv-ink .lv-stat-lbl p {
	color: var(--ink-muted);
}
.lv-stat-val--accent .elementor-heading-title {
	color: var(--accent);
	font-size: clamp(1.9rem, 3.4vw, 2.8rem);
	font-weight: 600;
}
.e-con.lv-stat-ink {
	border-top: 1px solid var(--ink-line);
	padding-top: 1.25rem;
}

/* Klantlogo's */
.lv-logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.5rem 2.5rem;
}
.lv-logos img {
	height: 2.25rem;
	width: auto;
	max-width: 120px;
	object-fit: contain;
	opacity: 0.6;
	filter: grayscale(1);
	transition: opacity 0.2s, filter 0.2s;
}
.lv-logos img:hover {
	opacity: 1;
	filter: none;
}
.lv-logos--lg {
	gap: 2rem 3rem;
}
.lv-logos--lg img {
	height: 2.5rem;
	max-width: 140px;
	opacity: 0.7;
}
@media (min-width: 1025px) {
	.lv-logos--right {
		justify-content: flex-end;
	}
}

/* Routes (3 kolommen met bovenlijn) */
.e-con.lv-routes {
	border-top: 1px solid var(--foreground);
}
.e-con.lv-route {
	position: relative;
	border-bottom: 1px solid var(--border);
	padding-block: 2rem;
	transition: background 0.2s;
	justify-content: space-between;
	min-height: 0;
}
@media (min-width: 768px) {
	.e-con.lv-route {
		min-height: 320px;
		padding: 2.5rem 1.75rem;
	}
	.e-con.lv-route + .lv-route {
		border-left: 1px solid var(--border);
	}
}
.e-con.lv-route:hover {
	background: var(--card);
}
.lv-route .lv-route-cta .elementor-button {
	padding: 0;
	background: none;
	border: 0;
	font-weight: 600;
	font-size: 1rem;
	color: var(--foreground);
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}
.lv-route .lv-route-cta .elementor-button::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
}
.lv-route .lv-route-cta .elementor-button-text::after {
	content: "";
	display: inline-block;
	width: 2.25rem;
	height: 2.25rem;
	margin-left: 0.5rem;
	border-radius: 999px;
	background-color: var(--muted);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h10v10'/%3E%3Cpath d='M7 17 17 7'/%3E%3C/svg%3E");
	background-size: 1rem;
	background-repeat: no-repeat;
	background-position: center;
	vertical-align: middle;
	transition: background-color 0.2s;
}
.lv-route:hover .lv-route-cta .elementor-button-text::after {
	background-color: var(--accent);
}
.lv-route-num,
.lv-route-num p {
	font-family: var(--font-mono);
	font-size: 0.875rem;
	color: var(--accent-ink);
}

/* Lijsten */
.lv-checks .elementor-icon-list-item {
	align-items: flex-start;
	gap: 0.75rem;
}
.lv-checks .elementor-icon-list-icon {
	display: none;
}
.lv-checks .elementor-icon-list-text {
	padding: 0 !important;
	line-height: 1.6;
}
.lv-checks .elementor-icon-list-item::before {
	content: "";
	flex: 0 0 0.5rem;
	width: 0.5rem;
	height: 0.5rem;
	margin-top: 0.6rem;
	background: var(--accent);
}
.lv-plain-list .elementor-icon-list-icon {
	display: none;
}
.lv-plain-list .elementor-icon-list-text {
	padding: 0 !important;
}
.lv-ink .lv-plain-list .elementor-icon-list-text {
	color: var(--ink-foreground);
}

/* Cel-teksten */
.lv-num-mono,
.lv-num-mono p {
	font-family: var(--font-mono);
	font-size: 0.75rem;
	color: var(--accent-ink);
}
.lv-ink .lv-num-mono,
.lv-ink .lv-num-mono p {
	color: var(--accent);
}
.lv-cell-text,
.lv-cell-text p {
	font-size: 0.875rem;
	line-height: 1.6;
	color: var(--muted-foreground);
}
.lv-ink .lv-cell-text,
.lv-ink .lv-cell-text p {
	color: var(--ink-muted);
}
.lv-cell-title .elementor-heading-title {
	font-family: var(--font-display);
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.3;
}

/* Samenwerking: genummerde rijen */
.e-con.lv-steps-list > .e-con {
	border-top: 1px solid color-mix(in oklab, var(--foreground) 15%, transparent);
	padding-block: 1.75rem;
	--width: 100%;
}
.e-con.lv-steps-list > .e-con:first-child {
	border-top-color: var(--foreground);
}
.e-con.lv-step-row {
	display: grid !important;
	grid-template-columns: 4rem 1fr;
	column-gap: 1rem;
	align-items: start;
}
.lv-step-n .elementor-heading-title {
	font-family: var(--font-display);
	font-size: 2.25rem;
	font-weight: 600;
	line-height: 1;
	color: var(--accent-ink);
}

/* Onderhoud-iconen */
.lv-icon-svg svg {
	width: 1.5rem;
	height: 1.5rem;
	color: var(--accent-ink);
	display: block;
}

/* Reviews */
.e-con.lv-review {
	border-top: 2px solid var(--foreground);
	padding-top: 1.25rem;
	justify-content: space-between;
	height: 100%;
}
.lv-quote,
.lv-quote p {
	font-size: 1.05rem;
	line-height: 1.6;
}
.lv-review-by,
.lv-review-by p {
	font-size: 0.875rem;
	margin-top: 1.5rem;
}
.lv-review-by strong {
	font-weight: 600;
}
.lv-review-by span {
	color: var(--muted-foreground);
}
.lv-rating {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	border: 1px solid var(--border);
	background: var(--card);
	padding: 0.75rem 1rem;
	font-size: 0.875rem;
	color: var(--foreground);
	transition: border-color 0.2s;
}
.lv-rating:hover {
	border-color: var(--foreground);
}
.lv-rating .lv-stars {
	display: inline-flex;
	color: var(--accent-ink);
}
.lv-rating .lv-stars svg {
	width: 1rem;
	height: 1rem;
	fill: currentColor;
	stroke: currentColor;
}
.lv-big-quote .elementor-heading-title {
	font-family: var(--font-display);
	font-weight: 700;
	font-size: clamp(1.5rem, 2.4vw, 2.1rem);
	line-height: 1.2;
	letter-spacing: -0.025em;
	max-width: 56rem;
}

/* Projecten */
.lv-pvis {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--card);
	border: 1px solid var(--border);
	border-radius: 1rem;
}
.lv-pvis--wide {
	aspect-ratio: 16 / 11;
}
.lv-pvis img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 1rem;
	transition: transform 0.5s;
	display: block;
}
.e-con.lv-pcard:hover .lv-pvis img {
	transform: scale(1.03);
}
.lv-pvis-empty {
	aspect-ratio: 4 / 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	background: var(--paper);
	color: var(--muted-foreground);
	border: 1px solid var(--border);
	border-radius: 1rem;
}
.lv-pvis-empty.lv-pvis--wide {
	aspect-ratio: 16 / 11;
}
.lv-pvis-empty svg {
	width: 1.5rem;
	height: 1.5rem;
}
.lv-pvis-empty span {
	font-family: var(--font-mono);
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.lv-ptag,
.lv-ptag p {
	font-family: var(--font-mono);
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--accent-ink);
}
.lv-pname .elementor-heading-title {
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.25;
}
.lv-ptitle,
.lv-ptitle p {
	font-weight: 500;
}
.lv-psum,
.lv-psum p {
	line-height: 1.625;
	color: var(--muted-foreground);
}
.lv-pname--lg .elementor-heading-title {
	font-size: clamp(1.9rem, 3.4vw, 2.8rem);
	line-height: 1.12;
	font-weight: 600;
}
.lv-ptitle--lg,
.lv-ptitle--lg p {
	font-family: var(--font-display);
	font-size: 1.25rem;
	font-weight: 500;
}

/* Abonnementen / pakketten */
.e-con.lv-plan {
	position: relative;
	padding: 1.75rem;
	justify-content: flex-start;
}
.e-con.lv-plan--lg {
	padding: 2rem;
}
.e-con.lv-plan--pop,
.e-con.lv-cells > .e-con.lv-plan--pop {
	background: var(--ink);
	color: var(--ink-foreground);
}
.lv-price {
	display: flex;
	align-items: baseline;
	gap: 0.25rem;
}
.lv-price .cur {
	font-size: 1.125rem;
}
.lv-price .amt {
	font-family: var(--font-display);
	font-size: 3rem;
	font-weight: 600;
	line-height: 1;
}
.lv-price .per {
	color: var(--muted-foreground);
}
.lv-plan--pop .lv-price .per {
	color: var(--ink-muted);
}
.lv-pop-badge {
	position: absolute;
	right: 1.25rem;
	top: 1.25rem;
	background: var(--accent);
	color: var(--accent-foreground);
	font-family: var(--font-mono);
	font-size: 0.65rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 0.25rem 0.5rem;
}
.lv-plan-list {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.875rem;
	display: grid;
	gap: 0.5rem;
}
.lv-plan-list .dim {
	color: var(--muted-foreground);
}
.lv-plan--pop .lv-plan-list .dim {
	color: var(--ink-muted);
}
.lv-plan details {
	border-top: 1px solid color-mix(in oklab, currentColor 15%, transparent);
	padding-top: 1rem;
	font-size: 0.875rem;
}
.lv-plan summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	cursor: pointer;
	list-style: none;
	font-weight: 600;
}
.lv-plan summary::-webkit-details-marker {
	display: none;
}
.lv-plan summary span {
	transition: transform 0.2s;
}
.lv-plan details[open] summary span {
	transform: rotate(45deg);
}
.lv-plan details ul {
	margin: 0.75rem 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.5rem;
}
.lv-plan details li {
	display: flex;
	gap: 0.5rem;
}
.lv-plan details li svg {
	flex: 0 0 1rem;
	width: 1rem;
	height: 1rem;
	margin-top: 0.15rem;
	color: var(--accent);
}
.e-con.lv-plan .lv-plan-cta {
	margin-top: auto;
	padding-top: 2rem;
	width: 100%;
}
.lv-plan--pop .lv-btn-outline .elementor-button {
	color: var(--ink-foreground);
	border-color: var(--ink-line);
}

/* Vergelijkingstabel */
.lv-table-wrap {
	overflow-x: auto;
}
.lv-table {
	width: 100%;
	min-width: 640px;
	border-collapse: collapse;
	text-align: left;
	font-size: 0.875rem;
}
.lv-table caption {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}
.lv-table thead tr {
	border-bottom: 2px solid var(--foreground);
}
.lv-table th {
	padding: 0.75rem;
	font-family: var(--font-display);
	font-size: 1rem;
	font-weight: 700;
}
.lv-table th:first-child {
	padding-left: 0;
	padding-right: 1rem;
}
.lv-table thead th:not(:first-child) {
	text-align: center;
}
.lv-table tbody tr {
	border-bottom: 1px solid var(--border);
}
.lv-table tbody th {
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: 0.875rem;
	padding: 0.875rem 1rem 0.875rem 0;
}
.lv-table td {
	padding: 0.875rem 0.75rem;
	text-align: center;
}
.lv-table td svg {
	width: 1rem;
	height: 1rem;
	display: inline-block;
	vertical-align: middle;
}
.lv-table td svg.yes {
	color: var(--accent-ink);
}
.lv-table td svg.no {
	color: var(--muted-foreground);
}

/* Info-balk */
.e-con.lv-note {
	background: var(--accent-soft);
	border: 1px solid var(--border);
	border-radius: 0.75rem;
	padding: 1.25rem;
	font-size: 0.875rem;
	flex-direction: row;
	align-items: flex-start;
}
.lv-note svg {
	width: 1.25rem;
	height: 1.25rem;
	flex: 0 0 1.25rem;
	color: var(--accent-ink);
}

.lv-price-line .elementor-heading-title {
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 600;
}

/* Aanpak (5 stappen met bovenlijn) */
.e-con.lv-aanpak > .e-con {
	border-top: 2px solid var(--foreground);
	padding-top: 1.25rem;
	--width: 100%;
}
.lv-aanpak-n .elementor-heading-title {
	font-family: var(--font-display);
	font-size: 1.875rem;
	font-weight: 600;
	color: var(--accent-ink);
	line-height: 1;
}

/* Diensten-overzicht en kennisbank (lijsten met lijnen) */
.e-con.lv-list {
	border-top: 1px solid var(--foreground);
}
.e-con.lv-list-item {
	position: relative;
	border-bottom: 1px solid var(--border);
	padding-block: 2.5rem;
	align-items: center;
	--width: 100%;
}
.lv-list-item .lv-list-link .elementor-button {
	padding: 0;
	border: 0;
	width: 3rem;
	height: 3rem;
	border-radius: 999px;
	background-color: var(--muted);
	justify-content: center;
	transition: background-color 0.2s;
}
.lv-list-item .lv-list-link .elementor-button::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
}
.lv-list-item:hover .lv-list-link .elementor-button {
	background-color: var(--accent);
}
.lv-list-item .lv-list-link .elementor-button-text {
	font-size: 0;
	display: block;
}
.lv-list-item .lv-list-link .elementor-button-text::after {
	content: "";
	display: block;
	margin: 0;
	width: 1.25rem;
	height: 1.25rem;
	background: var(--foreground);
	-webkit-mask: var(--lv-icon) center / contain no-repeat;
	mask: var(--lv-icon) center / contain no-repeat;
}
.lv-art-date,
.lv-art-date p {
	font-size: 0.875rem;
	color: var(--muted-foreground);
}
.lv-art-title .elementor-heading-title {
	font-family: var(--font-display);
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.3;
}
@media (min-width: 768px) {
	.lv-art-title .elementor-heading-title {
		font-size: 1.5rem;
	}
}

/* FAQ (toggle-widget) */
.lv-faq .elementor-toggle {
	border-block: 1px solid var(--border);
}
.lv-faq .elementor-toggle-item {
	border: 0;
	border-top: 1px solid var(--border);
	margin: 0;
}
.lv-faq .elementor-toggle-item:first-child {
	border-top: 0;
}
.lv-faq .elementor-tab-title {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 1.5rem 0;
	font-family: var(--font-display);
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.4;
	color: var(--foreground);
	cursor: pointer;
	border: 0;
	background: none;
	flex-direction: row-reverse;
}
@media (min-width: 768px) {
	.lv-faq .elementor-tab-title {
		font-size: 1.25rem;
	}
}
.lv-faq .elementor-tab-title a {
	color: inherit;
	flex: 1;
}
.lv-faq .elementor-toggle-icon {
	flex: 0 0 1.75rem;
	width: 1.75rem;
	height: 1.75rem;
	margin: 0.2rem 0 0;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--border);
	color: var(--foreground);
	transition: transform 0.2s, background 0.2s, border-color 0.2s;
	float: none;
}
.lv-faq .elementor-toggle-icon .elementor-toggle-icon-closed,
.lv-faq .elementor-toggle-icon .elementor-toggle-icon-opened {
	display: none;
}
.lv-faq .elementor-toggle-icon::before {
	content: "+";
	font-size: 1.1rem;
	font-family: var(--font-sans);
	line-height: 1;
}
.lv-faq .elementor-tab-title.elementor-active .elementor-toggle-icon {
	transform: rotate(45deg);
	border-color: var(--accent);
	background: var(--accent);
}
.lv-faq .elementor-tab-content {
	padding: 0 3rem 1.75rem 0;
	max-width: 48rem;
	line-height: 1.625;
	color: var(--muted-foreground);
	border: 0;
	font-size: 1rem;
}

/* CTA-band */
.lv-cta {
	position: relative;
	overflow: hidden;
	background: var(--ink);
	color: var(--ink-foreground);
}
.lv-cta::before {
	content: "";
	position: absolute;
	right: -6rem;
	top: -6rem;
	width: 18rem;
	height: 18rem;
	background: var(--accent);
	opacity: 0.9;
	clip-path: polygon(0 0, 100% 0, 100% 100%);
	pointer-events: none;
}
.lv-cta > .e-con-inner {
	position: relative;
}
.lv-cta .lv-cta-h .elementor-heading-title {
	color: var(--ink-foreground);
}
.lv-cta .lv-cta-text,
.lv-cta .lv-cta-text p {
	font-size: 1.125rem;
	line-height: 1.6;
	color: var(--ink-muted);
	max-width: 42rem;
}
.lv-cta .lv-cta-phone a {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--ink-foreground);
}
.lv-cta .lv-cta-phone a:hover {
	color: var(--accent);
}
.lv-cta .lv-cta-phone svg {
	width: 1rem;
	height: 1rem;
}
.lv-cta .lv-cta-hours,
.lv-cta .lv-cta-hours p {
	font-size: 0.875rem;
	color: var(--ink-muted);
}
@media (min-width: 1025px) {
	.lv-cta .lv-cta-side {
		align-items: flex-end;
		text-align: right;
	}
}

/* ConnectVisual */
.lv-cv {
	position: relative;
	margin-inline: auto;
	width: 100%;
	max-width: 600px;
	font-family: var(--font-sans);
}
.lv-cv .row {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
}
.lv-cv .card {
	border: 1px solid var(--border);
	background: var(--card);
	border-radius: 1rem;
	box-shadow: var(--shadow-panel);
	animation: rise 0.7s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}
.lv-cv .kassa {
	padding: 1rem;
	animation-delay: 0.1s;
}
.lv-cv .shop {
	overflow: hidden;
	animation-delay: 0.25s;
}
.lv-cv .kassa-top {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	border-bottom: 1px solid var(--border);
	padding-bottom: 0.75rem;
}
.lv-cv .kassa-top svg {
	width: 1rem;
	height: 1rem;
	color: var(--accent-ink);
}
.lv-cv .mono {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.lv-cv .bon {
	margin-top: 0.75rem;
	border-radius: 0.125rem;
	background: var(--ink);
	color: var(--ink-foreground);
	padding: 0.75rem;
}
.lv-cv .bon .t {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	color: var(--ink-muted);
}
.lv-cv .bon .l {
	margin-top: 0.5rem;
	display: grid;
	gap: 0.375rem;
	font-size: 0.75rem;
}
.lv-cv .bon .l div,
.lv-cv .bon .tot {
	display: flex;
	justify-content: space-between;
}
.lv-cv .bon .tot {
	margin-top: 0.75rem;
	border-top: 1px solid var(--ink-line);
	padding-top: 0.5rem;
	font-size: 0.875rem;
	font-weight: 600;
}
.lv-cv .keys {
	margin-top: 0.75rem;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.375rem;
}
.lv-cv .keys span {
	height: 1.5rem;
	border-radius: 0.125rem;
	background: var(--muted);
}
.lv-cv .keys span:first-child {
	background: var(--accent);
}
.lv-cv svg.lines {
	height: 10rem;
	width: 4rem;
}
@media (min-width: 768px) {
	.lv-cv svg.lines {
		width: 6rem;
	}
}
.lv-cv .lines .a {
	stroke: var(--accent-ink);
	stroke-dasharray: 4 8;
	animation: flow-right 1.1s linear infinite;
}
.lv-cv .lines .b {
	stroke: color-mix(in oklab, var(--foreground) 40%, transparent);
	stroke-dasharray: 4 8;
	animation: flow-left 1.1s linear infinite;
}
.lv-cv .shop-top {
	display: flex;
	align-items: center;
	gap: 0.375rem;
	border-bottom: 1px solid var(--border);
	padding: 0.625rem 0.75rem;
}
.lv-cv .shop-top i {
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: var(--border);
}
.lv-cv .shop-top span {
	margin-left: 0.5rem;
	display: flex;
	align-items: center;
	gap: 0.25rem;
	font-family: var(--font-mono);
	font-size: 0.65rem;
	color: var(--muted-foreground);
}
.lv-cv .shop-top span svg {
	width: 0.75rem;
	height: 0.75rem;
}
.lv-cv .shop-body {
	padding: 0.75rem;
}
.lv-cv .prods {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.5rem;
}
.lv-cv .prod {
	border: 1px solid var(--border);
	padding: 0.5rem;
}
.lv-cv .prod .im {
	aspect-ratio: 1;
	background: var(--paper);
}
.lv-cv .prod:first-child .im {
	background: var(--accent-soft);
}
.lv-cv .prod p {
	margin: 0.375rem 0 0;
	font-size: 0.7rem;
	font-weight: 500;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.lv-cv .prod p.st {
	margin-top: 0;
	font-size: 0.65rem;
	font-weight: 400;
	color: var(--accent-ink);
}
.lv-cv .neworder {
	margin-top: 0.625rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: var(--ink);
	color: var(--ink-foreground);
	padding: 0.5rem 0.625rem;
	font-size: 0.7rem;
}
.lv-cv .neworder b {
	font-family: var(--font-mono);
	color: var(--accent);
	font-weight: 400;
}
.lv-cv .legend {
	margin-top: 1.5rem;
	display: grid;
	gap: 0.75rem;
	font-size: 0.875rem;
}
@media (min-width: 640px) {
	.lv-cv .legend {
		grid-template-columns: 1fr 1fr;
	}
}
.lv-cv .legend > div {
	border-left: 2px solid var(--accent);
	padding-left: 0.75rem;
}
.lv-cv .legend > div + div {
	border-left-color: var(--foreground);
}
.lv-cv .legend .lab {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--accent-ink);
}
.lv-cv .legend > div + div .lab {
	color: var(--muted-foreground);
}
.lv-cv .legend ul {
	margin: 0.375rem 0 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 0.75rem;
	color: color-mix(in oklab, var(--foreground) 80%, transparent);
}
.lv-cv .legend li {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
}
.lv-cv .legend li svg {
	width: 0.875rem;
	height: 0.875rem;
}

/* Hero-aside lijst (managed onderhoud) */
.e-con.lv-aside-row {
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.25rem 1.5rem;
}
.lv-aside-row .lv-aside-t .elementor-heading-title {
	font-family: var(--font-display);
	font-size: 1.125rem;
	font-weight: 600;
}
.lv-aside-row .lv-aside-d,
.lv-aside-row .lv-aside-d p {
	text-align: right;
	font-size: 0.875rem;
	color: var(--muted-foreground);
}
.lv-aside-row > .elementor-widget {
	width: auto;
}

/* Team */
.e-con.lv-team > .e-con {
	padding: 1.5rem;
	transition: background 0.2s;
	--width: 100%;
}
.e-con.lv-team > .e-con:hover {
	background: var(--accent-soft);
}
.lv-team-name .elementor-heading-title {
	font-family: var(--font-display);
	font-size: 1.25rem;
	font-weight: 600;
}
.lv-team-role,
.lv-team-role p {
	margin-top: 0.25rem;
	font-size: 0.875rem;
	color: var(--muted-foreground);
}
.lv-photo img {
	width: 100%;
	border-radius: 1rem;
	object-fit: cover;
	aspect-ratio: 4 / 3;
	display: block;
}
@media (min-width: 1025px) {
	.lv-photo--tall img {
		aspect-ratio: auto;
		height: 100%;
	}
}

/* Support-tegels */
.e-con.lv-support-tile {
	position: relative;
	padding: 2rem;
	transition: background 0.2s;
	justify-content: flex-start;
}
.e-con.lv-support-tile:hover {
	background: var(--accent-soft) !important;
}
.lv-support-tile .lv-support-cta .elementor-button {
	padding: 0;
	background: none;
	border: 0;
	font-weight: 600;
	color: var(--foreground);
}
.lv-support-tile .lv-support-cta .elementor-button::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
}
.lv-support-tile .lv-support-cta {
	margin-top: auto;
	padding-top: 2rem;
}

/* Contact */
.e-con.lv-form-card {
	background: var(--card);
	border: 1px solid var(--border);
	border-radius: 1.5rem;
	box-shadow: var(--shadow-panel);
	padding: 1.5rem;
}
@media (min-width: 768px) {
	.e-con.lv-form-card {
		padding: 2.5rem;
	}
}
.lv-contact-list {
	display: grid;
	gap: 1.5rem;
}
.lv-contact-item {
	display: flex;
	gap: 1rem;
}
.lv-contact-item svg {
	flex: 0 0 1.25rem;
	width: 1.25rem;
	height: 1.25rem;
	margin-top: 0.25rem;
	color: var(--accent-ink);
}
.lv-contact-item .sub {
	font-size: 0.875rem;
	color: var(--muted-foreground);
}
.lv-contact-item .tel {
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 600;
}
.lv-contact-item .tel:hover {
	color: var(--accent-ink);
}
.lv-contact-item address {
	font-style: normal;
}
.lv-contact-item p {
	margin: 0;
}

.lv-404 {
	text-align: center;
}

/* Blog (afgeleid, niet in het Lovable-ontwerp) */
.lv-posts .elementor-post {
	border: 1px solid var(--border);
	border-radius: 1rem;
	overflow: hidden;
	background: var(--card);
}
.lv-posts .elementor-post__title a {
	font-family: var(--font-display);
	font-weight: 600;
	color: var(--foreground);
}
.lv-posts .elementor-post__meta-data {
	color: var(--accent-ink);
}
.lv-posts .elementor-post__text {
	padding: 1.25rem 1.5rem 1.5rem;
}
.lv-post-content {
	font-size: 1.1rem;
	line-height: 1.75;
}
.lv-post-content h2,
.lv-post-content h3 {
	font-family: var(--font-display);
	margin: 2rem 0 0.75rem;
}
.lv-post-content a {
	text-decoration: underline;
	text-decoration-color: var(--accent);
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}
.lv-post-image img {
	border-radius: 1rem;
	width: 100%;
}

/* 8 · FORMULIER ---------------------------------------------------------- */
.lv-form .elementor-field-label {
	display: block;
	margin-bottom: 0.375rem;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--foreground);
}
.lv-form .elementor-field-textual,
.lv-form .elementor-field-group .elementor-field,
.lv-form .elementor-select-wrapper select {
	width: 100%;
	background: var(--card);
	border: 1px solid var(--input);
	border-radius: var(--radius);
	padding: 0.8rem 0.95rem;
	font-family: var(--font-sans);
	font-size: 1rem;
	color: var(--foreground);
	transition: border-color 0.15s, box-shadow 0.15s;
	min-height: 0;
}
.lv-form .elementor-field-textual:focus,
.lv-form .elementor-select-wrapper select:focus {
	outline: none;
	border-color: var(--accent-ink);
	box-shadow: 0 0 0 3px var(--accent-soft);
}
.lv-form .elementor-field-group {
	margin-bottom: 1.25rem;
}
.lv-form .elementor-button {
	display: inline-flex;
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 0.95rem;
	line-height: 1;
	padding: 0.95rem 1.6rem;
	border-radius: 999px;
	background: var(--ink);
	color: var(--ink-foreground);
	border: 0;
	transition: background 0.2s;
}
.lv-form .elementor-button:hover {
	background: oklch(0.28 0.008 120);
}
.lv-form .elementor-message-success {
	margin-top: 1rem;
	background: var(--accent-soft);
	border: 1px solid var(--border);
	border-radius: 0.75rem;
	padding: 1rem;
	font-size: 0.875rem;
	color: var(--foreground);
}
.lv-form .elementor-message-danger {
	color: var(--destructive);
	font-size: 0.875rem;
}

/* 9 · FOOTER ------------------------------------------------------------- */
.lv-footer {
	background: var(--ink);
	color: var(--ink-foreground);
}
.lv-footer .lv-wordmark .elementor-heading-title {
	font-family: var(--font-display);
	font-size: 1.875rem;
	font-weight: 600;
	letter-spacing: -0.025em;
	line-height: 1.2;
	color: var(--ink-foreground);
}
.lv-footer .lv-wordmark .elementor-heading-title span {
	color: var(--accent);
}
.lv-footer .lv-tagline,
.lv-footer .lv-tagline p {
	color: var(--ink-muted);
}
.lv-footer .lv-since,
.lv-footer .lv-since p {
	max-width: 20rem;
	font-size: 0.875rem;
	color: var(--ink-muted);
}
.lv-footer .lv-foot-title .elementor-heading-title {
	font-family: var(--font-mono);
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 400;
	color: var(--ink-muted);
}
.lv-footer .lv-foot-links .elementor-icon-list-icon {
	display: none;
}
.lv-footer .lv-foot-links .elementor-icon-list-text {
	padding: 0 !important;
	color: var(--ink-foreground);
}
.lv-footer .lv-foot-links a:hover .elementor-icon-list-text,
.lv-footer a:hover {
	color: var(--accent);
}
.lv-footer .lv-tel a {
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 600;
	display: block;
	line-height: 1.3;
}
.lv-footer .lv-addr,
.lv-footer .lv-addr p {
	margin: 0;
	line-height: 1.6;
	color: var(--ink-foreground);
}
.lv-footer .lv-addr .muted {
	color: var(--ink-muted);
}
.lv-footer .lv-socials,
.lv-footer .lv-socials p {
	display: flex;
	gap: 1rem;
	font-size: 0.875rem;
	color: var(--ink-muted);
}
.lv-footer .lv-socials a {
	color: var(--ink-muted);
}
.lv-footer .lv-legal,
.lv-footer .lv-legal p {
	font-size: 0.75rem;
	color: var(--ink-muted);
}
.e-con.lv-footer-bottom {
	border-top: 1px solid var(--ink-line);
}

/* 10 · ANIMATIE ---------------------------------------------------------- */
@keyframes flow-right {
	from {
		stroke-dashoffset: 24;
	}
	to {
		stroke-dashoffset: 0;
	}
}
@keyframes flow-left {
	from {
		stroke-dashoffset: 0;
	}
	to {
		stroke-dashoffset: 24;
	}
}
@keyframes rise {
	from {
		opacity: 0;
		transform: translateY(14px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}
.lv-rise {
	animation: rise 0.7s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}
body.elementor-editor-active .lv-rise {
	animation: none;
}
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}
}

/* 11 · RESPONSIVE -------------------------------------------------------- */
@media (max-width: 1024px) {
	.lv-accent-rule {
		padding-left: 1.5rem;
	}
}
@media (max-width: 767px) {
	.e-con.lv-step-row {
		grid-template-columns: 3rem 1fr;
	}
	.lv-faq .elementor-tab-content {
		padding-right: 0;
	}
}

/* 12 · HULPKLASSEN -------------------------------------------------------- */
.e-con.lv-sechead {
	max-width: 48rem;
}
.lv-mw-md { max-width: 28rem; }
.lv-mw-xl { max-width: 36rem; }
.lv-mw-2xl { max-width: 42rem; }
.lv-mw-4xl { max-width: 56rem; }
.lv-lg,
.lv-lg p {
	font-size: 1.125rem;
	line-height: 1.75;
}
.lv-relaxed,
.lv-relaxed p {
	line-height: 1.625;
}
.lv-mono-label--muted,
.lv-mono-label--muted p {
	color: var(--ink-muted);
}
.e-con.lv-cell-xl {
	padding: 2rem;
}
@media (min-width: 768px) {
	.e-con.lv-cell-xl {
		padding: 3rem;
	}
}
@media (min-width: 1025px) {
	.e-con.lv-o2 {
		order: 2;
	}
}
.e-con.lv-framed {
	border-radius: 1rem;
	overflow: hidden;
	border: 1px solid var(--border);
	background: var(--card);
	box-shadow: var(--shadow-panel);
}
.e-con.lv-framed img {
	width: 100%;
	display: block;
}
/* 5-koloms fotoraster (3 + 2) */
@media (min-width: 768px) {
	.e-con.lv-g5 {
		grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
	}
	.e-con.lv-g5 > .lv-c3 {
		grid-column: span 3;
	}
	.e-con.lv-g5 > .lv-c2 {
		grid-column: span 2;
	}
}
.e-con.lv-g5 > .e-con {
	--width: 100%;
}
.e-con.lv-photos {
	display: grid;
}
/* abonnementen: 4 kolommen pas vanaf 1280px (xl), daaronder 2 */
@media (min-width: 1025px) and (max-width: 1279px) {
	.e-con.lv-plans4 {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}
/* lijst-items (diensten-overzicht, kennisbank) */
.lv-li-num {
	flex: 0 0 6rem;
}
.lv-li-body {
	flex: 1 1 auto;
	min-width: 0;
}
.lv-li-date {
	flex: 0 0 10rem;
}
.lv-li-cat {
	flex: 0 0 8rem;
}
.e-con.lv-list-item > .elementor-widget-button {
	flex: 0 0 auto;
	width: auto;
}
@media (max-width: 767px) {
	.e-con.lv-list-item {
		align-items: flex-start;
		gap: 0.75rem;
	}
	.lv-li-num,
	.lv-li-date,
	.lv-li-cat {
		flex: 0 0 auto;
	}
}
.lv-stats3 {
	width: 100%;
}
.lv-sec-md-x {
	padding-block: 5rem;
}

/* 13 · CONTAINER-STANDAARDEN ---------------------------------------------- */
.e-con {
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
}
.lv-btn .elementor-button,
.elementor-widget-button .elementor-button {
	font-family: var(--font-sans);
}

/* 14 · FINETUNING ---------------------------------------------------------- */
.lv-cv .row {
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
}
.lv-cv .card {
	min-width: 0;
}
@media (min-width: 1025px) {
	.e-con.lv-g5 > .lv-c2 {
		display: flex;
	}
	.e-con.lv-g5 > .lv-c2 > .elementor-widget-image,
	.e-con.lv-g5 > .lv-c2 .elementor-widget-container {
		height: 100%;
		width: 100%;
	}
	.lv-photo--tall img {
		height: 100%;
		aspect-ratio: auto;
	}
}

/* 15 · MAX-BREEDTE OP WIDGETS (wint van Elementor's eigen max-width) -------- */
.elementor-widget.lv-mw-md { max-width: 28rem !important; }
.elementor-widget.lv-mw-xl { max-width: 36rem !important; }
.elementor-widget.lv-mw-2xl { max-width: 42rem !important; }
.elementor-widget.lv-mw-4xl { max-width: 56rem !important; }
