.battery {
  padding: 130px 0 var(--section-y);
  background: var(--g-deep);
  border-top: 1px solid var(--c-line-faint);
}
.battery .container {
  display: flex;
  flex-wrap: wrap;
  gap: 64px;
  align-items: center;
}

/* Range-beam figure */
.range {
  margin: 0;
  flex: 1 1 520px;
  min-width: 0;
  padding: 56px 48px 44px;
  background: var(--c-surface);
  border: 1px solid var(--c-line-stage);
}
.range-label { font-size: var(--fs-small); color: var(--c-text-soft); }
.range-label + .range-track { margin-top: 12px; }
.range-track + .range-label { margin-top: 36px; }
.range-track {
  position: relative;
  height: 56px;
  --reach: 42%;
}
.range-track[data-reach="double"] { --reach: 84%; }
.range-track::before {
  content: "";
  position: absolute;
  left: 0; right: 0; top: 50%;
  border-top: 1px dashed var(--c-line-strong);
}
.range-track svg { position: absolute; left: 0; top: 13px; }
.range-beam {
  position: absolute;
  left: 38px; top: 0;
  height: 56px;
  width: calc(var(--reach) - 38px);
  clip-path: polygon(0 42%, 100% 0, 100% 100%, 0 58%);
  background: var(--g-range-beam);
}
.range-swap {
  position: absolute;
  left: 42%; top: 6px; bottom: 6px;
  width: 2px;
  background: var(--c-text);
}
.range-swap span {
  position: absolute;
  left: 10px; top: -28px;
  font-size: 13px;
  color: var(--c-muted);
  white-space: nowrap;
}
.range figcaption { margin-top: 36px; font-size: var(--fs-small); color: var(--c-muted); }

/* Copy + controls */
.battery-copy { flex: 1 1 440px; min-width: 0; }
.battery-copy h2 {
  margin: 0;
  font-family: var(--f-display);
  font-weight: 900;
  font-size: var(--fs-h2);
  line-height: 0.9;
  color: var(--c-text);
}
.battery-intro { margin: 22px 0 0; max-width: 460px; font-size: var(--fs-lead); color: var(--c-text-soft); }
.battery-copy .availability-row,
.battery-copy .availability-cells,
.battery-copy .order-row { max-width: 460px; }
.battery-copy .availability-row { margin-top: 32px; }
.battery-copy .order-row { margin-top: 28px; }

.seg { margin-top: 32px; display: flex; gap: 10px; }
.seg button {
  min-width: 150px;
  min-height: 72px;
  padding: 12px 20px;
  text-align: left;
  border: 0;
  cursor: pointer;
  background: transparent;
  color: var(--c-muted);
  box-shadow: inset 0 0 0 1px var(--c-line-strong);
}
.seg button:hover { background: var(--c-hover); }
.seg button[aria-pressed="true"] {
  background: var(--c-seg-on);
  color: var(--c-text);
  box-shadow: inset 0 0 0 2px var(--c-accent);
}
.seg strong {
  display: block;
  font-family: var(--f-display);
  font-weight: 900;
  font-size: 34px;
  line-height: 1;
}
.seg span { display: block; font-size: var(--fs-caption); margin-top: 4px; }

@media (max-width: 900px) {
  .battery { padding: 72px 0 var(--section-y); }
  .battery .container { flex-direction: column-reverse; align-items: stretch; gap: 40px; }
  .range { flex: none; padding: 40px 20px 28px; }
  .range-swap span { top: auto; bottom: -30px; } /* above the beam it collides with the row label */
  .battery-copy { flex: none; }
  .battery-intro { margin-top: 14px; }
  .seg { margin-top: 24px; }
  .seg button { flex: 1; min-width: 0; }
  .battery-copy .availability-row { margin-top: 24px; }
  .battery-copy .order-row { margin-top: 16px; }
}

/* Phones: one row for stepper + button, lower plan buttons, tighter range figure */
@media (max-width: 700px) {
  .battery { padding: 64px 0 72px; }
  .battery .container { gap: 28px; }
  .battery-intro { font-size: 15px; }

  .seg { margin-top: 18px; gap: 8px; }
  .seg button { min-height: 56px; padding: 8px 14px; }
  .seg strong { font-size: 26px; }
  .seg span { margin-top: 2px; font-size: 13px; }

  .battery-copy .availability-row { margin-top: 18px; }
  .battery-copy .availability-cells { margin-top: 8px; }
  .battery-copy .order-row { display: flex; flex-wrap: nowrap; gap: 8px; margin-top: 14px; }
  .battery-copy .stepper { flex: 0 0 auto; }
  .battery-copy .stepper button { width: var(--tap); }
  .battery-copy .stepper output { flex: none; min-width: 72px; font-size: 15px; }
  .battery-copy .order-row .btn { flex: 1 1 auto; min-width: 0; padding: 0 12px; }
  .battery-copy .order-note { margin-top: 8px; }

  /* The two-row range figure merges into one horizontal strip: the beam with the
     spare battery, where the swap mark shows how far one battery gets you. */
  .range { padding: 14px 16px 12px; }
  .range-label,
  .range-track:not([data-reach="double"]) { display: none; }
  .range-track { height: 36px; }
  .range-track svg { top: 3px; }
  .range-beam { height: 36px; }
  .range-swap { top: 3px; bottom: 3px; }
  .range-swap span { top: auto; bottom: -20px; left: 8px; font-size: 12px; }
  .range figcaption { margin-top: 24px; font-size: 13px; }
}
