/*
Theme Name: Cosm'ethique Simple v3
Theme URI: https://cosmethiques.fr
Author: Cosm'ethique
Description: Theme Cosm'ethique. v4 : catalogue des 13 produits integre au theme et cree automatiquement dans WooCommerce (panier et paiement Stripe fonctionnels), textures associees a chaque produit, contrastes conformes WCAG AA, responsive mobile.
Version: 4.0.6
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: cosmethique
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

/* =========================================================
   Cosm'éthique — Design system
   Dérivé de la charte graphique : couleurs, typographies,
   boutons, icônes, grille. À reprendre tel quel dans le thème
   WordPress (style.css du thème enfant / variables CSS).
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;1,400&family=Inter:wght@400;500;600&display=swap');

:root{
  /* --- Palette (source : charte graphique) --- */
  --sauge:      #6B8F71;
  --sauge-pale: #E7EEE8;
  --charbon:    #2C2C2A;
  --sable:      #D9CBB5;
  --sable-pale: #F1EAE0;
  --blanc-casse:#FAF9F6;

  /* --- Couleurs de TEXTE accessibles (WCAG AA, min 4.5:1) ---
     Le sauge de la charte (#6B8F71) ne donne que 3.44:1 sur fond
     blanc cassé : il reste utilisé pour les aplats, bordures et
     décors, mais jamais pour du texte. Ces deux variables le
     remplacent partout où il s'agit de texte à lire. */
  --sauge-texte: #4F7256;            /* 5.15:1 — vert lisible */
  --texte-doux:  rgba(44,44,42,.78); /* 6.67:1 — gris secondaire lisible */
  --texte-sur-sauge: #FFFFFF;        /* texte sur aplat sauge */

  /* --- Typographie --- */
  --font-serif: 'Lora', Georgia, serif;      /* Titres */
  --font-sans:  'Inter', Helvetica, Arial, sans-serif; /* Texte courant */

  /* --- Rythme --- */
  --radius: 6px;
  --radius-lg: 8px;
  --border: 1px solid rgba(44,44,42,0.12);
  --max: 1200px;
  --gutter: clamp(20px, 4vw, 64px);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--blanc-casse);
  color:var(--charbon);
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3,h4{
  font-family:var(--font-serif);
  font-weight:500;
  line-height:1.15;
  margin:0 0 .5em;
  letter-spacing:.2px;
}
h1{font-size:clamp(2.1rem,4vw,3.4rem);}
h2{font-size:clamp(1.6rem,2.6vw,2.3rem);}
h3{font-size:1.25rem;}
/* Classes d'apparence des titres — permettent de corriger la hiérarchie
   sémantique (H1>H2>H3 sans saut, pour les lecteurs d'écran et le SEO)
   sans modifier la taille visuelle qui était déjà validée. */
h1.taille-h2,h2.taille-h2{font-size:clamp(1.6rem,2.6vw,2.3rem);}
h2.taille-h3,h3.taille-h3{font-size:1.25rem;}
h3.taille-h4,h4.taille-h4{font-size:1rem;}

p{margin:0 0 1em;}
.eyebrow{
  font-family:var(--font-sans);
  font-size:.85rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--sauge-texte);
  font-weight:600;
  display:inline-block;
  margin-bottom:.8em;
}
.container{max-width:var(--max);margin:0 auto;padding:0 var(--gutter);}
.section{padding:clamp(48px,7vw,96px) 0;}
.section-tight{padding:clamp(32px,5vw,56px) 0;}
.center{text-align:center;}
.lede{color:rgba(44,44,42,.72);max-width:56ch;}
.center .lede, .page-hero .lede{margin-left:auto;margin-right:auto;}

/* Signature : trait ovale hérité du logo, utilisé comme séparateur discret */
.mark-divider{
  width:34px;height:20px;
  border:1.6px solid var(--sauge);
  border-radius:50%;
  position:relative;
  margin:0 auto 22px;
}
.mark-divider::after{
  content:"";position:absolute;left:50%;top:2px;bottom:2px;
  width:1.4px;background:var(--sauge);transform:translateX(-50%);
}

/* --- Boutons (charte : traits fins, coins arrondis 4-8px, jamais d'ombre) --- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-family:var(--font-sans);
  font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600;
  padding:14px 28px;border-radius:var(--radius);
  border:1.4px solid var(--charbon);
  cursor:pointer;transition:background .18s ease, color .18s ease, border-color .18s ease;
  box-shadow:none;
}
.btn-primary{background:var(--charbon);color:var(--blanc-casse);}
.btn-primary:hover{background:#454542;}
.btn-secondary{background:transparent;color:var(--charbon);}
.btn-secondary:hover{background:var(--charbon);color:var(--blanc-casse);}
.btn-sauge{border-color:var(--sauge-texte);background:var(--sauge-texte);color:#fff;}
.btn-sauge:hover{background:#5c7c62;}
.btn-full{width:100%;}
.btn-sm{padding:10px 18px;font-size:.72rem;}

/* --- Icônes : traits fins 1.5-2px, jamais de remplissage plein --- */
.icon{width:20px;height:20px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.icon-lg{width:28px;height:28px;stroke-width:1.5;}

/* =========================== HEADER =========================== */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(250,249,246,.94);
  backdrop-filter:blur(6px);
  border-bottom:var(--border);
}
.topbar{
  background:var(--charbon);color:var(--blanc-casse);
  font-size:.74rem;letter-spacing:.06em;text-align:center;
  padding:8px var(--gutter);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px var(--gutter);max-width:var(--max);margin:0 auto;
}
.logo{display:flex;align-items:center;gap:10px;}
.logo img{height:34px;width:auto;}
.nav-links{display:flex;align-items:center;gap:34px;}
.nav-links > li{position:relative;}
.nav-links a{
  font-size:.86rem;letter-spacing:.03em;font-weight:500;
  display:flex;align-items:center;gap:5px;
  padding:8px 0;
}
.nav-links a:hover{color:var(--sauge-texte);}
.has-dropdown:hover .dropdown{opacity:1;visibility:visible;transform:translateY(0);}
.dropdown{
  position:absolute;top:100%;left:-18px;
  background:#fff;border:var(--border);border-radius:var(--radius-lg);
  padding:14px;min-width:220px;
  opacity:0;visibility:hidden;transform:translateY(6px);
  transition:all .18s ease;
  box-shadow:0 14px 30px rgba(44,44,42,.08);
}
.dropdown a{padding:9px 10px;border-radius:4px;display:block;font-size:.85rem;}
.dropdown a:hover{background:var(--sauge-pale);color:var(--charbon);}
.nav-icons{display:flex;align-items:center;gap:20px;}
.nav-icons a{position:relative;display:flex;}
.cart-count{
  position:absolute;top:-7px;right:-9px;background:var(--sauge-texte);color:#fff;
  font-size:.62rem;width:16px;height:16px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-weight:600;
}
.burger{display:none;background:none;border:none;cursor:pointer;}

