/*
Theme Name:   saknu. — thème enfant Divi 5
Theme URI:    https://saknu.fr/
Description:  Thème enfant de Divi 5 portant l'intégralité du style de saknu. — variables de marque, couche utilitaire .sk-* et surcharges des modules Divi.
Author:       saknu.
Template:     Divi
Version:      1.1.0
Text Domain:  saknu-child
*/

/* ==========================================================================
   saknu. — feuille de style unique du site
   --------------------------------------------------------------------------
   SOMMAIRE
   1.  VARIABLES        — couleurs, typographie, espacement, bordures, motion
   2.  POLICES          — Fraunces (locale) + Instrument Sans (locale)
   3.  BASE             — éléments HTML
   4.  DIVI — RESET     — neutralise les largeurs et marges par défaut de Divi
   5.  UTILITAIRES .sk-*— à poser dans le champ « Classe CSS » des modules
   6.  DIVI — MODULES   — boutons, images, blog, accordéon, formulaire, etc.
   7.  RESPONSIVE       — tablette et mobile
   8.  EN-TÊTE          — barre collante, burger, menu plein écran
   9.  IMPRESSION
   10. WOOCOMMERCE      — boutique, fiche patron, panier, commande, compte
   11. ARTICLES DE BLOG — page d'un article seul
   12. NEWSLETTER       — formulaire Fluent Forms (bandeau + pied de page)
   --------------------------------------------------------------------------
   Règle de travail : aucune couleur, aucune taille, aucun rayon n'est écrit
   en dur ailleurs que dans le bloc 1. Pour changer l'identité du site,
   il n'y a qu'à modifier les variables ci-dessous.
   ========================================================================== */

/* ==========================================================================
   1. VARIABLES
   ========================================================================== */

:root{

  /* --- 1.1 Couleurs : encre ---------------------------------------------- */
  /* Jamais de #000 : l'encre de la marque est un noir chaud. */
  --ink-900:#12110F;          /* texte principal, filets forts, boutons      */
  --ink-700:#2A2825;          /* survol des boutons pleins                   */
  --ink-500:#4A4741;          /* texte secondaire                            */
  --ink-300:#6E6A63;          /* texte discret — le plus clair autorisé      */

  /* --- 1.2 Couleurs : papiers -------------------------------------------- */
  /* Blancs chauds « coton naturel ». Jamais de blanc pur en fond de page.   */
  --paper-000:#FFFFFF;        /* seules cartes encadrées (tableau, form.)    */
  --paper-100:#FAF8F5;        /* fond de page                                */
  --paper-200:#F4F1EB;        /* sections alternées                          */
  --paper-300:#EDE8E0;        /* fond d'image, aplats profonds               */

  /* --- 1.3 Couleurs : pierre (filets, désactivé) ------------------------- */
  --stone-100:#E4DFD7;
  --stone-200:#D3CDC3;
  --stone-300:#B8B2A8;

  /* --- 1.4 Couleurs : terracotta (accent uniquement) --------------------- */
  /* -700 seul autorisé pour du TEXTE (5,6:1). Les autres sont graphiques.   */
  --terracotta-700:#8E4B30;
  --terracotta-600:#A85D3E;
  --terracotta-500:#B5654A;
  --terracotta-400:#C67F66;
  --terracotta-100:#F0E2DB;

  /* --- 1.5 Alias sémantiques -------------------------------------------- */
  --text-primary:var(--ink-900);
  --text-secondary:var(--ink-500);
  --text-muted:var(--ink-300);
  --text-inverse:var(--paper-100);
  --text-accent:var(--terracotta-700);

  --surface-page:var(--paper-100);
  --surface-alt:var(--paper-200);
  --surface-sunken:var(--paper-300);
  --surface-card:var(--paper-000);
  --surface-inverse:var(--ink-900);
  --surface-accent-soft:var(--terracotta-100);

  --border-hairline:#DCD6CD;
  --border-strong:var(--ink-900);
  --border-inverse:rgba(250,248,245,.28);

  --accent:var(--terracotta-700);
  --accent-hover:var(--terracotta-600);
  --accent-graphic:var(--terracotta-600);
  --focus-ring:var(--terracotta-600);

  --overlay-scrim:rgba(18,17,15,.34);
  --overlay-veil:rgba(250,248,245,.82);

  /* --- 1.6 Polices ------------------------------------------------------- */
  /* Le logotype « saknu. » est en Giaza : il reste TOUJOURS un SVG.        */
  --font-display:"Fraunces",Georgia,"Times New Roman",serif;
  --font-sans:"Instrument Sans","Helvetica Neue",Helvetica,system-ui,sans-serif;

  /* --- 1.7 Échelle typographique ---------------------------------------- */
  --fs-display-1:clamp(3.25rem,8.5vw,7.5rem);
  --fs-display-2:clamp(2.5rem,5.5vw,4.75rem);
  --fs-h1:clamp(2.125rem,4vw,3.5rem);
  --fs-h2:clamp(1.75rem,2.6vw,2.5rem);
  --fs-h3:1.375rem;
  --fs-h4:1.125rem;
  --fs-lead:clamp(1.0625rem,1.3vw,1.3125rem);
  --fs-body:1.0625rem;
  --fs-body-sm:0.9375rem;
  --fs-caption:0.8125rem;
  --fs-label:0.6875rem;

  --lh-display:0.94;
  --lh-heading:1.1;
  --lh-lead:1.55;
  --lh-body:1.7;
  --lh-tight:1.35;

  --ls-display:-0.02em;
  --ls-heading:-0.012em;
  --ls-body:0;
  --ls-label:0.16em;
  --ls-nav:0.08em;

  --fw-light:300;
  --fw-regular:400;
  --fw-medium:500;
  --fw-semibold:600;

  --measure-prose:63ch;       /* longueur de ligne du texte courant         */
  --measure-lead:46ch;        /* chapô                                       */
  --measure-display:22ch;     /* grands titres                               */

  /* --- 1.8 Espacement --------------------------------------------------- */
  --space-1:4px;  --space-2:8px;   --space-3:12px; --space-4:16px;
  --space-5:24px; --space-6:32px;  --space-7:48px; --space-8:64px;
  --space-9:96px; --space-10:128px;--space-11:180px;

  --gutter:clamp(20px,5vw,72px);        /* gouttière latérale de page       */
  --section-y:clamp(72px,10vw,180px);   /* respiration verticale d'une section */
  --section-y-tight:clamp(48px,6vw,96px);
  --grid-gap:clamp(16px,2.2vw,32px);
  --max-width:1440px;                   /* largeur maximale du contenu      */
  --max-width-narrow:760px;             /* colonne de prose                 */
  --header-h:76px;                      /* hauteur de l'en-tête collant     */
  --header-h-mobile:64px;               /* en-tête sur téléphone            */
  --burger-w:22px;                      /* largeur des deux filets du burger */
  --burger-gap:6px;                     /* écart entre les deux filets      */
  --menu-overlay:var(--paper-100);      /* fond du menu plein écran         */

  /* --- 1.9 Angles, filets, ombres --------------------------------------- */
  --radius-0:0px;             /* tout est carré, par principe               */
  --radius-xs:2px;            /* champs de saisie, au maximum               */
  --radius-pill:999px;        /* puces et anneau de curseur seulement       */

  --border-w:1px;
  --border-w-strong:1.5px;
  --hairline:1px solid var(--border-hairline);
  --rule-ink:1px solid var(--ink-900);

  --shadow-none:none;
  --shadow-sticky:0 1px 0 0 var(--border-hairline);
  --shadow-overlay:0 24px 60px -24px rgba(18,17,15,.22);
  --inset-image:inset 0 0 0 1px rgba(18,17,15,.06);

  /* --- 1.10 Animation --------------------------------------------------- */
  --dur-1:160ms; --dur-2:280ms; --dur-3:520ms; --dur-4:900ms;
  --ease-out:cubic-bezier(.22,.61,.36,1);
  --ease-inout:cubic-bezier(.65,.05,.36,1);
  --ease-linen:cubic-bezier(.16,.84,.34,1);
  --reveal-shift:18px;        /* glissement de l'apparition au défilement   */
  --stagger:70ms;             /* décalage entre deux éléments               */
  --hover-zoom:1.035;         /* zoom d'image au survol                     */
  --cursor-size:12px;         /* anneau de curseur au repos                 */
  --cursor-size-active:76px;  /* anneau déployé sur [data-cursor]           */

  /* --- 1.11 Ratios d'image ---------------------------------------------- */
  --ratio-portrait:3 / 4;
  --ratio-tall:4 / 5;
  --ratio-square:1 / 1;
  --ratio-wide:16 / 9;
  --ratio-banner:21 / 9;
}


/* ==========================================================================
   2. POLICES
   Fraunces et Instrument Sans sont toutes les deux déposées dans le thème
   enfant (auto-hébergées). Instrument Sans n'est plus chargée via Google
   Fonts : si l'appel existe encore dans functions.php, il peut être retiré.
   Le fichier fourni ne contient ni axe SOFT/WONK ni italique réelle :
   ne JAMAIS utiliser d'italique en titrage.
   ========================================================================== */

@font-face{
  font-family:"Fraunces";
  src:url("/wp-content/themes/saknu-child/assets/fonts/Fraunces.woff2") format("woff2");
  font-weight:100 900;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"Instrument Sans";
  src:url("/wp-content/themes/saknu-child/assets/fonts/InstrumentSans.woff2") format("woff2");
  font-weight:400 700;font-stretch:75% 100%;font-style:normal;font-display:swap;
}

/* Boutique : forcer les polices de la marque */
.post-type-archive-product,
.tax-product_cat,
.post-type-archive-product .et_pb_module,
.tax-product_cat .et_pb_module,
.post-type-archive-product p,
.post-type-archive-product li,
.post-type-archive-product a,
.post-type-archive-product .price{
  font-family:var(--font-sans)!important;
}
.post-type-archive-product h1,.post-type-archive-product h2,
.post-type-archive-product h3,.post-type-archive-product h4,
.tax-product_cat h1,.tax-product_cat h2,.tax-product_cat h3,
.post-type-archive-product .woocommerce-loop-product__title,
.tax-product_cat .woocommerce-loop-product__title{
  font-family:var(--font-display)!important;
}

/* ==========================================================================
   3. BASE
   ========================================================================== */

body,
body.et-db #et-boc .et-l{
  background:var(--surface-page);
  color:var(--text-primary);
  font-family:var(--font-sans);
  font-size:var(--fs-body);
  line-height:var(--lh-body);
  font-weight:var(--fw-regular);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

h1,h2,h3,h4,h5,h6,
.et_pb_module h1,.et_pb_module h2,.et_pb_module h3,.et_pb_module h4{
  font-family:var(--font-display);
  font-weight:var(--fw-regular);
  line-height:var(--lh-heading);
  letter-spacing:var(--ls-heading);
  color:var(--text-primary);
  text-wrap:pretty;
}
h1,.et_pb_module h1{font-size:var(--fs-h1)}
h2,.et_pb_module h2{font-size:var(--fs-h2)}
h3,.et_pb_module h3{font-size:var(--fs-h3)}
h4,.et_pb_module h4{font-size:var(--fs-h4)}

p{margin:0 0 1em;text-wrap:pretty}
p:last-child{margin-bottom:0}

a{color:var(--text-primary);text-decoration:none;transition:color var(--dur-1) var(--ease-out)}
a:hover,a:focus{color:var(--accent)}

img{display:block;max-width:100%;height:auto}
hr{border:0;border-top:var(--hairline);margin:var(--space-7) 0}
::selection{background:var(--terracotta-100);color:var(--ink-900)}
:focus-visible{outline:var(--border-w-strong) solid var(--focus-ring);outline-offset:3px}

strong,b{font-weight:var(--fw-semibold)}
small{font-size:var(--fs-caption);color:var(--text-muted)}
table{border-collapse:collapse;width:100%}



/* ==========================================================================
   4. DIVI — RESET
   Divi impose une largeur de 80 %, des marges de section et des gouttières.
   On rend la main à nos variables : les sections gèrent leur padding, les
   lignes gèrent leur largeur maximale.
   ========================================================================== */

.et_pb_section{background-color:transparent;padding:0}
.et_pb_row{
  width:100%;
  max-width:var(--max-width);
  padding:0;
  margin-left:auto;
  margin-right:auto;
}
.et_pb_row.sk-row--narrow{max-width:var(--max-width-narrow)}
.et_pb_column{margin-bottom:0}
.et_pb_module{margin-bottom:0}
.et_pb_text_inner > *:last-child{margin-bottom:0}

/* Gouttière latérale unique, portée par la section. */
.et_pb_section.sk-section,
.et_pb_section.sk-section--tight,
.et_pb_section.sk-section--flush{padding-left:var(--gutter);padding-right:var(--gutter)}
.et_pb_section.sk-section{padding-top:var(--section-y);padding-bottom:var(--section-y)}
.et_pb_section.sk-section--tight{padding-top:var(--section-y-tight);padding-bottom:var(--section-y-tight)}
.et_pb_section.sk-section--flush{padding-top:0!important;padding-bottom:0!important}
@media (max-width:980px){
  .et_pb_section.sk-section--flush{padding-top:0!important;padding-bottom:0!important}
}
.et_pb_section.sk-page-header{
  margin-top:3.5rem;
}
.sk-section--alt{background:var(--surface-alt)}
.sk-section--sunken{background:var(--surface-sunken)}
.sk-section--card{background:var(--surface-card)}
.sk-section--accent-soft{background:var(--surface-accent-soft)}
.sk-pt-0{padding-top:0!important}
.sk-pb-0{padding-bottom:0!important}

/* --- 4.1 Gabarit unique : en-tête, contenu, pied de page (déplacé depuis
   la fin du fichier, hors section « 9. IMPRESSION » où il ne devrait pas être) --- */
