/*
Theme Name: ArtisansDuCoin
Theme URI: https://artisansducoin.site
Author: ArtisansDuCoin
Description: Thème bloc sur mesure de l'annuaire ArtisansDuCoin (WooCommerce + WCFM). Couleurs et polices réglables dans Apparence → Éditeur → Styles ; en-tête et pied de page dans Apparence → Éditeur → Compositions.
Version: 1.0.2
Requires at least: 6.8
Tested up to: 7.1
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: artisansducoin
Tags: block-theme, full-site-editing, e-commerce, woocommerce
*/

/* ==========================================================================
   Organisation
   1-3 : jetons, base, en-tête et pied de page (d'après la maquette)
   4-10 : pages WooCommerce, éprouvées sur le DOM de WooCommerce (squelette de
          la méthode) — on règle la SURFACE, on garde les correctifs « PIÈGE »
   11 : composants de la maquette (accueil, pages vitrine), carte service,
        fiche service, pages WCFM (liste et page des artisans, inscription,
        tableau de bord)
   12 : adaptatif
   Fichier ASSEMBLÉ depuis src/ (node outils/assembler-css.js) : modifier src/.
   ========================================================================== */

/* ==========================================================================
   1 · Jetons — les couleurs sont des ALIAS de theme.json (Styles → Couleurs →
   Palette) ; aucune couleur en dur ailleurs. --police-titres et --police-texte
   sont posées par functions.php (le « pont »), jamais ici.
   ========================================================================== */
:root{
  --fond:var(--wp--preset--color--fond);
  --surface:var(--wp--preset--color--surface);
  --texte:var(--wp--preset--color--texte);
  --sourdine:var(--wp--preset--color--sourdine);
  --trait:var(--wp--preset--color--trait);
  --accent:var(--wp--preset--color--accent);
  --sur-accent:var(--wp--preset--color--sur-accent);
  --accent-clair:var(--wp--preset--color--accent-clair);
  --succes:var(--wp--preset--color--succes);
  --promo:var(--wp--preset--color--promo);
  --alerte:var(--wp--preset--color--alerte);
  --voile:color-mix(in srgb,var(--texte) 92%,transparent);
  --ombre:0 1px 2px color-mix(in srgb,var(--texte) 6%,transparent),0 4px 14px color-mix(in srgb,var(--texte) 6%,transparent);

  --rayon:var(--wp--custom--rayon,12px);
  --rayon-bouton:var(--wp--custom--rayon-bouton,8px);
  --largeur:1240px;
  --gouttiere:32px;
  --entete-h:76px;

  /* Icônes en masques CSS (jamais de SVG dans le contenu) : color = currentColor */
  --i-fleche:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --i-coche:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  --i-lieu: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='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
  --i-compte: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='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E");
  --i-recherche: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'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");
  --i-telephone:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' 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.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2Z'/%3E%3C/svg%3E");
  --i-whatsapp: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='M7.9 20A9 9 0 1 0 4 16.1L2 22Z'/%3E%3Cpath d='M9 9.5c.3 1.6 1.9 3.6 3.6 4.6l1.2-1 1.7.8-.4 1.6c-3 .4-6.5-3-6.4-6l1.5-.5.8 1.6Z'/%3E%3C/svg%3E");
  --i-verifie: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='M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
  --i-bouclier:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
  --i-cadeau: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%3Cpath d='M20 12v10H4V12M2 7h20v5H2zM12 22V7M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7zM12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z'/%3E%3C/svg%3E");
  --i-carte:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3 3 6v15l6-3 6 3 6-3V3l-6 3z'/%3E%3Cpath d='M9 3v15M15 6v15'/%3E%3C/svg%3E");
  --i-profil: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='10' cy='7' r='4'/%3E%3Cpath d='M10.3 15H7a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='17' cy='17' r='3'/%3E%3Cpath d='m21 21-1.9-1.9'/%3E%3C/svg%3E");
  --i-courriel:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E");
  --i-site: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='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20M12 2a15 15 0 0 1 0 20 15 15 0 0 1 0-20'/%3E%3C/svg%3E");
  /* métiers */
  --m-plomberie: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='M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5S5 13 5 15a7 7 0 0 0 7 7z'/%3E%3C/svg%3E");
  --m-electricite: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='M13 2 3 14h9l-1 8 10-12h-9l1-8z'/%3E%3C/svg%3E");
  --m-menuiserie: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 12-8.5 8.5a2.12 2.12 0 1 1-3-3L12 9'/%3E%3Cpath d='M17.64 15 22 10.64'/%3E%3Cpath d='m20.91 11.7-1.25-1.25c-.6-.6-.93-1.4-.93-2.25v-.86L16.01 4.6a5.56 5.56 0 0 0-3.94-1.64H9l.92.82A6.18 6.18 0 0 1 12 8.4v1.56l2 2h2.47l2.26 1.91'/%3E%3C/svg%3E");
  --m-maconnerie: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%3Crect x='3' y='4' width='18' height='16' rx='1'/%3E%3Cpath d='M3 9.3h18M3 14.6h18M9 4v5.3M15 9.3v5.3M9 14.6V20'/%3E%3C/svg%3E");
  --m-peinture: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%3Crect x='2' y='2' width='16' height='6' rx='2'/%3E%3Cpath d='M10 16v-2a2 2 0 0 1 2-2h8a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2'/%3E%3Crect x='8' y='16' width='4' height='6' rx='1'/%3E%3C/svg%3E");
  --m-couture: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='6' cy='6' r='3'/%3E%3Ccircle cx='6' cy='18' r='3'/%3E%3Cpath d='M20 4 8.12 15.88M14.47 14.48 20 20M8.12 8.12 12 12'/%3E%3C/svg%3E");
  --m-coiffure: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='M12 3l1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9z'/%3E%3Cpath d='M19 15l.9 2.1L22 18l-2.1.9L19 21l-.9-2.1L16 18l2.1-.9z'/%3E%3C/svg%3E");
  --m-climatisation: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='M12 2v20M4.9 4.9l14.2 14.2M2 12h20M4.9 19.1 19.1 4.9'/%3E%3Cpath d='m9 4 3 2 3-2M9 20l3-2 3 2M4 9l2 3-2 3M20 9l-2 3 2 3'/%3E%3C/svg%3E");
  --m-serrurerie: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='7.5' cy='15.5' r='5.5'/%3E%3Cpath d='m21 2-9.6 9.6M15.5 7.5l3 3L22 7l-3-3'/%3E%3C/svg%3E");
  --m-mecanique: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 17H3v-5l2-5h14l2 5v5h-2'/%3E%3Ccircle cx='7.5' cy='17' r='2'/%3E%3Ccircle cx='16.5' cy='17' r='2'/%3E%3Cpath d='M9.5 17h5M3 12h18'/%3E%3C/svg%3E");
  --m-reparation: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='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z'/%3E%3C/svg%3E");
  --m-jardinage: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='M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z'/%3E%3Cpath d='M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12'/%3E%3C/svg%3E");
  --m-nettoyage: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='M19 3 10 12'/%3E%3Cpath d='M11.5 10.5c-3-1-6.5.5-7.5 4.5L3 21l6-1c4-1 5.5-4.5 4.5-7.5z'/%3E%3Cpath d='M6 17l3-3'/%3E%3C/svg%3E");
  --m-renovation: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='M3 10.5 12 3l9 7.5V21H3z'/%3E%3Cpath d='M9 21v-6h6v6'/%3E%3C/svg%3E");
  --m-autres: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%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1'/%3E%3C/svg%3E");

  /* Variables exposées par WooCommerce, branchées sur les rôles du thème */
  --wc-separator-color:var(--trait);
  --wc-form-color-text:var(--texte);
  --wc-product-filter-chips-text:var(--texte);
  --wc-product-filter-chips-border:var(--trait);
  --wc-product-filter-chips-background:var(--fond);
  --wc-product-filter-chips-selected-text:var(--sur-accent);
  --wc-product-filter-chips-selected-border:var(--accent);
  --wc-product-filter-chips-selected-background:var(--accent);
  --wc-product-filter-price-slider:var(--accent);
  --wc-product-filter-price-slider-handle:var(--accent);
  --wc-product-filter-price-slider-handle-border:var(--fond);
  --wc-product-filter-checkbox-list-option-element:var(--trait);
  --wc-product-filter-checkbox-list-option-element-border:var(--trait);
  --wc-product-filter-checkbox-list-option-element-selected:var(--accent);
  --wc-product-filter-removable-chips-text:var(--texte);
  --wc-product-filter-removable-chips-border:var(--trait);
  --wc-product-filter-removable-chips-background:var(--surface);
  --wc-customer-account-dropdown-border-color:var(--trait);
  --wc-customer-account-dropdown-surface:var(--fond);
  --wc-customer-account-dropdown-item-hover-bg:var(--surface);
}

/* ==========================================================================
   2 · Base
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fond);color:var(--texte);font-family:var(--police-texte);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
/* PIÈGE : img{display:block} écrase l'attribut hidden (deux vignettes par article) */
[hidden]{display:none!important}
h1,h2,h3,h4{margin:0;font-family:var(--police-titres);line-height:1.2;letter-spacing:-.01em;text-wrap:balance;hyphens:none}
p{margin:0}
a{color:inherit;text-decoration:none;text-underline-offset:.18em}
a:hover{color:var(--accent)}
:where(.wp-block-group)>:where(*),:where(.wp-block-buttons){margin-block:0}
figure.wp-block-image{margin:0}
.wrap{width:100%;max-width:calc(var(--largeur) + 2 * var(--gouttiere));margin-inline:auto;padding-inline:var(--gouttiere)}

/* Icône en masque : ::before ou ::after d'un élément, couleur = currentColor */
.ic::before{content:"";display:inline-block;width:1em;height:1em;background:currentColor;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}

/* Boutons : theme.json (elements.button) règle tous les boutons, WooCommerce compris.
   Variantes de la maquette sur le CONTENEUR .wp-block-button (blocs-gutenberg.md). */
.wp-element-button,.wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;
  border:1.5px solid var(--accent);transition:filter .15s,background-color .15s,color .15s;cursor:pointer;white-space:nowrap}
.wp-element-button:hover,.wp-block-button__link:hover{filter:brightness(.94)}
.wp-block-button.b-petit>.wp-block-button__link{min-height:40px;padding:0 16px;font-size:14px}
.wp-block-button.b-clair>.wp-block-button__link{background:var(--fond);border-color:var(--fond);color:var(--accent)}
.wp-block-button.b-contour>.wp-block-button__link{background:var(--fond);color:var(--accent)}
.wp-block-button.b-whatsapp>.wp-block-button__link,.bouton-whatsapp>.wp-block-button__link{background:var(--fond);border-color:var(--succes);color:var(--succes)}
.wp-block-button.b-whatsapp>.wp-block-button__link::before,.bouton-whatsapp>.wp-block-button__link::before{content:"";width:18px;height:18px;background:currentColor;-webkit-mask:var(--i-whatsapp) center/contain no-repeat;mask:var(--i-whatsapp) center/contain no-repeat}
.wp-block-button.is-style-outline .wp-block-button__link{background:transparent;color:var(--accent);border-color:var(--accent)}

/* Champs de formulaire (WooCommerce, recherche, CF7, WCFM) */
:where(input[type=text],input[type=email],input[type=tel],input[type=password],input[type=number],
  input[type=search],input[type=url],select,textarea){
  font:500 15px/1.4 var(--police-texte);color:var(--texte);background:var(--fond);border:1px solid var(--trait);
  border-radius:var(--rayon-bouton);padding:12px 14px;min-height:48px;max-width:100%}
:where(input,select,textarea):focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}

/* Lien fléché : un paragraphe qui contient un lien */
.lien-fleche{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-weight:600;font-size:15px;white-space:nowrap}
.lien-fleche a{color:inherit;text-decoration:none}
.lien-fleche::after{content:"";width:16px;height:16px;background:currentColor;
  -webkit-mask:var(--i-fleche) center/contain no-repeat;mask:var(--i-fleche) center/contain no-repeat;transition:transform .2s}
