/*
Theme Name: Solaris
Theme URI: https://solarisgabon.com
Author: Solaris Group
Description: Thème bloc sur mesure de Solaris Group (énergie solaire au Gabon). Couleurs et polices réglables dans Apparence → Éditeur → Styles ; en-tête et pied de page dans Apparence → Éditeur → Compositions.
Version: 1.0.261111095334
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: solaris
Tags: block-theme, full-site-editing, e-commerce, woocommerce
*/
/* ==========================================================================
   1 · Jetons
   Les couleurs sont des ALIAS des couleurs de theme.json : le client les
   change dans Styles → Couleurs → Palette, et tout le site suit. Aucune
   couleur en dur ailleurs dans cette feuille (porte « styles globaux ») —
   les nuances se dérivent par color-mix(). --police-titres et --police-texte
   ne se définissent PAS ici : functions.php les pose depuis Styles →
   Typographie (le « pont »).
   ========================================================================== */
: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);
  --promo:var(--wp--preset--color--promo);
  --alerte:var(--wp--preset--color--alerte);

  --rayon:var(--wp--custom--rayon,10px);
  --rayon-bouton:var(--wp--custom--rayon-bouton,999px);
  --largeur:1240px;
  --gouttiere:clamp(16px,4vw,40px);   /* la valeur de la maquette : elle règle aussi les sections pleine largeur */
  --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='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --i-sac:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M5.5 8.5h13l-1 11.5h-11z'/%3E%3Cpath d='M9 8.5V7a3 3 0 0 1 6 0v1.5'/%3E%3C/svg%3E");
  --i-livraison: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.5' stroke-linejoin='round'%3E%3Cpath d='M3 6.5h11v9H3zM14 9.5h4l3 3v3h-7z'/%3E%3Ccircle cx='7' cy='17.5' r='1.8'/%3E%3Ccircle cx='17' cy='17.5' r='1.8'/%3E%3C/svg%3E");
  --i-retour: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.5' stroke-linecap='round'%3E%3Cpath d='M19.5 12a7.5 7.5 0 1 1-2.2-5.3'/%3E%3Cpath d='M19.5 4.5v4h-4'/%3E%3C/svg%3E");
  --i-cadenas: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.5' stroke-linejoin='round'%3E%3Crect x='5' y='10.5' width='14' height='10' rx='1.5'/%3E%3Cpath d='M8.5 10.5V8a3.5 3.5 0 0 1 7 0v2.5'/%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
   ========================================================================== */
/* pseudo-éléments compris : sinon un rond de 9 px bordé mesure 11 px, et la ligne
   de base d'un surtitre en inline-flex bouge d'1 px par section (vécu : −3 px en bas de page) */
*,*::before,*::after{box-sizing:border-box}
/* Pas de position:relative sur body : un en-tête posé sur un héros se cale sur
   le haut de la page, et les décalages de la barre d'admin restent justes. */
body{margin:0;background:var(--fond);color:var(--texte);font-family:var(--police-texte);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block} /* height:auto obligatoire : sinon l'attribut height des blocs image l'emporte sur aspect-ratio */
/* PIÈGE : img{display:block} écrase l'attribut hidden — le mini-panier et le panier
   affichaient leur image de secours cachée (deux vignettes par article). */
[hidden]{display:none!important}
h1,h2,h3,h4{margin:0;font-family:var(--police-titres);text-wrap:balance;hyphens:none}
p{margin:0}
a{color:inherit;text-underline-offset:.18em}
a:hover{color:var(--accent)}

/* Gutenberg applique margin-block-start entre frères. La neutralisation
   se fait d'abord dans theme.json (blockGap: "0px") et, en filet de
   sécurité, ICI À SPÉCIFICITÉ NULLE — jamais en .wp-block-group > * :
   cette version-là écraserait toutes les marges de vos composants
   (vécu : 14 marges à zéro, 307 px de rythme vertical perdus). */
: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)}

/* Boutons : les styles de theme.json (elements.button) valent pour les boutons
   de la page ET pour ceux de WooCommerce, qui portent tous .wp-element-button.
   Un bouton de la maquette (ex. .b-sombre) : UNE définition pour deux DOM —
   « :is(a,button).b-sombre, .b-sombre>.wp-block-button__link » — et le
   conteneur du bloc neutralisé, sinon il double la pastille (blocs-gutenberg.md). */
.wp-block-button.b-plein{display:inline-block;background:none;border:0;padding:0;border-radius:0}
.wp-block-button.is-style-outline .wp-block-button__link{background:transparent;color:var(--texte);border:1px solid var(--trait)}
.wp-element-button,.wp-block-button__link{transition:background-color .2s,color .2s,border-color .2s}

/* Champs de formulaire — WooCommerce (blocs et « Mon compte »), recherche, CF7.
   Le rayon est celui des champs de la maquette. */
: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:inherit;color:var(--texte);background:var(--fond);border:1px solid var(--trait);
  border-radius:var(--rayon);padding:12px 14px;min-height:48px;max-width:100%}
:where(input,select,textarea):focus{outline:none;border-color:var(--texte)}

:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}

/* Promesses : paragraphes à icône (fiche produit, récapitulatif du panier).
   N'y écrire QUE des faits : seuil de livraison des réglages, rétractation
   légale de 14 jours, paiement sécurisé — jamais un service non demandé. */
.promesse{display:flex;align-items:center;gap:12px;font-size:13px}
.promesse::before{content:"";flex:none;width:18px;height:18px;background:currentColor;
  -webkit-mask:var(--i-livraison) center/contain no-repeat;mask:var(--i-livraison) center/contain no-repeat}
.promesse-retours::before{-webkit-mask-image:var(--i-retour);mask-image:var(--i-retour)}
.promesse-paiement::before{-webkit-mask-image:var(--i-cadenas);mask-image:var(--i-cadenas)}

/* ==========================================================================
   3 · En-tête, en-tête de commande, pied de page (parts/)
   Tout y est modifiable dans Apparence → Éditeur → Compositions : logo
   (bloc Logo du site → Remplacer), menu, textes, liens, réseaux.
   Menu : le lien du catalogue toujours ; les catégories à plat si elles
   tiennent (2 à 4), sinon en sous-menu du catalogue (core/navigation-submenu).
   Jamais la loupe de recherche par défaut (core/search) dans l'en-tête.
   ========================================================================== */
.entete{position:sticky;top:0;z-index:40;background:var(--fond);border-bottom:1px solid var(--trait)}
/* Décalage de la barre d'admin : seulement pour un en-tête collant (ici) ou posé
   sur le héros. Sur un en-tête en flux, il le ferait descendre sur le contenu. */
.admin-bar .entete{top:32px}
.entete-rangee{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:var(--entete-h)}
/* Largeur du logo = celle du logo texte de la maquette, mesurée (porte 4) */
.entete-logo img{width:auto;max-height:36px}
.menu .wp-block-navigation__container{gap:28px}
.menu .wp-block-navigation-item__content{text-decoration:none;font-weight:500}
.menu .current-menu-item>.wp-block-navigation-item__content{text-decoration:underline}
/* sous-menu des catégories (au survol en ordinateur, dans le panneau en mobile) */
.menu .wp-block-navigation__submenu-container{min-width:220px;padding:10px 0;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) 8%,transparent)}
.menu .wp-block-navigation__submenu-container .wp-block-navigation-item__content{padding:8px 18px;font-weight:400}
/* ---------- Menu mobile (panneau de core/navigation) ----------
   PIÈGE (vécu en production) : WordPress règle la marge du panneau sur le
   padding racine de theme.json — absent : liens collés au bord gauche, croix
   de 24 px collée dans l'angle, sous la barre d'admin quand on est connecté,
   « impossible à fermer ». Et il s'ouvre blanc sur blanc. Le CSS du bloc est
   imprimé APRÈS cette feuille : sélecteurs qualifiés, !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;margin-left:-11px;color:inherit}
.wp-block-navigation.menu .wp-block-navigation__responsive-container-open svg{width:26px;height:26px}
.wp-block-navigation.menu .wp-block-navigation__responsive-container.is-menu-open{
  background-color:var(--fond)!important;color:var(--texte)!important;padding:14px var(--gouttiere) 40px!important}
.wp-block-navigation.menu .is-menu-open .wp-block-navigation__responsive-container-close{top:0;right:-11px;width:44px;height:44px;
  display:flex;align-items:center;justify-content:center;color:var(--texte)}
.wp-block-navigation.menu .is-menu-open .wp-block-navigation__responsive-container-close svg{width:28px;height:28px}
.wp-block-navigation.menu .is-menu-open .wp-block-navigation__responsive-container-content{padding-top:64px!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:block;width:100%;padding:16px 0!important;
  font-family:var(--police-titres);font-size:24px;line-height:1.2;text-decoration:none}
/* sous-menu des catégories : déplié dans le panneau, en retrait */
.wp-block-navigation.menu .is-menu-open .wp-block-navigation__submenu-container{padding:0 0 12px 16px!important;border:0!important;
  box-shadow:none!important;background:transparent!important}
.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{
  font-family:var(--police-texte);font-size:16px;padding:8px 0!important}
/* Liens réservés au panneau (className « menu-mobile-seul ») : tout ce que
   l'en-tête masque en mobile (un lien Contact des actions, un bouton) doit
   rester accessible ici */
.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:6px}
.entete-compte a,.entete-panier .wc-block-mini-cart__button{color:var(--texte);padding:8px}
.wc-block-mini-cart__badge{background:var(--accent)!important;color:var(--sur-accent)!important}

.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-securisee{display:flex;align-items:center;gap:8px;margin-left:auto;color:var(--sourdine);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.entete-commande-rangee .commande-securisee::before{content:"";width:15px;height:15px;background:currentColor;
  -webkit-mask:var(--i-cadenas) center/contain no-repeat;mask:var(--i-cadenas) center/contain no-repeat}
.entete-commande-rangee .commande-retour{font-size:14px}

.pied{background:var(--surface);color:var(--texte);margin-top:120px}
.pied-haut{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,2fr);gap:48px;padding-block:72px 48px}
.pied-logo img{width:auto;max-height:32px}
.pied-baseline{margin-top:16px;color:var(--sourdine);max-width:34ch}
.pied-colonnes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
/* un titre de colonne en h2 hérite la hauteur de ligne des titres (theme.json) :
   la poser, sinon elle diffère de la maquette (vécu : 4 px par colonne) */
.pied-titre{font-family:var(--police-texte);font-size:14px;line-height:1.5;letter-spacing:.06em;text-transform:uppercase;margin-bottom:14px}
.pied-menu .wp-block-navigation__container{gap:10px}
.pied-menu .wp-block-navigation-item__content,.pied-legal .wp-block-navigation-item__content{text-decoration:none;color:var(--sourdine)}
.pied-contact{color:var(--sourdine)}
.pied-contact+.pied-contact{margin-top:10px}
.pied-bas{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
  padding-block:24px;border-top:1px solid var(--trait);font-size:14px;color:var(--sourdine)}
.pied-legal .wp-block-navigation__container{gap:20px}
.pied-reseaux.wp-block-social-links{gap:10px}
.pied-reseaux .wp-social-link{background:transparent!important;color:var(--texte)!important}

/* ==========================================================================
   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)}

/* ==========================================================================
   12 · Adaptatif
   ========================================================================== */
@media (max-width:1100px){
  .grille-produits.wc-block-product-template{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:1024px){
  /* menu replié dès la tablette : WordPress ne replie qu'à 600 px, et un menu de
     cinq liens ou plus touche le logo entre 600 et 1024 px */
  .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}
  /* en-tête replié : [menu][logo] … [compte][panier] — jamais le bouton du menu
     flottant au milieu de l'en-tête (space-between le pose entre logo et actions) */
  .entete-rangee{justify-content:flex-start}
  .entete-rangee .wp-block-navigation.menu{order:-1}
  .entete-actions{margin-left:auto}
  .catalogue{grid-template-columns:minmax(0,1fr)}
  .catalogue-filtres{position:static}
  .fiche{grid-template-columns:minmax(0,1fr);gap:32px}
  .fiche-achat{position:static}
  .pied-haut{grid-template-columns:minmax(0,1fr)}
  .collection-associes{grid-template-columns:minmax(0,1fr)}
  .collection-associes .grille-produits.wc-block-product-template{grid-column:auto;grid-template-columns:repeat(3,minmax(0,1fr))}
  .associes-tete .section-chapo{max-width:none}
}
@media (max-width:860px){
  .fiche-galerie .wc-block-product-gallery-thumbnails{flex:none;width:100%!important;max-width:none;margin:12px 0 0}
  .fiche-galerie .wc-block-product-gallery-thumbnails__scrollable{flex-direction:row;overflow-x:auto}
  .fiche-galerie .wc-block-product-gallery-thumbnails__thumbnail{flex:0 0 64px;width:64px}
  /* qualifiés : les règles à 3 classes plus haut l'emportent sinon sur ces grilles */
  .grille-produits.wc-block-product-template,
  .catalogue .grille-produits.wc-block-product-template,
  .collection-associes .grille-produits.wc-block-product-template{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 14px}
  .fiche-details{grid-template-columns:minmax(0,1fr);gap:22px;margin-top:72px}
  .fiche-associes{margin-top:88px}
  .wc-block-cart .wc-block-cart__sidebar{padding:24px 20px 20px}
  .woocommerce-account .u-columns :is(.u-column1,.u-column2){padding:30px 22px}
  .woocommerce-account main .woocommerce{gap:28px}
  .page-confirmation .wrap{padding-block:48px 0;gap:32px}
  .wc-block-order-confirmation-summary{padding:22px 20px}
  .panier-vide-suite{margin:80px 0 32px}
  .champ-rangee{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:782px){
  .admin-bar .entete{top:46px}
  .entete-rangee{gap:12px}
  .pied-colonnes{grid-template-columns:minmax(0,1fr)}
  .woocommerce-account main .woocommerce,.u-columns{grid-template-columns:minmax(0,1fr)}
  /* masquer un bouton d'en-tête : le CONTENEUR core/buttons, qualifié (le CSS du
     bloc Boutons, imprimé après, l'emporterait à spécificité égale) */
  .entete .entete-bouton{display:none}
}
@media (max-width:560px){
  .entete-commande-rangee{gap:14px}
  .entete-commande-rangee .commande-securisee{font-size:0;gap:0}
  .entete-commande-rangee .commande-retour{white-space:nowrap;font-size:13px}
  .catalogue-barre{flex-direction:column;align-items:stretch;gap:12px}
  .catalogue-barre .woocommerce-ordering,.catalogue-barre .woocommerce-ordering select{width:100%}
}

/* Variantes affichées par bascule de classe, jamais par injection JS. */
.est-cachee{display:none}
.est-cachee.est-actif{display:block}

/* ==========================================================================
   3 · Solaris — blocs, en-tête, pied de page, formulaires
   ========================================================================== */
/* ==========================================================================
   Solaris · jetons complémentaires (alias de theme.json — aucune couleur en dur)
   ========================================================================== */
:root{
  --cyan:var(--wp--preset--color--cyan);
  --cyan-profond:var(--wp--preset--color--cyan-profond);
  --petrole-2:var(--wp--preset--color--petrole-2);
  --sourdine-clair:var(--wp--preset--color--sourdine-claire);
  --texte-clair:var(--fond);
  --trait-clair:color-mix(in srgb,var(--fond) 14%,transparent);
  --voile:color-mix(in srgb,var(--texte) 55%,transparent);
  --ombre:0 18px 40px -18px color-mix(in srgb,var(--texte) 35%,transparent);
  --r-bloc:var(--wp--custom--rayon-bloc,28px);
  --r-carte:var(--wp--custom--rayon-carte,20px);
  --r-btn:var(--rayon-bouton);
  --max:1320px;
  --gouttiere:clamp(16px,3vw,32px);
  --espace:clamp(64px,8vw,112px);
  --largeur:calc(var(--max) - 2 * var(--gouttiere));
  --entete-h:76px;
}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{font-weight:500;line-height:1.56;overflow-x:hidden}
h2{font-size:clamp(28px,3.5vw,44px);font-weight:700;letter-spacing:-.025em;line-height:1.08}
h3{font-size:18px;font-weight:700;letter-spacing:-.01em;line-height:1.25}
h1 em,h2 em{font-style:normal;color:var(--cyan-profond)}
a{text-decoration:none}
a:hover{color:inherit}
.wrap{max-width:var(--max)}
.wp-block-post-content :is(ul,ol).wp-block-list[class*=" "],.footer ul.wp-block-list{margin:0;padding:0;list-style:none}
.leader .blockquote strong{display:block;margin-top:14px}
.brands ul.wp-block-list{list-style:none;margin:0}
.equip__more .wp-block-buttons{justify-content:center}
.hide-sm,.hide-md{}

/* Le gabarit de page n'ajoute rien autour du contenu : la maquette porte ses marges */
main.wp-block-group{margin:0}
.wp-block-post-content>*{margin-block:0}
/* Image de la médiathèque : la figure s'efface, l'image se place comme dans la maquette */
.wp-block-post-content figure.wp-block-image{display:contents}
/* (pas de height:auto ici : il écraserait les proportions de la maquette — aspect-ratio, images en cover) */

/* ==========================================================================
   Boutons (core/button) — la classe est sur le conteneur, le style sur le lien
   ========================================================================== */
.wp-block-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px}
.wp-block-button.btn{margin:0}
.wp-block-button.btn>.wp-block-button__link{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:52px;padding:0 22px;border:2px solid transparent;border-radius:var(--r-btn);
  font:700 16px/1.15 var(--police-texte);text-align:center;text-decoration:none;white-space:normal;
  transition:transform .15s ease,box-shadow .15s ease}
