/*
Theme Name: Weed Samui
Theme URI: https://weedsamui.com
Author: Weed Samui
Description: Thème bloc sur mesure pour Weed Samui, dispensaire de cannabis à Koh Samui. Construit depuis la maquette HTML validée (méthode Claude to WordPress).
Version: 1.0.6
Requires at least: 6.6
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: weed-samui
Tags: block-theme, full-site-editing, dark
*/

/* Weed Samui — feuille du thème (phase 4), générée par scripts/transformer_css.py
   C'est la feuille de la maquette validée, adaptée au DOM des blocs natifs :
   - le CSS d'un bloc est imprimé APRÈS cette feuille : toute surcharge d'un
     style de bloc est donc plus spécifique (.wp-block-image.x img, etc.) ;
   - la classe de core/button est sur le conteneur : le lien se style par
     .wp-block-button.bouton .wp-block-button__link ;
   - icônes SVG -> masques CSS, feuille décorative -> ::before (blocs-gutenberg.md). */

:root {
  --fond: #151515;
  --surface: #212121;
  --blanc: #ffffff;
  --texte-clair: #f0f0f0;
  --texte: #e7e7e7;
  --gris: #a0a0a0;
  --gris-sombre: #858585;
  --vert: #04b43e;
  --vert-haut: #02b859;
  --vert-bas: #03b509;
  --filet: rgba(255, 255, 255, .12);
  --filet-doux: rgba(255, 255, 255, .08);

  --titres: 'Sora', system-ui, sans-serif;
  --corps: 'Manrope', system-ui, sans-serif;

  --largeur: 1328px;
  --gouttiere: clamp(20px, 3.9vw, 56px);
  --enveloppe: min(var(--largeur), 100vw - 2 * var(--gouttiere));
  /* ce qu'il faut ajouter à droite pour toucher le bord de l'écran */
  --debord: calc((100vw - var(--enveloppe)) / 2);
}

*, *::before, *::after { box-sizing: border-box; }

html { background: var(--fond); color-scheme: dark; scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--fond);
  color: var(--texte);
  font: 400 16px/1.6 var(--corps);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  position: relative;
}

img { display: block; max-width: 100%; height: auto; }
figure, figure.wp-block-image { margin: 0; }
/* Filet de sécurité à spécificité NULLE : l'espacement automatique est coupé à la
   source dans theme.json (blockGap 0px). Jamais « .wp-block-group > * » ici. */
:where(.wp-block-group) > :where(*), :where(.wp-block-buttons) { margin-block: 0; }
a { color: inherit; text-decoration: none; }
p { margin: 0; }
button, input, textarea, select { font: inherit; }

h1, h2, h3, h4 {
  margin: 0;
  font-family: var(--titres);
  font-weight: 600;
  color: var(--blanc);
  hyphens: none;
  text-wrap: balance;
}

.enveloppe { width: var(--enveloppe); margin-inline: auto; }

:focus-visible { outline: 2px solid var(--vert); outline-offset: 3px; border-radius: 4px; }

/* ---------- Bouton vert ---------- */

.wp-block-button.bouton { display: inline-block; }
.wp-block-button.bouton .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 56px;
  padding: 0 38px;
  border-radius: 12px;
  background: linear-gradient(180deg, var(--vert-haut) 0%, var(--vert) 55%, var(--vert-bas) 100%);
  color: var(--blanc);
  font: 600 14px/1 var(--titres);
  letter-spacing: .05em;
  text-transform: uppercase;
  white-space: nowrap;
  box-shadow: 0 14px 34px -10px rgba(4, 180, 62, .65), inset 0 1px 0 rgba(255, 255, 255, .2);
  transition: transform .25s ease, box-shadow .25s ease;
}
.wp-block-button.bouton .wp-block-button__link:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 42px -10px rgba(4, 180, 62, .8), inset 0 1px 0 rgba(255, 255, 255, .24);
}

/* ---------- En-tête ---------- */

.entete { position: absolute; inset: 0 0 auto; z-index: 30; }
.entete-barre {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  height: 96px;
}

.marque { display: inline-flex; align-items: center; gap: 12px; justify-self: start; }
.marque .wp-block-site-logo, .marque .wp-block-site-logo a { display: block; line-height: 0; }
.marque .wp-block-site-logo img { width: 46px; height: 46px; }
.marque-nom {
  display: block;
  font: 700 15px/1.1 var(--titres);
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--blanc);
}
.marque-sous {
  display: block;
  margin-top: 3px;
  font: 500 11.5px/1.2 var(--corps);
  color: var(--texte);
}

.wp-block-navigation.nav { color: var(--blanc); }
.wp-block-navigation.nav .wp-block-navigation__container { gap: 44px; }
.wp-block-navigation.nav .wp-block-navigation-item__content {
  font: 400 17px/1 var(--titres);
  color: var(--blanc);
  transition: color .2s;
}
.wp-block-navigation.nav .wp-block-navigation-item__content:hover { color: var(--vert); }
.wp-block-navigation.nav .current-menu-item > .wp-block-navigation-item__content { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 10px; }

.entete-actions { justify-self: end; display: flex; align-items: center; gap: 18px; margin: 0; padding: 0; }
.wp-block-social-links.is-style-logos-only.entete-actions .wp-social-link { color: var(--blanc); background: none; transition: color .2s; }
.wp-block-social-links.is-style-logos-only.entete-actions .wp-social-link:hover { color: var(--vert); }
.wp-block-social-links.is-style-logos-only.entete-actions .wp-social-link a { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; }
.wp-block-social-links.is-style-logos-only.entete-actions .wp-social-link svg { width: 24px; height: 24px; }