.lien-fleche:hover::after{transform:translateX(3px)}
.lien-fleche.lien-clair{color:var(--sur-accent)}

/* Coches : listes dont chaque élément porte une pastille orange */
:is(.hero-faits,.prestataire-liste,.liste-coches)>li{position:relative;padding-left:30px;list-style:none}
:is(.hero-faits,.prestataire-liste,.liste-coches)>li::before{content:"";position:absolute;left:0;top:.2em;width:20px;height:20px;border-radius:50%;background:var(--accent)}
:is(.hero-faits,.prestataire-liste,.liste-coches)>li::after{content:"";position:absolute;left:5px;top:calc(.2em + 5px);width:10px;height:10px;background:var(--sur-accent);
  -webkit-mask:var(--i-coche) center/contain no-repeat;mask:var(--i-coche) center/contain no-repeat}

/* ==========================================================================
   3 · En-tête et pied de page (parts/) — modifiables dans Apparence → Éditeur
   → Compositions. Menu : le catalogue, les métiers en sous-menu, les artisans,
   les pages vitrine ; « Devenir prestataire » en bouton.
   ========================================================================== */
.entete{position:sticky;top:0;z-index:40;background:var(--fond);border-bottom:1px solid var(--trait)}
.admin-bar .entete{top:32px}
.entete-rangee{display:flex;align-items:center;gap:40px;min-height:var(--entete-h)}
.entete-logo{flex:none}
.entete-logo img{width:172px;height:auto}
.menu{font-size:15px;font-weight:500}
.menu .wp-block-navigation__container{gap:30px;white-space:nowrap}
.menu .wp-block-navigation-item__content{position:relative;padding:26px 0;text-decoration:none}
.menu .wp-block-navigation-item__content:hover{color:var(--accent)}
.menu .current-menu-item>.wp-block-navigation-item__content{color:var(--accent)}
.menu .current-menu-item>.wp-block-navigation-item__content::after{content:"";position:absolute;left:0;right:0;bottom:18px;height:2px;border-radius:2px;background:var(--accent)}
.menu .wp-block-navigation__submenu-icon{width:14px;height:14px;margin-left:4px}
/* sous-menu des métiers : en deux colonnes en ordinateur */
.menu .wp-block-navigation__submenu-container{padding:10px!important;border:1px solid var(--trait)!important;
  border-radius:var(--rayon);background:var(--fond)!important;color:var(--texte)!important;box-shadow:0 12px 32px color-mix(in srgb,var(--texte) 10%,transparent)}
@media (min-width:1025px){.wp-block-navigation.menu .wp-block-navigation-submenu>.wp-block-navigation__submenu-container{
  display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));min-width:480px!important}}
.menu .wp-block-navigation__submenu-container .wp-block-navigation-item__content{padding:9px 14px!important;font-weight:500;border-radius:var(--rayon-bouton)}
.menu .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover{background:var(--surface)}
/* ---------- Menu mobile (panneau de core/navigation) ----------
   PIÈGE (vécu) : sans padding racine, liens collés au bord, croix de 24 px dans
   l'angle et sous la barre d'admin ; panneau blanc sur blanc. Sélecteurs
   qualifiés et !important là où WordPress écrit à spécificité égale. */
.wp-block-navigation.menu .wp-block-navigation__responsive-container-open{width:44px;height:44px;align-items:center;justify-content:center;
  border:1px solid var(--trait);border-radius:var(--rayon-bouton);color:inherit}
.wp-block-navigation.menu .wp-block-navigation__responsive-container-open svg{width:24px;height:24px}
.wp-block-navigation.menu .wp-block-navigation__responsive-container.is-menu-open{
  background-color:var(--fond)!important;color:var(--texte)!important;padding:12px var(--gouttiere) 40px!important}
.admin-bar .wp-block-navigation.menu .wp-block-navigation__responsive-container.is-menu-open{top:46px}
@media (min-width:783px){.admin-bar .wp-block-navigation.menu .wp-block-navigation__responsive-container.is-menu-open{top:32px}}
.wp-block-navigation.menu .is-menu-open .wp-block-navigation__responsive-container-close{top:0;right:0;width:44px;height:44px;
  display:flex;align-items:center;justify-content:center;border:1px solid var(--trait);border-radius:var(--rayon-bouton);color:var(--texte)}
.wp-block-navigation.menu .is-menu-open .wp-block-navigation__responsive-container-close svg{width:24px;height:24px}
.wp-block-navigation.menu .is-menu-open .wp-block-navigation__responsive-container-content{padding-top:56px!important;align-items:stretch!important}
.wp-block-navigation.menu .is-menu-open .wp-block-navigation__container{gap:0!important;width:100%;align-items:stretch!important}
.wp-block-navigation.menu .is-menu-open .wp-block-navigation-item{width:100%;border-bottom:1px solid var(--trait)}
.wp-block-navigation.menu .is-menu-open .wp-block-navigation-item__content{display:flex;align-items:center;width:100%;min-height:52px;padding:12px 0!important;
  font-family:var(--police-titres);font-size:17px;font-weight:600;line-height:1.3}
.wp-block-navigation.menu .is-menu-open .current-menu-item>.wp-block-navigation-item__content::after{display:none}
.wp-block-navigation.menu .is-menu-open .wp-block-navigation__submenu-container{padding:0 0 10px 16px!important;border:0!important;
  box-shadow:none!important;background:transparent!important;display:block!important;min-width:0!important;width:100%!important;max-width:100%!important}
.wp-block-navigation.menu .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item,.wp-block-navigation.menu .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{width:100%!important;min-width:0!important;white-space:normal}
.wp-block-navigation.menu .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item{border:0}
.wp-block-navigation.menu .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{
  min-height:44px;font-family:var(--police-texte);font-size:16px;font-weight:500;color:var(--sourdine);padding:8px 0!important}
.wp-block-navigation.menu .is-menu-open .menu-bouton{border:0;margin-top:24px}
.wp-block-navigation.menu .is-menu-open .menu-bouton>.wp-block-navigation-item__content{justify-content:center;border-radius:var(--rayon-bouton);
  background:var(--accent);color:var(--sur-accent);font-family:var(--police-texte);font-size:16px}
/* Liens réservés au panneau (className « menu-mobile-seul ») */
.wp-block-navigation.menu .wp-block-navigation__responsive-container:not(.is-menu-open) .menu-mobile-seul{display:none}
.entete-actions{display:flex;align-items:center;gap:20px;margin-left:auto}
.entete-compte{font-size:15px;font-weight:500;white-space:nowrap}
.entete-compte a{display:inline-flex;align-items:center;gap:8px}
.entete-compte a::before{content:"";width:20px;height:20px;background:currentColor;-webkit-mask:var(--i-compte) center/contain no-repeat;mask:var(--i-compte) center/contain no-repeat}

.entete-commande{border-bottom:1px solid var(--trait);background:var(--fond)}
.entete-commande-rangee{display:flex;align-items:center;gap:24px;min-height:var(--entete-h)}
.entete-commande-rangee .commande-retour{margin-left:auto;font-size:14px}

/* Engagements, puis pied de page bleu-noir */
.engagements{border-top:1px solid var(--trait);background:var(--fond)}
.engagements-liste{display:grid;grid-template-columns:repeat(4,1fr);margin:0 auto;list-style:none}
.engagements-liste li{position:relative;padding:32px 28px 32px 80px;font-size:14px;line-height:1.5;color:var(--sourdine)}
.engagements-liste li+li{border-left:1px solid var(--trait)}
.engagements-liste li strong{display:block;font-size:16px;font-weight:700;color:var(--texte)}
.engagements-liste li::before{content:"";position:absolute;left:28px;top:50%;width:36px;height:36px;margin-top:-18px;background:var(--accent);
  -webkit-mask:var(--i-cadeau) center/contain no-repeat;mask:var(--i-cadeau) center/contain no-repeat}
.engagements-liste .e-verifie::before{-webkit-mask-image:var(--i-bouclier);mask-image:var(--i-bouclier)}
.engagements-liste .e-contact::before{-webkit-mask-image:var(--i-telephone);mask-image:var(--i-telephone)}
.engagements-liste .e-communes::before{-webkit-mask-image:var(--i-carte);mask-image:var(--i-carte)}

.pied{background:var(--texte);color:color-mix(in srgb,var(--sur-accent) 72%,transparent);font-size:15px}
.pied-grille{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:48px;padding-block:72px 56px}
.pied-logo img{width:190px;height:auto}
.pied-slogan{margin-top:18px;color:var(--sur-accent);font-weight:600}
.pied-texte{margin-top:10px;max-width:300px}
.pied-titre{margin-bottom:18px;color:var(--sur-accent);font-family:var(--police-texte);font-size:15px;font-weight:700;line-height:1.5;letter-spacing:0}
.pied-liens{margin:0;padding:0;list-style:none}
.pied-liens li+li{margin-top:10px}
.pied a:hover{color:var(--accent)}
.pied-bas{display:flex;justify-content:space-between;gap:24px;padding-block:24px;border-top:1px solid color-mix(in srgb,var(--sur-accent) 12%,transparent);font-size:14px}
.pied-bas p{margin:0}

/* ==========================================================================
   4 · Cartes produit — le même composant partout : catalogue, accueil,
   produits associés, ventes croisées, panier vide.
   <ul class="wc-block-product-template grille-produits"> > li.wc-block-product
   ========================================================================== */
.grille-produits.wc-block-product-template{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:40px 24px;list-style:none;margin:0;padding:0}
.grille-produits .wc-block-product{display:flex;flex-direction:column;gap:14px;margin:0;width:auto;min-width:0}
/* PIÈGE : WooCommerce ajoute 12 px sous chaque enfant de la carte
   (:where(.wc-block-product-template .wc-block-product) > :not(:last-child))
   et 12 px sous le résumé : la carte mesurait 18 px de plus que la maquette. */
.grille-produits .wc-block-product>*{margin-block:0}
.grille-produits .wc-block-components-product-summary{margin:0}
.grille-produits .carte-image{margin:0;border-radius:var(--rayon);overflow:hidden;background:var(--surface)}
.grille-produits .carte-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.grille-produits .wc-block-product:hover .carte-image img{transform:scale(1.03)}
.carte-infos{display:flex;flex-direction:column;gap:4px}
.carte-titre{font-size:16px;font-weight:600;line-height:1.3;margin:0}
.carte-titre a{text-decoration:none}
.carte-prix{font-size:15px;color:var(--texte)}
.carte-prix del{color:var(--sourdine);margin-right:6px}
.carte-prix ins{text-decoration:none;color:var(--promo)}
.carte-bouton{margin-top:auto}
.carte-bouton .wp-block-button__link,.carte-bouton .wc-block-components-product-button__button{width:100%;justify-content:center}
.carte-bouton .added_to_cart{display:none}
/* Un bouton de carte réduit à une icône : WooCommerce fixe sa largeur à 3 classes —
   qualifier (.wc-block-product .carte-… .carte-bouton …) et forcer la largeur. */
.wc-block-components-product-sale-badge{background:var(--fond);color:var(--promo);border:0;border-radius:var(--rayon-bouton);
  font-size:12px;font-weight:600;letter-spacing:.02em;padding:4px 10px;text-transform:none}
.wc-block-components-product-image .wc-block-components-product-sale-badge{top:10px;right:10px}
.section-titre{font-size:var(--wp--preset--font-size--titre-2)}

/* ==========================================================================
   5 · Catalogue : archive-product.html (boutique, catégories, étiquettes,
   attributs, marques) et product-search-results.html — patterns/catalogue.php
   ========================================================================== */
