/* SANIPURE Grenoble 1.20.1 — style « Technological Worker » (tout le site) */
/* Généré par build/icones_css.rb — ne pas modifier à la main. */
:root {
  --m-telephone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8.1 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.9.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E");
  --m-repere: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
  --m-fleche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --m-coche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  --m-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  --m-interdit: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m5.7 5.7 12.6 12.6'/%3E%3C/svg%3E");
  --m-alerte: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.3 3.9 2.4 18a2 2 0 0 0 1.7 3h15.8a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z'/%3E%3Cpath d='M12 9.5v4.5M12 17.3v.2'/%3E%3C/svg%3E");
  --m-horloge: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5.2l3.2 2'/%3E%3C/svg%3E");
  --m-etoile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 3 2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z'/%3E%3C/svg%3E");
  --m-guillemets: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 17c2.5-.8 4-3 4-6V7H6v4h3'/%3E%3Cpath d='M14 17c2.5-.8 4-3 4-6V7h-4v4h3'/%3E%3C/svg%3E");
  --m-menu: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h16'/%3E%3C/svg%3E");
  --m-fermer: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E");
  --m-externe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M20 4l-8.5 8.5'/%3E%3Cpath d='M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5'/%3E%3C/svg%3E");
  --i-loupe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.6-3.6'/%3E%3C/svg%3E");
  --i-reglages: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3M1.5 14h5M9.5 8h5M17.5 16h5'/%3E%3C/svg%3E");
  --i-discretion: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11 12 4l9 7'/%3E%3Cpath d='M5 9.8V20h14V9.8'/%3E%3Cpath d='M9.5 14.5h5'/%3E%3Ccircle cx='12' cy='11.5' r='1'/%3E%3C/svg%3E");
  --i-bulle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 14.5a2 2 0 0 1-2 2H8l-5 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3Cpath d='M8 9h8M8 12.5h5'/%3E%3C/svg%3E");
  --i-taches: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='7' cy='8' r='1.7' fill='%23171717' stroke='none'/%3E%3Ccircle cx='14' cy='6' r='1.2' fill='%23171717' stroke='none'/%3E%3Ccircle cx='16.5' cy='12.5' r='1.9' fill='%23171717' stroke='none'/%3E%3Ccircle cx='9' cy='14.5' r='1.3' fill='%23171717' stroke='none'/%3E%3Ccircle cx='12.5' cy='18.5' r='1.1' fill='%23171717' stroke='none'/%3E%3Ccircle cx='5.5' cy='18' r='.9' fill='%23171717' stroke='none'/%3E%3C/svg%3E");
  --i-goutte: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3s6 6.4 6 11a6 6 0 0 1-12 0c0-4.6 6-11 6-11z'/%3E%3C/svg%3E");
  --i-insecte: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cellipse cx='12' cy='14.2' rx='4.6' ry='5.8'/%3E%3Cpath d='M12 8.4V6.2'/%3E%3Ccircle cx='12' cy='5' r='1.4'/%3E%3Cpath d='M7.6 11.5 4.6 9.8M7.4 14.5H4M7.9 17.4l-2.4 2.3M16.4 11.5l3-1.7M16.6 14.5H20M16.1 17.4l2.4 2.3'/%3E%3C/svg%3E");
  --i-oeufs: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cellipse cx='8.5' cy='13.5' rx='3' ry='4.2'/%3E%3Cellipse cx='15.8' cy='11.2' rx='2.6' ry='3.6'/%3E%3Cellipse cx='15' cy='18.6' rx='1.8' ry='2.2'/%3E%3C/svg%3E");
  --i-vehicule: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 16.5V12l2.2-5h12.6l2.2 5v4.5z'/%3E%3Cpath d='M3.5 12h17'/%3E%3Ccircle cx='7.5' cy='16.8' r='1.9'/%3E%3Ccircle cx='16.5' cy='16.8' r='1.9'/%3E%3C/svg%3E");
  --i-document: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H6.5a1.5 1.5 0 0 0-1.5 1.5v15A1.5 1.5 0 0 0 6.5 21h11a1.5 1.5 0 0 0 1.5-1.5V8z'/%3E%3Cpath d='M14 3v5h5'/%3E%3Cpath d='m9 14.5 2 2 4-4'/%3E%3C/svg%3E");
  --i-bouclier: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 4.5 6v6c0 4.8 3.3 8 7.5 9 4.2-1 7.5-4.2 7.5-9V6z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
  --i-immeuble: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='3' width='14' height='18' rx='1.5'/%3E%3Cpath d='M9 7h1.5M13.5 7H15M9 11h1.5M13.5 11H15M9 15h1.5M13.5 15H15'/%3E%3Cpath d='M10.5 21v-3h3v3'/%3E%3C/svg%3E");
  --i-maison: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11 12 4l9 7'/%3E%3Cpath d='M5 9.8V20h14V9.8'/%3E%3Cpath d='M10 20v-5.5h4V20'/%3E%3C/svg%3E");
  --i-lit: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 19V6.5'/%3E%3Cpath d='M3 14.5h18V19'/%3E%3Cpath d='M21 14.5V13a3 3 0 0 0-3-3h-7v4.5'/%3E%3Ccircle cx='7' cy='11.5' r='2'/%3E%3C/svg%3E");
  --i-certificat: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='13' rx='2'/%3E%3Cpath d='M7 8.5h7M7 12h4.5'/%3E%3Ccircle cx='16.5' cy='12' r='2'/%3E%3Cpath d='m15.5 13.8-.8 5.2 1.8-1 1.8 1-.8-5.2'/%3E%3C/svg%3E");
  --i-medaille: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='9' r='6'/%3E%3Cpath d='M8.6 14 7 21.5l5-2.8 5 2.8-1.6-7.5'/%3E%3Cpath d='m9.8 9 1.5 1.5 3-3'/%3E%3C/svg%3E");
  --i-repere: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
  --i-vapeur: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7.5 20c-1.4-1.5-1.4-3.5 0-5s1.4-3.5 0-5-1.4-3.5 0-5'/%3E%3Cpath d='M12 20c-1.4-1.5-1.4-3.5 0-5s1.4-3.5 0-5-1.4-3.5 0-5'/%3E%3Cpath d='M16.5 20c-1.4-1.5-1.4-3.5 0-5s1.4-3.5 0-5-1.4-3.5 0-5'/%3E%3C/svg%3E");
  --i-euro: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.5 6.6A7.2 7.2 0 1 0 17.5 17.4'/%3E%3Cpath d='M4 10.2h9M4 13.8h9'/%3E%3C/svg%3E");
  --i-liste: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6h11M9 12h11M9 18h11'/%3E%3Cpath d='m3.5 6 1 1 2-2M3.5 12l1 1 2-2M3.5 18l1 1 2-2'/%3E%3C/svg%3E");
  --i-carte: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 4 3.5 6v14L9 18l6 2 5.5-2V4L15 6z'/%3E%3Cpath d='M9 4v14M15 6v14'/%3E%3C/svg%3E");
  --i-telephone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8.1 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.9.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E");
  --i-courriel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3.5 6.5 8.5 6.5 8.5-6.5'/%3E%3C/svg%3E");
  --i-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  --i-appareil: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h3l1.8-2.8h6.4L17 8h3v11.5H4z'/%3E%3Ccircle cx='12' cy='13.3' r='3.6'/%3E%3C/svg%3E");
  --i-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5.5M12 7.6v.2'/%3E%3C/svg%3E");
  --i-canape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 11V8a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v3'/%3E%3Cpath d='M2.5 12.5a2 2 0 0 1 4 0V14h11v-1.5a2 2 0 0 1 4 0V18h-19z'/%3E%3Cpath d='M5 18v2M19 18v2'/%3E%3C/svg%3E");
  --i-pulverisateur: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8.5 21h7a1 1 0 0 0 1-1v-7.5a3 3 0 0 0-3-3h-3a3 3 0 0 0-3 3V20a1 1 0 0 0 1 1z'/%3E%3Cpath d='M10 9.5V6.5h4v3'/%3E%3Cpath d='M14 6.5h2.5L18 5'/%3E%3Cpath d='M20 3.5l1.5-.5M20.5 6h1.5M20 8.5l1.5.5'/%3E%3C/svg%3E");
  --i-sac: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 8h12l-1 12.5H7z'/%3E%3Cpath d='M9 8V6.5a3 3 0 0 1 6 0V8'/%3E%3Cpath d='M9.5 12h5'/%3E%3C/svg%3E");
  --i-lavage: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='16' height='18' rx='2'/%3E%3Ccircle cx='12' cy='13' r='4.6'/%3E%3Cpath d='M7 6.5h2.5M15.5 6.5h1'/%3E%3C/svg%3E");
  --i-aeration: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8h10.5A2.5 2.5 0 1 0 11 5.5'/%3E%3Cpath d='M3 12h15a3 3 0 1 1-3 3'/%3E%3Cpath d='M3 16h7'/%3E%3C/svg%3E");
  --i-aspirateur: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 20.5h7'/%3E%3Cpath d='M9.5 20.5V9a4 4 0 0 1 8 0v1.5'/%3E%3Cpath d='M17.5 10.5 20 20.5'/%3E%3Ccircle cx='17.5' cy='10.5' r='1.3'/%3E%3C/svg%3E");
  --i-alerte: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.3 3.9 2.4 18a2 2 0 0 0 1.7 3h15.8a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z'/%3E%3Cpath d='M12 9.5v4.5M12 17.3v.2'/%3E%3C/svg%3E");
  --i-interdit: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m5.7 5.7 12.6 12.6'/%3E%3C/svg%3E");
  --i-cle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='7.5' cy='15.5' r='3.5'/%3E%3Cpath d='m10 13 10-10M17 6l2.5 2.5M14.5 8.5 16.5 10.5'/%3E%3C/svg%3E");
  --i-thermometre: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 14.8V5a2 2 0 0 0-4 0v9.8a4 4 0 1 0 4 0z'/%3E%3Cpath d='M12 9v7'/%3E%3C/svg%3E");
  --i-flocon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.5v19M3.8 7.2l16.4 9.6M20.2 7.2 3.8 16.8'/%3E%3Cpath d='m9.5 4 2.5 2 2.5-2M9.5 20l2.5-2 2.5 2'/%3E%3C/svg%3E");
  --i-equipe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Cpath d='M3 20.5c0-3.4 2.7-6 6-6s6 2.6 6 6'/%3E%3Ccircle cx='17.2' cy='9' r='2.5'/%3E%3Cpath d='M15.8 14.3c2.9.3 5.2 2.8 5.2 6'/%3E%3C/svg%3E");
  --i-horloge: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5.2l3.2 2'/%3E%3C/svg%3E");
  --i-calendrier: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4.5' width='18' height='16.5' rx='2'/%3E%3Cpath d='M8 2.5v4M16 2.5v4M3 10h18'/%3E%3Cpath d='m9 15.2 2 2 4-4'/%3E%3C/svg%3E");
  --i-valise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='8' width='16' height='12.5' rx='2'/%3E%3Cpath d='M9 8V5h6v3'/%3E%3Cpath d='M8.5 8v12.5M15.5 8v12.5'/%3E%3C/svg%3E");
  --i-prise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4.5' y='4' width='15' height='16' rx='3.5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M10.5 12h.01M13.5 12h.01'/%3E%3C/svg%3E");
  --ib-loupe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.6-3.6'/%3E%3C/svg%3E");
  --ib-vapeur: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7.5 20c-1.4-1.5-1.4-3.5 0-5s1.4-3.5 0-5-1.4-3.5 0-5'/%3E%3Cpath d='M12 20c-1.4-1.5-1.4-3.5 0-5s1.4-3.5 0-5-1.4-3.5 0-5'/%3E%3Cpath d='M16.5 20c-1.4-1.5-1.4-3.5 0-5s1.4-3.5 0-5-1.4-3.5 0-5'/%3E%3C/svg%3E");
  --ib-pulverisateur: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8.5 21h7a1 1 0 0 0 1-1v-7.5a3 3 0 0 0-3-3h-3a3 3 0 0 0-3 3V20a1 1 0 0 0 1 1z'/%3E%3Cpath d='M10 9.5V6.5h4v3'/%3E%3Cpath d='M14 6.5h2.5L18 5'/%3E%3Cpath d='M20 3.5l1.5-.5M20.5 6h1.5M20 8.5l1.5.5'/%3E%3C/svg%3E");
  --ib-calendrier: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4.5' width='18' height='16.5' rx='2'/%3E%3Cpath d='M8 2.5v4M16 2.5v4M3 10h18'/%3E%3Cpath d='m9 15.2 2 2 4-4'/%3E%3C/svg%3E");
  --ib-repere: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
  --ib-bouclier: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 4.5 6v6c0 4.8 3.3 8 7.5 9 4.2-1 7.5-4.2 7.5-9V6z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
  --ib-cle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='7.5' cy='15.5' r='3.5'/%3E%3Cpath d='m10 13 10-10M17 6l2.5 2.5M14.5 8.5 16.5 10.5'/%3E%3C/svg%3E");
  --ib-aeration: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8h10.5A2.5 2.5 0 1 0 11 5.5'/%3E%3Cpath d='M3 12h15a3 3 0 1 1-3 3'/%3E%3Cpath d='M3 16h7'/%3E%3C/svg%3E");
  --ib-aspirateur: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 20.5h7'/%3E%3Cpath d='M9.5 20.5V9a4 4 0 0 1 8 0v1.5'/%3E%3Cpath d='M17.5 10.5 20 20.5'/%3E%3Ccircle cx='17.5' cy='10.5' r='1.3'/%3E%3C/svg%3E");
  --ib-document: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H6.5a1.5 1.5 0 0 0-1.5 1.5v15A1.5 1.5 0 0 0 6.5 21h11a1.5 1.5 0 0 0 1.5-1.5V8z'/%3E%3Cpath d='M14 3v5h5'/%3E%3Cpath d='m9 14.5 2 2 4-4'/%3E%3C/svg%3E");
  --ib-liste: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6h11M9 12h11M9 18h11'/%3E%3Cpath d='m3.5 6 1 1 2-2M3.5 12l1 1 2-2M3.5 18l1 1 2-2'/%3E%3C/svg%3E");
  --ij-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFAE00' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5.5M12 7.6v.2'/%3E%3C/svg%3E");
  --ij-immeuble: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFAE00' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='3' width='14' height='18' rx='1.5'/%3E%3Cpath d='M9 7h1.5M13.5 7H15M9 11h1.5M13.5 11H15M9 15h1.5M13.5 15H15'/%3E%3Cpath d='M10.5 21v-3h3v3'/%3E%3C/svg%3E");
  --ij-maison: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFAE00' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11 12 4l9 7'/%3E%3Cpath d='M5 9.8V20h14V9.8'/%3E%3Cpath d='M10 20v-5.5h4V20'/%3E%3C/svg%3E");
  --ij-lit: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFAE00' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 19V6.5'/%3E%3Cpath d='M3 14.5h18V19'/%3E%3Cpath d='M21 14.5V13a3 3 0 0 0-3-3h-7v4.5'/%3E%3Ccircle cx='7' cy='11.5' r='2'/%3E%3C/svg%3E");
  --ij-appareil: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFAE00' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h3l1.8-2.8h6.4L17 8h3v11.5H4z'/%3E%3Ccircle cx='12' cy='13.3' r='3.6'/%3E%3C/svg%3E");
}
.ic-loupe { --ic: var(--i-loupe, none); --ic-b: var(--ib-loupe); }
.ic-reglages { --ic: var(--i-reglages, none); }
.ic-discretion { --ic: var(--i-discretion, none); }
.ic-bulle { --ic: var(--i-bulle, none); }
.ic-taches { --ic: var(--i-taches, none); }
.ic-goutte { --ic: var(--i-goutte, none); }
.ic-insecte { --ic: var(--i-insecte, none); }
.ic-oeufs { --ic: var(--i-oeufs, none); }
.ic-vehicule { --ic: var(--i-vehicule, none); }
.ic-document { --ic: var(--i-document, none); --ic-b: var(--ib-document); }
.ic-bouclier { --ic: var(--i-bouclier, none); --ic-b: var(--ib-bouclier); }
.ic-immeuble { --ic: var(--i-immeuble, none); --ic-j: var(--ij-immeuble); }
.ic-maison { --ic: var(--i-maison, none); --ic-j: var(--ij-maison); }
.ic-lit { --ic: var(--i-lit, none); --ic-j: var(--ij-lit); }
.ic-certificat { --ic: var(--i-certificat, none); }
.ic-medaille { --ic: var(--i-medaille, none); }
.ic-repere { --ic: var(--i-repere, none); --ic-b: var(--ib-repere); }
.ic-vapeur { --ic: var(--i-vapeur, none); --ic-b: var(--ib-vapeur); }
.ic-euro { --ic: var(--i-euro, none); }
.ic-liste { --ic: var(--i-liste, none); --ic-b: var(--ib-liste); }
.ic-carte { --ic: var(--i-carte, none); }
.ic-telephone { --ic: var(--i-telephone, none); }
.ic-courriel { --ic: var(--i-courriel, none); }
.ic-chevron { --ic: var(--i-chevron, none); }
.ic-appareil { --ic: var(--i-appareil, none); --ic-j: var(--ij-appareil); }
.ic-info { --ic: var(--i-info, none); --ic-j: var(--ij-info); }
.ic-canape { --ic: var(--i-canape, none); }
.ic-pulverisateur { --ic: var(--i-pulverisateur, none); --ic-b: var(--ib-pulverisateur); }
.ic-sac { --ic: var(--i-sac, none); }
.ic-lavage { --ic: var(--i-lavage, none); }
.ic-aeration { --ic: var(--i-aeration, none); --ic-b: var(--ib-aeration); }
.ic-aspirateur { --ic: var(--i-aspirateur, none); --ic-b: var(--ib-aspirateur); }
.ic-alerte { --ic: var(--i-alerte, none); }
.ic-interdit { --ic: var(--i-interdit, none); }
.ic-cle { --ic: var(--i-cle, none); --ic-b: var(--ib-cle); }
.ic-thermometre { --ic: var(--i-thermometre, none); }
.ic-flocon { --ic: var(--i-flocon, none); }
.ic-equipe { --ic: var(--i-equipe, none); }
.ic-horloge { --ic: var(--i-horloge, none); }
.ic-calendrier { --ic: var(--i-calendrier, none); --ic-b: var(--ib-calendrier); }
.ic-valise { --ic: var(--i-valise, none); }
.ic-prise { --ic: var(--i-prise, none); }

/* =============================================================================
   ACCUEIL « TECHNOLOGICAL WORKER » (11/10/2026, maquette validée par SANIPURE : « publie »)
   Feuille autonome de la page d'accueil (styles.css n'y est pas chargée). Le reste du site garde son style.
   Direction : l'équipement professionnel comme langage de marque — noir + jaune signal, étiquettes codées
   (SP—01…), tableaux de spécifications, filets de 1 px, annotations sur photo, « scan » jaune des photos.
   Titres : Google Sans Flex condensé ; texte : Manrope ; étiquettes : chasse fixe système (aucun téléchargement).
   Surfaces fixées par section (identifiants et classes du balisage existant, aucun attribut ajouté).
   ========================================================================== */

@font-face { font-family: "Google Sans Flex"; font-style: normal; font-weight: 500 700; font-stretch: 75% 100%; font-display: swap; src: url("assets/fonts/google-sans-flex-latin-var.woff2") format("woff2"); }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("assets/fonts/manrope-latin-var.woff2") format("woff2"); }
@font-face { font-family: "Titre repli"; src: local("Arial Narrow Bold"), local("ArialNarrow-Bold"), local("Arial Narrow"), local("Arial"); font-weight: 500 700; }
@font-face { font-family: "Manrope repli"; src: local("Arial"), local("ArialMT"); font-weight: 400 700; size-adjust: 100.5%; ascent-override: 106%; descent-override: 30%; line-gap-override: 0%; }
@property --tw-scan { syntax: "<percentage>"; inherits: false; initial-value: 0%; }

