/*
 * Opt-in helper layer for custom surfaces and reusable accordion markup.
 *
 * Rules in the .sore-surface section stay inactive until a fragment explicitly
 * opts in with the .sore-surface class. Reusable components use unique class
 * names so they can be shared outside custom surfaces without touching clone
 * containers or Elementor kit globals.
 */

/* ----- Reusable FAQ accordion ----- */

.sore-faq-accordion {
	--n-accordion-title-font-size: 1rem;
	--n-accordion-title-justify-content: space-between;
	--n-accordion-title-flex-grow: 1;
	--n-accordion-title-icon-order: initial;
	--n-accordion-item-title-space-between: 10px;
	--n-accordion-item-title-distance-from-content: 0;
	--n-accordion-border-radius: 12px 12px 12px 12px;
	--n-accordion-icon-size: 10px;
	--n-accordion-icon-normal-color: var(--e-global-color-vamtam_accent_6, var(--sore-text));
	--n-accordion-icon-hover-color: var(--e-global-color-vamtam_accent_6, var(--sore-text));
	--n-accordion-icon-active-color: var(--e-global-color-vamtam_accent_6, var(--sore-text));
	--n-accordion-padding: 14px 25px 14px 25px;
	display: grid;
	gap: 12px;
}

/* Hide opened icon when details is closed, and closed icon when details is open */
.sore-faq-accordion details:not([open]) .e-opened {
	display: none !important;
}

.sore-faq-accordion details[open] .e-closed {
	display: none !important;
}

/* Item = one bordered white card containing title + answer (card model). */
.sore-faq-accordion > .e-n-accordion-item {
	overflow: hidden;
	background: #ffffff;
	border: 1px solid rgba(7, 8, 7, 0.08);
	border-radius: 12px;
	box-shadow: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.sore-faq-accordion > .e-n-accordion-item:hover {
	border-color: rgba(9, 79, 137, 0.30);
}

/* Active state — open card gets primary border + soft lift */
.sore-faq-accordion > .e-n-accordion-item[open] {
	border-color: rgba(9, 79, 137, 0.35);
	box-shadow: 0 6px 18px rgba(4, 18, 29, 0.05);
}

.sore-faq-accordion > .e-n-accordion-item > .e-n-accordion-item-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	box-sizing: border-box !important;
	min-height: 56px;
	padding: 14px 20px !important;
	background: #ffffff !important;
	border: 0 !important;
	border-radius: 0 !important;
	cursor: pointer;
}