@media (max-width: 900px){
  .nav-links{
    position:fixed;inset:0 0 0 auto;width:78%;max-width:340px;height:100vh;
    background:var(--blanc-casse);flex-direction:column;align-items:flex-start;
    padding:100px 30px 30px;gap:6px;
    transform:translateX(100%);transition:transform .25s ease;
    box-shadow:-10px 0 30px rgba(0,0,0,.08);
  }
  .nav-links.open{transform:translateX(0);}
  .nav-links > li{width:100%;}
  .nav-links a{padding:12px 0;width:100%;}
  .dropdown{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;padding:0 0 0 14px;display:none;}
  .has-dropdown.open .dropdown{display:block;}
  .burger{display:block;}
}

/* =========================== HERO =========================== */
.hero{
  position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;
  gap:0;overflow:hidden;
}
.hero-text{padding:0 clamp(20px,6vw,90px);}
.hero-text p.lede{margin-bottom:1.8em;}
.hero-img{aspect-ratio:1/1;max-height:600px;width:100%;margin:0 var(--gutter) 0 0;overflow:hidden;border-radius:var(--radius-lg);}
.hero-img img{width:100%;height:100%;object-fit:cover;object-position:center 15%;}
@media (max-width:900px){
  .hero{grid-template-columns:1fr;}
  .hero-text{padding:56px var(--gutter) 40px;order:2;}
  .hero-img{order:1;aspect-ratio:1/1;max-height:420px;margin:0 var(--gutter);}
}

/* =========================== VALEURS STRIP =========================== */
.values{
  display:grid;grid-template-columns:repeat(4,1fr);gap:28px;
  border-top:var(--border);border-bottom:var(--border);
}
.value{padding:34px var(--gutter);text-align:center;}
.value .icon-lg{color:var(--sauge-texte);margin:0 auto 14px;}
.value h4{font-size:.92rem;margin-bottom:6px;}
.value p{font-size:.85rem;color:var(--texte-doux);margin:0;}
@media (max-width:900px){.values{grid-template-columns:repeat(2,1fr);}}

/* =========================== PRODUITS =========================== */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:36px 30px;}
@media (max-width:480px){.grid{grid-template-columns:1fr;}}

.card-product{display:block;}
.card-product .thumb{
  aspect-ratio:1/1;border-radius:var(--radius-lg);overflow:hidden;
  background:var(--sable-pale);margin-bottom:16px;position:relative;
}
.card-product .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.card-product:hover .thumb img{transform:scale(1.04);}
.badge{
  position:absolute;top:12px;left:12px;background:var(--charbon);color:#fff;
  font-size:.64rem;letter-spacing:.06em;text-transform:uppercase;
  padding:5px 10px;border-radius:20px;
}
.card-product .cat{font-size:.72rem;color:var(--sauge-texte);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-bottom:4px;}
.card-product h3{font-size:1.02rem;margin-bottom:4px;}
.card-product .price{font-size:.92rem;color:rgba(44,44,42,.72);}
.card-product .add{
  margin-top:10px;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;
  color:var(--charbon);border-bottom:1px solid var(--charbon);display:inline-block;padding-bottom:2px;
}

/* =========================== CATEGORIES TILES =========================== */
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
@media (max-width:900px){.cat-grid{grid-template-columns:repeat(2,1fr);}}
.cat-tile{
  position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:3/4;
  background:var(--sable-pale);display:flex;align-items:flex-end;
}
.cat-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.cat-tile span{
  position:relative;z-index:2;color:#fff;font-family:var(--font-serif);font-size:1.15rem;
  padding:18px;background:linear-gradient(0deg,var(--texte-doux),transparent 60%);width:100%;
}

/* =========================== STORY / SPLIT =========================== */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,90px);align-items:center;}
.split img{border-radius:var(--radius-lg);max-height:480px;width:100%;object-fit:cover;}
@media (max-width:900px){.split{grid-template-columns:1fr;}}
.split.reverse .img-col{order:2;}
@media (max-width:900px){.split.reverse .img-col{order:0;}}

