/*
Theme Name: Boustane
Theme URI: https://boustanetech.com
Author: Boustane Technologie
Description: Thème bloc sur mesure de la boutique Boustane Technologie (Dakar). Design converti depuis la maquette HTML, contenu 100 % éditable dans l'éditeur de blocs.
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
Version: 1.0.0
License: GNU General Public License v2 or later
Text Domain: boustane
*/

/* =========================================================
   Boustane Technologie — feuille de style de la maquette
   Charte : logo Boustane (dégradé orange → rouge, anthracite)
   Registre : référence WoodMart électronique (fond gris froid,
   blocs blancs encartés à 10 px, titres à gauche, densité forte)
   ========================================================= */

:root {
  --orange: #E8481C;           /* départ du dégradé du logo */
  --rouge: #E3141B;            /* arrivée du dégradé du logo */
  --marque: #E43C24;           /* teinte dominante du logo */
  --marque-texte: #D2301C;     /* texte de marque sur blanc : contraste AA 5,0 */
  --grad: linear-gradient(90deg, var(--orange), var(--rouge));
  --grad-bouton: linear-gradient(90deg, #DA3A1B, #CF1219);   /* AA avec texte blanc */
  --encre: #1F2937;
  --encre-2: #374151;
  --doux: #6B7280;
  --ligne: #E5E7EB;
  --fond: #F5F7FA;
  --blanc: #FFFFFF;
  --teinte: #FDF0EB;           /* teinte claire de la marque (bandeau de navigation) */
  --wa: #25D366;
  --r: 10px;
  --r-s: 4px;
  --ombre: 0 12px 30px -12px rgba(17, 24, 39, .18);
  --titres: "Montserrat", system-ui, sans-serif;
  --texte: "Inter", system-ui, sans-serif;
  --conteneur: 1320px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font: 400 14px/1.55 var(--texte);
  color: var(--encre);
  background: var(--fond);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
h1, h2, h3, h4 { font-family: var(--titres); font-weight: 600; margin: 0; line-height: 1.25; letter-spacing: -.01em; text-wrap: balance; hyphens: none; }
p { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }
.ic { width: 1.25em; height: 1.25em; flex: none; display: inline-block; vertical-align: middle; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sr-focus:focus { position: fixed !important; top: 8px; left: 8px; width: auto; height: auto; clip: auto; z-index: 999; background: var(--encre); color: #fff; padding: 10px 14px; border-radius: var(--r-s); }
:focus-visible { outline: 2px solid var(--marque-texte); outline-offset: 2px; }

.conteneur { width: 100%; max-width: var(--conteneur); margin-inline: auto; padding-inline: 24px; }

/* ---------- boutons ---------- */
.bouton {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 42px; padding: 0 20px; border: 0; border-radius: var(--r-s);
  background: var(--grad-bouton); color: #fff;
  font: 600 14px/1 var(--texte); white-space: nowrap;
  transition: filter .2s, transform .2s;
}
.bouton:hover { filter: brightness(1.08); }
.bouton:active { transform: translateY(1px); }
.bouton--blanc { background: #fff; color: var(--encre); }
.bouton--blanc:hover { filter: none; color: var(--marque-texte); }
.bouton--contour { background: transparent; color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.45); }
.bouton--contour:hover { box-shadow: inset 0 0 0 1.5px #fff; filter: none; }
.bouton--mini { height: 34px; padding: 0 14px; font-size: 13px; }
.bouton--wa { background: var(--wa); color: #0B3B1E; }
.lien-fleche { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 14px; color: var(--marque-texte); white-space: nowrap; }
.lien-fleche .ic { width: 16px; height: 16px; transition: transform .2s; }
.lien-fleche:hover .ic { transform: translateX(3px); }

/* ---------- bandeau supérieur ---------- */
.bandeau { background: var(--encre); color: #E5E7EB; font-size: 12.5px; }
.bandeau-in { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 36px; }
.bandeau-msg { display: flex; gap: 22px; flex-wrap: wrap; }
.bandeau-msg span { display: inline-flex; align-items: center; gap: 7px; }
.bandeau-msg .ic { width: 15px; height: 15px; color: #FDBA9C; }
.bandeau-liens { display: flex; gap: 20px; }
.bandeau a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- en-tête ---------- */
.entete { position: sticky; top: 0; z-index: 50; background: #fff; transition: box-shadow .25s; }
.entete.est-colle { box-shadow: 0 6px 24px -10px rgba(17,24,39,.22); }
.entete-haut { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 40px; padding-block: 16px; transition: padding .25s; }
.entete.est-colle .entete-haut { padding-block: 9px; }
.btn-tiroir, .panier-mobile { display: none; }
.logo img { height: 32px; width: auto; }

.recherche { position: relative; max-width: 620px; width: 100%; }
.recherche input {
  width: 100%; height: 46px; padding: 0 56px 0 22px;
  border: 1.5px solid var(--ligne); border-radius: 999px; background: #fff;
  font-size: 14px; outline: none; transition: border-color .2s;
}
.recherche input::placeholder { color: #8B929E; }
.recherche input:focus { border-color: var(--marque); }
.recherche input::-webkit-search-cancel-button { display: none; }
.recherche button {
  position: absolute; right: 5px; top: 5px; width: 36px; height: 36px; border: 0; border-radius: 50%;
  background: var(--grad); color: #fff; display: grid; place-items: center;
}
.recherche button .ic { width: 17px; height: 17px; }
.suggestions {
  position: absolute; left: 0; right: 0; top: calc(100% + 8px); z-index: 60;
  background: #fff; border-radius: var(--r); box-shadow: var(--ombre); border: 1px solid var(--ligne);
  padding: 6px; display: none;
}
.suggestions.est-ouvert { display: block; }
.sugg { display: grid; grid-template-columns: 44px 1fr auto; gap: 12px; align-items: center; padding: 7px 10px; border-radius: var(--r-s); }
.sugg:hover, .sugg.est-actif { background: var(--fond); }
.sugg img { width: 44px; height: 44px; border-radius: 6px; object-fit: cover; }
.sugg strong { font-weight: 500; font-size: 13.5px; }
.sugg mark { background: none; color: var(--marque-texte); font-weight: 700; }
.sugg span { font-size: 13px; font-weight: 600; color: var(--marque-texte); white-space: nowrap; }
.sugg-vide { padding: 12px 14px; color: var(--doux); font-size: 13.5px; }

.entete-infos { display: flex; gap: 30px; }
.info { display: flex; align-items: center; gap: 11px; }
.info .ic { width: 32px; height: 32px; color: var(--encre); stroke-width: 1.4; }
.info strong { display: block; font-size: 13.5px; font-weight: 600; line-height: 1.3; }
.info em { display: block; font-style: normal; font-size: 13px; color: var(--marque-texte); line-height: 1.3; }

.entete-bas { background: var(--teinte); }
.entete-bas-in { display: flex; align-items: center; gap: 28px; min-height: 58px; }
.cats { position: relative; }
.btn-cats {
  display: inline-flex; align-items: center; gap: 10px; height: 44px; padding: 0 16px 0 5px;
  border: 0; border-radius: 999px; background: #fff; font-weight: 500; font-size: 14px; white-space: nowrap;
}
.btn-cats .rond { width: 34px; height: 34px; border-radius: 50%; background: var(--grad); color: #fff; display: grid; place-items: center; }
.btn-cats .rond .ic { width: 18px; height: 18px; }
.btn-cats .chev { width: 15px; height: 15px; color: var(--doux); transition: transform .2s; }
.cats.est-ouvert .btn-cats .chev { transform: rotate(180deg); }

.mega {
  position: absolute; left: 0; top: calc(100% + 7px); z-index: 70;
  width: min(1100px, calc(100vw - 48px));
  display: grid; grid-template-columns: repeat(4, 1fr) 230px; gap: 8px 28px;
  padding: 26px 28px; background: #fff; border-radius: var(--r); box-shadow: var(--ombre); border: 1px solid var(--ligne);
  opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .18s, transform .18s, visibility .18s;
}
.cats.est-ouvert .mega { opacity: 1; visibility: visible; transform: none; }
.mega-col { display: flex; flex-direction: column; gap: 7px; }
.mega-col a { font-size: 13.5px; color: var(--encre-2); }
.mega-col a:hover { color: var(--marque-texte); }
.mega-col .mega-titre { display: flex; align-items: center; gap: 8px; font: 600 14.5px/1.3 var(--titres); color: var(--encre); margin-bottom: 3px; }
.mega-col .mega-titre:not(:first-child) { margin-top: 14px; }
.mega-titre .ic { width: 20px; height: 20px; color: var(--marque); }
.mega-promo { position: relative; border-radius: var(--r); overflow: hidden; grid-row: span 1; }
.mega-promo img { width: 100%; height: 100%; object-fit: cover; min-height: 280px; }
.mega-promo span { position: absolute; inset: auto 0 0; padding: 16px; color: #fff; font: 600 17px/1.25 var(--titres); background: linear-gradient(transparent, rgba(0,0,0,.55)); }
.mega-promo em { display: block; font: 600 11.5px/1 var(--texte); letter-spacing: .08em; text-transform: uppercase; margin-bottom: 6px; opacity: .9; }

.nav { display: flex; gap: 28px; flex: 1; }
.nav a { font-size: 14px; font-weight: 500; color: var(--encre); white-space: nowrap; transition: color .2s; display: inline-flex; align-items: center; gap: 5px; }
.nav a:hover, .nav a.est-courant { color: var(--marque-texte); }
.nav-promo { color: var(--marque-texte) !important; font-weight: 600 !important; }
.nav-promo .ic { width: 15px; height: 15px; }

.outils { display: flex; align-items: center; gap: 12px; }
.devise { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--encre-2); margin-right: 8px; white-space: nowrap; }
.devise .ic { width: 16px; height: 16px; }
.rond-ic { position: relative; width: 42px; height: 42px; border-radius: 50%; background: #fff; display: grid; place-items: center; transition: color .2s; }
.rond-ic:hover { color: var(--marque-texte); }
.rond-ic .ic { width: 20px; height: 20px; }
.rond-ic--plein { background: var(--grad); color: #fff; }
.rond-ic--plein:hover { color: #fff; }
.pastille {
  position: absolute; top: -3px; right: -3px; min-width: 17px; height: 17px; padding: 0 4px;
  border-radius: 999px; background: var(--encre); color: #fff; font: 600 10px/17px var(--texte); text-align: center;
  box-shadow: 0 0 0 2px var(--teinte);
}
.rond-ic--plein .pastille { background: #fff; color: var(--rouge); }
.panier { display: inline-flex; align-items: center; gap: 10px; }
.panier-total { font-weight: 600; font-size: 14px; white-space: nowrap; }

/* ---------- héros ---------- */
.heros {
  display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; grid-template-rows: 268px 176px;
  gap: 18px; margin-top: 24px;
}
.diapo { grid-column: 1 / 3; grid-row: 1 / 3; position: relative; border-radius: var(--r); overflow: hidden; background: #2A1A33; isolation: isolate; }
.diapo-slide {
  position: absolute; inset: 0; display: flex; justify-content: center;
  background: var(--photo) center / cover no-repeat;
  opacity: 0; transition: opacity .7s ease; z-index: 0;
}
.diapo-slide::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,8,20,.72) 0%, rgba(10,8,20,.35) 45%, rgba(10,8,20,0) 75%); }
.diapo-slide--marque::before { background: linear-gradient(180deg, rgba(150,30,5,.55) 0%, rgba(150,30,5,.15) 50%, rgba(0,0,0,0) 80%); }
.diapo-slide.est-actif { opacity: 1; z-index: 1; }
.diapo-texte { position: relative; text-align: center; color: #fff; padding: 44px 40px 0; max-width: 560px; }
.diapo-texte h2 { font-size: 34px; font-weight: 700; line-height: 1.15; }
.diapo-texte p { margin: 12px auto 22px; font-size: 15px; opacity: .92; max-width: 440px; }
.diapo-slide .diapo-texte > * { transform: translateY(12px); opacity: 0; transition: transform .6s ease, opacity .6s ease; }
.diapo-slide.est-actif .diapo-texte > * { transform: none; opacity: 1; }
.diapo-slide.est-actif .diapo-texte p { transition-delay: .08s; }
.diapo-slide.est-actif .diapo-texte .bouton { transition-delay: .16s; }
.diapo-points { position: absolute; z-index: 3; left: 50%; bottom: 18px; transform: translateX(-50%); display: flex; gap: 6px; padding: 6px 8px; border-radius: 999px; background: rgba(255,255,255,.92); }
.diapo-points button { width: 10px; height: 10px; border: 0; padding: 0; border-radius: 50%; background: #C4C8CF; transition: background .2s, width .2s; }
.diapo-points button.est-actif { background: var(--encre); width: 22px; border-radius: 999px; }

.banniere {
  position: relative; border-radius: var(--r); overflow: hidden; color: #fff; isolation: isolate;
  display: flex; flex-direction: column; align-items: flex-start; justify-content: center;
  padding: 26px 28px; background: var(--photo) center / cover no-repeat;
}
.banniere::before { content: ""; position: absolute; inset: 0; z-index: -1; transition: transform .5s ease; }
.banniere h2 { font-size: 24px; font-weight: 700; text-shadow: 0 1px 12px rgba(0,0,0,.12); }
.banniere p { font-size: 14px; margin-top: 4px; opacity: .95; }
.banniere .bouton { margin-top: 16px; }
.banniere--flash { grid-column: 3 / 5; grid-row: 1; background-position: 70% 40%; }
.banniere--flash::before { background: linear-gradient(90deg, rgba(196,102,128,.78) 0%, rgba(196,102,128,.35) 46%, rgba(196,102,128,0) 70%); }
.banniere-sur { display: inline-flex; align-items: center; gap: 6px; font: 600 12px/1 var(--texte); letter-spacing: .06em; text-transform: uppercase; margin-bottom: 8px; }
.banniere-sur .ic { width: 15px; height: 15px; }
.banniere--petite { padding: 22px 24px; }
.banniere--petite h2 { font-size: 19px; }
.banniere--petite p { font-size: 13.5px; }
.banniere--petite .bouton { margin-top: 12px; }
.banniere--bleue { grid-column: 3; grid-row: 2; background-position: 75% 50%; }
.banniere--bleue::before { background: linear-gradient(90deg, rgba(10,70,180,.75), rgba(10,70,180,.2) 60%, rgba(10,70,180,0)); }
.banniere--jaune { grid-column: 4; grid-row: 2; background-position: 60% 50%; }
.banniere--jaune::before { background: linear-gradient(90deg, rgba(190,120,0,.78), rgba(190,120,0,.25) 60%, rgba(190,120,0,0)); }

.compte-rebours { display: flex; gap: 6px; margin-top: 14px; }
.compte-rebours > span { display: flex; flex-direction: column; align-items: center; min-width: 46px; padding: 7px 4px 6px; border-radius: 6px; background: #fff; color: var(--doux); font-size: 10.5px; line-height: 1.2; }
.compte-rebours b { font: 600 19px/1.15 var(--titres); color: var(--encre); font-variant-numeric: tabular-nums; }
.compte-rebours--mini { margin: 0 0 0 10px; display: inline-flex; gap: 4px; vertical-align: middle; }
.compte-rebours--mini > span { flex-direction: row; align-items: baseline; gap: 2px; min-width: 0; padding: 5px 8px; background: var(--grad); color: rgba(255,255,255,.85); font-size: 11px; }
.compte-rebours--mini b { color: #fff; font-size: 14px; }

/* ---------- réassurance ---------- */
.reassurance { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 24px; background: #fff; border-radius: var(--r); padding: 22px 8px; }
.reassurance li { display: flex; align-items: center; gap: 14px; padding: 0 24px; }
.reassurance li + li { border-left: 1px solid var(--ligne); }
.reassurance .ic { width: 38px; height: 38px; color: var(--marque); stroke-width: 1.4; }
.reassurance strong { display: block; font: 600 14.5px/1.3 var(--titres); }
.reassurance span { font-size: 13px; color: var(--doux); }

/* ---------- blocs de section ---------- */
.bloc { margin-top: 52px; }
.bloc-tete { display: flex; align-items: center; gap: 20px; margin-bottom: 20px; }
.bloc-tete h2 { font-size: 24px; display: flex; align-items: center; gap: 8px; }
.bloc-tete .lien-fleche { margin-left: auto; }
.bloc-sous { color: var(--doux); font-size: 14px; margin-left: auto; }

.cats-grille { display: grid; grid-template-columns: repeat(8, 1fr); gap: 16px; }
.carte-cat { background: #fff; border-radius: var(--r); padding: 12px 12px 16px; text-align: center; transition: box-shadow .25s, transform .25s; }
.carte-cat:hover { box-shadow: var(--ombre); transform: translateY(-3px); }
.carte-cat img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 8px; margin-bottom: 12px; }
.carte-cat strong { display: flex; align-items: center; justify-content: center; min-height: 2.6em; font: 600 14px/1.3 var(--titres); }
.carte-cat span { display: block; margin-top: 2px; font-size: 13px; color: var(--doux); }

/* ---------- cartes produit ---------- */
.produits-grille { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.carte-produit { position: relative; background: #fff; border-radius: var(--r); padding: 12px; display: flex; flex-direction: column; transition: box-shadow .25s; }
.carte-produit:hover { box-shadow: var(--ombre); }
.cp-image { display: block; border-radius: 8px; overflow: hidden; background: #F3F4F6; }
.cp-image img { width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform .5s ease; }
.carte-produit:hover .cp-image img { transform: scale(1.04); }
.cp-badge { position: absolute; top: 20px; left: 20px; z-index: 2; padding: 4px 9px; border-radius: 5px; font: 700 12px/1.2 var(--texte); color: #fff; }
.cp-badge--remise { background: var(--grad-bouton); }
.cp-badge--nouveau { background: var(--encre); }
.cp-badge--stock { background: #FFF4E5; color: #9A3412; }
.cp-actions { position: absolute; top: 20px; right: 20px; z-index: 2; display: flex; flex-direction: column; gap: 6px; }
.cp-actions button { width: 34px; height: 34px; border: 0; border-radius: 50%; background: #fff; display: grid; place-items: center; box-shadow: 0 2px 10px rgba(17,24,39,.12); opacity: 0; transform: translateX(6px); transition: opacity .2s, transform .2s, color .2s; }
.cp-actions .ic { width: 17px; height: 17px; }
.carte-produit:hover .cp-actions button, .cp-actions button[aria-pressed="true"], .cp-actions button:focus-visible { opacity: 1; transform: none; }
.cp-actions button:hover { color: var(--marque-texte); }
.cp-favori[aria-pressed="true"] { color: var(--rouge); }
.cp-favori[aria-pressed="true"] .ic { fill: currentColor; }
.cp-comparer[aria-pressed="true"] { color: #fff; background: var(--encre); }
.cp-corps { display: flex; flex-direction: column; flex: 1; padding: 12px 2px 0; }
.cp-marque { font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--doux); }
.cp-nom { font: 500 14px/1.4 var(--texte); margin-top: 3px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.8em; }
.cp-nom a:hover { color: var(--marque-texte); }
.cp-note { display: flex; align-items: center; gap: 6px; margin-top: 6px; font-size: 12px; color: var(--doux); }
.etoiles {
  --note: 5; display: inline-block; width: 78px; height: 14px; flex: none;
  background: linear-gradient(90deg, var(--orange) calc(var(--note) / 5 * 100%), #D9DCE1 0);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2.5 2.9 6 6.6.9-4.8 4.6 1.2 6.5L12 17.4l-5.9 3.1 1.2-6.5-4.8-4.6 6.6-.9z'/%3E%3C/svg%3E") 0 0 / 15.6px 14px repeat-x;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2.5 2.9 6 6.6.9-4.8 4.6 1.2 6.5L12 17.4l-5.9 3.1 1.2-6.5-4.8-4.6 6.6-.9z'/%3E%3C/svg%3E") 0 0 / 15.6px 14px repeat-x;
}
.cp-prix { display: flex; flex-direction: column; align-items: flex-start; margin: 8px 0 12px; }
.cp-prix strong { font: 700 17px/1.2 var(--titres); color: var(--marque-texte); white-space: nowrap; }
.cp-prix del { font-size: 13px; color: #8B929E; white-space: nowrap; }
.cp-jauge { height: 6px; border-radius: 99px; background: #F1E3DE; margin-top: 10px; overflow: hidden; }
.cp-jauge span { display: block; height: 100%; border-radius: inherit; background: var(--grad); }
.cp-jauge { margin-top: -2px; }
.cp-jauge-txt { font-size: 12px; color: var(--doux); margin: 5px 0 12px; }
.cp-jauge-txt b { color: var(--encre); font-weight: 600; }
.cp-ajouter {
  margin-top: auto; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 40px; border: 1.5px solid var(--ligne); border-radius: var(--r-s); background: #fff;
  font-weight: 600; font-size: 13.5px; transition: background .2s, border-color .2s, color .2s;
}
.cp-ajouter .ic { width: 17px; height: 17px; }
.cp-ajouter:hover { background: var(--grad-bouton); border-color: transparent; color: #fff; }
.cp-ajouter.est-ajoute { background: var(--encre); border-color: var(--encre); color: #fff; }

/* ventes flash */
.flash .bloc-tete h2 .ic { width: 22px; height: 22px; color: var(--rouge); }
.flash-fin { font-size: 14px; color: var(--doux); display: flex; align-items: center; }

/* campagne */
.campagne { display: block; border-radius: var(--r); overflow: hidden; }
.campagne img { width: 100%; height: auto; transition: transform .6s ease; }
.campagne:hover img { transform: scale(1.015); }

/* onglets */
.onglets { display: flex; gap: 6px; margin-left: auto; }
.onglet { height: 36px; padding: 0 16px; border-radius: 999px; display: inline-flex; align-items: center; font-weight: 500; font-size: 13.5px; color: var(--encre-2); cursor: pointer; transition: background .2s, color .2s; user-select: none; }
.onglet:hover { color: var(--marque-texte); }
.onglet.est-actif { background: var(--encre); color: #fff; }
.panneau { display: none; }
.panneau.est-actif { display: block; animation: apparait .35s ease; }
@keyframes apparait { from { opacity: 0; transform: translateY(6px); } }

/* nouveautés */
.nouveautes { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.tuile-marque {
  position: relative; overflow: hidden; border-radius: var(--r); padding: 26px 24px; color: #fff;
  background: var(--grad); display: flex; flex-direction: column; align-items: flex-start; isolation: isolate;
}
.tuile-sur { font: 600 11.5px/1 var(--texte); letter-spacing: .08em; text-transform: uppercase; opacity: .9; }
.tuile-marque h3 { font-size: 21px; font-weight: 700; margin-top: 10px; }
.tuile-marque p { font-size: 13.5px; margin-top: 8px; opacity: .92; }
.tuile-marque .bouton { margin-top: 16px; height: 38px; font-size: 13.5px; }
.tuile-marque img { position: absolute; inset: auto 0 0; z-index: -1; width: 100%; height: 46%; object-fit: cover; mask: linear-gradient(transparent, #000 45%); -webkit-mask: linear-gradient(transparent, #000 45%); }

/* espace pro */
.pro { position: relative; display: grid; grid-template-columns: 1.05fr 1fr; border-radius: var(--r); overflow: hidden; background: var(--encre); color: #fff; }
.pro-photo { position: absolute; inset: 0 0 0 auto; width: 50%; }
.pro-texte { padding: 44px 48px; position: relative; z-index: 1; }
.pro-sur { display: inline-flex; align-items: center; gap: 8px; font: 600 12px/1 var(--texte); letter-spacing: .08em; text-transform: uppercase; color: #FDBA9C; }
.pro-sur .ic { width: 17px; height: 17px; }
.pro h2 { font-size: 28px; font-weight: 700; margin-top: 14px; max-width: 600px; }
.pro ul { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; margin-top: 22px; }
.pro li { display: flex; gap: 9px; align-items: flex-start; font-size: 14px; color: #E5E7EB; }
.pro li .ic { width: 18px; height: 18px; color: #FDBA9C; margin-top: 1px; }
.pro-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.pro-photo { height: 100%; object-fit: cover; mask: linear-gradient(90deg, transparent, #000 30%); -webkit-mask: linear-gradient(90deg, transparent, #000 30%); }

/* marques */
.marques { display: grid; grid-template-columns: repeat(10, 1fr); gap: 12px; }
.marques li { height: 76px; display: grid; place-items: center; background: #fff; border-radius: var(--r); font: 700 17px/1 var(--titres); color: #9AA0AA; letter-spacing: -.01em; transition: color .2s; }
.marques li:hover { color: var(--encre); }

/* avis */
.avis-grille { display: grid; grid-template-columns: 1fr 1.25fr 1.25fr 1.25fr; gap: 16px; }
.avis-synthese { background: #fff; border-radius: var(--r); padding: 26px 24px; display: flex; flex-direction: column; gap: 8px; }
.avis-synthese strong { font: 700 44px/1 var(--titres); }
.avis-synthese small { font-size: 18px; color: var(--doux); font-weight: 600; }
.avis-synthese .etoiles { width: 104px; height: 18px; -webkit-mask-size: 20.8px 18px; mask-size: 20.8px 18px; }
.avis-synthese p { color: var(--doux); font-size: 13.5px; }
.avis-synthese .lien-fleche { margin-top: auto; white-space: normal; font-size: 13.5px; }
.avis { margin: 0; background: #fff; border-radius: var(--r); padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.avis blockquote { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--encre-2); }
.avis figcaption { margin-top: auto; font-size: 13px; color: var(--doux); }
.avis figcaption strong { color: var(--encre); font-weight: 600; }
.verifie { display: flex; align-items: center; gap: 5px; margin-top: 4px; color: #15803D; font-size: 12.5px; font-weight: 500; }
.verifie .ic { width: 14px; height: 14px; }

/* ---------- newsletter + pied ---------- */
.newsletter { display: grid; grid-template-columns: 1fr 1.1fr; gap: 20px 40px; align-items: center; background: #fff; border-radius: var(--r); padding: 28px 30px; }
.nl-texte { display: flex; gap: 18px; align-items: center; }
.nl-form { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
.nl-icone { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; background: var(--teinte); color: var(--marque); flex: none; }
.nl-icone .ic { width: 26px; height: 26px; }
.nl-texte h2 { font-size: 20px; }
.nl-texte p { color: var(--doux); margin-top: 3px; }
.nl-form input[type="email"] { height: 46px; padding: 0 16px; border: 1.5px solid var(--ligne); border-radius: var(--r-s); outline: none; min-width: 0; }
.nl-form input[type="email"]:focus { border-color: var(--marque); }
.nl-form .bouton { height: 46px; }
.nl-wa { grid-column: 1 / -1; display: flex; gap: 8px; align-items: center; font-size: 13px; color: var(--doux); }
.nl-wa input { accent-color: var(--rouge); width: 16px; height: 16px; }

.pied { margin-top: 52px; background: #fff; border-top: 1px solid var(--ligne); }
.pied-grille { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr 1.2fr; gap: 36px; padding-block: 48px 40px; }
.pied-marque img { height: 34px; width: auto; }
.pied-marque > p { color: var(--doux); margin-top: 16px; max-width: 340px; }
.pied-contact { margin-top: 18px; display: grid; gap: 9px; }
.pied-contact li { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; }
.pied-contact .ic { width: 17px; height: 17px; color: var(--marque); margin-top: 2px; }
.pied-contact a:hover { color: var(--marque-texte); }
.pied h3 { font-size: 15px; margin-bottom: 14px; }
.pied nav { display: flex; flex-direction: column; gap: 9px; }
.pied nav a { font-size: 13.5px; color: var(--encre-2); }
.pied nav a:hover { color: var(--marque-texte); }
.reseaux { display: flex; gap: 8px; margin-bottom: 26px; }
.reseaux a { width: 40px; height: 40px; border-radius: 50%; border: 1.5px solid var(--ligne); display: grid; place-items: center; transition: background .2s, color .2s, border-color .2s; }
.reseaux a:hover { background: var(--grad); color: #fff; border-color: transparent; }
.reseaux .ic { width: 18px; height: 18px; }
.paiements { display: flex; flex-wrap: wrap; gap: 6px; }
.paiements li { padding: 5px 10px; border-radius: 5px; border: 1px solid var(--ligne); font-size: 12px; font-weight: 600; color: var(--encre-2); }
.pied-bas { border-top: 1px solid var(--ligne); }
.pied-bas-in { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding-block: 18px; font-size: 13px; color: var(--doux); }
.pied-bas nav { flex-direction: row; gap: 20px; }

.wa-flottant {
  position: fixed; right: 22px; bottom: 22px; z-index: 80; display: flex; align-items: center; gap: 10px;
  height: 56px; padding: 0 20px 0 16px; border-radius: 999px; background: var(--wa); color: #073B1C;
  font-weight: 600; box-shadow: 0 10px 28px -8px rgba(37,211,102,.7);
  transition: transform .2s;
}
.wa-flottant:hover { transform: translateY(-2px); }
.wa-flottant .ic { width: 28px; height: 28px; }

.toast {
  position: fixed; left: 50%; bottom: 26px; z-index: 90; transform: translate(-50%, 20px); opacity: 0; pointer-events: none;
  display: flex; align-items: center; gap: 10px; padding: 12px 18px; border-radius: var(--r); background: var(--encre); color: #fff;
  box-shadow: var(--ombre); font-size: 14px; transition: opacity .25s, transform .25s;
}
.toast.est-visible { opacity: 1; transform: translate(-50%, 0); }
.toast .ic { color: #86EFAC; }
.toast a { color: #FDBA9C; font-weight: 600; margin-left: 6px; }

/* tiroir mobile */
.tiroir { position: fixed; inset: 0; z-index: 100; visibility: hidden; }
.tiroir.est-ouvert { visibility: visible; }
.tiroir-voile { position: absolute; inset: 0; background: rgba(17,24,39,.5); opacity: 0; transition: opacity .25s; }
.tiroir.est-ouvert .tiroir-voile { opacity: 1; }
.tiroir-panneau { position: absolute; inset: 0 auto 0 0; width: min(340px, 86vw); background: #fff; padding: 18px 20px 24px; display: flex; flex-direction: column; gap: 16px; overflow-y: auto; transform: translateX(-100%); transition: transform .3s ease; }
.tiroir.est-ouvert .tiroir-panneau { transform: none; }
.tiroir-tete { display: flex; justify-content: space-between; align-items: center; }
.tiroir-tete img { height: 30px; width: auto; }
.tiroir-fermer { width: 40px; height: 40px; border: 0; border-radius: 50%; background: var(--fond); display: grid; place-items: center; }
.tiroir-nav { display: flex; flex-direction: column; }
.tiroir-nav a { display: flex; align-items: center; gap: 12px; padding: 11px 4px; font-weight: 500; border-bottom: 1px solid #F1F2F4; }
.tiroir-nav .ic { color: var(--marque); }
.tiroir-nav hr { border: 0; height: 10px; margin: 0; }

/* animations d'apparition */
.revele { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
.revele.est-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .revele { opacity: 1; transform: none; }
}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 1240px) {
  .entete-infos .info:last-child { display: none; }
  .nav { gap: 20px; }
  .devise { display: none; }
  .cats-grille { grid-template-columns: repeat(4, 1fr); }
  .marques { grid-template-columns: repeat(5, 1fr); }
  .avis-grille { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 1080px) {
  .produits-grille, .nouveautes { grid-template-columns: repeat(4, 1fr); }
  .nouveautes .carte-produit:last-child, .produits-grille .carte-produit:nth-child(5) { display: none; }
  .produits-grille--defile .carte-produit:nth-child(5) { display: flex; }
  .heros { grid-template-columns: 1fr 1fr; grid-template-rows: 380px 220px 170px; }
  .diapo { grid-column: 1 / 3; grid-row: 1; }
  .banniere--flash { grid-column: 1 / 3; grid-row: 2; }
  .banniere--bleue { grid-column: 1; grid-row: 3; }
  .banniere--jaune { grid-column: 2; grid-row: 3; }
  .reassurance { grid-template-columns: 1fr 1fr; row-gap: 20px; }
  .reassurance li:nth-child(3) { border-left: 0; }
  .pied-grille { grid-template-columns: 1fr 1fr 1fr; }
  .pied-marque { grid-column: 1 / -1; }
  .pro { grid-template-columns: minmax(0, 1fr); }
  .pro-photo { width: 100%; opacity: .25; mask: none; -webkit-mask: none; }
  .newsletter { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 900px) {
  .bandeau-liens { display: none; }
  .bandeau-msg span:nth-child(2) { display: none; }
  .bandeau-in { justify-content: center; }
  .entete-haut { grid-template-columns: auto 1fr auto; gap: 12px 14px; padding-block: 12px; }
  .entete.est-colle .entete-haut { padding-block: 8px; }
  .btn-tiroir, .panier-mobile { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; border: 0; background: var(--fond); position: relative; }
  .panier-mobile { background: var(--grad); color: #fff; }
  .panier-mobile .pastille { background: #fff; color: var(--rouge); box-shadow: 0 0 0 2px #fff; }
  .logo { justify-self: center; }
  .logo img { height: 27px; }
  .recherche { grid-column: 1 / -1; grid-row: 2; max-width: none; }
  .entete.est-colle .recherche { display: none; }
  .recherche input { height: 44px; }
  .entete-infos, .entete-bas { display: none; }
  .bloc-tete { flex-wrap: wrap; gap: 10px 16px; }
  .onglets { margin-left: 0; width: 100%; overflow-x: auto; scrollbar-width: none; }
  .bloc-sous { margin-left: 0; }
  .flash-fin { order: 3; width: 100%; }
  .cats-grille { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 132px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: -24px; padding-inline: 24px; }
  .carte-cat { scroll-snap-align: start; }
  .produits-grille, .nouveautes { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .produits-grille .carte-produit:nth-child(5), .nouveautes .carte-produit:last-child { display: flex; }
  .produits-grille--defile { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 210px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: -24px; padding-inline: 24px; }
  .produits-grille--defile .carte-produit { scroll-snap-align: start; }
  .tuile-marque { grid-column: 1 / -1; min-height: 0; }
  .tuile-marque { padding-bottom: 24px; }
  .tuile-marque img { width: 45%; height: 100%; inset: 0 0 0 auto; mask: linear-gradient(90deg, transparent, #000 50%); -webkit-mask: linear-gradient(90deg, transparent, #000 50%); }
  .tuile-marque > *:not(img) { max-width: 62%; }
  .cp-actions button { opacity: 1; transform: none; width: 32px; height: 32px; }
  .marques { grid-template-columns: repeat(5, 1fr); }
  .pied-grille { grid-template-columns: 1fr 1fr; }
  .pied-reseaux { grid-column: 1 / -1; }
}

@media (max-width: 600px) {
  .conteneur { padding-inline: 16px; }
  .cats-grille, .produits-grille--defile { margin-inline: -16px; padding-inline: 16px; }
  .bandeau { font-size: 12px; }
  .bandeau-msg { gap: 14px; justify-content: center; }
  .heros { grid-template-columns: 1fr 1fr; grid-template-rows: 400px 230px 190px; gap: 12px; margin-top: 14px; }
  .diapo-texte { padding: 32px 22px 0; }
  .diapo-texte h2 { font-size: 26px; }
  .diapo-texte p { font-size: 14px; margin: 10px auto 18px; }
  .banniere { padding: 20px; }
  .banniere h2 { font-size: 21px; }
  .banniere--petite { padding: 16px; justify-content: flex-end; }
  .banniere--petite h2 { font-size: 16px; }
  .banniere--petite p { font-size: 12.5px; }
  .banniere--petite .bouton { height: 32px; padding: 0 10px; font-size: 12.5px; }
  .compte-rebours > span { min-width: 42px; }
  .reassurance { grid-template-columns: minmax(0, 1fr); padding: 14px 4px; row-gap: 0; }
  .reassurance li { padding: 12px 16px; }
  .reassurance li + li { border-left: 0; border-top: 1px solid var(--ligne); }
  .bloc { margin-top: 40px; }
  .bloc-tete h2 { font-size: 20px; }
  .carte-produit { padding: 8px; }
  .cp-badge { top: 14px; left: 14px; font-size: 11px; }
  .cp-actions { top: 14px; right: 14px; }
  .cp-nom { font-size: 13px; }
  .cp-prix strong { font-size: 15px; }
  .cp-prix del { font-size: 12px; }
  .cp-ajouter { font-size: 12.5px; height: 38px; gap: 6px; }
  .cp-ajouter .ic { display: none; }
  .pro-texte { padding: 30px 22px; }
  .pro h2 { font-size: 22px; }
  .pro ul { grid-template-columns: minmax(0, 1fr); }
  .pro-actions .bouton { flex: 1; }
  .marques { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .marques li { height: 60px; font-size: 15px; }
  .avis-grille { grid-template-columns: minmax(0, 1fr); }
  .newsletter { padding: 22px 20px; }
  .nl-texte { align-items: flex-start; }
  .nl-form { grid-template-columns: minmax(0, 1fr); }
  .pied-grille { grid-template-columns: 1fr 1fr; gap: 28px 20px; padding-block: 36px 28px; }
  .pied-bas-in { flex-direction: column; gap: 8px; }
  .wa-flottant { right: 14px; bottom: 14px; height: 52px; width: 52px; padding: 0; justify-content: center; }
  .wa-flottant span { display: none; }
}

/* =========================================================
   Pages intérieures (phase 3) — mêmes jetons, même registre
   ========================================================= */

.bouton--sombre { background: var(--encre); }
.bouton--contour-sombre { background: #fff; color: var(--encre); box-shadow: inset 0 0 0 1.5px var(--ligne); }
.bouton--contour-sombre:hover { filter: none; box-shadow: inset 0 0 0 1.5px var(--encre); }
.bouton--plein { width: 100%; }
.ic--texte { width: 1.1em; height: 1.1em; vertical-align: -3px; }
.note { font-size: 13px; color: var(--doux); }
.note a, .prose a, .case--legal a { color: var(--marque-texte); text-decoration: underline; text-underline-offset: 2px; }

/* navigation : page courante */
.nav a.est-courant { color: var(--marque-texte); box-shadow: inset 0 -2px 0 var(--marque); padding-block: 4px; }
.tiroir-nav a.est-courant { color: var(--marque-texte); }

/* langue et devise */
.devise { position: relative; margin-right: 8px; }
.btn-devise { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 8px; border: 0; border-radius: 999px; background: transparent; font-size: 13px; color: var(--encre-2); white-space: nowrap; }
.btn-devise:hover, .devise.est-ouvert .btn-devise { background: #fff; color: var(--encre); }
.btn-devise .ic { width: 16px; height: 16px; }
.btn-devise .chev { width: 13px; height: 13px; transition: transform .2s; }
.devise.est-ouvert .chev { transform: rotate(180deg); }
.devise-panneau { position: absolute; right: 0; top: calc(100% + 8px); z-index: 70; width: 250px; padding: 14px; background: #fff; border: 1px solid var(--ligne); border-radius: var(--r); box-shadow: var(--ombre); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .18s, transform .18s, visibility .18s; }
.devise.est-ouvert .devise-panneau { opacity: 1; visibility: visible; transform: none; }
.devise-titre { font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--doux); margin: 4px 0 6px; }
.devise-titre:not(:first-child) { margin-top: 14px; }
.devise-choix { display: flex; align-items: center; gap: 8px; padding: 7px 8px; border-radius: 6px; font-size: 13.5px; }
.devise-choix.est-actif { background: var(--teinte); color: var(--marque-texte); font-weight: 600; }
.devise-choix .ic { width: 15px; height: 15px; }
.devise-choix.est-inactif { color: #9AA0AA; padding-left: 31px; }
.devise-choix em { font-style: normal; font-size: 11px; background: var(--fond); color: var(--doux); padding: 2px 6px; border-radius: 99px; margin-left: auto; }
.devise-note { font-size: 12px; color: var(--doux); margin-top: 12px; line-height: 1.45; }

/* fil d'Ariane + en-têtes de page */
.fil { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; padding-top: 18px; font-size: 13px; color: var(--doux); }
.fil a:hover { color: var(--marque-texte); }
.fil .ic { width: 13px; height: 13px; color: #B5BAC2; }
.fil span[aria-current] { color: var(--encre); font-weight: 500; }
.entete-page { margin-top: 16px; }
.entete-page h1 { font-size: 30px; font-weight: 700; }
.entete-page > p, .entete-page div > p { color: var(--doux); margin-top: 8px; max-width: 720px; font-size: 15px; }
.entete-page--ligne { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.bloc-titre { margin-top: 44px; }
.bloc-titre h2 { font-size: 24px; }

.entete-cat {
  position: relative; isolation: isolate; overflow: hidden; margin-top: 16px; border-radius: var(--r); padding: 38px 40px; color: #fff; min-height: 210px;
  display: flex; flex-direction: column; justify-content: center; align-items: flex-start;
  background: var(--photo) center / cover no-repeat, var(--encre);
}
.entete-cat::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(17,24,39,.88) 0%, rgba(17,24,39,.6) 50%, rgba(17,24,39,.15) 100%); }
.entete-cat--marque { background: var(--grad); }
.entete-cat--marque::before { background: radial-gradient(circle at 85% 30%, rgba(255,255,255,.18), transparent 45%); }
.entete-cat h1 { font-size: 34px; font-weight: 700; }
.entete-cat p { margin-top: 10px; max-width: 620px; font-size: 15px; opacity: .92; }
.entete-cat-ic { width: 46px; height: 46px; border-radius: 50%; background: rgba(255,255,255,.14); display: grid; place-items: center; margin-bottom: 14px; }
.entete-cat-ic .ic { width: 24px; height: 24px; }
.puces { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; }
.puce { display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 14px; border-radius: 999px; background: #fff; font-size: 13.5px; font-weight: 500; border: 1.5px solid transparent; transition: border-color .2s, color .2s; }
.puce span { font-size: 12px; color: var(--doux); background: var(--fond); padding: 1px 7px; border-radius: 99px; }
.puce:hover { border-color: var(--ligne); }
.puce.est-actif { border-color: var(--encre); background: var(--encre); color: #fff; }
.puce.est-actif span { background: rgba(255,255,255,.18); color: #fff; }
.puce--vide { color: #9AA0AA; }

/* catalogue : filtres + résultats */
.catalogue { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 24px; align-items: start; margin-top: 24px; }
.filtres { background: #fff; border-radius: var(--r); padding: 6px 20px 20px; position: sticky; top: 150px; max-height: calc(100vh - 170px); overflow-y: auto; scrollbar-width: thin; }
.filtres-tete { display: none; }
.filtre { padding: 16px 0; border-bottom: 1px solid #F0F1F3; }
.filtre-titre { font: 600 14.5px/1.3 var(--titres); margin-bottom: 12px; }
.filtre-cats li a { display: flex; align-items: center; gap: 10px; padding: 7px 0; font-size: 13.5px; color: var(--encre-2); }
.filtre-cats li a:hover { color: var(--marque-texte); }
.filtre-cats .ic { width: 18px; height: 18px; color: var(--marque); }
.filtre-cats span { margin-left: auto; font-size: 12px; color: var(--doux); }
.case { display: flex; align-items: center; gap: 10px; padding: 5px 0; font-size: 13.5px; color: var(--encre-2); cursor: pointer; }
.case input { width: 17px; height: 17px; accent-color: var(--rouge); flex: none; margin: 0; }
.case span { margin-left: auto; font-size: 12px; color: var(--doux); }
.plage { position: relative; height: 22px; }
.plage::before { content: ""; position: absolute; left: 0; right: 0; top: 9px; height: 4px; border-radius: 99px; background: linear-gradient(90deg, var(--ligne) var(--a), var(--marque) var(--a), var(--rouge) var(--b), var(--ligne) var(--b)); }
.plage input { position: absolute; inset: 0; width: 100%; margin: 0; background: none; pointer-events: none; -webkit-appearance: none; appearance: none; }
.plage input::-webkit-slider-thumb { -webkit-appearance: none; pointer-events: auto; width: 20px; height: 20px; border-radius: 50%; background: #fff; border: 2px solid var(--rouge); box-shadow: 0 2px 6px rgba(17,24,39,.2); cursor: grab; }
.plage input::-moz-range-thumb { pointer-events: auto; width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 2px solid var(--rouge); cursor: grab; }
.plage input::-moz-range-track { background: none; }
.plage-valeurs { display: flex; justify-content: space-between; margin-top: 10px; font-size: 13px; font-weight: 600; }
.filtres-pied { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding-top: 16px; }
.filtres-pied .bouton { display: none; }
.lien-reinit { border: 0; background: none; padding: 0; font-size: 13.5px; font-weight: 600; color: var(--marque-texte); text-decoration: underline; text-underline-offset: 3px; }
.filtres-voile { display: none; }
.barre-outils { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; min-height: 44px; }
.btn-filtres { display: none; align-items: center; gap: 8px; height: 40px; padding: 0 14px; border: 1.5px solid var(--ligne); border-radius: var(--r-s); background: #fff; font-weight: 600; font-size: 13.5px; }
.btn-filtres .ic { width: 18px; height: 18px; }
.nb-resultats { font-size: 14px; color: var(--doux); }
.nb-resultats b { color: var(--encre); }
.tri { margin-left: auto; display: flex; align-items: center; gap: 10px; font-size: 13.5px; color: var(--doux); white-space: nowrap; }
.tri select, .champ select { height: 40px; padding: 0 34px 0 12px; border: 1.5px solid var(--ligne); border-radius: var(--r-s); background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 10px center / 16px no-repeat; -webkit-appearance: none; appearance: none; color: var(--encre); font-size: 14px; outline: none; }
.tri select:focus, .champ select:focus { border-color: var(--marque); }
.produits-grille--liste { grid-template-columns: repeat(4, 1fr); }
.produits-grille .carte-produit[hidden] { display: none !important; }
.liste-vide { background: #fff; border-radius: var(--r); padding: 40px 30px; text-align: center; display: grid; justify-items: center; gap: 14px; }
.liste-vide[hidden] { display: none; }
.liste-vide > .ic { width: 40px; height: 40px; color: var(--marque); }
.liste-vide p { max-width: 460px; color: var(--doux); }
.liste-vide strong { color: var(--encre); display: block; font-size: 16px; margin-bottom: 4px; }
.liste-vide-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
.charger-plus { display: flex; justify-content: center; margin-top: 24px; }
.charger-plus[hidden] { display: none; }

/* bandeau promotions */
.promo-tete { display: grid; grid-template-columns: 1.6fr 1fr; gap: 18px; margin-top: 16px; }
.promo-flash { border-radius: var(--r); padding: 34px 38px; color: #fff; background: var(--grad); position: relative; overflow: hidden; isolation: isolate; }
.promo-flash::before { content: ""; position: absolute; inset: 0; z-index: -1; background: url("https://images.unsplash.com/photo-1613040809024-b4ef7ba99bc3?w=900&h=500&fit=crop&q=70&auto=format") right center / auto 120% no-repeat; opacity: .28; mix-blend-mode: luminosity; }
.promo-flash h1 { font-size: 32px; font-weight: 700; margin-top: 4px; }
.promo-flash p { margin-top: 8px; opacity: .92; max-width: 460px; }
.promo-code { background: #fff; border-radius: var(--r); padding: 28px; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.promo-code > .ic { width: 30px; height: 30px; color: var(--marque); margin-bottom: 4px; }
.promo-code p { color: var(--doux); }
.promo-code strong { font: 700 22px/1.2 var(--titres); }
.code { margin: 8px 0 4px; display: inline-flex; align-items: center; gap: 14px; height: 46px; padding: 0 8px 0 18px; border: 2px dashed var(--marque); border-radius: var(--r-s); background: var(--teinte); font: 700 18px/1 var(--titres); letter-spacing: .08em; color: var(--marque-texte); }
.code span { font: 600 12.5px/1 var(--texte); letter-spacing: 0; background: var(--encre); color: #fff; padding: 8px 10px; border-radius: 4px; }
.promo-code small { color: var(--doux); font-size: 12.5px; }

/* fiche produit */
.fiche { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 40px; margin-top: 18px; align-items: start; }
.galerie { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 14px; position: sticky; top: 150px; }
.galerie-principale { grid-column: 2; grid-row: 1; position: relative; background: #fff; border-radius: var(--r); overflow: hidden; cursor: zoom-in; }
.galerie-principale img { width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform .25s ease; transform-origin: var(--zx, 50%) var(--zy, 50%); }
.galerie-principale.est-zoom img { transform: scale(1.9); }
.galerie-principale .cp-badge { top: 16px; left: 16px; }
.galerie-vignettes { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; gap: 10px; }
.vignette { padding: 0; border: 2px solid transparent; border-radius: 8px; overflow: hidden; background: #fff; transition: border-color .2s; }
.vignette img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.vignette.est-actif { border-color: var(--marque); }
.fiche-infos { background: #fff; border-radius: var(--r); padding: 28px 30px; }
.fiche-infos .cp-marque { display: inline-block; }
.fiche-infos h1 { font-size: 26px; font-weight: 700; margin-top: 6px; }
.fiche-meta { display: flex; align-items: center; gap: 10px 14px; flex-wrap: wrap; margin-top: 10px; font-size: 13.5px; color: var(--doux); }
.fiche-meta a { color: var(--encre); font-weight: 500; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--ligne); }
.fiche-prix { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 14px; margin-top: 18px; padding-top: 18px; border-top: 1px solid #F0F1F3; }
.fiche-prix strong { font: 700 30px/1.1 var(--titres); color: var(--marque-texte); }
.fiche-prix del { font-size: 16px; color: #8B929E; }
.economie { flex-basis: 100%; font-size: 13.5px; font-weight: 600; color: #15803D; }
.stock { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; font-size: 13.5px; font-weight: 600; }
.stock::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 18%, transparent); }
.stock--ok { color: #15803D; }
.stock--bas { color: #B45309; }
.stock--commande { color: #4B5563; }
.fiche-resume { margin-top: 14px; color: var(--encre-2); font-size: 14.5px; }
.fiche-achat { display: grid; grid-template-columns: auto 1fr 1fr; gap: 10px; margin-top: 22px; }
.fiche-achat .bouton { height: 48px; }
.qte { display: inline-flex; align-items: center; height: 48px; border: 1.5px solid var(--ligne); border-radius: var(--r-s); background: #fff; }
.qte button { width: 38px; height: 100%; border: 0; background: none; font-size: 18px; color: var(--encre-2); }
.qte button:hover { color: var(--marque-texte); }
.qte input { width: 40px; border: 0; text-align: center; font-weight: 600; font-size: 15px; outline: none; -moz-appearance: textfield; }
.qte input::-webkit-inner-spin-button, .qte input::-webkit-outer-spin-button { -webkit-appearance: none; }
.qte--petit { height: 38px; }
.qte--petit button { width: 32px; }
.qte--petit input { width: 32px; font-size: 14px; }
.fiche-wa { width: 100%; height: 48px; margin-top: 10px; }
.fiche-liens { display: flex; gap: 22px; margin-top: 16px; }
.lien-ic { display: inline-flex; align-items: center; gap: 7px; border: 0; background: none; padding: 0; font-size: 13.5px; font-weight: 500; color: var(--encre-2); }
.lien-ic .ic { width: 18px; height: 18px; }
.lien-ic:hover, .lien-ic[aria-pressed="true"] { color: var(--marque-texte); }
.lien-ic.cp-favori[aria-pressed="true"] .ic { fill: currentColor; }
.fiche-garanties { margin-top: 22px; padding-top: 6px; border-top: 1px solid #F0F1F3; display: grid; grid-template-columns: 1fr 1fr; gap: 6px 18px; }
.fiche-garanties li { display: flex; gap: 12px; align-items: flex-start; padding-top: 14px; }
.fiche-garanties .ic { width: 26px; height: 26px; color: var(--marque); flex: none; }
.fiche-garanties strong { display: block; font-size: 13.5px; font-weight: 600; }
.fiche-garanties span { font-size: 12.5px; color: var(--doux); }

.onglets--fiche { margin: 0 0 14px; }
.onglets--plein { margin: 0 0 22px; background: var(--fond); padding: 4px; border-radius: 999px; }
.onglets--plein .onglet { flex: 1; justify-content: center; }
.carte-texte { background: #fff; border-radius: var(--r); padding: 28px 32px; }
.prose { font-size: 15px; line-height: 1.7; color: var(--encre-2); }
.prose h2 { font-size: 20px; color: var(--encre); margin: 26px 0 10px; }
.prose h2:first-child { margin-top: 0; }
.prose p + p, .prose p + ul, .prose ul + p, .prose ol + p, .prose p + ol { margin-top: 12px; }
.prose ul, .prose ol { padding-left: 20px; display: grid; gap: 6px; }
.prose ul { list-style: disc; }
.specs { width: 100%; border-collapse: collapse; font-size: 14px; }
.specs th, .specs td { text-align: left; padding: 12px 14px; border-bottom: 1px solid #F0F1F3; vertical-align: top; }
.specs th { width: 34%; color: var(--doux); font-weight: 500; }
.specs tr:nth-child(odd) { background: #FAFBFC; }
.specs--zones th { width: auto; color: var(--encre); font-weight: 600; }
.specs--zones tr:first-child th { background: var(--fond); }
.avis-produit { display: grid; grid-template-columns: 200px 1fr 1fr; gap: 30px; align-items: center; }
.avis-note strong { display: block; font: 700 46px/1 var(--titres); }
.avis-note small { font-size: 18px; color: var(--doux); }
.avis-note .etoiles { width: 104px; height: 18px; -webkit-mask-size: 20.8px 18px; mask-size: 20.8px 18px; margin-top: 8px; }
.avis-note p { color: var(--doux); font-size: 13.5px; margin-top: 6px; }
.avis-barres { display: grid; gap: 8px; }
.avis-barres li { display: grid; grid-template-columns: 34px 1fr 40px; gap: 10px; align-items: center; font-size: 13px; color: var(--doux); }
.barre { height: 8px; border-radius: 99px; background: var(--fond); overflow: hidden; }
.barre span { display: block; height: 100%; background: var(--grad); border-radius: inherit; }
.avis-donner { display: grid; gap: 12px; justify-items: start; color: var(--doux); font-size: 14px; }

.lot { background: #fff; border-radius: var(--r); padding: 22px; display: grid; grid-template-columns: 1fr 280px; gap: 24px; align-items: center; }
.lot-items { display: flex; align-items: stretch; gap: 14px; }
.lot-item { flex: 1; display: grid; grid-template-columns: 76px 1fr; grid-template-rows: auto auto; column-gap: 12px; align-items: center; padding: 10px; border: 1px solid #F0F1F3; border-radius: var(--r-s); position: relative; }
.lot-item + .lot-item::before { content: "+"; position: absolute; left: -14px; top: 50%; transform: translate(-50%, -50%); width: 24px; height: 24px; border-radius: 50%; background: var(--encre); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: 14px; }
.lot-item img { grid-row: span 2; width: 76px; height: 76px; object-fit: cover; border-radius: 6px; }
.lot-item a { font-size: 13px; font-weight: 500; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.lot-item a:hover { color: var(--marque-texte); }
.lot-item strong { font: 700 14px/1.2 var(--titres); color: var(--marque-texte); }
.lot-total { display: grid; gap: 6px; padding-left: 24px; border-left: 1px solid #F0F1F3; }
.lot-total p { color: var(--doux); font-size: 13.5px; }
.lot-total strong { font: 700 24px/1.2 var(--titres); }
.lot-total .bouton { margin-top: 8px; }

.barre-achat { display: none; }

/* espace pro, à propos */
.pro--page { margin-top: 16px; }
.pro--page h1 { font-size: 34px; font-weight: 700; margin-top: 14px; max-width: 560px; }
.pro-lead { margin-top: 14px; color: #D1D5DB; font-size: 15.5px; max-width: 520px; }
.atouts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.atouts li { background: #fff; border-radius: var(--r); padding: 24px; }
.atouts .ic { width: 34px; height: 34px; color: var(--marque); stroke-width: 1.4; }
.atouts strong { display: block; font: 600 16px/1.3 var(--titres); margin-top: 14px; }
.atouts p { margin-top: 6px; color: var(--doux); font-size: 13.5px; }
.secteurs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.secteur { border-radius: var(--r); padding: 24px; background: #fff; border-top: 3px solid var(--marque); }
.secteur .ic { width: 30px; height: 30px; color: var(--encre); }
.secteur h3 { font-size: 16px; margin-top: 12px; }
.secteur p { margin-top: 6px; color: var(--doux); font-size: 13.5px; }
.etapes-pro { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; counter-reset: e; }
.etapes-pro li { background: #fff; border-radius: var(--r); padding: 24px; position: relative; }
.etapes-pro li > span { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: var(--grad); color: #fff; font: 700 16px/1 var(--titres); }
.etapes-pro strong { display: block; font: 600 15.5px/1.3 var(--titres); margin-top: 14px; }
.etapes-pro p { margin-top: 6px; color: var(--doux); font-size: 13.5px; }

.formulaire-bloc { display: grid; grid-template-columns: 340px 1fr; gap: 24px; align-items: start; }
.formulaire-intro { background: var(--encre); color: #E5E7EB; border-radius: var(--r); padding: 30px; }
.formulaire-intro h2 { color: #fff; font-size: 24px; }
.formulaire-intro > p { margin-top: 8px; color: #C4C9D2; }
.formulaire-intro .note { color: #C4C9D2; margin-top: 18px; }
.formulaire-intro .note a { color: #FDBA9C; }
.contact-liste { margin-top: 22px; display: grid; gap: 16px; }
.contact-liste li { display: flex; gap: 14px; align-items: center; }
.contact-liste .ic { width: 22px; height: 22px; color: #FDBA9C; }
.contact-liste strong { display: block; color: #fff; font-size: 13.5px; }
.contact-liste a { color: #E5E7EB; font-size: 14px; }
.contact-liste a:hover { color: #fff; text-decoration: underline; }
.formulaire { background: #fff; border-radius: var(--r); padding: 30px; display: grid; gap: 16px; }
.compte-carte .formulaire, .suivi-carte .formulaire { padding: 0; }
.champs { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.champ { display: grid; gap: 7px; font-size: 13.5px; font-weight: 500; color: var(--encre-2); }
.champ--large { grid-column: 1 / -1; }
.champ input, .champ textarea, .champ select { width: 100%; }
.champ input, .champ textarea { padding: 0 14px; height: 44px; border: 1.5px solid var(--ligne); border-radius: var(--r-s); background: #fff; font-size: 14px; outline: none; transition: border-color .2s; }
.champ select { height: 44px; }
.champ textarea { height: auto; padding: 12px 14px; resize: vertical; line-height: 1.5; }
.champ input[type="file"] { padding: 9px 12px; height: auto; font-size: 13px; }
.champ input:focus, .champ textarea:focus { border-color: var(--marque); }
.champ small { font-weight: 400; color: var(--doux); font-size: 12px; }
.champ.est-invalide input, .champ.est-invalide select { border-color: var(--rouge); background: #FFF7F6; }
.champ-prefixe { display: flex; height: 44px; border: 1.5px solid var(--ligne); border-radius: var(--r-s); overflow: hidden; }
.champ-prefixe:focus-within { border-color: var(--marque); }
.champ-prefixe b { display: grid; place-items: center; padding: 0 12px; background: var(--fond); font-weight: 600; font-size: 14px; color: var(--encre); }
.champ-prefixe input { border: 0; height: 100%; border-radius: 0; }
.champ.est-invalide .champ-prefixe { border-color: var(--rouge); }
.champ-titre { font: 600 15px/1.3 var(--titres); margin-top: 6px; }
.case--legal { align-items: flex-start; font-size: 13px; }
.case--legal input { margin-top: 2px; }
.formulaire .bouton { justify-self: start; height: 46px; padding: 0 26px; }
.formulaire .bouton--plein { justify-self: stretch; }
.formulaire-ok { display: flex; gap: 10px; align-items: center; padding: 12px 14px; border-radius: var(--r-s); background: #ECFDF3; color: #166534; font-weight: 500; }
.formulaire-ok[hidden] { display: none; }

.apropos-tete { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 16px; align-items: stretch; }
.apropos-texte { background: #fff; border-radius: var(--r); padding: 44px 40px; display: flex; flex-direction: column; justify-content: center; }
.sur-titre { font: 600 12px/1 var(--texte); letter-spacing: .08em; text-transform: uppercase; color: var(--marque-texte); }
.apropos-texte h1 { font-size: 34px; font-weight: 700; margin-top: 14px; }
.lead { font-size: 16px; color: var(--encre-2); margin-top: 14px; line-height: 1.65; }
.apropos-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 26px; }
.apropos-photo { width: 100%; height: 100%; min-height: 380px; object-fit: cover; border-radius: var(--r); }
.chiffres { display: grid; grid-template-columns: repeat(4, 1fr); background: #fff; border-radius: var(--r); padding: 26px 10px; }
.chiffres li { text-align: center; padding: 0 16px; }
.chiffres li + li { border-left: 1px solid var(--ligne); }
.chiffres strong { display: block; font: 700 34px/1.1 var(--titres); background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.chiffres span { font-size: 13.5px; color: var(--doux); }
.apropos-histoire { display: grid; grid-template-columns: 1.3fr 1fr; gap: 16px; }
.liste-coches { display: grid; gap: 10px; padding: 0 !important; list-style: none !important; }
.liste-coches li { display: flex; gap: 10px; align-items: flex-start; font-size: 14.5px; }
.liste-coches .ic { width: 18px; height: 18px; color: #15803D; margin-top: 3px; }
.cta-bande { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; border-radius: var(--r); padding: 30px 36px; background: var(--grad); color: #fff; }
.cta-bande h2 { font-size: 24px; }
.cta-bande p { margin-top: 4px; opacity: .92; }
.cta-bande-actions { display: flex; gap: 10px; flex-wrap: wrap; }

.contact-cartes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 22px; }
.contact-cartes a { display: grid; gap: 4px; background: #fff; border-radius: var(--r); padding: 22px; transition: box-shadow .25s, transform .25s; }
.contact-cartes a:hover { box-shadow: var(--ombre); transform: translateY(-2px); }
.contact-cartes .ic { width: 30px; height: 30px; color: var(--marque); margin-bottom: 8px; }
.contact-cartes strong { font: 600 15.5px/1.3 var(--titres); }
.contact-cartes span { color: var(--doux); font-size: 13.5px; }
.horaires { margin-top: 22px; width: 100%; border-collapse: collapse; font-size: 14px; }
.horaires caption { text-align: left; font-weight: 600; color: #fff; margin-bottom: 8px; }
.horaires th, .horaires td { padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,.12); text-align: left; font-weight: 400; }
.horaires td { text-align: right; color: #fff; }
.carte-acces { display: grid; grid-template-columns: 1fr 360px; border-radius: var(--r); overflow: hidden; background: #fff; min-height: 380px; }
.carte-acces iframe { width: 100%; height: 100%; min-height: 380px; border: 0; display: block; }
.carte-acces-info { padding: 30px; display: grid; gap: 12px; align-content: center; }
.carte-acces-info h2 { font-size: 20px; }
.carte-acces-info p { display: flex; gap: 10px; align-items: flex-start; color: var(--encre-2); font-size: 14px; }
.carte-acces-info .ic { width: 18px; height: 18px; color: var(--marque); margin-top: 2px; }
.carte-acces-info .bouton { justify-self: start; margin-top: 6px; }

.compte { display: grid; grid-template-columns: minmax(0, 520px) minmax(0, 1fr); gap: 24px; margin-top: 18px; align-items: start; }
.compte-carte { background: #fff; border-radius: var(--r); padding: 28px; }
.compte-ligne { display: flex; justify-content: space-between; align-items: center; font-size: 13.5px; }
.compte-ligne a { color: var(--marque-texte); font-weight: 500; }
.compte-avantages { background: #fff; border-radius: var(--r); padding: 28px; }
.compte-avantages h2 { font-size: 20px; margin-bottom: 16px; }
.compte-invite { margin-top: 24px; padding: 18px; border-radius: var(--r-s); background: var(--teinte); display: grid; gap: 6px; }
.compte-invite p { font-size: 13.5px; color: var(--encre-2); }

.etat-vide { background: #fff; border-radius: var(--r); padding: 56px 30px; text-align: center; display: grid; justify-items: center; gap: 12px; }
.etat-vide[hidden] { display: none; }
.etat-vide > .ic { width: 46px; height: 46px; color: var(--marque); }
.etat-vide h2 { font-size: 22px; }
.etat-vide p { color: var(--doux); max-width: 440px; }
.etat-vide .bouton { margin-top: 6px; }

.comparatif { background: #fff; border-radius: var(--r); padding: 20px; overflow-x: auto; }
.comparatif table { width: 100%; border-collapse: collapse; min-width: 640px; table-layout: fixed; }
.comparatif th, .comparatif td { padding: 12px 14px; border-bottom: 1px solid #F0F1F3; text-align: left; vertical-align: top; font-size: 14px; }
.comparatif tbody th { width: 180px; color: var(--doux); font-weight: 500; }
.comparatif thead td { border-bottom: 0; }
.comp-produit { display: grid; gap: 8px; }
.comp-produit img { width: 100%; max-width: 180px; aspect-ratio: 1; object-fit: cover; border-radius: 8px; }
.comp-produit a { font-weight: 600; line-height: 1.35; }
.comp-produit a:hover { color: var(--marque-texte); }
.comp-produit strong { font: 700 17px/1.2 var(--titres); color: var(--marque-texte); }
.comp-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.comp-actions .bouton { height: 36px; font-size: 13px; padding: 0 12px; }
.comp-retirer { border: 0; background: none; color: var(--doux); font-size: 13px; text-decoration: underline; padding: 0; }
.comparatif tr.est-diff td { background: #FFFBF0; }

/* panier + commande */
.panier-page { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 24px; margin-top: 22px; align-items: start; }
.panier-page .etat-vide { grid-column: 1 / -1; }
.panier-page.est-vide .panier-lignes, .panier-page.est-vide .recap { display: none; }
.panier-lignes { display: grid; gap: 12px; }
.ligne-panier { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto auto auto; gap: 18px; align-items: center; background: #fff; border-radius: var(--r); padding: 14px 18px 14px 14px; }
.ligne-panier img { width: 96px; height: 96px; object-fit: cover; border-radius: 8px; }
.ligne-panier .lp-nom { font-weight: 600; line-height: 1.35; }
.ligne-panier .lp-nom:hover { color: var(--marque-texte); }
.ligne-panier .lp-info { display: grid; gap: 4px; }
.lp-marque { font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--doux); }
.lp-pu { font-size: 13px; color: var(--doux); }
.lp-total { font: 700 16px/1.2 var(--titres); color: var(--marque-texte); min-width: 120px; text-align: right; white-space: nowrap; }
.lp-retirer { width: 38px; height: 38px; border: 0; border-radius: 50%; background: var(--fond); display: grid; place-items: center; color: var(--doux); }
.lp-retirer:hover { color: var(--rouge); background: #FDECEC; }
.lp-retirer .ic { width: 18px; height: 18px; }
.recap { background: #fff; border-radius: var(--r); padding: 24px; display: grid; gap: 14px; position: sticky; top: 150px; }
.recap h2 { font-size: 19px; }
.recap-lignes { margin: 0; display: grid; gap: 10px; }
.recap-lignes > div { display: flex; justify-content: space-between; gap: 10px; align-items: center; font-size: 14px; }
.recap-lignes dt { color: var(--doux); }
.recap-lignes dd { margin: 0; font-weight: 600; text-align: right; }
.recap-zone { flex-direction: column; align-items: stretch !important; }
.recap-zone select { width: 100%; height: 40px; padding: 0 30px 0 10px; border: 1.5px solid var(--ligne); border-radius: var(--r-s); background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 10px center / 16px no-repeat; -webkit-appearance: none; appearance: none; font-size: 13.5px; }
.recap-remise dd { color: #15803D; }
.recap-remise[hidden] { display: none !important; }
.code-promo { display: flex; gap: 8px; }
.code-promo input { flex: 1; min-width: 0; height: 40px; padding: 0 12px; border: 1.5px solid var(--ligne); border-radius: var(--r-s); font-size: 14px; text-transform: uppercase; outline: none; }
.code-promo input:focus { border-color: var(--marque); }
.code-promo .bouton { height: 40px; padding: 0 14px; }
.recap-message { font-size: 13px; min-height: 0; }
.recap-message:empty { display: none; }
.recap-message.est-ok { color: #15803D; }
.recap-message.est-erreur { color: var(--rouge); }
.recap-total { display: flex; justify-content: space-between; align-items: baseline; padding-top: 14px; border-top: 1px solid var(--ligne); }
.recap-total span { font-weight: 600; }
.recap-total strong { font: 700 24px/1.1 var(--titres); }
.recap-gratuit { font-size: 13px; color: var(--doux); }
.recap-gratuit:empty { display: none; }
.recap-gratuit .barre { margin-top: 8px; }
.recap .bouton { height: 48px; }
.recap-assurance { display: grid; gap: 8px; padding-top: 6px; }
.recap-assurance li { display: flex; gap: 8px; align-items: center; font-size: 12.5px; color: var(--doux); }
.recap-assurance .ic { width: 16px; height: 16px; color: var(--encre-2); }
.recap-articles { display: grid; gap: 12px; max-height: 300px; overflow-y: auto; }
.recap-articles li { display: grid; grid-template-columns: 54px 1fr auto; gap: 12px; align-items: center; font-size: 13px; }
.recap-articles .ra-img { position: relative; }
.recap-articles img { width: 54px; height: 54px; object-fit: cover; border-radius: 6px; }
.recap-articles .ra-qte { position: absolute; top: -6px; right: -6px; min-width: 20px; height: 20px; border-radius: 99px; background: var(--encre); color: #fff; font-size: 11px; font-weight: 700; display: grid; place-items: center; padding: 0 5px; }
.recap-articles strong { font-weight: 600; white-space: nowrap; }

.commande { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 24px; margin-top: 18px; align-items: start; }
.etapes { list-style: none; margin: 0 0 18px; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.etapes li { display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: #fff; border-radius: var(--r-s); font-size: 13.5px; font-weight: 500; color: var(--doux); border-bottom: 3px solid transparent; }
.etapes li span { width: 26px; height: 26px; border-radius: 50%; background: var(--fond); display: grid; place-items: center; font: 700 13px/1 var(--titres); color: var(--doux); flex: none; }
.etapes li.est-actif { color: var(--encre); border-bottom-color: var(--marque); }
.etapes li.est-actif span { background: var(--grad); color: #fff; }
.etapes li.est-fait { color: var(--encre); }
.etapes li.est-fait span { background: #DCFCE7; color: #15803D; }
.commande-form { background: #fff; border-radius: var(--r); padding: 28px; }
.etape { border: 0; margin: 0; padding: 0; display: none; gap: 16px; }
.etape.est-actif { display: grid; animation: apparait .3s ease; }
.etape legend { font: 600 20px/1.3 var(--titres); padding: 0; margin-bottom: 4px; }
.etape-aide { font-size: 13.5px; color: var(--doux); }
.etape-actions { display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; padding-top: 8px; }
.etape-actions .bouton { height: 48px; padding: 0 26px; }
.lien-retour { display: inline-flex; align-items: center; gap: 6px; border: 0; background: none; padding: 0; font-size: 14px; font-weight: 500; color: var(--encre-2); }
.lien-retour .ic { width: 16px; height: 16px; }
.lien-retour:hover { color: var(--marque-texte); }
.choix-liste { display: grid; gap: 10px; }
.choix { display: flex; gap: 14px; align-items: center; padding: 14px 16px; border: 1.5px solid var(--ligne); border-radius: var(--r-s); cursor: pointer; transition: border-color .2s, background .2s; }
.choix:hover { border-color: #C9CDD3; }
.choix:has(input:checked) { border-color: var(--marque); background: var(--teinte); }
.choix input { width: 18px; height: 18px; accent-color: var(--rouge); margin: 0; flex: none; }
.choix > span { display: grid; gap: 2px; flex: 1; }
.choix strong { font-size: 14.5px; font-weight: 600; }
.choix small { font-size: 12.5px; color: var(--doux); }
.choix b { font-family: var(--titres); white-space: nowrap; }
.choix-tag { font-style: normal; font-size: 11.5px; font-weight: 600; color: #15803D; background: #DCFCE7; padding: 3px 8px; border-radius: 99px; white-space: nowrap; }
.recap--collant { top: 150px; }

.confirmation { margin-top: 30px; }
.confirmation-carte { max-width: 820px; margin-inline: auto; background: #fff; border-radius: var(--r); padding: 40px; text-align: center; display: grid; gap: 18px; justify-items: center; }
.confirmation-ic { width: 70px; height: 70px; border-radius: 50%; display: grid; place-items: center; background: #DCFCE7; color: #15803D; }
.confirmation-ic .ic { width: 36px; height: 36px; }
.etapes--fin { width: 100%; margin: 0; }
.etapes--fin li { background: var(--fond); }
.confirmation h1 { font-size: 28px; font-weight: 700; }
.confirmation .lead { max-width: 600px; margin: 0; }
.confirmation-grille { width: 100%; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; text-align: left; }
.confirmation-grille > div { background: var(--fond); border-radius: var(--r-s); padding: 16px; }
.confirmation-grille h2 { font-size: 13px; font-family: var(--texte); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--doux); margin-bottom: 4px; }
.confirmation .recap-articles { width: 100%; max-height: none; text-align: left; }
.confirmation-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }

.suivi { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; margin-top: 18px; align-items: start; }
.suivi-carte { background: #fff; border-radius: var(--r); padding: 32px; }
.suivi-carte h1 { font-size: 28px; font-weight: 700; }
.suivi-carte > p { color: var(--doux); margin-top: 8px; }
.suivi-form { display: grid; grid-template-columns: 1fr 1fr auto; gap: 12px; align-items: end; margin-top: 22px; }
.suivi-form .bouton { height: 44px; }
.suivi-resultat { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--ligne); }
.suivi-titre { font-size: 15px; }
.frise { list-style: none; margin: 20px 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); counter-reset: f; }
.frise li { position: relative; padding-top: 34px; font-size: 13px; color: var(--doux); display: grid; gap: 2px; }
.frise li::before { content: ""; position: absolute; top: 9px; left: 0; right: 0; height: 4px; background: var(--ligne); }
.frise li::after { content: ""; position: absolute; top: 2px; left: 0; width: 18px; height: 18px; border-radius: 50%; background: #fff; border: 3px solid var(--ligne); }
.frise li.est-fait::before, .frise li.est-actif::before { background: var(--marque); }
.frise li.est-fait::after { background: var(--marque); border-color: var(--marque); }
.frise li.est-actif::after { border-color: var(--marque); box-shadow: 0 0 0 5px var(--teinte); }
.frise strong { color: var(--encre); font-size: 14px; }
.suivi-aide { background: #fff; border-radius: var(--r); padding: 26px; display: grid; gap: 10px; }
.suivi-aide h2 { font-size: 18px; }
.suivi-aide p { color: var(--doux); font-size: 13.5px; margin-bottom: 4px; }

.faq { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 24px; margin-top: 22px; align-items: start; }
.faq-sommaire, .legal-sommaire { position: sticky; top: 150px; background: #fff; border-radius: var(--r); padding: 14px; display: grid; gap: 2px; }
.faq-sommaire a, .legal-sommaire a { padding: 8px 12px; border-radius: var(--r-s); font-size: 14px; font-weight: 500; color: var(--encre-2); }
.faq-sommaire a:hover, .legal-sommaire a:hover { background: var(--teinte); color: var(--marque-texte); }
.faq-groupes { display: grid; gap: 22px; }
.faq-groupe { scroll-margin-top: 160px; }
.faq-groupe h2 { font-size: 20px; margin-bottom: 10px; }
.faq details { background: #fff; border-radius: var(--r); margin-bottom: 8px; }
.faq summary { list-style: none; cursor: pointer; padding: 18px 54px 18px 22px; font-weight: 600; font-size: 15px; position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 18px; top: 50%; transform: translateY(-50%); width: 26px; height: 26px; border-radius: 50%; background: var(--fond); display: grid; place-items: center; font-size: 18px; font-weight: 500; color: var(--marque-texte); transition: transform .2s; }
.faq details[open] summary::after { content: "−"; background: var(--teinte); }
.faq details p { padding: 0 22px 20px; color: var(--encre-2); font-size: 14.5px; line-height: 1.65; }
.faq details a { color: var(--marque-texte); text-decoration: underline; }
.legal { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 24px; margin-top: 22px; align-items: start; }
.legal--simple { grid-template-columns: minmax(0, 860px); }
.legal .prose h2 { scroll-margin-top: 160px; }

.page-404 { margin-top: 40px; background: #fff; border-radius: var(--r); padding: 56px 30px; text-align: center; display: grid; justify-items: center; gap: 16px; }
.code-404 { font: 800 110px/1 var(--titres); background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; letter-spacing: -.04em; }
.page-404 h1 { font-size: 28px; font-weight: 700; }
.page-404 > p { color: var(--doux); max-width: 520px; }
.recherche--404 { max-width: 560px; margin-top: 6px; text-align: left; }
.liens-404 { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin: 6px 0; }
.liens-404 a { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 999px; background: var(--fond); font-size: 13.5px; font-weight: 500; }
.liens-404 a:hover { background: var(--teinte); color: var(--marque-texte); }
.liens-404 .ic { width: 17px; height: 17px; color: var(--marque); }

/* ---------- responsive des pages intérieures ---------- */
@media (max-width: 1240px) {
  .produits-grille--liste { grid-template-columns: repeat(3, 1fr); }
  .atouts, .secteurs, .etapes-pro { grid-template-columns: repeat(2, 1fr); }
  .avis-produit { grid-template-columns: 180px 1fr; }
  .avis-donner { grid-column: 1 / -1; }
  .lot { grid-template-columns: minmax(0, 1fr); }
  .lot-total { padding-left: 0; border-left: 0; padding-top: 16px; border-top: 1px solid #F0F1F3; grid-template-columns: 1fr auto; align-items: center; }
  .lot-total .bouton { grid-column: 1 / -1; }
}
@media (max-width: 1080px) {
  .produits-grille--liste .carte-produit:nth-child(5) { display: flex; }
  .catalogue { grid-template-columns: minmax(0, 1fr); }
  .filtres { position: fixed; inset: 0 auto 0 0; z-index: 110; width: min(340px, 88vw); max-height: none; border-radius: 0; padding: 0 20px 20px; transform: translateX(-100%); transition: transform .3s ease; top: 0; }
  .catalogue.filtres-ouverts .filtres { transform: none; }
  .filtres-voile { position: fixed; inset: 0; z-index: 105; background: rgba(17,24,39,.5); opacity: 0; visibility: hidden; transition: opacity .25s; display: block; }
  .catalogue.filtres-ouverts .filtres-voile { opacity: 1; visibility: visible; }
  .filtres-tete { display: flex; justify-content: space-between; align-items: center; position: sticky; top: 0; background: #fff; padding: 16px 0; border-bottom: 1px solid var(--ligne); font: 600 17px/1 var(--titres); z-index: 1; }
  .filtres-fermer { width: 38px; height: 38px; border: 0; border-radius: 50%; background: var(--fond); display: grid; place-items: center; }
  .filtres-pied { position: sticky; bottom: -20px; background: #fff; padding: 14px 0 20px; }
  .filtres-pied .bouton { display: inline-flex; }
  .btn-filtres { display: inline-flex; }
  .fiche { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .galerie { position: static; }
  .promo-tete, .apropos-tete, .apropos-histoire { grid-template-columns: minmax(0, 1fr); }
  .formulaire-bloc, .compte, .suivi, .faq, .legal { grid-template-columns: minmax(0, 1fr); }
  .faq-sommaire, .legal-sommaire { position: static; display: flex; flex-wrap: wrap; }
  .carte-acces { grid-template-columns: minmax(0, 1fr); }
  .contact-cartes { grid-template-columns: 1fr 1fr; }
  .panier-page, .commande { grid-template-columns: minmax(0, 1fr); }
  .recap { position: static; }
  .commande .recap { order: -1; }
  .commande .recap .recap-articles { max-height: 180px; }
}
@media (max-width: 900px) {
  .produits-grille--liste { grid-template-columns: repeat(2, 1fr); }
  .barre-achat {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 85; padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
    background: #fff; box-shadow: 0 -8px 24px -12px rgba(17,24,39,.3); transform: translateY(110%); transition: transform .25s;
  }
  .barre-achat.est-visible { transform: none; }
  .barre-achat div { display: grid; min-width: 0; }
  .barre-achat strong { font: 700 17px/1.2 var(--titres); color: var(--marque-texte); }
  .barre-achat span { font-size: 12px; color: var(--doux); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .barre-achat .bouton { height: 46px; }
  body:has(.barre-achat.est-visible) .wa-flottant { bottom: 80px; }
  .tri span { display: none; }
}
@media (max-width: 600px) {
  .entete-page h1 { font-size: 24px; }
  .entete-cat { padding: 26px 22px; min-height: 0; }
  .entete-cat h1, .promo-flash h1, .pro--page h1, .apropos-texte h1 { font-size: 25px; }
  .puces { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: -16px; padding-inline: 16px; }
  .puce { flex: none; }
  .barre-outils { gap: 10px; flex-wrap: wrap; }
  .tri { font-size: 0; gap: 0; }
  .tri select { font-size: 13.5px; }
  .nb-resultats { order: 3; width: 100%; font-size: 13px; }
  .promo-flash, .promo-code { padding: 24px 20px; }
  .galerie { grid-template-columns: minmax(0, 1fr); }
  .galerie-principale { grid-column: 1; }
  .galerie-vignettes { grid-column: 1; grid-row: 2; flex-direction: row; }
  .vignette { width: 64px; flex: none; }
  .fiche-infos { padding: 22px 18px; }
  .fiche-infos h1 { font-size: 21px; }
  .fiche-prix strong { font-size: 26px; }
  .fiche-achat { grid-template-columns: auto 1fr; }
  .fiche-achat .fiche-acheter { grid-column: 1 / -1; }
  .fiche-garanties { grid-template-columns: minmax(0, 1fr); }
  .onglets--fiche { overflow-x: auto; flex-wrap: nowrap; }
  .onglets--fiche .onglet { flex: none; }
  .carte-texte { padding: 22px 18px; }
  .specs th { width: 42%; }
  .avis-produit { grid-template-columns: minmax(0, 1fr); }
  .lot-items { flex-direction: column; }
  .lot-item + .lot-item::before { left: 50%; top: -7px; }
  .atouts, .secteurs, .etapes-pro, .chiffres { grid-template-columns: minmax(0, 1fr); }
  .chiffres li + li { border-left: 0; border-top: 1px solid var(--ligne); padding-top: 14px; margin-top: 14px; }
  .formulaire, .formulaire-intro, .compte-carte, .compte-avantages, .suivi-carte, .commande-form { padding: 22px 18px; }
  .champs { grid-template-columns: minmax(0, 1fr); }
  .formulaire .bouton { justify-self: stretch; }
  .apropos-texte { padding: 28px 22px; }
  .apropos-photo { min-height: 240px; }
  .cta-bande { padding: 24px 22px; }
  .contact-cartes { grid-template-columns: minmax(0, 1fr); }
  .ligne-panier { grid-template-columns: 72px minmax(0, 1fr) auto; gap: 10px 12px; padding: 12px; }
  .ligne-panier img { width: 72px; height: 72px; grid-row: span 2; }
  .ligne-panier .qte { grid-column: 2; }
  .lp-total { grid-column: 3; grid-row: 2; min-width: 0; font-size: 15px; }
  .lp-retirer { grid-column: 3; grid-row: 1; justify-self: end; width: 34px; height: 34px; }
  .etapes { grid-template-columns: repeat(4, 1fr); gap: 4px; }
  .etapes li { flex-direction: column; gap: 4px; padding: 8px 4px; font-size: 11px; text-align: center; }
  .etape-actions { flex-direction: column-reverse; align-items: stretch; }
  .etape-actions .bouton { width: 100%; }
  .confirmation-carte { padding: 28px 18px; }
  .confirmation h1 { font-size: 22px; }
  .confirmation-grille { grid-template-columns: minmax(0, 1fr); }
  .suivi-form { grid-template-columns: minmax(0, 1fr); }
  .frise { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .frise li { padding: 0 0 18px 34px; }
  .frise li::before { top: 0; bottom: 0; left: 7px; right: auto; width: 4px; height: auto; }
  .frise li::after { top: 0; }
  .code-404 { font-size: 80px; }
}
.case.est-invalide { color: var(--rouge); }
.sugg--tout { grid-template-columns: minmax(0, 1fr); justify-items: center; border-top: 1px solid var(--ligne); border-radius: 0 0 6px 6px; margin-top: 4px; padding: 10px; }
.sugg--tout strong { color: var(--marque-texte); font-weight: 600; }
@media (max-width: 900px) {
  .ligne-panier { grid-template-columns: 72px minmax(0, 1fr) auto; gap: 10px 12px; padding: 12px; }
  .ligne-panier img { width: 72px; height: 72px; grid-row: span 2; }
  .ligne-panier .qte { grid-column: 2; justify-self: start; }
  .lp-total { grid-column: 3; grid-row: 2; min-width: 0; font-size: 15px; }
  .lp-retirer { grid-column: 3; grid-row: 1; justify-self: end; align-self: start; width: 34px; height: 34px; }
}
.recap-zone select, .champ select, .tri select { min-width: 0; max-width: 100%; text-overflow: ellipsis; }

/* ---------- menus : compteurs, tiroir dépliable, marques, cookies ---------- */
.mega-col a span { margin-left: 6px; font-size: 11px; color: #A3A9B3; }
.mega-col .mega-titre span { display: none; }
.tiroir-cat { border-bottom: 1px solid #F1F2F4; }
.tiroir-cat summary { list-style: none; display: flex; align-items: center; gap: 12px; padding: 12px 4px; font-weight: 500; cursor: pointer; }
.tiroir-cat summary::-webkit-details-marker { display: none; }
.tiroir-cat summary .ic { color: var(--marque); }
.tiroir-cat summary .chev { margin-left: auto; width: 16px; height: 16px; color: var(--doux); transition: transform .2s; }
.tiroir-cat[open] summary .chev { transform: rotate(180deg); }
.tiroir-cat[open] summary { color: var(--marque-texte); }
.tiroir-sous { display: grid; padding: 0 0 10px 36px; }
.tiroir-sous a { display: flex; justify-content: space-between; gap: 10px; padding: 8px 4px; font-size: 14px; color: var(--encre-2); border-bottom: 0 !important; }
.tiroir-sous a span { font-size: 12px; color: var(--doux); }
.tiroir-sous .tiroir-tout { font-weight: 600; color: var(--marque-texte); }
.tiroir-devise { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--doux); }
.tiroir-devise .ic { width: 16px; height: 16px; }
.marques li { padding: 0; }
.marques a { display: grid; place-items: center; align-content: center; gap: 3px; width: 100%; height: 100%; border-radius: inherit; transition: color .2s, box-shadow .2s; }
.marques a:hover { color: var(--encre); box-shadow: inset 0 0 0 1.5px var(--ligne); }
.marques a span { font: 500 11.5px/1 var(--texte); color: var(--doux); letter-spacing: 0; }
.marques { grid-template-columns: repeat(6, 1fr); }
.alerte-stock { margin-top: 14px; padding: 14px 16px; border-radius: var(--r-s); background: var(--fond); display: grid; gap: 10px; }
.alerte-stock > p { font-size: 13.5px; color: var(--doux); }
.alerte-stock > p strong { display: block; color: var(--encre); font-size: 14px; }
.alerte-ligne { display: flex; gap: 8px; }
.alerte-ligne input { flex: 1; min-width: 0; height: 42px; padding: 0 12px; border: 1.5px solid var(--ligne); border-radius: var(--r-s); font-size: 14px; outline: none; }
.alerte-ligne input:focus { border-color: var(--marque); }
.alerte-ligne .bouton { height: 42px; }
.cookies { position: fixed; left: 20px; bottom: 20px; z-index: 95; max-width: 520px; padding: 18px 20px; border-radius: var(--r); background: #fff; box-shadow: 0 18px 40px -12px rgba(17,24,39,.35); border: 1px solid var(--ligne); display: grid; gap: 12px; }
.cookies[hidden] { display: none; }
.cookies p { font-size: 13.5px; color: var(--encre-2); }
.cookies strong { display: block; font: 600 15px/1.3 var(--titres); color: var(--encre); margin-bottom: 2px; }
.cookies a { color: var(--marque-texte); text-decoration: underline; }
.cookies-actions { display: flex; gap: 8px; justify-content: flex-end; }
.cookies-actions .bouton { height: 40px; }
@media (max-width: 1080px) { .marques { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 600px) {
  .marques { grid-template-columns: repeat(2, 1fr); }
  .cookies { left: 10px; right: 10px; bottom: 10px; max-width: none; }
  .cookies-actions .bouton { flex: 1; }
  body:has(.cookies:not([hidden])) .wa-flottant { bottom: 190px; }
}

/* ---------- barre de navigation : tient sur une ligne de 901 à 1920 px ---------- */
.entete-bas-in { gap: 20px; }
.nav { gap: 22px; }
.outils { gap: 8px; }
.btn-devise .chev { display: none; }
.btn-cats .cats-court { display: none; }
@media (max-width: 1240px) { .nav { gap: 20px; } }
@media (max-width: 1300px) { .devise { display: none; } }
@media (max-width: 1200px) { .panier-total { display: none; } }
@media (max-width: 1080px) {
  .nav { gap: 16px; }
  .btn-cats .cats-long { display: none; }
  .btn-cats .cats-court { display: inline; }
}
@media (max-width: 1000px) { .nav a:nth-child(n+5) { display: none; } }
.mega { grid-template-columns: repeat(4, minmax(0, 1fr)) 230px; }
@media (max-width: 1240px) {
  .mega { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px 20px; padding: 22px; }
  .mega-promo { display: none; }
}
.fiche-infos, .galerie { min-width: 0; }
.alerte-stock { grid-template-columns: minmax(0, 1fr); }
.alerte-ligne input { width: 100%; }
.recap, .recap-lignes { grid-template-columns: minmax(0, 1fr); }
.recap-zone dd, .recap-lignes > div > * { min-width: 0; }
@media (max-width: 1240px) {
  .fiche-achat { grid-template-columns: auto minmax(0, 1fr); }
  .fiche-achat .fiche-acheter { grid-column: 1 / -1; }
}
.mega { width: min(1272px, calc(100vw - 48px)); }

/* ---------- marques : une ligne qui défile en continu ---------- */
.marques-defile {
  --duree: 42s;
  display: flex; overflow: hidden;
  -webkit-mask: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
          mask: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
}
.marques-piste { display: flex; gap: 14px; padding-right: 14px; flex: none; animation: defile-marques var(--duree) linear infinite; }
.marques-defile:hover .marques-piste, .marques-defile:focus-within .marques-piste { animation-play-state: paused; }
@keyframes defile-marques { to { transform: translateX(-100%); } }
.marques-piste li { flex: none; }
.marques-piste a { display: grid; place-items: center; width: 180px; height: 84px; padding: 0 18px; background: #fff; border-radius: var(--r); color: #9AA0AA; transition: color .2s, box-shadow .2s; }
.marques-piste a:hover, .marques-piste a:focus-visible { color: var(--encre); box-shadow: inset 0 0 0 1.5px var(--ligne); }
.marque-nom { font: 700 19px/1 var(--titres); letter-spacing: -.01em; white-space: nowrap; }
.marques-piste img { max-height: 40px; max-width: 140px; width: auto; object-fit: contain; filter: grayscale(1); opacity: .7; transition: filter .2s, opacity .2s; }
.marques-piste a:hover img { filter: none; opacity: 1; }
@media (max-width: 600px) {
  .marques-piste { gap: 10px; padding-right: 10px; }
  .marques-piste a { width: 136px; height: 66px; }
  .marque-nom { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .marques-defile { overflow-x: auto; -webkit-mask: none; mask: none; }
  .marques-piste[aria-hidden] { display: none; }
}

/* ---------- suivi de commande simplifié ---------- */
.suivi2 { max-width: 760px; margin: 18px auto 0; display: grid; gap: 18px; }
.suivi2-carte { background: #fff; border-radius: var(--r); padding: 36px 36px 30px; text-align: center; display: grid; justify-items: center; gap: 12px; }
.suivi2-ic { width: 60px; height: 60px; border-radius: 50%; display: grid; place-items: center; background: var(--teinte); color: var(--marque); }
.suivi2-ic .ic { width: 30px; height: 30px; }
.suivi2-carte h1 { font-size: 28px; font-weight: 700; }
.suivi2-aide { color: var(--doux); font-size: 15px; max-width: 480px; }
.suivi2-aide strong { color: var(--encre); }
.suivi2-form { width: 100%; max-width: 520px; display: flex; gap: 10px; margin-top: 8px; }
.suivi2-form input { flex: 1; min-width: 0; height: 54px; padding: 0 18px; border: 2px solid var(--ligne); border-radius: var(--r-s); font-size: 18px; font-weight: 500; letter-spacing: .02em; text-align: center; outline: none; transition: border-color .2s; }
.suivi2-form input:focus { border-color: var(--marque); }
.suivi2-form .bouton { height: 54px; padding: 0 26px; font-size: 15px; }
.suivi2-erreur { width: 100%; max-width: 520px; padding: 12px 14px; border-radius: var(--r-s); background: #FFF4F2; color: #9F1F14; font-size: 14px; text-align: left; }
.suivi2-erreur[hidden] { display: none; }
.suivi2-erreur a { color: inherit; font-weight: 600; text-decoration: underline; }
.suivi2-ou { width: 100%; max-width: 520px; display: flex; align-items: center; gap: 12px; margin-top: 6px; font-size: 13px; color: var(--doux); }
.suivi2-ou::before, .suivi2-ou::after { content: ""; flex: 1; height: 1px; background: var(--ligne); }
.suivi2-raccourcis { width: 100%; max-width: 520px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.suivi2-raccourcis .bouton { height: 48px; }
.suivi2-resultat { background: #fff; border-radius: var(--r); padding: 30px; display: grid; gap: 22px; scroll-margin-top: 150px; }
.suivi2-resultat[hidden] { display: none; }
.suivi2-sur { font-size: 13.5px; color: var(--doux); }
.suivi2-sur strong { color: var(--encre); }
.suivi2-statut h2 { font-size: 26px; font-weight: 700; margin-top: 6px; color: var(--marque-texte); }
.suivi2-statut > p:last-child { margin-top: 6px; color: var(--encre-2); font-size: 15px; }
.suivi2-etapes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; position: relative; }
.suivi2-etapes li { display: grid; justify-items: center; text-align: center; gap: 4px; position: relative; color: var(--doux); }
.suivi2-etapes li::before { content: ""; position: absolute; top: 21px; left: -50%; right: 50%; height: 4px; background: var(--ligne); z-index: 0; }
.suivi2-etapes li:first-child::before { content: none; }
.suivi2-etapes li.est-fait::before, .suivi2-etapes li.est-actif::before { background: var(--marque); }
.pastille-etape { position: relative; z-index: 1; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: var(--fond); color: #A3A9B3; border: 3px solid #fff; }
.pastille-etape .ic { width: 20px; height: 20px; }
.suivi2-etapes li.est-fait .pastille-etape { background: var(--marque); color: #fff; }
.suivi2-etapes li.est-actif .pastille-etape { background: var(--grad); color: #fff; box-shadow: 0 0 0 6px var(--teinte); }
.suivi2-etapes strong { font-size: 14px; color: var(--encre); margin-top: 4px; }
.suivi2-etapes li:not(.est-fait):not(.est-actif) strong { color: var(--doux); }
.suivi2-etapes small { font-size: 12px; line-height: 1.35; }
.suivi2-infos { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.suivi2-infos > div { background: var(--fond); border-radius: var(--r-s); padding: 12px 14px; }
.suivi2-infos dt { font-size: 12px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--doux); }
.suivi2-infos dd { margin: 4px 0 0; font-weight: 600; font-size: 14.5px; }
.suivi2-autres { font-size: 13.5px; color: var(--doux); }
.suivi2-autres[hidden] { display: none; }
.suivi2-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.suivi2-actions .bouton { height: 46px; }
.confirmation-suivi { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-radius: var(--r-s); background: var(--teinte); color: var(--encre-2); font-size: 14px; text-align: left; }
.confirmation-suivi .ic { width: 22px; height: 22px; color: var(--marque); flex: none; }
@media (max-width: 600px) {
  .suivi2-carte { padding: 26px 18px 22px; }
  .suivi2-carte h1 { font-size: 23px; }
  .suivi2-form { flex-direction: column; }
  .suivi2-raccourcis { grid-template-columns: minmax(0, 1fr); }
  .suivi2-resultat { padding: 22px 18px; }
  .suivi2-statut h2 { font-size: 22px; }
  .suivi2-etapes { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .suivi2-etapes li { grid-template-columns: 46px 1fr; grid-template-rows: auto auto; justify-items: start; text-align: left; column-gap: 14px; padding-bottom: 16px; }
  .suivi2-etapes li .pastille-etape { grid-row: span 2; }
  .suivi2-etapes li strong { margin-top: 2px; }
  .suivi2-etapes li::before { top: auto; bottom: -2px; left: 21px; right: auto; width: 4px; height: calc(100% - 46px); }
  .suivi2-etapes li:first-child::before { content: ""; }
  .suivi2-etapes li:last-child::before { content: none; }
  .suivi2-etapes li.est-actif::before { background: var(--ligne); }
  .suivi2-infos { grid-template-columns: minmax(0, 1fr); }
  .suivi2-actions .bouton { flex: 1; }
}

/* ---------- commande allégée ---------- */
.champ[hidden], .adresse[hidden] { display: none; }
.adresse { display: grid; gap: 14px; }
.commande-form .champ > span:first-child { font-weight: 600; color: var(--encre); }
.commande-form .champ input, .commande-form .champ select, .commande-form .champ-prefixe { height: 50px; font-size: 16px; }
.commande-form .champ-prefixe input { height: 100%; }
.champ-erreur { font-style: normal; font-size: 13px; font-weight: 500; color: var(--rouge); }
.champ-erreur:empty { display: none; }
.champ--discret > span:first-child { font-weight: 500 !important; color: var(--doux) !important; }
.champ-option summary { cursor: pointer; list-style: none; font-size: 13.5px; font-weight: 500; color: var(--marque-texte); }
.champ-option summary::-webkit-details-marker { display: none; }
.champ-option[open] summary { margin-bottom: 10px; }
.bouton--grand { height: 52px !important; padding: 0 28px !important; font-size: 15px; }
.etape-legal { font-size: 12.5px; color: var(--doux); }
.etape-legal a { color: var(--marque-texte); text-decoration: underline; }
@media (max-width: 600px) { .bouton--grand { width: 100%; } }
@media (max-width: 1080px) { .commande .recap { order: 2; } }
.suivi2-resultat, .suivi2-carte { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 600px) {
  .suivi2-actions .bouton, .suivi2-raccourcis .bouton { white-space: normal; height: auto; min-height: 46px; padding: 10px 14px; text-align: center; line-height: 1.3; }
}


/* ===== Icônes (masques CSS) ===== */
.ic-recherche { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7.5'/%3E%3Cpath d='m21 21-4.6-4.6'/%3E%3C/svg%3E"); }
.ic-compte { --ic: 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='8' r='4.2'/%3E%3Cpath d='M4.5 20.5c.6-3.9 3.7-6 7.5-6s6.9 2.1 7.5 6'/%3E%3C/svg%3E"); }
.ic-coeur { --ic: 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='M19 14c1.5-1.5 3-3.2 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.8 0-3 .5-4.5 2-1.5-1.5-2.7-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4 3 5.5l7 7Z'/%3E%3C/svg%3E"); }
.ic-comparer { --ic: 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='m16 3 4 4-4 4'/%3E%3Cpath d='M20 7H4'/%3E%3Cpath d='m8 21-4-4 4-4'/%3E%3Cpath d='M4 17h16'/%3E%3C/svg%3E"); }
.ic-panier { --ic: 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.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8.5' cy='20.5' r='1.3'/%3E%3Ccircle cx='18' cy='20.5' r='1.3'/%3E%3Cpath d='M2.5 3h2.2l2.6 12a2 2 0 0 0 2 1.6h8.9a2 2 0 0 0 1.9-1.5L21.6 8H5.6'/%3E%3C/svg%3E"); }
.ic-casque { --ic: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3'/%3E%3C/svg%3E"); }
.ic-camion { --ic: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2'/%3E%3Cpath d='M15 18H9'/%3E%3Cpath d='M19 18h2a1 1 0 0 0 1-1v-3.6a1 1 0 0 0-.2-.6l-3.5-4.4a1 1 0 0 0-.8-.4H14'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3Ccircle cx='7' cy='18' r='2'/%3E%3C/svg%3E"); }
.ic-bouclier { --ic: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 13c0 5-3.5 7.5-7.7 9a1 1 0 0 1-.6 0C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.2-2.7a1.2 1.2 0 0 1 1.6 0C14.5 3.8 17 5 19 5a1 1 0 0 1 1 1z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E"); }
.ic-portefeuille { --ic: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1'/%3E%3Cpath d='M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4'/%3E%3C/svg%3E"); }
.ic-cle { --ic: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.8-3.8a6 6 0 0 1-7.9 7.9l-6.9 6.9a2.1 2.1 0 0 1-3-3l6.9-6.9a6 6 0 0 1 7.9-7.9z'/%3E%3C/svg%3E"); }
.ic-boutique { --ic: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2 7 4.4-4.4A2 2 0 0 1 7.8 2h8.4a2 2 0 0 1 1.4.6L22 7'/%3E%3Cpath d='M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8'/%3E%3Cpath d='M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4'/%3E%3Cpath d='M2 7h20v3a2 2 0 0 1-2 2 2.7 2.7 0 0 1-2-1 2.7 2.7 0 0 1-2 1 2.7 2.7 0 0 1-2-1 2.7 2.7 0 0 1-2 1 2.7 2.7 0 0 1-2-1 2.7 2.7 0 0 1-2 1 2.7 2.7 0 0 1-2-1 2.7 2.7 0 0 1-2 1 2 2 0 0 1-2-2z'/%3E%3C/svg%3E"); }
.ic-menu { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h10'/%3E%3C/svg%3E"); }
.ic-chevron-bas { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); }
.ic-chevron-droite { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 6 6 6-6 6'/%3E%3C/svg%3E"); }
.ic-chevron-gauche { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 6-6 6 6 6'/%3E%3C/svg%3E"); }
.ic-fleche { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m13 6 6 6-6 6'/%3E%3C/svg%3E"); }
.ic-etoile { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='m12 2.5 2.9 6 6.6.9-4.8 4.6 1.2 6.5L12 17.4l-5.9 3.1 1.2-6.5-4.8-4.6 6.6-.9z'/%3E%3C/svg%3E"); }
.ic-mail { --ic: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='4.5' width='19' height='15' rx='2'/%3E%3Cpath d='m22 7-9 5.7a2 2 0 0 1-2 0L2 7'/%3E%3C/svg%3E"); }
.ic-tel { --ic: 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.6' 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"); }
.ic-lieu { --ic: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-5.5 10.2-7.4 11.8a1 1 0 0 1-1.2 0C9.5 20.2 4 15 4 10a8 8 0 0 1 16 0'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.ic-horloge { --ic: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M12 6.5V12l3.5 2'/%3E%3C/svg%3E"); }
.ic-mallette { --ic: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16'/%3E%3Crect width='20' height='14' x='2' y='6' rx='2'/%3E%3C/svg%3E"); }
.ic-eclair { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M13.2 2.2 4.4 13.1a.6.6 0 0 0 .5 1H11l-1.3 7.2c-.1.6.6.9 1 .4l8.8-10.9a.6.6 0 0 0-.5-1H13l1.2-7.2c.1-.6-.6-.9-1-.4Z'/%3E%3C/svg%3E"); }
.ic-coche { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); }
.ic-croix { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E"); }
.ic-globe { --ic: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M2.5 12h19'/%3E%3Cpath d='M12 2.5a14.5 14.5 0 0 1 0 19 14.5 14.5 0 0 1 0-19'/%3E%3C/svg%3E"); }
.ic-whatsapp { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12.04 2a9.9 9.9 0 0 0-8.5 15l-1.4 5 5.2-1.4A9.9 9.9 0 1 0 12.04 2Zm0 18.1a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3.1.8.8-3-.2-.3a8.2 8.2 0 1 1 7 3.9Zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8-.2-.1-.4-.1-.6.1l-.8 1c-.1.2-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.2-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.8 11.8 0 0 0 4.5 4c1.7.7 2.3.8 3.2.6a2.7 2.7 0 0 0 1.8-1.2 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.3-.2-.6-.3Z'/%3E%3C/svg%3E"); }
.ic-facebook { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M14 8.5V6.8c0-.8.2-1.3 1.4-1.3H17V2.2a21 21 0 0 0-2.4-.1C12.2 2.1 10.6 3.6 10.6 6.3v2.2H8v3.6h2.6V22H14v-9.9h2.6l.4-3.6Z'/%3E%3C/svg%3E"); }
.ic-instagram { --ic: 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.8'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Ccircle cx='17.5' cy='6.5' r='.6' fill='%23000'/%3E%3C/svg%3E"); }
.ic-tiktok { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M16.6 2h-3.3v13.4a2.9 2.9 0 1 1-2.1-2.8V9.2a6.3 6.3 0 1 0 5.4 6.2V8.6a7.9 7.9 0 0 0 4.4 1.4V6.7a4.6 4.6 0 0 1-4.4-4.7Z'/%3E%3C/svg%3E"); }
.ic-cadenas { --ic: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='10.5' width='16' height='11' rx='2'/%3E%3Cpath d='M8 10.5V7a4 4 0 0 1 8 0v3.5'/%3E%3C/svg%3E"); }
.ic-filtre { --ic: 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.8' stroke-linecap='round'%3E%3Cpath d='M4 6h10M18 6h2M4 12h4M12 12h8M4 18h12M20 18h0'/%3E%3Ccircle cx='16' cy='6' r='2'/%3E%3Ccircle cx='10' cy='12' r='2'/%3E%3Ccircle cx='18' cy='18' r='2'/%3E%3C/svg%3E"); }
.ic-poubelle { --ic: 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='M3 6h18M8 6V4a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6M10 11v6M14 11v6'/%3E%3C/svg%3E"); }
.ic-etiquette { --ic: 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.6 2.6A2 2 0 0 0 11.2 2H4a2 2 0 0 0-2 2v7.2a2 2 0 0 0 .6 1.4l8.7 8.7a2.4 2.4 0 0 0 3.4 0l6.6-6.6a2.4 2.4 0 0 0 0-3.4z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.3' fill='%23000'/%3E%3C/svg%3E"); }
.ic-ecole { --ic: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 10 12 5 2 10l10 5 10-5Z'/%3E%3Cpath d='M6 12v5c3 2 9 2 12 0v-5'/%3E%3C/svg%3E"); }
.ic-batiment { --ic: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21h18M5 21V8l7-5 7 5v13M9 21v-6h6v6M9 11h.01M15 11h.01'/%3E%3C/svg%3E"); }
.ic-coeur-main { --ic: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 14h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 16'/%3E%3Cpath d='m7 20 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.8-2.8l-4.2 3.9'/%3E%3Cpath d='m2 15 6 6'/%3E%3C/svg%3E"); }
.ic-cible { --ic: 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.6'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Ccircle cx='12' cy='12' r='5.5'/%3E%3Ccircle cx='12' cy='12' r='1.5' fill='%23000'/%3E%3C/svg%3E"); }
.ic-colis { --ic: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 8 12 3 3 8v8l9 5 9-5z'/%3E%3Cpath d='m3 8 9 5 9-5M12 13v8'/%3E%3C/svg%3E"); }
.ic-ordi { --ic: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4.5' width='16' height='11' rx='1.5'/%3E%3Cpath d='M2 19.5h20'/%3E%3C/svg%3E"); }
.ic-mobile { --ic: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6.5' y='2.5' width='11' height='19' rx='2.2'/%3E%3Cpath d='M11 18.5h2'/%3E%3C/svg%3E"); }
.ic-tv { --ic: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='4.5' width='19' height='13' rx='1.5'/%3E%3Cpath d='M8 21h8M12 17.5V21'/%3E%3C/svg%3E"); }
.ic-frigo { --ic: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5.5' y='2.5' width='13' height='19' rx='2'/%3E%3Cpath d='M5.5 10h13M9 5.5v2M9 13v3'/%3E%3C/svg%3E"); }
.ic-mixeur { --ic: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 2.5h10l-1.5 11h-7z'/%3E%3Cpath d='M8 13.5h8l1 4H7z'/%3E%3Cpath d='M6.5 17.5h11v4h-11z'/%3E%3C/svg%3E"); }
.ic-soleil { --ic: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 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'/%3E%3C/svg%3E"); }

/* =========================================================================
   Adaptations WordPress : même design que la maquette, DOM des blocs natifs
   (groupes, paragraphes, images de la médiathèque, blocs WooCommerce)
   ========================================================================= */

/* ---------- socle : neutraliser l'espacement automatique sans écraser le nôtre ---------- */
:where(.wp-block-group) > :where(*), :where(.wp-block-buttons) { margin-block: 0; }
:where(.wp-site-blocks) > * { margin-block: 0; }
figure.wp-block-image, .wp-block-image { margin: 0; }
.wp-block-image img, img { height: auto; max-width: 100%; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wp-block-list { margin: 0; padding: 0; list-style: none; }
.prose .wp-block-list { list-style: disc; padding-left: 20px; }
.prose ol.wp-block-list { list-style: decimal; }
p:empty { display: none; }

/* pictogrammes : masque CSS piloté par --ic (classes .ic-nom) */
.a-ic::before, .lien-fleche a::after, .liste-coches li::before {
  content: ""; display: inline-block; flex: none; width: 1.25em; height: 1.25em; background: currentColor;
  -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat;
}

/* ---------- boutons : bloc Bouton, boutons WooCommerce ---------- */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 10px; }
.wp-block-button__link, .wp-element-button, .woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 42px; padding: 0 20px;
  border: 0; border-radius: var(--r-s); background: var(--grad-bouton); color: #fff !important;
  font: 600 14px/1 var(--texte); white-space: nowrap; text-decoration: none; cursor: pointer; transition: filter .2s, transform .2s;
}
.wp-block-button__link:hover, .woocommerce .button:hover { filter: brightness(1.08); }
.wp-block-button.bouton--blanc .wp-block-button__link { background: #fff; color: var(--encre) !important; }
.wp-block-button.bouton--blanc .wp-block-button__link:hover { filter: none; color: var(--marque-texte) !important; }
.wp-block-button.bouton--contour .wp-block-button__link { background: transparent; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.45); }
.wp-block-button.bouton--contour-sombre .wp-block-button__link { background: #fff; color: var(--encre) !important; box-shadow: inset 0 0 0 1.5px var(--ligne); }
.wp-block-button.bouton--wa .wp-block-button__link, .bouton--wa { background: var(--wa) !important; color: #073B1C !important; }
.wp-block-button.bouton--mini .wp-block-button__link { height: 34px; padding: 0 14px; font-size: 13px; }

/* ---------- en-tête ---------- */
.entete-zone { position: sticky; top: -36px; z-index: 50; }
body.admin-bar .entete-zone { top: -4px; }
.entete-colle { background: #fff; transition: box-shadow .25s; }
.entete-zone.est-colle .entete-colle { box-shadow: 0 6px 24px -10px rgba(17,24,39,.22); }
.bandeau-in { min-height: 36px; }
.bandeau-msg { display: flex; flex-wrap: wrap; gap: 22px; }
.bandeau-msg p, .bandeau-liens p { display: inline-flex; align-items: center; gap: 7px; margin: 0; }
.bandeau-msg p::before { width: 15px; height: 15px; color: #FDBA9C; }
.bandeau-liens { display: flex; gap: 20px; }
.entete-haut { grid-template-columns: auto minmax(0, 1fr) auto; }
.entete-haut .btn-tiroir, .entete-haut .panier-mobile { display: none; }
.wp-block-site-logo.logo img, .logo img { height: 32px !important; width: auto !important; }
.wp-block-site-logo a { display: block; }

/* recherche (bloc Rechercher, limité aux produits) */
.wp-block-search.recherche { position: relative; max-width: 620px; width: 100%; margin: 0; }
.recherche .wp-block-search__inside-wrapper { position: relative; height: 46px; padding: 0; border: 1.5px solid var(--ligne) !important; border-radius: 999px; background: #fff; transition: border-color .2s; }
.recherche .wp-block-search__inside-wrapper:focus-within { border-color: var(--marque) !important; }
.recherche .wp-block-search__input { height: 100%; padding: 0 56px 0 22px; border: 0 !important; border-radius: 999px; background: transparent; font-size: 14px; outline: none; min-width: 0; }
.recherche .wp-block-search__input::placeholder { color: #8B929E; }
.recherche .wp-block-search__button { position: absolute; right: 4px; top: 4px; width: 36px; height: 36px; margin: 0; padding: 0 !important; border-radius: 50% !important; background: var(--grad) !important; color: #fff !important; display: grid; place-items: center; }
.recherche .wp-block-search__button svg { width: 18px; height: 18px; min-width: 0; fill: currentColor; }

.entete-infos { display: flex; gap: 30px; }
.info { display: grid; grid-template-columns: 32px auto; column-gap: 11px; align-items: center; }
.info::before { grid-row: span 2; width: 32px; height: 32px; }
.info p { margin: 0; font-size: 13.5px; line-height: 1.3; }
.info .info-sous a { font-size: 13px; color: var(--marque-texte); }

.entete-bas-in { display: flex; align-items: center; min-height: 58px; }
.cats { position: relative; }
.btn-cats { display: inline-flex; align-items: center; gap: 10px; height: 44px; padding: 0 16px 0 5px; margin: 0; border-radius: 999px; background: #fff; font-weight: 500; font-size: 14px; white-space: nowrap; cursor: pointer; user-select: none; }
.btn-cats::before { content: ""; width: 34px; height: 34px; border-radius: 50%;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h10'/%3E%3C/svg%3E") center / 18px no-repeat, var(--grad); }
.btn-cats::after { content: ""; width: 15px; height: 15px; transition: transform .2s;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat; }
.cats.est-ouvert .btn-cats::after { transform: rotate(180deg); }
.mega-col { display: flex; flex-direction: column; gap: 7px; }
.mega-titre { display: flex; align-items: center; gap: 8px; margin: 0 0 3px; font: 600 14.5px/1.3 var(--titres); }
.mega-titre::before { width: 20px; height: 20px; color: var(--marque); }
.mega-liste + .mega-titre { margin-top: 14px; }
.mega-liste { display: grid; gap: 7px; }
.mega-liste a { font-size: 13.5px; color: var(--encre-2); }
.mega-liste a:hover, .mega-titre a:hover { color: var(--marque-texte); }
.mega-promo { border-radius: var(--r); padding: 22px; background: var(--grad); color: #fff; display: flex; flex-direction: column; justify-content: flex-end; min-height: 220px; }
.mega-promo-sur { font: 600 11.5px/1 var(--texte); letter-spacing: .08em; text-transform: uppercase; opacity: .9; margin-bottom: 8px !important; }
.mega-promo-titre { font: 600 18px/1.25 var(--titres); }

/* navigation (bloc Navigation : menu éditable) */
.wp-block-navigation.nav { flex: 1; gap: 22px; }
.wp-block-navigation.nav .wp-block-navigation__container { gap: 22px; }
.wp-block-navigation.nav .wp-block-navigation-item__content { font-size: 14px; font-weight: 500; color: var(--encre); white-space: nowrap; padding: 4px 0; display: inline-flex; align-items: center; gap: 5px; }
.wp-block-navigation.nav .wp-block-navigation-item__content:hover,
.wp-block-navigation.nav .current-menu-item > .wp-block-navigation-item__content { color: var(--marque-texte); }
.wp-block-navigation.nav .current-menu-item > .wp-block-navigation-item__content { box-shadow: inset 0 -2px 0 var(--marque); }
.wp-block-navigation.nav .nav-promo > .wp-block-navigation-item__content { color: var(--marque-texte); font-weight: 600; }
.wp-block-navigation.nav .nav-promo > .wp-block-navigation-item__content::before { content: ""; width: 15px; height: 15px; background: currentColor; -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }

.outils { display: flex; align-items: center; gap: 8px; }
.btn-devise { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 8px; margin: 0; border-radius: 999px; font-size: 13px; color: var(--encre-2); white-space: nowrap; cursor: pointer; user-select: none; }
.btn-devise::before { width: 16px; height: 16px; }
.devise.est-ouvert .btn-devise, .btn-devise:hover { background: #fff; color: var(--encre); }
.devise-panneau p { margin: 0; }
.devise-choix.est-actif::before { content: "✓"; font-weight: 700; margin-right: 2px; }
p.rond-ic, .compte-ic { position: relative; width: 42px; height: 42px; margin: 0; border-radius: 50%; background: #fff; display: grid; place-items: center; color: var(--encre); transition: color .2s; }
p.rond-ic::before { width: 20px; height: 20px; }
p.rond-ic a { position: absolute; inset: 0; border-radius: 50%; font-size: 0; color: transparent; }
p.rond-ic:hover, .compte-ic:hover { color: var(--marque-texte); }
.compte-ic a { display: grid; place-items: center; width: 100%; height: 100%; color: inherit; }
.compte-ic svg { width: 22px; height: 22px; }
p.rond-ic .pastille { pointer-events: none; }

/* mini-panier WooCommerce : rond dégradé + total */
.wc-block-mini-cart .wc-block-mini-cart__button { display: inline-flex; flex-direction: row-reverse; align-items: center; gap: 10px; padding: 0; background: none; border: 0; color: var(--encre); cursor: pointer; font: 600 14px/1 var(--texte); }
.wc-block-mini-cart__quantity-badge { position: relative; width: 42px; height: 42px; border-radius: 50%; background: var(--grad); color: #fff; display: grid; place-items: center; }
.wc-block-mini-cart__icon { width: 22px !important; height: 22px !important; color: #fff; fill: currentColor; }
.wc-block-mini-cart__badge { position: absolute; top: -3px; right: -3px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 999px; background: #fff !important; color: var(--rouge) !important; font: 600 10px/17px var(--texte); box-shadow: 0 0 0 2px var(--teinte); margin: 0; transform: none; left: auto; }
.wc-block-mini-cart__amount { white-space: nowrap; }

/* tiroir mobile */
.tiroir { position: fixed; inset: 0; z-index: 100; visibility: hidden; }
.tiroir.est-ouvert { visibility: visible; }
.tiroir::before { content: ""; position: absolute; inset: 0; background: rgba(17,24,39,.5); opacity: 0; transition: opacity .25s; }
.tiroir.est-ouvert::before { opacity: 1; }
.tiroir-panneau { position: absolute; inset: 0 auto 0 0; width: min(340px, 86vw); background: #fff; padding: 18px 20px 24px; display: flex; flex-direction: column; gap: 10px; overflow-y: auto; transform: translateX(-100%); transition: transform .3s ease; }
.tiroir.est-ouvert .tiroir-panneau { transform: none; }
.tiroir-tete { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.tiroir-logo img { height: 27px !important; width: auto !important; }
.tiroir-fermer { width: 40px; height: 40px; margin: 0; border-radius: 50%; background: var(--fond); font-size: 0; cursor: pointer; position: relative; }
.tiroir-fermer::before, .tiroir-fermer::after { content: ""; position: absolute; left: 12px; right: 12px; top: 19px; height: 2px; background: var(--encre); transform: rotate(45deg); }
.tiroir-fermer::after { transform: rotate(-45deg); }
.tiroir-promo { display: flex; align-items: center; gap: 10px; padding: 10px 4px; font-weight: 600; color: var(--marque-texte); }
.tiroir-cat { border-bottom: 1px solid #F1F2F4; }
.tiroir-cat summary { list-style: none; display: flex; align-items: center; gap: 12px; padding: 12px 4px; font-weight: 500; cursor: pointer; }
.tiroir-cat summary::-webkit-details-marker { display: none; }
.tiroir-cat::before { display: none; }
.tiroir-cat summary::before { content: ""; width: 20px; height: 20px; background: var(--marque); -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }
.tiroir-cat summary::after { content: "+"; margin-left: auto; color: var(--doux); font-size: 18px; }
.tiroir-cat[open] summary::after { content: "−"; }
.tiroir-cat[open] summary { color: var(--marque-texte); }
.tiroir-sous { display: grid; padding: 0 0 10px 36px; }
.tiroir-sous a { display: block; padding: 7px 4px; font-size: 14px; color: var(--encre-2); }
.tiroir-sous li:first-child a { font-weight: 600; color: var(--marque-texte); }
.tiroir-liens { display: grid; margin-top: 6px; }
.tiroir-liens a { display: block; padding: 10px 4px; font-weight: 500; border-bottom: 1px solid #F1F2F4; }
.tiroir-devise { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--doux); margin-top: 6px; }
.tiroir-wa .wp-block-button { width: 100%; }
.tiroir-wa .wp-block-button__link { width: 100%; }

/* ---------- héros ---------- */
.diapo-slide .fond, .banniere > .fond, .tuile-marque > .fond { position: absolute; inset: 0; z-index: 0; margin: 0; }
.diapo-slide .fond img, .banniere > .fond img { width: 100%; height: 100%; object-fit: cover; display: block; }
.diapo-slide::before { z-index: 1; }
.diapo-texte { z-index: 2; }
.diapo-texte .wp-block-buttons { justify-content: center; }
.banniere > .fond { z-index: -2; }
.banniere > :not(.fond) { position: relative; }
.banniere .wp-block-buttons { margin-top: 16px; }
.banniere--petite .wp-block-buttons { margin-top: 12px; }
.banniere .wp-block-button__link::after { content: ""; position: absolute; inset: 0; }
.banniere .wp-block-buttons, .banniere .wp-block-button { position: static !important; }
.banniere h2 { color: #fff; }
.banniere-sur::before { width: 15px; height: 15px; }
.banniere--flash .fond img { object-position: 70% 40%; }
.compte-rebours > p { display: flex; flex-direction: column; align-items: center; min-width: 46px; margin: 0; padding: 7px 4px 6px; border-radius: 6px; background: #fff; color: var(--doux); font-size: 10.5px; line-height: 1.2; }
.compte-rebours strong { font: 600 19px/1.15 var(--titres); color: var(--encre); font-variant-numeric: tabular-nums; }
.compte-rebours--mini > p { flex-direction: row; align-items: baseline; gap: 2px; min-width: 0; padding: 5px 8px; background: var(--grad); color: rgba(255,255,255,.85); font-size: 11px; }
.compte-rebours--mini strong { color: #fff; font-size: 14px; }
.flash-fin { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--doux); }
.flash-fin p { margin: 0; }
.flash h2.a-ic { display: flex; align-items: center; gap: 8px; }
.flash h2.a-ic::before { width: 22px; height: 22px; color: var(--rouge); }

/* ---------- réassurance, catégories ---------- */
.reassurance-item { display: grid; grid-template-columns: 38px 1fr; column-gap: 14px; align-items: center; padding: 0 24px; }
.reassurance-item + .reassurance-item { border-left: 1px solid var(--ligne); }
.reassurance-item::before { grid-row: span 2; width: 38px; height: 38px; color: var(--marque); }
.reassurance-item p { margin: 0; }
.reassurance-item strong { font: 600 14.5px/1.3 var(--titres); }
.reassurance-item .sous { font-size: 13px; color: var(--doux); }
.bloc-tete p { margin: 0; }
.lien-fleche a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 14px; color: var(--marque-texte); white-space: nowrap; }
.lien-fleche a::after { width: 16px; height: 16px; transition: transform .2s;
  --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m13 6 6 6-6 6'/%3E%3C/svg%3E"); }
.lien-fleche a:hover::after { transform: translateX(3px); }
.bloc-tete .lien-fleche { margin-left: auto; }
.carte-cat-img img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 8px; margin-bottom: 12px; }
.carte-cat-nom { margin: 0; }
.carte-cat-nom strong { display: flex; align-items: center; justify-content: center; min-height: 2.6em; font: 600 14px/1.3 var(--titres); }
.carte-cat-prix { margin: 2px 0 0; font-size: 13px; color: var(--doux); }

/* ---------- grilles de produits (Collection de produits WooCommerce) ---------- */
.wp-block-woocommerce-product-collection .wc-block-product-template { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.wp-block-woocommerce-product-collection.grille-4 .wc-block-product-template, .resultats .wc-block-product-template { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.wc-block-product-template > li.wc-block-product { position: relative; width: auto !important; max-width: none !important; margin: 0 !important; padding: 12px; background: #fff; border-radius: var(--r); display: flex; flex-direction: column; text-align: left; transition: box-shadow .25s; }
.wc-block-product-template > li.wc-block-product:hover { box-shadow: var(--ombre); }
.wc-block-product .wc-block-components-product-image { margin: 0 !important; border-radius: 8px; overflow: hidden; background: #F3F4F6; position: relative; }
.wc-block-product .wc-block-components-product-image img { width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform .5s ease; }
.wc-block-product:hover .wc-block-components-product-image img { transform: scale(1.04); }
.wc-block-components-product-sale-badge, .wc-block-product .wc-block-components-product-sale-badge {
  position: absolute; top: 8px; left: 8px; right: auto; z-index: 2; margin: 0; padding: 4px 9px; border: 0 !important; border-radius: 5px;
  background: var(--grad-bouton) !important; color: #fff !important; font: 700 12px/1.2 var(--texte) !important; text-transform: none; }
.wc-block-components-product-sale-badge__text { font: inherit !important; }
.wc-block-product .cp-marque { margin-top: 12px; font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--doux); }
.wc-block-product .cp-nom, .wc-block-product .wp-block-post-title { margin: 3px 0 0 !important; font: 500 14px/1.4 var(--texte) !important; text-align: left !important; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.8em; }
.wc-block-product .cp-marque + .cp-nom { margin-top: 3px !important; }
.wc-block-product .wp-block-post-title:first-of-type { margin-top: 12px !important; }
.wc-block-product .wp-block-post-title a { color: var(--encre); }
.wc-block-product .wp-block-post-title a:hover { color: var(--marque-texte); }
.wc-block-product .wc-block-components-product-rating { margin: 6px 0 0 !important; }
.wc-block-components-product-rating__stars { color: var(--orange); font-size: 13px; }
.wc-block-product .wc-block-components-product-price, .wc-block-product .cp-prix { display: flex; flex-direction: column; align-items: flex-start; margin: 8px 0 12px !important; text-align: left !important; }
.wc-block-components-product-price ins, .wc-block-components-product-price > .woocommerce-Price-amount, .wc-block-components-product-price__value { font: 700 17px/1.2 var(--titres); color: var(--marque-texte); text-decoration: none; background: none; white-space: nowrap; }
.wc-block-components-product-price del { font-size: 13px; color: #8B929E; order: 2; }
.wc-block-components-product-price del .woocommerce-Price-amount { font: 400 13px/1.4 var(--texte); color: #8B929E; }
.wc-block-product .wp-block-woocommerce-product-button, .wc-block-product .cp-ajouter { margin-top: auto !important; }
.wc-block-product .wp-block-button__link, .wc-block-product .wc-block-components-product-button__button {
  width: 100%; height: 40px; border: 1.5px solid var(--ligne) !important; border-radius: var(--r-s); background: #fff !important; color: var(--encre) !important;
  font: 600 13.5px/1 var(--texte) !important; margin: 0 !important; }
.wc-block-product .wp-block-button__link:hover, .wc-block-product .wc-block-components-product-button__button:hover { background: var(--grad-bouton) !important; border-color: transparent !important; color: #fff !important; }
.wc-block-components-product-button .added_to_cart { display: block; margin-top: 6px; font-size: 12.5px; font-weight: 600; color: var(--marque-texte); text-align: center; }
.wc-block-product .cp-actions { top: 20px; right: 20px; }
.liste-vide { background: #fff; border-radius: var(--r); padding: 30px; text-align: center; color: var(--doux); }

/* ---------- campagne, onglets, nouveautés, pro ---------- */
.campagne img { width: 100%; border-radius: var(--r); display: block; }
.onglet { margin: 0; }
.nouveautes { grid-template-columns: minmax(0, 1fr) minmax(0, 4fr); }
.tuile-marque { min-height: 100%; }
.tuile-marque > :not(.fond) { position: relative; z-index: 1; }
.tuile-marque > .fond { inset: auto 0 0; height: 46%; z-index: 0; }
.tuile-marque > .fond img { width: 100%; height: 100%; object-fit: cover; -webkit-mask: linear-gradient(transparent, #000 45%); mask: linear-gradient(transparent, #000 45%); }
.tuile-marque .wp-block-buttons { margin-top: 16px; }
.tuile-marque h3 { color: #fff; }
.pro > .pro-photo { position: absolute; inset: 0 0 0 auto; width: 50%; margin: 0; }
.pro > .pro-photo img { width: 100%; height: 100%; object-fit: cover; -webkit-mask: linear-gradient(90deg, transparent, #000 30%); mask: linear-gradient(90deg, transparent, #000 30%); }
.pro h1, .pro h2 { color: #fff; }
.pro-sur::before { width: 17px; height: 17px; }
.liste-coches { display: grid; gap: 10px; }
.liste-coches li { display: flex; gap: 9px; align-items: flex-start; font-size: 14.5px; }
.liste-coches li::before { width: 18px; height: 18px; margin-top: 2px; color: #15803D;
  --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); }
.pro .liste-coches { grid-template-columns: 1fr 1fr; gap: 10px 24px; margin-top: 22px; }
.pro .liste-coches li { color: #E5E7EB; font-size: 14px; }
.pro .liste-coches li::before { color: #FDBA9C; }
.pro-actions { margin-top: 28px; }

/* ---------- marques, avis ---------- */
.marques-piste li { padding: 0; }
.marques-piste a { font: 700 19px/1 var(--titres); letter-spacing: -.01em; white-space: nowrap; }
.avis-synthese p, .avis p { margin: 0; }
.avis-synthese .avis-moyenne { font: 700 44px/1 var(--titres); color: var(--encre); }
.avis-synthese .avis-moyenne small { font-size: 18px; color: var(--doux); font-weight: 600; }
.etoiles-p { --note: 5; width: 78px; height: 14px; font-size: 0 !important; color: transparent;
  background: linear-gradient(90deg, var(--orange) calc(var(--note) / 5 * 100%), #D9DCE1 0);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2.5 2.9 6 6.6.9-4.8 4.6 1.2 6.5L12 17.4l-5.9 3.1 1.2-6.5-4.8-4.6 6.6-.9z'/%3E%3C/svg%3E") 0 0 / 15.6px 14px repeat-x;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2.5 2.9 6 6.6.9-4.8 4.6 1.2 6.5L12 17.4l-5.9 3.1 1.2-6.5-4.8-4.6 6.6-.9z'/%3E%3C/svg%3E") 0 0 / 15.6px 14px repeat-x; }
.note-48 { --note: 4.8; } .note-45 { --note: 4.5; } .note-5 { --note: 5; }
.avis-synthese .etoiles-p { width: 104px; height: 18px; -webkit-mask-size: 20.8px 18px; mask-size: 20.8px 18px; }
.avis-synthese .lien-fleche { margin-top: auto; }
.avis-texte { font-size: 14.5px; line-height: 1.6; color: var(--encre-2); }
.avis-auteur { margin-top: auto !important; font-size: 13px; color: var(--doux); }
.avis-auteur strong { color: var(--encre); font-weight: 600; }
.verifie { display: flex; align-items: center; gap: 5px; color: #15803D; font-size: 12.5px; font-weight: 500; }
.verifie::before { width: 14px; height: 14px; }

/* ---------- newsletter, pied ---------- */
.nl-texte { display: grid; grid-template-columns: 54px 1fr; column-gap: 18px; align-items: center; }
.nl-texte::before { grid-row: span 2; width: 54px; height: 54px; border-radius: 50%; color: var(--marque); background: var(--marque);
  -webkit-mask: var(--ic) center / 26px no-repeat, linear-gradient(#000 0 0); mask: var(--ic) center / 26px no-repeat; }
.nl-texte { position: relative; }
.nl-texte h2 { font-size: 20px; }
.nl-texte p { color: var(--doux); margin: 3px 0 0; }
.pied-marque .wp-block-site-logo img { height: 34px !important; width: auto !important; }
.pied-marque > p { color: var(--doux); margin: 16px 0 0; max-width: 340px; }
.pied-contact { margin-top: 18px; display: grid; gap: 9px; }
.pied-contact li { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; }
.pied-contact li::before { width: 17px; height: 17px; color: var(--marque); margin-top: 2px; }
.pied-col h3, .pied-reseaux h3 { font-size: 15px; margin-bottom: 14px; }
.pied-liens { display: grid; gap: 9px; }
.pied-liens a { font-size: 13.5px; color: var(--encre-2); }
.pied-liens a:hover { color: var(--marque-texte); }
.wp-block-social-links.reseaux { display: flex; gap: 8px; margin: 0 0 26px; padding: 0; }
.wp-block-social-links.reseaux .wp-social-link { width: 40px; height: 40px; margin: 0; border-radius: 50%; border: 1.5px solid var(--ligne); background: transparent !important; color: var(--encre) !important; transition: background .2s, border-color .2s; }
.wp-block-social-links.reseaux .wp-social-link a { width: 100%; height: 100%; padding: 0; display: grid; place-items: center; color: inherit; }
.wp-block-social-links.reseaux .wp-social-link svg { width: 18px; height: 18px; fill: currentColor; }
.wp-block-social-links.reseaux .wp-social-link:hover { background: var(--grad) !important; color: #fff !important; border-color: transparent; }
.pied-bas-in p { margin: 0; }
.pied-legal { display: flex; gap: 20px; }
.pied-legal a { color: var(--doux); }
p.wa-flottant { position: fixed; right: 22px; bottom: 22px; z-index: 80; margin: 0; }
p.wa-flottant::before { display: none; }
p.wa-flottant a { display: flex; align-items: center; gap: 10px; height: 56px; padding: 0 20px 0 16px; border-radius: 999px; background: var(--wa); color: #073B1C; font-weight: 600; box-shadow: 0 10px 28px -8px rgba(37,211,102,.7); transition: transform .2s; }
p.wa-flottant a::before { content: ""; width: 28px; height: 28px; background: currentColor; -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }
p.wa-flottant a:hover { transform: translateY(-2px); }
.cookies { display: none !important; }
.cookies.est-visible { display: grid !important; }
.cookies p { margin: 0; }
.cookies-actions { justify-content: flex-end; }

/* ---------- formulaires Contact Form 7 ---------- */
.wpcf7 form p { margin: 0; }
.wpcf7-form-control-wrap { display: block; }
.formulaire-cf7 .wpcf7 { background: #fff; border-radius: var(--r); padding: 30px; }
.cf7-champs { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.cf7-champ { display: grid; gap: 7px; font-size: 13.5px; font-weight: 500; color: var(--encre-2); }
.cf7-champ--large { grid-column: 1 / -1; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 input[type="number"], .wpcf7 select, .wpcf7 textarea {
  width: 100%; height: 44px; padding: 0 14px; border: 1.5px solid var(--ligne); border-radius: var(--r-s); background: #fff; font: 400 14px var(--texte); outline: none; }
.wpcf7 textarea { height: auto; padding: 12px 14px; resize: vertical; }
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { border-color: var(--marque); }
.wpcf7 input[type="file"] { padding: 9px 12px; height: auto; font-size: 13px; }
.wpcf7-acceptance, .wpcf7-list-item { display: block; margin: 16px 0 0; font-size: 13px; color: var(--doux); }
.wpcf7-acceptance input, .wpcf7-checkbox input { accent-color: var(--rouge); width: 16px; height: 16px; vertical-align: -3px; margin-right: 6px; }
.wpcf7-submit { margin-top: 18px; height: 46px !important; padding: 0 26px !important; }
.wpcf7-spinner { display: none !important; }
.wpcf7-not-valid-tip { font-size: 13px; color: var(--rouge); margin-top: 4px; }
.wpcf7 form .wpcf7-response-output { margin: 16px 0 0; padding: 12px 14px; border-radius: var(--r-s); border: 0 !important; background: #ECFDF3; color: #166534; font-size: 14px; }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output { background: #FFF4F2; color: #9F1F14; }
.nl-form form, .nl-form { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: start; }
.newsletter .wpcf7 { padding: 0; background: none; }
.newsletter .wpcf7 form { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
.newsletter .wpcf7 input[type="email"] { height: 46px; }
.newsletter .wpcf7-submit { margin: 0; height: 46px !important; }
.newsletter .wpcf7-checkbox, .newsletter .cf7-wa { grid-column: 1 / -1; }
.newsletter .wpcf7-list-item { margin: 0; }
.newsletter .wpcf7-response-output { grid-column: 1 / -1; }
.alerte-stock { margin-top: 14px; padding: 14px 16px; border-radius: var(--r-s); background: var(--fond); display: grid; gap: 10px; }
.alerte-stock > p { margin: 0; font-size: 13.5px; color: var(--doux); }
.alerte-stock > p strong { display: block; color: var(--encre); font-size: 14px; }
.alerte-stock .wpcf7 form { display: flex; gap: 8px; }
.alerte-stock .wpcf7-form-control-wrap { flex: 1; }
.alerte-stock .wpcf7-submit { margin: 0; height: 44px !important; }

/* ---------- pages intérieures ---------- */
p.fil, .wc-block-breadcrumbs, .woocommerce-breadcrumb { display: block; padding-top: 18px; margin: 0; font-size: 13px; color: var(--doux); }
p.fil a:hover, .woocommerce-breadcrumb a:hover { color: var(--marque-texte); }
.entete-page > p { margin: 8px 0 0; }
.entete-cat--marque { color: #fff; }
.entete-cat--marque .wp-block-query-title { font: 700 34px/1.2 var(--titres); color: #fff; margin: 0; }
.entete-cat--marque .wp-block-term-description, .entete-cat--marque .wp-block-term-description p { margin: 10px 0 0; max-width: 620px; font-size: 15px; opacity: .92; }
.entete-cat--marque.a-ic::before { width: 46px; height: 46px; margin-bottom: 14px; padding: 11px; border-radius: 50%; background: #fff; box-sizing: border-box; -webkit-mask-size: 24px; mask-size: 24px; display: none; }
.entete-cat h1 { color: #fff; }
.promo-flash h1 { color: #fff; }
.promo-code > p { margin: 0; }
.promo-code > p.a-ic { display: flex; align-items: center; gap: 8px; color: var(--doux); }
.promo-code > p.a-ic::before { width: 26px; height: 26px; color: var(--marque); }
.promo-code-titre strong { font: 700 22px/1.2 var(--titres); }
.atout, .secteur { display: block; }
.atout::before, .secteur::before { width: 34px; height: 34px; color: var(--marque); display: block; }
.atout { background: #fff; border-radius: var(--r); padding: 24px; }
.atout p { margin: 0; color: var(--doux); font-size: 13.5px; }
.atout p:first-of-type { margin-top: 14px; color: var(--encre); }
.atout p:first-of-type strong { font: 600 16px/1.3 var(--titres); }
.secteur::before { color: var(--encre); width: 30px; height: 30px; }
.secteur h3 { font-size: 16px; margin-top: 12px; }
.secteur p { margin: 6px 0 0; color: var(--doux); font-size: 13.5px; }
.atouts { list-style: none; }
ol.etapes-pro { list-style: none; counter-reset: etape; }
.etapes-pro li { counter-increment: etape; background: #fff; border-radius: var(--r); padding: 24px; color: var(--doux); font-size: 13.5px; }
.etapes-pro li::before { content: counter(etape); width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: var(--grad); color: #fff; font: 700 16px/1 var(--titres); margin-bottom: 14px; }
.etapes-pro li strong { display: block; font: 600 15.5px/1.3 var(--titres); color: var(--encre); margin-bottom: 6px; }
.contact-liste li { display: flex; gap: 14px; align-items: center; color: #E5E7EB; font-size: 14px; }
.contact-liste li::before { width: 22px; height: 22px; color: #FDBA9C; }
.contact-liste strong { display: block; color: #fff; font-size: 13.5px; }
.formulaire-intro h2 { color: #fff; }
.formulaire-intro .horaires { margin-top: 22px; display: grid; }
.horaires li { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,.12); font-size: 14px; color: #fff; }
.horaires li strong { font-weight: 400; color: #C4C9D2; }
.chiffres li { text-align: center; padding: 0 16px; font-size: 13.5px; color: var(--doux); }
.chiffres li strong { display: block; font: 700 34px/1.1 var(--titres); background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.chiffres li + li { border-left: 1px solid var(--ligne); }
.apropos-photo { margin: 0; }
.apropos-photo img { width: 100%; height: 100%; min-height: 380px; object-fit: cover; border-radius: var(--r); }
.apropos-texte .wp-block-buttons { margin-top: 26px; }
.cta-bande h2 { color: #fff; }
.cta-bande p { margin: 4px 0 0; }
.contact-carte { display: grid; gap: 4px; background: #fff; border-radius: var(--r); padding: 22px; }
.contact-carte::before { width: 30px; height: 30px; color: var(--marque); margin-bottom: 8px; }
.contact-carte p { margin: 0; }
.contact-carte strong { font: 600 15.5px/1.3 var(--titres); }
.contact-carte a { color: var(--doux); font-size: 13.5px; }
.contact-cartes { list-style: none; }
.carte-acces { display: grid; grid-template-columns: 1fr 360px; border-radius: var(--r); overflow: hidden; background: #fff; min-height: 380px; }
.carte-iframe { width: 100%; height: 100%; min-height: 380px; border: 0; display: block; }
.carte-acces-info p { display: flex; gap: 10px; margin: 0; color: var(--encre-2); font-size: 14px; }
.carte-acces-info p::before { width: 18px; height: 18px; color: var(--marque); margin-top: 2px; }
.faq-sommaire { display: grid; gap: 2px; }
.faq-sommaire a { display: block; padding: 8px 12px; border-radius: var(--r-s); font-size: 14px; font-weight: 500; color: var(--encre-2); }
.faq-sommaire a:hover { background: var(--teinte); color: var(--marque-texte); }
.faq .wp-block-details { background: #fff; border-radius: var(--r); margin-bottom: 8px; }
.faq .wp-block-details summary { list-style: none; cursor: pointer; padding: 18px 54px 18px 22px; font-weight: 600; font-size: 15px; position: relative; }
.faq .wp-block-details summary::-webkit-details-marker { display: none; }
.faq .wp-block-details summary::after { content: "+"; position: absolute; right: 18px; top: 50%; transform: translateY(-50%); width: 26px; height: 26px; border-radius: 50%; background: var(--fond); display: grid; place-items: center; font-size: 18px; color: var(--marque-texte); }
.faq .wp-block-details[open] summary::after { content: "−"; background: var(--teinte); }
.faq .wp-block-details p { padding: 0 22px 20px; margin: 0; color: var(--encre-2); font-size: 14.5px; line-height: 1.65; }
.faq-groupe h2 { font-size: 20px; margin-bottom: 10px; scroll-margin-top: 160px; }
.legal { grid-template-columns: minmax(0, 860px); }
.legal .carte-texte h2 { scroll-margin-top: 160px; }
.etat-vide-texte { color: var(--doux); }
.favoris-zone, .comparateur-zone { background: #fff; border-radius: var(--r); padding: 40px 30px; text-align: center; display: grid; justify-items: center; gap: 14px; }
.favoris-zone.a-du-contenu, .comparateur-zone.a-du-contenu { background: none; padding: 0; text-align: left; justify-items: stretch; }
.favoris-zone.a-du-contenu > :not(.liste-js), .comparateur-zone.a-du-contenu > :not(.liste-js) { display: none; }
.page-404 { text-align: center; }
.page-404 p { margin: 0; }

/* ---------- fiche produit ---------- */
.page-fiche .fiche { margin-top: 18px; }
.galerie .woocommerce-product-gallery { position: relative; width: 100% !important; float: none !important; margin: 0 !important; }
.galerie .woocommerce-product-gallery__wrapper { margin: 0; border-radius: var(--r); overflow: hidden; background: #fff; }
.galerie .woocommerce-product-gallery__image img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.galerie .flex-control-thumbs { display: flex; gap: 10px; margin: 12px 0 0; padding: 0; list-style: none; }
.galerie .flex-control-thumbs li { width: 80px; }
.galerie .flex-control-thumbs img { border-radius: 8px; border: 2px solid transparent; cursor: pointer; opacity: .7; }
.galerie .flex-control-thumbs img.flex-active, .galerie .flex-control-thumbs img:hover { border-color: var(--marque); opacity: 1; }
.galerie .woocommerce-product-gallery__trigger { position: absolute; top: 14px; right: 14px; z-index: 3; width: 38px; height: 38px; border-radius: 50%; background: #fff; display: grid; place-items: center; box-shadow: 0 2px 10px rgba(17,24,39,.15); font-size: 0; }
.galerie .woocommerce-product-gallery__trigger::before { content: "⤢"; font-size: 18px; color: var(--encre); }
.galerie .onsale { position: absolute; top: 14px; left: 14px; z-index: 3; }
.fiche-infos .cp-marque, .fiche-infos .cp-marque a { font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--doux); }
.fiche-infos .wp-block-post-title { font: 700 26px/1.25 var(--titres); margin: 6px 0 0; }
.fiche-infos .wc-block-components-product-rating, .fiche-infos .wp-block-woocommerce-product-rating { margin-top: 10px; }
.fiche-infos .fiche-prix, .fiche-infos .wp-block-woocommerce-product-price { margin-top: 18px; padding-top: 18px; border-top: 1px solid #F0F1F3; }
.fiche-infos .wc-block-components-product-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; }
.fiche-infos .wc-block-components-product-price ins, .fiche-infos .wc-block-components-product-price > .woocommerce-Price-amount { font: 700 30px/1.1 var(--titres); color: var(--marque-texte); }
.fiche-infos .wc-block-components-product-price del, .fiche-infos .wc-block-components-product-price del .woocommerce-Price-amount { font-size: 16px; color: #8B929E; order: 0; }
.fiche-infos .wc-block-components-product-stock-indicator, .fiche-infos .stock { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; font-size: 13.5px; font-weight: 600; color: #15803D; }
.wc-block-components-product-stock-indicator--low-stock { color: #B45309 !important; }
.wc-block-components-product-stock-indicator--available-on-backorder, .wc-block-components-product-stock-indicator--out-of-stock { color: #4B5563 !important; }
.fiche-infos .wc-block-components-product-stock-indicator::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: currentColor; }
.fiche-resume, .fiche-infos .wp-block-post-excerpt { margin-top: 14px; color: var(--encre-2); font-size: 14.5px; }
.fiche-infos .wp-block-post-excerpt__excerpt { margin: 0; }
.fiche-achat form.cart { display: grid; grid-template-columns: auto 1fr; gap: 10px; margin: 22px 0 0 !important; }
.fiche-achat .quantity { margin: 0 !important; }
.fiche-achat .quantity input.qty { width: 110px; height: 48px; border: 1.5px solid var(--ligne); border-radius: var(--r-s); text-align: center; font: 600 15px var(--texte); }
.fiche-achat .single_add_to_cart_button { height: 48px !important; width: 100%; font-size: 15px !important; }
.fiche-wa-zone { margin-top: 10px; }
.fiche-wa-zone .wp-block-button, .fiche-wa-zone .wp-block-button__link { width: 100%; }
.fiche-wa-zone .wp-block-button__link { height: 48px; }
.fiche-favori, .fiche-comparer { display: inline-flex !important; align-items: center; gap: 7px; margin: 16px 22px 0 0 !important; font-size: 13.5px; font-weight: 500; color: var(--encre-2); cursor: pointer; user-select: none; }
.fiche-favori::before, .fiche-comparer::before { width: 18px; height: 18px; }
.fiche-favori.est-actif, .fiche-comparer.est-actif, .fiche-favori:hover, .fiche-comparer:hover { color: var(--marque-texte); }
.fiche-garanties { margin-top: 22px; padding-top: 6px; border-top: 1px solid #F0F1F3; display: grid; grid-template-columns: 1fr 1fr; gap: 6px 18px; }
.garantie { display: grid; grid-template-columns: 26px 1fr; column-gap: 12px; align-items: start; padding-top: 14px; }
.garantie::before { grid-row: span 2; width: 26px; height: 26px; color: var(--marque); }
.garantie p { margin: 0; font-size: 12.5px; color: var(--doux); }
.garantie p:first-of-type { font-size: 13.5px; color: var(--encre); }
.fiche-onglets .woocommerce-tabs, .woocommerce-tabs { margin-top: 0; }
.woocommerce-tabs ul.tabs { display: flex; gap: 6px; margin: 0 0 14px !important; padding: 0 !important; list-style: none; border: 0 !important; overflow-x: auto; }
.woocommerce-tabs ul.tabs::before, .woocommerce-tabs ul.tabs li::before, .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce-tabs ul.tabs li { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; border-radius: 999px !important; }
.woocommerce-tabs ul.tabs li a { display: inline-flex; align-items: center; height: 36px; padding: 0 16px !important; border-radius: 999px; font-weight: 500; font-size: 13.5px; color: var(--encre-2) !important; white-space: nowrap; }
.woocommerce-tabs ul.tabs li.active a { background: var(--encre); color: #fff !important; }
.woocommerce-Tabs-panel { background: #fff; border-radius: var(--r); padding: 28px 32px !important; margin: 0 !important; font-size: 15px; line-height: 1.7; color: var(--encre-2); }
.woocommerce-Tabs-panel > h2:first-child { font-size: 20px; color: var(--encre); margin-bottom: 10px; }
.woocommerce-product-attributes { width: 100%; border-collapse: collapse; font-size: 14px; border: 0 !important; }
.woocommerce-product-attributes th, .woocommerce-product-attributes td { text-align: left; padding: 12px 14px !important; border: 0 !important; border-bottom: 1px solid #F0F1F3 !important; font-style: normal !important; vertical-align: top; }
.woocommerce-product-attributes th { width: 34%; color: var(--doux); font-weight: 500; }
.woocommerce-product-attributes tr:nth-child(odd) { background: #FAFBFC; }
.woocommerce-product-attributes td p { margin: 0; }
.page-fiche h2 { font-size: 24px; margin-bottom: 20px; }

/* ---------- catalogue (archives) ---------- */
.page-catalogue .entete-cat { margin-top: 16px; }
.filtres { position: sticky; top: 130px; }
.filtre-titre { font: 600 14.5px/1.3 var(--titres) !important; margin: 16px 0 12px !important; }
.filtre-cats .wc-block-product-categories-list, .wc-block-product-categories-list { list-style: none; margin: 0; padding: 0; }
.wc-block-product-categories-list-item { margin: 0; }
.wc-block-product-categories-list-item a { display: inline-block; padding: 6px 0; font-size: 13.5px; color: var(--encre-2); }
.wc-block-product-categories-list-item a:hover { color: var(--marque-texte); }
.wc-block-product-categories-list-item-count { font-size: 12px; color: var(--doux); margin-left: 4px; }
.wc-block-product-categories-list-item-count::before, .wc-block-product-categories-list-item-count::after { content: none !important; }
.wc-block-product-categories-list--depth-1 { padding-left: 14px !important; }
.barre-outils .woocommerce-result-count { margin: 0; font-size: 14px; color: var(--doux); }
.barre-outils .woocommerce-ordering { margin: 0 0 0 auto; }
.barre-outils select.orderby { height: 40px; padding: 0 34px 0 12px; border: 1.5px solid var(--ligne); border-radius: var(--r-s); background: #fff; font-size: 14px; }
.wp-block-query-pagination { margin-top: 24px; gap: 8px; font-weight: 600; }
.wp-block-query-pagination a, .wp-block-query-pagination .page-numbers { display: inline-grid; place-items: center; min-width: 38px; height: 38px; padding: 0 10px; border-radius: var(--r-s); background: #fff; }
.wp-block-query-pagination .current { background: var(--encre); color: #fff; }

/* ---------- panier, commande, compte (WooCommerce classique, ajusté) ---------- */
.wc-page { margin-top: 18px; }
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner {
  margin: 0 0 16px !important; padding: 14px 18px !important; border: 0 !important; border-radius: var(--r) !important; background: #fff !important; box-shadow: inset 4px 0 0 var(--marque); color: var(--encre) !important; font-size: 14px; list-style: none; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none !important; }
.woocommerce-message .button, .woocommerce-info .button { float: right; height: 36px; }
.woocommerce table.shop_table { border: 0; border-radius: var(--r); background: #fff; border-collapse: separate; overflow: hidden; margin: 0 0 18px; width: 100%; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 14px 16px; border-top: 1px solid #F0F1F3; text-align: left; font-size: 14px; }
.woocommerce table.shop_table thead th { border-top: 0; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--doux); }
.woocommerce-cart-form .product-thumbnail img { width: 72px; border-radius: 8px; }
.woocommerce-cart-form .product-name a { font-weight: 600; }
.woocommerce .quantity .qty { width: 72px; height: 40px; border: 1.5px solid var(--ligne); border-radius: var(--r-s); text-align: center; font-weight: 600; }
.woocommerce a.remove { color: var(--doux) !important; font-size: 22px; }
.woocommerce a.remove:hover { background: #FDECEC !important; color: var(--rouge) !important; }
.woocommerce .coupon { display: flex; gap: 8px; }
.woocommerce .coupon .input-text { height: 42px; padding: 0 12px; border: 1.5px solid var(--ligne); border-radius: var(--r-s); text-transform: uppercase; min-width: 160px; }
.woocommerce-cart-form .actions { text-align: right; }
.cart-collaterals .cart_totals { width: 100% !important; float: none !important; background: #fff; border-radius: var(--r); padding: 24px; }
.cart-collaterals { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 24px; }
.cart-collaterals .cross-sells { display: none; }
.cart_totals h2 { font-size: 19px; margin-bottom: 12px; }
.cart_totals table.shop_table { box-shadow: none; }
.woocommerce ul#shipping_method { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.woocommerce ul#shipping_method li { margin: 0; padding: 10px 12px; border: 1.5px solid var(--ligne); border-radius: var(--r-s); display: flex; gap: 10px; align-items: center; text-align: left; }
.woocommerce ul#shipping_method li:has(input:checked) { border-color: var(--marque); background: var(--teinte); }
.woocommerce ul#shipping_method input { accent-color: var(--rouge); margin: 0; }
.woocommerce ul#shipping_method label { display: flex; justify-content: space-between; gap: 10px; width: 100%; font-weight: 500; }
.wc-proceed-to-checkout { display: grid; gap: 10px; padding: 0 !important; }
.wc-proceed-to-checkout .checkout-button, .boustane-wa-panier { width: 100%; height: 50px !important; font-size: 15px !important; margin: 0 !important; }
.woocommerce form .form-row { margin: 0 0 14px; padding: 0; }
.woocommerce form .form-row label { display: block; margin-bottom: 6px; font-weight: 600; font-size: 13.5px; color: var(--encre); }
.woocommerce form .form-row .required { color: var(--rouge); text-decoration: none; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .select2-container .select2-selection--single {
  width: 100%; height: 50px; padding: 0 14px; border: 1.5px solid var(--ligne); border-radius: var(--r-s); background: #fff; font: 400 16px var(--texte); outline: none; }
.woocommerce form .form-row textarea { height: 90px; padding: 12px 14px; }
.select2-container .select2-selection--single .select2-selection__rendered { line-height: 46px; padding: 0; }
.select2-container .select2-selection--single .select2-selection__arrow { height: 46px; }
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus { border-color: var(--marque); }
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: var(--rouge); background: #FFF7F6; }
.boustane-masque { display: none !important; }
.woocommerce-checkout .col2-set { display: block; width: 100%; }
.woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2 { width: 100%; float: none; }
form.checkout.woocommerce-checkout { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 24px; align-items: start; }
form.checkout #customer_details { grid-column: 1; background: #fff; border-radius: var(--r); padding: 28px; }
form.checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0; padding: 24px 24px 0; background: #fff; border-radius: var(--r) var(--r) 0 0; font-size: 19px; align-self: start; }
form.checkout #order_review { grid-column: 2; grid-row: 1; margin-top: 56px; background: #fff; border-radius: 0 0 var(--r) var(--r); padding: 0 24px 24px; position: sticky; top: 140px; }
form.checkout h3 { font: 600 20px/1.3 var(--titres); margin: 0 0 14px; }
.woocommerce-checkout-review-order-table { box-shadow: none !important; }
#payment { background: none !important; border-radius: 0; }
#payment ul.payment_methods { padding: 0 !important; border: 0 !important; list-style: none; display: grid; gap: 8px; }
#payment ul.payment_methods li { padding: 12px 14px; border: 1.5px solid var(--marque); border-radius: var(--r-s); background: var(--teinte); }
#payment ul.payment_methods li label { font-weight: 600; }
#payment div.payment_box { margin: 8px 0 0 !important; padding: 0 !important; background: none !important; color: var(--encre-2); font-size: 13px; }
#payment div.payment_box::before { display: none !important; }
#payment .place-order { padding: 14px 0 0 !important; }
#place_order { width: 100%; height: 52px !important; font-size: 15px !important; float: none !important; }
.boustane-cgv { margin: 0 0 10px; font-size: 12.5px; color: var(--doux); }
.boustane-cgv a { color: var(--marque-texte); text-decoration: underline; }
.woocommerce-privacy-policy-text { font-size: 12.5px; color: var(--doux); }
.woocommerce-order { background: #fff; border-radius: var(--r); padding: 30px; }
.woocommerce-order .woocommerce-thankyou-order-received { font: 700 22px/1.3 var(--titres); color: var(--encre); margin: 0 0 16px; }
.woocommerce-order ul.order_details { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; padding: 0; margin: 0 0 20px; list-style: none; }
.woocommerce-order ul.order_details li { margin: 0; padding: 12px 14px; border: 0; border-radius: var(--r-s); background: var(--fond); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--doux); }
.woocommerce-order ul.order_details li strong { display: block; margin-top: 4px; font-size: 15px; text-transform: none; letter-spacing: 0; color: var(--encre); }
.confirmation-suivi { margin: 0 0 20px; }
.confirmation-suivi a { margin-left: 6px; font-weight: 600; color: var(--marque-texte); }
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 24px; }
.woocommerce-account .woocommerce:has(#customer_login) { display: block; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 14px; background: #fff; border-radius: var(--r); }
.woocommerce-MyAccount-navigation a { display: block; padding: 9px 12px; border-radius: var(--r-s); font-weight: 500; }
.woocommerce-MyAccount-navigation .is-active a, .woocommerce-MyAccount-navigation a:hover { background: var(--teinte); color: var(--marque-texte); }
.woocommerce-MyAccount-content { background: #fff; border-radius: var(--r); padding: 28px; }
#customer_login { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
#customer_login > div { width: 100% !important; float: none !important; background: #fff; border-radius: var(--r); padding: 28px; }
#customer_login h2 { font-size: 20px; margin-bottom: 16px; }
.woocommerce form.login, .woocommerce form.register { border: 0 !important; padding: 0 !important; margin: 0 !important; }

/* ---------- bandeau défilant : piste dupliquée par le script ---------- */
.marques-defile .marques-piste { animation: defile-marques var(--duree, 42s) linear infinite; }

/* ---------- responsive des adaptations ---------- */
@media (max-width: 1240px) {
  .entete-infos .info:last-child { display: none; }
}
@media (max-width: 1080px) {
  .wp-block-woocommerce-product-collection .wc-block-product-template { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .nouveautes { grid-template-columns: minmax(0, 1fr); }
  .tuile-marque { min-height: 0; padding-bottom: 24px; }
  .tuile-marque > .fond { inset: 0 0 0 auto; width: 45%; height: 100%; }
  .tuile-marque > .fond img { -webkit-mask: linear-gradient(90deg, transparent, #000 50%); mask: linear-gradient(90deg, transparent, #000 50%); }
  .tuile-marque > :not(.fond) { max-width: 62%; }
  .pro > .pro-photo { width: 100%; opacity: .25; }
  .pro > .pro-photo img { -webkit-mask: none; mask: none; }
  .carte-acces { grid-template-columns: minmax(0, 1fr); }
  .cart-collaterals { grid-template-columns: minmax(0, 1fr); }
  form.checkout.woocommerce-checkout { grid-template-columns: minmax(0, 1fr); }
  form.checkout #order_review_heading, form.checkout #order_review { grid-column: 1; grid-row: auto; position: static; margin-top: 0; }
  .woocommerce-account .woocommerce, #customer_login { grid-template-columns: minmax(0, 1fr); }
  .filtres { position: static; }
}
@media (max-width: 900px) {
  .entete-zone { top: -36px; }
  .entete-haut { grid-template-columns: auto 1fr auto; }
  .entete-haut .btn-tiroir { display: grid; place-items: center; width: 42px; height: 42px; margin: 0; border-radius: 50%; background: var(--fond); font-size: 0; cursor: pointer;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231F2937' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h10'/%3E%3C/svg%3E") center / 22px no-repeat, var(--fond); }
  .entete-haut .panier-mobile { display: block; }
  .entete-haut .panier-mobile .wc-block-mini-cart__amount { display: none; }
  .wp-block-site-logo.logo { justify-self: center; }
  .wp-block-site-logo.logo img, .logo img { height: 27px !important; }
  .recherche { grid-column: 1 / -1; grid-row: 2; max-width: none; }
  .entete-zone.est-colle .recherche { display: none; }
  .wp-block-woocommerce-product-collection .wc-block-product-template, .wp-block-woocommerce-product-collection.grille-4 .wc-block-product-template, .resultats .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .grille-defile .wc-block-product-template { grid-template-columns: none !important; grid-auto-flow: column; grid-auto-columns: 210px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: -24px !important; padding-inline: 24px !important; }
  .grille-defile .wc-block-product { scroll-snap-align: start; }
  .catalogue { grid-template-columns: minmax(0, 1fr); }
  .filtres { position: static; transform: none; width: auto; padding: 6px 20px 14px; border-radius: var(--r); }
}
@media (max-width: 600px) {
  .grille-defile .wc-block-product-template { margin-inline: -16px !important; padding-inline: 16px !important; }
  .wc-block-product-template > li.wc-block-product { padding: 8px; }
  .wc-block-product .cp-nom, .wc-block-product .wp-block-post-title { font-size: 13px !important; }
  .wc-block-components-product-price ins, .wc-block-components-product-price > .woocommerce-Price-amount { font-size: 15px; }
  .reassurance-item { padding: 12px 16px; }
  .reassurance-item + .reassurance-item { border-left: 0; border-top: 1px solid var(--ligne); }
  .pro .liste-coches { grid-template-columns: minmax(0, 1fr); }
  .chiffres li + li { border-left: 0; border-top: 1px solid var(--ligne); padding-top: 14px; margin-top: 14px; }
  .cf7-champs { grid-template-columns: minmax(0, 1fr); }
  .formulaire-cf7 .wpcf7 { padding: 22px 18px; }
  .newsletter .wpcf7 form { grid-template-columns: minmax(0, 1fr); }
  .fiche-garanties { grid-template-columns: minmax(0, 1fr); }
  .woocommerce-Tabs-panel { padding: 22px 18px !important; }
  form.checkout #customer_details { padding: 22px 18px; }
  p.wa-flottant { right: 14px; bottom: 14px; }
  p.wa-flottant a { width: 52px; height: 52px; padding: 0; justify-content: center; font-size: 0; }
  .woocommerce table.shop_table_responsive tr td { display: block; text-align: right !important; }
  .woocommerce table.shop_table_responsive tr td::before { content: attr(data-title) " : "; float: left; font-weight: 600; }
  .woocommerce table.shop_table_responsive thead { display: none; }
}

/* ---------- corrections après revue (fiche, catégories) ---------- */
.page-fiche .galerie { display: block; position: sticky; top: 150px; }
.galerie .onsale { position: absolute; top: 14px; left: 14px; z-index: 3; min-height: 0; min-width: 0; margin: 0; padding: 4px 9px; border-radius: 5px; background: var(--grad-bouton); color: #fff; font: 700 12px/1.2 var(--texte); }
.galerie .wp-block-woocommerce-product-image-gallery { position: relative; }
.filtre-cats span { margin-left: 0; }
.filtre-cats .wc-block-product-categories-list-item { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 5px 0; }
.filtre-cats .wc-block-product-categories-list-item > a { flex: 1; padding: 0; font-size: 13.5px; color: var(--encre-2); }
.filtre-cats .wc-block-product-categories-list-item > a:hover { color: var(--marque-texte); }
.filtre-cats .wc-block-product-categories-list-item-count { margin: 0; padding: 1px 7px; border-radius: 99px; background: var(--fond); font-size: 12px; color: var(--doux); }
.filtre-cats .wc-block-product-categories-list--depth-1 { display: none; flex-basis: 100%; margin: 4px 0 4px 2px; padding-left: 12px !important; border-left: 2px solid var(--ligne); }
.filtre-cats .est-ouvert > .wc-block-product-categories-list--depth-1 { display: block; }
.filtre-cats .est-courant > a { color: var(--marque-texte); font-weight: 600; }
.wpcf7 form { display: grid; gap: 4px; }
.wpcf7 .cf7-champ > br { display: none; }
.wpcf7 input.wpcf7-submit { display: inline-flex; align-items: center; justify-content: center; justify-self: start; height: 46px; padding: 0 26px; border: 0; border-radius: var(--r-s); background: var(--grad-bouton); color: #fff; font: 600 14px/1 var(--texte); cursor: pointer; }
.wpcf7 input.wpcf7-submit:hover { filter: brightness(1.08); }
.wpcf7 input.wpcf7-submit:disabled { opacity: .6; cursor: not-allowed; }
.wpcf7 .screen-reader-response { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.wpcf7-list-item-label { font-size: 13px; color: var(--doux); }
.newsletter .wpcf7 form { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
.newsletter .wpcf7 input.wpcf7-submit { height: 46px; margin: 0; }
.alerte-stock .wpcf7 form { display: flex; gap: 8px; flex-wrap: wrap; }
.alerte-stock .wpcf7 input.wpcf7-submit { height: 44px; margin: 0; background: #fff; color: var(--encre); box-shadow: inset 0 0 0 1.5px var(--ligne); }
@media (max-width: 600px) { .newsletter .wpcf7 form { grid-template-columns: minmax(0, 1fr); } .wpcf7 input.wpcf7-submit { justify-self: stretch; } }
.galerie .wp-block-woocommerce-product-image-gallery, .galerie .woocommerce-product-gallery, .galerie .woocommerce-product-gallery__image { width: 100% !important; max-width: none !important; }
.galerie .woocommerce-product-gallery__image img { width: 100% !important; height: auto; }
.fiche-achat .stock, .fiche-achat p.stock { display: none !important; }
.wpcf7 fieldset.hidden-fields-container { display: none; border: 0; margin: 0; padding: 0; }
.wpcf7 form .wpcf7-response-output:empty, .wpcf7 form.init .wpcf7-response-output { display: none; }
.wpcf7 input[type="file"] { width: 100%; max-width: 100%; min-width: 0; }
.cf7-champ, .cf7-champs > * { min-width: 0; }
/* barre de navigation : mêmes paliers que la maquette, transposés aux blocs */
@media (max-width: 1200px) { .panier-wc .wc-block-mini-cart__amount { display: none; } }
@media (max-width: 1080px) {
  .btn-cats { font-size: 0; gap: 4px; padding: 0 8px 0 5px; }
  .wp-block-navigation.nav, .wp-block-navigation.nav .wp-block-navigation__container { gap: 16px; }
}
@media (max-width: 1000px) { .wp-block-navigation.nav .wp-block-navigation-item:nth-child(n+5) { display: none; } }
/* carte produit : le cadre est sur le bouton, pas sur son enveloppe */
.wc-block-product .cp-ajouter, .wc-block-product .wp-block-woocommerce-product-button { border: 0 !important; height: auto !important; padding: 0 !important; background: none !important; display: block; }
.wc-block-product .cp-ajouter:hover { background: none !important; }

/* mobile : en-tête compact comme la maquette */
@media (max-width: 900px) {
  .bandeau-liens, .bandeau-msg p:nth-child(2) { display: none !important; }
  .bandeau-in { justify-content: center; }
  .bandeau-msg { flex-wrap: nowrap; gap: 14px; justify-content: center; }
  .bandeau-msg p { white-space: nowrap; }
  .entete-infos { display: none !important; }
  .entete-haut { grid-template-columns: 42px minmax(0, 1fr) 42px; }
  .entete-haut .btn-tiroir { grid-column: 1; grid-row: 1; }
  .entete-haut .logo { grid-column: 2; grid-row: 1; justify-self: center; }
  .entete-haut .panier-mobile { grid-column: 3; grid-row: 1; justify-self: end; }
  .entete-haut .recherche { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 600px) {
  .bandeau { font-size: 12px; }
  .bandeau-msg p:nth-child(1)::before { display: none; }
}
.woocommerce .galerie span.onsale, .galerie span.onsale { position: absolute !important; top: 14px !important; left: 14px !important; right: auto !important; z-index: 3; min-height: 0 !important; min-width: 0 !important; margin: 0 !important; padding: 4px 9px !important; border-radius: 5px !important; background: var(--grad-bouton) !important; color: #fff !important; font: 700 12px/1.2 var(--texte) !important; }
@media (max-width: 1080px) { .page-fiche .galerie { position: static; } }
.cart-collaterals { display: block; }
.cart-collaterals .cart_totals { max-width: 440px; margin-left: auto; }
.woocommerce-checkout-review-order-table .product-name { width: 60%; }
.woocommerce form .form-row[hidden] { display: none !important; }

/* ---------- confirmation de commande ---------- */
.merci-entete .wc-block-order-confirmation-status h1 { margin: 0 0 6px; }
.merci-entete .wc-block-order-confirmation-status p { margin: 0 0 6px; font-weight: 600; color: var(--encre); }
.merci-entete > p { color: var(--doux); max-width: 640px; margin: 0; }
.page-merci { display: grid; gap: 20px; padding-bottom: 56px; }
.page-merci .merci-resume { max-width: none; margin: 0; }
.page-merci .wc-block-order-confirmation-summary-list { list-style: none; margin: 0; padding: 18px 22px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; background: #fff; border-radius: var(--r); border-left: 4px solid var(--marque); }
.page-merci .wc-block-order-confirmation-summary-list-item { display: flex; flex-direction: column; gap: 2px; border: 0; padding: 0; margin: 0; }
.page-merci .wc-block-order-confirmation-summary-list-item__key { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--doux); }
.page-merci .wc-block-order-confirmation-summary-list-item__value { font: 700 16px/1.3 var(--titres); color: var(--encre); }
.merci-grille { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.merci-grille > div, .merci-cote > div:not(.wp-block-buttons) { background: #fff; border-radius: var(--r); padding: 22px; margin: 0; max-width: none; }
.merci-cote { display: grid; gap: 16px; background: none !important; padding: 0 !important; }
.merci-grille h2 { font-size: 18px; margin: 0 0 12px; }
.wc-block-order-confirmation-totals__table { width: 100%; border-collapse: collapse; border: 0; margin: 0; }
.wc-block-order-confirmation-totals__table th, .wc-block-order-confirmation-totals__table td { padding: 12px 0; border: 0; border-top: 1px solid #F0F1F3; text-align: left; font-size: 14px; font-weight: 400; }
.wc-block-order-confirmation-totals__table thead th { border-top: 0; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--doux); padding-top: 0; }
.wc-block-order-confirmation-totals__table .wc-block-order-confirmation-totals__total { text-align: right; }
.wc-block-order-confirmation-totals__table tfoot tr:last-child th, .wc-block-order-confirmation-totals__table tfoot tr:last-child td { font: 800 18px/1.3 var(--titres); color: var(--marque-texte); }
.wc-block-order-confirmation-totals__table a { color: var(--encre); font-weight: 600; }
.wc-block-order-confirmation-billing-address address { font-style: normal; line-height: 1.7; border: 0; padding: 0; }
.merci-actions { display: grid; gap: 10px; }
.merci-actions .wp-block-button, .merci-actions .wp-block-button__link { width: 100%; text-align: center; }
.merci-cote .wc-block-order-confirmation-additional-information:empty { display: none; }
@media (max-width: 900px) {
  .merci-grille { grid-template-columns: 1fr; }
  .page-merci .wc-block-order-confirmation-summary-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.confirmation-suivi { margin: 0; color: var(--encre-2); }
.page-merci .wc-block-order-confirmation-totals table, .page-merci .wc-block-order-confirmation-totals__table { border: 0 !important; }
.page-merci .wc-block-order-confirmation-totals__table th, .page-merci .wc-block-order-confirmation-totals__table td { padding-left: 0 !important; padding-right: 0 !important; border-left: 0 !important; border-right: 0 !important; }
.page-merci .wc-block-order-confirmation-billing-address, .page-merci .wc-block-order-confirmation-billing-address address { border: 0 !important; padding: 0 !important; }
.suivi2-ic::before, .pastille-etape::before { content: ""; background: currentColor; -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }
.suivi2-ic::before { width: 30px; height: 30px; }
.pastille-etape::before { width: 20px; height: 20px; }

/* ---------- panier sur mobile : une carte compacte par article ---------- */
@media (max-width: 768px) {
  .woocommerce .woocommerce-cart-form table.shop_table, .woocommerce .woocommerce-cart-form table.shop_table tbody { display: block; }
  .woocommerce .woocommerce-cart-form table.shop_table thead { display: none; }
  .woocommerce .woocommerce-cart-form tr.cart_item { display: grid; grid-template-columns: 76px minmax(0, 1fr) 32px; grid-template-areas: "img nom suppr" "img prix prix" "img qte total"; gap: 4px 12px; align-items: center; padding: 16px; border-top: 1px solid #F0F1F3; }
  .woocommerce .woocommerce-cart-form tr.cart_item:first-child { border-top: 0; }
  .woocommerce .woocommerce-cart-form table.shop_table_responsive tr.cart_item td { display: block; padding: 0 !important; border: 0 !important; text-align: left !important; background: none !important; }
  .woocommerce .woocommerce-cart-form table.shop_table_responsive tr td::before { content: none !important; display: none !important; }
  .woocommerce-cart-form td.product-thumbnail { grid-area: img; align-self: start; }
  .woocommerce-cart-form td.product-thumbnail img { width: 76px; height: 76px; object-fit: cover; }
  .woocommerce-cart-form td.product-name { grid-area: nom; font-size: 13.5px; line-height: 1.35; }
  .woocommerce-cart-form td.product-remove { grid-area: suppr; justify-self: end; align-self: start; }
  .woocommerce-cart-form td.product-price { grid-area: prix; font-size: 12.5px; color: var(--doux); }
  .woocommerce-cart-form td.product-quantity { grid-area: qte; }
  .woocommerce-cart-form td.product-quantity .qty { width: 64px; height: 38px; }
  .woocommerce-cart-form td.product-subtotal { grid-area: total; justify-self: end; font-weight: 700; white-space: nowrap; }
  .woocommerce .woocommerce-cart-form table.shop_table_responsive tr:has(td.actions) { display: block; }
  .woocommerce .woocommerce-cart-form table.shop_table_responsive td.actions { display: block; padding: 16px !important; border-top: 1px solid #F0F1F3; text-align: left !important; }
  .woocommerce-cart-form .actions .coupon { display: flex; gap: 8px; }
  .woocommerce-cart-form .actions .coupon .input-text { flex: 1; min-width: 0; width: auto; }
  .woocommerce-cart-form .actions .coupon .button { white-space: nowrap; padding: 0 14px; font-size: 13px; }
  .woocommerce-cart-form .actions > .button { width: 100%; margin-top: 10px; }
  .cart-collaterals .cart_totals { max-width: none; padding: 20px 16px; }
  .cart_totals table.shop_table_responsive tr td::before { content: none !important; }
  .cart_totals table.shop_table_responsive tr { display: grid; grid-template-columns: auto minmax(0, 1fr); }
  .cart_totals table.shop_table_responsive tr th { display: block; padding: 12px 0 !important; }
  .cart_totals table.shop_table_responsive tr td { padding: 12px 0 !important; text-align: right !important; }
  .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals { grid-template-columns: 1fr; }
  .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals th { padding-bottom: 0 !important; }
  .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td { text-align: left !important; }
}
@media (max-width: 768px) {
  .cart_totals table.shop_table_responsive tr { grid-template-columns: max-content minmax(0, 1fr); gap: 12px; border-top: 1px solid #F0F1F3; }
  .cart_totals table.shop_table_responsive tr:first-child { border-top: 0; }
  .cart_totals table.shop_table_responsive tr th, .cart_totals table.shop_table_responsive tr td { border: 0 !important; }
}
@media (max-width: 768px) {
  .woocommerce-cart-form td.product-thumbnail { width: 76px !important; min-width: 0 !important; }
  .woocommerce-cart-form td.product-thumbnail img { width: 76px !important; max-width: 76px !important; }
  .cart_totals table.shop_table_responsive tr th { width: auto !important; white-space: nowrap; }
}
.cart_totals .woocommerce-shipping-destination { display: none; }
.select2-container .select2-selection--single { display: flex !important; align-items: center; }
.select2-container .select2-selection--single .select2-selection__rendered { flex: 1; line-height: 1.3 !important; padding: 0 !important; color: var(--encre); }
.select2-container .select2-selection--single .select2-selection__arrow { top: 50% !important; transform: translateY(-50%); right: 10px !important; }
@media (max-width: 768px) {
  .woocommerce-checkout-review-order-table, .woocommerce-checkout-review-order-table tbody, .woocommerce-checkout-review-order-table tfoot { display: block; }
  .woocommerce-checkout-review-order-table thead { display: none; }
  .woocommerce-checkout-review-order-table tr { display: flex; justify-content: space-between; gap: 14px; border-top: 1px solid #F0F1F3; }
  .woocommerce-checkout-review-order-table tbody tr:first-child { border-top: 0; }
  .woocommerce-checkout-review-order-table th, .woocommerce-checkout-review-order-table td { display: block; border: 0 !important; padding: 12px 0 !important; width: auto !important; }
  .woocommerce-checkout-review-order-table td.product-total, .woocommerce-checkout-review-order-table tfoot td { text-align: right; white-space: nowrap; }
  .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals { flex-direction: column; gap: 0; }
  .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals th { padding-bottom: 6px !important; }
  .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td { padding-top: 0 !important; text-align: left; white-space: normal; }
  .newsletter .wpcf7 input.wpcf7-submit { width: 100%; }
}

/* ---------- catalogue sur mobile : catégories repliées, sous le menu tiroir ---------- */
@media (max-width: 900px) {
  .filtres { z-index: auto; max-height: none; overflow: visible; padding: 0 18px; }
  .filtres .filtre-titre { display: flex; justify-content: space-between; align-items: center; margin: 0 !important; padding: 14px 0; cursor: pointer; }
  .filtres .filtre-titre::after { content: "+"; font: 400 22px/1 var(--texte); color: var(--doux); }
  .filtres.est-ouvert .filtre-titre::after { content: "−"; }
  .filtres:not(.est-ouvert) .filtre-cats { display: none; }
  .filtres.est-ouvert .filtre-cats { padding-bottom: 12px; }
}
body:has(.tiroir.est-ouvert) p.wa-flottant { visibility: hidden; }
@media (max-width: 640px) { body:has(.cookies.est-visible) p.wa-flottant { visibility: hidden; } }
/* récapitulatif : les options de livraison prennent toute la largeur de la carte */
.cart_totals table.shop_table tr.woocommerce-shipping-totals { display: grid; grid-template-columns: minmax(0, 1fr); border-top: 1px solid #F0F1F3; }
.cart_totals table.shop_table tr.woocommerce-shipping-totals th, .cart_totals table.shop_table tr.woocommerce-shipping-totals td { display: block; width: auto !important; border: 0 !important; }
.cart_totals table.shop_table tr.woocommerce-shipping-totals th { padding-bottom: 6px !important; }
.cart_totals table.shop_table tr.woocommerce-shipping-totals td { padding-top: 0 !important; }
.cart_totals table.shop_table th { width: 40%; }
.cart_totals table.shop_table td { text-align: right; }
.cart_totals table.shop_table tr.woocommerce-shipping-totals td { text-align: left; }
.cart_totals table.shop_table, .cart_totals table.shop_table tbody { display: block; }
.cart_totals table.shop_table tr { display: flex; justify-content: space-between; gap: 12px; border-top: 1px solid #F0F1F3; }
.cart_totals table.shop_table tr:first-child { border-top: 0; }
.cart_totals table.shop_table th, .cart_totals table.shop_table td { display: block; width: auto !important; border: 0 !important; padding: 12px 0 !important; }
.cart_totals table.shop_table th { white-space: nowrap; }
.cart_totals table.shop_table tr.woocommerce-shipping-totals { flex-direction: column; gap: 0; }
.cart_totals table.shop_table tr.woocommerce-shipping-totals th { padding-bottom: 6px !important; }
.cart_totals table.shop_table tr.woocommerce-shipping-totals td { padding-top: 0 !important; }
.boustane-devis-panier { margin: 4px 0 0; text-align: center; font-size: 13px; color: var(--doux); }
.boustane-devis-panier a { color: var(--marque-texte); font-weight: 600; }
/* accueil : la première diapositive porte le titre principal (h1), même rendu que les autres */
.diapo-texte h1 { font-size: 34px; font-weight: 700; line-height: 1.15; margin: 0; }
@media (max-width: 600px) { .diapo-texte h1 { font-size: 26px; } }

/* =====================================================================
   Simplicité d'abord : lisible et facile pour tous, y compris les aînés
   ===================================================================== */
/* un élément masqué reste masqué (le mini-panier prévoit deux images, l'une cachée) */
[hidden] { display: none !important; }

/* ---------- mini-panier : l'essentiel, en grand, sans effet au survol ---------- */
.wc-block-mini-cart__drawer .wc-block-mini-cart__title { font: 700 22px/1.25 var(--titres); margin: 8px 20px 12px; }
.wc-block-mini-cart__drawer .wc-block-components-product-metadata,
.wc-block-mini-cart__drawer .wc-block-cart-item__prices,
.wc-block-mini-cart__drawer .wc-block-cart-items__header,
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer .wc-block-components-totals-item__description { display: none !important; }
.wc-block-mini-cart__drawer .wc-block-components-product-name { font: 600 15.5px/1.35 var(--texte); color: var(--encre); }
.wc-block-mini-cart__drawer .wc-block-cart-item__total { font-size: 16px; }
.wc-block-mini-cart__drawer .wc-block-cart-item__image img { width: 72px; height: 72px; object-fit: cover; border-radius: 8px; }
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector { min-height: 44px; }
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector__button { min-width: 44px; font-size: 20px; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-subtotal { font-size: 17px; font-weight: 700; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-actions { display: grid; grid-template-columns: 1fr; gap: 10px; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-actions .wc-block-components-button { min-height: 54px; font: 700 16px/1.2 var(--texte) !important; border-radius: var(--r-s) !important; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-checkout,
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-checkout:hover,
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-checkout:focus { order: -1; background: var(--grad-bouton) !important; color: #fff !important; border: 0 !important; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-cart,
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-cart:hover,
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-cart:focus { background: #fff !important; color: var(--encre) !important; border: 2px solid var(--encre) !important; box-shadow: none !important; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-cart .wc-block-components-button__text { color: var(--encre) !important; }

/* ---------- commande : gros champs, gros bouton, rien d'inutile ---------- */
.woocommerce-checkout .woocommerce form .form-row label, form.checkout .form-row label { font-size: 16px; }
form.checkout .form-row input.input-text, form.checkout .form-row select, form.checkout .select2-container .select2-selection--single { height: 56px !important; font-size: 17px !important; }
form.checkout .form-row textarea { font-size: 17px; }
form.checkout #place_order { width: 100%; min-height: 60px; font-size: 18px !important; }
.commande-plus { display: block; width: 100%; margin: 4px 0 14px; padding: 14px 16px; border: 1.5px dashed var(--ligne); border-radius: var(--r-s); background: #fff; color: var(--encre-2); font: 600 15px/1.3 var(--texte); text-align: left; cursor: pointer; }
.commande-facultatif { margin-top: 4px; }
.commande-facultatif .woocommerce-additional-fields h3 { display: none; }
/* récapitulatif : les options de livraison prennent toute la largeur, sur ordinateur aussi */
.woocommerce-checkout-review-order-table, .woocommerce-checkout-review-order-table tbody, .woocommerce-checkout-review-order-table tfoot { display: block; }
.woocommerce-checkout-review-order-table thead { display: none; }
.woocommerce-checkout-review-order-table tr { display: flex; justify-content: space-between; gap: 14px; border-top: 1px solid #F0F1F3; }
.woocommerce-checkout-review-order-table tbody tr:first-child { border-top: 0; }
.woocommerce-checkout-review-order-table th, .woocommerce-checkout-review-order-table td { display: block; border: 0 !important; padding: 12px 0 !important; width: auto !important; }
.woocommerce-checkout-review-order-table td.product-total, .woocommerce-checkout-review-order-table tfoot td { text-align: right; white-space: nowrap; }
.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals { flex-direction: column; gap: 0; }
.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals th { padding-bottom: 6px !important; }
.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td { padding-top: 0 !important; text-align: left; white-space: normal; }
.woocommerce-checkout-review-order-table tr.order-total th, .woocommerce-checkout-review-order-table tr.order-total td { font-size: 19px; }
.woocommerce ul#shipping_method li { padding: 14px; font-size: 15.5px; }
.woocommerce ul#shipping_method input { width: 20px; height: 20px; }

/* ---------- panier : la quantité se met à jour toute seule ---------- */
.woocommerce-cart-form .actions > button[name="update_cart"] { display: none !important; }
.woocommerce .quantity .qty { height: 46px; font-size: 17px; }
.wc-proceed-to-checkout .checkout-button { min-height: 58px; font-size: 17px !important; }

/* ---------- lisibilité générale sur téléphone ---------- */
@media (max-width: 600px) {
  body { font-size: 15.5px; }
  .wp-block-button__link, .bouton, button.button, .woocommerce .button { min-height: 48px; }
  .wc-block-product .wp-block-post-title, .wc-block-product .cp-nom { font-size: 14px !important; line-height: 1.35; }
}
/* mini-panier : image à gauche, puis nom, prix et quantité les uns sous les autres (rien ne dépasse) */
.wc-block-mini-cart__drawer .wc-block-mini-cart__products-table, .wc-block-mini-cart__drawer .wc-block-mini-cart__products-table tbody { display: block; width: 100%; }
.wc-block-mini-cart__drawer .wc-block-cart-items__row { display: grid !important; grid-template-columns: 72px minmax(0, 1fr) !important; grid-template-areas: "img produit" "img total"; gap: 4px 14px; padding: 16px 0 !important; border-bottom: 1px solid var(--ligne); }
.wc-block-mini-cart__drawer .wc-block-cart-items__row .wc-block-cart-item__image { grid-area: img !important; grid-column: 1 !important; grid-row: 1 / span 2 !important; padding: 0 !important; }
.wc-block-mini-cart__drawer .wc-block-cart-items__row .wc-block-cart-item__product { grid-area: produit !important; grid-column: 2 !important; grid-row: 1 !important; padding: 0 !important; }
.wc-block-mini-cart__drawer .wc-block-cart-items__row .wc-block-cart-item__total { grid-area: total !important; grid-column: 2 !important; grid-row: 2 !important; position: static !important; padding: 0 !important; text-align: left !important; }
.wc-block-mini-cart__drawer .wc-block-cart-item__total-price-and-sale-badge-wrapper { align-items: flex-start !important; flex-direction: row !important; gap: 8px; flex-wrap: wrap; }
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector { width: 150px !important; }
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector__input { min-width: 0; font-size: 17px; }
.wc-block-mini-cart__drawer .wc-block-cart-item__total-price-and-sale-badge-wrapper { justify-content: flex-start !important; align-items: center !important; }
.wc-block-mini-cart__drawer .wc-block-cart-item__total .wc-block-components-product-price { text-align: left !important; }
@media (max-width: 900px) { body.woocommerce-checkout p.wa-flottant, body.woocommerce-cart p.wa-flottant { display: none !important; } }

/* ---------- carte produit : l'action principale saute aux yeux ---------- */
.wc-block-product .cp-marque { margin: 10px 0 4px !important; }
.wc-block-product .cp-nom { margin-top: 0 !important; }
.wc-block-product .cp-ajouter .wc-block-components-product-button__button,
.wc-block-product .cp-ajouter .wc-block-components-product-button__button:hover,
.wc-block-product .cp-ajouter .wc-block-components-product-button__button:focus { background: var(--grad-bouton) !important; color: #fff !important; border: 0 !important; white-space: nowrap; font-weight: 700 !important; min-height: 46px; }
@media (max-width: 600px) {
  .wc-block-product .cp-ajouter .wc-block-components-product-button__button { font-size: 13.5px !important; padding: 0 6px !important; }
}
.wc-block-product .cp-ajouter, .wc-block-product .cp-ajouter .wc-block-components-product-button__button { width: 100% !important; justify-content: center; }
/* quantité : − [2] + */
.woocommerce .quantity.a-boutons { display: inline-flex; align-items: stretch; border: 1.5px solid var(--ligne); border-radius: var(--r-s); overflow: hidden; background: #fff; }
.woocommerce .quantity.a-boutons .qty { border: 0 !important; border-radius: 0; width: 48px; height: 46px; -moz-appearance: textfield; }
.woocommerce .quantity.a-boutons .qty::-webkit-inner-spin-button, .woocommerce .quantity.a-boutons .qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.qte-moins, .qte-plus { width: 46px; min-height: 46px; border: 0; background: var(--fond); color: var(--encre); font: 600 22px/1 var(--texte); cursor: pointer; }
.woocommerce-cart-form td.product-quantity .qty { width: 48px !important; }
@media (max-width: 768px) {
  .woocommerce .woocommerce-cart-form tr.cart_item { grid-template-areas: "img nom suppr" "img prix total" "img qte qte" !important; grid-template-columns: 76px minmax(0, 1fr) auto !important; }
  .woocommerce-cart-form td.product-subtotal { align-self: center; }
}
.fiche-achat .quantity.a-boutons input.qty { width: 52px !important; height: 50px; border: 0 !important; border-radius: 0; font-size: 17px; }
.fiche-achat .quantity.a-boutons { height: 52px; }
.fiche-achat .quantity.a-boutons .qte-moins, .fiche-achat .quantity.a-boutons .qte-plus { min-height: 50px; }
.fiche-achat form.cart .single_add_to_cart_button { width: 100%; min-height: 52px; font-size: 16px !important; }
.fiche-achat form.cart { grid-template-columns: max-content minmax(0, 1fr) !important; width: 100%; }
.fiche-achat, .fiche-achat .wp-block-woocommerce-add-to-cart-form { width: 100%; }
@media (max-width: 600px) {
  .fiche-achat form.cart { grid-template-columns: minmax(0, 1fr) !important; }
  .fiche-achat form.cart .quantity.a-boutons { justify-self: start; }
}
/* fiche : quantité et bouton côte à côte quand la place suffit, bouton pleine largeur sinon */
.fiche-achat form.cart { display: flex !important; flex-wrap: wrap; align-items: stretch; gap: 10px; }
.fiche-achat form.cart::before, .fiche-achat form.cart::after { display: none !important; content: none !important; }
.fiche-achat form.cart .quantity { flex: none; }
.fiche-achat form.cart .single_add_to_cart_button { flex: 1 1 190px; width: auto; }

/* ---------- bandeau des marques : logos en couleur, sans effet au survol ---------- */
.marques-piste a, .marques-piste a:hover, .marques-piste a:focus-visible { color: var(--encre-2); box-shadow: none; font: 700 17px/1.2 var(--titres); text-align: center; }
.marques-piste img, .marques-piste a:hover img { filter: none !important; opacity: 1 !important; max-height: 46px; max-width: 140px; width: auto; height: auto; object-fit: contain; }
@media (max-width: 600px) { .marques-piste img { max-height: 36px; max-width: 108px; } .marques-piste a { font-size: 15px; } }
.boustane-piege { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

/* ---------- outils de vente : barre livraison offerte, déjà vendus ---------- */
.boustane-barre-livraison { margin: 0 0 16px; padding: 14px 18px; background: #fff; border-radius: var(--r); border: 1px solid var(--ligne); }
.boustane-barre-livraison p { margin: 0 0 8px; font-size: 15px; color: var(--encre); }
.boustane-jauge { display: block; height: 8px; border-radius: 99px; background: var(--fond); overflow: hidden; }
.boustane-jauge span { display: block; height: 100%; border-radius: 99px; background: var(--grad); }
.boustane-barre-livraison.est-atteinte { border-color: #BBF7D0; background: #F0FDF4; }
.boustane-barre-livraison.est-atteinte p { color: #15803D; }
.boustane-barre-livraison.est-atteinte .boustane-jauge span { background: #16A34A; }
.boustane-deja-vendus { margin: 4px 0 0; font-size: 14px; font-weight: 600; color: var(--encre-2); }

/* ===== Confort au doigt (téléphone, clients âgés) ===== */
/* points du diaporama : même dessin, zone de toucher de 28 px */
.diapo-points { gap: 0; padding: 0 4px; }
.diapo-points button { position: relative; width: 28px; height: 28px; background: none; border-radius: 0; }
.diapo-points button::before { content: ""; position: absolute; left: 50%; top: 50%; width: 10px; height: 10px; transform: translate(-50%, -50%); border-radius: 999px; background: #C4C8CF; transition: background .2s, width .2s; }
.diapo-points button.est-actif { width: 34px; background: none; }
.diapo-points button.est-actif::before { width: 22px; background: var(--encre); }
/* case « J'accepte » des formulaires : plus grande, texte plus lisible */
.wpcf7-acceptance input, .wpcf7-checkbox input { width: 22px; height: 22px; vertical-align: -6px; margin-right: 8px; }
.wpcf7-acceptance, .wpcf7-list-item, .wpcf7-list-item-label { font-size: 14.5px; }
/* croix « retirer » du panier : zone de toucher de 40 px, même position */
.woocommerce-cart-form a.remove { display: inline-grid !important; place-items: center; width: 40px !important; height: 40px !important; margin: -9px -9px 0 0; border-radius: 50%; line-height: 1 !important; }
/* téléphone : champs en 16 px, sinon l'iPhone zoome tout seul dès qu'on touche un champ */
@media (max-width: 900px) {
  .wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 input[type="number"], .wpcf7 select, .wpcf7 textarea,
  .recherche .wp-block-search__input, .barre-outils select.orderby,
  body.woocommerce-page .woocommerce-cart-form #coupon_code, body.woocommerce-page .checkout_coupon #coupon_code { font-size: 16px; }
  /* le menu « Trier par » ne dépasse jamais l'écran, même sur un petit téléphone */
  .barre-outils .wc-block-catalog-sorting, .barre-outils .woocommerce-ordering { min-width: 0; max-width: 100%; }
  .barre-outils select.orderby { max-width: 100%; }
}