.sore-faq-accordion .e-n-accordion-item-title-icon {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 28px !important;
	height: 28px !important;
	min-width: 28px !important;
	min-height: 28px !important;
	border-radius: 8px !important;
	padding: 0 !important;
	flex-shrink: 0 !important;
	background-color: rgba(9, 79, 137, 0.07) !important;
	color: var(--sore-primary, #094F89) !important;
}

.sore-faq-accordion .e-n-accordion-item-title-icon span {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	height: 100% !important;
	color: var(--sore-primary, #094F89) !important;
}

.sore-faq-accordion .e-n-accordion-item-title-icon svg {
	width: 16px !important;
	height: 16px !important;
	color: var(--sore-primary, #094F89) !important;
	stroke: var(--sore-primary, #094F89) !important;
}

.sore-faq-accordion > .e-n-accordion-item > .e-n-accordion-item-title > .e-n-accordion-item-title-header > .e-n-accordion-item-title-text {
	margin: 0;
	font-family: var(--sore-font-body, "Manrope", sans-serif);
	/* !important nodig: de globale main.site-main h3-regel (met !important)
	   trok deze vraag-kop anders naar de h3-maat (17–19px) → veel te groot. */
	font-size: clamp(15px, 1.2vw, 16px) !important;
	font-weight: 600;
	line-height: 1.35 !important;
	letter-spacing: 0;
	color: var(--sore-text, #070807);
	transition: color 0.2s ease;
}

@media (max-width: 767px) {
	.sore-faq-accordion > .e-n-accordion-item > .e-n-accordion-item-title > .e-n-accordion-item-title-header > .e-n-accordion-item-title-text {
		font-size: 14px !important;
		line-height: 1.3 !important;
	}

	.sore-faq-accordion > .e-n-accordion-item > .e-n-accordion-item-title {
		min-height: 48px;
		padding: 12px 14px !important;
		gap: 10px;
	}
}

.sore-faq-accordion > .e-n-accordion-item[open] > .e-n-accordion-item-title .e-n-accordion-item-title-text {
	color: var(--sore-primary, #094F89);
}

.sore-faq-accordion__answer {
	padding: 0;
	background: #ffffff;
}

.sore-faq-accordion__answer > .e-con {
	background: #ffffff;
	border: 0;
	margin-top: 0;
	padding: 0;
	width: 100%;
	max-width: 100%;
}

.sore-faq-accordion__answer > .e-con > .e-con-inner {
	display: block !important;
	box-sizing: border-box !important;
	width: 100%;
	max-width: 100%;
	padding: 0 20px 18px;
}

.sore-faq-accordion__answer p {
	margin: 0;
	font-size: clamp(14px, 1vw, 15px);
	line-height: 1.5;
	color: var(--sore-text-muted, #07080799);
}

.sore-faq-accordion__answer p:last-child {
	margin-bottom: 0;
}

/* ----- FAQ page polish (Elementor page 46) ----- */

.elementor-46 .elementor-element.elementor-element-b1f3c01 {
	position: sticky;
	top: 20px;
	z-index: 30;
}

.elementor-46 .elementor-element.elementor-element-85fa8fb .elementor-button {
	background-color: #FFFFFF !important;
	color: var(--sore-primary) !important;
	border: 1px solid var(--sore-primary) !important;
	font-size: 0.84rem !important;
	line-height: 1.25 !important;
}

.elementor-46 .elementor-element.elementor-element-85fa8fb .elementor-button :is(svg, i) {
	color: var(--sore-primary) !important;
	fill: var(--sore-primary) !important;
}

.elementor-46 .elementor-element.elementor-element-85fa8fb .elementor-button:hover,
.elementor-46 .elementor-element.elementor-element-85fa8fb .elementor-button:focus-visible {
	background-color: var(--sore-primary) !important;
	color: #FFFFFF !important;
	border-color: var(--sore-primary) !important;
}

.elementor-46 .elementor-element.elementor-element-85fa8fb .elementor-button:hover :is(svg, i),
.elementor-46 .elementor-element.elementor-element-85fa8fb .elementor-button:focus-visible :is(svg, i) {
	color: #FFFFFF !important;
	fill: #FFFFFF !important;
}

.elementor-46 .elementor-element.elementor-element-4529e87,
.elementor-46 .elementor-element.elementor-element-03b444b,
.elementor-46 .elementor-element.elementor-element-d0820bd,
.elementor-46 .elementor-element.elementor-element-cd399d7,
.elementor-46 .elementor-element.elementor-element-40e1409,
.elementor-46 .elementor-element.elementor-element-70770ac,
.elementor-46 .elementor-element.elementor-element-1b7ff62,
.elementor-46 .elementor-element.elementor-element-d861311 {
	--padding-right: 0 !important;
}

.elementor-46 .elementor-widget-n-accordion .e-n-accordion {
	display: grid;
	gap: 12px;
}

.elementor-46 .elementor-widget-n-accordion .e-n-accordion > .e-n-accordion-item {
	background: transparent;
	border: 0;
	box-shadow: none;
}

.elementor-46 .elementor-widget-n-accordion .e-n-accordion > .e-n-accordion-item > .e-n-accordion-item-title {
	background-color: #FFFFFF;
	border: 0.5px solid var(--e-global-color-vamtam_accent_7);
	border-radius: 12px;
	transition: border-color 0.2s ease;
}

.elementor-46 .elementor-widget-n-accordion .e-n-accordion > .e-n-accordion-item > .e-n-accordion-item-title:hover {
	border-color: var(--sore-primary);
}

.elementor-46 .elementor-widget-n-accordion .e-n-accordion > .e-n-accordion-item[open] > .e-n-accordion-item-title {
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
}

.elementor-46 .elementor-widget-n-accordion .e-n-accordion > .e-n-accordion-item > .e-con > .e-con-boxed {
	background-color: var(--e-global-color-vamtam_accent_5);
	border: 0.5px solid var(--e-global-color-vamtam_accent_7);
	border-top: 0;
	border-bottom-left-radius: 12px;
	border-bottom-right-radius: 12px;
	margin-top: -1px;
	--padding-top: 10px !important;
	--padding-bottom: 16px !important;
	--padding-left: 25px !important;
	--padding-right: 25px !important;
}

@media (min-width: 768px) {
	.elementor-46 .elementor-element.elementor-element-4529e87,
	.elementor-46 .elementor-element.elementor-element-03b444b,
	.elementor-46 .elementor-element.elementor-element-d0820bd,
	.elementor-46 .elementor-element.elementor-element-cd399d7 {
		position: sticky;
		top: 40px;
		z-index: 12;
		align-self: flex-start;
	}

	.elementor-46 .elementor-element.elementor-element-49181ef .elementor-heading-title,
	.elementor-46 .elementor-element.elementor-element-a277710 .elementor-heading-title,
	.elementor-46 .elementor-element.elementor-element-ea5d2d4 .elementor-heading-title,
	.elementor-46 .elementor-element.elementor-element-9716f22 .elementor-heading-title {
		font-size: clamp(1.45rem, 1.8vw, 1.68rem);
	}
}

/* ----- Shared Swiper layer ----- */

.sore-swiper {
	width: 100%;
	overflow: hidden;
}

.sore-swiper .swiper-slide {
	height: auto;
}

.sore-carousel {
	position: relative;
}

.sore-carousel > .elementor-widget-container {
	margin: 0 !important;
}

.sore-carousel__button {
	position: absolute;
	top: 50%;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: clamp(34px, 4vw, 40px) !important;
	height: clamp(34px, 4vw, 40px) !important;
	min-width: clamp(34px, 4vw, 40px) !important;
	min-height: clamp(34px, 4vw, 40px) !important;
	padding: 0 !important;
	border: 1px solid rgba(7, 8, 7, 0.12) !important;
	border-radius: 999px!important;
	background: rgba(255, 255, 255, 0.98) !important;
	color: var(--sore-primary) !important;
	box-shadow: 0 6px 16px rgba(7, 8, 7, 0.1) !important;
	transform: translateY(-50%);
	cursor: pointer;
	transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.sore-carousel__button--prev {
	left: -20px;
}

.sore-carousel__button--next {
	right: -20px;
}

.sore-carousel__button:hover,
.sore-carousel__button:focus-visible {
	background: var(--sore-primary) !important;
	border-color: var(--sore-primary) !important;
	color: #ffffff !important;
	box-shadow: 0 10px 24px rgba(5, 73, 119, 0.22) !important;
}

.sore-carousel__button:hover svg path,
.sore-carousel__button:focus-visible svg path {
	stroke: currentColor;
}

.sore-carousel__button svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
}

.sore-carousel__button svg path {
	fill: none;
	stroke: currentColor;
	stroke-width: 2.2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.sore-carousel__button.swiper-button-disabled {
	opacity: 0;
	pointer-events: none;
}

.sore-carousel__pagination {
	position: relative !important;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 18px;
	margin-top: 32px;
}

.sore-carousel__pagination.swiper-pagination-bullets-dynamic {
	display: block !important;
	position: relative !important;
	left: auto !important;
	right: auto !important;
	transform: none !important;
	translate: none !important;
	margin-inline: auto !important;
	max-width: 100%;
	text-align: center;
	overflow: hidden;
	white-space: nowrap;
}

.sore-carousel__pagination .swiper-pagination-bullet {
	position: relative;
	width: 11px;
	height: 11px;
	margin: 0 6px !important;
	border: 0;
	border-radius: 0;
	background: transparent;
	opacity: 1;
	overflow: visible;
	cursor: pointer;
	transition: transform 180ms ease;
}

.sore-carousel__pagination .swiper-pagination-bullet::before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	width: 11px;
	height: 11px;
	border: 1px solid rgba(33, 72, 102, 0.22);
	border-radius: 999px;
	background: rgba(33, 72, 102, 0.12);
	transform: translateX(-50%);
	transition: width 180ms ease, background-color 180ms ease, border-color 180ms ease;
}

.sore-carousel__pagination .swiper-pagination-bullet-active,
.sore-carousel__pagination .swiper-pagination-bullet:hover,
.sore-carousel__pagination .swiper-pagination-bullet:focus-visible {
	background: transparent;
	border-color: transparent;
}

.sore-carousel__pagination .swiper-pagination-bullet-active::before,
.sore-carousel__pagination .swiper-pagination-bullet:hover::before,
.sore-carousel__pagination .swiper-pagination-bullet:focus-visible::before {
	background: var(--sore-primary);
	border-color: var(--sore-primary);
}


.sore-carousel__pagination .swiper-pagination-bullet-active::before {
	width: 24px;
}

@media (max-width: 1024px) {
	.sore-carousel__button--prev {
		left: -12px;
	}

	.sore-carousel__button--next {
		right: -12px;
	}
}

@media (max-width: 767px) {
	/* Pijlen op de rand van de slide: half eroverheen (binnen), half erbuiten.
	   Zit binnen de sectie-padding, dus nooit buiten het scherm. */
	.sore-carousel__button--prev {
		left: -16px;
	}

	.sore-carousel__button--next {
		right: -16px;
	}

	/* Patiëntresultaten en reviewfeeds hebben een smalle, vaste veiligheidsmarge.
	   Andere sliders houden hun bestaande plaatsing. */
	.sore-home-results__carousel .sore-carousel__button--prev,
	.sore-review-feed__carousel-shell .sore-carousel__button--prev,
	.sore-results-detail__gallery-carousel .sore-carousel__button--prev {
		left: -14px;
	}

	.sore-home-results__carousel .sore-carousel__button--next,
	.sore-review-feed__carousel-shell .sore-carousel__button--next,
	.sore-results-detail__gallery-carousel .sore-carousel__button--next {
		right: -14px;
	}
}

/* ----- Opt-in custom surface shell ----- */

.sore-surface > .e-con-inner {
	width: 100%;
	max-width: var(--sore-shell-width);
	margin-left: auto;
	margin-right: auto;
}

.sore-surface.elementor-section.elementor-section-boxed > .elementor-container {
	width: var(--sore-shell-width);
	max-width: min(var(--sore-shell-width), var(--container-max-width, var(--sore-shell-max)));
}

.sore-surface.sore-section {
	padding: var(--sore-section-pad-lg) 0;
}

.sore-surface.sore-section--light {
	background-color: var(--sore-bg-light);
}

.sore-surface.sore-section--sage {
	background-color: var(--sore-bg-light);
}

.sore-surface.sore-section--dark {
	background-color: var(--sore-primary);
	color: var(--sore-white);
}

.sore-surface.sore-section--dark .elementor-heading-title,
.sore-surface.sore-section--dark .elementor-text-editor,
.sore-surface.sore-section--dark p,
.sore-surface.sore-section--dark li {
	color: var(--sore-white);
}

.sore-surface .sore-heading-center {
	text-align: center;
	width: 100%;
	max-width: 700px;
	margin-left: auto;
	margin-right: auto;
}

.sore-surface .sore-subheading-center {
	text-align: center;
	width: 100%;
	max-width: 600px;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 40px;
}

.sore-surface .sore-grid-3col {
	display: flex;
	flex-wrap: wrap;
	gap: 30px;
	width: 100%;
}

.sore-surface .sore-grid-3col > * {
	flex: 1 1 calc(33.333% - 20px);
	min-width: 260px;
}

.sore-surface .sore-grid-2col {
	display: flex;
	flex-wrap: wrap;
	gap: 60px;
	width: 100%;
	align-items: center;
}

.sore-surface .sore-grid-2col > * {
	flex: 1 1 calc(50% - 30px);
	min-width: 280px;
}

.sore-surface .sore-card {
	background: var(--sore-white);
	border-radius: var(--sore-radius);
	padding: 32px;
	box-shadow: var(--sore-shadow-card);
	flex-direction: column;
}

.sore-surface .sore-card--accent {
	background: var(--sore-bg-light);
	border: 1px solid rgba(103, 149, 172, 0.2);
}

.sore-surface .sore-step-number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background-color: transparent;
	border: 1px solid rgba(5, 73, 119, 0.16);
	color: var(--sore-primary);
	font-family: var(--sore-font-body);
	font-size: 22px;
	font-weight: 600;
	margin-bottom: 16px;
	flex-shrink: 0;
}

.sore-surface .sore-spacer--sm { height: 24px; }
.sore-surface .sore-spacer--md { height: 48px; }
.sore-surface .sore-spacer--lg { height: 80px; }

@media (max-width: 1024px) {
	.sore-surface.sore-section {
		padding: var(--sore-section-pad-md) 0;
	}

	.sore-surface .sore-grid-2col {
		gap: 30px;
	}
}

@media (max-width: 767px) {
	.sore-faq-accordion {
		--n-accordion-padding: 13px 20px 13px 20px;
	}

	.sore-faq-accordion__answer > .e-con > .e-con-inner {
		padding: 0 20px 16px;
	}

	.sore-surface.sore-section {
		padding: var(--sore-section-pad-sm) 0;
	}

	.sore-surface .sore-grid-3col > *,
	.sore-surface .sore-grid-2col > * {
		flex: 1 1 100%;
	}

	.sore-surface .sore-grid-2col {
		flex-direction: column;
		gap: 24px;
	}
}

/* ===== Heading font & size — Permanent Elementor kit override =====
 * We load AFTER all Elementor kit CSS. Overriding the *CSS custom properties*
 * (not just font-family) means ALL rules that use var(--e-global-typography-*)
 * — including element-specific rules with higher specificity — resolve to Outfit.
 * This is the only approach that beats element-specific (0-4-0+) kit rules.
 */
.elementor-kit-5 {
	--e-global-typography-vamtam_h1-font-family: "Bricolage Grotesque", "Ovo", serif;
	--e-global-typography-vamtam_h1-font-size: clamp(30px, 4vw, 52px);
	--e-global-typography-vamtam_h1-font-weight: 600;
	--e-global-typography-vamtam_h1-line-height: 1.06;
	--e-global-typography-vamtam_h1-letter-spacing: 0;
	--e-global-typography-vamtam_h2-font-family: "Bricolage Grotesque", "Ovo", serif;
	--e-global-typography-vamtam_h2-font-size: clamp(20px, 2.2vw, 28px);
	--e-global-typography-vamtam_h2-font-weight: 600;
	--e-global-typography-vamtam_h2-line-height: 1.12;
	--e-global-typography-vamtam_h2-letter-spacing: 0;
	--e-global-typography-vamtam_h3-font-family: "Bricolage Grotesque", "Ovo", serif;
	--e-global-typography-vamtam_h3-font-size: clamp(17px, 1.7vw, 22px);
	--e-global-typography-vamtam_h3-font-weight: 600;
	--e-global-typography-vamtam_h3-line-height: 1.18;
	--e-global-typography-vamtam_h3-letter-spacing: 0;
	--e-global-typography-vamtam_h4-font-family: "Bricolage Grotesque", "Ovo", serif;
	--e-global-typography-vamtam_h4-font-size: clamp(16px, 1.5vw, 19px);
	--e-global-typography-vamtam_h4-font-weight: 600;
	--e-global-typography-vamtam_h4-line-height: 1.24;
	--e-global-typography-vamtam_h4-letter-spacing: 0;
	--e-global-typography-vamtam_h5-font-family: "Bricolage Grotesque", "Ovo", serif;
	--e-global-typography-vamtam_h5-font-size: clamp(15px, 1.25vw, 17px);
	--e-global-typography-vamtam_h5-font-weight: 600;
	--e-global-typography-vamtam_h5-line-height: 1.24;
	--e-global-typography-vamtam_h5-letter-spacing: 0;
	--e-global-typography-vamtam_h6-font-family: "Bricolage Grotesque", "Ovo", serif;
	--e-global-typography-vamtam_h6-font-size: clamp(14px, 1.2vw, 16px);
	--e-global-typography-vamtam_h6-font-weight: 600;
	--e-global-typography-vamtam_h6-line-height: 1.24;
	--e-global-typography-vamtam_h6-letter-spacing: 0;
	--e-global-typography-vamtam_primary_font-font-family: "Outfit", "Inter", sans-serif;
	--e-global-typography-vamtam_primary_font-line-height: 1.52;
	--e-global-typography-vamtam_primary_font-letter-spacing: 0;
	--e-global-typography-bad1ac7-font-family: "Outfit", "Inter", sans-serif;
	--e-global-typography-bad1ac7-line-height: 1.5;
	--e-global-typography-bad1ac7-letter-spacing: 0;
	--e-global-typography-b8ac9fe-font-family: "Outfit", "Inter", sans-serif;
	--e-global-typography-b8ac9fe-line-height: 1.55;
	--e-global-typography-b8ac9fe-letter-spacing: 0;
	--e-global-typography-cceb139-font-family: "Outfit", "Inter", sans-serif;
	--e-global-typography-cceb139-line-height: 1.5;
	--e-global-typography-cceb139-letter-spacing: 0;
	--e-global-typography-d3ddd4f-font-family: "Outfit", "Inter", sans-serif;
	--e-global-typography-d3ddd4f-line-height: 1.45;
	--e-global-typography-d3ddd4f-letter-spacing: 0;
	--e-global-typography-4287073-font-family: "Outfit", "Inter", sans-serif;
	--e-global-typography-4287073-line-height: 1.05;
	--e-global-typography-4287073-letter-spacing: 0;
	--e-global-typography-d958612-font-family: "Outfit", "Inter", sans-serif;
	--e-global-typography-d958612-line-height: 1.05;
	--e-global-typography-d958612-letter-spacing: 0;
	/* Page title / hero heading (a6a3c1c) */
	--e-global-typography-a6a3c1c-font-family:   "Bricolage Grotesque", "Ovo", serif;
	--e-global-typography-a6a3c1c-font-weight:   400;
	--e-global-typography-a6a3c1c-text-transform: none;
	--e-global-typography-a6a3c1c-line-height:   1.25;
	--e-global-typography-a6a3c1c-letter-spacing: 0;
	/* Large display heading (1dc89f4 = 80px) */
	--e-global-typography-1dc89f4-font-family:   "Bricolage Grotesque", "Ovo", serif;
	--e-global-typography-1dc89f4-font-weight:   600;
	--e-global-typography-1dc89f4-font-size:     clamp(32px, 4.2vw, 54px);
	--e-global-typography-1dc89f4-line-height:   1;
	--e-global-typography-1dc89f4-letter-spacing: 0;
	/* Subtitle / accent text (ea542c7 = 20px Ovo) */
	--e-global-typography-ea542c7-font-family:   "Bricolage Grotesque", "Ovo", serif;
	--e-global-typography-ea542c7-font-size:     clamp(16px, 1.6vw, 18px);
	--e-global-typography-ea542c7-font-weight:   600;
	--e-global-typography-ea542c7-line-height:   1.35;
	--e-global-typography-ea542c7-letter-spacing: 0;
}

/* Fallback: directly override h1-h4 for any heading not using a kit variable.
 * Element-specific kit rules have specificity 0-4-0; we match with same selector
 * for the known hardcoded hero heading, then fall back to !important for the rest. */
.elementor-19 .elementor-element.elementor-element-f5b3fc6 .elementor-heading-title {
	font-family: "Bricolage Grotesque", "Ovo", serif;
	line-height: 1.04;
	letter-spacing: 0;
	/* Was 400 — the middle of the 3 review cards looked lighter than its two
	   siblings (which inherit 600 from the kit). Match them. */
	font-weight: 600;
}
.elementor-kit-5 h1,
.elementor-kit-5 h2,
.elementor-kit-5 h3,
.elementor-kit-5 h4,
.elementor-kit-5 h5,
.elementor-kit-5 h6,
.elementor-kit-5 .elementor-heading-title {
	font-family: "Bricolage Grotesque", "Ovo", serif !important;
	font-synthesis: none;
}

.elementor-kit-5 h1 {
	line-height: var(--e-global-typography-vamtam_h1-line-height);
	letter-spacing: var(--e-global-typography-vamtam_h1-letter-spacing);
}

.elementor-kit-5 h2 {
	line-height: var(--e-global-typography-vamtam_h2-line-height);
	letter-spacing: var(--e-global-typography-vamtam_h2-letter-spacing);
}

.elementor-kit-5 h3 {
	line-height: var(--e-global-typography-vamtam_h3-line-height);
	letter-spacing: var(--e-global-typography-vamtam_h3-letter-spacing);
}

.elementor-kit-5 h4,
.elementor-kit-5 h5,
.elementor-kit-5 h6 {
	letter-spacing: 0;
}

/* Body copy fallback for widgets that bypass the shared text tokens. */
.elementor-kit-5 p,
.elementor-kit-5 .elementor-text-editor,
.elementor-kit-5 .elementor-text-editor p,
.elementor-kit-5 .elementor-widget-text-editor li {
	line-height: 1.52;
	letter-spacing: 0;
}

/* Kill remaining hardcoded rogue families from origin CSS (Ovo/Bricolage). */
.elementor-kit-5 .elementor-button,
.elementor-kit-5 button,
.elementor-kit-5 input[type="button"],
.elementor-kit-5 input[type="submit"],
.elementor-kit-5 .elementor-nav-menu .elementor-item,
.elementor-kit-5 .elementor-nav-menu .elementor-sub-item,
.elementor-kit-5 .elementor-menu-toggle,
.elementor-kit-5 .elementor-menu-toggle__icon--open,
.elementor-kit-5 .elementor-menu-toggle__icon--close {
	font-family: "Outfit", "Inter", sans-serif !important;
	line-height: 1.05;
	letter-spacing: 0;
	font-weight: 500 !important;
}

/* ===== Nav header width alignment =====
 * The Elementor kit sets --content-width: 1400px for the desktop nav inner
 * (elementor-element-5408edd) while page content uses --sore-shell-width (max 1280px).
 * Override to align the nav with the page content width.
 */
@media (min-width: 768px) {
	.elementor-148 .elementor-element.elementor-element-5408edd {
		--content-width: var(--sore-shell-width);
	}
}

/* ===== Review page alignment ===== */
.elementor-location-single .sore-review-page-shell {
	width: var(--sore-shell-width);
	max-width: var(--sore-shell-width);
	margin-inline: auto;
}

.elementor-location-single .elementor-25 .elementor-element.elementor-element-574df90,
.elementor-location-single .elementor-25 .elementor-element.elementor-element-574df90:not(.elementor-motion-effects-element-type-background),
.elementor-location-single .elementor-25 .elementor-element.elementor-element-574df90 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	background: transparent !important;
	background-image: none !important;
}

/* ===== Footer consistency (homepage + inner pages) ===== */
.footer-wrapper .elementor.elementor-1163 .elementor-element.elementor-element-8ee64ec,
.footer-wrapper .elementor-element.elementor-element-8ee64ec.e-parent {
	--margin-top: 12px !important;
	margin-top: 12px !important;
	--padding-top: 24px !important;
	padding-top: 24px !important;
	border-radius: 24px 24px 0 0!important;
	overflow: hidden;
}

/* ===== Button design system override — unified hero-style pill =====
 * One button language site-wide, mirroring the homepage hero CTA:
 * a text label + a trailing accent "box" that scales while the gap grows
 * on hover. Recoloured per surface (light page default vs dark section).
 */
.elementor-kit-5 .elementor-button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	background-color: var(--sore-primary) !important;
	border: 1px solid var(--sore-primary) !important;
	color: var(--sore-white) !important;
	border-radius: 8px !important;
	padding: 9px 18px !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	box-shadow: none;
	transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

.elementor-kit-5 .elementor-button .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
	flex-direction: row;
	gap: 10px;
}

/* Iconed buttons take the hero geometry so the accent box seats flush right */
.elementor-kit-5 .elementor-button:has(.elementor-button-icon) {
	padding: 6px 7px 6px 18px !important;
}

/* Trailing accent box that carries the icon (arrow / user / list) */
.elementor-kit-5 .elementor-button .elementor-button-icon {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	flex: 0 0 auto;
	margin: 0 !important;
	border-radius: 7px;
	background-color: var(--sore-accent) !important;
	color: #ffffff !important;
	transition: transform 0.25s ease;
}

.elementor-kit-5 .elementor-button .elementor-button-icon .sore-icon,
.elementor-kit-5 .elementor-button .elementor-button-icon svg {
	width: 16px;
	height: 16px;
}

/* Hover/focus: transform-only, no icon slide — unified site-wide */
.elementor-kit-5 .elementor-button:hover .elementor-button-icon,
.elementor-kit-5 .elementor-button:focus-visible .elementor-button-icon {
	transform: scale(1.08);
}

/* Text-only buttons keep a clear affordance via a fill shift */
.elementor-kit-5 .elementor-button:not(:has(.elementor-button-icon)):hover,
.elementor-kit-5 .elementor-button:not(:has(.elementor-button-icon)):focus-visible {
	background-color: var(--sore-accent) !important;
	border-color: var(--sore-accent) !important;
	color: var(--sore-white) !important;
}

.elementor-widget-form .e-form__buttons .elementor-button {
	border: 1px solid var(--sore-primary) !important;
}

.elementor-widget-form .e-form__buttons .elementor-button:hover,
.elementor-widget-form .e-form__buttons .elementor-button:focus {
	border-color: var(--sore-accent) !important;
	border-style: solid !important;
	border-width: 1px !important;
}

/* Outline variant: transparent pill, coloured label, accent box retained */
.elementor-kit-5 .elementor-button.sore-btn--outline {
	background-color: transparent !important;
	border-color: var(--sore-primary) !important;
	color: var(--sore-primary) !important;
}

.elementor-kit-5 .elementor-button.sore-btn--outline:not(:has(.elementor-button-icon)):hover,
.elementor-kit-5 .elementor-button.sore-btn--outline:not(:has(.elementor-button-icon)):focus-visible {
	background-color: var(--sore-primary) !important;
	border-color: var(--sore-primary) !important;
	color: var(--sore-white) !important;
}

.elementor-19 .elementor-button.sore-btn--outline {
	border-color: #ffffff !important;
	color: #ffffff !important;
	background-color: transparent !important;
}

.elementor-19 .elementor-button.sore-btn--outline:not(:has(.elementor-button-icon)):hover,
.elementor-19 .elementor-button.sore-btn--outline:not(:has(.elementor-button-icon)):focus-visible {
	background-color: #ffffff !important;
	border-color: #ffffff !important;
	color: var(--sore-primary) !important;
}

/* Dark sections: cream pill + navy label like the hero, accent box retained */
.sore-surface.sore-section--dark .elementor-button:not(.sore-btn--outline),
.elementor-19 .elementor-element.elementor-element-2610596 .elementor-button:not(.sore-btn--outline) {
	background-color: #F4ECE2 !important;
	border-color: #F4ECE2 !important;
	color: var(--sore-navy) !important;
}

.sore-surface.sore-section--dark .elementor-button:not(.sore-btn--outline) .elementor-button-text,
.elementor-19 .elementor-element.elementor-element-2610596 .elementor-button:not(.sore-btn--outline) .elementor-button-text {
	color: var(--sore-navy) !important;
}

.sore-surface.sore-section--dark .elementor-button:not(.sore-btn--outline):not(:has(.elementor-button-icon)):hover,
.sore-surface.sore-section--dark .elementor-button:not(.sore-btn--outline):not(:has(.elementor-button-icon)):focus-visible,
.elementor-19 .elementor-element.elementor-element-2610596 .elementor-button:not(.sore-btn--outline):not(:has(.elementor-button-icon)):hover,
.elementor-19 .elementor-element.elementor-element-2610596 .elementor-button:not(.sore-btn--outline):not(:has(.elementor-button-icon)):focus-visible {
	background-color: #ffffff !important;
	border-color: #ffffff !important;
}

#scroll-to-top,
#scroll-to-top-text {
	display: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

/* ----- Team cards ----- */

.sore-team-grid {
	--sore-team-card-radius: 24px;
	--sore-team-media-ratio: 4 / 4.6;
	display: grid;
	gap: 20px;
	width: 100%;
}

.sore-team-grid .sore-team-grid__item {
	min-width: 0;
	height: 100%;
}

.sore-team-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	border: 1px solid #e7eaee;
	border-radius: var(--sore-team-card-radius);
	background: #ffffff;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.sore-team-card:hover,
.sore-team-card:focus-visible {
	border-color: #cfd7df;
	box-shadow: 0 10px 22px rgba(12, 45, 70, 0.08);
	transform: translateY(-1px);
}

.sore-team-card__media {
	margin: 0;
	aspect-ratio: var(--sore-team-media-ratio);
	background: #ffffff;
	overflow: hidden;
}

.sore-team-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 24%;
}

.sore-team-card__body {
	display: grid;
	gap: 8px;
	padding: 18px 18px 20px;
}

.sore-team-card__name {
	margin: 0;
	font-size: clamp(18px, 1.05vw, 23px);
	font-weight: 650;
	line-height: 1.14;
	letter-spacing: 0;
	color: var(--sore-text) !important;
	white-space: nowrap;
}

.sore-team-card__meta {
	margin: 0;
	font-size: 0.79rem;
	line-height: 1.28;
	color: #8a8f96;
	font-weight: 500;
	overflow-wrap: anywhere;
}

@media (max-width: 767px) {
	.sore-team-card__body {
		padding: 14px 14px 16px;
	}

	.sore-team-card__name {
		font-size: clamp(18px, 5.4vw, 22px);
	}
}

/* ----- Home grafts zone section ----- */

#hoeveel-grafts .sore-grafts-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 48px;
	align-items: center;
	width: 100% !important;
	max-width: none !important;
}

#hoeveel-grafts .sore-grafts-layout > .sore-grafts-content,
#hoeveel-grafts .sore-grafts-layout > .sore-grafts-viewer-shell {
	width: 100% !important;
	max-width: none !important;
	min-width: 0;
	justify-self: stretch;
	align-self: stretch;
}

#hoeveel-grafts .sore-grafts-content {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

#hoeveel-grafts .sore-grafts-content .elementor-widget,
#hoeveel-grafts .sore-grafts-content .elementor-widget-container,
#hoeveel-grafts .sore-grafts-content .sore-home-inline-links {
	width: 100% !important;
	max-width: none !important;
}

