/* Narrow-viewport safeguards: nothing may overflow horizontally at 375px. */
.kpi { min-width: 0; overflow: hidden; }
.kpi .v { font-size: clamp(1.25rem, 5.5vw, 1.9rem); }
.card, .notice, .modal, .line-item, .summary-row { min-width: 0; }
.summary-row > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.line-item > div:first-child { min-width: 0; overflow-wrap: anywhere; }
pre, code { max-width: 100%; overflow-x: auto; }
@media (max-width: 560px) {
  .line-item { grid-template-columns: 1fr; }
  .line-item > div:last-child { display: flex; justify-content: space-between; flex-wrap: wrap; }
  .segmented { width: 100%; }
  .segmented button, .segmented a { flex: 1 1 auto; justify-content: center; }
  .page-head .segmented { width: 100%; }
  .hero-search form { flex-direction: column; }
  .hero .cta-row .btn { width: 100%; }
  .chat-form { flex-direction: column; }
  .qty button { width: 40px; }
  .price-lg { font-size: 1.25rem; }
  .who .actions .btn { flex: 1 1 auto; }
}
@media (max-width: 400px) {
  .wrap { width: calc(100% - 1.5rem); }
  h1 { font-size: 2rem; }
  .hero h1 { font-size: 2.25rem; }
}
