/*
Theme Name: Bookgea Stays
Theme URI: https://bookgea.com/
Author: Bookgea
Description: Bookgea Stays — listings + search + map + messages. Modern dark-green & sand palette.
Version: 0.4.23
Requires at least: 6.0
Tested up to: 6.5
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: needmaster
Tags: directory, responsive, custom-post-types, translation-ready
*/

:root{
  --nm-max: 1320px;
  --nm-gap: 16px;
  --nm-radius: 18px;
  --nm-border: rgba(0,0,0,.12);
  --nm-bg: #fff;
  --nm-muted: rgba(0,0,0,.62);

  /* Brand palette */
  --nm-sand: #f5ead6;
  --nm-gold: #c9a227;
  --nm-accent: #0b3d2e;       /* dark green */
  --nm-accent-dark: #072a1f;  /* darker green */
  --nm-accent-soft: rgba(11,61,46,.12);
  --nm-shadow: 0 22px 55px rgba(15, 23, 42, .10), 0 8px 22px rgba(15, 23, 42, .06);
  --nm-shadow-sm: 0 10px 26px rgba(15, 23, 42, .10), 0 3px 10px rgba(15, 23, 42, .06);
}


*{box-sizing:border-box}
body{
  margin:0;
  background: var(--nm-sand);
  font-family: ui-sans-serif, system-ui, -apple-system, "SF Pro Display", "SF Pro Text", Segoe UI, Roboto, Inter, Arial, sans-serif;
  line-height:1.55;
  letter-spacing:-0.01em;
  color:#0b0b0f;
 overflow-x:hidden;}

/* Ensure WP wrappers don't constrain layout width (some plugins/themes set narrow max-width) */
html, body{
  width:100%;
  max-width:none !important;
}

/* Consent / legal checkboxes */
.nm-consent{
  display:flex;
  gap:10px;
  align-items:flex-start;
  font-size:13px;
  color: var(--nm-muted);
  line-height:1.35;
}
.nm-consent input{ margin-top:3px; }
.nm-consent a{ text-decoration:underline; }

#page, .site, #content, #primary, .site-content, .content-area, .site-main{
  width:100% !important;
  max-width:none !important;
}
a{color:inherit}
.nm-wrap{max-width:var(--nm-max); margin:0 auto; padding: 0 16px;}

.nm-header{
  background:var(--nm-bg);
  border-bottom:1px solid var(--nm-border);
  /* Keep header above Leaflet map panes/controls (Leaflet uses z-index up to ~1000). */
  position:sticky; top:0; z-index:24000;
}
.nm-header__inner{display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; padding: 12px 0; gap:10px;}
.nm-header__brandrow{width:100%; display:flex; align-items:center; gap:12px; flex-wrap:wrap;}
.nm-header__navrow{width:100%; display:flex; align-items:center; justify-content:flex-start; gap:12px;}
.nm-header__actions{display:flex; gap:10px; align-items:center; margin-left:auto; } 
.nm-nav{flex:1 1 auto;}
.nm-header__actions .nm-btn{padding: 10px 14px;} 
.nm-header__actions .nm-btn--ghost{background: rgba(255,255,255,.88);} 

.nm-header__actions .nm-btn--ghost{border-color: rgba(0,0,0,.12);} 
.nm-header__actions .nm-btn--ghost:hover{background: rgba(11,61,46,.08);} 
.nm-header__actions .nm-btn--primary{box-shadow: 0 10px 24px rgba(11,61,46,.18);} 


.nm-brand{display:flex; gap:10px; align-items:center; text-decoration:none; min-width: 220px;}
.nm-brand__name{font-weight:800; letter-spacing:.2px;}
.nm-brand__tagline{
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color: var(--nm-gold);
  opacity: 0.92;
}
.nm-nav{width:100%;}
.nm-header__navrow .nm-nav{width:auto; flex:1 1 auto;}
.nm-nav__list{list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:14px; align-items:center;}
.nm-nav__list li{margin:0; padding:0;}
.nm-nav a{margin:0; text-decoration:none; color:var(--nm-muted); font-weight:800;}
.nm-nav a:hover{color:#111}

/* Primary menu links as pill buttons (match header actions) */
.nm-header__navrow .nm-nav__list > li > a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.88);
  color: #111;
  font-weight: 900;
  text-decoration: none;
  line-height: 1;
  box-shadow: 0 8px 18px rgba(15,23,42,.06);
  transition: transform .12s ease, background .12s ease, border-color .12s ease, box-shadow .12s ease, color .12s ease;
}
.nm-header__navrow .nm-nav__list > li > a:hover{
  background: rgba(11,61,46,.08);
  border-color: rgba(0,0,0,.18);
  transform: translateY(-1px);
}
.nm-header__navrow .nm-nav__list > li.current-menu-item > a,
.nm-header__navrow .nm-nav__list > li.current_page_item > a,
.nm-header__navrow .nm-nav__list > li.current-menu-ancestor > a,
.nm-header__navrow .nm-nav__list > li.current-menu-parent > a{
  background: var(--nm-accent);
  border-color: rgba(0,0,0,.10);
  color: #fff;
  box-shadow: 0 12px 26px rgba(11,61,46,.18);
}
.nm-header__navrow .nm-nav__list > li.current-menu-item > a:hover,
.nm-header__navrow .nm-nav__list > li.current_page_item > a:hover,
.nm-header__navrow .nm-nav__list > li.current-menu-ancestor > a:hover,
.nm-header__navrow .nm-nav__list > li.current-menu-parent > a:hover{
  background: var(--nm-accent-dark);
  transform: translateY(-1px);
}

/* Keep spacing tight on small screens */
@media (max-width: 620px){
  .nm-nav__list{gap: 10px;}
  .nm-header__navrow .nm-nav__list > li > a{padding: 9px 12px; font-size: 13px;}
}

.nm-card{
  background:var(--nm-bg);
  border:1px solid var(--nm-border);
  border-radius: var(--nm-radius);
  padding: 16px;
  box-shadow: 0 12px 34px rgba(15,23,42,.06), 0 2px 10px rgba(15,23,42,.05);
}
.nm-hero{padding: 28px 0 18px;}
.nm-hero h1{margin:0 0 8px; font-size: clamp(30px, 4.6vw, 54px); line-height:1.05; letter-spacing:-0.03em;}
.nm-hero p{margin:0; color:var(--nm-muted); max-width: 70ch;}


/* Hero background (photo behind, full-width search overlay) */
.nm-hero--bg{
  display:block;
  /* Fallback (JS swaps between multiple hero images) */
  background: url('assets/img/hero/hero-1.jpg') center/cover no-repeat;
  padding: 0;
  overflow: hidden;
}
.nm-hero__bg-layer{
  position:absolute;
  inset:0;
  background: center/cover no-repeat;
  opacity: 0;
  transition: opacity 1200ms ease;
  transform: scale(1.02);
  z-index: 0;
}
.nm-hero__bg-layer--a{
  background-image: url('assets/img/hero/hero-1.jpg');
  opacity: 1;
}
.nm-hero__bg-layer.is-active{ opacity: 1; }
.nm-hero--bg .nm-hero__inner{ position:relative; z-index: 2; }
.nm-hero--bg::after{
  /* keep photo visible, add subtle contrast for text */
  z-index: 1;
  background:
    linear-gradient(90deg,
      rgba(11,18,32,.62) 0%,
      rgba(11,18,32,.35) 52%,
      rgba(11,18,32,.18) 100%),
    radial-gradient(circle at 70% 40%, rgba(201,162,39,.22), transparent 58%),
    radial-gradient(circle at 35% 80%, rgba(11,61,46,.18), transparent 60%);
}
.nm-hero__inner--overlay{
  padding: clamp(22px, 4.2vw, 58px);
}
.nm-hero__overlay{
  max-width: var(--nm-max);
  margin: 0 auto;
  background: none;
  border: none;
  border-radius: 0;
  padding: 0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none;
}
.nm-hero--bg .nm-kicker{
  color: rgba(255,255,255,.78);
}
.nm-hero--bg .nm-h1{
  color: #fff;
  text-shadow: 0 18px 46px rgba(0,0,0,.35);
}
.nm-hero--bg .nm-lead{
  color: rgba(255,255,255,.86);
  max-width: 54ch;
}
.nm-hero--bg .nm-hero__trust .nm-pill--muted{
  background: rgba(255,255,255,.14);
  border-color: rgba(255,255,255,.18);
  color: rgba(255,255,255,.92);
}
.nm-hero__search--wide{
  margin-top: 18px;
  width: 100%;
}
.nm-hero__search--wide .nm-searchBox{
  width: 100%;
  background: rgba(255,255,255,.72);
  background-image: linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,255,255,.70));
  border: 1px solid rgba(255,255,255,.55);
  box-shadow: 0 24px 60px rgba(0,0,0,.28);
  backdrop-filter: blur(16px) saturate(120%);
  -webkit-backdrop-filter: blur(16px) saturate(120%);
}
@media (max-width: 720px){
  .nm-hero__inner--overlay{ padding: 18px; }
  .nm-hero--bg::after{
    background:
      linear-gradient(180deg,
        rgba(11,18,32,.70) 0%,
        rgba(11,18,32,.48) 55%,
        rgba(11,18,32,.28) 100%),
      radial-gradient(circle at 70% 15%, rgba(201,162,39,.20), transparent 58%),
      radial-gradient(circle at 35% 90%, rgba(11,61,46,.14), transparent 60%);
  }
}


/* Modern hero with integrated search + map (high-end) */
.nm-hero--search{
  position:relative;
  padding: 14px;
  border-radius: calc(var(--nm-radius) + 14px);
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  box-shadow: var(--nm-shadow);
}
.nm-hero--search::after{
  content:'';
  position:absolute;
  inset:0;
  background: radial-gradient(circle at 78% 50%, rgba(201,162,39,.14), transparent 55%);
  pointer-events:none;
}
/* Ensure background layers stay absolute for hero rotation */
.nm-hero--search > .nm-hero__inner{position:relative; z-index:1;}
.nm-hero--search > .nm-hero__bg-layer{position:absolute; z-index:0; pointer-events:none;}

/*
  IMPORTANT: the hero container used to have overflow:hidden (from both .nm-hero--bg and .nm-hero--search),
  which clipped dropdown panels (e.g. the Region multi-select) at the bottom of the hero.
  Allow overflow so the panel can extend beyond the hero.
  We keep the rounded look by applying the same radius to the background layers and overlays.
*/
.nm-hero--search.nm-hero--bg{ overflow: visible; }
.nm-hero--search::after{ border-radius: calc(var(--nm-radius) + 14px); }
.nm-hero--search > .nm-hero__bg-layer{ border-radius: calc(var(--nm-radius) + 14px); }


.nm-hero__inner--split{
  display:grid;
  gap: 16px;
  padding: 14px;
}
@media (min-width: 980px){
  .nm-hero__inner--split{grid-template-columns: 1.05fr 0.95fr; gap: 20px; padding: 18px;}
}

