/* WasteSpot v3.5.20 - global public width normalization
   One brand system, three semantic accents:
   green = brand and recycling, blue = maps and information,
   clay = exchange and editorial. Lime is reserved for small highlights
   and primary actions on dark surfaces. */

:root {
  --ws-ink: #17211c;
  --ws-ink-soft: #33423a;
  --ws-muted: #65736c;
  --ws-forest: #123a2c;
  --ws-forest-deep: #0d2c22;
  --ws-green: #2a704f;
  --ws-green-soft: #edf6f0;
  --ws-green-line: #cfe2d5;
  --ws-lime: #c8ef45;
  --ws-lime-deep: #9ac52f;
  --ws-blue: #32677c;
  --ws-blue-dark: #244f62;
  --ws-blue-soft: #edf5f7;
  --ws-blue-line: #cadde4;
  --ws-clay: #b76536;
  --ws-clay-dark: #834421;
  --ws-clay-soft: #fbf0e9;
  --ws-clay-line: #ebcdbb;
  --ws-sand: #faf7f1;
  --ws-paper: #ffffff;
  --ws-mist: #f3f6f4;
  --ws-line: #dce4df;
  --ws-line-strong: #c9d4ce;
  --ws-shadow-sm: 0 8px 24px rgba(18, 42, 31, .07);
  --ws-shadow-md: 0 18px 46px rgba(18, 42, 31, .11);
  --ws-radius-sm: 14px;
  --ws-radius: 20px;
  --ws-radius-lg: 28px;
  --ws-page-width: 1480px;
}

/* --------------------------------------------------------------------------
   1. Global foundation and shared shell
   -------------------------------------------------------------------------- */
html { color-scheme: light; }
body {
  color: var(--ws-ink) !important;
  background: #f6f7f5 !important;
}
body::before,
body::after { pointer-events: none; }

:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid rgba(50, 103, 124, .28) !important;
  outline-offset: 3px !important;
}

:where(.landing-main, .content-main, .growth-main, .news-shell, .legal-main) {
  color: var(--ws-ink);
}

.site-header {
  border-bottom: 1px solid var(--ws-line) !important;
  background: rgba(255, 255, 255, .97) !important;
  box-shadow: 0 5px 18px rgba(17, 37, 27, .045) !important;
}
.site-header::after {
  content: "";
  position: absolute;
  inset: auto 0 -1px;
  height: 2px;
  background: linear-gradient(90deg, var(--ws-green) 0 54%, var(--ws-blue) 54% 78%, var(--ws-clay) 78% 100%);
  opacity: .62;
}
.site-header a,
.site-header button { color: var(--ws-ink) !important; }
.site-header nav a:hover,
.site-header nav a[aria-current="page"],
.site-header nav a.active {
  color: var(--ws-forest) !important;
  background: var(--ws-green-soft) !important;
}
.site-header .header-report,
.site-header .report-link,
.site-header a[href*="report"] {
  color: var(--ws-forest-deep) !important;
  border-color: #b9d56d !important;
  background: #d8ef83 !important;
  box-shadow: none !important;
}
.site-header .header-report:hover,
.site-header .report-link:hover,
.site-header a[href*="report"]:hover { background: #cbe66b !important; }

.site-footer {
  border-top: 1px solid var(--ws-line) !important;
  background: #f0f3f1 !important;
}
.site-footer::before {
  background: linear-gradient(90deg, var(--ws-green), var(--ws-blue), var(--ws-clay)) !important;
  opacity: .5 !important;
}
.site-footer a { color: var(--ws-ink-soft) !important; }
.site-footer a:hover { color: var(--ws-blue-dark) !important; }

.breadcrumbs {
  color: var(--ws-muted) !important;
  font-size: .94rem !important;
  margin-bottom: 24px !important;
}
.breadcrumbs a { color: var(--ws-muted) !important; }
.breadcrumbs a:hover { color: var(--ws-blue-dark) !important; }

/* Compact labels. This explicitly neutralizes inherited oversized kicker styles. */
:where(.content-kicker, .landing-kicker, .landing-section-head > p,
       .news-eyebrow, .news-article-kicker, .legal-kicker,
       .landing-eyebrow) {
  display: inline-flex !important;
  width: fit-content !important;
  max-width: 100% !important;
  align-items: center !important;
  gap: 9px !important;
  margin: 0 0 15px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: .76rem !important;
  line-height: 1.25 !important;
  font-weight: 800 !important;
  letter-spacing: .13em !important;
  text-transform: uppercase !important;
  color: var(--ws-muted) !important;
}
:where(.content-kicker, .landing-kicker, .landing-section-head > p,
       .news-eyebrow, .news-article-kicker, .legal-kicker)::before {
  content: "";
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ws-green);
}

:where(.primary-link, .secondary-link, .hero-actions a, .hero-actions button) {
  min-height: 48px !important;
  padding: 13px 18px !important;
  border-radius: 13px !important;
  font-size: .98rem !important;
  font-weight: 750 !important;
  line-height: 1.2 !important;
  box-shadow: none !important;
}
.primary-link {
  color: #fff !important;
  border-color: var(--ws-forest) !important;
  background: var(--ws-forest) !important;
}
.primary-link:hover { background: var(--ws-green) !important; }
.secondary-link {
  color: var(--ws-ink) !important;
  border-color: var(--ws-line-strong) !important;
  background: #fff !important;
}
.secondary-link:hover {
  color: var(--ws-blue-dark) !important;
  border-color: var(--ws-blue-line) !important;
  background: var(--ws-blue-soft) !important;
}

/* Shared page hero language: rounded, contained, no decorative top bars. */
:where(.content-hero, .directory-hero, .growth-hero, .statistics-hero,
       .news-hero, .news-article-hero, .symbol-directory-hero,
       .deposit-hero, .legal-lead) {
  overflow: hidden;
  border: 1px solid var(--ws-line) !important;
  border-top: 1px solid var(--ws-line) !important;
  border-radius: var(--ws-radius-lg) !important;
  background: var(--ws-paper) !important;
  box-shadow: var(--ws-shadow-sm) !important;
}
:where(.content-hero, .directory-hero, .growth-hero, .statistics-hero,
       .news-hero, .news-article-hero, .symbol-directory-hero,
       .deposit-hero) h1 {
  color: var(--ws-ink) !important;
  font-size: clamp(2.7rem, 5.2vw, 5.1rem) !important;
  line-height: .97 !important;
  letter-spacing: -.055em !important;
  margin: 0 0 22px !important;
}
:where(.content-hero, .directory-hero, .growth-hero, .statistics-hero,
       .news-hero, .news-article-hero, .symbol-directory-hero,
       .deposit-hero) > p:not(.content-kicker):not(.news-eyebrow):not(.news-article-kicker) {
  max-width: 68ch !important;
  color: var(--ws-muted) !important;
  font-size: clamp(1.03rem, 1.35vw, 1.22rem) !important;
  line-height: 1.58 !important;
}

/* --------------------------------------------------------------------------
   2. Homepage: dark focal panel inside a neutral shell
   -------------------------------------------------------------------------- */