/* Description must follow the site body-text flow, not stand out darker.
   Other body paragraphs render Outfit 15px / lh 1.6 / rgba(7,8,7,.6); this
   block was 16px / lh 1.52 / rgba(7,8,7,.9) and read heavier + darker. */
#hoeveel-grafts .sore-grafts-content .sore-home-inline-links {
	font-size: 15px !important;
	line-height: 1.5 !important;
	letter-spacing: -0.15px !important;
	color: rgba(7, 8, 7, 0.6) !important;
}

/* Home intro description — same fix as
   the graft description above: it was rendering 16px / rgba(7,8,7,.9) and
   read darker/heavier than the rest of the body copy. Normalize to the body flow. */
.elementor-element-3222611.sore-home-intro__content .elementor-widget-container p {
	font-size: 15px !important;
	line-height: 1.5 !important;
	letter-spacing: -0.15px !important;
	color: rgba(7, 8, 7, 0.6) !important;
}

#hoeveel-grafts .sore-grafts-cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin-top: 2px;
	width: 100%;
}

#hoeveel-grafts .sore-grafts-card {
	position: relative;
	display: grid;
	grid-template-columns: 38px minmax(0, 1fr);
	grid-template-rows: auto auto;
	column-gap: 12px;
	row-gap: 6px;
	align-content: start;
	align-items: start;
	background: #ffffff;
	border: 1px solid #eeeeee;
	border-radius: 16px;
	padding: 14px;
	min-width: 0;
}

#hoeveel-grafts .sore-grafts-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	grid-row: 1 / span 2;
	margin: 0;
	border: 1px solid #eeeeee;
	border-radius: 12px;
	background: #fbfbfb;
	color: var(--sore-primary);
}

#hoeveel-grafts .sore-grafts-card__icon .sore-icon {
	width: 18px;
	height: 18px;
}

#hoeveel-grafts .sore-grafts-card__title {
	align-self: start;
	margin: 0;
	font-size: clamp(15px, 1.1vw, 17px);
	line-height: 1.2;
	color: var(--sore-text);
}

#hoeveel-grafts .sore-grafts-card__text {
	align-self: start;
	margin: 0;
	font-size: 15px;
	line-height: 1.55;
	color: var(--sore-text-muted);
}

#hoeveel-grafts .sore-grafts-cta-wrap {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 12px;
}

#hoeveel-grafts .sore-grafts-cta-wrap .elementor-button-wrapper,
#hoeveel-grafts .sore-grafts-cta-wrap .elementor-button {
	width: auto !important;
	max-width: 100% !important;
}

#hoeveel-grafts .sore-grafts-viewer-shell {
	display: flex;
	align-items: center;
	justify-content: stretch;
	padding: 0 !important;
}

#hoeveel-grafts .sore-grafts-viewer-surface {
	position: relative;
	--grafts-map-pad: clamp(16px, 1.8vw, 28px);
	width: min(100%, 420px);
	margin-inline: auto;
	aspect-ratio: 776 / 1172;
	min-height: 0;
	background:
		radial-gradient(80% 48% at 50% 17%, rgba(255, 115, 15, 0.10), transparent 60%),
		linear-gradient(158deg, #f8fafc 0%, #edf3f7 100%);
	border: 1px solid rgba(14, 55, 80, 0.1);
	border-radius: 16px;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
	overflow: hidden;
}

#hoeveel-grafts .sore-grafts-map {
	position: absolute;
	inset: var(--grafts-map-pad);
}

#hoeveel-grafts .sore-grafts-map__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}

#hoeveel-grafts .sore-grafts-zone-layer {
	position: absolute;
	inset: 0;
	z-index: 2;
}

#hoeveel-grafts .sore-grafts-zone-summary {
	position: absolute;
	right: 12px;
	bottom: 12px;
	/* Vaste breedte: het paneel verandert niet van maat terwijl zones
	   worden aan- en uitgezet (overlay, dus de sectie zelf sowieso niet). */
	width: min(286px, calc(100% - 24px));
	padding: 10px 12px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.94);
	border: 1px solid rgba(14, 55, 80, 0.1);
	backdrop-filter: blur(4px);
	box-shadow: 0 10px 28px rgba(8, 30, 46, 0.12);
	z-index: 4;
}

#hoeveel-grafts .sore-grafts-zone-summary__label {
	margin: 0;
	font-size: 0.8rem;
	font-weight: 700;
	color: #0f3554;
}

#hoeveel-grafts .sore-grafts-zone-summary__text {
	margin: 3px 0 0;
	font-size: 0.72rem;
	line-height: 1.35;
	color: #4d6678;
}

#hoeveel-grafts .sore-grafts-zone-summary__total {
	margin: 8px 0 0;
	padding-top: 8px;
	border-top: 1px solid rgba(14, 55, 80, 0.1);
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.15;
	color: var(--sore-navy, #0E3166);
}

#hoeveel-grafts .sore-grafts-zone-summary__cta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 9px;
	padding: 7px 11px;
	border-radius: 8px;
	background: var(--sore-primary, #094F89);
	color: #ffffff !important;
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	transition: background-color 0.2s ease;
}

#hoeveel-grafts .sore-grafts-zone-summary__cta:hover,
#hoeveel-grafts .sore-grafts-zone-summary__cta:focus-visible {
	background: var(--sore-navy, #0E3166);
}

#hoeveel-grafts .sore-grafts-zone-summary__cta .sore-icon {
	width: 12px;
	height: 12px;
}

#hoeveel-grafts .sore-grafts-hotspot {
	all: unset;
	position: absolute;
	left: var(--zone-x);
	top: var(--zone-y);
	transform: translate(-50%, -50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	min-width: 42px !important;
	min-height: 42px !important;
	padding: 0 !important;
	border: 2px solid rgba(255, 255, 255, 0.92);
	border-radius: 999px;
	background: color-mix(in srgb, var(--zone-color, #1d4ed8), #0b2133 12%);
	color: #ffffff;
	font-size: 0.78rem;
	font-weight: 800;
	line-height: 1;
	box-shadow: 0 8px 20px rgba(8, 30, 46, 0.22), 0 0 0 5px color-mix(in srgb, var(--zone-color, #1d4ed8), transparent 76%);
	opacity: 0.92;
	cursor: pointer;
	transition: transform 0.18s ease, opacity 0.18s ease, filter 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
	appearance: none;
	-webkit-tap-highlight-color: transparent;
}

#hoeveel-grafts .sore-grafts-viewer-shell.is-selecting .sore-grafts-hotspot:not(.is-active) {
	filter: saturate(0.78) brightness(0.96);
	opacity: 0.58;
}

#hoeveel-grafts .sore-grafts-hotspot span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

#hoeveel-grafts .sore-grafts-hotspot:hover,
#hoeveel-grafts .sore-grafts-hotspot:focus-visible {
	opacity: 0.78;
	filter: saturate(1.08) brightness(1.04);
	outline: none;
	transform: translate(-50%, -50%) scale(1.08);
}

#hoeveel-grafts .sore-grafts-hotspot.is-active {
	filter: none;
	opacity: 1;
	background: var(--sore-accent, #FF730F);
	box-shadow: 0 0 0 7px rgba(255, 115, 15, 0.28), 0 12px 28px rgba(255, 115, 15, 0.34);
}

/* ----- Home three-card strip after grafts ----- */

.elementor-19 .elementor-element.elementor-element-17d1658 {
	--margin-top: clamp(34px, 3.2vw, 54px) !important;
	--sore-home-card-media-height: clamp(156px, 11.2vw, 194px);
	margin-top: var(--margin-top) !important;
	margin-block-start: var(--margin-top) !important;
}

.elementor-19 .elementor-element.elementor-element-17d1658 > .e-con-inner {
	gap: clamp(14px, 1.6vw, 22px);
	align-items: stretch;
}

.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-52e8201,
.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-661481c,
.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-ebccc64 {
	display: flex;
	flex-direction: column;
	gap: 12px;
	position: relative;
	overflow: hidden;
	border: 0 !important;
	background: #fbfbfb;
	padding: clamp(18px, 1.5vw, 24px) !important;
}

.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-52e8201,
.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-661481c,
.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-ebccc64 {
	min-height: clamp(278px, 22vw, 320px) !important;
}

.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-a01e17c,
.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-a3ec6ce,
.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-e9dfbf4 {
	width: 100% !important;
	max-width: 100% !important;
	padding-right: 0 !important;
	margin: 0 !important;
	gap: 8px !important;
}

.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-heading-title:is(h3),
.elementor-19 .elementor-element.elementor-element-17d1658 h3.elementor-heading-title {
	max-width: none;
	font-size: clamp(15px, 0.95vw, 17px) !important;
	line-height: 1.2 !important;
	letter-spacing: -0.01em !important;
	margin: 0 !important;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: calc(1.2em * 1);
}

.elementor-19 .sore-home-card-desc {
	margin: 4px 0 0;
	font-size: 0.94rem;
	line-height: 1.45;
	color: var(--sore-text-muted);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: calc(1.35em * 2);
}

.elementor-19 .sore-home-card-cta {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-top: 8px;
	font-size: 0.82rem;
	font-weight: 700;
	line-height: 1;
	color: #0f517f;
	text-decoration: none;
}

.elementor-19 .sore-home-card-cta:hover,
.elementor-19 .sore-home-card-cta:focus-visible {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.elementor-19 .sore-home-card-cta svg {
	width: 11px;
	height: 11px;
}

.elementor-19 .elementor-element.elementor-element-661481c .elementor-element-a6b345e {
	display: none !important;
}

.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-b72d26d,
.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-680a874,
.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-065cfa1 {
	display: none !important;
}

.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-b72d26d .elementor-widget-container,
.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-680a874 .elementor-widget-container,
.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-065cfa1 .elementor-widget-container {
	margin: 0 !important;
}

.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-b72d26d .elementor-icon,
.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-680a874 .elementor-icon,
.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-065cfa1 .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	font-size: 12px !important;
}

.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-b72d26d .elementor-icon svg,
.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-680a874 .elementor-icon svg,
.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-065cfa1 .elementor-icon svg {
	width: 13px;
	height: 13px !important;
}

.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-b72d26d {
	right: 18px !important;
	top: 18px !important;
}

.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-680a874 {
	right: 18px !important;
	top: 18px !important;
}

.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-065cfa1 {
	right: 18px !important;
	top: 18px !important;
}

.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-ebd77b6,
.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-df45711,
.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-b8cdd78 {
	margin-top: auto;
	display: flex;
	align-items: stretch;
	width: 100% !important;
	max-width: 100% !important;
	padding: 0 !important;
}

.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-3119050 {
	width: 100% !important;
	max-width: 100% !important;
}

.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-3119050 .elementor-widget-container {
	margin: 0 !important;
}

.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-3119050 img,
.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-b440a0c img {
	width: 100% !important;
	height: var(--sore-home-card-media-height) !important;
	max-width: 100% !important;
	object-fit: cover !important;
	display: block;
	border-radius: 16px;
}

.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-df45711 .sore-home-review-mini {
	min-height: var(--sore-home-card-media-height);
	height: var(--sore-home-card-media-height);
	align-content: center;
}

.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-b440a0c {
	position: relative !important;
	width: 100% !important;
	max-width: 100% !important;
	right: auto !important;
	left: auto !important;
	top: auto !important;
	bottom: auto !important;
	margin-top: auto;
	order: 3;
	z-index: 1;
}

.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-b440a0c > .elementor-widget-container,
.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-b440a0c.elementor-widget-image .elementor-widget-container img {
	-webkit-mask-image: none !important;
	mask-image: none !important;
}

.elementor-19 .sore-home-review-mini {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: start;
	gap: 14px;
	width: 100%;
	margin-top: auto;
	padding: 14px;
	border: 0;
	border-radius: 16px;
	background: #eef2f4;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.74);
}

.elementor-19 .sore-home-review-mini__score {
	display: grid;
	gap: 2px;
	min-width: 72px;
	padding-top: 2px;
	color: #122f45;
}

.elementor-19 .sore-home-review-mini__score strong {
	font-size: clamp(28px, 2.25vw, 38px);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
}

.elementor-19 .sore-home-review-mini__score span {
	font-size: 0.76rem;
	font-weight: 700;
	line-height: 1.2;
	color: #4c6374;
}

.elementor-19 .sore-home-review-mini__sources {
	display: grid;
	gap: 8px;
	min-width: 0;
}

.elementor-19 .sore-home-review-source {
	display: grid;
	grid-template-columns: 28px minmax(0, 1fr);
	align-items: center;
	gap: 9px;
	min-width: 0;
	padding: 8px 10px;
	border: 0;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.78);
	color: #12324f;
	text-decoration: none;
	transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

.elementor-19 .sore-home-review-source:hover,
.elementor-19 .sore-home-review-source:focus-visible {
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 0 0 1px rgba(14, 55, 80, 0.12);
	outline: none;
}

.elementor-19 .sore-home-review-source__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 10px;
	background: #ffffff;
	box-shadow: 0 0 0 1px rgba(14, 55, 80, 0.08);
}

.elementor-19 .sore-home-review-source__icon svg {
	display: block;
	width: 16px;
	height: 16px;
}

.elementor-19 .sore-home-review-source strong,
.elementor-19 .sore-home-review-source small {
	display: block;
	min-width: 0;
	overflow-wrap: anywhere;
}

.elementor-19 .sore-home-review-source strong {
	font-size: 0.9rem;
	font-weight: 700;
	line-height: 1.15;
}

.elementor-19 .sore-home-review-source small {
	margin-top: 2px;
	font-size: 0.76rem;
	font-weight: 500;
	line-height: 1.25;
	color: #526879;
}

@media (max-width: 1180px) {
	#hoeveel-grafts .sore-grafts-layout {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 28px;
	}

	#hoeveel-grafts .sore-grafts-viewer-surface {
		width: min(100%, 420px);
	}

	.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-52e8201,
	.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-661481c,
	.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-ebccc64 {
		min-height: clamp(266px, 27vw, 306px) !important;
	}

	.elementor-19 .elementor-element.elementor-element-17d1658 {
		--sore-home-card-media-height: clamp(148px, 17vw, 182px);
	}

	.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-a01e17c,
	.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-a3ec6ce,
	.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-e9dfbf4 {
		padding-right: 0 !important;
	}
}