.wp-block-button.btn>.wp-block-button__link:hover{transform:translateY(-1px)}
.wp-block-button.btn--buy>.wp-block-button__link{background:var(--accent);color:var(--sur-accent)}
.wp-block-button.btn--buy>.wp-block-button__link:hover{box-shadow:0 10px 24px -12px color-mix(in srgb,var(--texte) 55%,transparent);color:var(--sur-accent)}
.wp-block-button.btn--dark>.wp-block-button__link{background:var(--texte);color:var(--fond)}
.wp-block-button.btn--dark>.wp-block-button__link:hover{color:var(--fond)}
.wp-block-button.btn--line>.wp-block-button__link{background:transparent;border-color:var(--texte);color:var(--texte)}
.wp-block-button.btn--line-light>.wp-block-button__link{background:transparent;border-color:var(--fond);color:var(--fond)}
.wp-block-button.btn--line-light>.wp-block-button__link:hover{color:var(--fond)}
.wp-block-button.btn--ghost>.wp-block-button__link{background:var(--fond);border:1.5px solid var(--trait);color:var(--texte)}
.wp-block-button.btn--sm>.wp-block-button__link{min-height:44px;padding:0 16px;font-size:15px}
.wp-block-button.btn--block,.btn--block>.wp-block-button__link{width:100%}
/* flèche dans un rond, à droite du texte */
.wp-block-button:is(.avec-rond,.avec-rond-sombre)>.wp-block-button__link{padding-right:56px}
:is(.avec-rond,.avec-rond-sombre)>.wp-block-button__link::before{content:"";position:absolute;right:7px;top:50%;width:38px;height:38px;margin-top:-19px;border-radius:50%;background:var(--accent)}
:is(.avec-rond,.avec-rond-sombre)>.wp-block-button__link::after{content:"";position:absolute;right:17px;top:50%;width:18px;height:18px;margin-top:-9px;background:var(--sur-accent);
  -webkit-mask:var(--ic-i-arrow) center/contain no-repeat;mask:var(--ic-i-arrow) center/contain no-repeat}
.wp-block-button.avec-rond-sombre>.wp-block-button__link::before{background:var(--texte)}
.wp-block-button.avec-rond-sombre>.wp-block-button__link::after{background:var(--accent)}
/* icône devant le texte d'un bouton */
.wp-block-button[class*="avec-i-"]>.wp-block-button__link::before{content:"";flex:none;width:20px;height:20px;background:currentColor;
  -webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.wp-block-button.btn--ghost[class*="avec-i-"]>.wp-block-button__link::before{background:var(--cyan-profond)}

/* ==========================================================================
   Liens-texte (.link = paragraphe), liens-cartes, icônes
   ========================================================================== */
p.link{display:inline-flex;align-items:center;gap:6px;width:fit-content;align-self:flex-start;font-weight:700;color:var(--cyan-profond)}
p.link a{color:inherit;text-decoration:none}
p.link--strong{color:var(--texte);border-bottom:2px solid var(--accent);padding-bottom:2px}
p.link--lime{color:var(--accent)}
p.avec-fleche::after{content:"";flex:none;width:18px;height:18px;background:currentColor;transition:transform .15s ease;
  -webkit-mask:var(--ic-i-arrow) center/contain no-repeat;mask:var(--ic-i-arrow) center/contain no-repeat}
p.avec-fleche:hover::after,.carte-lien:hover p.avec-fleche::after{transform:translateX(3px)}
/* carte entièrement cliquable : le lien du titre couvre la carte */
.carte-lien{position:relative;cursor:pointer}
.carte-lien :is(h2,h3,strong,p) a{color:inherit;text-decoration:none}
.carte-lien :is(h2,h3,strong,p) a::after{content:"";position:absolute;inset:0;z-index:1}
/* icône seule : un groupe vide « ic i-nom » peint en currentColor */
.ic{display:block;flex:none;width:22px;height:22px;background:currentColor;
  -webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.ic--sm{width:16px;height:16px}
/* icône devant un texte (paragraphe, élément de liste, titre) */
:is(p,li,h1,h2,h3,h4)[class*="avec-i-"]::before{content:"";display:inline-block;flex:none;width:1.15em;height:1.15em;margin-right:.5em;vertical-align:-.2em;
  background:var(--ic-couleur,currentColor);-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.avec-dot::before{content:"";display:inline-block;flex:none;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-right:10px}
.checks{--ic-couleur:var(--cyan-profond)}
.checks--light,.ticks{--ic-couleur:var(--accent)}
.footer__contact{--ic-couleur:var(--cyan)}
.cta-form__alt{--ic-couleur:var(--accent)}
.crumbs{display:block!important;font-size:14px;color:var(--sourdine-clair)}
.crumbs a{color:inherit}
.crumbs a:hover{color:var(--fond)}

/* Tableau comparatif (core/table) */
.wp-block-table.compare__table{margin:0;overflow:visible}
.wp-block-table.compare__table table{width:100%;border-collapse:collapse;min-width:560px;font-size:15px}
.wp-block-table.compare__table :is(th,td){border:0;border-bottom:1px solid var(--trait);padding:16px 18px;text-align:left}
.wp-block-table.compare__table tbody tr:last-child>*{border-bottom:0}
.wp-block-table.compare__table thead{border:0}
.wp-block-table.compare__table thead th{font:700 15px/1.2 var(--police-titres);background:var(--surface)}
.wp-block-table.compare__table tbody td:first-child{font-weight:700;color:var(--sourdine);font-size:14px}
.wp-block-table.compare__table td{font-weight:600}
.wp-block-table.compare__table :is(td,th):last-child{background:color-mix(in srgb,var(--accent) 22%,transparent)}
.wp-block-table.compare__table thead th:last-child{background:var(--accent)}

/* Réduire les écarts que Gutenberg ajoute dans les listes et détails */
.wp-block-details{margin:0}
.wp-block-details summary{list-style:none}
.wp-block-details>p,.wp-block-details>*:not(summary){margin:0}

/* ==========================================================================
   Formulaires (Contact Form 7) dans le registre de la maquette
   ========================================================================== */
.formulaire .wpcf7-form{display:flex;flex-direction:column;gap:14px}
.formulaire .wpcf7-form>p{margin:0}
.formulaire .field{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:700}
.formulaire .wpcf7-form-control-wrap{display:block}
.formulaire :is(input[type=text],input[type=tel],input[type=email],select,textarea){width:100%;min-height:50px;padding:12px 14px;border:1.5px solid var(--trait);border-radius:var(--r-btn);background:var(--fond);font:500 16px/1.4 var(--police-texte);color:var(--texte)}
.formulaire textarea{min-height:92px;resize:vertical}
.formulaire :is(input,select,textarea):focus{outline:none;border-color:var(--texte);box-shadow:0 0 0 3px color-mix(in srgb,var(--cyan) 25%,transparent)}
.formulaire .lead-form__row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.formulaire .envoi{margin:4px 0 0}
.formulaire .envoi input[type=submit]{min-height:52px;padding:0 24px;border:0;border-radius:var(--r-btn);background:var(--accent);color:var(--sur-accent);font:700 16px/1 var(--police-texte);cursor:pointer}
.formulaire .envoi--sombre input[type=submit]{background:var(--texte);color:var(--fond);width:100%}
.formulaire .note{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--sourdine)}
.formulaire .wpcf7-response-output{margin:6px 0 0!important;border-radius:var(--r-btn)}
.formulaire .wpcf7-acceptance label{display:flex;gap:10px;font-size:14px;color:var(--sourdine);font-weight:500}
.formulaire input[type=file]{font-size:14px}
.lead-form.formulaire,.formulaire.lead-form{display:block}
/* puces de choix (radio) */
.chips .wpcf7-radio{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.chips .wpcf7-list-item{margin:0}
.chips label{position:relative;display:block;cursor:pointer}
.chips input{position:absolute;left:0;top:0;width:1px;height:1px;opacity:0;pointer-events:none}
.formulaire .wpcf7-form-control-wrap,.formulaire :is(input,select,textarea){min-width:0;max-width:100%}
.cta-form__box>*{min-width:0}
.chips .wpcf7-list-item-label{display:flex;align-items:center;justify-content:center;min-height:50px;padding:8px 10px;border:1.5px solid var(--trait);border-radius:var(--r-btn);font-weight:700;font-size:14px;transition:.15s}
.chips input:checked+.wpcf7-list-item-label{border-color:var(--texte);background:var(--surface);box-shadow:inset 0 0 0 1px var(--texte)}
.chips input:focus-visible+.wpcf7-list-item-label{outline:3px solid var(--cyan)}
.formulaire .field em{font-style:normal;font-weight:500;color:var(--sourdine)}
/* barre de rappel rapide sous le héros */
.quick{position:relative;z-index:2;margin:-96px clamp(16px,3vw,40px) 0;background:var(--fond);border-radius:var(--r-carte);padding:22px 24px;box-shadow:var(--ombre)}
.quick__title{display:flex;flex-direction:column;gap:8px}
.quick__eyebrow{font:800 12px/1.2 var(--police-texte);letter-spacing:.12em;text-transform:uppercase;color:var(--cyan-profond)}
.quick h2{font-size:19px;letter-spacing:-.02em;line-height:1.2}
.quick{display:grid!important;grid-template-columns:200px minmax(0,1fr)!important;gap:20px!important;align-items:center!important}
.quick .wpcf7-form{display:grid;grid-template-columns:minmax(0,1fr) 200px 190px;gap:14px;align-items:end}
.quick .wpcf7-form>.wpcf7-response-output{grid-column:1/-1}
.quick .envoi input[type=submit]{width:100%;background:var(--texte);color:var(--fond)}

/* ==========================================================================
   En-tête (parts/header.html) et pied de page (parts/footer.html)
   ========================================================================== */
header.wp-block-template-part{display:contents}
.topbar{background:var(--texte);color:var(--fond);font-size:14px}
.topbar__row{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:40px}
.topbar p{display:flex;align-items:center}
.topbar a{font-weight:700;color:inherit}
/* PIÈGE : pas de backdrop-filter ni de transform ici — ils emprisonnent le panneau
   du menu mobile (position:fixed) dans la hauteur de l'en-tête */
.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:24px;min-height:var(--entete-h)}
.entete-logo img{width:auto;max-height:40px}
.entete-rangee .wp-block-navigation.menu{margin-inline:auto}
.menu .wp-block-navigation__container{gap:2px}
.menu .wp-block-navigation-item__content{padding:12px 10px;font-weight:700;font-size:15px;border-radius:10px;text-decoration:none}
.menu .wp-block-navigation-item__content:hover,.menu .current-menu-item>.wp-block-navigation-item__content{color:var(--cyan-profond);text-decoration:none}
.menu .wp-block-navigation__submenu-container{min-width:280px;padding:10px 0;border:1px solid var(--trait)!important;border-radius:var(--r-carte);
  background:var(--fond)!important;color:var(--texte)!important;box-shadow:var(--ombre)}
.menu .wp-block-navigation__submenu-container .wp-block-navigation-item__content{padding:10px 18px;font-weight:600}
.entete-actions{display:flex;align-items:center;gap:8px}
/* lien d'appel à l'action du panneau mobile, en bouton */
.wp-block-navigation.menu .is-menu-open .menu-cta{border:0!important;margin-top:20px}
.wp-block-navigation.menu .is-menu-open .menu-cta .wp-block-navigation-item__content{background:var(--accent);color:var(--sur-accent);
  border-radius:var(--r-btn);text-align:center;padding:16px!important;font-family:var(--police-texte)!important;font-size:17px!important;font-weight:800}
.entete-panier .wc-block-mini-cart__button{color:var(--texte);padding:8px}
.wc-block-mini-cart__badge{background:var(--accent)!important;color:var(--sur-accent)!important}

.footer{padding-top:var(--espace);padding-bottom:var(--gouttiere)}
.footer__box{position:relative;overflow:hidden;background:var(--texte);color:var(--fond);border-radius:var(--r-bloc);padding:clamp(28px,5vw,64px) clamp(24px,5vw,64px) 0}
.footer__cta{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;padding-bottom:clamp(32px,4vw,52px);border-bottom:1px solid var(--trait-clair)}
.footer__cta h2{max-width:22ch;font-size:clamp(26px,3vw,38px);color:var(--fond)}
.footer__cta h2 em{color:var(--cyan)}
.footer__cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:28px;padding-block:clamp(32px,4vw,52px)}
.footer__brand{display:flex;flex-direction:column;gap:14px;color:var(--sourdine-clair);font-size:15px;max-width:36ch}
.footer__brand .wp-block-site-logo img{width:auto;max-height:40px}
.footer__contact{display:flex;align-items:center;color:var(--fond);font-weight:600}
.footer h3{font:800 13px/1 var(--police-texte);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:16px}
.footer .nav-col li+li{margin-top:10px}
.footer .nav-col a{color:var(--sourdine-clair);font-size:15px}
.footer .nav-col a:hover{color:var(--fond)}
.footer__legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:20px 0;border-top:1px solid var(--trait-clair);font-size:14px;color:var(--sourdine-clair)}
.footer__legal ul{display:flex;gap:20px}
.footer__legal a{color:inherit}
.footer__giant{font:800 clamp(64px,18.5vw,270px)/.74 var(--police-titres);letter-spacing:-.05em;color:color-mix(in srgb,var(--fond) 6%,transparent);text-align:center;margin:4px -0.04em -0.06em;user-select:none}
.wa-float{position:fixed;right:18px;bottom:18px;z-index:50;margin:0}
body:has(.is-menu-open) .wa-float{display:none}
.wa-float>.wp-block-button__link{display:grid;place-items:center;width:56px;height:56px;padding:0;border-radius:50%;background:var(--accent);color:var(--sur-accent);box-shadow:var(--ombre);font-size:0}
.wa-float>.wp-block-button__link::before{content:"";width:26px;height:26px;background:currentColor;-webkit-mask:var(--ic-i-chat) center/contain no-repeat;mask:var(--ic-i-chat) center/contain no-repeat}

