/* ============================================================
   SPARKLE CLEAN — Reference-Inspired Mega Menu Redesign
   ============================================================ */

:root {
  --nmm-red: #E03E2E;
  --nmm-red-dark: #C62828;
  --nmm-border: #E5E7EB;
  --nmm-text-dark: #111827;
  --nmm-text-mid: #4B5563;
  --nmm-text-muted: #9CA3AF;
  --nmm-bg-light: #F9FAFB;
}

.nav-mega { position: relative; display: flex; align-items: center; }

/* ── Trigger Button ── */
.nav-mega-trigger {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 14px; border-radius: 4px;
  font-family: inherit; font-weight: 700; font-size: .88rem; line-height: 1;
  letter-spacing: .5px;
  color: #FFFFFF !important;
  background: var(--nmm-red) !important;
  border: none; cursor: pointer;
  transition: background .18s ease;
}
.nav-mega-trigger:hover,
.nav-mega.open .nav-mega-trigger {
  background: var(--nmm-red-dark) !important;
  color: #FFFFFF !important;
}
.nav-mega-caret { flex-shrink: 0; opacity: .9; transition: transform .2s; }
.nav-mega.open .nav-mega-caret { transform: rotate(180deg); }

/* ── Dropdown Panel Container ── */
.nav-mega-panel {
  position: absolute; top: calc(100% + 10px); left: 0;
  width: min(1180px, calc(100vw - 32px));
  background: #FFFFFF !important;
  border: 1px solid #D1D5DB !important;
  border-radius: 4px !important;
  box-shadow: 0 20px 48px rgba(0,0,0,.15), 0 4px 12px rgba(0,0,0,.08) !important;
  padding: 0 !important;
  z-index: 1200 !important;
  opacity: 0; visibility: hidden; pointer-events: none;
  transform: translateY(-8px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
  overflow: hidden;
}
.nav-mega.open .nav-mega-panel {
  opacity: 1; visibility: visible; pointer-events: auto;
  transform: translateY(0);
}

.nmm-container {
  display: flex;
  width: 100%;
  align-items: stretch;
  background: #FFFFFF;
}

/* ── LEFT SIDEBAR (CITIES) ── */
.nmm-sidebar {
  width: 210px;
  flex-shrink: 0;
  border-right: 1px solid var(--nmm-border);
  background: #FFFFFF;
  display: flex; flex-direction: column;
}
.nmm-sidebar-header {
  padding: 16px 20px;
  border-bottom: 1px solid var(--nmm-border);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .8px;
  color: var(--nmm-red);
  text-transform: uppercase;
}
.nmm-city-list {
  display: flex; flex-direction: column;
  flex: 1;
}
.nmm-city-item {
  width: 100%;
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 20px;
  background: none;
  border: none;
  border-bottom: 1px solid #F3F4F6;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  transition: background .15s, color .15s;
}
.nmm-city-item:last-child { border-bottom: none; }
.nmm-city-name {
  font-weight: 700; font-size: .9rem;
  color: var(--nmm-text-dark);
  transition: color .15s;
}
.nmm-city-state {
  font-size: .7rem; font-weight: 600;
  color: var(--nmm-text-muted);
  text-transform: uppercase;
  letter-spacing: .4px;
}
.nmm-city-item:hover {
  background: var(--nmm-bg-light);
}
.nmm-city-item.active {
  background: var(--nmm-red) !important;
}
.nmm-city-item.active .nmm-city-name {
  color: #FFFFFF !important;
}
.nmm-city-item.active .nmm-city-state {
  color: rgba(255,255,255,.85) !important;
}

/* ── RIGHT MAIN PANEL (SERVICES GRID) ── */
.nmm-main {
  flex: 1;
  display: flex;
  flex-direction: column;
  background: #FFFFFF;
}
.nmm-main-header {
  padding: 18px 24px;
  border-bottom: 1px solid var(--nmm-border);
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px;
}
.nmm-main-title {
  font-size: 1.45rem !important;
  font-weight: 800 !important;
  color: var(--nmm-text-dark) !important;
  margin: 0 !important;
  line-height: 1.2 !important;
  font-family: 'Poppins', 'Inter', sans-serif !important;
}
.nmm-main-meta {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .8px;
  color: var(--nmm-text-muted);
  text-transform: uppercase;
  white-space: nowrap;
}

/* ── 3x2 Service Cards Grid ── */
.nmm-main-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  flex: 1;
}
.nmm-card[hidden] { display: none; }
.nmm-card {
  padding: 22px 24px !important;
  border-right: 1px solid var(--nmm-border);
  border-bottom: 1px solid var(--nmm-border);
  text-decoration: none !important;
  display: flex; flex-direction: column;
  background: #FFFFFF !important;
  transition: background .15s ease;
}
.nmm-card:nth-child(3n) {
  border-right: none;
}
.nmm-card:hover {
  background: #FAFAFA !important;
}
.nmm-card-num {
  font-size: .8rem !important;
  font-weight: 700 !important;
  color: var(--nmm-red) !important;
  margin-bottom: 8px !important;
  font-family: monospace, sans-serif !important;
}
.nmm-card-title {
  font-size: 1.02rem !important;
  font-weight: 800 !important;
  color: var(--nmm-text-dark) !important;
  margin: 0 0 8px 0 !important;
  line-height: 1.3 !important;
  font-family: 'Poppins', 'Inter', sans-serif !important;
  transition: color .15s;
}
.nmm-card:hover .nmm-card-title {
  color: var(--nmm-red) !important;
}
.nmm-card-desc {
  font-size: .82rem !important;
  color: var(--nmm-text-mid) !important;
  line-height: 1.45 !important;
  margin: 0 0 16px 0 !important;
  flex: 1;
}
.nmm-card-link {
  font-size: .84rem !important;
  font-weight: 700 !important;
  color: var(--nmm-red) !important;
  margin-top: auto;
}