.et_pb_section.sk-header,
.et_pb_section.sk-section,
.et_pb_section.sk-section--tight,
.et_pb_section.sk-section--flush,
.et_pb_section.sk-footer{
  padding-left:var(--gutter)!important;
  padding-right:var(--gutter)!important;
}
.sk-header > .et_pb_row,
.sk-footer > .et_pb_row,
.et_pb_section.sk-section > .et_pb_row,
.et_pb_section.sk-section--tight > .et_pb_row,
.et_pb_section.sk-section--flush > .et_pb_row{
  width:100%!important;
  max-width:var(--max-width)!important;
  margin-left:auto!important;margin-right:auto!important;
  padding-left:0!important;padding-right:0!important;
}
.sk-header > .et_pb_row > .et_pb_column,
.et_pb_section.sk-section > .et_pb_row > .et_pb_column{
  padding-left:0!important;padding-right:0!important;
}

/* Section à rangée étroite (ex. inscription lettre sur image de fond) */
.et_pb_section.sk-section--etroite > .et_pb_row{
  width:100%!important;
  max-width:560px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.sk-section--etroite input[type="text"],
.sk-section--etroite input[type="email"]{
  padding-left:0!important;
}

/* ==========================================================================
   5. UTILITAIRES .sk-*
   À taper dans Divi → réglages du module → Avancé → Classe CSS.
   ========================================================================== */

/* --- 5.1 Rythme et prose ------------------------------------------------ */
.sk-wrap{max-width:var(--max-width);margin-inline:auto}
.sk-prose,.sk-prose .et_pb_text_inner{max-width:var(--measure-prose);color:var(--text-secondary)}
.sk-prose h2{margin:var(--space-8) 0 var(--space-4);color:var(--text-primary)}
.sk-prose h3{margin:var(--space-7) 0 var(--space-3);color:var(--text-primary)}
.sk-prose ul,.sk-prose ol{margin:0 0 1em;padding-left:1.15em}
.sk-prose li{margin-bottom:.5em}
.sk-rule{border:0;border-top:var(--hairline);margin:var(--space-7) 0}
.sk-rule--ink{border-top:var(--rule-ink)}
.sk-top-rule{border-top:var(--rule-ink);padding-top:var(--space-5)}
.sk-top-hairline{border-top:var(--hairline);padding-top:var(--space-5)}
.sk-center{text-align:center;margin-inline:auto}

/* --- 5.2 Typographie ---------------------------------------------------- */
.sk-display,.sk-display h1,.sk-display h2,.sk-display .et_pb_text_inner > *{
  font-family:var(--font-display);
  font-weight:var(--fw-regular);
  font-size:var(--fs-display-1);
  line-height:var(--lh-display);
  letter-spacing:var(--ls-display);
  max-width:var(--measure-display);
}
.sk-display--2,.sk-display--2 h1,.sk-display--2 h2{font-size:var(--fs-display-2)}
.sk-title,.sk-title h1,.sk-title h2{
  font-family:var(--font-display);
  font-weight:var(--fw-regular);
  font-size:var(--fs-h1);
  line-height:var(--lh-heading);
  letter-spacing:var(--ls-heading);
  max-width:24ch;
}
.sk-lead,.sk-lead p{
  max-width:var(--measure-lead);
  font-size:var(--fs-lead);
  line-height:var(--lh-lead);
  color:var(--text-secondary);
}
.sk-lead--wide,.sk-lead--wide p{max-width:var(--measure-prose)}
.sk-body,.sk-body p{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text-secondary);max-width:var(--measure-prose)}
.sk-small,.sk-small p{font-size:var(--fs-body-sm);line-height:var(--lh-body);color:var(--text-secondary)}
.sk-caption,.sk-caption p{font-size:var(--fs-caption);color:var(--text-muted)}
.sk-eyebrow,.sk-eyebrow p{
  margin:0;
  font-size:var(--fs-label);
  font-weight:var(--fw-medium);
  letter-spacing:var(--ls-label);
  text-transform:uppercase;
  color:var(--text-muted);
  line-height:1.4;
}
.sk-eyebrow--accent,.sk-eyebrow--accent p{color:var(--text-accent)}
.sk-num,.sk-num p,.sk-num td{font-variant-numeric:tabular-nums}
.sk-accent,.sk-accent p{color:var(--text-accent)}

/* Numéro de section : chiffre en Fraunces suivi d'un court filet. */
.sk-sectionnum p{
  margin:0 0 var(--space-4);
  font-family:var(--font-display);
  font-size:var(--fs-h3);
  color:var(--text-accent);
  display:flex;
  align-items:center;
  gap:var(--space-3);
}
.sk-sectionnum p::after{content:"";display:block;width:36px;height:1px;background:var(--accent-graphic);opacity:.55}

/* --- 5.3 Boutons -------------------------------------------------------- */
.et_pb_button.sk-btn,
.sk-btn .et_pb_button,
a.sk-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--space-3);
  min-height:44px;
  padding:15px 30px!important;
  font-family:var(--font-sans)!important;
  font-size:11px!important;
  font-weight:var(--fw-medium)!important;
  letter-spacing:var(--ls-label)!important;
  text-transform:uppercase;
  line-height:1;
  border:var(--border-w) solid var(--ink-900)!important;
  border-radius:var(--radius-0)!important;
  background:var(--ink-900)!important;
  color:var(--paper-100)!important;
  transition:background var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-out);
}
.et_pb_button.sk-btn:hover,a.sk-btn:hover{
  background:var(--ink-700)!important;
  color:var(--paper-100)!important;
  transform:translateY(-1px);
  padding:15px 30px!important;
}
.et_pb_button.sk-btn:active,a.sk-btn:active{transform:none}
.et_pb_button.sk-btn--lg{padding:19px 40px!important;font-size:12px!important}
.et_pb_button.sk-btn--lg:hover{padding:19px 40px!important}
.et_pb_button.sk-btn--sm{padding:10px 18px!important;font-size:10px!important}
.et_pb_button.sk-btn--sm:hover{padding:10px 18px!important}
.et_pb_button.sk-btn--secondary{background:transparent!important;color:var(--ink-900)!important}
.et_pb_button.sk-btn--secondary:hover{background:var(--ink-900)!important;color:var(--paper-100)!important}
.et_pb_button.sk-btn--accent{background:transparent!important;color:var(--accent)!important;border-color:var(--accent)!important}
.et_pb_button.sk-btn--accent:hover{background:var(--accent)!important;color:var(--paper-100)!important}
/* Divi ajoute une flèche en ::after — on la retire, le mot suffit. */
.et_pb_button.sk-btn::after,.et_pb_button.sk-btn::before{display:none!important}

/* Deux boutons côte à côte, qui passent l'un sous l'autre en étroit. */
.sk-btnrow,
.sk-btnrow .et_pb_text_inner{
  display:flex;flex-wrap:wrap;
  gap:var(--space-4);
  align-items:center;
  margin-top:var(--space-9);
}
.sk-btnrow .et_pb_button_module_wrapper,
.sk-btnrow .et_pb_module{margin:0!important}

/* --- 5.4 Liens soulignés au survol -------------------------------------- */
.sk-link,
.sk-link a,
.sk-linklist a{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:var(--space-2);
  font-size:var(--fs-body-sm);
  letter-spacing:var(--ls-nav);
  color:var(--ink-900);
  padding-bottom:3px;
  transition:color var(--dur-1) var(--ease-out);
}
.sk-link a::after,.sk-linklist a::after{
  content:"";
  position:absolute;
  left:0;bottom:0;
  width:100%;height:1px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform var(--dur-2) var(--ease-out);
}
.sk-link a:hover,.sk-linklist a:hover{color:var(--accent)}
.sk-link a:hover::after,.sk-linklist a:hover::after{transform:scaleX(1)}
/* Flèche typographique, ajoutée par le CSS et non par une icône. */
.sk-link--arrow a::before{content:"";order:2;width:18px;height:1px;background:currentColor;transition:width var(--dur-2) var(--ease-out)}
.sk-link--arrow a:hover::before{width:28px}

/* --- 5.5 Étiquettes et facettes ----------------------------------------- */
.sk-tag{
  display:inline-flex;align-items:center;
  padding:6px 12px;
  font-size:var(--fs-label);font-weight:var(--fw-medium);
  letter-spacing:var(--ls-label);text-transform:uppercase;line-height:1;
  border:var(--border-w) solid var(--border-hairline);
  border-radius:var(--radius-pill);
  color:var(--text-secondary);
}
.sk-tag--accent{border-color:var(--accent-graphic);color:var(--text-accent)}
.sk-tag--soft{border-color:transparent;background:var(--terracotta-100);color:var(--text-accent)}
.sk-tags{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}

.sk-chips{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}
.sk-chip{
  display:inline-flex;align-items:center;gap:var(--space-2);
  min-height:36px;padding:9px 16px;
  font-size:var(--fs-caption);letter-spacing:var(--ls-nav);
  border:var(--border-w) solid var(--border-hairline);
  border-radius:var(--radius-0);
  background:transparent;color:var(--ink-900);cursor:pointer;
  transition:border-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out),background var(--dur-1) var(--ease-out);
}
.sk-chip:hover{border-color:var(--accent);color:var(--accent)}
.sk-chip.is-active{background:var(--ink-900);border-color:var(--ink-900);color:var(--paper-100)}
.sk-chip__count{font-size:var(--fs-label);color:var(--text-muted);font-variant-numeric:tabular-nums}
.sk-chip.is-active .sk-chip__count{color:var(--stone-200)}

/* Barre de facettes collante, sous l'en-tête. */
.sk-facets{
  position:sticky;top:var(--header-h);z-index:20;
  background:var(--overlay-veil);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border-top:var(--hairline);border-bottom:var(--hairline);
}
.sk-facets .et_pb_row{padding-top:var(--space-4);padding-bottom:var(--space-4)}

/* --- 5.6 Grilles et images ---------------------------------------------- */
.sk-media,.et_pb_image.sk-media{
  position:relative;overflow:hidden;
  background:var(--paper-200);
  box-shadow:var(--inset-image);
}
.et_pb_image.sk-media .et_pb_image_wrap{display:block;width:100%;height:100%}
.sk-media img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-4) var(--ease-linen)}
.sk-media:hover img{transform:scale(var(--hover-zoom))}
.sk-ratio-portrait .et_pb_image_wrap,.sk-ratio-portrait img{aspect-ratio:var(--ratio-portrait)}
.sk-ratio-tall .et_pb_image_wrap,.sk-ratio-tall img{aspect-ratio:var(--ratio-tall)}
.sk-ratio-square .et_pb_image_wrap,.sk-ratio-square img{aspect-ratio:var(--ratio-square)}
.sk-ratio-wide .et_pb_image_wrap,.sk-ratio-wide img{aspect-ratio:var(--ratio-wide)}
.sk-ratio-banner .et_pb_image_wrap,.sk-ratio-banner img{aspect-ratio:var(--ratio-banner)}
/* Décalage volontaire d'une image sur deux (asymétrie de la marque). */
.sk-offset{margin-top:var(--space-6)}
.sk-offset-lg{margin-top:var(--space-8)}

/* --- 5.7 Carte patron / carte article ----------------------------------- */
.sk-card__body,.sk-card__body .et_pb_text_inner{padding-top:var(--space-4)}
.sk-card__row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4)}
.sk-card__title{
  font-family:var(--font-display);font-size:var(--fs-h4);line-height:1.2;margin:0;
  transition:color var(--dur-1) var(--ease-out);
}
.sk-card__title a{color:inherit}
.sk-card__price{font-family:var(--font-display);font-size:var(--fs-h4);font-variant-numeric:tabular-nums;white-space:nowrap}
.sk-card__meta{margin:var(--space-2) 0 0;font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted)}
.sk-card__excerpt{margin:var(--space-3) 0 0;max-width:38ch;font-size:var(--fs-body-sm);line-height:1.6;color:var(--text-secondary)}
.et_pb_column:hover .sk-card__title,.sk-card:hover .sk-card__title{color:var(--accent)}
.et_pb_column:hover .sk-media img{transform:scale(var(--hover-zoom))}
.sk-card__foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-4)}

/* Jauge de niveau : trois traits. */
.sk-level{display:inline-flex;align-items:center;gap:3px;vertical-align:middle}
.sk-level span{display:block;width:18px;height:2px;background:var(--stone-200)}
.sk-level span.is-on{background:var(--ink-900)}
.sk-level__label{margin-left:var(--space-3);font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted)}

/* Étoiles : caractères typographiques, aucun graphisme. */
.sk-stars{display:inline-flex;align-items:center;gap:var(--space-3);font-size:var(--fs-body-sm)}
.sk-stars__glyphs{letter-spacing:.12em;color:var(--accent-graphic)}
.sk-stars__count{color:var(--text-muted);font-size:var(--fs-caption);font-variant-numeric:tabular-nums}

/* --- 5.8 Bande de réassurance ------------------------------------------- */
/* Module Code par colonne : le filet, l'icône, le titre et le texte sont en style inline. */
@media (min-width:981px){
  .sk-trust .et_pb_column:nth-child(2){margin-top:var(--drop-sm)}
}
@media (max-width:980px){
  .sk-trust .et_pb_column{margin-bottom:var(--space-7)}
}

/* --- 5.9 Cartouches encadrés (les deux seules exceptions) --------------- */
.sk-panel,.sk-panel .et_pb_text_inner{background:var(--surface-card);border:var(--hairline);padding:var(--space-6)}
.sk-panel--pad{padding:var(--space-7)}

/* Tableau de caractéristiques produit. */
.sk-spec table{font-size:var(--fs-body-sm);color:var(--text-secondary)}
.sk-spec th{text-align:left;font-weight:var(--fw-medium);color:var(--text-primary);width:45%;padding:var(--space-3) 0;border-bottom:var(--hairline)}
.sk-spec td{padding:var(--space-3) 0;border-bottom:var(--hairline);font-variant-numeric:tabular-nums}
.sk-spec tr:last-child th,.sk-spec tr:last-child td{border-bottom:0}

/* Liste de réassurance en filets. */
.sk-reassure ul{list-style:none;margin:0;padding:0;border-top:var(--hairline)}
.sk-reassure li{padding:var(--space-4) 0;border-bottom:var(--hairline);font-size:var(--fs-body-sm);line-height:var(--lh-body);color:var(--text-secondary)}