:root {
  --carbone: #0B0C0D;
  --graphite: #121416;
  --acier: #1A1D20;
  --filet-sombre: #262A2E;
  --gris-1: #A3A8AE;
  --gris-2: #80868D;
  --blanc-tech: #F3F3F0;
  --papier: #F0F0EC;
  --blanc: #FFFFFF;
  --jaune: #FFAE00;

  --titre: "Google Sans Flex", "Titre repli", system-ui, sans-serif;
  --texte: "Manrope", "Manrope repli", system-ui, sans-serif;
  --mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;

  --marge: clamp(16px, 4vw, 60px);
  --largeur: 1320px;
  --entete-h: 84px;
  --specs-h: 96px;
  --r-carte: 10px;
  --r-photo: 8px;
  --r-bouton: 6px;
  --r-tag: 3px;

  /* Système de mouvement : scan (photos), module (blocs), tracé (traits, jauge), micro (survol) */
  --ease: cubic-bezier(.2, .8, .2, 1);
  --ease-scan: cubic-bezier(.65, 0, .35, 1);
  --t-scan: 950ms;
  --t-module: 500ms;
  --t-trace: 420ms;
  --t-micro: 180ms;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: 72px; }
body { margin: 0; background: var(--carbone); color: var(--blanc-tech); font: 400 16.5px/1.6 var(--texte); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: clip; }
img { display: block; max-width: 100%; height: auto; }
figure { margin: 0; }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--jaune); outline-offset: 3px; }
[hidden] { display: none !important; }
.lien-evitement, .skip-link { position: absolute; left: 16px; top: -60px; z-index: 100; padding: 10px 16px; border-radius: var(--r-bouton); background: var(--jaune); color: var(--carbone); font-weight: 700; text-decoration: none; }
.lien-evitement:focus, .skip-link:focus { top: 12px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.wp-block-image { margin: 0; }

/* ---------- Surfaces ---------- */
:is(.section, .verifiable) { --fond: var(--carbone); --encre: var(--blanc-tech); --encre-2: var(--gris-1); --encre-3: var(--gris-2); --filet: var(--filet-sombre); --carte: var(--graphite); --bord-bouton: #3A3F45;
  background: var(--fond); color: var(--encre); }
:is(#methode, #lieux) { --fond: var(--graphite); --carte: var(--acier); --filet: #2A2E33; }
:is(#formules, #avis, .medias, .verifiable, #autres-nuisibles, .section-guides, #faq, .section:has(> .entreprise)) { --encre: var(--carbone); --encre-2: #454A50; --encre-3: #6B7178; --filet: #D6D7D2; --carte: var(--blanc); --bord-bouton: #B4B6B1; }
:is(#formules, #avis, .medias, .verifiable, #autres-nuisibles, .section-guides) { --fond: var(--papier); }
:is(#faq, .section:has(> .entreprise)) { --fond: var(--blanc); --carte: var(--papier); }
:where(.section, .verifiable) p, :where(.section, .verifiable) h3, :where(.section, .verifiable) h4 { margin: 0; }
:is(.section, .verifiable) a { color: inherit; }
.section, .verifiable { padding: clamp(88px, 10vw, 150px) 0; }
.section-sans-haut { padding-top: 0; }
.conteneur { max-width: var(--largeur); margin: 0 auto; padding: 0 var(--marge); }
.conteneur-etroit { max-width: 900px; margin: 0 auto; padding: 0 var(--marge); }

/* ---------- Étiquettes codées (modules numérotés automatiquement) ---------- */
main { counter-reset: module; }
.tw-tag, .surtitre, .surtitre-pastille, .tw-signal-tag { display: block; margin: 0 0 20px; font: 500 11.5px/1.3 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--encre-2, var(--gris-1)); }
.surtitre, .surtitre-pastille { counter-increment: module; }
.tw-tag-code, .surtitre::before, .surtitre-pastille::before { display: inline-flex; align-items: center; height: 20px; margin-right: 10px; padding: 0 6px; vertical-align: 1px; border-radius: var(--r-tag); background: var(--jaune); color: var(--carbone); font: 600 11px/1 var(--mono); letter-spacing: .06em; }
.surtitre::before, .surtitre-pastille::before { content: ""; width: 8px; height: 8px; padding: 0; border-radius: 2px; } /* codes SP—XX retirés (11/10/2026, demande SANIPURE) */
.tw-tag-code { display: none; }

/* ---------- Titres : condensés, la partie en <em> surlignée comme un ruban d'étiquetage ---------- */
:is(.section, .verifiable) h2 { margin: 0; font-family: var(--titre); font-weight: 700; font-stretch: 75%; font-size: clamp(2.3rem, 1.1rem + 3.3vw, 4.4rem); line-height: 1.12; letter-spacing: -.004em; color: var(--encre); text-wrap: balance; }
:is(.section, .verifiable) h2 em, .tw-ruban { font-style: normal; color: var(--carbone); padding: 0 .1em; background: linear-gradient(var(--jaune), var(--jaune)) 0 62% / 100% .96em no-repeat; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
:is(.section, .verifiable) h3 { font-family: var(--titre); font-weight: 700; font-stretch: 75%; font-size: clamp(1.45rem, 1.15rem + .8vw, 1.9rem); line-height: 1.05; letter-spacing: 0; color: var(--encre); }
:is(.section, .verifiable) h4 { margin-bottom: 14px; font: 500 11.5px/1.3 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--encre-2); }
.chapeau { margin: 0; font-size: clamp(16.5px, 15px + .4vw, 19px); line-height: 1.55; color: var(--encre-2); }
.chapeau strong { color: var(--encre); font-weight: 600; }
.chapeau a { color: var(--encre); }

/* En-tête de section façon fiche technique : filet, code, titre à gauche, chapeau à droite */
.entete-section { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: clamp(32px, 5vw, 88px); align-items: end; margin: 0 0 clamp(48px, 6vw, 80px); padding-top: 22px; border-top: 1px solid var(--filet); }
.entete-section > .surtitre, .entete-section > .surtitre-pastille { grid-column: 1 / -1; }
.entete-section > h2 { grid-column: 1; }
.entete-section > :not(.surtitre):not(.surtitre-pastille):not(h2) { grid-column: 2; padding-bottom: 6px; }
.entete-section > .chapeau + * { margin-top: 14px; }
#faq .entete-section, .contact-epure .entete-section, .solutions-tete .entete-section, .guides-tete .entete-section { display: block; }
#faq .entete-section > h2 + *, .contact-epure .entete-section > h2 + * { margin-top: 20px; }

/* ---------- Boutons et liens ---------- */
.groupe-boutons { display: flex; flex-wrap: wrap; gap: 10px; }
.tw-bouton, .btn > .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 52px; padding: 0 22px; border-radius: var(--r-bouton); border: 1px solid transparent; font: 700 15px/1.2 var(--texte); letter-spacing: .005em; text-decoration: none; white-space: nowrap; outline: 2px solid transparent; outline-offset: 2px; cursor: pointer;
  transition: outline-color var(--t-micro) var(--ease), border-color var(--t-micro) var(--ease), transform var(--t-micro) var(--ease); }
.tw-bouton:hover, .btn > .wp-block-button__link:hover { outline-color: var(--jaune); }
.tw-bouton:active, .btn > .wp-block-button__link:active { transform: translateY(1px); }
.tw-bouton-jaune, .btn-jaune > .wp-block-button__link { background: var(--jaune); color: var(--carbone); }
.tw-bouton-contour, .btn-contour > .wp-block-button__link, .btn-contour-clair > .wp-block-button__link { border-color: var(--bord-bouton, #3A3F45); background: transparent; color: var(--encre, var(--blanc-tech)); }
.tw-bouton-contour:hover, :is(.btn-contour, .btn-contour-clair) > .wp-block-button__link:hover { border-color: var(--jaune); }
.btn-noir > .wp-block-button__link { background: var(--encre); color: var(--fond); }
.tw-bouton-fleche::after, .btn-fleche > .wp-block-button__link::after { content: "→"; font: 500 15px/1 var(--mono); transition: transform var(--t-micro) var(--ease); }
.tw-bouton-fleche:hover::after, .btn-fleche > .wp-block-button__link:hover::after { transform: translateX(3px); }
.tw-bouton-petit { min-height: 38px; padding: 0 14px; font-size: 13.5px; }
.lien-fleche { margin: 18px 0 0; }
.lien-fleche a, .indice-fleche { display: inline-flex; align-items: center; gap: 8px; padding-bottom: 3px; border-bottom: 1px solid var(--filet); font: 500 12px/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--encre); text-decoration: none; transition: border-color var(--t-micro) var(--ease); }
.lien-fleche a::after, .indice-fleche::after { content: "→"; color: var(--jaune); transition: transform var(--t-micro) var(--ease); }
:is(#formules, #avis, .medias, .verifiable, #autres-nuisibles, .section-guides, #faq, .section:has(> .entreprise)) :is(.lien-fleche a, .indice-fleche)::after { color: var(--encre); }
.lien-fleche a:hover { border-color: var(--jaune); }
.lien-fleche a:hover::after { transform: translateX(3px); }
.indice-fleche { border-bottom: 0; }

/* Coins de visée (photos techniques) */
.tw-hero-photo::before, .tw-fiche::before, .ms-photo::before, .photo-equipe::before, .zone-photo::before { content: ""; position: absolute; inset: 14px; z-index: 3; pointer-events: none; --c: rgba(255, 255, 255, .78); --l: 18px;
  background: linear-gradient(var(--c), var(--c)) top left / var(--l) 1px no-repeat, linear-gradient(var(--c), var(--c)) top left / 1px var(--l) no-repeat,
              linear-gradient(var(--c), var(--c)) top right / var(--l) 1px no-repeat, linear-gradient(var(--c), var(--c)) top right / 1px var(--l) no-repeat,
              linear-gradient(var(--c), var(--c)) bottom left / var(--l) 1px no-repeat, linear-gradient(var(--c), var(--c)) bottom left / 1px var(--l) no-repeat,
              linear-gradient(var(--c), var(--c)) bottom right / var(--l) 1px no-repeat, linear-gradient(var(--c), var(--c)) bottom right / 1px var(--l) no-repeat; }

/* ---------- En-tête « barre d'outils » : balisage du site (.entete > .capsule), statique et WordPress ---------- */
.entete { position: sticky; top: 0; z-index: 60; background: rgba(11, 12, 13, .95); border-bottom: 1px solid var(--filet-sombre); }
.capsule { display: flex; align-items: center; gap: 18px; max-width: 1680px; height: var(--entete-h); margin: 0 auto; padding: 0 var(--marge); transition: height var(--t-module) var(--ease); }
.entete.est-defile .capsule { height: 68px; }
.capsule > .logo { flex: none; display: flex; align-items: center; gap: 18px; margin: 0; line-height: 0; }
.capsule > .logo a { display: inline-block; line-height: 0; }
.capsule > .logo img { width: auto; height: 40px; max-width: none; transition: height var(--t-module) var(--ease); } /* logo agrandi (11/10/2026, deux fois) */
.entete.est-defile .capsule > .logo img { height: 34px; }
.capsule > .logo::after { content: "Grenoble · Isère"; padding-left: 18px; border-left: 1px solid var(--filet-sombre); font: 500 11px/22px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--gris-2); white-space: nowrap; }
.capsule > .nav-liens { margin-left: auto; }
.nav-liens .wp-block-navigation__container { display: flex; flex-wrap: nowrap; align-items: center; gap: 24px; margin: 0; padding: 0; list-style: none; }
.nav-liens .wp-block-navigation-item { margin: 0; }
.nav-liens .wp-block-navigation-item__content { position: relative; display: inline-block; padding: 8px 0; font: 500 14px/1 var(--texte); color: var(--gris-1); text-decoration: none; white-space: nowrap; transition: color var(--t-micro) var(--ease); }
.nav-liens .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--jaune); transform: scaleX(0); transform-origin: 0 50%; transition: transform var(--t-micro) var(--ease); }
.nav-liens .wp-block-navigation-item__content:hover, .nav-liens [aria-current="page"] { color: var(--blanc-tech); }
.nav-liens .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover::after { transform: scaleX(1); }
/* « Autres nuisibles » : panneau technique sous la barre (survol, focus ou bouton) */
.nav-liens .nav-autres { position: relative; display: flex; align-items: center; }
.nav-liens .nav-autres > .wp-block-navigation-item__content { cursor: default; }
.nav-liens .nav-autres > .wp-block-navigation-submenu__toggle { display: inline-grid; place-items: center; width: 22px; height: 22px; margin-left: 2px; padding: 0; border: 0; background: none; color: var(--gris-1); cursor: pointer; }
.nav-liens .nav-autres > .wp-block-navigation-submenu__toggle svg { width: 10px; height: 10px; stroke: currentColor; fill: none; transition: transform var(--t-micro) var(--ease); }
.nav-liens .nav-autres:hover > .wp-block-navigation-submenu__toggle svg, .nav-liens .nav-autres > .wp-block-navigation-submenu__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.nav-liens .nav-autres > .wp-block-navigation__submenu-container {
  position: absolute; top: calc(100% + 18px); left: 50%; right: auto; z-index: 80;
  display: grid; grid-template-columns: repeat(3, max-content); align-items: start; gap: 4px 40px;
  width: max-content; min-width: 0; height: auto; margin: 0; padding: 22px 28px 24px; list-style: none; overflow: visible;
  border: 1px solid var(--filet-sombre); border-top: 2px solid var(--jaune); border-radius: 0 0 var(--r-carte) var(--r-carte); background: var(--carbone); color: var(--blanc-tech);
  opacity: 0; visibility: hidden; pointer-events: none; transform: translate(-50%, 6px);
  transition: opacity var(--t-micro) var(--ease), transform var(--t-micro) var(--ease), visibility 0s linear var(--t-micro);
}
.nav-liens .nav-autres > .wp-block-navigation__submenu-container::before { content: ""; position: absolute; left: 0; right: 0; top: -22px; height: 22px; }
.nav-liens .nav-autres:hover > .wp-block-navigation__submenu-container,
.nav-liens .nav-autres:focus-within > .wp-block-navigation__submenu-container,
.nav-liens .nav-autres > .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0); transition: opacity var(--t-micro) var(--ease), transform var(--t-micro) var(--ease), visibility 0s; }
.nav-liens .nav-autres .wp-block-navigation__submenu-container > .wp-block-navigation-item { display: block; margin: 0; }
.nav-liens .nav-autres .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content { display: block; padding: 6px 0; font: 700 18px/1.1 var(--titre); font-stretch: 75%; color: var(--blanc-tech); }
.nav-liens .nav-autres .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container {
  position: static !important; display: grid; gap: 0; width: auto !important; min-width: 0 !important; height: auto !important; margin: 4px 0 0; padding: 0; border: 0; background: none; transform: none;
  opacity: 1 !important; visibility: inherit !important; pointer-events: inherit; overflow: visible !important;
}
.nav-liens .nav-autres .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 5px 0; font: 500 11.5px/1.3 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--gris-1); }
.nav-liens .nav-autres .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover, .nav-liens .nav-autres .wp-block-navigation__submenu-container [aria-current="page"] { color: var(--jaune); }
.nav-liens .nav-autres .wp-block-navigation__submenu-container .wp-block-navigation-submenu__toggle { display: none; }
.capsule-actions { display: flex; align-items: center; gap: 10px; margin-left: 8px; }
.capsule-tel { margin: 0; }
.capsule-tel a { display: inline-block; padding: 10px 12px; border: 1px solid var(--filet-sombre); border-radius: var(--r-bouton); font: 500 13px/1 var(--mono); letter-spacing: .02em; color: var(--blanc-tech); text-decoration: none; white-space: nowrap; transition: border-color var(--t-micro) var(--ease); }
.capsule-tel a:hover { border-color: var(--jaune); }
.capsule .btn > .wp-block-button__link { min-height: 38px; padding: 0 14px; font-size: 13.5px; }
.actions-mobile { display: none; }
/* Bouton du menu mobile : celui du site statique et celui du bloc Navigation */
.bouton-menu, .nav-mobile .wp-block-navigation__responsive-container-open { display: inline-grid !important; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid var(--filet-sombre) !important; border-radius: var(--r-bouton) !important; background: transparent; color: var(--blanc-tech); cursor: pointer; }
.bouton-menu::before, .nav-mobile .wp-block-navigation__responsive-container-open::before { content: ""; width: 20px; height: 20px; background-color: currentColor; -webkit-mask: var(--m-menu) center / contain no-repeat; mask: var(--m-menu) center / contain no-repeat; }
.nav-mobile .wp-block-navigation__responsive-container-open svg { display: none; }
/* Menu mobile du site statique (aperçu local) */
.menu-mobile { position: fixed; inset: var(--entete-h) 0 0; z-index: 59; overflow-y: auto; padding: 24px var(--marge) 120px; background: var(--carbone); }
.menu-mobile ul { margin: 0; padding: 0; list-style: none; }
.menu-mobile .lien-menu { display: block; padding: 13px 0; border-bottom: 1px solid var(--filet-sombre); font: 700 22px/1.1 var(--titre); font-stretch: 75%; color: var(--blanc-tech); text-decoration: none; }
.menu-mobile .menu-autres-titre { margin: 26px 0 6px; font: 500 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--gris-2); }
.menu-mobile .menu-autres-enfants { display: flex; flex-wrap: wrap; gap: 4px 14px; padding: 6px 0 12px; }
.menu-mobile .menu-autres-enfants a { font: 500 11.5px/1.3 var(--mono); text-transform: uppercase; color: var(--gris-1); text-decoration: none; }
.menu-mobile .groupe-boutons { margin-top: 26px; }
.menu-mobile .menu-infos { margin-top: 18px; font: 500 12px/1 var(--mono); color: var(--gris-2); }
@media (max-width: 1499px) { .capsule > .logo::after { display: none; } }
@media (max-width: 1260px) { .nav-liens .wp-block-navigation__container { gap: 18px; } .nav-liens .wp-block-navigation-item__content { font-size: 13.5px; } .capsule-tel { display: none; } }
@media (max-width: 1023px) {
  .capsule > .nav-liens, .capsule > .capsule-actions { display: none; } /* plus fort que « body .is-layout-flex » de WordPress */
  .actions-mobile { display: flex; align-items: center; gap: 8px; margin-left: auto; }
  .actions-mobile .wp-block-buttons { display: flex; gap: 0; }
}
@media (max-width: 599px) {
  .capsule { gap: 12px; }
  .capsule > .logo img, .entete.est-defile .capsule > .logo img { height: 31px; }
  .capsule .btn > .wp-block-button__link { padding: 0 12px; font-size: 13px; }
}
@media (max-width: 359px) {
  .capsule > .logo img, .entete.est-defile .capsule > .logo img { height: 26px; }
  .capsule .btn > .wp-block-button__link { padding: 0 10px; font-size: 12.5px; }
}

/* ---------- 01 · Premier écran ---------- */
.tw-hero { background: var(--carbone); }
.tw-hero-grille { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; column-gap: clamp(32px, 4vw, 72px); max-width: 1680px; min-height: calc(100svh - var(--entete-h) - var(--specs-h)); margin: 0 auto; padding: clamp(24px, 4vh, 44px) var(--marge); }
.tw-hero-texte { max-width: 580px; }
.tw-hero .tw-tag { color: var(--gris-1); }
.tw-hero h1 { margin: 0; font-family: var(--titre); font-weight: 700; font-stretch: 75%; font-size: clamp(2.6rem, 1.2rem + 2.6vw, 4rem); line-height: 1; letter-spacing: -.004em; color: var(--blanc-tech); text-wrap: balance; }
.tw-hero h1 em { font-style: normal; color: var(--jaune); }
.tw-hero-accroche { margin: 22px 0 0; font: 600 clamp(1.15rem, 1rem + .5vw, 1.45rem)/1.3 var(--titre); color: var(--blanc-tech); }
.tw-hero-desc { margin: 12px 0 0; max-width: 54ch; font-size: 15.5px; line-height: 1.6; color: var(--gris-1); }
.tw-hero-cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.tw-hero-notes { display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 20px 0 0; padding: 0; list-style: none; font: 500 11px/1.4 var(--mono); letter-spacing: .07em; text-transform: uppercase; color: var(--gris-2); }
.tw-hero-notes li::before { content: "✓"; margin-right: 8px; color: var(--jaune); }
.tw-hero-photo { position: relative; justify-self: end; width: min(100%, calc((100svh - var(--entete-h) - var(--specs-h) - 64px) * 1.3)); aspect-ratio: 1.3; overflow: hidden; border-radius: var(--r-photo); background: var(--acier); isolation: isolate; }
.tw-hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 55% 30%; }
/* Fiche annotée (photo du matériel, section « Qui intervient chez vous », 11/10/2026) */
.tw-fiche { position: relative; width: 100%; aspect-ratio: 1.3; overflow: hidden; border-radius: var(--r-photo); background: var(--acier); isolation: isolate; }
.tw-fiche img { width: 100%; height: 100%; object-fit: cover; object-position: 26% 50%; }
.tw-scan-ligne { position: absolute; inset: 0; z-index: 2; pointer-events: none; opacity: 0; background: linear-gradient(var(--jaune), var(--jaune)) 0 var(--tw-scan) / 100% 1px no-repeat; }
.tw-hero-legende { position: absolute; left: 30px; top: 28px; z-index: 4; display: flex; gap: 10px; align-items: center; padding: 7px 10px; background: rgba(11, 12, 13, .82); font: 500 10.5px/1.2 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--blanc-tech); }
.tw-hero-legende span { color: var(--jaune); }
.tw-reperes { position: absolute; inset: 0; z-index: 4; margin: 0; padding: 0; list-style: none; pointer-events: none; }
.tw-repere { position: absolute; left: calc(var(--x) * 1%); top: calc(var(--y) * 1%); width: 0; height: 0; }
.tw-repere::before { content: ""; position: absolute; left: -7px; top: -7px; width: 14px; height: 14px; border-radius: 50%; border: 1.5px solid var(--jaune); background: radial-gradient(circle, var(--jaune) 0 2.5px, rgba(11, 12, 13, .35) 3px); }
.tw-repere::after { content: ""; position: absolute; right: 8px; top: 0; width: 22px; height: 1px; background: var(--jaune); transform-origin: 100% 50%; }
.tw-repere span { position: absolute; right: 30px; top: -13px; display: block; padding: 6px 10px; border-left: 2px solid var(--jaune); background: rgba(11, 12, 13, .86); font: 500 10.5px/1.2 var(--mono); letter-spacing: .09em; text-transform: uppercase; color: var(--blanc-tech); white-space: nowrap; }
.tw-specs { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); max-width: 1680px; min-height: var(--specs-h); margin: 0 auto; padding: 0 var(--marge); }
.tw-specs > div { padding: 18px 16px 20px 0; border-top: 1px solid var(--filet-sombre); }
.tw-specs > div + div { padding-left: 18px; border-left: 1px solid var(--filet-sombre); }
.tw-specs dt { font: 500 10.5px/1.2 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--gris-2); }
.tw-specs dd { margin: 8px 0 0; font-family: var(--titre); font-weight: 700; font-stretch: 75%; font-size: clamp(1.05rem, .9rem + .35vw, 1.3rem); line-height: 1.15; color: var(--blanc-tech); }

