/*
Theme Name: Custom Ultify Theme
Template: astra
Version: 1.0.0
*/

/* =========================================================
   ADOBE FONTS EXAMPLE
========================================================= */
/* .mundial {
  font-family: "mundial", sans-serif;
  font-weight: 400;
  font-style: normal;
} */

/* =========================================================
   VARIABLES
========================================================= */
:root {
	--brand-primary: #d39b00;
	--brand-secondary: #0068b4;
	--header-height: 0px;
}

/* =========================================================
   GENERAL
========================================================= */
html,
body {
	overflow-x: hidden !important;
}

body {
	background-color: #fff !important;
	font-size: 16px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	color: #000;
}

p {
	margin: 0 !important;
}

/* =========================================================
   ASTRA LAYOUT RESET
   Zorgen dat er geen standaard sidebars/padding naast content komt
========================================================= */
.ast-container {
	max-width: 100% !important;
	padding: 0 !important;
}

.ast-article-single {
	padding: 0 !important;
}

.ast-container .content-area {
	margin: 0 !important;
}

.elementor-location-footer {
	background-color: #fff;
}

.gt_switcher_wrapper {
	background-color: #fff !important;
	padding: 4px 8px !important;
}

/* =========================================================
   GLOBAL IMAGE RADIUS
   Geeft alle afbeeldingen én hun wrappers afgeronde hoeken
   Uitzonderingen:
   - wp-image-271 en wp-image-272 behouden hun eigen custom styling
   - Elementor site logo widget blijft zonder afgeronde hoeken
========================================================= */
img:not(.wp-image-271):not(.wp-image-272),
.elementor-widget-image:not(:has(.wp-image-271)):not(:has(.wp-image-272)):not(
		.elementor-widget-theme-site-logo
	),
.elementor-widget-image:not(:has(.wp-image-271)):not(:has(.wp-image-272)):not(
		.elementor-widget-theme-site-logo
	)
	.elementor-widget-container,
.elementor-widget-image:not(:has(.wp-image-271)):not(:has(.wp-image-272)):not(
		.elementor-widget-theme-site-logo
	)
	.elementor-image,
.elementor-widget-image:not(:has(.wp-image-271)):not(:has(.wp-image-272)):not(
		.elementor-widget-theme-site-logo
	)
	a,
.wp-post-image:not(.wp-image-271):not(.wp-image-272) {
	border-radius: 25px !important;
}

/* Zorgt dat gewone afbeeldingen binnen de afgeronde container blijven */
.elementor-widget-image:not(:has(.wp-image-271)):not(:has(.wp-image-272)):not(
		.elementor-widget-theme-site-logo
	),
.elementor-widget-image:not(:has(.wp-image-271)):not(:has(.wp-image-272)):not(
		.elementor-widget-theme-site-logo
	)
	.elementor-widget-container,
.elementor-widget-image:not(:has(.wp-image-271)):not(:has(.wp-image-272)):not(
		.elementor-widget-theme-site-logo
	)
	.elementor-image,
.elementor-widget-image:not(:has(.wp-image-271)):not(:has(.wp-image-272)):not(
		.elementor-widget-theme-site-logo
	)
	a {
	overflow: hidden !important;
}

/* Site logo expliciet zonder radius */
.elementor-widget-theme-site-logo,
.elementor-widget-theme-site-logo .elementor-widget-container,
.elementor-widget-theme-site-logo a,
.elementor-widget-theme-site-logo img {
	border-radius: 0 !important;
	overflow: visible !important;
}

/* =========================================================
   ICONS
========================================================= */
.elementor-icon-wrapper {
	display: flex;
	justify-content: center;
	align-items: center;
}

.icon-border .elementor-icon-wrapper .elementor-icon {
	border: solid 2px var(--brand-primary) !important;
}

/* =========================================================
   BACK TO TOP BUTTON
========================================================= */
#ast-scroll-top {
	display: none !important;
}

.ast-scroll-to-top-right {
	background-color: var(--brand-primary) !important;
}

/* =========================================================
   COOKIEYES
========================================================= */
.cky-btn-revisit-wrapper {
	background-color: var(--neutral-dark) !important;
}

.cky-prefrence-btn-wrapper {
	gap: 12px;
}