/* --- 5.10 Citation ------------------------------------------------------ */
.sk-quote blockquote,.sk-quote{border:0;margin:0;padding:0;background:none}
.sk-quote p{
  font-family:var(--font-display);
  font-size:var(--fs-h2);
  line-height:var(--lh-heading);
  letter-spacing:var(--ls-heading);
  color:var(--text-primary);
  max-width:32ch;
  margin:0;
}
.sk-quote cite,.sk-quote footer{
  display:block;margin-top:var(--space-5);
  font-family:var(--font-sans);font-style:normal;
  font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted);
}

/* --- 5.11 Fil d'Ariane, pagination -------------------------------------- */
.sk-crumbs,.sk-crumbs p{margin:0;font-size:var(--fs-caption);color:var(--text-muted);display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}
.sk-crumbs a{color:var(--text-muted)}
.sk-crumbs a:hover{color:var(--accent)}
.sk-crumbs span[aria-current]{color:var(--text-primary)}

.sk-pager{display:flex;gap:var(--space-2);align-items:center;justify-content:center;font-variant-numeric:tabular-nums}
.sk-pager a,.sk-pager span{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:44px;min-height:44px;
  font-size:var(--fs-body-sm);
  border:var(--border-w) solid transparent;
}
.sk-pager a:hover{border-color:var(--border-hairline);color:var(--accent)}
.sk-pager .is-current{border-color:var(--ink-900)}

/* --- 5.12 Sommaire latéral (pages légales) ------------------------------ */
.sk-toc{position:sticky;top:calc(var(--header-h) + var(--space-6))}
.sk-toc ul{list-style:none;margin:0;padding:0;border-top:var(--rule-ink)}
.sk-toc li{border-bottom:var(--hairline)}
.sk-toc a{display:block;padding:var(--space-3) 0;font-size:var(--fs-body-sm);color:var(--text-secondary)}
.sk-toc a:hover{color:var(--accent)}

/* --- 5.13 Colonne collante (fiche patron) ------------------------------- */
@media (min-width:981px){
  .sk-sticky{position:sticky;top:calc(var(--header-h) + var(--space-6))}
}

/* --- 5.14 Panier -------------------------------------------------------- */
.sk-cartline{display:grid;grid-template-columns:96px 1fr auto;gap:var(--space-5);align-items:start;padding:var(--space-6) 0;border-bottom:var(--hairline)}
.sk-cartline:first-child{border-top:var(--rule-ink)}
.sk-cartline__thumb{background:var(--paper-200);aspect-ratio:var(--ratio-square);box-shadow:var(--inset-image)}
.sk-cartline__title{font-family:var(--font-display);font-size:var(--fs-h4);margin:0 0 var(--space-2)}
.sk-cartline__meta{font-size:var(--fs-caption);color:var(--text-muted);margin:0}
.sk-cartline__price{font-family:var(--font-display);font-size:var(--fs-h4);font-variant-numeric:tabular-nums}
.sk-total{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-5);padding:var(--space-6) 0;border-top:var(--rule-ink)}
.sk-total__label{font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted)}
.sk-total__value{font-family:var(--font-display);font-size:var(--fs-h2);font-variant-numeric:tabular-nums}

/* --- 5.15 Apparition au défilement -------------------------------------- */
.sk-reveal{
  opacity:0;
  transform:translateY(var(--reveal-shift));
  transition:opacity var(--dur-3) var(--ease-out),transform var(--dur-3) var(--ease-out);
  will-change:opacity,transform;
}
.sk-reveal.is-in{opacity:1;transform:none}
.sk-reveal.sk-d1{transition-delay:70ms}
.sk-reveal.sk-d2{transition-delay:140ms}
.sk-reveal.sk-d3{transition-delay:210ms}
.sk-reveal.sk-d4{transition-delay:280ms}
/* Les colonnes d'une grille se décalent d'elles-mêmes. */
.sk-stagger > .et_pb_column:nth-child(2) .sk-reveal{transition-delay:70ms}
.sk-stagger > .et_pb_column:nth-child(3) .sk-reveal{transition-delay:140ms}
.sk-stagger > .et_pb_column:nth-child(4) .sk-reveal{transition-delay:210ms}

/* --- 5.16 Curseur personnalisé ------------------------------------------ */
.sk-cursor{
  position:fixed;top:0;left:0;z-index:99999;
  pointer-events:none;
  display:grid;place-items:center;
  width:var(--cursor-size);height:var(--cursor-size);
  border:var(--border-w) solid var(--ink-900);
  border-radius:var(--radius-pill);
  background:transparent;
  color:var(--text-accent);
  font-family:var(--font-sans);
  font-size:9px;letter-spacing:var(--ls-label);text-transform:uppercase;
  transition:width var(--dur-2) var(--ease-out),height var(--dur-2) var(--ease-out),
             background var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out);
}
.sk-cursor.is-active{
  width:var(--cursor-size-active);height:var(--cursor-size-active);
  border-color:var(--accent-graphic);
  background:var(--overlay-veil);
}
[data-cursor]{cursor:pointer}
@media (hover:none),(pointer:coarse){.sk-cursor{display:none}}


/* --- 5.17 Listes de définitions (article, contact) ---------------------- */
.sk-deflist dl,.sk-infolist dl{margin:0;border-top:var(--rule-ink)}
.sk-deflist dl > div,.sk-infolist dl > div{padding:var(--space-4) 0;border-bottom:var(--hairline)}
.sk-deflist dl > div{display:flex;flex-wrap:wrap;gap:var(--space-4)}
.sk-deflist dt{flex:0 0 34%;min-width:140px;font-weight:var(--fw-medium);color:var(--text-primary)}
.sk-deflist dd{flex:1 1 240px;margin:0}
.sk-infolist dt{font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted)}
.sk-infolist dd{margin:var(--space-2) 0 0;font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text-secondary)}
.sk-infolist a{color:var(--text-accent)}
.sk-label{display:block;font-size:var(--fs-label);font-weight:var(--fw-medium);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-3)}

/* --- 5.18 Liste de chemins utiles (page 404) ---------------------------- */
.sk-paths ul{list-style:none;margin:0;padding:0;border-top:var(--rule-ink);max-width:520px}
.sk-paths li{padding:var(--space-4) 0;border-bottom:var(--hairline)}
.sk-paths li a{font-size:var(--fs-body);color:var(--text-primary)}
.sk-paths li span{display:block;margin-top:var(--space-2);font-size:var(--fs-caption);color:var(--text-muted)}

/* --- 5.19 Récapitulatif du panier --------------------------------------- */
.sk-summary h2{font-family:var(--font-sans);font-size:var(--fs-label);font-weight:var(--fw-medium);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted);margin:0 0 var(--space-5)}
.sk-total-line{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:var(--hairline);font-size:var(--fs-body-sm);color:var(--text-secondary)}
.sk-total-line .sk-num{font-variant-numeric:tabular-nums}
.sk-cartline__actions{margin:var(--space-4) 0 0;display:flex;flex-wrap:wrap;gap:var(--space-5);align-items:center;font-size:var(--fs-caption)}
.sk-cartline__actions .sk-qty{border:var(--hairline);padding:8px 12px;color:var(--text-secondary)}
.sk-reassure-soft ul{list-style:none;margin:var(--space-5) 0 0;padding:0;display:grid;gap:var(--space-3);line-height:var(--lh-body)}



/* ==========================================================================
   6. DIVI — MODULES
   ========================================================================== */

/* --- 6.1 Hero (accueil) -------------------------------------------------- */
.et_pb_section.sk-hero{
  padding-top:clamp(40px,6vw,72px);
  padding-bottom:clamp(56px,7vw,96px);
}
.sk-hero .et_pb_row{align-items:center}
.sk-hero__text > .et_pb_module{margin-bottom:0}
.sk-hero .sk-display{margin-bottom:var(--space-7)}
.sk-hero .sk-lede{margin-bottom:var(--space-9)}

/* Le chapô : plus grand que le texte courant, sans devenir un titre. */
.sk-lede,.sk-lede p{
  margin:0;
  max-width:46ch;
  font-size:var(--fs-lead);
  line-height:1.55;
  color:var(--text-secondary);
}

/* Les trois faits : un filet au-dessus, pas de pastilles. */
.sk-hero__facts .et_pb_text_inner{
  display:flex;flex-wrap:wrap;
  gap:clamp(20px,3vw,40px);
  margin-top:var(--space-8);
  padding-top:var(--space-6);
  border-top:var(--hairline);
  font-size:var(--fs-body-sm);
  color:var(--text-muted);
}
.sk-hero__facts .et_pb_text_inner > p{margin:0;display:contents}

/* --- 6.2 Cartes d'articles (accueil + page "Le journal") ---------------- */
/* Cible les classes reellement rendues par Divi (.et_pb_post), quel que
   soit le contexte -- bloc "Blog" en grille sur l'accueil, liste classique
   sur /journal/. Les anciennes classes .sk-blog / .et_pb_blog_grid ne
   correspondaient a aucun element reel du site : ces styles n'etaient donc
   jamais appliques, d'ou les tailles/polices par defaut de Divi visibles
   sur les cartes. */
.et_pb_post{
  background:transparent;border:0;padding:0;margin-bottom:var(--space-8);
  box-shadow:none;
  font-family:var(--font-sans);font-size:var(--fs-body-sm);line-height:1.6;color:var(--text-secondary);
}
.et_pb_post .et_pb_image_container{margin:0 0 var(--space-4)}
.et_pb_post .et_pb_image_container img{box-shadow:var(--inset-image);transition:transform var(--dur-4) var(--ease-linen)}
.et_pb_post:hover .et_pb_image_container img{transform:scale(var(--hover-zoom))}
.et_pb_post h2.entry-title,
.et_pb_post .entry-title{
  font-family:var(--font-display)!important;font-size:var(--fs-h4)!important;
  font-weight:var(--fw-regular);line-height:1.25;margin:0 0 var(--space-3);
  color:var(--text-primary);
}
.et_pb_post .entry-title a{color:var(--text-primary)}
.et_pb_post:hover .entry-title a{color:var(--accent)}
.et_pb_post .post-meta{
  font-family:var(--font-sans);font-size:var(--fs-label);letter-spacing:var(--ls-label);
  text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-3);
}
.et_pb_post .post-content-inner p{max-width:42ch}
.et_pb_post .more-link{
  display:inline-block;margin-top:var(--space-3);
  font-family:var(--font-sans);font-size:var(--fs-caption);letter-spacing:var(--ls-nav);color:var(--ink-900);
  border-bottom:var(--border-w) solid transparent;
}
.et_pb_post .more-link:hover{color:var(--accent);border-bottom-color:currentColor}
#left-area .pagination{padding-top:var(--space-7);border-top:var(--hairline)}
#left-area .pagination a{font-size:var(--fs-body-sm);color:var(--ink-900)}
/* --- 6.2b Découpe éditoriale asymétrique --------------------------------- */
/* Jamais deux moitiés égales : une colonne porte, l'autre respire.
   Le sens du décroché s'inverse d'une section à l'autre. */
.sk-split__wide > .et_pb_module:last-child{margin-bottom:0}
.sk-split .sk-h2{margin:0 0 var(--space-6)}
.sk-split .sk-eyebrow{margin-bottom:var(--space-4)}
.sk-split .sk-body p:last-child{margin-bottom:0}

/* --- 6.3 Accordéon / dépliants (FAQ) ------------------------------------ */
.et_pb_accordion.sk-accordion .et_pb_toggle,
.et_pb_toggle.sk-toggle{
  background:transparent!important;
  border:0;border-bottom:var(--hairline);
  border-radius:var(--radius-0);
  padding:0!important;margin:0!important;
  box-shadow:none;
}
.et_pb_accordion.sk-accordion .et_pb_toggle:first-child{border-top:var(--hairline)}
.sk-accordion .et_pb_toggle_title,
.sk-toggle .et_pb_toggle_title{
  position:relative;
  font-family:var(--font-display)!important;
  font-size:var(--fs-h4)!important;
  font-weight:var(--fw-regular)!important;
  line-height:1.25!important;
  color:var(--text-primary)!important;
  padding:var(--space-6) 48px var(--space-6) 0!important;
  margin:0!important;
  cursor:pointer;
  transition:color var(--dur-2) var(--ease-out);
}
.sk-accordion .et_pb_toggle_title:hover{color:var(--text-accent)!important}
.sk-accordion .et_pb_toggle_open .et_pb_toggle_title,
.sk-toggle.et_pb_toggle_open .et_pb_toggle_title{
  color:var(--text-primary)!important;
  padding-bottom:var(--space-4)!important;
}
.sk-accordion .et_pb_toggle_content,
.sk-toggle .et_pb_toggle_content{
  padding:0 48px var(--space-7) 0!important;
  margin:0!important;
  max-width:var(--measure-prose);
  font-size:var(--fs-body)!important;
  line-height:var(--lh-body)!important;
  color:var(--text-secondary)!important;
}
.sk-accordion .et_pb_toggle_content p:last-child{margin-bottom:0}
/* Le + / − de Divi, redessiné en deux filets croisés. */
.sk-accordion .et_pb_toggle_title::before,
.sk-toggle .et_pb_toggle_title::before,
.sk-accordion .et_pb_toggle_title::after,
.sk-toggle .et_pb_toggle_title::after{
  content:""!important;
  position:absolute;
  top:calc(var(--space-6) + 0.62em);
  right:2px;
  width:15px;height:1px;
  background:var(--ink-900);
  border:0;
  font-size:0;
}
.sk-accordion .et_pb_toggle_title::after,
.sk-toggle .et_pb_toggle_title::after{
  transform:rotate(90deg);
  transition:transform var(--dur-2) var(--ease-out);
}
.sk-accordion .et_pb_toggle_open .et_pb_toggle_title::after,
.sk-toggle.et_pb_toggle_open .et_pb_toggle_title::after{transform:rotate(0deg)}

