/* ============================================================
   coach-map.css — the "where our coaches are" world map.
   Rendered by /coach-map.js into [data-coach-map]. Colour comes
   from the shared brand tokens in theme.css.
============================================================ */

.coach-map-section {
  padding: 5rem 2rem;
  background: var(--bg-white, #fff);
  /* The top rule comes from .section-divider::before — don't double it. */
}

.coach-map-inner {
  max-width: 1100px;
  margin: 0 auto;
  text-align: center;
}

.coach-map-inner .section-subtitle {
  margin-left: auto;
  margin-right: auto;
}

.cm-figure {
  margin: 2.5rem auto 0;
  /* Belt and braces: the map should never be what makes the page scroll
     sideways, so any overflow stays inside this box. */
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* Scales all the way down rather than forcing a horizontal scroll — the
   claim is "everywhere", which only lands if the whole world is on screen. */
.cm-svg {
  display: block;
  width: 100%;
  height: auto;
}

/* Unsold countries stay as quiet context — visible enough to read as a
   world map, faint enough that the lit ones are the only thing you see. */
.cm-land {
  fill: #e7e4df;
  stroke: var(--bg-white, #fff);
  stroke-width: 0.4;
  vector-effect: non-scaling-stroke;
}

.cm-land.is-lit { fill: var(--accent, #ED1C24); }

/* Countries too small to draw at this scale (Malta, Singapore, Luxembourg)
   get a dot at their coordinates instead of disappearing. */
.cm-dot {
  fill: var(--accent, #ED1C24);
  stroke: var(--bg-white, #fff);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.cm-b1 { fill-opacity: 0.55; }
.cm-b2 { fill-opacity: 0.8; }
.cm-b3 { fill-opacity: 1; }

.cm-stats {
  display: flex;
  justify-content: center;
  gap: 3.5rem;
  margin-top: 2.25rem;
}

.cm-stat { display: flex; flex-direction: column; gap: 0.15rem; }

.cm-stat-n {
  font-family: var(--font-display, 'Bebas Neue', sans-serif);
  font-size: 2.75rem;
  line-height: 1;
  color: var(--accent, #ED1C24);
  letter-spacing: 0.01em;
}

.cm-stat-l {
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-muted, #6e6c78);
}

.cm-chips {
  list-style: none;
  margin: 2rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
}

.cm-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.35rem 0.75rem;
  border: 1px solid var(--line-light, rgba(20, 19, 26, 0.1));
  border-radius: 999px;
  font-size: 0.85rem;
  color: var(--ink-body, #3e3c46);
  background: var(--bg-light, #FAF8F5);
}

.cm-chip-n {
  font-weight: 600;
  color: var(--accent, #ED1C24);
  font-variant-numeric: tabular-nums;
}

.cm-also {
  margin: 1rem 0 0;
  font-size: 0.85rem;
  color: var(--ink-muted, #6e6c78);
}

@media (max-width: 700px) {
  .coach-map-section { padding: 3.5rem 1.25rem; }
  .cm-stats { gap: 2rem; }
  .cm-stat-n { font-size: 2.2rem; }
}
