/* ==========================================================================
   Disquaire Général Nostalgie — la charte noir et or pour Divi 5.
   Chargée par inc/boutique.php, après Divi et style.css.

   Mode d'emploi
   - 1 et 2 : jetons et polices. Les couleurs et les polices de Divi se règlent
     dans ses variables de design, aux mêmes valeurs (liste dans
     divi-dgn/LISEZMOI.md) ; ces jetons servent au CSS ci-dessous.
   - 3 : la base, à spécificité nulle (:where) — un réglage Divi l'emporte.
   - 4 : classes à poser dans le champ « Classe CSS » des modules Divi.
   - 5 à 9 : WooCommerce (cartes produit des blocs, panier, commande, Mon
     compte, messages), repris du thème de blocs validé dans l'atelier.
   ========================================================================== */

/* ==========================================================================
   1 · Jetons
   ========================================================================== */
:root{
  --fond:#0E0E0E;
  --entete:#020202;
  --surface:#141413;
  --texte:#FFFFFF;
  --sourdine:#BDBDBD;
  --trait:#2A2A27;
  --accent:#D79E20;
  --sur-accent:#141008;
  --promo:#D79E20;
  --alerte:#E5604D;

  --accent-vif:color-mix(in srgb,var(--accent) 86%,var(--texte));
  --texte-doux:color-mix(in srgb,var(--texte) 86%,var(--fond));
  --ombre:color-mix(in srgb,var(--entete) 60%,transparent);
  --trait-or:color-mix(in srgb,var(--accent) 42%,transparent);

  --police-titres:'Bebas Neue',sans-serif;
  --police-texte:'Roboto Condensed',sans-serif;
  --titre-1:clamp(58px,7.2vw,104px);
  --titre-2:clamp(44px,4.4vw,64px);
  --rayon:3px;
  --rayon-bouton:3px;
  --largeur:1320px;
  --section:120px;

  /* Icônes en masques CSS : elles prennent la couleur de background-color */
  --i-livraison:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 48' fill='none' stroke='%23000' stroke-width='3' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M16 6h26v28H16z'/%3E%3Cpath d='M42 14h9l8 9v11H42'/%3E%3Ccircle cx='24' cy='37' r='5'/%3E%3Ccircle cx='51' cy='37' r='5'/%3E%3Cpath d='M4 12h8M2 19h10M6 26h6'/%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.8' 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 40 48' fill='none' stroke='%23000' stroke-width='3.4'%3E%3Cpath d='M10 21v-7a10 10 0 0 1 20 0v7'/%3E%3Crect x='5' y='21' width='30' height='24' rx='3'/%3E%3Cpath d='M20 30v6' stroke-linecap='round'/%3E%3C/svg%3E");
  --i-vinyle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill-rule='evenodd' d='M24 2a22 22 0 1 1 0 44a22 22 0 1 1 0-44zM24 10a14 14 0 1 1 0 28a14 14 0 1 1 0-28zM24 11a13 13 0 1 1 0 26a13 13 0 1 1 0-26zM24 15a9 9 0 1 1 0 18a9 9 0 1 1 0-18zM24 16a8 8 0 1 1 0 16a8 8 0 1 1 0-16zM24 21.5a2.5 2.5 0 1 1 0 5a2.5 2.5 0 1 1 0-5z'/%3E%3C/svg%3E");
  --i-fleche:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15m-6-6 6 6-6 6'/%3E%3C/svg%3E");
  --i-colis:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='2.6' stroke-linejoin='round'%3E%3Cpath d='M24 4 43 13v22L24 44 5 35V13z'/%3E%3Cpath d='m5 13 19 9 19-9M24 22v22'/%3E%3Cpath d='m14.5 8.5 19 9v7'/%3E%3C/svg%3E");
  --i-bulle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='2.6' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M8 8h32a4 4 0 0 1 4 4v18a4 4 0 0 1-4 4H22l-9 8v-8H8a4 4 0 0 1-4-4V12a4 4 0 0 1 4-4z'/%3E%3Cpath d='M15 18h18M15 25h11'/%3E%3C/svg%3E");
  --i-etoile:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath d='m24 3 6.2 13.6 14.8 1.6-11 10 3.1 14.6L24 35.4l-13.1 7.4L14 28.2l-11-10 14.8-1.6z'/%3E%3C/svg%3E");
  --i-lys:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M32 3c-6 9-8.5 17.5-4.5 26.5L30 40h4l2.5-10.5C40.5 20.5 38 12 32 3z'/%3E%3Cpath d='M27.5 36C22 27 12.5 24.5 8 30.5c-3.2 4.3.3 10.4 6 9.6-3.4-2.6-2.4-7.4 1.8-7.6 4.6-.2 8.6 3.5 11.7 7.5z'/%3E%3Cpath d='M36.5 36C42 27 51.5 24.5 56 30.5c3.2 4.3-.3 10.4-6 9.6 3.4-2.6 2.4-7.4-1.8-7.6-4.6-.2-8.6 3.5-11.7 7.5z'/%3E%3Crect x='20' y='40' width='24' height='5' rx='1.5'/%3E%3Cpath d='M28.5 45c-.5 6-3.5 10-8.5 12.5h8l4-6 4 6h8c-5-2.5-8-6.5-8.5-12.5z'/%3E%3C/svg%3E");
  --i-telephone:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M5 3h4l2 5-2.5 1.5a11 11 0 0 0 6 6L16 13l5 2v4a2 2 0 0 1-2 2A17 17 0 0 1 3 5a2 2 0 0 1 2-2z'/%3E%3C/svg%3E");
  --i-courriel:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3.5 6.5 8.5 7 8.5-7'/%3E%3C/svg%3E");
  --i-lieu:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E");
  --i-enveloppe:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 36'%3E%3Cpath fill-rule='evenodd' d='M5 2h38a3 3 0 0 1 3 3v26a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V5a3 3 0 0 1 3-3zM4.5 6.6 24 21.2 43.5 6.6l-1.8-2.4L24 17.4 6.3 4.2z'/%3E%3C/svg%3E");
  --i-cadenas-plein:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 48'%3E%3Cpath d='M10 21v-7a10 10 0 0 1 20 0v7' fill='none' stroke='%23000' stroke-width='4'/%3E%3Crect x='4' y='20' width='32' height='26' rx='3'/%3E%3C/svg%3E");
  --i-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  --i-pomme:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 20'%3E%3Cpath d='M12.2 10.6c0-2 1.6-2.9 1.7-3-1-1.4-2.4-1.6-2.9-1.6-1.2-.1-2.4.7-3 .7s-1.6-.7-2.6-.7C4 6 2.7 6.8 2 8.1c-1.5 2.6-.4 6.4 1 8.5.7 1 1.5 2.1 2.6 2.1 1 0 1.4-.7 2.7-.7 1.2 0 1.6.7 2.7.6 1.1 0 1.8-1 2.5-2 .8-1.1 1.1-2.2 1.1-2.3 0 0-2.4-.9-2.4-3.7zM10.2 4.6c.6-.7 1-1.6.8-2.6-.8 0-1.8.6-2.4 1.3-.5.6-1 1.6-.9 2.5.9.1 1.8-.5 2.5-1.2z'/%3E%3C/svg%3E");
  --i-compte:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4.5 20.5c.9-3.8 3.9-6 7.5-6s6.6 2.2 7.5 6'/%3E%3C/svg%3E");
  --i-panier: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' stroke-linecap='round'%3E%3Cpath d='M2.5 3.5h2.8l2.3 11.2h10.6l2-8H6.4'/%3E%3Ccircle cx='9.2' cy='19.3' r='1.4'/%3E%3Ccircle cx='17.3' cy='19.3' r='1.4'/%3E%3C/svg%3E");
  --entete-h:112px;
  --bord-tuile:color-mix(in srgb,var(--accent) 22%,var(--trait));
  --beige:color-mix(in srgb,color-mix(in srgb,var(--texte) 85%,var(--accent)) 82%,var(--fond));
  --voile:color-mix(in srgb,var(--entete) 92%,transparent);
  /* grain d'usure de la maquette : bruit fractal transformé en masque alpha */
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.38' numOctaves='4' seed='11' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -18 0 0 0 12.2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");

  /* Variables exposées par WooCommerce, branchées sur les rôles de la charte */
  --wc-separator-color:var(--trait);
  --wc-form-color-text:var(--texte);
}

/* ==========================================================================
   2 · Polices hébergées (aucun appel à Google : Loi 25). Dans Divi, choisir
   « Bebas Neue » et « Roboto Condensed » et désactiver Google Fonts dans les
   options du thème : ces fichiers prennent le relais sous le même nom.
   ========================================================================== */
@font-face{font-family:'Bebas Neue';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/bebas-neue-normal-400.woff2) format('woff2')}
@font-face{font-family:'Roboto Condensed';font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/roboto-condensed-normal-400-700.woff2) format('woff2')}

/* ==========================================================================
   3 · Base — à la même spécificité que les défauts de Divi, chargée après eux :
   elle les remplace (Open Sans 14 px gris, sections blanches). Un réglage fait
   ensuite dans le personnalisateur Divi, imprimé plus bas dans <head>, gagne.
   PIÈGE : Divi peint chaque section en blanc (.et_pb_section) et le contenu
   (#main-content) aussi ; sans ces lignes, le site sort blanc.
   ========================================================================== */
body,#main-content,.et_pb_section{background-color:var(--fond)}
/* PIÈGE : le personnalisateur Divi imprime body{font-size:14px;line-height:1.7em} APRÈS
   cette feuille. Posée sur #page-container, la base passe devant : les modules en héritent. */
body,#page-container{color:var(--texte-doux);font-family:var(--police-texte);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6{font-family:var(--police-titres);font-weight:400;color:var(--texte);line-height:1;text-wrap:balance}
a{color:inherit}
a:hover{color:var(--accent)}
/* Rangées : l'enveloppe de la maquette (1320 px), au lieu des 80 % / 1080 px de Divi
   (à deux classes : la règle de Divi en a une de plus que la seule .et_pb_row). */
.et_pb_section .et_pb_row{width:min(var(--largeur),100% - 48px);max-width:none}
@media (max-width:782px){.et_pb_section .et_pb_row{width:calc(100% - 32px)}}
: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;font-size:17px;color:var(--texte);background:var(--fond);border:1px solid var(--trait);
  border-radius:var(--rayon);padding:12px 16px;min-height:54px;max-width:100%}
:where(input,select,textarea):focus{outline:none;border-color:var(--accent)}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
/* PIÈGE : une règle img{display:block} écrase l'attribut hidden — le panier
   affichait l'image de secours cachée (deux vignettes par article). */
[hidden]{display:none!important}

/* L'« enveloppe » de la maquette, pour les pages faites de blocs (pages légales,
   Mon compte) : 1320 px dès que la fenêtre le permet. */
.wrap{width:min(var(--largeur),100% - 48px);margin-inline:auto}

/* ==========================================================================
   4 · Classes pour les modules Divi (champ « Classe CSS »)
   ========================================================================== */
/* Grain d'usure des grands titres, posé sur le titre lui-même : le masque coupe tout
   ce qui dépasse de sa boîte — la marge du haut laisse la place des accents. */
.dgn-vieilli :is(h1,h2,h3,h4,p){padding-top:.16em;margin-top:-.16em;-webkit-mask-image:var(--grain);mask-image:var(--grain);-webkit-mask-size:300px;mask-size:300px}

/* Surtitre or avec son filet (module Texte) */
.dgn-surtitre,.dgn-surtitre p{display:flex;align-items:center;gap:14px;font-family:var(--police-texte);font-weight:700;font-size:14px;line-height:1.5;letter-spacing:.24em;text-transform:uppercase;color:var(--accent)}
.dgn-surtitre p::before,.dgn-surtitre:not(:has(p))::before{content:"";flex:0 0 36px;height:2px;background:var(--accent)}

/* Promesses à icône (Livraison, paiement, disques choisis) : paragraphe .promesse */
.promesse,.dgn-promesse{display:flex;align-items:center;gap:12px;font-size:15px;color:var(--texte-doux)}
.promesse::before,.dgn-promesse::before{content:"";flex:none;width:24px;height:20px;background:var(--accent);
  -webkit-mask:var(--i-livraison) center/contain no-repeat;mask:var(--i-livraison) center/contain no-repeat}
:is(.promesse,.dgn-promesse).promesse-retours::before{-webkit-mask-image:var(--i-retour);mask-image:var(--i-retour)}
:is(.promesse,.dgn-promesse).promesse-paiement::before{-webkit-mask-image:var(--i-cadenas);mask-image:var(--i-cadenas)}
:is(.promesse,.dgn-promesse).promesse-collection::before{-webkit-mask-image:var(--i-vinyle);mask-image:var(--i-vinyle)}

/* Héros de l'accueil (sur la SECTION Divi) : voile dégradé et 33 tours en
   perspective, en pseudo-éléments. La photo est le fond de la section, réglé
   dans Divi ; les rangées passent au-dessus du décor. */