/* --- 6.4 Formulaire de contact ------------------------------------------ */
.et_pb_contact_form_container.sk-form{
  background:var(--surface-card);
  border:var(--hairline);
  padding:var(--space-7);
}
.sk-form .et_pb_contact_form_label,
.sk-form .et_pb_contact_field label{
  display:block!important;
  font-size:var(--fs-label);
  font-weight:var(--fw-medium);
  letter-spacing:var(--ls-label);
  text-transform:uppercase;
  color:var(--text-muted);
  margin-bottom:var(--space-3);
}
.sk-form .et_pb_contact_field{padding:0 var(--space-5) var(--space-6) 0}
.sk-form .input,
.sk-form input[type=text],
.sk-form input[type=email],
.sk-form input[type=tel],
.sk-form textarea,
.sk-form select{
  width:100%;
  background:transparent!important;
  border:0!important;
  border-bottom:var(--border-w) solid var(--border-hairline)!important;
  border-radius:var(--radius-xs)!important;
  padding:0 0 12px!important;
  font-family:var(--font-sans)!important;
  font-size:var(--fs-body)!important;
  color:var(--text-primary)!important;
  box-shadow:none!important;
}
.sk-form .input:focus,.sk-form textarea:focus,.sk-form select:focus{border-bottom-color:var(--ink-900)!important;outline:none}
.sk-form .input::placeholder,.sk-form textarea::placeholder{color:var(--text-muted);opacity:.45}
.sk-form textarea{min-height:170px;resize:vertical}
.sk-form .et_pb_contact_field_options_title{
  font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted);
}
.sk-form .et_pb_contact_field_checkbox label,
.sk-form .et_pb_contact_field_radio label{
  text-transform:none;letter-spacing:0;font-size:var(--fs-body-sm);color:var(--text-secondary);font-weight:var(--fw-regular);
}
.sk-form .et_pb_contact_field_checkbox i{
  border:var(--border-w) solid var(--border-hairline);border-radius:var(--radius-0);background:transparent;
}
.sk-form .et_pb_contact_field_checkbox input:checked + label i::before{color:var(--ink-900)}
.sk-form .et_contact_bottom_container{margin:0;padding-top:var(--space-4);float:none;text-align:left}
.sk-form .et_pb_contact_submit{
  min-height:44px;
  padding:15px 30px!important;
  font-family:var(--font-sans)!important;font-size:11px!important;font-weight:var(--fw-medium)!important;
  letter-spacing:var(--ls-label)!important;text-transform:uppercase;line-height:1;
  border:var(--border-w) solid var(--ink-900)!important;border-radius:var(--radius-0)!important;
  background:var(--ink-900)!important;color:var(--paper-100)!important;
}
.sk-form .et_pb_contact_submit:hover{background:var(--ink-700)!important;color:var(--paper-100)!important;padding:15px 30px!important;transform:translateY(-1px)}
.sk-form .et_pb_contact_submit::after{display:none!important}
.sk-form .et_pb_contact_captcha_question,.sk-form .et_pb_contact_right p{font-size:var(--fs-body-sm);color:var(--text-secondary)}
.sk-form .et-pb-contact-message{font-size:var(--fs-body);color:var(--text-primary)}
.sk-form .et-pb-contact-message ul{list-style:none;padding:0;color:var(--text-accent)}
.sk-form p.et_pb_contact_field_last{padding-right:0}

/* --- 6.5 Module d'inscription à la lettre ------------------------------- */
.et_pb_newsletter.sk-signup{background:transparent!important;padding:0}
.sk-signup .et_pb_newsletter_description h2,
.sk-signup .et_pb_module_header{
  font-family:var(--font-display);font-size:var(--fs-h2);font-weight:var(--fw-regular);
  color:var(--text-primary);margin:0 0 var(--space-5);max-width:24ch;
}
.sk-signup .et_pb_newsletter_description p{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text-secondary);max-width:var(--measure-prose)}
.sk-signup .et_pb_newsletter_form p input,
.sk-signup .et_pb_newsletter_form p textarea{
  background:transparent!important;
  border:0!important;border-bottom:var(--border-w) solid var(--border-hairline)!important;
  border-radius:var(--radius-0)!important;
  padding:0 0 12px!important;
  font-family:var(--font-sans)!important;font-size:var(--fs-body)!important;color:var(--text-primary)!important;
}
.sk-signup .et_pb_newsletter_form p input:focus{border-bottom-color:var(--ink-900)!important}
.sk-signup .et_pb_newsletter_button{
  min-height:44px;
  padding:15px 30px!important;
  font-size:11px!important;font-weight:var(--fw-medium)!important;letter-spacing:var(--ls-label)!important;
  text-transform:uppercase;
  border:var(--border-w) solid var(--ink-900)!important;border-radius:var(--radius-0)!important;
  background:var(--ink-900)!important;color:var(--paper-100)!important;
}
.sk-signup .et_pb_newsletter_button::after{display:none!important}
.sk-signup .et_pb_newsletter_button:hover{background:var(--ink-700)!important;padding:15px 30px!important}
.sk-signup .et_pb_newsletter_footer,.sk-signup .et_pb_newsletter_form p.et_pb_newsletter_field_last{font-size:var(--fs-caption);color:var(--text-muted)}

/* --- 6.6 Recherche (page 404) ------------------------------------------- */
.et_pb_search.sk-search input.et_pb_s{
  background:transparent!important;
  border:0!important;border-bottom:var(--border-w) solid var(--ink-900)!important;
  border-radius:var(--radius-0)!important;
  padding:0 0 12px!important;
  font-family:var(--font-sans);font-size:var(--fs-lead);color:var(--text-primary);
}
.et_pb_search.sk-search input.et_pb_searchsubmit{
  background:transparent!important;border:0!important;
  font-size:var(--fs-label)!important;letter-spacing:var(--ls-label);text-transform:uppercase;
  color:var(--ink-900)!important;
}

/* --- 6.7 Séparateurs et divers ------------------------------------------ */
.et_pb_divider.sk-divider:before{border-top:var(--hairline);top:0}
.et_pb_divider.sk-divider--ink:before{border-top:var(--rule-ink)}
.et_pb_divider{margin:0}

/* --- 6.8 Pied de page (Theme Builder) ----------------------------------- */
.sk-footer{background:var(--surface-page);border-top:var(--rule-ink)}
.sk-footer__logo img{width:96px;height:auto}
.sk-footer__note,.sk-footer__note p{font-size:var(--fs-body-sm);line-height:var(--lh-body);color:var(--text-secondary);max-width:34ch}
.sk-footcol h3,.sk-footcol .sk-footcol__title{
  font-family:var(--font-sans);font-size:var(--fs-label);font-weight:var(--fw-medium);
  letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted);
  margin:0 0 var(--space-5);
}
.sk-footlist ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}
.sk-footlist a{font-size:var(--fs-body-sm);color:var(--ink-900)}
.sk-footlist a:hover{color:var(--accent)}
.sk-footer__bottom{display:flex;flex-wrap:wrap;gap:var(--space-5);align-items:center;justify-content:space-between;padding-top:var(--space-6);border-top:var(--hairline)}
.sk-footer__legal{display:flex;flex-wrap:wrap;gap:var(--space-5);font-size:var(--fs-caption);color:var(--text-muted)}
.sk-footer__legal a{color:var(--text-muted)}
.sk-footer__legal a:hover{color:var(--accent)}
.sk-footer__copy{font-size:var(--fs-caption);color:var(--text-muted);margin:0}
.sk-social{display:flex;gap:var(--space-5);font-size:var(--fs-caption);letter-spacing:var(--ls-nav)}

.sk-social a{color:var(--text-secondary);text-transform:lowercase}
.sk-social a:hover{color:var(--accent)}
.sk-footer__top{margin-bottom:var(--space-9)}
.sk-footer__signup .et_pb_newsletter_description{margin-bottom:var(--space-4)}



/* ==========================================================================
   7. RESPONSIVE
   Divi coupe à 980 px (tablette) et 767 px (mobile) : on suit ces seuils.
   ========================================================================== */

@media (max-width:980px){
  :root{
    --section-y:clamp(64px,8vw,96px);
    --section-y-tight:56px;
    --header-h:68px;
  }
  .sk-display,.sk-display h1,.sk-display h2{max-width:none}
  .sk-title,.sk-title h1,.sk-title h2{max-width:none}
  .sk-offset,.sk-offset-lg{margin-top:0}
  .sk-toc{position:static}
  .sk-facets{position:static;backdrop-filter:none}
  .sk-form .et_pb_contact_field{padding-right:0}
  .et_pb_column .sk-card__excerpt{max-width:none}
}

@media (max-width:767px){
  :root{
    --fs-h3:1.25rem;
    --section-y:72px;
    --section-y-tight:48px;
  }
  .et_pb_section.sk-section,
  .et_pb_section.sk-section--tight{padding-left:20px;padding-right:20px}
  .sk-panel,.sk-panel .et_pb_text_inner{padding:var(--space-5)}
  .et_pb_contact_form_container.sk-form{padding:var(--space-5)}
  .sk-cartline{grid-template-columns:64px 1fr;row-gap:var(--space-3)}
  .sk-cartline__price{grid-column:2}
  .sk-quote p{font-size:var(--fs-h3);max-width:none}
  .sk-footer__bottom{flex-direction:column;align-items:flex-start}
  .sk-card__row{flex-direction:row}
  .sk-chips{gap:var(--space-2)}
  .sk-chip{min-height:44px}
}

/* Respect de la préférence système : aucune animation, aucun curseur. */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .sk-reveal{opacity:1;transform:none}
  .sk-cursor{display:none}
  .sk-media:hover img{transform:none}
}



/* ==========================================================================
   8. EN-TÊTE (Theme Builder)
   Un module Menu Divi natif, réhabillé : navigation en bas de casse à
   droite, en-tête voilé au défilement, et sous 980 px un menu plein écran
   sur papier dont les libellés entrent en fondu, un par un.
   ========================================================================== */

/* --- 8.1 La barre ------------------------------------------------------- */
.et_pb_section.sk-header{
  position:-webkit-sticky;position:sticky;top:0;z-index:1000;
  padding:0 var(--gutter);
  background:var(--surface-page)!important;
  transition:background var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out);
}
.et_pb_section.sk-header.is-scrolled,
body.sk-scrolled .et_pb_section.sk-header{
  background:var(--overlay-veil);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  box-shadow:var(--shadow-sticky);
}
.et_pb_section.sk-header:has(.mobile_nav.opened){
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  background:var(--surface-page)!important;
  box-shadow:none!important;
}
.sk-header .et_pb_row{
  display:flex;align-items:center;flex-wrap:nowrap;
  gap:var(--space-6);
  min-height:var(--header-h);
  max-width:var(--max-width);
  padding:0;
  position:relative;z-index:1001; /* au-dessus de l'overlay du menu mobile (900) */
}
.sk-header .et_pb_column{width:auto!important;margin:0!important}
.sk-header__logo{flex:0 0 auto;position:relative;z-index:901}
.sk-header__logo .et_pb_image{margin:0}
.sk-header__logo img{width:112px;height:auto}
.sk-header__nav{flex:1 1 auto;min-width:0;display:flex;justify-content:flex-end}

/* --- 8.2 Navigation, grand écran ---------------------------------------- */
.sk-header .et_pb_menu{background:transparent!important;width:100%}
/* Cette ligne re-cible .sk-header .et_pb_row (voir 8.1) pour annuler sa
   hauteur et son gap sur la rangée interne du module Menu : c'est
   volontaire (la rangée du menu ne doit pas hériter de la hauteur de la
   barre), mais toute retouche à 8.1 doit être vérifiée ici aussi. */
.sk-header .et_pb_menu .et_pb_row{min-height:0;gap:0;padding:0}
.sk-header .et_pb_menu__menu{justify-content:flex-end}
.sk-header .et_pb_menu .et-menu{gap:var(--space-7)}
.sk-header .et_pb_menu .et-menu > li{margin:0;padding:0}
.sk-header .et_pb_menu .et-menu > li > a{
  font-family:var(--font-sans);
  font-size:var(--fs-body-sm);
  letter-spacing:var(--ls-nav);
  text-transform:lowercase;
  color:var(--ink-900)!important;
  padding:0 0 3px;
  border-bottom:var(--border-w) solid transparent;
  opacity:1;
  transition:color var(--dur-1) var(--ease-out),border-color var(--dur-2) var(--ease-out);
}
.sk-header .et_pb_menu .et-menu > li > a:hover{color:var(--accent)!important;border-bottom-color:currentColor;opacity:1}
.sk-header .et_pb_menu .et-menu > li.current-menu-item > a{border-bottom-color:var(--ink-900)}
/* Sous-menus : papier, filets, aucun rayon. */
.sk-header .et_pb_menu .nav li ul{
  background:var(--surface-page);
  border:var(--hairline);
  border-radius:var(--radius-0);
  box-shadow:var(--shadow-overlay);
  padding:var(--space-3) 0;
}
.sk-header .et_pb_menu .nav li ul li a{padding:var(--space-3) var(--space-5);width:auto}

/* --- 8.2b Icônes utilitaires -------------------------------------------- */
.sk-header__utils{
  flex:0 0 auto;
  display:flex;flex-direction:row!important;align-items:center;
  gap:var(--space-2);
}
.sk-header__utils .et_pb_module{margin:0!important}

/* Le module Code devient lui aussi une rangée : sinon les trois liens
   s'empilent, le module étant un unique enfant flex. */
.sk-header__utils .et_pb_code,
.sk-header__utils .et_pb_code_inner,
.sk-header__utils .et_pb_text_inner{
  display:flex!important;
  align-items:center;
  gap:var(--space-2);
}