/* panneau mobile du bloc navigation : blanc sur blanc sans ceci (CSS du bloc imprimé après) */
.wp-block-navigation.nav .wp-block-navigation__responsive-container.is-menu-open {
  background-color: var(--fond) !important;
  color: var(--blanc) !important;
  padding: 28px var(--gouttiere);
}
.wp-block-navigation.nav .wp-block-navigation__responsive-container-open,
.wp-block-navigation.nav .wp-block-navigation__responsive-container-close { color: var(--blanc); }
.wp-block-navigation.nav .wp-block-navigation__responsive-container-open svg { width: 26px; height: 26px; }
/* le bloc hérite du centrage de l'en-tête desktop : liens pleine largeur à gauche, comme la maquette */
.wp-block-navigation.nav .wp-block-navigation__responsive-container.is-menu-open {
  --navigation-layout-justification-setting: stretch;
  --navigation-layout-justify: flex-start;
  --navigation-layout-align: stretch;
}
.wp-block-navigation.nav .is-menu-open .wp-block-navigation__container { gap: 0; align-items: stretch; width: 100%; }
.wp-block-navigation.nav .is-menu-open .wp-block-navigation-item { width: 100%; }
.wp-block-navigation.nav .is-menu-open .wp-block-navigation-item__content {
  display: block; width: 100%; padding: 16px 0; font-size: 22px; border-bottom: 1px solid var(--filet-doux);
}

/* ---------- Héros ---------- */

.heros {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 740px;
  padding: clamp(200px, 20.3vw, 292px) 0 110px;
}
.heros-photo {
  position: absolute;
  top: 0; right: 0;
  width: 67%;
  height: 100%;
  z-index: -2;
}
/* tout pixel plus sombre que la page prend sa couleur : aucun raccord */
.heros-photo::after {
  content: "";
  position: absolute; inset: 0;
  background: var(--fond);
  mix-blend-mode: lighten;
}
.heros-photo { overflow: hidden; margin: 0; }
.wp-block-image.heros-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: 60% 42%;
  transform: scale(1.22);
  transform-origin: 88% 22%;
}
.heros::before {
  content: "";
  position: absolute; inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, var(--fond) 33%, rgba(21, 21, 21, .55) 45%, rgba(21, 21, 21, 0) 62%),
    linear-gradient(0deg, var(--fond) 0%, rgba(21, 21, 21, 0) 30%);
}

.heros-titre { font-size: clamp(42px, 4.45vw, 64px); line-height: 1.05; }

.accroche {
  display: grid;
  grid-template-columns: 64px minmax(0, 470px);
  column-gap: 24px;
  margin-top: 40px;
}
.accroche::before {
  content: "";
  height: 1px;
  margin-top: .82em;
  background: rgba(255, 255, 255, .7);
  font-size: 18px;
}
.accroche p { font-size: 18px; line-height: 1.6; color: var(--texte-clair); }
.accroche > .wp-block-buttons { grid-column: 2; justify-self: start; margin-top: 40px; }

/* ---------- En-tête de section centré ---------- */

.entete-section { max-width: 620px; margin: 0 auto 50px; text-align: center; }
.entete-section h2 { font-size: clamp(32px, 3.27vw, 47px); line-height: 1.15; }
.entete-section p { max-width: 390px; margin: 18px auto 0; font-size: 16px; color: var(--texte); }

/* ---------- Produits ---------- */

.produits { padding-top: 110px; }

.grille-produits {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 32px;
}
.carte-produit {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 0 24px 30px;
  border: 1px solid transparent;
  border-radius: 16px;
  background: var(--surface);
  transition: border-color .25s ease, transform .25s ease;
}
.carte-produit:hover, .carte-produit.est-active, .carte-produit:focus-within { border-color: rgba(4, 180, 62, .85); }
.carte-produit:hover { transform: translateY(-4px); }
/* le lien du nom couvre toute la carte : elle s'ouvre sur sa gamme dans le menu */
.carte-produit h3 a::after { content: ""; position: absolute; inset: 0; border-radius: 16px; }
.carte-produit h3 a:focus-visible { outline: none; }

.produit-visuel { display: grid; grid-template-rows: minmax(0, 1fr); height: 262px; padding: 34px 8px 20px; }
.wp-block-image.produit-visuel img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 22px 22px rgba(0, 0, 0, .55));
}
.carte-produit h3 { font: 400 22px/1.3 var(--titres); }
.carte-produit p { margin-top: 12px; font-size: 15px; line-height: 1.6; color: var(--gris); }
.prix { margin-top: auto; padding-top: 22px; font: 500 26px/1 var(--titres); color: var(--blanc); }
.prix em { font-style: normal; margin-left: 4px; font: 400 14px/1 var(--corps); color: var(--gris); }

/* ---------- Boutique ---------- */

.boutique { position: relative; overflow: hidden; padding: 150px 0 130px; }
.boutique-grille {
  display: grid;
  grid-template-columns: minmax(0, 520px) minmax(0, 1fr);
  gap: 80px;
  align-items: center;
}
.boutique-texte { position: relative; z-index: 1; }
.boutique-texte h2 { font-size: clamp(36px, 3.75vw, 54px); line-height: 1.06; }
.boutique .accroche, .histoire .accroche, .formulaire-section .accroche { margin-top: 36px; }
.boutique .accroche p, .histoire .accroche p, .formulaire-section .accroche p { font-size: 16px; line-height: 1.75; color: var(--texte); }

