/* Noor Events — huisstijl en componenten
   Tokens uit het bouwpakket; Elementor-instellingen per element blijven altijd leidend. */

:root {
	--noor-ivory: #faf7f2;
	--noor-cream: #f1e9df;
	--noor-sand: #e7dccd;
	--noor-white: #fffdf9;
	--noor-taupe: #746253;
	--noor-gold: #b49a6d;
	--noor-gold-light: #d6c3a0;
	--noor-gold-dark: #8c7550;
	--noor-brown: #382a20;
	--noor-brown-deep: #2b2018;
	--noor-text: #30271f;
	--noor-muted: #675d53;
	--noor-line: #dacebd;
	--noor-content: 1240px;
	--noor-section-space: clamp(3.5rem, 7vw, 7rem);
	--noor-block-gap: clamp(2.5rem, 5vw, 4.5rem);
	--noor-card-gap: clamp(1.25rem, 2.3vw, 2rem);
	--noor-side: clamp(1.25rem, 4vw, 4rem);
	--noor-radius: 6px;
	--noor-font-heading: "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--noor-font-body: Inter, "Helvetica Neue", Arial, sans-serif;
	--noor-shadow: 0 18px 50px rgba(56, 42, 32, .10);
	--noor-ease: cubic-bezier(.2, .7, .2, 1);
	--noor-header-h: 84px;
}

/* ---------- Basis ---------- */

body.noor-site {
	background: var(--noor-ivory);
	color: var(--noor-text);
	font-family: var(--noor-font-body);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}