.dgn-hero{--g1:color-mix(in srgb,var(--texte) 3.5%,var(--entete));--g2:color-mix(in srgb,var(--texte) 8.5%,var(--entete));--g3:color-mix(in srgb,var(--texte) 10%,var(--entete));
  position:relative;overflow:hidden}
.dgn-hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:
  linear-gradient(90deg,color-mix(in srgb,var(--entete) 94%,transparent) 0%,color-mix(in srgb,var(--entete) 80%,transparent) 30%,color-mix(in srgb,var(--entete) 30%,transparent) 56%,transparent 76%,color-mix(in srgb,var(--entete) 18%,transparent) 100%),
  linear-gradient(0deg,color-mix(in srgb,var(--entete) 50%,transparent) 0%,transparent 28%),
  linear-gradient(180deg,color-mix(in srgb,var(--entete) 35%,transparent) 0%,transparent 18%)}
.dgn-hero::after{--d:clamp(540px,58vw,940px);content:"";position:absolute;z-index:1;pointer-events:none;width:var(--d);height:var(--d);
  left:calc(50% + 465px - var(--d) / 2);bottom:calc(150px - var(--d) / 2);border-radius:50%;
  transform:perspective(2400px) rotateZ(-8deg) rotateX(63deg);
  background:
    conic-gradient(from 200deg,transparent 0deg,color-mix(in srgb,var(--texte) 42%,transparent) 14deg,color-mix(in srgb,var(--texte) 10%,transparent) 30deg,transparent 50deg,
      transparent 172deg,color-mix(in srgb,var(--texte) 30%,transparent) 192deg,color-mix(in srgb,var(--texte) 6%,transparent) 212deg,transparent 232deg),
    radial-gradient(circle,var(--entete) 0 .9%,transparent 1.1%),
    radial-gradient(circle,var(--accent-vif) 0,var(--accent) 9%,color-mix(in srgb,var(--accent) 82%,var(--entete)) 16.3%,transparent 16.5%),
    radial-gradient(circle,transparent 0 17.4%,var(--entete) 17.6% 18.8%,transparent 19%),
    radial-gradient(circle,transparent 0 46%,var(--entete) 46.3% 46.9%,transparent 47.2% 71%,var(--entete) 71.3% 71.9%,transparent 72.2%),
    repeating-radial-gradient(circle,var(--g1) 0 1.6px,var(--g2) 2.2px 2.8px,var(--g1) 3.4px 4.6px),
    var(--g1);
  background-blend-mode:screen,normal,normal,normal,normal,normal;
  box-shadow:0 9px 0 var(--g3),0 13px 0 var(--entete),0 21px 0 var(--g3),0 25px 0 var(--entete),0 33px 0 var(--g3),0 37px 0 var(--entete),
    0 45px 0 var(--g3),0 49px 0 var(--entete),0 90px 90px var(--ombre)}
.dgn-hero>.et_pb_row,.dgn-hero>.et_pb_row_inner{position:relative;z-index:2}
.dgn-hero em{font-style:normal;color:var(--accent)}

/* ==========================================================================
   3 bis · En-tête et pied de page du Theme Builder (divi/entete.txt, divi/pied.txt).
   En-tête : le module Menu de Divi (logo, menu WordPress « Menu principal »,
   panier) ; « Mon compte » est un élément du menu, en icône seule ici, en toutes
   lettres dans le menu mobile.
   ========================================================================== */
.et_pb_section.dgn-entete{position:relative;z-index:40;background-color:var(--entete)}
/* PIÈGE : le conteneur de l'en-tête du Theme Builder est à z-index:2 ; le contenu de la
   page, qui suit, passait par-dessus le menu mobile déroulé et le sous-menu Boutique */
.et-l--header>.et_builder_inner_content{z-index:100}
/* !important : Divi peint le hamburger de sa couleur d'accent (bleu) dans la règle du module */
.et_pb_section .dgn-menu .mobile_menu_bar::before{color:var(--texte)!important}
.et_pb_section .dgn-menu{width:100%}
.et_pb_section .dgn-menu .et_pb_menu_inner_container{display:flex;align-items:center;gap:32px;width:100%;min-height:var(--entete-h)}
.et_pb_section .dgn-menu .et_pb_menu__logo-wrap{flex:none;width:auto;max-width:none;margin:0;padding:0}
.et_pb_section .dgn-menu .et_pb_menu__logo{margin:0;padding:0}
.et_pb_section .dgn-menu .et_pb_menu__logo img{display:block;width:86px;height:86px;max-width:none;border-radius:50%;
  box-shadow:0 0 0 3px var(--entete),0 0 0 5px var(--accent),0 6px 22px var(--trait-or);transition:transform .3s}
.et_pb_section .dgn-menu .et_pb_menu__logo a:hover img{transform:rotate(-8deg)}
.et_pb_section .dgn-menu .et_pb_menu__wrap{position:relative;flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:flex-end;margin:0}
.et_pb_section .dgn-menu .et_pb_menu__menu{flex:1;display:flex;justify-content:center}
.et_pb_section .dgn-menu .et_pb_menu__menu .et-menu{display:flex;align-items:center;gap:38px;margin:0;padding:0}
.et_pb_section .dgn-menu .et_pb_menu__menu .et-menu>li{margin:0;padding:0;line-height:1}
.et_pb_section .dgn-menu .et_pb_menu__menu .et-menu>li>a{position:relative;padding:12px 0;font:700 16px/1 var(--police-texte);letter-spacing:.01em;text-transform:uppercase;
  white-space:nowrap;color:var(--texte);opacity:1;transition:color .2s}
.et_pb_section .dgn-menu .et_pb_menu__menu .et-menu>li>a:hover,.dgn-menu .et_pb_menu__menu .et-menu>li.current-menu-item>a,
.et_pb_section .dgn-menu .et_pb_menu__menu .et-menu>li.current-menu-ancestor>a{color:var(--accent);opacity:1}
/* le trait or sous la page en cours (::before : ::after porte déjà la flèche du sous-menu) */
.et_pb_section .dgn-menu .et_pb_menu__menu .et-menu>li:is(.current-menu-item,.current-menu-ancestor)>a::before{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;background:var(--accent)}
.et_pb_section .dgn-menu .et_pb_menu__menu .et-menu>li.menu-item-has-children>a{padding-right:22px}
.et_pb_section .dgn-menu .et_pb_menu__menu .et-menu>li.menu-item-has-children>a::after{top:50%;right:0;margin-top:-8px;transform:none;font-size:16px;line-height:1;color:currentColor}
/* sous-menu des catégories */
.et_pb_section .dgn-menu .et_pb_menu__menu .et-menu .sub-menu{top:100%;width:auto;min-width:240px;padding:10px 0;border:1px solid var(--trait);border-top:2px solid var(--accent);
  background-color:var(--entete);box-shadow:0 18px 40px var(--ombre)}
.et_pb_section .dgn-menu .et_pb_menu__menu .et-menu .sub-menu li{padding:0;line-height:1.3}
.et_pb_section .dgn-menu .et_pb_menu__menu .et-menu .sub-menu a{display:block;width:auto;padding:9px 18px;font:400 15px/1.3 var(--police-texte);text-transform:none;color:var(--sourdine)}
.et_pb_section .dgn-menu .et_pb_menu__menu .et-menu .sub-menu a:hover{color:var(--accent);background-color:var(--fond);opacity:1}
/* « Mon compte » et le panier, en icônes à droite */
.et_pb_section .dgn-menu .et_pb_menu__menu .et-menu>li.dgn-menu-compte{position:absolute;top:50%;right:72px;margin-top:-16px}
.et_pb_section .dgn-menu .et_pb_menu__menu .et-menu>li.dgn-menu-compte>a{display:block;width:32px;height:32px;padding:0;font-size:0;color:var(--texte)}
.et_pb_section .dgn-menu .et_pb_menu__menu .et-menu>li.dgn-menu-compte>a::before{content:"";position:absolute;inset:2px;background:currentColor;
  -webkit-mask:var(--i-compte) center/contain no-repeat;mask:var(--i-compte) center/contain no-repeat}
.et_pb_section .dgn-menu .et_pb_menu__menu .et-menu>li.dgn-menu-compte>a:hover{color:var(--accent)}
.et_pb_section .dgn-menu .et_pb_menu__menu .et-menu>li.dgn-menu-compte.current-menu-item>a::before{bottom:2px}
.et_pb_section .dgn-menu .et_pb_menu__cart-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin-left:64px;padding:0;color:var(--texte)}
.et_pb_section .dgn-menu .et_pb_menu__cart-button::after{content:"";width:28px;height:28px;background:currentColor;font-size:0;
  -webkit-mask:var(--i-panier) center/contain no-repeat;mask:var(--i-panier) center/contain no-repeat}
.et_pb_section .dgn-menu .et_pb_menu__cart-button:hover{color:var(--accent);opacity:1}
/* menu mobile de Divi (hamburger, liste déroulée sous l'en-tête) */
.et_pb_section .dgn-menu .mobile_menu_bar::before{color:var(--texte);font-size:34px}
.et_pb_section .dgn-menu .et_mobile_menu{padding:14px 24px 32px;border-top:2px solid var(--accent);background-color:var(--entete);box-shadow:0 24px 40px var(--ombre)}
.et_pb_section .dgn-menu .et_mobile_menu li a{padding:16px 0;border-bottom:1px solid var(--trait);font:400 30px/1.1 var(--police-titres);letter-spacing:.02em;color:var(--texte);background:transparent}
.et_pb_section .dgn-menu .et_mobile_menu li a:hover{color:var(--accent);background:transparent;opacity:1}
.et_pb_section .dgn-menu .et_mobile_menu .sub-menu{padding:0 0 12px 16px}
.et_pb_section .dgn-menu .et_mobile_menu .sub-menu a{padding:8px 0;border:0;font:400 17px/1.3 var(--police-texte);color:var(--sourdine)}