.nm-hero__left .nm-lead{margin-top: 6px;}
.nm-hero__search{margin-top: 14px;}

.nm-card--heroForm{padding: 16px 16px;}
.nm-card--heroMap{padding: 14px;}
.nm-card--heroMap .nm-map{height: 520px;}
@media (max-width: 899px){
  .nm-card--heroMap .nm-map{height: 340px;}
}

.nm-form__heroTitle{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom: 12px;}
.nm-form__heroTitleText{display:flex; flex-direction:column; gap:2px;}
.nm-form__heroTitleText strong{font-size: 14px;}
.nm-form__heroTitleText span{font-size: 12px; color: var(--nm-muted);}

.nm-formGrid{display:grid; gap: 12px;}
@media (min-width: 720px){
  .nm-form--hero .nm-formGrid{grid-template-columns: 1fr 1fr;}
}

.nm-field label{display:block; margin: 0 0 7px; font-weight:650; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color: rgba(0,0,0,.55);}
.nm-form--hero input,
.nm-form--hero select{
  width:100%;
  padding: 14px 14px;
  border-radius: 16px;
  border:1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.96);
  outline:none;
  box-shadow: 0 1px 0 rgba(255,255,255,.7) inset;
}
.nm-form--hero select{appearance:none;-webkit-appearance:none;background-image: linear-gradient(45deg, transparent 50%, rgba(0,0,0,.42) 50%), linear-gradient(135deg, rgba(0,0,0,.42) 50%, transparent 50%);background-position: calc(100% - 18px) calc(50% - 2px), calc(100% - 12px) calc(50% - 2px);background-size: 6px 6px, 6px 6px;background-repeat:no-repeat;padding-right: 36px;}
.nm-form--hero input:focus,
.nm-form--hero select:focus{
  border-color: rgba(11,61,46,.55);
  box-shadow: 0 0 0 4px rgba(11,61,46,.16);
}

.nm-formActions{display:flex; gap:10px; align-items:center; margin-top: 14px; flex-wrap:wrap;}
.nm-help{margin: 8px 0 0; color: var(--nm-muted); font-size: 13px;}
.nm-help--hero{margin-top: 10px;}

/* Destination autocomplete + price range */
.nm-range{display:flex; gap:10px; align-items:center;}
.nm-range input{flex:1; min-width:0;}
.nm-range__sep{opacity:.55; font-weight:800;}