.sk-header__utils a{
  position:relative;
  display:grid;place-items:center;
  width:44px;height:44px;
  color:var(--ink-900);
  text-decoration:none;
  border:0;
  transition:color var(--dur-1) var(--ease-out);
}
/* Divi colore les SVG en aplat : on impose le tracé. */
.sk-header__utils a svg,
.sk-header__utils a svg *{
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.6!important;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.sk-header__utils a svg{
  width:20px;height:20px;
  display:block;
  overflow:visible;
}
.sk-header__utils a:hover{color:var(--accent-graphic)}
.sk-header__utils a:focus-visible{
  outline:1.5px solid var(--focus-ring);
  outline-offset:3px;
}

/* Le compteur du panier : pastille terracotta */
.sk-header__utils .sk-utils--cart{position:relative}
.sk-header__utils .sk-utils__count{
  position:absolute;
  top:4px;right:2px;
  display:flex;align-items:center;justify-content:center;
  min-width:16px;height:16px;padding:0 4px;
  box-sizing:border-box;
  border-radius:999px;
  background:var(--terracotta-700);
  color:var(--paper-100)!important;
  font-family:var(--font-sans);
  font-size:10px;font-weight:var(--fw-medium);line-height:1;
  font-variant-numeric:tabular-nums;
  pointer-events:none;
}
/* Pastille masquée quand le panier est vide */
.sk-header__utils .sk-utils__count:empty,
.sk-header__utils .sk-utils__count[data-count="0"],
.sk-utils__count:empty,
.sk-utils__count[data-count="0"]{
  display:none!important;
}
/* Le filet qui sépare les utilitaires du menu. */
.sk-header__utils .et_pb_code_inner::before{
  content:"";
  align-self:center;
  width:1px;height:18px;
  background:#DCD6CD;
  margin-right:var(--space-4);
  flex:0 0 auto;
}

@media (max-width:980px){
  .sk-header__utils .et_pb_code_inner::before{display:none}
  .sk-header__utils .sk-utils--search,
  .sk-header__utils .sk-utils--account{display:none}
}

/* Faire apparaitre l'icone Mon Compte en version mobile dans le header */
@media (max-width:980px){
  .sk-header__utils .sk-utils--account{display:inline-flex!important}
}
/* --- 8.3 Le burger : deux filets d'encre -------------------------------- */
.sk-header .et_mobile_nav_menu{margin:0;float:none;position:relative;z-index:1002}
.sk-header .mobile_menu_bar{
  position:relative;
  display:grid;place-items:center;
  width:44px;height:44px;
  padding:0;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  /* Doit rester au-dessus de l'overlay du menu (voir 8.4, z-index:900) :
     sinon, en stacking auto, le burger se retrouve peint SOUS l'overlay
     positionné et devient inatteignable une fois le menu ouvert. C'est
     la cause du bug « croix cachée derrière le menu ». */
  z-index:1010;
}
.sk-header .mobile_menu_bar::before{
  content:"";
  display:block;
  width:var(--burger-w);height:1px;
  background:var(--ink-900);
  font-size:0;
  transform:translateY(calc(var(--burger-gap) / -2));
  transition:transform var(--dur-2) var(--ease-out),background var(--dur-1) var(--ease-out);
}
.sk-header .mobile_menu_bar::after{
  content:"";
  position:absolute;
  width:var(--burger-w);height:1px;
  background:var(--ink-900);
  transform:translateY(calc(var(--burger-gap) / 2));
  transition:transform var(--dur-2) var(--ease-out),background var(--dur-1) var(--ease-out);
}
.sk-header .mobile_menu_bar:hover::before,
.sk-header .mobile_menu_bar:hover::after{background:var(--accent-graphic)}
/* Ouvert : les deux filets se croisent. */
.sk-header .mobile_nav.opened .mobile_menu_bar::before{transform:translateY(0) rotate(45deg)}
.sk-header .mobile_nav.opened .mobile_menu_bar::after{transform:translateY(0) rotate(-45deg)}
/* Le trait reste bien visible une fois croisé, pour qu'on le lise comme un bouton. */
.sk-header .mobile_nav.opened .mobile_menu_bar::before,
.sk-header .mobile_nav.opened .mobile_menu_bar::after{
  background:var(--ink-900);
  width:18px;
}

/* --- 8.3b Burger : correctif pages WooCommerce (panier / commande / compte) ---
   Bug encore non résolu au 27/09/2026 : sur certaines pages dépendant de Woo,
   le burger mobile/tablette se comporte mal malgré ce correctif renforcé en
   !important. À investiguer avec Laura — ne pas supprimer avant d'avoir compris
   pourquoi le bloc « 8.3 » seul ne suffit pas sur ces pages. --- */
body:not(#sk1):not(#sk2) .sk-header .mobile_nav .mobile_menu_bar{
  position:relative!important;
  display:grid!important;place-items:center!important;
  width:44px!important;height:44px!important;
  padding:0!important;
  border:0!important;
  z-index:1010;
}
body:not(#sk1):not(#sk2) .sk-header .mobile_nav .mobile_menu_bar::before,
body:not(#sk1):not(#sk2) .sk-header .mobile_nav .mobile_menu_bar::after{
  content:""!important;
  position:absolute!important;
  top:50%!important;left:50%!important;
  width:var(--burger-w,22px)!important;height:1px!important;
  margin:0!important;padding:0!important;
  font-size:0!important;line-height:0!important;
  background:var(--ink-900)!important;
  color:transparent!important;
  transition:transform var(--dur-2) var(--ease-out),background var(--dur-1) var(--ease-out);
}
body:not(#sk1):not(#sk2) .sk-header .mobile_nav .mobile_menu_bar::before{
  transform:translate(-50%,calc(var(--burger-gap,8px) / -2))!important;
}
body:not(#sk1):not(#sk2) .sk-header .mobile_nav .mobile_menu_bar::after{
  transform:translate(-50%,calc(var(--burger-gap,8px) / 2))!important;
}
/* Ouvert : croix */
body:not(#sk1):not(#sk2) .sk-header .mobile_nav.opened .mobile_menu_bar::before{
  width:18px!important;transform:translate(-50%,0) rotate(45deg)!important;
}
body:not(#sk1):not(#sk2) .sk-header .mobile_nav.opened .mobile_menu_bar::after{
  width:18px!important;transform:translate(-50%,0) rotate(-45deg)!important;
}
/* Retire le filet épais que Divi ajoute au-dessus du menu déroulant */
body:not(#sk1):not(#sk2) .sk-header .et_mobile_menu{border-top:var(--hairline)!important}

/* --- 8.4 Le menu plein écran ------------------------------------------- */
@media (max-width:980px){
  .sk-header .et_pb_row{min-height:var(--header-h-mobile)}
  .sk-header .et_pb_menu__menu{display:none}

  .sk-header .et_mobile_menu{
    position:fixed!important;
    top:var(--header-h-mobile)!important;left:0!important;right:0!important;bottom:0!important;
    width:auto;
    z-index:900!important; /* reste sous la barre (1001) et le burger (1010) */
    display:flex!important;
    flex-direction:column;
    justify-content:center;
    margin:0;padding:var(--space-7) var(--gutter) var(--space-9);
    background:var(--menu-overlay)!important;
    border:0;border-top:var(--hairline);
    box-shadow:none;
    overflow-y:auto;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transition:opacity var(--dur-2) var(--ease-out),visibility var(--dur-2) var(--ease-out);
  }
  .sk-header .mobile_nav.opened .et_mobile_menu{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
  .sk-header .et_mobile_menu > li{
    border:0;border-bottom:var(--hairline);
    padding:0;
    opacity:0;
    transform:translateY(var(--reveal-shift));
    transition:opacity var(--dur-3) var(--ease-out),transform var(--dur-3) var(--ease-out);
  }
  .sk-header .mobile_nav.opened .et_mobile_menu > li{opacity:1;transform:none}
  /* Le décalage de 70 ms, libellé par libellé. */
  .sk-header .mobile_nav.opened .et_mobile_menu > li:nth-child(1){transition-delay:80ms}
  .sk-header .mobile_nav.opened .et_mobile_menu > li:nth-child(2){transition-delay:150ms}
  .sk-header .mobile_nav.opened .et_mobile_menu > li:nth-child(3){transition-delay:220ms}
  .sk-header .mobile_nav.opened .et_mobile_menu > li:nth-child(4){transition-delay:290ms}
  .sk-header .mobile_nav.opened .et_mobile_menu > li:nth-child(5){transition-delay:360ms}
  .sk-header .mobile_nav.opened .et_mobile_menu > li:nth-child(n+6){transition-delay:430ms}

  .sk-header .et_mobile_menu > li > a{
  display:block;
  padding:var(--space-5) 0!important;
  font-family:var(--font-display)!important;
  font-size:var(--fs-h2)!important;
  font-weight:var(--fw-regular)!important;
  line-height:var(--lh-heading);
  letter-spacing:var(--ls-heading);
  text-transform:lowercase;
  color:var(--ink-900)!important;
  border:0;
}
  .sk-header .et_mobile_menu > li > a:hover{color:var(--accent);background:transparent}
  .sk-header .et_mobile_menu > li.current-menu-item > a{color:var(--text-accent)}
  .sk-header .et_mobile_menu ul li a{font-family:var(--font-sans);font-size:var(--fs-body);padding:var(--space-3) 0}

  /* La page ne défile plus derrière le menu ouvert. */
  body.sk-menu-ouvert{overflow:hidden}
}

@media (max-width:767px){
  .et_pb_section.sk-header{padding-left:20px;padding-right:20px}
  .sk-header__logo img{width:92px}
  .sk-header .et_mobile_menu > li > a{font-size:var(--fs-h3);padding:var(--space-4) 0}
}

@media (prefers-reduced-motion:reduce){
  .sk-header .et_mobile_menu,
  .sk-header .et_mobile_menu > li{transition-duration:.01ms!important;transition-delay:0ms!important}
}



/* ==========================================================================
   9. IMPRESSION
   ========================================================================== */

@media print{
  .sk-cursor,.sk-facets,#main-header,.sk-header,.sk-footer__bottom{display:none!important}
  body{background:#fff;color:#000;font-size:12pt}
  .sk-reveal{opacity:1;transform:none}
  a{color:#000;text-decoration:underline}
}

/* ==========================================================================
   10. WOOCOMMERCE
   Les gabarits sont construits dans le Theme Builder de Divi 5 avec les
   modules Woo natifs. Cette section habille ce que Woo rend lui-même :
   grille de produits, prix, boutons, panier latéral, commande, compte.
   Ordre : 10.1 commun · 10.2 boutique · 10.2b vitrine allégée · 10.3 fiche
           10.4 panier latéral · 10.5 commande · 10.6 compte et
           téléchargements · 10.7 messages · 10.9 titres de pages
   ========================================================================== */

/* --- 10.1 Commun -------------------------------------------------------- */
.woocommerce,
.woocommerce-page{color:var(--text-primary)}
.woocommerce .woocommerce-breadcrumb{
  margin:0 0 var(--space-6);
  font-size:var(--fs-caption);color:var(--text-muted);
}
.woocommerce .woocommerce-breadcrumb a{color:var(--text-muted)}
.woocommerce .woocommerce-breadcrumb a:hover{color:var(--accent)}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);
  min-height:44px;
  padding:15px 30px;
  font-family:var(--font-sans);
  font-size:11px;font-weight:var(--fw-medium);
  letter-spacing:var(--ls-label);text-transform:uppercase;line-height:1;
  border:var(--border-w) solid var(--ink-900);
  border-radius:var(--radius-0);
  background:var(--ink-900);
  color:var(--paper-100);
  transition:background var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-out);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover{
  background:var(--ink-700);color:var(--paper-100);transform:translateY(-1px);
}
.woocommerce a.button:active,.woocommerce button.button:active{transform:none}
.woocommerce a.button.sk-btn--secondary,
.woocommerce button.button.sk-btn--secondary{background:transparent;color:var(--ink-900)}
.woocommerce a.button.sk-btn--secondary:hover{background:var(--ink-900);color:var(--paper-100)}
.woocommerce .button:disabled,.woocommerce .button.disabled{
  background:var(--stone-100);border-color:var(--stone-100);color:var(--ink-300);transform:none;
}

.woocommerce .price,
.woocommerce .woocommerce-Price-amount{
  font-family:var(--font-display);
  font-variant-numeric:tabular-nums;
  color:var(--text-primary);
}
.woocommerce .price del{color:var(--text-muted);opacity:1;margin-right:var(--space-2)}
.woocommerce .price ins{text-decoration:none;color:var(--text-primary)}

.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale{display:none}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single{
  width:100%;
  height:auto;
  padding:0 0 12px;
  font-family:var(--font-sans);
  font-size:var(--fs-body);
  color:var(--text-primary);
  background:transparent;
  border:0;border-bottom:var(--border-w) solid var(--border-hairline);
  border-radius:var(--radius-xs);
  box-shadow:none;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus{border-bottom-color:var(--ink-900);outline:none}
.woocommerce form .form-row label,
.woocommerce-form-row label{
  display:block;
  margin-bottom:var(--space-3);
  font-size:var(--fs-label);font-weight:var(--fw-medium);
  letter-spacing:var(--ls-label);text-transform:uppercase;
  color:var(--text-muted);
}
.woocommerce form .form-row .required{color:var(--text-accent);text-decoration:none}
.woocommerce form .form-row{padding:0;margin:0 0 var(--space-6)}

/* Police forcée sur les blocs WooCommerce (classiques et blocs) --- déplacé
   depuis la fin du fichier --- */
/* Les éléments WooCommerce (classiques et blocs) reprennent la police de la marque */
body .woocommerce,
body .woocommerce *:not(h1):not(h2):not(h3):not(h4):not(.price):not(.woocommerce-Price-amount):not(.woocommerce-Price-amount *):not(.star-rating):not(.star-rating *):not(.et-pb-icon),
.wc-block-components-form *, .wc-block-cart *, .wc-block-checkout *,
.woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content,
input, select, textarea, button{
  font-family:var(--font-sans);
}
.woocommerce h1, .woocommerce h1 *, .woocommerce h2, .woocommerce h3, .woocommerce h4,
.woocommerce-page h1, .woocommerce-page h1 *, .woocommerce-page h2, .woocommerce-page h3,
.wc-block-components-title, .wc-block-cart__totals-title{
  font-family:var(--font-display)!important;
}

/* --- 10.2 Boutique (archive des produits) ------------------------------- */
.woocommerce ul.products{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(28px,3.2vw,52px) var(--grid-gap);
  margin:0;padding:0;list-style:none;
}
@media (max-width:980px){
  .woocommerce ul.products{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:767px){
  .woocommerce ul.products{grid-template-columns:repeat(1,1fr)}
}
.woocommerce ul.products::before,
.woocommerce ul.products::after{display:none}
.woocommerce ul.products li.product{
  width:auto!important;margin:0!important;float:none!important;
  text-align:left;
}

.woocommerce ul.products li.product .woocommerce-loop-product__link{display:block;overflow:hidden}
.woocommerce ul.products li.product:hover a img{transform:scale(var(--hover-zoom))}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  padding:var(--space-4) 0 0;
  font-family:var(--font-display);
  font-size:var(--fs-h4);font-weight:var(--fw-regular);
  line-height:1.2;
  color:var(--text-primary);
  transition:color var(--dur-1) var(--ease-out);
}
.woocommerce ul.products li.product:hover .woocommerce-loop-product__title{color:var(--accent)}

/* --- Colonne de filtres (déplacé depuis la fin du fichier) --- */
/* === Colonne de filtres === */
.sk-shop-filters{min-width:0}
.sk-shop-filters h2,
.sk-shop-filters h3,
.sk-shop-filters .widgettitle,
.sk-shop-filters .wp-block-heading{
  font-family:var(--font-sans)!important;
  font-size:11px!important;font-weight:var(--fw-medium)!important;
  letter-spacing:.16em;text-transform:uppercase;
  color:var(--text-muted);
  margin:0 0 var(--space-4)!important;
  word-break:normal;hyphens:none;
}
.sk-shop-filters > * + *,
.sk-shop-filters .et_pb_widget + .et_pb_widget{
  margin-top:var(--space-7);
  padding-top:var(--space-5);
  border-top:var(--hairline);
}
.sk-shop-filters,
.sk-shop-filters label,
.sk-shop-filters li,
.sk-shop-filters input{font-size:var(--fs-body-sm);color:var(--text-secondary)}
@media (min-width:981px){
  .sk-shop-filters{position:sticky;top:calc(var(--header-h, 80px) + var(--space-5))}
}

/* --- Filtres Woo (mobile) : le panneau passe au premier plan (déplacé) --- */
/* === Filtres Woo (mobile) : le panneau passe au premier plan === */
@media (max-width:980px){
  .sk-shop-filters{
    position:relative!important;
    z-index:1000!important;
    transform:none!important;
    opacity:1!important;
  }
  /* Tant que le panneau est ouvert : tri, compteur, produits et pagination masqués */
  body:has(.wc-block-product-filters.is-overlay-opened) .woocommerce-ordering,
  body:has(.wc-block-product-filters.is-overlay-opened) .woocommerce-result-count,
  body:has(.wc-block-product-filters.is-overlay-opened) ul.products,
  body:has(.wc-block-product-filters.is-overlay-opened) .woocommerce-pagination{
    visibility:hidden;
  }
  /* La page ne défile plus derrière le panneau */
  body:has(.wc-block-product-filters.is-overlay-opened){overflow:hidden}
}

/* --- 10.2b Vitrine allégée (accueil : 3 derniers, sans prix ni filtre) --- */
.sk-showcase.woocommerce ul.products,.sk-showcase ul.products{
  gap:var(--space-8) var(--space-6);
}
.sk-showcase ul.products li.product{margin-bottom:0}
.sk-showcase ul.products li.product .price,
.sk-showcase ul.products li.product .star-rating,
.sk-showcase ul.products li.product .button,
.sk-showcase ul.products li.product .onsale{display:none!important}
.sk-showcase ul.products li.product .woocommerce-loop-product__title{
  padding-top:var(--space-5);font-size:var(--fs-h4);
}

.woocommerce ul.products li.product .price{
  display:block;margin:var(--space-2) 0 0;
  font-size:var(--fs-h4);
}
.woocommerce ul.products li.product .sk-loop-excerpt{
  margin:var(--space-3) 0 0;max-width:38ch;
  font-size:var(--fs-body-sm);line-height:1.6;color:var(--text-secondary);
}
.woocommerce ul.products li.product a.add_to_cart_button,
.woocommerce ul.products li.product .added_to_cart{display:none}

.woocommerce .woocommerce-result-count{
  margin:0;font-size:var(--fs-caption);color:var(--text-muted);
}
.woocommerce .woocommerce-ordering select{
  padding:var(--space-2) var(--space-1);
  font-family:var(--font-sans);font-size:var(--fs-body-sm);
  color:var(--text-primary);background:transparent;
  border:0;border-bottom:var(--border-w) solid var(--border-hairline);
  border-radius:var(--radius-0);
}
.sk-facets .widget_layered_nav ul,
.sk-facets .wc-block-attribute-filter ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}
.sk-facets .widget_layered_nav ul li{margin:0}
.sk-facets .widget_layered_nav ul li a{
  display:inline-flex;align-items:center;gap:var(--space-2);
  min-height:36px;padding:9px 16px;
  font-size:var(--fs-caption);letter-spacing:var(--ls-nav);
  border:var(--border-w) solid var(--border-hairline);
  color:var(--ink-900);
}
.sk-facets .widget_layered_nav ul li a:hover{border-color:var(--accent);color:var(--accent)}
.sk-facets .widget_layered_nav ul li.chosen a{background:var(--ink-900);border-color:var(--ink-900);color:var(--paper-100)}
.sk-facets .widget_layered_nav ul li .count{font-size:var(--fs-label);color:var(--text-muted)}

.woocommerce nav.woocommerce-pagination ul{
  border:0;display:flex;gap:var(--space-2);justify-content:center;
}
.woocommerce nav.woocommerce-pagination ul li{border:0;margin:0}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
  min-width:44px;min-height:44px;
  display:inline-flex;align-items:center;justify-content:center;
  padding:0;
  font-size:var(--fs-body-sm);font-variant-numeric:tabular-nums;
  background:transparent;color:var(--ink-900);
  border:var(--border-w) solid transparent;
}
.woocommerce nav.woocommerce-pagination ul li a:hover{background:transparent;border-color:var(--border-hairline);color:var(--accent)}
.woocommerce nav.woocommerce-pagination ul li span.current{background:transparent;border-color:var(--ink-900);color:var(--ink-900)}

/* --- 10.2c Fond des pages boutique/produit : Divi force du blanc sur toutes
   les sections de ces gabarits, on rétablit la transparence du site --- */
body.woocommerce .et_pb_section:not(.sk-header){background-color:transparent!important}

/* --- 10.3 Fiche patron (modèle natif Divi) ------------------------------ */
/* Largeur alignée sur .sk-section */
.single-product #main-content .container{
  width:100%!important;
  max-width:var(--max-width)!important;
  margin:0 auto!important;
  padding-top:0!important;
  padding-left:16px!important;
  padding-right:16px!important;
  box-sizing:border-box;
}
.single-product #main-content .container::before{display:none}
.single-product #left-area{width:100%;padding:var(--space-5) 0 var(--section-y)}

/* Titre, prix, description courte */
.woocommerce div.product .product_title{
  font-family:var(--font-display);font-size:var(--fs-h1);font-weight:var(--fw-regular);
  line-height:1.02;letter-spacing:var(--ls-heading);
  margin:var(--space-5) 0 0;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price{
  margin:var(--space-5) 0 0;
  font-size:var(--fs-h2);color:var(--text-primary);
}
.woocommerce div.product .woocommerce-product-details__short-description{
  margin:var(--space-7) 0 0;max-width:52ch;
  font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text-secondary);
}
.woocommerce div.product form.cart{margin:var(--space-8) 0 0}
.woocommerce div.product form.cart .quantity{display:none}
.woocommerce div.product form.cart .button{width:auto}

/* Liens Catégorie / Étiquette / fil d'Ariane */
.single-product .product_meta a,
.single-product .woocommerce-breadcrumb a{color:var(--text-primary);text-decoration:none}
.single-product .product_meta a:hover,
.single-product .woocommerce-breadcrumb a:hover{color:var(--accent)}

/* Galerie */
.woocommerce div.product div.images img{box-shadow:var(--inset-image)}
.single-product div.images img{aspect-ratio:var(--ratio-square)!important;object-fit:cover!important}
.woocommerce div.product div.images .flex-control-thumbs{
  display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin:var(--space-3) 0 0;
}
.woocommerce div.product div.images .flex-control-thumbs li{width:auto;margin:0;float:none}

/* Avis */
.woocommerce #reviews #comments ol.commentlist{padding:0}
.woocommerce #reviews #comments ol.commentlist li{margin:0 0 var(--space-6)}
.woocommerce #reviews #comments ol.commentlist li img.avatar{display:none}
.woocommerce #reviews #comments ol.commentlist li .comment-text{
  margin:0;padding:var(--space-5) 0;border:0;border-top:var(--hairline);border-radius:var(--radius-0);
}
.woocommerce #reviews #comments ol.commentlist li .comment-text p{
  max-width:38ch;font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text-secondary);
}
.woocommerce #reviews #comments ol.commentlist li .comment-text .meta{
  font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted);
}
.woocommerce .star-rating span::before,
.woocommerce p.stars a::before{color:var(--accent-graphic)}
.woocommerce .star-rating::before{color:var(--stone-200)}