/* Séquence d'ouverture (~1,6 s, sans écran de chargement) : la photo est « scannée » de haut en bas,
   les repères s'allument au passage de la ligne, le texte monte par modules, les spécifications suivent. */
@media (prefers-reduced-motion: no-preference) {
  .tw-hero-photo img { animation: tw-fondu 700ms var(--ease) 60ms both, tw-recul 1600ms var(--ease) 60ms both; }
  .tw-fiche img { animation: tw-devoile var(--t-scan) var(--ease-scan) 80ms both, tw-recul 1600ms var(--ease) 80ms both; }
  /* la fiche attend son arrivée à l'écran (classe tw-pret posée par le script ; sans script, elle s'anime au chargement) */
  .tw-fiche.tw-pret:not(.est-visible) img, .tw-fiche.tw-pret:not(.est-visible) .tw-scan-ligne, .tw-fiche.tw-pret:not(.est-visible) .tw-repere,
  .tw-fiche.tw-pret:not(.est-visible) .tw-repere::after, .tw-fiche.tw-pret:not(.est-visible) .tw-repere span { animation-play-state: paused; }
  .tw-scan-ligne { animation: tw-ligne var(--t-scan) var(--ease-scan) 80ms both; }
  .tw-h-seq { animation: tw-monte var(--t-module) var(--ease) var(--d, 0ms) both; }
  .tw-hero .tw-tag-texte { display: inline-block; animation: tw-frappe 620ms steps(28, end) 140ms both; }
  .tw-repere { animation: tw-pop 260ms var(--ease) calc(80ms + var(--y) * 9.5ms) both; }
  .tw-repere::after { animation: tw-trait 300ms var(--ease) calc(200ms + var(--y) * 9.5ms) both; }
  .tw-repere span { animation: tw-etiquette 360ms var(--ease) calc(320ms + var(--y) * 9.5ms) both; }
  .tw-specs > div { animation: tw-monte 460ms var(--ease) both; }
  .tw-specs > div:nth-child(1) { animation-delay: 700ms; } .tw-specs > div:nth-child(2) { animation-delay: 760ms; } .tw-specs > div:nth-child(3) { animation-delay: 820ms; }
  .tw-specs > div:nth-child(4) { animation-delay: 880ms; } .tw-specs > div:nth-child(5) { animation-delay: 940ms; } .tw-specs > div:nth-child(6) { animation-delay: 1000ms; }
}
@keyframes tw-devoile { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes tw-fondu { from { opacity: 0; } to { opacity: 1; } }
@keyframes tw-recul { from { transform: scale(1.05); } to { transform: none; } }
@keyframes tw-ligne { 0% { --tw-scan: 0%; opacity: 1; } 88% { opacity: 1; } 100% { --tw-scan: 100%; opacity: 0; } }
@keyframes tw-monte { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes tw-frappe { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes tw-pop { from { opacity: 0; transform: scale(.3); } to { opacity: 1; transform: none; } }
@keyframes tw-trait { from { transform: scaleX(0); } to { transform: none; } }
@keyframes tw-etiquette { from { opacity: 0; clip-path: inset(0 0 0 100%); } to { opacity: 1; clip-path: inset(0 0 0 0); } }

/* ---------- Engagements ---------- */
.reassurance-grille { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); counter-reset: eng; border-top: 1px solid var(--filet); }
.reassurance-item { padding: 28px 28px 6px 0; counter-increment: eng; }
.reassurance-item + .reassurance-item { padding-left: 28px; border-left: 1px solid var(--filet); }
.reassurance-item::before { content: counter(eng, decimal-leading-zero) " / 04"; display: block; margin-bottom: 30px; font: 500 11.5px/1 var(--mono); letter-spacing: .1em; color: var(--jaune); }
.reassurance-item p:is(:not([class]), [class="wp-block-paragraph"]) { margin-top: 12px; font-size: 15px; line-height: 1.6; color: var(--encre-2); }
.reassurance .entete-section { border-top: 0; padding-top: 0; }

/* ---------- Formules : fiches produit ---------- */
.formules { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; counter-reset: formule; }
.formule { position: relative; display: flex; flex-direction: column; overflow: hidden; padding-bottom: 26px; border: 1px solid var(--filet); border-radius: var(--r-carte); background: var(--carte); counter-increment: formule; transition: border-color var(--t-micro) var(--ease); }
.formule:hover { border-color: var(--bord-bouton); }
.formule::before { content: "Formule " counter(formule, decimal-leading-zero) " / 03"; display: block; padding: 13px 24px; border-bottom: 1px solid var(--filet); font: 500 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--encre-3); }
.formule > * { margin-left: 24px; margin-right: 24px; }
.formule-etiquette { display: none; }
.formule h3 { margin-top: 26px; font-size: clamp(2.4rem, 1.6rem + 1.8vw, 3.4rem); line-height: .95; text-transform: uppercase; }
.formule-accroche { margin-top: 14px; font-size: 15.5px; line-height: 1.55; color: var(--encre-2); }
.formule-details { margin-top: 24px; margin-bottom: 26px; border-top: 1px solid var(--filet); }
.formule-ligne { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--filet); }
.formule-libelle { padding-top: 3px; font: 500 10.5px/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--encre-3); }
.formule-valeur { font-size: 14.5px; font-weight: 600; line-height: 1.45; color: var(--encre); }
.formule-action { margin-top: auto; }
.formule-action .btn, .formule-action .btn > .wp-block-button__link { width: 100%; }
.formule-action .btn > .wp-block-button__link { white-space: normal; text-align: center; padding: 12px 18px; }
.formule-vedette { --encre: var(--blanc-tech); --encre-2: var(--gris-1); --encre-3: var(--gris-2); --filet: var(--filet-sombre); --bord-bouton: #3A3F45; border-color: var(--carbone); background: var(--carbone); color: var(--blanc-tech); }
.formule-vedette:hover { border-color: var(--jaune); }
.formule-vedette::before { background: var(--jaune); color: var(--carbone); border-bottom-color: var(--jaune); }
.formule-vedette .btn-noir > .wp-block-button__link { background: var(--jaune); color: var(--carbone); }
.formule-badge { position: absolute; top: 8px; right: 0; z-index: 1; padding: 4px 8px; border-radius: var(--r-tag); background: var(--carbone); color: var(--jaune); font: 600 10.5px/1.2 var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.conditions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 40px; border-top: 1px solid var(--filet); }
.condition { padding: 20px 24px 4px 0; }
.condition + .condition { padding-left: 24px; border-left: 1px solid var(--filet); }
.condition h3 { font: 500 11px/1.3 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--encre-3); }
.condition p { margin-top: 8px; font-size: 15px; font-weight: 600; line-height: 1.5; color: var(--encre); }
.formules-bas { margin-top: 44px; }

/* ---------- Signes et inspection de la chambre ---------- */
.signes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; counter-reset: indice; }
.signe { padding: 24px 24px 28px; border: 1px solid var(--filet); border-radius: var(--r-carte); background: var(--carte); counter-increment: indice; }
.signe::before { content: "Indice " counter(indice, decimal-leading-zero); display: flex; align-items: center; gap: 10px; margin-bottom: 28px; font: 500 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--encre-3); }
.signe p:is(:not([class]), [class="wp-block-paragraph"]) { margin-top: 10px; font-size: 15px; line-height: 1.55; color: var(--encre-2); }
.zones { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 72px); align-items: start; margin-top: clamp(64px, 8vw, 112px); }
.zones-illu { position: sticky; top: 84px; }
.zones-illu::before { content: "Inspection · chambre · 6 zones"; display: block; margin-bottom: 12px; font: 500 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--encre-3); }
.zones-dessin { position: relative; aspect-ratio: 1672 / 941; overflow: hidden; border-radius: var(--r-photo); background-color: var(--acier); --c: rgba(255, 255, 255, .78); --l: 18px;
  background-image: linear-gradient(var(--c), var(--c)), linear-gradient(var(--c), var(--c)), linear-gradient(var(--c), var(--c)), linear-gradient(var(--c), var(--c)),
                    linear-gradient(var(--c), var(--c)), linear-gradient(var(--c), var(--c)), linear-gradient(var(--c), var(--c)), linear-gradient(var(--c), var(--c)),
                    url("assets/img/chambre-reperes-1200.jpg");
  background-image: linear-gradient(var(--c), var(--c)), linear-gradient(var(--c), var(--c)), linear-gradient(var(--c), var(--c)), linear-gradient(var(--c), var(--c)),
                    linear-gradient(var(--c), var(--c)), linear-gradient(var(--c), var(--c)), linear-gradient(var(--c), var(--c)), linear-gradient(var(--c), var(--c)),
                    image-set(url("assets/img/chambre-reperes-1200.avif") type("image/avif"), url("assets/img/chambre-reperes-1200.jpg") type("image/jpeg"));
  background-position: 14px 14px, 14px 14px, calc(100% - 14px) 14px, calc(100% - 14px) 14px, 14px calc(100% - 14px), 14px calc(100% - 14px), calc(100% - 14px) calc(100% - 14px), calc(100% - 14px) calc(100% - 14px), center;
  background-size: var(--l) 1px, 1px var(--l), var(--l) 1px, 1px var(--l), var(--l) 1px, 1px var(--l), var(--l) 1px, 1px var(--l), cover;
  background-repeat: no-repeat; }
.repere { position: absolute; z-index: 2; display: grid; place-items: center; width: 32px; height: 32px; margin: 0; transform: translate(-50%, -50%); border: 1px solid rgba(255, 255, 255, .78); border-radius: 4px; background: rgba(11, 12, 13, .66); color: var(--blanc-tech); font: 600 13px/1 var(--mono); cursor: pointer; user-select: none;
  transition: background-color 250ms var(--ease), color 250ms var(--ease), opacity 250ms var(--ease), transform 250ms var(--ease), border-color 250ms var(--ease); }
.repere::before { content: ""; position: absolute; inset: -8px; pointer-events: none; color: rgba(255, 255, 255, .7); transition: color 250ms var(--ease);
  background: linear-gradient(currentColor, currentColor) 50% 0 / 1px 5px no-repeat, linear-gradient(currentColor, currentColor) 50% 100% / 1px 5px no-repeat,
              linear-gradient(currentColor, currentColor) 0 50% / 5px 1px no-repeat, linear-gradient(currentColor, currentColor) 100% 50% / 5px 1px no-repeat; }
.repere:hover { border-color: var(--jaune); }
.zones-dessin:has(.est-actif) .repere:not(.est-actif) { opacity: .5; }
.zones-dessin:has(.est-actif) .repere:not(.est-actif):hover { opacity: 1; }
.repere.est-actif { background: var(--jaune); border-color: var(--jaune); color: var(--carbone); transform: translate(-50%, -50%) scale(1.1); }
.repere.est-actif::before { color: var(--jaune); }
.repere-1 { left: 36%; top: 69%; --y: 69; } .repere-2 { left: 50%; top: 81%; --y: 81; } .repere-3 { left: 66%; top: 36%; --y: 36; }
.repere-4 { left: 96.4%; top: 50%; --y: 50; } .repere-5 { left: 5.5%; top: 62%; --y: 62; } .repere-6 { left: 75%; top: 67%; --y: 67; }
.zones-dessin.sp-scan-pret .repere { opacity: 0; }
.zones-dessin.sp-scan .repere { transition-delay: calc(var(--y) * 18ms), calc(var(--y) * 18ms), calc(var(--y) * 18ms), 0ms, 0ms; }
.zones-dessin.sp-scan::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(var(--jaune), var(--jaune)) top / 100% 1px no-repeat; opacity: 0; animation: tw-balayage 2600ms cubic-bezier(.4, 0, .2, 1) infinite both; }
.zones-dessin.sp-scan.sp-scan-pause::after { animation-play-state: paused; }
@keyframes tw-balayage { 0% { transform: translateY(0); opacity: 0; } 4% { opacity: .75; } 66% { opacity: .75; } 69.2% { transform: translateY(calc(100% - 1px)); opacity: 0; } 100% { transform: translateY(calc(100% - 1px)); opacity: 0; } }
.zones-legende { margin-top: 12px; font: 500 11px/1.4 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--encre-3); }
.zones-texte h3 { font-size: clamp(1.9rem, 1.3rem + 1.4vw, 2.6rem); }
.zones-texte > p { margin-top: 14px; font-size: 16px; line-height: 1.6; color: var(--encre-2); }

/* Inspection de la chambre (11/10/2026, demande SANIPURE « scan plus épais, chaque numéro brille et clignote ») :
   bande de scan lumineuse de 3 px avec halo ; chaque repère clignote en jaune avec un halo, en décalé ;
   le repère choisi reste plein, avec une onde. Aucun clignotement si l'appareil demande moins d'animations. */
.zones-dessin.sp-scan::after { background: linear-gradient(rgba(255, 174, 0, 0), rgba(255, 174, 0, .35) 35%, var(--jaune) 42%, var(--jaune) 58%, rgba(255, 174, 0, .35) 65%, rgba(255, 174, 0, 0)) top / 100% 8px no-repeat; animation-name: tw-balayage-epais; }
@keyframes tw-balayage-epais { 0% { transform: translateY(0); opacity: 0; } 4% { opacity: 1; } 66% { opacity: 1; } 69.2% { transform: translateY(calc(100% - 8px)); opacity: 0; } 100% { transform: translateY(calc(100% - 8px)); opacity: 0; } }
.zones-dessin:has(.est-actif) .repere:not(.est-actif) { opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
  .zones-dessin .repere:not(.est-actif) { animation: tw-balise 1.6s ease-in-out infinite; animation-delay: calc(var(--y) * -23ms); }
  .zones-dessin .repere.est-actif { animation: tw-balise-active 1.6s ease-out infinite; }
}
@keyframes tw-balise {
  0%, 100% { border-color: rgba(255, 255, 255, .78); color: var(--blanc-tech); background-color: rgba(11, 12, 13, .66); box-shadow: 0 0 0 0 rgba(255, 174, 0, 0); }
  50% { border-color: var(--jaune); color: var(--jaune); background-color: rgba(11, 12, 13, .82); box-shadow: 0 0 18px 4px rgba(255, 174, 0, .6); }
}
@keyframes tw-balise-active {
  0% { box-shadow: 0 0 0 0 rgba(255, 174, 0, .75), 0 0 18px 4px rgba(255, 174, 0, .55); }
  100% { box-shadow: 0 0 0 14px rgba(255, 174, 0, 0), 0 0 18px 4px rgba(255, 174, 0, .55); }
}

/* Accordéons (inspection, FAQ) : carrés +/−, 250 ms */
.plis { margin-top: 26px; counter-reset: pli; }
.pli, .question { border-bottom: 1px solid var(--filet); }
.pli:first-child, .question:first-child { border-top: 1px solid var(--filet); }
.pli > summary, .question > summary { position: relative; display: flex; align-items: center; gap: 14px; padding: 16px 44px 16px 0; list-style: none; cursor: pointer; font: 600 16px/1.35 var(--texte); color: var(--encre); transition: color var(--t-micro) var(--ease); }
.pli > summary::-webkit-details-marker, .question > summary::-webkit-details-marker { display: none; }
.plis-numerotes .pli { counter-increment: pli; }
.plis-numerotes .pli > summary::before { content: counter(pli); flex: none; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 4px; border: 1px solid var(--bord-bouton); font: 600 12.5px/1 var(--mono); color: var(--encre-2); transition: background-color 250ms var(--ease), color 250ms var(--ease), border-color 250ms var(--ease); }
.plis-numerotes .pli[open] > summary::before { background: var(--jaune); border-color: var(--jaune); color: var(--carbone); }
.pli > summary::after, .question > summary::after { content: ""; position: absolute; right: 0; top: 50%; width: 28px; height: 28px; margin-top: -14px; border: 1px solid var(--filet); border-radius: 4px;
  background: linear-gradient(currentColor, currentColor) center / 10px 1.5px no-repeat, linear-gradient(currentColor, currentColor) center / 1.5px 10px no-repeat;
  transition: transform 250ms var(--ease), background-size 250ms var(--ease), border-color 250ms var(--ease); }
.pli[open] > summary::after, .question[open] > summary::after { transform: rotate(180deg); background-size: 10px 1.5px, 1.5px 0; border-color: var(--jaune); }
.pli > summary:hover::after, .question > summary:hover::after { border-color: var(--jaune); }
.pli-contenu, .reponse { padding: 0 44px 20px 0; font-size: 15.5px; line-height: 1.6; color: var(--encre-2); }
.plis-numerotes .pli-contenu { padding-left: 42px; }
.reponse p + p { margin-top: 10px; }
.reponse a, .pli-contenu a { color: var(--encre); }
@media (prefers-reduced-motion: no-preference) {
  .pli[open] > :not(summary), .question[open] > :not(summary) { animation: tw-pli 250ms var(--ease) both; }
}
@keyframes tw-pli { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.encart-piqures { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(28px, 4vw, 64px); margin-top: clamp(64px, 8vw, 104px); padding: clamp(28px, 4vw, 52px); border: 1px solid var(--filet); border-radius: var(--r-carte); background: var(--carte); }
.encart-titre h3 { font-size: clamp(1.9rem, 1.3rem + 1.4vw, 2.6rem); }
.encart-texte > p:is(:not([class]), [class="wp-block-paragraph"]) { margin-top: 14px; font-size: 16px; line-height: 1.6; color: var(--encre-2); }
.signes-cta { margin-top: 28px; }
.reflexes ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--filet); }
.reflexes li { position: relative; padding: 12px 0 12px 28px; border-bottom: 1px solid var(--filet); font-size: 15px; line-height: 1.5; color: var(--encre-2); }
.reflexes li::before { content: "✕"; position: absolute; left: 2px; top: 12px; font: 600 12px/1.5 var(--mono); color: var(--jaune); }