.catalogue-entete{padding-block:48px 32px}
.fil-ariane,.woocommerce-breadcrumb{font-size:13px;color:var(--sourdine)}
.fil-ariane a{color:inherit;text-decoration:none}
.fil-ariane a:hover{color:var(--texte);text-decoration:underline}
.catalogue-titre{font-size:var(--wp--preset--font-size--titre-1);margin-top:16px}
.catalogue-intro{margin-top:14px;max-width:60ch;color:var(--sourdine);font-size:var(--wp--preset--font-size--chapeau)}
.catalogue{display:grid;grid-template-columns:240px minmax(0,1fr);gap:48px;align-items:start}
.catalogue .grille-produits.wc-block-product-template{grid-template-columns:repeat(3,minmax(0,1fr))}
.catalogue-filtres{position:sticky;top:calc(var(--entete-h) + 24px)}
.filtres h2{font-size:18px}
.filtres h3{font-family:var(--police-texte);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.filtres .wp-block-woocommerce-product-filter-price,
.filtres .wp-block-woocommerce-product-filter-attribute,
.filtres .wp-block-woocommerce-product-filter-taxonomy,
.filtres .wp-block-woocommerce-product-filter-status{padding-top:24px;margin-top:24px;border-top:1px solid var(--trait)}
.catalogue-barre{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px;color:var(--sourdine);font-size:14px}
.catalogue-barre .woocommerce-ordering select{min-height:40px;padding-block:8px}
.pagination{margin-top:56px;gap:8px}
.pagination .page-numbers{display:inline-grid;place-items:center;min-width:40px;height:40px;border-radius:var(--rayon-bouton);text-decoration:none}
.pagination .page-numbers.current{background:var(--texte);color:var(--fond)}
.aucun-resultat{padding:48px 0;display:grid;gap:20px;justify-items:start}

/* ==========================================================================
   6 · Fiche produit : single-product.html
   Galerie à gauche (format réglé par l'attribut aspectRatio du bloc Image du
   produit de la galerie), colonne d'achat collante à droite. Le sélecteur de
   variations est celui de WooCommerce (pastilles) : on règle sa peau.
   ========================================================================== */
.fiche-haut{padding-block:26px 22px}
.fiche{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(40px,6vw,96px);align-items:start}
.fiche-galerie .wc-block-product-gallery-large-image{border-radius:var(--rayon);overflow:hidden;background:var(--surface)}
.fiche-galerie .wc-block-product-gallery-large-image img{width:100%;height:100%;object-fit:cover}
/* PIÈGE (vécu) : sans largeur posée, la colonne des vignettes prend ~45 % de la
   galerie dès qu'un produit a plusieurs photos (332 px à 1440) et écrase la
   grande image. Colonne fixe en ordinateur, rangée sous l'image en mobile (section 12). */
.fiche-galerie .wc-block-product-gallery-thumbnails{flex:0 0 76px;width:76px!important;max-width:76px;margin-right:16px;align-self:flex-start}
.fiche-galerie .wc-block-product-gallery-thumbnails__scrollable{display:flex;flex-direction:column;gap:10px}
.fiche-galerie .wc-block-product-gallery-thumbnails__thumbnail{width:76px;overflow:hidden;background:var(--surface);border-radius:calc(var(--rayon) * .6)}
.fiche-galerie .wc-block-product-gallery-thumbnails img{width:100%;height:100%;object-fit:cover;border-radius:calc(var(--rayon) * .6)}
.fiche-galerie .wc-block-product-gallery-large-image{flex:1 1 auto;min-width:0}
.fiche-galerie .wc-block-components-product-sale-badge{top:16px;right:16px;margin:0}
.fiche-achat{position:sticky;top:calc(var(--entete-h) + 32px);display:flex;flex-direction:column}
body.admin-bar .fiche-achat{top:calc(var(--entete-h) + 64px)}
.fiche-surtitre{font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--sourdine)}
.fiche-surtitre a{text-decoration:none}
.fiche-titre{margin-top:14px;font-size:var(--wp--preset--font-size--titre-2);line-height:1.06}
.fiche-note:not(:empty){margin-top:12px}
.fiche-prix{margin-top:18px;font-size:20px;font-variant-numeric:tabular-nums}
.fiche-prix del{color:var(--sourdine);font-size:.8em;margin-right:10px}
.fiche-prix ins{text-decoration:none;color:var(--promo)}
.fiche-resume{margin-top:8px;color:var(--sourdine)}
.fiche-resume p{margin:0}

.fiche-ajout{margin-top:30px;padding-top:26px;border-top:1px solid var(--trait)}
/* variations : nom de l'attribut + pastilles (styles en ligne de WooCommerce → !important) */
.fiche-ajout .wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute>.wp-block-group{gap:12px!important;margin:0 0 24px!important}
.fiche-ajout .wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute-name{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.fiche-ajout .wc-block-product-filter-chips__items{gap:8px}
.fiche-ajout .wc-block-product-filter-chips__item{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:44px;padding:0 16px;
  border:1px solid var(--trait);border-radius:var(--rayon-bouton);background:var(--fond);color:var(--texte);font-size:14px;
  transition:border-color .2s,background-color .2s,color .2s}
.fiche-ajout .wc-block-product-filter-chips__item:hover{border-color:var(--texte)}
.fiche-ajout .wc-block-product-filter-chips__item[aria-checked="true"]{background:var(--accent);border-color:var(--accent);color:var(--sur-accent)}
.fiche-ajout .wc-block-product-filter-chips__item:disabled:hover{border-color:var(--trait)}
/* Pastille de couleur devant le nom d'un terme (métal, coloris…) : cibler la
   VALEUR du terme, ex. [value="or-rose"] .wc-block-product-filter-chips__label::before */
.fiche-ajout .wp-block-woocommerce-add-to-cart-with-options-variation-description{margin:0 0 18px!important;font-size:14px;color:var(--sourdine)}
/* PIÈGE : pour une variation en rupture, l'indicateur garde la classe --in-stock
   du parent — ne pas colorer l'état par sa classe sur un produit variable. */
.fiche-ajout .wc-block-components-product-stock-indicator{margin:0 0 16px!important;font-size:13px}
.fiche-ajout .wc-block-components-product-stock-indicator:empty{display:none}
.wc-block-components-product-stock-indicator--out-of-stock{color:var(--alerte)}
/* quantité + bouton sur une ligne ; WooCommerce règle largeur et alignement du bouton à 3 classes : on qualifie */
.fiche-ajout .wp-block-group:has(>.wp-block-woocommerce-product-button){display:flex;flex-wrap:nowrap;align-items:stretch;gap:10px}
.fiche-ajout .wc-block-components-quantity-selector{width:116px;height:52px;margin:0;border:1px solid var(--trait);border-radius:var(--rayon-bouton)}
.fiche-ajout .wc-block-components-quantity-selector::after{display:none}
.fiche-ajout .wp-block-woocommerce-product-button{flex:1;min-width:0;margin:0;align-items:stretch}
/* même bouton sur le site (.single_add_to_cart_button) et dans l'aperçu de
   l'éditeur de site (.wc-block-components-product-button__button, conteneurs en plus) :
   toujours viser les deux, sinon le modèle « Fiche produit » s'affiche avec un petit bouton */
.fiche-ajout .wp-block-woocommerce-product-button .wp-block-button{width:100%}
.fiche-ajout :is(.single_add_to_cart_button,.wc-block-components-product-button__button).wp-block-button__link{display:flex;align-items:center;width:100%;height:52px;justify-content:center}
.fiche-ajout .added_to_cart{display:none}

.fiche-reassurance{display:grid;gap:12px;margin-top:28px;padding:22px 0;border-block:1px solid var(--trait)}
.fiche-meta{margin-top:18px;font-size:12px;color:var(--sourdine)}
.fiche-meta .wp-block-group{flex-wrap:wrap;gap:6px 18px}
.fiche-meta a{text-decoration:none}

/* Détails : titre à gauche, description et caractéristiques à droite
   (plutôt que les onglets de product-details et leur « Avis (0) ») */
.fiche-details{display:grid;grid-template-columns:5fr 6fr;gap:clamp(40px,7vw,120px);align-items:start;margin-top:120px}
.fiche-details-titre{font-size:var(--wp--preset--font-size--titre-2);line-height:1.15}
.fiche-description{font-size:16px;line-height:1.75;color:color-mix(in srgb,var(--texte) 82%,transparent)}
.fiche-description p+p{margin-top:16px}
/* PIÈGE : le bloc Caractéristiques est un figure.wp-block-table — qualifier par
   « table » pour passer devant les bordures du bloc Tableau de WordPress */
.fiche-caracteristiques{margin:36px 0 0}
.fiche-caracteristiques table{width:100%;border-collapse:collapse;font-size:14px}
.fiche-caracteristiques table th,.fiche-caracteristiques table td{padding:14px 0;border:0;border-top:1px solid var(--trait);
  text-align:left;vertical-align:top;font-weight:400}
.fiche-caracteristiques table tr:last-child>*{border-bottom:1px solid var(--trait)}
.fiche-caracteristiques table th{width:40%;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding-top:16px}
.fiche-caracteristiques td p{margin:0}
.fiche-caracteristiques a{text-decoration:none}

/* Vous aimerez aussi : le titre occupe la première colonne d'une grille de 4, trois cartes à droite */
.fiche-associes{margin-top:130px}
.collection-associes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;align-items:start}
/* PIÈGE : le conteneur de messages (vide) de product-collection occupe une cellule de la grille */
.collection-associes>.wc-block-components-notices{grid-column:1/-1}
.collection-associes>.wc-block-components-notices:not(:has(*)){display:none}
.associes-tete{padding-right:12px}
.associes-tete .section-chapo{margin-top:16px;max-width:26ch;color:var(--sourdine)}
.associes-tete .lien-fleche{margin-top:26px}
.collection-associes .grille-produits.wc-block-product-template{grid-column:2/-1;grid-template-columns:repeat(3,minmax(0,1fr))}

.lien-fleche{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:500}
.lien-fleche a{text-decoration:none}
.lien-fleche::after{content:"";width:16px;height:16px;background:currentColor;
  -webkit-mask:var(--i-fleche) center/contain no-repeat;mask:var(--i-fleche) center/contain no-repeat;transition:transform .25s}
.lien-fleche:hover::after{transform:translateX(3px)}

/* ==========================================================================
   7 · Mini-panier, panier, commande, confirmation — le bloc Panier et le bloc
   Commande vivent dans le CONTENU des pages (contenus/panier.html,
   contenus/commande.html) ; les templates ne font que le cadre.
   ========================================================================== */
/* Articles (panier, mini-panier, récapitulatif de commande) — composants partagés */
.wc-block-cart-item__image img,.wc-block-components-order-summary-item__image img{aspect-ratio:var(--ratio-vignette,4/5);object-fit:cover;
  background:var(--surface);border-radius:calc(var(--rayon) * .6)}
.wc-block-components-product-name{font-size:15px;font-weight:600;text-decoration:none;color:var(--texte)}
.wc-block-components-product-details{font-size:13px;color:var(--sourdine)}
.wc-block-components-product-details__name{font-weight:400}
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button{font-family:inherit;color:var(--texte)}
.wc-block-components-quantity-selector:where(:has(input:not([type=hidden]))){border-color:var(--trait);border-radius:var(--rayon-bouton)}
.wc-block-cart-item__remove-link{color:var(--sourdine)!important}
.wc-block-cart-item__remove-link:hover{color:var(--texte)!important}
.wc-block-components-product-badge{border-radius:var(--rayon-bouton);border-color:var(--trait);font-weight:500}
.wc-block-components-sale-badge{color:var(--promo);border-color:currentColor}

