/*
 * Souqwide — gabarit des fiches produit (24/09/2026)
 *
 * Charge UNIQUEMENT sur les pages produit, apres souqwide-design.css dont il
 * reprend les jetons (--sw-blue, --sw-cyan, --sw-soft, rayons, ombres).
 * Tout est prefixe .sw- : rien ne deborde sur Astra, Elementor ou WooCommerce.
 *
 * RTL : on n'ecrit que des proprietes logiques (inline-start/end), jamais
 * left/right, pour que le meme fichier serve le jour ou une version LTR existe.
 */

/* ── icones : masque SVG peint en currentColor ─────────────────────────── */
.sw-i {
  display: inline-block;
  inline-size: 22px;
  block-size: 22px;
  flex: none;
  background-color: currentColor;
  -webkit-mask: var(--sw-i) center / contain no-repeat;
          mask: var(--sw-i) center / contain no-repeat;
}
.sw-i-battery { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%222%22 y=%227%22 width=%2216%22 height=%2210%22 rx=%222%22/%3E%3Cpath d=%22M22 11v2M6 10.5v3M10 10.5v3%22/%3E%3C/svg%3E"); }
.sw-i-bolt { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M13 2 4 14h7l-1 8 9-12h-7z%22/%3E%3C/svg%3E"); }
.sw-i-light { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M9 18h6M10 22h4M12 2a7 7 0 0 0-4 12.7V17h8v-2.3A7 7 0 0 0 12 2z%22/%3E%3C/svg%3E"); }
.sw-i-magnet { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M6 3v8a6 6 0 0 0 12 0V3h-4v8a2 2 0 0 1-4 0V3z%22/%3E%3Cpath d=%22M6 7h4M14 7h4%22/%3E%3C/svg%3E"); }
.sw-i-car { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 17H3v-5l2-5h14l2 5v5h-2M3 12h18M9.5 17h5%22/%3E%3Ccircle cx=%227.5%22 cy=%2217%22 r=%222%22/%3E%3Ccircle cx=%2216.5%22 cy=%2217%22 r=%222%22/%3E%3C/svg%3E"); }
.sw-i-shield { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z%22/%3E%3Cpath d=%22m9 12 2 2 4-4%22/%3E%3C/svg%3E"); }
.sw-i-clock { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22M12 6v6l4 2%22/%3E%3C/svg%3E"); }
.sw-i-child { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22M8 14s1.5 2 4 2 4-2 4-2M9 9h.01M15 9h.01%22/%3E%3C/svg%3E"); }
.sw-i-kitchen { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 11h18M5 11v7a3 3 0 0 0 3 3h8a3 3 0 0 0 3-3v-7M9 7V4M12 7V3M15 7V4%22/%3E%3C/svg%3E"); }
.sw-i-heat { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 22a7 7 0 0 0 7-7c0-4-3-6-4-9-1 2-2 3-3 3 0-2-1-4-2-6-2 4-5 7-5 12a7 7 0 0 0 7 7z%22/%3E%3C/svg%3E"); }
.sw-i-drop { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 2s7 7.5 7 13a7 7 0 0 1-14 0c0-5.5 7-13 7-13z%22/%3E%3C/svg%3E"); }
.sw-i-box { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M21 8 12 3 3 8v8l9 5 9-5z%22/%3E%3Cpath d=%22m3 8 9 5 9-5M12 13v8%22/%3E%3C/svg%3E"); }
.sw-i-ruler { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 17 17 3l4 4L7 21z%22/%3E%3Cpath d=%22m7 13 2 2M10 10l2 2M13 7l2 2%22/%3E%3C/svg%3E"); }
.sw-i-hand { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M18 11V6a2 2 0 0 0-4 0v5M14 10V4a2 2 0 0 0-4 0v6M10 10.5V6a2 2 0 0 0-4 0v8a8 8 0 0 0 8 8h1a7 7 0 0 0 7-7v-3a2 2 0 0 0-4 0%22/%3E%3C/svg%3E"); }
.sw-i-travel { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%223%22 y=%227%22 width=%2218%22 height=%2213%22 rx=%222%22/%3E%3Cpath d=%22M8 7V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M8 12v3M16 12v3%22/%3E%3C/svg%3E"); }
.sw-i-gear { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%223%22/%3E%3Cpath d=%22M12 2v3M12 19v3M4.9 4.9 7 7M17 17l2.1 2.1M2 12h3M19 12h3M4.9 19.1 7 17M17 7l2.1-2.1%22/%3E%3C/svg%3E"); }
.sw-i-phone { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%226%22 y=%222%22 width=%2212%22 height=%2220%22 rx=%222%22/%3E%3Cpath d=%22M11 18h2%22/%3E%3C/svg%3E"); }
.sw-i-cable { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M9 2v5M15 2v5M6 7h12v4a6 6 0 0 1-12 0zM12 17v5%22/%3E%3C/svg%3E"); }
.sw-i-tv { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%222%22 y=%226%22 width=%2220%22 height=%2213%22 rx=%222%22/%3E%3Cpath d=%22m8 2 4 4 4-4%22/%3E%3C/svg%3E"); }
.sw-i-leaf { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 21c0-9 5-15 16-17-1 11-7 16-15 16%22/%3E%3Cpath d=%22m5 21 8-8%22/%3E%3C/svg%3E"); }
.sw-i-lock { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%224%22 y=%2211%22 width=%2216%22 height=%2210%22 rx=%222%22/%3E%3Cpath d=%22M8 11V7a4 4 0 0 1 8 0v4%22/%3E%3C/svg%3E"); }
.sw-i-sun { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%224%22/%3E%3Cpath d=%22M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4%22/%3E%3C/svg%3E"); }
.sw-i-layers { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 2 2 7l10 5 10-5z%22/%3E%3Cpath d=%22m2 12 10 5 10-5M2 17l10 5 10-5%22/%3E%3C/svg%3E"); }
.sw-i-rotate { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M21 12a9 9 0 1 1-3-6.7L21 8%22/%3E%3Cpath d=%22M21 3v5h-5%22/%3E%3C/svg%3E"); }
.sw-i-users { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%229%22 cy=%228%22 r=%224%22/%3E%3Cpath d=%22M2 21a7 7 0 0 1 14 0M16 3.5a4 4 0 0 1 0 8M22 21a7 7 0 0 0-4-6.3%22/%3E%3C/svg%3E"); }
.sw-i-puzzle { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 7h4a2 2 0 1 1 4 0h4v4a2 2 0 1 1 0 4v4h-4a2 2 0 1 0-4 0H4v-4a2 2 0 1 0 0-4z%22/%3E%3C/svg%3E"); }
.sw-i-wash { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%224%22 y=%222%22 width=%2216%22 height=%2220%22 rx=%222%22/%3E%3Cpath d=%22M4 7h16M8 14c1-1 2-1 3 0s2 1 3 0 2-1 3 0%22/%3E%3C/svg%3E"); }
.sw-i-scissors { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%226%22 cy=%226%22 r=%223%22/%3E%3Ccircle cx=%226%22 cy=%2218%22 r=%223%22/%3E%3Cpath d=%22M20 4 8.1 15.9M14.5 14.5 20 20M8.1 8.1 12 12%22/%3E%3C/svg%3E"); }
.sw-i-check { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22m8 12 3 3 5-6%22/%3E%3C/svg%3E"); }
.sw-i-weight { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M6 8h12l2 13H4z%22/%3E%3Ccircle cx=%2212%22 cy=%225%22 r=%222%22/%3E%3C/svg%3E"); }
.sw-i-truck { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M1 6h13v10H1zM14 10h4l3 3v3h-7%22/%3E%3Ccircle cx=%225%22 cy=%2218%22 r=%222%22/%3E%3Ccircle cx=%2217%22 cy=%2218%22 r=%222%22/%3E%3C/svg%3E"); }
.sw-i-cash { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%222%22 y=%226%22 width=%2220%22 height=%2212%22 rx=%222%22/%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%222.5%22/%3E%3Cpath d=%22M6 10v4M18 10v4%22/%3E%3C/svg%3E"); }
.sw-i-call { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M22 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.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.5c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z%22/%3E%3C/svg%3E"); }
.sw-i-return { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M9 14 4 9l5-5%22/%3E%3Cpath d=%22M4 9h10.5a5.5 5.5 0 0 1 0 11H11%22/%3E%3C/svg%3E"); }
.sw-i-info { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22M12 16v-4M12 8h.01%22/%3E%3C/svg%3E"); }
.sw-i-plus { --sw-i: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 5v14M5 12h14%22/%3E%3C/svg%3E"); }

/* ── resume en haut de fiche : puces cochees ───────────────────────────── */
.single-product .sw-resume { margin: 0 0 6px; color: var(--sw-ink); line-height: 1.9; }
.single-product ul.sw-atouts {
  list-style: none;
  margin: 10px 0 4px;
  padding: 0;
  display: grid;
  gap: 8px;
}
.single-product ul.sw-atouts li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  line-height: 1.7;
  color: var(--sw-ink);
  font-weight: 600;
}
.single-product ul.sw-atouts li::before {
  content: "";
  flex: none;
  inline-size: 20px;
  block-size: 20px;
  margin-block-start: 4px;
  border-radius: 50%;
  background: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2212%22 fill=%22%2300adef%22/%3E%3Cpath d=%22m7 12.5 3.2 3.2L17 9%22 fill=%22none%22 stroke=%22white%22 stroke-width=%222.6%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ── corps de la description ───────────────────────────────────────────── */
.sw-fiche { color: var(--sw-ink); font-size: 16px; line-height: 1.9; }
.sw-fiche > *:first-child { margin-block-start: 0; }
.sw-fiche p { margin: 0 0 12px; }

.sw-fiche .sw-intro {
  font-size: 17px;
  background: var(--sw-soft);
  border-radius: var(--sw-radius-box);
  padding: 18px 20px;
  border-inline-start: 4px solid var(--sw-cyan);
}

.sw-fiche .sw-bloc { margin-block: 30px 0; }

.sw-fiche h2.sw-titre {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 14px;
  font-family: var(--sw-display);
  font-size: 20px;
  font-weight: 800;
  line-height: 1.4;
  color: var(--sw-blue-dark);
}
.sw-fiche h2.sw-titre::before {
  content: "";
  inline-size: 6px;
  block-size: 22px;
  border-radius: 3px;
  background: linear-gradient(var(--sw-cyan), var(--sw-blue));
}

/* images dans la description : une vue par bloc, jamais de texte ajoute
   (les images viennent des fournisseurs, sans infographie). */
.sw-fiche figure.sw-figure {
  margin: 26px 0 0;
  background: var(--sw-soft);
  border-radius: var(--sw-radius-box);
  overflow: hidden;
  text-align: center;
}
.sw-fiche figure.sw-figure img {
  display: block;
  inline-size: 100%;
  max-inline-size: 720px;
  block-size: auto;
  margin-inline: auto;
  border-radius: var(--sw-radius-box);
}
.sw-fiche .sw-figures {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-block-start: 26px;
}
.sw-fiche .sw-figures figure.sw-figure { margin: 0; }

/* cartes des points forts */
.sw-fiche .sw-cartes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}
.sw-fiche .sw-carte {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  background: #fff;
  border: 1px solid var(--sw-line);
  border-radius: var(--sw-radius-card);
  padding: 16px;
  box-shadow: var(--sw-shadow-card);
}
.sw-fiche .sw-carte .sw-pastille {
  display: grid;
  place-items: center;
  inline-size: 46px;
  block-size: 46px;
  flex: none;
  border-radius: 12px;
  background: var(--sw-blue-soft);
  color: var(--sw-blue);
}
.sw-fiche .sw-carte .sw-i { inline-size: 24px; block-size: 24px; }
.sw-fiche .sw-carte h3 {
  margin: 0 0 4px;
  font-family: var(--sw-display);
  font-size: 16px;
  font-weight: 800;
  line-height: 1.5;
  color: var(--sw-dark);
}
.sw-fiche .sw-carte p { margin: 0; font-size: 15px; line-height: 1.8; color: var(--sw-muted); }

/* tableau des caracteristiques */
.sw-fiche table.sw-specs {
  inline-size: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--sw-line);
  border-radius: var(--sw-radius-card);
  overflow: hidden;
  margin: 0;
  font-size: 15px;
}
.sw-fiche table.sw-specs th,
.sw-fiche table.sw-specs td {
  padding: 12px 16px;
  border: 0;
  border-block-end: 1px solid var(--sw-line);
  text-align: start;
  vertical-align: top;
  line-height: 1.7;
}
.sw-fiche table.sw-specs tr:last-child th,
.sw-fiche table.sw-specs tr:last-child td { border-block-end: 0; }
.sw-fiche table.sw-specs th {
  inline-size: 38%;
  background: var(--sw-soft);
  color: var(--sw-muted);
  font-weight: 700;
}
.sw-fiche table.sw-specs td { background: #fff; color: var(--sw-dark); font-weight: 600; }

/* deux colonnes : contenu du colis / usages */
.sw-fiche .sw-duo {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
  margin-block-start: 30px;
}
.sw-fiche .sw-panneau {
  background: var(--sw-soft);
  border-radius: var(--sw-radius-box);
  padding: 18px 20px;
}
.sw-fiche .sw-panneau h2.sw-titre { font-size: 18px; }

.sw-fiche ul.sw-coche,
.sw-fiche ul.sw-liste {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.sw-fiche ul.sw-coche li,
.sw-fiche ul.sw-liste li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 0;
  line-height: 1.7;
}
.sw-fiche ul.sw-coche li .sw-i { color: var(--sw-stock); margin-block-start: 3px; inline-size: 20px; block-size: 20px; }
.sw-fiche ul.sw-liste li .sw-i { color: var(--sw-blue); margin-block-start: 3px; inline-size: 20px; block-size: 20px; }

.sw-fiche ul.sw-usages {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.sw-fiche ul.sw-usages li {
  margin: 0;
  padding: 6px 14px;
  border-radius: var(--sw-radius-pill);
  background: #fff;
  border: 1px solid var(--sw-line-2);
  color: var(--sw-blue-dark);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
}

/* etapes numerotees */
.sw-fiche ol.sw-etapes {
  list-style: none;
  counter-reset: sw-etape;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}
.sw-fiche ol.sw-etapes li {
  counter-increment: sw-etape;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin: 0;
  line-height: 1.8;
}
.sw-fiche ol.sw-etapes li::before {
  content: counter(sw-etape);
  display: grid;
  place-items: center;
  flex: none;
  inline-size: 30px;
  block-size: 30px;
  border-radius: 50%;
  background: var(--sw-blue);
  color: #fff;
  font-family: var(--sw-display);
  font-weight: 800;
  font-size: 15px;
  line-height: 1;
}

/* avant de commander : ce qui n'est pas inclus, les limites */
.sw-fiche .sw-avant {
  background: #fff8e6;
  border: 1px solid #f3dca4;
  border-radius: var(--sw-radius-box);
  padding: 18px 20px;
}
.sw-fiche .sw-avant h2.sw-titre { color: #7a5200; }
.sw-fiche .sw-avant h2.sw-titre::before { background: #e0a526; }
.sw-fiche .sw-avant ul.sw-liste li .sw-i { color: #b77a00; }

/* questions frequentes */
.sw-fiche .sw-faq details {
  border: 1px solid var(--sw-line);
  border-radius: var(--sw-radius-card);
  background: #fff;
  margin: 0 0 10px;
  overflow: hidden;
}
.sw-fiche .sw-faq summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  cursor: pointer;
  list-style: none;
  font-weight: 800;
  color: var(--sw-dark);
  line-height: 1.6;
}
.sw-fiche .sw-faq summary::-webkit-details-marker { display: none; }
.sw-fiche .sw-faq summary::after {
  content: "";
  flex: none;
  inline-size: 18px;
  block-size: 18px;
  background-color: var(--sw-blue);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 5v14M5 12h14%22/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 5v14M5 12h14%22/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .2s ease;
}
.sw-fiche .sw-faq details[open] summary::after { transform: rotate(45deg); }
.sw-fiche .sw-faq details[open] summary { background: var(--sw-soft); }
.sw-fiche .sw-faq details > p { margin: 0; padding: 12px 16px 16px; color: var(--sw-muted); }

/* la commande : quatre garanties VRAIES de la boutique, rien de plus */
.sw-fiche .sw-commande {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
  background: linear-gradient(135deg, var(--sw-blue) 0%, var(--sw-blue-dark) 100%);
  border-radius: var(--sw-radius-box);
  padding: 16px;
}
.sw-fiche .sw-commande > div {
  display: flex;
  gap: 12px;
  align-items: center;
  background: rgba(255, 255, 255, .08);
  border-radius: 12px;
  padding: 12px 14px;
  color: #fff;
}
.sw-fiche .sw-commande .sw-i { color: var(--sw-cyan); inline-size: 26px; block-size: 26px; }
.sw-fiche .sw-commande strong { display: block; font-size: 15px; line-height: 1.5; }
.sw-fiche .sw-commande span.sw-sous { display: block; font-size: 13px; line-height: 1.6; opacity: .85; }
.sw-fiche .sw-commande a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

/* ── titre de la fiche : -20 % (demande de Mouhcine, 24/09/2026) ─────────
   Astra le posait a 30 px / 36 px sur ordinateur comme sur telephone. On
   passe a 24 px en gardant la meme proportion d'interligne (1,2). */
.single-product div.product h1.product_title.entry-title {
  font-size: 24px !important;
  line-height: 1.2 !important;
}

/* ── galerie : glisser pour defiler, sans fleches rondes ──────────────────
   Les fleches FlexSlider sont coupees a la source (souqwide-fiche.php,
   directionNav: false) ; cette regle couvre les pages mises en cache avant
   le changement. pan-y laisse le defilement VERTICAL de la page au navigateur
   et donne le geste horizontal au carrousel. */
.single-product .woocommerce-product-gallery .flex-direction-nav { display: none !important; }
.single-product .woocommerce-product-gallery .flex-viewport { touch-action: pan-y; cursor: grab; }

/* ── miniatures : UNE seule ligne qui defile au doigt (facon Temu) ────────
   5 miniatures entieres visibles + le debut de la 6e, qui signale qu'on peut
   faire defiler. Toucher une miniature change l'image principale (FlexSlider) ;
   toucher l'image principale l'ouvre en plein ecran (PhotoSwipe). */
.single-product .woocommerce-product-gallery ol.flex-control-thumbs {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 8px;
  overflow-x: auto;
  overflow-y: hidden;
  margin: 10px 0 0 !important;
  padding: 2px 0 6px !important;
  list-style: none;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
}
.single-product .woocommerce-product-gallery ol.flex-control-thumbs::-webkit-scrollbar { display: none; }
.single-product .woocommerce-product-gallery ol.flex-control-thumbs li {
  flex: 0 0 calc((100% - 40px) / 5.4) !important;
  inline-size: auto !important;
  max-inline-size: none !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  clear: none !important;
  scroll-snap-align: start;
}
.single-product .woocommerce-product-gallery ol.flex-control-thumbs li img {
  display: block;
  inline-size: 100% !important;
  block-size: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 10px;
  border: 2px solid var(--sw-line);
  background: #fff;
  opacity: .72;
  cursor: pointer;
  transition: opacity .15s, border-color .15s;
}
.single-product .woocommerce-product-gallery ol.flex-control-thumbs li img.flex-active,
.single-product .woocommerce-product-gallery ol.flex-control-thumbs li img:hover {
  opacity: 1;
  border-color: var(--sw-blue);
}
/* l'image principale se touche pour ouvrir le plein ecran */
.single-product .woocommerce-product-gallery__image a { cursor: zoom-in; }

/* ── telephone ─────────────────────────────────────────────────────────── */
@media (max-width: 767px) {
  .sw-fiche { font-size: 15px; }
  .sw-fiche .sw-intro { font-size: 15.5px; padding: 14px 16px; }
  .sw-fiche .sw-bloc,
  .sw-fiche .sw-duo { margin-block-start: 24px; }
  .sw-fiche h2.sw-titre { font-size: 18px; }
  .sw-fiche .sw-cartes { grid-template-columns: 1fr; gap: 10px; }
  .sw-fiche .sw-carte { padding: 14px; }
  .sw-fiche table.sw-specs th,
  .sw-fiche table.sw-specs td { padding: 10px 12px; font-size: 14px; }
  .sw-fiche table.sw-specs th { inline-size: 42%; }
  .sw-fiche .sw-panneau,
  .sw-fiche .sw-avant { padding: 14px 16px; }
  .sw-fiche .sw-commande { grid-template-columns: 1fr 1fr; padding: 12px; gap: 8px; }
  .sw-fiche figure.sw-figure { margin-block-start: 20px; }
  .sw-fiche .sw-figures { gap: 8px; margin-block-start: 20px; }
  .sw-fiche .sw-commande > div { flex-direction: column; align-items: flex-start; gap: 6px; padding: 10px; }
}