/* Pied de page : quatre colonnes, puis la barre des mentions */
.et_pb_section.dgn-pied,.et_pb_section.dgn-pied-bas{background-color:var(--fond)}
.et_pb_section .dgn-pied-colonnes{display:grid;grid-template-columns:1.3fr 1.1fr 1fr 1fr}
.dgn-pied-colonnes::after{display:none}
.et_pb_section .dgn-pied-colonnes>.et_pb_column{width:auto;margin:0;float:none;padding:0 28px;border-left:1px solid var(--trait)}
.et_pb_section .dgn-pied-colonnes>.et_pb_column:first-child{padding-left:4px;border-left:0}
.dgn-pied-logo .et_pb_image_wrap{display:inline-block}
.dgn-pied-logo img{display:block;width:132px;height:132px;border-radius:50%;box-shadow:0 0 0 3px var(--fond),0 0 0 5px var(--accent),0 6px 22px var(--trait-or)}
.dgn-pied-titre{margin:4px 0 24px;font-family:var(--police-titres);font-size:26px;line-height:1;letter-spacing:.02em;text-transform:uppercase;color:var(--texte)}
.dgn-pied-contact{margin-top:29px}
.dgn-pied-contact p{font-size:16px;line-height:1.6;color:var(--sourdine)}
.dgn-pied-contact p+p{margin-top:22px}
.dgn-pied-contact a{color:inherit;text-decoration:none}
.dgn-pied-contact a:hover{color:var(--accent)}
.et_pb_section .dgn-pied-liste ul{margin:0;padding:0;list-style:none}
.dgn-pied-liste li{font-size:16px;line-height:2.1}
.dgn-pied-liste li a{color:var(--sourdine);text-decoration:none}
.dgn-pied-liste li a:hover{color:var(--accent)}
/* pastilles des moyens de paiement — monochromes : à aligner sur le prestataire retenu */
.dgn-cartes-paiement{display:grid;grid-template-columns:repeat(3,58px);gap:10px}
.dgn-carte{display:flex;align-items:center;justify-content:center;gap:2px;height:38px;border-radius:3px;background:var(--texte);color:var(--sur-accent);font-weight:700;font-size:15px;line-height:1}
.dgn-carte-visa{font-style:italic;letter-spacing:.02em}
.dgn-carte-mc{font-size:0}
.dgn-carte-mc::before,.dgn-carte-mc::after{content:"";width:17px;height:17px;border-radius:50%;background:var(--sur-accent)}
.dgn-carte-mc::after{margin-left:-9px;background:var(--accent);mix-blend-mode:multiply}
.dgn-carte-apple::before{content:"";width:13px;height:15px;margin-top:-2px;background:currentColor;-webkit-mask:var(--i-pomme) center/contain no-repeat;mask:var(--i-pomme) center/contain no-repeat}
.dgn-carte-apple,.dgn-carte-gpay{font-weight:500}
.dgn-securise{display:flex;align-items:center;gap:10px;margin-top:40px;font-size:16px;color:var(--sourdine)}
.dgn-securise::before{content:"";width:18px;height:22px;background:currentColor;-webkit-mask:var(--i-cadenas) center/contain no-repeat;mask:var(--i-cadenas) center/contain no-repeat}
.et_pb_section.dgn-pied-bas{border-top:1px solid var(--trait)}
.et_pb_section .dgn-pied-bas-barre{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.dgn-pied-bas-barre::after{display:none}
.et_pb_section .dgn-pied-bas-barre>.et_pb_column{width:auto;margin:0;float:none}
.dgn-pied-mention p{font-size:16px;line-height:1.5;color:var(--sourdine)}
.et_pb_section .dgn-pied-legal ul{display:flex;flex-wrap:wrap;margin:0;padding:0;list-style:none}
.dgn-pied-legal li{font-size:16px;line-height:1.5;color:var(--sourdine)}
.dgn-pied-legal li+li::before{content:"|";margin:0 14px}
.dgn-pied-legal a{color:var(--sourdine);text-decoration:none}
.dgn-pied-legal a:hover{color:var(--accent)}

/* ==========================================================================
   4 bis · Pages vitrine construites dans Divi (divi/*.txt) : la maquette V3
   posée sur le balisage des modules — classe sur l'enveloppe du module
   (div.et_pb_text.dgn-…), texte dans .et_pb_text_inner.
   ========================================================================== */
/* Remises à zéro de Divi, seulement dans nos sections : marges sous chaque module,
   1em sous chaque paragraphe, colonnes flottantes, clearfix des rangées.
   PIÈGE : Divi met 2,75 % sous chaque module à 4 classes ; la remise passe par
   l'identifiant #page-container. Les espacements de la maquette sont donc tous en
   marge HAUTE (margin-top), que cette remise ne touche pas. */
#page-container .et_pb_section[class*="dgn-"] .et_pb_module{margin-bottom:0}
.et_pb_section[class*="dgn-"] .et_pb_column{margin-bottom:0}
.et_pb_section[class*="dgn-"] :is(p,h1,h2,h3,h4){padding-bottom:0}

/* En-tête de section : titre à gauche, lien ou bouton à droite, alignés en bas */
/* PIÈGE : Divi centre ses rangées par .et_pb_row:not([class*=et_flex_column]){margin:auto},
   qui annule toute marge basse posée à une seule classe — d'où les trois classes. */
.dgn-entete-section{display:flex;align-items:flex-end;justify-content:space-between;gap:40px}
.et_pb_section .et_pb_row.dgn-entete-section{margin-bottom:48px}
.dgn-entete-section::after{display:none}
.et_pb_section .dgn-entete-section>.et_pb_column{width:auto;margin-right:0;float:none}
.dgn-entete-section>.et_pb_column:last-child{text-align:right}
.dgn-titre{margin-top:14px}
.dgn-titre :is(h1,h2){font-size:64px;line-height:.98;letter-spacing:.01em}
.dgn-entete-texte{margin-top:14px}
.dgn-entete-texte p{font-size:18px;color:var(--texte-doux)}

/* Boutons de la maquette : liens dans un module Texte (classe sur le lien) */
.dgn-boutons p{display:flex;flex-wrap:wrap;gap:18px}
.dgn-bouton{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:16px 32px;border-radius:var(--rayon-bouton);
  font:700 18px/1.2 var(--police-texte);letter-spacing:.01em;text-transform:uppercase;text-decoration:none;transition:background-color .2s,color .2s,border-color .2s}
.dgn-bouton-or{background:var(--accent);color:var(--sur-accent)}
.dgn-bouton-or:hover{background:var(--accent-vif);color:var(--sur-accent)}
.dgn-bouton-contour{padding:14px 30px;border:2px solid var(--texte);background:transparent;color:var(--texte)}
.dgn-bouton-contour:hover{border-color:var(--accent);color:var(--accent)}
.dgn-bouton-petit{min-height:0;padding:12px 22px;font-size:16px}
.dgn-bouton-noir{background:var(--fond);color:var(--texte)}
.dgn-bouton-noir:hover{background:var(--entete);color:var(--accent)}
.dgn-bouton-contour-noir{padding:14px 30px;border:2px solid var(--sur-accent);background:transparent;color:var(--sur-accent)}
.dgn-bouton-contour-noir:hover{background:var(--sur-accent);color:var(--accent)}
/* Lien fléché souligné d'or (« Toute la boutique ») */
.dgn-lien-fleche{display:inline-flex;align-items:center;gap:10px;padding-bottom:6px;border-bottom:2px solid var(--accent);
  font-weight:700;font-size:15px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--texte)}
.dgn-lien-fleche::after{content:"";width:20px;height:20px;background:var(--accent);
  -webkit-mask:var(--i-fleche) center/contain no-repeat;mask:var(--i-fleche) center/contain no-repeat;transition:transform .25s}
.dgn-lien-fleche:hover::after{transform:translateX(4px)}

/* Héros */
.dgn-hero{min-height:690px;border-bottom:1px solid var(--trait)}
.dgn-hero-titre{margin-top:26px}
.dgn-hero-titre h1{font-size:104px;line-height:.88;letter-spacing:.005em;color:var(--texte)}
.dgn-hero-texte{max-width:480px;margin-top:32px}
.dgn-hero-texte p{font-size:22px;line-height:1.5;color:var(--texte-doux)}
.dgn-hero .dgn-boutons{margin-top:40px}

/* Cartes produit du module Boutique de Divi : la pochette carrée, le disque qui
   sort par le haut au survol, titre, prix or, pastille Promo sur la pochette.
   PIÈGE : WooCommerce dimensionne ces cartes à 3 classes
   (.woocommerce ul.products.columns-5 li.product : 16,95 %) — d'où le préfixe
   :is(.dgn-cartes .woocommerce,#left-area) ul.products[class], plus précis, sans !important. */