@media (max-width:1100px){
  .entete-rangee{gap:8px;min-height:66px}
  .entete-rangee .wp-block-navigation.menu{margin-inline:0}
  .footer__cols{grid-template-columns:1fr 1fr}
  .footer__brand{grid-column:1/-1}
}
@media (max-width:1024px){
  .quick{grid-template-columns:1fr!important}
}
@media (max-width:782px){
  .admin-bar .entete{top:46px}
}
@media (max-width:700px){
  .hide-sm,.hide-md{display:none!important}
  .topbar{font-size:12.5px}
  .topbar__row{justify-content:center;text-align:center;min-height:36px;padding-block:6px}
  .entete-logo img{max-height:32px}
  .entete .btn--sm>.wp-block-button__link{min-height:40px;padding:0 12px;font-size:14px}
  .quick{margin:-72px 10px 0;padding:18px}
  .cta-form__box{grid-template-columns:minmax(0,1fr)!important}
  .quick .wpcf7-form{grid-template-columns:1fr}
  .chips .wpcf7-radio{grid-template-columns:1fr 1fr}
  .formulaire .lead-form__row{grid-template-columns:1fr}
  .footer__box{border-radius:22px}
  .footer__cta{flex-direction:column;align-items:stretch}
  .footer__cta .wp-block-button,.footer__cta .wp-block-button__link{width:100%}
  .footer__cols{grid-template-columns:1fr}
  .footer__legal{flex-direction:column}
  .wa-float{right:14px;bottom:14px}
}

.footer__brand .wp-block-site-logo img{filter:brightness(0) invert(1)}


/* ==========================================================================
   11 · Composants de la maquette (pages vitrine), adaptés au DOM des blocs
   ========================================================================== */
.badge { position: absolute; top: 14px; left: 14px; z-index: 1; padding: 6px 12px; border-radius: 99px; font: 800 13px/1 var(--police-texte); }
.badge--dark { background: var(--promo); color: var(--texte-clair); }

.eyebrow { font: 800 13px/1.2 var(--police-texte); letter-spacing: .14em; text-transform: uppercase; color: var(--cyan-profond); }
.eyebrow--lime { color: var(--accent); }
.lead { font-size: clamp(16px, 1.3vw, 18px); color: var(--sourdine); max-width: 58ch; }
.lead--light { color: var(--sourdine-clair); }

.price { font: 700 20px/1.2 var(--police-titres); letter-spacing: -.01em; }
.price del { font: 500 14px var(--police-texte); color: var(--sourdine); margin-left: 6px; }

.actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
.pill { align-self: flex-start; display: inline-flex; align-items: center; background: var(--fond); padding: 8px 16px; border-radius: 99px; font-size: 14px; font-weight: 700; }
.pill--dark { background: color-mix(in srgb,var(--texte) 60%,transparent); color: var(--texte-clair); backdrop-filter: blur(6px); }

.spec { display: flex; flex-direction: column; gap: 6px; font-size: 14px; }
.spec :is(li,.li) { display: flex; gap: 8px; }
.spec :is(li,.li)::before { content: ""; width: 6px; height: 6px; margin-top: 8px; border-radius: 50%; background: var(--cyan); flex: none; }

/* ---------- Héros ---------- */
.hero { padding-top: 16px; }
.hero__box { position: relative; display: flex; align-items: center; border-radius: var(--r-bloc); overflow: hidden; padding: clamp(28px, 5vw, 64px) clamp(28px, 5vw, 64px) 130px; min-height: 660px; background: var(--texte); isolation: isolate; }
.hero__bg img { position: absolute; top: 0; right: 0; left: 36%; width: 64%; height: 100%; object-fit: cover; object-position: 45% 30%; z-index: -2; }
.hero__box::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, var(--texte) 36%, color-mix(in srgb,var(--texte) 75%,transparent) 44%, color-mix(in srgb,var(--texte) 0%,transparent) 62%), linear-gradient(0deg, color-mix(in srgb,var(--texte) 50%,transparent), transparent 35%); }
.hero__content { display: flex; flex-direction: column; gap: 22px; color: var(--texte-clair); max-width: 600px; }
.hero h1 { font-size: clamp(36px, 5vw, 66px); font-weight: 800; letter-spacing: -.035em; line-height: 1.03; text-wrap: balance; }
.hero h1 em { color: var(--accent); }


.hero__proofs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; padding-top: 52px; }
.hero__proofs :is(li,.li) { display: flex; align-items: center; gap: 14px; }
.proof__ic { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; border: 1.5px solid var(--trait); flex: none; }
.proof__ic--hi { background: var(--accent); border-color: var(--accent); }
.hero__proofs p { font-size: 14px; color: var(--sourdine); line-height: 1.35; }
.hero__proofs strong { display: block; color: var(--texte); font-size: 15px; }

/* ---------- Marques ---------- */
.brands { display: flex; align-items: center; gap: 28px; padding-block: 40px 0; }
.brands p { flex: none; max-width: 17ch; font-size: 13px; font-weight: 700; color: var(--sourdine); line-height: 1.35; }
.brands ul { flex: 1; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 14px 28px; padding: 22px 28px; border: 1px solid var(--trait); border-radius: var(--r-carte); }
.brands :is(li,.li) { font: 800 18px/1 var(--police-titres); letter-spacing: -.02em; color: var(--sourdine); opacity: .75; white-space: nowrap; }

/* ---------- En-têtes de section ---------- */
.section { padding-top: var(--espace); }
.head { display: flex; flex-direction: column; gap: 12px; margin-bottom: clamp(28px, 3.5vw, 44px); }
.head p:not(.eyebrow) { color: var(--sourdine); max-width: 56ch; }
.head--center { align-items: center; text-align: center; }
.head--split { flex-direction: row; align-items: flex-end; justify-content: space-between; gap: 24px; }
.head--split h2 { margin-top: 12px; max-width: 20ch; }
.head__aside { max-width: 38ch !important; }

/* ---------- Problème ---------- */
.problem { padding-top: var(--espace); }
.problem__box { display: grid; grid-template-columns: .95fr 1.05fr; gap: clamp(28px, 5vw, 64px); background: var(--texte); color: var(--texte-clair); border-radius: var(--r-bloc); padding: clamp(28px, 5vw, 64px); }
.problem__intro { display: flex; flex-direction: column; gap: 20px; }
.problem h2 em { color: var(--cyan); }
.problem__img { margin-top: auto; border-radius: var(--r-carte); overflow: hidden; }
.problem__img img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.impacts { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.impacts :is(li,.li) { display: flex; flex-direction: column; gap: 6px; padding: 22px; border-radius: var(--r-carte); background: var(--petrole-2); border: 1px solid var(--trait-clair); }
.impacts strong { font: 700 17px/1.25 var(--police-titres); }
.impacts p { font-size: 14px; color: var(--sourdine-clair); }
.impacts__ic { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: color-mix(in srgb,var(--cyan) 16%,transparent); color: var(--cyan); margin-bottom: 6px; }
.impacts__answer { background: var(--cyan) !important; color: var(--texte); border-color: var(--cyan) !important; }
.impacts__answer p { color: var(--texte) !important; }
.impacts__answer .link--lime { color: var(--texte); margin-top: auto; border-bottom: 2px solid var(--texte); align-self: flex-start; }

/* ---------- Comparatif ---------- */
.compare { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(28px, 5vw, 72px); align-items: center; }
.compare__text { display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
.table-wrap { overflow-x: auto; border: 1px solid var(--trait); border-radius: var(--r-carte); }

/* ---------- Offres ---------- */
.offers { margin-top: var(--espace); padding-block: var(--espace); background: var(--surface); }
.offers__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.offer { display: grid; grid-template-columns: 44% 1fr; background: var(--fond); border-radius: var(--r-carte); overflow: hidden; transition: box-shadow .2s ease, transform .2s ease; }
.offer:hover { box-shadow: var(--ombre); transform: translateY(-3px); }
.offer__img { position: relative; min-height: 100%; }
.offer__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.offer__tag { position: absolute; left: 12px; top: 12px; display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 99px; background: var(--fond); font-size: 13px; font-weight: 800; }
.offer__tag .ic { width: 16px; height: 16px; color: var(--cyan-profond); }
.offer__body { display: flex; flex-direction: column; gap: 12px; padding: 26px; }
.offer__body > p { color: var(--sourdine); font-size: 15px; }
.offer .spec { margin-bottom: 4px; flex: 1; }
.offer .link { align-self: flex-start; }

/* ---------- Domaines ---------- */
.domains__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border: 1px solid var(--trait); border-radius: var(--r-carte); overflow: hidden; }
.domains__grid :is(li,.li) { display: flex; flex-direction: column; gap: 8px; padding: 28px; border-right: 1px solid var(--trait); border-bottom: 1px solid var(--trait); }
.domains__grid :is(li,.li):nth-child(3n) { border-right: 0; }
.domains__grid :is(li,.li):nth-last-child(-n+3) { border-bottom: 0; }
.domains__grid p { font-size: 14px; color: var(--sourdine); }
.dom__ic { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: var(--surface); color: var(--cyan-profond); margin-bottom: 8px; }
.dom--hi { background: var(--texte); color: var(--texte-clair); }
.dom--hi p { color: var(--sourdine-clair) !important; }
.dom--hi .dom__ic { background: var(--accent); color: var(--sur-accent); }

/* ---------- Budgets ---------- */
.budget__box { position: relative; overflow: hidden; background: var(--surface); border-radius: var(--r-bloc); padding: clamp(28px, 5vw, 64px); }
.budget__box::after { content: ""; position: absolute; right: -120px; top: -160px; width: 360px; height: 360px; border-radius: 50%; background: var(--cyan); clip-path: inset(50% 0 0 0); opacity: .9; pointer-events: none; }
.budget__box > * { position: relative; z-index: 1; }
.tiers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; align-items: end; }
.tier { display: flex; flex-direction: column; gap: 10px; padding: 26px; border-radius: var(--r-carte); background: var(--fond); }
.tier p { color: var(--sourdine); font-size: 15px; }
.tier h3 { font-size: 24px; }
.tier__lvl { font: 800 12px/1 var(--police-texte); letter-spacing: .12em; text-transform: uppercase; color: var(--cyan-profond); }
.tier .spec { margin-top: 4px; padding-top: 14px; border-top: 1px solid var(--trait); }
.tier:nth-child(2) { min-height: 104%; }
.tier--hi { background: var(--texte); color: var(--texte-clair); padding-block: 36px; }
.tier--hi p { color: var(--sourdine-clair); }
.tier--hi .tier__lvl { color: var(--accent); }
.tier--hi .spec { border-color: var(--trait-clair); }
.tier--hi .spec :is(li,.li)::before { background: var(--accent); }
.budget__fin { display: flex; align-items: center; gap: 12px; margin-top: 22px; font-size: 15px; color: var(--sourdine); }
.budget__fin strong { color: var(--texte); }
.budget__fin .ic { color: var(--cyan-profond); }

/* ---------- Étapes ---------- */
.timeline { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; counter-reset: s; }
.timeline :is(li,.li) { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 24px 20px; border-radius: var(--r-carte); border: 1px solid var(--trait); }
.timeline :is(li,.li)::after { content: ""; position: absolute; top: 42px; right: -13px; width: 14px; height: 2px; background: var(--texte); }
.timeline :is(li,.li):last-child::after { display: none; }
.tl__n { font: 800 32px/1 var(--police-titres); letter-spacing: -.04em; color: var(--cyan); margin-bottom: 10px; }
.timeline h3 { font-size: 17px; }
.timeline p { font-size: 14px; color: var(--sourdine); }
.tl--hi { background: var(--accent); border-color: var(--accent) !important; }
.tl--hi .tl__n { color: var(--texte); }
.tl--hi p { color: var(--texte); }

/* ---------- Audit ---------- */
.audit { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(28px, 6vw, 80px); align-items: center; }
.audit__media { position: relative; }
.audit__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--r-bloc); }
.audit__badge { position: absolute; right: -28px; bottom: 36px; display: flex; align-items: center; gap: 12px; background: var(--fond); padding: 14px 20px 14px 14px; border-radius: 16px; box-shadow: var(--ombre); font-size: 14px; color: var(--sourdine); }
.audit__badge strong { display: block; color: var(--texte); font-size: 16px; }
.audit__badge-ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--accent); }
.audit__text { display: flex; flex-direction: column; gap: 20px; }
.lead-form { display: flex; flex-direction: column; gap: 14px; padding: 24px; border-radius: var(--r-carte); background: var(--surface); }
.lead-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

/* ---------- Dirigeant ---------- */
.leader { margin-top: var(--espace); background: var(--texte); color: var(--texte-clair); padding-block: var(--espace); position: relative; overflow: hidden; }
.leader::before { content: ""; position: absolute; left: -140px; bottom: -200px; width: 420px; height: 420px; border-radius: 50%; background: var(--cyan); clip-path: inset(0 0 50% 0); opacity: .18; }
.leader__grid { position: relative; display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(28px, 6vw, 88px); align-items: center; }
.leader__ph { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; aspect-ratio: 4 / 5; border-radius: var(--r-bloc); background: var(--petrole-2); border: 1.5px dashed var(--trait-clair); color: var(--sourdine-clair); text-align: center; font-weight: 700; }
.leader__ph .ic { width: 48px; height: 48px; color: var(--cyan); }
.leader__text { display: flex; flex-direction: column; gap: 24px; }
.leader h2 em { color: var(--accent); }
.leader :is(blockquote,.blockquote) { margin: 0; padding-left: 22px; border-left: 3px solid var(--accent); }
.leader :is(blockquote,.blockquote) p { font-size: 18px; color: var(--sourdine-clair); }
.leader :is(blockquote,.blockquote) footer { margin-top: 14px; display: flex; flex-direction: column; font-size: 14px; color: var(--sourdine-clair); }
.leader :is(blockquote,.blockquote) strong { font-size: 16px; color: var(--texte-clair); }
.mission { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.mission div { padding: 22px; border-radius: var(--r-carte); background: var(--petrole-2); border: 1px solid var(--trait-clair); }
.mission h3 { color: var(--cyan); margin-bottom: 8px; font-size: 16px; }
.mission p { font-size: 15px; color: var(--sourdine-clair); }

/* ---------- Impact ---------- */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-block: 1px solid var(--trait); margin-bottom: 18px; }
.stats :is(li,.li) { display: flex; flex-direction: column; gap: 4px; padding: 28px 20px; text-align: center; }
.stats :is(li,.li) + :is(li,.li) { border-left: 1px solid var(--trait); }
.stats strong { font: 800 clamp(30px, 3.6vw, 46px)/1 var(--police-titres); letter-spacing: -.04em; }
.stats :is(span,.span) { font-size: 14px; color: var(--sourdine); }
.impact__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.impact__grid article { display: flex; flex-direction: column; gap: 8px; padding: 26px; border-radius: var(--r-carte); background: var(--surface); }
.impact__grid p { font-size: 15px; color: var(--sourdine); }
.impact__ic { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--accent); margin-bottom: 8px; }