@media (max-width: 1024px) {
	#hoeveel-grafts .sore-grafts-layout {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	#hoeveel-grafts .sore-grafts-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	#hoeveel-grafts .sore-grafts-viewer-shell {
		justify-content: stretch;
	}

	#hoeveel-grafts .sore-grafts-viewer-surface {
		width: min(100%, 480px);
	}

	.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-52e8201,
	.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-661481c,
	.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-ebccc64 {
		min-height: 248px !important;
	}

	.elementor-19 .elementor-element.elementor-element-17d1658 {
		--sore-home-card-media-height: 160px;
	}
}

@media (max-width: 767px) {
	#hoeveel-grafts .sore-grafts-cards {
		grid-template-columns: 1fr;
	}

	#hoeveel-grafts .sore-grafts-cta-wrap {
		flex-wrap: wrap;
	}

	#hoeveel-grafts .sore-grafts-zone-summary {
		left: 12px;
		right: 12px;
		top: auto;
		bottom: 12px;
		width: auto;
		max-width: none;
	}

	#hoeveel-grafts .sore-grafts-hotspot {
		width: 34px;
		height: 34px;
		min-width: 34px !important;
		min-height: 34px !important;
		font-size: 0.78rem;
	}

	#hoeveel-grafts .sore-grafts-zone-summary {
		padding: 9px 10px;
		border-radius: 9px;
	}

	.elementor-19 .sore-home-review-mini {
		grid-template-columns: 1fr;
		padding: 12px;
	}

	.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-52e8201,
	.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-661481c,
	.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-ebccc64 {
		padding: 16px !important;
		min-height: 234px !important;
	}

	.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-a01e17c,
	.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-a3ec6ce,
	.elementor-19 .elementor-element.elementor-element-17d1658 .elementor-element-e9dfbf4 {
		padding-right: 0 !important;
	}

	.elementor-19 .elementor-element.elementor-element-17d1658 {
		--sore-home-card-media-height: clamp(136px, 42vw, 168px);
	}

	.elementor-19 .sore-home-card-desc {
		font-size: 0.88rem;
	}
}

.sore-progress-loader,
.e-load-more-spinner,
.sore-review-feed__loader {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	min-height: 42px;
	margin: 16px 0 2px;
	color: var(--sore-text-muted, rgba(17, 24, 39, 0.68));
	font-family: var(--sore-font-body, "Manrope", sans-serif);
	font-size: 13px;
	line-height: 1.4;
}

.sore-progress-loader[hidden],
.e-load-more-spinner[hidden],
.sore-review-feed__loader[hidden] {
	display: none !important;
}

