/* RULESHIFT — ajustements mobiles communs (chargé en dernier sur toutes les pages).
   Objectifs : texte lisible (12 px minimum, 16 px dans les champs pour éviter le zoom iOS),
   cibles tactiles d'au moins 44 px, aucun débordement horizontal, encoches respectées. */

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
img, svg, video { max-width: 100%; }

@media (max-width: 650px) {
  /* Champs : 16 px évite le zoom automatique de Safari iOS au focus. */
  input, select, textarea { font-size: 16px !important; }

  /* --- Accueil (FR/EN) : tailles minimales --- */
  .announcement { font-size: 12px !important; padding-left: max(15px, env(safe-area-inset-left)); padding-right: max(15px, env(safe-area-inset-right)); }
  .brand sup { font-size: 12px !important; }
  .cart-btn { font-size: 13px !important; min-height: 44px; }
  .language-switch { font-size: 14px !important; gap: 2px !important; }
  .language-switch a { min-width: 44px; min-height: 44px; display: inline-flex !important; align-items: center; justify-content: center; padding: 0 6px !important; }
  .hero .eyebrow, .eyebrow, .detail-copy .eyebrow { font-size: 12px !important; }
  .hero-chip { font-size: 12px !important; padding: 7px 10px !important; }
  .hero-secondary { font-size: 15px !important; display: inline-flex; align-items: center; min-height: 44px; }
  .image-badge, .floating-pill { font-size: 12px !important; }
  .image-note { font-size: 12px !important; }
  .benefit small { font-size: 13px !important; }
  .product-label { font-size: 12px !important; }
  .product-info, .tag, .disclosure, .kit-mini, .kit-price small, .footer-bottom, .social-status { font-size: 13px !important; }
  .kit-stamp { font-size: 12px !important; }
  .kit-list li span { font-size: 13px !important; }
  .num, .change-line > span { font-size: 13px !important; }
  .mobile-buy small { font-size: 12px !important; }
  .gallery-note, .complement, .complement b { font-size: 13px !important; }
  .detail-buy .cta, .detail-copy .cta, .drawer .cta { font-size: 14px !important; min-height: 48px; }
  .cart-item small, .line-price, .remove, .drawer-note, .empty, .saved-plan { font-size: 14px !important; }

  /* Points interactifs sur l'image : 44 px. */
  .hotspot { width: 44px !important; height: 44px !important; font-size: 14px !important; }
  .hotspot span { font-size: 12px !important; left: 46px !important; }
  .hs2 span { left: auto !important; right: 46px !important; }

  /* Liens de navigation et de pied de page : zone tactile confortable. */
  .text-link, .footer-links a, .catalog-links a, .legal-links a { display: inline-flex; align-items: center; min-height: 44px; }
  .footer-links, .legal-links, .catalog-links { row-gap: 0 !important; }
  .legal-links { font-size: 14px !important; }
  .faq-section summary { min-height: 44px; display: flex; align-items: center; }
  .product h3 a { display: inline-block; padding: 8px 0; }
  .close, .remove, .quantity button { min-width: 44px; min-height: 44px; }

  /* Barre d'achat fixe : respecte l'encoche et le geste d'accueil. */
  .mobile-buy { padding-left: max(16px, env(safe-area-inset-left)); padding-right: max(16px, env(safe-area-inset-right)); }

  /* --- Pages secondaires (legal.css) --- */
  header > nav a, header a[lang], main > nav a, body > footer a { min-width: 44px; justify-content: center; min-height: 44px; display: inline-flex; align-items: center; }
  .back, .bottom a { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px !important; }
  table { font-size: 13px !important; }
  .eyebrow { letter-spacing: .06em; }
  .form-actions .button, .form-actions button, form .button { width: 100%; min-height: 48px; text-align: center; }
  #copy-message { padding: 13px 21px; border-radius: 28px; background: #ede8f4; color: #65517d; }
}

/* Petits écrans : le tableau des traitements passe en liste lisible. */
@media (max-width: 480px) {
  main table, main thead, main tbody, main tr, main th, main td { display: block; width: 100%; }
  main thead { position: absolute; left: -10000px; }
  main tr { border-bottom: 1px solid #e4e8ec; padding: 8px 0; }
  main td { border: 0; padding: 4px 0 !important; }
  main td:first-child { font-weight: 600; }
}

@media (max-width: 360px) {
  .hero-chip { font-size: 12px !important; padding: 6px 8px !important; }
}

/* Pages secondaires : en-tête compact et pied de page légal. */
header > nav, header > div[aria-label] { margin: 0 !important; }
.site-footer { max-width: 1000px; margin: 25px auto 40px; padding: 0 24px; font-size: 14px; color: #5f6870; }
.site-footer nav { display: flex; flex-wrap: wrap; gap: 6px 8px; margin: 0 0 10px; }
.site-footer nav a { padding: 8px 13px; border: 1px solid #e3e7ec; border-radius: 25px; text-decoration: none; background: #fff; }
@media (max-width: 650px) { .site-footer { margin: 18px 12px 30px; padding: 0; font-size: 13px; } }