/* ---------- Réalisations ---------- */
.works__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 16px; }
.work { position: relative; border-radius: var(--r-carte); overflow: hidden; min-height: 440px; background: var(--texte); }
.work img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.work:hover img { transform: scale(1.04); }
.work::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, color-mix(in srgb,var(--texte) 88%,transparent), transparent 55%); }
.work__cap { position: absolute; left: 20px; right: 20px; bottom: 20px; z-index: 1; color: var(--texte-clair); display: flex; flex-direction: column; gap: 6px; }
.work__cap :is(span,.span) { align-self: flex-start; padding: 5px 10px; border-radius: 99px; background: var(--accent); color: var(--sur-accent); font-size: 12px; font-weight: 800; }

/* ---------- Boutique ---------- */
.equip { margin-top: var(--espace); padding-block: var(--espace); background: var(--surface); }
.grid-products { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.card { display: flex; flex-direction: column; border-radius: var(--r-carte); overflow: hidden; background: var(--fond); transition: box-shadow .2s ease, transform .2s ease; }
.card:hover { box-shadow: var(--ombre); transform: translateY(-3px); }
.card__img { position: relative; display: block; background: var(--fond); aspect-ratio: 1; border-bottom: 1px solid var(--trait); }
.card__img img { width: 100%; height: 100%; object-fit: cover; }
.card__body { display: flex; flex-direction: column; gap: 6px; padding: 18px; flex: 1; }
.card__cat { font-size: 13px; font-weight: 700; color: var(--cyan-profond); }
.card h3 { flex: 1; }
.card .price { margin: 4px 0 12px; }
.card .btn { min-height: 48px; }
.equip__more { text-align: center; margin-top: 28px; }

/* ---------- Catalogue + carrières ---------- */
.duo { display: grid; grid-template-columns: 1.1fr .9fr; gap: 16px; }
.duo__card { position: relative; display: flex; gap: 24px; border-radius: var(--r-bloc); overflow: hidden; padding: clamp(28px, 4vw, 48px); min-height: 340px; }
.duo__text { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 14px; align-items: flex-start; justify-content: center; }
.duo__text h2 { font-size: clamp(26px, 2.6vw, 34px); }
.duo__text p:not(.eyebrow) { color: var(--sourdine); max-width: 40ch; }
.duo__card--cat { background: var(--surface); align-items: center; }
.duo__doc { position: relative; flex: none; width: 190px; height: 250px; margin-right: 10px; }
.doc { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; gap: 8px; padding: 20px; border-radius: 12px; background: var(--texte); color: var(--texte-clair); box-shadow: var(--ombre); rotate: 4deg; }
.doc--back { background: var(--cyan); rotate: -6deg; translate: -18px 6px; }
.doc__logo { position: absolute; top: 20px; left: 20px; width: 40px; height: 20px; border-radius: 40px 40px 0 0; background: var(--accent); }
.doc strong { font: 800 24px/1.05 var(--police-titres); }
.doc em { font-style: normal; font-size: 12px; color: var(--sourdine-clair); }
.duo__card--jobs { background: var(--texte); color: var(--texte-clair); }
.duo__card--jobs img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .32; }
.duo__card--jobs::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, color-mix(in srgb,var(--texte) 95%,transparent), color-mix(in srgb,var(--texte) 30%,transparent)); }
.duo__card--jobs h2 em { color: var(--accent); }
.duo__card--jobs .duo__text p:not(.eyebrow) { color: var(--sourdine-clair); }

/* ---------- FAQ ---------- */
.faq { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(28px, 5vw, 80px); align-items: start; }
.faq__side { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 110px; }
.faq__side > p:not(.eyebrow) { color: var(--sourdine); }
.wa-card { display: grid; grid-template-columns: 110px 1fr; gap: 16px; align-items: center; padding: 12px; border-radius: var(--r-carte); background: var(--surface); margin-top: 8px; }
.wa-card img { width: 110px; height: 130px; object-fit: cover; object-position: 35% 50%; border-radius: 14px; }
.wa-card div { display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
.wa-card :is(span,.span) { font-size: 14px; color: var(--sourdine); margin-bottom: 8px; }
.wa-card .btn { min-height: 44px; padding: 0 16px; font-size: 15px; }
.faq__list { border-top: 1px solid var(--trait); }
details { border-bottom: 1px solid var(--trait); }
summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 22px 0; cursor: pointer; list-style: none; font: 700 clamp(16px, 1.5vw, 19px)/1.3 var(--police-titres); letter-spacing: -.01em; }
summary::-webkit-details-marker { display: none; }
summary::after { content: "+"; display: grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--surface); font: 600 22px/1 var(--police-texte); transition: transform .2s ease, background-color .2s ease; }
details[open] summary::after { transform: rotate(45deg); background: var(--accent); }
details p { padding: 0 48px 22px 0; color: var(--sourdine); }

/* ---------- Pied de page ---------- */

/* ---------- Flottants ---------- */

/* =========================================================
   Page Carrières
   ========================================================= */
.page-hero { padding-top: 16px; }
.page-hero__box { position: relative; display: grid; grid-template-columns: 1.1fr .9fr; gap: 0; border-radius: var(--r-bloc); overflow: hidden; background: var(--texte); color: var(--texte-clair); }
.page-hero__text { display: flex; flex-direction: column; gap: 22px; padding: clamp(28px, 5vw, 64px); justify-content: center; }
.page-hero__text h1 { font-size: clamp(34px, 4.6vw, 60px); font-weight: 800; letter-spacing: -.035em; line-height: 1.04; }
.page-hero__text h1 em { color: var(--accent); }
.page-hero__img { position: relative; min-height: 460px; }
.page-hero__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.crumbs { display: flex; gap: 8px; font-size: 14px; color: var(--sourdine-clair); }
.crumbs a:hover { color: var(--texte-clair); }

.values { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.values article { display: flex; flex-direction: column; gap: 8px; padding: 26px; border-radius: var(--r-carte); background: var(--surface); }
.values p { font-size: 15px; color: var(--sourdine); }

.jobs { display: flex; flex-direction: column; gap: 12px; }
.job { display: grid; grid-template-columns: 1fr auto; gap: 18px 28px; align-items: center; padding: 24px 28px; border: 1px solid var(--trait); border-radius: var(--r-carte); transition: border-color .15s ease, box-shadow .15s ease; }
.job:hover { border-color: var(--texte); box-shadow: var(--ombre); }
.job h3 { font-size: 20px; }
.job__meta { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.job__meta :is(span,.span) { padding: 5px 10px; border-radius: 99px; background: var(--surface); font-size: 13px; font-weight: 700; }
.job p { grid-column: 1 / 2; font-size: 15px; color: var(--sourdine); max-width: 70ch; }
.job .btn { grid-row: 1 / 3; grid-column: 2; }

.path { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.path :is(li,.li) { position: relative; padding: 26px 22px; border-radius: var(--r-carte); background: var(--fond); }
.path :is(li,.li)::after { content: ""; position: absolute; top: 50%; right: -12px; width: 12px; height: 2px; background: var(--texte); }
.path :is(li,.li):last-child::after { display: none; }
.path :is(span,.span) { font: 800 13px/1 var(--police-texte); letter-spacing: .12em; text-transform: uppercase; color: var(--cyan-profond); }
.path h3 { margin: 10px 0 6px; font-size: 20px; }
.path p { font-size: 14px; color: var(--sourdine); }
.path :is(li,.li):last-child { background: var(--accent); }
.path :is(li,.li):last-child :is(span,.span), .path :is(li,.li):last-child p { color: var(--texte); }
.career-path { margin-top: var(--espace); padding-block: var(--espace); background: var(--surface); }

.apply { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(28px, 5vw, 72px); align-items: start; }
.apply__side { display: flex; flex-direction: column; gap: 18px; }
.apply__side ol { display: flex; flex-direction: column; gap: 14px; counter-reset: a; }
.apply__side :is(li,.li) { display: flex; gap: 14px; align-items: flex-start; }
.apply__side :is(li,.li)::before { counter-increment: a; content: counter(a); display: grid; place-items: center; flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--accent); font: 800 14px/1 var(--police-titres); }
.apply__side :is(li,.li) p { color: var(--sourdine); font-size: 15px; }
.apply__side :is(li,.li) strong { display: block; color: var(--texte); }
.file-drop { display: flex; align-items: center; gap: 14px; padding: 16px; border: 1.5px dashed var(--trait); border-radius: var(--r-btn); background: var(--fond); font-weight: 600; font-size: 15px; color: var(--sourdine); cursor: pointer; }
.file-drop .ic { color: var(--cyan-profond); }
.file-drop input { position: absolute; opacity: 0; width: 1px; }
.check { display: flex; gap: 10px; font-size: 14px; color: var(--sourdine); align-items: flex-start; }
.check input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--texte); }

/* =========================================================
   Pages intérieures (solutions, audit, réalisations, à propos, contact)
   ========================================================= */
.page-hero__text .pill { margin-bottom: -6px; }
.page-hero--compact .page-hero__img { min-height: 340px; }
.checks { display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 14px; font-weight: 700; }
.checks :is(li,.li) { display: inline-flex; align-items: center; gap: 6px; }
.checks .ic { width: 18px; height: 18px; color: var(--cyan-profond); stroke-width: 2.6; }
.checks--light { color: var(--texte-clair); }
.checks--light .ic { color: var(--accent); }
.values--3 { grid-template-columns: repeat(3, 1fr); }
.values h3 a:hover, .domains__grid h3 a:hover, .offer h3 a:hover { color: var(--cyan-profond); }
.dom--hi h3 a:hover { color: var(--accent); }

.components { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(28px, 5vw, 72px); align-items: start; }
.components__side { display: flex; flex-direction: column; gap: 18px; position: sticky; top: 110px; }
.components__side img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-carte); margin-top: 8px; }
.components__list { display: flex; flex-direction: column; border-top: 1px solid var(--trait); }
.components__list :is(li,.li) { display: flex; gap: 18px; padding: 22px 0; border-bottom: 1px solid var(--trait); }
.components__list p { color: var(--sourdine); font-size: 15px; margin-top: 4px; }
.comp__ic { display: grid; place-items: center; flex: none; width: 48px; height: 48px; border-radius: 14px; background: var(--surface); color: var(--cyan-profond); }
.components__list :is(li,.li):first-child .comp__ic { background: var(--accent); color: var(--sur-accent); }

.faq-solo .faq__list { max-width: 860px; margin-inline: auto; }

.cta-form__box { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(24px, 4vw, 56px); align-items: center; background: var(--texte); color: var(--texte-clair); border-radius: var(--r-bloc); padding: clamp(24px, 5vw, 64px); }
.cta-form__text { display: flex; flex-direction: column; gap: 16px; }
.cta-form__text h2 em { color: var(--accent); }
.cta-form__text > p { color: var(--sourdine-clair); }
.cta-form__alt { display: flex; flex-direction: column; gap: 10px; margin-top: 6px; }
.cta-form__alt a { display: inline-flex; align-items: center; gap: 10px; font-weight: 800; }
.cta-form__alt .ic { color: var(--accent); }
.cta-form .lead-form { background: var(--fond); color: var(--texte); }

.xlinks__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.xlink { display: flex; flex-direction: column; gap: 14px; padding: 20px; border: 1px solid var(--trait); border-radius: var(--r-carte); font: 700 16px/1.25 var(--police-titres); transition: border-color .15s ease, transform .15s ease; }
.xlink:hover { border-color: var(--texte); transform: translateY(-2px); }
.xlink .dom__ic { margin: 0; }
.xlink__arrow { margin-top: auto; color: var(--cyan-profond); }

.shop-link__box { display: grid; grid-template-columns: 140px 1fr auto; gap: 28px; align-items: center; padding: 20px 28px 20px 20px; border: 1px solid var(--trait); border-radius: var(--r-carte); }
.shop-link__box img { width: 140px; height: 140px; object-fit: cover; border-radius: 14px; background: var(--surface); }
.shop-link__box h2 { font-size: 24px; margin: 6px 0; }
.shop-link__box p:not(.eyebrow):not(.price) { color: var(--sourdine); }
.shop-link__buy { display: flex; flex-direction: column; gap: 10px; align-items: flex-end; }

.deliver__box { display: flex; justify-content: space-between; align-items: center; gap: 40px; background: var(--texte); color: var(--texte-clair); border-radius: var(--r-bloc); padding: clamp(28px, 5vw, 64px); }
.deliver__text { display: flex; flex-direction: column; gap: 20px; max-width: 640px; }
.deliver__text h2 em { color: var(--accent); }
.ticks { display: flex; flex-direction: column; gap: 12px; }
.ticks :is(li,.li) { display: flex; gap: 12px; color: var(--sourdine-clair); }
.ticks strong { color: var(--texte-clair); }
.ticks .ic { color: var(--accent); stroke-width: 2.6; margin-top: 1px; }

.projects__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.project { display: flex; flex-direction: column; border: 1px solid var(--trait); border-radius: var(--r-carte); overflow: hidden; }
.project__img { position: relative; aspect-ratio: 4 / 3; background: var(--surface); }
.project__img img { width: 100%; height: 100%; object-fit: cover; }
.project__tag { position: absolute; left: 12px; top: 12px; padding: 6px 11px; border-radius: 99px; background: var(--accent); font-size: 12px; font-weight: 800; }
.project__body { display: flex; flex-direction: column; gap: 14px; padding: 22px; }
.project :is(dl,.dl) { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 0; padding: 12px 0; border-block: 1px solid var(--trait); }
.project :is(dt,.dt) { font-size: 12px; color: var(--sourdine); font-weight: 700; }
.project :is(dd,.dd) { margin: 0; font: 700 15px/1.3 var(--police-titres); }
.project p { color: var(--sourdine); font-size: 15px; }

.story { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 72px); align-items: center; }
.story__media img { width: 100%; aspect-ratio: 4 / 3.4; object-fit: cover; border-radius: var(--r-bloc); }
.story__text { display: flex; flex-direction: column; gap: 18px; }
.leader .link--lime { align-self: flex-start; border-bottom: 2px solid var(--accent); padding-bottom: 2px; }

.contact-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.ccard { display: flex; flex-direction: column; gap: 4px; padding: 24px; border: 1px solid var(--trait); border-radius: var(--r-carte); transition: border-color .15s ease; }
.ccard strong { font: 700 18px/1.2 var(--police-titres); margin-top: 10px; }
.ccard :is(span,.span):not(.ccard__ic) { font-weight: 700; word-break: break-word; }
.ccard em { font-style: normal; font-size: 14px; color: var(--sourdine); }
.ccard__ic { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--surface); color: var(--cyan-profond); }
.ccard--hi { background: var(--accent); border-color: var(--accent); }
.ccard--hi .ccard__ic { background: var(--texte); color: var(--accent); }
.ccard--hi em { color: var(--texte); }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 1240px) {
  .timeline { grid-template-columns: repeat(3, 1fr); }
  .timeline :is(li,.li):nth-child(3)::after { display: none; }
}