.boutique::before {
  content: "";
  position: absolute;
  z-index: 0;
  left: -150px;
  top: 70px;
  width: 660px;
  aspect-ratio: 558 / 906;
  background: url(assets/img/feuille-deco.png) center / contain no-repeat;
  opacity: .8;
  transform: rotate(24deg);
  pointer-events: none;
}

/* ---------- Carrousels ---------- */

.carrousel { min-width: 0; }
.piste {
  position: relative;
  display: flex;
  gap: 24px;
  margin-right: calc(-1 * var(--debord));
  padding-right: var(--debord);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
}
.piste::-webkit-scrollbar { display: none; }
.piste > * { flex: none; scroll-snap-align: start; }
/* glissement piloté par le script : ni aimantation ni défilement natif pendant le geste */
.piste.est-anime { scroll-snap-type: none; scroll-behavior: auto; }

.piste-photos > .wp-block-image { width: min(620px, 78vw); margin: 0; }
.piste-photos > .wp-block-image img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: 24px;
}

.fleches { display: flex; justify-content: center; gap: 16px; margin-top: 32px; }
.carrousel-boutique .fleches { position: relative; width: min(620px, 78vw); }
.fleche {
  display: grid; place-items: center;
  width: 56px; height: 56px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 14px;
  background: transparent;
  color: var(--blanc);
  cursor: pointer;
  transition: border-color .2s, color .2s, background-color .2s;
}
/* le texte de la flèche (0 px, lu comme nom du bouton) reste seul dans la grille :
   l'icône est posée par-dessus et centrée, sans créer de seconde ligne */
.fleche { position: relative; font-size: 0; user-select: none; }
.fleche::before {
  content: "";
  position: absolute;
  inset: 0;
  width: 20px; height: 20px;
  margin: auto;
  background: currentColor;
  -webkit-mask: center / contain no-repeat;
  mask: center / contain no-repeat;
}
.fleche-prec::before { -webkit-mask-image: 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.5 12h-15M10.5 6l-6 6 6 6'/%3E%3C/svg%3E"); mask-image: 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.5 12h-15M10.5 6l-6 6 6 6'/%3E%3C/svg%3E"); }
.fleche-suiv::before { -webkit-mask-image: 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='M4.5 12h15M13.5 6l6 6-6 6'/%3E%3C/svg%3E"); mask-image: 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='M4.5 12h15M13.5 6l6 6-6 6'/%3E%3C/svg%3E"); }
.fleche:hover:not(.est-desactive) { border-color: var(--vert); }
.fleche.est-desactive { color: rgba(255, 255, 255, .3); border-color: rgba(255, 255, 255, .06); cursor: default; }

/* Défilement intelligent de la boutique (scripts/carrousel.js). La photo active est
   au premier plan, les autres attendent en retrait ; un léger zoom lent l'anime.
   Une barre à un segment par photo cadence la lecture : le segment en cours se
   remplit, et la fin de la minuterie (même durée) fait passer à la photo suivante. */
.est-intelligent .piste-photos > .wp-block-image {
  overflow: hidden;
  isolation: isolate;
  border-radius: 24px;
  cursor: pointer;
  opacity: .38;
  transform: scale(.94);
  transition: opacity .9s cubic-bezier(.22, .61, .36, 1), transform .9s cubic-bezier(.22, .61, .36, 1);
}
.est-intelligent .piste-photos > .est-active { opacity: 1; transform: none; cursor: default; }
.est-intelligent .piste-photos > .wp-block-image img { transition: transform 1.2s cubic-bezier(.22, .61, .36, 1); }
.est-intelligent .piste-photos > .est-active img { transform: scale(1.06); transition: transform 7s cubic-bezier(.25, .46, .45, .94); }