.cky-notice-btn-wrapper {
	gap: 12px;
}

.cky-btn {
	margin-right: 0px !important;
}

/* =========================================================
   DEBUGGING
========================================================= */
.c-debug {
	background-color: hotpink !important;
}

/* =========================================================
   ELEMENTOR BUTTON BASE FIX
========================================================= */
.elementor-button-text {
	font-size: 16px !important;
}

/* =========================================================
   HEADER
========================================================= */
.ultify-hover-effect.elementor-widget-button,
.ultify-hover-effect.elementor-widget-button .elementor-widget-container {
	line-height: 0 !important;
}

.ultify-hover-effect .elementor-button,
.ultify-hover-effect .wp-block-button__link {
	--hover-color: var(--brand-primary);
	position: relative;
	overflow: hidden;
	z-index: 1;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	line-height: 1 !important;
	vertical-align: top !important;
}

.ultify-hover-effect .elementor-button::before,
.ultify-hover-effect .elementor-button::after,
.ultify-hover-effect .wp-block-button__link::before,
.ultify-hover-effect .wp-block-button__link::after {
	content: '';
	display: block;
	width: 50px;
	height: 50px;
	transform: translate(-50%, -50%);
	position: absolute;
	border-radius: 50%;
	z-index: -1;
	background-color: var(--hover-color);
	transition: 1s ease;
	pointer-events: none;
}

.ultify-hover-effect .elementor-button::before,
.ultify-hover-effect .wp-block-button__link::before {
	top: -1em;
	left: -1em;
}

.ultify-hover-effect .elementor-button::after,
.ultify-hover-effect .wp-block-button__link::after {
	left: calc(100% + 1em);
	top: calc(100% + 1em);
}

.ultify-hover-effect .elementor-button:hover::before,
.ultify-hover-effect .elementor-button:hover::after,
.ultify-hover-effect .wp-block-button__link:hover::before,
.ultify-hover-effect .wp-block-button__link:hover::after {
	height: 410px;
	width: 410px;
}

.header-logo-nav {
	width: max-content !important;
	min-width: max-content !important;
	flex: 0 0 auto !important;
	white-space: nowrap !important;
}

.header-contact-offerte {
	width: max-content !important;
	min-width: max-content !important;
	flex: 0 0 auto !important;
	white-space: nowrap !important;
	margin-left: auto !important;
}

.header-contact-offerte .elementor-button,
.header-contact-offerte .elementor-button-text {
	white-space: nowrap !important;
}

@media (max-width: 520px) {
	.header-contact-offerte .ultify-hover-effect {
		display: none !important;
	}
}

/* =========================================================
   HERO
========================================================= */
.hero-section {
	position: relative;
	width: 100%;
	min-height: calc(100svh - var(--header-height, 0px)) !important;
	background-size: cover !important;
	background-position: center center !important;
	background-repeat: no-repeat !important;

	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
}

.hero-section > .e-con-inner {
	min-height: calc(100svh - var(--header-height, 0px)) !important;
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
}

@media (max-width: 1024px) {
	.hero-section {
		background-position: right center !important;
	}
}

@media (max-width: 767px) {
	.hero-section {
		background-position: right center !important;
	}
}

/* =========================================================
   HERO SHAPES
   Zwarte overlay + blauwe rechterbovenhoek + gele balk/driehoek links
========================================================= */

.hero-shapes {
	position: relative !important;
	overflow: hidden !important;
	isolation: isolate;
}

/* Zwarte overlay over de volledige hero image */
.hero-shapes::before {
	content: '' !important;
	position: absolute !important;
	display: block !important;
	inset: 0 !important;
	background-color: #000000 !important;
	opacity: 0.55 !important;
	z-index: 2 !important;
	pointer-events: none !important;
}

/* Content boven overlay en blauwe hoek */
.hero-shapes > .e-con-inner {
	position: relative !important;
	z-index: 4 !important;
}

/* Zorgt dat echte hero-content boven de gele vorm blijft */
.hero-shapes > .e-con-inner > * {
	position: relative !important;
	z-index: 2 !important;
}