@media (max-width: 1100px) {
  .hero__box { min-height: 0; padding-top: 300px; padding-bottom: 120px; align-items: flex-end; }
  .hero__box::before { background: linear-gradient(0deg, var(--texte) 50%, color-mix(in srgb,var(--texte) 40%,transparent) 75%, color-mix(in srgb,var(--texte) 0%,transparent)); }
  .hero__bg img { left: 0; width: 100%; height: 62%; object-position: 50% 25%; }
  .hero__proofs, .grid-products { grid-template-columns: repeat(2, 1fr); }
  .problem__box, .compare, .audit, .faq, .leader__grid, .apply, .page-hero__box { grid-template-columns: 1fr; }
  .offers__grid { grid-template-columns: 1fr; }
  .offer { grid-template-columns: 40% 1fr; }
  .domains__grid { grid-template-columns: 1fr 1fr; }
  .domains__grid :is(li,.li) { border-right: 1px solid var(--trait) !important; border-bottom: 1px solid var(--trait) !important; }
  .domains__grid :is(li,.li):nth-child(2n) { border-right: 0 !important; }
  .domains__grid :is(li,.li):nth-last-child(-n+2) { border-bottom: 0 !important; }
  .tiers { grid-template-columns: 1fr; }
  .tier:nth-child(2) { min-height: 0; }
  .audit__media { max-width: 520px; }
  .audit__badge { right: 16px; }
  .faq__side { position: static; }
  .leader__photo { max-width: 340px; }
  .stats { grid-template-columns: 1fr 1fr; }
  .stats :is(li,.li):nth-child(3) { border-left: 0; }
  .stats :is(li,.li):nth-child(n+3) { border-top: 1px solid var(--trait); }
  .impact__grid, .values { grid-template-columns: 1fr 1fr; }
  .works__grid { grid-template-columns: 1fr 1fr; }
  .work--big { grid-column: 1 / -1; }
  .duo { grid-template-columns: 1fr; }
  .path { grid-template-columns: 1fr 1fr; }
  .path :is(li,.li):nth-child(2)::after { display: none; }
  .page-hero__img { min-height: 300px; order: -1; }
  .components, .cta-form__box, .story { grid-template-columns: 1fr; }
  .components__side { position: static; }
  .components__side img { max-width: 560px; }
  .xlinks__grid { grid-template-columns: repeat(3, 1fr); }
  .projects__grid, .contact-cards { grid-template-columns: 1fr 1fr; }
  .values--3 { grid-template-columns: 1fr 1fr; }
  .deliver__box .duo__doc { display: none; }
}

@media (max-width: 700px) {
  .hero { padding-top: 10px; }
  .hero__box { padding: 210px 18px 96px; border-radius: 22px; }
  .hero__bg img { height: 48%; object-position: 42% 30%; }
  .hero__content { gap: 16px; }
  .hero .actions .btn { width: 100%; }
  .hero .btn--buy { justify-content: space-between; padding-left: 20px; }
  .hero__proofs { gap: 16px 12px; padding-top: 22px; }
  .hero__proofs :is(li,.li) { flex-direction: column; align-items: flex-start; gap: 10px; }
  .proof__ic { width: 44px; height: 44px; }
  .brands { flex-direction: column; align-items: stretch; gap: 12px; padding-top: 28px; }
  .brands p { max-width: none; text-align: center; }
  .brands ul { justify-content: center; padding: 18px; gap: 12px 22px; }
  .brands :is(li,.li) { font-size: 15px; }
  .head--split { flex-direction: column; align-items: flex-start; }
  .problem__box { padding: 26px 18px; border-radius: 22px; }
  .impacts { grid-template-columns: 1fr 1fr; gap: 10px; }
  .impacts :is(li,.li) { padding: 16px 14px; }
  .impacts :is(li,.li):not(.impacts__answer) p { display: none; }
  .impacts strong { font-size: 15px; }
  .impacts__answer { grid-column: 1 / -1; }
  .problem__img { display: none; }
  .table-wrap { margin-inline: calc(-1 * var(--gouttiere)); border-radius: 0; border-inline: 0; }
  .offer { grid-template-columns: 1fr; }
  .offer__img { aspect-ratio: 16 / 10; }
  .offer__body { padding: 20px; }
  .domains__grid { grid-template-columns: 1fr; }
  .domains__grid :is(li,.li) { border-right: 0 !important; border-bottom: 1px solid var(--trait) !important; padding: 20px; flex-direction: row; flex-wrap: wrap; column-gap: 14px; }
  .domains__grid :is(li,.li):last-child { border-bottom: 0 !important; }
  .domains__grid .dom__ic { margin: 0; }
  .domains__grid h3 { align-self: center; flex: 1; }
  .domains__grid p { flex-basis: 100%; }
  .budget__box { padding: 26px 18px; border-radius: 22px; }
  .budget__box::after { width: 220px; height: 220px; right: -90px; top: -110px; }
  .timeline { grid-template-columns: 1fr; gap: 0; }
  .timeline :is(li,.li) { flex-direction: row; flex-wrap: wrap; column-gap: 14px; border: 0; border-left: 2px solid var(--trait); border-radius: 0; padding: 4px 0 22px 20px; }
  .timeline :is(li,.li)::after { display: block !important; top: 6px; left: -8px; right: auto; width: 14px; height: 14px; border-radius: 50%; background: var(--cyan); border: 3px solid var(--fond); }
  .timeline .tl__n { font-size: 15px; margin: 2px 0 0; color: var(--cyan-profond); }
  .timeline h3 { flex: 1; }
  .timeline p { flex-basis: 100%; }
  .tl--hi { background: transparent; border-left-color: var(--accent) !important; }
  .tl--hi::after { background: var(--accent) !important; }
  .lead-form { padding: 18px; }
  .lead-form__row { grid-template-columns: 1fr; }
  .audit .actions .btn { width: 100%; }
  .audit__badge { right: 12px; bottom: 12px; }
  .mission { grid-template-columns: 1fr; }
  .leader :is(blockquote,.blockquote) p { font-size: 16px; }
  .leader__photo { max-width: 220px; }
  .stats :is(li,.li) { padding: 20px 10px; }
  .impact__grid, .values { grid-template-columns: 1fr; }
  .works__grid { grid-template-columns: 1fr; }
  .work { min-height: 300px; }
  .grid-products { gap: 10px; }
  .card__body { padding: 12px; gap: 4px; }
  .card h3 { font-size: 15px; }
  .card .price { font-size: 16px; margin-bottom: 10px; }
  .card .price del { display: block; margin: 2px 0 0; font-size: 13px; }
  .card .btn { min-height: 44px; font-size: 14px; padding: 0 8px; }
  .badge { top: 10px; left: 10px; }
  .duo__card { flex-direction: column; align-items: flex-start; padding: 26px 20px; border-radius: 22px; min-height: 0; }
  .duo__doc { width: 140px; height: 180px; margin: 8px 0 0 24px; order: -1; }
  .doc strong { font-size: 18px; }
  .duo .btn { width: 100%; }
  .wa-card { grid-template-columns: 88px 1fr; }
  .wa-card img { width: 88px; height: 110px; }
  details p { padding-right: 0; }
  .job { grid-template-columns: 1fr; padding: 20px; }
  .job .btn { grid-row: auto; grid-column: auto; width: 100%; }
  .path { grid-template-columns: 1fr; }
  .path :is(li,.li)::after { display: none; }
  .page-hero__box { border-radius: 22px; }
  .page-hero__text { padding: 26px 20px; }
  .page-hero__text .actions .btn { width: 100%; }
  .page-hero__img, .page-hero--compact .page-hero__img { min-height: 220px; }
  .values--3 { grid-template-columns: 1fr; }
  .components__side img { display: none; }
  .components__list :is(li,.li) { gap: 14px; padding: 18px 0; }
  .comp__ic { width: 42px; height: 42px; }
  .cta-form__box { padding: 26px 18px; border-radius: 22px; }
  .cta-form .lead-form .btn { width: 100%; }
  .xlinks__grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .xlink { padding: 16px; font-size: 15px; }
  .shop-link__box { grid-template-columns: 96px 1fr; gap: 16px; padding: 16px; }
  .shop-link__box img { width: 96px; height: 96px; }
  .shop-link__buy { grid-column: 1 / -1; align-items: stretch; }
  .deliver__box { padding: 26px 18px; border-radius: 22px; }
  .projects__grid, .contact-cards { grid-template-columns: 1fr; }
  .project :is(dl,.dl) { grid-template-columns: repeat(3, 1fr); }
}



/* Icônes (masques CSS : la couleur suit currentColor) */
:root{
  --ic-i-sun: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='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4'/%3E%3C/svg%3E");
  --ic-i-cash: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.5' y='6' width='19' height='12' rx='2.5'/%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3Cpath d='M6 9.5v5M18 9.5v5'/%3E%3C/svg%3E");
  --ic-i-truck: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='M2.5 6.5h11v9h-11zM13.5 9.5h4l3 3v3h-7'/%3E%3Ccircle cx='6.5' cy='17.5' r='1.8'/%3E%3Ccircle cx='17' cy='17.5' r='1.8'/%3E%3C/svg%3E");
  --ic-i-shield: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 2.8 4.5 5.6v5.6c0 4.6 3.1 8.3 7.5 9.9 4.4-1.6 7.5-5.3 7.5-9.9V5.6z'/%3E%3Cpath d='m8.8 12 2.2 2.2 4.3-4.4'/%3E%3C/svg%3E");
  --ic-i-tool: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.3a4 4 0 0 0 5 5L21 12.6l-8.4 8.4a2.1 2.1 0 0 1-3-3L18 9.6'/%3E%3Cpath d='M14.7 6.3 11 2.6 8.6 5l3.7 3.7'/%3E%3C/svg%3E");
  --ic-i-chat: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.5 11.6a8.4 8.4 0 0 1-12.3 7.5L3.5 20.5l1.4-4.6a8.4 8.4 0 1 1 15.6-4.3z'/%3E%3C/svg%3E");
  --ic-i-user: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 20.5c1.4-3.6 4.4-5.5 8-5.5s6.6 1.9 8 5.5'/%3E%3C/svg%3E");
  --ic-i-users: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='9' cy='8.5' r='3.5'/%3E%3Cpath d='M2.5 20c1-3.2 3.4-5 6.5-5s5.5 1.8 6.5 5'/%3E%3Cpath d='M15.5 5.3a3.5 3.5 0 0 1 0 6.4M17.5 15.3c2 .6 3.4 2.2 4 4.7'/%3E%3C/svg%3E");
  --ic-i-bag: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 8h14l-1.2 12.5H6.2z'/%3E%3Cpath d='M8.5 8V6.5a3.5 3.5 0 0 1 7 0V8'/%3E%3C/svg%3E");
  --ic-i-arrow: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");
  --ic-i-down:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  --ic-i-home: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.5 11 12 4l8.5 7'/%3E%3Cpath d='M5.5 9.5v10h13v-10'/%3E%3Cpath d='M10 19.5v-5h4v5'/%3E%3C/svg%3E");
  --ic-i-factory: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 20.5V10l5 3V10l5 3V6.5h4l1 3.5h3v10.5z'/%3E%3Cpath d='M7 17h2M12 17h2M17 17h1'/%3E%3C/svg%3E");
  --ic-i-village: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='M2.5 20.5h19'/%3E%3Cpath d='M4 20.5V12l4-3.5 4 3.5v8.5'/%3E%3Cpath d='M12 13.5 16 10l4 3.5v7'/%3E%3Cpath d='M7 20.5v-4h2v4'/%3E%3C/svg%3E");
  --ic-i-leaf: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 19c0-8 5-13.5 15-14 0 9.5-5.5 15-14 15'/%3E%3Cpath d='M5 19c3-4 6-6.5 10-8.5'/%3E%3C/svg%3E");
  --ic-i-drop: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 3s6 6.4 6 11a6 6 0 0 1-12 0c0-4.6 6-11 6-11z'/%3E%3C/svg%3E");
  --ic-i-cam: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 7.5 14.5 4l2 6.5L5 14z'/%3E%3Cpath d='m16.5 9 3.5-1.5.8 2.6-3.6 1.3M7 13.5l1.2 4H5'/%3E%3C/svg%3E");
  --ic-i-bulb:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18h6M10 21h4'/%3E%3Cpath d='M12 3a6 6 0 0 0-3.6 10.8c.6.5 1 1.3 1 2.2h5.2c0-.9.4-1.7 1-2.2A6 6 0 0 0 12 3z'/%3E%3C/svg%3E");
  --ic-i-lamp: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 21.5h6M10 21.5V7a3 3 0 0 1 3-3h4.5'/%3E%3Cpath d='M15.5 4h5l-1 3h-3z'/%3E%3Cpath d='M17 9.5v1.5M20 9l.8 1.2M14 9l-.8 1.2'/%3E%3C/svg%3E");
  --ic-i-bolt: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.5 4.5 13.5h7l-1 8 8.5-11h-7z'/%3E%3C/svg%3E");
  --ic-i-battery: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.5' y='7' width='17' height='10' rx='2'/%3E%3Cpath d='M21.5 10.5v3M7 10v4M10.5 10v4'/%3E%3C/svg%3E");
  --ic-i-chip: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='6' y='6' width='12' height='12' rx='2'/%3E%3Cpath d='M9.5 2.5v3.5M14.5 2.5v3.5M9.5 18v3.5M14.5 18v3.5M2.5 9.5H6M2.5 14.5H6M18 9.5h3.5M18 14.5h3.5'/%3E%3Cpath d='M10 10h4v4h-4z'/%3E%3C/svg%3E");
  --ic-i-panel: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='M4 4h16l-1.5 9h-13z'/%3E%3Cpath d='M12 4v9M3.2 8.5h17.6M12 13v5M8 21h8'/%3E%3C/svg%3E");
  --ic-i-menu:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h16'/%3E%3C/svg%3E");
  --ic-i-close:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E");
  --ic-i-check: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 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");
  --ic-i-x: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 7l10 10M17 7 7 17'/%3E%3C/svg%3E");
  --ic-i-pin: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 21s-6.5-5.6-6.5-11a6.5 6.5 0 0 1 13 0C18.5 15.4 12 21 12 21z'/%3E%3Ccircle cx='12' cy='10' r='2.3'/%3E%3C/svg%3E");
  --ic-i-phone: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 3.5h3.5l1.5 4.5-2.2 1.5a11 11 0 0 0 6.7 6.7l1.5-2.2 4.5 1.5V19a2 2 0 0 1-2 2A16 16 0 0 1 3 5.5a2 2 0 0 1 2-2z'/%3E%3C/svg%3E");
  --ic-i-doc:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2.5h8l4.5 4.5v14.5H6z'/%3E%3Cpath d='M14 2.5V7h4.5M9 12h6M9 15.5h6M9 9h2'/%3E%3C/svg%3E");
  --ic-i-download: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 3.5v12M7 10.5l5 5 5-5M4 20.5h16'/%3E%3C/svg%3E");
  --ic-i-search: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='6.5'/%3E%3Cpath d='m20 20-4.2-4.2'/%3E%3C/svg%3E");
  --ic-i-chart: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.5 20.5h17M6.5 16.5v-5M11 16.5V7M15.5 16.5v-7M20 16.5V4.5'/%3E%3C/svg%3E");
  --ic-i-fuel: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='M4 21V5a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v16M3 21h12M4 10h10'/%3E%3Cpath d='M14 8h2a2 2 0 0 1 2 2v6a1.5 1.5 0 0 0 3 0V8l-3-3'/%3E%3C/svg%3E");
  --ic-i-snow: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 2.5v19M3.8 7.2l16.4 9.6M20.2 7.2 3.8 16.8'/%3E%3Cpath d='m9.5 4.5 2.5 2 2.5-2M9.5 19.5l2.5-2 2.5 2'/%3E%3C/svg%3E");
  --ic-i-heart: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 20s-7.5-4.4-7.5-10A4.5 4.5 0 0 1 12 7.3 4.5 4.5 0 0 1 19.5 10c0 5.6-7.5 10-7.5 10z'/%3E%3C/svg%3E");
  --ic-i-school: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='M2.5 9 12 4.5 21.5 9 12 13.5z'/%3E%3Cpath d='M6 11v5c1.7 1.6 3.8 2.5 6 2.5s4.3-.9 6-2.5v-5M21.5 9v6'/%3E%3C/svg%3E");
  --ic-i-upload: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 15.5v-12M7 8.5l5-5 5 5M4 20.5h16'/%3E%3C/svg%3E");
  --ic-i-mail: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='5' width='18' height='14' rx='2.5'/%3E%3Cpath d='m3.5 6.5 8.5 6.5 8.5-6.5'/%3E%3C/svg%3E");
  --ic-i-clock: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='9'/%3E%3Cpath d='M12 7v5l3.5 2'/%3E%3C/svg%3E");
  --ic-i-target: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='9'/%3E%3Ccircle cx='12' cy='12' r='5'/%3E%3Ccircle cx='12' cy='12' r='1.2'/%3E%3C/svg%3E");
  --ic-i-eye: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='M2.5 12S6 5.5 12 5.5 21.5 12 21.5 12 18 18.5 12 18.5 2.5 12 2.5 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
  --ic-i-wifi: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='M2.5 9a14 14 0 0 1 19 0M5.5 12.5a9.5 9.5 0 0 1 13 0M8.8 16a5 5 0 0 1 6.4 0'/%3E%3Ccircle cx='12' cy='19.2' r='1'/%3E%3C/svg%3E");
  --ic-i-grid: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.5 7.5h17M3.5 12h17M3.5 16.5h17M8.5 3.5v17M15.5 3.5v17'/%3E%3C/svg%3E");
}
.i-sun,.avec-i-sun{--ic:var(--ic-i-sun)}
.i-cash,.avec-i-cash{--ic:var(--ic-i-cash)}
.i-truck,.avec-i-truck{--ic:var(--ic-i-truck)}
.i-shield,.avec-i-shield{--ic:var(--ic-i-shield)}
.i-tool,.avec-i-tool{--ic:var(--ic-i-tool)}
.i-chat,.avec-i-chat{--ic:var(--ic-i-chat)}
.i-user,.avec-i-user{--ic:var(--ic-i-user)}
.i-users,.avec-i-users{--ic:var(--ic-i-users)}
.i-bag,.avec-i-bag{--ic:var(--ic-i-bag)}
.i-arrow,.avec-i-arrow{--ic:var(--ic-i-arrow)}
.i-down,.avec-i-down{--ic:var(--ic-i-down)}
.i-home,.avec-i-home{--ic:var(--ic-i-home)}
.i-factory,.avec-i-factory{--ic:var(--ic-i-factory)}
.i-village,.avec-i-village{--ic:var(--ic-i-village)}
.i-leaf,.avec-i-leaf{--ic:var(--ic-i-leaf)}
.i-drop,.avec-i-drop{--ic:var(--ic-i-drop)}
.i-cam,.avec-i-cam{--ic:var(--ic-i-cam)}
.i-bulb,.avec-i-bulb{--ic:var(--ic-i-bulb)}
.i-lamp,.avec-i-lamp{--ic:var(--ic-i-lamp)}
.i-bolt,.avec-i-bolt{--ic:var(--ic-i-bolt)}
.i-battery,.avec-i-battery{--ic:var(--ic-i-battery)}
.i-chip,.avec-i-chip{--ic:var(--ic-i-chip)}
.i-panel,.avec-i-panel{--ic:var(--ic-i-panel)}
.i-menu,.avec-i-menu{--ic:var(--ic-i-menu)}
.i-close,.avec-i-close{--ic:var(--ic-i-close)}
.i-check,.avec-i-check{--ic:var(--ic-i-check)}
.i-x,.avec-i-x{--ic:var(--ic-i-x)}
.i-pin,.avec-i-pin{--ic:var(--ic-i-pin)}
.i-phone,.avec-i-phone{--ic:var(--ic-i-phone)}
.i-doc,.avec-i-doc{--ic:var(--ic-i-doc)}
.i-download,.avec-i-download{--ic:var(--ic-i-download)}
.i-search,.avec-i-search{--ic:var(--ic-i-search)}
.i-chart,.avec-i-chart{--ic:var(--ic-i-chart)}
.i-fuel,.avec-i-fuel{--ic:var(--ic-i-fuel)}
.i-snow,.avec-i-snow{--ic:var(--ic-i-snow)}
.i-heart,.avec-i-heart{--ic:var(--ic-i-heart)}
.i-school,.avec-i-school{--ic:var(--ic-i-school)}
.i-upload,.avec-i-upload{--ic:var(--ic-i-upload)}
.i-mail,.avec-i-mail{--ic:var(--ic-i-mail)}
.i-clock,.avec-i-clock{--ic:var(--ic-i-clock)}
.i-target,.avec-i-target{--ic:var(--ic-i-target)}
.i-eye,.avec-i-eye{--ic:var(--ic-i-eye)}
.i-wifi,.avec-i-wifi{--ic:var(--ic-i-wifi)}
.i-grid,.avec-i-grid{--ic:var(--ic-i-grid)}

