/* coverage piece: scope every selector to [data-piece="coverage"] */

/* ---------- Coverage band ---------- */
.cv-band[data-piece="coverage"] { position: relative; overflow: clip; }
[data-piece="coverage"] .cv-grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
  padding-block: clamp(72px, 9vw, 128px);
}
[data-piece="coverage"] .cv-text { grid-column: 2; grid-row: 1; position: relative; z-index: 1; }
[data-piece="coverage"] .cv-fig-map { grid-column: 1; grid-row: 1; margin: 0; position: relative; }

[data-piece="coverage"] .cv-band h2,
.cv-band[data-piece="coverage"] h2 { font-size: var(--t-2xl); margin-block: 18px 22px; max-width: 12ch; }
[data-piece="coverage"] h2 em { font-style: normal; color: var(--gold); }
[data-piece="coverage"] .cv-lede { color: var(--band-muted); font-size: var(--t-lg); line-height: 1.5; max-width: 34ch; }

[data-piece="coverage"] .cv-stats-wrap { margin-top: clamp(32px, 4vw, 48px); }
[data-piece="coverage"] .cv-stats-t {
  font-size: var(--t-xs); letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--band-ink); margin-bottom: 12px;
}
[data-piece="coverage"] .cv-stats-t span { color: var(--band-muted); }
[data-piece="coverage"] .cv-stats {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0; border-top: 1px solid var(--band-rule);
}
[data-piece="coverage"] .cv-stat {
  display: flex; flex-direction: column-reverse; gap: 4px;
  padding: 16px 0 14px; border-bottom: 1px solid var(--band-rule);
}
[data-piece="coverage"] .cv-stat:nth-child(even) { border-left: 1px solid var(--band-rule); padding-left: clamp(16px, 2vw, 28px); }
[data-piece="coverage"] .cv-key {
  font: 500 var(--t-xs)/1.2 var(--f-mono); letter-spacing: 0.14em; color: var(--band-muted);
}
[data-piece="coverage"] .cv-val { margin: 0; display: flex; align-items: baseline; gap: 8px; }
[data-piece="coverage"] .cv-fig {
  font-family: var(--f-display); font-size: clamp(2.25rem, 3.6vw, 3.25rem); line-height: 1;
  color: var(--band-ink); font-variant-numeric: lining-nums tabular-nums;
}
[data-piece="coverage"] .cv-unit {
  font: 400 var(--t-xs)/1 var(--f-mono); letter-spacing: 0.08em; color: var(--band-muted);
}