/* GELE BALK OP GROTE SCHERMEN */
.hero-shapes > .e-con-inner::before {
	content: '' !important;
	position: absolute !important;
	display: block !important;

	left: -430px;
	bottom: -80px;

	width: 180px;
	height: 140%;

	background-color: var(--brand-primary) !important;
	opacity: 0.88;

	transform: rotate(16deg);
	transform-origin: bottom left;

	z-index: 1 !important;
	pointer-events: none !important;
}

/* Blauwe rechterbovenhoek */
.hero-shapes::after {
	content: '' !important;
	position: absolute !important;
	display: block !important;

	top: 0;
	right: 0;

	width: 390px;
	height: 330px;

	background-color: var(--brand-secondary) !important;
	opacity: 0.95;

	clip-path: polygon(38% 0, 100% 0, 100% 100%);

	z-index: 3 !important;
	pointer-events: none !important;
}

/* =========================================================
   Vanaf laptop screen:
   gele balk wordt gele driehoek linksboven
========================================================= */
@media (max-width: 1366px) {
	.hero-shapes > .e-con-inner::before {
		top: 0;
		left: -50px;
		bottom: auto;

		width: 250px;
		height: 220px;

		transform: none;
		transform-origin: initial;

		background-color: var(--brand-primary) !important;
		opacity: 0.9;

		/* Andere vorm dan blauw */
		clip-path: polygon(0 0, 100% 0, 0 78%);
	}

	.hero-shapes::after {
		width: 300px;
		height: 260px;
	}
}

@media (max-width: 1024px) {
	.hero-shapes > .e-con-inner::before {
		left: -55px;
		width: 200px;
		height: 180px;
		clip-path: polygon(0 0, 100% 0, 0 74%);
	}

	.hero-shapes::after {
		width: 260px;
		height: 220px;
	}
}

@media (max-width: 767px) {
	.hero-shapes > .e-con-inner::before {
		left: -40px;
		width: 140px;
		height: 120px;
		clip-path: polygon(0 0, 100% 0, 0 70%);
		opacity: 0.85;
	}

	.hero-shapes::after {
		width: 210px;
		height: 180px;
	}
}

/* =========================================================
   PROJECTEN BUTTON
========================================================= */
.projecten-button {
	--primary-color: #fff;
	--hovered-color: var(--brand-primary);

	padding: 0 !important;
	margin: 0;
	border: none !important;
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	cursor: pointer;
	text-decoration: none !important;

	position: relative;
	display: inline-flex;
	font-weight: 600;
	font-size: 20px;
	gap: 0.5rem;
	align-items: center;
}

.projecten-button:hover,
.projecten-button:focus,
.projecten-button:active {
	background: transparent !important;
	background-color: transparent !important;
	border: none !important;
	box-shadow: none !important;
	outline: none;
}

.projecten-button span {
	margin: 0;
	position: relative;
	font-size: 20px;
	color: var(--primary-color);

	background: linear-gradient(
		to right,
		var(--hovered-color) 50%,
		var(--primary-color) 50%
	);
	background-size: 200% 100%;
	background-position: 100% 0;
	background-clip: text;
	-webkit-background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;

	transition: background-position 0.35s ease-out;
}

.projecten-button::after {
	position: absolute;
	content: '';
	width: 0;
	left: 0;
	bottom: -1px;
	background: var(--hovered-color);
	height: 2px;
	transition: width 0.35s ease-out;
}

.projecten-button:hover::after {
	width: 100%;
}

.projecten-button:hover span {
	background-position: 0 0;
}

.projecten-button svg {
	color: var(--primary-color);
	position: relative;
	width: 15px;
	transition:
		transform 0.2s ease,
		color 0.2s ease;
}

.projecten-button:hover svg {
	transform: translateX(4px);
	color: var(--hovered-color);
	transition-delay: 0.25s;
}

.projecten-button--dark {
	--primary-color: #000;
}

/* =========================================================
   SECTION SUBTITLE
   Klein blauw vormpje linksboven subtitle
========================================================= */
.section-subtitle {
	position: relative;
	display: inline-block;
	padding-left: 30px;

	color: var(--brand-primary);
	font-size: 18px;
	font-weight: 400;
	font-style: italic;
	line-height: 1.2;
}