.noor-site ::selection { background: var(--noor-gold-light); color: var(--noor-brown); }
.noor-site a { color: var(--noor-gold-dark); text-underline-offset: .18em; }
.noor-site a:hover { color: var(--noor-brown); }
.noor-site :focus-visible { outline: 2px solid var(--noor-gold-dark); outline-offset: 3px; border-radius: 2px; }
.noor-site img { max-width: 100%; height: auto; }
.noor-site .elementor-widget-text-editor p:last-child,
.noor-site .elementor-widget-text-editor ul:last-child { margin-bottom: 0; }
.noor-site h1, .noor-site h2, .noor-site h3, .noor-site h4 { font-family: var(--noor-font-heading); font-weight: 500; color: var(--noor-brown); letter-spacing: -.005em; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.noor-skip { position: absolute; left: 12px; top: -60px; z-index: 10000; background: var(--noor-brown); color: #fff !important; padding: 12px 18px; text-decoration: none; transition: top .2s; }
.noor-skip:focus { top: 12px; }
.noor-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Secties en raster ---------- */

.e-con.noor-section {
	--padding-top: var(--noor-section-space);
	--padding-bottom: var(--noor-section-space);
	--padding-left: var(--noor-side);
	--padding-right: var(--noor-side);
	--content-width: var(--noor-content);
}
.e-con.noor-section > .e-con-inner { gap: var(--noor-block-gap); }
.e-con.noor-section.noor-section--compact { --padding-top: clamp(2.5rem, 4vw, 3.5rem); --padding-bottom: clamp(2.5rem, 4vw, 3.5rem); }
.e-con.noor-section.noor-section--top-tight { --padding-top: clamp(2rem, 4vw, 3.5rem); }
.e-con.noor-section--white { --background-color: var(--noor-white); background-color: var(--noor-white); }
.e-con.noor-section--ivory { background-color: var(--noor-ivory); }
.e-con.noor-section--cream { background-color: var(--noor-cream); }
.noor-auto-hide:has(.elementor-shortcode:empty):not(:has(.elementor-shortcode:not(:empty))) { display: none !important; }
.noor-auto-hide.noor-is-empty { display: none !important; }

.e-con.noor-narrow { --content-width: 820px; max-width: 820px; margin-inline: auto; width: 100%; }
.e-con.noor-center { text-align: center; align-items: center; }
.e-con.noor-head { --gap: 14px; --row-gap: 14px; max-width: 760px; }
.e-con.noor-head--center { margin-inline: auto; text-align: center; align-items: center; }
.e-con.noor-head-row { --row-gap: 20px; }
.e-con.noor-stack { --row-gap: var(--noor-block-gap); }
.e-con.noor-split { --column-gap: clamp(2.5rem, 6vw, 5rem); }
.e-con.noor-textblock { --row-gap: 16px; }

.noor-el-eyebrow .elementor-heading-title,
.noor-eyebrow {
	font-family: var(--noor-font-body) !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	letter-spacing: .22em !important;
	text-transform: uppercase;
	color: var(--noor-gold-dark) !important;
	line-height: 1.5 !important;
	margin: 0;
}
.noor-eyebrow--small { font-size: 11px !important; margin-bottom: 6px; }
.elementor .noor-el-title .elementor-heading-title { font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1.1; }
.elementor .noor-el-h1 .elementor-heading-title { font-size: clamp(2.4rem, 5.4vw, 4.4rem); line-height: 1.04; letter-spacing: -.01em; }
.elementor .noor-el-display .elementor-heading-title { font-size: clamp(2.7rem, 6.4vw, 5.25rem); line-height: 1; }
.elementor .noor-el-card-title .elementor-heading-title { font-size: clamp(1.45rem, 2vw, 1.75rem); line-height: 1.2; }
.noor-el-lead, .noor-lead { font-size: clamp(1.02rem, 1.25vw, 1.15rem); line-height: 1.75; color: var(--noor-muted); max-width: 62ch; }
.noor-el-prose { max-width: 68ch; }
.noor-el-prose h2 { font-size: clamp(1.6rem, 2.4vw, 2rem); margin: 2.2rem 0 .7rem; }
.noor-el-prose h2:first-child { margin-top: 0; }
.noor-h2 { font-family: var(--noor-font-heading); font-weight: 500; font-size: clamp(1.9rem, 3.2vw, 2.7rem); line-height: 1.12; margin: 0 0 1.25rem; color: var(--noor-brown); }
.noor-h3 { font-family: var(--noor-font-heading); font-weight: 500; font-size: clamp(1.45rem, 2.2vw, 1.85rem); line-height: 1.2; margin: 0 0 1rem; color: var(--noor-brown); }
.noor-h4 { font-family: var(--noor-font-heading); font-weight: 600; font-size: 1.3rem; margin: 1.6rem 0 .7rem; color: var(--noor-brown); }
.noor-muted { color: var(--noor-muted); }
.noor-note { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.6; color: var(--noor-muted); margin: 18px 0 0; }
.noor-note .noor-icon { flex: 0 0 18px; width: 18px; height: 18px; margin-top: 2px; color: var(--noor-gold-dark); }
.noor-note--center { justify-content: center; text-align: left; max-width: 720px; margin-inline: auto; }
.noor-icon { width: 24px; height: 24px; flex: 0 0 auto; }

/* ---------- Knoppen ---------- */

.noor-btn,
.elementor .noor-el-btn .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 50px;
	padding: 14px 26px;
	border: 1px solid transparent;
	border-radius: 2px;
	font-family: var(--noor-font-body);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .25s var(--noor-ease), color .25s var(--noor-ease), border-color .25s var(--noor-ease), transform .25s var(--noor-ease);
}
.noor-btn--primary,
.elementor .noor-el-btn--primary .elementor-button { background: var(--noor-gold); color: var(--noor-brown-deep); border-color: var(--noor-gold); }
.noor-btn--primary:hover,
.elementor .noor-el-btn--primary .elementor-button:hover { background: var(--noor-brown); border-color: var(--noor-brown); color: #fff; }
.noor-btn--outline,
.elementor .noor-el-btn--outline .elementor-button { background: transparent; color: var(--noor-brown); border-color: var(--noor-brown); }
.noor-btn--outline:hover,
.elementor .noor-el-btn--outline .elementor-button:hover { background: var(--noor-brown); color: #fff; }
.noor-btn--outline-light,
.elementor .noor-el-btn--outline-light .elementor-button { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .7); }
.noor-btn--outline-light:hover,
.elementor .noor-el-btn--outline-light .elementor-button:hover { background: #fff; color: var(--noor-brown); border-color: #fff; }
.noor-btn--ghost { background: var(--noor-white); color: var(--noor-brown); border-color: var(--noor-line); }
.noor-btn--ghost:hover { border-color: var(--noor-brown); color: var(--noor-brown); }
.noor-btn--lg { min-height: 56px; padding: 16px 34px; }
.noor-btn .noor-btn__icon { width: 18px; height: 18px; transition: transform .25s var(--noor-ease); }
.noor-btn:hover .noor-btn__icon { transform: translateX(3px); }
.noor-btn .noor-btn__lead { width: 20px; height: 20px; }
.elementor .noor-el-btn--primary .elementor-button-text::after,
.elementor .noor-el-btn--outline .elementor-button-text::after,
.elementor .noor-el-btn--outline-light .elementor-button-text::after,
.elementor .noor-el-btn--link .elementor-button-text::after { content: "→"; display: inline-block; margin-left: 10px; font-weight: 400; transition: transform .25s var(--noor-ease); }
.elementor .noor-el-btn .elementor-button:hover .elementor-button-text::after { transform: translateX(3px); }
.elementor .noor-el-btn--link .elementor-button {
	background: none; border: 0; padding: 6px 0; min-height: 44px; color: var(--noor-gold-dark); font-size: 12px;
}
.elementor .noor-el-btn--link .elementor-button:hover { color: var(--noor-brown); background: none; }
.e-con.noor-buttons { --row-gap: 12px; --column-gap: 14px; margin-top: 8px; }
.e-con.noor-buttons--end { justify-content: flex-end; }
.e-con.noor-buttons--center { justify-content: center; }
.noor-actions { display: flex; flex-wrap: wrap; gap: 12px 14px; align-items: center; margin-top: 26px; }
.noor-actions--center { justify-content: center; }
.noor-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--noor-gold-dark) !important; text-decoration: none; }
.noor-link .noor-icon { width: 16px; height: 16px; transition: transform .25s var(--noor-ease); }
.noor-link:hover { color: var(--noor-brown) !important; }
.noor-link:hover .noor-icon { transform: translateX(3px); }
.noor-textbtn { background: none; border: 0; padding: 10px 0; min-height: 44px; color: var(--noor-muted); font: 500 14px var(--noor-font-body); text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
.noor-textbtn:hover { color: var(--noor-brown); }

/* ---------- Header ---------- */

.e-con.noor-topbar-wrap {
	background: var(--noor-brown);
	color: var(--noor-sand);
	--padding-top: 7px; --padding-bottom: 7px;
	--padding-left: var(--noor-side); --padding-right: var(--noor-side);
	--content-width: var(--noor-content);
	font-size: 12.5px;
	letter-spacing: .02em;
}
.noor-topbar { display: flex; gap: 22px; align-items: center; }
.noor-topbar__item, .noor-topbar-link { display: inline-flex; gap: 8px; align-items: center; color: var(--noor-sand) !important; text-decoration: none; white-space: nowrap; }
.noor-topbar .noor-icon, .noor-topbar-link .noor-icon { width: 16px; height: 16px; color: var(--noor-gold-light); }
.noor-topbar-link:hover { color: #fff !important; }

.e-con.noor-header {
	background: rgba(250, 247, 242, .97);
	--padding-top: 14px; --padding-bottom: 14px;
	--padding-left: var(--noor-side); --padding-right: var(--noor-side);
	--content-width: var(--noor-content);
	border-bottom: 1px solid var(--noor-line);
	z-index: 50;
	transition: box-shadow .3s var(--noor-ease), background-color .3s;
	-webkit-backdrop-filter: saturate(1.2) blur(8px);
	backdrop-filter: saturate(1.2) blur(8px);
}
.e-con.noor-header.elementor-sticky--effects { box-shadow: 0 10px 30px rgba(56, 42, 32, .08); }
.noor-header .noor-logo img { display: block; width: 196px; height: auto; }
.e-con.noor-header-actions { --width: auto; width: auto; flex: 0 0 auto; }
.noor-header .noor-el-btn .elementor-button { min-height: 46px; padding: 12px 20px; font-size: 12px; }
.noor-header .noor-el-btn .elementor-button-text::after { display: none; }

.noor-nav .elementor-nav-menu--main .elementor-item {
	font-family: var(--noor-font-body);
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--noor-text);
	padding: 14px 13px;
	min-height: 44px;
}
.noor-nav .elementor-nav-menu--main .elementor-item:hover,
.noor-nav .elementor-nav-menu--main .elementor-item.elementor-item-active,
.noor-nav .elementor-nav-menu--main .current-menu-ancestor > .elementor-item { color: var(--noor-gold-dark); }
.noor-nav .elementor-nav-menu--main .elementor-item::after { background-color: var(--noor-gold) !important; height: 1px !important; bottom: 6px !important; left: 13px !important; right: 13px !important; }
.noor-nav .elementor-nav-menu--main .current-menu-ancestor > .elementor-item::after { opacity: 1; }
.noor-nav .elementor-nav-menu--main .noor-menu-cta { display: none; }
.noor-nav .elementor-nav-menu--main .sub-menu {
	background: var(--noor-white);
	border: 1px solid var(--noor-line);
	box-shadow: var(--noor-shadow);
	padding: 10px 0;
	min-width: 250px !important;
	border-radius: 2px;
}
.noor-nav .elementor-nav-menu--main .sub-menu .elementor-sub-item {
	font-size: 15px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--noor-text); padding: 11px 22px; border: 0;
}
.noor-nav .elementor-nav-menu--main .sub-menu .elementor-sub-item:hover,
.noor-nav .elementor-nav-menu--main .sub-menu .elementor-item-active { background: var(--noor-cream); color: var(--noor-brown); }
.noor-nav .elementor-menu-toggle {
	width: 46px; height: 46px; border-radius: 2px; border: 1px solid var(--noor-line);
	background: var(--noor-white) !important; color: var(--noor-brown) !important; font-size: 22px;
}
.noor-nav .elementor-menu-toggle:hover { border-color: var(--noor-brown); }
.noor-nav .elementor-menu-toggle svg { fill: var(--noor-brown); width: 22px; height: 22px; }
.noor-nav .elementor-nav-menu--dropdown {
	background: var(--noor-ivory) !important;
	border-top: 1px solid var(--noor-line);
	box-shadow: 0 30px 60px rgba(43, 32, 24, .18);
	max-height: calc(100vh - 140px);
	max-height: calc(100dvh - 140px);
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 10px 0 18px;
}
.noor-nav .elementor-nav-menu--dropdown .elementor-item,
.noor-nav .elementor-nav-menu--dropdown .elementor-sub-item {
	font-family: var(--noor-font-heading);
	font-size: 22px !important;
	font-weight: 500;
	color: var(--noor-brown) !important;
	background: transparent !important;
	padding: 13px var(--noor-side) !important;
	border-bottom: 1px solid rgba(218, 206, 189, .6);
	min-height: 52px;
	justify-content: space-between;
}
.noor-nav .elementor-nav-menu--dropdown .sub-menu .elementor-sub-item {
	font-family: var(--noor-font-body); font-size: 15px !important; padding-left: calc(var(--noor-side) + 16px) !important; color: var(--noor-muted) !important; min-height: 46px;
}
.noor-nav .elementor-nav-menu--dropdown .elementor-item-active,
.noor-nav .elementor-nav-menu--dropdown .elementor-item:hover { color: var(--noor-gold-dark) !important; }
.noor-nav .elementor-nav-menu--dropdown .elementor-item-active { box-shadow: inset 3px 0 0 var(--noor-gold); }
.noor-nav .elementor-nav-menu--dropdown .noor-menu-cta > a {
	margin: 18px var(--noor-side) 4px;
	background: var(--noor-gold) !important;
	color: var(--noor-brown-deep) !important;
	font-family: var(--noor-font-body) !important;
	font-size: 13px !important;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	justify-content: center !important;
	border: 0;
	border-radius: 2px;
	padding: 16px 20px !important;
}

.noor-wishcount { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; color: var(--noor-brown) !important; border: 1px solid transparent; transition: border-color .2s; }
.noor-wishcount:hover { border-color: var(--noor-line); }
.noor-wishcount .noor-icon { width: 22px; height: 22px; }
.noor-wishcount__n { position: absolute; top: 4px; right: 3px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--noor-gold); color: var(--noor-brown-deep); font-size: 11px; font-weight: 700; line-height: 18px; text-align: center; }
.noor-wishcount__n[data-count="0"] { display: none; }