/* =========================== TEMOIGNAGES =========================== */
.testimonials{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media (max-width:900px){.testimonials{grid-template-columns:1fr;}}
.testimonial{
  background:#fff;border:var(--border);border-radius:var(--radius-lg);padding:28px;
}
.stars{color:var(--sauge-texte);letter-spacing:2px;margin-bottom:12px;font-size:.9rem;}
.testimonial p{font-size:.92rem;color:rgba(44,44,42,.82);}
.testimonial .who{font-size:.8rem;font-weight:600;margin-top:14px;}

/* =========================== NEWSLETTER BANNER =========================== */
.newsletter{
  background:var(--sauge-texte);color:#fff;border-radius:var(--radius-lg);
  padding:clamp(36px,5vw,64px);display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center;
}
.newsletter h2{color:#fff;}
.newsletter p{color:rgba(255,255,255,.85);}
.newsletter form{display:flex;gap:10px;}
.newsletter input[type=email]{
  flex:1;padding:14px 16px;border-radius:var(--radius);border:1px solid rgba(255,255,255,.88);
  background:rgba(255,255,255,.08);color:#fff;font-family:var(--font-sans);
}
.newsletter input[type=email]::placeholder{color:rgba(255,255,255,.88);}
.newsletter .btn-primary{background:var(--charbon);border-color:var(--charbon);white-space:nowrap;}
@media (max-width:760px){.newsletter{grid-template-columns:1fr;}.newsletter form{flex-direction:column;}}

/* =========================== FOOTER =========================== */
.site-footer{background:var(--charbon);color:rgba(250,249,246,.85);margin-top:80px;}
.footer-top{
  display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:40px;
  padding:64px var(--gutter) 40px;max-width:var(--max);margin:0 auto;
}
.footer-top h5{
  color:#fff;font-family:var(--font-sans);font-size:.76rem;letter-spacing:.08em;
  text-transform:uppercase;margin-bottom:16px;font-weight:600;
}
.footer-top li{margin-bottom:9px;font-size:.87rem;}
.footer-top a:hover{color:var(--sauge-texte);}
.footer-brand .logo img{filter:brightness(0) invert(1);height:30px;}
.footer-brand p{font-size:.85rem;margin-top:14px;color:rgba(250,249,246,.6);max-width:32ch;}
.socials{display:flex;gap:14px;margin-top:18px;}
.socials a{width:34px;height:34px;border:1px solid rgba(250,249,246,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;}
.socials .icon{width:15px;height:15px;}
.footer-bottom{
  border-top:1px solid rgba(250,249,246,.15);
  padding:22px var(--gutter);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
  max-width:var(--max);margin:0 auto;font-size:.78rem;color:rgba(250,249,246,.55);
}
.footer-bottom ul{display:flex;gap:20px;flex-wrap:wrap;}
@media (max-width:900px){.footer-top{grid-template-columns:1fr 1fr;}}

/* =========================== PAGE HEADER (pages internes) =========================== */
.page-hero{
  padding:56px var(--gutter) 40px;text-align:center;border-bottom:var(--border);
  background:var(--sable-pale);
}
.breadcrumb{font-size:.78rem;color:var(--texte-doux);margin-bottom:14px;}
.breadcrumb a:hover{color:var(--sauge-texte);}

/* =========================== BOUTIQUE / CATEGORIE =========================== */
.shop-layout{display:grid;grid-template-columns:250px 1fr;gap:50px;align-items:start;}
@media (max-width:900px){.shop-layout{grid-template-columns:1fr;}}
.filters{border:var(--border);border-radius:var(--radius-lg);padding:24px;}
.filters h4{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:14px;}
.filters .filter-group{margin-bottom:26px;}
.filters label{display:flex;align-items:center;gap:10px;font-size:.88rem;margin-bottom:10px;cursor:pointer;}
.shop-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px;font-size:.86rem;color:var(--texte-doux);}
.shop-toolbar select{border:var(--border);border-radius:var(--radius);padding:8px 10px;font-family:var(--font-sans);background:#fff;}

/* =========================== PRODUIT =========================== */
.product-view{display:grid;grid-template-columns:1fr 1fr;gap:60px;}
@media (max-width:900px){.product-view{grid-template-columns:1fr;gap:30px;}}
.product-gallery img{border-radius:var(--radius-lg);aspect-ratio:1/1;object-fit:cover;background:var(--sable-pale);}
.product-info .price{font-size:1.3rem;color:var(--sauge-texte);font-weight:600;margin:10px 0 20px;font-family:var(--font-serif);}
.product-info .desc{color:rgba(44,44,42,.75);margin-bottom:26px;}
.qty-row{display:flex;gap:14px;margin-bottom:16px;}
.qty{
  display:flex;align-items:center;border:1.4px solid var(--charbon);border-radius:var(--radius);overflow:hidden;
}
.qty button{background:none;border:none;width:40px;height:48px;cursor:pointer;font-size:1rem;}
.qty input{width:40px;border:none;text-align:center;font-family:var(--font-sans);}
.tabs{margin-top:40px;border-top:var(--border);}
.tab-btns{display:flex;gap:30px;border-bottom:var(--border);}
.tab-btns button{
  background:none;border:none;padding:16px 0;font-family:var(--font-sans);font-size:.86rem;
  font-weight:600;color:var(--texte-doux);cursor:pointer;border-bottom:2px solid transparent;
}
.tab-btns button.active{color:var(--charbon);border-color:var(--sauge-texte);}
.tab-panel{padding:24px 0;font-size:.92rem;color:rgba(44,44,42,.78);display:none;}
.tab-panel.active{display:block;}
.tab-panel ul{padding-left:18px;list-style:disc;}
.tab-panel li{margin-bottom:6px;}

.review{border-bottom:var(--border);padding:22px 0;}
.review .who{font-weight:600;font-size:.9rem;}
.review .date{font-size:.76rem;color:var(--texte-doux);margin-left:10px;}

/* =========================== FORMULAIRES =========================== */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.form-grid .full{grid-column:1/-1;}
@media (max-width:700px){.form-grid{grid-template-columns:1fr;}}
label.field-label{display:block;font-size:.88rem;font-weight:600;margin-bottom:8px;color:var(--charbon);}
input[type=text],input[type=email],input[type=tel],input[type=date],input[type=password],input[type=number],select,textarea{
  width:100%;padding:13px 14px;border:1px solid rgba(44,44,42,.32);border-radius:var(--radius);
  font-family:var(--font-sans);font-size:.95rem;background:#fff;color:var(--charbon);
}
/* Exemples de saisie : lisibles (4.5:1 mini) mais visuellement distincts
   du texte réellement saisi, qui reste en charbon plein. */
input::placeholder,textarea::placeholder{color:rgba(44,44,42,.72);opacity:1;font-style:italic;}
textarea{resize:vertical;min-height:120px;}
input:focus,textarea:focus,select:focus{outline:2.5px solid var(--sauge-texte);outline-offset:1px;border-color:var(--sauge-texte);}
/* Focus visible au clavier sur tous les éléments interactifs (accessibilité) */
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:2.5px solid var(--sauge-texte);outline-offset:2px;border-radius:2px;
}
.file-drop{
  border:1.4px dashed rgba(44,44,42,.3);border-radius:var(--radius-lg);padding:26px;
  text-align:center;font-size:.85rem;color:var(--texte-doux);
}

/* =========================== CARTE / CONTACT =========================== */
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:60px;}
@media (max-width:900px){.contact-layout{grid-template-columns:1fr;}}
.info-block{display:flex;gap:14px;margin-bottom:22px;}
.info-block .icon{color:var(--sauge-texte);flex-shrink:0;margin-top:3px;}
.info-block h4{font-size:.92rem;margin-bottom:4px;}
.info-block p{font-size:.88rem;color:var(--texte-doux);margin:0;}
.map-frame{border-radius:var(--radius-lg);overflow:hidden;border:var(--border);height:280px;}
.map-frame iframe{width:100%;height:100%;border:0;}

/* =========================== PANIER =========================== */
.cart-table{width:100%;border-collapse:collapse;}
.cart-table th{
  text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;
  color:var(--texte-doux);padding-bottom:14px;border-bottom:var(--border);font-weight:600;
}
.cart-table td{padding:20px 0;border-bottom:var(--border);vertical-align:middle;}
.cart-item{display:flex;gap:16px;align-items:center;}
.cart-item img{width:76px;height:76px;object-fit:cover;border-radius:var(--radius);background:var(--sable-pale);}
.cart-item h4{font-size:.92rem;margin:0 0 4px;}
.remove-link{font-size:.76rem;color:var(--texte-doux);text-decoration:underline;}
.cart-summary{border:var(--border);border-radius:var(--radius-lg);padding:26px;}
.summary-row{display:flex;justify-content:space-between;font-size:.9rem;padding:8px 0;}
.summary-row.total{border-top:var(--border);margin-top:8px;padding-top:16px;font-weight:600;font-size:1.05rem;}

/* =========================== BLOG =========================== */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;}
@media (max-width:900px){.blog-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){.blog-grid{grid-template-columns:1fr;}}
.article-card .thumb{aspect-ratio:4/3;border-radius:var(--radius-lg);overflow:hidden;margin-bottom:16px;background:var(--sable-pale);}
.article-card .thumb img{width:100%;height:100%;object-fit:cover;}
.article-card .meta{font-size:.74rem;color:var(--sauge-texte);text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin-bottom:6px;}
.article-card h3{font-size:1.05rem;margin-bottom:6px;}
.article-card p{font-size:.87rem;color:var(--texte-doux);}