/* ==========================================================================
   13 · Proportions des images et derniers réglages (après la maquette : l'emporte à spécificité égale)
   Règle : sur mobile, chaque famille d'images garde UN format, quel que soit le
   format de la photo fournie (verticale ou horizontale) — object-fit:cover + point focal.
   ========================================================================== */
:root{--ratio-vignette:1/1}

/* Cartes de réalisations : la photo remplit son cadre 4:3, qu'elle soit verticale ou horizontale */
.project__img{position:relative;overflow:hidden}
.project__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 35%}

/* Pied de page classique et compact */
.pied-simple{margin-top:var(--espace);background:var(--texte);color:var(--sourdine-clair);font-size:15px}
.pied-simple__cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:32px;padding-block:48px 36px}
.pied-simple__marque{display:flex;flex-direction:column;gap:14px;max-width:34ch}
.pied-simple__marque .wp-block-site-logo img{width:auto;max-height:36px;filter:brightness(0) invert(1)}
.pied-simple__contacts{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;--ic-couleur:var(--accent)}
.pied-simple__contacts li,.pied-simple__contacts a{color:var(--fond);font-weight:600}
.pied-simple h3{font:800 12px/1 var(--police-texte);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}
.pied-simple .nav-col ul{margin:0;padding:0;list-style:none}
.pied-simple .nav-col li+li{margin-top:8px}
.pied-simple .nav-col a{color:var(--sourdine-clair)}
.pied-simple a:hover{color:var(--fond)}
.pied-simple__bas{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 20px;padding-block:18px;border-top:1px solid var(--trait-clair);font-size:13px}
.pied-simple__bas a{color:var(--sourdine-clair)}

/* Comparatif d'accueil : texte au-dessus, tableau en pleine largeur */
.compare{grid-template-columns:1fr!important;gap:32px!important}
.compare__text{align-items:center!important;text-align:center;max-width:760px;margin-inline:auto}
.compare__text .lead{margin-inline:auto}
.compare .table-wrap{max-width:1040px;width:100%;margin-inline:auto}

/* Grille de produits : boutons alignés en bas des cartes, quelle que soit la longueur du titre ou du prix */
.grille-produits .wc-block-product>.carte-bouton,.grille-produits .wc-block-product>.wp-block-button{margin-top:auto}
.grille-produits .carte-titre{min-height:2.6em}

/* Photos produit : on ne rogne jamais l'objet vendu */
.wc-block-product-gallery-large-image img,.wp-block-woocommerce-product-gallery img{object-fit:contain;background:var(--fond)}

/* Barre d'annonce : messages qui défilent (CSS seul, pause au survol, figée si l'utilisateur réduit les animations) */
.topbar__row{gap:20px}
.annonce{flex:1;min-width:0;height:24px;overflow:hidden}
.annonce__piste{display:flex;flex-direction:column;animation:annonce 30s cubic-bezier(.65,0,.35,1) infinite}
.annonce__piste>p{flex:none;height:24px;line-height:24px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.annonce__piste>p a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.annonce:hover .annonce__piste,.annonce:focus-within .annonce__piste{animation-play-state:paused}
@keyframes annonce{
  0%,15%{transform:translateY(0)}
  20%,35%{transform:translateY(-24px)}
  40%,55%{transform:translateY(-48px)}
  60%,75%{transform:translateY(-72px)}
  80%,95%{transform:translateY(-96px)}
  100%{transform:translateY(-120px)}
}
@media (prefers-reduced-motion:reduce){.annonce__piste{animation:none!important}}

@media (max-width:1100px){
  /* héros d'accueil : la photo garde son format au-dessus du texte */
  .hero__box .hero__bg img{height:auto;aspect-ratio:16/9;object-position:50% 30%}
  .hero__box{padding-top:calc((100vw - 2 * var(--gouttiere)) * .5625 - 40px)}
  .page-hero__img img{object-position:50% 30%}
}
@media (max-width:1024px){
  .pied-simple__cols{grid-template-columns:1fr 1fr}
  .pied-simple__marque{grid-column:1/-1;max-width:none}
}
@media (max-width:700px){
  .pied-simple__cols{gap:28px 16px;padding-block:36px 24px}
  .pied-simple__bas{flex-direction:column}
  .topbar{font-size:13px}
  .topbar__row{justify-content:flex-start;min-height:38px}
  .annonce__piste>p{text-align:center}
  .hero__box .hero__bg img{aspect-ratio:4/3;object-position:45% 28%}
  .hero__box{padding-top:calc((100vw - 2 * var(--gouttiere)) * .75 - 26px)}
  /* en-têtes des pages intérieures : un seul format, 16:10 */
  .page-hero__img,.page-hero--compact .page-hero__img{min-height:0;aspect-ratio:16/10}
  /* cartes et visuels : formats homogènes */
  .offer__img{aspect-ratio:16/10}
  .work{min-height:0;aspect-ratio:4/3}
  .audit__media img{aspect-ratio:4/3;object-position:50% 40%}
  .story__media img{aspect-ratio:4/3}
  .project__img{aspect-ratio:4/3}
  .duo__card--jobs{min-height:260px}
  .leader__photo{max-width:none}
  .leader__ph{aspect-ratio:16/10}
  .wa-card img{width:88px;height:110px;object-fit:cover}
  .shop-link__box img{object-fit:contain;background:var(--fond)}
}

/* Formulaires CF7 (audit, contact) : jamais plus larges que leur carte, sur mobile comme sur ordinateur */
.wpcf7{grid-template-columns:minmax(0,1fr)!important;min-width:0;max-width:100%}
.wpcf7-form,.lead-form__row,.lead-form__row>*,.wpcf7 .field,.wpcf7-form-control-wrap{min-width:0;max-width:100%}
.wpcf7 :is(input:not([type=checkbox]):not([type=radio]),select,textarea){width:100%;max-width:100%;box-sizing:border-box}
.wpcf7 .wpcf7-submit{width:100%;max-width:100%;white-space:normal;height:auto;min-height:54px;padding:12px 16px;line-height:1.25}

/* Comparatif d'accueil : tableau 2 colonnes (réseau seul / solaire), colonne gagnante mise en avant */
.wp-block-table.compare__table{border:1px solid var(--trait);border-radius:20px;overflow:hidden;background:var(--fond)}
.wp-block-table.compare__table table{min-width:0;table-layout:fixed;font-size:15px}
.wp-block-table.compare__table thead th{background:var(--fond);padding:18px;font:800 15px/1.2 var(--police-titres);text-align:center}
.wp-block-table.compare__table thead th:first-child{text-align:left;color:var(--sourdine);font:700 12px/1.2 var(--police-texte);letter-spacing:.12em;text-transform:uppercase}
.wp-block-table.compare__table thead th:last-child{background:var(--texte);color:var(--accent);position:relative}
.wp-block-table.compare__table tbody th{font:700 15px/1.3 var(--police-titres);color:var(--texte);background:var(--surface)}
.wp-block-table.compare__table tbody td{text-align:center;font-weight:600;color:var(--sourdine)}
.wp-block-table.compare__table tbody td:last-child{background:color-mix(in srgb,var(--accent) 16%,var(--fond));color:var(--texte);font-weight:800}
.wp-block-table.compare__table tbody td::before{content:"";display:block;width:26px;height:26px;margin:0 auto 6px;border-radius:50%;background:color-mix(in srgb,var(--alerte) 14%,var(--fond)) center/14px no-repeat;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d64545' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E")}
.wp-block-table.compare__table tbody td:last-child::before{background-color:var(--texte);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d0ff00' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E")}
.wp-block-table.compare__table :is(th,td){padding:16px 18px;border-bottom:1px solid var(--trait)!important}
.wp-block-table.compare__table tbody tr:last-child>*{border-bottom:0!important}
.wp-block-table.compare__table col,.wp-block-table.compare__table tr>:first-child{width:40%}
@media (max-width:700px){
  .compare .table-wrap{overflow:visible;border:0;margin-inline:0;border-radius:0;background:none}
  .wp-block-table.compare__table{border-radius:16px}
  .wp-block-table.compare__table table{font-size:13px}
  .wp-block-table.compare__table :is(th,td){padding:12px 8px}
  .wp-block-table.compare__table thead th{padding:14px 8px;font-size:13px}
  .wp-block-table.compare__table thead th:first-child{font-size:10px;padding-left:12px}
  .wp-block-table.compare__table tbody th{font-size:13px;padding-left:12px}
  .wp-block-table.compare__table tbody td::before{width:22px;height:22px;background-size:12px;margin-bottom:4px}
  .wp-block-table.compare__table tr>:first-child{width:36%}
}

/* Coupures et délestages (accueil) : sur mobile, chaque case garde son titre et son texte */
@media (max-width:700px){
  .impacts{grid-template-columns:1fr!important;gap:8px!important}
  .impacts :is(li,.li):not(.impacts__answer){display:grid;grid-template-columns:42px 1fr;column-gap:12px;align-items:start;padding:14px!important}
  .impacts :is(li,.li):not(.impacts__answer)>.impacts__ic{grid-row:1/span 2}
  .impacts :is(li,.li):not(.impacts__answer) p{display:block!important;margin:0;font-size:13.5px;line-height:1.4}
  .impacts :is(li,.li):not(.impacts__answer) p:has(strong){font-size:15px;color:var(--fond)}
}

/* ==========================================================================
   14 · Fiche produit orientée conversion, pop-up de commande, page « Commande reçue »
   ========================================================================== */

/* ---------- haut de fiche */
.fiche-titre{font-size:clamp(28px,3.2vw,42px);font-weight:800;letter-spacing:-.03em;line-height:1.08}
.fiche-surtitre{font:800 12px/1.2 var(--police-texte);letter-spacing:.14em;text-transform:uppercase;color:var(--cyan-profond)}
.fiche-surtitre a{color:inherit;text-decoration:none}
.fiche-prix{font:800 clamp(26px,2.6vw,34px)/1.1 var(--police-titres)!important;letter-spacing:-.02em}
.fiche-prix del{font:500 17px var(--police-texte);color:var(--sourdine);margin-right:8px}
.fiche-prix ins{text-decoration:none}
.fiche-resume{color:var(--sourdine);font-size:16px}
.fiche-resume p{margin:0}
.fiche-achat{gap:18px!important}
.fiche-cta{display:flex;flex-direction:column;gap:12px;padding:20px;border-radius:var(--r-carte);background:var(--surface)}
.fiche-cta .wp-block-buttons{flex-direction:column;align-items:stretch;gap:10px}
.fiche-cta .wp-block-button,.fiche-cta .wp-block-button__link{width:100%}
.fiche-cta .btn--buy>.wp-block-button__link{min-height:58px;font-size:17px}
.fiche-packs-lien{font-size:14px;font-weight:700;text-align:center}
.fiche-packs-lien a{color:var(--cyan-profond);text-decoration:underline;text-underline-offset:3px}
.fiche-reassurance{display:grid;gap:10px}
.fiche-reassurance .promesse{font-size:14px;font-weight:600}
.fiche-etapes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0;padding:0;list-style:none;counter-reset:fe}
.fiche-etapes li{counter-increment:fe;display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid var(--trait);border-radius:14px;font-size:13px;font-weight:700;line-height:1.3}
.fiche-etapes li::before{content:counter(fe);display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--sur-accent);font:800 13px/1 var(--police-titres)}

/* ---------- contenu éditorial du produit (description en blocs) */
.fiche-contenu{margin-top:var(--espace)}
.fiche-description>*{margin:0}
.p-section{padding-top:var(--espace)}
.p-section:first-child{padding-top:0}
.p-head{display:flex;flex-direction:column;gap:12px;margin-bottom:clamp(28px,3.5vw,44px);align-items:center;text-align:center}
.p-head p:not(.eyebrow){color:var(--sourdine);max-width:56ch}
.p-scenes{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.p-scene{position:relative;overflow:hidden;border-radius:var(--r-carte);background:var(--texte);color:var(--fond);aspect-ratio:4/5}
.p-scene img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.p-scene::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,color-mix(in srgb,var(--texte) 92%,transparent) 8%,transparent 62%)}
.p-scene__texte{position:absolute;left:20px;right:20px;bottom:20px;z-index:1;display:flex;flex-direction:column;gap:6px}
.p-scene__texte h3{color:var(--fond);font-size:20px}
.p-scene__texte p{color:var(--sourdine-clair);font-size:14px}
.p-alterne{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:center}
.p-alterne+.p-alterne{margin-top:clamp(48px,6vw,88px)}
.p-alterne--inverse>:first-child{order:2}
.p-alterne__media{border-radius:var(--r-bloc);overflow:hidden;aspect-ratio:4/3;background:var(--surface);position:relative}
.p-alterne__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.p-alterne__texte{display:flex;flex-direction:column;gap:16px}
.p-alterne__texte>p:not(.eyebrow){color:var(--sourdine);font-size:17px}
.p-specs{max-width:860px;margin:0 auto;border:1px solid var(--trait);border-radius:var(--r-carte);overflow:hidden}
.p-specs table{width:100%;border-collapse:collapse}
.p-specs :is(th,td){padding:16px 20px;text-align:left;border:0;border-bottom:1px solid var(--trait);font-size:15px}
.p-specs tr:last-child>*{border-bottom:0}
.p-specs td:first-child{width:38%;color:var(--sourdine);font-weight:700;background:var(--surface)}
.p-veille{background:var(--texte);color:var(--fond);border-radius:var(--r-bloc);padding:clamp(28px,5vw,64px);display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.p-veille>.p-head{grid-column:1/-1;margin-bottom:12px}
.p-veille h2{color:var(--fond)}
.p-veille h2 em{color:var(--accent)}
.p-veille .p-atout{padding:22px;border-radius:var(--r-carte);background:var(--petrole-2);border:1px solid var(--trait-clair)}
.p-veille .p-atout h3{color:var(--fond);font-size:17px;margin-bottom:6px}
.p-veille .p-atout p{color:var(--sourdine-clair);font-size:14px}
.p-atout::before{content:"";display:block;width:22px;height:22px;margin-bottom:12px;background:var(--accent);-webkit-mask:var(--ic, var(--ic-i-check)) center/contain no-repeat;mask:var(--ic, var(--ic-i-check)) center/contain no-repeat}
.p-faq .faq__list{max-width:860px;margin-inline:auto}

/* ---------- packs */
.packs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:stretch}
.pack{position:relative;display:flex;flex-direction:column;gap:8px;padding:28px 24px;border:1.5px solid var(--trait);border-radius:var(--r-carte);background:var(--fond)}
.pack--top{border-color:var(--texte);box-shadow:var(--ombre)}
.pack__badge{position:absolute;top:-13px;left:24px;padding:5px 12px;border-radius:99px;background:var(--texte);color:var(--accent);font:800 12px/1 var(--police-texte)}
.pack__badge--clair{background:var(--accent);color:var(--sur-accent)}
.pack__nom{font:800 13px/1.2 var(--police-texte);letter-spacing:.12em;text-transform:uppercase;color:var(--cyan-profond)}
.pack__qte{font:700 18px/1.25 var(--police-titres)}
.pack__prix{font:800 28px/1.1 var(--police-titres);letter-spacing:-.02em}
.pack__prix del{font:500 15px var(--police-texte);color:var(--sourdine);margin-left:6px}
.pack__texte{color:var(--sourdine);font-size:14px}
.pack__eco{font-size:14px;font-weight:800;color:var(--cyan-profond)}
.pack__eco--vide{color:var(--sourdine);font-weight:600}
.pack__bouton{margin-top:auto;display:flex;align-items:center;justify-content:center;min-height:52px;border-radius:var(--r-btn);background:var(--texte);color:var(--fond);font-weight:800;text-decoration:none}
.pack--top .pack__bouton{background:var(--accent);color:var(--sur-accent)}
.pack__bouton:hover{color:inherit;filter:brightness(1.05)}