/* Mini-panier (tiroir) : parts/mini-cart.html */
.wc-block-mini-cart__drawer .wc-block-components-drawer__content{background:var(--fond);color:var(--texte)}
.wc-block-mini-cart__title{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;font-size:26px}
.wc-block-mini-cart__title .wp-block-woocommerce-mini-cart-title-items-counter-block{font-family:var(--police-texte);font-size:13px;color:var(--sourdine)}
.wc-block-mini-cart__footer{border-top:1px solid var(--trait);box-shadow:none}
.wc-block-mini-cart__footer .wc-block-components-totals-item__label{font-size:15px;font-weight:500}
.wc-block-mini-cart__footer .wc-block-components-totals-item__value{font-size:17px;font-weight:500}
.wc-block-mini-cart__footer .wc-block-components-totals-item__description{font-size:12px;color:var(--sourdine)}
.wc-block-mini-cart__footer-actions .wc-block-components-button{min-height:50px;border-radius:var(--rayon-bouton)}
.wc-block-mini-cart__footer-cart.wc-block-components-button{background:transparent;color:var(--texte);border:1px solid var(--trait)}
.wc-block-mini-cart__footer-cart.wc-block-components-button:hover{border-color:var(--texte);background:transparent;color:var(--texte)}
.wc-block-mini-cart__empty-cart-wrapper{padding:48px 24px;text-align:center}
.wc-block-mini-cart__empty-cart-wrapper p{font-family:var(--police-titres);font-size:24px;margin-bottom:24px}

/* Panier */
.page-panier .wrap,.page-commande .wrap{padding-block:48px 0}
.page-titre{font-size:var(--wp--preset--font-size--titre-2);line-height:1.06;margin-bottom:36px}
/* récapitulatif sur la surface, avec les promesses sous le bouton */
.wc-block-cart .wc-block-cart__sidebar{padding:30px 30px 26px;background:var(--surface);border-radius:var(--rayon)}
.wc-block-cart .wc-block-cart__sidebar .wc-block-components-totals-wrapper,
.wc-block-cart .wc-block-cart__sidebar .wc-block-components-panel{border-color:color-mix(in srgb,var(--texte) 10%,transparent)}
.wc-block-cart .wc-block-cart__totals-title,.wc-block-components-checkout-order-summary__title-text{
  font-family:var(--police-titres);text-transform:none;font-size:20px;font-weight:400}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label{font-size:18px}
.wc-block-cart .wc-block-cart__submit-button{min-height:54px}
.wp-block-woocommerce-cart-totals-block .promesse{margin:0;padding-block:6px}
.wp-block-woocommerce-cart-totals-block .promesse-livraison{margin-top:22px;padding-top:22px;border-top:1px solid color-mix(in srgb,var(--texte) 10%,transparent)}
.wc-block-cart-items__header{font-size:11px;letter-spacing:.12em}
.wc-block-cart .wc-block-cart-items td{border-color:var(--trait)}
/* PIÈGE : panier étroit — WooCommerce fige la colonne produit à 132 px et le
   total (avec son badge « Économisez… ») déborde de 25 px à 390 px */
.wc-block-cart:is(.is-mobile,.is-small,.is-medium) table.wc-block-cart-items .wc-block-cart-items__row{grid-template-columns:80px minmax(0,1fr) auto}
.wc-block-cart:is(.is-mobile,.is-small,.is-medium) table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__product{grid-column:2/3}
.wc-block-cart:is(.is-mobile,.is-small,.is-medium) table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__total{grid-column:3/4}
.wc-block-cart-item__total .wc-block-components-product-badge{white-space:normal;text-align:right;max-width:110px}
/* panier vide : composé en blocs natifs (contenus/panier.html), sans l'icône de WooCommerce */
.panier-vide{display:flex;flex-direction:column;align-items:center;padding:48px 0 16px;text-align:center}
.panier-vide .panier-vide-titre{font-family:var(--police-titres);font-size:var(--wp--preset--font-size--titre-3);margin:0}
.panier-vide .panier-vide-titre::before{content:none}
.panier-vide-texte{margin-top:14px;max-width:46ch;color:var(--sourdine)}
.panier-vide-actions{margin-top:28px!important}
.panier-vide-suite{margin:110px 0 44px;text-align:center}
.wc-block-cart__empty-cart__title.with-empty-cart-icon::before{display:none}

/* Commande */
.wc-block-components-checkout-step__title{font-family:var(--police-titres);font-size:22px;font-weight:400}
.wc-block-checkout .wc-block-components-checkout-step{margin-bottom:40px}
/* Champs du bloc Commande : les libellés flottants sont ceux de WooCommerce,
   on règle leur peau, pas leur mécanique (sélecteurs à 3 classes → !important). */
.wc-block-components-text-input input[type],.wc-block-components-country-input .wc-blocks-components-select__select,
.wc-block-components-state-input .wc-blocks-components-select__select,.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-textarea{border-color:var(--trait)!important;border-radius:var(--rayon)!important;background:var(--fond)!important}
.wc-block-components-text-input.is-active input[type],.wc-block-components-text-input input[type]:focus{border-color:var(--texte)!important;box-shadow:none!important}
.wc-block-components-radio-control--highlight-checked,.wc-block-components-radio-control-accordion-option{border-radius:var(--rayon)}
.wc-block-components-radio-control--highlight-checked::after{border-color:var(--trait)}
.wc-block-components-radio-control__input:checked{border-color:var(--accent)}
.wc-block-components-radio-control__input:checked::before{background:var(--accent)}
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}
.wc-block-components-checkbox .wc-block-components-checkbox__mark{fill:var(--sur-accent)}
.wc-block-cart__submit-button,.wc-block-components-checkout-place-order-button{min-height:54px;border-radius:var(--rayon-bouton)!important}
.wc-block-components-button:not(.is-link){font-family:var(--police-texte)}
/* le récapitulatif sur la surface, comme celui du panier */
.wc-block-checkout .wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__content,
.wc-block-checkout .wp-block-woocommerce-checkout-order-summary-block{background:var(--surface);border:0;border-radius:var(--rayon)}
.wc-block-checkout .wp-block-woocommerce-checkout-order-summary-block{padding:6px 22px 8px}
.wc-block-checkout .wc-block-components-checkout-order-summary__title{border:0}
.wc-block-checkout__sidebar .wc-block-components-totals-wrapper,.wc-block-checkout__sidebar .wc-block-components-panel{border-color:color-mix(in srgb,var(--texte) 10%,transparent)}
/* PIÈGE : la pastille de quantité est posée à 2 classes par WooCommerce (blanc sur blanc sinon) */
.wc-block-components-order-summary .wc-block-components-order-summary-item__quantity{background:var(--accent);color:var(--sur-accent);border:0;box-shadow:0 0 0 2px var(--surface)}
.wc-block-checkout__terms{font-size:13px;color:var(--sourdine)}
/* erreurs de validation : la couleur « alerte » de la palette, pas le rouge de WooCommerce */
.wc-block-components-validation-error{color:var(--alerte)}
.wc-block-components-validation-error svg{fill:currentColor}
.wc-block-components-text-input.has-error input[type],.wc-block-components-select-input.has-error select,
.wc-blocks-components-select.has-error .wc-blocks-components-select__select{border-color:var(--alerte)!important}
.wc-block-components-text-input.has-error label,.wc-block-components-checkbox.has-error{color:var(--alerte)}

/* Confirmation de commande (order-confirmation.html) : un reçu — une colonne
   centrée, le résumé sur la surface, des filets plutôt que des cadres */
.page-confirmation .wrap{max-width:calc(880px + 2 * var(--gouttiere));padding-block:72px 0;display:flex;flex-direction:column;gap:44px}
.wc-block-order-confirmation-status{text-align:center;font-family:var(--police-titres);font-size:inherit!important}
.wc-block-order-confirmation-status h1{font-size:var(--wp--preset--font-size--titre-1);line-height:1.06;margin:0}
.wc-block-order-confirmation-status p{margin-top:14px;font-family:var(--police-texte);font-size:16px;color:var(--sourdine)}
.wc-block-order-confirmation-summary{padding:28px 32px;background:var(--surface);border-radius:var(--rayon)}
.wc-block-order-confirmation-summary .wc-block-order-confirmation-summary-list{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px 36px;margin:0;padding:0;list-style:none}
.wc-block-order-confirmation-summary-list-item{margin:0;padding:0;border:0}
.wc-block-order-confirmation-summary .wc-block-order-confirmation-summary-list-item__key{display:block;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--sourdine)}
.wc-block-order-confirmation-summary .wc-block-order-confirmation-summary-list-item__value{display:block;margin-top:6px;font-size:15px;overflow-wrap:anywhere}
.page-confirmation .wp-block-heading{font-size:24px;margin-bottom:18px}
.wc-block-order-confirmation-totals .wc-block-order-confirmation-totals__table{border:0;border-collapse:collapse;width:100%;font-size:15px}
.wc-block-order-confirmation-totals .wc-block-order-confirmation-totals__table :is(th,td){padding:16px 0;border:0;border-top:1px solid var(--trait);font-weight:400}
.wc-block-order-confirmation-totals .wc-block-order-confirmation-totals__table thead th{border-top:0;padding-top:0;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--sourdine)}
.wc-block-order-confirmation-totals .wc-block-order-confirmation-totals__table tfoot tr:last-child :is(th,td){font-size:18px;font-weight:500;border-top-color:var(--texte)}
.wc-block-order-confirmation-totals .wc-block-order-confirmation-totals__table a{text-decoration:none}
.wc-block-order-confirmation-totals .product-quantity{font-weight:400;color:var(--sourdine)}
.wc-block-order-confirmation-address-wrapper{gap:28px}
.wc-block-order-confirmation-address-wrapper .wp-block-heading{font-size:20px;margin-bottom:12px}
.wc-block-order-confirmation-shipping-address,.wc-block-order-confirmation-billing-address{padding:20px 0 0;border:0!important;border-top:1px solid var(--trait)!important;border-radius:0;line-height:1.7}
.wc-block-order-confirmation-additional-information:not(:empty){padding:28px 32px;border:1px solid var(--trait);border-radius:var(--rayon)}

/* ==========================================================================
   8 · Mon compte — balisage WooCommerce CLASSIQUE (shortcode), il n'existe
   pas de version en blocs. Page « Mon compte » : contenus/mon-compte.html.
   PIÈGE : la feuille « blocktheme » de WooCommerce espace les liens et borne le
   bloc à 1000 px, à 3 classes — d'où les sélecteurs qualifiés ci-dessous.
   ========================================================================== */
.page-compte{padding-block:48px 0}
.page-compte>.wp-block-heading{font-size:var(--wp--preset--font-size--titre-2);margin-bottom:32px}
/* La feuille classique de WooCommerce pose des clearfix (::before/::after en
   display:table), des flottants et des largeurs en % : dans une grille, les
   pseudo-éléments deviennent des CELLULES et décalent tout. On les neutralise. */