.article-body{max-width:72ch;margin:0 auto;}
.article-body p{color:rgba(44,44,42,.82);}
.article-body h2{margin-top:1.4em;}
.article-hero{border-radius:var(--radius-lg);overflow:hidden;margin:30px auto;max-width:900px;}
.article-meta{display:flex;gap:16px;align-items:center;justify-content:center;font-size:.82rem;color:var(--texte-doux);margin-bottom:10px;}

.comment{display:flex;gap:16px;padding:20px 0;border-bottom:var(--border);}
.avatar{width:42px;height:42px;border-radius:50%;background:var(--sable);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);color:var(--charbon);font-size:.95rem;}

/* =========================== LEGAL PAGES =========================== */
.legal-body{max-width:76ch;margin:0 auto;}
.legal-body h2{margin-top:1.6em;font-size:1.25rem;}
.legal-body p, .legal-body li{color:rgba(44,44,42,.78);font-size:.94rem;}
.legal-body ul{list-style:disc;padding-left:20px;}
.legal-table{width:100%;border-collapse:collapse;margin:20px 0;}
.legal-table td{padding:9px 0;border-bottom:var(--border);font-size:.9rem;}
.legal-table td:first-child{color:var(--texte-doux);width:40%;}

/* =========================== FRANCHISE =========================== */
.franchise-hero{
  display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:0;
  background:var(--charbon);overflow:hidden;
}
.franchise-hero-img{aspect-ratio:3/4;max-height:640px;width:100%;overflow:hidden;}
.franchise-hero-img img{width:100%;height:100%;object-fit:cover;object-position:center 20%;}
.franchise-hero-content{color:#fff;padding:60px var(--gutter);max-width:560px;}
.franchise-hero-content .eyebrow{color:var(--sable);}
.franchise-hero-content h1{color:#fff;}
.franchise-hero-content p{color:rgba(255,255,255,.85);}
@media (max-width:900px){
  .franchise-hero{grid-template-columns:1fr;}
  .franchise-hero-img{order:1;aspect-ratio:1/1;max-height:380px;}
  .franchise-hero-content{order:2;padding:40px var(--gutter);max-width:none;}
}

.criteria-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
@media (max-width:700px){.criteria-grid{grid-template-columns:1fr;}}
.criteria-item{display:flex;gap:14px;padding:20px;border:var(--border);border-radius:var(--radius-lg);}
.criteria-item .icon{color:var(--sauge-texte);flex-shrink:0;}

.steps{counter-reset:step;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr;}}
.step{position:relative;padding-top:10px;}
.step::before{
  counter-increment:step;content:counter(step,decimal-leading-zero);
  font-family:var(--font-serif);font-size:1.6rem;color:var(--sauge-texte);display:block;margin-bottom:10px;
}
.step h4{font-size:.94rem;margin-bottom:6px;}
.step p{font-size:.84rem;color:var(--texte-doux);}

/* =========================== CARRIERES =========================== */
.job-list{border:var(--border);border-radius:var(--radius-lg);overflow:hidden;}
.job-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:24px 26px;border-bottom:var(--border);gap:20px;flex-wrap:wrap;
}
.job-row:last-child{border-bottom:none;}
.job-row h4{margin:0 0 6px;font-size:1rem;}
.job-row .tags{font-size:.78rem;color:var(--texte-doux);}
.job-row .tags span{margin-right:14px;}