.nm-ac{position:relative;}
.nm-ac__list{position:absolute; left:0; right:0; top: calc(100% + 6px); z-index: 80; background:#fff; border:1px solid rgba(0,0,0,.12); border-radius: 16px; box-shadow: 0 12px 36px rgba(0,0,0,.14); overflow:hidden;}
.nm-ac__item{display:block; width:100%; text-align:left; padding: 11px 12px; background:transparent; border:0; cursor:pointer; font-size:14px;}
.nm-ac__item:hover{background: rgba(0,0,0,.04);} 
.nm-ac__empty{padding: 11px 12px; font-size:13px; color: var(--nm-muted);} 

/* Advanced filters toggle */
.nm-adv{margin-top: 2px; border:1px solid rgba(0,0,0,.10); border-radius: 18px; padding: 10px 12px; background: rgba(255,255,255,.70);} 
.nm-adv__sum{cursor:pointer; font-weight:800; font-size: 13px; color: rgba(0,0,0,.75);} 
.nm-adv__grid{margin-top: 10px; display:grid; gap: 12px;} 
@media (min-width: 720px){ .nm-adv__grid{grid-template-columns: 1fr 1fr;} }

.nm-resultsHeader{display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin: 12px 0 10px;}
.nm-resultsHeader strong{font-size: 14px;}

.nm-kicker{display:inline-flex; font-weight:900; letter-spacing:.3px; text-transform:uppercase; font-size:11px; color: rgba(0,0,0,.62);}
.nm-hero__cta{display:flex; flex-wrap:wrap; gap:10px; margin-top: 14px;}
.nm-note{
  margin-top: 14px;
  padding: 12px 12px;
  border-radius: 14px;
  border:1px dashed rgba(0,0,0,.16);
  background: rgba(255,255,255,.70);
  backdrop-filter: blur(8px);
}
.nm-card--glass{
  background: rgba(255,255,255,.78);
  backdrop-filter: blur(16px) saturate(120%);
  border-color: rgba(0,0,0,.14);
  box-shadow: 0 8px 30px rgba(0,0,0,.08);
}

.nm-grid{display:grid; gap: var(--nm-gap);}
.nm-grid--2{grid-template-columns: 1fr;}
.nm-grid--3{grid-template-columns: 1fr;}
@media (min-width: 900px){.nm-grid--3{grid-template-columns: repeat(3, 1fr);} }
@media (min-width: 900px){
  .nm-grid--2{grid-template-columns: 420px 1fr;}
}

.nm-form label{display:block; font-size:13px; font-weight:800; margin: 10px 0 6px;}
.nm-form input, .nm-form select, .nm-form textarea{
  width:100%;
  padding: 10px 12px;
  border:1px solid var(--nm-border);
  border-radius: 16px;
  background:#fff;
  font: inherit;
}
.nm-form select[multiple]{min-height: 120px;}
.nm-form .nm-row{display:grid; gap:12px; grid-template-columns: 1fr;}
@media (min-width: 720px){
  .nm-form .nm-row--2{grid-template-columns:1fr 1fr;}
  .nm-form .nm-row--3{grid-template-columns:1fr 1fr 1fr;}
}
.nm-btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding: 10px 14px;
  border-radius: 999px;
  border:1px solid var(--nm-border);
  background:var(--nm-accent);
  color:#fff;
  font-weight:900;
  text-decoration:none;
  cursor:pointer;
}
.nm-btn--sm{padding: 7px 10px; font-size: 12px;}
.nm-btn--editBig{padding: 12px 18px; font-size: 13px; letter-spacing:.2px;}
.nm-btn--primary{background:var(--nm-accent); border-color: rgba(0,0,0,.10);} 
.nm-btn--ghost{background:#fff; color:#111;}
.nm-btn:hover{filter: brightness(0.98);} 
.nm-btn--primary:hover{background:var(--nm-accent-dark);} 
.nm-btn--ghost:hover{background: rgba(11,61,46,.08);} 
.nm-btn:disabled{opacity:.6; cursor:not-allowed;}

.nm-results{display:grid; gap:12px;}
.nm-result{display:grid; gap:8px;}
.nm-result__title{margin:0; font-size:18px;}
.nm-result__meta{font-size:13px; color:var(--nm-muted); display:flex; flex-wrap:wrap; gap:8px;}
.nm-pill{display:inline-flex; align-items:center; gap:6px; padding: 3px 10px; border:1px solid var(--nm-border); border-radius:999px; font-size:12px; background:#fff;}
.nm-badge{background:#111; color:#fff; border-color:#111;}
.nm-map{height: 380px; border-radius: var(--nm-radius); overflow:hidden; border:1px solid var(--nm-border);}
@media (max-width: 899px){
  .nm-map{height: 320px;}
}

.nm-footer{padding: 24px 0; color:var(--nm-muted); font-size:13px;}

.nm-split{display:flex; flex-wrap:wrap; gap:10px; align-items:center;}
.nm-alert{padding:12px 14px; border-radius: 16px; border:1px dashed var(--nm-border); background:#fff;}
.nm-table{width:100%; border-collapse:collapse; font-size:14px;}
.nm-table th,.nm-table td{padding:10px; border-bottom:1px solid var(--nm-border); text-align:left; vertical-align:top;}
.nm-table th{font-size:12px; color:var(--nm-muted); text-transform:uppercase; letter-spacing:.4px;}


/* Pro polish */
.nm-h1{margin:0 0 6px; font-size: clamp(28px, 4vw, 46px); line-height:1.08;}
.nm-h2{margin:0; font-size: clamp(20px, 2.6vw, 28px); line-height:1.2;}
.nm-h3{margin:0; font-size: 18px; line-height:1.25;}
.nm-lead{margin:0; color:var(--nm-muted); max-width: 70ch;}
.nm-muted{color:var(--nm-muted);}
.nm-section{margin: 18px 0;}
.nm-section__head{margin: 0 0 12px;}
.nm-section__head--row{display:flex; align-items:flex-end; justify-content:space-between; gap:12px; flex-wrap:wrap;}
.nm-section__actions{display:flex; gap:10px; align-items:center;}


/* How it works */
.nm-how__grid{margin-top: 10px;}
.nm-how__card{position:relative;}
.nm-how__icon{
  width:44px; height:44px;
  border-radius: 14px;
  display:flex; align-items:center; justify-content:center;
  background: var(--nm-accent-soft);
  color: var(--nm-accent);
  border: 1px solid rgba(11,61,46,.18);
  margin-bottom: 10px;
}
.nm-how__card .nm-h3{margin: 8px 0 6px;}

/* Section bands */
.nm-band{padding: 16px; border-radius: calc(var(--nm-radius) + 6px); border:1px solid var(--nm-border);}
.nm-band--donation{background: linear-gradient(180deg, rgba(0,170,80,.06), rgba(255,255,255,1));}
.nm-band--latest{background: linear-gradient(180deg, rgba(0,0,0,.03), rgba(255,255,255,1));}
.nm-pagehead h2{margin:0 0 6px;}
.nm-pagehead p{margin:0; color:var(--nm-muted); max-width:75ch;}
.nm-card--soft{background:linear-gradient(180deg,#fff, #fbfbfb);}
.nm-cards{display:grid; gap:12px; grid-template-columns: 1fr;}
.nm-cards--compact .nm-card{padding:14px;}
@media (min-width: 720px){
  .nm-cards{grid-template-columns: repeat(2, 1fr);}
}
@media (min-width: 980px){
  .nm-cards{grid-template-columns: repeat(3, 1fr);}
}
.nm-card__top{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px;}
.nm-card__meta{display:flex; flex-wrap:wrap; gap:8px; margin-top:10px;}

.nm-pill--green{border-color: rgba(0, 170, 80, .45); background: rgba(0, 170, 80, .08); color:#0b6b2d; font-weight:900;}
.nm-btn--green{background:#0b6b2d; border-color: rgba(0,0,0,.08);}

.nm-card--donation{border: 2px solid rgba(0, 170, 80, .55); box-shadow: 0 6px 18px rgba(0,0,0,.06);}
.nm-result.nm-card--donation{border-width:2px;}

.nm-split--between{justify-content:space-between; align-items:flex-start;}
.nm-tablewrap, .nm-tableWrap{width:100%; overflow:auto; border-radius: 16px; border:1px solid var(--nm-border);}
.nm-table{min-width: 720px; background:#fff;}
.nm-table tr:hover td{background: rgba(0,0,0,.02);}
@media (max-width: 760px){
  .nm-table{min-width: 620px;}
}

/* Dashboard */
.nm-dashboard{display:grid; gap:16px;}
.nm-dashboard__hero{background: linear-gradient(135deg, rgba(11,61,46,.14), rgba(255,255,255,1));}
.nm-dashboard__stats{display:grid; gap:12px; grid-template-columns: repeat(2, 1fr);}
@media (min-width: 720px){
  .nm-dashboard__stats{grid-template-columns: repeat(3, 1fr);}
}
.nm-stat{display:flex; flex-direction:column; gap:4px;}
.nm-stat__num{font-size: 28px; font-weight: 900; letter-spacing: -.3px;}
.nm-dashboard__grid{display:grid; gap:16px; grid-template-columns: 1fr;}
@media (min-width: 980px){
  .nm-dashboard__grid{grid-template-columns: 1.25fr .75fr; align-items:start;}
}

/* Dashboard listing cards: use tile layout (prevents stretched thumbs in a multi-column grid) */
.nm-dashboard .nm-resultCard{
  grid-template-columns: 1fr !important;
  gap: 12px;
}
.nm-dashboard .nm-resultCard__media{
  width: 100%;
  height: 190px;
}

/* Homepage / browse: Country picker */
.nm-countryGrid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
@media (min-width: 680px){
  .nm-countryGrid{grid-template-columns: repeat(4, minmax(0, 1fr));}
}
@media (min-width: 980px){
  .nm-countryGrid{grid-template-columns: repeat(6, minmax(0, 1fr));}
}
.nm-countryChip{
  display:flex;
  align-items:center;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid var(--nm-border);
  border-radius: 999px;
  background:#fff;
  text-decoration:none;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .06);
  transition: transform 140ms ease, border-color 140ms ease, background 140ms ease;
}
.nm-countryChip:hover{
  transform: translateY(-1px);
  border-color: rgba(11,61,46,.35);
  background: rgba(11,61,46,.06);
}
.nm-countryChip.is-active{
  border-color: rgba(11,61,46,.5);
  background: rgba(11,61,46,.10);
}
.nm-countryFlag{
  width: 32px; height: 32px;
  display:flex; align-items:center; justify-content:center;
  border-radius: 10px;
  background: rgba(0,0,0,.03);
  border: 1px solid rgba(0,0,0,.08);
  font-size: 20px;
  flex: 0 0 auto;
}
.nm-countryFlagImg{
  width: 24px;
  height: 18px;
  display:block;
  object-fit: cover;
  border-radius: 4px;
}
.nm-countryFlagEmoji{line-height: 1;}
.nm-countryName{font-weight: 900; line-height: 1.1;}

/* Browse page: Category chooser */
.nm-catGrid{
  display:grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
@media (min-width: 740px){
  .nm-catGrid{grid-template-columns: repeat(2, minmax(0, 1fr));}
}
@media (min-width: 1060px){
  .nm-catGrid{grid-template-columns: repeat(3, minmax(0, 1fr));}
}
.nm-catCard{padding:0; overflow:hidden;}
.nm-catCard__media{
  position:relative;
  display:block;
  height: 160px;
  background:
    linear-gradient(135deg, rgba(11,61,46,.24), rgba(0,0,0,.05));
  background-position:center;
  background-size:cover;
  text-decoration:none;
}
.nm-catCard__mediaOverlay{
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.55));
}
.nm-catCard__mediaText{
  position:absolute; left: 14px; right: 14px; bottom: 12px;
  color:#fff;
}
.nm-catCard__kicker{font-size: 12px; opacity: .9; font-weight: 800; letter-spacing: .3px;}
.nm-catCard__title{font-size: 20px; font-weight: 950; line-height: 1.1; margin-top: 4px;}
.nm-catCard__cta{margin-top: 8px; font-size: 13px; font-weight: 900; opacity: .95;}
.nm-catCard__subcats{
  padding: 12px 14px 14px;
  border-top: 1px solid rgba(0,0,0,.08);
  display:flex;
  flex-wrap:wrap;
  gap: 8px;
}
.nm-subcatPill{
  display:inline-flex;
  align-items:center;
  gap: 6px;
  padding: 6px 10px;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 999px;
  background:#fff;
  text-decoration:none;
  font-size: 12px;
  font-weight: 900;
  transition: background 140ms ease, border-color 140ms ease;
}
.nm-subcatPill:hover{
  background: rgba(11,61,46,.06);
  border-color: rgba(11,61,46,.35);
}
.nm-dashboard .nm-resultCard__media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.nm-dashboard .nm-resultCard__excerpt{
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.nm-dashboard .nm-btn--editBig{
  padding: 14px 22px;
  font-size: 14px;
  box-shadow: 0 10px 24px rgba(11,61,46,.22);
}


/* Add Listing: area picker UI */
.nm-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:12px;}
.nm-chips{display:flex; gap:8px; flex-wrap:wrap; margin-top:10px;}
.nm-chip{
  display:inline-flex; align-items:center; gap:8px;
  padding: 6px 10px;
  border:1px solid var(--nm-border);
  border-radius: 999px;
  background:#fff;
  font-size: 12px;
}
.nm-chip button{
  border:0; background:transparent; cursor:pointer; font-size:16px; line-height:1;
}

.nm-checklist{
  border:1px solid var(--nm-border);
  border-radius: 16px;
  padding: 8px;
  background:#fff;
}
.nm-checklist--scroll{max-height: 220px; overflow:auto;}
.nm-check{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding: 6px 8px;
  border-radius: 10px;
  cursor:pointer;
}
.nm-check:hover{background: rgba(0,0,0,.03);}
.nm-check input{margin-top:3px;}


/* Category picker */
.nm-inline-search{margin-top:10px;}
.nm-inline-search input{width:100%;}
/* ---------- High-end type scale ---------- */
.nm-h1{font-size: clamp(34px, 4.2vw, 54px); line-height: 1.05; letter-spacing: -0.02em;}
.nm-h2{font-size: clamp(22px, 2.2vw, 30px); line-height: 1.15; letter-spacing: -0.015em;}
.nm-h3{font-size: 18px; line-height: 1.25; letter-spacing: -0.01em;}
.nm-lead{font-size: 17px; line-height: 1.55; max-width: 66ch;}
.nm-muted{color: rgba(15,23,42,.62);}

/* ---------- Hero stack layout (front page) ---------- */
.nm-hero--search.nm-hero--stack{
  background-image: url("assets/img/hero-premium.svg");
  background-size: cover;
  background-position: center top;
}
.nm-hero--stack .nm-hero__inner{display:block;}
.nm-hero__top{max-width: 74ch;}
.nm-hero__searchRow{margin-top: 18px;}
.nm-hero__mapRow{margin-top: 14px;}
.nm-hero--stack .nm-card--heroMap .nm-map{height: 420px;}
@media (max-width: 720px){
  .nm-hero--stack .nm-card--heroMap .nm-map{height: 360px;}
}

/* Make hero form feel premium */
.nm-form--hero .nm-fields{grid-template-columns: 1.2fr 1fr 1fr 1fr; gap: 12px;}
@media (max-width: 980px){
  .nm-form--hero .nm-fields{grid-template-columns: 1fr 1fr;}
}
@media (max-width: 520px){
  .nm-form--hero .nm-fields{grid-template-columns: 1fr;}
}
.nm-form--hero input, .nm-form--hero select{
  height: 44px;
  border-radius: 16px;
  border: 1px solid rgba(15,23,42,.14);
  background: rgba(255,255,255,.96);
}
.nm-form--hero label{font-weight: 800; color: rgba(15,23,42,.72);}
.nm-formActions{gap:10px;}
.nm-formActions .nm-btn{height: 44px; padding: 0 18px; border-radius: 999px;}

/* ---------- Premium result cards (archive + search results) ---------- */
.nm-results--premium{gap:14px;}
.nm-resultCard{display:grid; grid-template-columns: 168px 1fr; gap: 14px; padding: 14px; border-radius: 18px;}
.nm-resultCard__media{position:relative; display:block; border-radius: 14px; overflow:hidden; background: rgba(15,23,42,.04);}
.nm-resultCard__media img{display:block; width:100%; height: 100%; object-fit: cover; transform: scale(1.001);}
.nm-resultCard__body{display:flex; flex-direction:column; gap: 8px; min-width: 0;}
.nm-resultCard__head{display:flex; align-items:flex-start; justify-content:space-between; gap: 12px;}
.nm-resultCard__title{margin:0; font-size: 18px; line-height:1.2; letter-spacing:-0.01em;}
.nm-resultCard__title a{text-decoration:none; color:#0f172a;}
.nm-resultCard__title a:hover{text-decoration:underline;}
.nm-resultCard__date{font-size: 12px; color: rgba(15,23,42,.55); white-space:nowrap; margin-top:2px;}
.nm-resultCard__meta{font-size: 12px; font-weight: 900; color: rgba(15,23,42,.62); letter-spacing: .01em;}
.nm-resultCard__chips{display:flex; flex-wrap:wrap; gap: 8px; font-size: 12px;}
.nm-resultCard__excerpt{margin:0; color: rgba(15,23,42,.70);}
.nm-resultCard__footer{margin-top:auto; display:flex; align-items:center; justify-content:flex-end;}
.nm-resultCard__cta{font-weight: 900; color: var(--nm-accent);}

.nm-resultCard:hover{transform: translateY(-1px); box-shadow: 0 18px 48px rgba(15,23,42,.10), 0 2px 12px rgba(15,23,42,.06);}
.nm-resultCard{transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;}
/* Supported badge (subtle, no card frame) */
.nm-badge--supported{position:absolute; top:10px; left:10px; background: rgba(22,163,74,.92); border:1px solid rgba(0,0,0,.10); color:#fff; padding: 6px 10px; border-radius: 999px; font-size: 12px; font-weight: 900;}

.nm-resultCard--compact{grid-template-columns: 140px 1fr;}
@media (max-width: 720px){
  .nm-resultCard{grid-template-columns: 1fr; }
  .nm-resultCard__media{height: 180px;}
  .nm-resultCard--compact{grid-template-columns: 1fr;}
}

/* ---------- Single listing (high-end) ---------- */
.nm-listingHero{position:relative; border-radius: 22px; overflow:hidden; margin-bottom: 16px;}
.nm-listingHero__bg{position:absolute; inset:0; background: radial-gradient(900px 420px at 20% 10%, rgba(11,61,46,.16), transparent 55%), radial-gradient(700px 380px at 85% 20%, rgba(15,23,42,.10), transparent 60%), rgba(255,255,255,.75); backdrop-filter: blur(6px);}
.nm-listingHero__inner{position:relative; display:grid; grid-template-columns: 420px 1fr; gap: 18px; padding: 18px;}
.nm-listingHero__media{position:relative; border-radius: 18px; overflow:hidden; background: rgba(15,23,42,.04); min-height: 280px;}
.nm-listingHero__media img{width:100%; height:100%; object-fit: cover; display:block;}
.nm-listingHero__badge{position:absolute; top:12px; left:12px;}
.nm-breadcrumbs{display:flex; gap:10px; align-items:center; font-size: 13px; color: rgba(15,23,42,.62); margin-bottom: 8px;}
.nm-breadcrumbs a{color: rgba(15,23,42,.72); text-decoration:none; font-weight: 800;}
.nm-breadcrumbs a:hover{text-decoration:underline;}
.nm-listingHero__title{margin: 0 0 10px;}
.nm-listingHero__chips{display:flex; flex-wrap:wrap; gap: 8px; margin-bottom: 14px;}
.nm-listingHero__actions{display:flex; gap: 10px; flex-wrap:wrap;}
.nm-listingHero__meta{margin-top: 10px; font-size: 13px;}
@media (max-width: 980px){
  .nm-listingHero__inner{grid-template-columns: 1fr; }
  .nm-listingHero__media{min-height: 220px;}
}

.nm-listingGrid{display:grid; grid-template-columns: 1fr 360px; gap: 14px;}
@media (max-width: 980px){
  .nm-listingGrid{grid-template-columns: 1fr; }
}
.nm-sectionCard{padding: 18px;}
.nm-prose p{margin-top: 0;}
.nm-prose a{color: var(--nm-accent); font-weight: 800;}
.nm-contactCard__rows{display:grid; gap:10px;}
.nm-contactRow{display:grid; grid-template-columns: 26px 1fr; gap: 10px; align-items:start;}
.nm-contactRow__k{opacity: .85;}
.nm-contactRow__v{font-weight: 800; color: rgba(15,23,42,.86);}
.nm-contactRow__v a{color: rgba(15,23,42,.86); text-decoration: none;}
.nm-contactRow__v a:hover{text-decoration: underline;}
.nm-map--single{height: 320px;}

/* ---------- Polishing: pills/badges ---------- */
.nm-pill{border-radius: 999px; padding: 6px 10px; border:1px solid rgba(15,23,42,.12); background: rgba(255,255,255,.96);}
.nm-pill--muted{background: rgba(15,23,42,.04); border-color: rgba(15,23,42,.10); color: rgba(15,23,42,.72);}
.nm-badge{background: var(--nm-accent); border-color: rgba(0,0,0,.10);}

/* ---------- Better vertical rhythm ---------- */
.nm-section{padding: 36px 0;}
.nm-band{padding: 28px 0;}
.nm-card{border-color: rgba(15,23,42,.10);}



/* ============ v3.6 UX polish: search + results + map toggle ============ */

.nm-hero__trust{display:flex; gap:8px; flex-wrap:wrap; margin-top:12px;}
.nm-hero__toolbar{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top: 14px; padding: 8px 4px;}
.nm-hero__toolbarHint{font-size: 13px;}
.nm-btn--icon{display:inline-flex; align-items:center; gap:8px;}

.nm-hero__resultsRow{margin-top: 10px;}
.nm-results--live{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 14px;
}

.nm-hero__mapRow--narrow{max-width: 1100px; margin: 14px auto 0;}
#nmMapWrap{
  transition: max-height .45s ease, opacity .35s ease, transform .35s ease;
  max-height: 800px;
  opacity: 1;
  transform: translateY(0);
}
#nmMapWrap.is-collapsed{
  max-height: 0;
  opacity: 0;
  transform: translateY(-6px);
  overflow:hidden;
  pointer-events:none;
  margin-top: 0;
}
#nmMapWrap .nm-map{height: 420px;}
@media (max-width: 899px){
  #nmMapWrap .nm-map{height: 340px;}
}

/* Search form grid: make it feel "premium" */
.nm-formGrid--search{
  display:grid;
  grid-template-columns: 1.05fr 1.15fr 1fr 1fr;
  gap: 12px;
}
@media (max-width: 980px){
  .nm-formGrid--search{grid-template-columns: 1fr 1fr;}
}
@media (max-width: 560px){
  .nm-formGrid--search{grid-template-columns: 1fr;}
}

/* Multi-select component (enhanced UX) */
.nm-multiSelect{display:block; width:100%;}
.nm-ms{position:relative;}
.nm-ms__button{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding: 12px 12px;
  border-radius: 16px;
  border:1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.96);
  cursor:pointer;
  line-height:1.2;
}
.nm-form--hero .nm-ms__button{background: rgba(255,255,255,.88);}
.nm-ms__value{display:flex; flex-wrap:wrap; gap:6px; align-items:center;}
.nm-ms__placeholder{color: rgba(0,0,0,.55);}
.nm-ms__chev{opacity:.55;}
.nm-ms__panel{
  position:absolute;
  top: calc(100% + 8px);
  left:0;
  right:0;
  z-index: 30;
  background: #fff;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 14px;
  box-shadow: 0 18px 48px rgba(15,23,42,.12), 0 4px 14px rgba(15,23,42,.08);
  padding: 10px;
  display:none;
}
.nm-ms.is-open .nm-ms__panel{display:block;}
.nm-ms__search{
  width:100%;
  padding: 10px 10px;
  border-radius: 16px;
  border:1px solid rgba(0,0,0,.10);
  margin-bottom: 8px;
}
.nm-ms__list{max-height: min(320px, 60vh); overflow:auto; display:flex; flex-direction:column; gap:6px; padding-right:2px;}

/* Option rows: keep flag + name on one line (avoid inheriting `.nm-field label` styles) */
.nm-ms__panel .nm-ms__item{
  display:grid;
  grid-template-columns: 22px 1fr 22px;
  align-items:center;
  gap:10px;
  padding: 10px 12px;
  border-radius: 12px;
  cursor:pointer;
  margin:0;
  border: 1px solid transparent;
  text-transform:none;
  letter-spacing:0;
  color: rgba(15,23,42,.92);
}
.nm-ms__panel .nm-ms__item:hover{background: rgba(15,23,42,.04);}
.nm-ms__panel .nm-ms__item.is-checked{
  background: rgba(255,122,24,.10);
  border-color: rgba(255,122,24,.25);
}
.nm-ms__panel .nm-ms__item input{
  margin:0;
  justify-self:end;
  width:16px;
  height:16px;
  accent-color:var(--nm-accent);
}
.nm-ms__flagPlaceholder{width:18px; height:14px; display:block;}
.nm-ms__flag{width:18px; height:14px; border-radius:4px; display:block; flex:0 0 auto; box-shadow: 0 1px 2px rgba(0,0,0,.12);}
.nm-ms__text{line-height:1.2; font-weight:650; font-size:14px;}
.nm-ms__chipText{line-height:1.1;}
.nm-ms__chip{display:inline-flex; gap:6px; align-items:center; padding: 6px 10px; border-radius: 999px; border:1px solid rgba(0,0,0,.10); background: rgba(0,0,0,.03); font-size: 12px;}
.nm-ms__chip button{border:0; background:transparent; cursor:pointer; opacity:.65; padding:0; line-height:1;}

/* ============ Listing gallery (images + videos) ============ */
.nm-gallery{margin-top: 16px;}
.nm-gallery__stage{
  position:relative;
  border-radius: 18px;
  overflow:hidden;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(0,0,0,.02);
}
.nm-gallery__stageMedia{
  width:100%;
  /* Keep a consistent, "clean" hero-style gallery area regardless of image resolution */
  aspect-ratio: 16 / 9;
  height: auto;
  max-height: 520px;
  min-height: 320px;
  display:flex;
  align-items:center;
  justify-content:center;
}
@media (max-width: 899px){
  .nm-gallery__stageMedia{
    min-height: 240px;
    max-height: 420px;
  }
}
@media (max-width: 520px){
  .nm-gallery__stageMedia{
    max-height: 340px;
  }
}
.nm-gallery__stageMedia img,
.nm-gallery__stageMedia video,
.nm-gallery__stageMedia iframe{
  width:100%;
  height:100%;
  object-fit: cover;
  border:0;
}
@media (max-width: 899px){
  .nm-gallery__stageMedia{height: 340px;}
}
.nm-gallery__thumbs{
  display:flex;
  gap:10px;
  margin-top: 10px;
  overflow:auto;
  padding-bottom: 2px;
}
.nm-gallery__thumb{
  flex: 0 0 auto;
  width: 96px;
  height: 64px;
  border-radius: 16px;
  overflow:hidden;
  border:1px solid rgba(0,0,0,.10);
  background: rgba(0,0,0,.03);
  cursor:pointer;
  position:relative;
}
.nm-gallery__thumb img{width:100%; height:100%; object-fit: cover;}
.nm-gallery__thumb--video::after{
  content:'▶';
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-weight:700;
  text-shadow: 0 4px 16px rgba(0,0,0,.6);
  background: linear-gradient(180deg, rgba(0,0,0,.0), rgba(0,0,0,.35));
}

.nm-gallery__thumb.is-active{
  border-color: rgba(2,122,72,.55);
  box-shadow: 0 0 0 3px rgba(2,122,72,.12);
}

.nm-gallery__nav{
  position:absolute;
  top:50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.35);
  background: rgba(16,24,40,.38);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  backdrop-filter: blur(6px);
}
.nm-gallery__nav:hover{ background: rgba(16,24,40,.5); }
.nm-gallery__nav--prev{ left: 12px; }
.nm-gallery__nav--next{ right: 12px; }
@media (max-width: 899px){
  .nm-gallery__nav{ width: 38px; height: 38px; }
}




/* ============ Listing page layout/tokens ============ */
.nm-container{max-width: var(--nm-max); margin: 0 auto; padding: 0 18px;}
.nm-listingHero{
  /* Keep absolute background layers contained to the hero on all devices (prevents mobile "zoom"/overflow) */
  position:relative;
  overflow:hidden;
  border-radius: 22px;
  margin-bottom: 16px;
  padding: 40px 0 18px;
  background:
    radial-gradient(1200px 380px at 25% 0%, rgba(11,61,46,.18), rgba(11,61,46,0)),
    radial-gradient(900px 420px at 85% 10%, rgba(17,24,39,.10), rgba(17,24,39,0));
}
.nm-listingHero__inner{ padding: 18px; }
.nm-listingMain,
.nm-listingAside,
.nm-card{ min-width: 0; }

/* Prevent long strings (URLs/emails/names) from forcing horizontal overflow on mobile */
.nm-listingHero__title,
.nm-contactRow__value,
.nm-prose,
.nm-area__regions,
.nm-hoursTime{ overflow-wrap: anywhere; word-break: break-word; }
.nm-listingHero__chips{display:flex; flex-wrap:wrap; gap:8px; margin-top: 12px;}
.nm-listingHero__actions{display:flex; flex-wrap:wrap; gap:10px; margin-top: 16px;}
.nm-listingHero__meta{margin-top: 10px; font-size: 13px;}

.nm-listingBody{padding: 18px 0 40px;}
.nm-listingGrid{display:grid; grid-template-columns: 1.6fr .9fr; gap: 16px;}
@media (max-width: 980px){
  .nm-listingGrid{grid-template-columns: 1fr;}
}
.nm-card--padded{padding: 16px;}
.nm-prose{font-size: 15px; line-height: 1.7;}
.nm-prose p{margin-top: 0; margin-bottom: 12px;}
.nm-contactCard{position: sticky; top: 18px;}
.nm-contactRow{display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding: 10px 0; border-top: 1px solid rgba(0,0,0,.06);}
.nm-contactRow:first-of-type{border-top:0; padding-top: 0;}
.nm-contactRow a{word-break: break-word;}

/* Result card actions */
.nm-resultCard__footer{display:flex; align-items:center; justify-content:space-between; gap:10px;}
.nm-resultCard__actions{display:flex; gap:8px; flex-wrap:wrap;}
.nm-resultCard__action{
  display:inline-flex;
  align-items:center;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(0,0,0,.02);
  font-size: 12px;
}
.nm-resultCard__action:hover{background: rgba(0,0,0,.05);}


.nm-srOnly{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.nm-brand__picture{display:block; line-height:0;}
.nm-brand__logo{height:72px;width:auto;display:block;}
.custom-logo{height:72px;width:auto;display:block;}



.nm-card--hover{transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;}
.nm-card--hover:hover{transform: translateY(-2px);box-shadow: var(--nm-shadow-sm);border-color: rgba(11,61,46,.22);} 


/* Listing detail — premium, Apple-like */
.nm-detailNav{
  display:flex;
  gap: 10px;
  flex-wrap:wrap;
  align-items:center;
  padding: 10px 0 14px;
  margin-top: -8px;
}
.nm-detailNav__link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.72);
  backdrop-filter: blur(8px);
  text-decoration:none;
  font-weight: 650;
  font-size: 13px;
  color: rgba(0,0,0,.78);
}
.nm-detailNav__link:hover{border-color: rgba(11,61,46,.22); box-shadow: 0 8px 20px rgba(15,23,42,.08);}

.nm-listingMeta{display:grid; grid-template-columns: 1fr; gap:8px; margin-top: 12px;}
.nm-listingMeta__item{display:flex; gap:10px; flex-wrap:wrap; align-items:baseline;}
.nm-listingMeta__item a{text-decoration:none; border-bottom:1px solid rgba(0,0,0,.18);}
.nm-listingMeta__item a:hover{border-color: rgba(11,61,46,.55);}

.nm-sectionHead{margin-bottom: 12px;}
.nm-prose{font-size:16px; line-height:1.65;}
.nm-prose p{margin: 0 0 12px;}
.nm-prose h2,.nm-prose h3{margin: 18px 0 10px;}

.nm-contactRow{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding: 12px 12px;
  border-radius: 16px;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.74);
  text-decoration:none;
}
.nm-contactRow + .nm-contactRow{margin-top: 10px;}
.nm-contactRow__label{font-size:12px; letter-spacing:.06em; text-transform:uppercase; color: rgba(0,0,0,.55); font-weight:650;}
.nm-contactRow__value{font-weight:750; letter-spacing:-0.02em;}
.nm-stickyCard{position:sticky; top: 18px;}

.nm-mapWrap--single{border-radius: 18px; overflow:hidden; border:1px solid rgba(0,0,0,.10); box-shadow: 0 14px 34px rgba(15,23,42,.08);}
.nm-map--single{height: 340px;}
@media (max-width: 980px){
  .nm-map--single{height: 280px;}
}


/* ===== v0.3.8 polish: premium hero card + selects visible ===== */
.nm-hero--search--legacy{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(1200px 600px at 70% 40%, rgba(255,255,255,.85), rgba(255,255,255,.55) 55%, rgba(255,255,255,.35) 100%),
    url("./assets/img/hero-craftsman.svg");
  background-size: cover;
  background-position: 85% 50%;
}
.nm-hero--search .nm-hero__inner{max-width: var(--nm-max);}
.nm-hero__top{max-width: 760px;}
.nm-hero__searchRow{margin-top: 18px;}
.nm-form--hero{
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(15,23,42,.10);
  border-radius: 22px;
  box-shadow: 0 24px 60px rgba(2,6,23,.10);
  padding: 18px;
  backdrop-filter: blur(16px) saturate(120%);
}
.nm-form__heroTitle{margin-bottom: 10px;}
.nm-form__heroTitleText .nm-h3{font-size: 18px; letter-spacing: -0.02em;}
.nm-formGrid--hero{
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
@media (max-width: 780px){
  .nm-formGrid--hero{grid-template-columns: 1fr;}
}
.nm-field label{font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: rgba(15,23,42,.66);}
.nm-field input[type="text"],
.nm-field input[type="search"],
.nm-field input[type="url"],
.nm-field select{
  height: 46px;
  border-radius: 14px;
  border: 1px solid rgba(15,23,42,.14);
  background: rgba(255,255,255,.92);
}
.nm-field select[multiple]{
  height: 52px;
  padding-top: 10px;
}
.nm-form__actions{margin-top: 12px; gap: 10px;}
.nm-btn--primary{background: var(--nm-accent); border-color:var(--nm-accent);}
.nm-btn--primary:hover{filter: brightness(.96);}
.nm-btn--ghost{border-color: rgba(15,23,42,.16);}
.nm-help{font-size: 13px;}


/* Opening hours layout */
.nm-hours{display:flex; flex-direction:column; gap:8px; margin-top:8px;}
.nm-hours__row{
  display:flex;
  align-items:center;
  gap:14px;
  padding:6px 10px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,.06);
  background:rgba(255,255,255,.7);
}
.nm-hours__day{display:flex; align-items:center; gap:8px; font-weight:500;}
.nm-hours__times{display:flex; align-items:center; gap:6px; font-size:13px;}
.nm-hours__times input[type="time"]{padding:6px 8px; border-radius:10px; border:1px solid rgba(0,0,0,.12); background:#fff; font-size:13px;}

/* Status chip on listing */
.nm-statusChip{display:inline-flex; align-items:center; gap:6px; padding:5px 10px; border-radius:999px; font-size:13px; font-weight:600;}
.nm-statusChip--open{color:#0b6b2d; background:rgba(11,107,45,.08);}
.nm-statusChip--closed{color:#b3261e; background:rgba(179,38,30,.08);}

/* Donation status chip (dashboard) */
.nm-donStatus{display:inline-flex; align-items:center; gap:6px; padding:4px 10px; border-radius:999px; font-size:12px; font-weight:900; border:1px solid rgba(0,0,0,.06);}
.nm-donStatus--active{background:rgba(22,163,74,.12); color:#0b6b2d;}
.nm-donStatus--pending{background:rgba(15,23,42,.08); color:rgba(15,23,42,.75);}

/* Slightly elevate hero form fields */
.nm-form--hero .nm-field input,
.nm-form--hero .nm-field select{
  border-radius:16px;
  border:1px solid rgba(0,0,0,.16);
  padding:10px 12px;
  background:rgba(255,255,255,.96);
}
.nm-form--hero .nm-field input::placeholder{color:rgba(0,0,0,.45);}


/* Hero visual (craftsman image on the right) */
.nm-hero__right{
  display:flex;
  align-items:stretch;
  justify-content:flex-end;
}
.nm-hero__visual{
  flex:1 1 auto;
  border-radius:24px;
  background-image:url('assets/img/hero-craftsman.svg');
  background-size:cover;
  background-position: 85% 50%;
  min-height:340px;
  box-shadow:0 20px 45px rgba(15,23,42,.32);
}
@media (max-width: 979px){
  .nm-hero__visual{
    min-height:220px;
    margin-top:12px;
  }
}


/* Listing wizard */
.nm-stepper{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:16px 0 24px;
}
.nm-stepper__item{
  display:flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(0,0,0,.03);
  font-size:13px;
}
.nm-stepper__item span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:20px;
  height:20px;
  border-radius:999px;
  background:rgba(0,0,0,.08);
  font-weight:600;
  font-size:12px;
}
.nm-stepper__item small{
  font-size:12px;
  opacity:.8;
}
.nm-stepper__item.is-active{
  background:rgba(255,115,0,.10);
}
.nm-stepper__item.is-active span{
  background:#ff7300;
  color:#fff;
}
.nm-stepper__item.is-complete span{
  background:#10b981;
  color:#fff;
}

.nm-wizardActions{
  margin-top:18px;
  display:flex;
  gap:10px;
  justify-content:flex-end;
  flex-wrap:wrap;
}

.nm-stepPrev{
  display:none;
}
.nm-stepSubmit{
  display:none;
}


/* Wizard step visuals */


/* Opening hours – align Open/Close over time inputs + center layout */
.nm-hours{
  max-width: 820px;
  margin-left:auto;
  margin-right:auto;
}

.nm-hours__head{
  display:flex;
  justify-content:center;
  gap:14px;
  margin:10px 0 8px;
  padding:0 10px;
}

.nm-hours__headDay{
  flex: 0 0 170px; /* match day column */
}

.nm-hours__headTimes{
  display:grid;
  grid-template-columns: 120px 20px 120px;
  align-items:end;
  justify-items:center;
}

.nm-hours__headOpen,
.nm-hours__headClose{
  font-size:12px;
  opacity:.7;
  font-weight:600;
}

.nm-hours__headDash{
  width:20px;
}

.nm-hours__row{
  justify-content:center;
}

.nm-hours__day{
  width:170px;
}

.nm-hours__times{
  display:grid;
  grid-template-columns: 120px 20px 120px;
  align-items:center;
  justify-items:center;
}

.nm-hours__times input[type="time"]{
  width:120px;
}

@media (max-width: 720px){
  .nm-hours__headDay{ display:none; }
  .nm-hours__day{ width:auto; }
  .nm-hours__times, .nm-hours__headTimes{
    grid-template-columns: 1fr 16px 1fr;
  }
  .nm-hours__times input[type="time"]{ width:100%; }
}


/* Add listing – Review box */
.nm-review{
  margin-top: 16px;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.82);
  backdrop-filter: blur(16px) saturate(120%);
  border-radius: 18px;
  padding: 14px;
}

/* Review – Donation callout (step 6) */
.nm-reviewDonationCta{
  margin-top: 6px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 2px solid rgba(245, 158, 11, .55); /* yellow */
  background: rgba(245, 158, 11, .08);
  font-weight: 750;
  font-size: 15.5px;
  line-height: 1.45;
}

/* Add listing – Post-submit thank-you */
.nm-submitThanks{
  max-width: 980px;
  margin: 0 auto;
  display: grid;
  gap: 14px;
}
@media (min-width: 920px){
  .nm-submitThanks{ grid-template-columns: 1.1fr .9fr; align-items: start; }
}
.nm-submitThanks__card{
  padding: 18px;
}
.nm-submitThanks__center{ text-align: center; }
.nm-submitThanks__icon{
  width: 60px;
  height: 60px;
  border-radius: 18px;
  margin: 0 auto 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
  background: rgba(22, 163, 74, .10);
  border: 1px solid rgba(22, 163, 74, .28);
}
.nm-submitThanks__title{
  margin: 0;
  font-size: 26px;
  letter-spacing: -0.02em;
}
.nm-submitThanks__meta{
  margin-top: 8px;
  font-size: 13px;
  opacity: .75;
}
.nm-submitThanks__text{
  margin: 10px 0 0;
  font-size: 15px;
  opacity: .85;
}
.nm-submitThanks__actions{
  margin-top: 14px;
  display: flex;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}

.nm-donationCta{
  padding: 18px;
  border: 2px solid rgba(245, 158, 11, .55);
  background: rgba(245, 158, 11, .07);
}
.nm-donationCta__title{ margin: 0; }
.nm-donationCta__lead{
  margin: 8px 0 0;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
}
.nm-donationCta__list{
  margin: 12px 0 14px;
  padding-left: 18px;
}
.nm-donationCta__note{
  margin: 0 0 12px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  opacity: .78;
}
.nm-review__head{ margin-bottom: 10px; }
.nm-review__title{
  margin: 0;
  font-size: 15px;
  letter-spacing: -0.02em;
}
.nm-review__sub{
  margin: 4px 0 0;
  font-size: 12px;
  opacity: .7;
}
.nm-review__grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.nm-review__item{
  padding: 10px;
  border-radius: 14px;
  background: rgba(0,0,0,.03);
  font-size: 13px;
  line-height: 1.4;
}
.nm-review__item strong{
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
  opacity: .72;
}
.nm-review__item--wide{
  grid-column: 1 / -1;
}
@media (max-width: 720px){
  .nm-review__grid{ grid-template-columns: 1fr; }
  .nm-review__item--wide{ grid-column: auto; }
}


/* Donation (optional) highlight */
.nm-alert--donation{
  border: 2px solid rgba(16,185,129,.35) !important;
  background: rgba(16,185,129,.06) !important;
}

/* Free/no-commission info */
.nm-alert--free{
  border: 1px solid rgba(11,61,46,.28) !important;
  background: rgba(11,61,46,.06) !important;
}


/* Media: separate file inputs (better UX than multi-select) */
.nm-fileGrid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:10px;
}
.nm-fileGrid input[type="file"]{
  width:100%;
}
@media (min-width: 900px){
  .nm-fileGrid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}


/* Service areas: All regions toggle + nicer region list */
.nm-check--all{
  margin-bottom: 8px;
  padding: 8px 10px;
  border-radius: 12px;
  background: rgba(0,0,0,.03);
}
.nm-regionGrid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
}
@media (min-width: 900px){
  .nm-regionGrid{ grid-template-columns: 1fr 1fr; }
}


/* Edit listing: existing media preview */
.nm-existingMedia{
  margin: 10px 0 14px;
}
.nm-mediaGrid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:10px;
}
@media (max-width: 800px){
  .nm-mediaGrid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.nm-mediaItem{
  display:flex;
  flex-direction:column;
  gap:8px;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 14px;
  padding: 10px;
  background: rgba(255,255,255,.75);
}
.nm-mediaThumb{
  display:block;
  width:100%;
  aspect-ratio: 1 / 1;
  min-height: 92px;
  border-radius: 12px;
  background-size: cover;
  background-position: center;
  border: 1px solid rgba(0,0,0,.06);
}
.nm-mediaList{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.nm-mediaRow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 14px;
  padding: 10px 12px;
  background: rgba(255,255,255,.75);
}
.nm-mediaFile{
  font-size: 13px;
  line-height: 1.4;
  word-break: break-word;
}
.nm-mediaRemove{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size: 12px;
  opacity: .85;
  white-space: nowrap;
}


/* Messaging (single listing) */
.nm-msgBox{
  margin-top: 14px;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 18px;
  padding: 16px;
  background: rgba(255,255,255,.78);
}
.nm-msgForm textarea{
  width: 100%;
  resize: vertical;
}
.nm-alert{
  border-radius: 14px;
  padding: 10px 12px;
  font-size: 13px;
  margin: 0 0 12px;
}
.nm-alert--success{ border: 1px solid rgba(0,160,90,.25); background: rgba(0,160,90,.08); }
.nm-alert--error{ border: 1px solid rgba(220,0,0,.22); background: rgba(220,0,0,.06); }
.nm-hp{ position:absolute; left:-9999px; top:-9999px; height:0; overflow:hidden; }


/* Wizard inline errors */
.nm-fieldError{
  margin-top: 8px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(220,0,0,.20);
  background: rgba(220,0,0,.06);
  font-size: 13px;
}


/* Pro validation UX */
@keyframes nmShake {
  0%{ transform: translateX(0); }
  20%{ transform: translateX(-6px); }
  40%{ transform: translateX(6px); }
  60%{ transform: translateX(-4px); }
  80%{ transform: translateX(4px); }
  100%{ transform: translateX(0); }
}

.nm-invalid{
  border-color: rgba(220,0,0,.40) !important;
  box-shadow: 0 0 0 4px rgba(220,0,0,.10) !important;
}

.nm-shake{
  animation: nmShake .36s ease-in-out;
}

.nm-checklist.nm-invalid,
#nmCatList.nm-invalid,
#nmRegionList.nm-invalid{
  border: 1px solid rgba(220,0,0,.28) !important;
  box-shadow: 0 0 0 4px rgba(220,0,0,.08) !important;
  border-radius: 14px;
}

/* Review: required checklist */
.nm-review__required{ margin-top: 10px; }
.nm-reqBox{
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 18px;
  padding: 12px 14px;
  background: rgba(255,255,255,.7);
}
.nm-reqHead{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom: 10px;
}
.nm-reqList{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:8px 12px;
}
@media (max-width: 700px){
  .nm-reqList{ grid-template-columns: 1fr; }
}
.nm-reqItem{
  display:flex;
  align-items:center;
  gap:10px;
  font-size: 13px;
  padding: 8px 10px;
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,.06);
  background: rgba(255,255,255,.75);
}
.nm-reqIcon{
  width: 18px;
  height: 18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius: 999px;
  font-weight: 700;
  font-size: 12px;
}
.nm-reqItem--ok .nm-reqIcon{ background: rgba(0,160,90,.12); color: rgba(0,120,70,1); }
.nm-reqItem--bad .nm-reqIcon{ background: rgba(220,0,0,.10); color: rgba(180,0,0,1); }




.nm-lang[data-open="1"] .nm-lang__menu{ display:block; }



.nm-topbar, .nm-topbar *{ position: relative; }
.nm-topbar{ position: sticky; }
.nm-lang{ position: relative; z-index: 25000; }
.nm-lang__menu{ z-index: 26000 !important; }

/* Language switcher (hidden unless Multilingual mode is enabled) */
.nm-lang__menu{
  display:none;
  position:absolute;
  right:0;
  top: calc(100% + 10px);
  min-width: 200px;
  padding: 8px;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.98);
  box-shadow: 0 14px 40px rgba(0,0,0,.14);
  backdrop-filter: blur(10px);
}

