/* ==========================================================================
   NaviCenter - montagepagina (/montage-afspraak/)

   Lichte uitvoering in de huisstijl van navicenter.nl.
   - Alles is gescopet: componenten onder `.ncm-page` (body-klasse), de
     element-resets onder `.ncm-main`. Zo blijft de Elementor-header en
     -footer van het thema volledig ongemoeid.
   - Lettertypes komen uit het thema (Alatsi voor koppen, Montserrat voor
     tekst); deze pagina laadt zelf geen webfont meer.
   - Kleuren komen uit de Elementor-kit: geel #febe14 (primair),
     groen #23a455 (accent), tekst #0e0e0e.
   ========================================================================== */

:root {
	--ncm-yellow: #febe14;
	--ncm-yellow-deep: #e0a800;
	--ncm-yellow-soft: #fff6dd;
	--ncm-green: #23a455;
	--ncm-green-deep: #1b8443;
	--ncm-green-text: #15723a;
	--ncm-green-soft: #eaf7ef;
	--ncm-ink: #0e0e0e;
	--ncm-ink-soft: #4a4a4a;
	--ncm-ink-muted: #6f6f6a;
	--ncm-white: #ffffff;
	--ncm-off: #f6f6f4;
	--ncm-off-2: #efeee9;
	--ncm-line: #e2e0da;
	--ncm-line-strong: #cbc8c0;
	--ncm-red: #b3261e;
	--ncm-red-soft: #fdeceb;
	--ncm-trust: #00795c;

	--ncm-font-head: 'Alatsi', 'Montserrat', system-ui, sans-serif;
	--ncm-font-body: 'Montserrat', system-ui, -apple-system, sans-serif;

	--ncm-max: 1240px;
	--ncm-gutter: clamp(1.2rem, 4vw, 2.5rem);
	--ncm-radius: 14px;
	--ncm-radius-lg: 22px;
	--ncm-pill: 999px;
	--ncm-ease: cubic-bezier(.22, .61, .36, 1);
	--ncm-shadow: 0 18px 44px rgba(20, 20, 20, .08);
	--ncm-shadow-lg: 0 26px 60px rgba(20, 20, 20, .12);
}

/* ---------------------------------------------------------------- resets */

.ncm-main,
.ncm-main *,
.ncm-main *::before,
.ncm-main *::after,
.ncm-page .svc-modal,
.ncm-page .svc-modal *,
.ncm-page .svc-modal *::before,
.ncm-page .svc-modal *::after {
	box-sizing: border-box;
}

.ncm-main h1,
.ncm-main h2,
.ncm-main h3,
.ncm-main h4,
.ncm-main p,
.ncm-main ul,
.ncm-main ol,
.ncm-main figure,
.ncm-main form,
.ncm-main fieldset {
	margin: 0;
	padding: 0;
}

.ncm-main {
	background: var(--ncm-white);
	color: var(--ncm-ink);
	font-family: var(--ncm-font-body);
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

.ncm-main img {
	display: block;
	max-width: 100%;
	height: auto;
}

.ncm-main a {
	color: inherit;
	text-decoration: none;
}

.ncm-main ul {
	list-style: none;
}

.ncm-main button,
.ncm-main input,
.ncm-main select,
.ncm-main textarea {
	font: inherit;
	color: inherit;
}

.ncm-main button {
	cursor: pointer;
	background: none;
	border: 0;
}

.ncm-main summary {
	list-style: none;
	cursor: pointer;
}

.ncm-main summary::-webkit-details-marker {
	display: none;
}

.ncm-main h1,
.ncm-main h2,
.ncm-main h3,
.ncm-page .svc-modal h3,
.ncm-page .svc-modal h4 {
	font-family: var(--ncm-font-head);
	font-weight: 400;
	line-height: 1.14;
	letter-spacing: -.005em;
	color: var(--ncm-ink);
}

.ncm-page section[id],
.ncm-main section[id] {
	scroll-margin-top: 110px;
}

@media (max-width: 1100px) {

	.ncm-page section[id],
	.ncm-main section[id] {
		scroll-margin-top: 90px;
	}
}

@media (prefers-reduced-motion: reduce) {

	.ncm-main *,
	.ncm-main *::before,
	.ncm-main *::after {
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
	}
}

/* --------------------------------------------------------------- helpers */

.ncm-page .container {
	max-width: var(--ncm-max);
	margin: 0 auto;
	padding: 0 var(--ncm-gutter);
}

.ncm-page .screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	word-wrap: normal !important;
}

.ncm-page .kicker {
	display: inline-flex;
	align-items: center;
	font-family: var(--ncm-font-body);
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--ncm-green-text);
	margin-bottom: 16px;
}

/* Het decoratieve streepje voor de bovenkop is bewust verwijderd (29-09-2026);
   de tekst lijnt nu links uit met de rest van de sectie. */

.ncm-page .kicker--center {
	justify-content: center;
}

.ncm-page .section-title {
	font-size: clamp(28px, 3.6vw, 44px);
	color: var(--ncm-ink);
}

.ncm-page .section-title em {
	font-style: normal;
	color: var(--ncm-green-text);
}

.ncm-page .section-sub {
	color: var(--ncm-ink-soft);
	margin-top: 14px;
	max-width: 60ch;
	font-size: 16px;
}

.ncm-page .section-sub--center {
	margin-left: auto;
	margin-right: auto;
}

/* ----------------------------------------------------------------- knoppen */

.ncm-page .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 16px 30px;
	border-radius: var(--ncm-pill);
	font-family: var(--ncm-font-body);
	font-weight: 600;
	font-size: 15.5px;
	line-height: 1.2;
	text-align: center;
	border: 1.5px solid transparent;
	transition: background .25s var(--ncm-ease), color .25s var(--ncm-ease),
		border-color .25s var(--ncm-ease), transform .2s var(--ncm-ease),
		box-shadow .25s var(--ncm-ease);
}

.ncm-page .btn:hover {
	transform: translateY(-2px);
}

.ncm-page .btn--green {
	background: var(--ncm-green);
	border-color: var(--ncm-green);
	color: var(--ncm-white);
	box-shadow: 0 8px 24px rgba(35, 164, 85, .25);
}

.ncm-page .btn--green:hover {
	background: var(--ncm-green-deep);
	border-color: var(--ncm-green-deep);
	color: var(--ncm-white);
	box-shadow: 0 12px 30px rgba(35, 164, 85, .32);
}

.ncm-page .btn--yellow {
	background: var(--ncm-yellow);
	border-color: var(--ncm-yellow);
	color: var(--ncm-ink);
}

.ncm-page .btn--yellow:hover {
	background: var(--ncm-yellow-deep);
	border-color: var(--ncm-yellow-deep);
	color: var(--ncm-ink);
}

.ncm-page .btn--ghost {
	background: var(--ncm-white);
	color: var(--ncm-ink);
	border-color: var(--ncm-line-strong);
}

.ncm-page .btn--ghost:hover {
	border-color: var(--ncm-green);
	color: var(--ncm-green-text);
}

.ncm-main a:focus-visible,
.ncm-main button:focus-visible,
.ncm-main select:focus-visible,
.ncm-main input:focus-visible,
.ncm-main textarea:focus-visible,
.ncm-main summary:focus-visible,
.ncm-page .svc-modal button:focus-visible,
.ncm-page .svc-modal a:focus-visible {
	outline: 3px solid var(--ncm-green);
	outline-offset: 3px;
	border-radius: 6px;
}