/* =========================== COMPTE / CONNEXION =========================== */
.account-box{max-width:440px;margin:0 auto;background:#fff;border:var(--border);border-radius:var(--radius-lg);padding:clamp(28px,4vw,44px);}
.account-tabs{display:flex;border-bottom:var(--border);margin-bottom:26px;}
.account-tabs button{
  flex:1;background:none;border:none;padding:14px 0;font-family:var(--font-sans);font-weight:600;
  font-size:.86rem;color:var(--texte-doux);cursor:pointer;border-bottom:2px solid transparent;
}
.account-tabs button.active{color:var(--charbon);border-color:var(--sauge-texte);}
.account-panel{display:none;}
.account-panel.active{display:block;}
.account-panel .field-label{margin-top:2px;}
.account-panel > div{margin-bottom:18px;}
.form-links{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;margin:14px 0 20px;}
.form-links a{color:var(--sauge-texte);text-decoration:underline;}

/* =========================== GALERIE TEXTURES / INGREDIENTS =========================== */
.texture-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
@media (max-width:900px){.texture-grid{grid-template-columns:repeat(2,1fr);}}
.texture-item{position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:3/4;}
.texture-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.texture-item:hover img{transform:scale(1.05);}
.texture-item span{
  position:absolute;left:0;right:0;bottom:0;padding:14px;color:#fff;font-size:.82rem;font-weight:600;
  background:linear-gradient(0deg,var(--texte-doux),transparent 65%);
}

/* Newsletter avec photo (communauté) */
.newsletter-split{display:grid;grid-template-columns:1fr 1fr;border-radius:var(--radius-lg);overflow:hidden;}
.newsletter-split .nl-img{min-height:320px;}
.newsletter-split .nl-img img{width:100%;height:100%;object-fit:cover;}
.newsletter-split .nl-content{background:var(--sauge-texte);color:#fff;padding:clamp(30px,4vw,52px);display:flex;flex-direction:column;justify-content:center;}
.newsletter-split .nl-content h2{color:#fff;}
.newsletter-split .nl-content p{color:rgba(255,255,255,.85);}
.newsletter-split form{display:flex;gap:10px;}
.newsletter-split input[type=email]{
  flex:1;padding:14px 16px;border-radius:var(--radius);border:1px solid rgba(255,255,255,.88);
  background:rgba(255,255,255,.08);color:#fff;font-family:var(--font-sans);
}
.newsletter-split input[type=email]::placeholder{color:rgba(255,255,255,.88);}
.newsletter-split .btn-primary{background:var(--charbon);border-color:var(--charbon);white-space:nowrap;}
@media (max-width:760px){.newsletter-split{grid-template-columns:1fr;}.newsletter-split .nl-img{min-height:220px;}.newsletter-split form{flex-direction:column;}}

.ingr-strip{display:flex;gap:14px;margin-top:18px;}
.ingr-strip figure{margin:0;flex:1;}
.ingr-strip img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:var(--radius);}
.ingr-strip figcaption{font-size:.76rem;color:var(--texte-doux);margin-top:6px;text-align:center;}

.cat-hero-img{
  max-width:760px;margin:0 auto;border-radius:var(--radius-lg);overflow:hidden;
  aspect-ratio:16/10;
}
.cat-hero-img img{width:100%;height:100%;object-fit:cover;object-position:center 30%;}

/* =========================== SLIDER PRODUIT =========================== */
.product-gallery{position:relative;}
.pg-main{position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:1/1;background:var(--sable-pale);}
.pg-main img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .35s ease;}
.pg-main img.active{opacity:1;}
.pg-arrow{
  position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;
  background:rgba(255,255,255,.9);border:var(--border);display:flex;align-items:center;justify-content:center;
  cursor:pointer;z-index:2;
}
.pg-arrow.prev{left:14px;}
.pg-arrow.next{right:14px;}
.pg-thumbs{display:flex;gap:10px;margin-top:14px;}
.pg-thumbs button{
  width:70px;height:70px;border-radius:var(--radius);overflow:hidden;border:1.6px solid transparent;
  padding:0;cursor:pointer;background:var(--sable-pale);
}
.pg-thumbs button.active{border-color:var(--sauge-texte);}
.pg-thumbs img{width:100%;height:100%;object-fit:cover;display:block;}

/* =========================== ARTICLE VEDETTE HOME =========================== */
.featured-article{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,80px);align-items:center;}
@media (max-width:900px){.featured-article{grid-template-columns:1fr;}}
.featured-article img{border-radius:var(--radius-lg);aspect-ratio:4/3;object-fit:cover;}
.mt-0{margin-top:0;}
.text-sauge{color:var(--sauge-texte);}
.flex-between{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;}
.skip-link{position:absolute;left:-999px;top:0;background:var(--charbon);color:#fff;padding:10px 16px;z-index:100;}
.skip-link:focus{left:10px;top:10px;}
@media (prefers-reduced-motion: reduce){*{transition:none !important;animation:none !important;}}

/* =========================================================
   INTÉGRATION WOOCOMMERCE — ajoutée pour reconnecter la v3 au
   vrai panier / vraie boutique / vrai paiement.
   ========================================================= */

/* Boutons WooCommerce */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce-Button {
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-family:var(--font-sans);font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600;
  padding:14px 28px;border-radius:var(--radius);border:1.4px solid var(--charbon);
  background:var(--charbon);color:var(--blanc-casse);box-shadow:none;transition:background .18s ease;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover{background:#454542;color:#fff;}
.woocommerce a.button.alt, .woocommerce #respond input#submit.alt{background:var(--sauge-texte);border-color:var(--sauge-texte);}

/* Messages / notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews{
  border-top-color:var(--sauge-texte) !important;background:var(--sauge-pale);border-radius:var(--radius);
  padding:14px 18px;font-size:.9rem;list-style:none;
}
.woocommerce-error{border-top-color:#b5514a !important;background:#fbeceb;}

/* Boutique — grille produits (archive-product) */
.woocommerce ul.products{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:36px 30px;list-style:none;margin:0;padding:0;}
.woocommerce ul.products li.product{list-style:none;position:relative;}
.woocommerce ul.products li.product a img{
  aspect-ratio:1/1;object-fit:cover;border-radius:var(--radius-lg);background:var(--sable-pale);margin-bottom:16px;
}
.woocommerce ul.products li.product .woocommerce-loop-category__title,
.woocommerce ul.products li.product h2, .woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--font-serif);font-size:1.02rem;font-weight:500;margin:0 0 4px;
}
.woocommerce ul.products li.product .price{font-family:var(--font-sans);font-size:.92rem;color:rgba(44,44,42,.72);}
.woocommerce ul.products li.product .price ins{text-decoration:none;color:var(--sauge-texte);font-weight:600;}
.woocommerce ul.products li.product .price del{opacity:.5;margin-right:8px;}
.woocommerce ul.products li.product .button{
  margin-top:10px;background:none;border:none;color:var(--charbon);padding:0;
  font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--charbon);border-radius:0;
}
.woocommerce ul.products li.product .onsale{
  position:absolute;background:var(--charbon);color:#fff;font-size:.64rem;text-transform:uppercase;
  letter-spacing:.06em;padding:5px 10px;border-radius:20px;min-height:0;min-width:0;line-height:1;top:12px;left:12px;
}
.woocommerce ul.products li.product .cat{font-size:.72rem;color:var(--sauge-texte);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-bottom:4px;}