/* ---------- Hero ---------- */

.e-con.noor-hero {
	--padding-top: clamp(4rem, 9vw, 8rem);
	--padding-bottom: clamp(4rem, 9vw, 8rem);
	position: relative;
	color: #fff;
	background-color: var(--noor-brown);
	background-image:
		radial-gradient(ellipse at 78% 30%, rgba(214, 195, 160, .38), transparent 55%),
		radial-gradient(ellipse at 60% 90%, rgba(180, 154, 109, .28), transparent 60%),
		linear-gradient(120deg, #2b2018 0%, #4a3829 48%, #7a6347 100%);
	background-size: cover;
	background-position: center;
	overflow: hidden;
	isolation: isolate;
}
.e-con.noor-hero::before,
.e-con.noor-page-hero--dark::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(90deg, rgba(36, 26, 19, .82) 0%, rgba(36, 26, 19, .55) 45%, rgba(36, 26, 19, .12) 100%);
	pointer-events: none;
}
.e-con.noor-hero::after,
.e-con.noor-page-hero--dark::after {
	content: "";
	position: absolute;
	right: -4%;
	bottom: 0;
	width: min(56vw, 760px);
	aspect-ratio: 1.15;
	z-index: -1;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 350' fill='none' stroke='%23d6c3a0' stroke-width='1.1'%3E%3Cpath d='M40 350V170C40 95 120 40 200 10c80 30 160 85 160 160v180' stroke-opacity='.45'/%3E%3Cpath d='M80 350V180c0-55 60-100 120-125 60 25 120 70 120 125v170' stroke-opacity='.35'/%3E%3Cpath d='M120 350V195c0-35 40-68 80-85 40 17 80 50 80 85v155' stroke-opacity='.28'/%3E%3C/svg%3E") no-repeat right bottom / contain;
	opacity: .9;
	pointer-events: none;
}
.noor-hero .noor-hero__text { max-width: 640px; --row-gap: 22px; }
.noor-hero .elementor-heading-title,
.noor-page-hero--dark .elementor-heading-title { color: #fff !important; }
.noor-hero .noor-el-eyebrow .elementor-heading-title,
.noor-page-hero--dark .noor-el-eyebrow .elementor-heading-title,
.noor-page-hero--dark .noor-eyebrow { color: var(--noor-gold-light) !important; }
.noor-hero .noor-el-lead,
.noor-page-hero--dark .noor-el-lead,
.noor-page-hero--dark .noor-lead { color: rgba(255, 255, 255, .86); }

.e-con.noor-page-hero {
	--padding-top: clamp(3rem, 7vw, 6rem);
	--padding-bottom: clamp(3rem, 7vw, 6rem);
	position: relative;
}
.e-con.noor-page-hero--dark {
	color: #fff;
	background-color: var(--noor-brown);
	background-image:
		radial-gradient(ellipse at 85% 20%, rgba(214, 195, 160, .32), transparent 55%),
		linear-gradient(120deg, #2b2018 0%, #4a3829 55%, #6d573f 100%);
	background-size: cover;
	background-position: center;
	overflow: hidden;
	isolation: isolate;
	min-height: 420px;
	justify-content: flex-end;
}
.noor-page-hero__text { --row-gap: 18px; max-width: 760px; }
.e-con.noor-page-hero--light { background: var(--noor-cream); }
.e-con.noor-page-hero--light .noor-page-hero__media img { aspect-ratio: 4 / 3.4; }

/* ---------- Kruimelpad ---------- */

.noor-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0 0 6px; padding: 0; font-size: 13px; color: var(--noor-muted); }
.noor-breadcrumbs li + li::before { content: "/"; margin-right: 6px; opacity: .55; }
.noor-breadcrumbs a { color: var(--noor-muted) !important; text-decoration: none; }
.noor-breadcrumbs a:hover { color: var(--noor-brown) !important; text-decoration: underline; }
.noor-breadcrumbs [aria-current] { color: var(--noor-brown); }
.noor-breadcrumbs--light ol, .noor-breadcrumbs--light a, .noor-breadcrumbs--light [aria-current] { color: rgba(255, 255, 255, .78) !important; }
.noor-breadcrumbs--light a:hover { color: #fff !important; }

/* ---------- Beelden en bogen ---------- */

.noor-el-img img { display: block; width: 100%; height: auto; object-fit: cover; }
.noor-arch-img img { aspect-ratio: 3 / 4; border-radius: 999px 999px 4px 4px; }
.noor-arch-img--wide img { aspect-ratio: 4 / 4.4; }
.noor-split-img img { aspect-ratio: 5 / 4; border-radius: 2px; }
.noor-split-img--soft img { border-radius: 260px 260px 2px 2px; aspect-ratio: 4 / 4.2; }
.noor-media { position: relative; overflow: hidden; background: var(--noor-sand); }
.noor-media__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.noor-media--placeholder {
	background:
		radial-gradient(ellipse at 50% 30%, rgba(255, 255, 255, .45), transparent 60%),
		linear-gradient(135deg, #efe6da 0%, #d9c8b1 100%);
}
.noor-media__mark {
	position: absolute; inset: 0;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 132 132' fill='none' stroke='%23b49a6d' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M24 121V65C24 44 44 28 66 17c22 11 42 27 42 48v56M37 121V66c0-15 14-26 29-34 15 8 29 19 29 34v55'/%3E%3Cpath d='M19 121h94'/%3E%3C/svg%3E") no-repeat center / 34%;
	opacity: .55;
}
.noor-media--arch { aspect-ratio: 4 / 4.6; border-radius: 999px 999px 4px 4px; }
.noor-media--portrait { aspect-ratio: 4 / 5; }
.noor-media--landscape { aspect-ratio: 16 / 10; }
.noor-media--wide { aspect-ratio: 21 / 9; border-radius: 4px; }

.e-con.noor-arches {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: clamp(14px, 2vw, 28px);
	align-items: end;
}
.e-con.noor-arch-link {
	--row-gap: 10px;
	text-align: center;
	align-items: center;
	text-decoration: none !important;
	color: inherit !important;
}
.noor-arch-link .noor-arch-img { width: 100%; }
.noor-arch-link .noor-arch-img img { transition: transform .6s var(--noor-ease), filter .4s; }
.noor-arch-link:hover .noor-arch-img img { transform: translateY(-4px); filter: saturate(1.08); }
.noor-arch-link:nth-child(2) .noor-arch-img img,
.noor-arch-link:nth-child(4) .noor-arch-img img { aspect-ratio: 3 / 3.6; }
.noor-arch-link__label .elementor-heading-title { font-family: var(--noor-font-body) !important; font-size: 12.5px !important; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--noor-brown) !important; margin-top: 10px; }
.noor-arch-link__sub { font-size: 13.5px; color: var(--noor-muted); line-height: 1.5; }
.noor-arch-link:hover .noor-arch-link__label .elementor-heading-title { color: var(--noor-gold-dark) !important; }

/* ---------- Kaarten, tegels, stappen ---------- */

.e-con.noor-cards-grid { gap: var(--noor-card-gap); }
.e-con.noor-card {
	background: var(--noor-white);
	border: 1px solid rgba(218, 206, 189, .7);
	--row-gap: 0;
	overflow: hidden;
	transition: box-shadow .35s var(--noor-ease), transform .35s var(--noor-ease);
}
.e-con.noor-section--white .e-con.noor-card { background: var(--noor-ivory); }
.e-con.noor-card:hover { box-shadow: var(--noor-shadow); transform: translateY(-3px); }
.noor-card__img img { aspect-ratio: 16 / 11; }
.e-con.noor-card__body { --padding-top: 26px; --padding-bottom: 22px; --padding-left: 28px; --padding-right: 28px; --row-gap: 10px; flex-grow: 1; }
.noor-card__body .elementor-widget-text-editor { color: var(--noor-muted); font-size: 15.5px; line-height: 1.65; }
.e-con.noor-tile {
	--padding-top: 32px; --padding-bottom: 28px; --padding-left: 30px; --padding-right: 30px;
	--row-gap: 10px;
	background: var(--noor-white);
	border-top: 2px solid var(--noor-gold);
	box-shadow: 0 1px 0 var(--noor-line);
}
.e-con.noor-section--white .e-con.noor-tile { background: var(--noor-ivory); }
.noor-tile .elementor-widget-text-editor { color: var(--noor-muted); font-size: 15.5px; }
.e-con.noor-steps-grid { gap: var(--noor-card-gap); counter-reset: noor-step; }
.e-con.noor-step { --row-gap: 10px; padding-top: 22px; border-top: 1px solid var(--noor-line); }
.noor-step__num { font-family: var(--noor-font-heading); font-size: 2.6rem; line-height: 1; color: var(--noor-gold); margin: 0 0 6px; }
.noor-step .elementor-widget-text-editor { color: var(--noor-muted); }
.e-con.noor-callout { border-left: 2px solid var(--noor-gold); --padding-left: 22px; --padding-top: 6px; --padding-bottom: 6px; max-width: 860px; color: var(--noor-muted); }
.e-con.noor-routes { gap: var(--noor-card-gap); }
.e-con.noor-route-card { --padding-top: 34px; --padding-bottom: 32px; --padding-left: 32px; --padding-right: 32px; --row-gap: 12px; background: var(--noor-ivory); border: 1px solid var(--noor-line); }

.noor-pills { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 0; padding: 0; }
.noor-pills--center { justify-content: center; }
.noor-pills li, .noor-pills a { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 20px; border: 1px solid var(--noor-line); border-radius: 999px; background: var(--noor-white); font-size: 15px; color: var(--noor-text); text-decoration: none; }
.noor-pills li:has(a) { padding: 0; border: 0; background: none; }
.noor-pills a:hover { border-color: var(--noor-gold); color: var(--noor-brown); }

/* ---------- Split en zalenlijst ---------- */

.e-con.noor-split__text { --row-gap: 18px; }
.noor-roomlist { list-style: none; margin: 8px 0 0; padding: 0; border-top: 1px solid var(--noor-line); }
.noor-roomlist li { border-bottom: 1px solid var(--noor-line); }
.noor-roomlist a { display: grid; grid-template-columns: 1fr auto 20px; align-items: center; gap: 16px; padding: 16px 4px; min-height: 56px; text-decoration: none; color: var(--noor-text) !important; transition: padding .25s var(--noor-ease), background-color .25s; }
.noor-roomlist a:hover { background: rgba(255, 255, 255, .55); padding-left: 12px; }
.noor-roomlist__name { font-family: var(--noor-font-heading); font-size: 1.45rem; color: var(--noor-brown); }
.noor-roomlist__cap { font-size: 14px; color: var(--noor-muted); white-space: nowrap; }
.noor-roomlist__icon { width: 18px; height: 18px; color: var(--noor-gold-dark); }

/* ---------- Voorzieningen ---------- */

.noor-facilities { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0; list-style: none; margin: 0; padding: 0; }
.noor-facilities li { display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 18px 16px; text-align: center; font-size: 14.5px; line-height: 1.45; color: var(--noor-text); border-left: 1px solid var(--noor-line); }
.noor-facilities li:first-child { border-left: 0; }
.noor-facilities .noor-icon { width: 34px; height: 34px; color: var(--noor-gold-dark); stroke-width: 1.2; }
.noor-facilities-col .noor-facilities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.noor-facilities-col .noor-facilities li { flex-direction: row; text-align: left; border-left: 0; border-bottom: 1px solid var(--noor-line); padding: 16px 0; }

/* ---------- Foto-CTA en CTA-band ---------- */

.e-con.noor-photo-cta,
.e-con.noor-cta-band {
	--padding-top: clamp(3.5rem, 6vw, 5.5rem);
	--padding-bottom: clamp(3.5rem, 6vw, 5.5rem);
	color: #fff;
	background-color: var(--noor-brown);
	background-image:
		radial-gradient(ellipse at 15% 50%, rgba(214, 195, 160, .25), transparent 55%),
		linear-gradient(100deg, #2b2018 0%, #4a3829 60%, #6d573f 100%);
	background-size: cover;
	background-position: center;
	position: relative;
	isolation: isolate;
}
.e-con.noor-photo-cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(36, 26, 19, .75), rgba(36, 26, 19, .35)); }
.noor-photo-cta .elementor-heading-title,
.noor-cta-band .elementor-heading-title,
.noor-cta-band .noor-h2 { color: #fff !important; }
.noor-photo-cta .noor-el-lead,
.noor-cta-band .noor-el-lead,
.noor-cta-band p { color: rgba(255, 255, 255, .84); }
.noor-cta-band .noor-el-eyebrow .elementor-heading-title { color: var(--noor-gold-light) !important; }
.noor-cta-band .noor-btn--ghost, .noor-photo-cta .noor-btn--ghost { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .6); }
.noor-cta-band .noor-btn--ghost:hover { background: #fff; color: var(--noor-brown); }
.noor-cta-band .noor-btn--outline { color: #fff; border-color: rgba(255, 255, 255, .7); }
.noor-cta-band .noor-btn--outline:hover { background: #fff; color: var(--noor-brown); }
.noor-cta-inline { display: grid; grid-template-columns: 1.4fr 1fr; gap: 32px 64px; align-items: center; }
.noor-cta-inline .noor-actions { justify-content: flex-end; margin-top: 0; }

/* ---------- FAQ ---------- */

.noor-faq__list { border-top: 1px solid var(--noor-line); }
.noor-faq__item { border-bottom: 1px solid var(--noor-line); }
.noor-faq__item summary { display: flex; justify-content: space-between; align-items: center; gap: 24px; min-height: 64px; padding: 18px 2px; cursor: pointer; list-style: none; font-family: var(--noor-font-heading); font-size: 1.35rem; font-weight: 500; color: var(--noor-brown); }
.noor-faq__item summary::-webkit-details-marker { display: none; }
.noor-faq__icon { position: relative; flex: 0 0 22px; width: 22px; height: 22px; border: 1px solid var(--noor-gold); border-radius: 50%; }
.noor-faq__icon::before, .noor-faq__icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 10px; height: 1px; background: var(--noor-gold-dark); transform: translate(-50%, -50%); transition: transform .25s var(--noor-ease); }
.noor-faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.noor-faq__item[open] .noor-faq__icon::after { transform: translate(-50%, -50%) rotate(0); }
.noor-faq__answer { padding: 0 2px 22px; color: var(--noor-muted); max-width: 70ch; }
.noor-faq__answer p { margin: 0; }

/* ---------- Zalen ---------- */

.noor-cards { display: grid; gap: var(--noor-card-gap); }
.noor-cards--rooms { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.noor-card-room { display: flex; flex-direction: column; gap: 18px; }
.noor-card-room__media { display: block; }
.noor-card-room__media .noor-media { transition: transform .6s var(--noor-ease); }
.noor-card-room:hover .noor-card-room__media .noor-media { transform: translateY(-4px); }
.noor-card-room__title { font-family: var(--noor-font-heading); font-size: 1.75rem; margin: 0 0 8px; }
.noor-card-room__title a { color: var(--noor-brown) !important; text-decoration: none; }
.noor-card-room__text { color: var(--noor-muted); font-size: 15px; line-height: 1.65; margin: 10px 0 4px; }
.noor-chip { display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 7px 14px 7px 10px; border: 1px solid var(--noor-line); border-radius: 999px; background: var(--noor-white); font-size: 14px; font-weight: 500; color: var(--noor-text); }
.noor-chip .noor-icon { width: 18px; height: 18px; color: var(--noor-gold-dark); }
.noor-chip__note { font-weight: 400; color: var(--noor-muted); }
.noor-chip--light { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .3); color: #fff; margin-top: 18px; }
.noor-chip--light .noor-chip__note { color: rgba(255, 255, 255, .72); }
.noor-chip--light .noor-icon { color: var(--noor-gold-light); }

.noor-combis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--noor-card-gap); max-width: 900px; margin-inline: auto; }
.noor-combi { background: var(--noor-white); border: 1px solid var(--noor-line); padding: 34px 32px; text-align: center; }
.noor-combi__value { font-family: var(--noor-font-heading); font-size: clamp(2.6rem, 5vw, 3.6rem); line-height: 1; color: var(--noor-brown); margin: 0 0 10px; }
.noor-combi__label { color: var(--noor-muted); margin: 0; }
.noor-combi__label strong { color: var(--noor-text); font-weight: 600; }

.noor-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--noor-line); background: var(--noor-white); }
.noor-compare { width: 100%; min-width: 720px; border-collapse: collapse; font-size: 15px; }
.noor-compare th, .noor-compare td { padding: 16px 18px; text-align: left; border-bottom: 1px solid var(--noor-line); vertical-align: top; }
.noor-compare thead th { background: var(--noor-cream); font-family: var(--noor-font-heading); font-size: 1.3rem; font-weight: 500; }
.noor-compare thead th a { color: var(--noor-brown) !important; text-decoration: none; }
.noor-compare tbody th { font-weight: 600; color: var(--noor-muted); font-size: 13px; letter-spacing: .06em; text-transform: uppercase; width: 22%; }
.noor-compare tr:last-child > * { border-bottom: 0; }