/* -------------------------------------------------------------------- hero */

.ncm-page .hero {
	position: relative;
	isolation: isolate;
	padding: clamp(56px, 7vw, 88px) 0 210px;
	overflow: hidden;
	background: var(--ncm-white);
}

.ncm-page .hero__bg {
	position: absolute;
	inset: 0;
	z-index: -2;
}

.ncm-page .hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 32%;
}

.ncm-page .hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(to right, rgba(255, 255, 255, .97) 0%, rgba(255, 255, 255, .92) 46%, rgba(255, 255, 255, .55) 100%),
		linear-gradient(to bottom, rgba(255, 255, 255, .75) 0%, rgba(255, 255, 255, .55) 40%, rgba(255, 255, 255, .98) 100%);
}

.ncm-page .hero__copy {
	max-width: 680px;
	position: relative;
	z-index: 1;
}

.ncm-page .hero h1 {
	font-size: clamp(36px, 5vw, 62px);
	margin-bottom: 22px;
	color: var(--ncm-ink);
}

.ncm-page .hero h1 em {
	font-style: normal;
	color: var(--ncm-green-text);
}

.ncm-page .hero__sub {
	color: var(--ncm-ink-soft);
	font-size: clamp(16px, 1.4vw, 18px);
	max-width: 52ch;
	margin-bottom: 30px;
}

.ncm-page .hero__ctas {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
	margin-bottom: 34px;
}

.ncm-page .hero__usps {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 26px;
}

.ncm-page .hero__usps li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 500;
	color: var(--ncm-ink-soft);
}

.ncm-page .hero__usps svg {
	color: var(--ncm-green);
	flex-shrink: 0;
}

.ncm-page .tp-badge {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	margin-top: 28px;
	padding: 14px 22px 14px 16px;
	background: var(--ncm-white);
	border: 1px solid var(--ncm-line);
	border-radius: var(--ncm-radius);
	box-shadow: var(--ncm-shadow);
	transition: border-color .25s var(--ncm-ease), transform .2s var(--ncm-ease);
}

.ncm-page .tp-badge:hover {
	border-color: var(--ncm-trust);
	transform: translateY(-2px);
}

.ncm-page .tp-badge__star {
	width: 44px;
	height: 44px;
	flex-shrink: 0;
	background: var(--ncm-trust);
	color: var(--ncm-white);
	border-radius: 10px;
	display: grid;
	place-items: center;
}

.ncm-page .tp-badge__text strong {
	display: block;
	font-family: var(--ncm-font-head);
	font-size: 15px;
	font-weight: 400;
	color: var(--ncm-ink);
}

.ncm-page .tp-badge__text > span {
	display: block;
	font-size: 12.5px;
	color: var(--ncm-trust);
	font-weight: 600;
}

.ncm-page .trustbar__stars {
	color: var(--ncm-trust);
	font-size: 15px;
	letter-spacing: 2px;
}

/* -------------------------------------------------------------- modelcheck */

.ncm-page .modelcheck {
	position: relative;
	z-index: 5;
	margin-top: -160px;
	padding: 0 0 clamp(40px, 5vw, 60px);
	background: transparent;
}

.ncm-page .modelcheck__card {
	background: var(--ncm-white);
	border: 1px solid var(--ncm-line);
	border-radius: var(--ncm-radius-lg);
	padding: clamp(2rem, 4.5vw, 3.5rem);
	box-shadow: var(--ncm-shadow-lg);
}

.ncm-page .modelcheck__head {
	text-align: center;
	max-width: 620px;
	margin: 0 auto 40px;
}

.ncm-page .modelcheck__form {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr auto;
	gap: 14px;
	max-width: 980px;
	margin: 0 auto 34px;
}

.ncm-page .modelcheck__form select {
	padding: 16px 44px 16px 18px;
	background-color: var(--ncm-white);
	border: 1.5px solid var(--ncm-line-strong);
	border-radius: var(--ncm-radius);
	color: var(--ncm-ink);
	outline: none;
	transition: border-color .2s var(--ncm-ease);
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%230e0e0e' stroke-width='2'%3E%3Cpath d='m3 5 4 4 4-4'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
}

.ncm-page .modelcheck__form select:focus {
	border-color: var(--ncm-green);
}

.ncm-page .modelcheck__form select:disabled {
	background-color: var(--ncm-off);
	color: var(--ncm-ink-muted);
	cursor: not-allowed;
}

.ncm-page .modelcheck__note {
	text-align: center;
	margin-top: 26px;
	font-size: 14px;
	color: var(--ncm-ink-soft);
}

.ncm-page .modelcheck__note a {
	color: var(--ncm-green-text);
	font-weight: 600;
	text-decoration: underline;
}

@media (max-width: 880px) {

	.ncm-page .modelcheck__form {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 560px) {

	.ncm-page .modelcheck__card {
		padding: 1.9rem 1.15rem;
	}
}

/* ----------------------------------------------------------------- galerij */

.ncm-page .ni-gal {
	padding: clamp(40px, 5vw, 66px) 0;
	background: var(--ncm-off);
	color: var(--ncm-ink);
}

.ncm-page .ni-gal__head {
	margin-bottom: 26px;
}

.ncm-page .ni-gal__head .section-sub {
	margin-top: 10px;
}

.ncm-page .ni-gal__filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	padding: 12px;
	border: 1px solid var(--ncm-line);
	border-radius: var(--ncm-radius);
	background: var(--ncm-white);
	margin-bottom: 22px;
}

.ncm-page .ni-gal__select {
	appearance: none;
	-webkit-appearance: none;
	flex: 0 1 220px;
	min-width: 180px;
	padding: 12px 40px 12px 16px;
	border: 1px solid var(--ncm-line-strong);
	border-radius: var(--ncm-pill);
	background-color: var(--ncm-white);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234a4a4a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 16px 16px;
	color: var(--ncm-ink);
	font-size: 15px;
	line-height: 1.3;
	cursor: pointer;
	transition: border-color .2s ease, opacity .2s ease;
}

.ncm-page .ni-gal__select:hover:not(:disabled) {
	border-color: var(--ncm-green);
}

.ncm-page .ni-gal__select:disabled {
	opacity: .55;
	background-color: var(--ncm-off);
	cursor: not-allowed;
}

.ncm-page .ni-gal__select option {
	background: var(--ncm-white);
	color: var(--ncm-ink);
}

.ncm-page .ni-gal__count {
	margin-left: auto;
	font-size: 13.5px;
	color: var(--ncm-ink-soft);
	white-space: nowrap;
	padding: 0 4px;
}

.ncm-page .ni-gal__reset {
	background: none;
	border: 0;
	cursor: pointer;
	font-size: 13.5px;
	color: var(--ncm-ink-soft);
	text-decoration: underline;
	text-underline-offset: 3px;
	padding: 6px 8px;
	transition: color .2s ease;
}

.ncm-page .ni-gal__reset:hover {
	color: var(--ncm-green-text);
}

.ncm-page .ni-gal__reset[hidden] {
	display: none;
}

.ncm-page .ni-gal__years {
	display: flex;
	align-items: center;
	gap: 12px;
	flex: 1 1 300px;
	min-width: 250px;
	padding: 0 16px 0 18px;
	height: 46px;
	border: 1px solid var(--ncm-line-strong);
	border-radius: var(--ncm-pill);
	background: var(--ncm-white);
}

.ncm-page .ni-gal__years-label {
	font-size: 13.5px;
	color: var(--ncm-ink-soft);
	white-space: nowrap;
}