/* Patrons proches */
.woocommerce .related > h2,
.woocommerce .upsells > h2{
  font-family:var(--font-display);font-size:var(--fs-h2);font-weight:var(--fw-regular);
  margin:0 0 var(--space-7);
}


/* --- 10.3b Bouton « Ajouter au panier » = bouton saknu --- */
body.woocommerce #page-container .button,
body.woocommerce-page #page-container .button,
body.woocommerce #page-container button.single_add_to_cart_button{
  display:inline-flex!important;align-items:center;justify-content:center;
  min-height:44px;
  padding:15px 30px!important;
  font-family:var(--font-sans)!important;
  font-size:11px!important;font-weight:var(--fw-medium)!important;
  letter-spacing:var(--ls-label)!important;text-transform:uppercase;line-height:1!important;
  border:var(--border-w) solid var(--ink-900)!important;
  border-radius:var(--radius-0)!important;
  background:var(--ink-900)!important;
  color:var(--paper-100)!important;
  white-space:nowrap;
  transition:background var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-out);
}
body.woocommerce #page-container .button:hover,
body.woocommerce-page #page-container .button:hover,
body.woocommerce #page-container button.single_add_to_cart_button:hover{
  padding:15px 30px!important;
  background:var(--ink-700)!important;
  color:var(--paper-100)!important;
  border-color:var(--ink-700)!important;
  transform:translateY(-1px);
}
body.woocommerce #page-container .button:active{transform:none}
body.woocommerce #page-container .button::after,
body.woocommerce-page #page-container .button::after,
body.woocommerce #page-container .button::before{display:none!important;content:none!important}


/* --- 10.4 Panier latéral ------------------------------------------------ */
.wc-block-mini-cart__drawer .wc-block-components-drawer,
.sk-sidecart{
  background:var(--surface-page);
  border-left:var(--rule-ink);
  box-shadow:var(--shadow-overlay);
  border-radius:var(--radius-0);
}
.wc-block-mini-cart__drawer .components-modal__header,
.sk-sidecart__head{
  padding:var(--space-5) var(--space-6);
  border-bottom:var(--hairline);
}
.wc-block-mini-cart__title,
.sk-sidecart__title{
  font-family:var(--font-sans);
  font-size:var(--fs-label);font-weight:var(--fw-medium);
  letter-spacing:var(--ls-label);text-transform:uppercase;
  color:var(--text-muted);
}
.wc-block-mini-cart__items,.sk-sidecart__items{padding:0 var(--space-6)}
.wc-block-cart-item__wrap,.sk-sidecart__line{
  padding:var(--space-5) 0;border-bottom:var(--hairline);
}
.wc-block-components-product-name{
  font-family:var(--font-display);font-size:var(--fs-h4);color:var(--text-primary);
}
.wc-block-components-product-metadata,
.sk-sidecart__meta{font-size:var(--fs-caption);color:var(--text-muted)}
.wc-block-components-quantity-selector{display:none}
.wc-block-mini-cart__footer,.sk-sidecart__foot{
  padding:var(--space-6);border-top:var(--rule-ink);
}
.wc-block-mini-cart__footer-subtotal .wc-block-components-totals-item__label{
  font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted);
}
.wc-block-mini-cart__footer-subtotal .wc-block-components-totals-item__value{
  font-family:var(--font-display);font-size:var(--fs-h2);font-variant-numeric:tabular-nums;
}
.wc-block-mini-cart__footer-actions .wc-block-components-button{width:100%}
.wc-block-components-drawer__screen-overlay{background:var(--overlay-scrim)}


/* --- 10.4b Page panier : largeur alignée sur le menu -------------------- */
.woocommerce-cart #main-content .container,
.woocommerce-cart .et_pb_section .et_pb_row{
  width:100%!important;
  max-width:var(--max-width)!important;
  margin-left:auto!important;margin-right:auto!important;
  padding-left:16px!important;padding-right:16px!important;
  box-sizing:border-box;
}
.woocommerce-cart #main-content .container::before{display:none}
.woocommerce-cart .wp-block-woocommerce-cart{max-width:none!important}
.woocommerce-cart .wp-block-woocommerce-cart.alignwide{margin-left:0;margin-right:0}


/* --- 10.4c Bouton « Valider la commande » = bouton saknu ---------------- */
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button{
  display:inline-flex!important;align-items:center;justify-content:center;
  width:100%;min-height:44px;
  padding:15px 30px!important;
  font-family:var(--font-sans)!important;
  font-size:11px!important;font-weight:var(--fw-medium)!important;
  letter-spacing:var(--ls-label)!important;text-transform:uppercase;line-height:1!important;
  border:var(--border-w) solid var(--ink-900)!important;
  border-radius:var(--radius-0)!important;
  background:var(--ink-900)!important;
  color:var(--paper-100)!important;
  text-decoration:none!important;
  box-shadow:none!important;
  transition:background var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-out);
}
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover{
  background:var(--ink-700)!important;
  border-color:var(--ink-700)!important;
  color:var(--paper-100)!important;
  transform:translateY(-1px);
}
.wc-block-cart__submit-button:active,
.wc-block-components-checkout-place-order-button:active{transform:none}


/* --- 10.4d Panier vide : icône terracotta ------------------------------- */
.wc-block-cart__empty-cart__title.with-empty-cart-icon::before{
  background-color:var(--terracotta-600)!important;
}
.wc-block-cart__empty-cart__title{
  color:var(--text-primary)!important;
  font-family:var(--font-sans)!important;
  font-size:var(--fs-body)!important;
}