.noor-detail-hero { max-width: 820px; }
.noor-detail-hero__title { font-size: clamp(2.6rem, 5.6vw, 4.6rem); line-height: 1.02; margin: 10px 0 18px; color: #fff !important; }
.noor-gallery { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-auto-rows: minmax(160px, 22vw); gap: 14px; max-height: 640px; }
.noor-gallery__item { position: relative; display: block; overflow: hidden; background: var(--noor-sand); }
.noor-gallery__item.is-lead { grid-row: span 2; }
.noor-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--noor-ease); }
.noor-gallery__item:hover img { transform: scale(1.03); }
.noor-gallery--empty { display: block; max-height: none; }

.noor-facts { background: var(--noor-ivory); border: 1px solid var(--noor-line); padding: clamp(24px, 3vw, 36px); position: sticky; top: calc(var(--noor-header-h) + 24px); }
.noor-dl { margin: 0; }
.noor-dl > div { display: grid; grid-template-columns: 38% 1fr; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--noor-line); }
.noor-dl > div:first-child { border-top: 1px solid var(--noor-line); }
.noor-dl dt { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--noor-muted); padding-top: 3px; }
.noor-dl dd { margin: 0; color: var(--noor-text); }
.noor-dl dd small { display: block; color: var(--noor-muted); font-size: 13px; margin-top: 4px; line-height: 1.5; }
.noor-dl--compact > div { padding: 11px 0; }
.noor-ticks { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.noor-ticks li { display: flex; gap: 12px; align-items: flex-start; font-size: 15.5px; }
.noor-ticks .noor-icon { width: 20px; height: 20px; color: var(--noor-gold-dark); margin-top: 2px; }
.noor-ticks--muted li { color: var(--noor-muted); }
.noor-prose { max-width: 68ch; }
.noor-prose h2 { font-size: clamp(1.6rem, 2.4vw, 2.1rem); margin: 0 0 .8rem; }
.noor-prose h2:not(:first-child) { margin-top: 2.2rem; }
.noor-prose p { color: var(--noor-text); }
.noor-split-lists { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.noor-route p { display: flex; gap: 10px; align-items: center; }
.noor-route .noor-icon { color: var(--noor-gold-dark); }

/* ---------- Catalogus en wensenlijst ---------- */

.noor-wishbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 24px; padding: 14px 22px; margin-bottom: 28px; background: var(--noor-white); border: 1px solid var(--noor-line); }
.noor-wishbar > span { display: inline-flex; gap: 10px; align-items: center; color: var(--noor-muted); }
.noor-wishbar .noor-icon { color: var(--noor-gold-dark); }
.noor-filters-front { display: flex; flex-wrap: wrap; gap: 14px 18px; align-items: flex-end; margin-bottom: 18px; }
.noor-search { position: relative; flex: 1 1 260px; }
.noor-search .noor-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; color: var(--noor-muted); pointer-events: none; }
.noor-search input { width: 100%; min-height: 50px; padding: 12px 16px 12px 44px !important; }
.noor-select { display: flex; flex-direction: column; gap: 6px; flex: 0 1 220px; }
.noor-select label { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--noor-muted); }
.noor-reset { background: none; border: 0; min-height: 50px; padding: 0 6px; color: var(--noor-gold-dark); font: 600 13px var(--noor-font-body); text-decoration: underline; cursor: pointer; }
.noor-results { font-size: 14px; color: var(--noor-muted); margin: 0 0 18px; }
.noor-cards--decor { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.noor-card-decor { position: relative; display: flex; flex-direction: column; background: var(--noor-white); border: 1px solid rgba(218, 206, 189, .7); transition: box-shadow .3s var(--noor-ease); }
.noor-card-decor:hover { box-shadow: var(--noor-shadow); }
.noor-card-decor[hidden] { display: none; }
.noor-card-decor__body { padding: 18px 20px 22px; display: flex; flex-direction: column; gap: 6px; }
.noor-card-decor__title { font-family: var(--noor-font-heading); font-size: 1.45rem; margin: 0; line-height: 1.2; }
.noor-card-decor__title a { color: var(--noor-brown) !important; text-decoration: none; }
.noor-card-decor__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.noor-price { font-size: 14px; font-weight: 600; color: var(--noor-text); }
.noor-price--request { font-weight: 500; color: var(--noor-muted); font-style: italic; }
.noor-heart {
	position: absolute; top: 12px; right: 12px; z-index: 2;
	display: inline-flex; align-items: center; justify-content: center;
	width: 46px; height: 46px; border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, .9); background: rgba(255, 253, 249, .92);
	color: var(--noor-brown); cursor: pointer; box-shadow: 0 6px 18px rgba(43, 32, 24, .12);
	transition: transform .2s var(--noor-ease), background-color .2s, color .2s;
}
.noor-heart:hover { transform: scale(1.06); }
.noor-heart .noor-icon { width: 22px; height: 22px; }
.noor-heart[aria-pressed="true"] { background: var(--noor-brown); color: var(--noor-gold-light); border-color: var(--noor-brown); }
.noor-heart[aria-pressed="true"] .noor-icon { fill: currentColor; }
[data-noor-heart-wide][aria-pressed="true"] { background: var(--noor-brown); border-color: var(--noor-brown); color: #fff; }
[data-noor-heart-wide][aria-pressed="true"] .noor-icon { fill: currentColor; }

.noor-catgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 0; list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--noor-line); }
.noor-catgrid__item a { display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 22px 22px 20px 0; border-bottom: 1px solid var(--noor-line); text-decoration: none; color: inherit !important; transition: padding .25s var(--noor-ease); }
.noor-catgrid__item a:hover { padding-left: 10px; }
.noor-catgrid__name { font-family: var(--noor-font-heading); font-size: 1.45rem; color: var(--noor-brown); }
.noor-catgrid__desc { font-size: 14.5px; color: var(--noor-muted); line-height: 1.55; }
.noor-catgrid__meta { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 8px; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--noor-gold-dark); }
.noor-catgrid__meta .noor-icon { width: 16px; height: 16px; }