:is(.dgn-cartes .woocommerce,#left-area) ul.products[class]{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:52px 24px;margin:0;padding:64px 0 0;list-style:none}
:is(.dgn-cartes .woocommerce,#left-area) ul.products[class]::before,:is(.dgn-cartes .woocommerce,#left-area) ul.products[class]::after{display:none}
:is(.dgn-cartes .woocommerce,#left-area) ul.products[class] li.product{float:none;width:auto;min-width:0;margin:0;padding:0;clear:none}
:is(.dgn-cartes .woocommerce,#left-area) ul.products[class] li.product a{text-decoration:none}
:is(.dgn-cartes .woocommerce,#left-area) ul.products[class] li.product .et_shop_image{position:relative;display:block;margin:0 0 16px}
:is(.dgn-cartes .woocommerce,#left-area) ul.products[class] li.product .et_shop_image::before{content:"";position:absolute;top:3%;left:3%;width:94%;aspect-ratio:1;z-index:0;border-radius:50%;
  background:radial-gradient(circle,var(--sur-accent) 0 2.5%,var(--accent) 2.8% 17%,var(--entete) 17.4%),
             repeating-radial-gradient(circle,var(--entete) 0 1.4px,var(--trait) 2px 2.6px);
  transition:transform .5s cubic-bezier(.2,.75,.2,1)}
:is(.dgn-cartes .woocommerce,#left-area) ul.products[class] li.product:hover .et_shop_image::before{transform:translateY(-24%)}
:is(.dgn-cartes .woocommerce,#left-area) ul.products[class] li.product .et_shop_image img{position:relative;z-index:1;display:block;width:100%;aspect-ratio:1;height:auto;margin:0;border:0;
  object-fit:cover;border-radius:2px;background:var(--surface);box-shadow:0 18px 30px var(--ombre)}
:is(.dgn-cartes .woocommerce,#left-area) ul.products[class] li.product .et_overlay{display:none}
:is(.dgn-cartes .woocommerce,#left-area) ul.products[class] li.product .woocommerce-loop-product__title{margin:0;padding:0;font:700 16px/1.35 var(--police-texte);letter-spacing:0;text-transform:none;color:var(--texte)}
/* !important : Divi force ces prix en gris (.woocommerce ul.products li.product .price{color:#666!important}) */
:is(.dgn-cartes .woocommerce,#left-area) ul.products[class] li.product .price{display:block;margin:4px 0 0;font-size:16px;font-weight:700;line-height:1.35;color:var(--accent)!important}
:is(.dgn-cartes .woocommerce,#left-area) ul.products[class] li.product .price del{margin-right:6px;font-weight:400;color:var(--sourdine)!important;opacity:1}
:is(.dgn-cartes .woocommerce,#left-area) ul.products[class] li.product .price ins{text-decoration:none;color:var(--promo)!important}
:is(.dgn-cartes .woocommerce,#left-area) ul.products[class] li.product .star-rating{display:none}
/* !important : Divi colore la pastille en saumon (.woocommerce span.onsale{background:#ef8f61!important}) */
:is(.dgn-cartes .woocommerce,#left-area) ul.products[class] li.product .onsale{position:absolute;z-index:2;top:10px;left:10px;right:auto;min-width:0;min-height:0;margin:0;padding:6px 10px 5px;
  border-radius:2px;background:var(--accent)!important;color:var(--sur-accent);font:400 17px/1 var(--police-titres);letter-spacing:.04em;text-transform:uppercase}
/* Nouveaux arrivages : la piste défilante de la maquette (5 visibles, 3 en tablette, 2,2 sur mobile).
   position:relative : sans elle, les textes réservés aux lecteurs d'écran échappent au
   défilement et élargissent la page. */
#page-container .dgn-carrousel .woocommerce ul.products[class]{position:relative;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 4 * 24px) / 5);
  column-gap:24px;margin-top:-64px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
#page-container .dgn-carrousel .woocommerce ul.products[class]::-webkit-scrollbar{display:none}
#page-container .dgn-carrousel .woocommerce ul.products[class] li.product{scroll-snap-align:start}

/* Catégories en mosaïque : les tuiles sont des modules Texte (photo = fond du
   module), rangés par la colonne en grille. Carte entière cliquable par lien étendu. */
.dgn-mosaique .et_pb_column{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:232px;gap:18px;width:100%;margin:0}
.dgn-mosaique .et_pb_column::before,.dgn-mosaique .et_pb_column::after{display:none}
.et_pb_section .dgn-tuile{position:relative;overflow:hidden;margin:0;border:1px solid var(--bord-tuile);border-radius:3px;background-color:var(--entete);
  background-size:cover;background-position:center;transition:border-color .25s,background-size .6s}
.dgn-tuile::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:color-mix(in srgb,var(--entete) 22%,transparent);transition:background-color .3s}
.dgn-tuile::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(0deg,color-mix(in srgb,var(--entete) 90%,transparent) 0%,color-mix(in srgb,var(--entete) 40%,transparent) 40%,transparent 68%)}
.dgn-tuile:hover{border-color:var(--accent)}
.dgn-tuile:hover::before{background-color:color-mix(in srgb,var(--entete) 8%,transparent)}
.dgn-tuile .et_pb_text_inner{position:absolute;left:26px;right:26px;bottom:24px;z-index:2;display:flex;flex-direction:column;align-items:flex-start}
.dgn-tuile-grande{grid-column:span 2;grid-row:span 2}
.dgn-tuile-haute{grid-row:span 2}
.dgn-tuile-large{grid-column:span 2}
.dgn-tuile-nom{font-family:var(--police-titres);font-size:38px;line-height:1;letter-spacing:.01em;text-transform:uppercase;color:var(--texte);text-shadow:0 2px 10px var(--ombre)}
.dgn-tuile-grande .dgn-tuile-nom{font-size:72px}
.dgn-tuile-haute .dgn-tuile-nom{font-size:50px}
.dgn-tuile-detail{margin-top:4px;font-size:16px;color:var(--texte-doux)}
.dgn-tuile-lien{margin-top:10px;font-weight:700;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.dgn-tuile-lien::after{content:"→";display:inline-block;margin-left:8px;letter-spacing:0;transition:transform .2s}
.dgn-tuile:hover .dgn-tuile-lien::after{transform:translateX(5px)}
.dgn-tuile-lien a{color:inherit;text-decoration:none}
.dgn-tuile-lien a::after{content:"";position:absolute;inset:-100vmax}

/* Rachat de collections : bandeau pleine largeur, photo à gauche (fond de la colonne),
   enseigne en perspective, texte à droite, pastille or à cheval. */
.dgn-collection{position:relative;margin-top:var(--section);background-color:var(--surface);border-block:1px solid color-mix(in srgb,var(--accent) 14%,var(--trait))}
.et_pb_section.dgn-collection .et_pb_row{width:100%;max-width:none}
.dgn-collection-rangee{display:grid;grid-template-columns:1fr 1fr;min-height:540px}
.dgn-collection-rangee::after{display:none}
.et_pb_section .dgn-collection-rangee>.et_pb_column{width:auto;margin:0;float:none}
.dgn-collection-photo{position:relative;overflow:hidden;background-size:cover;background-position:center}
.dgn-collection-photo::before{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--entete) 42%,color-mix(in srgb,#5a3a10 12%,transparent))}
.et_pb_section .dgn-enseigne{position:absolute;z-index:1;left:50%;top:50%;width:min(78%,520px);padding:34px 26px 38px;
  background:linear-gradient(160deg,color-mix(in srgb,var(--texte) 7%,var(--fond)) 0%,var(--surface) 60%,var(--entete) 100%);border-radius:4px;
  box-shadow:0 30px 50px var(--ombre),inset 0 0 0 1px color-mix(in srgb,var(--texte) 5%,transparent);
  transform:translate(-54%,-50%) perspective(900px) rotateY(14deg)}
.dgn-enseigne .et_pb_text_inner{display:flex;flex-direction:column;align-items:center;font-family:var(--police-titres);text-transform:uppercase;line-height:.92}
.dgn-enseigne p{-webkit-mask-image:var(--grain);mask-image:var(--grain);-webkit-mask-size:300px;mask-size:300px}
.dgn-enseigne-haut{font-size:76px;color:var(--beige);letter-spacing:.01em}
.dgn-enseigne-bas{font-size:88px;color:var(--accent);letter-spacing:.01em}
.dgn-collection-texte{align-self:center;padding:90px 8% 90px 110px}
.dgn-collection-intro{margin-top:22px;max-width:500px}
.dgn-collection-texte .dgn-boutons{margin-top:34px}
.dgn-collection-intro p{font-size:19px;line-height:1.65;color:var(--texte-doux)}
.et_pb_section .dgn-pastille-rangee{position:absolute;inset:0;z-index:2;margin:0;padding:0;pointer-events:none}
.dgn-pastille-rangee>.et_pb_column{position:static}
.et_pb_section .dgn-pastille-or{position:absolute;left:50%;bottom:64px;transform:translateX(-50%);width:168px;height:168px;border-radius:50%;border:6px solid var(--surface);
  box-shadow:0 16px 36px var(--ombre);background:radial-gradient(circle at 40% 35%,var(--accent-vif) 0%,var(--accent) 55%,color-mix(in srgb,var(--accent) 88%,var(--entete)) 100%)}
.dgn-pastille-or .et_pb_text_inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;height:100%;text-align:center;color:var(--sur-accent)}
.dgn-pastille-or .et_pb_text_inner::before{content:"";width:40px;height:40px;background:var(--sur-accent);-webkit-mask:var(--i-vinyle) center/contain no-repeat;mask:var(--i-vinyle) center/contain no-repeat}
.dgn-pastille-or p{font-family:var(--police-titres);font-size:22px;line-height:1.02;letter-spacing:.02em;text-transform:uppercase}

/* Pourquoi nous choisir : titre entre deux filets, 6 raisons, icône dans un cercle or */
.dgn-titre-section h2{display:flex;align-items:center;justify-content:center;gap:26px;margin-bottom:64px;font-size:50px;line-height:1.05;letter-spacing:.015em;text-align:center}
.dgn-titre-section h2::before,.dgn-titre-section h2::after{content:"";flex:0 0 60px;height:2px;background:var(--accent)}
.dgn-raisons .et_pb_column{display:grid;grid-template-columns:repeat(3,1fr);row-gap:72px;width:100%;margin:0}
.dgn-raisons .et_pb_column::before,.dgn-raisons .et_pb_column::after{display:none}
.et_pb_section .dgn-raison{position:relative;padding:130px 44px 0;text-align:center;border-left:1px solid var(--trait)}
.dgn-raison:nth-child(3n + 1){border-left:0}
.dgn-raison::before{content:"";position:absolute;top:0;left:50%;width:104px;height:104px;margin-left:-52px;border:1px solid var(--trait-or);border-radius:50%}
.dgn-raison::after{content:"";position:absolute;top:27px;left:50%;width:50px;height:50px;margin-left:-25px;background:var(--accent);
  -webkit-mask:var(--icone) center/contain no-repeat;mask:var(--icone) center/contain no-repeat}
.dgn-raison-disque{--icone:var(--i-vinyle)}
.dgn-raison-colis{--icone:var(--i-colis)}
.dgn-raison-camion{--icone:var(--i-livraison)}
.dgn-raison-bulle{--icone:var(--i-bulle)}
.dgn-raison-etoile{--icone:var(--i-etoile)}
.dgn-raison-lys{--icone:var(--i-lys)}
.dgn-raison h3{font-size:28px;line-height:1.05;letter-spacing:.015em;color:var(--accent)}
.dgn-raison p{max-width:300px;margin:12px auto 0;font-size:17px;line-height:1.65;color:var(--texte-doux)}

/* Infolettre : photo assombrie, cercle et enveloppe, texte, formulaire Divi */
.dgn-infolettre{position:relative;overflow:hidden;border-top:1px solid color-mix(in srgb,var(--accent) 45%,var(--trait));border-bottom:1px solid var(--trait)}
.dgn-infolettre::before{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--entete) 72%,transparent)}
.et_pb_section .dgn-infolettre-grille{position:relative;z-index:1;display:grid;grid-template-columns:auto 1fr minmax(0,590px);align-items:center;gap:34px}
.dgn-infolettre-grille::before{content:"";width:116px;height:116px;border:3px solid var(--texte-doux);border-radius:50%;background:var(--entete)}
.dgn-infolettre-grille::after{content:"";display:block;visibility:visible;clear:none;position:absolute;top:50%;left:32px;width:52px;height:40px;margin-top:-20px;background:var(--texte);
  -webkit-mask:var(--i-enveloppe) center/contain no-repeat;mask:var(--i-enveloppe) center/contain no-repeat}
.et_pb_section .dgn-infolettre-grille>.et_pb_column{width:auto;margin:0;float:none}
.dgn-infolettre-texte h2{font-size:52px;line-height:1;letter-spacing:.01em}
.dgn-infolettre-texte p{max-width:520px;margin-top:12px;font-size:20px;line-height:1.5;color:var(--texte-doux)}
/* le formulaire de contact de Divi, en ligne : le champ, puis le bouton */
.dgn-form-infolettre .et_pb_contact_form{display:flex;gap:8px;margin:0}
.dgn-form-infolettre .et_pb_contact_field{flex:1;min-width:0;width:auto;margin:0;padding:0}
.dgn-form-infolettre .et_pb_contact_field input{width:100%;height:60px;padding:0 18px;border:0;border-radius:2px;background:var(--texte);color:var(--entete);font-size:16px}
.dgn-form-infolettre .et_pb_contact_field input::placeholder{color:color-mix(in srgb,var(--entete) 50%,var(--texte))}
.dgn-form-infolettre .et_contact_bottom_container{float:none;margin:0;padding:0}
.dgn-form-infolettre .et_pb_contact_submit.et_pb_button{width:180px;height:60px;margin:0;padding:0;border:0;border-radius:2px;background:var(--accent);color:var(--sur-accent);
  font:700 19px/1 var(--police-texte);letter-spacing:.01em;text-transform:uppercase}
.dgn-form-infolettre .et_pb_contact_submit.et_pb_button:hover{background:var(--accent-vif);padding:0}
.dgn-form-infolettre .et_pb_contact_submit.et_pb_button::after{display:none}
.dgn-form-infolettre .et-pb-contact-message{color:var(--texte)}
.dgn-infolettre-note{margin-top:14px}
.dgn-infolettre-note p{font-size:16px;color:var(--texte-doux)}

/* ---------- Pages intérieures · tête de page photographique ---------- */
.dgn-tete-page{position:relative;overflow:hidden;display:flex;align-items:flex-end;min-height:520px;border-bottom:1px solid var(--trait)}
.dgn-tete-page-courte{min-height:440px}
.dgn-tete-page::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:color-mix(in srgb,var(--entete) 45%,transparent)}
.dgn-tete-page::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:
  linear-gradient(90deg,var(--voile) 0%,color-mix(in srgb,var(--entete) 70%,transparent) 45%,color-mix(in srgb,var(--entete) 25%,transparent) 100%),
  linear-gradient(0deg,color-mix(in srgb,var(--entete) 75%,transparent) 0%,transparent 45%)}
.dgn-tete-page>.et_pb_row{position:relative;z-index:2}
.dgn-fil-ariane p{font-weight:700;font-size:13px;line-height:1.5;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.dgn-fil-ariane a{color:var(--sourdine);text-decoration:none}
.dgn-fil-ariane a:hover{color:var(--accent)}
.dgn-tete-page-titre{margin-top:26px}
.dgn-tete-page-titre h1{max-width:900px;font-size:104px;line-height:.9;letter-spacing:.005em}
.dgn-tete-page-titre em{font-style:normal;color:var(--accent)}
.dgn-tete-page-texte{max-width:560px;margin-top:26px}
.dgn-tete-page-texte p{font-size:21px;line-height:1.55;color:var(--texte-doux)}

/* ---------- À propos · récit : photo encadrée d'or, texte, faits ---------- */
.et_pb_section .dgn-recit{display:grid;grid-template-columns:5fr 6fr;align-items:center;gap:104px}
.dgn-recit::after{display:none}
.et_pb_section .dgn-recit>.et_pb_column{width:auto;margin:0;float:none}
/* le cadre or déborde de 24 px en bas à droite : une marge basse serait effacée par la remise à zéro, d'où le padding */
.et_pb_section .dgn-recit-photo{position:relative;padding:0 24px 24px 0}
.dgn-recit-photo::before{content:"";position:absolute;inset:24px 0 0 24px;border:2px solid var(--accent);border-radius:3px}
.dgn-recit-photo .et_pb_image_wrap{position:relative;z-index:1;display:block}
.dgn-recit-photo img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:3px;box-shadow:0 30px 60px var(--ombre)}
.dgn-recit-corps{margin-top:30px}
.dgn-recit-corps p{font-size:19px;line-height:1.75;color:var(--texte-doux)}
.dgn-recit-corps p+p{margin-top:18px}
.et_pb_section .dgn-recit-faits ul{display:flex;flex-wrap:wrap;gap:12px;margin:36px 0 0;padding:0;list-style:none}
.dgn-recit-faits li{padding:10px 18px;border:1px solid var(--trait-or);border-radius:3px;font-weight:700;font-size:14px;line-height:1.5;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}

/* ---------- À propos · piliers numérotés ---------- */
.dgn-piliers .et_pb_column{display:grid;grid-template-columns:repeat(3,1fr);width:100%;margin:0;border-block:1px solid var(--trait)}
.dgn-piliers .et_pb_column::before,.dgn-piliers .et_pb_column::after{display:none}
.et_pb_section .dgn-pilier{padding:48px 44px 52px;border-left:1px solid var(--trait)}
.et_pb_section .dgn-pilier:first-child{padding-left:0;border-left:0}
.dgn-pilier-numero{font-family:var(--police-titres);font-size:120px;line-height:.8;color:transparent;-webkit-text-stroke:1.5px var(--accent)}
.dgn-pilier h3{margin-top:26px;font-size:46px;line-height:1}
.dgn-pilier p:not(.dgn-pilier-numero){max-width:340px;margin-top:14px;font-size:18px;line-height:1.65;color:var(--texte-doux)}

/* ---------- À propos · genres : tuiles portrait, photo = fond du module ---------- */
.dgn-genres .et_pb_column{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;width:100%;margin:0}
.dgn-genres .et_pb_column::before,.dgn-genres .et_pb_column::after{display:none}
.et_pb_section .dgn-genre{position:relative;overflow:hidden;aspect-ratio:3/4;border:1px solid var(--bord-tuile);border-radius:3px;background-color:var(--entete);
  background-size:cover;background-position:center;transition:border-color .25s}
.dgn-genre::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:color-mix(in srgb,var(--entete) 25%,transparent);transition:background-color .3s}
.dgn-genre::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(0deg,color-mix(in srgb,var(--entete) 92%,transparent) 0%,color-mix(in srgb,var(--entete) 35%,transparent) 42%,transparent 70%)}
.dgn-genre:hover{border-color:var(--accent)}
.dgn-genre:hover::before{background-color:color-mix(in srgb,var(--entete) 10%,transparent)}
.dgn-genre .et_pb_text_inner{position:absolute;left:20px;right:20px;bottom:20px;z-index:2}
.dgn-genre-nom{font-family:var(--police-titres);font-size:40px;line-height:.95;letter-spacing:.01em;text-transform:uppercase;text-shadow:0 2px 10px var(--ombre)}
.dgn-genre-nom::before{content:"";display:block;width:28px;height:2px;margin-bottom:12px;background:var(--accent)}
.dgn-genre-nom a{color:var(--texte);text-decoration:none}
.dgn-genre-nom a::after{content:"";position:absolute;inset:-100vmax}

/* ---------- Appel final sur champ or ---------- */
.dgn-appel-or{margin-top:var(--section);color:var(--sur-accent);border-block:1px solid color-mix(in srgb,var(--accent) 80%,var(--entete))}
.et_pb_section .dgn-appel-or-grille{display:flex;align-items:center;justify-content:space-between;gap:40px}
.dgn-appel-or-grille::after{display:none}
.et_pb_section .dgn-appel-or-grille>.et_pb_column{width:auto;margin:0;float:none}
.dgn-appel-or-titre h2{max-width:760px;font-size:84px;line-height:.9;letter-spacing:.005em;color:var(--sur-accent)}
.dgn-appel-or-actions p{gap:16px}

/* ---------- Contact · coordonnées et formulaire ---------- */
.et_pb_section .dgn-contact-grille{display:grid;grid-template-columns:5fr 7fr;align-items:start;gap:96px}
.dgn-contact-grille::after{display:none}
.et_pb_section .dgn-contact-grille>.et_pb_column{width:auto;margin:0;float:none}
.et_pb_section .dgn-coord{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:101px;padding:22px 0 22px 76px;border-bottom:1px solid var(--trait)}
.et_pb_section .dgn-coord-telephone{margin-top:36px;border-top:1px solid var(--trait)}
.dgn-coord::before{content:"";position:absolute;left:0;top:50%;width:56px;height:56px;margin-top:-28px;border:1px solid var(--trait-or);border-radius:50%}
.dgn-coord::after{content:"";position:absolute;left:16px;top:50%;width:24px;height:24px;margin-top:-12px;background:var(--accent);
  -webkit-mask:var(--icone) center/contain no-repeat;mask:var(--icone) center/contain no-repeat}
.dgn-coord-telephone{--icone:var(--i-telephone)}
.dgn-coord-courriel{--icone:var(--i-courriel)}
.dgn-coord-lieu{--icone:var(--i-lieu)}
.dgn-coord-libelle{font-weight:700;font-size:13px;line-height:1.5;letter-spacing:.18em;text-transform:uppercase;color:var(--sourdine)}
.dgn-coord-valeur{margin-top:4px;font-family:var(--police-titres);font-size:34px;line-height:1.05;letter-spacing:.02em;text-transform:uppercase;color:var(--texte);overflow-wrap:anywhere}
.dgn-coord-valeur a{color:inherit;text-decoration:none}
.dgn-coord-courriel .dgn-coord-valeur{font-family:var(--police-texte);font-weight:500;font-size:20px;letter-spacing:0;text-transform:none}
.et_pb_section .dgn-encart-vendre{margin-top:40px;padding:28px 30px;border-left:3px solid var(--accent);background-color:var(--surface);scroll-margin-top:30px}
.dgn-encart-vendre h3{font-size:32px;line-height:1;color:var(--accent)}
.dgn-encart-vendre p{margin-top:12px;font-size:17px;line-height:1.65;color:var(--texte-doux)}
/* le formulaire de contact de Divi : libellés visibles au-dessus des champs, comme la maquette */
.et_pb_section .dgn-formulaire{padding:52px;background-color:var(--surface);border:1px solid color-mix(in srgb,var(--accent) 10%,var(--trait));border-radius:4px}
.dgn-formulaire .et_pb_contact{width:100%}
.dgn-formulaire .et_pb_contact_form{display:grid;grid-template-columns:1fr 1fr;gap:22px 20px;margin:0}
.dgn-formulaire .et_pb_contact_form>.et_pb_contact_field{width:auto;max-width:none;margin:0;padding:0}
.dgn-formulaire .et_pb_contact_form>.et_pb_contact_field[class*="et_flex_column_24_24"],.dgn-formulaire .et_contact_bottom_container{grid-column:1/-1}
.dgn-formulaire .et_pb_contact_field .et_pb_contact_form_label{display:block;position:static;width:auto;height:auto;margin:0 0 10px;clip:auto;overflow:visible;
  font-weight:700;font-size:13px;line-height:1.5;letter-spacing:.18em;text-transform:uppercase;color:var(--texte-doux)}
.dgn-formulaire .et_pb_contact_field:has(.et_pb_field_module_checkbox)>.et_pb_contact_form_label,
.dgn-formulaire .et_pb_contact_field_options_title{display:none}
/* :not([type=checkbox]) : la vraie case porte aussi la classe .input — Divi la cache derrière son <i> */
.dgn-formulaire .et_pb_contact_field :is(input.input:not([type=checkbox]),select,textarea){display:block;width:100%;height:56px;margin:0;padding:12px 16px;border:1px solid var(--trait);border-radius:var(--rayon);
  background-color:var(--fond);color:var(--texte);font:400 17px/1.4 var(--police-texte)}
.dgn-formulaire .et_pb_contact_field :is(input.input:not([type=checkbox]),select,textarea):focus{border-color:var(--accent);outline:none}
.dgn-formulaire .et_pb_contact_field :is(input,textarea)::placeholder{color:transparent}
.dgn-formulaire .et_pb_contact_field textarea{height:170px;min-height:170px;resize:vertical}
.dgn-formulaire .et_pb_contact_field select{appearance:none;padding-right:46px}
.dgn-formulaire .et_pb_contact_field:has(select){position:relative}
.dgn-formulaire .et_pb_contact_field:has(select)::after{content:"";position:absolute;right:16px;bottom:19px;width:18px;height:18px;background:var(--accent);pointer-events:none;
  -webkit-mask:var(--i-chevron) center/contain no-repeat;mask:var(--i-chevron) center/contain no-repeat}
.dgn-formulaire .et_pb_contact_field_checkbox label{display:flex;align-items:flex-start;gap:10px;font-size:15px;line-height:1.5;color:var(--sourdine);cursor:pointer}
body #page-container .et_pb_section .dgn-formulaire .et_pb_contact_field_checkbox label i{flex:none;position:relative;width:18px;height:18px;margin:2px 0 0;border:1px solid var(--trait);border-radius:2px;background-color:var(--fond)}
body #page-container .et_pb_section .dgn-formulaire .et_pb_contact_field_checkbox input:checked+label i{background-color:var(--accent);border-color:var(--accent)}
body #page-container .et_pb_section .dgn-formulaire .et_pb_contact_field_checkbox input:checked+label i::before{color:var(--sur-accent)}
/* Divi range le bouton à droite : la maquette le veut à gauche, la note à sa suite */
.et_pb_section .dgn-formulaire .et_contact_bottom_container{display:flex;justify-content:flex-start;float:none;margin:0;padding:0;text-align:left}
/* PIÈGE : Divi pousse le bouton à droite par une règle propre au module, passée par l'identifiant
   (body #page-container .et_pb_section .et_pb_contact_form_1 .et_contact_bottom_container{margin-left:auto}) */
body #page-container .et_pb_section .et_pb_contact_form_container.dgn-formulaire .et_contact_bottom_container{margin-left:0}
.dgn-formulaire .et_pb_contact_submit.et_pb_button,.dgn-formulaire .et_pb_contact_submit.et_pb_button:hover{min-height:54px;margin:0;padding:0 32px;border:0;border-radius:var(--rayon-bouton);
  background:var(--accent);color:var(--sur-accent);font:700 18px/1 var(--police-texte);letter-spacing:.01em;text-transform:uppercase}
.dgn-formulaire .et_pb_contact_submit.et_pb_button:hover{background:var(--accent-vif)}
.dgn-formulaire .et_pb_contact_submit.et_pb_button::after{display:none}
.dgn-formulaire .et-pb-contact-message{color:var(--texte)}
.dgn-formulaire .et-pb-contact-message ul{margin-top:8px;color:var(--alerte)}
.dgn-formulaire .et_contact_error{border-color:var(--alerte)!important}
/* la note de la maquette, à côté du bouton d'envoi : posée dans le bas du cadre du formulaire */
.dgn-formulaire-colonne{position:relative}
.et_pb_section .dgn-formulaire-note{position:absolute;right:52px;bottom:52px;display:flex;align-items:center;height:54px}
.dgn-formulaire-note p{font-size:16px;color:var(--sourdine)}

/* ---------- Contact · foire aux questions (modules Bascule de Divi) ---------- */
.et_pb_section .dgn-faq{display:grid;grid-template-columns:4fr 7fr;align-items:start;gap:96px;scroll-margin-top:30px}
.dgn-faq::after{display:none}
.et_pb_section .dgn-faq>.et_pb_column{width:auto;margin:0;float:none}
.et_pb_section .dgn-faq>.dgn-faq-intro{position:sticky;top:40px}
.et_pb_section .et_pb_toggle.dgn-question{margin:0;padding:0;border:0;border-bottom:1px solid var(--trait);background-color:transparent}
.et_pb_section .et_pb_toggle.dgn-question:first-child{border-top:1px solid var(--trait)}
/* quatre classes : Divi règle le titre à trois (.et_pb_toggle.et_pb_text_align_left .et_pb_toggle_title) */
.et_pb_section .et_pb_toggle.dgn-question .et_pb_toggle_title{position:relative;margin:0;padding:26px 56px 26px 0;cursor:pointer;font-family:var(--police-titres);font-size:30px;font-weight:400;
  line-height:1.05;letter-spacing:.01em;text-transform:uppercase;color:var(--texte);transition:color .2s}
.dgn-question .et_pb_toggle_title::before{display:none}
.dgn-question .et_pb_toggle_title::after{content:"";position:absolute;right:4px;top:50%;width:34px;height:34px;margin-top:-17px;border:1px solid var(--trait-or);border-radius:50%;
  background:linear-gradient(var(--accent),var(--accent)) center/12px 2px no-repeat,linear-gradient(var(--accent),var(--accent)) center/2px 12px no-repeat;transition:transform .25s}
.dgn-question.et_pb_toggle_open .et_pb_toggle_title{color:var(--accent)}
.dgn-question.et_pb_toggle_open .et_pb_toggle_title::after{transform:rotate(45deg)}
.et_pb_section .et_pb_toggle.dgn-question .et_pb_toggle_content{padding:0 56px 28px 0}
.dgn-question .et_pb_toggle_content p{font-size:18px;line-height:1.7;color:var(--texte-doux)}

/* ---------- Contact · engagements ---------- */
.dgn-engagements{margin-top:var(--section);background-color:var(--surface);border-block:1px solid color-mix(in srgb,var(--accent) 10%,var(--trait))}
.dgn-engagements-liste .et_pb_column{display:grid;grid-template-columns:repeat(4,1fr);width:100%;margin:0}
.dgn-engagements-liste .et_pb_column::before,.dgn-engagements-liste .et_pb_column::after{display:none}
.et_pb_section .dgn-eng{display:flex;align-items:center;gap:18px;padding:44px 28px;border-left:1px solid var(--trait)}
.et_pb_section .dgn-eng:first-child{padding-left:0;border-left:0}
.dgn-eng::before{content:"";flex:0 0 44px;height:34px;background:var(--accent);-webkit-mask:var(--icone) center/contain no-repeat;mask:var(--icone) center/contain no-repeat}
.dgn-eng p{font-family:var(--police-titres);font-size:26px;line-height:1.05;letter-spacing:.015em;text-transform:uppercase;color:var(--texte)}
.dgn-eng-livraison{--icone:var(--i-livraison)}
.dgn-eng-paiement{--icone:var(--i-cadenas-plein)}
.dgn-eng-collection{--icone:var(--i-vinyle)}
.dgn-eng-arrivages{--icone:var(--i-colis)}

/* ==========================================================================
   5 · Cartes produit des blocs WooCommerce (ventes croisées du panier, panier
   vide) : pochette carrée, le disque sort de la pochette au survol.
   ========================================================================== */
.grille-produits.wc-block-product-template{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
  gap:52px 24px;list-style:none;margin:0;padding:64px 0 0}
.grille-produits .wc-block-product{display:flex;flex-direction:column;gap:0;margin:0;width:auto;min-width:0}
/* PIÈGE : WooCommerce ajoute 12 px sous chaque enfant de la carte */
.grille-produits .wc-block-product>*{margin-block:0}
.grille-produits .wc-block-components-product-summary{margin:0}
.grille-produits .carte-image{position:relative;margin:0 0 16px;overflow:visible;background:none}
.grille-produits .carte-image::before{content:"";position:absolute;top:3%;left:3%;width:94%;aspect-ratio:1;z-index:0;border-radius:50%;
  background:radial-gradient(circle,var(--sur-accent) 0 2.5%,var(--accent) 2.8% 17%,var(--entete) 17.4%),
             repeating-radial-gradient(circle,var(--entete) 0 1.4px,var(--trait) 2px 2.6px);
  transition:transform .5s cubic-bezier(.2,.75,.2,1)}
.grille-produits .wc-block-product:hover .carte-image::before{transform:translateY(-24%)}
.grille-produits .carte-image>a{position:relative;z-index:1;display:block}
/* la pastille Promo vit dans ce conteneur, placé APRÈS l'image : il recouvre la pochette */
.grille-produits .carte-image .wc-block-components-product-image__inner-container{position:absolute;inset:0;z-index:2;pointer-events:none}
.grille-produits .carte-image img{width:100%;aspect-ratio:1;height:auto;object-fit:cover;border-radius:2px;background:var(--surface);box-shadow:0 18px 30px var(--ombre)}
.carte-infos{display:flex;flex-direction:column;gap:2px}
.carte-titre{margin:0;font-family:var(--police-texte);font-size:16px;font-weight:700;line-height:1.35;text-transform:none;letter-spacing:0}
.carte-titre a{text-decoration:none;color:var(--texte)}
.carte-prix{margin-top:4px;font-size:16px;font-weight:700;line-height:1.35;color:var(--accent)}
.carte-prix del{color:var(--sourdine);font-weight:400;margin-right:6px}
.carte-prix ins{text-decoration:none;color:var(--promo)}
.carte-bouton{margin-top:14px}
.grille-produits .wc-block-product .carte-bouton :is(.wp-block-button__link,.wc-block-components-product-button__button){display:flex;align-items:center;width:100%;justify-content:center;
  min-height:44px;margin:0;padding:10px 14px;background:transparent;border:1px solid var(--trait);border-radius:var(--rayon-bouton);color:var(--texte);font-size:14px}
.grille-produits .wc-block-product .carte-bouton :is(.wp-block-button__link,.wc-block-components-product-button__button):hover{border-color:var(--accent);background:var(--accent);color:var(--sur-accent)}
.carte-bouton .added_to_cart{display:none}
.wc-block-components-product-sale-badge{background:var(--accent);color:var(--sur-accent);border:0;border-radius:2px;
  font:400 17px/1 var(--police-titres);letter-spacing:.04em;padding:6px 10px 5px;text-transform:uppercase}
.wc-block-components-product-image .wc-block-components-product-sale-badge{top:10px;right:auto;left:10px;z-index:2}
.section-titre{font-size:var(--titre-2)}

/* ==========================================================================
   6 · Panier, commande, confirmation — les blocs Panier et Commande vivent
   dans le contenu des pages Panier et Commande.
   ========================================================================== */
.wc-block-cart-item__image img,.wc-block-components-order-summary-item__image img{aspect-ratio:1;object-fit:cover;background:var(--surface);border-radius:2px}
.wc-block-components-product-name{font-size:16px;font-weight:700;text-decoration:none;color:var(--texte)}
.wc-block-components-product-details{font-size:14px;color:var(--sourdine)}
.wc-block-components-product-details__name{font-weight:400}
.wc-block-components-product-price,.wc-block-cart-item__prices{color:var(--accent);font-weight:700}
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button{font-family:inherit;color:var(--texte)}
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__input{color:var(--texte);background:transparent}
.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(--accent)!important}
.wc-block-components-product-badge{border-radius:2px;border-color:var(--trait);font-weight:700}
.wc-block-components-sale-badge{color:var(--promo);border-color:currentColor}

.page-titre{font-size:var(--titre-1);line-height:.9;margin-bottom:48px}
/* récapitulatif sur la surface, avec les promesses sous le bouton */
.wc-block-cart .wc-block-cart__sidebar{padding:32px 32px 28px;background:var(--surface);border:1px solid var(--trait);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:var(--trait)}
.wc-block-cart .wc-block-cart__totals-title,.wc-block-components-checkout-order-summary__title-text{
  font-family:var(--police-titres);text-transform:uppercase;font-size:32px;font-weight:400;letter-spacing:.01em;color:var(--texte)}
.wc-block-components-totals-item__label{color:var(--texte-doux)}
.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:20px;font-weight:700;color:var(--texte)}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value{color:var(--accent)}
.wc-block-cart .wc-block-cart__submit-button{min-height:56px}
.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 var(--trait)}
.wc-block-cart-items__header{font-size:13px;letter-spacing:.2em;color:var(--sourdine)}
.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}
.wc-block-components-panel__button,.wc-block-components-totals-coupon-link{color:var(--texte)}
/* ventes croisées sous les articles du panier */
.collection-croisee{margin-top:72px}
.collection-croisee .grille-produits.wc-block-product-template{grid-template-columns:repeat(4,minmax(0,1fr))}
/* panier vide : composé en blocs natifs, 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(--titre-2);margin:0}
.panier-vide .panier-vide-titre::before{content:none}
.panier-vide-texte{margin-top:16px;max-width:46ch;font-size:18px;color:var(--texte-doux)}
.panier-vide-actions{margin-top:32px!important}
.panier-vide-suite{margin:var(--section) 0 0;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:32px;font-weight:400;letter-spacing:.01em;text-transform:uppercase;color:var(--texte)}
.wc-block-components-checkout-step__description{color:var(--sourdine)}
.wc-block-checkout .wc-block-components-checkout-step{margin-bottom:44px}
/* Champs du bloc Commande : la peau, pas la 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;color:var(--texte)!important}
.wc-block-components-text-input label,.wc-blocks-components-select__label{color:var(--sourdine)!important}
.wc-block-components-text-input.is-active input[type],.wc-block-components-text-input input[type]:focus{border-color:var(--accent)!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{background:var(--fond);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]{background:var(--fond);border-color:var(--trait)}
.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:56px;border-radius:var(--rayon-bouton)!important;text-transform:uppercase;font-weight:700}
.wc-block-components-button:not(.is-link){font-family:var(--police-texte);background-color:var(--accent);color:var(--sur-accent)}
.wc-block-components-button:not(.is-link):hover{background-color:var(--accent-vif);color:var(--sur-accent)}
.wc-block-components-checkout-return-to-cart-button{color:var(--sourdine)}
.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:1px solid var(--trait);border-radius:var(--rayon)}
.wc-block-checkout .wp-block-woocommerce-checkout-order-summary-block{padding:8px 24px 10px}
.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:var(--trait)}
/* 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:14px;color:var(--sourdine)}
.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)!important}

/* Confirmation de commande : un reçu — résumé sur la surface, filets */
.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(--titre-1);line-height:.9;margin:0}
.wc-block-order-confirmation-status p{margin-top:16px;font-family:var(--police-texte);font-size:18px;color:var(--texte-doux)}
.wc-block-order-confirmation-summary{padding:30px 34px;background:var(--surface);border:1px solid var(--trait);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:13px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.wc-block-order-confirmation-summary .wc-block-order-confirmation-summary-list-item__value{display:block;margin-top:6px;font-size:17px;overflow-wrap:anywhere}
.wc-block-order-confirmation-totals .wc-block-order-confirmation-totals__table{border:0;border-collapse:collapse;width:100%;font-size:16px}
.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:13px;font-weight:700;letter-spacing:.2em;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:20px;font-weight:700;border-top-color:var(--accent);color:var(--accent)}
.wc-block-order-confirmation-address-wrapper{gap:28px}
.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;color:var(--texte-doux)}

