/*
Theme Name: Atelier Gente
Theme URI: https://www.lateliergente.com
Description: Thème enfant de Hello Elementor pour Atelier Gente. Le design vit ici ; les contenus se modifient dans Elementor.
Author: Atelier Gente
Template: hello-elementor
Version: 1.0.107
Text Domain: atelier-gente
*/

/* =====================================================================
   1. Jetons et base
   Registre relevé sur la référence : une sans-serif légère (Inter Tight),
   Bodoni Moda pour le titre du hero (accord de la cliente), aucun accent,
   fond blanc cassé chaud, bandes bord à bord, angles droits.
   ===================================================================== */

:root {
  --creme: #f4f0ea;
  --creme-2: #ebe5dc;
  --encre: #1e1d1b;
  --gris: #77736c;
  --filet: #dcd6cc;
  --olive: #4a4538;
  --olive-texte: #cfc8b8;
  --fantome: #e7e1d7;
  --police: "Inter Tight", "Helvetica Neue", Arial, sans-serif;
  --police-titre: "Bodoni Moda", Didot, "Times New Roman", serif;
  --marge: clamp(16px, 3vw, 40px);
  --entete: 72px;
}

html { -webkit-text-size-adjust: 100%; scroll-padding-top: 90px; }
body {
  margin: 0;
  background: var(--creme);
  color: var(--encre);
  font-family: var(--police);
  font-weight: 400;
  font-size: 15px;
  line-height: 1.6;
  overflow-x: hidden;
}
body a, body a:hover, body a:active { color: inherit; text-decoration: none; }
body p { margin: 0; }
body h1, body h2, body h3, body h4, body h5, body h6 { margin: 0; font-family: var(--police); font-weight: 300; letter-spacing: -0.02em; line-height: 1.08; color: inherit; hyphens: none; text-wrap: balance; }
img { display: block; max-width: 100%; }
::selection { background: var(--encre); color: #fff; }

/* Elementor : titres, textes et images héritent du thème */
body .elementor-widget-heading { line-height: 1.08; }
body .elementor-heading-title { font-family: inherit; font-weight: inherit; line-height: inherit; letter-spacing: inherit; color: inherit; }
body .elementor-widget-text-editor { color: inherit; }
body .elementor-widget-text-editor p + p { margin-top: 12px; }
body .elementor-widget-image img { display: block; }
body .elementor-widget:not(:last-child) { margin-block-end: 0; }

/* =====================================================================
   2. Briques communes
   ===================================================================== */

/* Image qui remplit son conteneur (classe « remplir » sur un widget Image) */
body .remplir { position: absolute; inset: 0; z-index: 0; }
body .remplir img, body .remplir a { width: 100%; height: 100%; display: block; }
body .remplir img { object-fit: cover; }

.surtitre, .surtitre p, .surtitre .elementor-heading-title {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* Bouton Elementor (classe « bouton » sur un widget Bouton) */
body .bouton .elementor-button,
body .woocommerce .bouton-wc, body .woocommerce button.button, body .woocommerce a.button, body .woocommerce input.button,
body .woocommerce #respond input#submit, body .woocommerce button.button.alt, body .woocommerce a.button.alt {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: var(--encre);
  color: #fff;
  border: 1px solid var(--encre);
  border-radius: 0;
  padding: 13px 22px;
  font-family: var(--police);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  transition: background .25s, color .25s, border-color .25s;
  box-shadow: none;
}
body .bouton .elementor-button:hover,
body .woocommerce button.button:hover, body .woocommerce a.button:hover, body .woocommerce button.button.alt:hover, body .woocommerce a.button.alt:hover {
  background: #3a3833; border-color: #3a3833; color: #fff;
}
body .bouton.clair .elementor-button { background: #fff; color: var(--encre); border-color: #fff; }
body .bouton.clair .elementor-button:hover { background: var(--creme); border-color: var(--creme); }
body .bouton.ligne .elementor-button, body .woocommerce .button.ligne { background: transparent; color: var(--encre); }
body .bouton.ligne .elementor-button:hover { background: var(--encre); color: #fff; }
body .bouton.plein, body .bouton.plein .elementor-button { width: 100%; }
body .bouton.plein .elementor-button { padding: 16px 22px; }
/* flèche fine après le texte (classe « fleche ») */
body .fleche .elementor-button-text::after {
  content: ""; display: inline-block; width: 12px; height: 12px; margin-left: 10px; vertical-align: -1px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='black'%3E%3Cpath d='M1 6h10M7 2l4 4-4 4'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='black'%3E%3Cpath d='M1 6h10M7 2l4 4-4 4'/%3E%3C/svg%3E") center / contain no-repeat;
}

.titre-section { text-align: center; padding: 0 var(--marge); }
.e-con.titre-section { align-items: center; }
.titre-section h2, .titre-section .elementor-heading-title { font-size: clamp(30px, 3.4vw, 46px); }
.titre-section .sous-titre, .titre-section .sous-titre p { margin-top: 10px; color: var(--gris); font-size: 13px; }

.fantome, .fantome .elementor-heading-title {
  font-size: clamp(80px, 13vw, 200px);
  font-weight: 300;
  letter-spacing: -0.04em;
  line-height: 1;
  color: var(--fantome);
  white-space: nowrap;
  overflow: hidden;
  text-align: center;
  user-select: none;
}
.fantome { margin: 10px 0 clamp(30px, 4vw, 60px); }

/* Listes éditables affichées en bandeau défilant (classe « defile ») */
.defile { border-bottom: 1px solid var(--filet); overflow: hidden; white-space: nowrap; padding: 15px 0; font-size: 13px; }
.defile ul { list-style: none; margin: 0; padding: 0; display: inline-flex; }
.defile li { display: inline-flex; align-items: center; gap: 26px; padding-right: 26px; }
.defile li::after { content: "•"; color: var(--gris); }
.defile-piste { display: inline-flex; animation: defile 40s linear infinite; }
@keyframes defile { to { transform: translateX(-50%); } }

/* =====================================================================
   3. En-tête (Theme Builder)
   ===================================================================== */

.elementor-location-header { position: sticky; top: 0; z-index: 50; }
body.admin-bar .elementor-location-header { top: 32px; }
.e-con.entete {
  position: relative; z-index: 50;
  background: var(--creme);
  border-bottom: 1px solid var(--filet);
  flex-direction: column;
}
.e-con.entete-in {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  height: var(--entete);
  padding: 0 var(--marge);
  gap: 16px;
}
/* logotype (image vectorisée depuis le PDF de la marque) */
body .logo img { display: block; width: auto; height: 26px; max-width: none; }
.pied-bas .logo img { height: 22px; margin: 0 auto; }
.logo, .logo .elementor-heading-title {
  font-size: 17px;
  font-weight: 500;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  white-space: nowrap;
  line-height: 1;
}

/* Menu principal */
body .nav-principale .elementor-nav-menu--main .elementor-nav-menu { gap: 34px; }
body .nav-principale .elementor-nav-menu--main .elementor-item {
  position: relative; padding: 6px 0; font-size: 13px; font-weight: 400; color: var(--encre); fill: var(--encre);
}
body .nav-principale .elementor-nav-menu--main .elementor-item::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; width: auto; opacity: 1;
  background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .3s;
}
body .nav-principale .elementor-nav-menu--main .elementor-item:hover::after,
body .nav-principale .elementor-nav-menu--main .elementor-item.elementor-item-active::after,
body .nav-principale .elementor-nav-menu--main .current-menu-ancestor > .elementor-item::after { transform: scaleX(1); }
body .nav-principale .elementor-menu-toggle { background: none; color: var(--encre); padding: 0; font-size: 22px; border: 0; }
body .nav-principale .elementor-menu-toggle svg { fill: var(--encre); width: 22px; height: 22px; }
body .nav-principale .elementor-nav-menu--dropdown { background: var(--creme); border-top: 1px solid var(--filet); }
body .nav-principale .elementor-nav-menu--dropdown .elementor-item {
  font-size: 26px; font-weight: 300; color: var(--encre); background: none; padding: 14px var(--marge);
  border-bottom: 1px solid var(--filet);
}
body .nav-principale .elementor-nav-menu--dropdown .elementor-item:hover,
body .nav-principale .elementor-nav-menu--dropdown .elementor-item.elementor-item-active { background: var(--creme-2); color: var(--encre); }

/* Outils : recherche, compte, panier */
.e-con.outils { flex-direction: row; justify-content: flex-end; align-items: center; gap: 22px; }
body .outil .elementor-button {
  background: none; border: 0; padding: 0; color: var(--encre); font-size: 13px; font-weight: 400;
  letter-spacing: 0; text-transform: none; display: inline-flex; align-items: center; gap: 7px;
}
body .outil .elementor-button:hover { background: none; color: var(--encre); }
body .outil .elementor-button-text::before {
  content: ""; display: inline-block; width: 17px; height: 17px; margin-right: 7px; vertical-align: -3px; background: currentColor;
  -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat;
}
.ouvrir-recherche { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m16 16 4.5 4.5'/%3E%3C/svg%3E"); }
.lien-compte { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4'%3E%3Ccircle cx='12' cy='8.5' r='4'/%3E%3Cpath d='M4.5 20.5c1.2-3.8 4-5.5 7.5-5.5s6.3 1.7 7.5 5.5'/%3E%3C/svg%3E"); }

body .panier-menu .elementor-menu-cart__toggle .elementor-button {
  background: none; border: 0; padding: 0; color: var(--encre); gap: 0;
}
body .panier-menu .elementor-menu-cart__toggle .elementor-button-text { display: none; }
body .panier-menu .elementor-menu-cart__toggle .elementor-button-icon { position: relative; color: var(--encre); font-size: 19px; }
body .panier-menu .elementor-menu-cart__toggle .elementor-button-icon svg { fill: var(--encre); width: 19px; height: 19px; }
body .panier-menu.elementor-widget .elementor-menu-cart__toggle .elementor-button-icon .elementor-button-icon-qty[data-counter] {
  top: -7px; right: -9px; left: auto; inset-inline-end: -9px; inset-inline-start: auto; min-width: 16px; height: 16px; line-height: 16px; padding: 0 3px;
  border-radius: 50%; background: var(--encre); color: #fff; font-size: 9px; font-weight: 500; font-family: var(--police);
}
/* panneau du mini-panier */
body .panier-menu .elementor-menu-cart__main { background: var(--creme); border-left: 1px solid var(--filet); font-family: var(--police); }
body .panier-menu .elementor-menu-cart__product-name a, body .panier-menu .elementor-menu-cart__product-price { color: var(--encre); font-size: 13px; }
body .panier-menu .elementor-menu-cart__subtotal { font-size: 14px; border-color: var(--filet); }
body .panier-menu .elementor-menu-cart__footer-buttons .elementor-button {
  border-radius: 0; font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; padding: 14px;
}
body .panier-menu .elementor-menu-cart__footer-buttons .elementor-button--view-cart { background: transparent; color: var(--encre); border: 1px solid var(--encre); }
body .panier-menu .elementor-menu-cart__footer-buttons .elementor-button--checkout { background: var(--encre); color: #fff; }

/* Barre de recherche dépliée sous l'en-tête */
.recherche-barre { display: none; padding: 14px var(--marge) 18px; border-top: 1px solid var(--filet); width: 100%; }
.recherche-ouverte .recherche-barre { display: block; }
body .recherche-barre .e-search-form { display: flex; gap: 12px; align-items: center; }
body .recherche-barre .e-search-input-wrapper { flex: 1; }
body .recherche-barre .e-search-input {
  width: 100%; font-family: var(--police); font-size: clamp(18px, 2vw, 24px); font-weight: 300; color: var(--encre);
  background: none; border: 0; border-bottom: 1px solid var(--encre); border-radius: 0; padding: 8px 0; outline: 0; box-shadow: none;
}
body .recherche-barre .e-search-input-wrapper > svg { display: none; }
body .recherche-barre .e-search-submit {
  background: none; border: 0; color: var(--encre); padding: 0; font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase;
}

/* =====================================================================
   4. Pied de page (Theme Builder)
   ===================================================================== */

.e-con.pied { background: var(--olive); color: var(--olive-texte); overflow: hidden; flex-direction: column; }
.pied-defile {
  white-space: nowrap; overflow: hidden;
  font-size: clamp(70px, 9vw, 140px); font-weight: 300; letter-spacing: -0.03em; line-height: 1;
  color: rgba(255,255,255,.14);
  padding: 46px 0 40px;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.pied-defile ul { list-style: none; margin: 0; padding: 0; display: inline-flex; }
.pied-defile li { display: inline-flex; align-items: center; gap: .4em; padding-right: .4em; }
.pied-defile li::after { content: "✦"; font-size: .3em; }
.pied-defile .defile-piste { animation-duration: 50s; }
.e-con.pied-colonnes {
  display: grid; grid-template-columns: repeat(4, 1fr) 1.6fr; gap: 30px;
  padding: 60px var(--marge) 50px;
  max-width: 1320px; margin: 0 auto; width: 100%;
}
.pied h4, .pied .pied-titre .elementor-heading-title { color: #fff; font-size: 13px; font-weight: 500; letter-spacing: 0; margin-bottom: 16px; line-height: 1.3; }
body .pied-liens .elementor-icon-list-items { line-height: 2.1; }
body .pied-liens .elementor-icon-list-item, body .pied-liens .elementor-icon-list-item a { font-size: 13px; color: var(--olive-texte); padding: 0; }
body .pied-liens .elementor-icon-list-text { color: inherit; padding: 0; }
body .pied-liens .elementor-icon-list-item a:hover { color: #fff; }
.pied-lettre-titre .elementor-heading-title { color: #fff; font-family: var(--police-titre); font-size: clamp(26px, 2.4vw, 32px); font-weight: 400; line-height: 1.3; letter-spacing: -0.01em; }
.pied-lettre-titre .elementor-heading-title span { display: block; margin-top: 12px; font-family: var(--police); font-size: 14px; line-height: 1.6; letter-spacing: 0; color: var(--olive-texte); max-width: 36ch; }
/* formulaire de lettre (widget Formulaire) */
body .lettre .elementor-form-fields-wrapper { display: flex; flex-wrap: wrap; margin: 22px 0 0; }
body .lettre .elementor-field-group { padding: 0; margin: 0; }
body .lettre .elementor-field-type-email { flex: 1; min-width: 0; border-bottom: 1px solid rgba(255,255,255,.35); }
body .lettre .e-form__buttons { width: auto; flex: none; order: 2; border-bottom: 1px solid rgba(255,255,255,.35); }
body .lettre .elementor-field-type-acceptance { width: 100%; flex-basis: 100%; margin-top: 14px; order: 3; }
body .lettre .elementor-field-textual {
  background: none !important; border: 0 !important; border-radius: 0 !important; color: #fff !important; font-family: var(--police); font-size: 13px; padding: 12px 0; min-height: 0; box-shadow: none;
}
body .lettre .elementor-field-textual::placeholder { color: var(--olive-texte); opacity: 1; }
body .lettre .elementor-button {
  background: none !important; color: #fff !important; border: 0 !important; padding: 0; font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; height: 100%; min-height: 0;
}
body .lettre .elementor-field-subgroup label, body .lettre .elementor-field-option label { font-size: 12px; color: var(--olive-texte); }
body .lettre .elementor-field-subgroup a { text-decoration: underline; text-underline-offset: 3px; }
body .lettre .elementor-message { color: #fff; font-size: 13px; margin-top: 12px; }
.e-con.pied-bas {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px;
  padding: 22px var(--marge); border-top: 1px solid rgba(255,255,255,.12);
  font-size: 12px;
}
.pied-bas .logo .elementor-heading-title { color: #fff; font-size: 15px; }
body .pied-legal .elementor-icon-list-items { justify-content: flex-end; gap: 22px; }
body .pied-legal .elementor-icon-list-item, body .pied-legal .elementor-icon-list-item a { font-size: 12px; color: var(--olive-texte); margin: 0; padding: 0; }
body .pied-legal .elementor-icon-list-item::after { display: none; }

/* =====================================================================
   5. Accueil
   ===================================================================== */

/* Hero */
.e-con.hero {
  position: relative;
  height: min(calc(100vh - var(--entete)), 820px);
  min-height: 560px;
  overflow: hidden;
  color: #fff;
  flex-direction: column;
}
.hero .hero-photo img { object-position: 50% 35%; transform: scale(1.04); animation: respire 14s ease-out forwards; }
@keyframes respire { to { transform: scale(1); } }
.e-con.hero::after {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(0,0,0,.05) 40%, rgba(0,0,0,.45) 100%);
}
.e-con.hero-in {
  position: relative; z-index: 1; height: 100%; flex: 1;
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  padding: 0 var(--marge);
}
.hero-titre .elementor-heading-title {
  font-family: var(--police-titre);
  font-weight: 400;
  letter-spacing: -0.015em;
  line-height: 1.02;
  font-size: clamp(44px, 6.4vw, 96px);
  text-align: center;
  max-width: 11em;
}
.hero-titre em { display: block; font-style: italic; }
.hero-cote { justify-self: start; }
.hero-cote .elementor-heading-title { font-size: 12px; letter-spacing: 0.04em; line-height: 1.4; }
.hero-cote a { opacity: .9; padding-bottom: 4px; border-bottom: 1px solid transparent; transition: border-color .25s, opacity .25s; }
.hero-cote a:hover { opacity: 1; border-color: #fff; }
.hero-cote.droite { justify-self: end; text-align: right; }
.e-con.hero-univers {
  position: absolute; left: 0; right: 0; bottom: 38px; z-index: 1;
  flex-direction: row; justify-content: center; gap: clamp(28px, 6vw, 90px);
}
.hero-lien .elementor-heading-title { font-size: 11px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; line-height: 1.4; }
.hero-lien a { display: inline-block; padding-bottom: 6px; border-bottom: 1px solid rgba(255,255,255,.55); transition: border-color .25s; }
.hero-lien a:hover { border-color: #fff; }

/* Découvrir : liste d'univers + visuel + texte */
.e-con.decouvrir {
  display: grid;
  grid-template-columns: 1fr minmax(0, 360px) 1fr;
  gap: clamp(30px, 5vw, 80px);
  align-items: center;
  max-width: 1240px;
  margin: 0 auto;
  padding: clamp(70px, 9vw, 120px) var(--marge) 20px;
}
.e-con.univers-liste { padding-left: clamp(0px, 4vw, 60px); gap: 18px; }
.univers-item .elementor-heading-title { font-size: clamp(20px, 1.8vw, 26px); font-weight: 300; color: #b0aaa0; transition: color .25s; line-height: 1.3; letter-spacing: -0.01em; }
.univers-item small { font-size: 11px; font-weight: 400; letter-spacing: .06em; margin-right: 14px; }
.univers-item.actif .elementor-heading-title, .univers-item .elementor-heading-title:hover { color: var(--encre); }
.e-con.decouvrir-visuel { position: relative; aspect-ratio: 3 / 4; overflow: visible; }
.decouvrir-visuel .remplir { opacity: 0; transition: opacity .5s; }
.decouvrir-visuel .remplir.actif { opacity: 1; }
.tampon {
  position: absolute !important; right: -58px; top: 22%; z-index: 2;
  width: 116px !important; height: 116px; border-radius: 50%;
  background: var(--creme);
  display: grid; place-items: center;
}
.tampon .elementor-heading-title { font-size: 0; }
.tampon svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.tampon svg.anneau { animation: tourne 18s linear infinite; }
.tampon text { font-size: 9.2px; letter-spacing: 0.22em; text-transform: uppercase; fill: var(--encre); font-family: var(--police); font-weight: 500; }
.tampon .monogramme { font-size: 20px; font-weight: 300; letter-spacing: .02em; text-transform: none; }
@keyframes tourne { to { transform: rotate(360deg); } }
.decouvrir-texte .surtitre { color: var(--gris); }
.decouvrir-texte .surtitre p { display: flex; align-items: center; gap: 10px; }
.decouvrir-texte .surtitre p::before { content: ""; width: 28px; height: 1px; background: currentColor; }
.decouvrir-texte h2, .decouvrir-texte .titre .elementor-heading-title { font-size: clamp(32px, 3.4vw, 48px); }
.decouvrir-texte .titre { margin: 18px 0; }
.decouvrir-texte .texte { color: var(--gris); max-width: 34ch; font-size: 14px; }
.decouvrir-texte .bouton { margin-top: 28px; }

/* Grilles de produits (widget Produits) */
.e-con.produits-bande { padding-bottom: clamp(60px, 7vw, 100px); }
.produits-bande .titre-section { margin-bottom: 40px; }

/* Collections */
.e-con.collections {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(14px, 1.6vw, 24px);
  max-width: 1320px; margin: 0 auto; padding: 0 var(--marge); width: 100%;
}
.e-con.collection { position: relative; aspect-ratio: 4 / 5; overflow: hidden; display: block; color: #fff; }
.collection .remplir img { transition: transform 1s cubic-bezier(.2,.7,.2,1); }
.collection:hover .remplir img { transform: scale(1.04); }
.collection-legende { position: absolute !important; left: 0; right: 0; bottom: 22px; z-index: 1; text-align: center; }
.collection-legende .elementor-heading-title { font-size: 11px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: #fff; }
.e-con.collection.vedette::after { content: ""; position: absolute; inset: 0; background: rgba(20,18,15,.28); z-index: 0; }
.e-con.collection-centre {
  position: absolute; inset: 0; z-index: 1; color: #fff; text-align: center;
  flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 20px;
}
.collection-centre .titre .elementor-heading-title { font-size: clamp(26px, 2.6vw, 38px); }

/* Réassurance (widgets Boîte d'icône) */
.e-con.reassurance {
  display: grid; grid-template-columns: repeat(4, 1fr);
  max-width: 1320px; margin: 0 auto; padding: 40px var(--marge) 0; width: 100%;
}
.reassurance > .elementor-widget { padding: 26px clamp(10px, 2vw, 30px); border-bottom: 1px solid var(--filet); }
.reassurance > .elementor-widget + .elementor-widget { border-left: 1px solid var(--filet); }
body .reassurance .elementor-icon-box-wrapper { display: flex; flex-direction: row; align-items: center; gap: 16px; text-align: left; }
body .reassurance .elementor-icon-box-icon { margin: 0; display: flex; }
body .reassurance .elementor-icon { font-size: 30px; color: var(--encre); fill: none; }
body .reassurance .elementor-icon svg { width: 30px; height: 30px; stroke: var(--encre); fill: none; }
body .reassurance .elementor-icon-box-title { font-size: 13px; font-weight: 500; letter-spacing: 0; margin: 0; line-height: 1.5; color: var(--encre); }
body .reassurance .elementor-icon-box-description { font-size: 12px; color: var(--gris); margin: 0; }

/* Bloc éditorial */
.e-con.editorial {
  display: grid; grid-template-columns: 1fr 1.05fr 0.62fr;
  gap: clamp(16px, 2vw, 28px);
  align-items: stretch;
  max-width: 1320px; margin: 0 auto; width: 100%;
  padding: clamp(80px, 10vw, 140px) var(--marge);
}
.e-con.editorial-texte { flex-direction: column; justify-content: center; padding-right: clamp(0px, 3vw, 50px); }
.editorial-texte .surtitre { color: var(--gris); }
.editorial-texte .surtitre p { display: flex; gap: 24px; }
.editorial-texte .titre { margin: 20px 0; }
.editorial-texte .titre .elementor-heading-title { font-size: clamp(36px, 4vw, 58px); }
.editorial-texte .texte { color: var(--gris); max-width: 36ch; font-size: 14px; }
.editorial-texte .bouton { align-self: flex-start; margin-top: 28px; }
.e-con.film { position: relative; width: 62%; aspect-ratio: 4 / 3; margin-top: 46px; overflow: hidden; }
.film .remplir img { object-position: 50% 30%; }
.film-lecture { position: absolute !important; left: 50%; top: 50%; translate: -50% -50%; z-index: 1; width: auto !important; }
body .film-lecture .elementor-button {
  width: 58px; height: 58px; padding: 0; border-radius: 50%; background: #fff; border: 0;
  box-shadow: 0 0 0 10px rgba(255,255,255,.3); transition: box-shadow .3s; font-size: 0;
}
body .film-lecture .elementor-button:hover { background: #fff; box-shadow: 0 0 0 16px rgba(255,255,255,.25); }
body .film-lecture .elementor-button-text::before {
  content: ""; display: block; width: 14px; height: 14px; margin-left: 3px; background: var(--encre);
  clip-path: polygon(10% 5%, 95% 50%, 10% 95%);
}
.e-con.editorial-grand { position: relative; min-height: 560px; }
.editorial-grand .remplir img { filter: grayscale(1); }
.e-con.editorial-detail { position: relative; }

/* Matières (liste éditable) */
.matieres ul {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(6, 1fr);
  border-top: 1px solid var(--filet); border-bottom: 1px solid var(--filet);
}
.matieres li {
  text-align: center; padding: 30px 10px;
  font-size: 13px; font-weight: 500; letter-spacing: .26em; text-transform: uppercase;
}
.matieres li + li { border-left: 1px solid var(--filet); }

/* Sélection */
.e-con.selection { padding: clamp(80px, 9vw, 120px) 0 0; }
.selection .titre-section { margin-bottom: 44px; }
.e-con.selection-grille {
  display: grid; grid-template-columns: 1.15fr 1fr; gap: 14px;
  max-width: 1320px; margin: 0 auto; padding: 0 var(--marge); width: 100%;
}
.e-con.selection-grand { position: relative; overflow: hidden; min-height: 640px; display: block; }
.selection-grand .remplir img { object-position: 50% 30%; }
.e-con.selection-grand::after { content: ""; position: absolute; inset: 50% 0 0; background: linear-gradient(transparent, rgba(0,0,0,.4)); z-index: 0; }
.e-con.legende {
  position: absolute; left: 28px; bottom: 28px; right: 28px; width: auto; color: #fff; z-index: 1; flex-wrap: wrap;
  flex-direction: row; justify-content: space-between; align-items: flex-end; gap: 20px;
}
.legende .titre .elementor-heading-title { font-size: clamp(26px, 2.6vw, 36px); }

/* Avis */
.e-con.avis {
  max-width: 900px; margin: 0 auto; text-align: center; width: 100%;
  padding: clamp(80px, 9vw, 120px) var(--marge);
  position: relative; align-items: center;
}
.avis .surtitre { color: var(--gris); }
.e-con.avis-piste { display: grid; margin-top: 22px; width: 100%; }
.avis-piste > .elementor-widget {
  grid-area: 1 / 1;
  font-size: clamp(20px, 2vw, 27px); font-weight: 300; line-height: 1.45; letter-spacing: -0.01em;
  opacity: 0; transition: opacity .5s; pointer-events: none;
}
.avis-piste > .elementor-widget:first-child, .avis-piste > .elementor-widget.actif { opacity: 1; pointer-events: auto; }
.avis-piste.anime > .elementor-widget:first-child:not(.actif) { opacity: 0; pointer-events: none; }
.avis-piste cite, .avis-piste .auteur { display: block; margin-top: 18px; font-style: normal; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--gris); }
.avis-fleche {
  position: absolute; top: 55%; width: 44px; height: 44px; display: grid; place-items: center;
  background: none; border: 0; padding: 0; cursor: pointer; color: var(--encre);
}
.avis-fleche svg { width: 22px; height: 22px; stroke: var(--encre); fill: none; stroke-width: 1.2; }
.avis-fleche.prec { left: 0; }
.avis-fleche.suiv { right: 0; }

/* Instagram */
.e-con.social { background: var(--creme-2); padding: clamp(60px, 7vw, 90px) 0; }
.social .titre-section { margin-bottom: 40px; }
.e-con.social-grille { display: grid; grid-template-columns: repeat(7, 1fr); gap: 12px; padding: 0 var(--marge); width: 100%; }
.social-grille .elementor-widget-image { aspect-ratio: 1; overflow: hidden; }
.social-grille .elementor-widget-image a, .social-grille .elementor-widget-image img { width: 100%; height: 100%; display: block; }
.social-grille .elementor-widget-image img { object-fit: cover; transition: transform .8s; }
.social-grille .elementor-widget-image:hover img { transform: scale(1.06); }

/* =====================================================================
   6. Cartes produit WooCommerce (toutes les grilles)
   ===================================================================== */

body .woocommerce ul.products, body ul.products {
  display: grid; grid-template-columns: repeat(var(--colonnes, 4), 1fr); gap: 40px 14px;
  margin: 0; padding: 0; list-style: none;
}
body .woocommerce ul.products::before, body .woocommerce ul.products::after { display: none; }
body .woocommerce ul.products li.product, :is(body.woocommerce, body .woocommerce) ul.products li.product {
  width: auto; margin: 0; padding: 0; float: none; position: relative; text-align: center;
}
:is(body.woocommerce, body .woocommerce) ul.products li.product a.woocommerce-LoopProduct-link { display: block; color: var(--encre); }
:is(body.woocommerce, body .woocommerce) ul.products li.product .produit-visuel { display: block; position: relative; aspect-ratio: 3 / 4; overflow: hidden; background: #e4e1dc; margin-bottom: 14px; }
:is(body.woocommerce, body .woocommerce) ul.products li.product .produit-visuel img {
  width: 100%; height: 100%; object-fit: cover; margin: 0; aspect-ratio: auto;
  transition: transform .8s cubic-bezier(.2,.7,.2,1);
}
:is(body.woocommerce, body .woocommerce) ul.products li.product:hover .produit-visuel img { transform: scale(1.04); }
.etiquette {
  position: absolute; top: 12px; left: 12px; z-index: 1;
  background: var(--encre); color: #fff;
  font-size: 9px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; line-height: 1.6;
  padding: 4px 7px;
}
:is(body.woocommerce, body .woocommerce) ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--police); font-size: 13px; font-weight: 400; letter-spacing: 0; line-height: 1.4; padding: 0 8px; margin: 0; color: var(--encre);
}
:is(body.woocommerce, body .woocommerce) ul.products li.product .price {
  display: block; font-size: 13px; color: var(--encre); margin: 3px 0 0; font-weight: 400;
}
:is(body.woocommerce, body .woocommerce) ul.products li.product .price del { color: var(--gris); opacity: 1; margin-left: 6px; order: 2; }
:is(body.woocommerce, body .woocommerce) ul.products li.product .price ins { text-decoration: none; font-weight: 400; }
body .woocommerce .price del, body .price del { color: var(--gris); }
body .price ins { text-decoration: none; }
:is(body.woocommerce, body .woocommerce) ul.products li.product .price { display: inline-flex; gap: 6px; justify-content: center; }
:is(body.woocommerce, body .woocommerce) ul.products li.product .price del { order: 2; margin: 0; }
:is(body.woocommerce, body .woocommerce) ul.products li.product .tailles { display: block; font-size: 11px; color: var(--gris); margin-top: 2px; letter-spacing: .04em; }
:is(body.woocommerce, body .woocommerce) ul.products li.product .button, :is(body.woocommerce, body .woocommerce) ul.products li.product .added_to_cart { display: none; }

/* largeur de grille selon le widget */
.grille-6 { --colonnes: 6; }
.grille-6 ul.products { gap: 40px 10px; }
.grille-2 { --colonnes: 2; }
.grille-3 { --colonnes: 3; }
.grille-4 { --colonnes: 4; }
body .elementor-widget-woocommerce-products.elementor-wc-products ul.products { grid-template-columns: repeat(var(--colonnes, 4), 1fr); }
.selection-grille .grille-2 ul.products li.product .produit-visuel { aspect-ratio: 4 / 4.6; }
.selection-grille .grille-2 ul.products { gap: 14px; }

/* =====================================================================
   7. Catégories (modèle Archive produits)
   ===================================================================== */

.e-con.cat-tete, .e-con.page-tete { text-align: center; align-items: center; padding: clamp(50px, 6vw, 80px) var(--marge) clamp(30px, 4vw, 44px); }
body .fil, body .fil .woocommerce-breadcrumb, body .woocommerce .woocommerce-breadcrumb {
  display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; font-size: 12px; color: var(--gris); margin: 0;
}
body .woocommerce-breadcrumb a { color: var(--gris); }
body .woocommerce-breadcrumb a:hover { color: var(--encre); }
.woocommerce-breadcrumb .sep { margin: 0 8px; }
.cat-titre .elementor-heading-title, .page-titre .elementor-heading-title { font-size: clamp(44px, 6vw, 84px); margin: 18px 0 14px; line-height: 1.05; }
.cat-intro, .page-intro { color: var(--gris); max-width: 52ch; margin: 0 auto; font-size: 14px; }
.cat-intro p, .page-intro p { margin: 0; }
.page-intro a { text-decoration: underline; text-underline-offset: 3px; }
.puces { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 30px; }
.puce {
  border: 1px solid var(--filet); padding: 9px 18px; font-size: 12px; letter-spacing: .04em;
  transition: border-color .2s, background .2s, color .2s;
}
.puce:hover { border-color: var(--encre); }
body a.puce.actif { background: var(--encre); border-color: var(--encre); color: #fff; }

.e-con.cat-corps {
  display: grid; grid-template-columns: 250px 1fr; gap: clamp(24px, 3vw, 48px);
  padding: 30px var(--marge) clamp(70px, 8vw, 110px);
  border-top: 1px solid var(--filet);
}
.e-con.filtres { position: sticky; top: calc(var(--entete) + 20px); align-self: start; }

/* Filter Everything : même allure que la maquette */
body .wpc-filters-main-wrap, body .wpc-filters-widget-content { font-family: var(--police); }
body .wpc-filters-section { border-bottom: 1px solid var(--filet); margin: 0; padding: 0; }
body .wpc-filter-header { padding: 16px 0; margin: 0; }
body .wpc-filter-title, body .wpc-filter-header .widget-title {
  font-size: 12px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--encre); margin: 0;
}
body .wpc-filter-content { padding-bottom: 18px; }
body .wpc-filters-ul-list li, body .wpc-filters-section label { font-size: 13px; color: var(--encre); }
body .wpc-filters-section input[type=checkbox], body .wpc-filters-section input[type=radio] { accent-color: var(--encre); }
body .wpc-term-count { color: var(--gris); font-size: 11px; }
body .wpc-filters-range-inputs input { border: 0; border-bottom: 1px solid var(--filet); background: none; border-radius: 0; font-family: var(--police); }
body .wpc-filters-section .ui-slider .ui-slider-range, body .wpc-filters-section .ui-slider .ui-slider-handle { background: var(--encre); border-color: var(--encre); }
body .wpc-filter-chips-list li a, body .wpc-filter-chip a {
  border: 1px solid var(--filet); border-radius: 0; background: none; color: var(--encre); font-size: 12px;
}
body .wpc-filters-submit-button, body .wpc-filters-reset-button { border-radius: 0; }

/* Barre de tri + compteur (widget Archive produits) */
body .cat-grille .woocommerce-result-count { font-size: 13px; color: var(--gris); margin: 0 0 24px; }
body .cat-grille .woocommerce-ordering { margin: 0 0 24px; }
body .cat-grille .woocommerce-ordering select, body select.orderby {
  font-family: var(--police); font-size: 13px; color: var(--encre); background-color: transparent; border: 0; border-bottom: 1px solid var(--filet);
  border-radius: 0; padding: 6px 22px 6px 0;
}
body .cat-grille ul.products { --colonnes: 3; clear: both; }
body .woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; justify-content: center; gap: 6px; margin-top: 50px; }
body .woocommerce nav.woocommerce-pagination ul li { border: 0; }
body .woocommerce nav.woocommerce-pagination ul li a, body .woocommerce nav.woocommerce-pagination ul li span {
  border: 1px solid var(--filet); min-width: 40px; padding: 10px; font-size: 13px; color: var(--encre);
}
body .woocommerce nav.woocommerce-pagination ul li span.current { background: var(--encre); color: #fff; border-color: var(--encre); }
body .woocommerce-info, body .woocommerce-message, body .woocommerce-error {
  border: 1px solid var(--filet); border-top: 1px solid var(--encre); background: var(--creme-2); color: var(--encre); font-size: 14px;
}
body .woocommerce-info::before, body .woocommerce-message::before { color: var(--encre); }

/* =====================================================================
   8. Fiche produit (modèle Produit unique)
   ===================================================================== */

.e-con.fil-produit { padding: 22px var(--marge); }
.fil-produit .woocommerce-breadcrumb { justify-content: flex-start; }
.e-con.fiche {
  display: grid; grid-template-columns: 1.25fr 1fr; gap: clamp(30px, 5vw, 80px);
  padding: 0 var(--marge) clamp(70px, 8vw, 110px);
  max-width: 1440px; margin: 0 auto; width: 100%;
}
/* galerie en grille : première image en grand, les suivantes deux par deux */
body .galerie .woocommerce-product-gallery { width: 100% !important; float: none !important; margin: 0 !important; opacity: 1 !important; }
body .galerie .woocommerce-product-gallery__wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; }
body .galerie .woocommerce-product-gallery__image { aspect-ratio: 3 / 4; overflow: hidden; background: #e4e1dc; }
body .galerie .woocommerce-product-gallery__image:first-child { grid-column: 1 / -1; aspect-ratio: 4 / 5; }
body .galerie .woocommerce-product-gallery__image a, body .galerie .woocommerce-product-gallery__image img { display: block; width: 100%; height: 100% !important; object-fit: cover; }
body .galerie .woocommerce-product-gallery__trigger { display: none; }
.e-con.fiche-info { position: sticky; top: calc(var(--entete) + 28px); align-self: start; padding-top: 10px; }
.fiche-etiquette p { font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--gris); }
body .fiche-info .product_title, body .fiche-titre .elementor-heading-title { font-size: clamp(34px, 3.4vw, 50px); font-weight: 300; margin: 14px 0 12px; line-height: 1.08; }
body.woocommerce .fiche-info .price, body .fiche-prix .price, body.woocommerce div.product .fiche-prix p.price { font-size: 20px; color: var(--encre); margin: 0; font-weight: 400; display: flex; gap: 10px; }
body.woocommerce div.product .fiche-prix p.price ins { text-decoration: none; font-weight: 400; }
body .fiche-accroche { margin-bottom: 10px; }
body .fiche-info .price del { order: 2; color: var(--gris); }
body .fiche-accroche, body .fiche-accroche p { color: var(--gris); font-size: 14px; margin-top: 18px; max-width: 46ch; }
/* choix de la taille : le menu déroulant devient des boutons (assets/app.js) */
body .fiche-panier form.cart { margin: 28px 0 0; }
body .fiche-panier table.variations { margin: 0; border: 0; width: 100%; }
body .fiche-panier table.variations tr { display: block; }
body .fiche-panier table.variations th.label, body .fiche-panier table.variations td.value { display: block; padding: 0; border: 0; background: none; text-align: left; }
body .fiche-panier table.variations th.label label { font-size: 13px; color: var(--gris); font-weight: 400; display: flex; gap: 6px; }
body .fiche-panier table.variations th.label .valeur-taille { color: var(--encre); font-weight: 500; }
.choix-tailles { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin-top: 12px; }
.choix-tailles button {
  height: 46px; border: 1px solid var(--filet); background: none; color: var(--encre); border-radius: 0;
  font-family: var(--police); font-size: 13px; cursor: pointer; transition: border-color .2s; padding: 0 4px;
}
.choix-tailles button:hover:not(:disabled) { border-color: var(--encre); background: none; color: var(--encre); }
.choix-tailles button.actif { background: var(--encre); color: #fff; border-color: var(--encre); }
.choix-tailles button:disabled { color: #b8b2a8; background: linear-gradient(to top right, transparent calc(50% - .5px), var(--filet) 50%, transparent calc(50% + .5px)); cursor: not-allowed; }
.choix-tailles + select, .fiche-panier .a-boutons select { position: absolute; opacity: 0; pointer-events: none; height: 0; }
body .fiche-panier .single_variation_wrap { margin-top: 20px; }
body .fiche-panier .woocommerce-variation-price { display: none; }
body .fiche-panier .woocommerce-variation-availability p.stock { font-size: 12px; color: var(--gris); margin: 0 0 10px; }
body .fiche-panier .woocommerce-variation-add-to-cart, body .fiche-panier form.cart:not(.variations_form) { display: flex; gap: 10px; }
body .fiche-panier .quantity { display: inline-flex; border: 1px solid var(--filet); height: 50px; margin: 0 !important; }
body .fiche-panier .quantity .qty { width: 60px; border: 0; background: none; text-align: center; font-family: var(--police); font-size: 15px; }
body .fiche-panier .single_add_to_cart_button { flex: 1; padding: 16px 22px !important; background: var(--encre) !important; color: #fff !important; border: 1px solid var(--encre) !important; border-radius: 0 !important; font-size: 11px !important; font-weight: 500 !important; letter-spacing: .14em !important; text-transform: uppercase !important; }
body .fiche-panier .single_add_to_cart_button:hover { background: #3a3833 !important; }
body .fiche-panier .single_add_to_cart_button.disabled { opacity: .45; }
.lien-guide .elementor-button, .lien-guide a { background: none !important; border: 0 !important; padding: 0 !important; color: var(--encre) !important; font-size: 12px !important; letter-spacing: 0 !important; text-transform: none !important; text-decoration: underline; text-underline-offset: 3px; }
.e-con.fiche-ligne { flex-direction: column; align-items: flex-start; gap: 8px; margin-top: 18px; } /* conseil de taille, puis « Guide des tailles » sur sa propre ligne */
.fiche-coupe p { font-size: 12px; color: var(--gris); }
body .fiche-assurances { margin-top: 26px; padding-top: 18px; border-top: 1px solid var(--filet); }
body .fiche-assurances .elementor-icon-list-item { font-size: 13px; padding: 4px 0; }
body .fiche-assurances .elementor-icon-list-text { color: var(--encre); padding: 0; }
body .fiche-assurances .elementor-icon-list-text::before { content: "—"; margin-right: 10px; color: var(--gris); }

/* Onglets produit affichés en accordéon (assets/app.js) + accordéons Elementor */
body .fiche-onglets .woocommerce-tabs { margin-top: 26px; border-top: 1px solid var(--filet); padding: 0; }
body .fiche-onglets .woocommerce-tabs ul.tabs { display: none; }
body .fiche-onglets .woocommerce-Tabs-panel { display: block !important; border-bottom: 1px solid var(--filet); margin: 0 !important; padding: 0 !important; }
body .fiche-onglets .woocommerce-Tabs-panel > h2 {
  cursor: pointer; display: flex; justify-content: space-between; gap: 20px; padding: 18px 0; margin: 0;
  font-size: 15px; font-weight: 400; letter-spacing: 0;
}
body .fiche-onglets .woocommerce-Tabs-panel > h2::after { content: "+"; font-size: 20px; font-weight: 300; line-height: 1; }
body .fiche-onglets .woocommerce-Tabs-panel.ouvert > h2::after { content: "−"; }
body .fiche-onglets .woocommerce-Tabs-panel > :not(h2) { display: none; }
body .fiche-onglets .woocommerce-Tabs-panel.ouvert > :not(h2) { display: block; }
body .fiche-onglets .woocommerce-Tabs-panel p, body .fiche-onglets .woocommerce-Tabs-panel td, body .fiche-onglets .woocommerce-Tabs-panel th { color: var(--gris); font-size: 14px; }
body .fiche-onglets .woocommerce-Tabs-panel p { padding-bottom: 14px; max-width: 64ch; }
body .fiche-onglets table.shop_attributes { border: 0; margin: 0 0 18px; }
body .fiche-onglets table.shop_attributes th, body .fiche-onglets table.shop_attributes td { border: 0; border-bottom: 1px solid var(--filet); background: none; padding: 10px 0; font-style: normal; text-align: left; font-weight: 400; }
body .fiche-onglets table.shop_attributes td p { padding: 0; }

body .accordeons .e-n-accordion-item { border-bottom: 1px solid var(--filet); }
body .accordeons .e-n-accordion-item:first-child { border-top: 1px solid var(--filet); }
body .accordeons .e-n-accordion-item-title {
  display: flex; justify-content: space-between; align-items: center; gap: 20px;
  padding: 18px 0; border: 0; background: none; cursor: pointer; list-style: none;
}
body .accordeons .e-n-accordion-item-title-text { font-size: 15px; font-weight: 400; color: var(--encre); }
body .accordeons .e-n-accordion-item-title-icon { display: none; }
body .accordeons .e-n-accordion-item-title::after { content: "+"; font-size: 20px; font-weight: 300; line-height: 1; color: var(--encre); }
body .accordeons .e-n-accordion-item[open] > .e-n-accordion-item-title::after { content: "−"; }
body .accordeons .e-n-accordion-item > .e-con { padding: 0 0 18px; border: 0; color: var(--gris); font-size: 14px; }
body .accordeons .e-n-accordion-item > .e-con p { max-width: 64ch; }
body .accordeons .e-n-accordion-item > .e-con a { color: var(--encre); text-decoration: underline; text-underline-offset: 3px; }
.e-con.produits-similaires { padding-top: clamp(40px, 5vw, 70px); border-top: 1px solid var(--filet); padding-bottom: clamp(60px, 7vw, 100px); }
body .produits-similaires .related > h2, body .produits-similaires .upsells > h2 { display: none; }

/* Guide des tailles (popup) */
body .guide-tailles .dialog-widget-content, body .elementor-popup-modal .guide-tailles { background: var(--creme); }
.tableau-defile { overflow-x: auto; margin-bottom: 30px; }
.tableau-defile table, table.tableau { width: 100%; border-collapse: collapse; font-size: 13px; min-width: 420px; margin: 0; border: 0; }
.tableau-defile caption { text-align: left; font-size: 12px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; padding-bottom: 12px; color: var(--encre); }
.tableau-defile th, .tableau-defile td { text-align: left; padding: 11px 12px 11px 0; border: 0; border-bottom: 1px solid var(--filet); background: none; }
.tableau-defile th { font-weight: 500; color: var(--gris); }
.tableau-defile tr:nth-child(odd) > td, .tableau-defile tr:nth-child(odd) > th { background: none; }
.note, .note p { font-size: 12px; color: var(--gris); margin-top: 14px; }

/* =====================================================================
   9. Panier, commande, compte
   ===================================================================== */

.etapes ol, .etapes ul { list-style: none; display: flex; justify-content: center; gap: clamp(14px, 4vw, 50px); margin: 0; padding: 0; font-size: 12px; color: var(--gris); counter-reset: etape; }
.etapes li { display: flex; align-items: center; gap: 10px; counter-increment: etape; }
.etapes li::before { content: counter(etape); width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--filet); display: grid; place-items: center; font-size: 11px; flex: none; }
.etapes li strong { font-weight: 400; color: var(--encre); }
.etapes li:has(strong)::before, .etapes li.faite::before { background: var(--encre); border-color: var(--encre); color: #fff; }
.e-con.tunnel { max-width: 1240px; margin: 0 auto; width: 100%; padding: 40px var(--marge) clamp(70px, 8vw, 110px); }
.tunnel-titre .elementor-heading-title { text-align: center; font-size: clamp(40px, 5vw, 66px); margin: 34px 0 44px; }

/* Panier WooCommerce (widget Panier) */
body .woocommerce-cart-form table.shop_table, body .woocommerce table.shop_table { border: 0; border-radius: 0; border-collapse: collapse; margin: 0; }
body .woocommerce table.shop_table th { font-size: 11px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--gris); border: 0; border-bottom: 1px solid var(--filet); padding: 12px 8px; }
body .woocommerce table.shop_table td { border: 0; border-bottom: 1px solid var(--filet); padding: 22px 8px; font-size: 14px; background: none; }
body .woocommerce table.cart img, body .woocommerce-cart-form .product-thumbnail img { width: 90px; aspect-ratio: 3 / 4; object-fit: cover; }
body .woocommerce table.cart .product-name a { font-size: 16px; color: var(--encre); }
body .woocommerce table.cart .product-name dl.variation { font-size: 12px; color: var(--gris); margin-top: 4px; }
body .woocommerce a.remove { color: var(--gris) !important; font-weight: 300; font-size: 20px; }
body .woocommerce a.remove:hover { background: none; color: var(--encre) !important; }
body .woocommerce .quantity .qty { border: 1px solid var(--filet); background: none; height: 42px; width: 64px; border-radius: 0; font-family: var(--police); }
body .woocommerce table.cart td.actions .coupon .input-text { border: 0; border-bottom: 1px solid var(--filet); background: none; border-radius: 0; padding: 10px 0; width: 180px; font-family: var(--police); }
body .cart-collaterals .cart_totals, body .e-cart-totals, body .woocommerce-checkout-review-order {
  background: var(--creme-2); padding: 30px; float: none; width: 100%;
}
body .cart_totals h2, body #order_review_heading, body .woocommerce-checkout h3 { font-size: 24px; font-weight: 300; margin-bottom: 20px; }
body .wc-proceed-to-checkout a.checkout-button { width: 100%; padding: 16px 22px; font-size: 11px; }
/* Mise en page des widgets Panier et Commande d'Elementor */
body .elementor-widget-woocommerce-cart .e-cart-section, body .elementor-widget-woocommerce-checkout-page .e-checkout__column-inner { background: none; padding: 0; border: 0; }
body .elementor-widget-woocommerce-cart .e-cart-totals, body .elementor-widget-woocommerce-checkout-page .e-checkout__order_review { background: var(--creme-2); padding: 30px; border: 0; border-radius: 0; }

/* Formulaires WooCommerce (commande, compte) */
body .woocommerce form .form-row label { font-size: 12px; color: var(--gris); margin-bottom: 4px; line-height: 1.4; }
body .woocommerce form .form-row .input-text, body .woocommerce form .form-row select, body .woocommerce-page form .form-row .input-text,
body .select2-container--default .select2-selection--single, body .elementor-widget-woocommerce-checkout-page .input-text {
  font-family: var(--police); font-size: 15px; color: var(--encre); background: transparent; border: 0; border-bottom: 1px solid var(--filet);
  border-radius: 0; padding: 10px 0; box-shadow: none; min-height: 0; height: auto;
}
body .woocommerce form .form-row .input-text:focus, body .woocommerce form .form-row select:focus { border-color: var(--encre); outline: 0; }
body .woocommerce form .form-row textarea { border: 1px solid var(--filet); padding: 12px; }
body #payment, body .woocommerce-checkout #payment { background: none; border-radius: 0; }
body #payment ul.payment_methods { border: 0; padding: 0; }
body #payment ul.payment_methods li { border: 1px solid var(--filet); padding: 16px 18px; margin-bottom: 10px; list-style: none; }
body #payment div.payment_box { background: var(--creme); color: var(--gris); font-size: 13px; border-radius: 0; }
body #payment div.payment_box::before { display: none; }
body #payment #place_order, body .woocommerce #payment #place_order { width: 100%; padding: 16px 22px; float: none; }
body .woocommerce-checkout #shipping_method li { border: 1px solid var(--filet); padding: 12px 14px; margin-bottom: 8px; }
body .woocommerce-checkout #shipping_method li label { font-size: 14px; }

/* Compte */
body .woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--filet); }
body .woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 12px 0; border-bottom: 1px solid var(--filet); font-size: 14px; }
body .woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { font-weight: 500; }
body .woocommerce form.login, body .woocommerce form.register, body .woocommerce form.checkout_coupon {
  border: 0; border-radius: 0; padding: 0; margin: 0;
}
body #customer_login h2 { font-size: 30px; margin-bottom: 22px; }
body #customer_login .u-column2 { border-left: 1px solid var(--filet); padding-left: clamp(20px, 5vw, 70px); }
body .woocommerce-form-login__rememberme { font-size: 13px; }
body .woocommerce-LostPassword a, body .lost_password a { font-size: 13px; color: var(--gris); text-decoration: underline; text-underline-offset: 3px; }

/* Commande reçue */
body .woocommerce-order .woocommerce-notice--success, body .woocommerce-thankyou-order-received {
  font-family: var(--police); font-size: clamp(30px, 3.4vw, 48px); font-weight: 300; letter-spacing: -0.02em; line-height: 1.1; margin: 0 0 24px; background: none; border: 0; padding: 0;
}
body .woocommerce ul.order_details { display: flex; flex-wrap: wrap; gap: 16px 30px; padding: 0; margin: 0 0 30px; }
body .woocommerce ul.order_details li { border: 0; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--gris); margin: 0; padding: 0; }
body .woocommerce ul.order_details li strong { display: block; font-size: 15px; letter-spacing: 0; text-transform: none; color: var(--encre); font-weight: 400; margin-top: 4px; }

/* =====================================================================
   10. Pages éditoriales
   ===================================================================== */

/* La maison */
.e-con.page-hero { position: relative; height: min(78vh, 720px); min-height: 460px; overflow: hidden; color: #fff; justify-content: flex-end; }
.page-hero .remplir img { object-position: 50% 25%; filter: grayscale(1); }
.e-con.page-hero::after { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(180deg, rgba(0,0,0,.1), rgba(0,0,0,.45)); }
.e-con.page-hero-texte { position: relative; z-index: 1; text-align: center; align-items: center; padding: 0 var(--marge) clamp(40px, 6vw, 80px); }
.page-hero-titre .elementor-heading-title { font-family: var(--police-titre); font-weight: 400; font-size: clamp(40px, 5.6vw, 86px); margin: 16px auto 0; max-width: 14em; line-height: 1.04; letter-spacing: -0.015em; }
.manifeste { max-width: 980px; margin: 0 auto; padding: clamp(70px, 9vw, 130px) var(--marge) 0; text-align: center; }
.manifeste p { font-size: clamp(22px, 2.4vw, 34px); font-weight: 300; line-height: 1.4; letter-spacing: -0.01em; }
.e-con.valeurs { display: grid; grid-template-columns: repeat(3, 1fr); max-width: 1320px; margin: 0 auto; width: 100%; padding: 0 var(--marge) clamp(70px, 8vw, 110px); }
.e-con.valeur { padding: 10px clamp(16px, 3vw, 44px) 0; text-align: center; align-items: center; }
.e-con.valeur + .e-con.valeur { border-left: 1px solid var(--filet); }
.valeur .numero p { font-size: 11px; color: var(--gris); letter-spacing: .1em; }
.valeur .titre .elementor-heading-title { font-size: clamp(26px, 2.4vw, 34px); margin: 12px 0; }
.valeur .texte p { color: var(--gris); font-size: 14px; max-width: 32ch; margin: 0 auto; }
.e-con.savoir-faire { display: grid; grid-template-columns: 1fr 1fr; background: var(--creme-2); }
.e-con.savoir-faire-visuel { position: relative; min-height: 560px; }
.e-con.savoir-faire-texte { padding: clamp(50px, 7vw, 110px) clamp(24px, 6vw, 100px); align-self: center; }
.savoir-faire-texte .surtitre { color: var(--gris); }
.savoir-faire-texte .titre .elementor-heading-title { font-size: clamp(32px, 3.4vw, 48px); margin: 18px 0 30px; }
.liste-numerotee ul, .liste-numerotee ol { list-style: none; margin: 0 0 34px; padding: 0; counter-reset: n; }
.liste-numerotee li { counter-increment: n; padding: 16px 0 16px 46px; border-top: 1px solid var(--filet); position: relative; font-size: 14px; color: var(--gris); }
.liste-numerotee li::before { content: "0" counter(n); position: absolute; left: 0; top: 17px; font-size: 11px; color: var(--encre); }
.liste-numerotee b, .liste-numerotee strong { display: block; color: var(--encre); font-weight: 500; margin-bottom: 2px; }
.e-con.univers-bande { padding: clamp(70px, 8vw, 110px) 0; }
.univers-bande .titre-section { margin-bottom: 40px; }

/* FAQ */
.e-con.faq { display: grid; grid-template-columns: 220px 1fr; gap: clamp(30px, 5vw, 80px); max-width: 1160px; margin: 0 auto; width: 100%; padding: 20px var(--marge) clamp(70px, 8vw, 110px); }
.faq-sommaire { position: sticky !important; top: calc(var(--entete) + 38px); align-self: start; }
body .faq-sommaire .elementor-icon-list-items { display: grid; gap: 4px; }
body .faq-sommaire .elementor-icon-list-item a { display: block; font-size: 14px; padding: 8px 0 8px 14px; border-left: 1px solid var(--filet); color: var(--gris); transition: color .2s, border-color .2s; }
body .faq-sommaire .elementor-icon-list-item a:hover, body .faq-sommaire .elementor-icon-list-item a.actif { color: var(--encre); border-color: var(--encre); }
body .faq-sommaire .elementor-icon-list-text { color: inherit; padding: 0; }
.e-con.faq-contenu { min-width: 0; }
.e-con.faq-rubrique { padding-bottom: 50px; scroll-margin-top: 100px; }
.faq-rubrique .titre .elementor-heading-title { font-size: clamp(28px, 2.6vw, 38px); margin-bottom: 18px; }

/* Contact */
.e-con.contact { display: grid; grid-template-columns: 1fr 1.3fr; gap: clamp(30px, 6vw, 100px); max-width: 1240px; margin: 0 auto; width: 100%; padding: 20px var(--marge) clamp(70px, 8vw, 110px); }
.e-con.contact-infos { display: grid; grid-template-columns: 1fr 1fr; gap: 30px 24px; align-content: start; }
.contact-infos .surtitre { color: var(--gris); margin-bottom: 8px; }
.contact-infos .bloc a { text-decoration: underline; text-underline-offset: 3px; }
.contact-infos .contact-photo { grid-column: 1 / -1; aspect-ratio: 16 / 10; overflow: hidden; position: relative; }
body .formulaire .elementor-field-group { margin-bottom: 16px; padding: 0 10px; }
body .formulaire .elementor-field-label { font-size: 12px; color: var(--gris); font-weight: 400; margin-bottom: 4px; }
body .formulaire .elementor-field-textual, body .formulaire select {
  font-family: var(--police); font-size: 15px; color: var(--encre) !important; background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--filet) !important;
  border-radius: 0 !important; padding: 10px 0; box-shadow: none; min-height: 0;
}
body .formulaire textarea.elementor-field-textual { border: 1px solid var(--filet) !important; padding: 12px; }
body .formulaire .elementor-field-textual:focus { border-color: var(--encre) !important; }
body .formulaire .elementor-field-subgroup label { font-size: 13px; }
body .formulaire .elementor-field-subgroup a { text-decoration: underline; text-underline-offset: 3px; }
body .formulaire .elementor-button {
  background: var(--encre) !important; color: #fff !important; border-radius: 0 !important; padding: 13px 22px; font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase;
}
body .formulaire .elementor-message { font-size: 14px; border: 1px solid var(--encre); padding: 16px 18px; margin-top: 20px; }

/* Textes légaux */
.e-con.texte-long { max-width: 760px; margin: 0 auto; width: 100%; padding: 10px var(--marge) clamp(70px, 8vw, 110px); font-size: 15px; }
.texte-long h2 { font-size: 26px; margin: 44px 0 14px; }
.texte-long p, .texte-long li { color: #4d4a44; }
.texte-long ul { padding-left: 20px; margin: 10px 0; }
.texte-long li + li { margin-top: 6px; }
.texte-long a { text-decoration: underline; text-underline-offset: 3px; }
.avertissement p, p.avertissement { border: 1px solid var(--filet); background: var(--creme-2); padding: 16px 18px; font-size: 13px; }
mark.a-completer, .a-completer { background: #f3e2a8; color: var(--encre); padding: 0 4px; }

/* Page d'attente */
.ag-attente a { text-decoration: underline; text-underline-offset: 3px; }

/* =====================================================================
   11. Adaptatif
   ===================================================================== */

@media (max-width: 1100px) {
  body .nav-principale .elementor-nav-menu--main .elementor-nav-menu { gap: 22px; }
  .grille-6 { --colonnes: 3; }
  .grille-6 ul.products { row-gap: 30px; }
  .e-con.editorial { grid-template-columns: 1fr 1fr; }
  .e-con.editorial-detail { display: none; }
  .e-con.pied-colonnes { grid-template-columns: repeat(2, 1fr); }
  .e-con.pied-lettre { grid-column: 1 / -1; }
  body .cat-grille ul.products { --colonnes: 2; }
}
@media (max-width: 1024px) {
  :root { --entete: 62px; }
  .e-con.entete-in { grid-template-columns: auto 1fr auto; }
  .nav-principale { order: -1; }
  .logo .elementor-heading-title { text-align: center; font-size: 14px; }
  body .entete .logo img { height: 20px; margin: 0 auto; }
  .outil .elementor-button-text { font-size: 0; }
  .outil .elementor-button-text::before { margin-right: 0; }
  .e-con.outils { gap: 16px; }
  .e-con.fiche { grid-template-columns: 1fr; }
  .e-con.fiche-info { position: static; }
}
@media (max-width: 860px) {
  .e-con.hero { min-height: 520px; height: 78vh; }
  .e-con.hero-in { grid-template-columns: 1fr; justify-items: center; }
  .hero-cote { display: none; }
  .e-con.decouvrir { grid-template-columns: 1fr; text-align: left; }
  .e-con.univers-liste { flex-direction: row; flex-wrap: wrap; gap: 6px 22px; padding: 0; }
  .univers-item .elementor-heading-title { font-size: 18px; }
  .e-con.decouvrir-visuel { max-width: 420px; width: 82%; }
  .tampon { width: 96px !important; height: 96px; right: -48px; }
  .e-con.collections { grid-template-columns: 1fr; }
  .e-con.collection { aspect-ratio: 4 / 3.6; }
  .e-con.reassurance { grid-template-columns: 1fr 1fr; }
  .reassurance > .elementor-widget:nth-child(3) { border-left: 0; }
  .e-con.editorial { grid-template-columns: 1fr; }
  .e-con.editorial-grand { min-height: 420px; }
  .matieres ul { grid-template-columns: repeat(3, 1fr); }
  .matieres li:nth-child(4) { border-left: 0; }
  .matieres li:nth-child(n+4) { border-top: 1px solid var(--filet); }
  .e-con.selection-grille { grid-template-columns: 1fr; }
  .e-con.selection-grand { min-height: 480px; }
  .e-con.social-grille { grid-template-columns: repeat(4, 1fr); }
  .social-grille > .elementor-widget:nth-child(n+5) { display: none; }
  .avis-fleche { top: auto; bottom: 40px; }
  .avis-fleche.prec { left: calc(50% - 54px); }
  .avis-fleche.suiv { right: calc(50% - 54px); }
  .e-con.pied-bas { grid-template-columns: 1fr; text-align: center; gap: 12px; }
  body .pied-legal .elementor-icon-list-items { justify-content: center; flex-wrap: wrap; gap: 8px 18px; }
  .e-con.cat-corps { grid-template-columns: 1fr; }
  .e-con.filtres { position: static; }
  .e-con.valeurs { grid-template-columns: 1fr; gap: 30px; }
  .e-con.valeur + .e-con.valeur { border-left: 0; border-top: 1px solid var(--filet); padding-top: 30px; }
  .e-con.savoir-faire { grid-template-columns: 1fr; }
  .e-con.savoir-faire-visuel { min-height: 380px; }
  .e-con.faq { grid-template-columns: 1fr; }
  .faq-sommaire { position: static !important; }
  body .faq-sommaire .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 6px; }
  body .faq-sommaire .elementor-icon-list-item a { border: 1px solid var(--filet); padding: 7px 12px; font-size: 12px; }
  .e-con.contact { grid-template-columns: 1fr; }
  body #customer_login .u-column2 { border-left: 0; padding-left: 0; border-top: 1px solid var(--filet); padding-top: 40px; margin-top: 40px; }
  .etapes ol, .etapes ul { font-size: 11px; }
  .etapes li { flex-direction: column; text-align: center; gap: 6px; }
}
@media (max-width: 767px) {
  body.admin-bar .elementor-location-header { top: 0; }
  .grille-6 { --colonnes: 2; }
  .grille-6 ul.products, body ul.products { gap: 24px 8px; }
  body .cat-grille ul.products { --colonnes: 2; }
  .e-con.reassurance { grid-template-columns: 1fr; }
  .reassurance > .elementor-widget + .elementor-widget { border-left: 0; }
  .matieres li { font-size: 11px; letter-spacing: .16em; padding: 22px 6px; }
  .e-con.pied-colonnes { grid-template-columns: 1fr 1fr; gap: 34px 20px; }
  .e-con.hero-univers { gap: 22px; }
  .e-con.contact-infos { grid-template-columns: 1fr; }
  body .woocommerce table.shop_table_responsive tr td::before { font-weight: 400; color: var(--gris); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* =====================================================================
   12. Widgets Panier et Commande d'Elementor : leurs réglages par défaut
   (bleu, fonds blancs, champs grisés) sont remplacés par le registre du site
   ===================================================================== */

.panier-widget, .commande-widget, .compte-widget { --ag-champ: transparent; }
body :is(.panier-widget, .commande-widget, .compte-widget) a:not(.button):not(.checkout-button) { color: var(--encre) !important; text-decoration: underline; text-underline-offset: 3px; }
body :is(.panier-widget, .commande-widget) .product-name a { text-decoration: none !important; }
body :is(.panier-widget, .commande-widget, .compte-widget) :is(.button, .checkout-button, #place_order, button[type="submit"]) {
  background: var(--encre) !important; color: #fff !important; border: 1px solid var(--encre) !important; border-radius: 0 !important;
  font-family: var(--police) !important; font-size: 11px !important; font-weight: 500 !important; letter-spacing: .14em !important; text-transform: uppercase !important;
  padding: 14px 22px !important; box-shadow: none !important;
}
body :is(.panier-widget, .commande-widget, .compte-widget) :is(.button, .checkout-button, #place_order, button[type="submit"]):hover { background: #3a3833 !important; }
body .panier-widget button[name="apply_coupon"], body .panier-widget button[name="update_cart"] { background: transparent !important; color: var(--encre) !important; }
body :is(.panier-widget, .commande-widget) :is(.e-cart-section, .e-checkout__column-inner, .e-coupon-box, .e-checkout__order_review, .e-checkout__order_review-2, .woocommerce-checkout-payment, .e-cart-totals) {
  border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
}
body :is(.panier-widget, .commande-widget) .e-cart__column-start .e-cart-section,
body .commande-widget .e-checkout__column-start .e-checkout__column-inner,
body .commande-widget .e-coupon-box, body .commande-widget .e-checkout__order_review-2 { background: transparent !important; padding: 0 !important; }
body .panier-widget .e-cart-totals, body .commande-widget .e-checkout__order_review { background: var(--creme-2) !important; padding: 30px !important; }
body .commande-widget .e-coupon-box { margin: 20px 0 !important; font-size: 13px; }
body :is(.panier-widget, .commande-widget, .compte-widget) :is(input.input-text, select, textarea, .select2-selection) {
  background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--filet) !important; border-radius: 0 !important;
  font-family: var(--police) !important; font-size: 15px !important; color: var(--encre) !important; padding: 10px 0 !important; box-shadow: none !important;
}
body :is(.panier-widget, .commande-widget, .compte-widget) textarea { border: 1px solid var(--filet) !important; padding: 12px !important; }
body :is(.panier-widget, .commande-widget, .compte-widget) :is(input.input-text, select, textarea):focus { border-color: var(--encre) !important; outline: 0; }
body :is(.panier-widget, .commande-widget, .compte-widget) label { font-family: var(--police); font-size: 12px !important; color: var(--gris) !important; font-weight: 400 !important; }
body :is(.panier-widget, .commande-widget, .compte-widget) .required { color: var(--gris) !important; text-decoration: none; }
body :is(.panier-widget, .commande-widget) :where(h3, .e-checkout-secondary-title, .cart_totals h2, #order_review_heading) {
  font-family: var(--police) !important; font-size: 22px !important; font-weight: 300 !important; letter-spacing: -0.01em !important; color: var(--encre) !important; text-transform: none !important;
}
body :is(.panier-widget, .commande-widget) table.shop_table th, body .commande-widget .e-checkout__order_review :is(th, .product-name, .product-total) {
  font-family: var(--police) !important; color: var(--gris) !important; font-size: 11px; font-weight: 500 !important; letter-spacing: .12em; text-transform: uppercase;
}
body .commande-widget .e-checkout__order_review td.product-name, body .commande-widget .e-checkout__order_review td.product-total { font-size: 14px !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--encre) !important; font-weight: 400 !important; }
body :is(.panier-widget, .commande-widget) :is(td, .amount, .order-total) { color: var(--encre) !important; font-family: var(--police) !important; }
body :is(.panier-widget, .commande-widget) #shipping_method li { border: 0 !important; padding: 4px 0 !important; margin: 0 !important; background: none !important; }
body :is(.panier-widget, .commande-widget) #shipping_method li label { font-size: 13px !important; color: var(--encre) !important; font-weight: 400 !important; }
body :is(.panier-widget, .commande-widget, .compte-widget) input[type="radio"], body :is(.panier-widget, .commande-widget, .compte-widget) input[type="checkbox"] { accent-color: var(--encre); }
body .panier-widget .product-thumbnail img { width: 90px !important; aspect-ratio: 3 / 4; object-fit: cover; }
body .panier-widget .quantity .qty { width: 64px !important; height: 42px; border: 1px solid var(--filet) !important; text-align: center; padding: 0 !important; }
body .panier-widget a.remove { color: var(--gris) !important; text-decoration: none !important; }
body :is(.panier-widget, .commande-widget) .woocommerce-info, body :is(.panier-widget, .commande-widget) .woocommerce-error, body :is(.panier-widget, .commande-widget) .woocommerce-message {
  background: var(--creme-2) !important; border: 1px solid var(--filet) !important; color: var(--encre) !important; font-family: var(--police); font-size: 13px;
}
body .commande-widget #payment .payment_methods li { background: transparent !important; }
body .commande-widget :is(.col-1, .col-2, .shipping_address, .woocommerce-additional-fields, .woocommerce-billing-fields, .woocommerce-shipping-fields) {
  background: transparent !important; border: 0 !important; box-shadow: none !important; padding-left: 0 !important; padding-right: 0 !important;
}
body .commande-widget .woocommerce-checkout-payment { background: transparent !important; border: 0 !important; padding: 0 !important; margin-top: 24px; }
body .commande-widget .e-coupon-anchor-description { font-size: 13px !important; font-weight: 400 !important; color: var(--gris) !important; }
body .commande-widget .e-coupon-anchor-description a { font-size: 13px !important; }

/* Commande : menus déroulants (Select2) et détails */
body .commande-widget .e-woocommerce-coupon-nudge { font-size: 13px !important; font-weight: 400 !important; color: var(--gris) !important; letter-spacing: 0 !important; margin: 0 !important; }
body .commande-widget .e-woocommerce-coupon-nudge a { font-size: 13px !important; }
body .select2-container--default .select2-selection--single {
  height: auto !important; min-height: 0 !important; padding: 10px 28px 10px 0 !important; background: transparent !important;
  border: 0 !important; border-bottom: 1px solid var(--filet) !important; border-radius: 0 !important; box-shadow: none !important; position: relative;
}
body .select2-container--default.select2-container--open .select2-selection--single,
body .select2-container--default .select2-selection--single:focus { border-bottom-color: var(--encre) !important; outline: 0; }
body .select2-container--default .select2-selection--single .select2-selection__rendered {
  padding: 0 !important; margin: 0 !important; line-height: 1.6 !important; height: auto !important;
  font-family: var(--police); font-size: 15px; color: var(--encre) !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
body .select2-container--default .select2-selection--single .select2-selection__placeholder { color: var(--gris); }
body .select2-container--default .select2-selection--single .select2-selection__arrow {
  top: 50% !important; right: 0 !important; height: 12px !important; width: 12px !important; transform: translateY(-50%);
}
body .select2-container--default .select2-selection--single .select2-selection__arrow b {
  border: 0 !important; width: 8px; height: 8px; margin: 0 !important; left: 2px !important; top: 0 !important;
  border-right: 1px solid var(--encre) !important; border-bottom: 1px solid var(--encre) !important; transform: rotate(45deg);
}
body .select2-container--default.select2-container--open .select2-selection__arrow b { transform: rotate(-135deg); top: 4px !important; }
/* la liste ouverte est ajoutée en fin de page par Select2 : on la stylise partout */
body .select2-dropdown {
  background: var(--creme); border: 1px solid var(--encre) !important; border-radius: 0 !important; box-shadow: 0 12px 30px rgba(30,29,27,.12);
  font-family: var(--police); font-size: 14px; color: var(--encre); z-index: 100000;
}
body .select2-search--dropdown { padding: 10px; }
body .select2-search--dropdown .select2-search__field {
  border: 0 !important; border-bottom: 1px solid var(--filet) !important; background: transparent; border-radius: 0; padding: 8px 0 !important; font-family: var(--police); font-size: 14px; outline: 0;
}
body .select2-results__options { max-height: 260px !important; }
body .select2-results__option { padding: 10px 14px !important; line-height: 1.4; white-space: normal; word-break: normal; }
body .select2-container--default .select2-results__option--highlighted[aria-selected],
body .select2-container--default .select2-results__option--highlighted[data-selected],
body .select2-container--default .select2-results__option--highlighted { background: var(--encre) !important; color: #fff !important; }
body .select2-container--default .select2-results__option[aria-selected="true"],
body .select2-container--default .select2-results__option[data-selected="true"] { background: var(--creme-2); color: var(--encre); }
/* champs : étiquette lisible au-dessus, espacement régulier */
body .commande-widget .form-row { margin: 0 0 18px !important; padding: 0 !important; }
body .commande-widget .form-row label { display: block !important; margin-bottom: 2px !important; line-height: 1.4 !important; }
body .commande-widget .form-row-first, body .commande-widget .form-row-last { width: calc(50% - 10px) !important; }
body .commande-widget .woocommerce-billing-fields__field-wrapper, body .commande-widget .woocommerce-shipping-fields__field-wrapper { display: flex; flex-wrap: wrap; justify-content: space-between; }
body .commande-widget .woocommerce-billing-fields__field-wrapper > .form-row:not(.form-row-first):not(.form-row-last),
body .commande-widget .woocommerce-shipping-fields__field-wrapper > .form-row:not(.form-row-first):not(.form-row-last) { width: 100% !important; }
body .commande-widget #ship-to-different-address { font-size: 14px !important; margin: 10px 0 18px !important; }
body .commande-widget #ship-to-different-address label { display: flex !important; align-items: center; gap: 10px; font-size: 14px !important; color: var(--encre) !important; }
/* récapitulatif : options de livraison lisibles sur toute la largeur */
body .commande-widget .e-checkout__order_review .woocommerce-shipping-totals th { vertical-align: top; }
body .commande-widget #shipping_method li { display: flex; gap: 8px; align-items: flex-start; }
body .commande-widget #shipping_method li input { margin-top: 4px !important; flex: none; }
body .commande-widget #shipping_method li label { line-height: 1.45 !important; }
@media (max-width: 767px) {
  body .commande-widget .form-row-first, body .commande-widget .form-row-last { width: 100% !important; }
}
body .commande-widget .woocommerce-shipping-fields { padding: 0 !important; margin: 0 !important; }
body .commande-widget h3#ship-to-different-address { margin: 4px 0 22px !important; padding: 0 !important; }
body .commande-widget #ship-to-different-address label { padding: 0 !important; margin: 0 !important; }
body .commande-widget .woocommerce-additional-fields { padding-top: 0 !important; margin-top: 0 !important; }
body .commande-widget .woocommerce-additional-fields h3 { display: none; }
body .commande-widget .e-checkout__order_review table.shop_table :is(th, td) { padding: 12px 8px !important; }
body .commande-widget .e-checkout__order_review table.shop_table thead th { white-space: nowrap; }
@media (max-width: 767px) {
  body .commande-widget .e-checkout__order_review, body .panier-widget .e-cart-totals { padding: 20px !important; }
  body .commande-widget .e-checkout__order_review table.shop_table :is(th, td) { padding: 10px 4px !important; }
}
/* récapitulatif de commande : chaque ligne en grille, la livraison sur toute la largeur */
body .commande-widget .woocommerce-checkout-review-order-table { display: block !important; width: 100% !important; margin: 0 !important; border: 0 !important; }
body .commande-widget .woocommerce-checkout-review-order-table :is(thead, tbody, tfoot) { display: block; width: 100%; }
body .commande-widget .woocommerce-checkout-review-order-table tr {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 16px; align-items: baseline;
  padding: 12px 0; border-bottom: 1px solid var(--filet);
}
body .commande-widget .woocommerce-checkout-review-order-table :is(th, td) { display: block; padding: 0 !important; border: 0 !important; width: auto !important; background: none !important; }
body .commande-widget .woocommerce-checkout-review-order-table :is(.product-total, tr > td:last-child) { text-align: right !important; }
body .commande-widget .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals { grid-template-columns: 1fr; }
body .commande-widget .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td { text-align: left !important; }
body .commande-widget #shipping_method { width: 100%; margin: 6px 0 0 !important; padding: 0 !important; }
body .commande-widget #shipping_method li { display: flex !important; gap: 10px; align-items: flex-start; padding: 4px 0 !important; }
body .commande-widget #shipping_method li label { display: block !important; flex: 1; width: auto !important; max-width: none !important; }
body .commande-widget .woocommerce-checkout-review-order-table tr.order-total { border-bottom: 0; padding-top: 16px; }
body .commande-widget .woocommerce-checkout-review-order-table tr.order-total :is(th, td) { font-size: 16px !important; }
body .commande-widget .e-checkout__order_review .woocommerce-checkout-review-order { padding: 0 !important; background: none !important; }
body .commande-widget .e-checkout__order_review table.shop_table.woocommerce-checkout-review-order-table :is(th, td) { padding: 0 !important; max-width: none !important; min-width: 0 !important; }
/* bouton « Passer à la commande » : texte blanc dans tous les états, y compris lien déjà visité */
body .panier-widget .wc-proceed-to-checkout a.checkout-button,
body .panier-widget .wc-proceed-to-checkout a.checkout-button:visited,
body .panier-widget .wc-proceed-to-checkout a.checkout-button:hover,
body .panier-widget .wc-proceed-to-checkout a.checkout-button:focus {
  color: #fff !important; -webkit-text-fill-color: #fff; display: flex !important; align-items: center; justify-content: center;
  min-height: 50px; font-size: 11px !important; line-height: 1.4 !important; text-indent: 0 !important; opacity: 1 !important; visibility: visible !important;
}

/* =====================================================================
   13. Sélecteur de langue (shortcode [ag_langue]) : drapeaux seuls, menu déroulant
   ===================================================================== */

body .langue { flex: none; }
.ag-langue { position: relative; display: flex; align-items: center; height: 100%; --l-fond: var(--creme); --l-texte: var(--encre); --l-filet: var(--filet); --l-survol: var(--creme-2); color: var(--l-texte); }
.ag-langue-bouton { display: inline-flex; align-items: center; gap: 6px; padding: 8px 6px !important; margin: 0; background: none !important; border: 0 !important; border-radius: 0; color: inherit !important; cursor: pointer; line-height: 0; box-shadow: none !important; }
.ag-langue-bouton:focus-visible, .ag-langue-liste a:focus-visible { outline: 1px solid currentColor; outline-offset: 2px; }
.ag-langue-drapeau { display: block; width: 18px !important; height: 13px !important; object-fit: cover; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0,0,0,.1); }
.ag-langue-fleche { width: 10px; height: 10px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; transition: transform .25s ease; }
.ag-langue.ouvert .ag-langue-fleche { transform: rotate(180deg); }
.ag-langue-liste { position: absolute; top: 100%; left: 50%; z-index: 60; min-width: 52px; margin: 0; padding: 4px; list-style: none; background: var(--l-fond); border: 1px solid var(--l-filet); box-shadow: 0 14px 34px rgba(30,29,27,.12);
  opacity: 0; visibility: hidden; transform: translate(-50%, 6px); transition: opacity .2s ease, transform .2s ease, visibility 0s .2s; }
.ag-langue-liste::before { content: ''; position: absolute; left: 0; right: 0; top: -10px; height: 10px; } /* passerelle de survol */
.ag-langue.ouvert .ag-langue-liste { opacity: 1; visibility: visible; transform: translate(-50%, 0); transition: opacity .2s ease, transform .2s ease; }
.ag-langue-liste li { margin: 0; padding: 0; }
.ag-langue-liste a { position: relative; display: flex; justify-content: center; padding: 10px 12px 14px; color: var(--l-texte); transition: background .2s ease; }
.ag-langue-liste a:hover, .ag-langue-liste a:focus-visible { background: var(--l-survol); }
.ag-langue-liste a.actif::after { content: ''; position: absolute; left: 50%; bottom: 6px; width: 12px; height: 1px; margin-left: -6px; background: currentColor; }
.ag-langue-liste a.actif { pointer-events: none; }
.ag-langue-liste .ag-langue-drapeau { width: 20px !important; height: 15px !important; }
body.variante-nuit .ag-langue { --l-fond: #15140f; --l-texte: #efe9df; --l-filet: rgba(239,233,223,.14); --l-survol: #24221d; }
body.variante-maison:not(.entete-plein) .ag-langue-bouton { color: #fff !important; }
@media (max-width: 767px) { .ag-langue-bouton .ag-langue-drapeau { width: 16px !important; height: 12px !important; } .ag-langue-liste { left: auto; right: -6px; transform: translateY(6px); } .ag-langue.ouvert .ag-langue-liste { transform: none; } }
@media (prefers-reduced-motion: reduce) { .ag-langue-liste, .ag-langue-fleche { transition: none; } }

/* =====================================================================
   14. Recherche : panneau sous l'en-tête, suggestions et résultats en direct
   ===================================================================== */

body .recherche-barre { padding: 26px var(--marge) 30px; background: var(--creme); }
body .recherche-barre .e-search-form { position: relative; max-width: 980px; margin: 0 auto; }
body .recherche-barre .e-search-input {
  font-size: clamp(22px, 2.6vw, 34px) !important; font-weight: 300 !important; letter-spacing: -0.01em;
  padding: 10px 56px 14px 0 !important; background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--encre) !important;
}
body .recherche-barre .e-search-input::placeholder { color: #a9a39a; }
body .recherche-barre .e-search-submit {
  position: absolute; right: 0; bottom: 10px; width: 44px; height: 44px; padding: 0 !important;
  background: transparent !important; border: 0 !important; color: var(--encre) !important; font-size: 0 !important;
}
body .recherche-barre .e-search-submit::before {
  content: ""; display: block; width: 26px; height: 26px; margin: auto; background: var(--encre);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3'%3E%3Cpath d='M3 12h18M14 5l7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3'%3E%3Cpath d='M3 12h18M14 5l7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat;
}
body .recherche-barre .e-search-submit span { display: none; }
body .recherche-barre .e-search-results-container { display: none !important; }
.recherche-suggestions { display: none; max-width: 980px; margin: 0 auto; padding: 0 var(--marge) 26px; width: 100%; background: var(--creme); }
.recherche-ouverte .recherche-suggestions { display: block; }
body .recherche-suggestions .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
body .recherche-suggestions .elementor-icon-list-item:first-child { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--gris); margin-right: 8px; }
body .recherche-suggestions .elementor-icon-list-item a { border: 1px solid var(--filet); padding: 7px 14px; font-size: 12px; transition: border-color .2s, background .2s; }
body .recherche-suggestions .elementor-icon-list-item a:hover { border-color: var(--encre); }
body .recherche-suggestions .elementor-icon-list-text { padding: 0 !important; color: var(--encre); }
/* résultats en direct (assets/app.js) */
.ag-resultats { max-width: 980px; margin: 16px auto 0; }
.ag-resultats[hidden] { display: none; }
.ag-resultats ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px 22px; }
.ag-resultats li a { display: grid; grid-template-columns: 54px 1fr; gap: 14px; align-items: center; padding: 8px; transition: background .2s; }
.ag-resultats li a:hover { background: var(--creme-2); }
.ag-resultats img { width: 54px; aspect-ratio: 3 / 4; object-fit: cover; background: #e4e1dc; }
.ag-resultats b { display: block; font-weight: 400; font-size: 14px; line-height: 1.35; }
.ag-resultats small { color: var(--gris); font-size: 12px; }
.ag-resultats .tout { display: inline-block; margin-top: 14px; font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; border-bottom: 1px solid currentColor; padding-bottom: 3px; }
.ag-resultats .vide { color: var(--gris); font-size: 14px; }
@media (max-width: 860px) { .ag-resultats ul { grid-template-columns: 1fr; } }

/* fil d'Ariane des pages éditoriales */
.fil .sep { margin: 0 8px; }

/* =====================================================================
   15. Variante d'accueil « Nuit » (luxe sombre)
   ===================================================================== */

body.variante-nuit { --nuit: #15140f; --sable: #b9ab95; --filet-nuit: rgba(239,233,223,.14); background: var(--nuit); color: #efe9df; }
.variante-nuit .e-con.entete, .variante-nuit .recherche-barre, .variante-nuit .recherche-suggestions { background: var(--nuit); border-color: var(--filet-nuit); color: #efe9df; }
.variante-nuit .entete .logo img { filter: invert(1) sepia(.15) brightness(1.6); }
body.variante-nuit .nav-principale .elementor-nav-menu--main .elementor-item,
body.variante-nuit .outil .elementor-button, body.variante-nuit .panier-menu .elementor-menu-cart__toggle .elementor-button,
body.variante-nuit .panier-menu .elementor-button-icon svg, body.variante-nuit .nav-principale .elementor-menu-toggle { color: #efe9df; fill: #efe9df; }
body.variante-nuit .nav-principale .elementor-menu-toggle svg { fill: #efe9df; }
body.variante-nuit .nav-principale .elementor-nav-menu--dropdown { background: var(--nuit); }
body.variante-nuit .nav-principale .elementor-nav-menu--dropdown .elementor-item { color: #efe9df; border-color: var(--filet-nuit); }
body.variante-nuit .recherche-barre .e-search-input { color: #efe9df !important; border-bottom-color: #efe9df !important; }
body.variante-nuit .recherche-barre .e-search-submit::before { background: #efe9df; }
body.variante-nuit .e-con.pied { background: #0e0d0a; }
.variante-nuit .sable, .variante-nuit .sable p { color: var(--sable); }
.n-titre .elementor-heading-title, .n-titre2 .elementor-heading-title { font-family: var(--police-titre); font-weight: 400; color: #efe9df; }
.n-titre em, .n-titre2 em { color: var(--sable); }
.e-con.n-hero { display: grid; grid-template-columns: 1.1fr .9fr; min-height: calc(100vh - var(--entete)); align-items: end; padding-left: var(--marge); }
.e-con.n-hero-texte { padding-bottom: 9vh; position: relative; z-index: 2; }
.n-titre .elementor-heading-title { font-size: clamp(70px, 10.5vw, 190px); line-height: .86; letter-spacing: -0.025em; margin: 26px -14vw 44px 0; }
.e-con.n-hero-visuel { position: relative; height: calc(100vh - var(--entete)); }
.n-hero-visuel .remplir img { filter: contrast(1.03) brightness(.9); object-position: 50% 20%; } /* vrai produit : couleurs fidèles */
.e-con.n-hero-visuel::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--nuit), transparent 35%); z-index: 1; }
body .n-bouton .elementor-button { background: transparent; color: #efe9df; border: 1px solid #efe9df; padding: 16px 28px; }
body .n-bouton .elementor-button:hover { background: #efe9df; color: var(--nuit); border-color: #efe9df; }
.e-con.n-chiffres { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--filet-nuit); border-bottom: 1px solid var(--filet-nuit); }
.e-con.n-chiffre { padding: 54px var(--marge); }
.e-con.n-chiffre + .e-con.n-chiffre { border-left: 1px solid var(--filet-nuit); }
.n-nombre .elementor-heading-title { font: 400 clamp(44px, 4.6vw, 72px)/1 var(--police-titre); margin-bottom: 12px; color: #efe9df; }
.e-con.n-univers { display: flex; flex-direction: row; height: 92vh; gap: 2px; margin-top: 2px; }
.e-con.n-porte { position: relative; flex: 1; overflow: hidden; transition: flex .9s cubic-bezier(.2,.7,.2,1); display: block; }
.e-con.n-porte:hover { flex: 1.8; }
.n-porte .remplir img { filter: brightness(.62) grayscale(.2); transition: filter .9s, transform 1.4s; }
.n-porte:hover .remplir img { filter: brightness(.82) grayscale(0); transform: scale(1.03); }
.e-con.n-porte-texte { position: absolute; left: 36px; bottom: 40px; z-index: 1; width: auto; }
.n-porte-texte .elementor-heading-title { font: 400 clamp(44px, 4.6vw, 84px)/1 var(--police-titre); color: #efe9df; }
.e-con.n-collection { padding: clamp(110px, 12vw, 170px) 0; }
.e-con.n-collection-tete { flex-direction: row; justify-content: space-between; align-items: flex-end; padding: 0 var(--marge); margin-bottom: 50px; }
.n-titre2 .elementor-heading-title { font-size: clamp(44px, 5vw, 84px); line-height: .95; }
body .n-lien .elementor-button, body .m-lien .elementor-button, body .g-lien .elementor-button {
  background: none; border: 0; border-bottom: 1px solid currentColor; padding: 0 0 5px; color: inherit; font-size: 10.5px; letter-spacing: .28em; text-transform: uppercase; font-weight: 500;
}
.n-lien .elementor-button { color: #efe9df; }
/* rail horizontal de produits */
.n-rail ul.products { display: flex !important; gap: 22px !important; overflow-x: auto; padding: 0 var(--marge) 20px !important; scroll-snap-type: x mandatory; scrollbar-width: none; }
.n-rail ul.products::-webkit-scrollbar { display: none; }
body .n-rail .woocommerce ul.products li.product { flex: 0 0 clamp(260px, 24vw, 380px); scroll-snap-align: start; text-align: left; }
body .n-rail .woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
body .n-rail .woocommerce ul.products li.product .woocommerce-loop-product__title { color: #efe9df; padding: 0; }
body .n-rail .woocommerce ul.products li.product .price { color: var(--sable); justify-content: flex-start; }
body .n-rail .woocommerce ul.products li.product .produit-visuel { background: #24221d; }
body .n-rail .woocommerce ul.products li.product .tailles { color: var(--sable); }
.n-rail .etiquette { background: #efe9df; color: var(--nuit); }
.e-con.n-manifeste { position: relative; height: 100vh; display: grid; place-items: center; text-align: center; overflow: hidden; }
.n-manifeste .remplir img { filter: brightness(.38) grayscale(.4); }
.e-con.n-manifeste-texte { position: relative; z-index: 1; max-width: 980px; padding: 0 var(--marge); align-items: center; }
.n-manifeste-texte .n-phrase .elementor-heading-title { font: 400 clamp(32px, 4vw, 64px)/1.15 var(--police-titre); color: #efe9df; margin: 24px 0 40px; }

/* =====================================================================
   16. Variante d'accueil « Maison » (couture classique)
   ===================================================================== */

body.variante-maison { --papier: #faf8f4; background: var(--papier); }
.variante-maison .elementor-location-header { position: fixed; left: 0; right: 0; top: 0; }
body.admin-bar.variante-maison .elementor-location-header { top: 32px; }
.variante-maison:not(.entete-plein) .e-con.entete { background: transparent; border-color: transparent; transition: background .4s; }
.variante-maison:not(.entete-plein) .entete .logo img { filter: invert(1) brightness(2); }
body.variante-maison:not(.entete-plein) .nav-principale .elementor-nav-menu--main .elementor-item,
body.variante-maison:not(.entete-plein) .outil .elementor-button,
body.variante-maison:not(.entete-plein) .panier-menu .elementor-menu-cart__toggle .elementor-button { color: #fff; fill: #fff; }
body.variante-maison:not(.entete-plein) .panier-menu .elementor-button-icon svg, body.variante-maison:not(.entete-plein) .nav-principale .elementor-menu-toggle svg { fill: #fff; }
.variante-maison:not(.entete-plein) .langue { color: #fff; }
.m-titre .elementor-heading-title, .m-citation .elementor-heading-title, .variante-maison h2.elementor-heading-title, .m-atelier-texte .elementor-heading-title { font-family: var(--police-titre); font-weight: 400; }
.e-con.m-hero { position: relative; height: 100vh; min-height: 640px; overflow: hidden; color: #fff; }
.m-hero .remplir img { transform: scale(1.06); animation: respire 18s ease-out forwards; }
.e-con.m-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.3), rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,.45)); }
.e-con.m-hero-legende { position: absolute; z-index: 1; left: var(--marge); right: var(--marge); bottom: 56px; width: auto; flex-direction: row; justify-content: space-between; align-items: flex-end; gap: 30px; }
.m-titre .elementor-heading-title { font-size: clamp(46px, 6vw, 104px); line-height: .98; letter-spacing: -0.01em; }
.m-titre em { display: block; }
.e-con.m-hero-cta { width: auto; gap: 18px; }
.m-hero-cta .m-lien .elementor-button { color: #fff; }
.e-con.m-manifeste { text-align: center; align-items: center; padding: clamp(120px, 16vw, 220px) var(--marge); max-width: 1000px; margin: 0 auto; }
.m-citation .elementor-heading-title { font-size: clamp(26px, 3vw, 44px); line-height: 1.3; margin: 28px 0 36px; }
.e-con.m-duo { display: grid; grid-template-columns: 1fr 1fr; }
.e-con.m-porte { position: relative; height: min(100vh, 980px); overflow: hidden; color: #fff; display: block; }
.m-porte .remplir img { transition: transform 1.4s cubic-bezier(.2,.7,.2,1); }
.m-porte:hover .remplir img { transform: scale(1.03); }
.e-con.m-porte::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 55%, rgba(0,0,0,.4)); }
.e-con.m-porte-texte { position: absolute; z-index: 1; left: 44px; bottom: 44px; width: auto; gap: 14px; }
.m-porte-texte .elementor-heading-title { font-size: clamp(40px, 4.4vw, 72px); line-height: 1; color: #fff; }
.m-souligne p { border-bottom: 1px solid currentColor; padding-bottom: 5px; display: inline-block; }
.e-con.m-enfant { display: grid; grid-template-columns: 1.6fr 1fr; align-items: center; background: var(--creme); }
.e-con.m-enfant-visuel { position: relative; height: 720px; }
.e-con.m-enfant-texte { padding: 0 clamp(30px, 6vw, 110px); gap: 0; }
.m-enfant-texte .elementor-heading-title { font-size: clamp(40px, 4vw, 64px); line-height: 1.05; margin: 20px 0 22px; }
.m-gris p { color: var(--gris); max-width: 30ch; margin-bottom: 32px; }
.e-con.m-selection { padding: clamp(110px, 12vw, 180px) var(--marge); }
.e-con.m-selection-tete { flex-direction: row; justify-content: space-between; align-items: baseline; margin-bottom: 60px; }
.m-selection-tete .elementor-heading-title { font-size: clamp(34px, 3.2vw, 52px); }
.m-grille ul.products { --colonnes: 4; gap: clamp(14px, 2vw, 32px) !important; }
body .m-grille .woocommerce ul.products li.product { text-align: left; }
body .m-grille .woocommerce ul.products li.product .woocommerce-loop-product__title, body .m-grille .woocommerce ul.products li.product .tailles { padding: 0; }
body .m-grille .woocommerce ul.products li.product .price { justify-content: flex-start; color: var(--gris); }
.e-con.m-atelier { display: grid; grid-template-columns: 1fr 1fr; min-height: 90vh; }
.e-con.m-atelier-visuel { position: relative; }
.e-con.m-atelier-texte { justify-content: center; padding: clamp(40px, 7vw, 130px); background: var(--encre); color: var(--creme); }
.m-atelier-texte .elementor-heading-title { font-size: clamp(28px, 2.8vw, 44px); line-height: 1.3; margin: 30px 0 40px; color: var(--creme); }
.m-atelier-texte .m-lien .elementor-button { color: var(--creme); }

/* =====================================================================
   17. Variante d'accueil « Galerie » (magazine)
   ===================================================================== */

.variante-galerie .e-con.entete { border-bottom-color: var(--encre); }
.g-num p { font-size: 11px; color: var(--gris); letter-spacing: .1em; }
.e-con.g-une { position: relative; display: grid; grid-template-columns: repeat(12, 1fr); gap: 18px; padding: 40px var(--marge) 0; }
.e-con.g-a { grid-column: 1 / 6; grid-row: 1 / 3; aspect-ratio: 3 / 4; position: relative; overflow: hidden; }
.e-con.g-b { grid-column: 7 / 11; grid-row: 1; aspect-ratio: 4 / 5; margin-top: 120px; position: relative; overflow: hidden; }
.e-con.g-c { grid-column: 11 / 13; grid-row: 1; aspect-ratio: 2 / 3; margin-top: 320px; position: relative; overflow: hidden; }
.e-con.g-legende { grid-column: 7 / 12; grid-row: 2; align-self: end; padding-bottom: 30px; gap: 14px; }
.g-texte p { max-width: 34ch; color: var(--gris); }
.g-titre { position: absolute !important; z-index: 2; left: calc(var(--marge) + 28%); top: 46%; width: auto !important; pointer-events: none; }
.g-titre .elementor-heading-title { font: italic 400 clamp(70px, 11vw, 210px)/.85 var(--police-titre); letter-spacing: -0.03em; mix-blend-mode: multiply; }
.g-titre span { display: block; padding-left: 1.2em; }
.g-mots { margin-top: 110px; border-top: 1px solid var(--encre); border-bottom-color: var(--encre); padding: 22px 0; font: italic 400 clamp(30px, 3.4vw, 54px)/1 var(--police-titre); }
.g-mots li { gap: 60px; padding-right: 60px; }
.g-mots li::after { content: "✦"; font-size: .35em; font-style: normal; color: var(--encre); }
.e-con.g-sommaire { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; padding: 110px var(--marge); align-items: start; }
.e-con.g-article { display: block; }
.e-con.g-article .g-vignette { position: relative; aspect-ratio: 3 / 4; overflow: hidden; margin-bottom: 18px; }
.e-con.g-article:nth-child(2) { margin-top: 90px; }
.e-con.g-article:nth-child(3) { margin-top: 180px; }
.g-article .remplir img { transition: transform 1.2s; }
.g-article:hover .remplir img { transform: scale(1.04); }
.g-article .elementor-heading-title { font: 400 clamp(34px, 3.2vw, 54px)/1 var(--police-titre); margin: 6px 0 8px; }
.e-con.g-recit { display: grid; grid-template-columns: repeat(12, 1fr); gap: 18px; padding: 0 var(--marge) 120px; align-items: start; }
.e-con.g-recit-visuel { grid-column: 1 / 8; aspect-ratio: 4 / 5; position: relative; overflow: hidden; }
.e-con.g-recit-texte { grid-column: 9 / 13; position: sticky; top: calc(var(--entete) + 30px); }
.g-recit-texte .elementor-heading-title { font: 400 clamp(40px, 4vw, 68px)/1 var(--police-titre); margin: 16px 0 26px; }
.g-recit-texte p { color: var(--gris); margin-bottom: 16px; }
.g-recit-texte blockquote { margin: 34px 0; font: italic 400 22px/1.4 var(--police-titre); border-left: 1px solid var(--encre); padding-left: 20px; color: var(--encre); }
.e-con.g-liste { padding: 0 var(--marge) 120px; }
.e-con.g-liste-tete { flex-direction: row; justify-content: space-between; align-items: baseline; border-bottom: 1px solid var(--encre); padding-bottom: 18px; }
.g-liste-tete .elementor-heading-title { font: 400 clamp(34px, 3.4vw, 58px)/1 var(--police-titre); }
/* sélection présentée en lignes de sommaire */
.g-lignes ul.products { display: block !important; counter-reset: ligne; }
body .g-lignes .woocommerce ul.products li.product { counter-increment: ligne; border-bottom: 1px solid var(--filet); text-align: left; margin: 0; }
body .g-lignes .woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
  display: grid; grid-template-columns: 60px 90px 1fr auto auto; gap: 28px; align-items: center; padding: 18px 0; transition: padding .4s;
}
body .g-lignes .woocommerce ul.products li.product a.woocommerce-LoopProduct-link::before { content: "0" counter(ligne); font-size: 11px; color: var(--gris); letter-spacing: .1em; }
body .g-lignes .woocommerce ul.products li.product:hover a.woocommerce-LoopProduct-link { padding-left: 14px; }
body .g-lignes .woocommerce ul.products li.product .produit-visuel { margin: 0; width: 90px; }
body .g-lignes .woocommerce ul.products li.product .etiquette { display: none; }
body .g-lignes .woocommerce ul.products li.product .woocommerce-loop-product__title { font: 400 clamp(20px, 1.8vw, 28px)/1.2 var(--police-titre); padding: 0; }
body .g-lignes .woocommerce ul.products li.product .tailles { font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; margin: 0; }
body .g-lignes .woocommerce ul.products li.product .price { margin: 0; font-size: 14px; }

@media (max-width: 860px) {
  .e-con.n-hero { grid-template-columns: 1fr; padding: 0; }
  .e-con.n-hero-visuel { height: 70vh; order: -1; }
  .e-con.n-hero-texte { padding: 0 var(--marge) 60px; }
  .e-con.n-univers { flex-direction: column; height: auto; }
  .e-con.n-porte { height: 60vh; flex: none; }
  .e-con.m-hero-legende { flex-direction: column; align-items: flex-start; }
  .e-con.m-duo, .e-con.m-enfant, .e-con.m-atelier { grid-template-columns: 1fr; }
  .e-con.m-porte { height: 80vh; }
  .e-con.m-enfant-visuel, .e-con.m-atelier-visuel { height: 420px; }
  .e-con.m-enfant-texte { padding: 60px var(--marge); }
  .m-grille ul.products { --colonnes: 2; }
  .e-con.g-une { grid-template-columns: repeat(6, 1fr); }
  .e-con.g-a { grid-column: 1 / 5; }
  .e-con.g-b { grid-column: 3 / 7; grid-row: 2; margin-top: -40px; }
  .e-con.g-c { display: none; }
  .e-con.g-legende { grid-column: 1 / 7; grid-row: 3; }
  .g-titre { top: 30%; left: var(--marge); }
  .e-con.g-sommaire { grid-template-columns: 1fr; }
  .e-con.g-article:nth-child(n) { margin-top: 0; }
  .e-con.g-recit { grid-template-columns: 1fr; }
  .e-con.g-recit-visuel, .e-con.g-recit-texte { grid-column: 1 / -1; position: static; }
  body .g-lignes .woocommerce ul.products li.product a.woocommerce-LoopProduct-link { grid-template-columns: 70px 1fr auto; gap: 16px; }
  body .g-lignes .woocommerce ul.products li.product a.woocommerce-LoopProduct-link::before, body .g-lignes .woocommerce ul.products li.product .tailles { display: none; }
  body .g-lignes .woocommerce ul.products li.product .produit-visuel { width: 70px; }
}
@media (max-width: 1024px) { body.admin-bar.variante-maison .elementor-location-header { top: 0; } }
body .langue .elementor-shortcode { display: flex; align-items: center; }

/* Page de résultats de recherche */
.search .cat-titre .elementor-heading-title { font-family: var(--police-titre); font-style: italic; font-weight: 400; font-size: clamp(40px, 5vw, 72px); }
.search .cat-titre .recherche-label { display: block; font-family: var(--police); font-style: normal; font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--gris); margin-bottom: 18px; }
.recherche-vide .e-con.cat-corps { grid-template-columns: 1fr; }
.recherche-vide .e-con.filtres, .recherche-vide .cat-grille .woocommerce-info, .recherche-vide .cat-grille .e-products-nothing-found, .recherche-vide .cat-grille .elementor-products-nothing-found { display: none; }
.recherche-vide .cat-corps { border-top: 0; }
body .n-rail .woocommerce ul.products { padding-left: var(--marge) !important; padding-right: var(--marge) !important; }

/* =====================================================================
   18. Passe responsive : marges, héros mobiles, tiroir de filtres
   ===================================================================== */

/* Rails et grilles : la première carte respecte la marge de page */
.n-rail ul.products { scroll-padding-inline: var(--marge); }
.n-rail ul.products { cursor: grab; }
.n-rail ul.products.glisse { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; }
.n-rail ul.products.glisse a { pointer-events: none; }
.ag-rail-nav { display: flex; align-items: center; gap: 10px; padding: 26px var(--marge) 0; }
.ag-rail-nav[hidden] { display: none; }
.ag-rail-barre { flex: 1; height: 1px; background: var(--filet-nuit, var(--filet)); overflow: hidden; margin-right: 24px; }
.ag-rail-barre span { display: block; height: 100%; background: #efe9df; transition: transform .35s ease-out, width .35s; }
.ag-rail-nav button { display: grid; place-items: center; width: 46px; height: 46px; padding: 0; border: 1px solid var(--filet-nuit, var(--filet)); border-radius: 50%; background: none; color: #efe9df; cursor: pointer; transition: background .3s, color .3s, border-color .3s, opacity .3s; }
.ag-rail-nav button:hover:not(:disabled) { background: #efe9df; color: var(--nuit, #15140f); border-color: #efe9df; }
.ag-rail-nav button:disabled { opacity: .3; cursor: default; }
.ag-rail-nav button:focus-visible { outline: 1px solid #efe9df; outline-offset: 3px; }
.ag-rail-nav svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.3; }
@media (max-width: 767px) { .ag-rail-nav { padding-top: 18px; } .ag-rail-nav button { width: 40px; height: 40px; } .ag-rail-barre { margin-right: 12px; } }
.e-con.produits-similaires { padding-left: var(--marge); padding-right: var(--marge); }
/* Galerie : chaque produit sur sa ligne */
body .g-lignes .woocommerce ul.products li.product { display: block; width: 100% !important; float: none; }

/* Tiroir de filtres (bouton ajouté par app.js) : masqué sur grand écran */
.ag-filtrer, .ag-filtres-tete, .ag-filtres-voile { display: none; }

@media (max-width: 1024px) {
  /* En-tête tablette : logo centré, outils serrés */
  .e-con.entete-in { gap: 12px; }
}

@media (max-width: 860px) {
  /* Galerie : le visuel garde son cadre, seul le texte redevient statique */
  .e-con.g-recit-visuel { position: relative; }
  .e-con.g-recit { gap: 28px; padding-bottom: 80px; }

  /* Catégories : filtres dans un tiroir latéral */
  .ag-filtrer {
    display: inline-flex; align-items: center; gap: 10px; justify-self: start;
    padding: 12px 18px; border: 1px solid var(--encre); background: none; color: var(--encre);
    font: 500 11px/1 var(--police); letter-spacing: .16em; text-transform: uppercase; cursor: pointer;
  }
  .ag-filtrer svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.4; }
  .ag-filtrer b { font-weight: 500; display: inline-grid; place-items: center; min-width: 18px; height: 18px; border-radius: 9px; background: var(--encre); color: var(--creme); font-size: 10px; letter-spacing: 0; }
  .e-con.cat-corps { gap: 22px; padding-top: 22px; }
  .e-con.filtres {
    position: fixed !important; z-index: 10001; inset: 0 auto 0 0; width: min(88vw, 400px); max-width: none;
    background: var(--creme); overflow-y: auto; overscroll-behavior: contain; padding: 0 22px 30px;
    transform: translateX(-102%); transition: transform .45s cubic-bezier(.2,.7,.2,1); box-shadow: 20px 0 60px rgba(30,29,27,.18);
    display: block !important;
  }
  .filtres-ouverts .e-con.filtres { transform: none; }
  .ag-filtres-tete {
    display: flex; justify-content: space-between; align-items: center; position: sticky; top: 0; z-index: 1;
    margin: 0 -22px 6px; padding: 18px 22px; background: var(--creme); border-bottom: 1px solid var(--filet);
    font: 500 11px/1 var(--police); letter-spacing: .16em; text-transform: uppercase;
  }
  .ag-filtres-tete button { background: none; border: 0; padding: 6px; margin: -6px; color: var(--encre); cursor: pointer; line-height: 0; }
  .ag-filtres-tete svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.3; }
  .ag-filtres-voile { display: block; position: fixed; inset: 0; z-index: 10000; background: rgba(30,29,27,.4); opacity: 0; visibility: hidden; transition: opacity .35s, visibility 0s .35s; }
  .filtres-ouverts .ag-filtres-voile { opacity: 1; visibility: visible; transition: opacity .35s; }
  body.filtres-bloque { overflow: hidden; }
}

@media (max-width: 860px) {
  /* Nuit : image plein écran, texte posé en bas sur un dégradé */
  .e-con.n-hero { position: relative; display: block; min-height: calc(100svh - var(--entete)); padding: 0; overflow: hidden; }
  .e-con.n-hero-visuel { position: absolute; inset: 0; height: auto; }
  .e-con.n-hero-visuel::after { background: linear-gradient(0deg, var(--nuit) 6%, rgba(21,20,15,.55) 42%, rgba(21,20,15,0) 70%); }
  .e-con.n-hero-texte { position: absolute; left: 0; right: 0; bottom: 0; padding: 0 var(--marge) 44px; }
  .n-titre .elementor-heading-title { font-size: clamp(54px, 16vw, 76px); line-height: .92; margin: 16px 0 28px; }
  body .n-bouton .elementor-button { padding: 15px 22px; }
  .e-con.n-chiffres { grid-template-columns: repeat(3, 1fr); }
  .e-con.n-chiffre { padding: 30px 10px; text-align: center; align-items: center; }
  .e-con.n-chiffre + .e-con.n-chiffre { border-top: 0; border-left: 1px solid var(--filet-nuit); }
  .n-nombre .elementor-heading-title { font-size: 36px; margin-bottom: 8px; }
  .n-chiffre .surtitre p, .n-chiffre .surtitre { font-size: 9px; letter-spacing: .14em; line-height: 1.5; }
  /* Galerie : le grand titre passe au-dessus des images au lieu de les recouvrir */
  .e-con.g-une { padding-top: 26px; row-gap: 14px; }
  .g-titre { position: static !important; grid-column: 1 / -1; grid-row: 1; pointer-events: auto; }
  .g-titre .elementor-heading-title { font-size: clamp(56px, 17vw, 80px); mix-blend-mode: normal; }
  .g-titre span { padding-left: .8em; }
  .e-con.g-a { grid-column: 1 / 5; grid-row: 2; }
  .e-con.g-b { grid-column: 3 / 7; grid-row: 3; margin-top: -90px; }
  .e-con.g-legende { grid-row: 4; padding: 10px 0 0; }
}

@media (max-width: 767px) {
  :root { --marge: 18px; }

  /* En-tête : burger | logo | outils, sans l'icône compte (accessible dans le menu et le pied) */
  .e-con.entete-in { gap: 8px; padding-left: 14px !important; padding-right: 14px !important; }
  .e-con.outils { gap: 12px !important; }
  body .entete .logo img { height: 18px; }
  .lien-compte { display: none !important; }

  /* Textes « fantômes » géants : décoratifs, coupés sur petit écran */
  .fantome { display: none; }
  .pied-defile { font-size: 52px; padding: 30px 0 26px; }

  /* Sections : respirations resserrées */
  .e-con.n-collection, .e-con.m-selection { padding-top: 80px; padding-bottom: 80px; }
  .e-con.m-manifeste { padding: 90px var(--marge); }

  .e-con.n-porte { height: 56vh; }
  .e-con.n-porte-texte { left: var(--marge); bottom: 26px; }
  .e-con.n-collection-tete { flex-direction: column; align-items: flex-start; gap: 18px; margin-bottom: 30px; }
  body .n-rail .woocommerce ul.products li.product { flex-basis: 74vw; }
  .n-rail ul.products { gap: 14px !important; }
  .e-con.n-manifeste { height: auto; min-height: 80svh; padding: 90px 0; }

  /* Maison : titre du héros proportionné */
  .e-con.m-hero { height: 100svh; min-height: 560px; }
  .e-con.m-hero-legende { bottom: 40px; gap: 22px; }
  .m-titre .elementor-heading-title { font-size: clamp(44px, 13vw, 60px); line-height: 1.02; }
  .e-con.m-porte { height: 72svh; }
  .e-con.m-porte-texte { left: var(--marge); bottom: 30px; }
  .e-con.m-selection-tete { margin-bottom: 30px; }

  .g-mots { margin-top: 60px; }
  .e-con.g-sommaire { padding: 70px var(--marge); gap: 50px; }
  .e-con.g-liste { padding-bottom: 80px; }
  body .g-lignes .woocommerce ul.products li.product a.woocommerce-LoopProduct-link { grid-template-columns: 64px 1fr auto; gap: 14px; padding: 14px 0; }
  body .g-lignes .woocommerce ul.products li.product .produit-visuel { width: 64px; }
  body .g-lignes .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 19px; }

  /* Fiche produit et listes */
  .titre-section h2, .titre-section .elementor-heading-title { font-size: 30px; }
}

@media (max-width: 380px) {
  .e-con.outils { gap: 9px !important; }
  body .entete .logo img { height: 16px; }
  .n-chiffre .surtitre p, .n-chiffre .surtitre { font-size: 8px; letter-spacing: .1em; }
}
/* très petits téléphones (320-350 px) : logo et outils ne se touchent plus */
@media (max-width: 350px) {
  body .entete .logo img { height: 14px; }
  .e-con.outils { gap: 6px !important; }
  .ag-langue-fleche { display: none; }
  .ag-langue-bouton { padding: 8px 2px !important; }
}
/* fiche produit : respiration entre la description courte et le choix de la taille */
body .fiche-panier table.variations { margin-top: 18px; }

/* Suggestions de recherche lisibles sur fond sombre (Nuit) */
body.variante-nuit .recherche-suggestions .elementor-icon-list-text { color: #efe9df !important; }
body.variante-nuit .recherche-suggestions .elementor-icon-list-item:first-child .elementor-icon-list-text { color: var(--sable) !important; }
body.variante-nuit .recherche-suggestions .elementor-icon-list-item a { border-color: var(--filet-nuit); }
body.variante-nuit .recherche-suggestions .elementor-icon-list-item a:hover { border-color: #efe9df; background: #efe9df; }
body.variante-nuit .recherche-suggestions .elementor-icon-list-item a:hover .elementor-icon-list-text { color: var(--nuit) !important; }

/* Lettre : mention de confidentialité sous le champ */
body .lettre .elementor-field-type-html { order: 3; flex-basis: 100%; padding: 0 !important; }
body .lettre .lettre-mention { margin: 12px 0 0; font-size: 11.5px; line-height: 1.6; color: var(--olive-texte); opacity: .8; }
body .lettre .lettre-mention a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* =====================================================================
   19. Paiement, confirmation de commande, compte client
   ===================================================================== */

/* --- Paiement : un seul cadre net, titre avec cadenas, carte Stripe intégrée --- */
body .commande-widget #payment ul.payment_methods { margin: 0 !important; }
body .commande-widget #payment ul.payment_methods li.wc_payment_method { border: 1px solid var(--filet) !important; background: #fff !important; padding: 26px 26px 22px !important; margin: 0 !important; }
body .commande-widget #payment li.wc_payment_method > label {
  display: flex !important; align-items: center; gap: 10px; margin: 0 0 18px !important; padding: 0 0 16px !important; border-bottom: 1px solid var(--filet);
  font-size: 11px !important; font-weight: 500 !important; letter-spacing: .14em; text-transform: uppercase; color: var(--encre) !important;
}
body .commande-widget #payment li.wc_payment_method > label::before {
  content: ""; width: 16px; height: 16px; flex: none; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Crect x='5' y='10.5' width='14' height='10' rx='1'/%3E%3Cpath d='M8 10.5V7.5a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Crect x='5' y='10.5' width='14' height='10' rx='1'/%3E%3Cpath d='M8 10.5V7.5a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") center / contain no-repeat;
}
body .commande-widget #payment div.payment_box { background: transparent !important; padding: 0 !important; margin: 0 !important; color: var(--encre) !important; }
body .commande-widget #payment .wc-stripe-upe-element, body .commande-widget #payment .wc-upe-form { border: 0 !important; padding: 0 !important; margin: 0 !important; box-shadow: none !important; background: transparent !important; }
body .commande-widget #payment .wc-stripe-payment-method-instruction { background: var(--creme); border-left: 2px solid var(--encre); padding: 12px 14px; margin: 0 0 20px; font-size: 12.5px; line-height: 1.6; color: var(--gris); }
body .commande-widget #payment .wc-stripe-payment-method-instruction strong { color: var(--encre); font-weight: 500; }
body .commande-widget #payment .wc-stripe-copy-test-number { background: none !important; border: 0 !important; padding: 0 !important; color: var(--encre) !important; font: inherit !important; letter-spacing: .04em !important; text-transform: none !important; }
body .commande-widget #payment .woocommerce-SavedPaymentMethods-saveNew { display: flex !important; align-items: center; gap: 10px; margin: 18px 0 0 !important; }
body .commande-widget #payment .woocommerce-SavedPaymentMethods-saveNew label { font-size: 12.5px !important; color: var(--gris) !important; margin: 0 !important; }
body .commande-widget #payment .place-order { padding: 0 !important; margin: 18px 0 0 !important; }
body .commande-widget #payment #place_order { min-height: 56px; font-size: 11.5px !important; letter-spacing: .2em !important; }
.ag-securite { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 16px; font-size: 12px; line-height: 1.55; color: var(--gris); }
.ag-securite svg { width: 15px; height: 15px; flex: none; margin-top: 1px; fill: none; stroke: currentColor; stroke-width: 1.5; }
body .commande-widget .woocommerce-terms-and-conditions-wrapper { font-size: 12px; color: var(--gris); }

/* --- Confirmation de commande --- */
body .woocommerce-order { max-width: 860px; margin: 0 auto; }
body .woocommerce-order p.woocommerce-thankyou-order-received {
  font-family: var(--police) !important; font-size: 16px !important; line-height: 1.7 !important; font-weight: 400 !important; letter-spacing: 0 !important;
  color: var(--gris) !important; text-align: center; max-width: 54ch; margin: -18px auto 40px !important;
}
body .woocommerce-order p.woocommerce-thankyou-order-received strong { color: var(--encre); font-weight: 500; }
body .woocommerce-order ul.woocommerce-order-overview {
  display: grid !important; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0; margin: 0 0 56px !important; padding: 0 !important;
  border: 1px solid var(--filet); background: #fff;
}
body .woocommerce-order ul.woocommerce-order-overview li { padding: 20px 22px !important; border: 0 !important; border-right: 1px solid var(--filet) !important; margin: 0 !important; }
body .woocommerce-order ul.woocommerce-order-overview li:last-child { border-right: 0 !important; }
body .woocommerce-order ul.woocommerce-order-overview::before, body .woocommerce-order ul.woocommerce-order-overview::after { display: none; }
body .woocommerce-order :is(.woocommerce-order-details__title, .woocommerce-column__title, h2) {
  font-family: var(--police) !important; font-size: 22px !important; font-weight: 300 !important; color: var(--encre) !important; margin: 0 0 18px !important;
}
body .woocommerce-order .woocommerce-order-details, body .woocommerce-order .woocommerce-customer-details { margin-bottom: 50px; }
body .woocommerce-order table.order_details { width: 100%; border: 0 !important; border-top: 1px solid var(--encre) !important; }
body .woocommerce-order table.order_details :is(th, td) { padding: 16px 0 !important; border: 0 !important; border-bottom: 1px solid var(--filet) !important; text-align: left; vertical-align: top; background: none !important; font-size: 14px; color: var(--encre); font-weight: 400; }
body .woocommerce-order table.order_details thead th, body .woocommerce-order table.order_details tfoot th { font-size: 11px !important; font-weight: 500 !important; letter-spacing: .12em; text-transform: uppercase; color: var(--gris) !important; }
body .woocommerce-order table.order_details :is(td:last-child, th:last-child):not(:first-child) { text-align: right; }
body .woocommerce-order table.order_details tfoot tr:last-child :is(th, td) { font-size: 16px !important; color: var(--encre) !important; border-bottom: 0 !important; }
body .woocommerce-order table.order_details .wc-item-meta { margin: 6px 0 0; padding: 0; list-style: none; font-size: 12px; color: var(--gris); }
body .woocommerce-order table.order_details .wc-item-meta :is(strong, p) { display: inline; font-weight: 400; margin: 0; }
body .woocommerce-order .woocommerce-columns--addresses { display: grid !important; grid-template-columns: 1fr 1fr; gap: 24px; }
body .woocommerce-order .woocommerce-columns--addresses::before, body .woocommerce-order .woocommerce-columns--addresses::after { display: none; }
body .woocommerce-order .woocommerce-column { width: auto !important; float: none !important; padding: 0 !important; margin: 0 !important; }
body :is(.woocommerce-order, .woocommerce-MyAccount-content) address {
  border: 1px solid var(--filet) !important; border-radius: 0 !important; background: #fff; padding: 22px 24px !important; font-style: normal; font-size: 14px; line-height: 1.75; color: var(--encre);
}
body :is(.woocommerce-order, .woocommerce-MyAccount-content) address :is(.woocommerce-customer-details--phone, .woocommerce-customer-details--email) { padding-left: 0 !important; margin: 0 !important; color: var(--gris); }
body :is(.woocommerce-order, .woocommerce-MyAccount-content) address p::before { display: none !important; }

/* --- Compte client : menu fin à gauche, contenu sans cadre --- */
body .compte-widget .e-my-account-tab .woocommerce:has(> .woocommerce-MyAccount-navigation) { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: clamp(30px, 5vw, 80px); align-items: start; }
body .compte-widget .woocommerce > .woocommerce-MyAccount-navigation { grid-column: 1; grid-row: 1; }
body .compte-widget .woocommerce > .woocommerce-MyAccount-content { grid-column: 2; grid-row: 1; }
body .compte-widget .woocommerce-MyAccount-navigation { width: auto !important; float: none !important; position: sticky; top: calc(var(--entete) + 30px); }
body .compte-widget .woocommerce-MyAccount-navigation ul { border-top: 1px solid var(--encre) !important; margin: 0 !important; padding: 0 !important; }
body .compte-widget .woocommerce-MyAccount-navigation li { margin: 0 !important; padding: 0 !important; background: none !important; border: 0 !important; border-bottom: 1px solid var(--filet) !important; }
body .compte-widget .woocommerce-MyAccount-navigation li a {
  display: flex !important; justify-content: space-between; align-items: center; padding: 15px 0 !important; background: none !important; border: 0 !important;
  font-size: 13.5px !important; font-weight: 400 !important; color: var(--gris) !important; text-decoration: none !important; transition: color .2s, padding .3s;
}
body .compte-widget .woocommerce-MyAccount-navigation li a:hover { color: var(--encre) !important; padding-left: 6px !important; }
body .compte-widget .woocommerce-MyAccount-navigation li.is-active a { color: var(--encre) !important; font-weight: 500 !important; }
body .compte-widget .woocommerce-MyAccount-navigation li.is-active a::after { content: ""; width: 18px; height: 1px; background: var(--encre); }
body .compte-widget .woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--gris) !important; font-size: 12.5px !important; }
body .compte-widget .woocommerce-MyAccount-content { width: auto !important; float: none !important; }
body .compte-widget .woocommerce-MyAccount-content-wrapper { background: none !important; border: 0 !important; padding: 0 !important; box-shadow: none !important; }
body .compte-widget .woocommerce-MyAccount-content :is(h2, h3, legend) { font-family: var(--police) !important; font-size: 22px !important; font-weight: 300 !important; color: var(--encre) !important; margin: 0 0 18px !important; }
body .compte-widget .woocommerce-MyAccount-content > .woocommerce-MyAccount-content-wrapper > p, body .compte-widget .woocommerce-MyAccount-content mark { font-size: 14px; line-height: 1.7; color: var(--gris); background: none; }
body .compte-widget .woocommerce-MyAccount-content mark { color: var(--encre); font-weight: 500; }
/* le tableau de bord remplace le texte standard de WooCommerce */
body .compte-widget .woocommerce-MyAccount-content-wrapper:has(.ag-tableau) > p { display: none; }
.ag-bonjour { font-family: var(--police-titre); font-size: clamp(32px, 3vw, 44px); line-height: 1.1; color: var(--encre); margin: 0 0 12px; }
.ag-intro { font-size: 14px; color: var(--gris); max-width: 52ch; margin: 0 0 34px; }
.ag-cartes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.ag-carte { display: flex; flex-direction: column; gap: 6px; background: #fff; border: 1px solid var(--filet); padding: 24px; font-size: 14px; line-height: 1.6; color: var(--gris); }
.ag-carte p { margin: 0; }
.ag-carte-titre { font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--encre); margin-bottom: 10px; }
.ag-carte-fort { color: var(--encre); font-size: 16px; }
body .compte-widget .ag-carte a.ag-carte-lien { margin-top: auto; padding-top: 16px; font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; text-decoration: none !important; align-self: flex-start; border-bottom: 1px solid currentColor; padding-bottom: 3px; }
.ag-statut { display: inline-block; padding: 4px 10px; font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; border: 1px solid var(--filet); color: var(--encre); }
.ag-statut-processing { background: var(--creme-2); }
.ag-statut-completed { background: var(--encre); border-color: var(--encre); color: #fff; }
.ag-aide { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: 16px; padding: 22px 24px; background: var(--creme-2); font-size: 14px; color: var(--encre); }
.ag-aide p { margin: 0; }
body .compte-widget .ag-aide a { font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; text-decoration: none !important; border-bottom: 1px solid currentColor; padding-bottom: 3px; }
/* commandes : tableau aéré, bouton discret */
body .compte-widget table.woocommerce-orders-table { border: 0 !important; border-top: 1px solid var(--encre) !important; width: 100%; background: none !important; }
body .compte-widget table.woocommerce-orders-table :is(th, td) { padding: 16px 10px 16px 0 !important; border: 0 !important; border-bottom: 1px solid var(--filet) !important; background: none !important; font-size: 14px; vertical-align: middle; }
body .compte-widget table.woocommerce-orders-table thead th { font-size: 11px !important; font-weight: 500 !important; letter-spacing: .12em; text-transform: uppercase; color: var(--gris) !important; }
body .compte-widget table.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions { text-align: right; }
body .compte-widget table.woocommerce-orders-table .button { background: transparent !important; color: var(--encre) !important; padding: 10px 16px !important; margin: 2px 0 2px 6px !important; }
body .compte-widget table.woocommerce-orders-table .button:hover { background: var(--encre) !important; color: #fff !important; }
body .compte-widget .woocommerce-MyAccount-content .woocommerce-info, body .compte-widget .woocommerce-MyAccount-content .woocommerce-message {
  display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; background: #fff !important; border: 1px solid var(--filet) !important; padding: 22px 24px !important; font-size: 14px; color: var(--encre);
}
body .compte-widget .woocommerce-MyAccount-content :is(.woocommerce-info, .woocommerce-message)::before { display: none; }
body .compte-widget .woocommerce-MyAccount-content :is(.woocommerce-info, .woocommerce-message) .button { order: 2; margin: 0 !important; }
/* vue d'une commande */
body .compte-widget .woocommerce-MyAccount-content > .woocommerce-MyAccount-content-wrapper > p:first-of-type mark { background: none; }
body .compte-widget .woocommerce-order-details table.order_details { border-top: 1px solid var(--encre) !important; }
body .compte-widget .woocommerce-order-details table.order_details :is(th, td) { padding: 14px 0 !important; border: 0 !important; border-bottom: 1px solid var(--filet) !important; background: none !important; }
body .compte-widget .woocommerce-customer-details .woocommerce-columns--addresses { display: grid !important; grid-template-columns: 1fr 1fr; gap: 20px; }
body .compte-widget .woocommerce-customer-details .woocommerce-column { width: auto !important; float: none !important; padding: 0 !important; }
/* adresses et informations */
body .compte-widget .woocommerce-Addresses { display: grid !important; grid-template-columns: 1fr 1fr; gap: 20px; }
body .compte-widget .woocommerce-Addresses::before, body .compte-widget .woocommerce-Addresses::after { display: none; }
body .compte-widget .woocommerce-Address { width: auto !important; float: none !important; background: #fff; border: 1px solid var(--filet); padding: 24px; }
body .compte-widget .woocommerce-Address address { border: 0 !important; padding: 0 !important; background: none; }
body .compte-widget .woocommerce-Address-title { display: flex !important; flex-direction: column; align-items: flex-start; gap: 8px; margin-bottom: 14px; }
body .compte-widget .woocommerce-Address-title :is(h2, h3, a) { position: static !important; float: none !important; }
body .compte-widget .woocommerce-Address-title::before, body .compte-widget .woocommerce-Address-title::after { display: none !important; }
body .compte-widget .woocommerce-Address-title h2 { font-size: 18px !important; margin: 0 !important; }
body .compte-widget .woocommerce-Address-title a { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }

/* --- Connexion, inscription, mot de passe : formulaires centrés et sobres --- */
body .compte-widget #customer_login { display: grid !important; grid-template-columns: 1fr 1fr; gap: 0; max-width: 980px; margin: 0 auto; }
body .compte-widget #customer_login::before, body .compte-widget #customer_login::after { display: none; }
body .compte-widget #customer_login :is(.u-column1, .u-column2) { width: auto !important; float: none !important; padding: 0 clamp(24px, 5vw, 64px) !important; }
body .compte-widget #customer_login .u-column1 { padding-left: 0 !important; }
body .compte-widget #customer_login .u-column2 { border-left: 1px solid var(--filet); padding-right: 0 !important; }
body .compte-widget #customer_login h2 { font-family: var(--police-titre) !important; font-size: clamp(30px, 2.6vw, 38px) !important; font-weight: 400 !important; margin: 0 0 26px !important; }
body .compte-widget :is(form.login, form.register, form.lost_reset_password, form.woocommerce-ResetPassword) {
  background: none !important; border: 0 !important; padding: 0 !important; margin: 0 !important; box-shadow: none !important;
}
body .compte-widget form .form-row { margin: 0 0 20px !important; padding: 0 !important; }
body .compte-widget form .form-row label { display: block; margin-bottom: 2px; }
body .compte-widget form :is(.woocommerce-form-login__submit, .woocommerce-form-register__submit, .woocommerce-Button) { width: 100%; min-height: 52px; margin: 6px 0 0 !important; }
body .compte-widget form.login .form-row:has(.woocommerce-form-login__submit) { display: flex; flex-direction: column-reverse; gap: 14px; }
body .compte-widget .woocommerce-form-login__rememberme { display: flex !important; align-items: center; gap: 8px; font-size: 13px !important; color: var(--gris) !important; }
body .compte-widget .woocommerce-privacy-policy-text p, body .compte-widget form.register > p:not(.form-row) { font-size: 12.5px; line-height: 1.6; color: var(--gris); }
body .compte-widget .woocommerce-LostPassword { margin: 16px 0 0 !important; text-align: center; }
body .compte-widget .password-input { display: block; position: relative; }
body .compte-widget .show-password-input { position: absolute; right: 0; top: 50%; transform: translateY(-50%); background: none !important; border: 0 !important; }
/* mot de passe perdu / nouveau mot de passe */
body .compte-widget form.lost_reset_password { max-width: 460px; margin: 0 auto !important; text-align: left; }
body .compte-widget form.lost_reset_password > p:first-child { font-size: 14px; line-height: 1.7; color: var(--gris); margin: 0 0 28px; text-align: center; }
body .compte-widget form.lost_reset_password .form-row { width: 100% !important; float: none !important; }
body .compte-widget form.lost_reset_password button[type="submit"] { width: 100%; min-height: 52px; }
body .compte-widget .woocommerce-notices-wrapper:not(:empty) { max-width: 980px; margin: 0 auto 24px; }

@media (max-width: 1024px) {
  .ag-cartes { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 860px) {
  body .compte-widget .e-my-account-tab .woocommerce:has(> .woocommerce-MyAccount-navigation) { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  body .compte-widget .woocommerce-MyAccount-navigation, body .compte-widget .woocommerce-MyAccount-content { min-width: 0; }
  body .compte-widget .woocommerce > .woocommerce-MyAccount-content { grid-column: 1; grid-row: 2; }
  body .compte-widget .woocommerce-MyAccount-navigation { position: static; }
  body .compte-widget .woocommerce-MyAccount-navigation ul { display: flex; overflow-x: auto; gap: 22px; border-top: 0 !important; border-bottom: 1px solid var(--filet) !important; scrollbar-width: none; }
  body .compte-widget .woocommerce-MyAccount-navigation li { border: 0 !important; flex: none; }
  body .compte-widget .woocommerce-MyAccount-navigation li a { padding: 12px 0 !important; white-space: nowrap; }
  body .compte-widget .woocommerce-MyAccount-navigation li.is-active a { box-shadow: inset 0 -1px 0 var(--encre); }
  body .compte-widget .woocommerce-MyAccount-navigation li.is-active a::after { display: none; }
  body .compte-widget #customer_login { grid-template-columns: 1fr; gap: 50px; }
  body .compte-widget #customer_login :is(.u-column1, .u-column2) { padding: 0 !important; border: 0 !important; }
  body .compte-widget #customer_login .u-column2 { border-top: 1px solid var(--filet) !important; padding-top: 44px !important; margin: 0 !important; }
  body .woocommerce-order .woocommerce-columns--addresses, body .compte-widget .woocommerce-Addresses, body .compte-widget .woocommerce-customer-details .woocommerce-columns--addresses { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .ag-cartes { grid-template-columns: 1fr; }
  body .woocommerce-order ul.woocommerce-order-overview { grid-template-columns: 1fr 1fr; }
  body .woocommerce-order ul.woocommerce-order-overview li { border-right: 0 !important; border-bottom: 1px solid var(--filet) !important; }
  body .commande-widget #payment ul.payment_methods li.wc_payment_method { padding: 20px 18px 16px !important; }
  body .compte-widget table.woocommerce-orders-table .button { margin: 6px 0 0 !important; }
}
body .commande-widget #payment fieldset { border: 0 !important; padding: 0 !important; margin: 0 !important; }
body .compte-widget #customer_login { width: 100%; }
@media (max-width: 860px) {
  body .compte-widget .woocommerce-MyAccount-navigation ul { display: flex !important; flex-wrap: nowrap !important; }
  body .compte-widget .woocommerce-MyAccount-navigation li { width: auto !important; }
}
body .compte-widget .woocommerce-Address-title a { margin: 0 !important; }

/* =====================================================================
   20. Gente Génération (page de la marque streetwear)
   ===================================================================== */

.e-con.gg-hero { position: relative; height: min(92vh, 920px); min-height: 560px; overflow: hidden; color: #fff; background: var(--encre); }
.gg-hero .remplir img { object-position: 50% 30%; animation: respire 18s ease-out forwards; transform: scale(1.04); }
.e-con.gg-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(20,19,17,.78) 0%, rgba(20,19,17,.35) 34%, rgba(20,19,17,0) 60%); }
.e-con.gg-hero-texte { position: absolute; z-index: 1; left: var(--marge); bottom: clamp(40px, 7vh, 72px); width: min(640px, calc(100% - 2 * var(--marge))); gap: 18px; }
.gg-hero-texte .surtitre, .gg-hero-texte .surtitre p { color: rgba(255,255,255,.82); }
.gg-titre .elementor-heading-title { font: 400 clamp(56px, 8vw, 128px)/.92 var(--police-titre); letter-spacing: -0.02em; color: #fff; }
.gg-titre em { color: #d9cdb8; }
.gg-hero-intro p { font-size: 16px; line-height: 1.6; color: rgba(255,255,255,.86); max-width: 42ch; }
body .gg-bouton .elementor-button { background: transparent; color: #fff; border: 1px solid #fff; padding: 16px 28px; }
body .gg-bouton .elementor-button:hover { background: #fff; color: var(--encre); }
.e-con.gg-manifeste { text-align: center; align-items: center; padding: clamp(100px, 13vw, 190px) var(--marge); max-width: 1000px; margin: 0 auto; }
.gg-citation .elementor-heading-title { font: 400 clamp(26px, 3vw, 42px)/1.32 var(--police-titre); margin-top: 26px; color: var(--encre); }
.e-con.gg-lignes { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(16px, 2vw, 32px); padding: 0 var(--marge) clamp(100px, 12vw, 170px); }
.e-con.gg-ligne { gap: 0; }
.e-con.gg-ligne-visuel { position: relative; aspect-ratio: 4 / 5; overflow: hidden; display: block; background: #e6e5e3; }
.gg-ligne-visuel .remplir img { transition: transform 1.4s cubic-bezier(.2,.7,.2,1); }
.gg-ligne-visuel:hover .remplir img { transform: scale(1.03); }
.e-con.gg-ligne-texte { padding-top: 30px; gap: 10px; }
.gg-ligne-titre .elementor-heading-title { font: 400 clamp(40px, 4vw, 64px)/1 var(--police-titre); color: var(--encre); }
.gg-gris p { color: var(--gris); max-width: 46ch; }
.gg-prix p { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--encre); margin: 6px 0 14px; }
body .gg-lien .elementor-button { background: none; border: 0; border-bottom: 1px solid currentColor; padding: 0 0 5px; color: var(--encre); font-size: 10.5px; letter-spacing: .28em; text-transform: uppercase; font-weight: 500; }
.e-con.gg-ensembles { padding: clamp(90px, 10vw, 150px) var(--marge); background: #fff; scroll-margin-top: var(--entete); }
.e-con.gg-ensembles-tete { flex-direction: row; justify-content: space-between; align-items: baseline; gap: 20px; flex-wrap: wrap; margin-bottom: 50px; }
.gg-ensembles-tete .elementor-heading-title { font: 400 clamp(34px, 3.4vw, 54px)/1 var(--police-titre); }
.gg-grille ul.products { --colonnes: 4; gap: clamp(14px, 2vw, 28px) !important; }
body .gg-grille .woocommerce ul.products li.product { text-align: left; }
body .gg-grille .woocommerce ul.products li.product .woocommerce-loop-product__title, body .gg-grille .woocommerce ul.products li.product .tailles { padding: 0; }
body .gg-grille .woocommerce ul.products li.product .price { justify-content: flex-start; }
body .gg-grille .woocommerce ul.products li.product .produit-visuel { background: #e6e5e3; }
.e-con.gg-details { display: grid; grid-template-columns: 1fr 1fr 1.15fr; gap: clamp(16px, 2vw, 28px); align-items: center; padding: clamp(100px, 12vw, 170px) var(--marge); }
.e-con.gg-detail-visuel { position: relative; aspect-ratio: 3 / 4; overflow: hidden; }
.e-con.gg-detail-texte { padding-left: clamp(10px, 4vw, 70px); gap: 0; }
.gg-detail-texte .elementor-heading-title { font: 400 clamp(32px, 3vw, 48px)/1.1 var(--police-titre); margin: 18px 0 26px; }
.gg-liste ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--filet); }
.gg-liste li { padding: 16px 0; border-bottom: 1px solid var(--filet); font-size: 14px; line-height: 1.6; color: var(--gris); }
.gg-liste li strong { color: var(--encre); font-weight: 500; }

@media (max-width: 1024px) {
  .gg-grille ul.products { --colonnes: 2; }
  .e-con.gg-details { grid-template-columns: 1fr 1fr; }
  .e-con.gg-detail-texte { grid-column: 1 / -1; padding: 30px 0 0; }
}
@media (max-width: 767px) {
  .e-con.gg-hero { height: 88svh; min-height: 520px; }
  .gg-hero .remplir img { object-position: 30% 30%; }
  .gg-titre .elementor-heading-title { font-size: clamp(50px, 15vw, 70px); }
  .e-con.gg-manifeste { padding: 80px var(--marge); }
  .e-con.gg-lignes { grid-template-columns: 1fr; gap: 56px; padding-bottom: 80px; }
  .e-con.gg-ensembles, .e-con.gg-details { padding-top: 70px; padding-bottom: 70px; }
  .e-con.gg-ensembles-tete { margin-bottom: 30px; }
}

/* Fiche produit : toutes les photos de la galerie remplissent leur case */
body .galerie .woocommerce-product-gallery__image { width: 100% !important; }
@media (max-width: 860px) {
  /* galerie produit en carrousel horizontal : le prix et les tailles restent à portée de pouce */
  body .galerie .woocommerce-product-gallery__wrapper { display: flex !important; gap: 8px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin: 0 calc(-1 * var(--marge)) !important; padding: 0 var(--marge); scroll-padding-inline: var(--marge); }
  body .galerie .woocommerce-product-gallery__wrapper::-webkit-scrollbar { display: none; }
  body .galerie .woocommerce-product-gallery__image, body .galerie .woocommerce-product-gallery__image:first-child { flex: 0 0 84%; aspect-ratio: 3 / 4; scroll-snap-align: start; width: auto !important; }
  body .galerie .woocommerce-product-gallery__image:only-child { flex-basis: 100%; }
}

/* Accueil Nuit : bloc Gente Génération */
.e-con.n-gg { display: grid; grid-template-columns: .85fr 1.15fr; align-items: center; gap: clamp(30px, 5vw, 90px); padding: clamp(90px, 10vw, 150px) var(--marge); border-top: 1px solid var(--filet-nuit); }
.e-con.n-gg-texte { gap: 18px; align-items: flex-start; }
.n-gg-intro p { color: #efe9df; opacity: .82; max-width: 40ch; font-size: 15px; line-height: 1.7; }
.e-con.n-gg-visuel { position: relative; aspect-ratio: 16 / 10; overflow: hidden; display: block; }
.n-gg-visuel .remplir img { filter: brightness(.9); transition: transform 1.4s cubic-bezier(.2,.7,.2,1), filter .9s; }
.n-gg-visuel:hover .remplir img { transform: scale(1.03); filter: brightness(1); }
@media (max-width: 860px) {
  .e-con.n-gg { grid-template-columns: 1fr; padding-top: 80px; padding-bottom: 80px; }
  .e-con.n-gg-visuel { order: -1; aspect-ratio: 4 / 3; }
  .n-gg-visuel .remplir img { object-position: 30% 30%; }
}

/* Filtres : une rubrique sans aucun choix possible (ex. Matière non renseignée) est masquée */
body .wpc-filters-section.wpc-filter-terms-count-0 { display: none !important; }
@media (max-width: 767px) {
  /* héros paysage (photo de la marque) recadrés sur la mannequin de gauche en portrait */
  .hero .hero-photo img, .m-hero .remplir img { object-position: 30% 30%; }
}

/* « Vous aimerez aussi » : titre espacé des produits, bloc entier masqué s'il n'y a aucun produit à suggérer */
.e-con.produits-similaires .e-con.titre-section { margin-bottom: clamp(30px, 3.5vw, 50px); }
.e-con.produits-similaires:not(:has(li.product)) { display: none; }

/* =====================================================================
   21. Héros Nuit vivant : diaporama, titre révélé, repères
   ===================================================================== */
.e-con.n-hero-visuel { overflow: hidden; }
.e-con.n-hero-visuel::after { z-index: 2; pointer-events: none; }
.e-con.n-diapo { position: absolute; inset: 0; z-index: 0; }
.e-con.n-diapo:not(:first-child) { opacity: 0; } /* sans script (éditeur), seule la première photo s'affiche */
.anime > .e-con.n-diapo { opacity: 0; transition: opacity 1.6s ease; }
.anime > .e-con.n-diapo.actif { opacity: 1; z-index: 1; }
.anime > .e-con.n-diapo .remplir img { transform: scale(1.07); transition: transform calc(var(--duree, 6000ms) + 1600ms) linear; }
.anime > .e-con.n-diapo.actif .remplir img { transform: scale(1); }
/* légende : nom du produit et prix, cliquable */
.n-diapo-legende { position: absolute !important; z-index: 3; right: var(--marge); bottom: 46px; width: auto !important; margin: 0 !important; }
.n-diapo-legende .elementor-heading-title { font: 400 11px/1.4 var(--police); letter-spacing: .2em; text-transform: uppercase; color: #efe9df; text-align: right; }
.n-diapo-legende .elementor-heading-title a { color: inherit; display: inline-flex; flex-direction: column; align-items: flex-end; gap: 6px; padding-bottom: 6px; border-bottom: 1px solid rgba(239,233,223,.5); transition: border-color .3s; }
.n-diapo-legende .elementor-heading-title a:hover { border-color: #efe9df; }
.n-diapo-legende span { font-size: 13px; letter-spacing: .08em; color: var(--sable); }
.anime > .e-con.n-diapo .n-diapo-legende { opacity: 0; transform: translateY(10px); transition: opacity .8s .5s, transform .8s .5s; }
.anime > .e-con.n-diapo.actif .n-diapo-legende { opacity: 1; transform: none; }
/* repères : un trait par photo, celui en cours se remplit */
.n-diapo-points { position: absolute; z-index: 3; left: 48px; bottom: 50px; display: flex; gap: 8px; }
.n-diapo-points button { position: relative; width: 34px; height: 18px; padding: 0; margin: 0; background: none !important; border: 0 !important; cursor: pointer; }
.n-diapo-points button::before, .n-diapo-points button::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: rgba(239,233,223,.35); }
.n-diapo-points button::after { background: #efe9df; transform: scaleX(0); transform-origin: left; }
.n-diapo-points button.actif::after { animation: remplit var(--duree, 6000ms) linear forwards; }
.n-diapo-points button:focus-visible { outline: 1px solid #efe9df; outline-offset: 3px; }
@keyframes remplit { to { transform: scaleX(1); } }
/* titre : chaque mot monte depuis une fente ; surtitre et bouton apparaissent ensuite */
.n-titre .mot { display: inline-block; overflow: hidden; vertical-align: top; padding: .1em 0 .16em; margin: -.1em 0 -.16em; }
.n-titre .mot > span { display: inline-block; transform: translateY(110%); }
.vivant .n-titre .mot > span { animation: monte 1.1s cubic-bezier(.2,.7,.2,1) forwards; animation-delay: calc(var(--i) * .14s + .25s); }
@keyframes monte { to { transform: none; } }
.vivant .n-hero-texte > .surtitre, .vivant .n-hero-texte > .n-bouton { opacity: 0; animation: apparait 1s ease forwards; }
.vivant .n-hero-texte > .surtitre { animation-delay: .1s; }
.vivant .n-hero-texte > .n-bouton { animation-delay: .9s; }
@keyframes apparait { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.e-con.n-hero-texte { z-index: 4; } /* le titre passe devant le dégradé de la photo */
@media (max-width: 860px) {
  .n-diapo-legende { display: none; } /* sur mobile, la photo occupe l'écran : pas de légende sur le visage */
  .n-diapo-points { left: var(--marge); top: 18px; bottom: auto; }
  .n-diapo-points button { width: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .n-titre .mot > span { transform: none; }
}

/* Légende du héros : posée sur un cartouche sombre pour rester lisible sur les photos claires */
.n-diapo-legende .elementor-heading-title a {
  padding: 14px 18px !important; border: 0 !important; background: rgba(21,20,15,.72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  gap: 4px !important; transition: background .3s;
}
.n-diapo-legende .elementor-heading-title a:hover { background: rgba(21,20,15,.9); }
.n-diapo-legende span { font: 400 16px/1.2 var(--police-titre) !important; letter-spacing: .02em !important; text-transform: none; color: #efe9df !important; }
.n-diapo-points { bottom: 56px; }

/* Bandeau défilant du pied de page : plus discret */
.pied-defile { font-size: clamp(30px, 3.6vw, 56px); padding: 26px 0 24px; }
@media (max-width: 767px) { .pied-defile { font-size: 28px; padding: 18px 0 16px; } }

/* =====================================================================
   22. Page 404
   ===================================================================== */
.e-con.erreur { position: relative; align-items: center; text-align: center; gap: 0; padding: clamp(90px, 12vw, 170px) var(--marge) clamp(70px, 8vw, 110px); overflow: hidden; }
.erreur-chiffre { position: absolute !important; inset: 50% 0 auto; transform: translateY(-58%); z-index: 0; pointer-events: none; }
.erreur-chiffre p { font: 400 clamp(180px, 30vw, 420px)/1 var(--police-titre); color: var(--fantome); letter-spacing: -0.04em; user-select: none; }
.e-con.erreur > *:not(.erreur-chiffre) { position: relative; z-index: 1; }
.erreur-titre .elementor-heading-title { font: 400 clamp(44px, 6vw, 88px)/1 var(--police-titre); margin: 18px 0 22px; }
.erreur-titre em { color: var(--gris); }
.erreur-texte p { color: var(--gris); max-width: 46ch; margin: 0 auto 34px; }
.erreur-recherche { width: min(560px, 100%) !important; margin: 0 auto 30px !important; }
body .erreur-recherche .e-search-form { display: flex; gap: 12px; align-items: center; }
body .erreur-recherche .e-search-input-wrapper { flex: 1; }
body .erreur-recherche .e-search-input { width: 100%; font: 300 18px var(--police); color: var(--encre); background: none; border: 0; border-bottom: 1px solid var(--encre); border-radius: 0; padding: 10px 0; outline: 0; box-shadow: none; }
body .erreur-recherche .e-search-input-wrapper > svg { display: none; }
body .erreur-recherche .e-search-submit { background: none; border: 0; color: var(--encre); padding: 0; font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.e-con.erreur-boutons { flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 12px; }
body .erreur-bouton-clair .elementor-button { background: transparent; color: var(--encre); border: 1px solid var(--encre); }
body .erreur-bouton-clair .elementor-button:hover { background: var(--encre); color: #fff; }
.e-con.erreur-selection { padding: clamp(70px, 8vw, 110px) var(--marge); background: #fff; border-top: 1px solid var(--filet); }
.erreur-selection .gg-ensembles-tete { margin-bottom: 40px; }
body .erreur-recherche .e-search-submit { background: none !important; color: var(--encre) !important; border: 0 !important; border-bottom: 1px solid var(--encre) !important; padding: 10px 0 !important; min-height: 0 !important; }
body .erreur-recherche .ag-resultats { text-align: left; }

/* Accueil Nuit, portes Femme / Homme / Gente Génération : sur écran tactile, le survol (prévu pour la souris)
   ne doit pas déclencher l'élargissement, qui écrasait la porte touchée à hauteur nulle */
@media (hover: none), (max-width: 860px) {
  .e-con.n-porte:hover { flex: none; }
  .n-porte:hover .remplir img { filter: brightness(.62) grayscale(.2); transform: none; }
}

/* Pied de page : mention de conception */
.copyright .credit { margin-top: 6px; font-size: 11px; letter-spacing: .02em; opacity: .8; }
.copyright .credit a { color: inherit !important; text-decoration: underline; text-underline-offset: 3px; }

/* Fiche produit, mobile : une photo entière par écran (aucun recadrage), compteur de photos */
@media (max-width: 860px) {
  body .galerie .woocommerce-product-gallery__image, body .galerie .woocommerce-product-gallery__image:first-child { flex: 0 0 100% !important; aspect-ratio: auto !important; height: auto !important; }
  body .galerie .woocommerce-product-gallery__image a, body .galerie .woocommerce-product-gallery__image img { height: auto !important; width: 100% !important; aspect-ratio: auto !important; object-fit: contain !important; }
  body .galerie .woocommerce-product-gallery__wrapper { padding: 0 !important; margin: 0 !important; gap: 0 !important; scroll-padding-inline: 0 !important; }
  body .galerie .woocommerce-product-gallery { position: relative; }
  .ag-galerie-compteur { position: absolute; right: 12px; bottom: 12px; z-index: 2; padding: 6px 10px; background: rgba(30,29,27,.72); color: #fff; font: 500 11px/1 var(--police); letter-spacing: .12em; pointer-events: none; }
}
@media (min-width: 861px) { .ag-galerie-compteur { display: none; } }
@media (max-width: 767px) {
  .e-con.pied-colonnes > .pied-col:nth-child(3) { grid-column: 1 / -1; } /* colonne « Nous écrire » sur toute la largeur : l'e-mail tient sur une ligne */
  .n-porte-texte .elementor-heading-title { font-size: clamp(34px, 10.5vw, 46px); }
}
@media (max-width: 380px) {
  .n-nombre .elementor-heading-title { font-size: 28px; }
  .e-con.n-chiffre { padding: 26px 6px; }
}

/* Gente Génération, mobile : la photo de la marque (paysage) s'affiche en entier, le texte passe dessous sur fond encre */
@media (max-width: 767px) {
  .e-con.gg-hero { height: auto; min-height: 0; display: flex; flex-direction: column; }
  .e-con.gg-hero::after { display: none; }
  .gg-hero .remplir { position: relative; inset: auto; aspect-ratio: 16 / 9; }
  .gg-hero .remplir img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; animation: none; transform: none; }
  .e-con.gg-hero-texte { position: static; width: auto; padding: 34px var(--marge) 46px; }
}
/* Accueil Nuit, « La signature » : photo réelle du logo brodé, un peu plus lumineuse que l'ancienne image d'ambiance */
.n-manifeste .remplir img { filter: brightness(.55) grayscale(.1); object-position: 60% 35%; }

/* Connexion / inscription : boutons « Se connecter » et « S'inscrire » à la même hauteur,
   le texte d'information de l'inscription passe sous le bouton */
body .compte-widget form.register { display: flex; flex-direction: column; }
body .compte-widget form.register > .form-row:has(button[type="submit"]) { order: 2; }
body .compte-widget form.register > :not(.form-row), body .compte-widget form.register > .woocommerce-privacy-policy-text { order: 3; margin: 14px 0 0; font-size: 12.5px; line-height: 1.6; color: var(--gris); }
body .compte-widget form.login .form-row:has(.woocommerce-form-login__submit) { flex-direction: column; gap: 0; }
body .compte-widget form.login .woocommerce-form-login__submit { order: 1; }
body .compte-widget form.login .woocommerce-form-login__rememberme { order: 2; margin-top: 14px !important; }

/* Adresse e-mail et crédit de conception : liens sans soulignement */
body a[href^="mailto:"], body a[href^="mailto:"]:hover { text-decoration: none !important; border-bottom: 0 !important; }
.copyright .credit a { text-decoration: none !important; }
.copyright .credit a:hover { color: #fff !important; }
/* pied de page : 3 colonnes de liens + newsletter */
.e-con.pied-colonnes { grid-template-columns: repeat(3, 1fr) 1.6fr; }
@media (max-width: 1100px) { .e-con.pied-colonnes { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 767px) { .e-con.pied-colonnes { grid-template-columns: 1fr 1fr; } }
/* Contact : photo de la marque, visages conservés */
.contact-infos .contact-photo { aspect-ratio: 16 / 9; }
.contact-infos .contact-photo .remplir img { object-position: 50% 30%; }

/* =====================================================================
   23. Compte client : vue d'une commande, alignée sur le design du site
   ===================================================================== */
/* résumé en bandeau : n°, date, statut en pastille */
body .compte-widget .woocommerce-MyAccount-content-wrapper > p:has(mark.order-number) {
  display: block; margin: 0 0 40px !important; padding: 20px 24px; background: var(--creme-2); font-size: 14px !important; line-height: 1.9; color: var(--gris);
}
body .compte-widget mark.order-number, body .compte-widget mark.order-date { background: none; color: var(--encre); font-weight: 500; padding: 0; }
body .compte-widget mark.order-status { display: inline-block; margin-left: 4px; padding: 3px 10px; background: var(--encre); color: #fff; font-size: 10.5px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; vertical-align: 1px; }
/* tableau de la commande : sans cadre blanc, filets fins, montants à droite */
body .compte-widget .woocommerce-order-details { margin: 0 0 56px !important; }
body .compte-widget .woocommerce-order-details table.order_details { width: 100%; background: none !important; border: 0 !important; border-top: 1px solid var(--encre) !important; border-collapse: collapse; margin: 0 !important; }
body .compte-widget .woocommerce-order-details table.order_details :is(th, td) {
  padding: 16px 0 !important; border: 0 !important; border-bottom: 1px solid var(--filet) !important; background: none !important; vertical-align: top; font-size: 14px; color: var(--encre); font-weight: 400;
}
body .compte-widget .woocommerce-order-details table.order_details :is(th, td):last-child { text-align: right; }
body .compte-widget .woocommerce-order-details table.order_details thead th, body .compte-widget .woocommerce-order-details table.order_details tfoot th {
  font-size: 11px !important; font-weight: 500 !important; letter-spacing: .12em; text-transform: uppercase; color: var(--gris) !important; text-align: left;
}
body .compte-widget .woocommerce-order-details table.order_details tfoot td { font-weight: 400 !important; }
body .compte-widget .woocommerce-order-details table.order_details tfoot tr:nth-last-child(2) :is(th, td) { font-size: 16px !important; color: var(--encre) !important; }
body .compte-widget .woocommerce-order-details table.order_details .shipped_via { display: block; margin-top: 2px; font-size: 12px; color: var(--gris); }
body .compte-widget .woocommerce-order-details td.product-name a { text-decoration: none !important; font-size: 15px; }
body .compte-widget .woocommerce-order-details td.product-name a span { color: var(--gris); }
body .compte-widget .woocommerce-order-details .product-quantity { font-weight: 400; color: var(--gris); margin-left: 4px; }
body .compte-widget .woocommerce-order-details .wc-item-meta { margin: 6px 0 0 !important; padding: 0 !important; list-style: none; font-size: 12.5px; color: var(--gris); }
body .compte-widget .woocommerce-order-details .wc-item-meta li { display: flex; gap: 4px; margin: 0; }
body .compte-widget .woocommerce-order-details .wc-item-meta :is(strong, p) { margin: 0; font-weight: 400; display: inline; }
/* adresses : deux cartes égales, côte à côte */
body .compte-widget .woocommerce-customer-details { margin: 0 !important; }
body .compte-widget .woocommerce-customer-details .woocommerce-columns--addresses { display: grid !important; grid-template-columns: 1fr 1fr; gap: 20px; margin: 0 !important; }
body .compte-widget .woocommerce-customer-details .woocommerce-columns--addresses::before,
body .compte-widget .woocommerce-customer-details .woocommerce-columns--addresses::after { content: none !important; display: none !important; }
body .compte-widget .woocommerce-customer-details .woocommerce-column { width: auto !important; max-width: none !important; float: none !important; margin: 0 !important; padding: 0 !important; display: flex; flex-direction: column; }
body .compte-widget .woocommerce-customer-details .woocommerce-column__title { font-size: 18px !important; margin: 0 0 14px !important; }
body .compte-widget .woocommerce-customer-details address { flex: 1; margin: 0 !important; }
@media (max-width: 767px) {
  body .compte-widget .woocommerce-customer-details .woocommerce-columns--addresses { grid-template-columns: 1fr; }
  body .compte-widget .woocommerce-MyAccount-content-wrapper > p:has(mark.order-number) { padding: 16px 18px; }
}
body .compte-widget .woocommerce-MyAccount-content mark.order-status { background: var(--encre) !important; color: #fff !important; font-weight: 500 !important; }

/* Connexion / inscription côte à côte : l'inscription n'a qu'un champ (e-mail) ; une ligne d'espace
   remplace le champ mot de passe pour que « S'inscrire » soit à la hauteur de « Se connecter » */
@media (min-width: 861px) {
  body .compte-widget form.register > .form-row:not(:has(button[type="submit"])):not(.woocommerce-privacy-policy-text) { margin-bottom: calc(20px + var(--ag-ligne-champ, 77px)) !important; }
}

/* Fiche produit, onglets : même police, même taille et même gris pour tout le texte de description */
body .fiche-onglets .woocommerce-Tabs-panel :is(p, li, td, th, strong, span) { font-family: var(--police); font-size: 14px; line-height: 1.7; color: var(--gris); font-weight: 400; }
body .fiche-onglets .woocommerce-Tabs-panel :is(h3, h4) {
  font-family: var(--police) !important; font-size: 11px !important; font-weight: 500 !important; letter-spacing: .14em; text-transform: uppercase; color: var(--encre) !important; margin: 10px 0 12px !important; line-height: 1.4;
}
body .fiche-onglets .woocommerce-Tabs-panel ul { list-style: none; margin: 0 0 18px !important; padding: 0 !important; max-width: 64ch; }
body .fiche-onglets .woocommerce-Tabs-panel ul li { position: relative; padding: 0 0 4px 18px; margin: 0; }
body .fiche-onglets .woocommerce-Tabs-panel ul li::before { content: "—"; position: absolute; left: 0; color: var(--filet); }
body .fiche-onglets .woocommerce-Tabs-panel strong { color: var(--encre); font-weight: 500; }
body .fiche-onglets .woocommerce-Tabs-panel p:last-child { padding-bottom: 20px; }
/* Pied de page mobile : logo, liens légaux, puis copyright et crédit tout en bas */
@media (max-width: 860px) {
  .e-con.pied-bas { display: flex !important; flex-direction: column; align-items: center; }
  .pied-bas .copyright { order: 3; margin-top: 8px; }
  .pied-bas .logo { order: 1; }
  .pied-bas .pied-legal { order: 2; }
}

/* Mini-panier (panneau latéral) : texte encre sur crème quelle que soit la variante d'accueil (Nuit passait le texte en clair) */
body .panier-menu .elementor-menu-cart__main, body .panier-menu .elementor-menu-cart__main * { color: var(--encre); }
body .panier-menu .elementor-menu-cart__product-name a { color: var(--encre) !important; font-size: 13.5px; line-height: 1.45; }
body .panier-menu .elementor-menu-cart__product-price, body .panier-menu .elementor-menu-cart__product-price * { color: var(--gris) !important; font-size: 13px; }
body .panier-menu .elementor-menu-cart__subtotal { display: flex; justify-content: space-between; align-items: baseline; padding: 18px 0 !important; border-top: 1px solid var(--filet) !important; border-bottom: 1px solid var(--filet) !important;
  font-size: 11px !important; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--encre) !important; }
body .panier-menu .elementor-menu-cart__subtotal strong { font-weight: 500; }
body .panier-menu .elementor-menu-cart__subtotal .amount, body .panier-menu .elementor-menu-cart__subtotal .amount * { font-size: 16px; letter-spacing: 0; color: var(--encre) !important; }
/* bouton de suppression : croix nette, cercle fin, visible */
body .panier-menu .elementor-menu-cart__product-remove { width: 26px !important; height: 26px !important; border: 1px solid var(--encre) !important; border-radius: 50%; background: transparent; opacity: 1; }
body .panier-menu .elementor-menu-cart__product-remove::before, body .panier-menu .elementor-menu-cart__product-remove::after { background: var(--encre) !important; width: 11px !important; height: 1px !important; }
body .panier-menu .elementor-menu-cart__product-remove:hover { background: var(--encre); }
body .panier-menu .elementor-menu-cart__product-remove:hover::before, body .panier-menu .elementor-menu-cart__product-remove:hover::after { background: #fff !important; }
body .panier-menu .elementor-menu-cart__product-remove a { opacity: 0; }
body .panier-menu .elementor-menu-cart__close-button::before, body .panier-menu .elementor-menu-cart__close-button::after { background: var(--encre) !important; }
body .panier-menu .elementor-menu-cart__footer-buttons .elementor-button--checkout, body .panier-menu .elementor-menu-cart__footer-buttons .elementor-button--checkout * { color: #fff !important; }
body .panier-menu .elementor-menu-cart__footer-buttons .elementor-button--view-cart, body .panier-menu .elementor-menu-cart__footer-buttons .elementor-button--view-cart * { color: var(--encre) !important; }
body .panier-menu .elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover, body .panier-menu .elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover * { color: #fff !important; }

/* =====================================================================
   24. Favoris
   ===================================================================== */
.ag-coeur { display: grid; place-items: center; padding: 0; margin: 0; background: none; border: 0; cursor: pointer; color: var(--encre); line-height: 0; }
.ag-coeur svg { width: 18px; height: 18px; fill: transparent; stroke: currentColor; stroke-width: 1.4; transition: fill .2s, transform .2s; }
.ag-coeur.actif svg { fill: currentColor; }
.ag-coeur:focus-visible { outline: 1px solid var(--encre); outline-offset: 2px; }
.ag-coeur.bat svg { animation: ag-bat .45s ease; }
@keyframes ag-bat { 40% { transform: scale(1.28); } 100% { transform: scale(1); } }
/* sur la carte : rond crème posé en haut à droite de la photo */
body ul.products li.product .ag-coeur-carte { position: absolute; top: 10px; right: 10px; z-index: 3; width: 36px; height: 36px; border-radius: 50%; background: rgba(244,240,234,.92); box-shadow: 0 2px 10px rgba(30,29,27,.08); transition: background .2s, transform .2s; }
body ul.products li.product .ag-coeur-carte:hover { background: #fff; transform: scale(1.06); }
body .g-lignes ul.products li.product .ag-coeur-carte { top: 50%; right: 0; transform: translateY(-50%); background: none; box-shadow: none; }
body .g-lignes ul.products li.product a.woocommerce-LoopProduct-link { padding-right: 48px; }
/* fiche produit : carré à droite du bouton « Ajouter au panier » */
body .fiche-panier form.cart .ag-coeur-fiche { flex: none; width: 50px; height: 50px; border: 1px solid var(--filet); background: transparent; transition: border-color .2s; }
body .fiche-panier form.cart .ag-coeur-fiche:hover { border-color: var(--encre); }
body .fiche-panier form.cart .ag-coeur-fiche svg { width: 20px; height: 20px; }
body .fiche-panier .woocommerce-variation-add-to-cart, body .fiche-panier form.cart:not(.variations_form) { display: flex; gap: 10px; align-items: stretch; }
body .fiche-panier .woocommerce-variation-add-to-cart .single_add_to_cart_button { flex: 1; }
/* petits téléphones : le bouton se resserre au lieu de pousser le cœur hors de l'écran */
body .fiche-panier .single_add_to_cart_button { min-width: 0; white-space: normal; line-height: 1.3 !important; }
@media (max-width: 380px) {
	body .fiche-panier .single_add_to_cart_button { padding: 14px 10px !important; letter-spacing: .08em !important; }
	body .fiche-panier form.cart .ag-coeur-fiche { width: 46px; }
	body .fiche-panier .woocommerce-variation-add-to-cart, body .fiche-panier form.cart:not(.variations_form) { gap: 8px; }
}
/* en-tête : cœur et compteur */
.ag-favoris-lien { position: relative; display: inline-grid; place-items: center; width: 26px; height: 26px; color: inherit !important; line-height: 0; }
.ag-favoris-lien svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.ag-favoris-nombre { position: absolute; top: -5px; right: -7px; min-width: 15px; height: 15px; padding: 0 3px; border-radius: 8px; background: var(--encre); color: #fff; font: 500 9px/15px var(--police); text-align: center; }
body.variante-nuit .ag-favoris-nombre, body.variante-maison:not(.entete-plein) .ag-favoris-nombre { background: #efe9df; color: var(--encre); }
body.variante-nuit .ag-favoris-lien, body.variante-maison:not(.entete-plein) .ag-favoris-lien { color: #efe9df !important; }
/* page « Mes favoris » */
.ag-favoris ul.products { --colonnes: 4; }
.ag-favoris-chargement { text-align: center; color: var(--gris); padding: 40px 0; }
.ag-favoris-vide { display: flex; flex-direction: column; align-items: center; gap: 18px; text-align: center; padding: 40px 0 20px; color: var(--gris); }
.ag-favoris-vide svg { width: 34px; height: 34px; fill: none; stroke: var(--encre); stroke-width: 1.2; }
.ag-favoris-vide p { max-width: 42ch; margin: 0; }
.bouton-favoris { display: inline-block; padding: 15px 26px; background: var(--encre); color: #fff !important; font: 500 11px/1 var(--police); letter-spacing: .16em; text-transform: uppercase; }
.e-con.favoris-corps { max-width: 1320px; margin: 0 auto; width: 100%; padding: 20px var(--marge) clamp(70px, 8vw, 110px); }
@media (max-width: 1024px) { .ag-favoris ul.products { --colonnes: 3; } }
@media (max-width: 767px) { .ag-favoris ul.products { --colonnes: 2; } body ul.products li.product .ag-coeur-carte { width: 32px; height: 32px; top: 8px; right: 8px; } }

/* =====================================================================
   25. Accueils A « Campagne », B « Diptyque », C « Sélection »
   ===================================================================== */
:is(.e-con.h-campagne, .e-con.h-diptyque, .e-con.h-selection) { position: relative; height: calc(100svh - var(--entete)); min-height: 600px; overflow: hidden; background: var(--nuit); }
.h-petit p, .h-prix p { font-size: 12px; letter-spacing: .06em; color: rgba(255,255,255,.82); }
body .h-lien .elementor-button { background: none; border: 0; border-bottom: 1px solid currentColor; border-radius: 0; padding: 0 0 6px; color: inherit; font: 500 11px/1 var(--police); letter-spacing: .24em; text-transform: uppercase; }
/* A — campagne plein cadre */
.h-campagne .remplir img { object-position: 50% 30%; transform: scale(1.04); animation: respire 18s ease-out forwards; }
.h-campagne .h-portrait { display: none; }
.e-con.h-campagne::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, rgba(10,10,8,.72) 0%, rgba(10,10,8,.1) 45%, rgba(10,10,8,.2) 100%); pointer-events: none; }
.e-con.h-campagne-contenu { position: absolute; z-index: 2; left: var(--marge); right: var(--marge); bottom: 48px; width: auto; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 30px; }
.h-titre-a .elementor-heading-title { font: 400 clamp(64px, 11.5vw, 190px)/.82 var(--police-titre); letter-spacing: -.035em; text-transform: uppercase; color: #f6f1e8; }
.h-titre-a em { display: block; font-style: italic; text-transform: none; letter-spacing: -.02em; color: var(--sable); }
.e-con.h-campagne-ctas { align-items: flex-end; gap: 16px; padding-bottom: 14px; width: auto; }
.h-campagne-ctas .h-texte p { max-width: 30ch; text-align: right; font-size: 14px; color: rgba(255,255,255,.82); }
.e-con.h-boutons { flex-direction: row; gap: 10px; width: auto; }
body .h-btn .elementor-button { min-width: 150px; height: 50px; display: inline-flex; align-items: center; justify-content: center; padding: 0 24px; border-radius: 0; font: 500 11px/1 var(--police); letter-spacing: .2em; text-transform: uppercase; }
body .h-plein .elementor-button { background: #fff; color: var(--nuit); border: 1px solid #fff; }
body .h-contour .elementor-button { background: transparent; color: #fff; border: 1px solid #fff; }
body .h-plein .elementor-button:hover { background: var(--sable); border-color: var(--sable); }
body .h-contour .elementor-button:hover { background: #fff; color: var(--nuit); }
/* B — diptyque */
.e-con.h-diptyque { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; }
.e-con.h-volet { position: relative; overflow: hidden; display: block; height: 100%; }
.h-volet .remplir img { object-position: 50% 22%; transition: transform 1.4s cubic-bezier(.2,.7,.2,1); }
.h-volet:hover .remplir img { transform: scale(1.03); }
.e-con.h-volet::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10,10,8,.55), rgba(10,10,8,0) 40%); pointer-events: none; }
.e-con.h-legende { position: absolute; z-index: 2; left: 28px; right: 28px; bottom: 30px; width: auto; flex-direction: row; justify-content: space-between; align-items: flex-end; }
.e-con.h-legende-nom { width: auto; gap: 2px; }
.h-nom .elementor-heading-title { font: 400 26px/1.1 var(--police-titre); color: #fff; }
.e-con.h-centre { position: absolute; z-index: 3; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(440px, 80vw); align-items: center; text-align: center; gap: 0; padding: 38px 46px 36px; background: var(--creme); color: var(--encre); }
.h-centre .surtitre, .h-centre .surtitre p { color: var(--gris); }
.h-titre-b .elementor-heading-title { font: 400 46px/1 var(--police-titre); color: var(--encre); margin: 14px 0 12px; }
.h-titre-b em { font-style: italic; }
.h-centre .h-texte p { font-size: 14px; color: #5f5b54; margin-bottom: 22px; }
.h-centre .h-lien .elementor-button { color: var(--encre); }
/* C — campagne + sélection */
.e-con.h-selection { display: grid; grid-template-columns: 1.35fr 1fr; }
.e-con.h-sel-visuel { position: relative; overflow: hidden; height: 100%; }
.h-sel-visuel .remplir img { object-position: 30% 30%; }
.e-con.h-sel-visuel::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,10,8,.55), rgba(10,10,8,0) 55%); pointer-events: none; }
.e-con.h-sel-titre { position: absolute; z-index: 2; left: var(--marge); bottom: 46px; width: auto; gap: 0; }
.h-titre-c .elementor-heading-title { font: 400 clamp(56px, 6.6vw, 108px)/.9 var(--police-titre); letter-spacing: -.02em; color: #f6f1e8; margin: 16px 0 26px; }
.h-titre-c em { font-style: italic; color: var(--sable); }
.h-sel-titre .h-lien .elementor-button { color: #f6f1e8; }
.e-con.h-sel-look { justify-content: center; gap: 16px; padding: 28px var(--marge); background: var(--creme); color: var(--encre); height: 100%; }
.e-con.h-sel-tete { flex-direction: row; justify-content: space-between; align-items: baseline; }
.h-sel-h2 .elementor-heading-title { font: 400 30px/1 var(--police-titre); color: var(--encre); }
.h-sel-look .h-lien .elementor-button { color: var(--encre); }
body .h-sel-grille .woocommerce ul.products { --colonnes: 2; gap: 12px !important; margin: 0 !important; }
body .h-sel-grille .woocommerce ul.products li.product { text-align: left; }
body .h-sel-grille .woocommerce ul.products li.product .produit-visuel { aspect-ratio: auto; height: calc((100svh - var(--entete) - 56px - 46px - 2 * 62px - 12px) / 2); min-height: 120px; margin-bottom: 8px; }
body .h-sel-grille .woocommerce ul.products li.product :is(.woocommerce-loop-product__title, .price) { color: var(--encre) !important; font-size: 13px; padding: 0; justify-content: flex-start; }
body .h-sel-grille .woocommerce ul.products li.product .tailles, body .h-sel-grille .etiquette { display: none; }

@media (max-width: 1100px) and (orientation: portrait), (max-width: 760px) {
  .h-campagne .h-paysage { display: none; }
  .h-campagne .h-portrait { display: block; }
  .h-campagne .remplir img { object-position: 50% 18%; }
  .e-con.h-campagne-contenu { grid-template-columns: 1fr; bottom: 36px; }
  .e-con.h-campagne-ctas { align-items: flex-start; padding: 0; }
  .h-campagne-ctas .h-texte p { text-align: left; }
}
@media (min-width: 761px) and (max-width: 1100px) {
  .e-con.h-centre { width: min(380px, 56vw); padding: 30px 32px; }
  .h-titre-b .elementor-heading-title { font-size: 38px; }
  .e-con.h-selection { grid-template-columns: 1.1fr 1fr; }
}
@media (min-width: 761px) and (max-width: 1100px) and (orientation: portrait) {
  .e-con.h-selection { grid-template-columns: 1fr; grid-template-rows: 1.2fr auto; }
  body .h-sel-grille .woocommerce ul.products { --colonnes: 4; }
  body .h-sel-grille .woocommerce ul.products li.product .produit-visuel { height: auto; aspect-ratio: 3 / 4; }
}
@media (max-width: 760px) {
  .h-titre-a .elementor-heading-title { font-size: clamp(54px, 17vw, 80px); }
  .e-con.h-boutons { width: 100%; } body .h-btn { flex: 1; } body .h-btn .elementor-button { width: 100%; min-width: 0; }
  .e-con.h-diptyque { height: auto; min-height: 0; grid-template-rows: 62svh auto; }
  .e-con.h-volet { height: 62svh; }
  .e-con.h-legende { left: 14px; right: 14px; bottom: 16px; }
  .h-nom .elementor-heading-title { font-size: 18px; } .h-prix { display: none; }
  .e-con.h-centre { position: static; grid-column: 1 / -1; transform: none; width: 100%; padding: 30px 22px; }
  .h-titre-b .elementor-heading-title { font-size: 34px; }
  .e-con.h-selection { grid-template-columns: 1fr; height: auto; min-height: 0; }
  .e-con.h-sel-visuel { height: 78svh; }
  .e-con.h-sel-look { padding: 32px var(--marge); }
  body .h-sel-grille .woocommerce ul.products li.product .produit-visuel { height: auto; aspect-ratio: 3 / 4; }
}
.h-titre-c em { display: block; }
.e-con.h-sel-titre { right: var(--marge); }

/* Bandeau de services (accueils Nuit, Campagne, Diptyque, Sélection) */
.e-con.n-services { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--filet-nuit); }
.n-service { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 22px 16px; text-align: left; }
.e-con.n-services > .n-service + .n-service { border-left: 1px solid var(--filet-nuit); }
.n-service p { font-size: 12.5px; line-height: 1.45; color: var(--sable); margin: 0; }
.n-service b { color: #efe9df; font-weight: 500; }
.n-service .elementor-widget-container, .n-service > div { display: flex; align-items: center; gap: 12px; }
.n-service::before { content: ""; flex: none; width: 22px; height: 22px; background: #efe9df; -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }
.ico-livraison { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='black' stroke-width='1.4'%3E%3Cpath d='M3 9h16v13H3zM19 13h6l4 5v4h-10z'/%3E%3Ccircle cx='8.5' cy='23.5' r='2.5'/%3E%3Ccircle cx='23.5' cy='23.5' r='2.5'/%3E%3C/svg%3E"); }
.ico-monde { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='black' stroke-width='1.4'%3E%3Ccircle cx='16' cy='16' r='12'/%3E%3Cpath d='M4 16h24M16 4c3.5 3.4 5 7.4 5 12s-1.5 8.6-5 12c-3.5-3.4-5-7.4-5-12s1.5-8.6 5-12z'/%3E%3C/svg%3E"); }
.ico-paiement { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='black' stroke-width='1.4'%3E%3Crect x='7' y='14' width='18' height='13' rx='1'/%3E%3Cpath d='M11 14v-3a5 5 0 0 1 10 0v3'/%3E%3C/svg%3E"); }
.ico-retour { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='black' stroke-width='1.4'%3E%3Cpath d='M6 12h17a5 5 0 0 1 0 10H12'/%3E%3Cpath d='m10 8-4 4 4 4'/%3E%3C/svg%3E"); }
@media (max-width: 1024px) {
  .e-con.n-services { grid-template-columns: 1fr 1fr; }
  .e-con.n-services > .n-service:nth-child(3) { border-left: 0; }
  .e-con.n-services > .n-service:nth-child(n+3) { border-top: 1px solid var(--filet-nuit); }
  .n-service { justify-content: flex-start; padding: 18px var(--marge); }
}
@media (max-width: 420px) { .n-service p { font-size: 11.5px; } .n-service { gap: 10px; padding: 16px 14px; } .n-service::before { width: 18px; height: 18px; } }

/* Photos de mannequins (portrait) : cadrage ancré en haut pour ne jamais couper les visages */
.n-porte .remplir img, .gg-ligne-visuel .remplir img, .m-porte .remplir img, .collection .remplir img, .g-vignette .remplir img, .h-volet .remplir img { object-position: 50% 12% !important; }
@media (max-width: 767px) {
  .e-con.n-porte { height: 72svh; }
  .n-porte .remplir img { object-position: 50% 8% !important; }
  .h-volet .remplir img { object-position: 50% 10% !important; }
  .h-sel-visuel .remplir img { object-position: 28% 20% !important; }
  .n-gg-visuel .remplir img, .m-enfant-visuel .remplir img { object-position: 30% 22% !important; }
}

/* =====================================================================
   26. Point relais Boxtal : bloc sous le mode de livraison, carte aux couleurs du site
   ===================================================================== */
body :is(.commande-widget, .panier-widget) #shipping_method li:has(.bw-parcel-point, .ag-relais-aide) { flex-wrap: wrap !important; }
body :is(.commande-widget, .panier-widget) #shipping_method li :is(.bw-parcel-point, .ag-relais-aide) { flex: 0 0 calc(100% - 26px); max-width: calc(100% - 26px); box-sizing: border-box; margin: 8px 0 4px 26px; padding: 12px 14px; background: #fff; border: 1px solid var(--filet); font-size: 13px; line-height: 1.5; color: var(--encre); }
body :is(.commande-widget, .panier-widget) #shipping_method li .bw-parcel-point br { display: none; }
body :is(.commande-widget, .panier-widget) #shipping_method li .bw-parcel-point [class^="bw-parcel-client"] { display: block; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--gris); }
body :is(.commande-widget, .panier-widget) #shipping_method li .bw-parcel-point [class^="bw-parcel-name"] { display: block; font-size: 13.5px; letter-spacing: 0; text-transform: none; color: var(--encre); margin-top: 4px; font-weight: 500; }
body :is(.commande-widget, .panier-widget) #shipping_method li .bw-parcel-point small { display: block; color: var(--gris); font-size: 12.5px; }
body :is(.commande-widget, .panier-widget) .bw-select-parcel { display: inline-block; margin-top: 8px; font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--encre); border-bottom: 1px solid currentColor; padding-bottom: 2px; cursor: pointer; }
body :is(.commande-widget, .panier-widget) #shipping_method li .ag-relais-aide { display: block; border-style: dashed; font-weight: 400; color: var(--gris); text-align: left; white-space: normal; }
/* fenêtre de la carte */
body #bw-map { font-family: var(--police) !important; border-radius: 0 !important; }
body #bw-map .bw-modal-content, body #bw-map [class*="bw-map"] { border-radius: 0 !important; }
body #bw-map button, body #bw-map .bw-parcel-point-button, body #bw-map [class*="select"] { background: var(--encre) !important; border-color: var(--encre) !important; color: #fff !important; border-radius: 0 !important; font-family: var(--police) !important; letter-spacing: .08em; text-transform: uppercase; font-size: 10.5px !important; }
body #bw-map .maplibregl-ctrl button, body #bw-map .bw-close, body #bw-map [class*="close"] { background-color: #fff !important; color: var(--encre) !important; }
body #bw-map [class*="name"], body #bw-map b, body #bw-map strong { color: var(--encre) !important; font-family: var(--police) !important; }
/* bulle d'un repère : police du site, horaires lisibles, croix discrète */
body #bw-map .bw-marker-popup, body #bw-map .bw-marker-popup * { font-family: var(--police) !important; background-color: transparent; letter-spacing: 0; }
body #bw-map .bw-marker-popup .bw-parcel-point-button { margin: 6px 0; }
body #bw-map .maplibregl-popup-close-button { width: 28px; height: 28px; padding: 0 !important; border: 0 !important; font-size: 20px !important; line-height: 1; letter-spacing: 0; text-transform: none; background: transparent !important; color: var(--encre) !important; }
/* liste des relais aux couleurs du site */
body #bw-map #bw-pp-container, body #bw-map #bw-pp-container td { font-family: var(--police) !important; }
body #bw-map #bw-pp-container .bw-parcel-point-title, body #bw-map #bw-pp-container td a:not(.bw-parcel-point-button) { color: var(--encre) !important; font-weight: 500; }
/* téléphone : fenêtre plein écran (visible où que l'on soit dans la page), carte en haut, liste des relais en dessous */
@media (max-width: 767px) {
  body #bw-map.bw-modal-show { display: flex !important; position: fixed !important; top: 74px !important; height: calc(100dvh - 86px) !important; max-height: none !important; left: 10px !important; right: 10px !important; width: auto !important; margin: 0 !important; padding: 6px !important; }
  body #bw-map #bw-map-inner { display: flex; flex-direction: column; width: 100%; height: 100%; }
  body #bw-map #bw-map-inner #bw-map-container { float: none !important; padding-right: 0 !important; flex: 0 0 46%; }
  body #bw-map #bw-map-inner #bw-map-container #bw-map-canvas { height: 100% !important; }
  body #bw-map #bw-map-inner #bw-pp-container { display: block !important; float: none !important; width: auto !important; height: auto !important; margin: 0 !important; padding: 0 4px !important; flex: 1 1 auto; min-height: 0; overflow-y: auto; }
  body #bw-map #bw-map-inner #bw-pp-container table, body #bw-map #bw-map-inner #bw-pp-container td { width: 100% !important; }
  body #bw-map #bw-map-inner #bw-pp-container .bw-parcel-point-title { width: auto !important; white-space: normal !important; }
  body #bw-map #bw-map-inner .bw-close { top: -16px !important; right: -6px !important; }
}
/* « Déjà client ? » discret */
body .commande-widget .woocommerce-form-login-toggle.e-checkout-secondary-title { font-size: 14px !important; font-weight: 400 !important; padding: 14px 18px !important; }
body .commande-widget .woocommerce-form-login-toggle a { font-size: 14px !important; }
body #bw-map [class*="select"], body #bw-map [class*="select"] * , body #bw-map button * { color: #fff !important; -webkit-text-fill-color: #fff; }
body #bw-map .bw-close, body #bw-map .bw-close * { color: var(--encre) !important; -webkit-text-fill-color: currentColor; }
body #bw-map .bw-parcel-point-button, body #bw-map .bw-parcel-point-button * { color: #fff !important; -webkit-text-fill-color: #fff; font-weight: 500; }
body #bw-map .bw-parcel-point-button:hover { background: #3a3833 !important; }