.nm-lang__btn{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 14px;
}

.nm-lang__flag{ width:18px; height:18px; border-radius:999px; flex:0 0 auto; }
.nm-lang__code{ font-weight:700; font-size:13px; letter-spacing:.04em; }
.nm-lang__chev{ opacity:.72; }

.nm-lang__item{
  display:flex;
  align-items:center;
  gap: 10px;
  padding: 9px 10px;
  border-radius: 14px;
  text-decoration:none;
  color: inherit;
  font-size: 14px;
  line-height: 1.2;
}
.nm-lang__item:hover{ background: rgba(0,0,0,.04); }
.nm-lang__item[aria-current="true"]{ background: rgba(0,0,0,.05); font-weight:700; }
.nm-lang__name{ white-space:nowrap; }


.nm-alert{ padding:12px 14px; border-radius:16px; }
.nm-alert--danger{ border:1px solid rgba(220,38,38,.25); background: rgba(220,38,38,.06);} 
.nm-alert--success{ border:1px solid rgba(22,163,74,.25); background: rgba(22,163,74,.06);} 


/* Reviews */
.nm-stars{ display:inline-flex; align-items:center; gap:2px; font-size:14px; line-height:1; }
.nm-star{ display:inline-block; }
.nm-star--full{ opacity:.92; }
.nm-star--half{ opacity:.6; }
.nm-star--empty{ opacity:.25; }
.nm-stars__count{ margin-left:6px; opacity:.6; font-size:13px; }