/* ==========================================================================
   6 bis · Gabarits WooCommerce de Divi (sans Theme Builder) : catalogue
   (boutique, catégories, genres) et fiche produit, balisage WooCommerce
   classique. Réglages posés par outils/divi.php (dgn_boutique_divi) : filtres
   à gauche dans sidebar-1, fiche pleine largeur.
   ========================================================================== */
/* le conteneur de Divi : l'enveloppe de la maquette, sans le filet vertical entre colonnes */
#main-content .container{width:min(var(--largeur),100% - 48px);max-width:none}
#main-content .container::before{display:none}
body.woocommerce .woocommerce-breadcrumb{font-weight:700;font-size:13px;line-height:1.5;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.woocommerce-breadcrumb a{color:var(--sourdine);text-decoration:none}
.woocommerce-breadcrumb a:hover{color:var(--accent)}

/* Catalogue : en-tête sur toute la largeur, filtres à gauche, résultats à droite.
   La grille est sur #content-area (Divi : .container > #content-area > #left-area
   + #sidebar) ; #left-area s'efface (display:contents) et ses enfants s'y rangent. */
body.woocommerce.archive #main-content .container{padding:0 0 var(--section)}
body.woocommerce.archive #content-area{display:grid;grid-template-columns:260px minmax(0,1fr);column-gap:56px;align-items:start}
body.woocommerce.archive #content-area::before,body.woocommerce.archive #content-area::after{display:none}
body.woocommerce.archive #left-area{display:contents}
body.woocommerce.archive .woocommerce-breadcrumb{grid-column:1/-1;grid-row:1;margin:0;padding:96px 0 0}
body.woocommerce.archive .woocommerce-products-header{grid-column:1/-1;grid-row:2;margin:0 0 56px;padding:0 0 56px;border-bottom:1px solid var(--trait)}
body.woocommerce.archive .woocommerce-products-header__title{margin-top:24px;padding:.16em 0 0;font-size:var(--titre-1);line-height:.9;color:var(--texte);
  -webkit-mask-image:var(--grain);mask-image:var(--grain);-webkit-mask-size:300px;mask-size:300px}
body.woocommerce.archive :is(.term-description,.page-description) p{max-width:60ch;margin-top:22px;font-size:21px;line-height:1.55;color:var(--texte-doux)}
body.woocommerce.archive .woocommerce-notices-wrapper{grid-column:2;grid-row:3}
body.woocommerce.archive .woocommerce-result-count{grid-column:2;grid-row:4;justify-self:start;align-self:center;margin:0;font-size:15px;color:var(--sourdine)}
body.woocommerce.archive .woocommerce-ordering{grid-column:2;grid-row:4;justify-self:end;margin:0}
.woocommerce .woocommerce-ordering select{min-height:46px;padding:8px 40px 8px 14px;border:1px solid var(--trait);border-radius:var(--rayon);background-color:var(--fond);color:var(--texte);font:400 15px/1.3 var(--police-texte)}
body.woocommerce.archive #left-area ul.products[class]{grid-column:2;grid-row:5;grid-template-columns:repeat(4,minmax(0,1fr))}
/* PIÈGE : Divi fixe la carte à 28 % à côté d'une barre latérale
   (.et_pb_gutters3.et_left_sidebar.woocommerce-page #main-content ul.products li.product) */
body.woocommerce-page #main-content #left-area ul.products[class] li.product{width:auto;margin-right:0}
body.woocommerce.archive .woocommerce-pagination{grid-column:2;grid-row:6;margin-top:64px}
body.woocommerce.archive .woocommerce-info{grid-column:2;grid-row:5}
body.woocommerce.archive #sidebar{grid-column:1;grid-row:3/span 4;position:sticky;top:32px;width:auto;float:none;margin:0;padding:0}
body.admin-bar.woocommerce.archive #sidebar{top:64px}
/* bouton « Ajouter au panier » des cartes : contour, or au survol */
:is(.dgn-cartes .woocommerce,#left-area) ul.products[class] li.product .button{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;margin:14px 0 0;padding:10px 14px;
  border:1px solid var(--trait);border-radius:var(--rayon-bouton);background:transparent;color:var(--texte);font:700 14px/1.2 var(--police-texte);letter-spacing:.01em;text-transform:uppercase}
:is(.dgn-cartes .woocommerce,#left-area) ul.products[class] li.product .button:hover{padding:10px 14px;border-color:var(--accent);background:var(--accent);color:var(--sur-accent)}
:is(.dgn-cartes .woocommerce,#left-area) ul.products[class] li.product .button::after{display:none}
:is(.dgn-cartes .woocommerce,#left-area) ul.products[class] li.product .added_to_cart{display:none}
/* pagination : pastilles rondes, la page en cours en or */
.woocommerce nav.woocommerce-pagination ul{display:flex;gap:8px;border:0}
.woocommerce nav.woocommerce-pagination ul li{border:0;float:none}
.woocommerce nav.woocommerce-pagination ul li :is(a,span){display:inline-grid;place-items:center;min-width:46px;height:46px;padding:0 6px;border:1px solid var(--trait);border-radius:50%;
  background:transparent;color:var(--texte);font-size:15px;font-weight:700;text-decoration:none}
.woocommerce nav.woocommerce-pagination ul li span.current{border-color:var(--accent);background:var(--accent);color:var(--sur-accent)}
.woocommerce nav.woocommerce-pagination ul li a:hover{border-color:var(--accent);background:transparent;color:var(--accent)}
/* les filtres : widgets classiques de WooCommerce dans la barre de Divi */
body.woocommerce #sidebar::before{content:"Filtres";display:block;margin-bottom:24px;font:400 34px/1 var(--police-titres);letter-spacing:.02em;text-transform:uppercase;color:var(--texte)}
#sidebar .et_pb_widget{float:none;width:100%;margin:24px 0 0;padding:24px 0 0;border-top:1px solid var(--trait)}
#sidebar .widgettitle{margin:0 0 14px;padding:0;font:700 13px/1.5 var(--police-texte);letter-spacing:.2em;text-transform:uppercase;color:var(--sourdine)}
#sidebar ul{margin:0;padding:0;list-style:none}
#sidebar li{margin:0;padding:4px 0;font-size:15px;line-height:1.5}
#sidebar li a{color:var(--texte-doux);text-decoration:none}
#sidebar li a:hover,#sidebar li.chosen a,#sidebar li.current-cat>a{color:var(--accent)}
#sidebar li .count{color:var(--sourdine)}
#sidebar .children{padding-left:14px}
#sidebar .price_slider_wrapper .ui-widget-content{height:3px;margin:10px 0 22px;border:0;border-radius:2px;background:var(--trait)}
#sidebar .price_slider_wrapper .ui-slider-range{background:var(--accent)}
#sidebar .price_slider_wrapper .ui-slider-handle{top:-6px;width:15px;height:15px;border:2px solid var(--fond);border-radius:50%;background:var(--accent);cursor:pointer}
#sidebar .price_slider_amount{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:15px;color:var(--sourdine)}
#sidebar .price_slider_amount .button{order:2;min-height:0;margin:0;padding:6px 14px;border:1px solid var(--trait);border-radius:var(--rayon-bouton);background:transparent;color:var(--texte);
  font:700 13px/1.2 var(--police-texte);letter-spacing:.1em;text-transform:uppercase}
#sidebar .price_slider_amount .button:hover{padding:6px 14px;border-color:var(--accent);color:var(--accent);background:transparent}
#sidebar .price_slider_amount .button::after{display:none}
#sidebar .price_slider_amount .clear{display:none}

/* Fiche produit : galerie carrée à gauche, colonne d'achat collante à droite */
.single-product #main-content .container{padding:0 0 var(--section)}
.single-product .woocommerce-breadcrumb{margin:0;padding:40px 0 32px}
.single-product #left-area .product>.clearfix{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(40px,6vw,96px);align-items:start}
.single-product #left-area .product>.clearfix::after{display:none}
.single-product div.product div.images.woocommerce-product-gallery{float:none;width:auto;margin:0}
.single-product .woocommerce-product-gallery img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:2px;background:var(--surface);box-shadow:0 30px 60px var(--ombre)}
.single-product div.product span.onsale{top:16px;left:16px;right:auto;min-width:0;min-height:0;margin:0;padding:6px 10px 5px;border-radius:2px;background:var(--accent)!important;color:var(--sur-accent);
  font:400 17px/1 var(--police-titres);letter-spacing:.04em;text-transform:uppercase}
.single-product div.product div.summary{position:sticky;top:32px;float:none;width:auto;margin:0}
body.admin-bar.single-product div.product div.summary{top:64px}
.single-product div.product .product_title{padding:0;font-size:var(--titre-2);line-height:.98;color:var(--texte)}
/* !important : Divi colore le prix de la fiche (couleur d'accent) à spécificité plus forte */
.single-product div.product .summary p.price{margin-top:22px;font-size:30px;font-weight:700;color:var(--accent)!important;font-variant-numeric:tabular-nums}
.single-product div.product .summary p.price del{margin-right:12px;font-size:.7em;font-weight:400;color:var(--sourdine)!important;opacity:1}
.single-product div.product .summary p.price ins{text-decoration:none;color:var(--promo)!important}
.single-product .woocommerce-product-details__short-description{margin-top:14px}
.single-product .woocommerce-product-details__short-description p{font-size:18px;line-height:1.65;color:var(--texte-doux)}
.single-product div.product form.cart{margin:32px 0 0;padding-top:28px;border-top:1px solid var(--trait)}
.single-product div.product form.cart:not(.variations_form),.single-product .woocommerce-variation-add-to-cart{display:flex;align-items:stretch;gap:10px}
.single-product div.product form.cart table.variations{margin:0 0 20px;border:0}
.single-product div.product form.cart table.variations :is(th,td){display:block;padding:0;border:0;text-align:left;line-height:1.5}
.single-product div.product form.cart table.variations th label{margin-bottom:10px;font-size:13px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--sourdine)}
.single-product div.product form.cart table.variations{width:100%;table-layout:fixed}
.single-product div.product form.cart table.variations select{box-sizing:border-box;width:100%;max-width:100%;margin:0;min-height:56px;padding:12px 16px;border:1px solid var(--trait);border-radius:var(--rayon);background-color:var(--fond);color:var(--texte);font-size:17px}
.single-product div.product form.cart .reset_variations{display:inline-block;margin-top:10px;font-size:14px;color:var(--sourdine)}
.single-product .woocommerce-variation-price .price{font-size:22px!important}
.single-product .woocommerce-variation-availability p.stock{margin:0 0 16px;font-size:15px;color:var(--sourdine)}
.single-product p.stock.out-of-stock{color:var(--alerte)}
.single-product div.product form.cart div.quantity{float:none;margin:0}
.single-product div.product form.cart .quantity input.qty{width:120px;height:56px;padding:0 10px;border:1px solid var(--trait);border-radius:var(--rayon-bouton);background:var(--fond);color:var(--texte);font-size:17px}
.single-product div.product form.cart .single_add_to_cart_button.button{flex:1;min-width:0;height:56px;margin:0;padding:0 24px;border:0;border-radius:var(--rayon-bouton);background:var(--accent);color:var(--sur-accent);
  font:700 18px/1 var(--police-texte);letter-spacing:.01em;text-transform:uppercase}
.single-product div.product form.cart .single_add_to_cart_button.button:hover{padding:0 24px;background:var(--accent-vif);color:var(--sur-accent)}
.single-product div.product form.cart .single_add_to_cart_button.button::after{display:none}
.single-product div.product form.cart .single_add_to_cart_button.button.disabled{opacity:.45}
.dgn-promesses{display:grid;gap:14px;margin-top:30px;padding:24px 0;border-block:1px solid var(--trait)}
.single-product div.product .product_meta{margin-top:18px;padding:0;border:0;font-size:14px;color:var(--sourdine)}
.single-product div.product .product_meta>span{display:inline-block;margin-right:18px}
.single-product div.product .product_meta a{color:inherit;text-decoration:none}
/* onglets Description / Informations complémentaires */
body.woocommerce #content-area div.product .woocommerce-tabs{margin-top:var(--section)}
body.woocommerce #content-area div.product .woocommerce-tabs ul.tabs{display:flex;gap:36px;margin:0;padding:0;border:0;background:none}
body.woocommerce #content-area div.product .woocommerce-tabs ul.tabs::before,.single-product .woocommerce-tabs ul.tabs li::before,.single-product .woocommerce-tabs ul.tabs li::after{display:none}
body.woocommerce #content-area div.product .woocommerce-tabs ul.tabs li{margin:0;padding:0;border:0;background:none}
/* !important : Divi blanchit l'onglet actif (background:#fff!important) et l'encadre */
body.woocommerce #content-area div.product .woocommerce-tabs ul.tabs li.active{border:0!important;background:none!important}
body.woocommerce #content-area div.product .woocommerce-tabs ul.tabs li.active a{color:var(--texte)!important}
body.woocommerce #content-area div.product .woocommerce-tabs{border:0}
body.woocommerce #content-area div.product .woocommerce-tabs ul.tabs li a{padding:0 0 10px;font:400 34px/1 var(--police-titres);letter-spacing:.01em;text-transform:uppercase;color:var(--sourdine)}
body.woocommerce #content-area div.product .woocommerce-tabs ul.tabs li.active a{border-bottom:2px solid var(--accent);color:var(--texte)}
body.woocommerce #content-area div.product .woocommerce-tabs .panel{margin:0;padding:28px 0 0;border:0;background:none}
body.woocommerce #content-area div.product .woocommerce-tabs .panel p{max-width:70ch;font-size:18px;line-height:1.75;color:var(--texte-doux)}
body.woocommerce #content-area div.product .woocommerce-tabs table.shop_attributes{max-width:640px;border:0}
body.woocommerce #content-area div.product .woocommerce-tabs table.shop_attributes :is(th,td){padding:16px 0;border:0;border-top:1px solid var(--trait);background:none;text-align:left;font-style:normal}
body.woocommerce #content-area div.product .woocommerce-tabs table.shop_attributes th{width:40%;font-size:13px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--sourdine)}
body.woocommerce #content-area div.product .woocommerce-tabs table.shop_attributes td p{padding:0;font-size:16px}
/* Vous aimerez aussi */
.single-product section.related.products{margin-top:var(--section)}
/* !important : Divi impose 26 px au titre (.product .related h2{font-size:26px!important}) */
.single-product section.related.products>h2{font-size:var(--titre-2)!important;line-height:1;color:var(--texte)}
.single-product #left-area section.related ul.products[class]{grid-template-columns:repeat(4,minmax(0,1fr))}

/* ==========================================================================
   7 · Mon compte — balisage WooCommerce CLASSIQUE (shortcode). Divi n'a pas
   de <main> : le conteneur est #main-content.
   ========================================================================== */
.page-compte{padding-block:64px var(--section)}
.page-compte>.wp-block-heading{font-size:var(--titre-1);line-height:.9;margin-bottom:48px}
/* clearfix de la feuille classique (::before/::after en display:table) : dans
   une grille, ils 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-content .page-compte .woocommerce{display:grid;grid-template-columns:240px minmax(0,1fr);gap:64px;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:12px 16px;border-left:2px solid transparent;text-decoration:none;color:var(--sourdine);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:15px}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{background:var(--surface);border-left-color:var(--accent);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;color:var(--texte-doux)}
.woocommerce-MyAccount-content>p:first-of-type{margin-top:0;font-family:var(--police-titres);font-size:34px;line-height:1.1;text-transform:uppercase;color:var(--texte)}
.woocommerce-MyAccount-content>p:first-of-type strong{font-weight:400;color:var(--accent)}
.woocommerce-MyAccount-content>p:first-of-type a{font-family:var(--police-texte);font-size:15px;text-transform:none;color:var(--sourdine)}
.woocommerce-MyAccount-content h2,.woocommerce-MyAccount-content h3{font-size:32px;margin-bottom:18px;color:var(--texte)}
/* 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:48px;background:var(--surface);border:1px solid var(--trait);border-radius:var(--rayon)}
.u-columns h2{font-size:44px;margin-bottom:28px}
.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:10px;margin:0 0 20px;padding:0}
.woocommerce form .form-row label{font-size:13px;font-weight:700;line-height:1.4;letter-spacing:.18em;text-transform:uppercase;color:var(--texte-doux)}
.woocommerce form .form-row .required{color:var(--accent);text-decoration:none}
.woocommerce form .form-row :is(.input-text,select){width:100%;height:54px;background:var(--fond);color:var(--texte);border:1px solid var(--trait)!important;border-radius:var(--rayon);box-shadow:none}
.woocommerce form .form-row :is(.input-text,select):focus{border-color:var(--accent)!important}
.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;letter-spacing:0!important;text-transform:none!important;margin:4px 0 18px}
.woocommerce-form-login__rememberme input{accent-color:var(--accent)}
.woocommerce-account .woocommerce :is(.woocommerce-form-login__submit,.woocommerce-form-register__submit){width:100%;min-height:56px}
.woocommerce table.shop_table{width:100%;margin:0 0 28px;border:0;border-collapse:collapse;border-radius:0;font-size:16px}
.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:13px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--sourdine)}
.woocommerce table.shop_table tfoot tr:last-child :is(th,td){font-size:18px;font-weight:700;color:var(--accent)}
.woocommerce-Address{padding:26px;border:1px solid var(--trait);border-radius:var(--rayon);background:var(--surface)}
.woocommerce-privacy-policy-text{font-size:14px;color:var(--sourdine)}

/* ==========================================================================
   8 · Messages : la surface et la palette, pas le bleu ni le vert de WooCommerce
   ========================================================================== */
.wc-block-components-notice-banner{border-radius:var(--rayon);font-size:15px;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);border-left:3px solid var(--accent);color:var(--texte)}
.wc-block-components-notice-banner:is(.is-info,.is-success,.is-warning)>svg{background-color:var(--accent);fill:var(--sur-accent)}
.wc-block-components-notice-banner.is-error{border-left-color:var(--alerte)}
.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(--accent);font-weight:700}
.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(--accent);color:var(--texte)}
.woocommerce-error{border-left-color:var(--alerte)}