/* ---------- Bandeau signal « jusqu'à 180 °C » ---------- */
.tw-signal { padding: clamp(64px, 8vw, 120px) 0; background: var(--jaune); color: var(--carbone); overflow: hidden; }
.tw-signal-grille { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-areas: "tag tag" "valeur texte" "jauge jauge"; column-gap: clamp(32px, 5vw, 88px); align-items: end; max-width: 1680px; margin: 0 auto; padding: 0 var(--marge); }
.tw-signal-tag { grid-area: tag; color: var(--carbone); }
.tw-signal-tag .tw-tag-code { background: var(--carbone); color: var(--jaune); }
.tw-signal-valeur { grid-area: valeur; margin: 0; font-family: var(--titre); font-weight: 700; font-stretch: 75%; font-size: clamp(6rem, 2rem + 13vw, 15rem); line-height: .82; letter-spacing: -.02em; white-space: nowrap; }
.tw-signal-pre { display: block; margin-bottom: 14px; font: 600 13px/1 var(--mono); letter-spacing: .14em; text-transform: uppercase; }
.tw-signal-texte { grid-area: texte; padding-bottom: 10px; }
.tw-signal-texte p { margin: 0; font-size: clamp(16.5px, 15px + .4vw, 19px); font-weight: 600; line-height: 1.5; }
.tw-signal-limite { margin-top: 16px !important; padding-top: 14px; border-top: 1px solid rgba(11, 12, 13, .3); font-size: 14.5px !important; font-weight: 500 !important; }
.tw-jauge { grid-area: jauge; margin-top: clamp(40px, 5vw, 64px); }
.tw-jauge-barre { position: relative; height: 10px; background: rgba(11, 12, 13, .14); }
.tw-jauge-barre span { position: absolute; inset: 0; background: var(--carbone); transform-origin: 0 50%; }
.tw-jauge-barre::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 7px; border-right: 1px solid var(--carbone); background: repeating-linear-gradient(90deg, var(--carbone) 0 1px, transparent 1px calc(100% / 36)); }
.tw-jauge-echelle { display: flex; justify-content: space-between; margin: 16px 0 0; padding: 0; list-style: none; font: 500 11px/1 var(--mono); letter-spacing: .06em; }
@media (prefers-reduced-motion: no-preference) {
  .tw-signal.tw-pret .tw-jauge-barre span { transform: scaleX(0); transition: transform 1200ms var(--ease) 200ms; }
  .tw-signal.tw-pret.est-visible .tw-jauge-barre span { transform: none; }
}

/* ---------- Méthode : sélecteur de mode + protocole ---------- */
.ms-onglets { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 32px; border-top: 1px solid var(--filet); }
.ms-onglet { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "num nom" "num sous"; column-gap: 14px; align-items: baseline; padding: 20px 18px 18px 0; border: 0; background: none; color: var(--encre-2); text-align: left; font: inherit; cursor: pointer; }
.ms-onglet + .ms-onglet { padding-left: 18px; border-left: 1px solid var(--filet); }
.ms-onglet::before { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 2px; background: var(--jaune); transform: scaleX(0); transform-origin: 0 50%; transition: transform 300ms var(--ease); }
.ms-onglet[aria-selected="true"]::before { transform: none; }
.ms-num { grid-area: num; font: 500 12px/1 var(--mono); color: var(--encre-3); }
.ms-nom { grid-area: nom; font-family: var(--titre); font-weight: 700; font-stretch: 75%; font-size: clamp(1.3rem, 1rem + .8vw, 1.75rem); line-height: 1.05; color: var(--encre-2); transition: color var(--t-micro) var(--ease); }
.ms-sous { grid-area: sous; margin-top: 6px; font: 500 10.5px/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--encre-3); }
.ms-onglet[aria-selected="true"] .ms-num { color: var(--jaune); }
.ms-onglet[aria-selected="true"] .ms-nom, .ms-onglet:hover .ms-nom { color: var(--encre); }
.ms-panneau { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(28px, 4vw, 64px); align-items: start; outline: none; }
.methodes-selecteur:not(.ms-pret) .ms-panneau + .ms-panneau { margin-top: 56px; }
.ms-photo { position: relative; aspect-ratio: 16 / 10; overflow: hidden; border-radius: var(--r-photo); background: var(--acier); }
.ms-photo img { width: 100%; height: 100%; object-fit: cover; }
.ms-etiquette { font: 500 11px/1.4 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--jaune); }
.ms-texte h3 { margin-top: 12px; font-size: clamp(1.9rem, 1.2rem + 1.6vw, 2.8rem); }
.ms-description { margin-top: 14px; font-size: 16px; line-height: 1.6; color: var(--encre-2); }
.ms-fiche { margin: 24px 0 0; border-top: 1px solid var(--filet); }
.ms-fiche > div { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--filet); }
.ms-fiche dt { padding-top: 3px; font: 500 10.5px/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--encre-3); }
.ms-fiche dd { margin: 0; font-size: 14.5px; font-weight: 600; line-height: 1.45; color: var(--encre); }
.ms-conditions-titre { margin-top: 24px !important; font: 500 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--encre-3); }
.ms-conditions { margin: 10px 0 0; padding: 0; list-style: none; }
.ms-conditions li { position: relative; padding: 6px 0 6px 22px; font-size: 14.5px; line-height: 1.5; color: var(--encre-2); }
.ms-conditions li::before { content: "—"; position: absolute; left: 0; top: 6px; font-family: var(--mono); color: var(--jaune); }
.etapes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 28px; margin-top: clamp(72px, 9vw, 120px); }
.etape { position: relative; padding-top: 30px; border-top: 1px solid var(--filet); }
.etape::before { content: ""; position: absolute; left: 0; right: -28px; top: -1px; height: 2px; background: var(--jaune); transform-origin: 0 50%; }
.etape:last-child::before { right: 0; }
.etape::after { content: ""; position: absolute; left: 0; top: -5px; width: 9px; height: 9px; background: var(--jaune); }
.etape-tete { margin-bottom: 16px; }
.etape-num { font: 500 11.5px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--jaune); }
.etape-num::before { content: "Étape "; }
.etape-num::after { content: " / 04"; color: var(--encre-3); }
.etape h3 { font-size: clamp(1.35rem, 1.1rem + .6vw, 1.7rem); }
.etape p:is(:not([class]), [class="wp-block-paragraph"]) { margin-top: 10px; font-size: 15px; line-height: 1.6; color: var(--encre-2); }
.precaution { margin-top: 16px !important; padding-top: 12px; border-top: 1px solid var(--filet); font-size: 13.5px; line-height: 1.5; color: var(--encre-3); }
.precaution::before { content: "À savoir"; display: block; margin-bottom: 6px; font: 500 10.5px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--encre-2); }
.methode-bas { margin-top: 56px; }
@media (prefers-reduced-motion: no-preference) {
  .etapes.sp-protocole .etape::before { transform: scaleX(0); transition: transform var(--t-trace) var(--ease); }
  .etapes.sp-protocole .etape.sp-active::before { transform: none; }
  .etapes.sp-protocole .etape::after { background: var(--filet); transition: background-color 200ms var(--ease); }
  .etapes.sp-protocole .etape.sp-active::after { background: var(--jaune); }
  .etapes.sp-protocole .etape > * { opacity: .35; transition: opacity 450ms var(--ease); }
  .etapes.sp-protocole .etape.sp-active > * { opacity: 1; }
}

/* ---------- Vidéo ---------- */
.video-presentation { padding-top: clamp(64px, 7vw, 110px); }
.video-lecteur { margin: 0; }
.video-lecteur .wp-block-embed__wrapper { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--r-photo); background: var(--acier); }
.video-lecteur iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- Lieux ---------- */
.lieux-cartes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; counter-reset: lieu; }
.lieu-carte { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--filet); border-radius: var(--r-carte); background: var(--carte); counter-increment: lieu; }
.lieu-photo { position: relative; aspect-ratio: 4 / 3.3; overflow: hidden; }
.lieu-photo img { width: 100%; height: 100% !important; object-fit: cover; transition: transform 1200ms var(--ease); }
.lieu-carte:hover .lieu-photo img { transform: scale(1.03); }
.lieu-photo::before { content: "Lieu " counter(lieu, decimal-leading-zero); position: absolute; left: 14px; top: 14px; z-index: 2; padding: 6px 9px; border-left: 2px solid var(--jaune); background: rgba(11, 12, 13, .84); font: 500 10.5px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--blanc-tech); }
.lieu-texte { padding: 24px 24px 26px; }
.lieu-texte p:is(:not([class]), [class="wp-block-paragraph"]) { margin-top: 10px; font-size: 15px; line-height: 1.6; color: var(--encre-2); }
.note-illustration { margin-top: 20px !important; font: 500 10.5px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--encre-3); }

/* ---------- Confiance ---------- */
.avis-source { display: flex; align-items: center; gap: 12px; font: 500 12px/1 var(--mono); letter-spacing: .06em; color: var(--encre-2); }
.avis-google { width: 30px !important; height: 30px !important; } /* « G » de Google (11/10/2026) */
.avis-google-note::before { content: "★★★★★"; margin-right: 10px; color: var(--jaune); letter-spacing: .08em; font-size: 15px; vertical-align: -1px; }
.avis-grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.avis-carte { display: flex; flex-direction: column; justify-content: space-between; gap: 28px; padding: 26px 26px 24px; border: 1px solid var(--filet); border-radius: var(--r-carte); background: var(--carte); }
.avis-carte::before { content: "“"; display: block; height: 30px; margin-bottom: -16px; font: 700 64px/1 var(--titre); color: var(--jaune); }
.avis-texte { font-size: 16.5px; font-weight: 500; line-height: 1.6; color: var(--encre); }
.avis-auteur { display: flex; align-items: center; gap: 12px; padding-top: 18px; border-top: 1px solid var(--filet); }
.avis-initiale { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 4px; background: var(--carbone); color: var(--jaune); font: 600 15px/1 var(--mono); }
.avis-nom { font-weight: 700; font-size: 15px; color: var(--encre); }
.avis-details { font: 500 11px/1.4 var(--mono); letter-spacing: .04em; color: var(--encre-3); }
.avis-details a { color: var(--encre-3); }
.avis-note { max-width: 720px; margin-top: 26px !important; font-size: 13.5px; line-height: 1.55; color: var(--encre-3); }
.avis-note a { color: var(--encre); }
.avis-cta { margin-top: 26px; }
.media-carte { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); align-items: center; overflow: hidden; border-radius: var(--r-carte); background: var(--carbone); color: var(--blanc-tech); }
.media-photo { height: 100%; }
.media-photo img { width: 100%; height: 100% !important; object-fit: cover; }
.media-texte { padding: clamp(28px, 4vw, 56px); }
.media-libelle { font-family: var(--titre); font-weight: 700; font-stretch: 75%; font-size: clamp(2rem, 1.4rem + 1.6vw, 3rem); line-height: 1; color: var(--blanc-tech); }
.media-libelle::before { content: "Média"; display: block; margin-bottom: 14px; font: 500 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--jaune); }
.media-texte p:is(:not([class]), [class="wp-block-paragraph"]) { margin-top: 14px; font-size: 16px; line-height: 1.6; color: var(--gris-1); }
@media (min-width: 900px) { .entreprise:has(.tw-fiche) { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }
.entreprise { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: clamp(32px, 6vw, 88px); align-items: center; }
.photo-equipe { position: relative; aspect-ratio: 4 / 4.4; overflow: hidden; border-radius: var(--r-photo); }
.photo-equipe img { width: 100%; height: 100% !important; object-fit: cover; object-position: 50% 80%; }
.entreprise-texte .titre-section { margin-bottom: 22px; }
.entreprise-texte > p:is(:not([class]), [class="wp-block-paragraph"]) { margin-top: 14px; font-size: 16.5px; line-height: 1.6; color: var(--encre-2); }
.chiffres { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 32px; border-top: 1px solid var(--filet); }
.chiffre { padding: 18px 18px 18px 0; }
.chiffre + .chiffre { padding-left: 18px; border-left: 1px solid var(--filet); }
.chiffre-texte { display: flex; flex-direction: column-reverse; gap: 8px; }
.chiffre-valeur { font-family: var(--titre); font-weight: 700; font-stretch: 75%; font-size: clamp(2rem, 1.5rem + 1.2vw, 2.7rem); line-height: 1; color: var(--encre); }
.chiffre-libelle { font: 500 10.5px/1.3 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--encre-3); }
.verifiable .conteneur { counter-reset: doc; }
.verifiable-titre { margin: 0 0 clamp(44px, 6vw, 72px) !important; padding-top: 22px; border-top: 1px solid var(--filet); }
.preuves { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.preuve { display: flex; flex-direction: column; padding: 22px 24px 24px; border: 1px solid var(--filet); border-radius: var(--r-carte); background: var(--carte); counter-increment: doc; }
.preuve::before { content: "Doc. " counter(doc, decimal-leading-zero); display: block; margin-bottom: 26px; padding-bottom: 12px; border-bottom: 1px dashed var(--filet); font: 500 10.5px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--encre-3); }
.preuve h3 { font-size: clamp(1.35rem, 1.1rem + .5vw, 1.6rem); }
.preuve p:is(:not([class]), [class="wp-block-paragraph"]) { margin-top: 10px; font-size: 14.5px; line-height: 1.55; color: var(--encre-2); }
.preuve a { color: var(--encre); }
.statut-ok { align-self: flex-start; margin-top: auto !important; padding: 6px 9px; border: 1px solid var(--encre); border-radius: var(--r-tag); font: 600 10.5px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--encre); }
.preuve .statut-ok { margin-top: 18px !important; }
.statut-ok::before { content: "✓ "; }

/* ---------- Zone d'intervention ---------- */
.zone { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: clamp(32px, 6vw, 88px); align-items: start; }
.zone-visuel { position: sticky; top: 84px; }
.zone-photo { position: relative; aspect-ratio: 4 / 4.6; overflow: hidden; border-radius: var(--r-photo); }
.zone-photo img { width: 100%; height: 100% !important; object-fit: cover; }
.zone-visuel::after { content: "45°11′ N · 5°43′ E — Grenoble · Isère (38)"; position: absolute; left: 30px; top: 28px; z-index: 4; padding: 6px 9px; border-left: 2px solid var(--jaune); background: rgba(11, 12, 13, .84); font: 500 10.5px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--blanc-tech); }
.carte-adresse { position: absolute; left: 30px; bottom: 28px; z-index: 4; padding: 12px 16px; border-radius: var(--r-bouton); background: rgba(11, 12, 13, .86); color: var(--blanc-tech); }
.carte-adresse-nom { font: 700 17px/1.1 var(--titre); font-stretch: 75%; }
.carte-adresse .adresse { margin-top: 4px; font: 500 10.5px/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--gris-1); }
.zone-texte .titre-section { margin-bottom: 22px; }
.zone-texte > p:is(:not([class]), [class="wp-block-paragraph"]) { font-size: 16.5px; line-height: 1.6; color: var(--encre-2); }
.communes { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 0; padding: 0; list-style: none; }
.communes li { padding: 8px 11px; border: 1px solid var(--bord-bouton); border-radius: var(--r-tag); font: 500 11.5px/1 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--encre); }
.communes-note { margin-top: 14px; font-size: 14.5px; line-height: 1.55; color: var(--encre-2); }
.communes-note strong { color: var(--encre); }
.zone-texte h3 { margin-top: 40px; }
.deplacements { margin: 18px 0 0; padding: 0; list-style: none; counter-reset: dep; border-top: 1px solid var(--filet); }
.deplacements li { position: relative; padding: 14px 0 14px 46px; border-bottom: 1px solid var(--filet); font-size: 15px; line-height: 1.55; color: var(--encre-2); counter-increment: dep; }
.deplacements li::before { content: counter(dep, decimal-leading-zero); position: absolute; left: 0; top: 13px; display: grid; place-items: center; width: 30px; height: 26px; border-radius: var(--r-tag); background: var(--jaune); color: var(--carbone); font: 600 11.5px/1 var(--mono); }
.zone-delai { display: inline-flex; margin-top: 24px; padding: 12px 14px; border: 1px solid var(--jaune); border-radius: var(--r-bouton); font: 500 12px/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--jaune); }

/* Zone d'intervention : photo de Grenoble en arrière-plan de la section, sans encadré (11/10/2026, demande SANIPURE) */
#zone { position: relative; isolation: isolate; overflow: hidden; }
#zone .zone { display: block; }
#zone .zone-visuel { position: absolute; inset: 0; z-index: -1; top: 0; }
#zone .zone-photo { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; border-radius: 0; }
#zone .zone-photo img { width: 100%; height: 100% !important; object-fit: cover; object-position: 50% 50%; }
#zone .zone-photo::before, #zone .carte-adresse { display: none; }
#zone .zone-visuel::after { content: ""; inset: 0; padding: 0; border: 0; background: linear-gradient(90deg, rgba(11, 12, 13, .95) 0%, rgba(11, 12, 13, .86) 48%, rgba(11, 12, 13, .5) 100%); }
#zone .zone-texte { position: relative; max-width: 640px; }
@media (max-width: 899px) {
  #zone .zone-visuel { position: absolute; }
  #zone .zone-visuel::after { inset: 0; background: rgba(11, 12, 13, .84); }
}

/* ---------- Autres nuisibles : piste ---------- */
.solutions-tete { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: clamp(36px, 5vw, 56px); padding-top: 22px; border-top: 1px solid var(--filet); }
.solutions-tete .entete-section { margin: 0; padding: 0; border: 0; }
.solutions-tete .entete-section .chapeau { margin-top: 18px; max-width: 640px; }
.solutions-lien { margin: 0 0 6px; flex: none; }
.solutions-nav { display: flex; gap: 8px; flex: none; margin-bottom: 2px; }
.solutions-nav button { width: 44px; height: 44px; border: 1px solid var(--bord-bouton); border-radius: var(--r-bouton); background: transparent; color: var(--encre); cursor: pointer; transition: border-color var(--t-micro) var(--ease), opacity var(--t-micro) var(--ease); }
.solutions-nav button::before { content: "←"; font: 500 16px/1 var(--mono); }
.solutions-nav .solutions-suiv::before { content: "→"; }
.solutions-nav button:hover:not(:disabled) { border-color: var(--jaune); }
.solutions-nav button:disabled { opacity: .35; cursor: default; }
@media (pointer: coarse) { .solutions-nav { display: none; } }
.solutions-piste { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(250px, calc((100% - 3 * 16px) / 4)); gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px; }
.solutions-piste::-webkit-scrollbar { display: none; }
.solution-carte { position: relative; scroll-snap-align: start; overflow: hidden; border: 1px solid var(--filet); border-radius: var(--r-carte); background: var(--carte); }
.solution-photo { aspect-ratio: 4 / 3; overflow: hidden; }
.solution-photo img { width: 100%; height: 100% !important; object-fit: cover; transition: transform 1200ms var(--ease); }
.solution-carte:hover .solution-photo img { transform: scale(1.03); }
.solution-texte { padding: 20px 22px 22px; }
.solution-texte h3 a { text-decoration: none; }
.solution-texte h3 a::after { content: ""; position: absolute; inset: 0; }
.solution-texte p:is(:not([class]), [class="wp-block-paragraph"]) { margin-top: 8px; font-size: 14.5px; line-height: 1.55; color: var(--encre-2); }
.solution-carte:has(a:focus-visible) { outline: 2px solid var(--jaune); outline-offset: 3px; }
.solution-texte .indice-fleche { margin-top: 14px; }

/* ---------- FAQ ---------- */
.faq-liste { counter-reset: q; }
.question { counter-increment: q; }
.question > summary { padding: 20px 46px 20px 0; font: 600 clamp(16px, 15px + .3vw, 18.5px)/1.4 var(--texte); }
.question > summary::before { content: "Q" counter(q, decimal-leading-zero); flex: none; display: inline-flex; align-items: center; height: 22px; padding: 0 6px; border: 1px solid var(--filet); border-radius: var(--r-tag); font: 500 10.5px/1 var(--mono); letter-spacing: .06em; color: var(--encre-3); transition: background-color 250ms var(--ease), color 250ms var(--ease), border-color 250ms var(--ease); }
.question[open] > summary::before { background: var(--jaune); border-color: var(--jaune); color: var(--carbone); }
.reponse { padding-left: 58px; font-size: 16px; }
.faq-bas { margin-top: 32px; }

/* ---------- Guides ---------- */
.guides-tete { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: clamp(36px, 5vw, 56px); padding-top: 22px; border-top: 1px solid var(--filet); }
.guides-tete .entete-section { margin: 0; padding: 0; border: 0; }
.guides { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.guide { position: relative; display: flex; flex-direction: column; overflow: hidden; padding-bottom: 24px; border: 1px solid var(--filet); border-radius: var(--r-carte); background: var(--carte); }
.guide-image { margin: 0 0 20px; aspect-ratio: 16 / 10; overflow: hidden; }
.guide-image img { width: 100%; height: 100% !important; object-fit: cover; transition: transform 1200ms var(--ease); }
.guide:hover .guide-image img { transform: scale(1.03); }
.guide > :not(figure) { margin-left: 24px !important; margin-right: 24px !important; }
.etiquettes { display: flex; gap: 6px; margin: 0 0 12px; padding: 0; list-style: none; }
.etiquettes li { padding: 5px 8px; border: 1px solid var(--bord-bouton); border-radius: var(--r-tag); font: 500 10.5px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--encre-2); }
.etiquettes li:first-child { border-color: var(--jaune); background: var(--jaune); color: var(--carbone); }
.guide h3 a { text-decoration: none; }
.guide h3 a::after { content: ""; position: absolute; inset: 0; }
.guide p:is(:not([class]), [class="wp-block-paragraph"]) { margin-top: 10px; font-size: 14.5px; line-height: 1.55; color: var(--encre-2); }
.guide .indice-fleche { margin-top: auto; padding-top: 16px; }