.section-subtitle::before {
	content: '';
	position: absolute;
	left: 0;
	top: -16px;
	width: 34px;
	height: 34px;
	background-color: currentColor;

	-webkit-mask-image: url("data:image/svg+xml,%3Csvg width='34' height='34' viewBox='0 0 34 34' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0 H34 V4 C18 4 4 18 4 34 H0 Z' fill='%23000000'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg width='34' height='34' viewBox='0 0 34 34' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0 H34 V4 C18 4 4 18 4 34 H0 Z' fill='%23000000'/%3E%3C/svg%3E");
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: top left;
	mask-position: top left;
}

/* =========================================================
   GOOGLE ICON
========================================================= */
.e-font-icon-svg.e-fab-google,
.e-font-icon-svg.e-fab-google path {
	fill: #4285f4 !important;
	color: #4285f4 !important;
}

/* =========================================================
   REVIEWS SLIDER ARROWS
========================================================= */
.reviews-slider {
	position: relative !important;
}

.reviews-slider .swiper-button-prev,
.reviews-slider .elementor-swiper-button-prev {
	left: 0 !important;
	transform: translateX(-90%) !important;
}

.reviews-slider .swiper-button-next,
.reviews-slider .elementor-swiper-button-next {
	right: 0 !important;
	transform: translateX(90%) !important;
}

/* =========================================================
   CONTACT ROW
   Houdt contactgegevens naast elkaar op kleine schermen
========================================================= */
@media (max-width: 576px) {
	.contact-row {
		flex-direction: row !important;
		flex-wrap: nowrap !important;
	}

	.contact-row > * {
		width: auto !important;
		flex: 0 0 auto !important;
	}
}

/* =========================================================
   FOOTER LEGAL LINKS
========================================================= */
.footer-legal-links {
	display: flex;
	flex-direction: row;
	align-items: center;
	column-gap: 16px;
	row-gap: 4px;
	flex-wrap: wrap;
}

.footer-legal-links a {
	color: #8a8a8a;
	font-size: 13px;
	font-weight: 300;
	line-height: 1.2;
	text-decoration: none;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
	transition:
		color 0.2s ease,
		text-decoration-color 0.2s ease;
}

.footer-legal-links a:hover {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	text-decoration-color: currentColor;
}

/* =========================================================
   ULTIFY BUTTON
   Algemene custom button met cirkel en pijl
========================================================= */
.ultify-btn {
	position: relative;
	display: inline-block;
	width: 13rem;
	height: 3rem;
	cursor: pointer;
	text-decoration: none;
	background: transparent;
	border: 0;
	padding: 0;
	font-size: 16px;
	font-family: inherit;
}

.ultify-btn-circle {
	transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
	position: relative;
	display: block;
	width: 3rem;
	height: 3rem;
	background: #0068b4;
	border-radius: 1.625rem;
}

.ultify-btn-icon {
	transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
	position: absolute;
	top: 0;
	bottom: 0;
	margin: auto;
}

.ultify-btn-arrow {
	left: 0.625rem;
	width: 1.125rem;
	height: 0.125rem;
	background: transparent;
}

.ultify-btn-arrow::before {
	position: absolute;
	content: '';
	top: -0.29rem;
	right: 0.0625rem;
	width: 0.625rem;
	height: 0.625rem;
	border-top: 0.125rem solid #fff;
	border-right: 0.125rem solid #fff;
	transform: rotate(45deg);
}

.ultify-btn-text {
	transition: color 0.2s ease 0s;
	position: absolute;
	inset: 0;
	padding: 0.75rem 0;
	margin-left: 1rem;
	color: #000;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
	text-transform: uppercase;
}

.ultify-btn:hover .ultify-btn-circle {
	width: 100%;
}

.ultify-btn:hover .ultify-btn-arrow {
	background: #fff;
	transform: translateX(1rem);
}

.ultify-btn:hover .ultify-btn-text {
	color: #fff;
	transition-delay: 0.25s;
}

/* =========================================================
   ULTIFY BUTTON VARIANTS
========================================================= */
.ultify-btn-white .ultify-btn-text {
	color: #fff !important;
}

.ultify-btn.ultify-btn-wide {
	width: 16rem;
}

.ultify-btn.ultify-btn-wide .ultify-btn-text {
	margin-left: 1rem;
	color: #fff;
}