.ncm-page .ni-gal__years-out {
	font-size: 13.5px;
	font-variant-numeric: tabular-nums;
	color: var(--ncm-ink);
	white-space: nowrap;
	min-width: 92px;
	text-align: right;
}

.ncm-page .ni-gal__years.is-active .ni-gal__years-out {
	color: var(--ncm-green-text);
	font-weight: 600;
}

.ncm-page .ni-gal__range {
	position: relative;
	flex: 1 1 auto;
	min-width: 70px;
	height: 20px;
	display: flex;
	align-items: center;
}

.ncm-page .ni-gal__range-track,
.ncm-page .ni-gal__range-fill {
	position: absolute;
	top: 50%;
	height: 3px;
	margin-top: -1.5px;
	border-radius: 3px;
	pointer-events: none;
}

.ncm-page .ni-gal__range-track {
	left: 0;
	right: 0;
	background: var(--ncm-off-2);
}

.ncm-page .ni-gal__range-fill {
	left: 0;
	width: 100%;
	background: var(--ncm-green);
}

.ncm-page .ni-gal__range input[type="range"] {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 20px;
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	appearance: none;
	-webkit-appearance: none;
	pointer-events: none;
}

.ncm-page .ni-gal__range input[type="range"]:focus {
	outline: none;
}

.ncm-page .ni-gal__range input[type="range"]::-webkit-slider-runnable-track {
	height: 20px;
	background: none;
	border: 0;
}

.ncm-page .ni-gal__range input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	pointer-events: auto;
	width: 15px;
	height: 15px;
	border-radius: 50%;
	border: 0;
	background: var(--ncm-ink);
	box-shadow: 0 0 0 2px var(--ncm-white);
	cursor: grab;
	transition: transform .15s ease, background .15s ease;
}

.ncm-page .ni-gal__range input[type="range"]::-webkit-slider-thumb:hover {
	background: var(--ncm-green);
}

.ncm-page .ni-gal__range input[type="range"]::-webkit-slider-thumb:active {
	cursor: grabbing;
	transform: scale(1.12);
}

.ncm-page .ni-gal__range input[type="range"]:focus-visible::-webkit-slider-thumb {
	background: var(--ncm-green);
}

.ncm-page .ni-gal__range input[type="range"]::-moz-range-track {
	height: 20px;
	background: none;
	border: 0;
}

.ncm-page .ni-gal__range input[type="range"]::-moz-range-thumb {
	pointer-events: auto;
	width: 15px;
	height: 15px;
	border-radius: 50%;
	border: 0;
	background: var(--ncm-ink);
	box-shadow: 0 0 0 2px var(--ncm-white);
	cursor: grab;
	transition: transform .15s ease, background .15s ease;
}

.ncm-page .ni-gal__range input[type="range"]::-moz-range-thumb:hover {
	background: var(--ncm-green);
}

.ncm-page .ni-gal__range input[type="range"]:focus-visible::-moz-range-thumb {
	background: var(--ncm-green);
}

@media (max-width: 900px) {

	.ncm-page .ni-gal__years {
		flex: 1 1 100%;
	}
}

@media (max-width: 560px) {

	.ncm-page .ni-gal__select {
		flex: 1 1 100%;
		min-width: 0;
	}

	.ncm-page .ni-gal__years {
		min-width: 0;
		padding: 0 14px;
		gap: 10px;
	}

	.ncm-page .ni-gal__years-label {
		display: none;
	}

	.ncm-page .ni-gal__count {
		margin-left: 0;
	}
}

.ncm-page .ni-gal__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.ncm-page .ni-gal__grid.is-busy {
	opacity: .45;
	transition: opacity .18s ease;
}

@media (max-width: 900px) {

	.ncm-page .ni-gal__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px;
	}
}

@media (max-width: 560px) {

	.ncm-page .ni-gal__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 12px;
	}
}

.ncm-page .ni-gal__item {
	position: relative;
	display: block;
	width: 100%;
	padding: 0;
	overflow: hidden;
	border-radius: var(--ncm-radius);
	border: 1px solid var(--ncm-line);
	background: var(--ncm-white);
	aspect-ratio: 4 / 3;
	cursor: zoom-in;
	transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}

.ncm-page .ni-gal__item[hidden] {
	display: none;
}

.ncm-page .ni-gal__item:hover {
	border-color: var(--ncm-green);
	transform: translateY(-2px);
	box-shadow: var(--ncm-shadow);
}

.ncm-page .ni-gal__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .45s var(--ncm-ease);
}

.ncm-page .ni-gal__item:hover img {
	transform: scale(1.04);
}

/* Bijschrift ligt op de foto zelf; daar blijft wit-op-donker leesbaar. */
.ncm-page .ni-gal__label {
	position: absolute;
	inset: auto 0 0 0;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0 7px;
	padding: 34px 16px 14px;
	background: linear-gradient(to top, rgba(0, 0, 0, .78) 12%, rgba(0, 0, 0, 0));
	text-align: left;
	pointer-events: none;
}

.ncm-page .ni-gal__brand {
	font-size: 15px;
	font-weight: 600;
	letter-spacing: -.01em;
	color: #fff;
}

.ncm-page .ni-gal__model {
	font-size: 14.5px;
	color: rgba(255, 255, 255, .82);
}

.ncm-page .ni-gal__year {
	font-size: 12.5px;
	color: rgba(255, 255, 255, .7);
}

.ncm-page .ni-gal__foot {
	display: flex;
	justify-content: center;
	margin-top: 22px;
}

.ncm-page .ni-gal__more[hidden] {
	display: none;
}

.ncm-page .ni-gal__empty {
	padding: 48px 0;
	text-align: center;
	color: var(--ncm-ink-soft);
}

.ncm-page .ni-gal__empty[hidden] {
	display: none;
}

/* lightbox - licht, met donkere tekst */
.ncm-page .ni-gal__lb {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(12px, 4vw, 48px);
	background: rgba(255, 255, 255, .97);
	opacity: 0;
	transition: opacity .2s ease;
}

.ncm-page .ni-gal__lb[hidden] {
	display: none;
}

.ncm-page .ni-gal__lb.is-open {
	opacity: 1;
}

.ncm-page .ni-gal__lb-fig {
	max-width: 100%;
	max-height: 100%;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
	align-items: center;
}

.ncm-page .ni-gal__lb-fig img {
	max-width: min(1100px, 100%);
	max-height: calc(100vh - 160px);
	width: auto;
	border-radius: var(--ncm-radius);
	object-fit: contain;
	box-shadow: var(--ncm-shadow-lg);
}

.ncm-page .ni-gal__lb-cap {
	font-size: 14px;
	color: var(--ncm-ink-soft);
	text-align: center;
	max-width: 60ch;
}

.ncm-page .ni-gal__lb-btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 46px;
	height: 46px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--ncm-white);
	border: 1px solid var(--ncm-line-strong);
	color: var(--ncm-ink);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	box-shadow: var(--ncm-shadow);
	transition: background .2s ease, color .2s ease;
}

.ncm-page .ni-gal__lb-btn:hover {
	background: var(--ncm-yellow);
	color: var(--ncm-ink);
}

.ncm-page .ni-gal__lb-prev {
	left: clamp(8px, 2vw, 28px);
}

.ncm-page .ni-gal__lb-next {
	right: clamp(8px, 2vw, 28px);
}

.ncm-page .ni-gal__lb-close {
	position: absolute;
	top: clamp(10px, 2vw, 24px);
	right: clamp(10px, 2vw, 24px);
	transform: none;
}