/* ---------- Devis : console de configuration en 3 étapes ---------- */
.contact-epure { max-width: 880px; margin: 0 auto; }
.contact-formulaire { overflow: hidden; border: 1px solid var(--filet); border-radius: 12px; background: var(--graphite); }
.contact-formulaire::before { content: "Configurateur de devis · 3 étapes · proposition par e-mail"; display: block; padding: 14px 24px; border-bottom: 1px solid var(--filet); font: 500 10.5px/1.3 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--gris-2); }
.formulaire-sanipure { padding: clamp(22px, 4vw, 40px); }
.demande { margin: 0; }
.demande-progression { display: grid; grid-template-columns: 40px minmax(0, 1fr); grid-template-areas: "retour barre" "retour compteur"; gap: 10px 14px; align-items: center; margin-bottom: 30px; }
.demande-retour { grid-area: retour; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 1px solid var(--filet); border-radius: var(--r-bouton); background: transparent; color: var(--blanc-tech); cursor: pointer; transition: border-color var(--t-micro) var(--ease); }
.demande-retour::before { content: "←"; font: 500 16px/1 var(--mono); }
.demande-retour:hover { border-color: var(--jaune); }
.demande-retour[hidden] { display: inline-flex !important; visibility: hidden; }
.demande-barre { grid-area: barre; display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin: 0; padding: 0; list-style: none; }
.demande-barre li { position: relative; height: 4px; overflow: hidden; background: var(--acier); }
.demande-barre li span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.demande-barre li::after { content: ""; position: absolute; inset: 0; width: 0; background: var(--blanc-tech); transition: width 350ms var(--ease); }
.demande-barre li.est-faite::after, .demande-barre li.est-active::after { width: 100%; }
.demande-barre li.est-active::after { background: var(--jaune); }
.demande-compteur { grid-area: compteur; font: 500 11px/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--gris-2); }
.demande-compteur b { margin-left: 6px; font-weight: 600; color: var(--blanc-tech); }
.demande.est-pret .demande-etape:not(.est-active) { display: none; }
.demande:not(.est-pret) .demande-etape + .demande-etape { margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--filet); }
.demande-question { margin: 0 0 6px; font-family: var(--titre); font-weight: 700; font-stretch: 75%; font-size: clamp(1.7rem, 1.3rem + 1vw, 2.3rem); line-height: 1.05; color: var(--blanc-tech); outline: none; }
.demande-question .demande-aide { display: block; margin-top: 8px; font: 400 15px/1.5 var(--texte); color: var(--gris-1); }
.demande-groupe { min-width: 0; margin: 28px 0 0; padding: 0; border: 0; }
.demande-question-petite { margin-bottom: 14px; padding: 0; font: 600 16px/1.35 var(--texte); }
.demande-question-petite .demande-aide { display: inline; margin: 0 0 0 6px; font-size: 13.5px; }
.demande-facultatif { font-weight: 400; color: var(--gris-2); }
.demande-options { display: flex; flex-wrap: wrap; gap: 8px; }
.demande-choix { position: relative; cursor: pointer; }
.demande-choix input { position: absolute; inset: 0; margin: 0; opacity: 0; cursor: pointer; }
.demande-choix span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid #343940; border-radius: var(--r-bouton); background: var(--carbone); font-size: 15px; font-weight: 500; color: var(--blanc-tech);
  transition: background-color 200ms var(--ease), border-color 200ms var(--ease), color 200ms var(--ease); }