/* Page de confirmation de commande (order-received) */
.woocommerce-order{max-width:760px;margin:0 auto;}
.woocommerce-thankyou-order-received{
  font-family:var(--font-serif);font-size:1.3rem;color:var(--sauge-texte);
  background:var(--sauge-pale);border-radius:var(--radius-lg);padding:20px 24px;margin-bottom:30px;
}
ul.woocommerce-order-overview{
  list-style:none;padding:0;margin:0 0 40px;display:grid;grid-template-columns:repeat(4,1fr);
  gap:16px;border:var(--border);border-radius:var(--radius-lg);padding:24px;
}
ul.woocommerce-order-overview li{font-size:.86rem;color:var(--texte-doux);}
ul.woocommerce-order-overview li strong{display:block;font-family:var(--font-serif);font-size:1.05rem;color:var(--charbon);margin-top:4px;}
@media (max-width:700px){ul.woocommerce-order-overview{grid-template-columns:1fr 1fr;}}
.woocommerce-order h2{font-family:var(--font-serif);font-size:1.3rem;margin:36px 0 16px;}
table.woocommerce-table{width:100%;border-collapse:collapse;margin-bottom:24px;}
table.woocommerce-table th{
  text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;
  color:var(--texte-doux);padding-bottom:12px;border-bottom:var(--border);font-weight:600;
}
table.woocommerce-table td{padding:14px 8px;border-bottom:var(--border);font-size:.92rem;}
table.woocommerce-table tfoot th, table.woocommerce-table tfoot td{border-top:2px solid var(--charbon);font-weight:600;}
.woocommerce-customer-details{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:30px;}
.woocommerce-customer-details address{
  font-style:normal;border:var(--border);border-radius:var(--radius-lg);padding:20px;font-size:.9rem;line-height:1.7;
}
.woocommerce-customer-details h2{margin-top:0;font-size:1rem;}
@media (max-width:700px){.woocommerce-customer-details{grid-template-columns:1fr;}}
.woocommerce nav.woocommerce-pagination ul{border:none;display:flex;gap:8px;}
.woocommerce nav.woocommerce-pagination ul li{border:none;}
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span{
  border:var(--border);border-radius:var(--radius);padding:8px 14px;
}
.woocommerce nav.woocommerce-pagination ul li span.current{background:var(--charbon);color:#fff;}

/* Fiche produit (single-product) */
.woocommerce div.product{display:grid;grid-template-columns:1fr 1fr;gap:60px;}
@media (max-width:900px){.woocommerce div.product{grid-template-columns:1fr;gap:30px;}}
.woocommerce div.product div.images{margin:0;}
.woocommerce div.product div.images img{
  border-radius:var(--radius-lg);background:var(--sable-pale);width:100%;aspect-ratio:1/1;object-fit:cover;display:block;
}
.woocommerce div.product .flex-viewport{border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:1/1;}
.woocommerce div.product .flex-viewport img{width:100%;height:100%;object-fit:cover;}
.woocommerce div.product div.thumbnails, .woocommerce div.product ul.flex-control-nav{
  display:flex;gap:10px;margin-top:14px;list-style:none;padding:0;flex-wrap:wrap;
}
.woocommerce div.product ul.flex-control-nav li{width:70px;height:70px;list-style:none;flex:0 0 70px;}
.woocommerce div.product ul.flex-control-nav img{
  width:70px;height:70px;object-fit:cover;border-radius:var(--radius);border:1.6px solid transparent;display:block;
}
.woocommerce div.product ul.flex-control-nav li.flex-active-slide img{border-color:var(--sauge-texte);}
.woocommerce div.product .woocommerce-product-gallery__wrapper:not(:has(.flex-viewport)){
  display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;
}
.woocommerce div.product .woocommerce-product-gallery__wrapper:not(:has(.flex-viewport)) .woocommerce-product-gallery__image{
  flex:0 0 70px;width:70px;height:70px;overflow:hidden;border-radius:var(--radius);margin:0;
}
.woocommerce div.product .woocommerce-product-gallery__wrapper:not(:has(.flex-viewport)) .woocommerce-product-gallery__image:first-child{
  flex-basis:100%;width:100%;height:auto;aspect-ratio:1/1;border-radius:var(--radius-lg);margin-bottom:4px;
}
.woocommerce div.product .woocommerce-product-gallery__image img{
  width:100%;height:100%;object-fit:cover;display:block;background:var(--sable-pale);
}
.woocommerce div.product .summary{margin:0;}
.woocommerce div.product .summary h1.product_title{font-family:var(--font-serif);font-size:2.2rem;margin-bottom:10px;}
.woocommerce div.product p.price, .woocommerce div.product span.price{
  font-family:var(--font-serif);font-size:1.3rem;color:var(--sauge-texte);font-weight:600;margin:0 0 18px;
}
.woocommerce div.product form.cart{display:flex;gap:14px;align-items:center;margin-bottom:20px;}
.woocommerce div.product form.cart .quantity{border:1.4px solid var(--charbon);border-radius:var(--radius);overflow:hidden;}
.woocommerce div.product form.cart .quantity input.qty{border:none;width:60px;height:48px;text-align:center;font-family:var(--font-sans);}
.woocommerce div.product .woocommerce-product-details__short-description{color:rgba(44,44,42,.75);margin-bottom:20px;}
.woocommerce div.product .woocommerce-tabs ul.tabs{display:flex;gap:30px;border-bottom:var(--border);list-style:none;padding:0;margin:40px 0 0;}
.woocommerce div.product .woocommerce-tabs ul.tabs li{border:none;background:none;padding:0;margin:0;}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  padding:16px 0;display:block;font-family:var(--font-sans);font-size:.86rem;font-weight:600;color:var(--texte-doux);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--charbon);border-bottom:2px solid var(--sauge);}
.woocommerce div.product .woocommerce-tabs .panel{padding:24px 0;font-size:.92rem;color:rgba(44,44,42,.78);}
.woocommerce #reviews .comment-text{border:var(--border);border-radius:var(--radius-lg);padding:20px;margin-bottom:16px;}
.woocommerce #reviews .star-rating{color:var(--sauge-texte);}
.woocommerce div.product .related.products{margin-top:60px;}
.woocommerce div.product .related.products > h2{font-family:var(--font-serif);text-align:center;margin-bottom:34px;}