.ultify-btn.ultify-btn-wide:hover .ultify-btn-text {
	color: #fff;
}

.ultify-btn.ultify-btn-wide-normal {
	width: 16rem;
}

.ultify-btn.ultify-btn-wide-normal .ultify-btn-text {
	margin-left: 1rem;
	color: #000;
}

.ultify-btn.ultify-btn-wide-normal:hover .ultify-btn-text {
	color: #fff;
	transition-delay: 0.25s;
}

/* =========================================================
   INFO CARDS
========================================================= */
.ultify-card-row {
	display: flex;
	gap: 20px;
	align-items: stretch;
	width: 100%;
}

@media (max-width: 767px) {
	.ultify-card-row {
		flex-direction: column;
	}

	.ultify-info-card {
		width: 100%;
	}
}

/* =========================================================
   PARALLAX
========================================================= */
.parallax {
	background-attachment: fixed;
	background-position: center center;
	background-size: cover;
	background-repeat: no-repeat;
}

/* =========================================================
   VACATURE TITLES
   Gele cirkel achter vacaturetitels
========================================================= */
.vacature-title {
	position: relative !important;
	z-index: 2 !important;
	width: fit-content !important;
	display: inline-block !important;
	overflow: visible !important;
}

.vacature-title .elementor-heading-title {
	position: relative !important;
	z-index: 2 !important;
}

.vacature-title::before {
	content: '' !important;
	position: absolute !important;
	width: 110px !important;
	height: 110px !important;
	background-color: var(--brand-secondary) !important;
	border-radius: 50% !important;
	opacity: 0.25 !important;
	right: -45px !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	z-index: 1 !important;
	pointer-events: none !important;
}

/* =========================================================
   VACATURE ITEM
========================================================= */
.vacature-item {
	position: relative !important;
	overflow: visible !important;
}

/* =========================================================
   CONTACT LIST
   Verwijdert underline bij contactlinks
========================================================= */
.contact-list a {
	text-decoration: none !important;
}

.contact-list a:hover {
	text-decoration: none !important;
}

/* =========================================================
   FORMINATOR GENERAL
   Algemene Forminator fixes voor alle formulieren
========================================================= */
.forminator-error-message {
	display: none !important;
}

/* =========================================================
   FORMINATOR CHECKBOXES
   Checkboxgroepen naast elkaar en kleinere checkboxen
========================================================= */
.forminator-checkbox-group {
	display: flex !important;
	flex-wrap: wrap;
	gap: 12px 24px;
	align-items: center;
}

.forminator-checkbox-group .forminator-checkbox {
	width: auto !important;
	margin: 0 !important;
}

.forminator-checkbox-box {
	width: 14px !important;
	height: 14px !important;
	min-width: 14px !important;
	flex: 0 0 14px !important;
}

.forminator-checkbox-box::before {
	width: 8px !important;
	height: 8px !important;
}

/* =========================================================
   ULTIFY CONSENT CHECKBOX
   Custom akkoord-checkbox met relatieve links
========================================================= */
.ultify-consent-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5;
	color: #000;
}

.ultify-consent-checkbox input[type='checkbox'] {
	width: 14px;
	height: 14px;
	min-width: 14px;
	margin: 3px 0 0 0;
	accent-color: var(--brand-secondary);
}

.ultify-consent-checkbox a {
	color: var(--brand-primary);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.ultify-consent-checkbox a:hover {
	color: var(--brand-secondary);
}

/* =========================================================
   FORMINATOR FORM 653 + 666 + 682
   Submit button styling
========================================================= */
#forminator-module-653 .forminator-button-submit,
#forminator-module-666 .forminator-button-submit,
#forminator-module-682 .forminator-button-submit {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-width: 13rem;
	min-height: 3rem;
	padding: 0.75rem 2rem !important;
	border: 0 !important;
	border-radius: 1.625rem !important;
	background: #0068b4 !important;
	color: #fff !important;
	font-size: 16px !important;
	font-family: inherit !important;
	font-weight: 700 !important;
	line-height: 1.5 !important;
	text-align: center;
	text-transform: uppercase;
	text-decoration: none !important;
	cursor: pointer;
	box-shadow: none !important;
	transition: all 0.25s ease;
}