/* ── Bottom Stats & Action Bar ── */
.nmm-main-footer {
  padding: 18px 24px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px;
  background: #FFFFFF;
}
.nmm-footer-stats {
  display: flex; align-items: center; gap: 32px;
}
.nmm-stat {
  display: flex; flex-direction: column; gap: 2px;
}
.nmm-stat-val {
  font-size: 1.25rem; font-weight: 800; color: var(--nmm-text-dark);
  line-height: 1.1; font-family: 'Poppins', 'Inter', sans-serif;
}
.nmm-stat-lbl {
  font-size: .67rem; font-weight: 700; color: var(--nmm-text-muted);
  text-transform: uppercase; letter-spacing: .5px;
}

.nmm-btn-outline {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 10px 20px !important;
  border: 1px solid var(--nmm-text-dark) !important;
  border-radius: 4px !important;
  font-weight: 700 !important; font-size: .85rem !important;
  color: var(--nmm-text-dark) !important;
  background: transparent !important;
  text-decoration: none !important;
  transition: background .18s, color .18s !important;
  white-space: nowrap;
}
.nmm-btn-outline:hover {
  background: var(--nmm-text-dark) !important;
  color: #FFFFFF !important;
}

/* ── Responsive Rules ── */
@media (max-width: 1024px) {
  .nmm-container { flex-direction: column; }
  .nmm-sidebar { width: 100%; border-right: none; border-bottom: 1px solid var(--nmm-border); }
  .nmm-city-list { flex-direction: row; flex-wrap: wrap; }
  .nmm-city-item { width: auto; flex: 1 1 20%; border-bottom: none; border-right: 1px solid #F3F4F6; }
  .nmm-main-grid { grid-template-columns: repeat(2, 1fr); }
  .nmm-card:nth-child(3n) { border-right: 1px solid var(--nmm-border); }
  .nmm-card:nth-child(2n) { border-right: none; }
}

@media (max-width: 768px) {
  .nav-mega { display: none; }
}

/* ============================================================
   Mobile menu accordions
   ============================================================ */
.mobile-accordion { border-bottom: 1px solid rgba(255,255,255,.1); }
.mobile-accordion-trigger {
  width: 100%; display: flex; align-items: center; justify-content: space-between;
  gap: 8px; background: none; border: none; cursor: pointer;
  font-family: inherit; font-weight: 500; font-size: 1rem; color: inherit;
  padding: 15px 0; text-align: left;
}
.mobile-accordion-trigger svg { flex-shrink: 0; opacity: .6; transition: transform .2s; }
.mobile-accordion.open .mobile-accordion-trigger svg { transform: rotate(180deg); }

.mobile-accordion-panel { display: none; flex-direction: column; padding: 0 0 12px 2px; }
.mobile-accordion.open .mobile-accordion-panel { display: flex; }
.mobile-svc-link {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px; font-size: .88rem; opacity: .9;
  border-radius: 8px; border-left: 2px solid rgba(255,255,255,.2);
  margin-bottom: 4px; transition: background .15s;
}
.m-svc-ico { font-size: 1.1rem; flex-shrink: 0; }
.m-svc-info { display: flex; flex-direction: column; }
.m-svc-title { font-weight: 600; color: inherit; }
.m-svc-desc { font-size: .75rem; opacity: .75; }
.mobile-svc-link:hover { background: rgba(255,255,255,.08); opacity: 1; }

.mobile-loc-grid a {
  padding: 8px 12px; font-size: .85rem; opacity: .85;
  border-radius: 6px; border-left: 2px solid rgba(255,255,255,.15);
  margin-bottom: 3px;
}