.noor-empty { text-align: center; padding: clamp(36px, 6vw, 64px) clamp(20px, 5vw, 64px); background: var(--noor-white); border: 1px solid var(--noor-line); }
.noor-empty p { color: var(--noor-muted); max-width: 58ch; margin-inline: auto; }
.noor-empty__mark { width: 64px; height: 64px; margin: 0 auto 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 132 132' fill='none' stroke='%23b49a6d' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M24 121V65C24 44 44 28 66 17c22 11 42 27 42 48v56M37 121V66c0-15 14-26 29-34 15 8 29 19 29 34v55'/%3E%3Cpath d='M47 113V66l37 45V65'/%3E%3Cpath d='M19 121h94'/%3E%3C/svg%3E") no-repeat center / contain; }

.noor-product { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(32px, 5vw, 72px); align-items: start; }
.noor-product__media .noor-gallery { grid-template-columns: 1fr 1fr; grid-auto-rows: minmax(140px, 18vw); }
.noor-product__title { font-size: clamp(2.3rem, 4.4vw, 3.6rem); line-height: 1.05; margin: 8px 0 14px; }
.noor-product__price { margin: 18px 0; font-size: 17px; }
.noor-product__wa { margin-top: 20px; color: var(--noor-muted); font-size: 15px; }

.noor-wishlist__loading { display: flex; gap: 12px; align-items: center; justify-content: center; padding: 40px; color: var(--noor-muted); }
.noor-wishlist__notice { padding: 14px 18px; margin-bottom: 18px; background: #fbf3e4; border-left: 3px solid var(--noor-gold); color: var(--noor-text); }
.noor-wishlist__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--noor-line); }
.noor-wishlist__item { display: grid; grid-template-columns: 84px 1fr auto; gap: 18px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--noor-line); }
.noor-wishlist__thumb { width: 84px; height: 84px; object-fit: cover; background: var(--noor-sand); display: block; }
.noor-wishlist__thumb--empty { background: linear-gradient(135deg, #efe6da, #d9c8b1); }
.noor-wishlist__title { font-family: var(--noor-font-heading); font-size: 1.4rem; color: var(--noor-brown) !important; text-decoration: none; }
.noor-wishlist__meta { display: block; font-size: 13.5px; color: var(--noor-muted); margin-top: 2px; }
.noor-wishlist__remove { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 12px; background: none; border: 1px solid var(--noor-line); color: var(--noor-muted); font: 500 13px var(--noor-font-body); cursor: pointer; border-radius: 2px; }
.noor-wishlist__remove:hover { border-color: var(--noor-brown); color: var(--noor-brown); }
.noor-wishlist__remove .noor-icon { width: 16px; height: 16px; }
.noor-wishlist__footer { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; margin-top: 26px; }
.noor-spinner { width: 22px; height: 22px; border: 2px solid var(--noor-line); border-top-color: var(--noor-gold-dark); border-radius: 50%; animation: noor-spin .9s linear infinite; }
@keyframes noor-spin { to { transform: rotate(360deg); } }

/* ---------- Formulieren ---------- */

.e-con.noor-form-card { background: var(--noor-white); border: 1px solid var(--noor-line); --padding-top: clamp(24px, 4vw, 48px); --padding-bottom: clamp(24px, 4vw, 48px); --padding-left: clamp(20px, 4vw, 48px); --padding-right: clamp(20px, 4vw, 48px); }
.noor-form { display: flex; flex-direction: column; gap: 8px; }
.noor-form__step { border: 0; margin: 0 0 18px; padding: 0 0 26px; border-bottom: 1px solid var(--noor-line); min-width: 0; }
.noor-form__step legend { display: flex; align-items: center; gap: 12px; padding: 0; margin-bottom: 20px; font-family: var(--noor-font-heading); font-size: 1.6rem; color: var(--noor-brown); }
.noor-form__num { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--noor-gold); font-family: var(--noor-font-body); font-size: 14px; font-weight: 600; color: var(--noor-gold-dark); }
.noor-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.noor-form__field { display: flex; flex-direction: column; gap: 7px; margin-bottom: 18px; min-width: 0; }
.noor-form__field[hidden] { display: none; }
.noor-form__field--half { max-width: calc(50% - 10px); }
.noor-form label, .noor-form__label { font-size: 14px; font-weight: 600; color: var(--noor-text); }
.noor-req { color: #9a4a2f; }
.noor-opt { font-weight: 400; color: var(--noor-muted); }
.noor-site .noor-form input[type="text"],
.noor-site .noor-form input[type="email"],
.noor-site .noor-form input[type="tel"],
.noor-site .noor-form input[type="number"],
.noor-site .noor-form input[type="date"],
.noor-site .noor-form select,
.noor-site .noor-form textarea,
.noor-site .noor-filters-front input,
.noor-site .noor-filters-front select {
	width: 100%;
	min-height: 50px;
	padding: 12px 15px;
	border: 1px solid #cfc1ad;
	border-radius: 3px;
	background: #fff;
	color: var(--noor-text);
	font: 400 16px/1.4 var(--noor-font-body);
	transition: border-color .2s, box-shadow .2s;
	box-shadow: none;
}
.noor-site .noor-form textarea { min-height: 130px; resize: vertical; }
.noor-site .noor-form input:focus,
.noor-site .noor-form select:focus,
.noor-site .noor-form textarea:focus,
.noor-site .noor-filters-front input:focus,
.noor-site .noor-filters-front select:focus { outline: none; border-color: var(--noor-gold-dark); box-shadow: 0 0 0 3px rgba(180, 154, 109, .25); }
.noor-form [aria-invalid="true"] { border-color: #9a4a2f !important; box-shadow: 0 0 0 3px rgba(154, 74, 47, .12) !important; }
.noor-form__error { margin: 0; font-size: 14px; color: #8a3f27; font-weight: 500; }
.noor-form__summary { padding: 18px 22px; margin-bottom: 22px; border: 1px solid #d9a58f; border-left: 4px solid #9a4a2f; background: #fbf1ec; }
.noor-form__summary p { margin: 0 0 6px; }
.noor-form__summary ul { margin: 0; padding-left: 18px; }
.noor-form__summary a { color: #8a3f27 !important; }
.noor-form__inline { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; }
.noor-form__inline input[type="date"] { flex: 1 1 220px; max-width: 280px; }
.noor-check { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-weight: 500 !important; cursor: pointer; }
.noor-check input, .noor-choice input { width: 20px; height: 20px; accent-color: var(--noor-gold-dark); margin: 0; flex: 0 0 auto; }
.noor-choices { display: flex; flex-wrap: wrap; gap: 10px; }
.noor-choices--grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.noor-choice { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 12px 16px; border: 1px solid #cfc1ad; border-radius: 3px; background: #fff; font-weight: 500 !important; cursor: pointer; transition: border-color .2s, background-color .2s; }
.noor-choice:hover { border-color: var(--noor-gold-dark); }
.noor-choice:has(input:checked) { border-color: var(--noor-gold-dark); background: #fbf6ee; box-shadow: inset 0 0 0 1px var(--noor-gold-dark); }
.noor-choice:has(input:focus-visible) { outline: 2px solid var(--noor-gold-dark); outline-offset: 2px; }
.noor-form__help { font-size: 13.5px; color: var(--noor-muted); margin: 4px 0 0; }
.noor-wl-mini { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.noor-wl-mini li { padding: 8px 14px; border: 1px solid var(--noor-line); border-radius: 999px; background: var(--noor-ivory); font-size: 14px; }
.noor-form__submit { display: flex; flex-direction: column; gap: 18px; align-items: flex-start; margin-top: 6px; }
.noor-form__privacy { display: flex; gap: 10px; font-size: 14px; color: var(--noor-muted); margin: 0; max-width: 62ch; }
.noor-form__privacy .noor-icon { width: 18px; height: 18px; color: var(--noor-gold-dark); flex: 0 0 18px; margin-top: 2px; }
.noor-form [data-noor-submit][disabled] { opacity: .65; cursor: progress; }
.noor-form--compact .noor-form__field--half { max-width: none; }

/* ---------- Contact, bevestiging, planner ---------- */

.noor-contactlist { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.noor-contactlist li { display: flex; gap: 12px; align-items: flex-start; }
.noor-contactlist .noor-icon { width: 20px; height: 20px; margin-top: 2px; color: var(--noor-gold-dark); }
.noor-contactlist a { color: inherit !important; text-decoration: none; }
.noor-contactlist a:hover { text-decoration: underline; }
.noor-social { display: flex; gap: 10px; margin-top: 18px; }
.noor-social a { display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; border: 1px solid currentColor; border-radius: 50%; color: inherit !important; opacity: .85; }
.noor-social a:hover { opacity: 1; }
.noor-social .noor-icon { width: 18px; height: 18px; }
.noor-wa-card { display: flex; gap: 18px; padding: 28px; background: var(--noor-white); border: 1px solid var(--noor-line); }
.noor-wa-card__icon { width: 36px !important; height: 36px !important; color: var(--noor-gold-dark); }
.noor-wa-card__title { font-family: var(--noor-font-heading); font-size: 1.5rem; color: var(--noor-brown); margin: 0 0 6px; }
.noor-wa-card p { margin: 0; }

.e-con.noor-confirm-section { min-height: 60vh; justify-content: center; }
.noor-confirm { margin-top: 18px; }
.noor-confirm__ref { display: inline-block; padding: 10px 18px; border: 1px solid var(--noor-line); background: var(--noor-white); letter-spacing: .04em; }
.noor-steps { list-style: none; counter-reset: s; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 30px 0 10px; padding: 0; text-align: left; }
.noor-steps li { counter-increment: s; padding: 22px 20px; background: var(--noor-white); border-top: 2px solid var(--noor-gold); display: flex; flex-direction: column; gap: 4px; }
.noor-steps li::before { content: "0" counter(s); font-family: var(--noor-font-heading); font-size: 1.8rem; color: var(--noor-gold); line-height: 1; margin-bottom: 6px; }
.noor-steps span { color: var(--noor-muted); font-size: 14.5px; }

.e-con.noor-planner-wrap { max-width: 1040px; margin-inline: auto; width: 100%; }
.noor-planner { position: relative; min-height: 720px; background: #fff; border: 1px solid var(--noor-line); box-shadow: var(--noor-shadow); overflow: hidden; }
.noor-planner__widget { position: relative; z-index: 1; }
.noor-planner__widget iframe { width: 100% !important; max-width: 100%; }
.noor-planner__loading { position: absolute; inset: 0; z-index: 0; display: flex; flex-direction: column; gap: 14px; align-items: center; justify-content: center; color: var(--noor-muted); }
.noor-planner.is-loaded .noor-planner__loading { display: none; }
.noor-planner__fallback { position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; justify-content: center; padding: 32px; text-align: center; background: var(--noor-white); }
.noor-planner__fallback[hidden] { display: none; }
.noor-planner.is-failed { min-height: 260px; }
.noor-planner.is-failed .noor-planner__widget, .noor-planner.is-failed .noor-planner__loading { display: none; }
.noor-planner__link { text-align: center; margin: 24px 0 0; }

/* ---------- Ervaringen en projecten ---------- */

.noor-reviews__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--noor-card-gap); margin-top: 28px; }
.noor-review { margin: 0; padding: 30px; background: var(--noor-ivory); border-top: 2px solid var(--noor-gold); }
.noor-review blockquote { margin: 0 0 16px; font-family: var(--noor-font-heading); font-style: italic; font-size: 1.3rem; line-height: 1.45; color: var(--noor-brown); }
.noor-review figcaption { font-size: 14px; color: var(--noor-muted); }
.noor-cards--projects { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.noor-card-project a { display: block; text-decoration: none; color: inherit !important; }
.noor-card-project__body { padding: 16px 0 0; }

/* ---------- Footer ---------- */

.e-con.noor-footer {
	background: var(--noor-brown);
	color: var(--noor-sand);
	--padding-top: clamp(3.5rem, 6vw, 5.5rem);
	--padding-bottom: 28px;
	--padding-left: var(--noor-side);
	--padding-right: var(--noor-side);
	--content-width: var(--noor-content);
	font-size: 15px;
}
.e-con.noor-footer > .e-con-inner { gap: 44px; }
.e-con.noor-footer-grid { gap: clamp(28px, 4vw, 56px); grid-template-columns: 1.3fr 1fr 1.1fr 1.1fr; }
.e-con.noor-footer-col { --row-gap: 16px; }
.noor-footer-logo img { width: 200px; }
.noor-footer .elementor-widget-text-editor { color: rgba(231, 220, 205, .82); line-height: 1.7; }
.noor-footer-title .elementor-heading-title { font-family: var(--noor-font-body) !important; font-size: 12px !important; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--noor-gold-light) !important; }
.noor-footer-nav .elementor-nav-menu--main .elementor-item { padding: 6px 0 !important; min-height: 36px; color: rgba(231, 220, 205, .9) !important; font-size: 15px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.noor-footer-nav .elementor-nav-menu--main .elementor-item:hover,
.noor-footer-nav .elementor-nav-menu--main .elementor-item-active { color: #fff !important; }
.noor-footer-nav .elementor-nav-menu--main .elementor-item::after { display: none; }
.noor-footer-nav .elementor-nav-menu--dropdown, .noor-footer-legal .elementor-nav-menu--dropdown, .noor-footer-nav .elementor-menu-toggle, .noor-footer-legal .elementor-menu-toggle { display: none !important; }
.noor-footer-nav .elementor-nav-menu--main, .noor-footer-legal .elementor-nav-menu--main { display: block !important; }
.noor-footer .noor-contactlist .noor-icon { color: var(--noor-gold-light); }
.noor-footer .noor-contactlist a { color: rgba(231, 220, 205, .92) !important; }
.e-con.noor-footer-bottom { border-top: 1px solid rgba(214, 195, 160, .22); --padding-top: 24px; --column-gap: 18px; --row-gap: 10px; font-size: 13px; }
.noor-footer-copy, .noor-footer-copy p { color: rgba(231, 220, 205, .7) !important; font-size: 13px; margin: 0; }
.noor-legal-line { margin-left: 6px; }
.noor-footer-legal .elementor-item { color: rgba(231, 220, 205, .8) !important; font-size: 13px; padding: 6px 0 6px 18px !important; min-height: 36px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.noor-footer-legal .elementor-item::after { display: none; }
.noor-footer .noor-el-btn--primary .elementor-button:hover { background: var(--noor-white); color: var(--noor-brown); border-color: var(--noor-white); }

/* ---------- Mobiele actiebalk ---------- */

.noor-actionbar { display: none; }
@media (max-width: 767px) {
	.noor-actionbar {
		position: fixed; left: 12px; right: 12px;
		bottom: calc(12px + env(safe-area-inset-bottom, 0px));
		z-index: 60;
		display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
		padding: 8px;
		background: rgba(56, 42, 32, .96);
		border-radius: 4px;
		box-shadow: 0 16px 40px rgba(43, 32, 24, .3);
		transform: translateY(0);
		transition: transform .3s var(--noor-ease), opacity .3s;
	}
	.noor-actionbar[hidden] { display: grid; transform: translateY(140%); opacity: 0; pointer-events: none; visibility: hidden; }
	.noor-actionbar__btn { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; border-radius: 2px; background: var(--noor-gold); color: var(--noor-brown-deep) !important; font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; }
	.noor-actionbar__btn--wa { background: transparent; color: #fff !important; border: 1px solid rgba(255, 255, 255, .4); }
	.noor-actionbar__btn .noor-icon { width: 18px; height: 18px; }
	body.noor-site { padding-bottom: 0; }
}

/* ---------- Lightbox ---------- */

.noor-lightbox { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; background: rgba(24, 18, 13, .92); padding: 60px 16px; }
.noor-lightbox img { max-width: min(1200px, 100%); max-height: 100%; object-fit: contain; }
.noor-lightbox button { position: absolute; width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .5); background: rgba(0, 0, 0, .3); color: #fff; font-size: 22px; cursor: pointer; }
.noor-lightbox__close { top: 16px; right: 16px; }
.noor-lightbox__prev { left: 16px; top: 50%; transform: translateY(-50%); }
.noor-lightbox__next { right: 16px; top: 50%; transform: translateY(-50%); }

/* ---------- Tablet ---------- */

@media (max-width: 1024px) {
	:root { --noor-header-h: 74px; }
	.noor-header .noor-logo img { width: 170px; }
	.noor-cards--rooms { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.noor-cards--decor { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.e-con.noor-arches { grid-template-columns: repeat(5, minmax(190px, 1fr)); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 10px; scrollbar-width: thin; }
	.e-con.noor-arch-link { scroll-snap-align: start; }
	.e-con.noor-footer-grid { grid-template-columns: 1fr 1fr; }
	.noor-facts { position: static; }
	.noor-product { grid-template-columns: 1fr; }
	.noor-cta-inline { grid-template-columns: 1fr; }
	.noor-cta-inline .noor-actions { justify-content: flex-start; }
	.e-con.noor-buttons--end { justify-content: flex-start; }
	.noor-facilities { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.noor-facilities li:nth-child(4n + 1) { border-left: 0; }
	.noor-reviews__list, .noor-cards--projects { grid-template-columns: 1fr 1fr; }
	.e-con.noor-page-hero--light .noor-page-hero__media { max-width: 520px; }
}

/* ---------- Mobiel ---------- */

@media (max-width: 767px) {
	:root { --noor-side: 20px; --noor-section-space: 3.5rem; --noor-block-gap: 2.25rem; --noor-header-h: 66px; }
	.e-con.noor-topbar-wrap { font-size: 12px; --padding-top: 6px; --padding-bottom: 6px; }
	.noor-hide-mobile { display: none !important; }
	.e-con.noor-header { --padding-top: 10px; --padding-bottom: 10px; }
	.noor-header .noor-logo img { width: 148px; }
	.noor-wishcount { width: 44px; height: 44px; }
	.e-con.noor-hero { --padding-top: 4rem; --padding-bottom: 4rem; }
	.e-con.noor-hero::after, .e-con.noor-page-hero--dark::after { width: 90vw; right: -25%; opacity: .5; }
	.e-con.noor-hero::before { background: linear-gradient(180deg, rgba(36, 26, 19, .5) 0%, rgba(36, 26, 19, .8) 100%); }
	.e-con.noor-page-hero--dark { min-height: 0; }
	.e-con.noor-arches { grid-template-columns: repeat(5, 62%); gap: 14px; margin-right: calc(var(--noor-side) * -1); padding-right: var(--noor-side); }
	.noor-cards--rooms, .noor-cards--decor, .noor-combis, .noor-reviews__list, .noor-cards--projects, .noor-split-lists, .noor-steps { grid-template-columns: 1fr; }
	.noor-cards--decor { grid-template-columns: 1fr 1fr; gap: 14px; }
	.noor-card-decor__body { padding: 14px 14px 16px; }
	.noor-card-decor__title { font-size: 1.2rem; }
	.noor-heart { width: 44px; height: 44px; top: 8px; right: 8px; }
	.noor-facilities { grid-template-columns: 1fr 1fr; }
	.noor-facilities li { border-left: 0; border-bottom: 1px solid var(--noor-line); flex-direction: row; text-align: left; padding: 14px 6px; gap: 12px; }
	.noor-facilities .noor-icon { width: 28px; height: 28px; }
	.noor-facilities-col .noor-facilities { grid-template-columns: 1fr; }
	.noor-gallery { grid-template-columns: 1fr 1fr; grid-auto-rows: 42vw; max-height: none; }
	.noor-gallery__item.is-lead { grid-column: span 2; grid-row: span 1; }
	.noor-product__media .noor-gallery { grid-auto-rows: 40vw; }
	.noor-dl > div { grid-template-columns: 1fr; gap: 4px; }
	.noor-form__row, .noor-choices--grid { grid-template-columns: 1fr; }
	.noor-form__field--half { max-width: none; }
	.noor-choice { width: 100%; }
	.noor-form__submit .noor-btn { width: 100%; }
	.noor-wishlist__item { grid-template-columns: 64px 1fr; }
	.noor-wishlist__thumb { width: 64px; height: 64px; }
	.noor-wishlist__remove { grid-column: 2; justify-self: start; }
	.noor-wishlist__footer .noor-btn { width: 100%; }
	.noor-roomlist__name { font-size: 1.3rem; }
	.e-con.noor-footer-grid { grid-template-columns: 1fr; }
	.e-con.noor-footer-bottom { align-items: flex-start; }
	.noor-footer-legal .elementor-item { padding-left: 0 !important; }
	.noor-planner { min-height: 640px; }
	.noor-filters-front .noor-select { flex: 1 1 calc(50% - 9px); }
	.noor-wa-card { padding: 22px; }
	.noor-actions .noor-btn { flex: 1 1 100%; }
	.e-con.noor-buttons .elementor-widget-button, .e-con.noor-buttons .elementor-button { width: 100%; }
}

@media (max-width: 380px) {
	.noor-cards--decor { grid-template-columns: 1fr; }
	.noor-topbar__item { font-size: 11.5px; }
}

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

@media print {
	.noor-actionbar, .noor-topbar-wrap, .noor-nav, .noor-header-actions { display: none !important; }
}
