/* Interactive Map — frontend */
.imap-map {
	position: relative;
	width: 100%;
	max-width: 100%;
	margin: 0 auto;
	line-height: 0;
	--imap-size: 35px;
}
.imap-map.imap-has-zoom { overflow: hidden; touch-action: pan-y; }
.imap-map.imap-has-zoom.is-panning { cursor: grabbing; }
.imap-map__stage {
	position: relative;
	transform-origin: 0 0;
	transition: transform .18s ease-out;
	will-change: transform;
}
.imap-map.is-panning .imap-map__stage { transition: none; }
.imap-map__image { display: block; width: 100%; height: auto; user-select: none; -webkit-user-drag: none; }
.imap-map__svg { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }

/* Zoom controls */
.imap-map__controls {
	position: absolute;
	left: 50%;
	bottom: 14px;
	transform: translateX(-50%);
	display: inline-flex;
	gap: 6px;
	padding: 6px;
	background: rgba(255,255,255,.92);
	border-radius: 999px;
	box-shadow: 0 4px 16px rgba(15,23,42,.18);
	z-index: 5;
	line-height: 1;
}
.imap-map__ctrl {
	appearance: none;
	border: 0;
	background: #384253;
	color: #fff;
	width: 36px; height: 36px;
	border-radius: 50%;
	font-size: 18px;
	font-weight: 600;
	cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center;
	transition: background .15s ease, transform .15s ease;
}
.imap-map__ctrl:hover { background: #2a6675; transform: translateY(-1px); }
.imap-map__ctrl:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }


/* Polygons */
.imap-map__polygon {
	fill: var(--imap-color, #384253);
	fill-opacity: var(--imap-opacity, 0.4);
	stroke: var(--imap-color, #384253);
	stroke-width: 0.3;
	vector-effect: non-scaling-stroke;
	pointer-events: all;
	cursor: pointer;
	transition: fill-opacity .25s ease, fill .25s ease;
}
.imap-map__polygon.imap-anim-none { transition: none; }
.imap-map__polygon:hover, .imap-map__polygon:focus {
	fill: var(--imap-hover, #2a323f);
	fill-opacity: var(--imap-hover-opacity, 0.65);
	outline: none;
}

/* Hotspots */
.imap-map__hotspot {
	position: absolute;
	transform: translate(-50%, -50%);
	background: var(--imap-bg, #384253);
	opacity: var(--imap-bg-opacity, 1);
	color: var(--imap-fg, #fff);
	border: 2px solid #fff;
	border-radius: 50%;
	box-shadow: 0 4px 14px rgba(0,0,0,.25);
	display: inline-flex; align-items: center; justify-content: center;
	cursor: pointer;
	padding: 0;
	width: var(--imap-size, 44px);
	height: var(--imap-size, 44px);
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease, opacity .2s ease;
}
@media (max-width: 600px) {
	.imap-map__hotspot {
		width: calc(var(--imap-size, 44px) * 0.6);
		height: calc(var(--imap-size, 44px) * 0.6);
		border-width: 1.5px;
		box-shadow: 0 2px 8px rgba(0,0,0,.25);
	}
}
.imap-map__hotspot:hover, .imap-map__hotspot:focus {
	background: var(--imap-hover-bg, var(--imap-bg, #384253));
	color: var(--imap-hover-fg, var(--imap-fg, #fff));
	opacity: 1;
	box-shadow: 0 6px 18px rgba(0,0,0,.35);
	outline: none;
}
.imap-map__hotspot.imap-anim-scale:hover { transform: translate(-50%, -50%) scale(1.15); }
.imap-map__hotspot.imap-anim-bounce:hover { animation: imap-bounce .5s ease; }
.imap-map__hotspot.imap-anim-fade { /* default transitions handle fade */ }
.imap-map__hotspot.imap-anim-none { transition: none; }
@keyframes imap-bounce {
	0%,100% { transform: translate(-50%, -50%) scale(1); }
	30% { transform: translate(-50%, -55%) scale(1.1); }
	60% { transform: translate(-50%, -48%) scale(.95); }
}
.imap-map__hotspot-icon { display: inline-flex; align-items: center; justify-content: center; width: 60%; height: 60%; transition: opacity .2s ease; }
.imap-map__hotspot-icon svg { width: 100%; height: 100%; }
.imap-map__hotspot-icon .imap-map__icon-img,
.imap-map__hotspot-icon img { width: 100%; height: 100%; object-fit: contain; }
.imap-map__hotspot-icon--hover { position: absolute; inset: 0; margin: auto; opacity: 0; }
.imap-map__hotspot:hover .imap-map__hotspot-icon--hover,
.imap-map__hotspot:focus .imap-map__hotspot-icon--hover { opacity: 1; }
/* v1.9.47 — keep base icon visible on hover */

.imap-map__hotspot.is-pulse::before {
	content: none;
}
@keyframes imap-front-pulse {
	0% { transform: scale(.6); opacity: .9; }
	100% { transform: scale(1.7); opacity: 0; }
}

/* Tooltip (mouseover info card) — visueel duidelijk anders dan de lightbox */
.imap-map__tooltip {
	position: absolute;
	min-width: 220px;
	background: #ffffff;
	color: #111827;
	padding: 14px 16px;
	border-radius: 10px;
	box-shadow: 0 18px 40px -12px rgba(0,0,0,.35), 0 4px 10px rgba(0,0,0,.08);
	font-size: 13px;
	line-height: 1.45;
	opacity: 0;
	pointer-events: none;
	transform: translateY(4px);
	transition: opacity .15s ease, transform .15s ease;
	z-index: 10;
}
.imap-map__tooltip.is-open { opacity: 1; transform: translateY(0); }

.imap-map__tt-head {
	display: flex; align-items: center; justify-content: space-between;
	gap: 12px; margin-bottom: 10px;
}
.imap-map__tt-status { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 13px; }
.imap-map__tt-dot {
	width: 12px; height: 12px; border-radius: 50%;
	background: var(--imap-status-color, #384253);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--imap-status-color, #384253) 20%, transparent);
	flex: none;
}
.imap-status--available { --imap-status-color: #609004; }
.imap-status--option    { --imap-status-color: #f59e0b; }
.imap-status--sold      { --imap-status-color: #ef4444; }
.imap-status--none      { --imap-status-color: #9ca3af; }
.imap-lbu__status.imap-status--available { background: #609004; color: #fff; }
.imap-lbu__status.imap-status--option    { background: #f59e0b; color: #111827; }
.imap-lbu__status.imap-status--sold      { background: #ef4444; color: #fff; }
.imap-map__tt-status-label { color: inherit; }
.imap-map__tt-title { font-weight: 700; font-size: 14px; opacity: .85; }

.imap-map__tt-rows { margin: 0; padding: 0; display: flex; flex-direction: column; }
.imap-map__tt-row {
	display: flex; justify-content: space-between; gap: 12px;
	padding: 4px 0;
	border-bottom: 1px solid var(--imap-tt-divider, #e5e7eb);
}
.imap-map__tt-row:last-child { border-bottom: 0; }
.imap-map__tt-row dt { margin: 0; color: var(--imap-tt-label, #6b7280); font-weight: 400; }
.imap-map__tt-row dd { margin: 0; font-weight: 600; text-align: right; }

.imap-map__tt-desc { margin: 8px 0 0; opacity: .85; font-size: 12px; }
.imap-map__tt-image { margin: 12px -16px -14px; border-radius: 0 0 inherit inherit; overflow: hidden; }
.imap-map__tt-image img { display: block; width: 100%; height: auto; }
.imap-map__tt-hint { display: block; margin-top: 8px; font-size: 11px; color: var(--imap-tt-label, #6b7280); font-style: italic; }

/* ---------- Lightbox ---------- */
body.imap-lb-open { overflow: hidden; }
.imap-lb {
	position: fixed; inset: 0; z-index: 99999;
	display: none;
}
.imap-lb.is-open { display: block; }
.imap-lb__backdrop {
	position: absolute; inset: 0;
	background: rgba(15, 23, 42, 0.85);
	backdrop-filter: blur(4px);
	animation: imap-fade .2s ease;
}
.imap-lb__dialog {
	position: relative;
	max-width: 720px; width: calc(100% - 32px);
	max-height: calc(100vh - 64px);
	margin: 32px auto;
	background: var(--imap-lb-bg, #fff); color: var(--imap-lb-fg, #111827);
	border-radius: 12px;
	box-shadow: 0 30px 60px rgba(0,0,0,.4);
	overflow: hidden;
	display: flex; flex-direction: column;
	animation: imap-pop .25s cubic-bezier(.2,.8,.2,1);
}
@keyframes imap-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes imap-pop { from { opacity: 0; transform: translateY(20px) scale(.96); } to { opacity: 1; transform: translateY(0) scale(1); } }

.imap-lb__close {
	position: absolute; top: 12px; right: 12px;
	width: 36px; height: 36px;
	background: rgba(255,255,255,.95); color: #111827;
	border: 0; border-radius: 50%;
	font-size: 22px; line-height: 1; cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center;
	box-shadow: 0 2px 10px rgba(0,0,0,.2);
	z-index: 5;
}
.imap-lb__close:hover { background: #fff; }

.imap-lb__content { overflow-y: auto; padding: 0 0 24px; }
.imap-lb__header { padding: 24px 28px 0; }
.imap-lb__status { display: inline-block; background: #facc15; color: #111827; padding: 4px 10px; border-radius: 6px; font-size: 12px; font-weight: 700; margin-bottom: 8px; }
.imap-lb__title { margin: 0; font-size: 26px; line-height: 1.2; font-weight: 800; color: inherit; }

.imap-lb__gallery { position: relative; margin: 16px 0 0; background: #000; }
.imap-lb__slides { position: relative; aspect-ratio: 16/9; }
.imap-lb__slide { position: absolute; inset: 0; opacity: 0; transition: opacity .25s ease; }
.imap-lb__slide.is-active { opacity: 1; }
.imap-lb__slide img { width: 100%; height: 100%; object-fit: contain; display: block; }
.imap-lb__nav {
	position: absolute; top: 50%; transform: translateY(-50%);
	width: 40px; height: 40px; border-radius: 50%; border: 0;
	background: rgba(255,255,255,.9); cursor: pointer; font-size: 22px; line-height: 1;
}
.imap-lb__nav--prev { left: 12px; } .imap-lb__nav--next { right: 12px; }
.imap-lb__dots { position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); display: flex; gap: 6px; }
.imap-lb__dot { width: 10px; height: 10px; border-radius: 50%; border: 0; background: rgba(255,255,255,.5); cursor: pointer; padding: 0; }
.imap-lb__dot.is-active { background: #fff; }

.imap-lb__video { position: relative; aspect-ratio: 16/9; background: #000; margin-top: 16px; }
.imap-lb__video iframe, .imap-lb__video video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.imap-lb__body { padding: 16px 28px 0; font-size: 15px; line-height: 1.6; color: inherit; }
.imap-lb__body p { margin: 0 0 12px; }
.imap-lb__body img { max-width: 100%; height: auto; border-radius: 6px; }
.imap-lb__body a { color: #2a323f; }

.imap-lb__cta-wrap { padding: 20px 28px 0; }
.imap-lb__cta {
	display: inline-block;
	background: #384253; color: #fff;
	padding: 12px 24px; border-radius: 999px;
	text-decoration: none; font-weight: 700;
	transition: background .15s ease;
}
.imap-lb__cta:hover { background: #2a323f; color: #fff; }

@media (max-width: 600px) {
	.imap-lb__dialog { width: 100%; height: 100%; max-height: 100%; margin: 0; border-radius: 0; }
	.imap-lb__title { font-size: 20px; }
	.imap-lb__header, .imap-lb__body, .imap-lb__cta-wrap { padding-left: 18px; padding-right: 18px; }
}

/* Lightbox centered variant */
.imap-lb.is-centered { display: none; }
.imap-lb.is-centered.is-open { display: flex; align-items: center; justify-content: center; }
.imap-lb.is-centered .imap-lb__dialog { margin: 0; }
@media (max-width: 600px) {
	.imap-lb.is-centered .imap-lb__dialog { width: 100%; height: 100%; max-height: 100%; border-radius: 0; }
}

/* ===========================
   Unit Lightbox (v1.7)
   =========================== */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');
/* Display font: VoncaMedium — expected to be provided by the active theme */

.imap-lb.imap-lb--unit { --imap-lb-bg:#FFFFFF; --imap-lb-dark:#384253; --imap-lb-panel:#C7C6AC; --imap-lb-soft:#E6E8E1; }
.imap-lb.imap-lb--unit .imap-lb__backdrop { background: rgba(28, 70, 81, 0.55); backdrop-filter: blur(2px); }
.imap-lb.imap-lb--unit .imap-lb__dialog {
	background: var(--imap-lb-bg);
	max-width: 1180px; width: 94vw; max-height: 92vh; padding: 0; border-radius: 8px; overflow: hidden;
	font-family: 'Plus Jakarta Sans', sans-serif; color: #1a1a1a;
	box-shadow: 0 30px 80px -20px rgba(0,0,0,0.45);
}
.imap-lb.imap-lb--unit .imap-lb__close { display:none; }
.imap-lb.imap-lb--unit .imap-lb__content { padding: 0; }

.imap-lbu { display:flex; flex-direction:column; }

/* ---- Header ---- */
.imap-lbu__header {
	display:flex; align-items:center; justify-content:space-between;
	padding: 26px 36px 22px; background: var(--imap-lb-bg);
}
.imap-lbu__title {
	margin:0; font-family:'VoncaMedium', sans-serif; font-weight:700;
	font-size: 30px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--imap-lb-dark);
	line-height: 1; display: inline-flex; align-items: baseline; gap: 10px;
}
.imap-lbu__bnr { position: relative; }
.imap-lbu__sep { color: var(--imap-lb-panel); font-weight: 400; }
.imap-lbu__type { color: var(--imap-lb-dark); opacity: 1; }
.imap-lbu__close {
	background: var(--imap-lb-dark); color:#fff; border:0; width:40px; height:40px;
	font-size: 20px; line-height: 1; cursor:pointer; border-radius: 50%;
	display:flex; align-items:center; justify-content:center;
	transition: transform .15s ease, background .15s ease;
}
.imap-lbu__close:hover { background:#143640; transform: rotate(90deg); }

/* ---- Body grid ---- */
.imap-lbu__grid { display: grid; grid-template-columns: minmax(0,1fr) 360px; gap: 28px; padding: 8px 36px 28px; }
@media (max-width: 860px) { .imap-lbu__grid { grid-template-columns: 1fr; padding: 8px 20px 20px; } .imap-lbu__header { padding: 20px 20px 16px; } }

.imap-lbu__media { display:flex; flex-direction:column; gap: 12px; min-width: 0; }
.imap-lbu__hero {
	position: relative; background: var(--imap-lb-soft); border-radius: 6px;
	aspect-ratio: 4/3; overflow:hidden; box-shadow: inset 0 0 0 1px rgba(28,70,81,0.06);
}
.imap-lbu__hero--empty { display:flex; align-items:center; justify-content:center; color:#777; font-size:14px; font-style: italic; }
.imap-lbu__hero-link { position:absolute; inset:0; display:block; opacity:0; transition: opacity .35s ease; }
.imap-lbu__hero-link.is-active { opacity: 1; z-index: 1; }
.imap-lbu__hero-img { position:absolute; top:20px; right:0; bottom:20px; left:0; width:100%; height:calc(100% - 40px); object-fit: contain; opacity: 1; }
.imap-lbu__nav {
	position:absolute; top:50%; transform:translateY(-50%); background: rgba(28, 70, 81, 0.85);
	color:#fff; border:0; width:42px; height:42px; border-radius: 50%; cursor:pointer;
	font-size: 22px; line-height:1; display:flex; align-items:center; justify-content:center;
	transition: background .15s ease, transform .15s ease; z-index: 5;
}
.imap-lbu__nav:hover { background: var(--imap-lb-dark); transform: translateY(-50%) scale(1.06); }
.imap-lbu__nav--prev { left: 14px; } .imap-lbu__nav--next { right: 14px; }

.imap-lbu__thumbs { display:grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.imap-lbu__thumb {
	padding:0; border: 2px solid transparent; border-radius: 6px; background: var(--imap-lb-soft);
	cursor:pointer; overflow:hidden; aspect-ratio: 4/3; transition: border-color .15s ease, transform .15s ease;
}
.imap-lbu__thumb:hover { transform: translateY(-2px); }
.imap-lbu__thumb img { width:100%; height:100%; object-fit: contain; display:block; }
.imap-lbu__thumb.is-active { border-color: var(--imap-lb-dark); }

/* ---- Side panel ---- */
.imap-lbu__side { display:flex; flex-direction:column; gap: 14px; }
.imap-lbu__status {
	align-self: flex-start; display:inline-flex; align-items:center; gap: 8px;
	background: var(--imap-lb-dark); color:#fff;
	font-family:'Plus Jakarta Sans', sans-serif; text-transform: uppercase;
	letter-spacing: 0.1em; font-size: 12px; padding: 9px 18px; border-radius: 999px;
}
.imap-lbu__status::before { content:""; width:8px; height:8px; border-radius:50%; background: var(--imap-lb-panel); }

.imap-lbu__panel { border-radius: 6px; padding: 22px 24px; }
.imap-lbu__panel-h {
	margin: 0 0 16px; font-family:'Plus Jakarta Sans', sans-serif; text-transform:uppercase;
	letter-spacing: 0.12em; font-size: 13px;
}

.imap-lbu__kenmerken { background: var(--imap-lb-dark); color:#fff; }
.imap-lbu__kenmerken .imap-lbu__panel-h { color: var(--imap-lb-panel); }
.imap-lbu__rows { margin:0; display:flex; flex-direction:column; font-size: 14px; }
.imap-lbu__row {
	display:flex; justify-content:space-between; gap: 12px;
	padding: 10px 0; border-bottom: 1px solid rgba(199, 198, 172, 0.18);
}
.imap-lbu__row:last-child { border-bottom: 0; }
.imap-lbu__row dt { margin:0; opacity: .8; font-weight: 400; }
.imap-lbu__row dd { margin:0; font-weight:600; text-align:right; font-family:'Plus Jakarta Sans', sans-serif; letter-spacing: 0.04em; font-size: 15px; }

.imap-lbu__downloads { background: #e6e8e1; color: var(--imap-lb-dark); }
.imap-lbu__panel-h--dark { color: var(--imap-lb-dark); }
.imap-lbu__dl {
	display:inline-flex; align-items:center; gap: 10px;
	background: var(--imap-lb-dark); color:#fff !important; text-decoration:none;
	padding: 12px 24px; border-radius: 999px; font-family:'Plus Jakarta Sans', sans-serif;
	text-transform: uppercase; letter-spacing: 0.1em; font-size: 13px;
	transition: background .15s ease, transform .15s ease;
}
.imap-lbu__dl:hover { background:#143640; transform: translateY(-1px); }

/* ---- About section ---- */
.imap-lbu__about { padding: 4px 0 32px; }
@media (max-width: 860px) { .imap-lbu__about { padding: 4px 0 24px; } }
.imap-lbu__about-h {
	margin: 8px 0 16px; font-family:'Plus Jakarta Sans', sans-serif; text-transform:uppercase;
	letter-spacing: 0.12em; font-size: 18px; color: var(--imap-lb-dark);
	padding-top: 22px; border-top: 1px solid var(--imap-lb-soft);
}
.imap-lbu__about-body { font-size: 15px; line-height: 1.65; color: #2a2a2a; max-width: 760px; }
.imap-lbu__about-body p { margin: 0 0 12px; }
.imap-lbu__about-body p:last-child { margin-bottom: 0; }

/* Image 4 + signup CTA in side column (1.8.5) */
.imap-lbu__image4 { margin-top: 12px; border-radius: 8px; overflow: hidden; }
.imap-lbu__image4 img { display: block; width: 100%; height: auto; }
.imap-lbu__image4 a { display: block; }
.imap-lbu__signup { display: inline-flex; align-items: center; justify-content: center; width: 100%; margin-top: 12px; padding: 12px 20px; border-radius: 9999px; background: var(--imap-lb-panel, #0f172a); color: #384253; font-weight: 700; text-transform: uppercase; text-decoration: none; letter-spacing: 0.04em; }
.imap-lbu__signup:hover { opacity: 0.9; }

/* Situatie (v1.9.18) */
.imap-lbu__situation { margin-top: 8px; padding: 14px 16px 16px; background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; }
.imap-lbu__situation a { display:block; margin-top: 8px; border-radius: 6px; overflow:hidden; }
.imap-lbu__situation img { display:block; width:100%; height:auto; }

/* Impressies (v1.9.18) — onder de hoofd-grid, volledige breedte */
.imap-lbu__impressions { padding: 4px 0 0; }
@media (max-width: 860px) { .imap-lbu__impressions { padding: 4px 0 0; } }
.imap-lbu__impressions-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 10px; }
.imap-lbu__impr { display:block; border-radius:6px; overflow:hidden; background:#f3f4f6; aspect-ratio: 4/3; }
.imap-lbu__impr img { width:100%; height:100%; object-fit:cover; display:block; transition: transform .3s ease; }
.imap-lbu__impr:hover img { transform: scale(1.04); }

/* --- Filter bar (v1.9.6) --- */
.imap-filters{display:block !important;padding:18px 22px 16px;margin:0 0 18px;background:#fff;border:1px solid #e5e7eb;border-left:4px solid #384253;border-radius:8px;font-size:14px;position:relative;z-index:2;box-sizing:border-box;box-shadow:0 1px 3px rgba(15,23,42,.06)}
.imap-filters__header{margin:0 0 14px;padding:0 0 12px;border-bottom:1px solid #eef0f0}
.imap-filters__title{margin:0 0 4px;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#384253;line-height:1.2}
.imap-filters__sub{margin:0;font-size:13px;line-height:1.45;color:#5b6b6f}
.imap-filters__body{display:flex !important;flex-wrap:wrap;align-items:flex-end;gap:18px;width:100%}
.imap-filters__fields{display:grid !important;grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));align-items:end;gap:18px;flex:1;min-width:0}
.imap-filters.is-collapsed .imap-filters__body{align-items:center}
.imap-filters.is-collapsed{padding:12px 18px}
.imap-filters.is-collapsed .imap-filters__header{margin:0;padding:0;border:0}
.imap-filters.is-collapsed .imap-filters__sub{display:none}
.imap-filters.is-collapsed .imap-filters__fields{display:none !important}
.imap-filters__toggle{display:inline-flex !important;align-items:center;gap:6px;height:36px !important;min-height:36px;padding:0 16px !important;border:1px solid #384253 !important;background:#384253 !important;color:#fff !important;border-radius:6px !important;cursor:pointer;font-size:13px !important;font-weight:600 !important;line-height:1 !important;box-shadow:none !important;text-transform:none !important;letter-spacing:.01em !important;margin-left:auto;align-self:center;white-space:nowrap}
.imap-filters__toggle:hover{background:#143742 !important;border-color:#143742 !important}
.imap-filters.is-collapsed .imap-filters__toggle{background:#e5e4c4 !important;color:#384253 !important;border-color:#e5e4c4 !important}
.imap-filters.is-collapsed .imap-filters__toggle:hover{background:#d8d7b0 !important;border-color:#d8d7b0 !important}
.imap-filters *,.imap-filters *::before,.imap-filters *::after{box-sizing:border-box}
.imap-filters__field{display:flex !important;flex-direction:column;gap:8px;min-width:0;margin:0}
.imap-filters__field--price{min-width:0}
.imap-filters__field--status{min-width:auto}
.imap-filters__lbl,.imap-filters__field>span:first-child{font-size:11px;color:#384253;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.imap-filters__price-fixed{display:inline-flex;align-items:center;height:38px;padding:0 14px;background:#e5e4c4;color:#384253;border-radius:6px;font-weight:600;font-size:14px;width:fit-content}
.imap-filters select.imap-filters__type{display:block !important;height:38px !important;min-height:38px;padding:0 28px 0 10px !important;border:1px solid #d1d5db !important;border-radius:6px !important;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%23374151' d='M0 0l5 6 5-6z'/></svg>") no-repeat right 10px center !important;-webkit-appearance:none;appearance:none;color:#111827 !important;font-size:14px !important;line-height:1.2 !important;box-shadow:none !important;width:100%;cursor:pointer}
.imap-filters select.imap-filters__type:focus{outline:2px solid #384253 !important;outline-offset:1px}
.imap-filters__range{position:relative;height:24px;display:flex;align-items:center}
.imap-filters__range input[type=range]{position:absolute;left:0;right:0;width:100%;pointer-events:none;-webkit-appearance:none;appearance:none;background:transparent;height:24px;margin:0}
.imap-filters__range input[type=range]::-webkit-slider-thumb{pointer-events:auto;-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#384253;border:2px solid #fff;box-shadow:0 0 0 1px #d1d5db;cursor:pointer}
.imap-filters__range input[type=range]::-moz-range-thumb{pointer-events:auto;width:16px;height:16px;border-radius:50%;background:#384253;border:2px solid #fff;cursor:pointer}
.imap-filters__range::before{content:"";position:absolute;left:0;right:0;top:50%;height:3px;background:#d1d5db;border-radius:2px;transform:translateY(-50%)}
.imap-filters__chips{display:flex;flex-wrap:wrap;gap:6px}
.imap-filters__chip{display:inline-flex !important;align-items:center;gap:6px;height:34px;padding:0 12px;border:1px solid #d1d5db;border-radius:9999px;background:#fff;color:#111827;font-size:13px;font-weight:500;cursor:pointer;user-select:none;line-height:1;transition:all .15s}
.imap-filters__chip input{position:absolute;opacity:0;pointer-events:none;width:0;height:0;margin:0}
.imap-filters__chip::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;background:#9ca3af}
.imap-filters__chip.imap-status--available::before{background:#609004}
.imap-filters__chip.imap-status--option::before{background:#eab308}
.imap-filters__chip.imap-status--sold::before{background:#ef4444}
.imap-filters__chip.is-on{background:#384253;color:#fff;border-color:#384253}
.imap-filters__chip.is-on::before{box-shadow:0 0 0 2px rgba(255,255,255,.4)}
.imap-filters__reset{display:inline-flex !important;align-items:center;justify-content:center;height:38px !important;min-height:38px;padding:0 16px !important;border:1px solid #d1d5db !important;background:#fff !important;color:#111827 !important;border-radius:6px !important;cursor:pointer;font-size:14px !important;font-weight:500 !important;line-height:1 !important;box-shadow:none !important;text-transform:none !important;letter-spacing:0 !important;align-self:end;margin-bottom:0}
.imap-filters__reset:hover{background:#f3f4f6 !important;border-color:#9ca3af !important}
.imap-filtered-out{opacity:.2 !important;transition:opacity .2s}

/* Eigen image-lightbox viewer */
.imap-iv{position:fixed;inset:0;z-index:100050;display:none;align-items:center;justify-content:center}
.imap-iv.is-open{display:flex}
.imap-iv__backdrop{position:absolute;inset:0;background:rgba(10,10,12,.92);cursor:zoom-out}
.imap-iv__img{position:relative;max-width:92vw;max-height:88vh;object-fit:contain;box-shadow:0 10px 40px rgba(0,0,0,.5);background:#111}
.imap-iv__close{position:absolute;top:18px;right:22px;width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:26px;line-height:1;cursor:pointer;z-index:2}
.imap-iv__close:hover{background:rgba(255,255,255,.22)}
.imap-iv__nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:64px;border:0;background:rgba(255,255,255,.12);color:#fff;font-size:32px;line-height:1;cursor:pointer;z-index:2;border-radius:6px}
.imap-iv__nav:hover{background:rgba(255,255,255,.22)}
.imap-iv__nav--prev{left:20px}
.imap-iv__nav--next{right:20px}
.imap-iv__counter{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);color:#fff;font-size:13px;letter-spacing:.04em;background:rgba(0,0,0,.4);padding:4px 10px;border-radius:999px;z-index:2}

.imap-filters__empty{font-size:12px;color:#6b7280;font-style:italic}

a.imap-img-lb{cursor:zoom-in;display:inline-block}
a.imap-img-lb img{cursor:zoom-in}

/* ===== Theme typography mode — inherit h1/h2/h3/p van WordPress thema ===== */
.imap-lbu--theme,
.imap-lbu--theme .imap-lbu__about-body,
.imap-lbu--theme .imap-lbu__rows,
.imap-lbu--theme .imap-lbu__row dt,
.imap-lbu--theme .imap-lbu__row dd { font-family: inherit; letter-spacing: normal; }
.imap-lbu--theme .imap-lbu__title,
.imap-lbu--theme .imap-lbu__panel-h,
.imap-lbu--theme .imap-lbu__about-h { font-family: inherit; font-weight: inherit; font-size: inherit; letter-spacing: normal; text-transform: none; line-height: inherit; color: inherit; margin: 0 0 12px; }
.imap-lbu--theme .imap-lbu__about-body { font-family: inherit; font-size: inherit; line-height: inherit; color: inherit; }
.imap-lbu--theme .imap-lbu__about-body p,
.imap-lbu--theme .imap-lbu__about-body h1,
.imap-lbu--theme .imap-lbu__about-body h2,
.imap-lbu--theme .imap-lbu__about-body h3,
.imap-lbu--theme .imap-lbu__about-body h4 { font-family: inherit; color: inherit; }
.imap-lbu--theme .imap-lbu__row dd { font-family: inherit; letter-spacing: normal; font-size: inherit; }
.imap-lbu--theme .imap-lbu__row dt { font-family: inherit; }
.imap-lbu--theme .imap-lbu__status,
.imap-lbu--theme .imap-lbu__dl,
.imap-lbu--theme .imap-lbu__signup { font-family: inherit; letter-spacing: normal; text-transform: none; }

/* v1.9.30 — Robust mobile-friendly centered X in close buttons */
.imap-lb__close,
.imap-lbu__close,
.imap-iv__close {
	padding: 0;
	font-size: 0;
	line-height: 0;
	-webkit-tap-highlight-color: transparent;
	touch-action: manipulation;
}
.imap-lb__close::before,
.imap-lbu__close::before,
.imap-iv__close::before {
	content: "";
	display: block;
	width: 14px;
	height: 14px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6 6l12 12M18 6L6 18' stroke='black' stroke-width='2.5' stroke-linecap='round'/></svg>") center/contain no-repeat;
	        mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6 6l12 12M18 6L6 18' stroke='black' stroke-width='2.5' stroke-linecap='round'/></svg>") center/contain no-repeat;
}
@media (max-width: 600px) {
	.imap-lb__close,
	.imap-lbu__close,
	.imap-iv__close { width: 44px; height: 44px; }
	.imap-lb__close::before,
	.imap-lbu__close::before,
	.imap-iv__close::before { width: 16px; height: 16px; }
}

/* v1.9.31 — Center zoom control icons (+, −, ↻) using SVG masks */
.imap-map__ctrl[data-act] {
	padding: 0;
	font-size: 0;
	line-height: 0;
}
.imap-map__ctrl[data-act]::before {
	content: "";
	display: block;
	width: 16px;
	height: 16px;
	background-color: currentColor;
	-webkit-mask-position: center;
	        mask-position: center;
	-webkit-mask-repeat: no-repeat;
	        mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	        mask-size: contain;
}
.imap-map__ctrl[data-act="in"]::before {
	-webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 5v14M5 12h14' stroke='black' stroke-width='2.5' stroke-linecap='round'/></svg>");
	        mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 5v14M5 12h14' stroke='black' stroke-width='2.5' stroke-linecap='round'/></svg>");
}
.imap-map__ctrl[data-act="out"]::before {
	-webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M5 12h14' stroke='black' stroke-width='2.5' stroke-linecap='round'/></svg>");
	        mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M5 12h14' stroke='black' stroke-width='2.5' stroke-linecap='round'/></svg>");
}
.imap-map__ctrl[data-act="reset"]::before {
	width: 18px;
	height: 18px;
	-webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20 12a8 8 0 1 1-2.34-5.66' stroke='black' stroke-width='2.2' stroke-linecap='round' fill='none'/><path d='M20 4v5h-5' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' fill='none'/></svg>");
	        mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20 12a8 8 0 1 1-2.34-5.66' stroke='black' stroke-width='2.2' stroke-linecap='round' fill='none'/><path d='M20 4v5h-5' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' fill='none'/></svg>");
}

/* v1.9.39 — Floorplan captions */
.imap-lbu__hero-caption {
	display: block;
	margin-top: 10px;
	text-align: center;
	font-size: 14px;
	font-weight: 600;
	color: var(--imap-lb-dark, #0f172a);
	letter-spacing: 0.02em;
	min-height: 1em;
}

/* v1.9.39 — Smaller zoom controls on mobile */
@media (max-width: 640px) {
	.imap-map__controls {
		gap: 4px; padding: 3px;
		left: auto; right: 8px; bottom: 8px; transform: none;
	}
	.imap-map__ctrl { width: 26px; height: 26px; font-size: 14px; }
	.imap-map__ctrl[data-act]::before { width: 13px; height: 13px; }
	/* Smaller hotspots on mobile so they don't crowd the map */
	.imap-map__hotspot {
		width: calc(var(--imap-size, 44px) * 0.30) !important;
		height: calc(var(--imap-size, 44px) * 0.30) !important;
	}
}

/* v1.9.44 — Mobile lightbox fixes */
@media (max-width: 600px) {
	.imap-lb.imap-lb--unit .imap-lb__dialog { width: 100vw; max-width: 100vw; max-height: 100vh; border-radius: 0; }
	.imap-lbu__header { padding: 16px 16px 12px; gap: 12px; align-items: flex-start; }
	.imap-lbu__title { font-size: 18px; gap: 6px; flex: 1; min-width: 0; word-break: break-word; }
	.imap-lbu__close { flex: 0 0 40px; width: 40px !important; height: 40px !important; border-radius: 50%; aspect-ratio: 1 / 1; }
	.imap-lbu__grid { padding: 8px 12px 16px; gap: 16px; }
}

/* v1.9.47 — contractstukken button above plattegrond */
.imap-lbu__contracts-top { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; margin-bottom: 10px; }
.imap-lbu__media { display: flex; flex-direction: column; }