.woocommerce-account .woocommerce::before,.woocommerce-account .woocommerce::after,
.woocommerce-account .woocommerce .u-columns::before,.woocommerce-account .woocommerce .u-columns::after{content:none;display:none}
.woocommerce-MyAccount-navigation,.woocommerce-MyAccount-content,.u-column1,.u-column2{float:none!important;width:auto!important}
.woocommerce-account main .woocommerce{display:grid;grid-template-columns:220px minmax(0,1fr);gap:56px;align-items:start;max-width:none}
.woocommerce-account .woocommerce>.woocommerce-notices-wrapper,
.woocommerce-account .woocommerce>.u-columns,
.woocommerce-account .woocommerce>h2,
.woocommerce-account .woocommerce>.woocommerce-form-login{grid-column:1/-1}
.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.woocommerce-account .woocommerce-MyAccount-navigation li{margin:0;padding:0}
.woocommerce-account .woocommerce-MyAccount-navigation li a{display:block;padding:11px 16px;border-radius:var(--rayon);text-decoration:none;color:var(--sourdine)}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{background:var(--surface);color:var(--texte);text-decoration:none}
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout{margin-top:14px;padding-top:14px;border-top:1px solid var(--trait)}
.woocommerce-MyAccount-content{line-height:1.7}
/* :first-of-type — le premier enfant est le conteneur de messages */
.woocommerce-MyAccount-content>p:first-of-type{margin-top:0;font-family:var(--police-titres);font-size:24px;line-height:1.3}
.woocommerce-MyAccount-content>p:first-of-type strong{font-weight:400}
.woocommerce-MyAccount-content>p:first-of-type a{font-family:var(--police-texte);font-size:14px;color:var(--sourdine)}
.woocommerce-MyAccount-content>p:nth-of-type(2){margin-top:14px;max-width:62ch;color:var(--sourdine)}
.woocommerce-MyAccount-content h2,.woocommerce-MyAccount-content h3{font-size:22px;margin-bottom:18px}
/* connexion / inscription : deux cartes sur la surface */
.u-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:stretch}
.woocommerce-account .u-columns :is(.u-column1,.u-column2){padding:44px;background:var(--surface);border-radius:var(--rayon)}
.u-columns h2{font-size:28px;margin-bottom:26px}
.woocommerce-account .woocommerce :is(form.login,form.register){margin:0;padding:0;border:0;border-radius:0}
.woocommerce form .form-row{display:flex;flex-direction:column;gap:8px;margin:0 0 18px;padding:0}
.woocommerce form .form-row label{font-size:13px;font-weight:500;line-height:1.4}
.woocommerce form .form-row .required{color:var(--sourdine);text-decoration:none}
.woocommerce form .form-row :is(.input-text,select){width:100%;height:48px;background:var(--fond)}
.woocommerce form .password-input{display:block;position:relative}
.woocommerce form.register p:not(.form-row){font-size:13px;color:var(--sourdine);margin:0 0 14px}
.woocommerce .lost_password{margin:16px 0 0;font-size:13px}
.woocommerce .lost_password a{color:var(--sourdine)}
.woocommerce-form-login__rememberme{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:8px!important;font-weight:400!important;margin:4px 0 18px}
.woocommerce-form-login__rememberme input{accent-color:var(--accent)}
.woocommerce .woocommerce-Button,.woocommerce button.button,.woocommerce a.button{
  display:inline-flex;align-items:center;justify-content:center;border:0;cursor:pointer;text-decoration:none;
  background:var(--accent);color:var(--sur-accent);border-radius:var(--rayon-bouton);padding:14px 26px;
  font:600 15px/1.2 var(--police-texte)}
.woocommerce .woocommerce-Button:hover,.woocommerce button.button:hover,.woocommerce a.button:hover{background:var(--texte);color:var(--fond)}
.woocommerce-account .woocommerce :is(.woocommerce-form-login__submit,.woocommerce-form-register__submit){width:100%;min-height:54px}
/* tableaux (commandes, détail) : des filets, pas de cadre */
.woocommerce table.shop_table{width:100%;margin:0 0 28px;border:0;border-collapse:collapse;border-radius:0;font-size:15px}
.woocommerce table.shop_table :is(th,td){padding:16px 14px 16px 0;border:0;border-top:1px solid var(--trait);text-align:left;vertical-align:middle;font-weight:400}
.woocommerce table.shop_table thead th{border-top:0;padding-top:0;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--sourdine)}
.woocommerce table.shop_table tfoot tr:last-child :is(th,td){font-size:17px;font-weight:500}
.woocommerce table.shop_table a{text-decoration:none}
.woocommerce table.shop_table .woocommerce-button.button{padding:10px 18px;font-size:13px;min-height:0}
.woocommerce-Address{padding:24px;border:1px solid var(--trait);border-radius:var(--rayon)}
.woocommerce-privacy-policy-text{font-size:13px;color:var(--sourdine)}

/* ==========================================================================
   9 · Messages : blocs (bandeaux) et balisage classique — la surface et la
   palette, pas le bleu ni le vert de WooCommerce (qualifiés par le type pour
   passer devant les siens)
   ========================================================================== */
.wc-block-components-notice-banner{border-radius:var(--rayon);font-size:14px;line-height:1.55}
.wc-block-components-notice-banner:is(.is-info,.is-success,.is-warning,.is-error){background-color:var(--surface);border:1px solid var(--trait);color:var(--texte)}
.wc-block-components-notice-banner:is(.is-info,.is-success,.is-warning)>svg{background-color:var(--texte);fill:var(--fond)}
.wc-block-components-notice-banner.is-error{border-color:color-mix(in srgb,var(--alerte) 45%,var(--trait))}
.wc-block-components-notice-banner.is-error>svg{background-color:var(--alerte);fill:var(--fond)}
.wc-block-components-notice-banner a,.wc-block-components-notice-banner .wc-forward{color:var(--texte);font-weight:500}
.woocommerce-message,.woocommerce-info,.woocommerce-error{list-style:none;margin:0 0 24px;padding:16px 20px;
  border-radius:var(--rayon);background:var(--surface);border-left:3px solid var(--texte)}
.woocommerce-error{border-left-color:var(--alerte)}

/* ==========================================================================
   10 · Formulaire de contact (Contact Form 7) — le gabarit du formulaire porte
   les classes de la maquette (contenus/formulaire-contact.txt). functions.php
   coupe l'ajout de <p>/<br> de CF7 (wpcf7_autop_or_not).
   ========================================================================== */
.formulaire .wpcf7,.formulaire .wpcf7-form{display:grid;gap:18px}
.formulaire .wpcf7-form-control-wrap{display:block}
/* en bloc : sinon le champ garde l'espace sous la ligne de base (+5 px sous le message) */
.formulaire .wpcf7-form-control-wrap :is(input,select,textarea){display:block;width:100%}
.formulaire .wpcf7-spinner{display:none}
.champ{display:grid;gap:8px}
.champ span:first-child{font-size:13px;font-weight:500}
.champ-rangee{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.consentement .wpcf7-list-item{margin:0}
.consentement label{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--sourdine)}
.consentement input{accent-color:var(--accent);margin-top:2px}
/* Le bouton d'envoi est un <input> (pas de pseudo-éléments) : un décor de la
   maquette (carré, flèche) se pose sur son enveloppe .envoi */
.envoi{position:relative;justify-self:start;margin-top:6px}
.envoi input[type=submit]{min-height:48px;padding:0 26px;border:0;border-radius:var(--rayon-bouton);background:var(--accent);color:var(--sur-accent);
  font:500 15px/1 var(--police-texte);cursor:pointer}
/* Contact Form 7 désactive l'envoi tant que la case de consentement n'est pas cochée */
.envoi:has(input:disabled){opacity:.45}
.envoi input:disabled{cursor:not-allowed}
.wpcf7-not-valid-tip{margin-top:6px;color:var(--alerte);font-size:13px}
.formulaire .wpcf7-not-valid{border-color:var(--alerte)!important}
.wpcf7 form .wpcf7-response-output{margin:0;padding:14px 16px;border:1px solid var(--trait);border-radius:var(--rayon);background:var(--fond);font-size:14px}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.failed .wpcf7-response-output{border-color:var(--alerte)}
.wpcf7 form.sent .wpcf7-response-output{border-color:var(--texte)}

/* ==========================================================================

/* ==========================================================================
   11 · Composants de la maquette — classes posées sur les blocs (className)
   ========================================================================== */
.section{padding-block:88px}
.titre-section,.entete-section h2{font-size:32px;font-weight:800}
.entete-section{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:36px}
.entete-section p:not(.lien-fleche){margin-top:8px;color:var(--sourdine)}
.surtitre{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.surtitre-lieu::before,.surtitre-cadeau::before{content:"";width:16px;height:16px;background:currentColor;-webkit-mask:var(--i-lieu) center/contain no-repeat;mask:var(--i-lieu) center/contain no-repeat}
.surtitre-cadeau::before{-webkit-mask-image:var(--i-cadeau);mask-image:var(--i-cadeau)}

/* ---------- Héros ---------- */
.hero{position:relative;overflow:hidden;background:var(--texte);color:var(--sur-accent)}
.hero-photo{position:absolute;inset:0 0 0 auto;width:58%;margin:0;background:var(--texte)}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 30%}
.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--texte) 0%,var(--texte) 3%,var(--voile) 22%,color-mix(in srgb,var(--texte) 25%,transparent) 70%,color-mix(in srgb,var(--texte) 10%,transparent) 100%)}
.hero-contenu{position:relative;padding-block:88px 96px}
.hero-contenu>*{max-width:640px}
.hero-titre{margin-top:18px;font-size:48px;font-weight:800;line-height:1.12;color:var(--sur-accent)}
.hero-titre strong{color:var(--accent);font-weight:800}
.hero-texte{margin-top:20px;max-width:540px;font-size:17px;color:color-mix(in srgb,var(--sur-accent) 82%,transparent)}
/* recherche : core/search, variation « recherche de produits » */
.recherche{margin-top:32px}
.recherche .wp-block-search__inside-wrapper{gap:8px;padding:8px!important;border:0!important;background:var(--fond);border-radius:var(--rayon);box-shadow:0 10px 30px color-mix(in srgb,var(--texte) 30%,transparent)}
.recherche .wp-block-search__input{flex:1;min-width:0;height:48px;min-height:48px;padding:0 12px 0 44px;border:0!important;outline:0;background:var(--fond) left 12px center/22px no-repeat;
  font:500 16px var(--police-texte);color:var(--texte)}
.recherche .wp-block-search__inside-wrapper{position:relative}
.recherche .wp-block-search__inside-wrapper::before{content:"";position:absolute;left:22px;top:50%;width:22px;height:22px;margin-top:-11px;background:var(--sourdine);
  -webkit-mask:var(--i-recherche) center/contain no-repeat;mask:var(--i-recherche) center/contain no-repeat;pointer-events:none}
.recherche .wp-block-search__input::placeholder{color:var(--sourdine)}
.recherche .wp-block-search__button{margin:0;min-height:48px;padding:0 22px;border-radius:var(--rayon-bouton);background:var(--accent);color:var(--sur-accent);font:600 15px/1 var(--police-texte)}
.raccourcis{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:18px;font-size:14px;color:color-mix(in srgb,var(--sur-accent) 70%,transparent)}
.raccourcis a{padding:6px 12px;border:1px solid color-mix(in srgb,var(--sur-accent) 25%,transparent);border-radius:999px;color:var(--sur-accent);font-weight:500}
.raccourcis a:hover{border-color:var(--accent);color:var(--accent)}
.hero-faits{display:flex;flex-wrap:wrap;gap:24px;margin:36px 0 0;padding:0;font-size:15px;font-weight:600}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:24px;margin-top:32px}
.hero-page .hero-contenu{padding-block:80px 88px}