/* --- 10.5 Commande ------------------------------------------------------ */
@media (min-width:981px){
  .woocommerce-checkout form.checkout{
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);
    gap:clamp(32px,4vw,72px);
    align-items:start;
  }
  .woocommerce-checkout form.checkout #customer_details{grid-column:1;min-width:0}
  .woocommerce-checkout form.checkout #order_review_heading,
  .woocommerce-checkout form.checkout #order_review{
    grid-column:2;min-width:0;
    position:sticky;top:calc(var(--header-h) + var(--space-6));
  }
  .wc-block-checkout__main{min-width:0}
}
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2{width:auto;float:none}
.woocommerce-checkout h3,
.woocommerce-checkout #order_review_heading{
  font-family:var(--font-sans);
  font-size:var(--fs-label);font-weight:var(--fw-medium);
  letter-spacing:var(--ls-label);text-transform:uppercase;
  color:var(--text-muted);
  margin:0 0 var(--space-6);
  padding-top:var(--space-6);
  border-top:var(--rule-ink);
}
.woocommerce-checkout #order_review{
  background:var(--surface-card);
  border:var(--hairline);
  padding:var(--space-6);
}
.woocommerce-checkout #order_review_heading{border-top:0;padding-top:0}
.woocommerce table.shop_table{border:0;border-radius:var(--radius-0);margin:0}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td{
  padding:var(--space-3) 0;border-top:0;border-bottom:var(--hairline);
  font-size:var(--fs-body-sm);color:var(--text-secondary);
}
.woocommerce table.shop_table thead th{
  font-family:var(--font-sans);
  font-size:var(--fs-label);font-weight:var(--fw-medium);
  letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted);
}
.woocommerce table.shop_table tfoot tr:last-child th,
.woocommerce table.shop_table tfoot tr:last-child td{
  border-bottom:0;border-top:var(--rule-ink);padding-top:var(--space-5);
}
.woocommerce table.shop_table tfoot .order-total th{
  font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted);
}
.woocommerce table.shop_table tfoot .order-total td{
  font-family:var(--font-display);font-size:var(--fs-h2);color:var(--text-primary);
}
.woocommerce-checkout #payment{background:transparent;border-radius:var(--radius-0)}
.woocommerce-checkout #payment ul.payment_methods{
  padding:0;border-bottom:var(--hairline);list-style:none;
}
.woocommerce-checkout #payment ul.payment_methods li{margin:0;padding:var(--space-4) 0}
.woocommerce-checkout #payment div.payment_box{
  background:var(--surface-card);
  border:var(--hairline);
  padding:var(--space-5);
  font-size:var(--fs-body-sm);color:var(--text-secondary);
}
.woocommerce-checkout #payment div.payment_box::before{display:none}
.woocommerce-checkout #payment .place-order{padding:var(--space-6) 0 0}
.woocommerce-checkout #payment #place_order{
  width:100%;padding:19px 40px;font-size:12px;
}
.woocommerce-checkout .woocommerce-privacy-policy-text p,
.woocommerce-checkout #payment .payment_method_stripe p{
  font-size:var(--fs-caption);color:var(--text-muted);
}
.woocommerce .woocommerce-order-overview,
.woocommerce ul.order_details{
  list-style:none;margin:var(--space-7) 0;padding:0;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-5);
  border-top:var(--rule-ink);padding-top:var(--space-6);
}
.woocommerce ul.order_details li{
  margin:0;padding:0;border:0;float:none;
  font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted);
}
.woocommerce ul.order_details li strong{
  display:block;margin-top:var(--space-2);
  font-family:var(--font-display);font-size:var(--fs-h4);font-weight:var(--fw-regular);
  letter-spacing:0;text-transform:none;color:var(--text-primary);
}


/* --- 10.5b Page commande : largeur alignée sur le menu ------------------ */
.woocommerce-checkout #main-content .container,
.woocommerce-checkout .et_pb_section .et_pb_row{
  width:100%!important;
  max-width:var(--max-width)!important;
  margin-left:auto!important;margin-right:auto!important;
  padding-left:16px!important;padding-right:16px!important;
  box-sizing:border-box;
}
.woocommerce-checkout #main-content .container::before{display:none}
.woocommerce-checkout .wp-block-woocommerce-checkout{max-width:none!important}
.woocommerce-checkout .wp-block-woocommerce-checkout.alignwide{margin-left:0;margin-right:0}


/* --- 10.5c Paiement rapide : sans puces de liste ------------------------ */
.wc-block-components-express-payment ul,
.wc-block-components-express-payment li,
.wc-block-components-express-payment__event-buttons,
.wc-block-components-express-payment__event-buttons > li,
.wc-block-cart__payment-options ul,
.wc-block-cart__payment-options li{
  list-style:none!important;
  margin-left:0!important;
  padding-left:0!important;
}
.wc-block-components-express-payment li::before,
.wc-block-components-express-payment li::marker,
.wc-block-cart__payment-options li::before,
.wc-block-cart__payment-options li::marker{
  content:none!important;display:none!important;
}


/* --- 10.5d Liens dans la commande : terracotta -------------------------- */
.wc-block-checkout a:not(.wc-block-components-button),
.wc-block-cart a:not(.wc-block-components-button):not(.wc-block-cart__submit-button),
.wc-block-components-payment-method-content a,
.wc-block-checkout__terms a,
.wc-block-components-checkbox__label a{
  color:var(--text-accent)!important;
  text-decoration:underline!important;
  text-decoration-thickness:1px!important;
  text-underline-offset:3px;
}
.wc-block-checkout a:not(.wc-block-components-button):hover,
.wc-block-cart a:not(.wc-block-components-button):not(.wc-block-cart__submit-button):hover,
.wc-block-components-payment-method-content a:hover,
.wc-block-checkout__terms a:hover{
  color:var(--ink-900)!important;
}


/* --- 10.5e Résumé de commande collant : sous l'en-tête ------------------ */
.wc-block-checkout__sidebar.is-sticky,
.wc-block-checkout__sidebar,
.wc-block-cart__sidebar{
  top:calc(var(--header-h, 72px) + var(--space-5))!important;
}
.admin-bar .wc-block-checkout__sidebar,
.admin-bar .wc-block-cart__sidebar{
  top:calc(var(--header-h, 72px) + 32px + var(--space-5))!important;
}


/* --- 10.6 Mon compte et téléchargements ---------------------------------
   Fusion du 27/09/2026 : ce bloc réunissait auparavant deux sous-sections
   (« 10.6 » et « 10.8 ») qui définissaient toutes les deux le style de la
   navigation du compte. Décision de Laura : on garde le filet clair
   (--hairline) qui est déjà ce qui s'affiche aujourd'hui, et on retire
   l'ancienne version en --rule-ink qui ne s'appliquait plus. --- */
.woocommerce-account #main-content .container{
  width:100%!important;max-width:var(--max-width)!important;
  margin:0 auto!important;padding-left:16px!important;padding-right:16px!important;
  box-sizing:border-box;
}
.woocommerce-account #main-content .container::before{display:none}
.woocommerce-account #left-area{width:100%!important;padding-right:0!important}

.woocommerce-account .woocommerce-MyAccount-navigation{
  float:none;width:auto;margin-bottom:var(--space-7);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul{
  list-style:none!important;margin:0!important;padding:0!important;
  border-top:var(--hairline);
}
.woocommerce-account .woocommerce-MyAccount-navigation li{
  margin:0!important;padding:0!important;border-bottom:var(--hairline);
}
.woocommerce-account .woocommerce-MyAccount-navigation li::before,
.woocommerce-account .woocommerce-MyAccount-navigation li::marker{content:none!important}
.woocommerce-account .woocommerce-MyAccount-navigation a{
  display:block;padding:var(--space-3) 0;
  font-size:var(--fs-body-sm);color:var(--text-primary)!important;text-decoration:none!important;
  transition:color var(--dur-2) var(--ease-out);
}
.woocommerce-account .woocommerce-MyAccount-navigation a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{
  color:var(--text-accent)!important;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active{
  border-bottom:1px solid var(--terracotta-600);
}
.woocommerce-account .woocommerce-MyAccount-content{float:none;width:auto}
@media (min-width:981px){
  .woocommerce-account .woocommerce-MyAccount-navigation{
    float:left;width:24%;margin-bottom:0;
    position:sticky;top:calc(var(--header-h) + var(--space-6));
  }
  .woocommerce-account .woocommerce-MyAccount-content{float:right;width:70%}
}

/* Liens dans le contenu : terracotta souligné */
.woocommerce-account .woocommerce-MyAccount-content a:not(.button),
.woocommerce-account .woocommerce-form-login a,
.woocommerce-account .lost_password a{
  color:var(--text-accent)!important;
  text-decoration:underline!important;text-decoration-thickness:1px!important;
  text-underline-offset:3px;
}
.woocommerce-account .woocommerce-MyAccount-content a:not(.button):hover,
.woocommerce-account .woocommerce-form-login a:hover,
.woocommerce-account .lost_password a:hover{color:var(--ink-900)!important}

/* Messages du compte : même style que 10.7, sans puces */
.woocommerce-account ul.woocommerce-error,
.woocommerce-account ul.woocommerce-message,
.woocommerce-account ul.woocommerce-info{
  list-style:none!important;padding-left:0!important;margin-left:0!important;
}
.woocommerce-account .woocommerce-error li,
.woocommerce-account .woocommerce-message li,
.woocommerce-account .woocommerce-info li{margin:0!important;padding:0!important;list-style:none!important}
.woocommerce-account .woocommerce-message a:not(.button),
.woocommerce-account .woocommerce-info a:not(.button),
.woocommerce-account .woocommerce-error a:not(.button){
  color:var(--text-accent)!important;text-decoration:underline!important;text-underline-offset:3px;
}
.woocommerce-account .woocommerce-info .button,
.woocommerce-account .woocommerce-message .button{order:2;margin:0!important}

/* Espace avant le pied de page */
.woocommerce-account #left-area,
.woocommerce-account #main-content .container{
  padding-bottom:var(--section-y)!important;
}
.woocommerce-account .woocommerce-MyAccount-content fieldset{
  margin:var(--space-8) 0 var(--space-6)!important;padding:0!important;border:0!important;
}
.woocommerce-account .woocommerce-MyAccount-content fieldset legend{
  font-family:var(--font-display);font-size:var(--fs-h4);color:var(--text-primary);
  margin:0 0 var(--space-4);padding:0;
}


/* --- 10.6b Commande reçue ----------------------------------------------- */
/* Largeur alignée sur le menu */
.woocommerce-order-received #main-content .container{
  width:100%!important;max-width:var(--max-width)!important;
  margin:0 auto!important;padding-left:16px!important;padding-right:16px!important;
  box-sizing:border-box;
}
.woocommerce-order-received #main-content .container::before{display:none}

/* Titre remplacé */
.woocommerce-order-received h1.entry-title,
.woocommerce-order-received .main_title{font-size:0!important;line-height:0}
.woocommerce-order-received h1.entry-title::before,
.woocommerce-order-received .main_title::before{
  content:"Merci pour votre achat ! ";
  font-size:var(--fs-h1);line-height:1.02;
}

/* Message de remerciement */
.woocommerce-thankyou-order-received{
  font-size:0!important;
  margin:var(--space-5) 0 0!important;
  padding:0!important;
  max-width:none!important;
  list-style:none!important;
}
.woocommerce-thankyou-order-received::marker{content:none}
.woocommerce-thankyou-order-received::before{
  content:"Votre patron est disponible ci-dessous. Vous pouvez également retrouver tous vos achats dans votre compte > téléchargements. À bientôt :) ";
  display:block;
  max-width:none;
  font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text-secondary);
}
body:has(.woocommerce-table--order-downloads tbody tr:nth-child(2)) .woocommerce-thankyou-order-received::before{
  content:"Vos patrons sont disponibles ci-dessous. Vous pouvez également retrouver tous vos achats dans votre compte > téléchargements. À bientôt :) ";
}
.woocommerce-order-received .woocommerce-order ul:first-child,
.woocommerce-order-received .woocommerce-order > ul{
  list-style:none!important;margin-left:0!important;padding-left:0!important;
}

#left-area .woocommerce-order-received ul.woocommerce-order-overview,
.woocommerce-order-received #main-content ul.woocommerce-order-overview{
  padding-left:0!important;margin-left:0!important;
  border-top:1px solid var(--terracotta-600)!important;
}

/* Récapitulatif : aéré, aligné à gauche, filet terracotta */
.woocommerce-order-received ul.woocommerce-order-overview{
  display:flex;flex-wrap:wrap;gap:var(--space-6) var(--space-8);
  margin:var(--space-8) 0 var(--space-9)!important;
  padding:var(--space-6) 0 0!important;
  list-style:none;
  border-top:1px solid var(--terracotta-600)!important;
}
.woocommerce-order-received ul.woocommerce-order-overview li{
  margin:0!important;padding:0!important;border:0!important;float:none!important;
  font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;
  color:var(--text-accent);
}
.woocommerce-order-received ul.woocommerce-order-overview li strong{
  display:block;margin-top:var(--space-2);
  font-family:var(--font-display);font-size:var(--fs-body);font-weight:var(--fw-regular);
  letter-spacing:0;text-transform:none;color:var(--text-primary);
}

/* En-têtes de tableaux en terracotta */
.woocommerce-order-received .woocommerce-table thead th{color:var(--text-accent)!important}

/* Total en terracotta */
.woocommerce-order-received .woocommerce-table--order-details tfoot tr:nth-last-child(2) td,
.woocommerce-order-received .woocommerce-table--order-details tfoot tr:nth-last-child(2) .amount{
  color:var(--text-accent)!important;
}

/* Boutons de téléchargement : terracotta au survol */
.woocommerce-order-received .woocommerce-table--order-downloads .button:hover{
  background:var(--terracotta-700)!important;border-color:var(--terracotta-700)!important;
}