.nm-resultCard__rating{ margin-top:10px; margin-bottom:2px; }

.nm-ratingInput{ display:inline-flex; flex-direction:row-reverse; gap:6px; }
.nm-ratingInput input{ display:none; }
.nm-ratingInput label{ cursor:pointer; font-size:22px; opacity:.25; transition:opacity .15s ease; }
.nm-ratingInput input:checked ~ label{ opacity:.92; }
.nm-ratingInput label:hover, .nm-ratingInput label:hover ~ label{ opacity:.6; }

.nm-reviewList{ display:flex; flex-direction:column; gap:14px; }
.nm-reviewItem{ border-top:1px solid rgba(0,0,0,.06); padding-top:14px; }
.nm-reviewItem__top{ display:flex; justify-content:space-between; gap:12px; align-items:center; flex-wrap:wrap; }
.nm-reviewItem__author{ font-weight:650; }
.nm-reviewItem__meta{ display:flex; align-items:center; gap:10px; }
.nm-reviewItem__body p{ margin:8px 0 0; }



/* Auth: account type cards */
.nm-acctType{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:12px;
  margin-bottom:12px;
}
.nm-acctType__card{ display:block; }
.nm-acctType__card input{ position:absolute; opacity:0; pointer-events:none; }
.nm-acctType__inner{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  border-radius:18px;
  border:1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.86);
  box-shadow: 0 10px 26px rgba(0,0,0,.06);
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
  cursor:pointer;
  position:relative;
  min-height:56px;
}
.nm-acctType__icon{
  width:38px;
  height:38px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.85);
  color: rgba(0,0,0,.75);
}
.nm-acctType__text{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.nm-acctType__title{ font-weight:750; letter-spacing:-.01em; }
.nm-acctType__desc{ font-size:13px; opacity:.65; }
.nm-acctType__check{
  margin-left:auto;
  width:24px;
  height:24px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.85);
  opacity:.0;
  transform: scale(.95);
  transition: opacity .12s ease, transform .12s ease;
}