/* Map */
[data-piece="coverage"] .cv-map { display: block; width: 100%; height: auto; overflow: visible; }
[data-piece="coverage"] .cv-map-sm { display: none; }
[data-piece="coverage"] .cv-ask { margin-top: 18px; font-size: var(--t-sm); color: var(--band-muted); }
[data-piece="coverage"] .cv-ask .link-arrow { color: var(--band-ink); margin-left: 6px; }
[data-piece="coverage"] .cv-ask .link-arrow:hover { color: var(--gold); }
[data-piece="coverage"] .cv-foot { margin-top: 14px; font-size: var(--t-xs); letter-spacing: 0.04em; color: var(--band-muted); }
[data-piece="coverage"] .cv-ring { fill: none; stroke: var(--band-rule); stroke-width: 1; vector-effect: non-scaling-stroke; }
[data-piece="coverage"] .cv-ring:nth-of-type(2) { stroke: #4a443a; }
[data-piece="coverage"] .cv-axis { fill: none; stroke: var(--band-rule); stroke-width: 1; stroke-dasharray: 2 5; vector-effect: non-scaling-stroke; }
[data-piece="coverage"] .cv-tick { fill: none; stroke: #5a5347; stroke-width: 1; vector-effect: non-scaling-stroke; }
[data-piece="coverage"] .cv-rl { fill: var(--band-muted); font: 400 11.5px var(--f-mono); letter-spacing: 0.06em; }
[data-piece="coverage"] .cv-north { fill: var(--gold); }
[data-piece="coverage"] .cv-radial { stroke: var(--chrome); stroke-opacity: 0.38; stroke-width: 1; vector-effect: non-scaling-stroke; }
[data-piece="coverage"] .cv-dot { fill: var(--chrome); }
[data-piece="coverage"] .cv-base { fill: var(--gold); }
[data-piece="coverage"] .cv-map text { font-synthesis: none; }
[data-piece="coverage"] .cv-code { fill: var(--band-ink); font: 400 15px var(--f-mono); letter-spacing: 0.08em; }
[data-piece="coverage"] .cv-code-home { fill: var(--gold); }
[data-piece="coverage"] .cv-nm { fill: var(--band-muted); font: 400 12px var(--f-mono); letter-spacing: 0.02em; }
[data-piece="coverage"] .cv-ping {
  fill: none; stroke: var(--gold); stroke-width: 1; vector-effect: non-scaling-stroke;
  transform-box: fill-box; transform-origin: center;
  animation: cv-ping 3.2s ease-out infinite;
}
[data-piece="coverage"] .cv-ping-2 { animation-delay: -1.6s; }
@keyframes cv-ping { from { opacity: 0.9; transform: scale(1); } to { opacity: 0; transform: scale(4.5); } }

/* Radials draw out as the map scrolls in (progressive; final state is the no-JS, no-support state) */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    [data-piece="coverage"] .cv-fig-map { view-timeline: --cv-map block; }
    [data-piece="coverage"] .cv-radial {
      stroke-dasharray: 1; stroke-dashoffset: 1;
      animation: cv-draw linear both; animation-timeline: --cv-map; animation-range: entry 5% cover 38%;
    }
    [data-piece="coverage"] .cv-apt .cv-dot,
    [data-piece="coverage"] .cv-apt text {
      animation: cv-fade linear both; animation-timeline: --cv-map; animation-range: entry 20% cover 40%;
    }
    [data-piece="coverage"] .cv-apt-4 .cv-radial { animation-range: entry 15% cover 44%; }
    [data-piece="coverage"] .cv-apt-4 .cv-dot,
    [data-piece="coverage"] .cv-apt-4 text { animation-range: cover 30% cover 45%; }
  }
}
@keyframes cv-draw { to { stroke-dashoffset: 0; } }
@keyframes cv-fade { from { opacity: 0; } to { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
  [data-piece="coverage"] .cv-ping { animation: none; opacity: 0; }
}

/* ---------- Two lines of work ---------- */
.cv-work[data-piece="coverage"] {
  padding-block: clamp(88px, 11vw, 160px) clamp(88px, 10vw, 148px);
  overflow-x: clip;
}
[data-piece="coverage"] .cv-chapter {
  width: fit-content; max-width: calc(100% - 2 * var(--gutter));
  margin: 0 auto clamp(72px, 9vw, 128px);
  padding: 24px clamp(24px, 6vw, 88px);
  border-inline: 1px solid var(--rule);
  text-align: center;
}
[data-piece="coverage"] .cv-chapter h2 { font-size: var(--t-xl); margin-top: 12px; }
[data-piece="coverage"] .cv-chapter h2 em { color: var(--gold-ink); }

[data-piece="coverage"] .cv-line {
  display: grid;
  grid-template-columns: minmax(0, 46fr) minmax(0, 54fr);
  align-items: center;
}
[data-piece="coverage"] .cv-line + .cv-line { margin-top: clamp(96px, 11vw, 160px); }
[data-piece="coverage"] .cv-media { padding-inline-start: var(--gutter); }
[data-piece="coverage"] .cv-media img {
  width: 100%; height: auto; aspect-ratio: 4 / 5; max-height: 860px; object-fit: cover;
  background: var(--rule);
}
[data-piece="coverage"] #cv-maint img { object-position: 42% 50%; }
[data-piece="coverage"] #cv-cabin img { object-position: 74% 50%; }

[data-piece="coverage"] .cv-copy {
  padding-inline-start: clamp(32px, 6vw, 104px);
  padding-inline-end: max(var(--gutter), calc((100vw - var(--wrap)) / 2 + var(--gutter)));
  display: flex; flex-direction: column; align-items: flex-start;
}
[data-piece="coverage"] .cv-copy > * { max-width: 50ch; width: 100%; }
[data-piece="coverage"] .cv-line-flip { grid-template-columns: minmax(0, 54fr) minmax(0, 46fr); }
[data-piece="coverage"] .cv-line-flip .cv-media { grid-column: 2; grid-row: 1; padding-inline: 0 var(--gutter); }
[data-piece="coverage"] .cv-line-flip .cv-copy {
  grid-column: 1; grid-row: 1;
  padding-inline-start: max(var(--gutter), calc((100vw - var(--wrap)) / 2 + var(--gutter)));
  padding-inline-end: clamp(32px, 6vw, 104px);
}

[data-piece="coverage"] .cv-copy .label { display: flex; align-items: baseline; gap: 14px; }
[data-piece="coverage"] .cv-n {
  font-family: var(--f-display); font-size: var(--t-lg); letter-spacing: 0; color: var(--ink);
  padding-right: 14px; border-right: 1px solid var(--rule); line-height: 1;
}
[data-piece="coverage"] .cv-copy h3 { font-size: var(--t-2xl); margin-top: 20px; max-width: 14ch; }
[data-piece="coverage"] .cv-body { color: var(--muted); font-size: var(--t-lg); line-height: 1.5; margin-top: 18px; max-width: 36ch; }

[data-piece="coverage"] .cv-groups {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; margin-top: 32px;
}
[data-piece="coverage"] .cv-group-t {
  font-size: var(--t-xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted);
  padding-bottom: 8px; border-bottom: 1px solid var(--ink);
}
[data-piece="coverage"] .cv-copy .ticks { line-height: 1.45; }
[data-piece="coverage"] .cv-copy .ticks li::before { top: 1.25em; }
[data-piece="coverage"] .cv-line-flip .ticks { margin-top: 28px; border-top: 1px solid var(--ink); }

[data-piece="coverage"] .cv-terms {
  display: grid; grid-template-columns: repeat(3, auto); justify-content: start;
  margin: 32px 0 0;
}
[data-piece="coverage"] .cv-terms > div {
  display: flex; flex-direction: column-reverse; gap: 8px;
  padding-inline: clamp(16px, 2.4vw, 32px); border-left: 1px solid var(--rule);
}
[data-piece="coverage"] .cv-terms > div:first-child { padding-left: 0; border-left: 0; }
[data-piece="coverage"] .cv-terms dt { font-size: var(--t-xs); line-height: 1.3; color: var(--muted); white-space: nowrap; }
[data-piece="coverage"] .cv-terms dd {
  margin: 0; font-family: var(--f-display); font-size: clamp(2rem, 3.2vw, 2.75rem); line-height: 1;
  color: var(--ink); font-variant-numeric: lining-nums;
}
[data-piece="coverage"] .cv-terms .cv-unit { font: 400 var(--t-xs)/1 var(--f-mono); color: var(--muted); margin-left: 6px; letter-spacing: 0.08em; }

[data-piece="coverage"] .cv-go { width: auto; margin-top: 32px; gap: 12px; }
[data-piece="coverage"] .cv-go svg { transition: transform 0.2s; }
[data-piece="coverage"] .cv-go:hover svg { transform: translateX(3px); }

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) [data-piece="coverage"] .cv-media img { filter: brightness(0.9); }
}
:root[data-theme="dark"] [data-piece="coverage"] .cv-media img { filter: brightness(0.9); }