.demande-choix:hover span { border-color: var(--gris-2); }
.demande-choix input:checked + span { background: var(--jaune); border-color: var(--jaune); color: var(--carbone); font-weight: 700; }
.demande-choix input:focus-visible + span { outline: 2px solid var(--jaune); outline-offset: 2px; }
.demande-champ { margin-top: 24px; }
.demande-champ label { display: block; margin-bottom: 8px; font-size: 14.5px; font-weight: 600; color: var(--blanc-tech); }
.demande-champ input, .demande-champ textarea { width: 100%; min-height: 52px; padding: 0 16px; border: 1px solid #343940; border-radius: var(--r-bouton); background: var(--carbone); color: var(--blanc-tech); font: 400 16px/1.4 var(--texte); outline: none; transition: border-color 200ms var(--ease); }
.demande-champ textarea { min-height: 120px; padding: 14px 16px; resize: vertical; }
.demande-champ input::placeholder, .demande-champ textarea::placeholder { color: #5E646B; }
.demande-champ input:focus, .demande-champ textarea:focus { border-color: var(--jaune); }
.demande-champ input[aria-invalid="true"] { border-color: #FF6961; }
.demande-aide-champ { margin-top: 8px !important; font-size: 13.5px; color: var(--gris-2); }
.demande-champ-chambres-nb, .demande-champ-depuis-nb { max-width: 300px; }
.demande-erreur { margin-top: 8px !important; font-size: 13.5px; color: #FF8A80; }
.demande-erreur:empty { display: none; }
.demande-ligne { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.demande-resume, .demande-offre { margin: 14px 0 0 !important; font-size: 14.5px; color: var(--gris-1); }
.demande-resume strong, .demande-offre strong { color: var(--blanc-tech); }
.demande-modifier { margin-left: 8px; padding: 0; border: 0; background: none; color: var(--blanc-tech); font: 600 14px/1 var(--texte); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.demande-piege { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.demande-echec { display: none; margin: 24px 0 0 !important; padding: 14px 18px; border-left: 3px solid #FF6961; border-radius: var(--r-tag); background: rgba(255, 105, 97, .1); font-size: 14.5px; line-height: 1.5; color: #FFB4AB; }
.demande.est-en-echec .demande-echec { display: block; }
.demande-echec a { color: inherit; font-weight: 700; }
.demande-navigation { margin-top: 32px; }
.demande-bouton { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; min-height: 54px; margin-top: 28px; padding: 0 24px; border: 0; border-radius: var(--r-bouton); background: var(--jaune); color: var(--carbone); font: 700 16px/1 var(--texte); cursor: pointer; outline: 2px solid transparent; outline-offset: 2px; transition: outline-color var(--t-micro) var(--ease), transform var(--t-micro) var(--ease); }
.demande-bouton::after { content: "→"; font: 500 16px/1 var(--mono); }
.demande-navigation .demande-bouton { margin-top: 0; }
.demande-bouton:hover { outline-color: var(--jaune); }
.demande-bouton:active { transform: translateY(1px); }
.demande-bouton:focus-visible { outline-color: var(--blanc-tech); }
.demande-bouton[disabled] { opacity: .6; cursor: progress; }
.demande-merci { display: none; padding: 24px 0; text-align: center; outline: none; }
.demande-merci:target, .demande-merci.est-visible { display: block; }
.formulaire-sanipure:has(.demande-merci:target) .demande, .formulaire-sanipure.est-envoye .demande { display: none; }
.demande-merci-titre { margin-bottom: 10px !important; font: 700 clamp(1.8rem, 1.4rem + 1vw, 2.4rem)/1.05 var(--titre); font-stretch: 75%; color: var(--blanc-tech); }
.demande-merci-titre::before { content: "✓"; display: grid; place-items: center; width: 56px; height: 56px; margin: 0 auto 20px; border-radius: var(--r-bouton); background: var(--jaune); color: var(--carbone); font: 600 24px/1 var(--mono); }
.demande-merci-erreur .demande-merci-titre::before { content: "!"; background: rgba(255, 105, 97, .16); color: #FF8A80; }
.demande-merci p:is(:not([class]), [class="wp-block-paragraph"]) { max-width: 440px; margin: 0 auto !important; font-size: 16px; line-height: 1.6; color: var(--gris-1); }
.demande-merci a { color: var(--blanc-tech); font-weight: 600; }
.contact-ensuite { margin-top: 26px !important; font-size: 15px; line-height: 1.55; color: var(--encre-2); }
.contact-garanties { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 0; padding: 0; list-style: none; }
.contact-garanties li { padding: 8px 12px; border: 1px solid var(--filet); border-radius: var(--r-tag); font: 500 11px/1.3 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--encre); }
.contact-garanties em { margin-right: 8px; font-style: normal; color: var(--jaune); letter-spacing: .05em; }
.formulaire-rgpd { margin-top: 18px !important; font-size: 12.5px; line-height: 1.5; color: var(--encre-3); }
.formulaire-rgpd a { color: var(--encre-2); }

/* ---------- Formulaire « type application » (11/10/2026, demande SANIPURE « plus sexy et type application ») ----------
   Carte arrondie, étapes nommées sous la barre de progression, choix en tuiles avec pastille de sélection,
   champs pleins arrondis, bouton principal large et collant en bas de l'écran sur les longues étapes. */
.contact-formulaire { border: 1px solid #23272B; border-radius: 24px; background: #131518; overflow: visible; }
.contact-formulaire::before { display: none; }
.formulaire-sanipure { padding: clamp(20px, 4vw, 44px); }
.demande-progression { grid-template-columns: 40px minmax(0, 1fr); grid-template-areas: "retour barre"; gap: 14px; margin-bottom: 34px; }
.demande-retour { width: 40px; height: 40px; border: 0; border-radius: 50%; background: #1E2125; }
.demande-retour:hover { background: #262A2F; }
.demande-barre { gap: 10px; }
.demande-barre li { height: auto; padding-top: 14px; overflow: visible; background: none; }
.demande-barre li::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; border-radius: 99px; background: #262A2E; }
.demande-barre li::after { inset: 0 auto auto 0; height: 4px; border-radius: 99px; }
.demande-barre li span { position: static; display: block; width: auto; height: auto; overflow: visible; clip: auto; font: 600 12.5px/1.2 var(--texte); color: var(--gris-2); transition: color 250ms var(--ease); }
.demande-barre li.est-active span { color: var(--blanc-tech); }
.demande-barre li.est-faite span { color: var(--gris-1); }
.demande-compteur { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.demande-question { font-stretch: 100%; font-size: clamp(1.55rem, 1.25rem + .9vw, 2.05rem); line-height: 1.15; letter-spacing: -.015em; }
.demande-question .demande-aide { margin-top: 10px; font-size: 15.5px; }
.demande-groupe { margin-top: 30px; }
.demande-question-petite { margin-bottom: 12px; font-size: 15.5px; font-weight: 700; letter-spacing: -.005em; }
.demande-options { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; }
.demande-choix { display: block; }
.demande-choix span { display: flex; justify-content: space-between; gap: 12px; width: 100%; min-height: 58px; padding: 10px 14px 10px 18px; border: 1.5px solid transparent; border-radius: 16px; background: #1B1E22; font-size: 15.5px; font-weight: 600; line-height: 1.25; color: var(--blanc-tech);
  transition: background-color 200ms var(--ease), border-color 200ms var(--ease), transform 150ms var(--ease); }
.demande-choix span::after { content: ""; flex: none; width: 22px; height: 22px; border: 1.5px solid #4A4F56; border-radius: 50%; background: transparent center / 14px no-repeat; transition: background-color 200ms var(--ease), border-color 200ms var(--ease); }
.demande-choix input[type="checkbox"] + span::after { border-radius: 7px; }
.demande-choix:hover span { border-color: #3A3F45; }
.demande-choix:active span { transform: scale(.985); }
.demande-choix input:checked + span { border-color: var(--jaune); background: rgba(255, 174, 0, .09); color: var(--blanc-tech); font-weight: 700; }
.demande-choix input:checked + span::after { border-color: var(--jaune); background-color: var(--jaune);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7' fill='none' stroke='%230B0C0D' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.demande-choix input:focus-visible + span { outline: 2px solid var(--jaune); outline-offset: 2px; }
.demande-options-compactes { display: flex; flex-wrap: wrap; }
.demande-options-compactes .demande-choix span { justify-content: center; min-width: 64px; min-height: 52px; padding: 0 18px; text-align: center; white-space: nowrap; }
.demande-options-compactes .demande-choix span::after { display: none; }
.demande-options-compactes .demande-choix input:checked + span { background: var(--jaune); color: var(--carbone); }
.demande-champ { margin-top: 26px; }
.demande-champ label { font-size: 15px; font-weight: 700; }
.demande-champ input, .demande-champ textarea { min-height: 58px; padding: 0 18px; border: 1.5px solid transparent; border-radius: 16px; background: #1B1E22; font-size: 16.5px; transition: border-color 200ms var(--ease), background-color 200ms var(--ease); }
.demande-champ textarea { min-height: 130px; padding: 16px 18px; }
.demande-champ input:hover, .demande-champ textarea:hover { border-color: #3A3F45; }
.demande-champ input:focus, .demande-champ textarea:focus { border-color: var(--jaune); background: #101214; }
.demande-champ input::placeholder, .demande-champ textarea::placeholder { color: #6A7078; }
.demande-champ input[aria-invalid="true"] { border-color: #FF6961; background: rgba(255, 105, 97, .06); }
.demande-resume:not([hidden]), .demande-offre:not([hidden]) { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; padding: 12px 16px; border-radius: 14px; background: #1B1E22; }
.demande-modifier { margin-left: auto; color: var(--jaune); text-decoration: none; }
.demande-navigation { position: sticky; bottom: 14px; z-index: 3; margin-top: 34px; }
.demande-bouton { min-height: 58px; border-radius: 16px; font-size: 17px; letter-spacing: -.005em; }
.demande-echec { border-left: 0; border-radius: 14px; }
.demande-merci-titre::before { border-radius: 50%; }
@media (max-width: 599px) {
  .contact-formulaire { border-radius: 20px; }
  .formulaire-sanipure { padding: 20px 16px 22px; }
  .demande-options { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .demande-choix span { min-height: 56px; padding: 10px 12px 10px 14px; font-size: 15px; }
  .demande-barre li span { font-size: 11.5px; }
}

/* Formulaire sur fond clair (11/10/2026, demande SANIPURE « fond du formulaire clair ») : carte blanche dans la section noire */
.contact-formulaire { border-color: #FFFFFF; background: #FFFFFF; color: var(--carbone); }
.contact-formulaire .demande-question, .contact-formulaire .demande-question-petite, .contact-formulaire .demande-champ label, .contact-formulaire .demande-merci-titre { color: var(--carbone); }
.contact-formulaire .demande-question .demande-aide, .contact-formulaire .demande-aide-champ, .contact-formulaire .demande-facultatif, .contact-formulaire .demande-question-petite .demande-aide { color: #6B7178; }
.contact-formulaire .demande-retour { background: #F0F0EC; color: var(--carbone); }
.contact-formulaire .demande-retour:hover { background: #E4E4DF; }
.contact-formulaire .demande-barre li::before { background: #E4E4DF; }
.contact-formulaire .demande-barre li::after { background: var(--carbone); }
.contact-formulaire .demande-barre li.est-active::after { background: var(--jaune); }
.contact-formulaire .demande-barre li span { color: #8A9097; }
.contact-formulaire .demande-barre li.est-active span { color: var(--carbone); }
.contact-formulaire .demande-barre li.est-faite span { color: #454A50; }
.contact-formulaire .demande-choix span { background: #F2F2EF; color: var(--carbone); }
.contact-formulaire .demande-choix span::after { border-color: #B4B6B1; background-color: #FFFFFF; }
.contact-formulaire .demande-choix:hover span { border-color: #C9CBC6; }
.contact-formulaire .demande-choix input:checked + span { border-color: var(--jaune); background: #FFF6E0; color: var(--carbone); }
.contact-formulaire .demande-choix input:checked + span::after { border-color: var(--jaune); background-color: var(--jaune); }
.contact-formulaire .demande-options-compactes .demande-choix input:checked + span { background: var(--jaune); }
.contact-formulaire .demande-choix input:focus-visible + span { outline-color: var(--carbone); }
.contact-formulaire .demande-champ input, .contact-formulaire .demande-champ textarea { background: #F2F2EF; color: var(--carbone); }
.contact-formulaire .demande-champ input:hover, .contact-formulaire .demande-champ textarea:hover { border-color: #C9CBC6; }
.contact-formulaire .demande-champ input:focus, .contact-formulaire .demande-champ textarea:focus { border-color: var(--jaune); background: #FFFFFF; }
.contact-formulaire .demande-champ input::placeholder, .contact-formulaire .demande-champ textarea::placeholder { color: #8A9097; }
.contact-formulaire .demande-champ input[aria-invalid="true"] { border-color: #C4321C; background: #FFF1EE; }
.contact-formulaire .demande-erreur { color: #B3261E; }
.contact-formulaire .demande-resume, .contact-formulaire .demande-offre { background: #F2F2EF; color: #454A50; }
.contact-formulaire .demande-resume strong, .contact-formulaire .demande-offre strong { color: var(--carbone); }
.contact-formulaire .demande-modifier { color: var(--carbone); text-decoration: underline; text-underline-offset: 3px; }
.contact-formulaire .demande-echec { background: #FFF1EE; color: #8C1D18; }
.contact-formulaire .demande-bouton:focus-visible { outline-color: var(--carbone); }
.contact-formulaire .demande-merci p:is(:not([class]), [class="wp-block-paragraph"]) { color: #454A50; }
.contact-formulaire .demande-merci a { color: var(--carbone); }

/* ---------- Pied de page ---------- */
.pied { padding: 64px 0 32px; background: var(--carbone); color: var(--gris-1); border-top: 1px solid var(--filet-sombre); font-size: 14px; }
.pied .conteneur { max-width: var(--largeur); }
.pied ul { margin: 0; padding: 0; list-style: none; }
.pied a { color: inherit; text-decoration: none; transition: color var(--t-micro) var(--ease); }
.pied a:hover { color: var(--blanc-tech); }
.pied-haut { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 24px; padding-bottom: 36px; border-bottom: 1px solid var(--filet-sombre); }
.pied-marque { display: flex; align-items: center; gap: 28px; }
.logo-pied { margin: 0; }
.logo-pied img { height: 24px; width: auto; }
.pied-reseaux { display: flex; gap: 8px; }
.pied-reseaux a { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid var(--filet-sombre); border-radius: var(--r-bouton); color: var(--gris-1); }
.pied-reseaux a:hover { border-color: var(--jaune); }
.pied-reseaux svg { width: 16px; height: 16px; fill: currentColor; }
.pied-reseaux .wp-block-social-link-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.pied-appel { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.pied-appel p { margin: 0; font-weight: 600; color: var(--blanc-tech); }
.pied .btn > .wp-block-button__link { min-height: 40px; padding: 0 16px; font-size: 14px; }
.pied .btn-contour-clair > .wp-block-button__link { border-color: #3A3F45; color: var(--blanc-tech); }
.pied-colonnes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; padding: 36px 0; }
.pied h2 { margin: 0 0 16px; font: 500 11px/1.3 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--blanc-tech); }
.pied-colonnes li + li { margin-top: 10px; }
.pied-adresse { margin: 0; line-height: 1.7; }
.pied-autres { padding: 28px 0; border-top: 1px solid var(--filet-sombre); }
.pied-autres ul { display: flex; flex-wrap: wrap; gap: 10px 22px; }
.pied-bas { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding-top: 22px; border-top: 1px solid var(--filet-sombre); font: 500 11px/1.4 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--gris-2); }
.pied-bas p { margin: 0; }
.pied-bas ul { display: flex; gap: 20px; }

/* ---------- Barre fixe mobile (un seul bouton) ---------- */
.barre-mobile { display: none; }
@media (max-width: 899px) {
  /* bouton flottant sur fond transparent (11/10/2026, demande SANIPURE) */
  .barre-mobile { display: block; position: fixed; z-index: 40; left: 0; right: 0; bottom: 0; padding: 0 12px calc(12px + env(safe-area-inset-bottom)); background: transparent; border-top: 0; pointer-events: none;
    transform: translateY(110%); transition: transform var(--t-module) var(--ease); }
  .barre-mobile.est-visible { transform: none; }
  .barre-mobile .btn, .barre-mobile .btn > .wp-block-button__link { width: 100%; }
  .barre-mobile .btn > .wp-block-button__link { min-height: 52px; border-radius: 14px; font-size: 15px; letter-spacing: .03em; text-transform: uppercase; pointer-events: auto; }
  .barre-mobile .groupe-boutons, .barre-mobile .btn { pointer-events: auto; }
  .pied { padding-bottom: 96px; }
}

/* ---------- Révélations au défilement (classes posées par tech.js ; rien n'est masqué sans JavaScript) ---------- */
@media (prefers-reduced-motion: no-preference) {
  .tw-entree { opacity: 0; transform: translateY(16px); transition: opacity var(--t-module) var(--ease), transform var(--t-module) var(--ease); transition-delay: calc(var(--i, 0) * 70ms); }
  .tw-entree.est-visible { opacity: 1; transform: none; }
  .tw-scan { position: relative; }
  .tw-scan img { clip-path: inset(0 0 100% 0); transition: clip-path var(--t-scan) var(--ease-scan), transform 1200ms var(--ease); }
  .tw-scan.est-visible img { clip-path: inset(0 0 0 0); }
  .tw-scan::after { content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none; opacity: 0; background: linear-gradient(var(--jaune), var(--jaune)) 0 var(--tw-scan) / 100% 1px no-repeat; }
  .tw-scan.est-visible::after { animation: tw-ligne var(--t-scan) var(--ease-scan) both; }
}

/* ---------- Tablette et mobile ---------- */
@media (max-width: 1180px) {
  .tw-hero-grille { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .tw-hero h1 { font-size: clamp(2.4rem, 1rem + 2.6vw, 3.2rem); }
  .tw-hero-desc { font-size: 15px; }
}
@media (max-width: 1023px) {
  .tw-specs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tw-specs > div:nth-child(3n + 1) { padding-left: 0; border-left: 0; }
  .reassurance-grille, .signes, .preuves { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reassurance-item:nth-child(odd) { padding-left: 0; border-left: 0; }
  .reassurance-item:nth-child(n + 3) { border-top: 1px solid var(--filet); }
  .formules { grid-template-columns: minmax(0, 1fr); max-width: 620px; }
  .etapes { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 44px 24px; }
  .etape::before { right: 0; }
  .guides { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pied-colonnes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 899px) {
  :root { --entete-h: 70px; }
  .tw-hero-grille { display: flex; flex-direction: column; min-height: 0; padding: 0; }
  .tw-hero-photo { order: -1; justify-self: auto; width: 100%; aspect-ratio: 1.6; border-radius: 0; }
  .tw-hero-photo img { object-position: 55% 26%; }
  .tw-fiche { aspect-ratio: 1.6; }
  .tw-fiche img { object-position: 50% 50%; }
  .tw-fiche::before { inset: 10px; --l: 14px; }
  .tw-hero-photo::before { inset: 10px; --l: 14px; }
  .tw-hero-legende { left: 18px; top: 16px; padding: 5px 8px; font-size: 9.5px; }
  .tw-repere { left: calc(var(--xm) * 1%); top: calc(var(--ym) * 1%); }
  .tw-repere::after { display: none; }
  .tw-repere span { width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); border: 0; }
  .tw-hero-texte { display: flex; flex-direction: column; width: 100%; max-width: 680px; padding: 20px var(--marge) 30px; }
  .tw-hero-cta { order: 1; margin-top: 24px; }
  .tw-hero-desc { order: 2; margin-top: 22px; }
  .tw-hero-notes { order: 3; }
  .tw-hero h1 { font-size: clamp(2rem, 1.3rem + 3vw, 3rem); }
  .tw-hero-accroche { margin-top: 16px; }
  .tw-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); min-height: 0; }
  .tw-specs > div { padding: 14px 12px 16px 0; }
  .tw-specs > div:nth-child(n) { padding-left: 14px; border-left: 1px solid var(--filet-sombre); }
  .tw-specs > div:nth-child(2n + 1) { padding-left: 0; border-left: 0; }
  .entete-section { grid-template-columns: minmax(0, 1fr); }
  .entete-section > :not(.surtitre):not(.surtitre-pastille):not(h2) { grid-column: 1; margin-top: 18px; padding-bottom: 0; }
  .zones, .encart-piqures, .entreprise, .zone, .media-carte, .ms-panneau, .tw-signal-grille { grid-template-columns: minmax(0, 1fr); }
  .tw-signal-grille { grid-template-areas: "tag" "valeur" "texte" "jauge"; }
  .tw-signal-texte { margin-top: 26px; }
  .zones-illu, .zone-visuel { position: static; }
  .zone-visuel { position: relative; }
  .ms-onglets { grid-template-columns: minmax(0, 1fr); }
  .ms-onglet + .ms-onglet { padding-left: 0; border-left: 0; border-top: 1px solid var(--filet); }
  .ms-onglet { padding: 14px 0; }
  .ms-onglet::before { top: auto; bottom: -1px; }
  .lieux-cartes, .avis-grille { grid-template-columns: minmax(0, 1fr); }
  .conditions { grid-template-columns: minmax(0, 1fr); }
  .condition, .condition + .condition { padding: 16px 0; border-left: 0; }
  .condition + .condition { border-top: 1px solid var(--filet); }
  .solutions-tete, .guides-tete { flex-direction: column; align-items: flex-start; }
  .solutions-piste { grid-auto-columns: 78%; }
  .media-photo { aspect-ratio: 16 / 9; }
  .photo-equipe, .zone-photo { aspect-ratio: 4 / 3; }
}
@media (max-width: 599px) {
  :root { --entete-h: 66px; }
  .tw-hero-cta { flex-direction: column; }
  .tw-hero-cta .tw-bouton { width: 100%; }
  .reassurance-grille, .signes, .preuves, .etapes, .guides, .chiffres { grid-template-columns: minmax(0, 1fr); }
  .reassurance-item, .reassurance-item + .reassurance-item { padding: 22px 0 14px; border-left: 0; }
  .reassurance-item + .reassurance-item { border-top: 1px solid var(--filet); }
  .reassurance-item::before { margin-bottom: 16px; }
  .chiffre + .chiffre { padding-left: 0; border-left: 0; border-top: 1px solid var(--filet); }
  .formule > * { margin-left: 20px; margin-right: 20px; }
  .formule::before { padding: 12px 20px; }
  .formule-ligne { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .repere { width: 26px; height: 26px; font-size: 11.5px; }
  .repere::before { inset: -6px; }
  .demande-ligne { grid-template-columns: minmax(0, 1fr); }
  .contact-formulaire::before { padding: 12px 18px; }
  .formulaire-sanipure { padding: 22px 18px; }
  .demande-choix span { min-height: 42px; padding: 0 14px; font-size: 14.5px; }
  .reponse { padding-left: 0; }
  .zone-visuel::after { left: 18px; top: 16px; font-size: 9.5px; }
  .carte-adresse { left: 18px; bottom: 16px; }
  .pied-colonnes { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; }
  .pied-marque { flex-direction: column; align-items: flex-start; gap: 16px; }
  .btn > .wp-block-button__link { white-space: normal; text-align: center; min-height: 50px; padding: 12px 20px; line-height: 1.25; }
  .tw-signal-valeur { font-size: clamp(5rem, 2rem + 18vw, 8rem); }
  .tw-jauge-echelle li:nth-child(even) { visibility: hidden; }
}
@media (max-width: 359px) {
}

/* =============================================================================
   PAGES INTÉRIEURES « TECHNOLOGICAL WORKER » (11/10/2026, demande SANIPURE « applique le style à tout le site »)
   En-tête de page sombre avec photo en fond (voile), article sur fond clair, colonne latérale (sommaire + carte
   d'appel), encadrés, tableaux techniques, cartes de liens, contact, FAQ, entreprise, pages locales.
   Surfaces : contenu blanc, sections « grises » en papier, sections sombres et devis en carbone.
   ========================================================================== */
body:not(.home):not(.page-accueil) :is(.section, .verifiable) { --fond: var(--blanc); --encre: var(--carbone); --encre-2: #454A50; --encre-3: #6B7178; --filet: #D6D7D2; --carte: var(--papier); --bord-bouton: #B4B6B1; }
body:not(.home):not(.page-accueil) :is(.section-grise, .section.section-grise) { --fond: var(--papier); --carte: var(--blanc); }
body:not(.home):not(.page-accueil) :is(.section.sombre, .section-contact, .section.methode) { --fond: var(--carbone); --encre: var(--blanc-tech); --encre-2: var(--gris-1); --encre-3: var(--gris-2); --filet: var(--filet-sombre); --carte: var(--graphite); --bord-bouton: #3A3F45; }

/* En-tête de page */
.page-tete { position: relative; isolation: isolate; overflow: hidden; padding: clamp(64px, 8vw, 120px) 0 clamp(52px, 6vw, 88px); background: var(--carbone); color: var(--blanc-tech);
  --encre: var(--blanc-tech); --encre-2: var(--gris-1); --encre-3: var(--gris-2); --filet: var(--filet-sombre); --bord-bouton: #3A3F45; }
.page-tete-photo { position: absolute; inset: 0; z-index: -2; margin: 0; }
.page-tete-photo img { width: 100%; height: 100% !important; object-fit: cover; }
.page-tete-photo.cadrage-haut img { object-position: 50% 20%; } .page-tete-photo.cadrage-bas img { object-position: 50% 80%; } .page-tete-photo.cadrage-droite img { object-position: 80% 50%; }
.page-tete::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(11, 12, 13, .96) 0%, rgba(11, 12, 13, .86) 52%, rgba(11, 12, 13, .5) 100%); }
.page-tete .conteneur { position: relative; }
.page-tete h1 { margin: 0; max-width: 20ch; font-family: var(--titre); font-weight: 700; font-stretch: 75%; font-size: clamp(2.4rem, 1.2rem + 3.2vw, 4.4rem); line-height: 1.02; color: var(--blanc-tech); text-wrap: balance; }
.page-tete h1 em { font-style: normal; color: var(--jaune); }
.page-tete .chapeau { margin-top: 20px; max-width: 62ch; color: var(--gris-1); }
.page-tete .groupe-boutons { margin-top: 28px; }
.fil-ariane { display: flex; flex-wrap: wrap; gap: 6px 10px; margin: 0 0 22px; padding: 0; list-style: none; font: 500 11px/1.4 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--gris-2); }
.fil-ariane li + li::before { content: "/"; margin-right: 10px; color: var(--jaune); }
.fil-ariane a { color: var(--gris-1); text-decoration: none; }
.fil-ariane a:hover { color: var(--blanc-tech); }
.mention-illustration { position: absolute; right: var(--marge); bottom: 14px; margin: 0; font: 500 10px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: rgba(243, 243, 240, .5); }

/* Corps : article + colonne latérale */
.page-corps { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(32px, 5vw, 80px); align-items: start; }
.aside-collant { position: sticky; top: 92px; display: grid; gap: 16px; }
.prose { max-width: 760px; font-size: 17px; line-height: 1.7; color: var(--encre-2); }
.prose > * + * { margin-top: 18px; }
.prose > h2 { margin-top: 56px; padding-top: 22px; border-top: 1px solid var(--filet); font-size: clamp(1.8rem, 1.2rem + 1.4vw, 2.5rem); line-height: 1.08; }
.prose > h2:first-child { margin-top: 0; }
.prose > h3 { margin-top: 32px; font-size: clamp(1.3rem, 1.1rem + .5vw, 1.6rem); }
.prose > h2 + *, .prose > h3 + * { margin-top: 14px; }
.prose a:not(.wp-block-button__link) { color: var(--encre); text-decoration: underline; text-decoration-color: var(--jaune); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.prose strong { color: var(--encre); font-weight: 700; }
.prose ul:not([class*="communes"]):not(.etiquettes):not(.ville-liens), .encadre ul { margin: 0; padding: 0; list-style: none; }
.prose ul:not([class*="communes"]):not(.etiquettes):not(.ville-liens) > li, .encadre ul > li { position: relative; padding-left: 24px; }
.prose ul:not([class*="communes"]):not(.etiquettes):not(.ville-liens) > li + li, .encadre ul > li + li { margin-top: 10px; }
.prose ul:not([class*="communes"]):not(.etiquettes):not(.ville-liens) > li::before, .encadre ul > li::before { content: ""; position: absolute; left: 2px; top: .72em; width: 7px; height: 7px; border-radius: 1px; background: var(--jaune); }
.prose ol:not(.fil-ariane) { margin: 0; padding: 0; list-style: none; counter-reset: etape-prose; }
.prose ol:not(.fil-ariane) > li { position: relative; padding: 12px 0 12px 48px; border-top: 1px solid var(--filet); counter-increment: etape-prose; }
.prose ol:not(.fil-ariane) > li::before { content: counter(etape-prose, decimal-leading-zero); position: absolute; left: 0; top: 13px; display: grid; place-items: center; width: 32px; height: 24px; border-radius: var(--r-tag); background: var(--jaune); color: var(--carbone); font: 600 11.5px/1 var(--mono); }
.prose figure { margin-top: 32px; margin-bottom: 8px; }
.prose figure img { width: 100%; border-radius: var(--r-photo); }
.prose figcaption, .galerie-photos figcaption { margin-top: 10px; font: 500 11px/1.4 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--encre-3); }
.tableau-defilant { overflow-x: auto; border: 1px solid var(--filet); border-radius: var(--r-carte); }
.tableau-defilant table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 15px; line-height: 1.5; }
.tableau-defilant th { padding: 12px 16px; background: var(--carte); text-align: left; font: 500 10.5px/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--encre-3); }
.tableau-defilant td { padding: 12px 16px; border-top: 1px solid var(--filet); color: var(--encre-2); vertical-align: top; }
.tableau-defilant td:first-child { font-weight: 700; color: var(--encre); }
.encadre { padding: 22px 24px; border: 1px solid var(--filet); border-left: 3px solid var(--jaune); border-radius: var(--r-carte); background: var(--carte); }
.encadre > * + * { margin-top: 10px; }
.encadre h3, .encadre-titre { font-size: 1.3rem; }
.encadre.sombre { --encre: var(--blanc-tech); --encre-2: var(--gris-1); background: var(--carbone); color: var(--gris-1); border-color: var(--carbone); border-left-color: var(--jaune); }
.sommaire { padding: 20px 22px; border: 1px solid var(--filet); border-radius: var(--r-carte); background: var(--carte); }
.sommaire-titre { margin-bottom: 10px !important; font: 500 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--encre-3); }
.sommaire ol { margin: 0; padding: 0; list-style: none; counter-reset: sommaire; }
.sommaire li { counter-increment: sommaire; border-top: 1px solid var(--filet); }
.sommaire a { display: flex; gap: 10px; padding: 9px 0; font-size: 14px; font-weight: 600; line-height: 1.35; color: var(--encre); text-decoration: none; }
.sommaire a::before { content: counter(sommaire, decimal-leading-zero); flex: none; padding-top: 2px; font: 500 11px/1.2 var(--mono); color: var(--encre-3); }
.sommaire a:hover { text-decoration: underline; text-decoration-color: var(--jaune); text-underline-offset: 3px; }
.aside-carte { padding: 24px; border-radius: 12px; background: var(--carbone); color: var(--gris-1); --encre: var(--blanc-tech); --encre-2: var(--gris-1); --bord-bouton: #3A3F45; }
.aside-carte h2 { margin: 0; font-family: var(--titre); font-weight: 700; font-stretch: 75%; font-size: 1.6rem; line-height: 1.05; color: var(--blanc-tech); }
.aside-carte p { margin-top: 10px !important; font-size: 15px; line-height: 1.55; }
.aside-carte .groupe-boutons { margin-top: 18px; }
.aside-carte .btn > .wp-block-button__link { min-height: 44px; padding: 0 16px; font-size: 14px; }

/* Cartes de liens (maillage interne) */
.cartes-liens { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; counter-reset: lien; }
.carte-lien { position: relative; padding: 22px 22px 20px; border: 1px solid var(--filet); border-radius: var(--r-carte); background: var(--carte); counter-increment: lien; transition: border-color var(--t-micro) var(--ease); }
.carte-lien::before { content: counter(lien, decimal-leading-zero); display: block; margin-bottom: 22px; font: 500 11px/1 var(--mono); letter-spacing: .1em; color: var(--encre-3); }
.carte-lien:hover { border-color: var(--jaune); }
.carte-lien h3 a { text-decoration: none; }
.carte-lien h3 a::after { content: ""; position: absolute; inset: 0; }
.carte-lien p:not(.indice-fleche) { margin-top: 8px; font-size: 14.5px; line-height: 1.55; color: var(--encre-2); }
.carte-lien .indice-fleche { margin-top: 14px; }

/* En bref, étapes, lieux à deux colonnes */
.bref-grille { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.en-bref { border-top: 1px solid var(--filet); }
.en-bref-ligne { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--filet); }
.en-bref-libelle { padding-top: 3px; font: 500 10.5px/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--encre-3); }
.en-bref-valeur { font-size: 15px; font-weight: 600; line-height: 1.45; color: var(--encre); }
.bref-photo { overflow: hidden; border-radius: var(--r-photo); }
.bref-photo img { width: 100%; height: auto; }
.etapes.etapes-trois { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 0; }
.etapes-trois .etape-num::after { content: " / 03"; }
.lieux-cartes.deux { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* Contact, entreprise, FAQ */
.moyens-contact { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.moyen { padding: 22px 24px; border: 1px solid var(--filet); border-radius: var(--r-carte); background: var(--carte); }
.moyen h2 { margin: 0; font: 500 11px/1.3 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--encre-3); }
.moyen-valeur { margin-top: 10px !important; font-family: var(--titre); font-weight: 700; font-stretch: 75%; font-size: 1.6rem; line-height: 1.1; color: var(--encre); }
.moyen-valeur a { color: inherit; text-decoration: none; }
.moyen p:not(.moyen-valeur) { margin-top: 8px; font-size: 14.5px; color: var(--encre-2); }
.preparer-appel { margin-top: 24px; }
.galerie-photos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.galerie-photos figure { margin: 0; }
.galerie-photos img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-photo); }
.galerie-photos .cadrage-haut img { object-position: 50% 20%; } .galerie-photos .cadrage-bas img { object-position: 50% 80%; }
.faq-theme + .faq-theme { margin-top: 56px; }
.faq-theme > h2 { margin-bottom: 18px; font-size: clamp(1.6rem, 1.2rem + 1vw, 2.2rem); }
.entete-section.titre-long h2 { font-size: clamp(2rem, 1rem + 2.6vw, 3.4rem); }

/* Pages locales (villes, stations, département) */
.ville-liens { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ville-liens a { display: inline-block; padding: 9px 12px; border: 1px solid var(--bord-bouton); border-radius: var(--r-tag); font: 500 11.5px/1 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--encre); text-decoration: none; transition: border-color var(--t-micro) var(--ease), background-color var(--t-micro) var(--ease); }
.ville-liens a:hover { border-color: var(--jaune); background: rgba(255, 174, 0, .1); }
.villes-secteurs { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 28px 32px; }
.villes-secteur h3 { margin-bottom: 12px; font-size: 1.35rem; }

@media (max-width: 1023px) {
  .page-corps, .bref-grille { grid-template-columns: minmax(0, 1fr); }
  .aside-collant { position: static; }
  .moyens-contact { grid-template-columns: minmax(0, 1fr); }
  .etapes.etapes-trois { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}
@media (max-width: 899px) {
  .page-tete::before { background: rgba(11, 12, 13, .84); }
  .lieux-cartes.deux { grid-template-columns: minmax(0, 1fr); }
  .galerie-photos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 599px) {
  .page-tete h1 { font-size: clamp(2.1rem, 1.3rem + 4vw, 2.8rem); }
  .prose { font-size: 16.5px; }
  .en-bref-ligne { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}

/* =============================================================================
   BOUTONS « BRUT » (11/10/2026, demande SANIPURE « meilleure animation brut pour les boutons »)
   Au survol, le bouton se soulève d’un cran (4 px) et révèle un bloc décalé plein, sans flou :
   jaune #FFAE00 pour les boutons sombres ou contour, couleur d'encre (noir sur fond clair, blanc sur fond
   sombre) pour les boutons jaunes. Les couleurs du bouton ne changent jamais. Au clic, il s'enfonce à plat.
   Mouvement sec : 90 ms, linéaire. La flèche avance d'un cran. Mouvements réduits : bloc sans déplacement.
   ========================================================================== */
:is(.btn > .wp-block-button__link, .tw-bouton, .demande-bouton) {
  --bloc: var(--jaune);
  outline: 0 !important;
  box-shadow: 0 0 0 0 var(--bloc);
  transition: transform 90ms linear, box-shadow 90ms linear, border-color 90ms linear;
}
:is(.btn-jaune > .wp-block-button__link, .tw-bouton-jaune, .demande-bouton) { --bloc: var(--encre, var(--blanc-tech)); }
:is(.tw-hero, .page-tete, .entete, .pied, .barre-mobile, .aside-carte, .formule-vedette, .tw-signal) :is(.btn-jaune > .wp-block-button__link, .tw-bouton-jaune) { --bloc: var(--blanc-tech); }
.tw-signal :is(.btn > .wp-block-button__link, .tw-bouton) { --bloc: var(--carbone); }
.contact-formulaire .demande-bouton { --bloc: var(--carbone); }
:is(.btn > .wp-block-button__link, .tw-bouton, .demande-bouton):hover { transform: translate(-4px, -4px); box-shadow: 4px 4px 0 0 var(--bloc); }
:is(.btn > .wp-block-button__link, .tw-bouton, .demande-bouton):active { transform: translate(0, 0); box-shadow: 0 0 0 0 var(--bloc); transition-duration: 40ms; }
:is(.btn-contour, .btn-contour-clair) > .wp-block-button__link:hover, .tw-bouton-contour:hover { border-color: var(--jaune); }
:is(.btn-fleche > .wp-block-button__link, .tw-bouton-fleche, .demande-bouton)::after { transition: transform 90ms steps(2, end); }
:is(.btn-fleche > .wp-block-button__link, .tw-bouton-fleche, .demande-bouton):hover::after { transform: translateX(5px); }
:is(.btn > .wp-block-button__link, .tw-bouton, .demande-bouton):focus-visible { outline: 2px solid var(--jaune) !important; outline-offset: 3px; }
.barre-mobile .btn > .wp-block-button__link { box-shadow: 0 0 0 0 transparent; }
@media (hover: none) { :is(.btn > .wp-block-button__link, .tw-bouton, .demande-bouton):hover { transform: none; box-shadow: 0 0 0 0 var(--bloc); } }
@media (prefers-reduced-motion: reduce) {
  :is(.btn > .wp-block-button__link, .tw-bouton, .demande-bouton) { transition: none; }
  :is(.btn > .wp-block-button__link, .tw-bouton, .demande-bouton):hover { transform: none; box-shadow: 0 0 0 2px var(--bloc); }
  :is(.btn-fleche > .wp-block-button__link, .tw-bouton-fleche, .demande-bouton):hover::after { transform: none; }
}

/* Bouton de l'en-tête mobile : « DEVIS » (11/10/2026, demande SANIPURE) */
.btn-devis-mobile > .wp-block-button__link { padding: 0 18px; letter-spacing: .08em; font-weight: 800; }

/* Badges de preuve (11/10/2026) : pastilles « avis Google » et qualifications, premier écran et pied de page */
.badges-preuves { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.badge-preuve { display: inline-flex; align-items: center; gap: 12px; min-height: 52px; margin: 0; padding: 6px 18px 6px 6px; border: 1px solid #343A42; border-radius: 999px; background: rgba(26, 29, 32, .9); color: var(--blanc-tech); font: 500 15px/1.2 var(--texte); text-decoration: none; transition: border-color var(--t-micro) var(--ease); }
a.badge-preuve:hover { border-color: var(--jaune); }
.badge-google img { flex: none; width: 30px; height: 30px; margin-left: 8px; padding: 0; background: none; } /* G sur fond transparent (11/10/2026) */
.badge-etoiles { color: var(--jaune); font-size: 15px; letter-spacing: .12em; }
.badge-preuve strong { font: 700 17px/1 var(--titre); color: #FFFFFF; }
.badge-google span:last-child { color: var(--gris-1); }
.badge-certif { padding: 4px 8px 4px 20px; gap: 14px; }
.badge-certibiocide { width: auto; height: 34px; }
.badge-certipunaises { width: auto; height: 46px; }
.pied-marque { flex-wrap: wrap; }
.pied .badges-preuves { margin-top: 0; }
@media (max-width: 599px) {
  .badge-preuve { min-height: 46px; gap: 9px; font-size: 14px; }
  .badge-google img { width: 26px; height: 26px; margin-left: 6px; }
  .badge-etoiles { font-size: 13px; letter-spacing: .06em; }
  .badge-certibiocide { height: 28px; }
  .badge-certipunaises { height: 40px; }
}

/* Paiement fractionné (11/10/2026) : bandeau dans la section Formules de l'accueil */
.paiement-fractionne { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 24px 48px; align-items: center; margin-top: 40px; padding: clamp(24px, 3.5vw, 40px); border-radius: var(--r-carte); background: var(--carbone); color: var(--gris-1); }
.paiement-etiquette { margin: 0 0 12px !important; font: 500 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--jaune); }
.paiement-fractionne h3 { margin: 0; font-family: var(--titre); font-weight: 700; font-stretch: 75%; font-size: clamp(1.8rem, 1.2rem + 1.6vw, 2.6rem); line-height: 1.05; color: var(--blanc-tech); }
.paiement-fractionne h3 em { font-style: normal; color: var(--jaune); }
.paiement-texte > p:not(.paiement-etiquette) { margin-top: 12px !important; max-width: 56ch; font-size: 15.5px; line-height: 1.6; color: var(--gris-1); }
.paiement-points { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.paiement-points li { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 0 16px; border: 1px solid #343A42; border-radius: var(--r-bouton); font: 600 15px/1.2 var(--texte); color: var(--blanc-tech); }
.paiement-points li::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 2px; background: var(--jaune); }
@media (max-width: 899px) { .paiement-fractionne { grid-template-columns: minmax(0, 1fr); } }

/* =============================================================================
   OPTIMISATION MOBILE DES PAGES (12/10/2026, audit des 93 pages à 360 px)
   1. Grilles à une colonne en minmax(0, 1fr) (plus haut) : un tableau large ne peut plus élargir la page.
   2. Rythme vertical resserré, sommaire latéral masqué sur mobile (il arrivait après l'article),
      tableaux défilants signalés, cartes et galeries plus compactes.
   ========================================================================== */
.prose, .page-corps > *, .bref-grille > *, .zones > *, .zone > *, .entreprise > * { min-width: 0; }
.prose { overflow-wrap: break-word; }
.tableau-defilant { -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
@media (max-width: 1023px) {
  .aside-collant .sommaire { display: none; }
  .aside-collant { margin-top: 8px; }
}
@media (max-width: 599px) {
  .section, .verifiable { padding: 64px 0; }
  .page-tete { padding: 52px 0 44px; }
  .page-tete .groupe-boutons { flex-direction: column; align-items: stretch; }
  .page-tete .groupe-boutons .btn, .page-tete .groupe-boutons .btn > a { width: 100%; }
  .prose { font-size: 16.5px; line-height: 1.65; }
  .prose > h2 { margin-top: 40px; padding-top: 18px; font-size: clamp(1.6rem, 1.2rem + 2vw, 2rem); }
  .prose > h3 { margin-top: 26px; }
  .prose > h2 + ul, .prose > h2 + ol, .prose > p + ul { margin-top: 12px; }
  .prose ol:not(.fil-ariane) > li { padding-left: 44px; }
  .tableau-defilant { position: relative; margin-left: calc(-1 * var(--marge)); margin-right: calc(-1 * var(--marge)); border-radius: 0; border-left: 0; border-right: 0; }
  .tableau-defilant table { min-width: 0; font-size: 14px; }
  .tableau-defilant table:has(tr > :nth-child(3)) { min-width: 520px; }
  .tableau-defilant:not(:has(tr > :nth-child(3)))::after { display: none; }
  .tableau-defilant th, .tableau-defilant td { padding: 10px 12px; }
  .tableau-defilant::after { content: "Faites glisser le tableau →"; display: block; padding: 8px var(--marge); border-top: 1px solid var(--filet); font: 500 10.5px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--encre-3); position: sticky; left: 0; }
  .entete-section { margin-bottom: 36px; padding-top: 18px; }
  .signe, .preuve, .moyen, .carte-lien { padding: 20px 20px 22px; }
  .signe::before, .preuve::before, .carte-lien::before { margin-bottom: 16px; }
  .galerie-photos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .galerie-photos figure:first-child { grid-column: 1 / -1; }
  .galerie-photos figure:first-child img { aspect-ratio: 16 / 9; }
  .encadre { padding: 18px 18px 18px 20px; }
  .aside-carte { padding: 22px 20px; }
  .aside-carte .groupe-boutons { flex-direction: column; align-items: stretch; }
  .aside-carte .btn, .aside-carte .btn > a { width: 100%; }
  .avis-grille { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; margin-right: calc(-1 * var(--marge)); padding-right: var(--marge); scrollbar-width: none; }
  .avis-grille::-webkit-scrollbar { display: none; }
  .avis-carte { flex: 0 0 86%; scroll-snap-align: start; }
  .faq-theme + .faq-theme { margin-top: 40px; }
  .question > summary { padding: 16px 40px 16px 0; font-size: 16px; }
  .reponse { font-size: 15.5px; }
  .en-bref-ville .en-bref-ligne { padding: 10px 0; }
  .lieux-cartes.deux { gap: 24px; }
}

/* =============================================================================
   BOUTONS AFFINÉS (12/10/2026, demande SANIPURE « un peu plus fins et premium »)
   Moins hauts, graisse 600, léger interlettrage, flèche plus fine ; mêmes couleurs, même animation « brut ».
   ========================================================================== */
:is(.tw-bouton, .btn > .wp-block-button__link) { min-height: 44px; padding: 0 20px; gap: 10px; font-weight: 600; font-size: 14.5px; letter-spacing: .015em; }
:is(.tw-bouton-fleche, .btn-fleche > .wp-block-button__link)::after { font-size: 13px; font-weight: 400; }
.tw-bouton-petit, .capsule .btn > .wp-block-button__link { min-height: 36px; padding: 0 14px; font-size: 13.5px; }
.btn-devis-mobile > .wp-block-button__link { min-height: 36px; padding: 0 16px; font-weight: 700; font-size: 13px; letter-spacing: .1em; }
.demande-bouton { min-height: 50px; font-weight: 600; font-size: 15.5px; letter-spacing: .01em; }
.pied .btn > .wp-block-button__link { min-height: 38px; padding: 0 16px; font-size: 13.5px; }
@media (max-width: 899px) {
  .barre-mobile .btn > .wp-block-button__link { min-height: 46px; font-weight: 600; font-size: 14px; letter-spacing: .06em; }
}
@media (max-width: 599px) {
  .btn > .wp-block-button__link, .tw-bouton { min-height: 46px; padding: 10px 18px; font-size: 14.5px; }
  .capsule .btn > .wp-block-button__link, .btn-devis-mobile > .wp-block-button__link { min-height: 36px; padding: 0 14px; }
}

/* Moyens de contact (page Contact) — format compact et premium (12/10/2026, demande SANIPURE) :
   un seul panneau à filets, libellé technique à gauche, coordonnée en texte courant, flèche jaune. */
.moyens-contact { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; overflow: hidden; border: 1px solid var(--filet); border-radius: var(--r-carte); background: var(--carte); }
.moyen { position: relative; padding: 18px 22px; border: 0; border-radius: 0; background: none; }
.moyen + .moyen { border-left: 1px solid var(--filet); }
.moyen h2 { font: 500 10.5px/1.3 var(--mono); letter-spacing: .12em; color: var(--encre-3); }
.moyen-valeur { margin-top: 6px !important; font: 600 16.5px/1.35 var(--texte) !important; letter-spacing: -.005em; overflow-wrap: anywhere; }
.moyen-valeur a { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; transition: color var(--t-micro) var(--ease); }
.moyen-valeur a::after { content: "→"; font: 400 13px/1 var(--mono); color: var(--jaune); transition: transform var(--t-micro) var(--ease); }
.moyen-valeur a:hover::after { transform: translateX(3px); }
.moyen p:not(.moyen-valeur) { margin-top: 4px; font-size: 13px; color: var(--encre-3); }
@media (max-width: 1023px) {
  .moyens-contact { grid-template-columns: minmax(0, 1fr); }
  .moyen { display: grid; grid-template-columns: 96px minmax(0, 1fr); column-gap: 14px; align-items: baseline; padding: 14px 18px; }
  .moyen + .moyen { border-left: 0; border-top: 1px solid var(--filet); }
  .moyen h2 { padding-top: 2px; }
  .moyen-valeur { margin-top: 0 !important; font-size: 15.5px !important; }
  .moyen p:not(.moyen-valeur) { grid-column: 2; }
}

/* Page Contact : pas de bouton flottant « Recevoir mon devis gratuit » (12/10/2026, demande SANIPURE) — le formulaire
   est déjà sur la page. page-id-40 = page Contact dans WordPress, page-contact = maquette statique. */
:is(body.page-id-40, body.page-contact) .barre-mobile { display: none !important; }
@media (max-width: 899px) { :is(body.page-id-40, body.page-contact) .pied { padding-bottom: 32px; } }

/* Vidéo compacte (page Entreprise, 12/10/2026, demande SANIPURE « plus haut, mieux cadrée, plus petite ») :
   juste sous l'en-tête, sur papier ; titre et chapeau à gauche, lecteur 16/9 limité à 600 px à droite, dans un cadre. */
html body .section.video-presentation.video-compacte { padding: clamp(40px, 5vw, 72px) 0; --fond: var(--papier); --encre: var(--carbone); --encre-2: #454A50; --encre-3: #6B7178; --filet: #D6D7D2; --carte: var(--blanc); background: var(--fond); color: var(--encre); }
.video-compacte > .conteneur { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 600px); gap: clamp(28px, 5vw, 72px); align-items: center; }
.video-compacte .entete-section { display: block; margin: 0; padding-top: 0; border-top: 0; max-width: 30rem; }
.video-compacte .entete-section h2 { font-size: clamp(1.9rem, 1.2rem + 1.6vw, 2.7rem); line-height: 1.05; }
.video-compacte .entete-section > h2 + * { margin-top: 14px; }
.video-compacte .chapeau { font-size: 16px; color: var(--encre-2); }
.video-compacte .video-lecteur { padding: 8px; border: 1px solid var(--filet); border-radius: 18px; background: var(--blanc);
  box-shadow: 0 1px 2px rgba(16, 18, 20, .04), 0 18px 40px -22px rgba(16, 18, 20, .28); }
.video-compacte .video-lecteur .wp-block-embed__wrapper { border-radius: 11px; }
@media (max-width: 899px) {
  .video-compacte > .conteneur { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .video-compacte .entete-section { max-width: none; }
  .video-compacte .video-lecteur { padding: 6px; border-radius: 14px; }
  .video-compacte .video-lecteur .wp-block-embed__wrapper { border-radius: 9px; }
}

/* =============================================================================
   CONTACT MINIMALISTE (12/10/2026, demande SANIPURE « trop dense, plus minimaliste premium type Apple ») :
   fond gris très clair, titre centré (seconde moitié en gris), formulaire dans une carte blanche sans filet,
   une ligne de garanties et une ligne de contact direct. Rien d'autre.
   ========================================================================== */
.cc { --fond: #F5F5F7; --encre: #1D1D1F; --encre-2: #6E6E73; --encre-3: #86868B; --filet: #D2D2D7; --carte: #FFFFFF; --bord-bouton: #B4B6B1;
  background: var(--fond); color: var(--encre-2); }
.cc-page { padding: clamp(40px, 6vw, 92px) 0 clamp(56px, 7vw, 110px); }
.cc-centre { max-width: 780px; margin: 0 auto; text-align: center; }
.cc-tete { margin: 0 auto; }
.cc h1 { margin: 0 auto; max-width: 17ch; font-family: var(--titre); font-weight: 600; font-stretch: 100%; font-size: clamp(2.1rem, 1.1rem + 2.6vw, 3.6rem); line-height: 1.07; letter-spacing: -.028em; color: var(--encre); text-wrap: balance; }
.cc h1 em { font-style: normal; color: var(--carbone); padding: 0 .1em; background: linear-gradient(var(--jaune), var(--jaune)) 0 62% / 100% .96em no-repeat; -webkit-box-decoration-break: clone; box-decoration-break: clone; } /* surlignage des H2 de l’accueil */
.cc .chapeau { max-width: 40ch; margin: 16px auto 0 !important; font-size: clamp(16px, 1rem + .25vw, 19px); line-height: 1.5; color: var(--encre-2); }
.cc-carte { margin-top: clamp(28px, 4vw, 44px); overflow: hidden; border-radius: 28px; background: #FFFFFF; text-align: left;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .03), 0 28px 64px -36px rgba(0, 0, 0, .22); }
.cc .contact-formulaire { border: 0; border-radius: 0; background: #FFFFFF; box-shadow: none; }
.cc .formulaire-sanipure { padding: clamp(22px, 3.4vw, 44px); }
.cc .demande-progression { margin-bottom: 28px; }
/* déroulé en 3 temps et garanties, sous le formulaire (conservés à la demande de SANIPURE) */
.cc-suite { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 28px 48px; align-items: start; margin-top: clamp(32px, 4vw, 48px); padding: clamp(24px, 3vw, 34px) clamp(22px, 3vw, 40px); border-radius: 24px; background: #FFFFFF; text-align: left; }
.cc-etapes { position: relative; display: grid; gap: 20px; margin: 0; padding: 0; list-style: none; counter-reset: etape; }
.cc-etapes::before { content: ""; position: absolute; left: 15px; top: 16px; bottom: 16px; width: 1px; background: var(--filet); }
.cc-etapes li { position: relative; min-height: 32px; padding: 4px 0 0 46px; font-size: 14.5px; line-height: 1.5; color: var(--encre-2); counter-increment: etape; }
.cc-etapes li::before { content: counter(etape, decimal-leading-zero); position: absolute; left: 0; top: 0; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; box-sizing: border-box; border: 1px solid var(--filet); border-radius: 50%; background: #FFFFFF; font: 500 10.5px/1 var(--mono); letter-spacing: .04em; color: var(--encre); }
.cc-etapes li:first-child::before { border-color: var(--jaune); background: var(--jaune); color: var(--carbone); }
.cc-etapes strong { display: block; margin-bottom: 2px; font-family: var(--titre); font-stretch: 100%; font-size: 16px; font-weight: 600; letter-spacing: -.01em; color: var(--encre); }
.cc-garanties { display: grid; gap: 14px; margin: 0 !important; padding: 0 0 0 48px; border-left: 1px solid var(--filet); list-style: none; }
.cc-garanties li { position: relative; padding-left: 30px; font-family: var(--titre); font-stretch: 100%; font-size: 15.5px; font-weight: 500; line-height: 1.45; letter-spacing: -.005em; color: var(--encre); }
.cc-garanties li::before { content: ""; position: absolute; left: 0; top: 1px; width: 19px; height: 19px; border-radius: 50%; background: #FFF1CC
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M5.2 9.3l2.4 2.4 5.2-5.4' fill='none' stroke='%23111214' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 19px no-repeat; }
.cc-autre { margin-top: 26px !important; font-size: 14.5px; line-height: 1.6; color: var(--encre-2); }
.cc-autre a { color: var(--encre); font-weight: 600; text-decoration: none; }
.cc-autre a:hover { text-decoration: underline; text-underline-offset: 3px; }
.cc .formulaire-rgpd { margin: 18px auto 0 !important; font-size: 12px; color: var(--encre-3); }
.cc .formulaire-rgpd a { color: var(--encre-2); }
@media (max-width: 767px) {
  .cc-suite { grid-template-columns: minmax(0, 1fr); }
  .cc-garanties { padding: 24px 0 0; border-left: 0; border-top: 1px solid var(--filet); }
}
@media (max-width: 599px) {
  .cc-page { padding-top: 28px; }
  .cc-suite { margin-top: 22px; padding: 22px 18px; border-radius: 20px; }
  .cc h1 { font-size: 2rem; }
  .cc .chapeau { margin-top: 10px !important; font-size: 15.5px; }
  .cc-carte { margin-top: 22px; border-radius: 22px; }
  .cc .formulaire-sanipure { padding: 20px 16px 22px; }
}

/* =============================================================================
   FORMULAIRE VERSION 2 (20/10/2026, consigne de l'exploitant ; modèle sanipure.fr/demande/ 1.2.0) :
   écran 1 nuisibles, écran 2 en trois parties numérotées, zone photos, données personnelles avant l'envoi.
   ========================================================================== */
.demande-v2 legend.demande-question { display: block; width: 100%; padding: 0; }
.demande-partie { margin-top: 28px; padding-top: 22px; border-top: 1px solid #ECEBE6; }
.demande-v2 .demande-etape > .demande-question + .demande-offre + .demande-partie,
.demande-v2 .demande-etape > .demande-question + .demande-partie { margin-top: 18px; }
.demande-partie-titre { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; font: 700 17px/1.3 var(--titre); font-stretch: 100%; letter-spacing: -.01em; color: var(--carbone); }
.demande-partie-titre span { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background: var(--jaune); font: 600 12px/1 var(--mono); color: var(--carbone); }
.demande-v2 .demande-groupe { margin-bottom: 20px; }
.demande-libelle { display: block; margin-bottom: 8px; font-size: 15px; font-weight: 700; color: var(--carbone); }
.demande-photos-zone { position: relative; display: flex; align-items: center; gap: 14px; min-height: 64px; padding: 14px 18px; border: 1.5px dashed #C9CBC6; border-radius: 16px; background: #F7F7F5; cursor: pointer; transition: border-color 200ms var(--ease), background-color 200ms var(--ease); }
.demande-photos-zone::before { content: ""; flex: none; width: 34px; height: 34px; border-radius: 10px; background: var(--jaune) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111214' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M4 8h3l2-3h6l2 3h3v12H4z'/%3E%3Ccircle cx='12' cy='13.5' r='3.5'/%3E%3C/svg%3E") center / 20px no-repeat; }
.demande-photos-zone:hover, .demande-photos-zone:focus-within { border-color: var(--jaune); background: #FFF9EA; }
.demande-champ .demande-photos-zone { margin-bottom: 0; font-weight: 400; }
.demande-photos-texte { font-size: 14px; font-weight: 400; line-height: 1.45; color: #6B7178; }
.demande-photos-texte strong { display: block; font-size: 15px; color: var(--carbone); }
.photos-pretes .demande-photos-fichiers { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.demande-photos-fichiers { margin-top: 8px; font-size: 14px; }
.demande-photos-liste { display: grid; gap: 6px; margin: 10px 0 0; padding: 0; list-style: none; }
.demande-photos-liste:empty { display: none; }
.demande-photos-liste li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 12px; border-radius: 10px; background: #F2F2EF; font-size: 14px; color: var(--carbone); }
.demande-photos-liste li span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.demande-photos-retirer { flex: none; padding: 4px 8px; border: 0; border-radius: 6px; background: none; font: 600 13px/1 var(--texte); color: var(--carbone); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.demande-photos-retirer:hover { background: #E4E4DF; }
.demande-options-client .demande-choix span { min-width: 0; min-height: 46px; padding: 0 16px; font-size: 15px; }
.demande-ligne-cp { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.demande-rgpd { margin: 26px 0 18px !important; font-size: 12.5px; line-height: 1.55; color: #6B7178; }
.demande-rgpd a { color: #454A50; }
/* l'information sur les données est maintenant dans le formulaire, juste avant l'envoi : pas de doublon dessous */
:is(.contact-epure, .cc-centre, .cc-colonne-formulaire):has(.demande-rgpd) > .formulaire-rgpd { display: none; }
@media (max-width: 599px) {
  .demande-ligne-cp { grid-template-columns: minmax(0, 1fr); }
  .demande-options-client .demande-choix span { min-height: 44px; padding: 0 14px; font-size: 14.5px; }
}

/* =============================================================================
   ADAPTATIONS WORDPRESS
   Ce qui diffère entre le site statique et le rendu de WordPress : enveloppes
   des parties de modèle, bloc Navigation, bloc Logo du site, styles du cœur.
   Les sélecteurs de composants restent ceux de la maquette.
   ========================================================================== */

/* En-tête flottant : la capsule (.entete) est fixe ; l'enveloppe de la partie de modèle reste dans le flux */
.wp-site-blocks > header.wp-block-template-part { position: static; }
body.admin-bar .entete { top: var(--wp-admin--admin-bar--height, 32px); }
/* Sous 600 px, la barre d'administration défile avec la page : la capsule reste sous elle en haut
   de page, puis remonte à 12 px au fil du défilement (sans cette prise en charge : 12 px d'emblée) */
@media (max-width: 600px) {
  body.admin-bar .entete { top: 0; }
  @supports (animation-timeline: scroll()) {
    body.admin-bar .entete {
      animation: sanipure-barre-admin linear both;
      animation-timeline: scroll(root);
      animation-range: 0px var(--wp-admin--admin-bar--height, 46px);
    }
  }
}
@keyframes sanipure-barre-admin {
  from { top: var(--wp-admin--admin-bar--height, 46px); }
  to { top: 0; }
}
.wp-site-blocks > * + * { margin-block-start: 0; }

/* Logo (bloc Logo du site) */
.wp-block-site-logo.logo, .wp-block-site-logo.logo-pied { line-height: 0; margin: 0; }
.wp-block-site-logo.logo a, .wp-block-site-logo.logo-pied a { display: inline-block; }
.wp-block-site-logo.logo-pied img { height: 44px; width: auto; }

/* Liste d'informations de la barre haute (bloc Liste) */
.barre-infos { margin: 0; padding: 0; }

/* Bloc Navigation — liens du bureau */
.wp-block-navigation.nav-liens { gap: 0; font-size: inherit; }
.wp-block-navigation.nav-liens .wp-block-navigation__container { flex-wrap: nowrap; gap: clamp(16px, 2vw, 30px); }
.nav-liens .wp-block-navigation-item { margin: 0; }
.nav-liens .wp-block-navigation-item__content { padding: 8px 0 !important; }

/* Bloc Navigation — bouton et panneau mobiles (fond sombre, comme la maquette) */
.actions-mobile .wp-block-navigation.nav-mobile { gap: 0; }
.nav-mobile .wp-block-navigation__responsive-container-open {
  display: inline-grid !important; place-items: center; width: 42px; height: 42px; padding: 0;
  color: var(--blanc); background: transparent; border: 0; border-radius: 50%;
}
/* Icône du bouton : celle de la maquette (trois traits) plutôt que celle de WordPress */
.nav-mobile .wp-block-navigation__responsive-container-open svg { display: none; }
.nav-mobile .wp-block-navigation__responsive-container-open::before {
  content: ""; width: 22px; height: 22px; background-color: currentColor;
  -webkit-mask: var(--m-menu) center / contain no-repeat; mask: var(--m-menu) center / contain no-repeat;
}
.wp-block-navigation.nav-mobile .wp-block-navigation__responsive-container.is-menu-open {
  background-color: rgba(14, 14, 14, .985) !important;
  color: var(--blanc) !important;
  padding: 28px var(--gouttiere) 40px !important;
}
.nav-mobile .is-menu-open .wp-block-navigation__responsive-container-close { top: 18px; right: var(--gouttiere); color: var(--blanc); }
.nav-mobile .is-menu-open .wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; fill: currentColor; }
.nav-mobile .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 64px !important; align-items: stretch !important; gap: 4px !important; }
.nav-mobile .is-menu-open .wp-block-navigation__container { align-items: stretch !important; gap: 4px !important; width: 100%; }
.nav-mobile .is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.nav-mobile .is-menu-open .wp-block-navigation-item__content {
  display: flex !important; align-items: center; justify-content: space-between; width: 100%;
  padding: 14px 0 !important; font-size: 22px; font-weight: 700; color: var(--blanc) !important; text-decoration: none;
}
.nav-mobile .is-menu-open .wp-block-navigation-item__content::after {
  content: ""; width: 22px; height: 22px; background-color: var(--jaune);
  -webkit-mask: var(--m-fleche) center / contain no-repeat; mask: var(--m-fleche) center / contain no-repeat;
}

/* Bouton « Demander un devis » (en-tête mobile) : sans l'espacement de mise en page de WordPress */
.actions-mobile .wp-block-buttons { display: flex; gap: 0; }

/* Boutons : WordPress pose ses propres réglages de mise en page flexible */
.wp-block-buttons.groupe-boutons { gap: 12px; }
.menu-mobile .wp-block-buttons, .aside-carte .wp-block-buttons { gap: 12px; }

/* Bloc Tableau : neutraliser les bordures du cœur */
.prose .wp-block-table td, .prose .wp-block-table th { border: 0; border-bottom: 1px solid var(--gris-200); padding: 14px 16px; }
.prose .wp-block-table thead { border-bottom: 0; }
.prose .wp-block-table { overflow-x: auto; }

/* Bloc Détails : aucun marqueur natif */
.wp-block-details > summary { list-style: none; }
.wp-block-details > summary::-webkit-details-marker { display: none; }

/* Légendes et images */
figure .wp-element-caption { margin: 0; }
.prose figure .wp-element-caption { margin-top: 10px; }
.wp-block-image.size-full img { max-width: 100%; }

/* Code court du formulaire : pas de paragraphe parasite */
.formulaire-carte > p:empty { display: none; }

/* Menu mobile WordPress : sous-menu « Autres nuisibles » déplié et en retrait
   (s'applique quand le menu reçoit l'entrée « Autres nuisibles », à la publication des silos) */
.nav-mobile .is-menu-open .nav-autres { border-bottom: 0; }
.nav-mobile .is-menu-open .nav-autres > .wp-block-navigation-item__content {
  padding: 22px 0 6px !important; font-size: 13px !important; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #86868B !important;
}
.nav-mobile .is-menu-open .nav-autres > .wp-block-navigation-item__content::after,
.nav-mobile .is-menu-open .nav-autres .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after { display: none; }
.nav-mobile .is-menu-open .wp-block-navigation-submenu__toggle { display: none; }
.nav-mobile .is-menu-open .nav-autres .wp-block-navigation__submenu-container {
  position: static; width: 100%; padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none;
}
.nav-mobile .is-menu-open .nav-autres .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content { font-size: 19px; }
.nav-mobile .is-menu-open .nav-autres .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container {
  display: flex !important; flex-direction: row !important; flex-wrap: wrap; gap: 4px 16px !important; padding: 0 0 14px !important;
}
.nav-mobile .is-menu-open .nav-autres .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container .wp-block-navigation-item { width: auto; border-bottom: 0; }
.nav-mobile .is-menu-open .nav-autres .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  padding: 4px 0 !important; font-size: 15.5px; font-weight: 500; color: var(--gris-300) !important;
}

/* Identité « Industrial Power » (09/10/2026) : panneau du menu mobile en capitales condensées */
.nav-mobile .is-menu-open .wp-block-navigation-item__content { font-family: var(--titre); font-size: 26px; font-weight: 800; letter-spacing: .02em; text-transform: uppercase; }
.nav-mobile .is-menu-open .nav-autres .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-family: var(--police); text-transform: none; letter-spacing: 0; }
.wp-block-navigation.nav-mobile .wp-block-navigation__responsive-container.is-menu-open { background-color: rgba(16, 16, 16, .99) !important; }
.nav-mobile .wp-block-navigation__responsive-container-open { border-radius: 10px; border: 2px solid rgba(255, 255, 255, .12); }

/* =============================================================================
   MENU MOBILE « APPLICATION » (09/10/2026) — panneau du bloc Navigation.
   Fond opaque, logo, bouton fermer rond, cartes arrondies groupées, icône jaune
   par rubrique, chevrons discrets, « Autres nuisibles » en seconde carte,
   barre « Appeler / Devis gratuit » affichée en bas du panneau ouvert.
   ========================================================================== */
:root { --app-fond: #0B0B0B; --app-carte: #1C1C1E; --app-carte-2: #2C2C2E; --app-sep: rgba(255, 255, 255, .08); --app-gris: #8E8E93;
  --app-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 15'%3E%3Cpath d='M1.5 1.5l6 6-6 6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.wp-block-navigation.nav-mobile .wp-block-navigation__responsive-container.is-menu-open { background-color: var(--app-fond) !important; padding: 0 !important; }
.nav-mobile .is-menu-open .wp-block-navigation__responsive-dialog { position: relative; min-height: 100%; padding: 18px 16px 130px; }
.nav-mobile .is-menu-open .wp-block-navigation__responsive-dialog::before { content: ""; display: block; width: 150px; height: 36px; background: url("assets/img/logo-sanipure-jaune.png") left center / contain no-repeat; }
.nav-mobile .is-menu-open .wp-block-navigation__responsive-container-close { top: 18px !important; right: 16px !important; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--app-carte-2); color: var(--blanc); }
.nav-mobile .is-menu-open .wp-block-navigation__responsive-container-close svg { width: 20px !important; height: 20px !important; }
.nav-mobile .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 24px !important; gap: 0 !important; }
.nav-mobile .is-menu-open .wp-block-navigation__container { gap: 0 !important; }
.nav-mobile .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:not(.nav-autres) { background: var(--app-carte); border-bottom: 1px solid var(--app-sep); }
.nav-mobile .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:first-child { border-radius: 18px 18px 0 0; }
.nav-mobile .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:has(+ .nav-autres),
.nav-mobile .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:not(.nav-autres):last-child { border-radius: 0 0 18px 18px; border-bottom: 0; }
.nav-mobile .is-menu-open .wp-block-navigation-item__content {
  display: flex !important; align-items: center; gap: 14px; padding: 12px 16px !important;
  font: 600 17px/1.3 var(--police) !important; letter-spacing: -.015em !important; text-transform: none !important; color: var(--blanc) !important;
}
.nav-mobile .is-menu-open .wp-block-navigation-item__content::before { content: ""; flex: none; width: 32px; height: 32px; border-radius: 9px; background: var(--jaune) var(--app-ic, var(--i-chevron)) center / 18px no-repeat; }
.nav-mobile .is-menu-open .wp-block-navigation-item__content::after {
  width: 9px !important; height: 15px !important; margin-left: auto; background-color: #636366 !important;
  -webkit-mask: var(--app-chevron) center / contain no-repeat !important; mask: var(--app-chevron) center / contain no-repeat !important;
}
.nav-mobile .is-menu-open [aria-current="page"] { color: var(--jaune) !important; }
/* Autres nuisibles : titre de groupe puis seconde carte */
.nav-mobile .is-menu-open .nav-autres { margin-top: 26px; border: 0 !important; background: none; }
.nav-mobile .is-menu-open .nav-autres > .wp-block-navigation-item__content {
  padding: 0 16px 8px !important; font: 600 13px/1.3 var(--police) !important; letter-spacing: .02em !important; text-transform: uppercase !important; color: var(--app-gris) !important; pointer-events: none;
}
.nav-mobile .is-menu-open .nav-autres > .wp-block-navigation-item__content::before, .nav-mobile .is-menu-open .nav-autres > .wp-block-navigation-item__content::after { display: none !important; }
.nav-mobile .is-menu-open .nav-autres > .wp-block-navigation__submenu-container { background: var(--app-carte) !important; border-radius: 18px; overflow: hidden; }
.nav-mobile .is-menu-open .nav-autres > .wp-block-navigation__submenu-container > .wp-block-navigation-item { border-bottom: 1px solid var(--app-sep) !important; }
.nav-mobile .is-menu-open .nav-autres > .wp-block-navigation__submenu-container > .wp-block-navigation-item:last-child { border-bottom: 0 !important; }
.nav-mobile .is-menu-open .nav-autres > .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content { font-size: 17px !important; }
.nav-mobile .is-menu-open .nav-autres .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { gap: 6px !important; margin: -2px 0 0 !important; padding: 0 16px 14px 62px !important; }
.nav-mobile .is-menu-open .nav-autres .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  padding: 6px 12px !important; border-radius: 999px; background: var(--app-carte-2); font: 500 14px/1.2 var(--police) !important; color: #E5E5EA !important;
}
.nav-mobile .is-menu-open .nav-autres .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container .wp-block-navigation-item__content::before,
.nav-mobile .is-menu-open .nav-autres .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after { display: none !important; }
/* Barre d'action en bas du panneau ouvert */
body:has(.nav-mobile .is-menu-open) .barre-mobile { display: block !important; z-index: 100001; transform: none !important; background: rgba(11, 11, 11, .94); border-top: 1px solid var(--app-sep); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
body:has(.nav-mobile .is-menu-open) .barre-mobile .btn > .wp-block-button__link { border-radius: 14px; }
body:has(.nav-mobile .is-menu-open) .barre-mobile .btn-noir > .wp-block-button__link { background: var(--app-carte-2); border-color: var(--app-carte-2); color: var(--blanc); }
/* Icônes des rubriques du menu mobile (selon l'adresse du lien) */
:is(.menu-mobile, .nav-mobile .is-menu-open) a[href$="/traitement-punaises-de-lit/"] { --app-ic: var(--i-vapeur); }
:is(.menu-mobile, .nav-mobile .is-menu-open) a[href$="/prix-traitement-punaises-de-lit/"] { --app-ic: var(--i-euro); }
:is(.menu-mobile, .nav-mobile .is-menu-open) a[href$="/preparer-son-logement/"] { --app-ic: var(--i-liste); }
:is(.menu-mobile, .nav-mobile .is-menu-open) a[href$="/signes-punaises-de-lit/"] { --app-ic: var(--i-loupe); }
:is(.menu-mobile, .nav-mobile .is-menu-open) a[href$="/hotels-hebergements/"] { --app-ic: var(--i-lit); }
:is(.menu-mobile, .nav-mobile .is-menu-open) a[href$="/entreprise/"] { --app-ic: var(--i-equipe); }
:is(.menu-mobile, .nav-mobile .is-menu-open) a[href$="/questions-frequentes/"] { --app-ic: var(--i-bulle); }
:is(.menu-mobile, .nav-mobile .is-menu-open) a[href$="/zone-intervention/"] { --app-ic: var(--i-repere); }
:is(.menu-mobile, .nav-mobile .is-menu-open) a[href="/"], :is(.menu-mobile, .nav-mobile .is-menu-open) a[href="https://sanipure-grenoble.fr/"] { --app-ic: var(--i-maison); }
:is(.menu-mobile, .nav-mobile .is-menu-open) a[href$="/deratisation-grenoble/"] { --app-ic: var(--i-alerte); }
:is(.menu-mobile, .nav-mobile .is-menu-open) a[href$="/desinsectisation-grenoble/"] { --app-ic: var(--i-insecte); }
:is(.menu-mobile, .nav-mobile .is-menu-open) a[href$="/desinfection-grenoble/"] { --app-ic: var(--i-pulverisateur); }
/* Le cœur de WordPress force un fond transparent sur les éléments du panneau : priorité aux cartes */
.nav-mobile .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:not(.nav-autres) { background-color: var(--app-carte) !important; }
.nav-mobile .is-menu-open .nav-autres > .wp-block-navigation__submenu-container { background-color: var(--app-carte) !important; margin: 0 !important; }
.nav-mobile .is-menu-open .nav-autres .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container .wp-block-navigation-item__content { background-color: var(--app-carte-2) !important; }
.nav-mobile .is-menu-open .nav-autres .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { background-color: transparent !important; }
/* Menu mobile : sans icônes (09/10/2026) */
.nav-mobile .is-menu-open .wp-block-navigation-item__content::before { display: none !important; }
.nav-mobile .is-menu-open .wp-block-navigation-item__content { padding: 14px 16px !important; }
.nav-mobile .is-menu-open .nav-autres > .wp-block-navigation-item__content { padding: 0 16px 8px !important; }
.nav-mobile .is-menu-open .nav-autres .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { padding: 0 16px 14px !important; }
.nav-mobile .is-menu-open .nav-autres .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 6px 12px !important; }

/* =============================================================================
   ACCUEIL « TECHNOLOGICAL WORKER » — ajustements propres au rendu WordPress
   (enveloppes des parties de modèle, cœur des blocs Intégration, Logo, Réseaux sociaux)
   ========================================================================== */
.wp-site-blocks > header.wp-block-template-part { position: sticky; top: 0; z-index: 60; }
body.admin-bar .wp-site-blocks > header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 32px); }
.wp-site-blocks > header.wp-block-template-part .entete, body.admin-bar .entete { position: relative; top: auto; animation: none; }
.wp-block-site-logo.logo-pied img { width: auto; height: 24px; }
.video-lecteur .wp-block-embed__wrapper::before { display: none; }
.wp-block-social-links.pied-reseaux { gap: 8px; margin: 0; padding: 0; }
.pied-reseaux .wp-social-link { margin: 0 !important; border-radius: 0; background: none !important; color: inherit !important; }
.pied-reseaux .wp-social-link .wp-block-social-link-anchor { padding: 0; }
.pied-reseaux .wp-social-link svg { width: 16px; height: 16px; }
.nav-mobile .wp-block-navigation__responsive-container-open { width: 40px; height: 40px; }
.formulaire-sanipure > p:empty { display: none; }