/* ---------- Métiers ---------- */
.grille-metiers{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.metier{position:relative;display:grid;grid-template-columns:52px 1fr;grid-template-rows:auto auto;column-gap:14px;align-content:center;align-items:center;
  padding:18px;border:1px solid var(--trait);border-radius:var(--rayon);background:var(--fond);transition:border-color .15s,box-shadow .15s}
.metier:hover{border-color:var(--accent);box-shadow:var(--ombre)}
.metier::before{content:"";grid-row:1/3;width:52px;height:52px;border-radius:10px;background:var(--accent-clair)}
.metier::after{content:"";position:absolute;left:31px;top:50%;width:26px;height:26px;margin-top:-13px;background:var(--accent);
  -webkit-mask:var(--m-autres) center/contain no-repeat;mask:var(--m-autres) center/contain no-repeat;pointer-events:none}
.metier-nom{grid-column:2;align-self:end;font-size:15px;font-weight:700;line-height:1.3;letter-spacing:0}
.metier-nom a::after{content:"";position:absolute;inset:0;border-radius:var(--rayon)}
.metier-detail{grid-column:2;align-self:start;font-size:13px;color:var(--sourdine)}
.m-plomberie::after{-webkit-mask-image:var(--m-plomberie);mask-image:var(--m-plomberie)}
.m-electricite::after{-webkit-mask-image:var(--m-electricite);mask-image:var(--m-electricite)}
.m-menuiserie::after{-webkit-mask-image:var(--m-menuiserie);mask-image:var(--m-menuiserie)}
.m-maconnerie::after{-webkit-mask-image:var(--m-maconnerie);mask-image:var(--m-maconnerie)}
.m-peinture::after{-webkit-mask-image:var(--m-peinture);mask-image:var(--m-peinture)}
.m-couture::after{-webkit-mask-image:var(--m-couture);mask-image:var(--m-couture)}
.m-coiffure-beaute::after{-webkit-mask-image:var(--m-coiffure);mask-image:var(--m-coiffure)}
.m-climatisation-refrigeration::after{-webkit-mask-image:var(--m-climatisation);mask-image:var(--m-climatisation)}
.m-serrurerie::after{-webkit-mask-image:var(--m-serrurerie);mask-image:var(--m-serrurerie)}
.m-mecanique-automobile::after{-webkit-mask-image:var(--m-mecanique);mask-image:var(--m-mecanique)}
.m-reparation-maintenance::after{-webkit-mask-image:var(--m-reparation);mask-image:var(--m-reparation)}
.m-jardinage::after{-webkit-mask-image:var(--m-jardinage);mask-image:var(--m-jardinage)}
.m-nettoyage-entretien::after{-webkit-mask-image:var(--m-nettoyage);mask-image:var(--m-nettoyage)}
.m-renovation-installations::after{-webkit-mask-image:var(--m-renovation);mask-image:var(--m-renovation)}

/* ---------- Communes ---------- */
.communes{background:var(--accent-clair)}
.communes-grille{display:grid;grid-template-columns:380px 1fr;gap:64px;align-items:center}
.communes-texte p{margin-top:14px}
.liste-communes{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:0;padding:0;list-style:none}
.liste-communes a{display:flex;align-items:center;gap:8px;padding:16px 14px;background:var(--fond);border-radius:var(--rayon-bouton);font-weight:600;font-size:15px;box-shadow:var(--ombre)}
.liste-communes a::before{content:"";flex:none;width:18px;height:18px;background:var(--accent);-webkit-mask:var(--i-lieu) center/contain no-repeat;mask:var(--i-lieu) center/contain no-repeat}

/* ---------- Carte service : le même composant partout (accueil, catalogue,
   métier, commune, recherche, services associés, page d'un artisan) ---------- */
.grille-produits.wc-block-product-template{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;list-style:none;margin:0;padding:0}
.catalogue .grille-produits.wc-block-product-template{grid-template-columns:repeat(3,minmax(0,1fr))}
.grille-produits .wc-block-product{position:relative;display:flex;flex-direction:column;margin:0;width:auto;min-width:0;
  border:1px solid var(--trait);border-radius:var(--rayon);overflow:hidden;background:var(--fond);transition:box-shadow .15s,border-color .15s}
.grille-produits .wc-block-product:hover{box-shadow:var(--ombre)}
.grille-produits .wc-block-product>*{margin-block:0!important}
.grille-produits .carte-image{margin:0!important;aspect-ratio:4/3;background:var(--surface);border-radius:0;overflow:hidden}
.grille-produits .carte-image a,.grille-produits .carte-image img{display:block;width:100%;height:100%;object-fit:cover}
.grille-produits .wc-block-product:hover .carte-image img{transform:none}
.carte-infos{display:flex;flex-direction:column;flex:1;gap:10px;padding:18px}
.carte-metier{align-self:flex-start;font-size:12px;font-weight:600;color:var(--sourdine)}
.carte-metier a{display:inline-block;padding:4px 10px;border-radius:6px;background:var(--surface);position:relative;z-index:1}
.carte-metier .wp-block-post-terms__separator{display:none}
.carte-metier a+a{margin-left:4px}
.carte-titre{font-size:17px;font-weight:700;line-height:1.35;letter-spacing:0}
.carte-titre a::after{content:"";position:absolute;inset:0}
.carte-prestataire{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:500}
.carte-communes{position:relative;padding-left:22px;font-size:14px;color:var(--sourdine)}
.carte-communes::before{content:"";position:absolute;left:0;top:3px;width:16px;height:16px;background:var(--accent);-webkit-mask:var(--i-lieu) center/contain no-repeat;mask:var(--i-lieu) center/contain no-repeat}
.carte-communes a{color:inherit;pointer-events:none}
.carte-prix{margin-top:auto!important;padding-top:12px;border-top:1px solid var(--trait);font-size:14px;color:var(--sourdine);text-align:left!important}
.carte-prix .wc-block-components-product-price{font-size:14px}
.carte-prix .woocommerce-Price-amount{color:var(--texte);font-size:18px;font-weight:800}
.prix-a-partir{margin-right:4px}
.carte-prix del{color:var(--sourdine);margin-right:6px}
.carte-prix ins{text-decoration:none;color:var(--promo)}
/* badge Vérifié (posé par functions.php sur le nom de l'artisan) */
.badge-verifie{display:inline-flex;align-items:center;gap:4px;color:var(--succes);font-size:13px;font-weight:600;white-space:nowrap}
.badge-verifie::before{content:"";width:16px;height:16px;background:currentColor;-webkit-mask:var(--i-verifie) center/contain no-repeat;mask:var(--i-verifie) center/contain no-repeat}

/* ---------- Artisans (liste WCFM habillée) : voir la fin de la section ---------- */
.artisans{background:var(--surface)}

/* ---------- Comment ça marche (étapes) ---------- */
.etapes-grille{display:grid;grid-template-columns:340px 1fr;gap:64px}
.etapes-intro{margin-top:14px;color:var(--sourdine)}
.etapes{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:0;padding:0;list-style:none;counter-reset:etape}
.etape{position:relative;padding-top:28px;border-top:3px solid var(--trait);font-size:15px;color:var(--sourdine)}
.etape::before{counter-increment:etape;content:"0" counter(etape);position:absolute;top:-3px;left:0;width:48px;border-top:3px solid var(--accent);padding-top:12px;
  font:800 14px var(--police-titres);color:var(--accent)}
.etape strong{position:relative;display:block;margin:16px 0 8px;padding-top:76px;font-family:var(--police-titres);font-size:19px;font-weight:700;color:var(--texte);line-height:1.3}
.etape strong::before{content:"";position:absolute;top:0;left:0;width:56px;height:56px;border-radius:12px;background:var(--texte)}
.etape strong::after{content:"";position:absolute;top:15px;left:15px;width:26px;height:26px;background:var(--accent);
  -webkit-mask:var(--i-recherche) center/contain no-repeat;mask:var(--i-recherche) center/contain no-repeat}
.e-profil strong::after{-webkit-mask-image:var(--i-profil);mask-image:var(--i-profil)}
.e-telephone strong::after{-webkit-mask-image:var(--i-telephone);mask-image:var(--i-telephone)}
.e-bouclier strong::after{-webkit-mask-image:var(--i-bouclier);mask-image:var(--i-bouclier)}
.e-reparation strong::after{-webkit-mask-image:var(--m-reparation);mask-image:var(--m-reparation)}
.e-courriel strong::after{-webkit-mask-image:var(--i-courriel);mask-image:var(--i-courriel)}
.e-cadeau strong::after{-webkit-mask-image:var(--i-cadeau);mask-image:var(--i-cadeau)}
.etape-active strong::before{background:var(--accent)}
.etape-active strong::after{background:var(--sur-accent)}

/* ---------- Bandeau « Devenir prestataire » ---------- */
.prestataire{position:relative;margin-top:64px;background:var(--accent);color:var(--sur-accent)}
.prestataire-grille{display:grid;grid-template-columns:1fr 420px;gap:64px;align-items:end}
.prestataire-texte{padding-block:80px}
.prestataire .surtitre{color:var(--texte)}
.prestataire h2{margin-top:14px;font-size:40px;font-weight:800;color:var(--sur-accent)}
.prestataire-liste{display:grid;grid-template-columns:1fr 1fr;gap:14px 32px;margin:28px 0 0;padding:0;font-weight:500}
.prestataire-liste>li::before{background:var(--fond)}
.prestataire-liste>li::after{background:var(--accent)}
.prestataire-actions{display:flex;flex-wrap:wrap;align-items:center;gap:24px;margin-top:36px}
.prestataire-photo{margin:-64px 0 0!important;align-self:stretch;border-radius:var(--rayon) var(--rayon) 0 0;overflow:hidden}
.prestataire-photo img{width:100%;height:100%;object-fit:cover}
.prestataire-compact{margin-top:0}
.prestataire-ligne{display:flex;align-items:center;justify-content:space-between;gap:32px;padding-block:56px}
.prestataire-ligne h2{margin:0;font-size:30px}

/* ---------- FAQ (core/details) ---------- */
.faq-grille{display:grid;grid-template-columns:380px 1fr;gap:64px}
.faq-intro{margin-top:14px;color:var(--sourdine)}
.faq-grille .lien-fleche{margin-top:20px}
.faq-liste .wp-block-details{margin:0;border-bottom:1px solid var(--trait)}
.faq-liste .wp-block-details:first-child{border-top:1px solid var(--trait)}
.faq-liste summary{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 0;font-weight:700;font-size:17px;cursor:pointer;list-style:none}
.faq-liste summary::-webkit-details-marker{display:none}
.faq-liste summary::after{content:"+";display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:50%;background:var(--surface);color:var(--accent);font-size:22px;font-weight:500}
.faq-liste details[open] summary::after{content:"−";background:var(--accent);color:var(--sur-accent)}
.faq-liste .wp-block-details>p{padding:0 48px 24px 0;color:var(--sourdine)}

/* ---------- Pages vitrine ---------- */
.page-tete{background:var(--surface);padding-block:56px 64px;border-bottom:1px solid var(--trait)}
.fil{font-size:14px;color:var(--sourdine)}
.fil a:hover{color:var(--accent)}
.page-titre-tete{margin-top:14px;max-width:820px;font-size:44px;font-weight:800}
.page-chapeau{margin-top:18px;max-width:760px;font-size:18px;color:var(--sourdine)}

/* Contact */
.contact-grille{display:grid;grid-template-columns:1fr 380px;gap:32px;align-items:start}
.formulaire-carte,.coordonnees{padding:36px;border:1px solid var(--trait);border-radius:var(--rayon);background:var(--fond)}
.coordonnees{background:var(--surface);border-color:var(--surface)}
.titre-carte{margin-bottom:24px;font-size:22px;font-weight:800}
.coordonnee{position:relative;display:grid;gap:2px;padding:16px 0 16px 58px;min-height:76px;border-bottom:1px solid var(--trait)}
.coordonnee::before{content:"";position:absolute;left:0;top:16px;width:44px;height:44px;border-radius:10px;background:var(--fond)}
.coordonnee::after{content:"";position:absolute;left:12px;top:28px;width:20px;height:20px;background:var(--accent);-webkit-mask:var(--i-telephone) center/contain no-repeat;mask:var(--i-telephone) center/contain no-repeat}
.c-lieu::after{-webkit-mask-image:var(--i-lieu);mask-image:var(--i-lieu)}
.c-site::after{-webkit-mask-image:var(--i-site);mask-image:var(--i-site)}
.coordonnee-label{font-size:13px;font-weight:600;color:var(--sourdine)}
.coordonnee-valeur{font-size:15px;font-weight:700}
.coordonnees .wp-block-buttons{margin-top:24px}
.coordonnees .wp-block-button,.coordonnees .wp-block-button__link{width:100%}
.profils{padding-top:0}
.profils-grille{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.profil{padding:44px;border-radius:var(--rayon)}
.profil h2{margin-top:12px;font-size:26px;font-weight:800;color:inherit}
.profil>p:not(.surtitre){margin-top:14px}
.profil .wp-block-buttons{margin-top:28px}
.profil-artisan{background:var(--accent);color:var(--sur-accent)}
.profil-artisan .surtitre{color:var(--texte)}
.profil-particulier{background:var(--texte);color:var(--sur-accent)}
.profil-particulier>p:not(.surtitre){color:color-mix(in srgb,var(--sur-accent) 78%,transparent)}
/* Formulaire de contact : Contact Form 7, gabarit aux classes de la maquette */
.formulaire .wpcf7-form{display:grid;gap:18px}
.formulaire .wpcf7-form-control-wrap{display:block}
.formulaire .wpcf7-form-control-wrap :is(input,select,textarea){display:block;width:100%}
.formulaire .wpcf7-spinner{display:none}
.champs-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.champ{display:grid;gap:8px;font-size:14px;font-weight:600}
.consentement .wpcf7-list-item{margin:0}
.consentement label{display:flex;gap:10px;align-items:flex-start;font-size:14px;font-weight:400;color:var(--sourdine)}
.consentement input{width:18px;height:18px;margin-top:3px;flex:none;accent-color:var(--accent)}
.consentement a{color:var(--accent);text-decoration:underline}
.envoi{justify-self:start}
.envoi input[type=submit]{min-height:48px;padding:0 22px;border:1.5px solid var(--accent);border-radius:var(--rayon-bouton);background:var(--accent);color:var(--sur-accent);font:600 15px/1 var(--police-texte);cursor:pointer}
.envoi:has(input:disabled){opacity:.45}
.wpcf7-not-valid-tip{margin-top:6px;color:var(--alerte);font-size:13px}
.formulaire .wpcf7-not-valid{border-color:var(--alerte)!important}
.wpcf7 form .wpcf7-response-output{margin:0;padding:14px 16px;border:1px solid var(--trait);border-radius:var(--rayon-bouton);font-size:14px}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.failed .wpcf7-response-output{border-color:var(--alerte)}
.wpcf7 form.sent .wpcf7-response-output{border-color:var(--succes)}

/* Avantages, conditions, à propos */
.grille-avantages{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.avantage{position:relative;padding:96px 28px 28px;border:1px solid var(--trait);border-radius:var(--rayon)}
.avantage::before{content:"";position:absolute;left:28px;top:28px;width:52px;height:52px;border-radius:10px;background:var(--accent-clair)}
.avantage::after{content:"";position:absolute;left:41px;top:41px;width:26px;height:26px;background:var(--accent);-webkit-mask:var(--i-profil) center/contain no-repeat;mask:var(--i-profil) center/contain no-repeat}
.a-reparation::after{-webkit-mask-image:var(--m-reparation);mask-image:var(--m-reparation)}
.a-lieu::after{-webkit-mask-image:var(--i-lieu);mask-image:var(--i-lieu)}
.a-whatsapp::after{-webkit-mask-image:var(--i-whatsapp);mask-image:var(--i-whatsapp)}
.a-verifie::after{-webkit-mask-image:var(--i-verifie);mask-image:var(--i-verifie)}
.a-compte::after{-webkit-mask-image:var(--i-compte);mask-image:var(--i-compte)}
.a-bouclier::after{-webkit-mask-image:var(--i-bouclier);mask-image:var(--i-bouclier)}
.a-telephone::after{-webkit-mask-image:var(--i-telephone);mask-image:var(--i-telephone)}
.avantage h3{font-size:18px;font-weight:700}
.avantage p{margin-top:8px;font-size:15px;color:var(--sourdine)}
.avantages+.comment,.valeurs+.feuille-route,.page-prestataire .faq{background:var(--surface)}
.conditions-grille{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.conditions-photo{border-radius:var(--rayon);overflow:hidden;aspect-ratio:4/3}
.conditions-photo img{width:100%;height:100%;object-fit:cover}
.liste-coches{display:grid;gap:18px;margin:28px 0 32px;padding:0;color:var(--sourdine)}
.liste-coches strong{color:var(--texte)}
.faq-artisans{padding-top:0}
.bandeau-photo{aspect-ratio:12/5;max-height:520px;width:100%;overflow:hidden}
.bandeau-photo img{width:100%;height:100%;object-fit:cover}
.mission-grille{display:grid;grid-template-columns:1fr 1fr;gap:64px}
.mission-bloc h2{margin-top:12px}
.mission-texte{margin-top:16px;font-size:17px;color:var(--sourdine)}

/* Pages légales et pages simples (template page.html) */
.page-simple{padding-block:56px 88px}
.page-simple .page-titre{font-size:40px;font-weight:800;margin-bottom:28px}
.contenu-texte{max-width:820px}
.contenu-texte :is(h2,h3){margin:36px 0 12px;font-size:22px}
.contenu-texte p,.contenu-texte ul{margin:0 0 14px;color:color-mix(in srgb,var(--texte) 85%,transparent)}
.contenu-texte a{color:var(--accent);text-decoration:underline}

/* ==========================================================================
   11 bis · Pages WCFM habillées : liste des artisans ([wcfm_stores], gabarit
   du thème wcfm/store-lists/…-card.php), page d'un artisan (wcfm/store/…),
   inscription et tableau de bord (DOM de WCFM, surface seulement)
   ========================================================================== */
/* Liste */
#wcfmmp-stores-wrap,.wcfmmp-stores-listing{background:transparent!important;padding:0!important;box-shadow:none!important;border:0!important}
#wcfmmp-stores-wrap .wcfmmp-stores-content,.wcfmmp-stores-content-holder{padding:0!important;background:transparent!important}
ul.wcfmmp-store-wrap{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:0!important;padding:0!important;list-style:none}
ul.wcfmmp-store-wrap>.wcfm-clearfix,ul.wcfmmp-store-wrap::before,ul.wcfmmp-store-wrap::after{display:none!important;content:none!important}
#wcfmmp-stores-wrap-holder{float:none!important;width:auto!important;padding:0!important}
ul.wcfmmp-store-wrap li.carte-artisan{float:none!important;width:auto!important;margin:0!important;padding:0!important;
  position:relative;display:flex;flex-direction:column;background:var(--fond);border-radius:var(--rayon);overflow:hidden;box-shadow:var(--ombre)}
.carte-artisan .banniere{display:block;aspect-ratio:16/9;background:linear-gradient(135deg,var(--texte),color-mix(in srgb,var(--texte) 70%,var(--accent)))}
.carte-artisan .banniere img{width:100%;height:100%;object-fit:cover}
.carte-artisan-corps{position:relative;display:flex;flex-direction:column;flex:1;padding:0 24px 24px}
.avatar{display:grid;place-items:center;width:72px;height:72px;margin-top:-36px;border:4px solid var(--fond);border-radius:50%;
  background:var(--accent);color:var(--sur-accent);font:800 24px/1 var(--police-titres);object-fit:cover}
.carte-artisan-nom{margin-top:12px;font-size:19px;font-weight:800;line-height:1.3}
.carte-artisan-nom .badge-verifie{vertical-align:2px;margin-left:4px}
.metier-ligne{margin-top:4px;font-weight:600;color:var(--accent);font-size:15px}
.lieu{display:flex;align-items:flex-start;gap:6px;margin-top:8px;font-size:14px;color:var(--sourdine)}
.lieu::before{content:"";flex:none;width:16px;height:16px;margin-top:3px;background:var(--accent);-webkit-mask:var(--i-lieu) center/contain no-repeat;mask:var(--i-lieu) center/contain no-repeat}
.carte-artisan .description{margin-top:12px;font-size:15px;color:var(--sourdine)}
.carte-artisan .boutons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:auto;padding-top:20px}
.carte-artisan .boutons .wp-block-button__link{width:100%}
.bouton-tel::before{content:"";width:18px;height:18px;background:currentColor;-webkit-mask:var(--i-telephone) center/contain no-repeat;mask:var(--i-telephone) center/contain no-repeat}
.lien-profil{display:block;margin-top:14px;text-align:center;font-size:14px;font-weight:600}
/* recherche et pagination de la liste (DOM de WCFM) */
#wcfmmp-stores-wrap .wcfmmp-store-search-form,.wcfmmp-store-search-form{margin:0 0 28px!important;padding:0!important;background:transparent!important;border:0!important}
.wcfmmp-store-search-form input[type=search],.wcfmmp-store-search-form input[type=text]{width:100%!important;max-width:520px;height:48px!important;border:1px solid var(--trait)!important;border-radius:var(--rayon-bouton)!important}
.wcfmmp-pagination{margin-top:32px}
.wcfmmp-pagination .page-numbers{display:inline-grid;place-items:center;min-width:40px;height:40px;border-radius:var(--rayon-bouton)!important;border:1px solid var(--trait)!important;background:var(--fond)!important;color:var(--texte)!important}
.wcfmmp-pagination .page-numbers.current{background:var(--accent)!important;border-color:var(--accent)!important;color:var(--sur-accent)!important}
.artisans .wcfmmp-pagination,.artisans .wcfmmp-store-search-form{display:none!important}

/* Page d'un artisan */
.page-artisan{padding-bottom:88px}
.fiche-haut{padding-block:26px 22px}
.fil-ariane,.woocommerce-breadcrumb{font-size:14px;color:var(--sourdine)}
.fil-ariane a:hover{color:var(--accent)}
.artisan-banniere{aspect-ratio:21/6;border-radius:var(--rayon);overflow:hidden;background:linear-gradient(135deg,var(--texte),color-mix(in srgb,var(--texte) 70%,var(--accent)))}
.artisan-banniere img{width:100%;height:100%;object-fit:cover}
.artisan-tete{display:flex;align-items:flex-end;flex-wrap:wrap;gap:24px;padding:0 32px 32px;border-bottom:1px solid var(--trait)}
.avatar-grand{align-self:flex-start;width:120px;height:120px;margin-top:-60px;font-size:36px;border-width:6px}
.artisan-identite{flex:1;min-width:260px}
.artisan-nom{font-size:36px;font-weight:800}
.artisan-nom .badge-verifie{font-size:15px;vertical-align:6px;margin-left:6px}
.artisan-contact{display:flex;flex-wrap:wrap;gap:12px}
.artisan-corps{display:grid;grid-template-columns:340px minmax(0,1fr);gap:56px;margin-top:48px}
.artisan-titre{font-size:24px;font-weight:800;margin-bottom:20px}
.artisan-apropos>p{color:var(--sourdine)}
.artisan-sous-titre{margin:28px 0 12px;font-size:16px;font-weight:700}
.artisan-communes{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.artisan-communes li{padding:6px 12px;border-radius:999px;background:var(--accent-clair);font-size:14px;font-weight:600}
.artisan-note{margin-top:28px!important;padding:16px;border-radius:var(--rayon-bouton);background:var(--surface);font-size:14px}
.artisan-services .grille-produits.wc-block-product-template{grid-template-columns:repeat(3,minmax(0,1fr))}
.artisan-vide{padding:24px;border:1px dashed var(--trait);border-radius:var(--rayon);color:var(--sourdine)}

/* Fiche service : bloc « Proposé par » */
.fiche{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(40px,5vw,72px);align-items:start}
.fiche-galerie .wc-block-product-gallery-large-image{border-radius:var(--rayon);overflow:hidden;background:var(--surface)}
.fiche-surtitre a{display:inline-block;padding:4px 10px;border-radius:6px;background:var(--accent-clair);color:var(--texte);font-size:13px;font-weight:600;letter-spacing:0;text-transform:none}
.fiche-surtitre{letter-spacing:0!important;text-transform:none!important}
.fiche-titre{margin-top:16px;font-size:34px;font-weight:800;line-height:1.2}
.fiche-prix{margin-top:16px;font-size:16px;color:var(--sourdine)}
.fiche-prix .woocommerce-Price-amount{color:var(--texte);font-size:26px;font-weight:800}
.fiche-resume{margin-top:12px}
.fiche-communes{position:relative;padding-left:26px;margin-top:14px;font-size:15px;color:var(--sourdine)}
.fiche-communes::before{content:"";position:absolute;left:0;top:3px;width:18px;height:18px;background:var(--accent);-webkit-mask:var(--i-lieu) center/contain no-repeat;mask:var(--i-lieu) center/contain no-repeat}
.fiche-communes a{color:var(--texte);font-weight:600}
.fiche-artisan{margin-top:28px;padding:24px;border-radius:var(--rayon);background:var(--surface)}
.fiche-artisan-titre{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--sourdine)}
.fiche-artisan-nom{margin-top:6px;font:800 20px/1.3 var(--police-titres)}
.fiche-artisan-nom a:hover{color:var(--accent)}
.telephone-prestataire{margin-top:4px;font-weight:600;color:var(--sourdine)}
.fiche-contact{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.fiche-contact .wp-block-button,.fiche-contact .wp-block-button__link{width:100%}
.bouton-appeler>.wp-block-button__link{background:var(--fond);color:var(--accent)}
.bouton-appeler>.wp-block-button__link::before{content:"";width:18px;height:18px;background:currentColor;-webkit-mask:var(--i-telephone) center/contain no-repeat;mask:var(--i-telephone) center/contain no-repeat}
.fiche-artisan-note{margin-top:14px;font-size:13px;color:var(--sourdine)}
.fiche-details{display:grid;grid-template-columns:5fr 7fr;gap:clamp(40px,6vw,96px);margin-top:88px}
.fiche-details-titre{font-size:28px;font-weight:800}
.fiche-associes{margin-top:88px}
.collection-associes{display:block}
.associes-tete{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}
.section-titre{font-size:28px;font-weight:800}
.collection-associes .grille-produits.wc-block-product-template{grid-template-columns:repeat(4,minmax(0,1fr))}

/* Catalogue (services, métiers, communes, recherche) */
.catalogue-entete{padding-block:48px 32px}
.catalogue-titre{margin-top:14px;font-size:40px;font-weight:800}
.catalogue-intro{margin-top:12px;max-width:60ch;color:var(--sourdine);font-size:17px}

/* Inscription et tableau de bord WCFM : surface seulement */
#wcfm-main-contentainer,#wcfm_membership_container,.wcfm-membership-wrapper{font-family:var(--police-texte)!important}
#wcfm-main-contentainer :is(input[type=submit],.wcfm_submit_button,button.wcfm_submit_button),
#wcfm_membership_container :is(input[type=submit],.wcfm_submit_button){background:var(--accent)!important;border:0!important;border-radius:var(--rayon-bouton)!important;color:var(--sur-accent)!important;
  font:600 15px/1 var(--police-texte)!important;padding:14px 22px!important;height:auto!important}
#wcfm_membership_container :is(input[type=text],input[type=email],input[type=password],input[type=tel],select,textarea){border:1px solid var(--trait)!important;border-radius:var(--rayon-bouton)!important;min-height:44px;padding:10px 12px!important;background:var(--fond)!important}
#wcfm_membership_container .wcfm_title,#wcfm_membership_container p.wcfm_title{font-weight:600!important;color:var(--texte)!important}
.page-inscription .wcfm-membership-wrapper{max-width:820px}

@media (max-width:1180px){
  ul.wcfmmp-store-wrap{grid-template-columns:repeat(2,minmax(0,1fr))}
  .artisan-corps{grid-template-columns:minmax(0,1fr);gap:40px}
  .artisan-services .grille-produits.wc-block-product-template,.collection-associes .grille-produits.wc-block-product-template{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fiche-details{grid-template-columns:minmax(0,1fr);gap:20px}
}
@media (max-width:1024px){
  .fiche{grid-template-columns:minmax(0,1fr);gap:32px}
}
@media (max-width:760px){
  ul.wcfmmp-store-wrap{grid-template-columns:minmax(0,1fr)}
  .artisan-banniere{aspect-ratio:16/9}
  .artisan-tete{padding:0 0 24px;gap:16px}
  .avatar-grand{width:96px;height:96px;margin-top:-48px;font-size:30px}
  .artisan-nom{font-size:26px}
  .artisan-contact,.artisan-contact .wp-block-button,.artisan-contact .wp-block-button__link{width:100%}
  .artisan-services .grille-produits.wc-block-product-template,.collection-associes .grille-produits.wc-block-product-template{grid-template-columns:minmax(0,1fr)}
  .fiche-titre{font-size:26px}
  .associes-tete{flex-direction:column;align-items:flex-start;gap:8px}
  .catalogue-titre{font-size:30px}
}

/* Bouton « Poser une question » de WCFM (demande de renseignement native) */
.wcfm_catalog_enquiry,.wcfm-enquiry-button,a.wcfm_catalog_enquiry{display:inline-flex!important;align-items:center;gap:6px;margin:14px 0 0!important;padding:8px 14px!important;
  border:1px solid var(--trait)!important;border-radius:var(--rayon-bouton)!important;background:var(--fond)!important;color:var(--texte)!important;font:600 14px/1.2 var(--police-texte)!important}
.wcfm_catalog_enquiry:hover{border-color:var(--accent)!important;color:var(--accent)!important}
/* « Vendu par » de WCFM dans les cartes : la carte nomme déjà l'artisan */
.grille-produits :is(.wcfmmp_sold_by_container,.wcfmmp_sold_by_container_advanced,.wcfm-clearfix){display:none!important}
.catalogue-filtres .filtres h3{font-family:var(--police-texte);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sourdine)}

/* Pages légales (trames) */
.page-legale{max-width:calc(860px + 2 * var(--gouttiere));padding-block:56px 88px}
.page-legale .page-titre{font-size:40px;font-weight:800;margin-bottom:24px}
.page-legale h2{margin:36px 0 12px;font-size:22px;font-weight:700}
.page-legale p,.page-legale ul{margin:0 0 14px;color:color-mix(in srgb,var(--texte) 85%,transparent)}
.page-legale a{color:var(--accent);text-decoration:underline}
.trame-avertissement{padding:16px 18px;border-radius:var(--rayon-bouton);background:var(--accent-clair);color:var(--texte)!important}
/* Mon compte, inscription, espace artisan */
.page-compte,.espace-artisan{padding-block:48px 88px}
.page-inscription .wcfm-membership-wrapper,.page-inscription #wcfm_membership_container{max-width:860px;box-shadow:none!important;border:1px solid var(--trait);border-radius:var(--rayon)}
@media (max-width:760px){.page-legale .page-titre{font-size:30px}}
/* Case de consentement CF7 : pas étirée comme les champs */
.formulaire .consentement .wpcf7-list-item{display:block}
.formulaire .consentement input[type=checkbox]{display:inline-block;width:18px!important;height:18px;min-height:0;padding:0;margin-top:3px}
.formulaire .consentement .wpcf7-list-item-label a{color:var(--accent)}

/* ==========================================================================
   12 · Adaptatif
   ========================================================================== */
@media (max-width:1180px){
  .grille-metiers{grid-template-columns:repeat(3,1fr)}
  .grille-produits.wc-block-product-template,.catalogue .grille-produits.wc-block-product-template{grid-template-columns:repeat(2,minmax(0,1fr))}
  .communes-grille,.etapes-grille,.faq-grille,.contact-grille,.conditions-grille,.mission-grille{grid-template-columns:1fr;gap:36px}
  .engagements-liste{grid-template-columns:repeat(2,1fr)}
  .engagements-liste li:nth-child(3){border-left:0}
  .engagements-liste li:nth-child(n+3){border-top:1px solid var(--trait)}
  .prestataire-grille{grid-template-columns:1fr 320px;gap:40px}
  .grille-avantages{grid-template-columns:1fr 1fr}
  .pied-grille{grid-template-columns:1fr 1fr;gap:40px}
  .pied-marque{grid-column:1/-1}
}
@media (max-width:1024px){
  /* menu replié dès 1024 px ; [logo] … [compte][menu] : le bouton du menu à droite des actions */
  .wp-block-navigation.menu .wp-block-navigation__responsive-container-open:not(.always-shown){display:flex}
  .wp-block-navigation.menu .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){display:none}
  .entete-rangee{gap:12px}
  .entete-rangee .wp-block-navigation.menu{order:3}
  .entete-actions{margin-left:auto;gap:8px}
  .entete .entete-bouton{display:none}
  .entete-compte a{width:44px;height:44px;justify-content:center;font-size:0;gap:0}
  .catalogue{grid-template-columns:minmax(0,1fr)}
  .catalogue-filtres{position:static}
  .fiche{grid-template-columns:minmax(0,1fr);gap:32px}
  .fiche-achat{position:static}
}
@media (max-width:782px){
  .admin-bar .entete{top:46px}
  .woocommerce-account main .woocommerce,.u-columns{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:760px){
  :root{--gouttiere:16px;--entete-h:64px}
  .entete-logo img{width:138px}
  .section{padding-block:60px}
  .hero-photo{position:relative;width:100%;height:240px}
  .hero-photo::after{background:linear-gradient(180deg,transparent 40%,var(--texte) 100%)}
  .hero-contenu{padding-block:8px 48px}
  .hero-page .hero-contenu{padding-block:8px 48px}
  .hero-titre{font-size:30px}
  .hero-texte{font-size:16px}
  .recherche .wp-block-search__inside-wrapper{flex-direction:column;align-items:stretch}
  .recherche .wp-block-search__inside-wrapper::before{top:32px}
  .recherche .wp-block-search__button{width:100%}
  .hero-faits{flex-direction:column;gap:12px;margin-top:28px}
  .entete-section{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:24px}
  .titre-section,.entete-section h2{font-size:26px}
  .grille-metiers{grid-template-columns:1fr 1fr;gap:10px}
  .metier{grid-template-columns:40px 1fr;column-gap:10px;padding:12px}
  .metier::before{width:40px;height:40px}
  .metier::after{left:21px;width:22px;height:22px;margin-top:-11px}
  .metier-nom{font-size:14px;align-self:center;grid-row:1/3}
  .metier-detail{display:none}
  .liste-communes{grid-template-columns:1fr 1fr;gap:10px}
  .collection-vedettes .grille-produits.wc-block-product-template{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gouttiere);
    margin-inline:calc(-1 * var(--gouttiere));padding:0 var(--gouttiere) 8px}
  .collection-vedettes .grille-produits .wc-block-product{flex:0 0 78%;scroll-snap-align:start}
  .grille-produits.wc-block-product-template,.catalogue .grille-produits.wc-block-product-template{grid-template-columns:minmax(0,1fr);gap:16px}
  .etapes{grid-template-columns:1fr;gap:32px}
  .prestataire{margin-top:0}
  .prestataire-grille{grid-template-columns:1fr;gap:0}
  .prestataire-texte{padding-block:56px 40px}
  .prestataire h2{font-size:28px}
  .prestataire-liste{grid-template-columns:1fr}
  .prestataire-photo{margin:0 calc(-1 * var(--gouttiere))!important;border-radius:0;aspect-ratio:4/3}
  .prestataire-ligne{flex-direction:column;align-items:flex-start;padding-block:44px}
  .prestataire-ligne h2{font-size:24px}
  .faq-liste summary{font-size:16px}
  .faq-liste .wp-block-details>p{padding-right:0}
  .page-tete{padding-block:36px 40px}
  .page-titre-tete{font-size:30px}
  .page-chapeau{font-size:16px}
  .formulaire-carte,.coordonnees{padding:24px 20px}
  .champs-2,.profils-grille,.grille-avantages{grid-template-columns:1fr}
  .profil{padding:32px 24px}
  .bandeau-photo{aspect-ratio:4/3}
  .engagements-liste{grid-template-columns:1fr}
  .engagements-liste li{padding:20px 0 20px 56px}
  .engagements-liste li::before{left:0}
  .engagements-liste li+li{border-left:0;border-top:1px solid var(--trait)}
  .pied-grille{gap:36px 24px;padding-block:56px 40px}
  .pied-bas{flex-direction:column;gap:8px}
  .page-simple .page-titre{font-size:30px}
}
@media (max-width:560px){
  .catalogue-barre{flex-direction:column;align-items:stretch;gap:12px}
  .catalogue-barre .woocommerce-ordering,.catalogue-barre .woocommerce-ordering select{width:100%}
}

.est-cachee{display:none}
.est-cachee.est-actif{display:block}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