.sore-progress-loader__spinner,
.sore-review-feed__spinner {
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	border: 2px solid rgba(6, 48, 83, 0.16);
	border-top-color: var(--sore-primary, #063053);
	border-radius: 50%;
	animation: sore-load-more-spin 0.7s linear infinite;
}

@keyframes sore-load-more-spin {
	to {
		transform: rotate(360deg);
	}
}

/* ===== Behandeldag/Proces/Steps Flow split layout ===== */
.sore-steps-flow {
	display: flex;
	flex-direction: column;
	gap: 60px;
}

.sore-steps-step {
	display: grid;
	grid-template-columns: minmax(0, 1.06fr) minmax(300px, 0.94fr);
	grid-template-areas: "content visual";
	gap: 34px;
	align-items: start;
}

.sore-steps-step__content,
.sore-steps-step__visual {
	min-width: 0;
}

.sore-steps-step__content {
	grid-area: content;
}

.sore-steps-step__visual {
	grid-area: visual;
}

.sore-steps-step.is-reversed {
	grid-template-columns: minmax(300px, 0.94fr) minmax(0, 1.06fr);
	grid-template-areas: "visual content";
}

.sore-steps-step h3 {
	margin: 0;
}

.sore-steps-step__description {
	margin: 14px 0 20px;
	font-size: 15px;
	line-height: 1.5;
	color: var(--sore-text-muted, #07080799);
}

.sore-steps-step__highlights-label {
	margin: 18px 0 10px;
	color: #2b3d4a;
	font-size: 0.94rem;
	font-weight: 600;
}

.sore-steps-step__highlight-item {
	position: relative;
	display: flex;
	align-items: flex-start;
	border: 1px solid #e4e7eb;
	border-radius: 10px;
	background: #fbfbfb;
	color: #335265;
	line-height: 1.5;
	font-size: 0.89rem;
	padding: 10px 12px 10px 36px;
}

.sore-steps-step__highlight-item::before {
	content: "";
	position: absolute;
	top: 12px;
	left: 12px;
	width: 16px;
	height: 16px;
	border-radius: 10px;
	background: #5f95b3;
	box-shadow: inset 0 0 0 4px #fbfbfb;
}

.sore-steps-step__highlight-grid {
	margin-top: 10px;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 10px;
}

.sore-steps-step__cta {
	margin-top: 20px;
}

.sore-steps-step__visual {
	position: sticky;
	top: 30px;
}

.sore-steps-step__visual-inner {
	border: 1px solid #e4edf2;
	border-radius: 16px;
	overflow: hidden;
	background: #f4fbff;
	box-shadow: 0 14px 30px rgba(5, 73, 119, 0.12);
}

.sore-steps-step__visual img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 0!important;
}

.sore-steps-divider {
	width: 100%;
	border: 0;
	border-top: 1px solid #e7e7e7;
	margin: 6px 0 10px;
}

@media (min-width: 1024px) {
	.sore-steps-step__highlight-item {
		white-space: nowrap;
	}
}

@media (max-width: 1024px) {
	/* Mobiel: ALTIJD dezelfde volgorde — tekst boven, beeld onder — voor
	   zowel normale als omgekeerde (is-reversed) stappen. De reversed-variant
	   hield op mobiel z'n 2-koloms grid met beeld links (specificiteit 0-2-0
	   won van de media-regel), waardoor de tekstkolom onleesbaar smal werd. */
	.sore-steps-step,
	.sore-steps-step.is-reversed {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"content"
			"visual";
		gap: 18px;
	}

	.sore-steps-step__visual {
		position: static;
	}

	.sore-steps-step__visual img {
		aspect-ratio: 16 / 10;
	}
}

@media (max-width: 767px) {
	.sore-steps-flow {
		gap: 30px;
	}
}

/* Align Behandeldag and Over Ons reviews container styles */
.elementor-4761 .elementor-element.elementor-element-26fc8f0,
.elementor-988262 .elementor-element.elementor-element-26fc8f0,
.elementor-988262 .elementor-element.elementor-element-26fc8f0:not(.elementor-motion-effects-element-type-background),
.elementor-988262 .elementor-element.elementor-element-26fc8f0 > .elementor-motion-effects-container > .elementor-motion-effects-layer,
body.page-id-988262 .elementor-element.elementor-element-26fc8f0,
body.page-id-23 .elementor-element.elementor-element-26fc8f0 {
	--margin-top: clamp(28px, 2.8vw, 42px) !important;
	--margin-bottom: clamp(16px, 1.8vw, 26px) !important;
	--padding-top: clamp(10px, 1.2vw, 18px) !important;
	--padding-bottom: clamp(22px, 2.2vw, 32px) !important;
	margin-top: clamp(28px, 2.8vw, 42px) !important;
	margin-bottom: clamp(16px, 1.8vw, 26px) !important;
	padding-top: clamp(10px, 1.2vw, 18px) !important;
	padding-bottom: clamp(22px, 2.2vw, 32px) !important;
	background: linear-gradient(180deg, #fbfbfb 0%, #fbfbfb 34%, #ffffff 100%) !important;
	background-image: linear-gradient(180deg, #fbfbfb 0%, #fbfbfb 34%, #ffffff 100%) !important;
}

/* Reduce margin below the steps container on Behandeldag to bring Reviews closer */
body.page-id-988262 .elementor-element.elementor-element-2eba987 {
	--margin-bottom: clamp(45px, 6vw, 80px) !important;
	margin-bottom: clamp(45px, 6vw, 80px) !important;
}

/* Custom links on result card titles - inherit heading color and transition on hover */
.sore-result-card__name-link,
a.sore-result-card__name-link {
	color: inherit !important;
	text-decoration: none !important;
	transition: color 0.25s ease;
}
.sore-result-card__name-link:hover,
a.sore-result-card__name-link:hover {
	color: var(--e-global-color-vamtam_accent_2, #6795AC) !important;
}

/* Legal / Privacy / Klachten content width override to match page breadcrumbs shell */
.elementor-element.elementor-element-416324f {
	--content-width: var(--sore-shell-width, 1280px) !important;
}

/* Legal / privacy pages follow the complaint procedure's quiet text hierarchy:
   bold section labels, not display headings. */
.elementor-988166 .elementor-element.elementor-element-dc01245 .sore-legal__section-title {
	margin: 28px 0 10px !important;
	color: var(--sore-text, #070807) !important;
	font: inherit !important;
	font-size: inherit !important;
	line-height: 1.45 !important;
	letter-spacing: normal !important;
}

.elementor-988166 .elementor-element.elementor-element-dc01245 .sore-legal__section-title strong {
	font-weight: 700 !important;
}

.elementor-988166 .elementor-element.elementor-element-dc01245 > .sore-legal__section-title:first-child {
	margin-top: 0 !important;
}

/* ===== Contact Page Layout & Card Styles ===== */
.sore-contact-section {
	margin-top: 30px;
	margin-bottom: 50px;
}

.sore-contact-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	width: 100%;
}

.sore-contact-card {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: flex-start;
	padding: 24px;
	background: #ffffff;
	border: 1px solid #eeeeee;
	border-radius: 16px;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
	min-height: 100%;
}

.sore-contact-card:hover {
	border-color: var(--sore-primary);
	box-shadow: 0 10px 24px rgba(5, 73, 119, 0.05);
	transform: translateY(-2px);
}

.sore-contact-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border: 1px solid #eeeeee;
	border-radius: 12px;
	background: #fbfbfb;
	color: var(--sore-primary);
	margin-bottom: 16px;
}

.sore-contact-card__icon .sore-icon {
	width: 20px;
	height: 20px;
}

.sore-contact-card h3 {
	margin: 0 0 8px;
	color: var(--sore-text);
	font-size: clamp(16px, 1.2vw, 18px);
	font-weight: 600;
	line-height: 1.2;
}

.sore-contact-card p {
	margin: 0 0 16px;
	color: var(--sore-text-muted);
	font-size: 15px;
	line-height: 1.55;
}

.sore-contact-card__btn {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	font-weight: 600;
	color: var(--sore-primary);
	text-decoration: none;
	transition: color 0.2s ease;
}

.sore-contact-card__btn:hover {
	color: var(--e-global-color-vamtam_accent_2, #6795AC);
}

.sore-contact-card__btn svg {
	width: 14px;
	height: 14px;
}

/* Map Embed Container */
.sore-contact-maps {
	width: 100%;
	margin-top: 40px;
	border-radius: 24px;
	overflow: hidden;
	border: 1px solid #eeeeee;
	box-shadow: 0 10px 30px rgba(7, 8, 7, 0.04);
	background: #fbfbfb;
}

.sore-contact-maps iframe {
	display: block;
	width: 100%;
	height: 450px;
	border: 0;
}

.sore-contact-maps iframe[hidden] {
	display: none !important;
}

.sore-contact-map-consent {
	min-height: 300px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 36px 24px;
	text-align: center;
	background: linear-gradient(145deg, #f7fafc 0%, #eef4f8 100%);
}

.sore-contact-map-consent[hidden] {
	display: none !important;
}

.sore-contact-map-consent__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 14px;
	background: #0e3166;
	color: #ffffff;
}

.sore-contact-map-consent__icon svg {
	width: 22px;
	height: 22px;
}

.sore-contact-map-consent strong {
	color: #0e3166;
	font-size: clamp(18px, 2vw, 24px);
}

.sore-contact-map-consent p {
	margin: 0;
	color: #52677b;
	font-size: 14px;
}

.sore-contact-map-consent__actions {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin-top: 8px;
}

html body .sore-contact-map-consent__button,
.sore-contact-map-consent__actions a {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 42px !important;
	margin: 0 !important;
	padding: 10px 16px !important;
	border: 1px solid #0e3166 !important;
	border-radius: 10px !important;
	font: 700 13px/1 var(--sore-font-body, "Manrope", sans-serif) !important;
	text-decoration: none !important;
	cursor: pointer;
}

html body .sore-contact-map-consent__button {
	background: #0e3166 !important;
	color: #ffffff !important;
}

.sore-contact-map-consent__actions a {
	background: transparent !important;
	color: #0e3166 !important;
}

.sore-contact-map-noscript {
	margin: 0;
	padding: 16px;
	text-align: center;
}

@media (max-width: 1024px) {
	.sore-contact-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 16px;
	}
}

@media (max-width: 767px) {
	.sore-contact-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	/* Compactere kaarten zodat de 4 boxen als 2×2 netjes passen. */
	.sore-contact-card {
		padding: 14px;
	}

	.sore-contact-card__icon {
		width: 36px;
		height: 36px;
		border-radius: 10px;
		margin-bottom: 10px;
	}

	.elementor-kit-5 main.site-main .sore-contact-card h3 {
		font-size: 13.5px !important;
		line-height: 1.2 !important;
		margin-bottom: 4px;
	}

	.elementor-kit-5 main.site-main .sore-contact-card p {
		font-size: 11.5px !important;
		line-height: 1.35 !important;
		margin-bottom: 8px;
		overflow-wrap: break-word;
		word-break: break-word;
	}

	.sore-contact-card__btn {
		font-size: 11px !important;
	}

	.sore-contact-section {
		margin-top: 20px;
		margin-bottom: 30px;
	}
	
	.sore-contact-maps {
		margin-top: 30px;
	}
	
	.sore-contact-maps iframe {
		height: 320px;
	}

	.sore-contact-map-consent {
		min-height: 250px;
		padding: 28px 16px;
	}

	.sore-contact-map-consent__actions {
		width: 100%;
	}

	html body .sore-contact-map-consent__button,
	.sore-contact-map-consent__actions a {
		flex: 1 1 0;
		min-width: 0;
		padding-inline: 10px !important;
	}
}

/* ===== Pricing Page Tables & Redesign ===== */
.sore-pricing-table-wrapper {
	width: 100%;
	overflow-x: auto;
	margin-top: 24px;
	margin-bottom: 40px;
	border-radius: 16px;
	border: 1px solid #eeeeee;
	box-shadow: 0 10px 30px rgba(7, 8, 7, 0.03);
}

.sore-pricing-table {
	width: 100%;
	min-width: 900px;
	border-collapse: collapse;
	background: #ffffff;
	font-size: 13.5px;
	line-height: 1.5;
	text-align: left;
}

.sore-pricing-table th {
	background-color: #fafbfc;
	color: var(--sore-text, #070807E6);
	font-weight: 600;
	padding: 16px 14px;
	font-size: 14px;
	letter-spacing: -0.01em;
	text-align: center;
	border-right: 1px solid var(--sore-border, #eeeeee);
	border-bottom: 2px solid var(--sore-border, #eeeeee);
}

.sore-pricing-table th:first-child {
	text-align: left;
	border-right: 1px solid var(--sore-border, #eeeeee);
}

.sore-pricing-table th:last-child {
	border-right: 0;
}

.sore-pricing-table td {
	padding: 14px;
	border-bottom: 1px solid #f0f0f0;
	border-right: 1px solid #f6f6f6;
	vertical-align: top;
	color: var(--sore-text);
}

.sore-pricing-table td:first-child {
	font-weight: 600;
	color: var(--sore-text, #070807E6);
	background-color: #fafbfc;
	border-right: 1px solid var(--sore-border, #eeeeee);
}

.sore-pricing-table td:last-child {
	border-right: 0;
}

.sore-pricing-table tr:last-child td {
	border-bottom: 0;
}

.sore-pricing-table-tiers {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

.sore-pricing-table-tiers li {
	font-size: 13px;
	line-height: 1.45;
	margin-bottom: 8px;
	padding-bottom: 6px;
	border-bottom: 1px dashed #e8e8e8;
}

.sore-pricing-table-tiers li:last-child {
	border-bottom: 0;
	margin-bottom: 0;
	padding-bottom: 0;
}

.sore-pricing-table-tiers strong {
	color: var(--sore-text-muted);
	font-weight: 500;
	font-size: 10px;
	display: block;
	text-transform: uppercase;
	margin-bottom: 1px;
}

.sore-pricing-table-tiers span {
	font-weight: 700;
	color: var(--sore-primary);
	font-size: 14px;
}

.sore-pricing-table td.cta-cell {
	vertical-align: middle;
	text-align: center;
	background: #fbfbfb;
	padding: 12px 10px;
}

.sore-pricing-table-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 100%;
	padding: 8px 12px;
	background-color: var(--sore-primary);
	color: #ffffff !important;
	border-radius: 10px;
	font-size: 11px;
	font-weight: 600;
	text-decoration: none;
	transition: background-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
	box-shadow: 0 4px 10px rgba(5, 73, 119, 0.08);
}

.sore-pricing-table-btn:hover {
	background-color: var(--e-global-color-vamtam_accent_1, #5f95b3);
	transform: translateY(-1.5px);
	box-shadow: 0 6px 14px rgba(5, 73, 119, 0.15);
}

.sore-pricing-table-btn svg {
	width: 12px;
	height: 12px;
}

/* Comparison section styling - Strictly NO green color */
.sore-pricing-market {
	margin-top: 60px;
	margin-bottom: 40px;
}

.sore-pricing-market h3 {
	margin: 0 0 12px;
	color: var(--sore-text);
	font-size: clamp(20px, 2.2vw, 24px);
	font-weight: 600;
}

.sore-pricing-market p {
	margin: 0 0 24px;
	color: var(--sore-text-muted);
	font-size: 15px;
	line-height: 1.5;
	max-width: 720px;
}

.sore-pricing-market table {
	width: 100%;
	border-collapse: collapse;
	background: #ffffff;
	border-radius: 16px;
	overflow: hidden;
	border: 1px solid #eeeeee;
	box-shadow: 0 10px 30px rgba(7, 8, 7, 0.03);
}

.sore-pricing-market th {
	background-color: #fafbfc !important;
	color: var(--sore-text, #070807E6) !important;
	font-weight: 600;
	padding: 16px 14px;
	font-size: 13.5px;
	text-align: left;
	border-right: 1px solid var(--sore-border, #eeeeee);
	border-bottom: 2px solid var(--sore-border, #eeeeee);
}

.sore-pricing-market th:last-child {
	border-right: 0;
}

.sore-pricing-market td {
	padding: 14px 16px;
	border-bottom: 1px solid #f0f0f0;
	border-right: 1px solid #f6f6f6;
	font-size: 13.5px;
}

.sore-pricing-market td:last-child {
	border-right: 0;
}

.sore-pricing-market tr:last-child td {
	border-bottom: 0;
}

.sore-pricing-market tr:hover {
	background-color: #fafbfc;
}

.sore-pricing-market td.saving-highlight {
	color: var(--e-global-color-vamtam_accent_1, #5f95b3) !important;
	font-weight: 700;
	background-color: #f4f8fa;
}

.sore-pricing-market__note {
	margin-top: 12px;
	color: var(--sore-text-muted);
	font-size: 11px;
	font-style: italic;
	line-height: 1.4;
}

/* SEO content block with generous typography and spacing */
.sore-pricing-seo {
	margin-top: 60px;
	margin-bottom: 60px;
	font-size: 14.5px;
	line-height: 1.5;
	color: var(--sore-text-muted);
}

.sore-pricing-seo h2 {
	color: var(--sore-text);
	font-size: clamp(20px, 2.3vw, 25px);
	margin-top: 48px !important;
	margin-bottom: 18px !important;
	font-weight: 600;
}

.sore-pricing-seo p {
	margin-bottom: 22px !important;
	line-height: 1.5;
	font-size: 14.5px;
}

.sore-pricing-seo ul {
	margin: 0 0 24px 20px !important;
	padding: 0;
}

.sore-pricing-seo li {
	margin-bottom: 10px !important;
	line-height: 1.5;
}

.sore-pricing-seo-divider {
	display: block !important;
	width: 100% !important;
	height: 1px !important;
	border: 0 !important;
	border-top: 1px solid #eeeeee !important;
	margin: 60px 0 !important;
	padding: 0 !important;
	clear: both !important;
}

/* Pricing-page FAQ uses the unified .sore-faq-accordion base — no overrides. */

/* ===== Service Card Component ===== */
.sore-service-slide {
	height: auto;
}

.sore-service-card {
	display: grid;
	grid-template-rows: auto 1fr;
	height: 100%;
	overflow: hidden;
	border: 1px solid #eeeeee;
	border-radius: 16px;
	background: #ffffff;
	box-shadow: none !important;
	transition: border-color 0.24s ease, background-color 0.24s ease;
}

.sore-service-card:hover,
.sore-service-card:focus-within {
	border-color: #dbe8ef;
	background: #ffffff;
	box-shadow: none !important;
}

.sore-service-card__media {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 1.34 / 1;
	isolation: isolate;
	border-radius: 16px 16px 0 0;
	background: transparent;
}

.sore-service-card__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(7, 27, 44, 0.02) 0%, rgba(7, 27, 44, 0.14) 100%);
	pointer-events: none;
}

.sore-service-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 16px 16px 0 0!important;
}

.sore-service-card__body {
	display: grid;
	align-content: start;
	gap: 12px;
	padding: 20px 20px 18px;
}

.sore-service-card__eyebrow {
	margin: 0;
	color: #8a949d;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0.08em;
	text-transform: capitalize;
}

.sore-service-card__title {
	margin: 0 !important;
	font-size: clamp(18px, 1.4vw, 22px);
	line-height: 1.18;
	letter-spacing: -0.018em;
}

.sore-service-card__title a {
	color: var(--sore-text);
	text-decoration: none;
}

.sore-service-card__title a:hover,
.sore-service-card__title a:focus-visible {
	color: var(--sore-primary);
}

.sore-service-card__description {
	margin: 0;
	color: var(--sore-text-muted);
	font-size: 15px;
	line-height: 1.5;
}

.sore-service-card__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-top: 2px;
	color: var(--sore-primary);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
}

.sore-service-card__link-icon {
	width: 16px;
	height: 16px;
}

.sore-service-card__link:hover,
.sore-service-card__link:focus-visible {
	color: #0a638f;
}

@media (max-width: 767px) {
	.sore-service-card__body {
		padding: 18px 16px 16px;
	}

	.sore-service-card__title {
		font-size: 18px;
	}

	.sore-service-card__description {
		font-size: 14px;
	}
}

/* =====================================================================
   Footer — premium deep-navy redesign (#0E3166) with amber (#FF730F)
   accents + a closing CTA band. Global (all pages). Overrides the washed
   steel-blue background set per-page in the origin inline CSS.
   ===================================================================== */
.footer-wrapper .elementor.elementor-1163 .elementor-element.elementor-element-8ee64ec,
.footer-wrapper .elementor-1163 .elementor-element-8ee64ec {
	background: linear-gradient(180deg, #0E3166 0%, #0A2550 100%) !important;
	position: relative;
	overflow: hidden;
	border-radius: 28px 28px 0 0 !important;
	padding-top: clamp(44px, 4.5vw, 76px) !important;
	padding-bottom: clamp(26px, 3vw, 40px) !important;
}

.footer-wrapper .elementor-1163 .elementor-element-8ee64ec::before {
	content: "";
	position: absolute;
	top: -34%;
	right: -8%;
	width: 540px;
	height: 540px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255, 115, 15, 0.12) 0%, rgba(255, 115, 15, 0) 70%);
	pointer-events: none;
	z-index: 0;
}

.footer-wrapper .elementor-1163 .e-con-inner {
	position: relative;
	z-index: 1;
}

/* Column headings → amber, refined caps */
.elementor-1163 .elementor-element-7bb876f .elementor-heading-title {
	color: #FF730F !important;
	font-family: "Outfit", "Inter", sans-serif !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	margin-bottom: 8px !important;
}

/* Footer links → light, amber hover with subtle slide */
.elementor-1163 .elementor-nav-menu .elementor-item {
	color: rgba(255, 255, 255, 0.82) !important;
	font-family: "Outfit", "Inter", sans-serif !important;
	font-size: 15px !important;
	padding: 6px 0 !important;
	transition: color 0.2s ease, transform 0.2s ease !important;
}

.elementor-1163 .elementor-nav-menu .elementor-item:hover {
	color: #FF730F !important;
	transform: translateX(5px);
}

/* Drop the decorative circle dots; keep one clean hairline divider */
.elementor-1163 .elementor-element-e80177e .elementor-widget-icon {
	display: none !important;
}

.elementor-1163 .elementor-element-e80177e .elementor-divider-separator {
	border-top: 1px solid rgba(255, 255, 255, 0.14) !important;
}

/* Social icons → glass circle, amber hover */
.elementor-1163 .elementor-social-icon {
	background-color: rgba(255, 255, 255, 0.08) !important;
	border: 1px solid rgba(255, 255, 255, 0.18) !important;
	color: #ffffff !important;
	width: 42px !important;
	height: 42px !important;
	transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease !important;
}

.elementor-1163 .elementor-social-icon:hover {
	background-color: #FF730F !important;
	border-color: #FF730F !important;
	transform: translateY(-2px);
}

.elementor-1163 .elementor-social-icon svg {
	fill: currentColor !important;
	transition: fill 0.2s ease, color 0.2s ease !important;
}

.elementor-1163 .elementor-social-icon:hover,
.elementor-1163 .elementor-social-icon:focus-visible {
	color: #ffffff !important;
}

.elementor-1163 .elementor-social-icon:hover svg,
.elementor-1163 .elementor-social-icon:focus-visible svg {
	fill: #ffffff !important;
}

/* Copyright + legal → muted light, amber hover */
.elementor-1163 .elementor-element-cd0a2c1 .elementor-heading-title,
.elementor-1163 .elementor-element-cd0a2c1 a {
	color: rgba(255, 255, 255, 0.60) !important;
	font-size: 13px !important;
}

.elementor-1163 .elementor-element-cd0a2c1 a:hover {
	color: #FF730F !important;
}

/* ===== Closing CTA band ===== */
.sore-footer-cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: clamp(20px, 3vw, 48px);
	flex-wrap: wrap;
	padding: 0 0 clamp(34px, 4vw, 52px);
	margin-bottom: clamp(30px, 3.4vw, 46px);
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	position: relative;
	z-index: 1;
}

.sore-footer-cta__eyebrow {
	margin: 0 0 10px;
	color: #FF730F;
	font-family: "Outfit", "Inter", sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.sore-footer-cta__title {
	margin: 0 0 10px;
	color: #ffffff;
	font-family: "Ovo", serif;
	font-size: clamp(26px, 3.2vw, 42px);
	line-height: 1.08;
}

.sore-footer-cta__sub {
	margin: 0;
	color: rgba(255, 255, 255, 0.72);
	font-family: "Outfit", "Inter", sans-serif;
	font-size: 15px;
	line-height: 1.5;
	max-width: 48ch;
}

.sore-footer-cta__actions {
	display: flex;
	align-items: center;
	gap: clamp(14px, 1.6vw, 26px);
	flex-wrap: wrap;
}

.sore-footer-cta__btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 26px;
	border-radius: 8px;
	background: #ffffff;
	color: #0E3166;
	font-family: "Outfit", "Inter", sans-serif;
	font-weight: 600;
	font-size: 16px;
	text-decoration: none;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.sore-footer-cta__btn:hover {
	background: #eef1f6;
	transform: translateY(-2px);
}

.sore-footer-cta__phone {
	color: #ffffff;
	font-family: "Outfit", "Inter", sans-serif;
	font-weight: 600;
	font-size: 16px;
	text-decoration: none;
	border-bottom: 1px solid rgba(255, 255, 255, 0.30);
	padding-bottom: 3px;
	transition: border-color 0.2s ease, color 0.2s ease;
}

.sore-footer-cta__phone:hover {
	border-bottom-color: #FF730F;
}

@media (max-width: 720px) {
	.sore-footer-cta {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* Footer columns stack on mobile (were cramped 3-across) */
@media (max-width: 768px) {
	.footer-wrapper .elementor-1163 .elementor-element-7bb876f {
		flex-direction: column !important;
		gap: clamp(22px, 5vw, 32px) !important;
	}

	.footer-wrapper .elementor-1163 .elementor-element-7bb876f > .e-con {
		width: 100% !important;
		max-width: 100% !important;
	}

	/* Bottom bar: copyright, legal links and social icons follow the same
	   left edge as the footer navigation on mobile. */
	.footer-wrapper .elementor-1163 .elementor-element-cd0a2c1,
	.footer-wrapper .elementor-1163 .elementor-element-cd0a2c1 > .e-con-inner,
	.footer-wrapper .elementor-1163 .elementor-element-cd0a2c1 > .e-con,
	.footer-wrapper .elementor-1163 .elementor-element-4c9f2d3,
	.footer-wrapper .elementor-1163 .elementor-element-4c9f2d3 > .e-con-inner,
	.footer-wrapper .elementor-1163 .elementor-element-648ef74,
	.footer-wrapper .elementor-1163 .elementor-element-648ef74 > .e-con-inner,
	.footer-wrapper .elementor-1163 .elementor-element-6412e48 {
		justify-content: flex-start !important;
		align-items: flex-start !important;
		text-align: left !important;
	}

	.footer-wrapper .elementor-1163 .elementor-element-6412e48 .elementor-social-icons-wrapper {
		justify-content: flex-start !important;
	}

	.footer-wrapper .elementor-1163 .elementor-element-cd0a2c1 {
		padding-inline: 0 !important;
	}

	.footer-wrapper .elementor-1163 .elementor-element-891bb61,
	.footer-wrapper .elementor-1163 .elementor-element-891bb61 .elementor-heading-title,
	.footer-wrapper .elementor-1163 .elementor-element-802fcef,
	.footer-wrapper .elementor-1163 .elementor-element-802fcef .elementor-widget-container,
	.footer-wrapper .elementor-1163 .elementor-element-802fcef .elementor-social-icons-wrapper {
		margin-left: 0 !important;
		text-align: left !important;
	}
}

/* ===== Footer layout parity (home ↔ subpagina's) =====
   Deze full-bleed regels stonden alleen in sore-home-pillar.css, dat UITSLUITEND
   op de homepage laadt. Daardoor was de footer op subpagina's smaller/anders
   (boxed i.p.v. full-width). Nu globaal in sore-components.css zodat de footer
   op ELKE pagina identiek rendert. */
.footer-wrapper,
#main-footer {
	margin-top: 0 !important;
}

.footer-wrapper .elementor-element.elementor-element-8ee64ec.e-parent {
	width: 100vw !important;
	max-width: none !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	--margin-top: 12px !important;
	margin-top: 12px !important;
	--padding-top: 24px !important;
	padding-top: 24px !important;
	border-radius: 24px 24px 0 0 !important;
	overflow: hidden;
}

.footer-wrapper .elementor-element.elementor-element-8ee64ec.e-parent > .e-con-inner {
	/* width:100% + max-width + auto-marges centreert de inner betrouwbaar in de
	   full-bleed footer; alleen auto-marges faalde (Elementor nulde ze), waardoor
	   de inhoud links plakte met een vreemde gat rechts. */
	width: 100% !important;
	max-width: min(var(--sore-shell-width), calc(100vw - 48px)) !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Vaste mobiele snelmenu-dock overlapt de onderkant van de footer; extra
   ruimte binnen de navy footer zodat copyright/juridische links vrij blijven.
   Padding op de inner (hoge specificiteit) i.p.v. de con, die z'n padding via
   Elementor-variabelen zet en onze regel negeerde. */
@media (max-width: 1024px) {
	.footer-wrapper .elementor-element.elementor-element-8ee64ec.e-parent > .e-con-inner {
		padding-bottom: 88px !important;
	}
}



/* ── Blog card title — single source of truth ────────────────────────────────
   Blog cards appear in 3 stylesheets (home-pillar, blog-archive-inline,
   blog-single-inline), each defaulting the title to var(--sore-primary) (blue)
   with a black hover. The user wants the title ALWAYS black, everywhere.
   This file (sore-components.css) loads on every page family, so one
   !important rule here authoritatively overrides all three.
   Size is also unified to the homepage card title (1.05rem / 1.35) so the blog
   archive + single related cards match the homepage cards exactly. */
.sore-blog-card__title,
.sore-blog-card:hover .sore-blog-card__title {
	color: var(--sore-text) !important;
	font-size: 1.05rem !important;
	line-height: 1.35 !important;
}

/* =====================================================================
   SUB-PAGE HERO — single source of truth (NEW-6)
   One reusable hero (fragments/pages/partials/subpage-hero.blade.php) for
   every page-map static sub-page. Full-bleed image starts BEHIND the shared
   header (same header as home), but the height is SHORTER than the home
   hero so the page content stays visible. Content (breadcrumb, title, lead)
   is capped to the site shell width, matching the homepage container.
   Loaded site-wide via sore-components.css; the bare .sore-subhero* rules
   style the <section>, while the header overrides are scoped to the
   body.sore-subhero-page token so they never affect home, blog, or
   controller-driven detail pages. Typography uses !important to beat the
   global .elementor-kit-5 h1/p/a heading + link colors on the dark hero.
   ===================================================================== */
.sore-subhero {
	position: relative;
	left: 50%;
	width: 100vw;
	margin-left: -50vw;
	margin-bottom: clamp(36px, 4.5vw, 64px);
	min-height: clamp(300px, 38vh, 420px);
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	isolation: isolate;
	background:
		radial-gradient(120% 140% at 88% -10%, rgba(255, 115, 15, 0.22) 0%, rgba(255, 115, 15, 0) 46%),
		radial-gradient(110% 120% at 6% 110%, rgba(56, 110, 190, 0.38) 0%, rgba(56, 110, 190, 0) 52%),
		linear-gradient(135deg, #0a2750 0%, #0E3166 46%, #123c7a 100%);
}

/* Decorative shapes — no image, pure shape/color */
.sore-subhero::before {
	content: "";
	position: absolute;
	top: -32%;
	right: -8%;
	width: clamp(320px, 38vw, 560px);
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.07) 0%, rgba(255, 255, 255, 0) 70%);
	z-index: 0;
	pointer-events: none;
}

.sore-subhero::after {
	content: "";
	position: absolute;
	left: -6%;
	bottom: -54%;
	width: clamp(360px, 42vw, 620px);
	aspect-ratio: 1;
	border: 1px solid rgba(244, 236, 226, 0.10);
	border-radius: 50%;
	box-shadow: 0 0 0 clamp(26px, 4vw, 56px) rgba(244, 236, 226, 0.04);
	z-index: 0;
	pointer-events: none;
}

.sore-subhero__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: var(--sore-shell-max, 1280px);
	margin-inline: auto;
	padding: clamp(160px, 17vh, 188px) clamp(18px, 4vw, 32px) clamp(34px, 4.4vh, 52px);
}

.sore-subhero__breadcrumb {
	margin: 0 0 clamp(12px, 1.4vw, 18px);
}

.sore-subhero__breadcrumb ol {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 6px;
}

.sore-subhero__crumb {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	line-height: 1.2;
	color: rgba(244, 236, 226, 0.72) !important;
}

.sore-subhero__crumb a {
	color: rgba(244, 236, 226, 0.72) !important;
	text-decoration: none;
	transition: color 0.2s ease;
}

.sore-subhero__crumb a:hover {
	color: #ffffff !important;
}

.sore-subhero__crumb [aria-current="page"] {
	color: #f4ece2 !important;
	font-weight: 500;
}

.sore-subhero__sep {
	color: rgba(244, 236, 226, 0.4) !important;
}

.sore-subhero__eyebrow {
	margin: 0 0 10px;
	font-family: var(--sore-font-body, "Manrope", sans-serif) !important;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--sore-accent, #FF730F) !important;
}

.sore-subhero__title {
	margin: 0;
	font-family: var(--sore-font-heading, "Ovo", Georgia, serif) !important;
	font-weight: 600 !important;
	color: #f4ece2 !important;
	/* 3.25vw→2.7vw + cap 52→46: op laptopbreedtes (~1440px) oogde de
	   subpage-hero H1 te groot (46.8px → nu 38.9px); op brede schermen
	   blijft het verschil bescheiden. */
	font-size: clamp(28px, 2.7vw, 46px) !important;
	line-height: 1.1;
	letter-spacing: 0;
	/* Lange titels (blog) breken op 2 regels i.p.v. één volle regel. */
	max-width: min(880px, 100%);
	text-wrap: balance;
	text-shadow: 0 1px 18px rgba(6, 22, 42, 0.45);
}

/* Blog post titles are long; a smaller scale keeps the hero balanced.
   Only applied where the include passes titleScale="sm" (blog single). */
.sore-subhero__title--sm {
	font-size: clamp(24px, 2.8vw, 40px);
	line-height: 1.1;
}

.sore-subhero__lead {
	margin: clamp(8px, 0.9vw, 12px) 0 0;
	max-width: 64ch;
	font-family: var(--sore-font-body, "Outfit", "Inter", sans-serif) !important;
	font-weight: 400;
	font-size: clamp(15px, 1.05vw, 17px);
	line-height: 1.55;
	color: rgba(244, 236, 226, 0.92) !important;
	text-shadow: 0 1px 14px rgba(6, 22, 42, 0.4);
}

@media (max-width: 768px) {
	.sore-subhero {
		min-height: clamp(260px, 64vw, 340px);
		/* Vaste regel: geen marge onder de hero. De ruimte naar de content
		   wordt uitsluitend door de content-margin-top (30px) bepaald. */
		margin-bottom: 0 !important;
	}

	/* Meer lucht tussen de zwevende header/logo en de hero-inhoud, ook bij
	   lange beschrijvingen (duwt de breadcrumb/tekst omlaag). */
	.sore-subhero__inner {
		padding-top: clamp(132px, 33vw, 158px);
		padding-bottom: clamp(24px, 6vw, 34px);
	}

	/* Content na de hero begint altijd exact 30px lager. NIET via het
	   aangrenzende-broer-selector (.sore-subhero + *): sommige content-fragments
	   beginnen met een inline <style>/<script>, waardoor die 30px op een
	   display:none-element belandde en de echte <article> flush bleef plakken.
	   Daarom mikken we rechtstreeks op de content-containers als kind van main,
	   ongeacht welke onzichtbare siblings ervoor staan. Padding i.p.v. marge
	   voorkomt margin-collapse; Elementor's eigen top-marge wordt geneutraliseerd. */
	/* :not(:has(> .sore-subhero)) sluit het wrappende <article> uit dat de hero
	   ZELF bevat (blog): anders kwam de 30px bovenop de hero i.p.v. eronder. */
	body.sore-subhero-page main.site-main > article:not(:has(> .sore-subhero)),
	body.sore-subhero-page main.site-main > section:not(.sore-subhero),
	body.sore-subhero-page main.site-main > div {
		margin-top: 0 !important;
		padding-top: 30px !important;
	}

	/* Wanneer hero + content in één <article> zitten (blog): 30px tussen de
	   hero en de content-grid eronder, en geen extra ruimte boven de hero. */
	body.sore-subhero-page main.site-main > article:has(> .sore-subhero) {
		padding-top: 0 !important;
	}

	body.sore-subhero-page .sore-subhero + .elementor,
	body.sore-subhero-page .sore-subhero + div,
	body.sore-subhero-page .sore-subhero + section:not(.sore-subhero) {
		margin-top: 0 !important;
		padding-top: 30px !important;
	}

	body.sore-subhero-page main.site-main > article .elementor > .elementor-element:first-child,
	body.sore-subhero-page main.site-main > section:not(.sore-subhero) .elementor > .elementor-element:first-child {
		margin-top: 0 !important;
	}

	/* Minimalistische subpage-hero H1: klein, maar de grootste heading op
	   de pagina (boven de sectie-H2's). Hogere specificiteit dan de globale
	   main.site-main h1-regel zodat die de hero niet naar 22px trekt. */
	.elementor-kit-5 main.site-main .sore-subhero__title,
	.sore-subhero__title {
		font-size: clamp(24px, 6.1vw, 27px) !important;
		line-height: 1.16 !important;
	}

	.sore-subhero__title--sm {
		font-size: clamp(21px, 5.4vw, 24px);
	}

	.sore-subhero__lead {
		font-size: 14px;
		line-height: 1.45;
	}
}

/* ---------------------------------------------------------------------
   Sub-page content surface. The shared content wrapper has no background
   of its own, so transparent pages fall through to the (dark) canvas.
   Paint sub-pages white so the hero's bottom spacing reads as clean
   breathing room instead of a black band, and body copy stays readable.
   --------------------------------------------------------------------- */
body.sore-subhero-page .site-main {
	background-color: var(--sore-white, #ffffff);
}

/* ---------------------------------------------------------------------
   Shared header floats transparently over the sub-page hero.
   Mirrors the body.home header rules so the SAME header reads as one
   unified header across home and every sub-page (NEW-6).
   --------------------------------------------------------------------- */
body.sore-subhero-page header.elementor-location-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 50;
	background: transparent !important;
	box-shadow: none !important;
	padding-top: clamp(10px, 1.4vw, 20px) !important;
}

body.sore-subhero-page header.elementor-location-header .e-con,
body.sore-subhero-page header.elementor-location-header .e-con-inner,
body.sore-subhero-page header.elementor-location-header .elementor-widget-container,
body.sore-subhero-page header.elementor-location-header .elementor-nav-menu__container {
	background-color: transparent !important;
	background-image: none !important;
	box-shadow: none !important;
	border: 0 !important;
}

/* Top bar → glass pills on the hero image */
body.sore-subhero-page .sore-topbar {
	display: block !important;
	background: transparent !important;
}

body.sore-subhero-page .sore-topbar .sore-topbar__inner {
	background: transparent !important;
	border: 0 !important;
	margin-top: 0 !important;
	padding: 0 !important;
}

body.sore-subhero-page .sore-topbar .sore-topbar__reviews {
	display: flex !important;
}

body.sore-subhero-page .sore-topbar .sore-topbar__pill {
	background: rgba(255, 255, 255, 0.10) !important;
	border: 1px solid rgba(255, 255, 255, 0.18) !important;
	-webkit-backdrop-filter: blur(12px) saturate(120%);
	backdrop-filter: blur(12px) saturate(120%);
	border-radius: 8px !important;
	color: #f4ece2 !important;
}

body.sore-subhero-page .sore-topbar .sore-topbar__label,
body.sore-subhero-page .sore-topbar .sore-topbar__value,
body.sore-subhero-page .sore-topbar .sore-topbar__count {
	color: #f4ece2 !important;
}

body.sore-subhero-page .sore-topbar .sore-topbar__count {
	opacity: 0.7;
}

body.sore-subhero-page .sore-topbar .sore-topbar__phone,
body.sore-subhero-page .sore-topbar .sore-topbar__phone .sore-icon,
body.sore-subhero-page .sore-topbar .sore-topbar__phone span {
	color: #f4ece2 !important;
}

body.sore-subhero-page .sore-topbar button.sore-topbar__search,
body.sore-subhero-page .sore-topbar a.sore-topbar__search {
	background: rgba(255, 255, 255, 0.10) !important;
	border: 1px solid rgba(255, 255, 255, 0.18) !important;
	-webkit-backdrop-filter: blur(12px) saturate(120%);
	backdrop-filter: blur(12px) saturate(120%);
	border-radius: 8px !important;
	color: #f4ece2 !important;
}

body.sore-subhero-page .sore-topbar button.sore-topbar__search:hover,
body.sore-subhero-page .sore-topbar button.sore-topbar__search:focus-visible {
	background: rgba(255, 255, 255, 0.18) !important;
	border-color: rgba(255, 255, 255, 0.30) !important;
}

body.sore-subhero-page .sore-topbar .sore-topbar__search span,
body.sore-subhero-page .sore-topbar .sore-topbar__search .sore-icon,
body.sore-subhero-page .sore-topbar .sore-topbar__search .sore-icon * {
	color: #f4ece2 !important;
	-webkit-text-fill-color: #f4ece2 !important;
}

/* White logo on the dark hero */
body.sore-subhero-page header.elementor-location-header .elementor-widget-theme-site-logo img {
	filter: brightness(0) invert(1);
	max-height: 42px !important;
	width: auto !important;
}

/* Nav links: white + soft shadow over the image */
body.sore-subhero-page header.elementor-location-header .elementor-nav-menu .elementor-item {
	color: #ffffff !important;
	text-shadow: 0 1px 14px rgba(4, 18, 32, 0.55), 0 0 2px rgba(4, 18, 32, 0.45);
	border-radius: 8px !important;
	padding: 9px 10px !important;
	font-size: 13px !important;
	white-space: nowrap !important;
	transition: background-color 0.25s ease, color 0.25s ease !important;
}

body.sore-subhero-page header.elementor-location-header .elementor-nav-menu .elementor-item:hover,
body.sore-subhero-page header.elementor-location-header .elementor-nav-menu .elementor-item.elementor-item-active {
	color: #ffffff !important;
}

body.sore-subhero-page header.elementor-location-header .elementor-nav-menu .elementor-item:hover {
	background-color: rgba(255, 255, 255, 0.12) !important;
}

body.sore-subhero-page header.elementor-location-header .elementor-nav-menu--main > .elementor-nav-menu,
body.sore-subhero-page header.elementor-location-header .elementor-nav-menu--main > .elementor-nav-menu > li {
	flex-wrap: nowrap !important;
}

body.sore-subhero-page header.elementor-location-header .elementor-nav-menu--main > .elementor-nav-menu > li {
	flex: 0 0 auto !important;
}

/* Glass pill wraps the menu group */
body.sore-subhero-page header.elementor-location-header .elementor-nav-menu--main > .elementor-nav-menu {
	display: inline-flex !important;
	width: auto !important;
	max-width: none !important;
	margin-inline: auto !important;
	align-items: center;
	flex-wrap: nowrap !important;
	white-space: nowrap;
	gap: 2px;
	padding: 7px 8px !important;
	background: rgba(16, 49, 96, 0.28) !important;
	-webkit-backdrop-filter: blur(22px) saturate(180%);
	backdrop-filter: blur(22px) saturate(180%);
	border: 1px solid rgba(255, 255, 255, 0.22) !important;
	border-radius: 12px !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 10px 30px rgba(3, 18, 32, 0.18);
}

body.sore-subhero-page header.elementor-location-header .elementor-menu-toggle {
	color: #f4ece2 !important;
}

/* Consult CTA: cream pill, navy text.
   Vertical padding matched to the nav glass pill (item 9px + pill 7px) so the
   CTA and menu read at the same height; 2px border is compensated. */
body.sore-subhero-page header.elementor-location-header .elementor-button {
	background:
		linear-gradient(#ffffff, #ffffff) padding-box,
		linear-gradient(135deg, var(--sore-navy, #0E3166) 0%, #ffffff 100%) border-box !important;
	border: 2px solid transparent !important;
	border-radius: 8px !important;
	padding: 14px 18px !important;
}

body.sore-subhero-page header.elementor-location-header .elementor-button:hover {
	background:
		linear-gradient(#f3f6fa, #f3f6fa) padding-box,
		linear-gradient(135deg, var(--sore-navy, #0E3166) 0%, #ffffff 100%) border-box !important;
	border: 2px solid transparent !important;
}

body.sore-subhero-page header.elementor-location-header .elementor-button,
body.sore-subhero-page header.elementor-location-header .elementor-button .elementor-button-text,
body.sore-subhero-page header.elementor-location-header .elementor-button svg {
	color: var(--sore-navy, #0E3166) !important;
	fill: var(--sore-navy, #0E3166) !important;
}

body.sore-subhero-page header.elementor-location-header .elementor-button .elementor-button-icon {
	width: auto !important;
	height: auto !important;
	background: transparent !important;
	border-radius: 0 !important;
	transform: none !important;
	color: var(--sore-navy, #0E3166) !important;
}

body.sore-subhero-page.sore-header-scrolled header.elementor-location-header .elementor-widget-theme-site-logo img {
	filter: none !important;
}

body.sore-subhero-page.sore-header-scrolled header.elementor-location-header .elementor-nav-menu .elementor-item {
	color: var(--sore-navy, #0E3166) !important;
	text-shadow: none !important;
}

body.sore-subhero-page.sore-header-scrolled header.elementor-location-header .elementor-menu-toggle,
body.sore-subhero-page.sore-header-scrolled header.elementor-location-header .elementor-menu-toggle svg {
	color: var(--sore-navy, #0E3166) !important;
}

body.sore-subhero-page.sore-header-scrolled header.elementor-location-header .elementor-nav-menu--main > .elementor-nav-menu {
	background: rgba(255, 255, 255, 0.72) !important;
	border-color: rgba(14, 55, 80, 0.12) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45), 0 10px 26px rgba(8, 30, 46, 0.10) !important;
}

@media (max-width: 1024px) {
	body.sore-subhero-page .sore-topbar .sore-topbar__inner {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
		gap: 6px;
	}

	body.sore-subhero-page .sore-topbar .sore-topbar__reviews {
		flex-wrap: nowrap !important;
		min-width: 0;
		gap: 4px !important;
	}

	body.sore-subhero-page .sore-topbar .sore-topbar__pill {
		gap: 5px !important;
		padding: 5px 8px !important;
		font-size: 12px !important;
	}

	body.sore-subhero-page .sore-topbar .sore-topbar__label,
	body.sore-subhero-page .sore-topbar .sore-topbar__search span {
		display: none !important;
	}

	body.sore-subhero-page .sore-topbar .sore-topbar__phone span {
		display: inline !important;
	}

	body.sore-subhero-page .sore-topbar .sore-topbar__actions {
		gap: 7px !important;
		justify-content: flex-end;
		white-space: nowrap;
	}
}

@media (max-width: 767px) {
	body.sore-subhero-page header.elementor-location-header .elementor-widget-theme-site-logo img {
		max-height: 50px !important;
	}

	body.sore-subhero-page header.elementor-location-header .elementor-menu-toggle {
		width: 42px !important;
		height: 42px !important;
		min-width: 42px !important;
		min-height: 42px !important;
		border-radius: 10px !important;
	}

	body.sore-subhero-page header.elementor-location-header .elementor-button {
		min-height: 42px !important;
		padding: 8px 12px !important;
		border-radius: 10px !important;
		font-size: 14px !important;
	}
}

/* Dropdown (mega) panel — glass navy, matching home.
   Subhero sayfalarında panel açık içerik alanına taştığı için backdrop blur
   yetmiyor; navy katmanı neredeyse opak tutarak altındaki içeriği gizliyoruz. */
body.sore-subhero-page header.elementor-location-header .sore-mega-menu {
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.10), rgba(255, 255, 255, 0) 42%),
		rgba(13, 42, 84, 0.97) !important;
	-webkit-backdrop-filter: blur(34px) saturate(185%);
	backdrop-filter: blur(34px) saturate(185%);
	border: 1px solid rgba(255, 255, 255, 0.20) !important;
	border-radius: 16px !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.26), 0 24px 50px rgba(3, 18, 32, 0.32) !important;
	padding: 10px !important;
}

body.sore-subhero-page header.elementor-location-header .elementor-nav-menu--main > .elementor-nav-menu > li:nth-child(n + 4) > .sore-mega-menu {
	left: 50% !important;
	right: auto !important;
	transform: translateX(-50%) !important;
}

body.sore-subhero-page header.elementor-location-header .sore-mega-link {
	color: #ffffff !important;
	background: transparent !important;
	border-radius: 10px !important;
	padding: 11px 12px !important;
	transition: background-color 0.2s ease, transform 0.2s ease !important;
}

body.sore-subhero-page header.elementor-location-header .sore-mega-link:hover,
body.sore-subhero-page header.elementor-location-header .sore-mega-link:focus-visible,
body.sore-subhero-page header.elementor-location-header .sore-mega-link.elementor-item-active {
	background: rgba(255, 255, 255, 0.12) !important;
	transform: translateX(2px);
}

body.sore-subhero-page header.elementor-location-header .sore-mega-link__copy span {
	color: #ffffff !important;
	font-weight: 500 !important;
}

body.sore-subhero-page header.elementor-location-header .sore-mega-link__copy small {
	color: rgba(229, 234, 240, 0.6) !important;
	font-size: 12px !important;
}

body.sore-subhero-page header.elementor-location-header .sore-mega-link__icon {
	border: 1px solid rgba(255, 255, 255, 0.22) !important;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.13), rgba(255, 255, 255, 0.03)) !important;
	color: #eaf0f6 !important;
	border-radius: 10px !important;
	transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease !important;
}

body.sore-subhero-page header.elementor-location-header .sore-mega-link:hover .sore-mega-link__icon {
	border-color: rgba(255, 115, 15, 0.65) !important;
	color: var(--sore-accent, #FF730F) !important;
	background: linear-gradient(180deg, rgba(255, 115, 15, 0.16), rgba(255, 115, 15, 0.04)) !important;
}

body.sore-subhero-page header.elementor-location-header .sore-mega-link__icon .sore-icon,
body.sore-subhero-page header.elementor-location-header .sore-mega-link__icon svg {
	color: inherit !important;
}

/* Center the nav between logo and CTA with equal gaps */
body.sore-subhero-page header.elementor-location-header .elementor-element-5408edd > .e-con-inner {
	grid-template-columns: auto 1fr auto !important;
	align-items: center !important;
}

body.sore-subhero-page header.elementor-location-header .elementor-element-2d11eb6 {
	justify-self: center !important;
}

/* About-page body descriptions — readable size (>=15px), site-wide source */
.sore-about-expectations__intro p,
.sore-about-expectations__item p,
.sore-about-expectations__column p,
.sore-home-team__intro {
	font-size: 15px;
	line-height: 1.5;
	color: var(--sore-text-muted, #07080799);
}

/* =====================================================================
   FAQ — minimal tab + accordion layout (/faq)
   Klasik segmented tab-design; per categorie een paneel met native
   <details> accordions. Vervangt de oude gestapelde Elementor-secties.
   ===================================================================== */
.sore-faq {
	width: min(960px, calc(100vw - 2 * clamp(16px, 4vw, 32px)));
	margin: 0 auto;
	padding-bottom: clamp(40px, 6vw, 80px);
}

.sore-faq__intro {
	text-align: center;
	max-width: 64ch;
	margin: 0 auto clamp(22px, 3vw, 34px);
}

.sore-faq__eyebrow {
	margin: 0 0 8px;
	font-family: var(--sore-font-body, "Manrope", sans-serif);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--sore-accent, #FF730F);
}

.sore-faq__title {
	margin: 0 0 10px;
	font-family: var(--sore-font-heading, "Ovo", Georgia, serif);
	font-weight: 600;
	font-size: clamp(26px, 3.4vw, 40px);
	line-height: 1.1;
	color: var(--sore-text, #070807);
}

.sore-faq__lead {
	margin: 0;
	font-size: clamp(14px, 1.05vw, 16px);
	line-height: 1.55;
	color: var(--sore-text-muted, #07080799);
}

/* Tablist — minimal single-row segmented switcher (Foto's/Video's style).
   nowrap + horizontal scroll fallback so it always stays one clean row. */
.sore-faq__tabs {
	display: flex;
	flex-wrap: nowrap;
	justify-content: center;
	gap: 4px;
	width: fit-content;
	max-width: 100%;
	margin: 0 auto clamp(24px, 3vw, 38px);
	padding: 5px;
	background: #ffffff;
	border: 1px solid rgba(7, 8, 7, 0.08);
	border-radius: 12px;
	box-shadow: 0 4px 14px rgba(4, 18, 29, 0.04);
	overflow-x: auto;
	scrollbar-width: none;
}

.sore-faq__tabs::-webkit-scrollbar {
	display: none;
}

.sore-faq__tab {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	cursor: pointer;
	padding: 9px 18px;
	border-radius: 9px !important;
	font-family: var(--sore-font-body, "Manrope", sans-serif);
	font-weight: 600;
	font-size: 13px;
	line-height: 1.2;
	color: var(--sore-text-muted, #07080799) !important;
	transition: background-color 0.25s ease, color 0.25s ease;
	white-space: nowrap;
}

.sore-faq__tab:not(.is-active):hover {
	background: rgba(9, 79, 137, 0.06) !important;
	color: var(--sore-text, #070807) !important;
}

.sore-faq__tab.is-active {
	background: var(--sore-primary, #094F89) !important;
	color: #ffffff !important;
}

/* Swipe-hint onder de tabs (alleen mobiel, alleen bij overloop). */
.sore-faq__swipe-hint[hidden] {
	display: none !important;
}

.sore-faq__swipe-hint {
	display: none;
}

@media (max-width: 767px) {
	.sore-faq__swipe-hint {
		display: inline-flex;
		align-items: center;
		gap: 6px;
		width: fit-content;
		margin: 0 auto 10px;
		padding: 5px 12px;
		border-radius: 999px;
		background: rgba(9, 79, 137, 0.06);
		color: var(--sore-primary, #094F89);
		font-family: var(--sore-font-body, "Manrope", sans-serif);
		font-size: 12px;
		font-weight: 600;
		line-height: 1;
		animation: sore-faq-hint-nudge 1.8s ease-in-out infinite;
	}

	.sore-faq__swipe-hint svg {
		flex: 0 0 auto;
	}
}

@keyframes sore-faq-hint-nudge {
	0%, 100% { transform: translateX(0); }
	50% { transform: translateX(4px); }
}

@media (prefers-reduced-motion: reduce) {
	.sore-faq__swipe-hint { animation: none; }
}

/* Panels */
.sore-faq__panel[hidden] {
	display: none;
}

.sore-faq__panel {
	display: block;
}

@media (max-width: 600px) {
	.sore-faq__tabs {
		width: 100%;
		justify-content: flex-start;
	}

	.sore-faq__tab {
		flex: 0 0 auto;
		padding: 9px 14px;
		font-size: 12px;
	}
}

/* =====================================================================
   Kosten — pricing cards (equal height) in carousel. Vervangt de oude
   vergelijkingstabel. 4 zichtbaar op desktop, PRP staat achteraan.
   ===================================================================== */
.sore-pricing-cards {
	position: relative;
	margin: clamp(8px, 1.5vw, 16px) 0 clamp(28px, 3vw, 44px);
}

.sore-price-slide {
	height: auto;
}

.sore-price-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: clamp(18px, 1.6vw, 24px);
	background: #ffffff;
	border: 1px solid rgba(7, 8, 7, 0.10);
	border-radius: 16px;
	box-shadow: 0 4px 14px rgba(4, 18, 29, 0.03);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	position: relative;
}

.sore-price-card:hover {
	border-color: rgba(9, 79, 137, 0.30);
	box-shadow: 0 12px 28px rgba(4, 18, 29, 0.08);
}

.sore-price-card.is-featured {
	border-color: var(--sore-primary, #094F89);
	box-shadow: 0 12px 30px rgba(9, 79, 137, 0.12);
}

.sore-price-card__badge {
	position: absolute;
	top: 10px;
	right: 10px;
	padding: 3px 8px;
	border-radius: 999px;
	background: var(--sore-primary, #094F89);
	color: #ffffff;
	font-family: var(--sore-font-body, "Manrope", sans-serif);
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.sore-price-card__head {
	margin-bottom: 14px;
	padding-right: 70px;
}

.sore-price-card__name {
	margin: 0 0 6px;
	font-family: var(--sore-font-heading, "Ovo", Georgia, serif);
	font-weight: 600;
	font-size: clamp(18px, 1.5vw, 21px);
	line-height: 1.2;
	color: var(--sore-text, #070807);
}

.sore-price-card__from {
	margin: 0;
	font-family: var(--sore-font-body, "Manrope", sans-serif);
	font-size: 13px;
	color: var(--sore-text-muted, #07080799);
}

.sore-price-card__from strong {
	font-size: clamp(20px, 1.7vw, 24px);
	font-weight: 700;
	color: var(--sore-accent, #FF730F);
	margin-left: 4px;
}

.sore-price-card__tiers {
	list-style: none;
	margin: 0 0 14px;
	padding: 14px 0;
	border-top: 1px solid rgba(7, 8, 7, 0.08);
	border-bottom: 1px solid rgba(7, 8, 7, 0.08);
	display: grid;
	gap: 8px;
}

.sore-price-card__tiers li {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	font-family: var(--sore-font-body, "Manrope", sans-serif);
	font-size: 13px;
	line-height: 1.4;
}

.sore-price-card__tiers li span {
	color: var(--sore-text-muted, #07080799);
}

.sore-price-card__tiers li strong {
	font-weight: 700;
	color: var(--sore-primary, #094F89);
	white-space: nowrap;
}

.sore-price-card__specs {
	margin: 0 0 18px;
	display: grid;
	gap: 0;
}

.sore-price-card__spec {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	padding: 8px 0;
	border-bottom: 1px solid rgba(7, 8, 7, 0.06);
}

.sore-price-card__spec:last-child {
	border-bottom: 0;
}

.sore-price-card__spec dt {
	font-family: var(--sore-font-body, "Manrope", sans-serif);
	font-size: 12px;
	color: var(--sore-text-muted, #07080799);
}

.sore-price-card__spec dd {
	margin: 0;
	text-align: right;
	font-family: var(--sore-font-body, "Manrope", sans-serif);
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--sore-text, #070807);
}

.sore-price-card__cta {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	padding: 12px 18px;
	border-radius: 10px;
	background: var(--sore-primary, #094F89);
	color: #ffffff !important;
	font-family: var(--sore-font-body, "Manrope", sans-serif);
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
	transition: background-color 0.2s ease;
}

.sore-price-card__cta:hover {
	background: var(--sore-accent, #FF730F);
}

.sore-price-card__cta .sore-icon {
	width: 16px;
	height: 16px;
}

/* ============================================================
   Mobiele resultaat/patiënt-kaarten (carousel én grid):
   techniek ONDER de naam (zoals op /resultaten), niet ernaast —
   in de smalle 2-koloms carousels botsten ze anders. Plus: de
   navigatiepijlen van juist deze patiënt-carousel iets omhoog,
   richting de tussenruimte beeld/kaart. Andere carousels (reviews,
   services) blijven ongemoeid.
   ============================================================ */
@media (max-width: 767px) {
	.sore-result-card__title-row {
		grid-template-columns: 1fr !important;
		row-gap: 2px !important;
		align-items: start !important;
	}

	.sore-result-card__technique {
		justify-self: start !important;
		text-align: left !important;
	}

	.sore-home-results__carousel .sore-carousel__button {
		top: 40% !important;
	}
}

/* ============================================================
   Mobiele fijnafstemming (e2e) — resultaten-galerij.
   6 gestapelde resultaatkaarten (elk ~518px) → 2-koloms galerij
   op mobiel: ~halveert de hoogte, blijft tikbaar naar de case.
   ============================================================ */
@media (max-width: 600px) {
	.sore-results-page__grid {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 12px !important;
	}

	.sore-results-page__grid .sore-result-card__details {
		padding: 12px 12px 14px !important;
	}

	.sore-results-page__grid .sore-result-card__name {
		font-size: 15px !important;
	}

	.sore-results-page__grid .sore-result-card__technique {
		font-size: 11.5px !important;
		line-height: 1.3 !important;
	}

	.sore-results-page__grid .sore-result-card__details {
		gap: 10px !important;
	}

	.sore-results-page__grid .sore-result-card__divider {
		margin-block: 0 !important;
	}

	.sore-results-page__grid .sore-result-card__stats {
		grid-template-columns: 1fr !important;
		/* Groepen (grafts / behandelingen) duidelijk uit elkaar... */
		gap: 16px !important;
	}

	.sore-results-page__grid .sore-result-card__meta-block {
		/* ...maar label en waarde binnen één groep dicht op elkaar, zodat
		   meteen duidelijk is welk getal bij welk label hoort. */
		gap: 1px !important;
	}

	.sore-results-page__grid .sore-result-card__label {
		font-size: 10px !important;
	}

	.sore-results-page__grid .sore-result-card__value {
		font-size: 13px !important;
	}

	/* Teamgrid (4 kaarten met foto) → 2 kolommen op mobiel i.p.v. één
	   hoge stapel (~1970px). Halveert de hoogte. */
	.sore-team-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 12px !important;
	}

	/* Blog-overzicht (8 loop-kaarten) → 2 kolommen op mobiel. Alleen de
	   loop-container, dus de statische 3-kaart-strip op home blijft intact. */
	.elementor-loop-container.sore-blog-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 12px !important;
	}

	/* Smallere kaart: titel mag 3 regels tonen zodat hij leesbaar blijft. */
	.elementor-loop-container.sore-blog-cards .sore-blog-card__title {
		-webkit-line-clamp: 3 !important;
		font-size: 15px !important;
		line-height: 1.25 !important;
	}

	.elementor-loop-container.sore-blog-cards .sore-blog-card__body {
		gap: 8px !important;
		padding: 12px 8px 14px !important;
	}

	.elementor-loop-container.sore-blog-cards .sore-blog-card__meta {
		flex-wrap: nowrap !important;
		gap: 4px !important;
		font-size: clamp(8.75px, 2.45vw, 10px) !important;
		letter-spacing: 0 !important;
		white-space: nowrap !important;
	}

	.elementor-loop-container.sore-blog-cards .sore-blog-card__meta-item {
		min-width: 0;
		white-space: nowrap;
	}

	.elementor-loop-container.sore-blog-cards .sore-blog-card__divider {
		flex: 0 0 1px;
		margin-inline: 1px !important;
	}
}

.elementor-1163 .elementor-element-e80177e {
	display: none !important;
}

.sore-footer-contact {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	width: 100%;
	margin: 0;
	padding: 22px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.16);
	border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.sore-result-card__image-shell[data-elementor-open-lightbox="yes"] {
	cursor: zoom-in;
}

.sore-result-card__image-shell {
	position: relative;
}

.sore-result-card__image-cta {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 4;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	box-sizing: border-box !important;
	height: 28px !important;
	min-height: 28px !important;
	max-height: 28px !important;
	margin: 0 !important;
	padding: 0 9px !important;
	border: 1px solid rgba(255, 255, 255, 0.58);
	border-radius: 8px;
	background: rgba(5, 49, 84, 0.86);
	box-shadow: 0 6px 18px rgba(3, 36, 62, 0.16);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	color: #fff;
	font: 700 10px/1 var(--sore-font-body, "Manrope", sans-serif);
	letter-spacing: 0.02em;
	white-space: nowrap;
	pointer-events: none;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.sore-result-card__image-cta .sore-icon {
	width: 12px;
	height: 12px;
	stroke-width: 1.8;
}

.sore-result-card__image-shell:hover .sore-result-card__image-cta,
.sore-result-card__image-shell:focus-visible .sore-result-card__image-cta {
	background: rgba(255, 107, 0, 0.96);
	transform: translateY(-1px);
}

@media (max-width: 767px) {
	.sore-result-card__image-cta {
		top: 8px;
		right: 8px;
		height: 25px !important;
		min-height: 25px !important;
		max-height: 25px !important;
		padding: 0 7px !important;
		font-size: 9px;
	}
}

.sore-footer-contact__item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	color: rgba(255, 255, 255, 0.78);
}

.sore-footer-contact__item .sore-icon {
	width: 20px;
	height: 20px;
	margin-top: 2px;
	color: #ffffff;
}

.sore-footer-contact__item div {
	display: grid;
	gap: 4px;
}

.sore-footer-contact__item strong,
.sore-footer-contact__item a,
.sore-footer-contact__item span {
	font: inherit;
	color: inherit;
}

.sore-footer-contact__item strong {
	color: #ffffff;
	font-weight: 700;
}

.sore-footer-contact__item a {
	text-decoration: none;
}

.sore-footer-contact__item a:hover {
	color: #ffffff;
}

@media (max-width: 767px) {
	.sore-footer-contact {
		grid-template-columns: 1fr;
		gap: 14px;
		padding-block: 20px;
	}
}

/* ============================================================
   Mobiel: algemene formulier-fijnafstemming (naast de scoped
   gratis-consult-styles). Kleinere placeholders zodat lege
   velden niet groot ogen; waarde-tekst blijft 16px (iOS-zoom).
   ============================================================ */
@media (max-width: 767px) {
	.elementor-form .elementor-field-textual::placeholder,
	.elementor-form textarea.elementor-field::placeholder {
		font-size: 14px;
	}
}

/* ============================================================
   Mobiel: consistente footer-insprong. Op subpagina's viel de
   footer-inhoud tegen de linkerrand (margin/padding = 0), op home
   stond hij ingesprongen. Uniforme zij-padding op de footer zelf
   maakt beide gelijk; de navy achtergrond blijft full-bleed.
   ============================================================ */
@media (max-width: 767px) {
	/* De footer-secties stretchen full-bleed (negatieve marge), dus padding
	   op de footer zelf helpt niet. De content zit in .e-con-inner; die krijgt
	   uniforme zij-padding zodat links/tekst niet tegen de rand plakken —
	   op home én subpagina's identiek. */
	footer.main-footer .e-con-inner {
		padding-left: 24px !important;
		padding-right: 24px !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		box-sizing: border-box;
	}
}

/* ============================================================
   Mobiel: review-feed samenvatting (rating-pill + "Lees alle
   ervaringen") naast elkaar i.p.v. gestapeld. Compacter zodat
   beide op één rij passen.
   ============================================================ */
@media (max-width: 767px) {
	.sore-review-feed__summary {
		flex-wrap: nowrap !important;
		gap: 8px;
		align-items: center;
		max-width: 100%;
		overflow: clip;
	}

	.sore-review-feed__pill {
		flex: 0 1 auto;
		min-width: 0;
		padding: 7px 10px !important;
		font-size: 12px !important;
	}

	.sore-review-feed__summary .elementor-button-wrapper {
		flex: 0 1 auto;
		min-width: 0;
	}

	.sore-review-feed__summary .elementor-button {
		white-space: nowrap;
		padding: 7px 10px !important;
		font-size: 11.5px !important;
	}

	.sore-review-feed__summary .elementor-button .elementor-button-icon {
		width: 22px;
		height: 22px;
	}
}

/* ============================================================
   De zwevende subpage-header (fixed bij scrollen) rendert enkele px
   breder dan de viewport (content-box breedte + padding). Border-box
   + max-width: 100vw houdt hem exact binnen het scherm, zonder
   horizontale scroll en zonder position: sticky elders te breken.
   ============================================================ */
header.elementor-location-header {
	box-sizing: border-box !important;
	max-width: 100vw !important;
}

/* ============================================================
   Mobiel: compact swipe-patroon voor informatiekaarten. De volgende
   kaart blijft zichtbaar en er is geen automatische marquee-beweging.
   ============================================================ */
.sore-about-expectations__mobile-rail,
.sore-mobile-card-rail__hint {
	display: none;
}

@media (max-width: 767px) {
	.sore-about-expectations__layout {
		display: none !important;
	}

	.sore-mobile-card-rail__hint {
		display: flex;
		align-items: center;
		justify-content: flex-start;
		gap: 6px;
		margin: 16px 0 8px;
		color: rgba(14, 49, 102, 0.68);
		font-size: 11px;
		font-weight: 700;
		line-height: 1.2;
	}

	.sore-mobile-card-rail__hint .sore-icon {
		width: 14px;
		height: 14px;
	}

	.sore-about-expectations__mobile-rail {
		display: flex;
		gap: 12px;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		margin: 0;
		padding-right: 20px;
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x mandatory;
		overscroll-behavior-inline: contain;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}

	.sore-about-expectations__mobile-rail::-webkit-scrollbar {
		display: none;
	}

	.sore-about-expectations__mobile-rail .sore-about-expectations__item {
		flex: 0 0 min(78vw, 320px);
		width: min(78vw, 320px);
		box-sizing: border-box;
		margin: 0;
		scroll-snap-align: start;
	}

	.elementor-kit-5 main.site-main .sore-about-expectations__item h3 {
		font-size: 15px !important;
		line-height: 1.25 !important;
	}
}

@media (max-width: 767px) {
	/* Tarieven: de vergelijking blijft één leesbare tabel zonder horizontale
	   afsnijding; noot, divider en uitleg sluiten compacter op elkaar aan. */
	.sore-pricing-market {
		margin-top: 28px !important;
		margin-bottom: 0 !important;
	}

	.sore-pricing-market h3 {
		margin-bottom: 8px !important;
		font-size: 20px !important;
		line-height: 1.2 !important;
	}

	.sore-pricing-market > p {
		margin-bottom: 14px !important;
		font-size: 13px !important;
		line-height: 1.4 !important;
	}

	.sore-pricing-market table.responsive-table-clean {
		display: table !important;
		width: 100% !important;
		min-width: 0 !important;
		table-layout: fixed;
		font-size: 10px !important;
	}

	.sore-pricing-market .responsive-table-clean thead {
		display: table-header-group !important;
	}

	.sore-pricing-market .responsive-table-clean tbody {
		display: table-row-group !important;
	}

	.sore-pricing-market .responsive-table-clean tr {
		display: table-row !important;
	}

	.sore-pricing-market .responsive-table-clean th,
	.sore-pricing-market .responsive-table-clean td {
		display: table-cell !important;
		padding: 9px 5px !important;
		font-size: 9.5px !important;
		line-height: 1.22 !important;
		vertical-align: top;
		overflow-wrap: anywhere;
		word-break: normal;
	}

	.sore-pricing-market .responsive-table-clean th {
		font-size: 9px !important;
	}

	.sore-pricing-market .responsive-table-clean td::before {
		display: none !important;
	}

	.sore-pricing-market__note {
		margin-top: 8px !important;
		font-size: 11px !important;
		line-height: 1.35 !important;
	}

	.sore-pricing-seo-divider {
		margin: 28px 0 !important;
	}

	.sore-pricing-seo {
		margin-top: 0 !important;
	}

	.sore-pricing-seo > h2:first-child {
		margin-top: 28px !important;
	}

	.elementor-988166 .elementor-element.elementor-element-dc01245 .sore-legal__section-title {
		margin-top: 28px !important;
		margin-bottom: 10px !important;
		font-size: inherit !important;
		line-height: 1.45 !important;
	}
}

@media (max-width: 767px) {
	/* The review source panel is content, never an overlapping hero badge. */
	.elementor-location-single .elementor-25 .elementor-element.elementor-element-4ac3ca0 {
		margin-top: 0 !important;
	}
}