#forminator-module-653 .forminator-button-submit:hover,
#forminator-module-666 .forminator-button-submit:hover,
#forminator-module-682 .forminator-button-submit:hover {
	background: #d39b00 !important;
	color: #fff !important;
}

#forminator-module-653 .forminator-button-submit:focus,
#forminator-module-666 .forminator-button-submit:focus,
#forminator-module-682 .forminator-button-submit:focus {
	outline: none !important;
	box-shadow: 0 0 0 3px rgba(0, 104, 180, 0.18) !important;
}

/* =========================================================
   FORMINATOR FORM 653 + 666 + 682
   Label styling
========================================================= */
#forminator-module-653 .forminator-label,
#forminator-module-666 .forminator-label,
#forminator-module-682 .forminator-label,
#forminator-module-653 label,
#forminator-module-666 label,
#forminator-module-682 label,
#forminator-module-653 .forminator-checkbox-label,
#forminator-module-666 .forminator-checkbox-label,
#forminator-module-682 .forminator-checkbox-label,
#forminator-module-653 .forminator-radio-label,
#forminator-module-666 .forminator-radio-label,
#forminator-module-682 .forminator-radio-label {
	font-family: inherit !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	line-height: 1.5 !important;
	color: #000 !important;
}

/* =========================================================
   OVERFLOW FIX
   Voorkomt 1px horizontale scrollbar door subpixel overflow
========================================================= */
html,
body {
	max-width: 100%;
	overflow-x: clip !important;
}

@supports not (overflow-x: clip) {
	html,
	body {
		overflow-x: hidden !important;
	}
}

body {
	position: relative;
}

/* =========================================================
   ASTRA BUTTON RESET
   Verwijdert standaard Astra button radius en shadow
========================================================= */
button,
.ast-button,
.button,
input[type='button'],
input[type='reset'],
input[type='submit'],
a:where(.wp-block-button__link) {
	border-radius: 0 !important;
	box-shadow: none !important;
}

/* =========================================================
   CLICKABLE CARDS
   Maakt volledige kaarten klikbaar zonder zichtbare overlay
========================================================= */
.clickable-card {
	position: relative !important;
	cursor: pointer;
	overflow: visible !important;
}

.clickable-card .card-overlay-widget {
	position: absolute !important;
	inset: 0 !important;
	z-index: 5 !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}

.clickable-card .card-overlay-widget .elementor-widget-container {
	width: 100% !important;
	height: 100% !important;
}

.clickable-card .card-link-overlay {
	position: absolute !important;
	inset: 0 !important;
	z-index: 5 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	text-decoration: none !important;
}

.clickable-card > *:not(.card-overlay-widget) {
	position: relative !important;
	z-index: 10 !important;
	pointer-events: none;
}

.clickable-card:hover .projecten-button::after {
	width: 100%;
}

.clickable-card:hover .projecten-button span {
	background-position: 0 0;
}

.clickable-card:hover .projecten-button svg {
	transform: translateX(4px);
	color: var(--hovered-color);
	transition-delay: 0.25s;
}

/* =========================================================
   SERVICE DETAIL IMAGES
   Houdt dienstafbeeldingen 100% breed met vaste responsive hoogte
========================================================= */
.dienst-image {
	width: 100% !important;
}

.dienst-image .elementor-widget-container,
.dienst-image a {
	width: 100% !important;
	height: 500px !important;
	overflow: hidden !important;
	display: block !important;
}

.dienst-image img {
	width: 100% !important;
	height: 500px !important;
	max-width: 100% !important;
	object-fit: cover !important;
	object-position: center center !important;
	display: block !important;
}

@media (max-width: 1024px) {
	.dienst-image .elementor-widget-container,
	.dienst-image a,
	.dienst-image img {
		height: 400px !important;
	}
}

@media (max-width: 767px) {
	.dienst-image .elementor-widget-container,
	.dienst-image a,
	.dienst-image img {
		height: 300px !important;
	}
}

/* =========================================================
   PROFESSIONELE DIENSTEN GRID
   Desktop: 3 per rij | Tablet: 2 per rij | Mobiel: 1 per rij
========================================================= */
/* Desktop: 3 per rij */
.professioneel-blok {
	width: calc(33.333% - 16px) !important;
}