.nm-acctType__card:hover .nm-acctType__inner{
  transform: translateY(-1px);
  box-shadow: 0 16px 34px rgba(0,0,0,.09);
}

.nm-acctType__card input:checked + .nm-acctType__inner{
  border-color: rgba(255,122,0,.55);
  box-shadow: 0 18px 44px rgba(255,122,0,.12), 0 12px 28px rgba(0,0,0,.07);
}
.nm-acctType__card input:checked + .nm-acctType__inner .nm-acctType__icon{
  border-color: rgba(255,122,0,.35);
  color: rgba(255,122,0,.95);
}
.nm-acctType__card input:checked + .nm-acctType__inner .nm-acctType__check{
  opacity:1;
  transform: scale(1);
  border-color: rgba(255,122,0,.35);
  color: rgba(255,122,0,.95);
}

@media (max-width: 720px){
  .nm-acctType{ grid-template-columns: 1fr; }
}

.nm-acctType__note{ font-size:13px; opacity:.7; }

/* HERO BG OVERRIDE (ensure image wins over nm-hero--search background reset) */
.nm-hero.nm-hero--search.nm-hero--bg{
  /* Fallback only (actual images rotate in .nm-hero__bg-layer) */
  background: url('assets/img/hero/hero-1.jpg') center/cover no-repeat;
}