@media (max-width: 560px) {

	.ncm-page .ni-gal__lb-btn {
		width: 40px;
		height: 40px;
	}

	.ncm-page .ni-gal__lb-fig img {
		max-height: calc(100vh - 180px);
	}
}

/* ---------------------------------------------------------------- diensten */

.ncm-page .services {
	padding: clamp(44px, 5.5vw, 72px) 0;
	background: var(--ncm-white);
}

.ncm-page .services__head {
	text-align: center;
	max-width: 640px;
	margin: 0 auto clamp(26px, 3.4vw, 38px);
}

.ncm-page .services__head .section-sub {
	margin-left: auto;
	margin-right: auto;
}

.ncm-page .services__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.ncm-page .services__grid--compact {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

@media (max-width: 1100px) {

	.ncm-page .services__grid--compact {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 960px) {

	.ncm-page .services__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 16px;
	}
}

@media (max-width: 860px) {

	.ncm-page .services__grid--compact {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}
}

@media (max-width: 620px) {

	.ncm-page .services__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 520px) {

	.ncm-page .services__grid--compact {
		grid-template-columns: 1fr;
	}
}

.ncm-page .svc-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: 14px;
	width: 100%;
	margin: 0;
	text-align: center;
	background: var(--ncm-yellow);
	border: 1px solid var(--ncm-yellow);
	border-radius: var(--ncm-radius-lg);
	padding: clamp(28px, 3vw, 34px) 22px;
	color: var(--ncm-ink);
	font-family: var(--ncm-font-body);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.55;
	transition: background .22s var(--ncm-ease), border-color .22s var(--ncm-ease),
		box-shadow .22s var(--ncm-ease), transform .22s var(--ncm-ease);
}

.ncm-page .services__grid--compact .svc-card {
	padding: 20px 16px;
	gap: 10px;
	font-size: 14px;
	line-height: 1.5;
}

.ncm-page .svc-card:hover,
.ncm-page .svc-card:focus-visible {
	background: var(--ncm-yellow-deep);
	border-color: var(--ncm-yellow-deep);
	box-shadow: 0 16px 38px rgba(254, 190, 20, .3);
	transform: translateY(-3px);
}

.ncm-page .svc-card__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 38px;
	color: var(--ncm-ink);
}

.ncm-page .services__grid--compact .svc-card__icon {
	width: 48px;
	height: 48px;
}

.ncm-page .svc-card__icon svg {
	transition: transform .22s var(--ncm-ease);
}

.ncm-page .svc-card:hover .svc-card__icon svg {
	transform: scale(1.06);
}

.ncm-page .svc-card__body {
	display: block;
	min-width: 0;
	flex: 1 1 auto;
}

.ncm-page .svc-card__title {
	display: block;
	margin-bottom: 8px;
	font-family: var(--ncm-font-head);
	font-size: clamp(16px, 1.8vw, 18px);
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: .02em;
	line-height: 1.25;
	color: var(--ncm-ink);
}

.ncm-page .services__grid--compact .svc-card__title {
	font-size: 16px;
}

.ncm-page .svc-card__sub {
	display: block;
	margin-top: 2px;
	font-size: 11px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: rgba(0, 0, 0, .68);
}

.ncm-page .svc-card__text {
	display: block;
	font-size: 14px;
	line-height: 1.6;
	color: rgba(0, 0, 0, .78);
}

.ncm-page .services__grid--compact .svc-card__text {
	font-size: 13px;
}

.ncm-page .svc-card__cta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 2px;
	padding-bottom: 3px;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--ncm-ink);
	border-bottom: 1px solid rgba(0, 0, 0, .45);
}

.ncm-page .svc-card__cta svg {
	transition: transform .22s var(--ncm-ease);
}

.ncm-page .svc-card:hover .svc-card__cta {
	border-bottom-color: var(--ncm-ink);
}

.ncm-page .svc-card:hover .svc-card__cta svg {
	transform: translateX(3px);
}

/* dienstenpopup */
.ncm-page .svc-modal {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: none;
	align-items: flex-end;
	justify-content: center;
	font-family: var(--ncm-font-body);
	color: var(--ncm-ink);
	line-height: 1.65;
}

.ncm-page .svc-modal.is-open {
	display: flex;
}

@media (min-width: 640px) {

	.ncm-page .svc-modal {
		align-items: center;
	}
}

.ncm-page .svc-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(14, 14, 14, .45);
	backdrop-filter: blur(3px);
	animation: ncm-svc-fade .2s var(--ncm-ease);
}

.ncm-page .svc-modal__dialog {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	width: 100%;
	max-width: 620px;
	max-height: 92vh;
	background: var(--ncm-white);
	border: 1px solid var(--ncm-line);
	border-radius: var(--ncm-radius-lg) var(--ncm-radius-lg) 0 0;
	color: var(--ncm-ink);
	box-shadow: var(--ncm-shadow-lg);
	animation: ncm-svc-up .28s var(--ncm-ease);
}

@media (min-width: 640px) {

	.ncm-page .svc-modal__dialog {
		width: calc(100% - 40px);
		max-height: 88vh;
		border-radius: var(--ncm-radius-lg);
		animation: ncm-svc-pop .24s var(--ncm-ease);
	}
}

@keyframes ncm-svc-fade {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes ncm-svc-up {
	from { opacity: 0; transform: translateY(28px); }
	to { opacity: 1; transform: none; }
}

@keyframes ncm-svc-pop {
	from { opacity: 0; transform: translateY(12px) scale(.985); }
	to { opacity: 1; transform: none; }
}

.ncm-page .svc-modal__header {
	position: relative;
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	padding: 30px 56px 22px;
	text-align: center;
	border-bottom: 1px solid var(--ncm-line);
	background: var(--ncm-off);
}

.ncm-page .svc-modal__icon {
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--ncm-yellow);
	color: var(--ncm-ink);
}

.ncm-page .svc-modal__title {
	margin: 0;
	font-family: var(--ncm-font-head);
	font-size: 19px;
	font-weight: 400;
	line-height: 1.25;
	text-transform: uppercase;
	letter-spacing: .02em;
	color: var(--ncm-ink);
}

.ncm-page .svc-modal__sub {
	margin: 6px 0 0;
	font-size: 13.5px;
	color: var(--ncm-ink-soft);
	line-height: 1.5;
}

.ncm-page .svc-modal__close {
	position: absolute;
	top: 16px;
	right: 16px;
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 1.5px solid var(--ncm-line-strong);
	border-radius: 50%;
	background: var(--ncm-white);
	color: var(--ncm-ink);
	cursor: pointer;
	transition: border-color .2s var(--ncm-ease), color .2s var(--ncm-ease);
}

.ncm-page .svc-modal__close:hover,
.ncm-page .svc-modal__close:focus-visible {
	border-color: var(--ncm-green);
	color: var(--ncm-green-text);
}

.ncm-page .svc-modal__body {
	flex: 1 1 auto;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	padding: 26px clamp(20px, 4vw, 32px) 30px;
	text-align: left;
	background: var(--ncm-white);
}

.ncm-page .svc-info p {
	margin: 0 0 14px;
	font-size: 15px;
	line-height: 1.7;
	color: var(--ncm-ink-soft);
}

.ncm-page .svc-info p:last-child {
	margin-bottom: 0;
}

.ncm-page .svc-info strong {
	color: var(--ncm-ink);
	font-weight: 600;
}

