/* WordPress / Elementor / Voxel integration for the ported design (not a design file).
   D3: Elementor wrappers around a block add no box of their own. */
#main.e-con, #ncd-header.e-con, #ncd-footer.e-con { display: block; padding: 0; min-width: 0; }
.elementor-widget[class*="elementor-widget-ncd-"] { margin: 0; }
.ncd-debug [class*="elementor-widget-ncd-"] { outline: 2px dashed #e0349b; outline-offset: -2px; }
/* Voxel sets text-rendering:geometricPrecision on every element; the design renders with auto. */
:where(.ncd-site) * { text-rendering: auto; }

/* Voxel-native templates (inc/native-templates.php): Elementor containers there only carry the
   design's classes; the design CSS does the layout, so the container's own flex/padding is off. */
.e-con.ncd-box { --display: block; --padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0; --gap: 0; --row-gap: 0; --column-gap: 0; --width: 100%; --min-height: 0; --container-max-width: none; --margin-block-start: 0; --margin-block-end: 0; }
.e-con.ncd-box.sp-lbody { --display: grid; }
.e-con.ncd-box.wrap { --padding-left: var(--gutter); --padding-right: var(--gutter); max-width: var(--max, 1240px); }
.ncd-box.sp-lbody > .ncd-col > * + *, .ncd-box.sp-lbody > .ncd-col > .elementor-widget + .elementor-widget { margin-top: 0; }
/* Voxel Post Feed holding design cards */
.elementor-widget-ts-post-feed .post-feed-grid { gap: clamp(14px, 2vw, 22px); }
.elementor-widget-ts-post-feed .ts-preview { height: 100%; }
.elementor-widget-ts-post-feed .ts-preview > .elementor { height: 100%; }
.elementor-widget-ts-post-feed.ev-list .post-feed-grid { gap: 12px; }
/* sections placed as separate widgets keep the design's 44px rhythm */
.e-con.ncd-box.ncd-col > .elementor-element + .elementor-element { margin-block-start: 44px; }
.e-con.ncd-box.sp-aside > .elementor-element + .elementor-element { margin-block-start: 18px; }
.sp-art-est:empty { display: none; }
/* search page (Voxel-native): art-form chips under the search band, results below */
.e-con.ncd-box.ncd-chiprow { padding-top: 18px; }
.ncd-chiprow .filter-row { margin-bottom: 0; }
.e-con.ncd-box.ncd-results { padding-top: 22px; padding-bottom: var(--block-y, 64px); }
.ncd-results .ncd-results-map { margin-bottom: 22px; border-radius: var(--r-card); overflow: hidden; }
.e-con.ncd-box.ncd-searchbar { padding: 22px 0; }
/* designed search page driven by a hidden Voxel Search Form (inc/search.php) */
.e-con.ncd-box.ncd-hidden-form { display: none; }
.e-con.ncd-box.sp-slayout { --display: grid; }
@media (max-width: 900px) { body:has(#mf-toggle:checked) .sp-side { display: block; } }
/* live town pages (Voxel loops over the town's places): five per art-form panel, as designed */
.single-ncd_city .sp-secpanel li:nth-child(n+6) { display: none; }
/* the Index rings on live town pages are bound to the town's own scores (native-templates.php ring()) */
/* map pins (inc/map-markers.php): the section's colours + its art-form object */
.map-marker.ncd-pin { position: relative; width: 40px; height: 50px; transform: translate(-50%, -100%); filter: drop-shadow(0 3px 4px rgba(0,0,0,.35)); }
.ncd-pin .ncd-pin-shape { position: absolute; inset: 0; width: 40px; height: 50px; fill: var(--sec-deep); stroke: var(--sec-sig); stroke-width: 2.5; }
.ncd-pin .ncd-pin-obj { position: absolute; left: 6px; top: 4px; width: 28px; height: 28px; }
.ncd-pin:hover .ncd-pin-shape, .ncd-pin.active .ncd-pin-shape { fill: var(--sec-sig); }
/* self-hosted tiles (staging/maps): the OpenMapTiles licence asks for its credit next to Voxel's "© OpenStreetMap contributors" */
.leaflet-control-attribution::before { content: "© OpenMapTiles · "; }
/* "Town area map" (listings with a town but no street point): a soft area circle, never a pin */
.map-marker.ncd-area { width: 160px; height: 160px; border-radius: 50%; background: color-mix(in srgb, var(--sec-sig, #2F6B45) 22%, transparent); border: 2px dashed var(--sec-deep, #0E1A14); pointer-events: none; }
.ncd-town-area .ts-preview { margin: 0; }
.ncd-town-area .ncd-area-note, .ncd-town-area .elementor-widget-text-editor { margin-top: 10px; color: var(--ink, #17181A); }