.nm-hero__search--full{max-width: var(--nm-max); margin-left:auto; margin-right:auto;}


/* Browse map (archive) */
.nm-browseMapCard{
  padding: 14px;
}
.nm-browseMapHead{
  display:flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 0 6px 10px 6px;
}
.nm-browseMapTitle{
  font-weight: 800;
  font-size: 14px;
  letter-spacing: .2px;
}
.nm-browseMapHint{
  color: rgba(0,0,0,.58);
  font-size: 12px;
}
.nm-browseMap{
  width: 100%;
  height: 240px;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(15,23,42,.10);
  box-shadow: 0 18px 40px rgba(15,23,42,.10);
}
.nm-browseMap .leaflet-control-attribution{
  font-size: 11px;
}
@media (max-width: 720px){
  .nm-browseMap{ height: 220px; border-radius: 16px; }
  .nm-browseMapHead{ flex-direction: column; align-items: flex-start; }
}


/* Browse map: Search this area overlay */
.nm-browseMapCard{ position: relative; }
.nm-browseMap{ height: 240px; border-radius: 16px; overflow: hidden; }
.nm-browseMapOverlay{
  position: absolute;
  right: 16px;
  top: 16px;
  z-index: 500; /* above Leaflet panes */
  display: flex;
  gap: 10px;
  align-items: center;
}
.nm-browseMapOverlay .nm-btn{
  padding: 10px 14px;
  border-radius: 999px;
  font-weight: 700;
  box-shadow: 0 12px 28px rgba(0,0,0,.16);
}
.nm-browseMapOverlay .nm-btn--ghost{
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(0,0,0,.08);
}
@media (max-width: 720px){
  .nm-browseMap{ height: 210px; }
  .nm-browseMapOverlay{ right: 12px; top: 12px; }
  .nm-browseMapOverlay .nm-btn{ padding: 9px 12px; font-size: 13px; }
}


/* Browse map popup (marker click) */

.leaflet-popup.nm-mapPopupWrap .leaflet-popup-content-wrapper{
  border-radius: 16px;
  box-shadow: 0 14px 38px rgba(0,0,0,.16);
}
.leaflet-popup.nm-mapPopupWrap .leaflet-popup-content{
  margin: 12px 14px;
}
.nm-mapPopup{
  display: flex;
  gap: 12px;
  align-items: stretch;
  min-width: 280px;
}
.nm-mapPopThumb{
  width: 84px;
  height: 84px;
  border-radius: 14px;
  overflow: hidden;
  background: linear-gradient(135deg, rgba(0,0,0,.06), rgba(0,0,0,.02));
  flex: 0 0 auto;
}
.nm-mapPopThumb img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display:block;
}
.nm-mapPopBody{ min-width: 0; }
.nm-mapPopTop{ margin-bottom: 6px; }
.nm-mapPopTitle{
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.15;
  margin-bottom: 8px;
}
.nm-mapPopChips{
  display:flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 8px;
}