.ncm-page .svc-info a {
	color: var(--ncm-green-text);
	text-decoration: underline;
}

.ncm-page .svc-info h3,
.ncm-page .svc-info h4 {
	margin: 22px 0 10px;
	font-family: var(--ncm-font-head);
	font-size: 16px;
	font-weight: 400;
	color: var(--ncm-ink);
}

.ncm-page .svc-info ul,
.ncm-page .svc-info ol {
	display: grid;
	gap: 10px;
	margin: 0 0 18px;
	padding: 0;
}

.ncm-page .svc-info ul li {
	position: relative;
	padding-left: 30px;
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--ncm-ink-soft);
	list-style: none;
}

.ncm-page .svc-info ul li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 4px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--ncm-green-soft);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%2323a455' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2 6.5 3 3 5-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
}

.ncm-page .svc-info ol {
	padding-left: 20px;
}

.ncm-page .svc-info ol li {
	list-style: decimal;
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--ncm-ink-soft);
}

.ncm-page .svc-modal__facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 10px;
	margin: 4px 0 20px;
}

.ncm-page .svc-fact {
	padding: 14px 16px;
	background: var(--ncm-off);
	border: 1px solid var(--ncm-line);
	border-radius: var(--ncm-radius);
	text-align: center;
}

.ncm-page .svc-fact strong {
	display: block;
	font-family: var(--ncm-font-head);
	font-size: 17px;
	font-weight: 400;
	color: var(--ncm-green-text);
}

.ncm-page .svc-fact span {
	display: block;
	margin-top: 2px;
	font-size: 12.5px;
	color: var(--ncm-ink-soft);
}

.ncm-page .svc-modal__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 24px;
	padding-top: 22px;
	border-top: 1px solid var(--ncm-line);
}

.ncm-page .svc-modal__actions .btn {
	flex: 1 1 200px;
	padding: 15px 24px;
	font-size: 15px;
}

.ncm-page .svc-modal__body .ni-loading {
	min-height: 80px;
}

html.svc-modal-open,
body.svc-modal-open {
	overflow: hidden;
}

/* ------------------------------------------------------------- waarom wij */

.ncm-page .why {
	background: var(--ncm-off);
	color: var(--ncm-ink);
	padding: clamp(48px, 6vw, 78px) 0;
}

.ncm-page .why .section-sub {
	color: var(--ncm-ink-soft);
}

.ncm-page .why__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: center;
}

.ncm-page .why__media {
	border-radius: var(--ncm-radius-lg);
	overflow: hidden;
	aspect-ratio: 4 / 4.6;
	margin: 0;
}

.ncm-page .why__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ncm-page .why__points {
	display: grid;
	gap: 18px;
	margin: 30px 0;
}

.ncm-page .why__points li {
	display: flex;
	gap: 16px;
}

.ncm-page .why__point-icon {
	width: 46px;
	height: 46px;
	flex-shrink: 0;
	background: var(--ncm-white);
	border: 1px solid var(--ncm-line);
	border-radius: 14px;
	display: grid;
	place-items: center;
	color: var(--ncm-green);
}

.ncm-page .why__points strong {
	display: block;
	font-size: 16px;
	font-weight: 700;
	margin-bottom: 2px;
	color: var(--ncm-ink);
}

.ncm-page .why__points span {
	font-size: 14px;
	color: var(--ncm-ink-soft);
}

.ncm-page .why__facts {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
	padding: 22px;
	background: var(--ncm-white);
	border: 1px solid var(--ncm-line);
	border-radius: var(--ncm-radius-lg);
}

.ncm-page .why__facts div {
	text-align: center;
}

.ncm-page .why__facts strong {
	display: block;
	font-family: var(--ncm-font-head);
	font-size: 22px;
	font-weight: 400;
	color: var(--ncm-ink);
}

.ncm-page .why__facts span {
	font-size: 12.5px;
	color: var(--ncm-ink-muted);
}

@media (max-width: 900px) {

	.ncm-page .why__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 560px) {

	.ncm-page .why__facts {
		grid-template-columns: 1fr;
		gap: 0;
		padding: 6px 18px;
	}

	.ncm-page .why__facts div {
		padding: 15px 0;
		border-bottom: 1px solid var(--ncm-line);
	}

	.ncm-page .why__facts div:last-child {
		border-bottom: 0;
	}
}

/* --------------------------------------------------------------- werkwijze */

.ncm-page .process {
	padding: clamp(48px, 6vw, 78px) 0;
	background: var(--ncm-white);
}

.ncm-page .process__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
	margin-top: 30px;
}

.ncm-page .step {
	background: var(--ncm-white);
	border: 1px solid var(--ncm-line);
	border-radius: var(--ncm-radius-lg);
	padding: 28px 24px;
	position: relative;
	box-shadow: var(--ncm-shadow);
}

.ncm-page .step__num {
	font-family: var(--ncm-font-head);
	font-size: 44px;
	font-weight: 400;
	color: transparent;
	-webkit-text-stroke: 1.5px var(--ncm-green);
	line-height: 1;
	margin-bottom: 16px;
	display: block;
}

.ncm-page .step h3 {
	font-size: 18px;
	margin-bottom: 8px;
	color: var(--ncm-ink);
}

.ncm-page .step p {
	font-size: 14px;
	color: var(--ncm-ink-soft);
}

@media (max-width: 880px) {

	.ncm-page .process__grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 540px) {

	.ncm-page .process__grid {
		grid-template-columns: 1fr;
	}
}

/* ----------------------------------------------------------------- reviews */

.ncm-page .reviews {
	padding: clamp(48px, 6vw, 78px) 0 0;
	background: var(--ncm-white);
}

.ncm-page .reviews__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	margin-top: 30px;
}

.ncm-page .review-card {
	background: var(--ncm-white);
	border: 1px solid var(--ncm-line);
	border-radius: var(--ncm-radius-lg);
	padding: 28px 26px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	box-shadow: var(--ncm-shadow);
}

.ncm-page .review-card__stars {
	color: var(--ncm-trust);
	font-size: 16px;
	letter-spacing: 2.5px;
}

.ncm-page .review-card > p {
	font-size: 14.5px;
	color: var(--ncm-ink-soft);
	flex-grow: 1;
}

.ncm-page .review-card > p strong {
	color: var(--ncm-ink);
	font-weight: 600;
}

.ncm-page .review-card footer {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 10px;
	padding-top: 14px;
	border-top: 1px solid var(--ncm-line);
	font-size: 13.5px;
}

.ncm-page .review-card footer strong {
	color: var(--ncm-ink);
	font-weight: 600;
}

.ncm-page .review-card footer span {
	color: var(--ncm-ink-muted);
	font-size: 12.5px;
}

@media (max-width: 880px) {

	.ncm-page .reviews__grid {
		grid-template-columns: 1fr;
	}
}

/* --------------------------------------------------------------------- faq */

.ncm-page .faq {
	background: var(--ncm-off);
	border-top: 1px solid var(--ncm-line);
	padding: clamp(48px, 6vw, 78px) 0;
	margin-top: clamp(48px, 6vw, 78px);
}

.ncm-page .faq__grid {
	display: grid;
	grid-template-columns: 1fr 1.5fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
}

.ncm-page .faq__list {
	display: grid;
	gap: 12px;
}

.ncm-page .faq-item {
	background: var(--ncm-white);
	border: 1px solid var(--ncm-line);
	border-radius: var(--ncm-radius);
	transition: border-color .2s var(--ncm-ease);
}