/* ---------- étapes, FAQ, appel final */
.etapes-commande__grille{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.etape{display:flex;flex-direction:column;gap:8px;padding:24px;border-radius:var(--r-carte);background:var(--surface)}
.etape__n{font:800 30px/1 var(--police-titres);color:var(--cyan-profond);letter-spacing:-.04em}
.etape p:not(.etape__n){font-size:14px;color:var(--sourdine)}
.etape--hi{background:var(--accent)}
.etape--hi :is(.etape__n,p){color:var(--texte)!important}
.faq-commande .faq__list{max-width:860px;margin-inline:auto}
.fiche-associes{padding-top:var(--espace);margin-top:0!important}
.fiche-associes:not(:has(.wc-block-product)){display:none}   /* aucun produit associé : pas de section vide */
.p-alterne__media img[src*="produit-"]{object-fit:contain;background:var(--fond)}
.cta-produit__box{display:flex;justify-content:space-between;align-items:center;gap:28px;background:var(--texte);color:var(--fond);border-radius:var(--r-bloc);padding:clamp(28px,5vw,56px)}
.cta-produit__box h2{color:var(--fond)}
.cta-produit__box h2 em{color:var(--accent)}
.cta-produit__texte{display:flex;flex-direction:column;gap:12px}
.cta-produit__texte>p:not(.eyebrow){color:var(--sourdine-clair)}

/* ---------- barre d'achat collante (mobile) */
.barre-achat{position:fixed;left:0;right:0;bottom:0;z-index:45;display:none;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--fond);border-top:1px solid var(--trait);box-shadow:0 -10px 30px -18px color-mix(in srgb,var(--texte) 40%,transparent);
  transform:translateY(110%);transition:transform .25s ease}
.barre-achat.est-visible{transform:none}
.barre-achat__prix{font:800 19px/1.1 var(--police-titres)!important}
.barre-achat__prix del{display:block;font:500 12px var(--police-texte);color:var(--sourdine)}
.barre-achat .wp-block-button__link{min-height:48px!important;padding:0 22px!important}
body:has(.barre-achat.est-visible) .wa-float{bottom:84px}

/* ---------- pop-up de commande */
html.sgc-ouvert{overflow:hidden}
.sgc{position:fixed;inset:0;z-index:100100;display:grid;place-items:center;padding:16px}
.sgc[hidden]{display:none}
.sgc__fond{position:absolute;inset:0;background:color-mix(in srgb,var(--texte) 65%,transparent)}
.sgc__boite{position:relative;width:min(480px,100%);max-height:calc(100dvh - 32px);overflow:auto;background:var(--fond);border-radius:var(--r-carte);padding:28px 24px 22px;box-shadow:var(--ombre);animation:sgc-entree .22s ease}
@keyframes sgc-entree{from{opacity:0;transform:translateY(12px)}}
.sgc__fermer{position:absolute;top:10px;right:10px;width:44px;height:44px;border:0;border-radius:50%;background:var(--surface);font-size:24px;line-height:1;cursor:pointer;color:var(--texte)}
.sgc__surtitre{font:800 12px/1.2 var(--police-texte);letter-spacing:.12em;text-transform:uppercase;color:var(--cyan-profond);padding-right:44px}
.sgc__titre{font-size:24px;margin:6px 0 16px;padding-right:44px}
.sgc__recap{border-radius:16px;background:var(--surface);padding:14px 16px;margin-bottom:16px}
.sgc__chargement{font-size:14px;color:var(--sourdine);padding:8px 0}
.sgc__produit{display:flex;gap:12px;align-items:center;padding-bottom:12px;border-bottom:1px solid var(--trait)}
.sgc__produit[hidden],.sgc__lignes[hidden],.sgc__form[hidden],.sgc__ligne-remise[hidden]{display:none}
.sgc__img{width:64px;height:64px;object-fit:contain;border-radius:12px;background:var(--fond)}
.sgc__produit strong{display:block;font:700 15px/1.3 var(--police-titres)}
.sgc__qte{font-size:13px;color:var(--sourdine)}
.sgc__lignes{margin:10px 0 0;display:grid;gap:6px}
.sgc__lignes>div{display:flex;justify-content:space-between;gap:12px;font-size:14px}
.sgc__lignes dt{color:var(--sourdine)}
.sgc__lignes dd{margin:0;font-weight:700}
.sgc__ligne-remise dd{color:var(--cyan-profond)}
.sgc__total{margin-top:6px;padding-top:10px;border-top:1px solid var(--trait)}
.sgc__total dt{color:var(--texte)!important;font-weight:800}
.sgc__total dd{font:800 20px/1 var(--police-titres)}
.sgc__form{display:flex;flex-direction:column;gap:12px}
.sgc__champ{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:700}
.sgc__champ input{width:100%;min-height:50px;padding:12px 14px;border:1.5px solid var(--trait);border-radius:var(--r-btn);background:var(--fond);font:500 16px var(--police-texte);color:var(--texte)}
.sgc__champ input:focus{outline:none;border-color:var(--texte);box-shadow:0 0 0 3px color-mix(in srgb,var(--cyan) 25%,transparent)}
.sgc__tel{display:flex;align-items:stretch}
.sgc__tel b{display:grid;place-items:center;padding:0 12px;border:1.5px solid var(--trait);border-right:0;border-radius:var(--r-btn) 0 0 var(--r-btn);background:var(--surface);font-weight:800}
.sgc__tel input{border-radius:0 var(--r-btn) var(--r-btn) 0}
.sgc__piege{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.sgc__case{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--sourdine);cursor:pointer}
.sgc__case input{width:20px;height:20px;margin-top:1px;accent-color:var(--texte);flex:none}
.sgc__erreur{padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--alerte) 10%,var(--fond));color:var(--alerte);font-size:14px;font-weight:600}
.sgc__erreur[hidden]{display:none}
.sgc__envoyer{min-height:56px;border:0;border-radius:var(--r-btn);background:var(--accent);color:var(--sur-accent);font:800 17px/1 var(--police-texte);cursor:pointer}
.sgc__envoyer:disabled{opacity:.6;cursor:wait}
.sgc__note{font-size:13px;color:var(--sourdine);text-align:center}

.fiche-texte{max-width:760px;margin:0 auto!important;padding-inline:var(--gouttiere);font-size:17px;color:var(--sourdine);text-align:center}

/* ---------- page « Commande reçue » */
.recu{display:flex;flex-direction:column;gap:24px}
.recu .head{margin-bottom:0}
.recu h1{font-size:clamp(32px,4.4vw,56px);font-weight:800;letter-spacing:-.035em}
.etapes-commande__grille--3{grid-template-columns:repeat(3,1fr)}
.recu-suite{display:grid;grid-template-columns:1.3fr .7fr;gap:24px;align-items:start}
.recu-conseils{display:flex;flex-direction:column;gap:18px;padding:clamp(24px,4vw,40px);border-radius:var(--r-bloc);background:var(--surface)}
.recu-conseils h2{font-size:clamp(22px,2.4vw,30px)}
.ticks-clair{display:flex;flex-direction:column;gap:10px;--ic-couleur:var(--cyan-profond)}
.ticks-clair li{font-size:15px}
.recu-garanties{display:flex;flex-direction:column;gap:12px;padding:clamp(24px,4vw,40px);border-radius:var(--r-bloc);background:var(--texte);color:var(--fond);--ic-couleur:var(--accent)}
.recu-garanties p{font-weight:800}
.recu .recu-donnee{font-weight:800;color:var(--texte)}
.recu-recap{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border:1px solid var(--trait);border-radius:var(--r-carte);overflow:hidden;max-width:760px}
.recu-recap>*{padding:16px 20px;border-bottom:1px solid var(--trait)}
.recu-recap .recu-libelle{color:var(--sourdine);font-size:14px;background:var(--surface)}
.recu-recap .recu-donnee{font:700 16px/1.3 var(--police-titres)}
.recu-recap>*:nth-last-child(-n+2){border-bottom:0}
.recu-recap .recu-total{font:800 22px/1.1 var(--police-titres);color:var(--texte)}
.recu-vide{color:var(--sourdine)}
.recu--rempli .recu-vide{display:none}

@media (max-width:1024px){
  .p-veille{grid-template-columns:1fr 1fr}
  .etapes-commande__grille{grid-template-columns:1fr 1fr}
  .packs{grid-template-columns:1fr;max-width:520px;margin-inline:auto}
}
@media (max-width:860px){
  .p-scenes{grid-template-columns:1fr}
  .p-scene{aspect-ratio:16/11}
  .p-alterne,.p-alterne--inverse{grid-template-columns:1fr}
  .p-alterne--inverse>:first-child{order:0}
  .cta-produit__box{flex-direction:column;align-items:stretch}
  .cta-produit__box .wp-block-button,.cta-produit__box .wp-block-button__link{width:100%}
  .barre-achat{display:flex}
}
@media (max-width:700px){
  .fiche-etapes{grid-template-columns:1fr}
  .fiche-etapes li{flex-direction:row;align-items:center}
  .p-veille{grid-template-columns:1fr;padding:26px 18px;border-radius:22px}
  .etapes-commande__grille{grid-template-columns:1fr}
  .p-specs td:first-child{width:44%}
  .p-specs :is(th,td){padding:12px 14px;font-size:14px}
  .recu-recap{grid-template-columns:1fr}
  .recu-recap .recu-libelle{padding-bottom:4px;border-bottom:0}
  .recu-suite,.etapes-commande__grille--3{grid-template-columns:1fr}
  .recu-recap>*:nth-last-child(2){border-bottom:1px solid var(--trait)}
  .sgc{place-items:end center;padding:0}
  .sgc__boite{width:100%;border-radius:22px 22px 0 0;max-height:94dvh;padding:24px 18px calc(18px + env(safe-area-inset-bottom))}
  .fiche-produit{padding-bottom:0}
  body:has(.barre-achat) .pied-simple__bas{padding-bottom:calc(18px + 72px + env(safe-area-inset-bottom))}
  body:has(.fiche-produit) .pied-simple{margin-top:48px}
  .fiche-produit .solaire-complet,.fiche-produit .cta-produit,.fiche-produit .fiche-associes{padding-top:48px}
}