/* --- 10.7 Messages ------------------------------------------------------ */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews{
  background:var(--surface-card);
  border:var(--hairline);
  border-top:var(--rule-ink);
  border-radius:var(--radius-0);
  padding:var(--space-5) var(--space-6);
  margin:0 0 var(--space-6);
  font-size:var(--fs-body-sm);line-height:var(--lh-body);color:var(--text-secondary);
  list-style:none;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before{display:none}
.woocommerce-message a.button{margin-left:var(--space-5)}
.woocommerce-error{border-top-color:var(--accent-graphic);color:var(--text-primary)}
.woocommerce form.login,
.woocommerce form.register{
  border:var(--hairline);border-radius:var(--radius-0);
  padding:var(--space-6);margin:0;
  background:var(--surface-card);
}


/* --- 10.7b Message « ajouté au panier » --------------------------------- */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error{
  display:flex!important;align-items:center;justify-content:space-between;gap:var(--space-5);
  flex-wrap:wrap;
  margin:var(--space-6) 0!important;
  padding:var(--space-4) 0!important;
  background:transparent!important;
  color:var(--text-primary)!important;
  border:0!important;
  border-top:var(--hairline)!important;
  border-bottom:var(--hairline)!important;
  border-radius:0!important;
  box-shadow:none!important;outline:0!important;
  font-family:var(--font-sans)!important;
  font-size:var(--fs-body-sm)!important;
  line-height:1.5;
}
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-error::before{display:none!important}
.woocommerce .woocommerce-error{border-color:var(--terracotta-600)!important}
.woocommerce .woocommerce-message .button{order:2;margin:0!important}


/* --- 10.7c Messages des blocs panier / commande ------------------------- */
/* Bannières : info, succès, alerte, erreur */
.wc-block-components-notice-banner{
  display:flex!important;align-items:flex-start;gap:var(--space-3);
  margin:0 0 var(--space-5)!important;
  padding:var(--space-4) 0!important;
  background:transparent!important;
  color:var(--text-primary)!important;
  border:0!important;
  border-top:var(--hairline)!important;
  border-bottom:var(--hairline)!important;
  border-radius:0!important;
  box-shadow:none!important;
  font-family:var(--font-sans)!important;
  font-size:var(--fs-body-sm)!important;
  line-height:1.5;
}
.wc-block-components-notice-banner > svg{
  flex:0 0 auto;width:18px;height:18px;
  background:transparent!important;border-radius:0!important;
  fill:var(--ink-900)!important;padding:0!important;
}
.wc-block-components-notice-banner.is-error{border-color:var(--terracotta-600)!important}
.wc-block-components-notice-banner.is-error > svg{fill:var(--terracotta-600)!important}
.wc-block-components-notice-banner a,
.wc-block-components-notice-banner .wc-forward{
  color:var(--text-primary)!important;text-decoration:underline;text-underline-offset:3px;
}
.wc-block-components-notice-banner a:hover{color:var(--accent)!important}
.wc-block-components-notice-banner__dismiss svg{fill:var(--ink-900)!important}

/* Erreurs de champ sous les champs */
.wc-block-components-validation-error,
.wc-block-components-validation-error p{
  color:var(--text-accent)!important;
  font-size:var(--fs-body-sm)!important;
}
.wc-block-components-text-input.has-error input,
.wc-block-components-select.has-error select,
.wc-block-components-combobox.has-error input{
  border-color:var(--terracotta-600)!important;box-shadow:none!important;
}
.wc-block-components-text-input.has-error label{color:var(--text-accent)!important}

/* Badge « Mode de test » et petites étiquettes */
.wc-block-components-payment-method-label .wc-block-components-chip,
.wc-block-components-chip{
  background:transparent!important;
  color:var(--text-secondary)!important;
  border:var(--hairline)!important;border-radius:0!important;
  font-size:var(--fs-label)!important;letter-spacing:var(--ls-label);text-transform:uppercase;
}

/* Messages classiques (paiement refusé, etc.) sur la commande */
.woocommerce-checkout .woocommerce-NoticeGroup .woocommerce-error,
.woocommerce-checkout .woocommerce-NoticeGroup .woocommerce-message,
.woocommerce-checkout .woocommerce-NoticeGroup .woocommerce-info{
  list-style:none;margin:0 0 var(--space-5)!important;
}


/* --- 10.9 Titres des pages panier, commande, compte --------------------- */
.woocommerce-cart h1.entry-title,
.woocommerce-cart .main_title,
.woocommerce-checkout h1.entry-title,
.woocommerce-checkout .main_title,
.woocommerce-account h1.entry-title,
.woocommerce-account .main_title{
  margin-bottom:var(--space-8)!important;
  padding-bottom:0!important;
}

/* ==========================================================================
   11. ARTICLES DE BLOG
   Page d'un article seul, gabarit Divi (Theme Builder : module « Titre de
   l'article » + « Contenu de l'article » + « Navigation entre articles »).
   Migré depuis l'ancien gabarit natif (qui utilisait #main-content/.container/
   #left-area/#sidebar/.entry-content, tous absents du rendu Divi) le 29/09/2026.
   ========================================================================== */

/* Titre : largeur éditoriale généreuse (l'ancienne valeur --measure-display,
   22ch, était pensée pour un intitulé très court et faisait retomber les
   titres d'article sur 3 lignes) */
/* Respiration entre l'image de l'en-tête et le contenu qui suit
   (sk-page-header utilise sk-section--flush, sans remplissage bas) */
.single-post .sk-page-header{padding-bottom:var(--space-7)!important}
.single-post .sk-page-header + .et_pb_section.sk-section{padding-top:0!important}

.single-post .et_pb_post_title h1.entry-title{
  font-weight:var(--fw-regular);letter-spacing:-0.02em;
  margin:0 0 var(--space-4);padding:0;
  text-wrap:balance;
}
.single-post .et_pb_title_meta_container{margin:0 0 var(--space-8);padding:0;color:var(--text-secondary)}
.single-post .et_pb_title_meta_container a{color:var(--text-accent)}

/* Image mise en avant : largeur pleine, hauteur plafonnée et recadrée */
.single-post .et_pb_post_title .et_pb_title_featured_container img{
  width:100%;
  height:clamp(220px, 32vw, 420px);
  object-fit:cover;
}

/* Contenu : même largeur de lecture qu'avant, même air entre les blocs */
.single-post .et_pb_post_content{line-height:1.7}
.single-post .et_pb_post_content p{margin:0 0 1.3em;padding:0}
.single-post .et_pb_post_content h2,
.single-post .et_pb_post_content h3{margin:var(--space-8) 0 var(--space-4)}
.single-post .et_pb_post_content img,
.single-post .et_pb_post_content figure{display:block;margin:var(--space-7) 0;height:auto}

/* Liens dans le corps de l'article : terracotta par défaut (pas seulement
   au survol comme la règle globale du site), soulignés au survol */
.single-post .et_pb_post_content a{color:var(--accent)}
.single-post .et_pb_post_content a:hover{text-decoration:underline}

/* ==========================================================================
   12. NEWSLETTER
   Formulaire Fluent Forms utilisé dans le module Divi Email Optin, en
   bandeau (.sk-ff-center) et en version compacte pour le pied de page
   (.sk-ff--compact). Voir aussi la variable --font-sans en section 1.
   ========================================================================== */

/* === Fluent Forms — lettre de saknu. === */
/* Utilisation : shortcode [fluentform id="X" css_classes="sk-ff"]
   ou [fluentform id="X" css_classes="sk-ff sk-ff--compact"] dans le pied de page */

.sk-ff{font-family:var(--font-sans);color:var(--text-primary)}
.sk-ff form{margin:0}
.sk-ff .ff-el-group{margin-bottom:var(--space-6)}

/* Libellés */
.sk-ff .ff-el-input--label label{
  font-family:var(--font-sans);
  font-size:11px;font-weight:var(--fw-medium);
  letter-spacing:.16em;text-transform:uppercase;
  color:var(--text-muted);
  margin-bottom:var(--space-2);
}
.sk-ff .ff-el-is-required.asterisk-right label:after{color:var(--text-accent)}

/* Champs : filet bas uniquement */
.sk-ff .ff-el-form-control{
  font-family:var(--font-sans)!important;
  font-size:var(--fs-body)!important;
  color:var(--text-primary)!important;
  background:transparent!important;
  border:0!important;
  border-bottom:1px solid var(--border-hairline)!important;
  border-radius:0!important;
  box-shadow:none!important;
  padding:0 0 12px!important;
  min-height:44px;
  transition:border-color var(--dur-1) var(--ease-out);
}
.sk-ff .ff-el-form-control::placeholder{color:var(--text-muted);opacity:1}
.sk-ff .ff-el-form-control:focus{border-bottom-color:var(--ink-900)!important;outline:none}
.sk-ff .ff-el-form-control:focus-visible{outline:1.5px solid var(--focus-ring);outline-offset:3px}

/* Case RGPD */
.sk-ff .ff-el-form-check{margin:0}
.sk-ff .ff-el-form-check label.ff-el-form-check-label{
  display:flex;align-items:flex-start;gap:var(--space-3);
  font-size:var(--fs-body-sm);line-height:1.6;
  color:var(--text-secondary);
  text-transform:none;letter-spacing:0;
  cursor:pointer;
}
.sk-ff input[type="checkbox"]{
  appearance:none;-webkit-appearance:none;
  flex:0 0 18px;width:18px;height:18px;margin:3px 0 0;
  border:1px solid var(--ink-900);border-radius:0;
  background:transparent;cursor:pointer;
  display:grid;place-content:center;
}
.sk-ff input[type="checkbox"]:checked{background:var(--ink-900)}
.sk-ff input[type="checkbox"]:checked::after{
  content:"";width:9px;height:5px;
  border-left:1.5px solid var(--paper-100);border-bottom:1.5px solid var(--paper-100);
  transform:rotate(-45deg) translate(1px,-1px);
}
.sk-ff input[type="checkbox"]:focus-visible{outline:1.5px solid var(--focus-ring);outline-offset:3px}
.sk-ff .ff-el-form-check-label a{color:var(--text-primary);text-decoration:underline;text-underline-offset:3px}
.sk-ff .ff-el-form-check-label a:hover{color:var(--accent)}

/* Bouton encre */
.sk-ff .ff-btn-submit,
.sk-ff button[type="submit"]{
  min-height:44px;
  padding:15px 30px!important;
  font-family:var(--font-sans)!important;
  font-size:11px!important;font-weight:var(--fw-medium)!important;
  letter-spacing:.16em!important;text-transform:uppercase;line-height:1!important;
  color:var(--paper-100)!important;
  background:var(--ink-900)!important;
  border:1px solid var(--ink-900)!important;
  border-radius:0!important;
  box-shadow:none!important;
  transition:transform var(--dur-1) var(--ease-out),background var(--dur-1) var(--ease-out);
}
.sk-ff .ff-btn-submit:hover{transform:translateY(-1px);opacity:1!important}
.sk-ff .ff-btn-submit:active{transform:none}
.sk-ff .ff-btn-submit:focus-visible{outline:1.5px solid var(--focus-ring);outline-offset:3px}

/* Erreurs et succès */
.sk-ff .error.text-danger,
.sk-ff .ff-el-is-error .text-danger{
  margin-top:var(--space-2);
  font-size:var(--fs-caption);color:var(--text-accent);
}
.sk-ff .ff-el-is-error .ff-el-form-control{border-bottom-color:var(--terracotta-600)!important}
/* Message de succes des formulaires stylises sk-ff : Instrument Sans, pas Fraunces (plus lisible pour un message de confirmation) */
.sk-ff .ff-message-success{
  border:0!important;box-shadow:none!important;background:transparent!important;
  padding:0!important;
  font-family:var(--font-sans);font-size:var(--fs-h3);color:var(--text-primary);
}
.ff-message-success{
  border:0!important;box-shadow:none!important;background:transparent!important;
  padding:0!important;
  font-family:var(--font-display);font-size:var(--fs-h3);color:var(--text-primary);
}

/* Version pleine largeur : e-mail + prénom côte à côte */
.sk-ff:not(.sk-ff--compact) .ff-t-container{gap:var(--space-6)}
.sk-ff:not(.sk-ff--compact) .ff-t-cell{padding:0!important}

/* Version compacte (pied de page) */
.sk-ff--compact .ff-el-group{margin-bottom:var(--space-4)}
.sk-ff--compact .ff-t-container{display:block}
.sk-ff--compact .ff-t-cell{width:100%!important;padding:0!important}
.sk-ff--compact .ff-el-form-check label.ff-el-form-check-label{font-size:var(--fs-caption)}
.sk-ff--compact .ff-btn-submit{width:100%}

@media (max-width:767px){
  .sk-ff .ff-t-container{display:block}
  .sk-ff .ff-t-cell{width:100%!important}
  .sk-ff .ff-btn-submit{width:100%}
}

/* === Bannière lettre : bloc resserré et centré === */
.sk-ff-center{
  max-width:560px!important;
  width:100%!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center;
}
.sk-ff-center .et_pb_column{width:100%!important;margin-right:0!important}
.sk-ff-center h1,.sk-ff-center h2,.sk-ff-center h3{
  margin-left:auto;margin-right:auto;
  text-wrap:balance;
}
.sk-ff-center p{margin-left:auto;margin-right:auto;text-wrap:pretty}

/* Formulaire */
.sk-ff-center .sk-ff{margin:var(--space-7) auto 0;max-width:420px;text-align:left}
.sk-ff-center .sk-ff .ff-el-form-control{padding-left:0!important;text-indent:0}
.sk-ff-center .sk-ff .ff-el-group{margin-bottom:var(--space-5)}
.sk-ff-center .sk-ff .ff-btn-submit{width:100%;margin-top:var(--space-3)}
.sk-ff-center .sk-ff .ff_submit_btn_wrapper{text-align:center}

/* Mention de désinscription */
.sk-ff-center .et_pb_text:last-child p{font-size:var(--fs-caption);color:var(--text-secondary)}




/* ==========================================================================
   12. PAGE 404
   Recadrage du doodle Lottie : seuls les 3/4 inferieurs du dessin (carre)
   sont visibles, le quart superieur est masque.
   ========================================================================== */
.error404 .et_pb_lottie{
  aspect-ratio:4/3;
  overflow:hidden;
}
.error404 .et_pb_lottie_animation{
  transform:translateY(-25%);
}

/* Fond du header toujours blanc pur sur cette page (au lieu de --surface-page
   herite de .sk-header), y compris scrolle et menu mobile ouvert. Scope via
   .error404 : l'en-tete de la 404 est un gabarit dedie (post 500), distinct
   de l'en-tete du reste du site (post 64), donc aucun risque de fuite. */
.error404 .et_pb_section.sk-header,
.error404 .et_pb_section.sk-header.is-scrolled,
body.sk-scrolled.error404 .et_pb_section.sk-header,
.error404 .et_pb_section.sk-header:has(.mobile_nav.opened){
  background:#fff!important;
}