.ncm-page .faq-item[open] {
	border-color: var(--ncm-green);
}

.ncm-page .faq-item summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 20px 24px;
	font-weight: 600;
	font-size: 16px;
	color: var(--ncm-ink);
}

.ncm-page .faq-item summary::after {
	content: "+";
	width: 30px;
	height: 30px;
	flex-shrink: 0;
	border: 1.5px solid var(--ncm-line-strong);
	color: var(--ncm-ink);
	border-radius: 50%;
	display: grid;
	place-items: center;
	font-size: 18px;
	transition: all .25s var(--ncm-ease);
}

.ncm-page .faq-item[open] summary::after {
	content: "–";
	background: var(--ncm-yellow);
	color: var(--ncm-ink);
	border-color: var(--ncm-yellow);
}

.ncm-page .faq-item p {
	padding: 0 24px 22px;
	font-size: 14.5px;
	color: var(--ncm-ink-soft);
}

.ncm-page .faq__cta {
	margin-top: 20px;
}

@media (max-width: 880px) {

	.ncm-page .faq__grid {
		grid-template-columns: 1fr;
	}
}

/* --------------------------------------------------------------- afsluiter */

.ncm-page .final {
	padding: clamp(52px, 6.5vw, 88px) var(--ncm-gutter);
	text-align: center;
	position: relative;
	overflow: hidden;
	background: var(--ncm-off);
	color: var(--ncm-ink);
}

.ncm-page .final::before {
	content: "";
	position: absolute;
	bottom: -320px;
	left: 50%;
	transform: translateX(-50%);
	width: 900px;
	height: 640px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(35, 164, 85, .14) 0%, transparent 65%);
	pointer-events: none;
}

.ncm-page .final h2 {
	font-size: clamp(30px, 4.4vw, 54px);
	max-width: 20ch;
	margin: 0 auto 18px;
	position: relative;
	color: var(--ncm-ink);
}

.ncm-page .final h2 em {
	font-style: normal;
	color: var(--ncm-green-text);
}

.ncm-page .final p {
	color: var(--ncm-ink-soft);
	max-width: 52ch;
	margin: 0 auto 34px;
	font-size: 17px;
	position: relative;
}

.ncm-page .final__ctas {
	display: flex;
	justify-content: center;
	gap: 14px;
	flex-wrap: wrap;
	margin-bottom: 30px;
	position: relative;
}

.ncm-page .final__trust {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	color: var(--ncm-ink-soft);
	position: relative;
}

.ncm-page .final__trust .trustbar__stars {
	font-size: 14px;
}

/* --------------------------------------------------------- boekingswizard */

.ncm-page .ni-booking {
	padding: clamp(44px, 5.5vw, 72px) 0;
	background: var(--ncm-white);
	color: var(--ncm-ink);
}

.ncm-page .ni-booking__head {
	text-align: center;
	margin-bottom: 40px;
}

.ncm-page .ni-steps {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin: 0 0 28px;
	padding: 0;
	list-style: none;
}

.ncm-page .ni-steps__item {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 9px 18px 9px 9px;
	border: 1px solid var(--ncm-line);
	border-radius: var(--ncm-pill);
	background: var(--ncm-white);
	color: var(--ncm-ink-soft);
	font-size: 14px;
	font-weight: 500;
	transition: color .25s ease, border-color .25s ease, background .25s ease;
}

.ncm-page .ni-steps__num {
	display: grid;
	place-items: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--ncm-off-2);
	color: var(--ncm-ink-soft);
	font-size: 13px;
	font-weight: 700;
}

.ncm-page .ni-steps__item.is-active {
	color: var(--ncm-ink);
	border-color: var(--ncm-yellow);
	background: var(--ncm-yellow-soft);
}

.ncm-page .ni-steps__item.is-active .ni-steps__num {
	background: var(--ncm-yellow);
	color: var(--ncm-ink);
}

.ncm-page .ni-steps__item.is-done {
	color: var(--ncm-ink);
	border-color: var(--ncm-green);
	background: var(--ncm-green-soft);
}

.ncm-page .ni-steps__item.is-done .ni-steps__num {
	background: var(--ncm-green);
	color: var(--ncm-white);
}

.ncm-page .ni-steps__txt {
	display: inline;
}

.ncm-page .ni-booking__card {
	background: var(--ncm-off);
	border: 1px solid var(--ncm-line);
	border-radius: var(--ncm-radius-lg);
	padding: clamp(22px, 4vw, 40px);
}

.ncm-page .ni-panel[hidden] {
	display: none;
}

.ncm-page .ni-panel__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	justify-content: space-between;
	margin-bottom: 22px;
}

.ncm-page .ni-panel__title {
	font-size: clamp(20px, 2.4vw, 27px);
	margin-bottom: 6px;
	color: var(--ncm-ink);
}

.ncm-page .ni-panel__sub {
	color: var(--ncm-ink-soft);
	margin-bottom: 22px;
}

.ncm-page .ni-back {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--ncm-ink-soft);
	font-size: 14px;
	font-weight: 500;
	transition: color .2s ease;
}

.ncm-page .ni-back:hover {
	color: var(--ncm-green-text);
}

.ncm-page .ni-back svg {
	transform: rotate(90deg);
}

.ncm-page .ni-chosen {
	font-size: 14px;
	color: var(--ncm-ink);
	background: var(--ncm-white);
	border: 1px solid var(--ncm-line);
	padding: 7px 15px;
	border-radius: var(--ncm-pill);
}

.ncm-page .ni-chosen strong {
	color: var(--ncm-green-text);
	font-weight: 600;
}

.ncm-page .ni-field {
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.ncm-page .ni-field label {
	font-size: 13px;
	font-weight: 600;
	color: var(--ncm-ink-soft);
}

.ncm-page .ni-field select,
.ncm-page .ni-field input,
.ncm-page .ni-field textarea {
	width: 100%;
	background: var(--ncm-white);
	border: 1px solid var(--ncm-line-strong);
	border-radius: var(--ncm-radius);
	color: var(--ncm-ink);
	padding: 14px 16px;
	font-size: 15px;
	transition: border-color .2s ease, background .2s ease;
}

.ncm-page .ni-field select {
	appearance: none;
	cursor: pointer;
	padding-right: 40px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234a4a4a' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 18px;
}

.ncm-page .ni-field select:disabled {
	background-color: var(--ncm-off-2);
	color: var(--ncm-ink-muted);
	cursor: not-allowed;
}

.ncm-page .ni-field select:focus,
.ncm-page .ni-field input:focus,
.ncm-page .ni-field textarea:focus {
	outline: none;
	border-color: var(--ncm-green);
}

.ncm-page .ni-field textarea {
	resize: vertical;
	min-height: 92px;
}

.ncm-page .ni-field.has-error input,
.ncm-page .ni-field.has-error select,
.ncm-page .ni-field.has-error .ni-datepick__trigger {
	border-color: var(--ncm-red);
}

.ncm-page .ni-hint {
	font-size: 12.5px;
	color: var(--ncm-ink-muted);
	margin: 0;
}

.ncm-page .ni-car {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(3, 1fr) auto;
	align-items: end;
}

.ncm-page .ni-car__submit {
	white-space: nowrap;
}

@media (max-width: 900px) {

	.ncm-page .ni-car {
		grid-template-columns: 1fr 1fr;
	}

	.ncm-page .ni-car__submit {
		grid-column: 1 / -1;
		width: 100%;
	}
}

@media (max-width: 560px) {

	.ncm-page .ni-car {
		grid-template-columns: 1fr;
	}
}

/* datumkiezer */
.ncm-page .ni-datepick {
	position: relative;
}

.ncm-page .ni-datepick.is-enhanced input[type="date"] {
	position: absolute;
	opacity: 0;
	pointer-events: none;
	width: 1px;
	height: 1px;
	padding: 0;
	border: 0;
	margin: 0;
}

.ncm-page .ni-datepick__trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	text-align: left;
	cursor: pointer;
	background: var(--ncm-white);
	border: 1px solid var(--ncm-line-strong);
	border-radius: var(--ncm-radius);
	color: var(--ncm-ink);
	padding: 14px 16px;
	font-size: 15px;
	transition: border-color .2s ease;
}