.est-intelligent .fleches::before,
.est-intelligent .fleches::after {
  content: "";
  position: absolute;
  top: -17px;
  height: 2px;
  border-radius: 2px;
}
.est-intelligent .fleches::before {
  left: 0; right: 0;
  background: linear-gradient(90deg, rgba(255, 255, 255, .5) calc(var(--i) * (100% + 6px) / var(--nb)), rgba(255, 255, 255, .14) 0);
  -webkit-mask: repeating-linear-gradient(90deg, #000 0 calc((100% + 6px) / var(--nb) - 6px), transparent 0 calc((100% + 6px) / var(--nb)));
  mask: repeating-linear-gradient(90deg, #000 0 calc((100% + 6px) / var(--nb) - 6px), transparent 0 calc((100% + 6px) / var(--nb)));
}
.est-intelligent .fleches::after {
  left: calc(var(--i) * (100% + 6px) / var(--nb));
  width: calc((100% + 6px) / var(--nb) - 6px);
  background: var(--vert);
  transform: scaleX(0);
  transform-origin: left;
}
.est-intelligent.est-en-lecture .fleches { animation: minuterie-diapo 5.5s linear; }
.est-intelligent.est-en-lecture .fleches::after { animation: progression-diapo 5.5s linear forwards; }
.est-intelligent.est-en-pause .fleches,
.est-intelligent.est-en-pause .fleches::after { animation-play-state: paused; }
@keyframes minuterie-diapo { to { --minuterie: 1; } }
@keyframes progression-diapo { to { transform: scaleX(1); } }

@media (prefers-reduced-motion: reduce) {
  html, .piste { scroll-behavior: auto; }
}

/* ---------- Atouts ---------- */

.atouts { padding-bottom: 130px; }
.grille-atouts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 32px;
}
.atout {
  padding: 50px 28px 46px;
  border-radius: 16px;
  background: var(--surface);
  text-align: center;
}
.atout::before {
  content: "";
  display: block;
  width: 46px; height: 46px;
  margin: 0 auto 28px;
  background: var(--blanc);
  -webkit-mask: center / contain no-repeat;
  mask: center / contain no-repeat;
}
.icone-feuille::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='24' r='22.3'/%3E%3Cg vector-effect='non-scaling-stroke'%3E%3Cpath d='M24 33c-1.5-4.6-1.3-11.5 0-17.5 1.3 6 1.5 12.9 0 17.5z'/%3E%3Cpath d='M24 33c-1.5-4.6-1.3-11.5 0-17.5 1.3 6 1.5 12.9 0 17.5z' transform='translate(24 33) rotate(38) scale(.8) translate(-24 -33)'/%3E%3Cpath d='M24 33c-1.5-4.6-1.3-11.5 0-17.5 1.3 6 1.5 12.9 0 17.5z' transform='translate(24 33) rotate(-38) scale(.8) translate(-24 -33)'/%3E%3Cpath d='M24 33c-1.5-4.6-1.3-11.5 0-17.5 1.3 6 1.5 12.9 0 17.5z' transform='translate(24 33) rotate(72) scale(.55) translate(-24 -33)'/%3E%3Cpath d='M24 33c-1.5-4.6-1.3-11.5 0-17.5 1.3 6 1.5 12.9 0 17.5z' transform='translate(24 33) rotate(-72) scale(.55) translate(-24 -33)'/%3E%3Cpath d='M24 33v4'/%3E%3C/g%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='24' r='22.3'/%3E%3Cg vector-effect='non-scaling-stroke'%3E%3Cpath d='M24 33c-1.5-4.6-1.3-11.5 0-17.5 1.3 6 1.5 12.9 0 17.5z'/%3E%3Cpath d='M24 33c-1.5-4.6-1.3-11.5 0-17.5 1.3 6 1.5 12.9 0 17.5z' transform='translate(24 33) rotate(38) scale(.8) translate(-24 -33)'/%3E%3Cpath d='M24 33c-1.5-4.6-1.3-11.5 0-17.5 1.3 6 1.5 12.9 0 17.5z' transform='translate(24 33) rotate(-38) scale(.8) translate(-24 -33)'/%3E%3Cpath d='M24 33c-1.5-4.6-1.3-11.5 0-17.5 1.3 6 1.5 12.9 0 17.5z' transform='translate(24 33) rotate(72) scale(.55) translate(-24 -33)'/%3E%3Cpath d='M24 33c-1.5-4.6-1.3-11.5 0-17.5 1.3 6 1.5 12.9 0 17.5z' transform='translate(24 33) rotate(-72) scale(.55) translate(-24 -33)'/%3E%3Cpath d='M24 33v4'/%3E%3C/g%3E%3C/svg%3E"); }
.icone-bouclier::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='24' r='22.3'/%3E%3Cpath d='M24 12.5l9 3.5v7.5c0 5.5-3.8 9.9-9 12-5.2-2.1-9-6.5-9-12V16z'/%3E%3Cpath d='M19.8 24l3 3 5.6-5.8'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='24' r='22.3'/%3E%3Cpath d='M24 12.5l9 3.5v7.5c0 5.5-3.8 9.9-9 12-5.2-2.1-9-6.5-9-12V16z'/%3E%3Cpath d='M19.8 24l3 3 5.6-5.8'/%3E%3C/svg%3E"); }
.icone-scooter::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='24' r='22.3'/%3E%3Ccircle cx='16' cy='30.5' r='3.2'/%3E%3Ccircle cx='32.5' cy='30.5' r='3.2'/%3E%3Cpath d='M19.2 30.5h7.3c.3-3 2.2-5.1 4.9-5.4'/%3E%3Cpath d='M32.5 30.5l-3-13h3.6'/%3E%3Cpath d='M12.8 30.5c0-3.3 1.8-5.3 5.2-5.3h6.3l2.2 5.3'/%3E%3Crect x='11.5' y='16' width='9' height='7' rx='1'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='24' r='22.3'/%3E%3Ccircle cx='16' cy='30.5' r='3.2'/%3E%3Ccircle cx='32.5' cy='30.5' r='3.2'/%3E%3Cpath d='M19.2 30.5h7.3c.3-3 2.2-5.1 4.9-5.4'/%3E%3Cpath d='M32.5 30.5l-3-13h3.6'/%3E%3Cpath d='M12.8 30.5c0-3.3 1.8-5.3 5.2-5.3h6.3l2.2 5.3'/%3E%3Crect x='11.5' y='16' width='9' height='7' rx='1'/%3E%3C/svg%3E"); }
.icone-palmier::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='24' r='22.3'/%3E%3Cpath d='M25.5 33.5c.6-4.6.1-8.5-2-12.2'/%3E%3Cpath d='M23.5 21.3c-2.6-2-5.8-1.8-7.8.6M23.5 21.3c-1-3.2-3.6-5.2-7-5M23.5 21.3c1.8-3.2 5-4.4 8-3M23.5 21.3c3.6-.6 6.8 1 8.6 3.8'/%3E%3Cpath d='M13 34c2-1.2 4-1.2 6 0s4 1.2 6 0 4-1.2 6 0 3 1 4 .6'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='24' r='22.3'/%3E%3Cpath d='M25.5 33.5c.6-4.6.1-8.5-2-12.2'/%3E%3Cpath d='M23.5 21.3c-2.6-2-5.8-1.8-7.8.6M23.5 21.3c-1-3.2-3.6-5.2-7-5M23.5 21.3c1.8-3.2 5-4.4 8-3M23.5 21.3c3.6-.6 6.8 1 8.6 3.8'/%3E%3Cpath d='M13 34c2-1.2 4-1.2 6 0s4 1.2 6 0 4-1.2 6 0 3 1 4 .6'/%3E%3C/svg%3E"); }
.icone-etiquette::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='24' r='22.3'/%3E%3Cpath d='M15.5 15.5h9.2l9.3 9.3-9.2 9.2-9.3-9.3z'/%3E%3Ccircle cx='20.3' cy='20.3' r='1.7'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='24' r='22.3'/%3E%3Cpath d='M15.5 15.5h9.2l9.3 9.3-9.2 9.2-9.3-9.3z'/%3E%3Ccircle cx='20.3' cy='20.3' r='1.7'/%3E%3C/svg%3E"); }
.icone-bulle::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='24' r='22.3'/%3E%3Cpath d='M14.5 23c0-5.2 4.3-9 9.5-9s9.5 3.8 9.5 9-4.3 9-9.5 9c-1.4 0-2.8-.3-4-.8L15 33.2l1.3-4.3c-1.1-1.6-1.8-3.6-1.8-5.9z'/%3E%3Cpath d='M20 23h.01M24 23h.01M28 23h.01' stroke-width='2.4'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='24' r='22.3'/%3E%3Cpath d='M14.5 23c0-5.2 4.3-9 9.5-9s9.5 3.8 9.5 9-4.3 9-9.5 9c-1.4 0-2.8-.3-4-.8L15 33.2l1.3-4.3c-1.1-1.6-1.8-3.6-1.8-5.9z'/%3E%3Cpath d='M20 23h.01M24 23h.01M28 23h.01' stroke-width='2.4'/%3E%3C/svg%3E"); }
.icone-telephone::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='24' r='22.3'/%3E%3Cpath d='M19.4 14.6l2.6.4 1.5 4.6-2.1 1.7a13.2 13.2 0 0 0 5.3 5.3l1.7-2.1 4.6 1.5.4 2.6c-.1 1.7-1.5 3-3.2 2.9-7.9-.6-14.2-6.9-14.8-14.8-.1-1.7 1.2-3.1 2.9-3.2z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='24' r='22.3'/%3E%3Cpath d='M19.4 14.6l2.6.4 1.5 4.6-2.1 1.7a13.2 13.2 0 0 0 5.3 5.3l1.7-2.1 4.6 1.5.4 2.6c-.1 1.7-1.5 3-3.2 2.9-7.9-.6-14.2-6.9-14.8-14.8-.1-1.7 1.2-3.1 2.9-3.2z'/%3E%3C/svg%3E"); }
.icone-mail::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='24' r='22.3'/%3E%3Crect x='14.5' y='17' width='19' height='14' rx='2'/%3E%3Cpath d='M15.5 18.5l8.5 6.5 8.5-6.5'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='24' r='22.3'/%3E%3Crect x='14.5' y='17' width='19' height='14' rx='2'/%3E%3Cpath d='M15.5 18.5l8.5 6.5 8.5-6.5'/%3E%3C/svg%3E"); }
.atout h3 { font: 400 20px/1.3 var(--titres); }
.atout p { max-width: 250px; margin: 12px auto 0; font-size: 14.5px; line-height: 1.6; color: var(--gris); }

/* ---------- Bande contact ---------- */

.bande-contact { position: relative; isolation: isolate; overflow: hidden; padding: 150px 0; }
.bande-contact > .wp-block-image { position: absolute; inset: 0; z-index: -2; margin: 0; }
.bande-contact > .wp-block-image img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: 50% 45%;
  filter: brightness(1.18) saturate(1.08);
}
.bande-contact::after {
  content: "";
  position: absolute; inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(8, 8, 8, .42) 0%, rgba(8, 8, 8, .04) 55%, rgba(8, 8, 8, .24) 100%);
}
.bande-grille {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 430px);
  gap: 64px;
  align-items: center;
}
.bande-contact h2 { font-size: clamp(40px, 4.45vw, 64px); line-height: 1.05; }
.bande-contact p { font-size: 16px; line-height: 1.7; color: var(--blanc); }
.bande-contact .wp-block-buttons { margin-top: 30px; }

