/* Only the Locations navigation and its existing directory are refined here. */
[data-locations-nav="desktop"] { position: static; }
[data-locations-nav="desktop"] .mega-menu--locations {
  top: 100%;
  right: 0;
  left: auto;
  width: min(50rem, calc(100vw - 2rem));
  padding: 0;
  gap: 0;
  grid-template-columns: minmax(0, 1fr);
  transform: none;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-white);
  box-shadow: var(--shadow-soft);
}
.fws-locations-nav__territories {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 1.4rem 1.1rem;
}
[data-locations-nav="desktop"] .mega-menu__territory { padding: 0 1rem; }
[data-locations-nav="desktop"] .mega-menu__heading { margin-bottom: .35rem; font-size: 1.08rem; }
[data-locations-nav="desktop"] .mega-menu li a { display: flex; align-items: center; min-height: 44px; }
.fws-locations-nav__footer {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: .65rem 1.1rem;
  border-top: 1px solid var(--color-border);
  border-radius: 0 0 var(--radius-md) var(--radius-md);
  background: linear-gradient(105deg, var(--color-seafoam), #e7f4f3);
}
.site-header .fws-locations-nav__footer a {
  display: flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  padding: .45rem .65rem;
  color: var(--color-teal-dark);
  font-size: .92rem;
  font-weight: 800;
  line-height: 1.4;
  text-decoration: none;
}
.fws-locations-nav__footer a + a { border-left: 1px solid var(--color-border); }
.fws-locations-nav__footer a:hover { background: var(--color-tide); border-radius: var(--radius-xs); }
.fws-locations-nav__footer svg,
.fws-city-directory__fallback svg {
  width: 1.25rem;
  height: 1.25rem;
  flex: 0 0 1.25rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
[data-locations-nav] a:focus-visible,
[data-locations-nav] summary:focus-visible,
.fws-city-directory a:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 3px;
  border-radius: var(--radius-xs);
}
[data-locations-nav="mobile"] .fws-locations-nav__footer {
  grid-template-columns: 1fr;
  padding: .45rem;
  margin-block: .75rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
}
[data-locations-nav="mobile"] .fws-locations-nav__footer a { justify-content: flex-start; }
[data-locations-nav="mobile"] .fws-locations-nav__footer a + a { border-left: 0; border-top: 1px solid var(--color-border); }
[data-locations-nav="mobile"] .fws-locations-nav__footer a svg:last-child { margin-left: auto; }
[data-locations-nav="mobile"] li a { min-height: 44px; display: flex; align-items: center; }

/* Existing html scroll-padding supplies the sticky header height; avoid doubling it. */
#local-services.fws-city-directory { scroll-margin-top: 1rem; padding-block: clamp(2rem, 4vw, 3rem); background: linear-gradient(110deg, #fdf9f0, #eff8f5); }
.fws-city-directory .section-heading { max-width: none; }
.fws-city-directory .section-heading h2 { max-width: none; }
.fws-city-directory .section-heading > p:last-child { max-width: none; font-size: var(--text-base); line-height: 1.6; }
.fws-city-directory__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.fws-city-directory__territory {
  min-width: 0;
  padding: clamp(1.2rem, 2.5vw, 1.75rem);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-white);
  box-shadow: var(--shadow-card);
}
.fws-city-directory__territory h3 { margin: 0 0 .9rem; color: var(--color-ocean-deep); font-size: clamp(1.2rem, 1.8vw, 1.5rem); }
.fws-city-directory__city + .fws-city-directory__city { margin-top: .55rem; padding-top: .9rem; border-top: 1px solid var(--color-border); }
.fws-city-directory__city h4 { margin: 0 0 .15rem; color: var(--color-ink); font-size: 1.05rem; line-height: 1.4; }
.fws-city-directory__city ul { margin: 0; padding-left: 1.4rem; }
.fws-city-directory__city li { margin: 0; padding: 0; }
.fws-city-directory__city a { display: inline-flex; min-height: 44px; align-items: center; color: var(--color-teal-dark); text-decoration: underline; text-decoration-color: currentColor; text-underline-offset: .2em; }
.fws-city-directory__fallback {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .35rem 1.2rem;
  margin-top: 1.25rem;
  padding: .8rem 1.2rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: linear-gradient(105deg, var(--color-seafoam), #e2f2ef);
  color: var(--color-ink);
  font-size: .95rem;
}
.fws-city-directory__fallback a { display: inline-flex; gap: .65rem; align-items: center; min-height: 44px; color: var(--color-teal-dark); font-weight: 800; text-decoration: underline; text-decoration-color: currentColor; text-underline-offset: .2em; }
#local-services.fws-city-directory a { text-decoration-color: currentColor; }
@media (max-width: 45rem) {
  .fws-city-directory__grid { grid-template-columns: 1fr; }
  .fws-city-directory__fallback { flex-direction: column; align-items: flex-start; gap: .1rem; padding: 1rem; }
  .fws-city-directory__fallback strong { margin-bottom: .35rem; }
}