/* ==========================================================================
   9 · Pages légales (blocs, modèles à compléter par le client)
   ========================================================================== */
.page-legale{max-width:880px;padding-block:80px var(--section)}
.page-legale h1{font-size:var(--titre-1);line-height:.9;margin-bottom:24px}
.page-legale h2{margin:48px 0 14px;font-size:34px;line-height:1;color:var(--accent)}
.page-legale p{font-size:18px;line-height:1.7;color:var(--texte-doux);padding-bottom:0}
.page-legale p+p{margin-top:12px}
.trame-avertissement{padding:20px 24px;border-left:3px solid var(--alerte);background:var(--surface);font-size:16px!important}
.trame-avertissement strong{color:var(--texte)}

/* ==========================================================================
   10 · Adaptatif
   ========================================================================== */
@media (max-width:1240px){
  .grille-produits.wc-block-product-template{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:1024px){
  :root{--section:84px}
}
@media (max-width:860px){
  .grille-produits.wc-block-product-template,
  .collection-croisee .grille-produits.wc-block-product-template{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 16px;padding-top:48px}
  .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-content .page-compte .woocommerce{gap:28px}
  .wc-block-order-confirmation-summary{padding:22px 20px}
}
@media (max-width:782px){
  :root{--section:72px}
  .wrap{width:calc(100% - 32px)}
  .woocommerce-account #main-content .page-compte .woocommerce,.u-columns{grid-template-columns:minmax(0,1fr)}
  .dgn-hero::after{--d:440px;left:auto;right:-130px;bottom:-205px}
  .dgn-hero::before{background:linear-gradient(180deg,color-mix(in srgb,var(--entete) 92%,transparent) 0%,color-mix(in srgb,var(--entete) 78%,transparent) 55%,color-mix(in srgb,var(--entete) 35%,transparent) 100%)}
}
/* Catalogue et fiche produit (section 6 bis) */
@media (max-width:1240px){
  body.woocommerce.archive #left-area ul.products[class]{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:1024px){
  body.woocommerce.archive #content-area{grid-template-columns:minmax(0,1fr)}
  body.woocommerce.archive :is(.woocommerce-notices-wrapper,.woocommerce-result-count,.woocommerce-ordering,.woocommerce-pagination,.woocommerce-info),
  body.woocommerce.archive #left-area ul.products[class]{grid-column:1}
  /* les filtres passent sous les résultats */
  body.woocommerce.archive #sidebar{grid-column:1;grid-row:7;position:static;margin-top:64px}
  .single-product #left-area .product>.clearfix{grid-template-columns:minmax(0,1fr);gap:40px}
  .single-product div.product div.summary{position:static}
  .single-product #left-area section.related ul.products[class]{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:860px){
  body.woocommerce.archive #left-area ul.products[class],
  .single-product #left-area section.related ul.products[class]{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 16px;padding-top:48px}
}
@media (max-width:782px){
  #main-content .container{width:calc(100% - 32px)}
  body.woocommerce.archive .woocommerce-breadcrumb{padding-top:56px}
  body.woocommerce.archive .woocommerce-products-header{margin-bottom:36px;padding-bottom:36px}
  body.woocommerce.archive :is(.woocommerce-result-count,.woocommerce-ordering){grid-row:auto;justify-self:stretch}
  body.woocommerce.archive .woocommerce-ordering select{width:100%}
  body.woocommerce #content-area div.product .woocommerce-tabs ul.tabs{flex-wrap:wrap;gap:6px 24px}
  body.woocommerce #content-area div.product .woocommerce-tabs ul.tabs li a{font-size:26px}
}
/* En-tête et pied de page (section 3 bis). Divi replie son menu sous 981 px. */
@media (max-width:1240px){
  .et_pb_section .dgn-menu .et_pb_menu__menu .et-menu{gap:22px}
  .et_pb_section .dgn-menu .et_pb_menu__menu .et-menu>li>a{font-size:15px}
}
@media (max-width:1024px){
  :root{--entete-h:92px}
  .et_pb_section .dgn-menu .et_pb_menu__logo img{width:70px;height:70px}
  .et_pb_section .dgn-pied-colonnes{grid-template-columns:1fr 1fr;row-gap:44px}
  .et_pb_section .dgn-pied-colonnes>.et_pb_column:nth-child(3){padding-left:4px;border-left:0}
}
@media (max-width:980px){
  /* Divi passe au menu mobile : le menu d'ordinateur se cache, le panier et le hamburger se rangent à droite */
  .et_pb_section .dgn-menu .et_pb_menu__menu{display:none}
  /* static : la liste déroulée se cale sur toute la largeur de l'en-tête, pas sur la zone du menu */
  .et_pb_section .dgn-menu .et_pb_menu__wrap{position:static;gap:18px}
  .et_pb_section .dgn-menu .et_pb_menu_inner_container{position:relative}
  .et_pb_section .dgn-menu .et_pb_menu__cart-button{margin-left:auto}
  .et_pb_section .dgn-menu .et_mobile_nav_menu{display:flex;align-items:center;margin:0}
}
@media (max-width:782px){
  :root{--entete-h:84px}
  .et_pb_section .dgn-menu .et_pb_menu__logo img{width:60px;height:60px;box-shadow:0 0 0 2px var(--entete),0 0 0 3.5px var(--accent)}
  .et_pb_section .dgn-pied-colonnes>.et_pb_column{padding:0 14px 0 16px}
  .et_pb_section .dgn-pied-colonnes>.dgn-pied-marque{grid-column:1/-1;padding-left:0}
  .et_pb_section .dgn-pied-colonnes>.et_pb_column:nth-child(2){padding-left:0;border-left:0}
  .et_pb_section .dgn-pied-colonnes>.et_pb_column:nth-child(3){padding-left:16px;border-left:1px solid var(--trait)}
  .et_pb_section .dgn-pied-colonnes>.dgn-pied-paiement{grid-column:1/-1;padding-left:0;border-left:0}
  .et_pb_section .dgn-pied-bas-barre{flex-direction:column;align-items:flex-start;gap:8px}
  .et_pb_section .dgn-pied-legal ul{row-gap:8px}
}
/* Pages vitrine (section 4 bis). Les marges des sections se règlent dans Divi
   (ordinateur / tablette / mobile) ; ici, les grilles et les tailles de texte. */
@media (max-width:1240px){
  .dgn-hero-titre h1{font-size:92px}
  .dgn-collection-texte{padding-left:80px}
  .et_pb_section .dgn-raison{padding-inline:30px}
}
@media (max-width:1024px){
  .dgn-mosaique .et_pb_column{grid-template-columns:repeat(2,1fr);grid-auto-rows:220px}
  .dgn-tuile-grande{grid-column:span 2;grid-row:span 1}
  .dgn-tuile-haute{grid-row:span 1}
  .dgn-collection-rangee{grid-template-columns:1fr}
  .dgn-collection-photo{min-height:380px}
  .dgn-collection-texte{padding:70px 24px 80px;max-width:720px}
  .et_pb_section .dgn-pastille-or{left:auto;right:24px;bottom:auto;top:300px;transform:none}
  .dgn-raisons .et_pb_column{grid-template-columns:repeat(2,1fr);row-gap:56px}
  .dgn-raison:nth-child(3n + 1){border-left:1px solid var(--trait)}
  .dgn-raison:nth-child(2n + 1){border-left:0}
  .et_pb_section .dgn-infolettre-grille{grid-template-columns:auto 1fr}
  .et_pb_section .dgn-infolettre-grille>.dgn-infolettre-formulaire{grid-column:1/-1}
  #page-container .dgn-carrousel .woocommerce ul.products[class]{grid-auto-columns:calc((100% - 2 * 24px) / 3)}
}
@media (max-width:782px){
  .dgn-titre :is(h1,h2){font-size:46px}
  .dgn-entete-section{flex-direction:column;align-items:flex-start;gap:22px}
  .et_pb_section .et_pb_row.dgn-entete-section{margin-bottom:30px}
  .dgn-entete-section>.et_pb_column:last-child{text-align:left}
  .dgn-hero{min-height:0}
  .dgn-hero-titre h1{font-size:60px}
  .dgn-hero-texte{margin-top:22px}
  .dgn-hero-texte p{font-size:18px}
  .dgn-hero .dgn-boutons{margin-top:30px}
  .dgn-hero .dgn-boutons p{gap:12px}
  .dgn-hero .dgn-bouton{flex:1 1 100%}
  #page-container .dgn-carrousel .woocommerce ul.products[class]{margin-top:-48px;padding-top:48px;grid-auto-columns:calc((100% - 16px) / 2.2);column-gap:16px}
  .dgn-mosaique .et_pb_column{grid-template-columns:1fr 1fr;grid-auto-rows:170px;gap:12px}
  .dgn-tuile .et_pb_text_inner{left:14px;right:14px;bottom:14px}
  .dgn-tuile-nom,.dgn-tuile-haute .dgn-tuile-nom{font-size:27px}
  .dgn-tuile-grande .dgn-tuile-nom{font-size:44px}
  .dgn-tuile-lien{font-size:11px;letter-spacing:.14em}
  .dgn-tuile-detail{display:none}
  .dgn-collection-photo{min-height:300px}
  .et_pb_section .dgn-enseigne{padding:22px 16px 26px}
  .dgn-enseigne-haut{font-size:46px}
  .dgn-enseigne-bas{font-size:54px}
  .dgn-collection-texte{padding:56px 16px 64px}
  .et_pb_section .dgn-pastille-or{width:128px;height:128px;top:236px;right:16px}
  .dgn-pastille-or .et_pb_text_inner{gap:6px}
  .dgn-pastille-or .et_pb_text_inner::before{width:30px;height:30px}
  .dgn-pastille-or p{font-size:17px}
  .dgn-titre-section h2{font-size:36px;gap:14px;margin-bottom:44px}
  .dgn-titre-section h2::before,.dgn-titre-section h2::after{flex-basis:26px}
  .dgn-raisons .et_pb_column{grid-template-columns:1fr;row-gap:48px}
  .et_pb_section .dgn-raison,.dgn-raison:nth-child(2n + 1),.dgn-raison:nth-child(3n + 1){padding-inline:0;border-left:0}
  .et_pb_section .dgn-infolettre-grille{grid-template-columns:1fr;justify-items:start;gap:24px}
  .dgn-infolettre-grille::before{width:88px;height:88px}
  .dgn-infolettre-grille::after{top:0;left:22px;width:44px;height:34px;margin-top:27px}
  .et_pb_section .dgn-infolettre-grille>.dgn-infolettre-formulaire{width:100%}
  .dgn-infolettre-texte h2{font-size:40px}
  .dgn-infolettre-texte p{font-size:18px}
  .dgn-form-infolettre .et_pb_contact_form{flex-direction:column}
  .dgn-form-infolettre .et_pb_contact_field input{height:56px}
  .dgn-form-infolettre .et_pb_contact_submit.et_pb_button{width:100%;height:56px}
}
/* Pages intérieures (À propos, Contact) */
@media (max-width:1240px){
  .dgn-tete-page-titre h1{font-size:88px}
  .et_pb_section :is(.dgn-recit,.dgn-contact-grille,.dgn-faq){gap:64px}
  /* plus la place de loger la note à côté du bouton : elle passe sous le formulaire */
  .et_pb_section .dgn-formulaire-note{position:static;height:auto;margin-top:14px}
  .dgn-coord-courriel .dgn-coord-valeur{font-size:16px}
  .dgn-genre-nom{font-size:32px}
  .dgn-appel-or-titre h2{font-size:68px}
  .et_pb_section .dgn-eng{padding:36px 20px}
  .dgn-eng p{font-size:22px}
}
@media (max-width:1024px){
  .dgn-tete-page{min-height:440px}
  .et_pb_section .dgn-recit{grid-template-columns:1fr;gap:72px}
  .et_pb_section .dgn-recit-photo{max-width:520px}
  .dgn-piliers .et_pb_column{grid-template-columns:1fr}
  .et_pb_section .dgn-pilier,.et_pb_section .dgn-pilier:first-child{padding:40px 0;border-left:0;border-top:1px solid var(--trait)}
  .et_pb_section .dgn-pilier:first-child{border-top:0}
  .dgn-genres .et_pb_column{grid-template-columns:repeat(3,1fr)}
  .et_pb_section .dgn-appel-or-grille{flex-direction:column;align-items:flex-start}
  .et_pb_section :is(.dgn-contact-grille,.dgn-faq){grid-template-columns:1fr;gap:56px}
  .et_pb_section .dgn-faq>.dgn-faq-intro{position:static}
  .dgn-engagements-liste .et_pb_column{grid-template-columns:repeat(2,1fr)}
  .et_pb_section .dgn-eng:nth-child(3){padding-left:0;border-left:0}
  .et_pb_section .dgn-eng:nth-child(n + 3){border-top:1px solid var(--trait)}
}
@media (max-width:782px){
  .dgn-tete-page,.dgn-tete-page-courte{min-height:380px}
  .dgn-tete-page-titre{margin-top:18px}
  .dgn-tete-page-titre h1{font-size:60px}
  .dgn-tete-page-texte{margin-top:20px}
  .dgn-tete-page-texte p{font-size:18px}
  .dgn-fil-ariane p{font-size:12px}
  .et_pb_section .dgn-recit-photo{padding:0 16px 16px 0}
  .dgn-recit-photo::before{inset:16px 0 0 16px}
  .dgn-recit-corps p{font-size:17px}
  .dgn-recit-faits li{padding:8px 12px;font-size:12px}
  .dgn-pilier-numero{font-size:92px}
  .dgn-pilier h3{font-size:38px}
  .dgn-genres .et_pb_column{grid-template-columns:1fr 1fr;gap:12px}
  .et_pb_section .dgn-genre:last-child{grid-column:span 2;aspect-ratio:16/9}
  .dgn-genre .et_pb_text_inner{left:14px;right:14px;bottom:14px}
  .dgn-genre-nom{font-size:28px}
  .et_pb_section .dgn-appel-or-grille{gap:28px}
  .et_pb_section .dgn-appel-or-grille>.et_pb_column{width:100%}
  .dgn-appel-or-titre h2{font-size:54px}
  .dgn-appel-or-actions .dgn-bouton{flex:1 1 100%}
  .dgn-coord-valeur{font-size:30px}
  .dgn-coord-courriel .dgn-coord-valeur{font-size:16px}
  .et_pb_section .dgn-formulaire{padding:28px 20px}
  .dgn-formulaire .et_pb_contact_form{grid-template-columns:1fr}
  .dgn-formulaire .et_pb_contact_submit.et_pb_button,.dgn-formulaire .et_pb_contact_submit.et_pb_button:hover{width:100%}
  .et_pb_section .et_pb_toggle.dgn-question .et_pb_toggle_title{padding:22px 48px 22px 0;font-size:24px}
  .et_pb_section .et_pb_toggle.dgn-question .et_pb_toggle_content{padding-right:0}
  .et_pb_section .dgn-formulaire-note{position:static;height:auto;margin-top:14px}
  .dgn-question .et_pb_toggle_content p{font-size:17px}
  .dgn-engagements-liste .et_pb_column{grid-template-columns:1fr}
  .et_pb_section .dgn-eng,.et_pb_section .dgn-eng:first-child,.et_pb_section .dgn-eng:nth-child(3){padding:24px 0;border-left:0}
  .et_pb_section .dgn-eng+.dgn-eng{border-top:1px solid var(--trait)}
}
@media (prefers-reduced-motion:reduce){.grille-produits .carte-image::before,:is(.dgn-cartes .woocommerce,#left-area) ul.products[class] li.product .et_shop_image::before{transition:none}}