@media (prefers-reduced-motion: reduce) {
  [data-piece="coverage"] .cv-go svg { transition: none; }
}

/* ---------- Narrow ---------- */
@media (max-width: 1100px) {
  [data-piece="coverage"] .cv-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media (max-width: 860px) {
  [data-piece="coverage"] .cv-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  [data-piece="coverage"] .cv-text,
  [data-piece="coverage"] .cv-fig-map { grid-column: 1; grid-row: auto; }
  [data-piece="coverage"] .cv-text { order: 1; }
  [data-piece="coverage"] .cv-fig-map { order: 2; margin-inline: calc(-1 * var(--gutter)); }
  [data-piece="coverage"] .cv-map-lg { display: none; }
  [data-piece="coverage"] .cv-map-sm { display: block; width: min(100%, 540px); margin-inline: auto; overflow: hidden; }
  [data-piece="coverage"] .cv-map-sm .cv-code { font-size: 12.5px; }
  [data-piece="coverage"] .cv-map-sm .cv-nm { font-size: 11px; }
  [data-piece="coverage"] .cv-map-sm .cv-rl { font-size: 10.5px; }

  [data-piece="coverage"] .cv-line,
  [data-piece="coverage"] .cv-line-flip { grid-template-columns: minmax(0, 1fr); }
  [data-piece="coverage"] .cv-line .cv-media,
  [data-piece="coverage"] .cv-line-flip .cv-media { grid-column: 1; grid-row: 1; padding: 0; }
  [data-piece="coverage"] .cv-line .cv-copy,
  [data-piece="coverage"] .cv-line-flip .cv-copy { grid-column: 1; grid-row: 2; padding: 36px var(--gutter) 0; }
  [data-piece="coverage"] .cv-media img { aspect-ratio: 5 / 4; }
  [data-piece="coverage"] #cv-maint img { object-position: 50% 42%; }
}
@media (max-width: 560px) {
  [data-piece="coverage"] .cv-terms > div { padding-inline: 14px; }
  [data-piece="coverage"] .cv-chapter { padding-inline: 20px; }
}

/* The regional diagram locates the home base; dispatch coverage is nationwide. */
[data-piece="coverage"] .cv-program-label { margin-top: 28px; font-size: var(--t-xs); letter-spacing: .08em; color: var(--muted); }
[data-piece="coverage"] .cv-program-label + .cv-terms { margin-top: 16px; }
[data-piece="coverage"] .cv-program-link { margin-top: 18px; font-size: var(--t-sm); }
