html, body { overflow-x: hidden; max-width: 100vw; }


.demo-banner {
  background: #2B2B2B;
  color: #fff;
  text-align: center;
  font-size: 13px;
  padding: 10px 20px;
  line-height: 1.4;
}
.demo-banner strong { color: #F5C542; }

/* V19 — lisibilite mobile: tailles uniquement, aucun changement de performance */
@media (max-width: 767px) {
  body { font-size: 18px; }
  p, li, dd, dt, label, input, textarea, select { font-size: max(16px, 1em); }
  small, figcaption, .caption, .microcopy, .eyebrow, .tag, .badge, .meta, .kicker { font-size: 14px !important; line-height: 1.45; }
  a, button { font-size: max(16px, 1em); }
}

/* ===== Taille de texte minimum garantie à 17px, partout, en priorité absolue ===== */
body, p, li, a, span, label, small, strong, em, td, th, button, input, textarea, select {
  font-size: max(17px, 1em) !important;
}
h1 { font-size: clamp(34px, 6vw, 64px) !important; }
h2 { font-size: clamp(28px, 5vw, 48px) !important; }
h3 { font-size: clamp(20px, 3.5vw, 28px) !important; }

/* ===== Lisibilité mobile renforcée — priorité maximale ===== */
@media (max-width: 900px) {
  body, p, li, a, span, label, small, strong, em, td, th, button, input, textarea, select {
    font-size: max(18px, 1em) !important;
    line-height: 1.55 !important;
  }
  h1 { font-size: clamp(32px, 9vw, 44px) !important; line-height: 1.15 !important; }
  h2 { font-size: clamp(26px, 7vw, 34px) !important; line-height: 1.2 !important; }
  h3 { font-size: clamp(21px, 5.5vw, 26px) !important; line-height: 1.25 !important; }
}