.nm-mapPopMeta{
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 700;
  color: rgba(0,0,0,.65);
}
.nm-chip{
  display:inline-flex;
  align-items:center;
  height: 22px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.92);
  font-size: 12px;
  color: rgba(0,0,0,.70);
  white-space: nowrap;
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nm-mapPopExcerpt{
  font-size: 13px;
  color: rgba(0,0,0,.66);
  line-height: 1.35;
  margin-bottom: 10px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.nm-mapPopLink{
  display:inline-flex;
  align-items:center;
  gap: 6px;
  font-weight: 700;
  text-decoration: none;
  color: var(--nm-accent, var(--nm-accent));
}
.nm-mapPopLink:hover{ text-decoration: underline; }



/* Browse sort bar */
.nm-sortBar{
  padding:14px 16px;
}
.nm-sortForm{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.nm-sortLeft{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.nm-sortTitle{
  font-weight:700;
  font-size:14px;
}
.nm-sortHint{
  font-size:12px;
  color:#667085;
}
.nm-sortRight{
  display:flex;
  align-items:center;
  gap:10px;
}
.nm-sortLabel{
  font-size:12px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#667085;
}
.nm-sortRight select{
  border:1px solid rgba(16,24,40,.14);
  border-radius:14px;
  padding:10px 12px;
  background:#fff;
  font:inherit;
  min-width:210px;
}
@media (max-width: 720px){
  .nm-sortForm{
    flex-direction:column;
    align-items:stretch;
  }
  .nm-sortRight{
    justify-content:space-between;
  }
  .nm-sortRight select{
    width:100%;
    min-width:0;
  }
}

/* Wider desktop layout */
@media (min-width: 1200px){
  .nm-wrap{padding-left:24px;padding-right:24px;}
}

/* Dashboard: left sidebar navigation */
.nm-dashLayout{display:grid;grid-template-columns:240px 1fr;gap:18px;align-items:start;margin-top:10px;}
.nm-dashNav{position:sticky;top:96px;background:#fff;border:1px solid rgba(16,24,40,.10);border-radius:18px;padding:10px;box-shadow:0 12px 30px rgba(16,24,40,.06);} 
.nm-dashNavItem{display:flex;align-items:center;gap:10px;width:100%;background:transparent;border:0;border-radius:14px;padding:12px 12px;cursor:pointer;text-align:left;font:inherit;font-weight:700;color:#344054;}
.nm-dashNavItem svg{width:18px;height:18px;flex:0 0 18px;opacity:.85;}
.nm-dashNavItem:hover{background:rgba(16,24,40,.04);} 
.nm-dashNavItem.is-active{background:rgba(255,120,0,.14);color:#111827;} 

.nm-dashMain{min-width:0;}
.nm-dashPanel{display:none;}
.nm-dashPanel.is-active{display:block;}

@media (max-width: 960px){
  .nm-dashLayout{grid-template-columns:1fr;}
  /* Mobile: show dashboard navigation as a stacked list (no horizontal swipe) */
  .nm-dashNav{position:static; display:grid; grid-template-columns:1fr; gap:10px; overflow:visible; white-space:normal; padding:12px;}
  .nm-dashNavItem{width:100%; justify-content:flex-start;}
}

/* Description character counter (Add listing) */
.nm-charcount{
  margin-top: 8px;
  font-size: 13px;
  line-height: 1.2;
  color: #667085;
}
.nm-charcount.is-bad{ color:#b42318; }
.nm-charcount.is-ok{ color:#027a48; }

/* Listing profile: Opening hours + service areas cards */
.nm-hoursTable{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.nm-hoursRow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border:1px solid rgba(16,24,40,.10);
  border-radius:14px;
  background:#fff;
}
.nm-hoursRow.is-today.is-open{
  border-color: rgba(2,122,72,.45);
  background: rgba(2,122,72,.07);
}
.nm-hoursRow.is-today.is-closed{
  border-color: rgba(180,35,24,.45);
  background: rgba(180,35,24,.07);
}
.nm-hoursDay{
  font-weight:800;
  font-size:13px;
  color:#101828;
}
.nm-hoursTime{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:2px;
  font-size:13px;
  color:#475467;
  text-align:right;
}

.nm-hoursMain{ line-height: 1.2; }
.nm-hoursNote{ font-size:12px; font-weight:700; line-height:1.15; }
.nm-hoursRow.is-today.is-open .nm-hoursNote{ color:#027a48; }
.nm-hoursRow.is-today.is-closed .nm-hoursNote{ color:#b42318; }

.nm-areas{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.nm-area{
  border:1px solid rgba(16,24,40,.10);
  border-radius:16px;
  padding:10px 12px;
  background: rgba(16,24,40,.02);
}
.nm-area__head{
  display:flex;
  align-items:center;
  gap:10px;
}
.nm-area__country{font-weight:900;}
.nm-area__regions{
  margin-left:42px; /* align under country name (flag is 32px + gap) */
  margin-top:6px;
  font-size:13px;
  color:#475467;
  line-height:1.35;
}
@media (max-width: 420px){
  .nm-area__regions{margin-left:0;}
}


/* Mobile polish (auto-audit fixes) */
/* 1) Disable sticky sidebar cards on smaller screens */
@media (max-width: 980px){
  .nm-contactCard{ position: relative; top: auto; }
}

/* 2) Header: avoid overflow/clipping on small screens (no hamburger needed) */
@media (max-width: 900px){
  .nm-header__navrow{ flex-wrap: wrap; align-items: flex-start; }
  .nm-header__navrow .nm-nav{ width: 100%; order: 2; }
  .nm-header__actions{ width: 100%; margin-left: 0; justify-content: flex-end; flex-wrap: wrap; order: 3; }

  /* swipeable menu row */
  .nm-nav__list{ flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 6px; }
  .nm-nav__list::-webkit-scrollbar{ height: 0; }
}
@media (max-width: 520px){
  .nm-brand{ min-width: 0; }
  .nm-brand__logo{ height: 60px; }
  .nm-header__actions .nm-btn{ padding: 9px 12px; font-size: 13px; }
}

/* 3) Prevent iOS zoom on time inputs */
@media (max-width: 720px){
  .nm-hours__times input[type="time"]{ font-size: 16px; }
}


/* Support amount input: modern field with € suffix inside */
.nm-inputSuffix{position:relative;display:block;max-width:240px;}
.nm-inputSuffix input{
  width:100%;
  height:46px;
  padding:10px 12px;
  padding-right:42px;
  border-radius:14px;
  border:1px solid rgba(15,23,42,.14);
  background: rgba(255,255,255,.92);
  outline:none;
  font: inherit;
  box-shadow: 0 1px 0 rgba(255,255,255,.7) inset;
}
.nm-inputSuffix input:focus{
  border-color: rgba(11,61,46,.55);
  box-shadow: 0 0 0 4px rgba(11,61,46,.16);
}
.nm-inputSuffix__text{
  position:absolute;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  font-weight:800;
  opacity:.65;
  pointer-events:none;
}
@media (max-width: 520px){
  .nm-inputSuffix{max-width:100%;}
}


@media (max-width: 640px){
  .nm-brand{min-width:auto;}
  .nm-brand__logo{height:60px;}
  .custom-logo{height:60px;}
}

/* ----------------------------------------------
   Category accordion UI
   - Hero search: dropdown + accordion
   - Add listing: accordion multi-select
---------------------------------------------- */

/* Hero search: accordion select */
.nm-accSelect{position:relative;}
.nm-form--hero .nm-accSelect__trigger{
  width:100%;
  padding: 14px 14px;
  border-radius: 16px;
  border:1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.96);
  outline:none;
  box-shadow: 0 1px 0 rgba(255,255,255,.7) inset;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  cursor:pointer;
  text-align:left;
}
.nm-form--hero .nm-accSelect__trigger:focus{
  border-color: rgba(11,61,46,.55);
  box-shadow: 0 0 0 4px rgba(11,61,46,.16);
}
.nm-accSelect__label{font-weight:650; color: rgba(15,23,42,.92);}
.nm-accSelect__chev{opacity:.55; font-size: 14px;}

.nm-accSelect__panel{
  position:absolute;
  left:0;
  right:0;
  top: calc(100% + 8px);
  background: rgba(255,255,255,.98);
  border:1px solid rgba(0,0,0,.14);
  border-radius: 16px;
  box-shadow: 0 18px 50px rgba(0,0,0,.18);
  padding: 10px;
  z-index: 50;
}
.nm-accSelect__search{margin-bottom:8px;}
.nm-accSelect__searchInput{
  width:100%;
  padding: 10px 12px;
  border-radius: 14px;
  border:1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.92);
  outline:none;
}
.nm-accSelect__searchInput:focus{
  border-color: rgba(11,61,46,.55);
  box-shadow: 0 0 0 4px rgba(11,61,46,.12);
}
.nm-accSelect__clear{
  width:100%;
  border:1px dashed rgba(0,0,0,.16);
  background: rgba(0,0,0,.03);
  border-radius: 14px;
  padding: 10px 12px;
  font: inherit;
  cursor:pointer;
  text-align:left;
  margin-bottom:10px;
}
.nm-accSelect__groups{
  max-height: 320px;
  overflow:auto;
  padding-right: 2px;
}
.nm-accSelect__group{border-top:1px solid rgba(0,0,0,.08); padding-top:8px; margin-top:8px;}
.nm-accSelect__group:first-child{border-top:none; padding-top:0; margin-top:0;}
.nm-accSelect__summary{
  cursor:pointer;
  font-weight:800;
  font-size: 13px;
  color: rgba(15,23,42,.78);
  list-style:none;
}
.nm-accSelect__summary::-webkit-details-marker{display:none;}
.nm-accSelect__items{display:grid; gap:6px; margin-top:8px;}
.nm-accSelect__item{
  width:100%;
  border:1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.92);
  border-radius: 12px;
  padding: 10px 12px;
  font: inherit;
  cursor:pointer;
  text-align:left;
}
.nm-accSelect__item:hover{background: rgba(0,0,0,.03);}
.nm-accSelect__item.is-active{border-color: rgba(11,61,46,.55); box-shadow: 0 0 0 3px rgba(11,61,46,.14);}

/* Add listing: accordion multi-select */
.nm-catAcc{
  border:1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.78);
  border-radius: 16px;
  padding: 10px;
}
.nm-catAcc__groups{max-height: 420px; overflow:auto; padding-right: 2px;}
.nm-catAcc__group{border-top:1px solid rgba(0,0,0,.08); padding-top:10px; margin-top:10px;}
.nm-catAcc__group:first-child{border-top:none; padding-top:0; margin-top:0;}
.nm-catAcc__summary{
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-weight:900;
  color: rgba(15,23,42,.82);
  list-style:none;
}
.nm-catAcc__summary::-webkit-details-marker{display:none;}
.nm-catAcc__meta{font-weight:800; font-size:12px; opacity:.6;}
.nm-catAcc__items{display:grid; gap:8px; margin-top:10px;}
.nm-catAcc__check{margin:0;}

@media (max-width: 520px){
  .nm-accSelect__groups{max-height: 52vh;}
  .nm-catAcc__groups{max-height: 52vh;}
}

/* FAQ page */
.nm-faq{padding: 34px 0 60px;}
/* Contact page */
.nm-contactHero{align-items:center;}
.nm-contactHero__art{
  width: 168px;
  height: auto;
  flex: 0 0 auto;
  margin-left: 6px;
  opacity: .98;
}
.nm-contactHero__art img{display:block; width: 168px; height:auto;}
@media (max-width: 720px){
  .nm-contactHero{flex-direction:column; align-items:flex-start;}
  .nm-contactHero__art{width: 150px; margin-left: 0;}
  .nm-contactHero__art img{width: 150px;}
}
.nm-contactBody{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 14px;
  padding: 0 18px 18px;
}
@media (max-width: 900px){
  .nm-contactBody{grid-template-columns: 1fr; }
}
.nm-contactForm__card{
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 18px;
  background: rgba(255,255,255,.88);
  padding: 16px;
}
.nm-contactPlaceholder{margin:0; color: var(--nm-muted); line-height: 1.6;}
.nm-contactPlaceholder code{
  background: rgba(11,61,46,.10);
  border: 1px solid rgba(11,61,46,.20);
  padding: 2px 6px;
  border-radius: 8px;
  font-size: 13px;
}

.nm-contactAside__card{
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 18px;
  background: rgba(255,255,255,.75);
  padding: 16px;
}
.nm-contactAside__title{margin:0 0 10px; font-size: 16px;}
.nm-contactAside__list{margin:0; padding-left: 18px; color: var(--nm-muted); line-height: 1.6;}
.nm-contactAside__list a{color: var(--nm-accent-dark); font-weight: 800; text-decoration: none;}
.nm-contactAside__list a:hover{text-decoration: underline;}

/* WPForms styling inside Contact card */
.nm-contact .wpforms-container{margin: 0;}
.nm-contact .wpforms-form input[type=text],
.nm-contact .wpforms-form input[type=email],
.nm-contact .wpforms-form input[type=tel],
.nm-contact .wpforms-form input[type=url],
.nm-contact .wpforms-form textarea,
.nm-contact .wpforms-form select{
  width: 100%;
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,.14);
  padding: 12px 14px;
  background: #fff;
  font-size: 14px;
}
.nm-contact .wpforms-form textarea{min-height: 140px;}
.nm-contact .wpforms-form input:focus,
.nm-contact .wpforms-form textarea:focus,
.nm-contact .wpforms-form select:focus{
  outline: none;
  border-color: rgba(11,61,46,.55);
  box-shadow: 0 0 0 4px rgba(11,61,46,.14);
}
.nm-contact .wpforms-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.10);
  background: var(--nm-accent);
  color: #fff;
  font-weight: 900;
  cursor: pointer;
}
.nm-contact .wpforms-submit:hover{background: var(--nm-accent-dark);}

.nm-faqCard{
  background: linear-gradient(180deg, rgba(11,61,46,.08), rgba(11,61,46,0)) , var(--nm-bg);
  border: 1px solid var(--nm-border);
  border-radius: 22px;
  box-shadow: var(--nm-shadow);
  overflow: hidden;
}
.nm-faqHero{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 18px;
  padding: 26px 22px 16px;
}
.nm-faqHero__copy{max-width: 820px;}
.nm-faqTitle{margin:0; font-size: clamp(26px, 3.2vw, 40px); letter-spacing: -.02em;}
.nm-faqSubtitle{margin:10px 0 0; color: var(--nm-muted); font-size: 15.5px; line-height: 1.5;}
.nm-faqHero__mark{
  width: 42px; height: 42px;
  border-radius: 14px;
  background: rgba(11,61,46,.16);
  display:flex; align-items:center; justify-content:center;
  font-weight: 900;
  color: var(--nm-accent-dark);
  flex: 0 0 auto;
}

.nm-faqSwitch{
  display:flex;
  align-items:center;
  gap: 10px;
  padding: 0 18px 18px;
  overflow:auto;
  -webkit-overflow-scrolling: touch;
}
.nm-faqSwitch::-webkit-scrollbar{height: 8px;}
.nm-faqSwitch::-webkit-scrollbar-thumb{background: rgba(0,0,0,.12); border-radius: 999px;}

.nm-faqSwitch__btn{
  display:inline-flex;
  align-items:center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.14);
  background: rgba(255,255,255,.75);
  color: inherit;
  text-decoration: none;
  box-shadow: 0 8px 18px rgba(15, 23, 42, .06);
  white-space: nowrap;
}
.nm-faqSwitch__btn:hover{border-color: rgba(0,0,0,.22); transform: translateY(-1px);}
.nm-faqSwitch__btn.is-active{
  background: var(--nm-accent-soft);
  border-color: rgba(11,61,46,.45);
  box-shadow: 0 12px 26px rgba(11,61,46,.16);
}
.nm-flag{font-size: 18px; line-height: 1;}

.nm-faqLangs{padding: 0 18px 18px;}
.nm-faqLang{display:block;}
body.nm-js .nm-faqLang{display:none;}
body.nm-js .nm-faqLang.is-active{display:block;}

.nm-faqList{display:grid; gap: 12px;}
.nm-faqItem{
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 16px;
  background: rgba(255,255,255,.85);
  overflow: hidden;
}
.nm-faqQ{
  cursor: pointer;
  list-style: none;
  padding: 14px 16px;
  display:flex;
  gap: 10px;
  align-items:flex-start;
  user-select: none;
}
.nm-faqQ::-webkit-details-marker{display:none;}
.nm-faqQ__num{color: var(--nm-muted); font-weight: 800; min-width: 26px; text-align: right;}
.nm-faqQ__text{font-weight: 700; line-height: 1.35;}
.nm-faqItem summary::after{
  content: '+';
  margin-left: auto;
  font-weight: 900;
  color: rgba(0,0,0,.55);
  width: 28px; height: 28px;
  border-radius: 999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(0,0,0,.06);
  flex: 0 0 auto;
}
.nm-faqItem[open] summary::after{content: '–'; background: rgba(11,61,46,.14); color: var(--nm-accent-dark);}
.nm-faqA{padding: 0 16px 14px;}
.nm-faqA p{margin: 0; color: rgba(0,0,0,.72); line-height: 1.65;}

.nm-faqFoot{
  padding: 14px 18px 22px;
  border-top: 1px solid rgba(0,0,0,.08);
}
.nm-faqFoot__text{margin:0; color: var(--nm-muted); font-size: 14px;}

@media (max-width: 680px){
  .nm-faqHero{padding: 22px 16px 12px;}
  .nm-faqSwitch{padding: 0 12px 14px;}
  .nm-faqLangs{padding: 0 12px 14px;}
  .nm-faqFoot{padding: 12px 12px 18px;}
  .nm-faqQ{padding: 14px 14px;}
  .nm-faqA{padding: 0 14px 14px;}
}