.landing-main {
  width: min(calc(100% - 32px), var(--ws-page-width)) !important;
  margin-inline: auto !important;
  padding: 24px 0 70px !important;
}
.landing-hero {
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1.58fr) minmax(320px, .72fr) !important;
  gap: 22px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 22px !important;
  border: 1px solid var(--ws-line) !important;
  border-radius: 32px !important;
  background: var(--ws-mist) !important;
  box-shadow: var(--ws-shadow-md) !important;
  overflow: hidden !important;
}
.landing-hero::before,
.landing-hero::after { display: none !important; }
.landing-hero-copy {
  position: relative !important;
  isolation: isolate !important;
  overflow: hidden !important;
  min-width: 0 !important;
  padding: clamp(34px, 4.6vw, 66px) !important;
  border: 0 !important;
  border-radius: 26px !important;
  background:
    radial-gradient(circle at 92% 92%, rgba(50, 103, 124, .28), transparent 31%),
    linear-gradient(145deg, var(--ws-forest-deep), var(--ws-forest)) !important;
  box-shadow: 0 18px 40px rgba(12, 39, 29, .18) !important;
}
.landing-hero-copy::before {
  content: "";
  position: absolute;
  z-index: -1;
  width: 240px;
  height: 240px;
  right: -110px;
  top: -120px;
  border-radius: 50%;
  background: rgba(200, 239, 69, .1);
}
.landing-hero-copy > * { position: relative; z-index: 1; }
.landing-hero .landing-eyebrow {
  color: rgba(255, 255, 255, .78) !important;
  margin-bottom: 24px !important;
}
.landing-hero .landing-eyebrow::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ws-lime);
  box-shadow: 0 0 0 5px rgba(200, 239, 69, .12);
}
.landing-hero h1 {
  max-width: 9.8ch !important;
  margin: 0 0 24px !important;
  color: #fff !important;
  font-size: clamp(3.25rem, 6vw, 6.35rem) !important;
  line-height: .91 !important;
  letter-spacing: -.067em !important;
  text-wrap: balance !important;
}
.landing-hero .landing-lead {
  max-width: 59ch !important;
  margin: 0 0 30px !important;
  color: rgba(255, 255, 255, .76) !important;
  font-size: clamp(1.02rem, 1.25vw, 1.2rem) !important;
  line-height: 1.58 !important;
}
.landing-search {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto !important;
  align-items: end !important;
  gap: 12px !important;
  width: 100% !important;
  padding: 13px !important;
  border: 1px solid rgba(255, 255, 255, .18) !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: 0 18px 34px rgba(5, 25, 18, .18) !important;
}
.landing-field { min-width: 0 !important; }
.landing-field label {
  display: block !important;
  margin: 0 0 8px !important;
  color: var(--ws-ink-soft) !important;
  font-size: .79rem !important;
  font-weight: 800 !important;
}
.landing-input {
  min-height: 48px !important;
  border: 1px solid var(--ws-line-strong) !important;
  border-radius: 12px !important;
  background: #fff !important;
}
.landing-input:focus-within {
  border-color: var(--ws-blue) !important;
  box-shadow: 0 0 0 3px rgba(50, 103, 124, .11) !important;
}
.landing-input svg { color: var(--ws-blue) !important; stroke: currentColor !important; }
.landing-search > button {
  min-height: 48px !important;
  padding: 0 20px !important;
  border: 1px solid #a8cf31 !important;
  border-radius: 12px !important;
  color: var(--ws-forest-deep) !important;
  background: var(--ws-lime) !important;
  font-size: .96rem !important;
  font-weight: 850 !important;
  box-shadow: none !important;
  white-space: nowrap !important;
}
.landing-search > button:hover { background: #d3f35f !important; }
.landing-popular {
  margin-top: 22px !important;
  color: rgba(255, 255, 255, .62) !important;
}
.landing-popular a {
  color: rgba(255, 255, 255, .9) !important;
  border-color: rgba(255, 255, 255, .2) !important;
  background: rgba(255, 255, 255, .055) !important;
}
.landing-popular a:hover {
  color: #fff !important;
  border-color: rgba(200, 239, 69, .55) !important;
  background: rgba(200, 239, 69, .1) !important;
}

.landing-hero-panel {
  display: grid !important;
  grid-template-columns: 1fr !important;
  align-content: stretch !important;
  gap: 11px !important;
  min-width: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
.landing-hero-panel > a {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 48px minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 15px !important;
  min-width: 0 !important;
  min-height: 82px !important;
  padding: 16px 17px !important;
  border: 1px solid var(--ws-line) !important;
  border-radius: 18px !important;
  color: var(--ws-ink) !important;
  background: #fff !important;
  box-shadow: var(--ws-shadow-sm) !important;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease !important;
}
.landing-hero-panel > a::before { display: none !important; }
.landing-hero-panel > a:hover {
  transform: translateY(-2px) !important;
  border-color: var(--ws-blue-line) !important;
  box-shadow: var(--ws-shadow-md) !important;
}
.landing-action-icon {
  display: grid !important;
  place-items: center !important;
  width: 48px !important;
  height: 48px !important;
  border: 1px solid var(--ws-line) !important;
  border-radius: 14px !important;
  color: var(--ws-green) !important;
  background: var(--ws-green-soft) !important;
  font-size: 1.35rem !important;
}
.landing-hero-panel > a:nth-child(2) .landing-action-icon,
.landing-hero-panel > a:nth-child(6) .landing-action-icon {
  color: var(--ws-clay-dark) !important;
  border-color: var(--ws-clay-line) !important;
  background: var(--ws-clay-soft) !important;
}
.landing-hero-panel > a:nth-child(3) .landing-action-icon,
.landing-hero-panel > a:nth-child(4) .landing-action-icon {
  color: var(--ws-blue-dark) !important;
  border-color: var(--ws-blue-line) !important;
  background: var(--ws-blue-soft) !important;
}
.landing-hero-panel strong {
  color: var(--ws-ink) !important;
  font-size: 1rem !important;
  line-height: 1.25 !important;
}
.landing-hero-panel small {
  display: block !important;
  margin-top: 4px !important;
  color: var(--ws-muted) !important;
  font-size: .83rem !important;
  line-height: 1.35 !important;
}
.landing-hero-panel b { color: var(--ws-blue) !important; }

.landing-proof {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 14px !important;
  margin: 18px 0 0 !important;
}
.landing-proof article {
  min-width: 0 !important;
  padding: 20px !important;
  border: 1px solid var(--ws-line) !important;
  border-radius: 17px !important;
  background: #fff !important;
  box-shadow: var(--ws-shadow-sm) !important;
}
.landing-proof article strong {
  display: block !important;
  color: var(--ws-ink) !important;
  font-size: clamp(1.45rem, 2.2vw, 2.2rem) !important;
}
.landing-proof article:nth-child(2) strong { color: var(--ws-blue-dark) !important; }
.landing-proof article:nth-child(3) strong { color: var(--ws-clay-dark) !important; }
.landing-proof article span { display: block !important; margin-top: 5px !important; color: var(--ws-muted) !important; }

.landing-section {
  margin-top: clamp(54px, 7vw, 92px) !important;
}
.landing-section-head { margin-bottom: 25px !important; }
.landing-section-head h2,
.landing-section > div > h2 {
  color: var(--ws-ink) !important;
  font-size: clamp(2.25rem, 4vw, 4.1rem) !important;
  line-height: 1 !important;
  letter-spacing: -.05em !important;
}
.landing-task-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 16px !important;
}
.landing-task-grid > a {
  min-height: 245px !important;
  padding: 25px !important;
  border: 1px solid var(--ws-line) !important;
  border-radius: 20px !important;
  color: var(--ws-ink) !important;
  background: #fff !important;
  box-shadow: var(--ws-shadow-sm) !important;
}
.landing-task-grid > a::before { display: none !important; }
.landing-task-grid > a:hover {
  border-color: var(--ws-blue-line) !important;
  box-shadow: var(--ws-shadow-md) !important;
  transform: translateY(-2px) !important;
}
.landing-task-grid > a > span {
  display: inline-grid !important;
  place-items: center !important;
  width: 42px !important;
  height: 42px !important;
  border-radius: 12px !important;
  color: var(--ws-green) !important;
  background: var(--ws-green-soft) !important;
}
.landing-task-grid > a:nth-child(3n+2) > span {
  color: var(--ws-blue-dark) !important;
  background: var(--ws-blue-soft) !important;
}
.landing-task-grid > a:nth-child(3n) > span {
  color: var(--ws-clay-dark) !important;
  background: var(--ws-clay-soft) !important;
}
.landing-task-grid h3 { color: var(--ws-ink) !important; }
.landing-task-grid p { color: var(--ws-muted) !important; }
.landing-task-grid b { color: var(--ws-blue-dark) !important; }

.landing-feature-split {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px !important;
}
.landing-feature-card {
  padding: clamp(28px, 4vw, 48px) !important;
  border-radius: 26px !important;
  box-shadow: var(--ws-shadow-md) !important;
}
.landing-feature-card.dark {
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, .08) !important;
  background: var(--ws-forest) !important;
}
.landing-feature-card.dark :is(h2, p, a, span) { color: inherit !important; }
.landing-feature-card.dark .landing-kicker { color: rgba(255,255,255,.72) !important; }
.landing-feature-card.dark .landing-kicker::before { background: var(--ws-lime) !important; }
.landing-feature-card.lime {
  color: var(--ws-ink) !important;
  border: 1px solid var(--ws-blue-line) !important;
  background: linear-gradient(145deg, #fff, var(--ws-blue-soft)) !important;
}
.landing-feature-card.lime .landing-kicker::before { background: var(--ws-blue) !important; }
.landing-feature-card.lime .landing-primary-link {
  color: #fff !important;
  background: var(--ws-blue) !important;
}
.landing-feature-card .landing-link-list a { border-color: rgba(128, 150, 139, .28) !important; }
.landing-primary-link {
  min-height: 48px !important;
  padding: 13px 18px !important;
  border-radius: 13px !important;
}
.landing-feature-card.dark .landing-primary-link {
  color: var(--ws-forest-deep) !important;
  background: var(--ws-lime) !important;
}

.landing-local {
  padding: clamp(28px, 4vw, 48px) !important;
  border: 1px solid var(--ws-line) !important;
  border-radius: 26px !important;
  background: var(--ws-sand) !important;
  box-shadow: var(--ws-shadow-sm) !important;
}
.landing-local-list a,
.landing-resource-grid a {
  border-color: var(--ws-line) !important;
  background: #fff !important;
}
.landing-inline-actions a { color: var(--ws-blue-dark) !important; }

/* --------------------------------------------------------------------------
   3. Recycling Centers directory and location pages
   -------------------------------------------------------------------------- */
.rc-main {
  width: min(calc(100% - 32px), var(--ws-page-width)) !important;
  margin-inline: auto !important;
  padding: 30px 0 72px !important;
}
.rc-directory-hero,
.rc-location-hero {
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: end !important;
  gap: clamp(24px, 5vw, 64px) !important;
  min-height: 0 !important;
  padding: clamp(34px, 5vw, 64px) !important;
  border: 1px solid var(--ws-line) !important;
  border-top: 1px solid var(--ws-line) !important;
  border-left: 6px solid var(--ws-blue) !important;
  border-radius: 28px !important;
  background:
    radial-gradient(circle at 92% 16%, rgba(183, 101, 54, .09), transparent 28%),
    linear-gradient(135deg, #fff 0%, #f4f8f8 72%, #fbf7f2 100%) !important;
  box-shadow: var(--ws-shadow-md) !important;
  overflow: hidden !important;
}
.rc-directory-hero .content-kicker::before,
.rc-location-hero .content-kicker::before { background: var(--ws-blue) !important; }
.rc-directory-hero h1,
.rc-location-hero h1 {
  max-width: 13ch !important;
  margin: 0 0 22px !important;
  color: var(--ws-ink) !important;
  font-size: clamp(3rem, 5.4vw, 5.35rem) !important;
  line-height: .94 !important;
  letter-spacing: -.062em !important;
  text-wrap: balance !important;
}
.rc-location-hero h1 { max-width: 16ch !important; }
.rc-directory-hero > div > p:not(.content-kicker),
.rc-location-hero > div > p:not(.content-kicker) {
  max-width: 64ch !important;
  margin: 0 !important;
  color: var(--ws-muted) !important;
  font-size: clamp(1.03rem, 1.35vw, 1.22rem) !important;
  line-height: 1.58 !important;
}
.rc-map-cta,
.rc-hero-actions .primary-link {
  display: inline-flex !important;
  width: auto !important;
  min-width: 0 !important;
  min-height: 52px !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  padding: 14px 19px !important;
  border: 1px solid var(--ws-blue-dark) !important;
  border-radius: 14px !important;
  color: #fff !important;
  background: var(--ws-blue) !important;
  box-shadow: 0 10px 24px rgba(36, 79, 98, .16) !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
}
.rc-map-cta *,
.rc-hero-actions .primary-link * { color: #fff !important; stroke: currentColor !important; }
.rc-map-cta:hover,
.rc-hero-actions .primary-link:hover { background: var(--ws-blue-dark) !important; }
.rc-hero-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 10px !important;
}
.rc-hero-actions .secondary-link {
  color: var(--ws-ink) !important;
  background: #fff !important;
}
.content-meta {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 9px !important;
  margin-top: 22px !important;
}
.content-meta span {
  padding: 7px 10px !important;
  border: 1px solid var(--ws-line) !important;
  border-radius: 999px !important;
  color: var(--ws-ink-soft) !important;
  background: rgba(255, 255, 255, .8) !important;
  font-size: .82rem !important;
}

.rc-coverage,
.rc-visit-summary {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 14px !important;
  margin: 18px 0 0 !important;
}
.rc-visit-summary { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.rc-coverage > article,
.rc-coverage > div,
.rc-coverage .rc-coverage-card,
.rc-visit-summary > div {
  display: grid !important;
  align-content: start !important;
  gap: 7px !important;
  min-width: 0 !important;
  min-height: 112px !important;
  padding: 20px !important;
  border: 1px solid var(--ws-line) !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: var(--ws-shadow-sm) !important;
}
.rc-coverage strong,
.rc-visit-summary strong {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  color: var(--ws-ink) !important;
  font-size: clamp(1.3rem, 2vw, 2rem) !important;
  line-height: 1.05 !important;
}
.rc-coverage > :nth-child(2) strong { color: var(--ws-blue-dark) !important; }
.rc-coverage > :nth-child(3) strong,
.rc-visit-summary > :nth-child(2) strong { color: var(--ws-clay-dark) !important; }
.rc-coverage span,
.rc-visit-summary span {
  display: block !important;
  color: var(--ws-muted) !important;
  font-size: .91rem !important;
  line-height: 1.45 !important;
}

.rc-directory-tools,
.rc-material-nav,
.rc-popular-section,
.rc-info-grid > section,
.rc-search-intent-guide,
.rc-prep,
.rc-faq-section {
  border: 1px solid var(--ws-line) !important;
  border-radius: var(--ws-radius) !important;
  background: #fff !important;
  box-shadow: var(--ws-shadow-sm) !important;
}
.rc-directory-tools,
.rc-material-nav { padding: clamp(22px, 3vw, 32px) !important; }
.rc-directory-tools :where(input, select),
.rc-search-form :where(input, select) {
  border-color: var(--ws-line-strong) !important;
  background: #fff !important;
}
.rc-directory-tools :where(input, select):focus,
.rc-search-form :where(input, select):focus { border-color: var(--ws-blue) !important; }
.rc-search-form button,
.rc-directory-tools button {
  color: #fff !important;
  border-color: var(--ws-blue-dark) !important;
  background: var(--ws-blue) !important;
}
.rc-scope-tabs button.active,
.rc-material-links a.active {
  color: #fff !important;
  border-color: var(--ws-blue) !important;
  background: var(--ws-blue) !important;
}
.rc-scope-tabs button:not(.active),
.rc-material-links a:not(.active) {
  color: var(--ws-ink-soft) !important;
  border-color: var(--ws-line) !important;
  background: #fff !important;
}

.rc-city-card,
.profile-card {
  position: relative !important;
  overflow: hidden !important;
  border: 1px solid var(--ws-line) !important;
  border-top: 1px solid var(--ws-line) !important;
  border-left: 4px solid var(--ws-green) !important;
  border-radius: 17px !important;
  color: var(--ws-ink) !important;
  background: #fff !important;
  box-shadow: var(--ws-shadow-sm) !important;
}
.rc-city-card::before,
.profile-card::before { display: none !important; }
.rc-city-card:hover,
.profile-card:hover {
  border-color: var(--ws-blue-line) !important;
  border-left-color: var(--ws-blue) !important;
  box-shadow: var(--ws-shadow-md) !important;
}
.rc-city-card :is(strong, h3),
.profile-card strong { color: var(--ws-ink) !important; }
.rc-city-card :is(span, small, p),
.profile-card :is(span, small, p) { color: var(--ws-muted) !important; }

.rc-group-heading {
  display: flex !important;
  align-items: end !important;
  justify-content: space-between !important;
  gap: 24px !important;
  margin-bottom: 20px !important;
}
.rc-group-heading > span {
  flex: 0 0 auto !important;
  padding: 8px 11px !important;
  border: 1px solid var(--ws-blue-line) !important;
  border-radius: 999px !important;
  color: var(--ws-blue-dark) !important;
  background: var(--ws-blue-soft) !important;
  font-size: .84rem !important;
  font-weight: 800 !important;
}
.rc-place-list {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 20px !important;
}
.rc-location-section .rc-place-card,
.rc-place-card {
  overflow: hidden !important;
  width: 100% !important;
  padding: clamp(24px, 3vw, 34px) !important;
  border: 1px solid var(--ws-line) !important;
  border-left: 4px solid var(--ws-blue) !important;
  border-radius: 22px !important;
  color: var(--ws-ink) !important;
  background: #fff !important;
  box-shadow: var(--ws-shadow-sm) !important;
}
.rc-place-card-top {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: start !important;
  gap: 24px !important;
  margin-bottom: 22px !important;
}
.rc-place-card-top h3 {
  margin: 12px 0 10px !important;
  color: var(--ws-ink) !important;
  font-size: clamp(1.45rem, 2.4vw, 2.15rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -.035em !important;
}
.rc-place-card-top > strong {
  padding: 7px 9px !important;
  border-radius: 8px !important;
  color: var(--ws-blue-dark) !important;
  background: var(--ws-blue-soft) !important;
  white-space: nowrap !important;
}
.rc-badge-row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 7px !important;
}
.rc-source-badge {
  color: var(--ws-green) !important;
  border-color: var(--ws-green-line) !important;
  background: var(--ws-green-soft) !important;
}
.rc-source-badge.rc-type-badge {
  color: var(--ws-blue-dark) !important;
  border-color: var(--ws-blue-line) !important;
  background: var(--ws-blue-soft) !important;
}
.rc-warning-badge,
.rc-unconfirmed-badge {
  color: var(--ws-clay-dark) !important;
  border-color: var(--ws-clay-line) !important;
  background: var(--ws-clay-soft) !important;
}
.rc-card-address { color: var(--ws-muted) !important; }
.rc-card-address .rc-icon { color: var(--ws-blue) !important; }

.rc-place-facts {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
  margin: 0 0 22px !important;
}
.rc-place-facts .rc-fact-row {
  display: grid !important;
  grid-template-columns: 28px minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 12px !important;
  min-width: 0 !important;
  padding: 17px !important;
  border: 1px solid var(--ws-line) !important;
  border-radius: 15px !important;
  background: var(--ws-mist) !important;
}
.rc-place-facts .rc-fact-row:nth-child(even) { background: var(--ws-mist) !important; }
.rc-place-facts .rc-icon { color: var(--ws-blue) !important; }
.rc-place-facts dt {
  color: var(--ws-muted) !important;
  font-size: .76rem !important;
  line-height: 1.25 !important;
  letter-spacing: .07em !important;
  text-transform: uppercase !important;
}
.rc-place-facts dd {
  margin-top: 5px !important;
  color: var(--ws-ink-soft) !important;
  line-height: 1.5 !important;
}
.rc-place-facts a { color: var(--ws-blue-dark) !important; }

.rc-material-block {
  padding: 21px !important;
  border: 1px solid var(--ws-green-line) !important;
  border-radius: 17px !important;
  background: var(--ws-green-soft) !important;
}
.rc-material-block > strong { color: var(--ws-forest) !important; }
.rc-material-block > strong .rc-icon { color: var(--ws-green) !important; }
.rc-place-materials {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-top: 13px !important;
}
.rc-place-materials span {
  padding: 7px 10px !important;
  border: 1px solid var(--ws-green-line) !important;
  border-radius: 999px !important;
  color: var(--ws-forest-deep) !important;
  background: #fff !important;
  font-size: .83rem !important;
  font-weight: 750 !important;
}
.rc-place-materials span::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 7px;
  border-radius: 50%;
  vertical-align: .08em;
  background: var(--ws-green);
}
.rc-material-block > p { color: var(--ws-muted) !important; }
.rc-place-verification { color: var(--ws-muted) !important; }
.rc-place-verification .rc-icon { color: var(--ws-clay) !important; }

.rc-place-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  margin-top: 21px !important;
}
.rc-place-actions a {
  min-height: 46px !important;
  padding: 12px 15px !important;
  border-radius: 12px !important;
  font-size: .9rem !important;
  font-weight: 800 !important;
  box-shadow: none !important;
}
.rc-place-actions a:first-child {
  color: #fff !important;
  border-color: var(--ws-blue-dark) !important;
  background: var(--ws-blue) !important;
}
.rc-place-actions a:first-child *,
.rc-place-actions a:first-child svg { color: #fff !important; stroke: currentColor !important; }
.rc-place-actions a:first-child:hover { background: var(--ws-blue-dark) !important; }
.rc-place-actions a:nth-child(2) {
  color: var(--ws-ink) !important;
  border-color: var(--ws-line-strong) !important;
  background: #fff !important;
}
.rc-place-actions a:nth-child(3) {
  color: var(--ws-clay-dark) !important;
  border-color: var(--ws-clay-line) !important;
  background: var(--ws-clay-soft) !important;
}

.rc-info-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 16px !important;
}
.rc-info-grid > section { padding: clamp(22px, 3vw, 32px) !important; }
.rc-related-links a { color: var(--ws-blue-dark) !important; }
.rc-faq-section .faq-list details {
  border: 1px solid var(--ws-line) !important;
  border-left: 3px solid var(--ws-blue) !important;
  border-radius: 13px !important;
  background: #fff !important;
}
.rc-faq-section .faq-list details:nth-child(even) { border-left-color: var(--ws-blue) !important; }

/* --------------------------------------------------------------------------
   4. Waste Exchange: contained editorial hero, no square empty panel
   -------------------------------------------------------------------------- */
.wx-main {
  width: min(calc(100% - 32px), 1320px) !important;
  margin-inline: auto !important;
  padding: 30px 0 72px !important;
}
.waste-exchange-page .wx-hero,
.wx-hero,
.wx-detail-hero {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  grid-template-areas:
    "kicker action"
    "title action"
    "copy action" !important;
  align-items: end !important;
  gap: 12px 38px !important;
  width: 100% !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 0 22px !important;
  padding: clamp(34px, 5vw, 58px) !important;
  border: 1px solid var(--ws-line) !important;
  border-top: 1px solid var(--ws-line) !important;
  border-left: 6px solid var(--ws-clay) !important;
  border-radius: 28px !important;
  background:
    radial-gradient(circle at 92% 20%, rgba(183, 101, 54, .1), transparent 29%),
    linear-gradient(135deg, #fff 0%, var(--ws-sand) 100%) !important;
  box-shadow: var(--ws-shadow-md) !important;
  overflow: hidden !important;
}
.wx-hero .content-kicker,
.wx-detail-hero .content-kicker { grid-area: kicker !important; color: var(--ws-clay-dark) !important; }
.wx-hero .content-kicker::before,
.wx-detail-hero .content-kicker::before { background: var(--ws-clay) !important; }
.wx-hero h1,
.wx-detail-hero h1 {
  grid-area: title !important;
  max-width: 12ch !important;
  margin: 0 !important;
  color: var(--ws-ink) !important;
  font-size: clamp(3.2rem, 6vw, 5.7rem) !important;
  line-height: .92 !important;
  letter-spacing: -.065em !important;
}
.wx-hero > p:not(.content-kicker),
.wx-detail-hero > p:not(.content-kicker) {
  grid-area: copy !important;
  max-width: 64ch !important;
  margin: 9px 0 0 !important;
  color: var(--ws-muted) !important;
  font-size: clamp(1.03rem, 1.35vw, 1.2rem) !important;
  line-height: 1.58 !important;
}
.wx-hero .hero-actions,
.wx-detail-hero .hero-actions {
  grid-area: action !important;
  align-self: end !important;
  justify-self: end !important;
  margin: 0 !important;
}
.wx-hero .primary-link,
.wx-detail-hero .primary-link,
.wx-modal-card .primary-link {
  color: #fff !important;
  border-color: var(--ws-clay-dark) !important;
  background: var(--ws-clay) !important;
}
.wx-hero .primary-link:hover,
.wx-detail-hero .primary-link:hover,
.wx-modal-card .primary-link:hover { background: var(--ws-clay-dark) !important; }

.wx-tabs {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 9px !important;
  padding: 8px !important;
  border: 1px solid var(--ws-line) !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: var(--ws-shadow-sm) !important;
}
.wx-tabs a {
  min-height: 42px !important;
  padding: 11px 14px !important;
  border-radius: 11px !important;
  color: var(--ws-ink-soft) !important;
}
.wx-tabs a.active {
  color: #fff !important;
  background: var(--ws-clay) !important;
}
.wx-category-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 14px !important;
  margin: 20px 0 !important;
}
.wx-category-grid > *,
.wx-listing-card,
.wx-detail-card,
.wx-contact-card,
.wx-modal-card,
.wx-how > div {
  border: 1px solid var(--ws-line) !important;
  border-top: 1px solid var(--ws-line) !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: var(--ws-shadow-sm) !important;
}
.wx-category-grid > * {
  min-height: 128px !important;
  padding: 20px !important;
}
.wx-category-grid > :nth-child(even),
.wx-category-grid > :nth-child(odd),
.wx-listing-card:nth-child(even),
.wx-listing-card:nth-child(odd) { border-top: 1px solid var(--ws-line) !important; }
.wx-category-grid > *.active {
  border-color: var(--ws-clay-line) !important;
  box-shadow: inset 4px 0 0 var(--ws-clay), var(--ws-shadow-sm) !important;
}
.wx-category-grid strong { color: var(--ws-ink) !important; }
.wx-category-grid span { color: var(--ws-muted) !important; }
.wx-listing-section,
.wx-how { margin-top: 42px !important; }
.wx-listing-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 16px !important;
}
.wx-listing-card {
  padding: 22px !important;
  color: var(--ws-ink) !important;
}
.wx-listing-card:hover {
  border-color: var(--ws-blue-line) !important;
  box-shadow: var(--ws-shadow-md) !important;
}
.wx-type.offer {
  color: var(--ws-green) !important;
  border-color: var(--ws-green-line) !important;
  background: var(--ws-green-soft) !important;
}
.wx-type.wanted {
  color: var(--ws-blue-dark) !important;
  border-color: var(--ws-blue-line) !important;
  background: var(--ws-blue-soft) !important;
}
.wx-quantity,
.wx-card-top > span:not(.wx-type) {
  color: var(--ws-clay-dark) !important;
  border-color: var(--ws-clay-line) !important;
  background: var(--ws-clay-soft) !important;
}
.wx-how {
  display: grid !important;
  grid-template-columns: 1.45fr .75fr !important;
  gap: 16px !important;
}
.wx-how > div { padding: clamp(24px, 3vw, 34px) !important; }
.wx-modal-card { padding: clamp(24px, 4vw, 42px) !important; }
.wx-modal-card :where(input, select, textarea) {
  border-color: var(--ws-line-strong) !important;
  background: #fff !important;
}

