/* Scale text with the browser's root font setting while preserving 16px-base design metrics. */
body[data-page="home"] {
  font-size: .875rem;
  line-height: 1.25rem;
}

.v2-nav a,
.v2-footer a,
.v2-button,
.v2-scan-replay {
  font-size: 1rem;
  line-height: 1.5rem;
}

.v2-hero h1 { font-size: 3.5rem; line-height: 3.5rem; }
.v2-hero-copy > p { font-size: 1rem; line-height: 1.5rem; }
.v2-ticker-group span { font-size: 1rem; line-height: 1.5rem; }
.v2-section-heading h2 { font-size: 3rem; line-height: 3.5rem; }
.v2-section-heading > p:not(.v2-eyebrow),
.v2-eyebrow,
.v2-card-kicker,
.v2-service-card > p:not(.v2-card-kicker),
.v2-final-card > p:not(.v2-card-kicker),
.v2-value-grid article > span,
.v2-car-top,
.v2-car-spec,
.v2-car-metrics > div > span,
.v2-ev-points p,
.v2-bms-header,
.v2-bms-cell > span,
.v2-contact-grid span,
.v2-footer span {
  font-size: .875rem;
  line-height: 1.25rem;
}

.v2-service-card h3,
.v2-final-card h2,
.v2-value-grid h3,
.v2-car-carousel h3,
.v2-contact-grid strong { font-size: 1.5rem; line-height: 2rem; }
.v2-tags li,
.v2-car-demo,
.v2-car-controls,
.v2-bms-summary span { font-size: .75rem; line-height: 1rem; }
.v2-car-metrics b,
.v2-car-metrics strong,
.v2-car-metrics small,
.v2-ev-points h3,
.v2-bms-cell strong,
.v2-bms-cell small,
.v2-bms-summary strong { font-size: 1.25rem; line-height: 1.75rem; }

@media (max-width: 68.75rem) {
  .v2-hero h1 { font-size: 3rem; line-height: 3.5rem; }
  .v2-section-heading h2 { font-size: 2.5rem; line-height: 3rem; }
}

@media (max-width: 50rem) {
  body[data-page="home"] { font-size: .875rem; line-height: 1.25rem; }
  .v2-hero h1 { font-size: 3rem; line-height: 3rem; }
  .v2-ticker-group span { font-size: 1rem; line-height: 1.5rem; }
  .v2-section-heading h2 { font-size: 2.5rem; line-height: 3rem; }
  .v2-service-card h3,
  .v2-final-card h2,
  .v2-value-grid h3,
  .v2-contact-grid strong { font-size: 1.5rem; line-height: 2rem; }
  .v2-chip-layout .v2-section-heading h2,
  .v2-ev-intro .v2-section-heading h2,
  .v2-scan-layout .v2-section-heading h2 { font-size: 2rem; line-height: 2.5rem; }
  .v2-car-metrics b,
  .v2-car-metrics strong,
  .v2-car-metrics small,
  .v2-bms-cell strong,
  .v2-bms-cell small,
  .v2-bms-summary strong { font-size: 1rem; line-height: 1.5rem; }
}

@media (max-width: 23.75rem) {
  .v2-bms-summary strong { font-size: .875rem; line-height: 1.25rem; }
}

/* Narrow-phone guard: the long hero model name must wrap rather than crop. */
@media (max-width: 23.75rem) {
  .v2-hero-copy,
  .v2-section-heading,
  .v2-chip-layout > *,
  .v2-scan-layout > * { min-width: 0; }
  .v2-hero h1 {
    font-size: clamp(2.5rem, calc(10vw + .5rem), 3rem);
    line-height: 1;
    overflow-wrap: anywhere;
  }
  .v2-section-heading h2 { overflow-wrap: anywhere; }
}

/* Respect enlarged browser text settings on compact viewports. */
@media (max-width: 50rem) {
  .v2-hero-inner {
    width: min(22.625rem, calc(100% - 2rem));
    min-width: 0;
    margin-inline: auto;
  }
  .v2-hero-copy,
  .v2-section-heading,
  .v2-service-card,
  .v2-final-card,
  .v2-car-carousel,
  .v2-car-carousel > *,
  .v2-bms-card { min-width: 0; }
  .v2-hero h1,
  .v2-section-heading h2,
  .v2-service-card > *,
  .v2-final-card > *,
  .v2-car-carousel :is(h3, p, span),
  .v2-bms-card :is(strong, small, span) { overflow-wrap: anywhere; }
}