/* Tablet: 2 per rij */
@media (max-width: 1024px) {
	.professioneel-blok {
		width: calc(50% - 12px) !important;
	}
}

/* Mobiel: 1 per rij */
@media (max-width: 600px) {
	.professioneel-blok {
		width: 100% !important;
	}
}

/* =========================================================
   FILTER BUTTONS + HOME DIENSTEN FILTER KLEUREN
   Particulier = geel | Professioneel = blauw
   Geen dubbele regels: kleur loopt via CSS-variabelen
========================================================= */

/* Algemene klikstatus */
.filter-knop,
.filter-knop .elementor-button {
	cursor: pointer !important;
}

/* Kleur per filterknop */
.filter-knop--particulier {
	--filter-color: var(--brand-primary);
}

.filter-knop--professioneel {
	--filter-color: var(--brand-secondary);
}

/* Zelfde Elementor hover-effect, maar met de juiste kleur per knop */
.filter-knop .elementor-button {
	--hover-color: var(--filter-color);
}

.filter-knop .elementor-button::before,
.filter-knop .elementor-button::after {
	background-color: var(--filter-color) !important;
}

/* Actieve knop: identieke styling, kleur komt uit --filter-color */
.filter-knop.is-actief .elementor-button {
	background-color: var(--filter-color) !important;
	border-color: var(--filter-color) !important;
	color: #ffffff !important;
}

/* Hover/focus/active: zelfde gedrag, juiste kleur */
.filter-knop .elementor-button:hover,
.filter-knop .elementor-button:focus,
.filter-knop .elementor-button:active {
	border-color: var(--filter-color) !important;
	color: #ffffff !important;
}

/* Body-state vanuit het filterscript */
body.filter-particulier-actief {
	--diensten-filter-color: var(--brand-primary);
}

body.filter-professioneel-actief {
	--diensten-filter-color: var(--brand-secondary);
}

/* Kleurcontext per diensten-loop */
.diensten-loop--particulier {
	--dienst-color: var(--brand-primary);
}

.diensten-loop--professioneel {
	--dienst-color: var(--brand-secondary);
}

/* Cards binnen beide loops gebruiken dezelfde styling, maar andere kleur */
.diensten-loop--particulier .projecten-button,
.diensten-loop--professioneel .projecten-button {
	--hovered-color: var(--dienst-color);
}

.diensten-loop--particulier .section-subtitle,
.diensten-loop--professioneel .section-subtitle {
	color: var(--dienst-color);
}

.diensten-loop--particulier
	.icon-border
	.elementor-icon-wrapper
	.elementor-icon,
.diensten-loop--professioneel
	.icon-border
	.elementor-icon-wrapper
	.elementor-icon {
	border-color: var(--dienst-color) !important;
}

.diensten-loop--particulier .ultify-hover-effect .elementor-button,
.diensten-loop--professioneel .ultify-hover-effect .elementor-button {
	--hover-color: var(--dienst-color);
}

.diensten-loop--particulier .ultify-hover-effect .elementor-button::before,
.diensten-loop--particulier .ultify-hover-effect .elementor-button::after,
.diensten-loop--professioneel .ultify-hover-effect .elementor-button::before,
.diensten-loop--professioneel .ultify-hover-effect .elementor-button::after {
	background-color: var(--dienst-color) !important;
}

.section-subtitle::before {
	background-color: var(--brand-secondary) !important;
}

/* =========================================================
   EXTRA RUIMTE BOVEN FOOTER
========================================================= */
body:not(.elementor-editor-active) .site-content {
	margin-bottom: 80px;
}

.ultify-tekst a {
	color: #0068b4 !important;
	text-decoration: none !important;
}

.ultify-tekst a:hover {
	color: #0068b4 !important;
	text-decoration: underline !important;
}

.dienst-hero-img {
	background-repeat: no-repeat !important;
	background-size: cover !important;
	background-position: center center !important;
}

.ultify-video-portrait .elementor-wrapper {
	aspect-ratio: 9 / 16 !important;
	width: 380px !important;
	max-width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	overflow: hidden;
	background: #000;
}

.ultify-video-portrait iframe,
.ultify-video-portrait video {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}