/* --------------------------------------------------------------------------
   5. Exact internal map location and main map
   -------------------------------------------------------------------------- */
.ws-location-hero {
  border: 1px solid var(--ws-line) !important;
  border-left: 5px solid var(--ws-blue) !important;
  border-top: 1px solid var(--ws-line) !important;
  border-radius: 24px !important;
  background: linear-gradient(135deg, #fff, var(--ws-blue-soft)) !important;
  box-shadow: var(--ws-shadow-sm) !important;
}
.ws-location-back {
  color: var(--ws-blue-dark) !important;
  border-color: var(--ws-blue-line) !important;
  background: #fff !important;
}
.ws-location-map-shell {
  overflow: hidden !important;
  border: 1px solid var(--ws-blue-line) !important;
  border-radius: 22px !important;
  box-shadow: var(--ws-shadow-md) !important;
}
.ws-location-details {
  border: 1px solid var(--ws-line) !important;
  border-top: 1px solid var(--ws-line) !important;
  border-left: 4px solid var(--ws-blue) !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: var(--ws-shadow-sm) !important;
}
.ws-location-actions a:first-child {
  color: #fff !important;
  border-color: var(--ws-blue-dark) !important;
  background: var(--ws-blue) !important;
}
.ws-location-actions a:not(:first-child) {
  color: var(--ws-clay-dark) !important;
  border-color: var(--ws-clay-line) !important;
  background: var(--ws-clay-soft) !important;
}
.ws-location-status {
  color: var(--ws-ink-soft) !important;
  border-color: var(--ws-line) !important;
  background: rgba(255, 255, 255, .96) !important;
}
.map-page .map-sidebar,
.map-page .map-panel,
.map-page .search-panel {
  border-color: var(--ws-line) !important;
  background: #fff !important;
}
.map-page :where(.map-primary, .search-primary, button[type="submit"]) {
  color: #fff !important;
  background: var(--ws-blue) !important;
}
.map-page :where(.filter-chip, .material-chip).active {
  color: #fff !important;
  border-color: var(--ws-blue) !important;
  background: var(--ws-blue) !important;
}

/* --------------------------------------------------------------------------
   6. Other public page families: semantic accents, consistent geometry
   -------------------------------------------------------------------------- */
.answers-page :is(.answers-hero, .answers-search, .answers-summary),
.answers-index-page :is(.answers-hero, .answers-search, .answers-summary),
.item-index-page .directory-hero,
.symbol-index-page .symbol-directory-hero,
.deposit-index-page .deposit-hero,
.rule-index-page .directory-hero,
.statistics-index-page .statistics-hero,
.growth-index-page .growth-hero,
.news-hero,
.news-article-hero {
  padding: clamp(30px, 4vw, 52px) !important;
}
.answers-page :is(.answers-hero, .answers-search, .answers-summary),
.answers-index-page :is(.answers-hero, .answers-search, .answers-summary) {
  border-left: 5px solid var(--ws-blue) !important;
  background: linear-gradient(135deg, #fff, var(--ws-blue-soft)) !important;
}
.answers-page :is(article, .answer-card, .answers-card),
.answers-index-page :is(article, .answer-card, .answers-card),
.news-card,
.profile-card,
.data-metric,
.fact-grid > *,
.symbol-card,
.deposit-card,
.item-card,
.rule-card,
.statistics-card,
.tool-card,
.pdf-guide-card {
  border: 1px solid var(--ws-line) !important;
  border-top: 1px solid var(--ws-line) !important;
  border-radius: 17px !important;
  background: #fff !important;
  box-shadow: var(--ws-shadow-sm) !important;
}
.answers-page :is(article, .answer-card, .answers-card):nth-child(even),
.answers-index-page :is(article, .answer-card, .answers-card):nth-child(even) {
  border-left-color: var(--ws-blue) !important;
}
.answers-page :is(.category-chip, .answers-category, .answer-category),
.answers-index-page :is(.category-chip, .answers-category, .answer-category) {
  color: var(--ws-blue-dark) !important;
  border-color: var(--ws-blue-line) !important;
  background: var(--ws-blue-soft) !important;
}

.news-hero,
.news-article-hero {
  border-left: 5px solid var(--ws-clay) !important;
  background: linear-gradient(135deg, #fff, var(--ws-clay-soft)) !important;
}
.news-eyebrow::before,
.news-article-kicker::before { background: var(--ws-clay) !important; }
.news-card:nth-child(even),
.news-card:nth-child(odd) { border-top: 1px solid var(--ws-line) !important; }
.news-card:hover { border-color: var(--ws-clay-line) !important; box-shadow: var(--ws-shadow-md) !important; }
.news-visual-label {
  color: var(--ws-clay-dark) !important;
  background: var(--ws-clay-soft) !important;
}
.news-card .news-card-link { color: var(--ws-clay-dark) !important; }

.item-index-page .directory-hero,
.symbol-index-page .symbol-directory-hero,
.deposit-index-page .deposit-hero,
.rule-index-page .directory-hero,
.growth-index-page .growth-hero {
  border-left: 5px solid var(--ws-green) !important;
  background: linear-gradient(135deg, #fff, var(--ws-green-soft)) !important;
}
.statistics-index-page .statistics-hero {
  border-left: 5px solid var(--ws-blue) !important;
  background: linear-gradient(135deg, #fff, var(--ws-blue-soft)) !important;
}
.symbol-code-pill,
.symbol-jurisdiction-pill,
.deposit-identifier,
.deposit-value {
  color: var(--ws-green) !important;
  border-color: var(--ws-green-line) !important;
  background: var(--ws-green-soft) !important;
}
.symbol-status-note,
.symbol-directory-note,
.deposit-marker-note,
.deposit-artwork-status {
  border-color: var(--ws-line) !important;
  background: var(--ws-mist) !important;
}
.data-metric-grid .data-metric:nth-child(even),
.data-metric-grid .data-metric:nth-child(odd),
.fact-grid > :nth-child(even),
.fact-grid > :nth-child(odd) { border-top: 1px solid var(--ws-line) !important; }
.data-metric-grid .data-metric:nth-child(3n+2) strong { color: var(--ws-blue-dark) !important; }
.data-metric-grid .data-metric:nth-child(3n) strong { color: var(--ws-clay-dark) !important; }
.data-bar-row :is(i, span[style*="width"]) { background-color: var(--ws-blue) !important; }

/* Functional swatches and symbols keep their real colours. */
:where(.bin-swatch, .bin-poster-swatch, .mini-swatches *, .deposit-marker-figure,
       .symbol-hero-mark, .symbol-artwork-type, .news-card-visual) {
  forced-color-adjust: none;
}

/* --------------------------------------------------------------------------
   7. Legal, cookies, forms and empty states
   -------------------------------------------------------------------------- */
.legal-main { color: var(--ws-ink) !important; }
.legal-main .legal-kicker::before { background: var(--ws-blue) !important; }
.legal-section,
.legal-card,
.cookie-modal-card,
.cookie-choice,
.accuracy-note,
.empty-state,
.wx-empty {
  border: 1px solid var(--ws-line) !important;
  border-radius: 17px !important;
  background: #fff !important;
  box-shadow: var(--ws-shadow-sm) !important;
}
.cookie-choice.always-on {
  border-color: var(--ws-blue-line) !important;
  background: var(--ws-blue-soft) !important;
}
.accuracy-note {
  border-left: 4px solid var(--ws-blue) !important;
}
:where(input, select, textarea) {
  color: var(--ws-ink) !important;
}

/* --------------------------------------------------------------------------
   8. Responsive normalization
   -------------------------------------------------------------------------- */
@media (max-width: 1180px) {
  .landing-hero {
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, .75fr) !important;
  }
  .landing-search { grid-template-columns: 1fr 1fr !important; }
  .landing-search > button { grid-column: 1 / -1 !important; }
  .rc-coverage { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .wx-category-grid,
  .wx-listing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (max-width: 900px) {
  .landing-hero {
    grid-template-columns: 1fr !important;
    padding: 16px !important;
  }
  .landing-hero-panel { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .landing-proof,
  .landing-task-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .landing-feature-split { grid-template-columns: 1fr !important; }

  .rc-directory-hero,
  .rc-location-hero,
  .waste-exchange-page .wx-hero,
  .wx-hero,
  .wx-detail-hero {
    grid-template-columns: 1fr !important;
    grid-template-areas: none !important;
    align-items: start !important;
  }
  .wx-hero .content-kicker,
  .wx-hero h1,
  .wx-hero > p:not(.content-kicker),
  .wx-hero .hero-actions,
  .wx-detail-hero .content-kicker,
  .wx-detail-hero h1,
  .wx-detail-hero > p:not(.content-kicker),
  .wx-detail-hero .hero-actions { grid-area: auto !important; justify-self: start !important; }
  .rc-hero-actions { justify-content: flex-start !important; }
  .rc-place-facts { grid-template-columns: 1fr !important; }
  .rc-info-grid,
  .wx-how { grid-template-columns: 1fr !important; }
}

@media (max-width: 680px) {
  .landing-main,
  .rc-main,
  .wx-main { width: min(calc(100% - 20px), var(--ws-page-width)) !important; }
  .landing-hero-copy { padding: 30px 22px !important; border-radius: 22px !important; }
  .landing-hero h1 { font-size: clamp(3rem, 15vw, 4.6rem) !important; }
  .landing-search { grid-template-columns: 1fr !important; padding: 10px !important; }
  .landing-search > button { grid-column: auto !important; }
  .landing-hero-panel { grid-template-columns: 1fr !important; }
  .landing-proof,
  .landing-task-grid { grid-template-columns: 1fr !important; }

  .rc-directory-hero,
  .rc-location-hero,
  .waste-exchange-page .wx-hero,
  .wx-hero,
  .wx-detail-hero {
    padding: 28px 22px !important;
    border-radius: 22px !important;
    border-left-width: 4px !important;
  }
  .rc-directory-hero h1,
  .rc-location-hero h1,
  .wx-hero h1,
  .wx-detail-hero h1 { font-size: clamp(2.75rem, 13vw, 4rem) !important; }
  .rc-map-cta,
  .rc-hero-actions .primary-link { width: 100% !important; }
  .rc-coverage,
  .rc-visit-summary,
  .wx-category-grid,
  .wx-listing-grid { grid-template-columns: 1fr !important; }
  .rc-place-card-top { grid-template-columns: 1fr !important; }
  .rc-place-card-top > strong { width: fit-content !important; }
  .rc-group-heading { align-items: start !important; flex-direction: column !important; }
  .rc-place-actions a { flex: 1 1 100% !important; justify-content: center !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* ========================================================================== 
   9. WasteSpot v3.5.18 - screenshot-driven layout, contrast and spacing fix
   ========================================================================== */

/* Footer: headings must remain readable on the light footer surface. */
.site-footer {
  color: var(--ws-ink-soft) !important;
}
.site-footer :where(h2, h3, h4, h5, h6, strong,
  .footer-title, .footer-heading, .footer-kicker,
  .footer-column-title, .footer-nav-title, .footer-group-title) {
  color: var(--ws-ink) !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
.site-footer :where(.footer-title, .footer-heading, .footer-kicker,
  .footer-column-title, .footer-nav-title, .footer-group-title,
  .footer-group > strong, .footer-links > strong, .footer-nav > strong) {
  font-size: .75rem !important;
  font-weight: 850 !important;
  line-height: 1.25 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
}
.site-footer :where(p, li, small, .footer-description, .footer-copy, .footer-meta) {
  color: var(--ws-muted) !important;
  opacity: 1 !important;
}
.site-footer a,
.site-footer button {
  color: var(--ws-ink-soft) !important;
  opacity: 1 !important;
}
.site-footer a:hover,
.site-footer button:hover {
  color: var(--ws-forest) !important;
}
.site-footer .footer-brand p {
  color: var(--ws-muted) !important;
  opacity: 1 !important;
}
.site-footer .footer-grid {
  row-gap: 32px !important;
}
.site-footer :where(.footer-cta, .footer-action, .footer-primary-link,
  a[href*="suggest"], a[href*="report"]) {
  color: var(--ws-forest-deep) !important;
}

/* Legal pages: restore internal padding and predictable content geometry. */
.legal-main {
  width: min(calc(100% - 32px), 1280px) !important;
  max-width: 1280px !important;
  margin-inline: auto !important;
  padding: 44px 0 76px !important;
  box-sizing: border-box !important;
  overflow: visible !important;
}
.legal-main > :where(.legal-kicker, .content-kicker) {
  margin-bottom: 20px !important;
}
.legal-main > h1,
.legal-main .legal-header > h1,
.legal-main .legal-hero > h1 {
  max-width: 20ch !important;
  margin: 0 0 26px !important;
  color: var(--ws-ink) !important;
  font-size: clamp(2.8rem, 5vw, 4.7rem) !important;
  line-height: .98 !important;
  letter-spacing: -.052em !important;
  text-wrap: balance !important;
}
.legal-lead {
  display: block !important;
  width: min(100%, 1080px) !important;
  max-width: 100% !important;
  min-height: 0 !important;
  margin: 0 0 28px !important;
  padding: 22px 26px !important;
  box-sizing: border-box !important;
  overflow: visible !important;
  position: relative !important;
  inset: auto !important;
  transform: none !important;
  translate: none !important;
  text-indent: 0 !important;
  color: var(--ws-muted) !important;
  font-size: clamp(1.02rem, 1.35vw, 1.18rem) !important;
  line-height: 1.58 !important;
}
.legal-lead > :where(p, div, span) {
  position: static !important;
  inset: auto !important;
  width: auto !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  translate: none !important;
  text-indent: 0 !important;
  color: inherit !important;
  line-height: inherit !important;
  overflow: visible !important;
}
.legal-meta,
.legal-updated,
.legal-main > .legal-meta,
.legal-main > .legal-updated {
  width: 100% !important;
  margin: 0 0 42px !important;
  padding: 17px 20px !important;
  box-sizing: border-box !important;
  border: 1px solid var(--ws-line) !important;
  border-radius: 14px !important;
  color: var(--ws-muted) !important;
  background: #fff !important;
}
.legal-section {
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 0 24px !important;
  padding: 28px 30px !important;
  box-sizing: border-box !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
}
.legal-section + .legal-section {
  margin-top: 24px !important;
}
.legal-section > :first-child {
  margin-top: 0 !important;
}
.legal-section > :last-child {
  margin-bottom: 0 !important;
}
.legal-section > h2,
.legal-section > h3 {
  max-width: 100% !important;
  margin: 0 0 22px !important;
  color: var(--ws-ink) !important;
  line-height: 1.08 !important;
  text-wrap: balance !important;
}
.legal-section > h2 {
  font-size: clamp(1.65rem, 2.5vw, 2.25rem) !important;
}
.legal-grid,
.legal-card-grid,
.legal-columns {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px !important;
  width: 100% !important;
  min-width: 0 !important;
  margin-top: 18px !important;
}
.legal-card {
  min-width: 0 !important;
  height: 100% !important;
  padding: 23px 24px !important;
  box-sizing: border-box !important;
  overflow-wrap: anywhere !important;
}
.legal-card > :first-child {
  margin-top: 0 !important;
}
.legal-card > :last-child {
  margin-bottom: 0 !important;
}
.legal-main :where(p, li, dd) {
  overflow-wrap: anywhere !important;
}

/* Exact map location: compact hero, aligned action and balanced content columns. */
.ws-location-hero {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: end !important;
  gap: 22px 30px !important;
  width: 100% !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 0 24px !important;
  padding: 28px 30px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}
.ws-location-hero > :first-child {
  min-width: 0 !important;
}
/* Fallback for templates that expose the hero parts as direct children. */
.ws-location-hero:has(> :where(.content-kicker, .ws-location-kicker)) {
  grid-template-areas:
    "kicker back"
    "title back"
    "address back" !important;
}
.ws-location-hero:has(> :where(.content-kicker, .ws-location-kicker))
  > :where(.content-kicker, .ws-location-kicker) {
  grid-area: kicker !important;
}
.ws-location-hero:has(> :where(.content-kicker, .ws-location-kicker)) > h1 {
  grid-area: title !important;
}
.ws-location-hero:has(> :where(.content-kicker, .ws-location-kicker))
  > :where(.ws-location-address, address, .location-address) {
  grid-area: address !important;
}
.ws-location-hero:has(> :where(.content-kicker, .ws-location-kicker))
  > .ws-location-back {
  grid-area: back !important;
}
.ws-location-hero :where(.content-kicker, .ws-location-kicker) {
  margin: 0 0 16px !important;
}
.ws-location-hero h1 {
  max-width: 34ch !important;
  margin: 0 0 16px !important;
  color: var(--ws-ink) !important;
  font-size: clamp(2.05rem, 3.25vw, 3.45rem) !important;
  line-height: 1.02 !important;
  letter-spacing: -.045em !important;
  text-wrap: balance !important;
}
.ws-location-hero :where(.ws-location-address, address, .location-address),
.ws-location-hero > :first-child > p:not(.content-kicker):not(.ws-location-kicker) {
  max-width: 70ch !important;
  margin: 0 !important;
  color: var(--ws-muted) !important;
  line-height: 1.5 !important;
}
.ws-location-back {
  align-self: end !important;
  justify-self: end !important;
  width: auto !important;
  max-width: min(100%, 360px) !important;
  min-height: 48px !important;
  margin: 0 !important;
  padding: 12px 17px !important;
  border-radius: 13px !important;
  white-space: normal !important;
  text-align: center !important;
}
:where(.ws-location-layout, .ws-location-grid, .ws-location-content) {
  gap: 24px !important;
  align-items: start !important;
}
.ws-location-map-shell,
.ws-location-details {
  margin: 0 !important;
}
.ws-location-details {
  padding: 25px 27px !important;
  box-sizing: border-box !important;
}
.ws-location-details > :first-child {
  margin-top: 0 !important;
}
.ws-location-details > :last-child {
  margin-bottom: 0 !important;
}

/* Recycling directory: prevent summary cards from touching the search panel. */
.rc-coverage,
.rc-visit-summary {
  margin: 18px 0 24px !important;
}
.rc-coverage > article,
.rc-coverage > div,
.rc-coverage .rc-coverage-card,
.rc-visit-summary > div {
  height: 100% !important;
  min-height: 132px !important;
}
.rc-coverage > :nth-child(3) strong,
.rc-coverage > :nth-child(4) strong {
  max-width: 14ch !important;
  font-size: clamp(1.35rem, 1.55vw, 1.65rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -.035em !important;
  text-wrap: balance !important;
}
.rc-directory-tools {
  margin-top: 0 !important;
}

/* Item guide and shared interior heroes: no oversized empty area or attached cards. */
.item-index-page .directory-hero {
  min-height: 0 !important;
  height: auto !important;
  margin: 0 0 24px !important;
  padding: clamp(34px, 4.2vw, 54px) !important;
  box-sizing: border-box !important;
}
.item-index-page .directory-hero h1 {
  max-width: 14ch !important;
  margin-bottom: 24px !important;
  font-size: clamp(3rem, 5vw, 4.65rem) !important;
  line-height: .98 !important;
}
.item-index-page .directory-hero > p:not(.content-kicker) {
  max-width: 66ch !important;
}
.item-index-page .directory-hero + * {
  margin-top: 0 !important;
}

/* Deposit and editorial detail pages: visible separation between the hero and cards below. */
:where(.deposit-index-page, .deposit-guide-page, .deposit-article-page,
  .deposit-detail-page, .deposit-profile-page, .content-main) >
  :where(.deposit-hero, .content-hero, .news-article-hero) {
  margin-bottom: 24px !important;
}
:where(.deposit-index-page, .deposit-guide-page, .deposit-article-page,
  .deposit-detail-page, .deposit-profile-page, .content-main) >
  :where(.deposit-hero, .content-hero, .news-article-hero) + * {
  margin-top: 0 !important;
}
.deposit-hero {
  min-height: 0 !important;
  height: auto !important;
  box-sizing: border-box !important;
}
.deposit-hero h1 {
  max-width: 18ch !important;
  font-size: clamp(2.9rem, 4.9vw, 4.75rem) !important;
  text-wrap: balance !important;
}

@media (max-width: 900px) {
  .legal-grid,
  .legal-card-grid,
  .legal-columns {
    grid-template-columns: 1fr !important;
  }

  .ws-location-hero {
    grid-template-columns: 1fr !important;
    align-items: start !important;
  }
  .ws-location-hero:has(> :where(.content-kicker, .ws-location-kicker)) {
    grid-template-areas:
      "kicker"
      "title"
      "address"
      "back" !important;
  }
  .ws-location-back {
    justify-self: start !important;
    max-width: 100% !important;
  }
}

@media (max-width: 680px) {
  .legal-main {
    width: min(calc(100% - 20px), 1280px) !important;
    padding: 30px 0 56px !important;
  }
  .legal-main > h1,
  .legal-main .legal-header > h1,
  .legal-main .legal-hero > h1 {
    font-size: clamp(2.45rem, 12vw, 3.55rem) !important;
  }
  .legal-lead {
    padding: 19px 20px !important;
    border-radius: 20px !important;
  }
  .legal-meta,
  .legal-updated,
  .legal-main > .legal-meta,
  .legal-main > .legal-updated {
    margin-bottom: 28px !important;
    padding: 15px 17px !important;
  }
  .legal-section {
    margin-bottom: 18px !important;
    padding: 22px 20px !important;
    border-radius: 16px !important;
  }
  .legal-section + .legal-section {
    margin-top: 18px !important;
  }
  .legal-card {
    padding: 20px !important;
  }

  .ws-location-hero {
    gap: 20px !important;
    margin-bottom: 18px !important;
    padding: 24px 20px !important;
    border-radius: 20px !important;
  }
  .ws-location-hero h1 {
    font-size: clamp(2rem, 10vw, 2.85rem) !important;
  }
  .ws-location-back {
    width: 100% !important;
  }
  .ws-location-details {
    padding: 22px 20px !important;
  }

  .rc-coverage,
  .rc-visit-summary {
    margin-bottom: 18px !important;
  }
  .rc-coverage > :nth-child(3) strong,
  .rc-coverage > :nth-child(4) strong {
    max-width: none !important;
    font-size: 1.45rem !important;
  }

  .item-index-page .directory-hero {
    margin-bottom: 18px !important;
    padding: 30px 22px !important;
  }
  .item-index-page .directory-hero h1 {
    font-size: clamp(2.75rem, 13vw, 3.75rem) !important;
  }

  :where(.deposit-index-page, .deposit-guide-page, .deposit-article-page,
    .deposit-detail-page, .deposit-profile-page, .content-main) >
    :where(.deposit-hero, .content-hero, .news-article-hero) {
    margin-bottom: 18px !important;
  }
}

/* --------------------------------------------------------------------------
   9. v3.5.19 - inherited interior hero insets, readable news actions and mobile parity
   -------------------------------------------------------------------------- */

/* Several detail templates do not expose the page-specific wrapper classes.
   Apply the inset to the hero itself so text and cards never touch its border. */
:where(.content-hero, .directory-hero, .deposit-hero, .growth-hero,
       .statistics-hero, .symbol-directory-hero, .answers-hero,
       .answer-hero, .answers-detail-hero, .rule-hero, .item-hero,
       .symbol-hero) {
  min-height: 0 !important;
  height: auto !important;
  padding: clamp(34px, 4.2vw, 54px) !important;
  box-sizing: border-box !important;
}

:where(.content-hero, .directory-hero, .deposit-hero, .growth-hero,
       .statistics-hero, .symbol-directory-hero, .answers-hero,
       .answer-hero, .answers-detail-hero, .rule-hero, .item-hero,
       .symbol-hero)
  > :where(.content-kicker, .landing-kicker, .news-article-kicker,
           .news-eyebrow, h1, p, .content-meta, .hero-actions,
           .quick-answer, .quick-answer-card, .answer-summary) {
  position: relative !important;
  inset: auto !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  transform: none !important;
  translate: none !important;
}

/* Interior-page titles remain prominent without consuming almost the whole card. */
:where(.content-hero, .directory-hero, .deposit-hero, .growth-hero,
       .statistics-hero, .symbol-directory-hero, .answers-hero,
       .answer-hero, .answers-detail-hero, .rule-hero, .item-hero,
       .symbol-hero) h1 {
  max-width: 19ch !important;
  margin: 0 0 22px !important;
  font-size: clamp(2.65rem, 4.35vw, 4.45rem) !important;
  line-height: .99 !important;
  letter-spacing: -.052em !important;
  text-wrap: balance !important;
  overflow-wrap: normal !important;
}

:where(.content-hero, .directory-hero, .deposit-hero, .growth-hero,
       .statistics-hero, .symbol-directory-hero, .answers-hero,
       .answer-hero, .answers-detail-hero, .rule-hero, .item-hero,
       .symbol-hero)
  :where(p:not(.content-kicker):not(.news-eyebrow):not(.news-article-kicker),
         .hero-lead, .content-lead, .directory-lead) {
  max-width: 66ch !important;
  color: var(--ws-muted) !important;
  opacity: 1 !important;
  font-size: clamp(1.02rem, 1.24vw, 1.17rem) !important;
  line-height: 1.58 !important;
}

/* Answer summary panels must respect the same horizontal inset as the title. */
:where(.content-hero, .answers-hero, .answer-hero, .answers-detail-hero)
  :where(.quick-answer, .quick-answer-card, .answer-summary, .answer-quick) {
  width: 100% !important;
  max-width: 100% !important;
  margin: 24px 0 0 !important;
  padding: 22px 24px !important;
  box-sizing: border-box !important;
  transform: none !important;
}

/* Symbol detail: keep the artwork inside the rounded hero and preserve a real gap. */
@supports selector(:has(*)) {
  :where(.content-hero, .symbol-hero):has(.symbol-hero-mark) {
    column-gap: clamp(28px, 4vw, 48px) !important;
    row-gap: 24px !important;
  }
}
:where(.content-hero, .symbol-hero)
  :where(.symbol-hero-mark, .symbol-hero-art, .symbol-artwork,
         .symbol-figure, figure) {
  margin-left: 0 !important;
  margin-right: 0 !important;
  transform: none !important;
}

/* News hero: the lead and secondary links were inheriting near-white colours. */
.news-hero :where(p:not(.news-eyebrow), .news-lead, .news-intro,
                  .news-summary, .news-hero-copy > p) {
  color: var(--ws-muted) !important;
  opacity: 1 !important;
}
.news-hero :where(.hero-actions, .news-actions, .news-hero-actions) {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 12px !important;
}
.news-hero :where(.hero-actions, .news-actions, .news-hero-actions)
  :where(a, button) {
  min-height: 48px !important;
  padding: 13px 18px !important;
  border: 1px solid var(--ws-line-strong) !important;
  border-radius: 13px !important;
  color: var(--ws-ink) !important;
  background: #fff !important;
  opacity: 1 !important;
  box-shadow: none !important;
}
.news-hero :where(.hero-actions, .news-actions, .news-hero-actions)
  :where(a, button):first-child {
  color: var(--ws-forest-deep) !important;
  border-color: #b9d56d !important;
  background: var(--ws-lime) !important;
}
.news-hero :where(.hero-actions, .news-actions, .news-hero-actions)
  :where(a, button):hover {
  color: var(--ws-blue-dark) !important;
  border-color: var(--ws-blue-line) !important;
  background: var(--ws-blue-soft) !important;
}
.news-hero :where(.hero-actions, .news-actions, .news-hero-actions)
  :where(a, button):first-child:hover {
  color: var(--ws-forest-deep) !important;
  border-color: #adc95e !important;
  background: #d4ef72 !important;
}

@media (max-width: 900px) {
  :where(.content-hero, .directory-hero, .deposit-hero, .growth-hero,
         .statistics-hero, .symbol-directory-hero, .answers-hero,
         .answer-hero, .answers-detail-hero, .rule-hero, .item-hero,
         .symbol-hero) {
    padding: 30px 26px !important;
  }

  :where(.content-hero, .directory-hero, .deposit-hero, .growth-hero,
         .statistics-hero, .symbol-directory-hero, .answers-hero,
         .answer-hero, .answers-detail-hero, .rule-hero, .item-hero,
         .symbol-hero) h1 {
    max-width: 100% !important;
    font-size: clamp(2.45rem, 7.2vw, 3.75rem) !important;
  }
}

@media (max-width: 680px) {
  :where(.content-hero, .directory-hero, .deposit-hero, .growth-hero,
         .statistics-hero, .symbol-directory-hero, .answers-hero,
         .answer-hero, .answers-detail-hero, .rule-hero, .item-hero,
         .symbol-hero) {
    padding: 25px 20px !important;
    border-radius: 20px !important;
  }

  :where(.content-hero, .directory-hero, .deposit-hero, .growth-hero,
         .statistics-hero, .symbol-directory-hero, .answers-hero,
         .answer-hero, .answers-detail-hero, .rule-hero, .item-hero,
         .symbol-hero) h1,
  .rc-directory-hero h1,
  .rc-location-hero h1 {
    max-width: 100% !important;
    margin-bottom: 19px !important;
    font-size: clamp(2.25rem, 10vw, 3.15rem) !important;
    line-height: 1 !important;
    letter-spacing: -.047em !important;
  }

  .rc-directory-hero,
  .rc-location-hero {
    padding: 25px 20px !important;
  }

  /* Both Recycling Centers actions now use the same width, height and alignment. */
  .rc-hero-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    gap: 12px !important;
    align-items: stretch !important;
    justify-content: stretch !important;
  }
  .rc-hero-actions > :where(a, button, .primary-link, .secondary-link, .rc-map-cta),
  .rc-hero-actions :where(.primary-link, .secondary-link, .rc-map-cta) {
    width: 100% !important;
    max-width: none !important;
    min-height: 52px !important;
    margin: 0 !important;
    padding: 14px 18px !important;
    justify-content: center !important;
    text-align: center !important;
  }

  .news-hero :where(.hero-actions, .news-actions, .news-hero-actions) {
    display: grid !important;
    grid-template-columns: 1fr !important;
    width: 100% !important;
  }
  .news-hero :where(.hero-actions, .news-actions, .news-hero-actions)
    :where(a, button) {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
  }
}

/* --------------------------------------------------------------------------
   10. v3.5.19 - inherited specificity lock for live detail templates
   -------------------------------------------------------------------------- */

/* The live detail templates also load module rules marked !important.  These
   selectors deliberately carry two class components so the final visual layer
   wins without changing any PHP template or data source. */
body .content-hero.content-hero,
body .directory-hero.directory-hero,
body .deposit-hero.deposit-hero,
body .growth-hero.growth-hero,
body .statistics-hero.statistics-hero,
body .symbol-directory-hero.symbol-directory-hero,
body .answers-hero.answers-hero,
body .answer-hero.answer-hero,
body .answers-detail-hero.answers-detail-hero,
body .rule-hero.rule-hero,
body .item-hero.item-hero,
body .symbol-hero.symbol-hero {
  min-height: 0 !important;
  height: auto !important;
  padding: clamp(38px, 4.2vw, 52px) !important;
  box-sizing: border-box !important;
}

body .content-hero.content-hero > *,
body .directory-hero.directory-hero > *,
body .deposit-hero.deposit-hero > *,
body .growth-hero.growth-hero > *,
body .statistics-hero.statistics-hero > *,
body .symbol-directory-hero.symbol-directory-hero > *,
body .answers-hero.answers-hero > *,
body .answer-hero.answer-hero > *,
body .answers-detail-hero.answers-detail-hero > *,
body .rule-hero.rule-hero > *,
body .item-hero.item-hero > *,
body .symbol-hero.symbol-hero > * {
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

body .content-hero.content-hero h1,
body .directory-hero.directory-hero h1,
body .deposit-hero.deposit-hero h1,
body .growth-hero.growth-hero h1,
body .statistics-hero.statistics-hero h1,
body .symbol-directory-hero.symbol-directory-hero h1,
body .answers-hero.answers-hero h1,
body .answer-hero.answer-hero h1,
body .answers-detail-hero.answers-detail-hero h1,
body .rule-hero.rule-hero h1,
body .item-hero.item-hero h1,
body .symbol-hero.symbol-hero h1 {
  max-width: 19ch !important;
  margin: 0 0 22px !important;
  font-size: clamp(2.65rem, 4.1vw, 4.1rem) !important;
  line-height: 1 !important;
  letter-spacing: -.05em !important;
  text-wrap: balance !important;
  overflow-wrap: normal !important;
}

body .content-hero.content-hero :is(.quick-answer, .quick-answer-card, .answer-summary, .answer-quick),
body .answers-hero.answers-hero :is(.quick-answer, .quick-answer-card, .answer-summary, .answer-quick),
body .answer-hero.answer-hero :is(.quick-answer, .quick-answer-card, .answer-summary, .answer-quick),
body .answers-detail-hero.answers-detail-hero :is(.quick-answer, .quick-answer-card, .answer-summary, .answer-quick) {
  width: 100% !important;
  max-width: 100% !important;
  margin: 24px 0 0 !important;
  padding: 22px 24px !important;
  box-sizing: border-box !important;
  transform: none !important;
  translate: none !important;
}

body .content-hero.content-hero :is(.symbol-hero-mark, .symbol-hero-art, .symbol-artwork, .symbol-figure, figure),
body .symbol-hero.symbol-hero :is(.symbol-hero-mark, .symbol-hero-art, .symbol-artwork, .symbol-figure, figure) {
  margin-left: 0 !important;
  margin-right: 0 !important;
  transform: none !important;
  translate: none !important;
}

/* The news lead and the two secondary links must remain readable on the pale
   clay hero even when the older news stylesheet assigns light text colours. */
body .news-hero.news-hero > p,
body .news-hero.news-hero .news-hero-copy > p,
body .news-hero.news-hero :is(.news-lead, .news-intro, .news-summary) {
  color: var(--ws-muted) !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

body .news-hero.news-hero :is(.hero-actions, .news-actions, .news-hero-actions) {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 12px !important;
}
body .news-hero.news-hero :is(.hero-actions, .news-actions, .news-hero-actions) a,
body .news-hero.news-hero :is(.hero-actions, .news-actions, .news-hero-actions) button,
body .news-hero.news-hero a.secondary-link {
  display: inline-flex !important;
  min-height: 48px !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 13px 18px !important;
  border: 1px solid var(--ws-line-strong) !important;
  border-radius: 13px !important;
  color: var(--ws-ink) !important;
  background: #fff !important;
  opacity: 1 !important;
  text-shadow: none !important;
  box-shadow: none !important;
}
body .news-hero.news-hero :is(.hero-actions, .news-actions, .news-hero-actions) a:first-child,
body .news-hero.news-hero :is(.hero-actions, .news-actions, .news-hero-actions) button:first-child,
body .news-hero.news-hero a.primary-link {
  color: var(--ws-forest-deep) !important;
  border-color: #b9d56d !important;
  background: var(--ws-lime) !important;
}

@media (max-width: 900px) {
  body .content-hero.content-hero,
  body .directory-hero.directory-hero,
  body .deposit-hero.deposit-hero,
  body .growth-hero.growth-hero,
  body .statistics-hero.statistics-hero,
  body .symbol-directory-hero.symbol-directory-hero,
  body .answers-hero.answers-hero,
  body .answer-hero.answer-hero,
  body .answers-detail-hero.answers-detail-hero,
  body .rule-hero.rule-hero,
  body .item-hero.item-hero,
  body .symbol-hero.symbol-hero {
    padding: 30px 26px !important;
  }
}

@media (max-width: 680px) {
  body .content-hero.content-hero,
  body .directory-hero.directory-hero,
  body .deposit-hero.deposit-hero,
  body .growth-hero.growth-hero,
  body .statistics-hero.statistics-hero,
  body .symbol-directory-hero.symbol-directory-hero,
  body .answers-hero.answers-hero,
  body .answer-hero.answer-hero,
  body .answers-detail-hero.answers-detail-hero,
  body .rule-hero.rule-hero,
  body .item-hero.item-hero,
  body .symbol-hero.symbol-hero {
    padding: 25px 20px !important;
    border-radius: 20px !important;
  }

  body .content-hero.content-hero h1,
  body .directory-hero.directory-hero h1,
  body .deposit-hero.deposit-hero h1,
  body .growth-hero.growth-hero h1,
  body .statistics-hero.statistics-hero h1,
  body .symbol-directory-hero.symbol-directory-hero h1,
  body .answers-hero.answers-hero h1,
  body .answer-hero.answer-hero h1,
  body .answers-detail-hero.answers-detail-hero h1,
  body .rule-hero.rule-hero h1,
  body .item-hero.item-hero h1,
  body .symbol-hero.symbol-hero h1,
  body .rc-directory-hero.rc-directory-hero h1,
  body .rc-location-hero.rc-location-hero h1 {
    max-width: 100% !important;
    margin-bottom: 18px !important;
    font-size: clamp(2.15rem, 9vw, 2.85rem) !important;
    line-height: 1.01 !important;
    letter-spacing: -.045em !important;
  }

  /* Covers both names used by Recycling Centers templates. */
  body .rc-directory-hero.rc-directory-hero :is(.rc-hero-actions, .hero-actions),
  body .rc-location-hero.rc-location-hero :is(.rc-hero-actions, .hero-actions) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: none !important;
    gap: 12px !important;
    align-items: stretch !important;
    justify-content: stretch !important;
  }

  body .rc-directory-hero.rc-directory-hero :is(.rc-map-cta, .primary-link, .secondary-link),
  body .rc-location-hero.rc-location-hero :is(.rc-map-cta, .primary-link, .secondary-link),
  body .rc-directory-hero.rc-directory-hero :is(.rc-hero-actions, .hero-actions) > :is(a, button),
  body .rc-location-hero.rc-location-hero :is(.rc-hero-actions, .hero-actions) > :is(a, button) {
    display: inline-flex !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 52px !important;
    margin: 0 !important;
    padding: 14px 18px !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: stretch !important;
    text-align: center !important;
  }

  body .news-hero.news-hero :is(.hero-actions, .news-actions, .news-hero-actions) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
  }
  body .news-hero.news-hero :is(.hero-actions, .news-actions, .news-hero-actions) > :is(a, button) {
    width: 100% !important;
  }
}

/* --------------------------------------------------------------------------
   11. v3.5.19 - one directory-page geometry
   --------------------------------------------------------------------------

   Item Guide, Waste Exchange and Recycling Centers previously used three
   independent maximum widths, title scales and hero heights.  This final layer
   gives all three directory landing pages the same shell, hero proportions,
   typography and vertical rhythm.  Module colours remain semantic only:
   green for item guidance, clay for exchange and blue for mapped locations. */

:root {
  --ws-directory-width: 1320px;
  --ws-directory-hero-min-height: 420px;
  --ws-directory-hero-padding: clamp(42px, 4.2vw, 60px);
  --ws-directory-title-size: clamp(3rem, 4vw, 4.25rem);
}

/* One centred page shell and one gutter system.  The selector set covers both
   variants used by the live templates: page class on body or on main. */
body.item-index-page .content-main,
body .content-main.item-index-page,
body .item-index-page.content-main,
body.waste-exchange-page .wx-main,
body .wx-main.waste-exchange-page,
body .waste-exchange-page.wx-main,
body .wx-main,
body .rc-main {
  width: min(calc(100% - 32px), var(--ws-directory-width)) !important;
  max-width: var(--ws-directory-width) !important;
  margin-inline: auto !important;
  padding: 30px 0 72px !important;
  box-sizing: border-box !important;
}

/* Shared hero card geometry. */
body.item-index-page .directory-hero.directory-hero,
body .content-main.item-index-page .directory-hero.directory-hero,
body .item-index-page.content-main .directory-hero.directory-hero,
body.waste-exchange-page .wx-hero.wx-hero,
body .wx-main .wx-hero.wx-hero,
body .waste-exchange-page .wx-hero.wx-hero,
body .rc-main .rc-directory-hero.rc-directory-hero {
  width: 100% !important;
  max-width: none !important;
  min-height: var(--ws-directory-hero-min-height) !important;
  height: auto !important;
  margin: 0 0 24px !important;
  padding: var(--ws-directory-hero-padding) !important;
  border: 1px solid var(--ws-line) !important;
  border-top: 1px solid var(--ws-line) !important;
  border-radius: 28px !important;
  box-shadow: var(--ws-shadow-md) !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

/* The pages share the same composition rules while retaining the layouts their
   content requires: a single copy column for Item Guide and an optional action
   column for Waste Exchange and Recycling Centers. */
body.item-index-page .directory-hero.directory-hero,
body .content-main.item-index-page .directory-hero.directory-hero,
body .item-index-page.content-main .directory-hero.directory-hero {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  border-left: 6px solid var(--ws-green) !important;
  background:
    radial-gradient(circle at 92% 18%, rgba(23, 33, 28, .055), transparent 29%),
    linear-gradient(135deg, #fff 0%, var(--ws-mist) 100%) !important;
}

body.waste-exchange-page .wx-hero.wx-hero,
body .wx-main .wx-hero.wx-hero,
body .waste-exchange-page .wx-hero.wx-hero {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  grid-template-areas:
    "kicker action"
    "title action"
    "copy action" !important;
  align-items: center !important;
  align-content: center !important;
  column-gap: clamp(28px, 4vw, 52px) !important;
  row-gap: 12px !important;
  border-left: 6px solid var(--ws-clay) !important;
  background:
    radial-gradient(circle at 92% 18%, rgba(23, 33, 28, .055), transparent 29%),
    linear-gradient(135deg, #fff 0%, var(--ws-mist) 100%) !important;
}

body .rc-main .rc-directory-hero.rc-directory-hero {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  align-content: center !important;
  column-gap: clamp(28px, 4vw, 52px) !important;
  row-gap: 12px !important;
  border-left: 6px solid var(--ws-blue) !important;
  background:
    radial-gradient(circle at 92% 18%, rgba(23, 33, 28, .055), transparent 29%),
    linear-gradient(135deg, #fff 0%, var(--ws-mist) 100%) !important;
}

/* One title scale and one lead scale across all three directories. */
body.item-index-page .directory-hero.directory-hero h1,
body .content-main.item-index-page .directory-hero.directory-hero h1,
body .item-index-page.content-main .directory-hero.directory-hero h1,
body.waste-exchange-page .wx-hero.wx-hero h1,
body .wx-main .wx-hero.wx-hero h1,
body .waste-exchange-page .wx-hero.wx-hero h1,
body .rc-main .rc-directory-hero.rc-directory-hero h1 {
  max-width: 18ch !important;
  margin: 0 0 22px !important;
  color: var(--ws-ink) !important;
  font-size: var(--ws-directory-title-size) !important;
  line-height: .96 !important;
  letter-spacing: -.058em !important;
  text-wrap: balance !important;
  overflow-wrap: normal !important;
}

body.item-index-page .directory-hero.directory-hero > p:not(.content-kicker),
body .content-main.item-index-page .directory-hero.directory-hero > p:not(.content-kicker),
body .item-index-page.content-main .directory-hero.directory-hero > p:not(.content-kicker),
body.waste-exchange-page .wx-hero.wx-hero > p:not(.content-kicker),
body .wx-main .wx-hero.wx-hero > p:not(.content-kicker),
body .waste-exchange-page .wx-hero.wx-hero > p:not(.content-kicker),
body .rc-main .rc-directory-hero.rc-directory-hero > div > p:not(.content-kicker) {
  max-width: 64ch !important;
  margin: 0 !important;
  color: var(--ws-muted) !important;
  font-size: clamp(1.04rem, 1.25vw, 1.18rem) !important;
  line-height: 1.58 !important;
  opacity: 1 !important;
}

body.item-index-page .directory-hero.directory-hero .content-kicker,
body .content-main.item-index-page .directory-hero.directory-hero .content-kicker,
body .item-index-page.content-main .directory-hero.directory-hero .content-kicker,
body.waste-exchange-page .wx-hero.wx-hero .content-kicker,
body .wx-main .wx-hero.wx-hero .content-kicker,
body .waste-exchange-page .wx-hero.wx-hero .content-kicker,
body .rc-main .rc-directory-hero.rc-directory-hero .content-kicker {
  margin: 0 0 18px !important;
}

body.item-index-page .directory-hero.directory-hero .content-meta,
body .content-main.item-index-page .directory-hero.directory-hero .content-meta,
body .item-index-page.content-main .directory-hero.directory-hero .content-meta {
  margin-top: 24px !important;
}

/* Matching action dimensions.  Colour is still supplied by the module. */
body.waste-exchange-page .wx-hero.wx-hero :is(.hero-actions, .wx-hero-actions),
body .wx-main .wx-hero.wx-hero :is(.hero-actions, .wx-hero-actions),
body .waste-exchange-page .wx-hero.wx-hero :is(.hero-actions, .wx-hero-actions),
body .rc-main .rc-directory-hero.rc-directory-hero :is(.rc-hero-actions, .hero-actions) {
  align-self: center !important;
  justify-self: end !important;
  margin: 0 !important;
}

body.waste-exchange-page .wx-hero.wx-hero :is(.hero-actions, .wx-hero-actions) > :is(a, button),
body .wx-main .wx-hero.wx-hero :is(.hero-actions, .wx-hero-actions) > :is(a, button),
body .waste-exchange-page .wx-hero.wx-hero :is(.hero-actions, .wx-hero-actions) > :is(a, button),
body .rc-main .rc-directory-hero.rc-directory-hero :is(.rc-map-cta, .primary-link, .secondary-link),
body .rc-main .rc-directory-hero.rc-directory-hero :is(.rc-hero-actions, .hero-actions) > :is(a, button) {
  min-height: 52px !important;
  padding: 14px 20px !important;
  border-radius: 14px !important;
  font-size: 1rem !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
}

/* Exactly one 24 px transition from hero to the next functional block. */
body.item-index-page .directory-hero.directory-hero + *,
body .content-main.item-index-page .directory-hero.directory-hero + *,
body .item-index-page.content-main .directory-hero.directory-hero + *,
body.waste-exchange-page .wx-hero.wx-hero + *,
body .wx-main .wx-hero.wx-hero + *,
body .waste-exchange-page .wx-hero.wx-hero + *,
body .rc-main .rc-directory-hero.rc-directory-hero + .rc-coverage {
  margin-top: 0 !important;
}

body .rc-main .rc-coverage {
  margin-top: 0 !important;
}

@media (max-width: 900px) {
  body.item-index-page .content-main,
  body .content-main.item-index-page,
  body .item-index-page.content-main,
  body.waste-exchange-page .wx-main,
  body .wx-main.waste-exchange-page,
  body .waste-exchange-page.wx-main,
  body .wx-main,
  body .rc-main {
    width: min(calc(100% - 28px), var(--ws-directory-width)) !important;
    padding-top: 24px !important;
  }

  body.item-index-page .directory-hero.directory-hero,
  body .content-main.item-index-page .directory-hero.directory-hero,
  body .item-index-page.content-main .directory-hero.directory-hero,
  body.waste-exchange-page .wx-hero.wx-hero,
  body .wx-main .wx-hero.wx-hero,
  body .waste-exchange-page .wx-hero.wx-hero,
  body .rc-main .rc-directory-hero.rc-directory-hero {
    min-height: 0 !important;
    padding: 36px 32px !important;
  }

  body.waste-exchange-page .wx-hero.wx-hero,
  body .wx-main .wx-hero.wx-hero,
  body .waste-exchange-page .wx-hero.wx-hero,
  body .rc-main .rc-directory-hero.rc-directory-hero {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-areas: none !important;
    align-items: start !important;
    row-gap: 24px !important;
  }

  body.waste-exchange-page .wx-hero.wx-hero > *,
  body .wx-main .wx-hero.wx-hero > *,
  body .waste-exchange-page .wx-hero.wx-hero > * {
    grid-area: auto !important;
  }

  body.waste-exchange-page .wx-hero.wx-hero :is(.hero-actions, .wx-hero-actions),
  body .wx-main .wx-hero.wx-hero :is(.hero-actions, .wx-hero-actions),
  body .waste-exchange-page .wx-hero.wx-hero :is(.hero-actions, .wx-hero-actions),
  body .rc-main .rc-directory-hero.rc-directory-hero :is(.rc-hero-actions, .hero-actions) {
    align-self: start !important;
    justify-self: start !important;
  }
}

@media (max-width: 680px) {
  body.item-index-page .content-main,
  body .content-main.item-index-page,
  body .item-index-page.content-main,
  body.waste-exchange-page .wx-main,
  body .wx-main.waste-exchange-page,
  body .waste-exchange-page.wx-main,
  body .wx-main,
  body .rc-main {
    width: min(calc(100% - 24px), var(--ws-directory-width)) !important;
    padding: 20px 0 56px !important;
  }

  body.item-index-page .directory-hero.directory-hero,
  body .content-main.item-index-page .directory-hero.directory-hero,
  body .item-index-page.content-main .directory-hero.directory-hero,
  body.waste-exchange-page .wx-hero.wx-hero,
  body .wx-main .wx-hero.wx-hero,
  body .waste-exchange-page .wx-hero.wx-hero,
  body .rc-main .rc-directory-hero.rc-directory-hero {
    margin-bottom: 18px !important;
    padding: 27px 21px !important;
    border-left-width: 4px !important;
    border-radius: 21px !important;
  }

  body.item-index-page .directory-hero.directory-hero h1,
  body .content-main.item-index-page .directory-hero.directory-hero h1,
  body .item-index-page.content-main .directory-hero.directory-hero h1,
  body.waste-exchange-page .wx-hero.wx-hero h1,
  body .wx-main .wx-hero.wx-hero h1,
  body .waste-exchange-page .wx-hero.wx-hero h1,
  body .rc-main .rc-directory-hero.rc-directory-hero h1 {
    max-width: 100% !important;
    margin-bottom: 18px !important;
    font-size: clamp(2.25rem, 10vw, 2.9rem) !important;
    line-height: 1 !important;
    letter-spacing: -.047em !important;
  }

  body.waste-exchange-page .wx-hero.wx-hero :is(.hero-actions, .wx-hero-actions),
  body .wx-main .wx-hero.wx-hero :is(.hero-actions, .wx-hero-actions),
  body .waste-exchange-page .wx-hero.wx-hero :is(.hero-actions, .wx-hero-actions),
  body .rc-main .rc-directory-hero.rc-directory-hero :is(.rc-hero-actions, .hero-actions) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: none !important;
    gap: 12px !important;
  }

  body.waste-exchange-page .wx-hero.wx-hero :is(.hero-actions, .wx-hero-actions) > :is(a, button),
  body .wx-main .wx-hero.wx-hero :is(.hero-actions, .wx-hero-actions) > :is(a, button),
  body .waste-exchange-page .wx-hero.wx-hero :is(.hero-actions, .wx-hero-actions) > :is(a, button),
  body .rc-main .rc-directory-hero.rc-directory-hero :is(.rc-map-cta, .primary-link, .secondary-link),
  body .rc-main .rc-directory-hero.rc-directory-hero :is(.rc-hero-actions, .hero-actions) > :is(a, button) {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    justify-content: center !important;
    text-align: center !important;
  }
}

/* --------------------------------------------------------------------------
   12. v3.5.20 - one public content width across the complete site
   --------------------------------------------------------------------------

   Earlier visual layers normalized selected directories, but several other
   landing pages still inherited narrower module-specific max-width values.
   This final layer establishes one 1320 px public shell and makes every main
   hero fill that shell. The interactive map and administration remain explicit
   exceptions because their working canvas must not be constrained. */

:root {
  --ws-page-width: 1320px;
  --ws-directory-width: 1320px;
  --ws-public-content-width: 1320px;
  --ws-public-gutter: 32px;
}

/* Generic fallback plus every shell class currently used by the public site.
   Doubled classes intentionally outrank module rules declared with !important. */
body:not(.map-page):not(.admin-page) > main:not(.map-main):not(.admin-main),
body:not(.map-page):not(.admin-page) .landing-main.landing-main,
body:not(.map-page):not(.admin-page) .content-main.content-main,
body:not(.map-page):not(.admin-page) .growth-main.growth-main,
body:not(.map-page):not(.admin-page) .news-shell.news-shell,
body:not(.map-page):not(.admin-page) .legal-main.legal-main,
body:not(.map-page):not(.admin-page) .wx-main.wx-main,
body:not(.map-page):not(.admin-page) .rc-main.rc-main {
  width: min(calc(100% - var(--ws-public-gutter)), var(--ws-public-content-width)) !important;
  max-width: var(--ws-public-content-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

/* The page shell may already be wide while an individual hero still carries a
   1040/1080 px cap. Every public hero now reaches the same shell edges. */
body .landing-hero.landing-hero,
body .content-hero.content-hero,
body .directory-hero.directory-hero,
body .growth-hero.growth-hero,
body .statistics-hero.statistics-hero,
body .news-hero.news-hero,
body .news-article-hero.news-article-hero,
body .symbol-directory-hero.symbol-directory-hero,
body .deposit-hero.deposit-hero,
body .answers-hero.answers-hero,
body .answer-hero.answer-hero,
body .answers-detail-hero.answers-detail-hero,
body .rule-hero.rule-hero,
body .item-hero.item-hero,
body .symbol-hero.symbol-hero,
body .legal-hero.legal-hero,
body .wx-hero.wx-hero,
body .wx-detail-hero.wx-detail-hero,
body .rc-directory-hero.rc-directory-hero,
body .rc-location-hero.rc-location-hero,
body .ws-location-hero.ws-location-hero {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

/* Top-level cards, grids and controls share the same outer datum. This removes
   residual module caps from Rules, Deposit Return, Symbols and similar pages,
   while leaving readable text widths inside those blocks unchanged. */
body:not(.map-page):not(.admin-page)
  :is(.landing-main, .content-main, .growth-main, .news-shell,
      .legal-main, .wx-main, .rc-main)
  > :where(section, form, nav, .page-section, .content-section,
           .directory-section, .directory-grid, .content-grid,
           .directory-tools, .directory-search, .search-strip) {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

/* Breadcrumbs and the first functional block use the same horizontal datum as
   the hero; internal readable text widths remain untouched. */
body :is(.landing-main, .content-main, .growth-main, .news-shell,
         .legal-main, .wx-main, .rc-main) > .breadcrumbs,
body :is(.landing-main, .content-main, .growth-main, .news-shell,
         .legal-main, .wx-main, .rc-main) > :is(.directory-search,
         .search-strip, .answers-search, .deposit-search, .rules-search,
         .statistics-search, .symbol-search, .content-search) {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

@media (max-width: 900px) {
  :root { --ws-public-gutter: 28px; }
}

@media (max-width: 680px) {
  :root { --ws-public-gutter: 20px; }
}