.ncm-page .ni-datepick__trigger::after {
	content: "";
	flex: none;
	width: 20px;
	height: 20px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315723a' stroke-width='1.8' stroke-linecap='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M8 3v4M16 3v4M3 10h18'/%3E%3C/svg%3E") no-repeat center / contain;
}

.ncm-page .ni-datepick__trigger:hover,
.ncm-page .ni-datepick__trigger[aria-expanded="true"] {
	border-color: var(--ncm-green);
}

.ncm-page .ni-datepick__ph {
	color: var(--ncm-ink-muted);
}

.ncm-page .ni-datepick__value {
	color: var(--ncm-ink);
	font-weight: 600;
}

.ncm-page .ni-datepick__pop {
	position: absolute;
	z-index: 40;
	top: calc(100% + 8px);
	left: 0;
	width: min(330px, 100%);
	background: var(--ncm-white);
	border: 1px solid var(--ncm-line);
	border-radius: var(--ncm-radius);
	box-shadow: var(--ncm-shadow-lg);
	padding: 14px;
}

.ncm-page .ni-datepick__pop[hidden] {
	display: none;
}

.ncm-page .ni-cal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 10px;
}

.ncm-page .ni-cal__month {
	font-size: 14.5px;
	font-weight: 600;
	text-transform: capitalize;
	color: var(--ncm-ink);
}

.ncm-page .ni-cal__nav {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--ncm-off);
	color: var(--ncm-ink);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	border: 1px solid var(--ncm-line);
	transition: background .2s ease, color .2s ease;
}

.ncm-page .ni-cal__nav:hover {
	background: var(--ncm-yellow);
	color: var(--ncm-ink);
}

.ncm-page .ni-cal__dows,
.ncm-page .ni-cal__grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 3px;
}

.ncm-page .ni-cal__dows {
	margin-bottom: 5px;
	text-align: center;
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .04em;
	color: var(--ncm-ink-muted);
	text-transform: uppercase;
}

.ncm-page .ni-cal__pad {
	display: block;
}

.ncm-page .ni-cal__day {
	aspect-ratio: 1;
	display: grid;
	place-items: center;
	border-radius: 9px;
	border: 1px solid transparent;
	background: var(--ncm-off);
	color: var(--ncm-ink);
	font-size: 13.5px;
	font-weight: 500;
	cursor: pointer;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}

.ncm-page .ni-cal__day:hover:not(:disabled) {
	background: var(--ncm-yellow);
	color: var(--ncm-ink);
}

.ncm-page .ni-cal__day:disabled {
	background: transparent;
	color: #b8b8b2;
	cursor: not-allowed;
}

.ncm-page .ni-cal__day.is-today {
	border-color: var(--ncm-line-strong);
}

.ncm-page .ni-cal__day.is-selected {
	background: var(--ncm-green);
	color: var(--ncm-white);
	border-color: var(--ncm-green);
}

/* resultaten */
.ncm-page .ni-results__title {
	font-size: 19px;
	margin-bottom: 4px;
	color: var(--ncm-ink);
}

.ncm-page .ni-results__sub {
	color: var(--ncm-ink-soft);
	font-size: 14.5px;
	margin-bottom: 18px;
}

.ncm-page .ni-results__group + .ni-results__group {
	margin-top: 34px;
	padding-top: 30px;
	border-top: 1px solid var(--ncm-line);
}

.ncm-page .ni-cards {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}

.ncm-page .ni-card {
	display: flex;
	flex-direction: column;
	gap: 12px;
	background: var(--ncm-white);
	border: 1.5px solid var(--ncm-line);
	border-radius: var(--ncm-radius);
	padding: 16px;
	text-align: left;
	transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.ncm-page .ni-card:hover {
	border-color: var(--ncm-green);
	transform: translateY(-2px);
	box-shadow: var(--ncm-shadow);
}

.ncm-page .ni-card__top {
	display: flex;
	gap: 14px;
	align-items: flex-start;
}

.ncm-page .ni-card__img {
	width: 74px;
	height: 74px;
	flex: none;
	object-fit: contain;
	background: var(--ncm-white);
	border: 1px solid var(--ncm-line);
	border-radius: 10px;
	padding: 5px;
}

.ncm-page .ni-card__img--empty {
	display: grid;
	place-items: center;
	background: var(--ncm-off);
	color: var(--ncm-ink-muted);
	font-size: 11px;
}

.ncm-page .ni-card__name {
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--ncm-ink);
}

.ncm-page .ni-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 7px;
}

.ncm-page .ni-card__price {
	font-size: 16px;
	font-weight: 700;
	color: var(--ncm-ink);
}

.ncm-page .ni-card__price del {
	color: var(--ncm-ink-muted);
	font-weight: 400;
}

.ncm-page .ni-card__price ins {
	text-decoration: none;
	color: var(--ncm-green-text);
}

.ncm-page .ni-badge {
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .02em;
	padding: 3px 9px;
	border-radius: var(--ncm-pill);
}

.ncm-page .ni-badge--in {
	background: var(--ncm-green-soft);
	color: var(--ncm-green-text);
}

.ncm-page .ni-badge--out {
	background: var(--ncm-off-2);
	color: var(--ncm-ink-soft);
}

.ncm-page .ni-card__excerpt {
	font-size: 13px;
	color: var(--ncm-ink-soft);
	line-height: 1.55;
}

.ncm-page .ni-card__foot {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: auto;
	padding-top: 4px;
}

.ncm-page .ni-card__pick {
	flex: 1;
	background: var(--ncm-green);
	color: var(--ncm-white);
	border-radius: var(--ncm-pill);
	padding: 11px 18px;
	font-size: 14px;
	font-weight: 600;
	transition: background .2s ease;
}

.ncm-page .ni-card__pick:hover {
	background: var(--ncm-green-deep);
}

.ncm-page .ni-card__link {
	font-size: 13px;
	color: var(--ncm-ink-soft);
	text-decoration: underline;
}

.ncm-page .ni-card__link:hover {
	color: var(--ncm-green-text);
}

.ncm-page .ni-advice {
	margin-top: 20px;
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: center;
	justify-content: space-between;
	background: var(--ncm-yellow-soft);
	border: 1px dashed var(--ncm-yellow-deep);
	border-radius: var(--ncm-radius);
	padding: 18px 20px;
}

.ncm-page .ni-advice__txt strong {
	display: block;
	font-size: 15px;
	margin-bottom: 3px;
	color: var(--ncm-ink);
}

.ncm-page .ni-advice__txt span {
	font-size: 13.5px;
	color: var(--ncm-ink-soft);
}

.ncm-page .ni-alert {
	border-radius: var(--ncm-radius);
	padding: 16px 18px;
	font-size: 14.5px;
}