/* ---------- Avis ---------- */

.avis { overflow: hidden; padding: 130px 0 140px; }
.piste-avis { gap: 64px; }
.carte-avis { width: min(380px, 80vw); }
.carte-avis::before {
  content: "";
  display: block;
  width: 120px; height: 20px;
  background: var(--vert);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='2 2 25 20' fill='%23000'%3E%3Cpath d='M12 2.4l2.95 6.02 6.62.93-4.8 4.64 1.15 6.6L12 17.47l-5.92 3.12 1.15-6.6-4.8-4.64 6.62-.93z'/%3E%3C/svg%3E") left center / 25px 20px repeat-x;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='2 2 25 20' fill='%23000'%3E%3Cpath d='M12 2.4l2.95 6.02 6.62.93-4.8 4.64 1.15 6.6L12 17.47l-5.92 3.12 1.15-6.6-4.8-4.64 6.62-.93z'/%3E%3C/svg%3E") left center / 25px 20px repeat-x;
}
.carte-avis .wp-block-quote { padding: 0; border: 0; }
.carte-avis h3 { margin-top: 22px; font: 400 20px/1.3 var(--titres); }
.avis-role { margin-top: 6px; font-size: 13px; color: var(--gris-sombre); }
.carte-avis blockquote { margin: 26px 0 0; font: 400 20px/1.6 var(--titres); color: var(--blanc); }
.avis .fleches { margin-top: 56px; }

