/* ==========================================================================
   Nedclan Venue Map — [nedclan_map]
   Values come from CSS custom properties written inline by PHP (unitless → px).
   ========================================================================== */
@font-face { font-family: 'Nedclan MP Inter'; src: url('../../assets/fonts/Inter-Variable.ttf') format('truetype'); font-weight: 100 900; font-display: swap; }
@font-face { font-family: 'Nedclan MP Playfair'; src: url('../../assets/fonts/PlayfairDisplay-Variable.ttf') format('truetype'); font-weight: 400 900; font-display: swap; }

.nedclan-map {
	--map-h: var(--nmp-map-h-d, 360); --pad: var(--nmp-pad-d, 28); --title: var(--nmp-title-d, 30); --meta: var(--nmp-meta-d, 15);
	--addr: var(--nmp-addr-d, 18); --btn: var(--nmp-btn-d, 20); --btn-h: var(--nmp-btn-h-d, 58); --btn-px: var(--nmp-btn-px-d, 38); --fab: var(--nmp-fab-d, 58);
	--label: var(--nmp-label-d, 17); --loc-gap: var(--nmp-loc-gap-d, 22);

	box-sizing: border-box;
	width: 100%;
	max-width: calc(var(--nmp-max, 1200) * 1px);
	margin: calc(var(--nmp-mt, 0) * 1px) auto calc(var(--nmp-mb, 0) * 1px);
	background: var(--nmp-bg, #fff);
	border: calc(var(--nmp-bw, 1) * 1px) solid var(--nmp-bc, #EBD9B6);
	border-radius: calc(var(--nmp-radius, 28) * 1px);
	overflow: hidden;
	font-family: var(--nmp-font, inherit);
	text-align: left;
}
/* Invisible sizer: a content-sized parent (Elementor flex rows, centred columns…) sees
   the card's preferred width, but the card can still shrink to fit small screens. */
.nedclan-map > .nmp-sizer { display: block; height: 0; margin: 0; padding: 0; border: 0; visibility: hidden; width: calc(var(--nmp-max, 1200) * 1px); max-width: 100%; }
.nedclan-map *, .nedclan-map *::before, .nedclan-map *::after { box-sizing: border-box; }
.nedclan-map.nmp-shadow { box-shadow: 0 18px 44px rgba(59, 42, 30, .12); }
@media (max-width: 1024px) {
	.nedclan-map { --map-h: var(--nmp-map-h-t); --pad: var(--nmp-pad-t); --title: var(--nmp-title-t); --meta: var(--nmp-meta-t); --addr: var(--nmp-addr-t); --btn: var(--nmp-btn-t); --btn-h: var(--nmp-btn-h-t); --btn-px: var(--nmp-btn-px-t); --fab: var(--nmp-fab-t); --label: var(--nmp-label-t); --loc-gap: var(--nmp-loc-gap-t); }
}
@media (max-width: 767px) {
	.nedclan-map { --map-h: var(--nmp-map-h-m); --pad: var(--nmp-pad-m); --title: var(--nmp-title-m); --meta: var(--nmp-meta-m); --addr: var(--nmp-addr-m); --btn: var(--nmp-btn-m); --btn-h: var(--nmp-btn-h-m); --btn-px: var(--nmp-btn-px-m); --fab: var(--nmp-fab-m); --label: var(--nmp-label-m); --loc-gap: var(--nmp-loc-gap-m); }
}
/* Admin preview device switch */
.nedclan-map.nmp-force-desktop { --map-h: var(--nmp-map-h-d); --pad: var(--nmp-pad-d); --title: var(--nmp-title-d); --meta: var(--nmp-meta-d); --addr: var(--nmp-addr-d); --btn: var(--nmp-btn-d); --btn-h: var(--nmp-btn-h-d); --btn-px: var(--nmp-btn-px-d); --fab: var(--nmp-fab-d); --label: var(--nmp-label-d); --loc-gap: var(--nmp-loc-gap-d); }
.nedclan-map.nmp-force-tablet  { --map-h: var(--nmp-map-h-t); --pad: var(--nmp-pad-t); --title: var(--nmp-title-t); --meta: var(--nmp-meta-t); --addr: var(--nmp-addr-t); --btn: var(--nmp-btn-t); --btn-h: var(--nmp-btn-h-t); --btn-px: var(--nmp-btn-px-t); --fab: var(--nmp-fab-t); --label: var(--nmp-label-t); --loc-gap: var(--nmp-loc-gap-t); }
.nedclan-map.nmp-force-mobile  { --map-h: var(--nmp-map-h-m); --pad: var(--nmp-pad-m); --title: var(--nmp-title-m); --meta: var(--nmp-meta-m); --addr: var(--nmp-addr-m); --btn: var(--nmp-btn-m); --btn-h: var(--nmp-btn-h-m); --btn-px: var(--nmp-btn-px-m); --fab: var(--nmp-fab-m); --label: var(--nmp-label-m); --loc-gap: var(--nmp-loc-gap-m); }

/* ---------- Map ---------- */
.nedclan-map .nmp-map { position: relative; height: calc(var(--map-h) * 1px); background: #EEF0F2; }
.nedclan-map .nmp-iframe { display: block; width: 100%; height: 100%; border: 0; margin: 0; }
.nedclan-map .nmp-fabs { position: absolute; right: 16px; bottom: 18px; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.nedclan-map .nmp-fab {
	display: inline-flex; align-items: center; justify-content: center;
	width: calc(var(--fab) * 1px); height: calc(var(--fab) * 1px);
	padding: 0; margin: 0; border: 0; border-radius: 50%;
	box-shadow: 0 4px 14px rgba(0, 0, 0, .2);
	cursor: pointer; text-decoration: none; transition: transform .15s ease, box-shadow .15s ease;
}
.nedclan-map .nmp-fab:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(0, 0, 0, .24); }
.nedclan-map .nmp-fab:focus-visible { outline: 3px solid var(--nmp-btn-bg, #D69A3A); outline-offset: 3px; }
.nedclan-map .nmp-fab svg { display: block; }
.nedclan-map .nmp-fab-locate { background: var(--nmp-fab1-bg, #fff); color: var(--nmp-fab1-icon, #111); }
.nedclan-map .nmp-fab-locate svg { width: 44%; height: 44%; }
.nedclan-map .nmp-fab-locate.is-busy svg { animation: nmp-pulse 1s ease-in-out infinite; }
.nedclan-map .nmp-fab-dir { background: var(--nmp-fab2-bg, #D69A3A); color: var(--nmp-fab2-icon, #fff); --nmp-turn-arrow: var(--nmp-fab2-bg, #D69A3A); }
.nedclan-map .nmp-fab-dir svg { width: 46%; height: 46%; }
@keyframes nmp-pulse { 50% { opacity: .35; } }

/* ---------- Locations list ---------- */
.nedclan-map .nmp-list { padding: calc(var(--pad) * 0.75px) calc(var(--pad) * 1.6px) calc(var(--pad) * 0.9px); }
.nedclan-map .nmp-loc {
	display: flex; align-items: center; justify-content: space-between; gap: 18px 28px;
	padding: calc(var(--loc-gap) * 1px) 0;
	border-radius: 0; outline-offset: 4px;
}
.nedclan-map .nmp-loc + .nmp-loc { border-top: calc(var(--nmp-divider-w, 1) * 1px) solid var(--nmp-divider, #8F8A85); }
.nedclan-map.nmp-multi .nmp-loc { cursor: pointer; }
.nedclan-map.nmp-multi .nmp-loc:focus-visible { outline: 2px solid var(--nmp-btn-bg, #D69A3A); }
.nedclan-map .nmp-label {
	display: flex; align-items: center; gap: 8px; margin: 0 0 4px; padding: 0;
	font-size: calc(var(--label) * 1px); font-weight: var(--nmp-label-weight, 400); color: var(--nmp-label-color, #D69A3A); line-height: 1.3;
}
.nedclan-map .nmp-label svg { width: 1.25em; height: 1.25em; flex: none; display: block; }
.nedclan-map .nmp-text { min-width: 0; flex: 1 1 auto; }
.nedclan-map .nmp-title {
	margin: 0 0 6px; padding: 0;
	font-family: inherit; font-size: calc(var(--title) * 1px); font-weight: var(--nmp-title-weight, 500);
	color: var(--nmp-title-color, #111); line-height: 1.2; letter-spacing: 0; text-transform: none;
}
.nedclan-map .nmp-meta {
	display: flex; align-items: center; gap: 10px; margin: 0 0 10px; padding: 0;
	font-size: calc(var(--meta) * 1px); color: var(--nmp-meta-color, #8A8580); line-height: 1.3; min-height: 1.6em;
}
.nedclan-map .nmp-dot { color: var(--nmp-meta-color, #8A8580); font-weight: 700; }
.nedclan-map .nmp-meta-icon { display: inline-flex; color: var(--nmp-meta-icon, #555); }
.nedclan-map .nmp-meta-icon svg { width: calc(var(--meta) * 1.65px); height: calc(var(--meta) * 1.65px); display: block; }
.nedclan-map .nmp-meta-text.is-action { cursor: pointer; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: currentColor; background: none; border: 0; padding: 0; font: inherit; color: inherit; }
.nedclan-map .nmp-meta-text.is-action:focus-visible { outline: 2px solid var(--nmp-btn-bg, #D69A3A); outline-offset: 2px; border-radius: 2px; }
.nedclan-map.nmp-no-meta .nmp-meta { display: none; }
.nedclan-map .nmp-address { margin: 0; padding: 0; font-size: calc(var(--addr) * 1px); color: var(--nmp-addr-color, #6E6A66); line-height: 1.4; }

.nedclan-map .nmp-btn {
	flex: none; display: inline-flex; align-items: center; justify-content: center; gap: 14px;
	height: calc(var(--btn-h) * 1px); padding: 0 calc(var(--btn-px) * 1px); margin: 0;
	background: var(--nmp-btn-bg, #D69A3A); color: var(--nmp-btn-text, #fff);
	border: calc(var(--nmp-btn-bw, 0) * 1px) solid var(--nmp-btn-bc, #D69A3A);
	border-radius: calc(var(--nmp-btn-radius, 999) * 1px);
	font-family: inherit; font-size: calc(var(--btn) * 1px); font-weight: var(--nmp-btn-weight, 500); line-height: 1;
	text-decoration: none; white-space: nowrap; cursor: pointer;
	--nmp-turn-arrow: var(--nmp-btn-bg, #D69A3A);
	transition: background-color .15s ease, color .15s ease;
}
.nedclan-map .nmp-btn:hover, .nedclan-map .nmp-btn:focus-visible {
	background: var(--nmp-btn-bg-hover, #B9771C); color: var(--nmp-btn-text-hover, #fff); text-decoration: none;
	--nmp-turn-arrow: var(--nmp-btn-bg-hover, #B9771C);
}
.nedclan-map .nmp-btn:focus-visible { outline: 3px solid var(--nmp-btn-bg, #D69A3A); outline-offset: 3px; }
/* Outline button: other locations (when "the location on the map is filled"), or every button (all outline) */
.nedclan-map.nmp-buttons-active .nmp-loc:not(.is-active) .nmp-btn,
.nedclan-map.nmp-buttons-outline .nmp-btn {
	background: var(--nmp-btn2-bg, #FFF1EA); color: var(--nmp-btn2-text, #C8862C);
	border: calc(var(--nmp-btn2-bw, 1.5) * 1px) solid var(--nmp-btn2-bc, #D69A3A);
	--nmp-turn-arrow: var(--nmp-btn2-bg, #FFF1EA);
}
.nedclan-map.nmp-buttons-active .nmp-loc:not(.is-active) .nmp-btn:hover,
.nedclan-map.nmp-buttons-active .nmp-loc:not(.is-active) .nmp-btn:focus-visible,
.nedclan-map.nmp-buttons-outline .nmp-btn:hover,
.nedclan-map.nmp-buttons-outline .nmp-btn:focus-visible {
	background: var(--nmp-btn2-bg-hover, #FCE3D3); color: var(--nmp-btn2-text-hover, #B9771C);
	--nmp-turn-arrow: var(--nmp-btn2-bg-hover, #FCE3D3);
}
.nedclan-map .nmp-btn-icon { display: inline-flex; }
.nedclan-map .nmp-btn-icon svg { width: 1.45em; height: 1.45em; display: block; }

/* Narrow card (phones, or a narrow column on desktop): button goes full-width under the text */
/* Narrow card (phones, or a narrow column on desktop): button goes full-width under the text.
   .nmp-narrow is set by map.js from the card's real width; the media query covers no-JS. */
.nedclan-map.nmp-narrow .nmp-list { padding: calc(var(--pad) * 0.4px) calc(var(--pad) * 1px) calc(var(--pad) * 0.6px); }
.nedclan-map.nmp-narrow .nmp-loc { flex-direction: column; align-items: stretch; }
.nedclan-map.nmp-narrow .nmp-btn { width: 100%; }

@media (max-width: 600px) {
	.nedclan-map .nmp-list { padding: calc(var(--pad) * 0.4px) calc(var(--pad) * 1px) calc(var(--pad) * 0.6px); }
	.nedclan-map .nmp-loc { flex-direction: column; align-items: stretch; }
	.nedclan-map .nmp-btn { width: 100%; }
}
.nedclan-map-notice { padding: 10px 14px; border: 1px dashed #C8862C; color: #8A5A16; background: #FFF8EE; font-size: 14px; }
.nedclan-map .nmp-loc.nmp-no-meta .nmp-meta { display: none; }
