#rf-region-map {
  --rf-bg: #000;
  --rf-panel: #0b0b0b;
  --rf-line: #2a2a2a;
  --rf-state: #161616;
  --rf-state-stroke: #3a3a3a;
  --rf-yellow: #FFF400;
  --rf-ink: #000;
  --rf-text: #fff;
  --rf-muted: #9a9a9a;
  background: var(--rf-bg);
  color: var(--rf-text);
  font-family: 'Barlow', 'Helvetica Neue', Arial, sans-serif;
  padding: 32px clamp(16px, 4vw, 48px) 40px;
  box-sizing: border-box;
  margin: 0 auto;
}

#rf-region-map * {
  box-sizing: border-box;
}

.rf-region-map__header {
  max-width: 1200px;
  margin: 0 auto 32px;
  text-align: center;
}

.rf-grid {
  display: grid;
  grid-template-columns: 7fr 3fr;
  gap: clamp(20px, 3vw, 44px);
  align-items: center;
}

.rf-col-map,
.rf-col-side {
  min-width: 0;
}

.rf-map-stage {
  position: relative;
  width: 100%;
}

#rf-usa {
  width: 100%;
  height: auto;
  display: block;
}

#rf-usa path.rf-state {
  fill: var(--rf-state);
  stroke: var(--rf-state-stroke);
  stroke-width: .6;
  transition: fill .12s ease, stroke .12s ease;
  cursor: pointer;
  outline: none;
}

#rf-usa [data-region="west"]      { fill: #0e2f2e; }
#rf-usa [data-region="mountain"]  { fill: #2e2a10; }
#rf-usa [data-region="southwest"] { fill: #331028; }
#rf-usa [data-region="midwest"]   { fill: #122e18; }
#rf-usa [data-region="southeast"] { fill: #14233d; }
#rf-usa [data-region="florida"]   { fill: #332612; }
#rf-usa [data-region="northeast"] { fill: #241033; }

#rf-usa .rf-hl {
  fill: var(--rf-yellow) !important;
  stroke: #000;
  stroke-width: .8;
}

#rf-tip {
  position: absolute;
  pointer-events: none;
  z-index: 5;
  opacity: 0;
  transform: translate(-50%, -115%);
  transition: opacity .1s ease;
  background: var(--rf-yellow);
  color: var(--rf-ink);
  padding: 8px 12px;
  border-radius: 6px;
  white-space: nowrap;
  font-weight: 600;
  font-size: 14px;
  line-height: 1.35;
  text-align: center;
  box-shadow: 0 6px 20px rgba(0,0,0,.55);
}

#rf-tip strong {
  display: block;
  font-family: 'Barlow Condensed', 'Barlow', sans-serif;
  text-transform: uppercase;
  letter-spacing: .4px;
  font-size: 15px;
}

#rf-tip .rf-tip-email {
  font-weight: 700;
  text-decoration: underline;
}

.rf-eyebrow {
  font-family: 'Barlow Condensed', 'Barlow', sans-serif;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--rf-yellow);
  font-weight: 700;
  font-size: 14px;
  margin: 0 0 12px;
}

#rf-legend {
  list-style: none;
  margin: 0 0 20px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

#rf-legend li {
  display: flex;
  align-items: center;
  gap: 11px;
  cursor: pointer;
  padding: 9px 8px;
  border-radius: 6px;
  transition: background .12s ease;
}

#rf-legend li:hover {
  background: #101010;
}

#rf-legend .sw {
  width: 14px;
  height: 14px;
  border-radius: 3px;
  flex: 0 0 auto;
  border: 1px solid #444;
}

#rf-legend b {
  font-family: 'Barlow Condensed', 'Barlow', sans-serif;
  text-transform: uppercase;
  letter-spacing: .4px;
  font-size: 16px;
  line-height: 1.1;
}

#rf-legend small {
  color: var(--rf-muted);
  display: block;
  font-size: 12px;
}

#rf-legend li:hover b {
  color: var(--rf-yellow);
}

@media (max-width: 820px) {
  .rf-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  #rf-legend {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 4px 16px;
  }
}