/* ---------- Pied de page ---------- */

.pied { padding: 84px 0 36px; border-top: 1px solid var(--filet-doux); }
.pied-grille {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) repeat(4, minmax(0, 1fr));
  gap: 40px;
}
.pied-devise { margin-top: 22px; font-size: 14.5px; color: var(--gris); }
.pied h4 { margin-bottom: 18px; font: 600 15px/1.3 var(--titres); }
.pied ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; font-size: 14.5px; color: var(--gris); }
.pied ul a { transition: color .2s; }
.pied ul a:hover { color: var(--blanc); }
.pied-bas {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  margin-top: 64px;
  padding-top: 26px;
  border-top: 1px solid var(--filet-doux);
  font-size: 13px;
  color: var(--gris-sombre);
}

/* ---------- Pages internes : héros ---------- */

.heros-page { min-height: 620px; padding: clamp(180px, 16.4vw, 236px) 0 100px; }
.heros-page .wp-block-image.heros-photo img { transform: none; object-position: 50% 45%; }

/* ---------- Menu : filtres et paliers ---------- */

.carte { padding: 24px 0 120px; }
.filtres { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-bottom: 72px; }
.filtre {
  display: inline-flex;
  align-items: center;
  user-select: none;
  height: 46px;
  padding: 0 24px;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 12px;
  background: transparent;
  color: var(--texte);
  font: 500 14px/1 var(--titres);
  letter-spacing: .02em;
  cursor: pointer;
  transition: border-color .2s, color .2s;
}
.filtre:hover { color: var(--blanc); border-color: rgba(255, 255, 255, .4); }
.filtre.est-actif { color: var(--blanc); border-color: rgba(4, 180, 62, .85); }

.palier {
  display: grid;
  grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
  gap: 72px;
  padding: 56px 0;
  border-top: 1px solid var(--filet-doux);
  scroll-margin-top: 24px;
}
.palier:first-of-type { padding-top: 0; border-top: 0; }
.palier.est-masque, .wp-block-table.table-prix tr.est-masque { display: none; }
.palier-info h2 { font-size: clamp(32px, 3.27vw, 47px); line-height: 1.1; }
.palier-prix { margin-top: 14px; font: 500 24px/1.2 var(--titres); color: var(--blanc); }
.palier-prix em { font-style: normal; margin-left: 4px; font: 400 14px/1 var(--corps); color: var(--gris); }
.palier-accroche { max-width: 300px; margin-top: 12px; font-size: 15px; color: var(--gris); }
.palier-info { position: sticky; top: 40px; align-self: start; }
.wp-block-image.palier-visuel { margin-top: 36px; }
.wp-block-image.palier-visuel img {
  display: block;
  width: auto;
  max-width: 250px;
  height: 180px;
  object-fit: contain;
  object-position: left bottom;
  filter: drop-shadow(0 22px 22px rgba(0, 0, 0, .55));
}

.wp-block-table.table-prix { align-self: start; overflow: hidden; margin: 0; border-radius: 16px; background: var(--surface); }
.wp-block-table.table-prix table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.wp-block-table.table-prix thead { border: 0; }
.wp-block-table.table-prix th, .wp-block-table.table-prix td { padding: 18px 28px; border: 0; text-align: right; white-space: nowrap; }
.wp-block-table.table-prix thead th { padding-top: 22px; padding-bottom: 16px; font: 500 13px/1 var(--corps); color: var(--gris-sombre); }
.wp-block-table.table-prix thead th:nth-child(2) { width: 150px; }
.wp-block-table.table-prix thead th:nth-child(n+3) { width: 118px; }
.wp-block-table.table-prix th:first-child { text-align: left; white-space: normal; }
.wp-block-table.table-prix td:nth-child(2), .wp-block-table.table-prix thead th:nth-child(2) { text-align: left; }
.wp-block-table.table-prix tbody tr { border-top: 1px solid var(--filet-doux); transition: background-color .2s; }
.wp-block-table.table-prix tbody tr:hover { background: rgba(255, 255, 255, .025); }
.wp-block-table.table-prix tbody th { font: 400 18px/1.3 var(--titres); color: var(--blanc); }
.wp-block-table.table-prix tbody td { font: 500 17px/1.3 var(--titres); color: var(--blanc); }
.wp-block-table.table-prix td em {
  font-style: normal;
  display: inline-block;
  padding: 7px 10px 6px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 8px;
  font: 500 11.5px/1 var(--corps);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--texte);
}
.carte-note { margin-top: 48px; text-align: center; font-size: 14px; color: var(--gris-sombre); }

/* ---------- À propos ---------- */

.histoire { padding: 130px 0; }
.photo-cadre { margin: 0; }
.photo-cadre img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 24px; }