/* ---------- ajouts fiche : packs express, réassurance en icônes, avis, marques, images, boîte */
.packs-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:4px}
.pack-mini{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:92px;padding:16px 6px 10px;border:1.5px solid var(--trait);border-radius:14px;background:var(--fond);color:var(--texte);text-align:center;text-decoration:none;transition:border-color .15s,transform .15s}
.pack-mini:hover,.pack-mini:focus-visible{border-color:var(--texte);transform:translateY(-2px);color:var(--texte)}
.pack-mini--top{border-color:var(--texte);background:color-mix(in srgb,var(--accent) 14%,var(--fond))}
.pack-mini__badge{position:absolute;top:-10px;left:50%;transform:translateX(-50%);padding:3px 9px;border-radius:99px;background:var(--texte);color:var(--accent);font:800 11px/1.2 var(--police-texte);white-space:nowrap}
.pack-mini__qte{font:800 12px/1.2 var(--police-texte);letter-spacing:.06em;text-transform:uppercase;color:var(--cyan-profond)}
.pack-mini__prix{font:800 clamp(14px,1.4vw,17px)/1.15 var(--police-titres);letter-spacing:-.01em}
.pack-mini__unite{font-size:11.5px;line-height:1.2;color:var(--sourdine)}


.avis-extrait{margin:0;padding:14px 16px;border-left:3px solid var(--accent);border-radius:0 14px 14px 0;background:var(--surface)}
.avis-extrait blockquote{margin:6px 0;font-size:14.5px;font-style:italic;line-height:1.45}
.avis-extrait figcaption{font-size:13px;font-weight:700;color:var(--sourdine)}
.avis-extrait a{color:var(--cyan-profond)}
.etoiles{color:#f5b301;letter-spacing:2px;font-size:15px;line-height:1}
.etoiles__vides{color:var(--trait)}

.marques-produit{display:flex;flex-direction:column;gap:10px;padding-top:14px;border-top:1px solid var(--trait)}
.marques-produit__titre{font:800 11px/1.2 var(--police-texte);letter-spacing:.14em;text-transform:uppercase;color:var(--sourdine);text-align:center}
.marques-produit__liste{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin:0;padding:0;list-style:none}
.marques-produit__liste li{font:800 15px/1.4 var(--police-titres);letter-spacing:-.01em;color:color-mix(in srgb,var(--texte) 55%,var(--fond));filter:grayscale(1)}

.p-images{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.p-images .wp-block-image{margin:0;border-radius:var(--r-carte);overflow:hidden;border:1px solid var(--trait);background:var(--fond)}
.p-images img{display:block;width:100%;aspect-ratio:1;object-fit:cover}


.avis-section .avis{max-width:860px;margin-inline:auto;display:flex;flex-direction:column;gap:16px}
.avis__note{display:flex;align-items:center;justify-content:center;gap:12px;font-size:14px;color:var(--sourdine)}
.avis__note strong{font:800 34px/1 var(--police-titres);color:var(--texte)}
.avis__liste{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.avis__item{display:flex;flex-direction:column;gap:10px;padding:20px;border:1px solid var(--trait);border-radius:var(--r-carte)}
.avis__item p{font-size:15px}
.avis__item footer{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:13px;color:var(--sourdine)}
.avis__item footer strong{color:var(--texte)}
.avis__verifie{padding:2px 8px;border-radius:99px;background:color-mix(in srgb,var(--accent) 30%,var(--fond));color:var(--texte);font-weight:700;font-size:12px}
.avis__vide{text-align:center;color:var(--sourdine);max-width:56ch;margin-inline:auto}
.avis__form{border:1px solid var(--trait);border-radius:var(--r-carte);padding:0 20px}
.avis__form summary{cursor:pointer;padding:16px 0;font-weight:800;text-align:center;list-style:none}
.avis__form summary::-webkit-details-marker{display:none}
.avis__form[open] summary{border-bottom:1px solid var(--trait);margin-bottom:12px}
.avis__form form{display:grid;gap:12px;padding-bottom:20px}
.avis__form form p{margin:0;display:flex;flex-direction:column;gap:6px;font-size:14px}
.avis__form :is(input[type=text],input[type=email],select,textarea){width:100%;padding:12px 14px;border:1px solid var(--trait);border-radius:12px;font:inherit;background:var(--fond)}
.avis__form .comment-form-cookies-consent{flex-direction:row;align-items:flex-start;font-size:13px;color:var(--sourdine)}
.avis__form .form-submit input{min-height:50px;padding:0 24px;border:0;border-radius:var(--r-btn);background:var(--texte);color:var(--fond);font-weight:800;cursor:pointer}
.avis__note-form{color:var(--sourdine);font-size:13px!important}

@media (max-width:900px){
}
@media (max-width:700px){
  .p-images{grid-template-columns:1fr;gap:12px}
  .avis__liste{grid-template-columns:1fr}
  .pack-mini{min-height:86px;padding-inline:4px}
}

/* ---------- en-tête de fiche : nom du produit au-dessus des photos */
.fiche-entete{display:flex;flex-direction:column;gap:8px;margin-top:0}
/* points forts cochés + rangée d'icônes de réassurance */
.points-forts{display:flex;flex-direction:column;gap:12px;margin:4px 0 0;padding:0;list-style:none}
.points-forts li{position:relative;padding-left:30px;font-size:16px;font-weight:600;line-height:1.35;color:var(--texte)}
.points-forts li::before{content:"";position:absolute;left:0;top:2px;width:20px;height:20px;background:var(--cyan-profond);-webkit-mask:var(--ic-i-check) center/contain no-repeat;mask:var(--ic-i-check) center/contain no-repeat}
.reassurance-icones{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding-top:18px;border-top:1px solid var(--trait)}
.reassurance-icones .ri{display:flex;flex-direction:column;align-items:center;gap:8px;margin:0;text-align:center;font-size:13px;line-height:1.3;color:var(--texte)}
.reassurance-icones .ri::before{width:26px!important;height:26px!important;margin:0!important;vertical-align:0!important;background:var(--cyan-profond)!important}
/* Dans la boîte : texte et liste à gauche, photo du contenu à droite */
.p-boite-split{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;padding-top:0;margin-top:var(--espace);background:var(--fond)}
.p-boite-split__texte{display:flex;flex-direction:column;justify-content:center;gap:16px;padding:clamp(32px,6vw,96px) clamp(24px,6vw,96px)}
.p-boite-split__texte h2{font-size:clamp(28px,3vw,40px)}
.p-boite-split__texte>p:not(.eyebrow){color:var(--sourdine);font-size:17px}
.p-boite__liste{display:flex;flex-direction:column;gap:12px;margin:8px 0 0;padding:0;list-style:none}
.p-boite__liste li{position:relative;padding-left:28px;font-weight:600;font-size:15px}
.p-boite__liste li::before{content:"";position:absolute;left:0;top:2px;width:18px;height:18px;background:var(--cyan-profond);-webkit-mask:var(--ic-i-check) center/contain no-repeat;mask:var(--ic-i-check) center/contain no-repeat}
.p-boite-split__media{background:#eceeee;display:flex;align-items:center;justify-content:center;overflow:hidden}
.p-boite-split__media .wp-block-image{margin:0;width:100%}
.p-boite-split__media img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;padding:6%;mix-blend-mode:multiply}
/* Commande reçue : remerciement personnalisé et code fidélité */
.recu-prenom:empty{display:none}
.recu-fidelite__box{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:clamp(28px,5vw,56px);border-radius:var(--r-bloc);background:var(--texte);color:var(--fond)}
.recu-fidelite__box h2{color:var(--fond)}
.recu-fidelite__box h2 em{color:var(--accent)}
.recu-fidelite__box>p:not(.eyebrow):not(.recu-code){color:var(--sourdine-clair);max-width:52ch}
.recu-code{padding:12px 28px;border:2px dashed var(--accent);border-radius:14px;color:var(--accent);font:800 clamp(26px,3vw,34px)/1 var(--police-titres);letter-spacing:.12em;user-select:all}
.recu-fidelite__box .wp-block-buttons{justify-content:center;margin-top:8px}
.recu-fidelite__box .btn--ghost>.wp-block-button__link{background:transparent!important;color:var(--fond)!important;border:1.5px solid var(--trait-clair)!important}.recu-fidelite__box .btn--ghost>.wp-block-button__link::before{background:var(--accent)!important}
@media (max-width:900px){
  .p-boite-split{grid-template-columns:1fr}
  .p-boite-split__media{order:-1}
  .p-boite-split__texte{padding:28px var(--gouttiere) 8px}
}
@media (max-width:700px){
  .fiche-entete{margin-top:8px}
  .fiche-entete .fiche-titre{font-size:26px}
  .points-forts li{font-size:15px}
  .reassurance-icones .ri{font-size:12px}
  .recu-fidelite__box .wp-block-buttons{flex-direction:column;align-items:stretch;width:100%}
}

/* ---------- pop-up compact : tout visible sans défiler, même sur petit téléphone */
.fiche-cta{padding:0;background:none}
.sgc__boite{padding:20px 20px 16px}
.sgc__surtitre{font-size:11px}
.sgc__titre{font-size:21px;margin:4px 0 12px}
.sgc__recap{padding:10px 12px;margin-bottom:12px;border-radius:14px}
.sgc__produit{padding-bottom:8px;gap:10px}
.sgc__img{width:44px;height:44px;border-radius:10px}
.sgc__produit strong{font-size:14px}
.sgc__qte{font-size:12px}
.sgc__lignes{margin-top:8px;gap:3px}
.sgc__lignes>div{font-size:13px}
.sgc__total{margin-top:4px;padding-top:6px}
.sgc__total dd{font-size:18px}
.sgc__form{gap:9px}
.sgc__champ{gap:4px;font-size:13px}
.sgc__champ input{min-height:44px;padding:9px 12px}
.sgc__case{font-size:12.5px;line-height:1.35;gap:8px}
.sgc__case input{width:18px;height:18px}
.sgc__envoyer{min-height:50px;font-size:16px}
.sgc__note{font-size:12px;line-height:1.3;margin:0}
@media (max-width:700px){
  .sgc__boite{max-height:100dvh;padding:16px 16px calc(12px + env(safe-area-inset-bottom))}
  .sgc__fermer{top:8px;right:8px;width:38px;height:38px;font-size:22px}
  .sgc__titre{font-size:19px;margin:0 0 10px;padding-top:4px}
  .sgc__surtitre{display:none}
}
html.sgc-ouvert .wa-float,html.sgc-ouvert .barre-achat{display:none!important}
@media (max-height:600px){
  .sgc__surtitre,.sgc__note{display:none}
  .sgc__lignes>div:not(.sgc__total):not(.sgc__ligne-remise){display:none}
}

/* ---------- fin de fiche : carte compacte « solaire complet » (renvoie vers l'accueil) */
.solaire-complet{margin-block:0;padding-top:clamp(40px,5vw,56px)}
.solaire-complet__carte{display:grid;grid-template-columns:120px 1fr auto;align-items:center;gap:20px;max-width:860px;margin-inline:auto;padding:14px 22px 14px 14px;border:1px solid var(--trait);border-radius:20px;background:var(--fond);color:var(--texte);text-decoration:none;box-shadow:0 12px 30px -24px color-mix(in srgb,var(--texte) 60%,transparent);transition:border-color .15s,transform .15s}
.solaire-complet__carte:hover{border-color:var(--texte);transform:translateY(-2px);color:var(--texte)}
.solaire-complet__img{width:120px;height:120px;border-radius:14px;object-fit:cover}
.solaire-complet__texte{display:flex;flex-direction:column;gap:4px;min-width:0}
.solaire-complet__surtitre{font:800 11px/1.2 var(--police-texte);letter-spacing:.12em;text-transform:uppercase;color:var(--cyan-profond)}
.solaire-complet__titre{font:800 19px/1.25 var(--police-titres);letter-spacing:-.01em}
.solaire-complet__desc{font-size:14px;color:var(--sourdine);line-height:1.4}
.solaire-complet__bouton{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 18px;border-radius:var(--r-btn);background:var(--accent);color:var(--sur-accent);font-weight:800;font-size:14px;white-space:nowrap}
@media (max-width:700px){
  .solaire-complet__carte{grid-template-columns:84px 1fr;gap:12px 14px;padding:12px}
  .solaire-complet__img{width:84px;height:84px;border-radius:12px}
  .solaire-complet__titre{font-size:16px}
  .solaire-complet__desc{font-size:13px}
  .solaire-complet__bouton{grid-column:1/-1;justify-content:center}
}

/* ---------- boutons Commander : rappel visuel selon les pratiques e-commerce éprouvées
   - un halo qui s'étend depuis le bouton (« pulse ») + un reflet lumineux qui le traverse (« shine ») ;
   - court (≈ 1,2 s) puis repos : toutes les 6 s, et seulement quand le bouton est à l'écran (classe posée par commande.js) ;
   - la barre qui suit fait un petit saut à son apparition, puis le même rappel ;
   - arrêt au survol, après une interaction, pendant le formulaire, et si le visiteur réduit les animations. */
@keyframes sg-halo{
  0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 75%,transparent)}
  20%{box-shadow:0 0 0 12px color-mix(in srgb,var(--accent) 0%,transparent)}
  21%,100%{box-shadow:0 0 0 0 transparent}
}
@keyframes sg-pouls{0%,100%{transform:scale(1)}8%{transform:scale(1.035)}16%{transform:scale(1)}}
@keyframes sg-reflet{0%{transform:translateX(-120%) skewX(-20deg)}18%,100%{transform:translateX(320%) skewX(-20deg)}}
@keyframes sg-entree{0%{transform:translateY(110%)}70%{transform:translateY(-6%)}100%{transform:translateY(0)}}
.wp-block-button.btn--buy.sg-rappel>.wp-block-button__link{position:relative;overflow:hidden;animation:sg-halo 6s ease-out 1s infinite,sg-pouls 6s ease-in-out 1s infinite;will-change:transform,box-shadow}
.wp-block-button.btn--buy.sg-rappel>.wp-block-button__link::after{content:"";position:absolute;top:0;bottom:0;left:0;width:35%;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translateX(-120%) skewX(-20deg);animation:sg-reflet 6s ease-in-out 1.1s infinite}
.barre-achat.est-visible{animation:sg-entree .45s cubic-bezier(.3,1.4,.6,1) both}
.wp-block-button.btn--buy.sg-rappel>.wp-block-button__link:is(:hover,:focus-visible),
.wp-block-button.btn--buy.sg-rappel>.wp-block-button__link:is(:hover,:focus-visible)::after,
.sg-calme .wp-block-button.btn--buy.sg-rappel>.wp-block-button__link,.sg-calme .wp-block-button.btn--buy.sg-rappel>.wp-block-button__link::after,
html.sgc-ouvert .wp-block-button.btn--buy.sg-rappel>.wp-block-button__link,html.sgc-ouvert .wp-block-button.btn--buy.sg-rappel>.wp-block-button__link::after{animation:none}
@media (prefers-reduced-motion:reduce){
  .wp-block-button.btn--buy.sg-rappel>.wp-block-button__link,.wp-block-button.btn--buy.sg-rappel>.wp-block-button__link::after,.barre-achat.est-visible{animation:none}
}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