/* Panier / Checkout / Mon compte */
.woocommerce table.shop_table{width:100%;border-collapse:collapse;}
.woocommerce table.shop_table th{
  text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--texte-doux);
  padding-bottom:14px;border-bottom:var(--border);font-weight:600;
}
.woocommerce table.shop_table td{padding:18px 10px;border-bottom:var(--border);vertical-align:middle;}
.woocommerce table.shop_table td.product-thumbnail img{width:76px;border-radius:var(--radius);background:var(--sable-pale);}
.woocommerce-cart-form .quantity input.qty{border:1.4px solid var(--charbon);border-radius:var(--radius);width:60px;height:44px;text-align:center;}
.woocommerce a.remove{color:var(--texte-doux) !important;text-decoration:underline;}
.cart-collaterals .cart_totals{border:var(--border);border-radius:var(--radius-lg);padding:26px;max-width:420px;margin-left:auto;}
.cart-collaterals .cart_totals h2{font-size:1.15rem;}
.cart-collaterals table.shop_table td, .cart-collaterals table.shop_table th{border:none;padding:9px 0;}
.woocommerce-checkout form .form-row label{font-size:.8rem;font-weight:600;margin-bottom:6px;display:block;}
.woocommerce-checkout form .form-row input.input-text, .woocommerce-checkout form .form-row select, .woocommerce-checkout form textarea{
  width:100%;padding:13px 14px;border:var(--border);border-radius:var(--radius);font-family:var(--font-sans);
}
#order_review{border:var(--border);border-radius:var(--radius-lg);padding:26px;}
.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none;padding:0;border:var(--border);border-radius:var(--radius-lg);overflow:hidden;}
.woocommerce-account .woocommerce-MyAccount-navigation li{border-bottom:var(--border);}
.woocommerce-account .woocommerce-MyAccount-navigation li a{display:block;padding:14px 18px;font-size:.9rem;}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{color:var(--sauge-texte);font-weight:600;}
.woocommerce-form-login, .woocommerce-form-register{max-width:440px;margin:0 auto;background:#fff;border:var(--border);border-radius:var(--radius-lg);padding:clamp(24px,4vw,40px);}
.woocommerce-form-row label{font-size:.8rem;font-weight:600;margin-bottom:6px;display:block;}
.woocommerce-form input.input-text, .woocommerce-form input[type=password]{
  width:100%;padding:13px 14px;border:var(--border);border-radius:var(--radius);margin-bottom:16px;
}

/* Étoiles avis / breadcrumb / filtres widgets */
.woocommerce .star-rating{color:var(--sauge-texte);}
.woocommerce-breadcrumb{font-size:.78rem;color:var(--texte-doux);margin-bottom:20px;}
.woocommerce-breadcrumb a:hover{color:var(--sauge-texte);}
.widget_price_filter .price_slider_amount .button{padding:8px 16px;font-size:.72rem;}
.widget ul.product-categories{list-style:none;padding:0;}
.widget ul.product-categories li{margin-bottom:9px;font-size:.88rem;}

/* Commentaires WordPress natifs (blog) */
.comment-list{list-style:none;padding:0;margin:0;}
.comment-list .comment-body{display:flex;gap:16px;padding:20px 0;border-bottom:var(--border);}
.comment-respond .comment-form label{font-size:.8rem;font-weight:600;display:block;margin-bottom:6px;}
.comment-respond .comment-form input, .comment-respond .comment-form textarea{
  width:100%;padding:13px 14px;border:var(--border);border-radius:var(--radius);margin-bottom:16px;
}

/* Exemples de saisie + focus sur les champs générés par WooCommerce */
.woocommerce input::placeholder,.woocommerce textarea::placeholder,
.woocommerce-checkout input::placeholder,.woocommerce-checkout textarea::placeholder{
  color:rgba(44,44,42,.72);opacity:1;font-style:italic;
}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,
.woocommerce form .form-row select,.woocommerce-checkout .select2-selection{
  border:1px solid rgba(44,44,42,.32);border-radius:var(--radius);padding:13px 14px;
  font-family:var(--font-sans);font-size:.95rem;color:var(--charbon);background:#fff;
}
.woocommerce form .form-row input.input-text:focus,.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus{
  outline:2.5px solid var(--sauge-texte);outline-offset:1px;border-color:var(--sauge-texte);
}
.woocommerce form .form-row label{font-size:.88rem;font-weight:600;color:var(--charbon);margin-bottom:8px;display:block;}
.woocommerce form .form-row .required{color:#A33A33;text-decoration:none;}

/* Champs de paiement Stripe (iframe) : même hauteur que les autres champs */
.woocommerce .wc-stripe-elements-field,.woocommerce .wc-credit-card-form-card-number{
  border:1px solid rgba(44,44,42,.32);border-radius:var(--radius);padding:13px 14px;background:#fff;
}

/* =========================================================
   FILET DE SÉCURITÉ RESPONSIVE
   Empêche tout débordement horizontal sur petit écran.
   ========================================================= */
html,body{max-width:100%;overflow-x:hidden;}
img,video,iframe,svg{max-width:100%;height:auto;}
/* Les tableaux larges (panier, commande) défilent dans leur propre cadre
   plutôt que de faire déborder la page entière. */
.woocommerce table.shop_table,table.woocommerce-table{display:block;overflow-x:auto;white-space:nowrap;}
@media (min-width:760px){
  .woocommerce table.shop_table,table.woocommerce-table{display:table;white-space:normal;}
}
@media (max-width:760px){
  .woocommerce div.product form.cart{flex-wrap:wrap;}
  .woocommerce div.product form.cart .button{width:100%;}
  .woocommerce div.product .woocommerce-tabs ul.tabs{gap:18px;overflow-x:auto;white-space:nowrap;}
  .cart-collaterals .cart_totals{max-width:100%;margin-left:0;}
  ul.woocommerce-order-overview{grid-template-columns:1fr;}
  .woocommerce-customer-details{grid-template-columns:1fr;}
}
@media (max-width:520px){
  .texture-grid{grid-template-columns:1fr 1fr;}
  .footer-top{grid-template-columns:1fr;}
}
/* Cibles tactiles : minimum 44px de haut sur mobile (recommandation WCAG) */
@media (max-width:760px){
  .btn,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button{min-height:46px;}
  input[type=text],input[type=email],input[type=tel],input[type=password],select,textarea{min-height:46px;}
}

/* =========================================================
   TEXTURES ASSOCIÉES AUX PRODUITS
   Médaillon posé sur la photo produit + légende sous le nom,
   pour que la matière du soin soit visible dès la grille.
   ========================================================= */
.card-product .thumb,.woocommerce ul.products li.product .thumb{position:relative;}
.texture-medaillon{
  position:absolute;right:10px;bottom:10px;width:56px;height:56px;
  object-fit:cover;border-radius:50%;border:2.5px solid #fff;
  box-shadow:0 3px 10px rgba(44,44,42,.22);background:var(--sable-pale);z-index:2;
}
.card-product:hover .texture-medaillon,
.woocommerce ul.products li.product:hover .texture-medaillon{transform:none;}
.texture-legende{
  font-size:.82rem;color:var(--texte-doux);margin:2px 0 6px;line-height:1.4;
}
/* Bloc texture sur la fiche produit, sous la galerie */
.produit-texture{
  display:flex;align-items:center;gap:16px;margin-top:20px;padding:14px 16px;
  background:var(--sauge-pale);border-radius:var(--radius-lg);
}
.produit-texture img{
  width:72px;height:72px;object-fit:cover;border-radius:var(--radius);flex-shrink:0;
}
.produit-texture-titre{
  display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;
  font-weight:600;color:var(--sauge-texte);margin-bottom:3px;
}
.produit-texture p{margin:0;font-size:.92rem;color:var(--charbon);}
@media (max-width:520px){
  .texture-medaillon{width:46px;height:46px;right:8px;bottom:8px;}
  .produit-texture{gap:12px;padding:12px;}
  .produit-texture img{width:58px;height:58px;}
}

/* =========================================================
   AFFINAGE MOBILE (téléphone)
   ========================================================= */
@media (max-width:640px){
  /* Titres : évite les titres démesurés qui débordent sur petit écran */
  h1{font-size:clamp(1.7rem,7vw,2.2rem);}
  h2{font-size:clamp(1.35rem,5.5vw,1.7rem);}
  h3{font-size:1.1rem;}
  .page-hero{padding-left:18px;padding-right:18px;}
  .lede{font-size:.95rem;}

  /* Grilles produits : 2 colonnes, plus lisible qu'une seule sur mobile */
  .grid,.woocommerce ul.products{grid-template-columns:repeat(2,1fr);gap:20px 14px;}
  .card-product h3,.woocommerce ul.products li.product h3,
  .woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:.95rem;line-height:1.3;}
  .texture-legende{font-size:.76rem;}

  /* Textures : 2 colonnes */
  .texture-grid{grid-template-columns:repeat(2,1fr);gap:12px;}

  /* Boutique : le panneau de filtres passe au-dessus et se replie */
  .shop-layout{grid-template-columns:1fr;}
  .filters{margin-bottom:24px;}

  /* Pied de page et sections : respiration réduite */
  .section{padding:40px 0;}
  .container{padding-left:18px;padding-right:18px;}
}
@media (max-width:400px){
  /* Très petits téléphones : une seule colonne de produits */
  .grid,.woocommerce ul.products{grid-template-columns:1fr;}
}

/* Contenance affichée sous le bouton d'achat (fiche produit) */
.produit-contenance{
  font-size:.9rem;color:var(--texte-doux);margin:14px 0 0;
  padding-top:14px;border-top:var(--border);
}