.chiffres { padding-bottom: 130px; }
.grille-chiffres { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.chiffre { padding-top: 30px; border-top: 1px solid var(--filet); }
.chiffre-nombre { display: block; font: 600 clamp(44px, 4.45vw, 64px)/1 var(--titres); color: var(--blanc); }
.chiffre-texte { display: block; max-width: 220px; margin-top: 16px; font-size: 15px; line-height: 1.6; color: var(--gris); }

/* ---------- Contact ---------- */

.moyens { padding: 16px 0 130px; }
.moyens .atout { border: 1px solid transparent; }
.atout-lien { position: relative; transition: border-color .25s ease, transform .25s ease; }
.atout-lien:hover { border-color: rgba(4, 180, 62, .85); transform: translateY(-4px); }
.atout .atout-detail { margin-top: 10px; font: 500 17px/1.4 var(--titres); color: var(--blanc); overflow-wrap: anywhere; }
.atout .atout-detail a { color: inherit; }
.atout-lien .atout-detail a::after { content: ""; position: absolute; inset: 0; border-radius: 16px; }

.formulaire-section { padding: 0 0 130px; }
.formulaire-section .boutique-grille { align-items: start; }
.formulaire { padding: 40px; border-radius: 16px; background: var(--surface); }
.formulaire-champs { display: grid; gap: 22px; }
.champs-duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.champ { margin: 0; }
.champ label { display: block; margin-bottom: 10px; font: 400 14px/1.2 var(--titres); color: var(--blanc); }
.champ label span { color: var(--gris-sombre); }
.champ input, .champ textarea {
  display: block;
  width: 100%;
  height: 56px;
  padding: 0 18px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 12px;
  background: var(--fond);
  color: var(--blanc);
  font: 400 16px/1.5 var(--corps);
  transition: border-color .2s;
}
.champ textarea { height: auto; min-height: 168px; padding: 16px 18px; resize: vertical; }
.champ input::placeholder, .champ textarea::placeholder { color: var(--gris-sombre); }
.champ input:focus, .champ textarea:focus { outline: none; border-color: var(--vert); }
.formulaire .wpcf7 form { margin: 0; }
.formulaire .wpcf7-form-control-wrap { display: block; }
.champ .wpcf7-not-valid { border-color: #e5484d; }
.formulaire .wpcf7-not-valid-tip { margin-top: 8px; font-size: 13px; color: #ff8a8a; }
.case .wpcf7-form-control-wrap, .case .wpcf7-form-control, .case .wpcf7-list-item { display: block; margin: 0; }
.case label { display: flex; align-items: flex-start; gap: 12px; font-size: 14.5px; color: var(--texte); cursor: pointer; }
.case input { flex: none; width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--vert); }
.envoi { display: flex; align-items: center; gap: 16px; margin: 0; }
.formulaire .bouton-envoi {
  display: inline-flex;
  align-items: center;
  height: 56px;
  padding: 0 38px;
  border: 0;
  border-radius: 12px;
  background: linear-gradient(180deg, var(--vert-haut) 0%, var(--vert) 55%, var(--vert-bas) 100%);
  color: var(--blanc);
  font: 600 14px/1 var(--titres);
  letter-spacing: .05em;
  text-transform: uppercase;
  box-shadow: 0 14px 34px -10px rgba(4, 180, 62, .65), inset 0 1px 0 rgba(255, 255, 255, .2);
  cursor: pointer;
  transition: transform .25s ease, box-shadow .25s ease;
}
.formulaire .bouton-envoi:hover { transform: translateY(-2px); box-shadow: 0 18px 42px -10px rgba(4, 180, 62, .8), inset 0 1px 0 rgba(255, 255, 255, .24); }
.formulaire .wpcf7-spinner { margin: 0; }
.formulaire .wpcf7 form .wpcf7-response-output {
  margin: 22px 0 0; padding: 14px 18px;
  border: 1px solid rgba(255, 255, 255, .16); border-radius: 12px;
  font-size: 15px; color: var(--texte);
}
.formulaire .wpcf7 form.sent .wpcf7-response-output { border-color: var(--vert); color: var(--blanc); }
.formulaire .wpcf7 form.invalid .wpcf7-response-output,
.formulaire .wpcf7 form.unaccepted .wpcf7-response-output,
.formulaire .wpcf7 form.failed .wpcf7-response-output { border-color: #e5484d; }

.liste-zones { display: flex; flex-wrap: wrap; gap: 10px; margin: 26px 0 0; padding: 0; list-style: none; }
.liste-zones li {
  padding: 11px 16px;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 12px;
  background: rgba(8, 8, 8, .35);
  font: 400 14px/1 var(--titres);
  color: var(--blanc);
}

/* ---------- Pages légales ---------- */

.page-texte { padding: clamp(180px, 16.4vw, 236px) 0 120px; }
.blocs-legaux { margin-top: 96px; }
.bloc-legal {
  display: grid;
  grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
  gap: 72px;
  padding: 44px 0;
  border-top: 1px solid var(--filet-doux);
  scroll-margin-top: 24px;
}
.bloc-legal h2 { font-size: clamp(24px, 2.1vw, 30px); line-height: 1.2; }
.bloc-legal-texte, .fiche { max-width: 720px; }
.bloc-legal-texte p, .bloc-legal-texte li { font-size: 16px; line-height: 1.75; color: var(--texte); }
.bloc-legal-texte p + p { margin-top: 16px; }
.bloc-legal-texte ul { display: grid; gap: 12px; margin: 0; padding-left: 20px; }
.bloc-legal-texte strong { font-weight: 600; color: var(--blanc); }
.bloc-legal-texte .mise-a-jour { font-size: 14px; color: var(--gris-sombre); }
.bloc-legal a {
  color: var(--blanc);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  transition: color .2s;
}
.bloc-legal a:hover { color: var(--vert); }
.fiche { margin: 0; }
.fiche-ligne {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 24px;
  padding: 14px 0;
  border-bottom: 1px solid var(--filet-doux);
}
.fiche-ligne:first-child { padding-top: 2px; }
.fiche-cle { font-size: 15px; color: var(--gris); }
.fiche-valeur { margin: 0; font-size: 16px; color: var(--blanc); }
.page-texte em { font-style: normal; color: var(--gris-sombre); }

/* ---------- Tablette ---------- */

@media (max-width: 1100px) {
  .grille-produits, .grille-atouts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .boutique-grille { grid-template-columns: 1fr; gap: 56px; }
  .bande-grille { grid-template-columns: 1fr; gap: 28px; }
  .pied-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pied-grille > :first-child { grid-column: 1 / -1; }
  .palier { grid-template-columns: 1fr; gap: 28px; }
  /* colonne unique : la photo passe à droite du nom de la gamme, plus de position collante */
  .palier-info {
    position: static;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 150px;
    column-gap: 20px;
    align-items: center;
  }
  .palier-info > * { grid-column: 1; }
  .wp-block-image.palier-visuel { grid-column: 2; grid-row: 1 / span 3; margin-top: 0; }
  .wp-block-image.palier-visuel img { width: 100%; max-width: none; height: 140px; object-position: center; }
  .bloc-legal { grid-template-columns: 1fr; gap: 20px; }
  .grille-chiffres { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 40px; }
}

/* ---------- Mobile ---------- */

@media (max-width: 760px) {
  .entete-barre { grid-template-columns: 1fr auto auto; column-gap: 6px; height: 76px; }
  .marque .wp-block-site-logo img { width: 40px; height: 40px; }
  .entete-actions { order: 2; }
  .wp-block-navigation.nav { order: 3; }
  /* panneau dès 760 px comme la maquette (le bloc ne bascule seul qu'à 600 px) */
  .wp-block-navigation.nav .wp-block-navigation__responsive-container-open { display: flex; }
  .wp-block-navigation.nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }

  .heros { min-height: 0; padding: 62vw 0 72px; }
  .heros-photo { width: 100%; height: 88vw; }
  .heros::before {
    background: linear-gradient(0deg, var(--fond) 0%, var(--fond) calc(100% - 88vw + 10vw), rgba(21, 21, 21, .15) calc(100% - 30vw), rgba(21, 21, 21, .35) 100%);
  }
  .heros-titre { font-size: 42px; }
  .accroche { grid-template-columns: 28px minmax(0, 1fr); column-gap: 14px; margin-top: 26px; }
  .accroche p { font-size: 16px; }
  .accroche > .wp-block-buttons { margin-top: 30px; }

  .produits { padding-top: 64px; }
  .entete-section { margin-bottom: 36px; }
  .grille-produits { gap: 12px; }
  .carte-produit { padding: 0 14px 18px; }
  .produit-visuel { height: 150px; padding: 20px 4px 10px; }
  .carte-produit h3 { font-size: 16px; }
  .carte-produit p { font-size: 13px; line-height: 1.5; }
  .prix { font-size: 20px; padding-top: 14px; }

  .boutique { padding: 96px 0 80px; }
  .boutique::before { width: 420px; left: -190px; top: -30px; }

  .atouts { padding-bottom: 90px; }
  .grille-atouts { grid-template-columns: 1fr; gap: 14px; }
  .atout { padding: 36px 24px 34px; }

  .bande-contact { padding: 96px 0; }
  .bande-contact h2 { font-size: 36px; }
  .avis { padding: 90px 0 100px; }
  .piste-avis { gap: 40px; }
  .carte-avis blockquote { font-size: 18px; }

  .pied { padding-top: 64px; }
  .pied-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 20px; }
  .pied ul { font-size: 14px; }
  .pied-bas { flex-direction: column; gap: 8px; margin-top: 44px; }

  /* pages internes */
  .filtres { gap: 8px; margin-bottom: 44px; }
  .filtre { height: 40px; padding: 0 12px; font-size: 13px; }
  .palier { gap: 20px; padding: 40px 0; }
  .palier-info { grid-template-columns: minmax(0, 1fr) 112px; column-gap: 16px; }
  .wp-block-image.palier-visuel img { height: 104px; }
  .wp-block-table.table-prix table, .wp-block-table.table-prix tbody { display: block; }
  .wp-block-table.table-prix thead { display: none; }
  .wp-block-table.table-prix tbody tr {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    row-gap: 14px;
    padding: 18px 20px;
  }
  .wp-block-table.table-prix th, .wp-block-table.table-prix td { padding: 0; text-align: left; }
  .wp-block-table.table-prix tbody th { grid-column: 1 / 3; align-self: center; font-size: 17px; }
  .wp-block-table.table-prix td:nth-child(2) { grid-column: 3; justify-self: end; }
  .wp-block-table.table-prix tbody td { font-size: 16px; }
  .wp-block-table.table-prix td[data-qte]::before {
    content: attr(data-qte);
    display: block;
    margin-bottom: 5px;
    font: 400 12px/1 var(--corps);
    color: var(--gris-sombre);
  }

  .histoire { padding: 90px 0; }
  .chiffres { padding-bottom: 90px; }
  .grille-chiffres { gap: 32px 20px; }

  .moyens { padding-bottom: 90px; }
  .moyens .atout { padding: 30px 20px 28px; }
  .moyens .atout::before { margin-bottom: 18px; }
  .formulaire-section { padding-bottom: 90px; }
  .formulaire { padding: 24px; }
  .champs-duo { grid-template-columns: 1fr; }

  .page-texte { padding: 130px 0 80px; }
  .blocs-legaux { margin-top: 56px; }
  .bloc-legal { gap: 16px; padding: 34px 0; }
  .fiche-ligne { grid-template-columns: 1fr; gap: 4px; }
}