.ncm-page .ni-alert--warn {
	background: var(--ncm-yellow-soft);
	border: 1px solid var(--ncm-yellow);
	color: var(--ncm-ink);
	margin-bottom: 22px;
}

.ncm-page .ni-alert--error {
	background: var(--ncm-red-soft);
	border: 1px solid var(--ncm-red);
	color: var(--ncm-red);
	margin-top: 16px;
}

.ncm-page .ni-alert--error[hidden] {
	display: none;
}

.ncm-page .ni-alert--empty {
	background: var(--ncm-white);
	border: 1px solid var(--ncm-line);
	text-align: center;
	padding: 30px 22px;
}

.ncm-page .ni-alert--empty strong {
	display: block;
	font-size: 17px;
	margin-bottom: 6px;
	color: var(--ncm-ink);
}

.ncm-page .ni-alert--empty p {
	color: var(--ncm-ink-soft);
	max-width: 46ch;
	margin: 0 auto;
}

.ncm-page .ni-note {
	margin-top: 20px;
	font-size: 12.5px;
	color: var(--ncm-ink-muted);
}

.ncm-page .ni-note--pay {
	margin-top: 22px;
	font-size: 13.5px;
	color: var(--ncm-ink);
	background: var(--ncm-yellow-soft);
	border-left: 3px solid var(--ncm-yellow);
	border-radius: 0 10px 10px 0;
	padding: 11px 15px;
}

.ncm-page .ni-note--pay + .ni-note {
	margin-top: 12px;
}

.ncm-page .ni-booking__noscript {
	margin-top: 16px;
	font-size: 14px;
	color: var(--ncm-ink-soft);
}

.ncm-page .ni-booking__noscript a {
	color: var(--ncm-green-text);
	text-decoration: underline;
}

.ncm-page .ni-pay {
	margin-top: 24px;
}

.ncm-page .ni-pay[hidden] {
	display: none;
}

.ncm-page .ni-pay__box {
	background: var(--ncm-yellow-soft);
	border: 1px solid var(--ncm-yellow);
	border-radius: var(--ncm-radius);
	padding: 20px 22px;
	text-align: left;
}

.ncm-page .ni-pay__box--soft {
	background: var(--ncm-white);
	border: 1px dashed var(--ncm-line-strong);
}

.ncm-page .ni-pay__box--cta {
	background: var(--ncm-green-soft);
	border-color: var(--ncm-green);
	max-width: 520px;
	margin: 26px auto 0;
}

.ncm-page .ni-pay__box.has-error {
	border-color: var(--ncm-red);
	background: var(--ncm-red-soft);
}

.ncm-page .ni-pay__title {
	font-size: 16.5px;
	font-weight: 700;
	margin: 0 0 8px;
	color: var(--ncm-ink);
}

.ncm-page .ni-pay__text {
	font-size: 14px;
	color: var(--ncm-ink-soft);
	line-height: 1.6;
	margin: 0;
}

.ncm-page .ni-pay__product {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px 14px;
	margin: 16px 0 0;
	padding-top: 14px;
	border-top: 1px solid rgba(0, 0, 0, .12);
	font-size: 14.5px;
	font-weight: 600;
	color: var(--ncm-ink);
}

.ncm-page .ni-pay__price {
	color: var(--ncm-green-text);
	font-size: 16px;
	font-weight: 700;
	margin-left: auto;
}

.ncm-page .ni-pay__deposit {
	margin: 14px 0 0;
	font-size: 13px;
	line-height: 1.55;
	color: var(--ncm-ink-soft);
	background: rgba(255, 255, 255, .7);
	border-radius: 10px;
	padding: 11px 14px;
}

.ncm-page .ni-pay__check {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-top: 16px;
	font-size: 14px;
	font-weight: 500;
	color: var(--ncm-ink);
	cursor: pointer;
}

.ncm-page .ni-pay__check input {
	flex: none;
	width: 19px;
	height: 19px;
	margin-top: 1px;
	accent-color: var(--ncm-green);
	cursor: pointer;
}

.ncm-page .ni-pay__btn {
	display: inline-block;
	margin-top: 16px;
}

.ncm-page .ni-form__grid {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(2, 1fr);
}

.ncm-page .ni-field--wide {
	grid-column: 1 / -1;
}

@media (max-width: 640px) {

	.ncm-page .ni-form__grid {
		grid-template-columns: 1fr;
	}
}

.ncm-page .ni-form__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
	margin-top: 24px;
}

.ncm-page .ni-privacy {
	font-size: 12.5px;
	color: var(--ncm-ink-muted);
	max-width: 40ch;
}

.ncm-page .ni-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.ncm-page button[data-ncm-submit].is-busy,
.ncm-page button[data-ni-submit].is-busy {
	opacity: .6;
	pointer-events: none;
}

.ncm-page .ni-done {
	text-align: center;
	padding: 24px 0;
}

.ncm-page .ni-done__icon {
	display: grid;
	place-items: center;
	width: 62px;
	height: 62px;
	margin: 0 auto 18px;
	border-radius: 50%;
	background: var(--ncm-green-soft);
	color: var(--ncm-green-deep);
}

.ncm-page .ni-done h3 {
	font-size: clamp(21px, 2.6vw, 28px);
	margin-bottom: 10px;
	color: var(--ncm-ink);
}

.ncm-page .ni-done > p {
	color: var(--ncm-ink-soft);
	max-width: 48ch;
	margin: 0 auto;
}

.ncm-page .ni-done__summary {
	margin: 26px auto 24px;
	max-width: 430px;
	text-align: left;
	background: var(--ncm-white);
	border: 1px solid var(--ncm-line);
	border-radius: var(--ncm-radius);
	padding: 18px 20px;
	font-size: 14px;
}

.ncm-page .ni-done__summary div {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 6px 0;
}

.ncm-page .ni-done__summary div + div {
	border-top: 1px solid var(--ncm-line);
}

.ncm-page .ni-done__summary span:first-child {
	color: var(--ncm-ink-soft);
}

.ncm-page .ni-done__summary span:last-child {
	font-weight: 600;
	text-align: right;
	color: var(--ncm-ink);
}

.ncm-page .ni-loading {
	display: flex;
	align-items: center;
	gap: 12px;
	color: var(--ncm-ink-soft);
	padding: 26px 0;
	font-size: 14.5px;
}

.ncm-page .ni-loading::before {
	content: "";
	width: 18px;
	height: 18px;
	flex: none;
	border: 2px solid var(--ncm-line);
	border-top-color: var(--ncm-green);
	border-radius: 50%;
	animation: ncm-spin .7s linear infinite;
}

@keyframes ncm-spin {
	to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {

	.ncm-page .ni-loading::before {
		animation: none;
	}
}

/* ------------------------------------------------------- vaste balk mobiel */

.ncm-page .sticky-cta {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 95;
	background: rgba(255, 255, 255, .96);
	backdrop-filter: blur(12px);
	border-top: 1px solid var(--ncm-line);
	box-shadow: 0 -6px 24px rgba(20, 20, 20, .08);
	padding: 12px var(--ncm-gutter);
	display: flex;
	gap: 10px;
	transform: translateY(110%);
	transition: transform .35s var(--ncm-ease);
}

.ncm-page .sticky-cta.is-visible {
	transform: translateY(0);
}

.ncm-page .sticky-cta .btn {
	flex: 1;
	padding: 14px 10px;
	font-size: 14.5px;
}

@media (min-width: 901px) {

	.ncm-page .sticky-cta {
		display: none;
	}
}
