@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700&display=swap');

/* ============================================================================
   Shop — design system premium, inspiré d'une direction artistique naturelle.
   (Override "Fashion Editorial" appliqué en fin de fichier — DA-A.)
   ============================================================================ */

:root{
  --c-bg:        #FAF7F2;
  --c-surface:   #FFFFFF;
  --c-ink:       #1E1B16;
  --c-ink-2:     #5B5247;
  --c-muted:     #A79E92;
  --c-line:      #E9E3D8;
  --c-accent:    #6E7A3A;
  --c-accent-dk: #525C28;
  --c-gold:      #B38E5D;
  --c-danger:    #B24A3A;
  --c-success:   #4F7A4A;

  /* Century Gothic d'abord (installé nativement Windows/Mac), fallback URW/Jost puis génériques */
  --ff-display: "Century Gothic", "CenturyGothic", "URW Gothic", "Jost", "Futura", "Avenir Next", "Helvetica Neue", Arial, sans-serif;
  --ff-body:    "Century Gothic", "CenturyGothic", "URW Gothic", "Jost", "Futura", "Avenir Next", "Helvetica Neue", Arial, sans-serif;

  --r-sm: 6px; --r-md: 12px; --r-lg: 20px; --r-pill: 999px;
  --sh-1: 0 1px 2px rgba(30,27,22,.04), 0 2px 8px rgba(30,27,22,.04);
  --sh-2: 0 8px 24px rgba(30,27,22,.06);
}

*{box-sizing:border-box}
html,body{background:var(--c-bg);color:var(--c-ink);font-family:var(--ff-body);font-weight:700;-webkit-font-smoothing:antialiased;overflow-x:hidden;max-width:100%}
/* Century Gothic bold partout — fallback Jost 700 */
body,p,li,td,th,a,span,label,button,h1,h2,h3,h4,h5,h6,.btn{font-weight:700}
strong,b{font-weight:800}
/* Champs de saisie en 500 — bold à la frappe est illisible */
input,textarea,select,.form-control,.form-select{font-weight:500}
body{min-height:100vh;display:flex;flex-direction:column;margin:0}
main{flex:1 0 auto;outline:none}
img,video,svg{max-width:100%;height:auto}
/* iOS : toute font-size < 16px déclenche le zoom auto sur focus — on force 16px */
@media (max-width:576px){
  input[type="text"],input[type="email"],input[type="tel"],input[type="password"],input[type="search"],input[type="number"],input[type="date"],textarea,select{
    font-size:16px !important;
  }
}

a{color:inherit}
a:hover{color:var(--c-accent-dk)}

/* Accessibilité : skip-link (lecteurs d'écran + clavier) */
.skip-link{position:absolute;left:-1000px;top:0;background:var(--c-ink);color:#fff;padding:.75rem 1rem;z-index:9999;border-radius:0 0 var(--r-md) 0}
.skip-link:focus{left:0;color:#fff;outline:3px solid var(--c-gold);outline-offset:2px}

/* Focus visible global : clavier only, ne gêne pas la souris */
*:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px;border-radius:3px}
.btn:focus-visible,.btn:focus{outline:3px solid rgba(110,122,58,.35);outline-offset:2px;box-shadow:none}

/* Barre recherche mobile */
.bar-search-mobile{background:#fff;border-top:1px solid var(--c-line)}
.bar-search-mobile[hidden]{display:none !important}
.bar-search-mobile.open{display:block !important}
.bar-search-mobile .form-control{background:var(--c-bg);border:1px solid var(--c-line)}
.bar-search-mobile .form-control:focus{background:#fff;border-color:var(--c-ink);box-shadow:none}

.bg-surface{background:var(--c-surface) !important}
.page-title{font-family:var(--ff-display);font-weight:600;letter-spacing:-.01em;margin-bottom:1rem}
.section-title{font-family:var(--ff-display);font-weight:600;font-size:1.8rem;letter-spacing:-.01em;margin:0}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:1.25rem;gap:1rem}
.section-more{color:var(--c-ink-2);text-decoration:none;font-size:.95rem;white-space:nowrap}
.section-more:hover{color:var(--c-accent-dk)}

/* ===== Header ===== */
.site-header{position:sticky;top:0;z-index:1040;background:var(--c-surface);border-bottom:1px solid var(--c-line)}
.site-header .bar-top{background:var(--c-ink);color:#fff}
.site-header .bar-top .text-muted{color:#cfc8bb !important}
.site-header .bar-top a:hover{color:#fff;text-decoration:underline}
.topbar-sep{color:rgba(255,255,255,.25)}
.topbar-phone{display:inline-flex;align-items:center;gap:.4rem;font-weight:500}
.topbar-phone .bi{color:var(--c-gold);font-size:.9rem}
.topbar-free{display:inline-flex;align-items:center;gap:.4rem;color:#E5E0D4}
.topbar-free .bi{color:var(--c-gold)}
.topbar-free strong{color:#fff;font-weight:600}
.topbar-socials{display:inline-flex;align-items:center;gap:.5rem}
.topbar-socials a{width:28px;height:28px;border-radius:50%;border:1px solid rgba(255,255,255,.18);display:inline-flex;align-items:center;justify-content:center;color:#E5E0D4;transition:.15s;font-size:.85rem}
.topbar-socials a:hover{background:#fff;color:var(--c-ink);border-color:#fff;text-decoration:none}

/* Social icons dans la barre principale (à côté du panier) */
.header-socials{display:inline-flex;align-items:center;gap:.35rem;padding-right:.25rem;border-right:1px solid var(--c-line);margin-right:.25rem}
.header-socials a{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--c-ink-2);transition:.15s;font-size:1rem}
.header-socials a:hover{background:var(--c-bg);color:var(--c-ink)}

/* Barre info mobile (tel + livraison gratuite) */
.bar-info-mobile{background:var(--c-ink);color:#E5E0D4;padding:.4rem 0;font-size:.78rem;border-bottom:1px solid rgba(255,255,255,.06)}
.bar-info-mobile .mobile-phone{color:#fff;text-decoration:none;font-weight:500;display:inline-flex;align-items:center;gap:.3rem}
.bar-info-mobile .mobile-phone .bi{color:var(--c-gold)}
.bar-info-mobile .mobile-free{display:inline-flex;align-items:center;gap:.3rem}
.bar-info-mobile .mobile-free .bi{color:var(--c-gold)}
.bar-info-mobile .mobile-socials{display:inline-flex;align-items:center;gap:.35rem;flex-shrink:0}
.bar-info-mobile .mobile-socials a{width:26px;height:26px;border-radius:50%;border:1px solid rgba(255,255,255,.18);display:inline-flex;align-items:center;justify-content:center;color:#E5E0D4;transition:.15s;font-size:.8rem}
.bar-info-mobile .mobile-socials a:hover{background:#fff;color:var(--c-ink);border-color:#fff;text-decoration:none}
@media (max-width:480px){
  .bar-info-mobile .mobile-free{display:none} /* priorise phone + socials sur très petit écran */
  .bar-info-mobile .mobile-socials a{width:24px;height:24px;font-size:.75rem}
}
@media (max-width:360px){
  .bar-info-mobile .mobile-socials{gap:.25rem}
  .bar-info-mobile .mobile-socials a{width:22px;height:22px;font-size:.7rem}
}
.brand-text{font-family:var(--ff-display);font-weight:600;font-size:1.4rem;letter-spacing:-.01em}
.brand{display:inline-flex;align-items:center;flex:0 0 auto;min-width:0;max-width:280px}
.brand-logo{
  display:block;
  height:52px;               /* hauteur explicite (SVG/PNG) */
  max-height:52px;
  width:auto;
  max-width:100%;
  object-fit:contain;
  object-position:left center;
}

/* Header : distribution flex équilibrée */
.site-header .bar-main > .container-xxl{
  min-height:72px;
}
.icon-link{color:var(--c-ink);text-decoration:none;font-size:1.2rem;position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;transition:background .15s ease;background:transparent;border:0}
.icon-link:hover{color:var(--c-ink);background:var(--c-bg)}
.cart-count{position:absolute;top:2px;right:2px;background:var(--c-ink);color:#fff;font-size:.62rem;padding:1px 5px;min-width:16px;height:16px;line-height:14px;text-align:center;border-radius:999px;font-weight:600;border:2px solid #fff}

.search-form{max-width:560px;margin:0 auto;position:relative;flex:1 1 auto;min-width:0}
.search-form .input-group .form-control{border:1px solid var(--c-line);padding:.55rem .9rem;background:var(--c-bg);font-size:.92rem;height:42px}
.search-form .input-group .form-control:focus{background:#fff;box-shadow:none;border-color:var(--c-ink)}
.search-form .btn-dark{background:var(--c-ink);border-color:var(--c-ink);padding-inline:.9rem;height:42px}
.search-suggest{position:absolute;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--c-line);border-radius:var(--r-md);box-shadow:var(--sh-2);max-height:380px;overflow:auto;z-index:10;display:none}
.search-suggest.open{display:block}
.search-suggest a{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;text-decoration:none;color:inherit;border-bottom:1px solid var(--c-line)}
.search-suggest a:last-child{border-bottom:0}
.search-suggest a:hover{background:var(--c-bg)}
.search-suggest img{width:44px;height:44px;object-fit:cover;border-radius:var(--r-sm)}

/* ===== Mega menu ===== */
.bar-nav{border-top:1px solid var(--c-line);background:#fff}
.nav-top-list{list-style:none;margin:0;padding:0;display:flex;gap:1.5rem;flex-wrap:wrap}
.nav-top-list > li{position:relative;padding:.9rem 0}
.nav-top-list > li > a{color:var(--c-ink);text-decoration:none;font-weight:500;font-size:.95rem;letter-spacing:.01em;padding:.25rem 0;border-bottom:2px solid transparent;transition:border-color .2s}
.nav-top-list > li > a:hover,
.nav-top-list > li > a.active{color:var(--c-ink);border-bottom-color:var(--c-ink)}
.nav-top-list > li.has-children > a::after{content:"";display:inline-block;margin-left:.35rem;border:solid var(--c-muted);border-width:0 2px 2px 0;padding:3px;transform:rotate(45deg);vertical-align:middle}
.nav-top-list > li > .mega{position:absolute;top:100%;left:-1rem;background:#fff;border:1px solid var(--c-line);box-shadow:var(--sh-2);border-radius:var(--r-md);padding:1.25rem;width:860px;max-width:94vw;display:none;z-index:20}
.nav-top-list > li.has-children:hover > .mega{display:block}
.mega-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.mega-col{min-width:0}

.mega-cats .mega-cat{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;padding:.75rem .5rem;border-radius:var(--r-md);color:var(--c-ink);text-decoration:none;transition:background .15s}
.mega-cats .mega-cat:hover{background:var(--c-bg);color:var(--c-accent-dk)}
.mega-cat__img{width:64px;height:64px;border-radius:50%;border:1px solid var(--c-line);overflow:hidden;display:flex;align-items:center;justify-content:center;background:#fff}
.mega-cat__img img{width:100%;height:100%;object-fit:cover}
.mega-cat__label{font-size:.85rem;font-weight:500;line-height:1.25}

/* ===== Hero — pleine largeur, hauteur bornée pour ne jamais dominer l'écran ===== */
.hero{background:#1E1B16;overflow:hidden}
.hero .carousel,
.hero .carousel-inner,
.hero .carousel-item{width:100%;background:#1E1B16}
/* Ratio 16:9 natif sur toutes tailles — l'image reste entière et full-width */
.hero .carousel-item{
  aspect-ratio:16/9;
  min-height:0;
  overflow:hidden;
  background:#1E1B16;
}
.hero-slide{display:block;width:100%;height:100%;background:#1E1B16;position:relative}
.hero-img{
  display:block;width:100%;height:100%;
  object-fit:contain;      /* aucun crop — l'image est intégralement visible */
  object-position:center;
  background:#1E1B16;      /* fond ink = même couleur que l'image → bandes invisibles */
}

.hero .carousel-control-prev,
.hero .carousel-control-next{width:6%;opacity:.6;z-index:2}
.hero .carousel-control-prev:hover,
.hero .carousel-control-next:hover{opacity:1}
.hero .carousel-indicators{margin-bottom:.75rem;z-index:2}
.hero .carousel-indicators [data-bs-target]{width:28px;height:3px;border-radius:2px;background:rgba(255,255,255,.7)}
.hero .carousel-indicators .active{background:#fff}

/* 16:9 natif partout — l'admin impose l'upload à 1920×1080 (ratio 16:9) */
@media (max-width:1199px){
  .hero .carousel-control-prev,.hero .carousel-control-next{width:8%}
}
@media (max-width:767px){
  .hero .carousel-control-prev,.hero .carousel-control-next{width:10%}
}
@media (max-width:575px){
  .hero .carousel-item{aspect-ratio:16/9}
}
@media (max-width:399px){
  .hero .carousel-item{aspect-ratio:16/9}
}

/* ===== Categories tiles (legacy, encore utilisé ailleurs) ===== */
.cat-tile{display:flex;flex-direction:column;align-items:center;text-align:center;text-decoration:none;color:var(--c-ink);padding:1rem;border-radius:var(--r-md);transition:background .2s}
.cat-tile:hover{background:#fff;box-shadow:var(--sh-1);color:var(--c-ink)}
.cat-tile__img{width:88px;height:88px;border-radius:50%;overflow:hidden;background:var(--c-surface);border:1px solid var(--c-line);display:flex;align-items:center;justify-content:center;margin-bottom:.75rem}
.cat-tile__img img{width:100%;height:100%;object-fit:cover}
.cat-tile__label{font-size:.9rem;font-weight:500}

/* ===== Categories — slider horizontal élégant ===== */
.cat-slider__nav{
  width:40px;height:40px;border-radius:50%;
  border:1px solid var(--c-line);background:#fff;color:var(--c-ink);
  display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;transition:.15s;
}
.cat-slider__nav:hover{background:var(--c-ink);color:#fff;border-color:var(--c-ink)}
.cat-slider__nav:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}

.cat-slider{
  position:relative;
  margin-inline:calc(var(--bs-gutter-x, 1.5rem) * -.5);
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 12px, #000 calc(100% - 12px), transparent 100%);
          mask-image:linear-gradient(90deg, transparent 0, #000 12px, #000 calc(100% - 12px), transparent 100%);
}
.cat-slider__track{
  display:flex;gap:1rem;padding:.5rem calc(var(--bs-gutter-x, 1.5rem) * .5);
  overflow-x:auto;scroll-behavior:smooth;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.cat-slider__track::-webkit-scrollbar{display:none}
.cat-slider__card{
  position:relative;
  flex:0 0 280px;             /* largeur fixe par item */
  aspect-ratio:4/5;
  border-radius:var(--r-lg);
  overflow:hidden;
  background:#2A251C;
  color:#fff;text-decoration:none;
  isolation:isolate;
  box-shadow:var(--sh-1);
  scroll-snap-align:start;
  transition:transform .3s ease, box-shadow .3s ease;
}
.cat-slider__card:hover{transform:translateY(-3px);box-shadow:var(--sh-2);color:#fff}

.cat-slider__media{position:absolute;inset:0;margin:0;background:linear-gradient(135deg,#2A251C 0%,#3b3328 100%)}
.cat-slider__media img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .6s cubic-bezier(.2,.6,.2,1);filter:saturate(.92)}
.cat-slider__card:hover .cat-slider__media img{transform:scale(1.06);filter:saturate(1.05)}

.cat-slider__overlay{
  position:absolute;inset:0;z-index:2;
  display:flex;align-items:flex-end;justify-content:space-between;gap:.6rem;
  padding:1rem 1.15rem;
  background:linear-gradient(180deg, rgba(30,27,22,0) 55%, rgba(30,27,22,.5) 82%, rgba(30,27,22,.88) 100%);
}
.cat-slider__meta{min-width:0;flex:1}
.cat-slider__title{font-family:var(--ff-display);font-weight:600;font-size:1.15rem;line-height:1.15;letter-spacing:-.01em;margin:0 0 .2rem;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.25)}
.cat-slider__count{margin:0;font-size:.78rem;color:rgba(255,255,255,.78)}
.cat-slider__index{
  position:absolute;top:.85rem;left:.95rem;z-index:3;
  font-family:var(--ff-display);font-weight:600;font-size:.72rem;
  color:rgba(255,255,255,.82);letter-spacing:.1em;
  background:rgba(0,0,0,.3);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  padding:.15rem .5rem;border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
}
.cat-slider__arrow{
  flex-shrink:0;width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.92);color:var(--c-ink);
  display:inline-flex;align-items:center;justify-content:center;
  transition:transform .3s ease, background .3s ease;
}
.cat-slider__card:hover .cat-slider__arrow{transform:translateX(3px);background:#fff}

@media (max-width:767.98px){
  .cat-slider__card{flex:0 0 220px}
  .cat-slider__title{font-size:1rem}
  .cat-slider__nav{width:36px;height:36px}
}
@media (max-width:479.98px){
  .cat-slider__card{flex:0 0 180px}
  .cat-slider__overlay{padding:.75rem .85rem}
}

/* ===== Categories — grille éditoriale premium (legacy) ===== */
.cat-editorial__eyebrow{display:inline-block;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--c-accent-dk);margin-bottom:.3rem;font-weight:600}
.cat-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  grid-auto-rows:320px;
  gap:1rem;
}
/* Rythme asymétrique : 1er item prend 2 colonnes, 2 lignes (hero) */
.cat-grid > .cat-editorial__card:first-child{grid-column:span 2;grid-row:span 2}
/* 2e item prend aussi 2 lignes pour la bande supérieure equilibrée */
.cat-grid > .cat-editorial__card:nth-child(2){grid-column:span 2}

.cat-editorial__card{
  position:relative;
  display:block;
  overflow:hidden;
  border-radius:var(--r-lg);
  text-decoration:none;
  color:#fff;
  background:#1E1B16;
  isolation:isolate;
  box-shadow:var(--sh-1);
  transition:transform .35s ease, box-shadow .35s ease;
}
.cat-editorial__card:hover{transform:translateY(-3px);box-shadow:var(--sh-2);color:#fff}

.cat-editorial__media{
  position:absolute;inset:0;margin:0;
  background:linear-gradient(135deg,#2A251C 0%,#3b3328 100%);
}
.cat-editorial__media img{
  width:100%;height:100%;object-fit:cover;object-position:center;
  transition:transform .7s cubic-bezier(.2,.6,.2,1), filter .35s ease;
  filter:saturate(.95);
}
.cat-editorial__card:hover .cat-editorial__media img{transform:scale(1.06);filter:saturate(1.05) brightness(1.03)}

/* Overlay dégradé en bas + contenu */
.cat-editorial__overlay{
  position:absolute;inset:0;z-index:2;
  display:flex;align-items:flex-end;justify-content:space-between;
  padding:1.25rem 1.35rem;
  background:linear-gradient(180deg, rgba(30,27,22,0) 55%, rgba(30,27,22,.45) 80%, rgba(30,27,22,.85) 100%);
  gap:.75rem;
}
.cat-editorial__meta{min-width:0;flex:1}
.cat-editorial__title{
  font-family:var(--ff-display);
  font-weight:600;font-size:1.35rem;line-height:1.15;letter-spacing:-.01em;
  margin:0 0 .25rem;color:#fff;
  text-shadow:0 1px 2px rgba(0,0,0,.25);
}
.cat-editorial__count{
  margin:0;font-size:.8rem;color:rgba(255,255,255,.78);
  letter-spacing:.02em;
}

.cat-editorial__index{
  position:absolute;top:1rem;left:1.1rem;z-index:3;
  font-family:var(--ff-display);font-weight:600;font-size:.78rem;
  color:rgba(255,255,255,.82);letter-spacing:.1em;
  background:rgba(0,0,0,.25);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  padding:.2rem .55rem;border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
}

.cat-editorial__arrow{
  flex-shrink:0;
  width:42px;height:42px;border-radius:50%;
  background:rgba(255,255,255,.92);color:var(--c-ink);
  display:inline-flex;align-items:center;justify-content:center;
  transition:transform .3s ease, background .3s ease;
}
.cat-editorial__card:hover .cat-editorial__arrow{transform:translateX(4px);background:#fff}

/* Hero card (1er item) — titre plus grand */
.cat-grid > .cat-editorial__card:first-child .cat-editorial__title{font-size:2rem}
.cat-grid > .cat-editorial__card:first-child .cat-editorial__overlay{padding:1.6rem 1.75rem}
.cat-grid > .cat-editorial__card:first-child .cat-editorial__arrow{width:50px;height:50px}
.cat-grid > .cat-editorial__card:first-child .cat-editorial__arrow svg{width:22px;height:22px}

/* === Responsive === */
@media (max-width:1199.98px){
  .cat-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:280px}
  .cat-grid > .cat-editorial__card:first-child{grid-column:span 2;grid-row:span 2}
  .cat-grid > .cat-editorial__card:nth-child(2){grid-column:span 1}
}
@media (max-width:767.98px){
  .cat-grid{grid-template-columns:1fr 1fr;grid-auto-rows:220px;gap:.75rem}
  .cat-grid > .cat-editorial__card:first-child,
  .cat-grid > .cat-editorial__card:nth-child(2){grid-column:span 2;grid-row:span 1}
  .cat-grid > .cat-editorial__card:first-child{grid-row:span 2}
  .cat-editorial__title{font-size:1.05rem}
  .cat-grid > .cat-editorial__card:first-child .cat-editorial__title{font-size:1.5rem}
  .cat-editorial__overlay{padding:.9rem 1rem}
  .cat-editorial__index{top:.6rem;left:.7rem;font-size:.7rem}
  .cat-editorial__arrow{width:36px;height:36px}
  .cat-editorial__arrow svg{width:16px;height:16px}
}
@media (max-width:479.98px){
  .cat-grid{grid-template-columns:1fr;grid-auto-rows:200px}
  .cat-grid > .cat-editorial__card:first-child,
  .cat-grid > .cat-editorial__card:nth-child(2){grid-column:span 1}
  .cat-grid > .cat-editorial__card:first-child{grid-row:span 1;grid-auto-rows:260px}
}

/* ===== Product card ===== */
.product-card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-md);overflow:hidden;transition:transform .25s ease,box-shadow .25s ease;display:flex;flex-direction:column;height:100%}
.product-card:hover{transform:translateY(-2px);box-shadow:var(--sh-2)}
.product-card__img{display:block;position:relative;aspect-ratio:4/5;background:var(--c-bg);overflow:hidden}
.product-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.product-card:hover .product-card__img img{transform:scale(1.03)}
.product-card__body{padding:.9rem 1rem 1rem;flex:1;display:flex;flex-direction:column;gap:.35rem}
.product-card__title{font-size:.95rem;font-weight:500;margin:0;line-height:1.3;max-height:2.6em;overflow:hidden}
.product-card__title a{color:inherit;text-decoration:none}
.product-card__title a:hover{color:var(--c-accent-dk)}
.product-card__prices{display:flex;align-items:baseline;gap:.5rem;margin-top:auto}
.price{font-weight:600;font-size:1.05rem}
.price-old{color:var(--c-muted);text-decoration:line-through;font-size:.85rem}
.badge-chip{position:absolute;top:.75rem;left:.75rem;background:var(--c-ink);color:#fff;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;padding:.2rem .55rem;border-radius:var(--r-pill)}
.badge-chip--promo{background:var(--c-danger)}
.badge-chip--top{left:auto;right:.75rem;background:var(--c-gold)}
.wish-btn{position:absolute;bottom:.6rem;right:.6rem;width:36px;height:36px;border-radius:50%;border:none;background:rgba(255,255,255,.9);backdrop-filter:blur(6px);color:var(--c-ink);display:flex;align-items:center;justify-content:center;cursor:pointer}
.wish-btn.active{background:var(--c-ink);color:#fff}

.stars{color:var(--c-gold);letter-spacing:-.05em;font-size:.85rem;display:inline-flex;align-items:center}
.product-card__rate{display:inline-flex;align-items:center;gap:.3rem}
.product-card__rate-num{font-size:.78rem;color:var(--c-ink-2);font-weight:600}

/* ===== Shop / Filters ===== */
.shop-title{font-family:var(--ff-display);font-weight:600;letter-spacing:-.01em;margin:0}
.shop-header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}
.chip{display:inline-flex;padding:.4rem .9rem;background:#fff;border:1px solid var(--c-line);border-radius:var(--r-pill);color:var(--c-ink);text-decoration:none;font-size:.85rem}
.chip:hover{background:var(--c-ink);color:#fff;border-color:var(--c-ink)}
.filters{background:#fff;border:1px solid var(--c-line);border-radius:var(--r-md);padding:1.25rem;position:sticky;top:160px}
.filter-block{padding:1rem 0;border-bottom:1px solid var(--c-line)}
.filter-block:last-child{border-bottom:0}
.filter-title{font-weight:600;font-size:.85rem;letter-spacing:.05em;text-transform:uppercase;color:var(--c-ink-2);margin-bottom:.75rem}

/* ===== Pagination (legacy, non utilisée depuis l'infinite scroll) ===== */
.pagination .page-link{color:var(--c-ink);border:1px solid var(--c-line);margin:0 2px;border-radius:var(--r-md)}
.pagination .page-item.active .page-link{background:var(--c-ink);color:#fff;border-color:var(--c-ink)}
.pagination .page-link:hover{background:var(--c-bg);border-color:var(--c-ink)}

/* ===== Infinite scroll (boutique/catégorie) ===== */
.shop-inf{margin-top:2.5rem;text-align:center;color:var(--c-ink-2)}
.shop-inf__sentinel{height:1px;width:100%}
.shop-inf__loader{display:inline-flex;align-items:center;gap:.6rem;padding:.75rem 1.25rem;background:#fff;border:1px solid var(--c-line);border-radius:var(--r-pill);font-size:.88rem;box-shadow:var(--sh-1)}
.shop-inf__loader[hidden]{display:none}
.shop-inf__spinner{width:16px;height:16px;border:2px solid var(--c-line);border-top-color:var(--c-ink);border-radius:50%;animation:shopInfSpin .7s linear infinite}
@keyframes shopInfSpin{to{transform:rotate(360deg)}}
.shop-inf__end{padding:1.5rem 0;font-size:.85rem;color:var(--c-muted);letter-spacing:.05em;text-transform:uppercase}
.shop-inf__end[hidden]{display:none}
.shop-inf__error{padding:1rem;background:#FDF5F3;border:1px solid #f3d6d0;border-radius:var(--r-md);display:inline-flex;align-items:center;justify-content:center;gap:.4rem;color:var(--c-danger);font-size:.88rem}
.shop-inf__error[hidden]{display:none}

/* Anim d'entrée des cartes chargées dynamiquement */
.shop-inf__new{animation:shopInfIn .35s cubic-bezier(.2,.6,.2,1) both}
@keyframes shopInfIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ===== Product detail (pd-*) ===== */
.pd-wrap{background:var(--c-bg)}
.pd-gallery{display:grid;grid-template-columns:96px minmax(0,1fr);gap:1rem;align-items:start}
.pd-gallery.pd-gallery--solo{grid-template-columns:1fr}
@media (max-width:991px){ .pd-gallery,.pd-gallery.pd-gallery--solo{grid-template-columns:1fr} }

.pd-thumbs-v{display:flex;flex-direction:column;gap:.6rem;max-height:720px;overflow:auto;padding-right:2px}
.pd-thumbs-v::-webkit-scrollbar{width:4px}
.pd-thumbs-v::-webkit-scrollbar-thumb{background:var(--c-line);border-radius:2px}
.pd-thumbs-h{display:none;gap:.5rem;margin-top:.75rem;overflow-x:auto;padding-bottom:.25rem}
@media (max-width:991px){ .pd-thumbs-v{display:none} .pd-thumbs-h{display:flex} }

.pd-thumb{flex:0 0 92px;width:92px;aspect-ratio:1/1;height:auto;border:1px solid var(--c-line);border-radius:var(--r-md);overflow:hidden;background:#fff;padding:0;cursor:pointer;position:relative;transition:.15s}
.pd-thumb:hover{border-color:var(--c-muted)}
.pd-thumb.active{border-color:var(--c-ink);box-shadow:0 0 0 2px #fff inset}
.pd-thumb img{width:100%;height:100%;object-fit:contain;display:block;padding:4px}
@media (max-width:991px){ .pd-thumb{width:76px;flex:0 0 76px} }

/* Zone image principale : grande, carrée (norme e-commerce),
   object-fit: contain pour ne JAMAIS rogner le produit. */
.pd-main{position:relative;background:#fff;border:1px solid var(--c-line);border-radius:var(--r-lg);overflow:hidden;aspect-ratio:1/1;box-shadow:var(--sh-1);width:100%;max-width:760px;margin-inline:auto}
/* Si image seule, centre et laisse respirer */
.pd-gallery--solo .pd-main{margin-inline:auto}
.pd-main img{width:100%;height:100%;object-fit:contain;padding:1.25rem;cursor:zoom-in;transition:transform .4s ease;background:linear-gradient(180deg,#fff,#FBF8F3)}
.pd-main.zoomed img{cursor:zoom-out;transform:scale(1.6);padding:0}
.pd-nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:0;background:rgba(255,255,255,.92);box-shadow:var(--sh-1);display:flex;align-items:center;justify-content:center;font-size:1.15rem;color:var(--c-ink);cursor:pointer;transition:.15s}
.pd-nav:hover{background:#fff;transform:translateY(-50%) scale(1.05)}
.pd-nav--prev{left:12px}
.pd-nav--next{right:12px}

.pd-info{position:sticky;top:130px}
@media (max-width:991px){ .pd-info{position:static;padding-bottom:5.5rem} }

.pd-eyebrow{display:inline-block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--c-accent-dk);text-decoration:none;font-weight:600;margin-bottom:.35rem}
.pd-eyebrow:hover{color:var(--c-accent);text-decoration:underline}
.pd-title{font-family:var(--ff-display);font-weight:600;letter-spacing:-.015em;font-size:1.6rem;line-height:1.2;margin:0 0 .5rem}
.pd-sub{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.5rem}
.pd-meta{color:var(--c-muted);font-size:.8rem}
.pd-tag{background:var(--c-danger);color:#fff;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;padding:.15rem .5rem;border-radius:var(--r-pill)}
.pd-rate-block{display:inline-flex;align-items:center;gap:.35rem}
.pd-rate-block .stars{font-size:.95rem}
.pd-rate-num{font-weight:600;color:var(--c-ink);font-size:.85rem}
.pd-sales{display:inline-flex;align-items:center;gap:.3rem;color:var(--c-success);font-size:.82rem;font-weight:500}
.pd-sales .bi{font-size:.88rem}

.pd-prices{display:flex;align-items:baseline;gap:.75rem;margin:.25rem 0 .65rem;flex-wrap:wrap}
.price-main{font-family:var(--ff-display);font-size:1.55rem;font-weight:600;color:var(--c-ink);letter-spacing:-.01em}
.price-old{color:var(--c-muted);text-decoration:line-through;font-size:.9rem}
.price-save{background:var(--c-danger);color:#fff;font-size:.72rem;padding:.15rem .5rem;border-radius:var(--r-pill);font-weight:600;letter-spacing:.03em}

.pd-short{color:var(--c-ink-2);line-height:1.5;margin-bottom:.35rem;font-size:.9rem}
.pd-sep{border:0;border-top:1px solid var(--c-line);margin:.75rem 0}

.pd-option-group{margin:.65rem 0}
.pd-option-group .form-label{font-size:.85rem;margin-bottom:.3rem}
.pd-option-values{display:flex;flex-wrap:wrap;gap:.35rem}
.pd-option-value{cursor:pointer;position:relative}
.pd-option-value input{position:absolute;opacity:0;pointer-events:none}
.pd-option-value span{display:inline-block;padding:.4rem .85rem;border:1px solid var(--c-line);border-radius:var(--r-pill);background:#fff;font-size:.82rem;color:var(--c-ink);transition:.15s;user-select:none}
.pd-option-value:hover span{border-color:var(--c-ink-2)}
.pd-option-value input:checked + span{background:var(--c-ink);color:#fff;border-color:var(--c-ink);box-shadow:0 2px 6px rgba(30,27,22,.1)}

.pd-qty-row{display:flex;gap:.5rem;align-items:stretch;margin-top:.75rem}
.pd-qty-row .qty{flex:0 0 auto}
.pd-qty-row .pd-cta{flex:1;min-height:44px;font-size:.95rem}

.qty{display:inline-flex;align-items:center;border:1px solid var(--c-line);border-radius:var(--r-pill);overflow:hidden;background:#fff}
.qty .btn{border:0;border-radius:0;width:34px;height:44px;padding:0;font-size:1rem}
.qty .btn:hover{background:var(--c-bg)}
.qty input{width:42px;height:44px;border:0;background:transparent;text-align:center;font-weight:600;font-size:.95rem}
.qty input:focus{outline:none}

.pd-wish{font-size:.85rem;padding:.25rem 0}
.pd-wish.active{color:var(--c-danger)}
.pd-wish.active .bi-heart::before{content:"\f417"}

/* Description inline, juste après la CTA — clé de conversion */
.pd-inline-desc__lead{color:var(--c-ink);font-weight:500;margin-bottom:.5rem;font-size:.92rem;line-height:1.55}
.pd-inline-desc__lead p:last-child{margin-bottom:0}
.pd-inline-desc{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--c-line)}
.pd-inline-desc__title{font-family:var(--ff-display);font-weight:600;font-size:1rem;margin:0 0 .4rem;letter-spacing:-.01em}
.pd-inline-desc__body{font-size:.88rem;line-height:1.55;color:var(--c-ink-2);max-height:7.5em;overflow:hidden;position:relative;transition:max-height .25s ease}
.pd-inline-desc__body.is-open{max-height:none}
.pd-inline-desc__body:not(.is-open)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2.4em;background:linear-gradient(180deg,transparent,#fff)}
.pd-inline-desc__body p{margin:0 0 .5rem}
.pd-inline-desc__body img{max-width:100%;height:auto;border-radius:var(--r-sm)}
.pd-inline-desc__body ul{padding-left:1.1rem;margin:.25rem 0}
.pd-inline-desc__toggle{border:0;background:none;padding:.25rem 0;margin-top:.35rem;color:var(--c-ink);font-size:.82rem;font-weight:600;cursor:pointer}
.pd-inline-desc__toggle:hover{color:var(--c-accent-dk)}
.pd-inline-desc__toggle .less{display:none}
.pd-inline-desc__toggle.is-open .more{display:none}
.pd-inline-desc__toggle.is-open .less{display:inline}

.pd-assurances{list-style:none;padding:.85rem 1rem;margin:.85rem 0 0;background:#fff;border:1px solid var(--c-line);border-radius:var(--r-md);display:grid;grid-template-columns:1fr 1fr;gap:.55rem .85rem}
@media (max-width:576px){ .pd-assurances{grid-template-columns:1fr;gap:.5rem} }
.pd-assurances li{display:flex;gap:.55rem;align-items:flex-start}
.pd-assurances .bi{color:var(--c-accent);font-size:1.05rem;flex-shrink:0;line-height:1.2}
.pd-assurances strong{display:block;font-size:.8rem;font-weight:600;line-height:1.25}
.pd-assurances small{color:var(--c-muted);font-size:.72rem;line-height:1.2}

.pd-share{display:flex;align-items:center;gap:.35rem;margin-top:.65rem}
.pd-share a, .pd-share button{width:32px;height:32px;border-radius:50%;border:1px solid var(--c-line);background:#fff;color:var(--c-ink);display:inline-flex;align-items:center;justify-content:center;transition:.15s;cursor:pointer;font-size:.85rem}
.pd-share a:hover, .pd-share button:hover{background:var(--c-ink);color:#fff;border-color:var(--c-ink)}

/* Tabs (infos complémentaires, compact) */
.pd-tablist{border:0;gap:.25rem}
.pd-tablist .nav-link{color:var(--c-ink-2);font-weight:500;border:0;border-bottom:2px solid transparent;border-radius:0;padding:.55rem 1rem;background:transparent;font-size:.9rem}
.pd-tablist .nav-link:hover{color:var(--c-ink);border-color:var(--c-line)}
.pd-tablist .nav-link.active{color:var(--c-ink);border-color:var(--c-ink);background:transparent}
.pd-tabpanels{background:#fff;border:1px solid var(--c-line);border-top:0;border-radius:0 0 var(--r-md) var(--r-md);padding:1rem 1.25rem}
.pd-rich{line-height:1.6;color:var(--c-ink-2);font-size:.9rem}
.pd-rich img{max-width:100%;height:auto;border-radius:var(--r-sm)}
.pd-rich ul{padding-left:1.1rem;margin:0}
.pd-rich h2,.pd-rich h3,.pd-rich h4{color:var(--c-ink);font-family:var(--ff-display);margin:.75rem 0 .35rem}

/* Sticky mobile bar */
.pd-sticky-bar{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--c-line);padding:.65rem .85rem;display:flex;align-items:center;gap:.75rem;z-index:1030;box-shadow:0 -6px 20px rgba(30,27,22,.06)}
.pd-sticky-info{flex:1;min-width:0}
.pd-sticky-cta{padding:.65rem 1.5rem}

/* ===== Cart ===== */
.card-block{background:#fff;border:1px solid var(--c-line);border-radius:var(--r-md);padding:1.5rem}
.cart-list{background:#fff;border:1px solid var(--c-line);border-radius:var(--r-md);overflow:hidden}
.cart-row{display:grid;grid-template-columns:84px 1fr auto auto auto auto;gap:1rem;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--c-line)}
.cart-row:last-child{border-bottom:0}
.cart-row__img img{width:84px;height:84px;object-fit:cover;border-radius:var(--r-sm)}
.cart-row__title{font-weight:500;text-decoration:none;color:var(--c-ink);display:block}
.cart-row__title:hover{color:var(--c-accent-dk)}
.cart-row__price{color:var(--c-ink-2)}
.cart-row__total{font-weight:600}
@media (max-width:768px){
  .cart-row{grid-template-columns:72px 1fr auto;row-gap:.5rem}
  .cart-row__qty,.cart-row__price,.cart-row__total{grid-column:2 / span 2}
  .cart-row__remove{grid-column:3;justify-self:end}
}

.summary{background:#fff;border:1px solid var(--c-line);border-radius:var(--r-md);padding:1.5rem}
.summary-title{font-family:var(--ff-display);font-weight:600;margin:0 0 1rem}
.summary .d-flex{padding:.25rem 0}

/* ===== Checkout ===== */
.pay-opt{display:flex;align-items:center;gap:.5rem;padding:.9rem 1rem;border:1px solid var(--c-line);border-radius:var(--r-md);background:#fff;cursor:pointer;height:100%;transition:.15s}
.pay-opt input{accent-color:var(--c-ink)}
.pay-opt:has(input:checked){border-color:var(--c-ink);background:var(--c-bg)}
.success-ring{width:90px;height:90px;border-radius:50%;background:var(--c-success);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:3rem}

/* ===== Account ===== */
.account-nav{background:#fff;border:1px solid var(--c-line);border-radius:var(--r-md);padding:.5rem;display:flex;flex-direction:column}
.account-nav__link{padding:.7rem 1rem;color:var(--c-ink);text-decoration:none;border-radius:var(--r-sm);font-size:.95rem}
.account-nav__link:hover{background:var(--c-bg);color:var(--c-ink)}
.account-nav__link.active{background:var(--c-ink);color:#fff}
.stat-card{background:#fff;border:1px solid var(--c-line);border-radius:var(--r-md);padding:1.25rem}
.stat-card__num{font-family:var(--ff-display);font-size:2rem;font-weight:600;line-height:1}
.stat-card__label{color:var(--c-muted);font-size:.85rem;margin-top:.25rem}
.status-chip{display:inline-block;padding:.2rem .65rem;border-radius:var(--r-pill);color:#fff;font-size:.75rem}

/* ===== Footer ===== */
.site-footer{background:var(--c-ink);color:#d9d3c5;margin-top:4rem}
.site-footer a{color:#d9d3c5;text-decoration:none;transition:color .15s}
.site-footer a:hover{color:#fff;text-decoration:none}

/* Bande "benefits" — bandeau clair en tête de footer */
.footer-top{background:#23201A;border-bottom:1px solid rgba(255,255,255,.06)}
.footer-benefits{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding:1.5rem 0}
.footer-benefit{display:flex;align-items:center;gap:.85rem;padding:.5rem .25rem}
.footer-benefit i{font-size:1.5rem;color:var(--c-gold);flex-shrink:0;line-height:1}
.footer-benefit strong{display:block;font-size:.9rem;color:#fff;font-weight:600;line-height:1.2}
.footer-benefit span{display:block;font-size:.78rem;color:#a9a194;margin-top:.15rem}

/* Bloc principal */
.footer-main{padding:3rem 0 2rem}
.footer-logo-link{display:inline-block;margin-bottom:1rem}
.footer-logo{height:56px;width:auto;display:block}
.footer-tagline{color:#a9a194;font-size:.9rem;line-height:1.6;margin-bottom:1.25rem;max-width:28rem}

.footer-contact{margin:0;display:flex;flex-direction:column;gap:.55rem}
.footer-contact li{display:flex;align-items:flex-start;gap:.65rem;font-size:.88rem;color:#d9d3c5;line-height:1.4}
.footer-contact li i{color:var(--c-gold);font-size:.95rem;margin-top:.15rem;flex-shrink:0;width:1rem;text-align:center}
.footer-contact a{color:#d9d3c5}
.footer-contact a:hover{color:#fff}

.footer-h{letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;color:#fff;font-weight:600;margin-bottom:1rem;position:relative;padding-bottom:.6rem}
.footer-h::after{content:"";position:absolute;left:0;bottom:0;width:32px;height:2px;background:var(--c-gold);border-radius:2px}

.footer-links{margin:0;display:flex;flex-direction:column;gap:.5rem}
.footer-links li{font-size:.88rem}
.footer-links a{display:inline-flex;align-items:center;color:#bcb6a6}
.footer-links a::before{content:"";width:0;height:1px;background:var(--c-gold);margin-right:0;transition:all .2s ease}
.footer-links a:hover{color:#fff}
.footer-links a:hover::before{width:10px;margin-right:.5rem}

.footer-socials{display:flex;gap:.6rem;flex-wrap:wrap}
.footer-socials a{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.15);display:inline-flex;align-items:center;justify-content:center;color:#d9d3c5;transition:.2s;font-size:1rem;background:rgba(255,255,255,.03)}
.footer-socials a:hover{background:var(--c-gold);color:var(--c-ink);border-color:var(--c-gold);transform:translateY(-2px);text-decoration:none}

/* Barre copyright */
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:1.1rem 0;background:rgba(0,0,0,.15);color:#a9a194}
.footer-bottom .small{color:#a9a194}
.text-muted-2{color:#8a8174}
.footer-payments{flex-wrap:wrap}
.pay-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .6rem;border-radius:var(--r-pill);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);color:#d9d3c5;font-size:.75rem}
.pay-badge i{color:var(--c-gold);font-size:.85rem}

/* ===== Benefits ===== */
.benefits .display-6{color:var(--c-accent)}

/* ===== Breadcrumb ===== */
.breadcrumb-wrap{background:transparent;padding:.65rem 0 0}
.breadcrumb-wrap .breadcrumb{font-size:.8rem;margin-bottom:0}

/* ===== Buttons override ===== */
.btn-dark{background:var(--c-ink);border-color:var(--c-ink)}
.btn-dark:hover{background:var(--c-accent-dk);border-color:var(--c-accent-dk)}
.btn-outline-dark{color:var(--c-ink);border-color:var(--c-ink)}
.btn-outline-dark:hover{background:var(--c-ink);border-color:var(--c-ink)}
.rounded-pill{border-radius:var(--r-pill) !important}

/* ===== Empty state ===== */
.empty-state{background:#fff;border:1px dashed var(--c-line);border-radius:var(--r-md)}

/* ===== Toasts ===== */
.toast-host .toast{background:#fff;border:1px solid var(--c-line);border-radius:var(--r-md);box-shadow:var(--sh-2)}

/* ============================================================================
   RESPONSIVE MOBILE — audit et corrections zero-bug
   ============================================================================ */

/* === Tablette (<992px) === */
@media (max-width:991.98px){
  .container-xxl{padding-inline:1rem}
  .page-title{font-size:1.5rem}
  .section-title{font-size:1.35rem}
  .shop-title{font-size:1.3rem}
  .section-head{flex-wrap:wrap;gap:.5rem;align-items:baseline}

  /* Filtres catalogue : plus de sticky encombrant sur tablette/mobile */
  .filters{position:static !important;top:auto !important;padding:1rem}

  /* Produit : info plus en sticky mobile */
  .pd-info{position:static !important;top:auto !important;padding-bottom:5.5rem}

  /* Pagination : wrap sur plusieurs lignes */
  .pagination{flex-wrap:wrap;gap:4px}
  .pagination .page-item .page-link{padding:.35rem .6rem;font-size:.85rem}
}

/* === Mobile (<768px) === */
@media (max-width:767.98px){
  /* Header — compaction logo + icônes, hauteur réduite */
  .site-header .bar-main > .container-xxl{padding-block:.55rem;gap:.5rem;min-height:60px}
  .brand-text{font-size:1.1rem}
  .brand{max-width:160px}
  .brand-logo{height:38px;max-height:38px}
  .icon-link{width:36px;height:36px;font-size:1.1rem}
  .cart-count{top:0;right:0}

  /* Breadcrumb — compact + wrap */
  .breadcrumb-wrap{padding:.5rem 0 0}
  .breadcrumb-wrap .breadcrumb{flex-wrap:wrap;row-gap:.15rem;font-size:.75rem}

  /* Section spacing */
  .section.py-5{padding-top:2rem !important;padding-bottom:2rem !important}
  .section.py-4{padding-top:1.25rem !important;padding-bottom:1.25rem !important}

  /* Hero */
  .hero .carousel-control-prev,.hero .carousel-control-next{width:12%}

  /* Cards produits — grille 2 cols confortable, typographie compacte */
  .product-card__body{padding:.6rem .7rem .75rem;gap:.25rem}
  .product-card__title{font-size:.85rem;max-height:2.3em}
  .price{font-size:.95rem}
  .price-old{font-size:.78rem}
  .product-card__prices{gap:.35rem}
  .badge-chip{top:.45rem;left:.45rem;padding:.15rem .4rem;font-size:.62rem}
  .badge-chip--top{left:auto;right:.45rem}
  .wish-btn{width:30px;height:30px;bottom:.4rem;right:.4rem}

  /* Tiles catégories */
  .cat-tile{padding:.6rem}
  .cat-tile__img{width:68px;height:68px;margin-bottom:.5rem}
  .cat-tile__label{font-size:.78rem}

  /* Fiche produit */
  .pd-wrap{padding-top:.5rem}
  .pd-main{max-width:100%;border-radius:var(--r-md)}
  .pd-main img{padding:.85rem}
  .pd-nav{width:36px;height:36px;font-size:1rem}
  .pd-title{font-size:1.25rem}
  .price-main{font-size:1.35rem}
  .pd-option-value span{padding:.35rem .75rem;font-size:.8rem}
  .qty .btn{width:36px;height:42px}
  .qty input{width:40px;height:42px}
  .pd-qty-row{flex-wrap:nowrap}
  .pd-qty-row .pd-cta{min-height:42px;font-size:.9rem;padding-inline:.6rem}
  .pd-cta .bi{display:none}
  .pd-assurances{padding:.7rem;grid-template-columns:1fr 1fr;gap:.4rem .6rem}
  .pd-assurances strong{font-size:.74rem}
  .pd-assurances small{font-size:.68rem}
  .pd-tablist{overflow-x:auto;flex-wrap:nowrap;white-space:nowrap;padding-bottom:2px}
  .pd-tablist::-webkit-scrollbar{display:none}
  .pd-tabpanels{padding:.85rem 1rem}

  /* Pages d'authentification */
  .auth .card-block,.card-block{padding:1.1rem}

  /* Panier — cart-row : photo + titre + actions alignés proprement */
  .cart-row{grid-template-columns:68px 1fr auto;column-gap:.75rem;row-gap:.35rem;padding:.85rem}
  .cart-row__img img{width:68px;height:68px}
  .cart-row__title{font-size:.92rem}
  .cart-row__qty{grid-column:1 / span 2;grid-row:2}
  .cart-row__price{display:none}
  .cart-row__total{grid-column:3;grid-row:2;align-self:center;text-align:right;font-size:.95rem}
  .cart-row__remove{grid-column:3;grid-row:1;align-self:start;justify-self:end}
  .cart-row__remove .bi{font-size:1.1rem}

  /* Résumé panier / checkout : prend toute la place, scroll naturel */
  .summary{padding:1rem}
  .summary-title{font-size:1rem}

  /* Checkout — bloc paiement pleine largeur */
  .pay-opt{padding:.7rem .85rem;font-size:.9rem}

  /* Compte — nav horizontal scroll */
  .account-nav{flex-direction:row;overflow-x:auto;gap:.25rem;padding:.4rem;flex-wrap:nowrap}
  .account-nav__link{flex:0 0 auto;white-space:nowrap;padding:.55rem .85rem;font-size:.85rem}
  .account-nav__link i{margin-right:.35rem}

  /* Footer mobile/tablette */
  .site-footer{margin-top:2.5rem}
  .footer-benefits{grid-template-columns:repeat(2,1fr);gap:.5rem;padding:1rem 0}
  .footer-benefit{padding:.4rem .25rem}
  .footer-benefit i{font-size:1.25rem}
  .footer-benefit strong{font-size:.82rem}
  .footer-benefit span{font-size:.72rem}
  .footer-main{padding:2rem 0 1.5rem}
  .footer-logo{height:48px}
  .footer-tagline{max-width:none}
  .footer-socials{justify-content:flex-start}
  .footer-payments{justify-content:flex-start}

  /* Alerts */
  .alert{font-size:.9rem}

  /* Mini hacks de sécurité : rien ne déborde en X */
  .row{--bs-gutter-x:1rem}
}

/* === Petit mobile (<576px) === */
@media (max-width:575.98px){
  :root{ --r-lg: 14px; }

  /* Header : toolbar encore plus fine */
  .site-header .bar-main > .container-xxl{gap:.4rem}
  .brand-text{font-size:1.05rem}
  .brand{max-width:130px}
  .brand-logo{height:34px;max-height:34px}

  /* Hero plus bas */
  .hero .carousel-indicators [data-bs-target]{width:22px;height:3px}

  /* 1 colonne pour les grandes rows sur XS */
  .shop-header{gap:.25rem}

  /* Produit — titre compact */
  .pd-title{font-size:1.15rem;line-height:1.2}
  .pd-prices{gap:.55rem}
  .pd-assurances{grid-template-columns:1fr}
  .pd-tablist .nav-link{padding:.5rem .8rem;font-size:.85rem}

  /* Sticky CTA mobile — laisser respirer le bas */
  .pd-sticky-bar{padding:.55rem .7rem;gap:.55rem}
  .pd-sticky-bar .small{font-size:.72rem}
  .pd-sticky-cta{padding:.55rem 1.1rem;font-size:.85rem}

  /* Cart row en XS : titre + qté + total sur 2 lignes clean */
  .cart-row__total{font-size:.9rem}

  /* Express checkout — card encore plus serré */
  .ex-title{font-size:1.35rem}
  .ex-card{padding:.85rem .9rem}
  .ex-step__title{font-size:.9rem}

  /* Tableaux compte : scroll horizontal */
  .table-responsive{margin:0 -.5rem;padding:0 .5rem}

  /* Checkout payment options : 1 col */
  .pay-opt{font-size:.88rem}

  /* Filtres shop : 2 col pour prix min/max */
  .filter-block{padding:.65rem 0}
  .filter-title{font-size:.78rem}

  /* Page titles */
  .page-title{font-size:1.3rem}
  .section-title{font-size:1.15rem}

  /* Empty state compact */
  .empty-state{padding:1.5rem 1rem !important}
  .empty-state .display-4{font-size:2rem}

  /* 404 */
  .display-1{font-size:3rem}

  /* Footer — compact sur petit mobile */
  .footer-benefits{grid-template-columns:1fr 1fr;gap:.25rem}
  .footer-benefit{gap:.6rem}
  .footer-main{padding:1.5rem 0 1rem}
  .footer-logo{height:42px}
  .pay-badge{padding:.25rem .5rem;font-size:.7rem}
}

/* === Très petit mobile (<380px) === */
@media (max-width:379.98px){
  .brand-text{font-size:.95rem}
  .brand{max-width:110px}
  .brand-logo{height:30px;max-height:30px}
  .btn{font-size:.85rem}
  .hero .carousel-control-prev,.hero .carousel-control-next{display:none}
}

/* Touch targets minimums (WCAG 2.5.5) */
@media (pointer:coarse){
  .btn, .btn-sm, .icon-link, .pd-thumb, .pd-option-value, .account-nav__link,
  .nav-link, .form-select, .page-link {
    min-height:42px;
  }
  .qty .btn{min-height:40px}
}

/* Reduce motion respect utilisateur */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
}

/* ============================================================================
   FASHION EDITORIAL OVERRIDE — DA-A « Black Ivory + Cognac »
   - Pure CSS, ordre de cascade en LAST POSITION (gagne sur tout ce qui précède).
   - Aucun nouveau sélecteur introduit : tout cible le markup déjà rendu.
   - Aucun état JS modifié (.active, .show, .is-active, .is-done, .is-invalid…).
   - Réversible : supprimer ce bloc + l'@import en haut suffit à revenir à l'avant.
   ============================================================================ */

/* --- Tokens ---------------------------------------------------------------- */
:root{
  --c-bg:        #FAF8F4;
  --c-surface:   #FFFFFF;
  --c-ink:       #15120D;
  --c-ink-2:     #4D453B;
  --c-muted:     #9A9183;
  --c-line:      #ECE5D8;
  --c-accent:    #8C5A4A;
  --c-accent-dk: #5F3A2D;
  --c-gold:      #B38E5D;
  --c-danger:    #A6433A;
  --c-success:   #4F7A4A;

  --ff-display: "Playfair Display", "Cormorant Garamond", "Didot", "Bodoni 72", "Times New Roman", serif;
  --ff-body:    "Inter", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
  --ff-eyebrow: "Inter", "Helvetica Neue", Arial, sans-serif;

  --r-sm: 2px;
  --r-md: 4px;
  --r-lg: 6px;
  --r-pill: 999px;

  --sh-1: 0 1px 2px rgba(21,18,13,.04);
  --sh-2: 0 12px 32px rgba(21,18,13,.08);

  --sp-section: 5rem;
  --transition: .3s cubic-bezier(.2,.6,.2,1);
}

/* --- Body & poids — l'ancien CSS forçait 700 partout : on revient à 400 --- */
html, body{
  font-family: var(--ff-body);
  font-weight: 400;
  letter-spacing: .005em;
  color: var(--c-ink);
}
body, p, li, td, th, a, span, label, button, .btn{ font-weight: 400; }
strong, b{ font-weight: 600; }
input, textarea, select, .form-control, .form-select{ font-weight: 400; }

/* --- Hiérarchie typographique éditoriale --------------------------------- */
h1, h2, h3, h4, h5, h6,
.brand-text,
.page-title, .section-title, .shop-title,
.pd-title, .price-main,
.summary-title, .stat-card__num,
.cat-editorial__title, .cat-slider__title,
.pd-inline-desc__title, .ex-title{
  font-family: var(--ff-display);
  font-weight: 500;
  letter-spacing: -.01em;
  color: var(--c-ink);
}
h1, .page-title, .pd-title{ font-weight: 500; }
.section-title, .shop-title{ font-size: 2rem; letter-spacing: -.015em; }
.brand-text{ font-weight: 600; letter-spacing: .04em; text-transform: uppercase; font-size: 1.2rem; }

/* Eyebrow / micro-typo uppercase — la signature fashion */
.pd-eyebrow,
.cat-editorial__eyebrow,
.filter-title,
.footer-h,
.section-more,
.badge-chip,
.stat-card__label,
.chip,
.account-nav__link,
.pd-tablist .nav-link,
.pd-option-value span,
.form-label,
.breadcrumb,
.topbar-phone, .topbar-free{
  font-family: var(--ff-eyebrow);
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.footer-h{ font-size: .72rem; letter-spacing: .14em; }
.filter-title{ font-size: .72rem; letter-spacing: .15em; }
.pd-eyebrow{ font-size: .68rem; letter-spacing: .14em; }
.section-more{ font-size: .72rem; letter-spacing: .14em; }
.section-more:hover{ color: var(--c-ink); text-decoration: underline; text-underline-offset: 3px; }

/* --- Header --------------------------------------------------------------- */
.site-header{ box-shadow: none; }
.site-header .bar-top{ font-size: .78rem; letter-spacing: .04em; }
.site-header .bar-main > .container-xxl{ min-height: 84px; }
.bar-nav{ background: #fff; border-top: 1px solid var(--c-line); }

.nav-top-list{ gap: 2.25rem; justify-content: center; }
.nav-top-list > li > a{
  font-family: var(--ff-eyebrow);
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: .78rem;
  border-bottom: 1px solid transparent;
  padding: .35rem 0;
}
.nav-top-list > li > a:hover,
.nav-top-list > li > a.active{ border-bottom-color: var(--c-ink); }
.nav-top-list > li.has-children > a::after{ border-color: var(--c-ink-2); }

.search-form .input-group .form-control{
  background: #fff;
  border: 1px solid var(--c-line);
  border-radius: 0;
  height: 44px;
  padding: .55rem .9rem;
}
.search-form .btn-dark{
  border-radius: 0;
  height: 44px;
  background: var(--c-ink);
  border-color: var(--c-ink);
}
.search-suggest{ border-radius: 4px; }

.icon-link{ color: var(--c-ink); }
.icon-link:hover{ background: var(--c-bg); }
.cart-count{ background: var(--c-ink); border-radius: var(--r-pill); }

/* --- Boutons : rectangulaires, uppercase, signature mode ----------------- */
.btn{
  border-radius: 2px;
  font-family: var(--ff-eyebrow);
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-size: .8rem;
  padding: .85rem 1.6rem;
  transition: background-color var(--transition), color var(--transition), border-color var(--transition);
}
.btn-lg{ font-size: .85rem; padding: 1rem 2rem; }
.btn-sm{ font-size: .7rem; padding: .5rem 1rem; letter-spacing: .12em; }
.btn-dark, .btn-primary{
  background: var(--c-ink);
  border: 1px solid var(--c-ink);
  color: #fff;
}
.btn-dark:hover, .btn-primary:hover{
  background: transparent;
  color: var(--c-ink);
  border-color: var(--c-ink);
}
.btn-outline-dark{
  background: transparent;
  border: 1px solid var(--c-ink);
  color: var(--c-ink);
}
.btn-outline-dark:hover{ background: var(--c-ink); color: #fff; }

/* Conserve le pill quand explicitement demandé (chips, qty, filter chips) */
.rounded-pill{ border-radius: var(--r-pill) !important; }
.chip{ border-radius: var(--r-pill); padding: .55rem 1.05rem; font-size: .72rem; letter-spacing: .12em; background: #fff; border: 1px solid var(--c-line); color: var(--c-ink); }
.chip:hover{ background: var(--c-ink); color: #fff; border-color: var(--c-ink); }

/* --- Section heads : éditoriaux, séparateur fin -------------------------- */
.section-head{
  margin-bottom: 2rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--c-line);
  align-items: baseline;
}

/* --- Hero : indicators barre 1px, plus magazine -------------------------- */
.hero .carousel-indicators [data-bs-target]{
  width: 22px; height: 1px;
  background: rgba(255,255,255,.45);
  margin: 0 6px;
  border: 0;
}
.hero .carousel-indicators .active{
  background: #fff;
  width: 36px;
}

/* --- Catégories sliders --------------------------------------------------- */
.cat-slider__card{ border-radius: 2px; box-shadow: none; }
.cat-slider__card:hover{ box-shadow: 0 18px 40px rgba(21,18,13,.12); }
.cat-slider__title{ font-family: var(--ff-display); font-weight: 500; letter-spacing: -.01em; }
.cat-slider__count{ letter-spacing: .12em; text-transform: uppercase; font-size: .68rem; }
.cat-slider__index{ letter-spacing: .15em; }

.cat-editorial__card{ border-radius: 2px; box-shadow: none; }
.cat-editorial__card:hover{ box-shadow: 0 18px 40px rgba(21,18,13,.12); }
.cat-editorial__title{ font-family: var(--ff-display); font-weight: 500; }
.cat-editorial__count{ letter-spacing: .12em; text-transform: uppercase; }

.cat-tile{ border-radius: 2px; }
.cat-tile__label{ font-size: .8rem; letter-spacing: .04em; }

/* --- Product card : éditorial (image dominante, sans bordure) ------------ */
.product-card{
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.product-card:hover{ transform: none; box-shadow: none; }
.product-card__img{
  aspect-ratio: 3/4;
  background: var(--c-bg);
  border-radius: 0;
  overflow: hidden;
}
.product-card__img img{
  transition: transform .8s cubic-bezier(.2,.6,.2,1);
}
.product-card:hover .product-card__img img{ transform: scale(1.04); }
.product-card__body{
  padding: .9rem .25rem 1rem;
  background: transparent;
  gap: .3rem;
}
.product-card__title{
  font-size: .85rem;
  font-weight: 500;
  letter-spacing: .015em;
  line-height: 1.4;
}
.product-card__title a:hover{
  color: var(--c-ink);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.product-card__rate-num{ font-weight: 500; font-size: .72rem; }
.stars{ font-size: .78rem; }

.price{
  font-family: var(--ff-eyebrow);
  font-weight: 600;
  font-size: .92rem;
  letter-spacing: .03em;
  color: var(--c-ink);
}
.price-old{ font-size: .8rem; color: var(--c-muted); }

/* Badges minimalistes (defaut blanc bordé, promo en ink plein) */
.badge-chip{
  background: #fff;
  color: var(--c-ink);
  border: 1px solid var(--c-line);
  font-size: .65rem;
  font-weight: 500;
  letter-spacing: .12em;
  padding: .25rem .6rem;
  top: 1rem; left: 1rem;
  border-radius: 0;
}
.badge-chip--promo{ background: var(--c-ink); color: #fff; border-color: var(--c-ink); }
.badge-chip--top{ background: var(--c-gold); color: var(--c-ink); border-color: var(--c-gold); left: auto; right: 1rem; }

/* Wishlist : visible au hover seulement (desktop), toujours sur mobile via @media */
.wish-btn{
  background: transparent;
  width: 32px; height: 32px;
  bottom: 1rem; right: 1rem;
  color: var(--c-ink);
  opacity: 0;
  backdrop-filter: none;
  transition: opacity .25s ease, background .15s ease, color .15s ease;
}
.product-card:hover .wish-btn,
.wish-btn.active,
.wish-btn:focus-visible{ opacity: 1; }
.wish-btn:hover{ background: rgba(255,255,255,.92); }
.wish-btn.active{ background: transparent; color: var(--c-accent-dk); }
@media (hover: none){
  .wish-btn{ opacity: 1; background: rgba(255,255,255,.92); }
}

/* --- Fiche produit : page éditoriale ------------------------------------ */
.pd-wrap{ background: var(--c-bg); }
.pd-eyebrow{ color: var(--c-ink-2); }
.pd-title{ font-size: 2rem; line-height: 1.1; font-weight: 500; }
.price-main{ font-family: var(--ff-display); font-weight: 500; font-size: 1.6rem; letter-spacing: -.01em; }
.price-save{
  background: transparent;
  color: var(--c-accent-dk);
  border: 1px solid var(--c-accent-dk);
  font-size: .68rem;
  letter-spacing: .12em;
  font-weight: 500;
  border-radius: 0;
  padding: .2rem .5rem;
}
.pd-tag{ border-radius: 0; letter-spacing: .12em; }

.pd-main{
  background: var(--c-bg);
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.pd-main img{
  background: transparent;
  padding: 1.75rem;
}
.pd-thumb{ border-radius: 0; }
.pd-thumb.active{ border-color: var(--c-ink); box-shadow: none; }
.pd-nav{ border-radius: 50%; box-shadow: var(--sh-1); }

.pd-option-value span{
  border-radius: 0;
  padding: .55rem 1rem;
  font-family: var(--ff-eyebrow);
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .72rem;
  font-weight: 500;
  border-color: var(--c-line);
}
.pd-option-value input:checked + span{
  background: var(--c-ink);
  color: #fff;
  border-color: var(--c-ink);
  box-shadow: none;
}

.qty{ border-radius: 0; border-color: var(--c-line); }
.qty .btn{ border-radius: 0; padding: 0; letter-spacing: 0; font-size: 1rem; }
.qty input{ font-weight: 500; }

.pd-cta{
  border-radius: 2px !important;
  font-size: .8rem !important;
  letter-spacing: .14em;
  padding: 1rem 1.5rem !important;
  min-height: 48px;
}

.pd-tablist{ border-bottom: 1px solid var(--c-line); }
.pd-tablist .nav-link{
  font-family: var(--ff-eyebrow);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .72rem;
  font-weight: 500;
  padding: .85rem 1.2rem;
  border-bottom: 1px solid transparent;
}
.pd-tablist .nav-link.active{
  border-bottom-color: var(--c-ink);
  background: transparent;
}
.pd-tabpanels{ border-radius: 0 0 4px 4px; }

.pd-assurances{
  border-radius: 0;
  border-color: var(--c-line);
}
.pd-assurances .bi{ color: var(--c-accent); }

.pd-share a, .pd-share button{ border-radius: 0; border-color: var(--c-line); }

.pd-inline-desc{ border-top-color: var(--c-line); }
.pd-inline-desc__title{ font-family: var(--ff-display); font-weight: 500; font-size: 1.05rem; }
.pd-inline-desc__toggle{
  font-family: var(--ff-eyebrow);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .72rem;
}

.pd-sticky-bar{
  border-top: 1px solid var(--c-line);
  box-shadow: 0 -8px 24px rgba(21,18,13,.06);
}
.pd-sticky-cta{ border-radius: 2px !important; letter-spacing: .12em; }

/* --- Cards génériques (cart, summary, filters, account, empty) ----------- */
.card-block,
.cart-list,
.summary,
.filters,
.stat-card,
.empty-state,
.account-nav,
.pd-tabpanels,
.shop-inf__loader{
  border-radius: 2px;
  border-color: var(--c-line);
  box-shadow: none;
}
.summary-title{ font-size: 1.1rem; letter-spacing: -.01em; }

.cart-row{ border-bottom-color: var(--c-line); }
.cart-row__img img{ border-radius: 0; }
.cart-row__title{ font-weight: 500; }
.cart-row__title:hover{
  color: var(--c-ink);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.cart-row__total{ font-weight: 600; font-family: var(--ff-eyebrow); letter-spacing: .02em; }

/* --- Account ------------------------------------------------------------- */
.account-nav__link{
  border-radius: 0;
  font-family: var(--ff-eyebrow);
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: .78rem;
  font-weight: 500;
}
.account-nav__link.active{ background: var(--c-ink); color: #fff; }
.stat-card__num{ font-family: var(--ff-display); font-weight: 500; font-size: 2rem; }
.stat-card__label{ font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }
.status-chip{ letter-spacing: .08em; text-transform: uppercase; font-size: .68rem; font-weight: 500; }

/* --- Forms (cohérents partout) ------------------------------------------ */
.form-control, .form-select{
  border-radius: 2px;
  border-color: var(--c-line);
  background: #fff;
  font-size: .92rem;
  padding: .7rem .9rem;
}
.form-control:focus, .form-select:focus{
  border-color: var(--c-ink);
  background: #fff;
  box-shadow: none;
}
.form-label{
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-weight: 500;
  color: var(--c-ink-2);
  margin-bottom: .35rem;
}

/* --- Pay options (checkout) ---------------------------------------------- */
.pay-opt{
  border-radius: 2px;
  background: #fff;
  border-color: var(--c-line);
}
.pay-opt:has(input:checked){
  border-color: var(--c-ink);
  background: var(--c-bg);
}

/* --- Express checkout (override des styles inline du fichier .php) ------ */
.ex-wrap{ background: linear-gradient(180deg, var(--c-bg), #fff 60%); }
.ex-badge{
  background: var(--c-ink);
  border-radius: 0;
  letter-spacing: .14em;
  padding: .3rem .7rem;
}
.ex-title{ font-family: var(--ff-display); font-weight: 500; font-size: 2.1rem; letter-spacing: -.015em; }
.ex-sub{ color: var(--c-ink-2); }
.ex-card{
  border-radius: 2px;
  box-shadow: none;
  padding: 1.5rem 1.75rem;
  border-color: var(--c-line);
}
.ex-step__title{ font-family: var(--ff-display); font-weight: 500; }
.ex-step__num{ font-family: var(--ff-eyebrow); }
.ex-summary{ border-radius: 2px; box-shadow: none; }
.ex-cta{ border-radius: 2px !important; }

/* --- Footer raffinements -------------------------------------------------- */
.footer-h::after{
  width: 24px;
  height: 1px;
  background: var(--c-gold);
}
.footer-links a{ font-size: .85rem; }
.footer-tagline{ font-size: .88rem; }
.pay-badge{ border-radius: 0; letter-spacing: .08em; }
.footer-benefit strong{ font-weight: 600; letter-spacing: .02em; }
.footer-benefit span{ letter-spacing: .04em; }

/* --- Breadcrumb minimaliste ---------------------------------------------- */
.breadcrumb-wrap .breadcrumb{
  font-size: .68rem;
  color: var(--c-ink-2);
  letter-spacing: .12em;
}
.breadcrumb-item.active{ color: var(--c-ink); font-weight: 600; }
.breadcrumb-item + .breadcrumb-item::before{
  color: var(--c-muted);
  content: "·";
  padding: 0 .65rem;
}

/* --- Pagination ----------------------------------------------------------- */
.pagination .page-link{
  border-radius: 0;
  border-color: var(--c-line);
  color: var(--c-ink);
  font-family: var(--ff-eyebrow);
  font-size: .8rem;
  letter-spacing: .04em;
}
.pagination .page-item.active .page-link{ background: var(--c-ink); border-color: var(--c-ink); }

/* --- Alerts / toast ------------------------------------------------------- */
.alert{ border-radius: 4px; border-left-width: 2px; }
.toast-host .toast{ border-radius: 4px; }

/* --- Espacements de sections (homepage rythme magazine) ----------------- */
.section.py-5{ padding-block: var(--sp-section) !important; }
@media (max-width: 991.98px){ .section.py-5{ padding-block: 3rem !important; } }
@media (max-width: 575.98px){ .section.py-5{ padding-block: 2.25rem !important; } }

/* --- Liens dans le rich content (description fiche produit) ------------- */
.pd-rich a, .pd-inline-desc__body a{
  color: var(--c-ink);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
}
.pd-rich a:hover, .pd-inline-desc__body a:hover{ color: var(--c-accent-dk); }

/* --- Adaptations responsives spécifiques au layer fashion --------------- */
@media (max-width: 991.98px){
  .nav-top-list{ gap: 1.25rem; }
  .site-header .bar-main > .container-xxl{ min-height: 72px; }
}
@media (max-width: 767.98px){
  .section-title, .shop-title{ font-size: 1.5rem; }
  .pd-title{ font-size: 1.5rem; }
  .price-main{ font-size: 1.35rem; }
  .ex-title{ font-size: 1.6rem; }
  .product-card__title{ font-size: .82rem; }
  .price{ font-size: .88rem; }
  .btn{ padding: .75rem 1.25rem; font-size: .76rem; letter-spacing: .12em; }
  .btn-lg{ padding: .85rem 1.5rem; font-size: .78rem; }
  .nav-top-list > li > a{ font-size: .72rem; letter-spacing: .1em; }
  .stat-card__num{ font-size: 1.6rem; }
}
@media (max-width: 575.98px){
  .section-title, .shop-title{ font-size: 1.3rem; }
  .pd-title{ font-size: 1.35rem; }
  .ex-title{ font-size: 1.4rem; }
  .footer-h{ font-size: .68rem; }
}

/* ============================================================================
   HOME PREMIUM LAYER — DA-Aylan
   Hero v2 (Ken Burns + progress bars) · Trust strip · Brand promise · Reveal
   Tout est additif : aucune règle existante n'est modifiée.
   ============================================================================ */

/* --- Hero v2 ------------------------------------------------------------- */
.hero.hero--premium{ position:relative; background:#1E1B16; }
.hero.hero--premium .carousel-item{
  position:relative;
  transition:opacity .9s ease, transform .9s ease;
}
.hero.hero--premium .carousel-item .hero-img{
  transform:scale(1.005);
  transition:transform 7s linear;
  will-change:transform;
}
@media (prefers-reduced-motion: no-preference){
  .hero.hero--premium .carousel-item.active .hero-img{ transform:scale(1.06); }
}
.hero.hero--premium .hero-vignette{
  position:absolute; inset:0; pointer-events:none; z-index:1;
  background:
    radial-gradient(120% 80% at 50% 100%, rgba(0,0,0,.28), transparent 55%),
    linear-gradient(180deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,.18) 100%);
}

/* Caption (rendue uniquement quand slide.texte ou slide.button_title) */
.hero.hero--premium .hero-caption{
  position:absolute; inset:auto 0 0 0; z-index:2;
  display:flex; justify-content:flex-start;
  padding:clamp(1rem, 4vw, 3rem) clamp(1rem, 4vw, 3.5rem) clamp(2rem, 5vw, 4rem);
  pointer-events:none;
}
.hero.hero--premium .hero-caption__inner{
  pointer-events:auto;
  max-width:640px;
  background:linear-gradient(180deg, rgba(30,27,22,.0) 0%, rgba(30,27,22,.55) 100%);
  padding:1rem 1.25rem 1.25rem;
  border-radius:var(--r-md);
  -webkit-backdrop-filter:blur(2px);
  backdrop-filter:blur(2px);
}
.hero.hero--premium .hero-caption__text{
  color:#fff; font-size:clamp(.9rem,1.15vw,1.05rem); line-height:1.45;
  margin-bottom:.9rem;
  text-shadow:0 1px 2px rgba(0,0,0,.3);
}
.hero.hero--premium .hero-caption__text *{ color:#fff !important; margin:0 0 .35rem; }
.hero.hero--premium .hero-caption__text h1,
.hero.hero--premium .hero-caption__text h2{
  font-family:var(--ff-display); font-weight:500;
  font-size:clamp(1.3rem,3vw,2.4rem); line-height:1.1; letter-spacing:-.015em;
  margin-bottom:.5rem;
}

.btn-hero{
  background:#fff; color:var(--c-ink);
  padding:.75rem 1.4rem;
  font-family:var(--ff-eyebrow); font-size:.74rem;
  letter-spacing:.16em; text-transform:uppercase;
  display:inline-flex; align-items:center; gap:.5rem;
  border:0; transition:transform .25s ease, background .25s ease, color .25s ease;
}
.btn-hero:hover{ background:var(--c-ink); color:#fff; transform:translateY(-1px); }
.btn-hero svg{ transition:transform .25s ease; }
.btn-hero:hover svg{ transform:translateX(3px); }

/* Flèches premium — flottantes, glassmorphism subtil */
.hero.hero--premium .carousel-control-prev,
.hero.hero--premium .carousel-control-next{ display:none; }
.hero-arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  width:48px; height:48px; border-radius:50%;
  background:rgba(255,255,255,.92); border:0; color:var(--c-ink);
  display:inline-flex; align-items:center; justify-content:center;
  z-index:3; cursor:pointer; box-shadow:0 6px 20px rgba(0,0,0,.18);
  transition:transform .25s ease, background .25s ease, opacity .25s ease;
  opacity:.85;
}
.hero-arrow:hover{ background:#fff; opacity:1; transform:translateY(-50%) scale(1.06); }
.hero-arrow:focus-visible{ outline:2px solid var(--c-gold); outline-offset:3px; }
.hero-arrow--prev{ left:clamp(.75rem, 2vw, 1.5rem); }
.hero-arrow--next{ right:clamp(.75rem, 2vw, 1.5rem); }
@media (max-width:575.98px){
  .hero-arrow{ width:38px; height:38px; box-shadow:0 4px 12px rgba(0,0,0,.18); }
  .hero-arrow svg{ width:16px; height:16px; }
}

/* Progress bars — remplace les indicateurs Bootstrap */
.hero-progress{
  position:absolute; left:50%; transform:translateX(-50%);
  bottom:clamp(.85rem, 2.4vw, 1.6rem);
  z-index:3; display:flex; gap:.5rem;
  padding:.45rem .65rem; border-radius:999px;
  background:rgba(0,0,0,.28); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
}
.hero-progress__bar{
  position:relative; width:38px; height:3px; padding:0;
  background:rgba(255,255,255,.32); border:0; border-radius:999px;
  cursor:pointer; overflow:hidden; transition:width .35s ease, background .25s ease;
}
.hero-progress__bar:hover{ background:rgba(255,255,255,.55); }
.hero-progress__bar.is-active{ width:64px; background:rgba(255,255,255,.32); }
.hero-progress__fill{
  position:absolute; inset:0; width:0; height:100%;
  background:#fff; border-radius:999px;
}
.hero-progress__bar.is-active .hero-progress__fill{
  animation:heroFill 6s linear forwards;
}
@keyframes heroFill{ from{ width:0; } to{ width:100%; } }
@media (prefers-reduced-motion: reduce){
  .hero-progress__bar.is-active .hero-progress__fill{ animation:none; width:100%; }
}
@media (max-width:575.98px){
  .hero-progress__bar{ width:24px; }
  .hero-progress__bar.is-active{ width:42px; }
}

/* --- Trust strip --------------------------------------------------------- */
.trust-strip{
  background:#fff;
  border-bottom:1px solid var(--c-line);
  position:relative; z-index:2;
}
.trust-strip__list{
  list-style:none; margin:0; padding:1rem 0;
  display:grid; grid-template-columns:repeat(4, 1fr); gap:.5rem;
}
.trust-strip__item{
  display:flex; align-items:center; gap:.85rem;
  padding:.4rem .6rem;
  border-right:1px solid var(--c-line);
  min-width:0;
}
.trust-strip__item:last-child{ border-right:0; }
.trust-strip__ico{
  flex-shrink:0; width:38px; height:38px; border-radius:50%;
  background:var(--c-bg); color:var(--c-accent-dk);
  display:inline-flex; align-items:center; justify-content:center;
  font-size:1.05rem;
  border:1px solid var(--c-line);
}
.trust-strip__txt{ display:flex; flex-direction:column; min-width:0; line-height:1.2; }
.trust-strip__txt strong{
  font-family:var(--ff-eyebrow);
  font-size:.74rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--c-ink); font-weight:600;
}
.trust-strip__sub{
  font-size:.78rem; color:var(--c-ink-2); margin-top:.15rem;
  letter-spacing:0; text-transform:none;
}
@media (max-width:991.98px){
  .trust-strip__list{ grid-template-columns:repeat(2,1fr); padding:.75rem 0; }
  .trust-strip__item:nth-child(2){ border-right:0; }
  .trust-strip__item:nth-child(-n+2){ border-bottom:1px solid var(--c-line); padding-bottom:.6rem; margin-bottom:.3rem; }
}
@media (max-width:480px){
  .trust-strip__list{ padding:.6rem 0; gap:.25rem; }
  .trust-strip__item{ padding:.35rem .35rem; gap:.6rem; }
  .trust-strip__ico{ width:32px; height:32px; font-size:.95rem; }
  .trust-strip__txt strong{ font-size:.66rem; letter-spacing:.08em; }
  .trust-strip__sub{ font-size:.7rem; }
}

/* --- Eyebrow promo (variant rouge subtil) ------------------------------- */
.cat-editorial__eyebrow--promo{ color:var(--c-danger); }

/* --- Brand promise — bandeau éditorial premium -------------------------- */
.brand-promise{
  background:linear-gradient(180deg, var(--c-bg) 0%, #FFFCF7 100%);
  padding:clamp(3rem, 7vw, 6rem) 0;
  border-top:1px solid var(--c-line);
  border-bottom:1px solid var(--c-line);
  position:relative; overflow:hidden;
}
.brand-promise::before{
  content:""; position:absolute;
  top:-120px; right:-120px; width:340px; height:340px; border-radius:50%;
  background:radial-gradient(circle, rgba(179,142,93,.12), transparent 65%);
  pointer-events:none;
}
.brand-promise::after{
  content:""; position:absolute;
  bottom:-160px; left:-100px; width:380px; height:380px; border-radius:50%;
  background:radial-gradient(circle, rgba(140,90,74,.08), transparent 65%);
  pointer-events:none;
}
.brand-promise__grid{
  display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(2rem,5vw,4.5rem);
  align-items:center; position:relative; z-index:1;
}
.brand-promise__title{
  font-family:var(--ff-display); font-weight:500;
  font-size:clamp(1.6rem, 3.4vw, 2.6rem); line-height:1.12;
  letter-spacing:-.015em;
  margin:.3rem 0 1rem; color:var(--c-ink);
}
.brand-promise__lede{
  font-size:1.02rem; line-height:1.65; color:var(--c-ink-2);
  max-width:48ch; margin:0 0 1.6rem;
}
.brand-promise__cta{
  padding:.85rem 1.5rem; gap:.55rem;
  display:inline-flex; align-items:center;
  font-family:var(--ff-eyebrow); font-size:.74rem;
  letter-spacing:.16em; text-transform:uppercase;
}
.brand-promise__cta svg{ transition:transform .25s ease; }
.brand-promise__cta:hover svg{ transform:translateX(3px); }

.brand-promise__pillars{
  list-style:none; margin:0; padding:0;
  display:flex; flex-direction:column; gap:1.4rem;
}
.brand-promise__pillars li{
  display:grid; grid-template-columns:auto 1fr; gap:1.1rem; align-items:start;
  padding:1.1rem 1.2rem;
  background:#fff; border:1px solid var(--c-line); border-radius:var(--r-md);
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.brand-promise__pillars li:hover{
  transform:translateY(-2px);
  box-shadow:var(--sh-2);
  border-color:transparent;
}
.brand-promise__num{
  font-family:var(--ff-display); font-weight:500;
  font-size:1.45rem; color:var(--c-gold);
  line-height:1; letter-spacing:.02em;
  border-right:1px solid var(--c-line);
  padding-right:1rem;
  align-self:stretch;
  display:flex; align-items:center;
}
.brand-promise__pillars h3{
  font-family:var(--ff-display); font-weight:500;
  font-size:1.05rem; letter-spacing:-.005em;
  margin:0 0 .25rem; color:var(--c-ink);
}
.brand-promise__pillars p{
  margin:0; font-size:.9rem; color:var(--c-ink-2); line-height:1.5;
}
@media (max-width:991.98px){
  .brand-promise__grid{ grid-template-columns:1fr; gap:2rem; }
}

/* --- Benefits (bottom) — refonte plus premium --------------------------- */
.benefits{ background:#fff; }
.benefits-row{ row-gap:1.5rem !important; }
.benefits-col{
  padding:1.6rem 1rem !important;
  border-right:1px solid var(--c-line);
  transition:background .25s ease;
}
.benefits-col:last-child{ border-right:0; }
.benefits-col:hover{ background:var(--c-bg); }
.benefits-col i{
  font-size:1.7rem; color:var(--c-accent-dk);
  display:inline-flex; align-items:center; justify-content:center;
  width:54px; height:54px; border-radius:50%;
  background:var(--c-bg); border:1px solid var(--c-line);
  margin-bottom:.85rem;
}
.benefits-col h6{
  font-family:var(--ff-eyebrow); font-size:.78rem;
  letter-spacing:.12em; text-transform:uppercase; font-weight:600;
  margin:0 0 .35rem;
}
.benefits-col p{
  font-size:.85rem; color:var(--c-ink-2); margin:0;
}
@media (max-width:767.98px){
  .benefits-col{ border-right:0; padding:1.1rem .75rem !important; }
  .benefits-col:nth-child(odd){ border-right:1px solid var(--c-line); }
  .benefits-col i{ width:46px; height:46px; font-size:1.3rem; margin-bottom:.6rem; }
}

/* --- Reveal animations (IntersectionObserver) --------------------------- */
@media (prefers-reduced-motion: no-preference){
  [data-reveal]{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.6,.2,1); }
  [data-reveal].is-visible{ opacity:1; transform:none; }
  .reveal-stagger > .col{ opacity:0; transform:translateY(14px); transition:opacity .55s ease, transform .55s cubic-bezier(.2,.6,.2,1); transition-delay:var(--rd, 0ms); }
  .reveal-stagger.is-visible > .col{ opacity:1; transform:none; }
}

/* ============================================================================
   HEADER PREMIUM LAYER — DA-Aylan
   Announcement bar (rotative) · Sticky compact · Search pill
   Hamburger animé · Cart pulse · Mega menu animé · Nav mobile éditorial
   Tout est additif et ne remplace rien.
   ============================================================================ */

/* --- Announcement bar (remplace bar-top desktop) ------------------------ */
.announcement-bar{
  background:linear-gradient(90deg, #1E1B16 0%, #2A2519 50%, #1E1B16 100%);
  color:#E5E0D4;
  font-size:.78rem;
  letter-spacing:.04em;
  border-bottom:1px solid rgba(255,255,255,.06);
  position:relative;
  overflow:hidden;
}
.announcement-bar::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(90deg, transparent 0, rgba(179,142,93,.08) 50%, transparent 100%);
  pointer-events:none;
}
.announcement-bar__row{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:1.25rem;
  padding:.55rem 0;
  position:relative; z-index:1;
}
.announcement-bar__phone{
  color:#fff; text-decoration:none;
  display:inline-flex; align-items:center; gap:.45rem;
  font-weight:500; font-size:.78rem;
  transition:color .2s ease;
}
.announcement-bar__phone .bi{ color:var(--c-gold); font-size:.85rem; }
.announcement-bar__phone:hover{ color:var(--c-gold); text-decoration:none; }

.announcement-bar__center{ position:relative; min-height:1.4em; text-align:center; overflow:hidden; }
.announcement-rot{ list-style:none; margin:0; padding:0; position:relative; height:1.4em; }
.announcement-rot__item{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center; gap:.55rem;
  font-size:.78rem; color:#E5E0D4;
  opacity:0; transform:translateY(8px);
  transition:opacity .5s ease, transform .5s ease;
  pointer-events:none;
}
.announcement-rot__item.is-active{ opacity:1; transform:none; }
.announcement-rot__item .bi{ color:var(--c-gold); font-size:.85rem; }
.announcement-rot__item strong{ color:#fff; font-weight:600; letter-spacing:.02em; }

.announcement-bar__right{ display:inline-flex; align-items:center; gap:.85rem; }
.announcement-bar__right .topbar-sep{ display:inline-block; width:1px; height:14px; background:rgba(255,255,255,.18); }
.announcement-bar__link{
  color:#E5E0D4; text-decoration:none;
  font-size:.76rem; font-weight:500;
  display:inline-flex; align-items:center; gap:.35rem;
  transition:color .2s ease;
}
.announcement-bar__link:hover{ color:#fff; text-decoration:none; }
.announcement-bar__link .bi{ font-size:.9rem; color:var(--c-gold); }
.announcement-bar__link--cta{
  border:1px solid rgba(179,142,93,.5);
  border-radius:999px;
  padding:.2rem .7rem;
  color:#fff;
}
.announcement-bar__link--cta:hover{
  background:var(--c-gold); border-color:var(--c-gold); color:#1E1B16;
}

/* --- Site header sticky compact mode ------------------------------------ */
.site-header{ transition:box-shadow .25s ease, background-color .25s ease; }
.site-header.is-scrolled{ box-shadow:0 4px 20px rgba(30,27,22,.06); }
.site-header.is-scrolled .bar-main > .container-xxl{ padding-block:.5rem; min-height:64px; }
.site-header.is-scrolled .brand-logo{ height:40px !important; max-height:40px !important; transition:height .25s ease; }
.site-header.is-scrolled .announcement-bar{ max-height:0; overflow:hidden; padding:0; border-bottom:0; transition:max-height .35s ease, padding .35s ease; }
.site-header.is-scrolled .announcement-bar__row{ padding-block:0; }
.announcement-bar{ max-height:80px; transition:max-height .35s ease; }

/* --- Search pill ------------------------------------------------------- */
.search-form--pill{ max-width:640px; margin-inline:auto; }
.search-pill{
  position:relative;
  display:flex; align-items:center;
  background:var(--c-bg);
  border:1px solid var(--c-line);
  border-radius:999px;
  padding:.3rem .35rem .3rem 1rem;
  height:46px;
  min-height:46px;
  flex:0 0 auto;
  transition:border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
/* Bloque toute transition de hauteur du conteneur de la pill au scroll */
.site-header .bar-main > .container-xxl,
.site-header .bar-main{ transition:none !important; }
.site-header .search-form,
.site-header .search-pill{ transition-property:border-color, background, box-shadow !important; }
.search-pill:focus-within{
  background:#fff;
  border-color:var(--c-ink);
  box-shadow:0 6px 22px rgba(30,27,22,.06);
}
.search-pill__ico{ font-size:1rem; color:var(--c-ink-2); flex-shrink:0; margin-right:.5rem; }
.search-pill__input{
  flex:1; min-width:0;
  border:0; background:transparent; outline:0;
  font-family:var(--ff-body); font-size:.92rem;
  font-weight:500;
  padding:0; height:100%;
  color:var(--c-ink);
}
.search-pill__input::placeholder{ color:var(--c-muted); font-weight:400; letter-spacing:.005em; }
.search-pill__submit{
  flex-shrink:0;
  background:var(--c-ink); color:#fff;
  border:0; border-radius:999px;
  padding:.5rem 1.1rem;
  font-family:var(--ff-eyebrow); font-size:.7rem;
  font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  display:inline-flex; align-items:center; gap:.45rem;
  cursor:pointer; transition:background .2s ease, transform .2s ease;
  height:38px;
}
.search-pill__submit:hover{ background:var(--c-accent-dk); transform:translateX(1px); }
.search-pill__submit--icon{ padding:.5rem; width:38px; height:38px; justify-content:center; }
.search-pill__submit--icon .bi{ font-size:1rem; }

/* Search suggest — overlay sous le pill */
.search-form--pill .search-suggest{
  top:calc(100% + 8px);
  border-radius:var(--r-md);
  border:1px solid var(--c-line);
  box-shadow:0 12px 32px rgba(30,27,22,.08);
  overflow:hidden;
}

/* --- Hamburger animé --------------------------------------------------- */
.hamburger{
  width:42px; height:42px; padding:0;
  background:transparent; border:0;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:50%;
  transition:background .2s ease;
  cursor:pointer;
  flex-shrink:0;
}
.hamburger:hover{ background:var(--c-bg); }
.hamburger__lines{
  position:relative; width:22px; height:16px;
  display:inline-block;
}
.hamburger__lines span{
  position:absolute; left:0; right:0; height:2px;
  background:var(--c-ink); border-radius:2px;
  transition:transform .3s ease, opacity .25s ease, top .3s ease;
}
.hamburger__lines span:nth-child(1){ top:2px; }
.hamburger__lines span:nth-child(2){ top:7px; }
.hamburger__lines span:nth-child(3){ top:12px; }
.hamburger.is-active .hamburger__lines span:nth-child(1){ top:7px; transform:rotate(45deg); }
.hamburger.is-active .hamburger__lines span:nth-child(2){ opacity:0; }
.hamburger.is-active .hamburger__lines span:nth-child(3){ top:7px; transform:rotate(-45deg); }

/* --- Cart count pulse ------------------------------------------------- */
.cart-count.is-filled{ background:var(--c-danger); border-color:#fff; }
.cart-count.is-pulse{ animation:cartPulse .5s ease; }
@keyframes cartPulse{
  0%{ transform:scale(1); }
  50%{ transform:scale(1.35); }
  100%{ transform:scale(1); }
}

/* --- Icon link refinement (panier hover) ------------------------------ */
.icon-link--cart .bi{ transition:transform .25s ease; }
.icon-link--cart:hover .bi{ transform:translateY(-2px); }

/* --- Nav top : underline animé ---------------------------------------- */
.nav-top-list > li > a{ position:relative; }
.nav-top-list > li > a::before{
  content:""; position:absolute; left:0; right:0; bottom:-2px;
  height:1px; background:var(--c-ink);
  transform-origin:left center;
  transform:scaleX(0); transition:transform .35s cubic-bezier(.2,.6,.2,1);
}
.nav-top-list > li > a:hover::before,
.nav-top-list > li > a.active::before{ transform:scaleX(1); }
/* Override l'ancien border-bottom (qui faisait le même job en moins fluide) */
.nav-top-list > li > a:hover,
.nav-top-list > li > a.active{ border-bottom-color:transparent !important; }

/* --- Mega menu : entrée animée + footer link ------------------------- */
.nav-top-list > li > .mega{
  display:block;
  opacity:0; visibility:hidden;
  transform:translateY(8px);
  transition:opacity .25s ease, transform .25s ease, visibility .25s;
  pointer-events:none;
}
.nav-top-list > li.has-children:hover > .mega,
.nav-top-list > li.has-children:focus-within > .mega{
  opacity:1; visibility:visible; transform:none;
  pointer-events:auto;
}
.mega-cats .mega-cat{ transition:background .15s ease, transform .25s ease; }
.mega-cats .mega-cat:hover{ transform:translateY(-2px); }
.mega-cats .mega-cat__img{ transition:border-color .2s ease, box-shadow .25s ease; }
.mega-cats .mega-cat:hover .mega-cat__img{
  border-color:var(--c-gold);
  box-shadow:0 6px 18px rgba(179,142,93,.18);
}
.mega-foot{
  margin-top:1rem; padding-top:1rem; border-top:1px solid var(--c-line);
  display:flex; justify-content:flex-end;
}
.mega-foot__link{
  display:inline-flex; align-items:center; gap:.5rem;
  color:var(--c-ink); text-decoration:none;
  font-family:var(--ff-eyebrow); font-size:.72rem;
  letter-spacing:.14em; text-transform:uppercase;
  transition:color .2s ease, gap .2s ease;
}
.mega-foot__link:hover{ color:var(--c-accent-dk); gap:.75rem; text-decoration:none; }

/* --- Header socials (à côté du panier) — affinement ------------------- */
.header-socials{
  display:inline-flex !important;
  align-items:center;
  gap:.25rem;
  padding:0;
  border:0;
  margin-right:.25rem;
}
.header-socials a{
  width:36px; height:36px; border-radius:50%;
  color:var(--c-ink-2);
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  background:transparent;
  transition:background .2s ease, color .2s ease, transform .25s ease;
}
.header-socials a:hover{ background:var(--c-bg); color:var(--c-ink); transform:translateY(-1px); }
.header-socials a > svg,
.header-socials a > i.bi{
  font-size:1.05rem !important;
  line-height:1 !important;
  display:inline-block !important;
  width:18px; height:18px;
  pointer-events:none;
}
.header-socials a > .hs-letter{ font-size:.95rem; font-weight:600; line-height:1; }
/* Mobile : la version `bar-info-mobile` reprend les socials sous le header */
@media (max-width:767.98px){ .header-socials{ display:none !important; } }

/* --- Bar info mobile : refinement (pas de border-bottom — duplication) - */
.bar-info-mobile{
  font-size:.74rem;
  letter-spacing:.02em;
}
.bar-info-mobile .mobile-phone .bi,
.bar-info-mobile .mobile-free .bi{ font-size:.85rem; }

/* --- Offcanvas nav mobile — éditorial premium ------------------------ */
.nav-mobile{ width:88vw; max-width:380px; background:#fff; }
.nav-mobile .offcanvas-header{
  border-bottom:1px solid var(--c-line);
  padding:1rem 1.25rem;
  display:flex; align-items:center; justify-content:space-between;
}
.nav-mobile .offcanvas-body{ padding:1.25rem; }
.nav-mobile__list{ display:flex; flex-direction:column; gap:.15rem; }
.nav-mobile__link{
  display:flex; align-items:center; gap:.85rem;
  padding:.85rem 1rem;
  color:var(--c-ink); text-decoration:none;
  border-radius:var(--r-md);
  font-weight:500; font-size:.95rem;
  transition:background .15s ease, color .15s ease;
}
.nav-mobile__link:hover{ background:var(--c-bg); color:var(--c-accent-dk); }
.nav-mobile__link .bi{ font-size:1.1rem; color:var(--c-ink-2); width:24px; text-align:center; }
.nav-mobile__eyebrow{
  font-family:var(--ff-eyebrow);
  font-size:.7rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--c-ink-2);
  margin:1.25rem 0 .6rem;
  padding-inline:1rem;
  font-weight:600;
}
.nav-mobile__cats{ display:flex; flex-direction:column; gap:.25rem; }
.nav-mobile__cat{
  display:grid; grid-template-columns:auto 1fr auto;
  align-items:center; gap:.85rem;
  padding:.7rem 1rem;
  background:transparent;
  color:var(--c-ink); text-decoration:none;
  border-radius:var(--r-md);
  transition:background .15s ease;
}
.nav-mobile__cat:hover{ background:var(--c-bg); color:var(--c-ink); text-decoration:none; }
.nav-mobile__cat-img{
  width:38px; height:38px; border-radius:50%;
  border:1px solid var(--c-line); overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  background:#fff;
  flex-shrink:0;
}
.nav-mobile__cat-img img{ width:100%; height:100%; object-fit:cover; }
.nav-mobile__cat-label{ font-size:.92rem; font-weight:500; line-height:1.2; }
.nav-mobile__cat .bi{ color:var(--c-muted); font-size:.85rem; }

/* Mobile : compact mode — réduit la place du header au scroll */
@media (max-width:991.98px){
  .site-header.is-scrolled .bar-main > .container-xxl{ padding-block:.45rem; min-height:56px; }
  .site-header.is-scrolled .brand-logo{ height:30px !important; max-height:30px !important; }
  .site-header.is-scrolled .bar-info-mobile{ display:none !important; }
}

/* ============================================================================
   FOOTER PREMIUM LAYER — DA-Aylan
   Filet or accent · Benefits cards · Logo glow · Socials premium
   Back-to-top + WhatsApp flottants
   ============================================================================ */

/* --- Filet accent or au-dessus du footer ------------------------------- */
.site-footer{ position:relative; }
.footer-accent{
  display:block; width:100%; height:3px;
  background:linear-gradient(90deg, transparent 0%, var(--c-gold) 30%, var(--c-gold) 70%, transparent 100%);
  opacity:.7;
}

/* --- Footer benefits — cards plus tactiles --------------------------- */
.footer-benefits{ padding:1.6rem 0 !important; gap:.75rem !important; align-items:stretch; }
.footer-benefit{
  padding:.85rem .95rem !important;
  border-radius:var(--r-md);
  background:rgba(255,255,255,.025);
  border:1px solid rgba(255,255,255,.05);
  transition:transform .28s cubic-bezier(.2,.6,.2,1), background .25s ease, border-color .25s ease;
  align-items:center;
}
.footer-benefit:hover{
  transform:translateY(-2px);
  background:rgba(179,142,93,.08);
  border-color:rgba(179,142,93,.25);
}
/* Icône en cercle — supplante la règle legacy `.footer-benefit i` */
.footer-benefit > i.bi{
  flex-shrink:0;
  width:42px !important;
  height:42px !important;
  border-radius:50%;
  background:rgba(179,142,93,.14);
  border:1px solid rgba(179,142,93,.3);
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  font-size:1.15rem !important;
  line-height:1 !important;
  color:var(--c-gold);
  margin:0;
  padding:0;
}
.footer-benefit > div{ min-width:0; flex:1; }

/* --- Footer brand col : ornement subtil ------------------------------- */
.footer-brand-col{ position:relative; }
.footer-brand-col::before{
  content:""; position:absolute;
  top:-30px; left:-30px; width:180px; height:180px; border-radius:50%;
  background:radial-gradient(circle, rgba(179,142,93,.12), transparent 65%);
  pointer-events:none;
}
.footer-logo{ filter:drop-shadow(0 4px 18px rgba(179,142,93,.18)); }
/* Force le logo store en blanc pur quand on utilise la version coloriée */
.footer-logo.footer-logo--white{
  filter:brightness(0) invert(1) drop-shadow(0 4px 18px rgba(179,142,93,.18));
  -webkit-filter:brightness(0) invert(1) drop-shadow(0 4px 18px rgba(179,142,93,.18));
}

/* --- Footer socials : bordure améliorée -------------------------------- */
.footer-socials{ margin-top:1.25rem; gap:.5rem !important; display:flex; flex-wrap:wrap; }
.footer-socials a{
  width:40px !important; height:40px !important;
  font-size:1.05rem !important;
  background:rgba(255,255,255,.04) !important;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  transition:transform .25s ease, background .25s ease, border-color .25s ease, color .25s ease !important;
}
.footer-socials a:hover{ transform:translateY(-3px) rotate(-3deg) !important; }
.footer-socials a > svg,
.footer-socials a > i.bi{
  width:18px; height:18px;
  font-size:1.05rem !important;
  line-height:1 !important;
  display:inline-block !important;
  pointer-events:none;
}
/* Topbar socials : SVG 14px adaptés à la barre fine */
.topbar-socials a > svg,
.topbar-socials a > i.bi{
  width:14px; height:14px;
  font-size:.85rem !important;
  line-height:1 !important;
  display:inline-block !important;
}
/* Mobile bar-info-mobile socials : SVG 14px */
.bar-info-mobile .mobile-socials a > svg,
.bar-info-mobile .mobile-socials a > i.bi{
  width:14px; height:14px;
  font-size:.8rem !important;
  line-height:1 !important;
  display:inline-block !important;
}

/* --- Footer bottom : grille lisible ----------------------------------- */
.footer-bottom__row{
  display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center;
  gap:1rem .75rem;
}
.footer-bottom__copy{
  color:#a9a194; font-size:.78rem; letter-spacing:.04em;
}
.footer-payments{
  display:inline-flex; align-items:center; flex-wrap:wrap; gap:.45rem;
}
.footer-payments__label{
  font-family:var(--ff-eyebrow);
  font-size:.66rem; letter-spacing:.16em; text-transform:uppercase;
  color:#8c8472;
  margin-right:.25rem;
}
.pay-badge{
  transition:background .2s ease, border-color .2s ease, transform .2s ease;
}
.pay-badge:hover{
  background:rgba(179,142,93,.14);
  border-color:rgba(179,142,93,.4);
  transform:translateY(-1px);
}

/* --- Back to top flottant -------------------------------------------- */
.back-to-top{
  position:fixed; right:1rem; bottom:5rem;
  width:46px; height:46px; border-radius:50%;
  background:var(--c-ink); color:#fff; border:0;
  display:none; align-items:center; justify-content:center;
  z-index:1050; cursor:pointer;
  box-shadow:0 8px 24px rgba(30,27,22,.18);
  transition:opacity .25s ease, transform .25s ease, background .25s ease;
  opacity:0; transform:translateY(8px);
}
.back-to-top.is-visible{ display:inline-flex; opacity:1; transform:none; }
.back-to-top:hover{ background:var(--c-accent-dk); transform:translateY(-3px); }
.back-to-top:focus-visible{ outline:3px solid var(--c-gold); outline-offset:3px; }

/* --- WhatsApp flottant ------------------------------------------------ */
.float-wa{
  position:fixed; right:1rem; bottom:1rem;
  background:#25D366; color:#fff;
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.7rem 1rem .7rem .85rem;
  border-radius:999px;
  text-decoration:none;
  box-shadow:0 10px 30px rgba(37,211,102,.45), 0 4px 10px rgba(0,0,0,.15);
  z-index:1051;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.float-wa:hover{
  background:#1FB855; color:#fff; text-decoration:none;
  transform:translateY(-2px);
  box-shadow:0 14px 36px rgba(37,211,102,.55), 0 4px 12px rgba(0,0,0,.18);
}
.float-wa .bi{ font-size:1.4rem; line-height:1; }
.float-wa__label{
  font-family:var(--ff-eyebrow);
  font-size:.74rem; letter-spacing:.1em; text-transform:uppercase;
  font-weight:600;
  white-space:nowrap;
}
.float-wa__pulse{
  position:absolute; inset:0; border-radius:999px;
  background:#25D366; opacity:.55; pointer-events:none;
  animation:waPulse 2.4s cubic-bezier(.2,.6,.2,1) infinite;
}
@keyframes waPulse{
  0%{ transform:scale(1); opacity:.55; }
  70%{ transform:scale(1.4); opacity:0; }
  100%{ transform:scale(1.4); opacity:0; }
}
@media (prefers-reduced-motion: reduce){
  .float-wa__pulse{ animation:none; opacity:0; }
}

/* Quand back-to-top est visible, on évite le chevauchement avec WA mobile */
@media (max-width:767.98px){
  .float-wa{ padding:.6rem .85rem; }
  .float-wa__label{ display:none; }
  .float-wa{ width:50px; height:50px; padding:0; justify-content:center; }
  .float-wa .bi{ font-size:1.5rem; }
  .back-to-top{ width:42px; height:42px; right:1rem; bottom:4.5rem; }
}

/* --- Texte muted secondaire ------------------------------------------- */
.text-muted-2{ color:#8c8472 !important; }

/* ============================================================================
   PRODUCT CARD PREMIUM LAYER — DA-Aylan
   Hover overlay quickadd · Wish toujours visible · Badges éditoriaux
   Animation success ajout · Image cross-fade
   ============================================================================ */

.product-card{ position:relative; isolation:isolate; }
.product-card__img{ position:relative; }
.product-card__img-link{ display:block; width:100%; height:100%; }
.product-card__img-link img{ width:100%; height:100%; object-fit:cover; }

/* Badges container : empile haut-gauche */
.product-card__badges{
  position:absolute; top:.85rem; left:.85rem;
  display:flex; flex-direction:column; gap:.35rem;
  z-index:2;
  pointer-events:none;
}
.product-card__badges .badge-chip{
  position:static !important; pointer-events:auto;
  display:inline-flex; align-items:center; gap:.3rem;
  font-family:var(--ff-eyebrow); font-weight:600;
  font-size:.62rem; letter-spacing:.14em; text-transform:uppercase;
  padding:.3rem .55rem;
  background:#fff; color:var(--c-ink); border:1px solid var(--c-line);
  border-radius:0;
  backdrop-filter:none;
  box-shadow:0 2px 6px rgba(30,27,22,.04);
  transition:transform .25s ease;
}
.product-card:hover .product-card__badges .badge-chip{ transform:translateY(-1px); }
.badge-chip--promo{ background:var(--c-danger) !important; color:#fff !important; border-color:var(--c-danger) !important; }
.badge-chip--top{ background:var(--c-gold) !important; color:#1E1B16 !important; border-color:var(--c-gold) !important; }
.badge-chip--top .bi{ font-size:.68rem; }
.badge-chip--new{ background:var(--c-ink) !important; color:#fff !important; border-color:var(--c-ink) !important; }

/* Wish bouton — toujours visible top-right */
.product-card .wish-btn{
  position:absolute; top:.75rem; right:.75rem; bottom:auto; left:auto;
  width:36px; height:36px; border-radius:50%;
  background:rgba(255,255,255,.92);
  border:1px solid var(--c-line);
  color:var(--c-ink-2);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; opacity:1;
  transition:transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
  z-index:2;
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}
.product-card .wish-btn:hover{
  background:#fff; color:var(--c-danger); border-color:var(--c-danger);
  transform:scale(1.06);
}
.product-card .wish-btn.active{
  background:var(--c-danger); color:#fff; border-color:var(--c-danger);
}
.product-card .wish-btn.active .bi{ animation:wishPop .35s cubic-bezier(.2,.6,.2,1); }
@keyframes wishPop{
  0%{ transform:scale(.7); }
  50%{ transform:scale(1.25); }
  100%{ transform:scale(1); }
}

/* Quickadd overlay (desktop hover) */
.product-card__quickadd{
  position:absolute; left:0; right:0; bottom:0;
  margin:0; padding:.65rem;
  background:linear-gradient(180deg, rgba(30,27,22,0) 0%, rgba(30,27,22,.85) 90%);
  z-index:2;
  opacity:0; transform:translateY(8px);
  transition:opacity .25s ease, transform .3s ease;
  pointer-events:none;
}
.product-card:hover .product-card__quickadd,
.product-card:focus-within .product-card__quickadd{
  opacity:1; transform:none; pointer-events:auto;
}
.product-card__quickadd-btn{
  width:100%;
  background:#fff; color:var(--c-ink); border:0; border-radius:999px;
  padding:.6rem 1rem;
  display:inline-flex; align-items:center; justify-content:center; gap:.45rem;
  font-family:var(--ff-eyebrow);
  font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; font-weight:600;
  cursor:pointer;
  transition:background .2s ease, color .2s ease, transform .2s ease;
}
.product-card__quickadd-btn:hover{
  background:var(--c-ink); color:#fff; transform:translateY(-1px);
}
.product-card__quickadd-btn .bi{ font-size:.95rem; }

/* État loading + success */
.product-card__quickadd-btn.is-loading{ pointer-events:none; opacity:.85; }
.product-card__quickadd-btn.is-loading .bi{ animation:spin .8s linear infinite; }
.product-card__quickadd-btn.is-loading .bi::before{ content:"\F130"; } /* arrow-clockwise */
.product-card__quickadd-btn.is-success{
  background:var(--c-success); color:#fff;
}
.product-card__quickadd-btn.is-success .bi::before{ content:"\F26B"; } /* check-lg */
@keyframes spin{ to{ transform:rotate(360deg); } }

/* Sur mobile (pas de hover) : on cache l'overlay et on garde le CTA en bas */
@media (max-width:767.98px){
  .product-card__quickadd{ display:none; }
  .product-card .wish-btn{ width:32px; height:32px; top:.55rem; right:.55rem; }
  .product-card__badges{ top:.55rem; left:.55rem; gap:.25rem; }
  .product-card__badges .badge-chip{ padding:.22rem .45rem; font-size:.58rem; }
}
@media (min-width:768px){
  /* Sur desktop : on cache le CTA mobile (sécurité) */
  .product-card__cta-mobile{ display:none !important; }
}

/* Hover image plus marqué */
.product-card__img-link img{ transition:transform .8s cubic-bezier(.2,.6,.2,1), filter .35s ease; }
.product-card:hover .product-card__img-link img{ transform:scale(1.05); filter:brightness(.96); }

/* Title link : transition couleur */
.product-card__title a{ transition:color .2s ease; }

/* Stars (utilisées dans la card et ailleurs) — taille uniforme */
.product-card .stars i{ color:var(--c-gold); font-size:.78rem; }
.product-card .stars i.bi-star{ color:var(--c-line); }

/* Focus visible accessibilité */
.product-card .wish-btn:focus-visible,
.product-card__quickadd-btn:focus-visible{
  outline:2px solid var(--c-gold); outline-offset:3px;
}

/* ============================================================================
   PRODUCT DETAIL PREMIUM LAYER — DA-Aylan
   Prices · ETA · Qty pill · CTA principal · Trustlets · Sticky bar premium
   ============================================================================ */

/* --- Prices block --------------------------------------------------- */
.pd-prices{ display:flex; align-items:baseline; flex-wrap:wrap; gap:.65rem; margin-block:1rem; }
.price-save{
  background:var(--c-danger); color:#fff;
  font-family:var(--ff-eyebrow);
  font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600;
  padding:.25rem .55rem; border-radius:0;
  display:inline-flex; align-items:center;
}
.price-save--anim{ animation:priceSavePulse 2.6s ease-in-out infinite; }
@keyframes priceSavePulse{
  0%,100%{ box-shadow:0 0 0 0 rgba(178,74,58,.45); }
  50%{ box-shadow:0 0 0 8px rgba(178,74,58,0); }
}
@media (prefers-reduced-motion: reduce){ .price-save--anim{ animation:none; } }
.price-saved-amt{
  flex-basis:100%;
  font-size:.85rem; color:var(--c-success);
  font-weight:500;
  margin-top:.2rem;
}
.price-saved-amt strong{ color:var(--c-success); font-weight:600; }

/* --- Delivery ETA pill block --------------------------------------- */
.pd-eta{
  margin-top:1rem;
  background:linear-gradient(180deg, #FFFCF7 0%, var(--c-bg) 100%);
  border:1px solid var(--c-line);
  border-left:3px solid var(--c-gold);
  border-radius:var(--r-md);
  padding:.85rem 1rem;
  display:flex; flex-direction:column; gap:.45rem;
}
.pd-eta__line{
  display:flex; align-items:center; gap:.6rem;
  font-size:.88rem; color:var(--c-ink-2); line-height:1.3;
}
.pd-eta__line .bi{
  flex-shrink:0;
  width:30px; height:30px; border-radius:50%;
  background:rgba(179,142,93,.14);
  color:var(--c-accent-dk);
  display:inline-flex; align-items:center; justify-content:center;
  font-size:.95rem;
}
.pd-eta__line strong{ color:var(--c-ink); font-weight:600; }

/* --- Qty pill ------------------------------------------------------- */
.pd-qty-row--premium{
  display:flex; gap:.75rem; align-items:stretch;
  flex-wrap:wrap;
}
.qty-pill{
  display:inline-flex; align-items:center;
  background:#fff; border:1px solid var(--c-line);
  border-radius:999px;
  padding:.25rem; gap:.15rem;
  height:50px;
  flex-shrink:0;
}
.qty-pill__btn{
  width:38px; height:38px; border-radius:50%;
  background:transparent; border:0; color:var(--c-ink);
  display:inline-flex; align-items:center; justify-content:center;
  cursor:pointer;
  transition:background .15s ease, color .15s ease;
}
.qty-pill__btn:hover{ background:var(--c-bg); }
.qty-pill__btn:active{ transform:scale(.95); }
.qty-pill__input{
  width:42px; padding:0; border:0; background:transparent;
  text-align:center; font-weight:600; font-family:var(--ff-eyebrow);
  font-size:.95rem; letter-spacing:.04em;
  color:var(--c-ink);
  -moz-appearance:textfield;
}
.qty-pill__input::-webkit-outer-spin-button,
.qty-pill__input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.qty-pill__input:focus{ outline:0; }

/* --- CTA principal -------------------------------------------------- */
.pd-cta--main{
  flex:1; min-width:200px; height:50px;
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  font-family:var(--ff-eyebrow);
  font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; font-weight:600;
  padding:.9rem 1.5rem;
  background:var(--c-ink); color:#fff; border:0;
  position:relative; overflow:hidden;
  transition:background .25s ease, transform .25s ease, box-shadow .25s ease;
}
.pd-cta--main:hover{
  background:var(--c-accent-dk); color:#fff;
  transform:translateY(-1px);
  box-shadow:0 10px 22px rgba(30,27,22,.22);
}
.pd-cta--main:active{ transform:translateY(0); }
.pd-cta--main::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,.18) 50%, transparent 70%);
  transform:translateX(-100%);
  transition:transform .6s ease;
}
.pd-cta--main:hover::before{ transform:translateX(100%); }
.pd-cta__icon{
  display:inline-flex; align-items:center; justify-content:center;
  font-size:1.05rem; transition:transform .25s ease;
}
.pd-cta--main:hover .pd-cta__icon{ transform:rotate(-8deg) scale(1.05); }

.pd-buynow{
  height:46px;
  font-family:var(--ff-eyebrow);
  font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; font-weight:600;
}

/* --- Trustlets sous le CTA (réassurance compacte) ------------------- */
.pd-trustlets{
  list-style:none; margin:1rem 0 0; padding:.85rem .5rem;
  display:flex; flex-wrap:wrap; gap:.5rem 1rem;
  border-top:1px solid var(--c-line);
  border-bottom:1px solid var(--c-line);
  font-size:.78rem; color:var(--c-ink-2);
}
.pd-trustlets li{ display:inline-flex; align-items:center; gap:.4rem; }
.pd-trustlets .bi{ color:var(--c-success); font-size:.95rem; }

/* --- Sticky bar mobile premium ------------------------------------- */
.pd-sticky-bar.pd-sticky-bar--premium{
  display:none;
  position:fixed; left:0; right:0; bottom:0;
  background:rgba(255,255,255,.97);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  border-top:1px solid var(--c-line);
  padding:.6rem .85rem;
  z-index:1045;
  align-items:center; gap:.7rem;
  box-shadow:0 -8px 24px rgba(30,27,22,.08);
}
.pd-sticky-bar.is-visible{ display:flex; }
.pd-sticky-thumb{
  flex-shrink:0; width:46px; height:46px; border-radius:var(--r-md);
  overflow:hidden; background:var(--c-bg);
  border:1px solid var(--c-line);
}
.pd-sticky-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.pd-sticky-info{ flex:1; min-width:0; }
.pd-sticky-name{
  font-family:var(--ff-display); font-weight:500;
  font-size:.85rem; line-height:1.2; color:var(--c-ink);
}
.pd-sticky-prices{ display:flex; align-items:baseline; gap:.4rem; margin-top:.1rem; }
.pd-sticky-price{
  font-family:var(--ff-eyebrow); font-weight:600; font-size:.88rem;
  letter-spacing:.02em; color:var(--c-ink);
}
.pd-sticky-old{
  font-size:.75rem; color:var(--c-muted); text-decoration:line-through;
}
.pd-sticky-cta{
  flex-shrink:0;
  height:42px; padding:0 1.1rem;
  font-family:var(--ff-eyebrow);
  font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600;
  display:inline-flex; align-items:center; gap:.4rem;
}
.pd-sticky-cta .bi{ font-size:.95rem; }
@media (max-width:380px){
  .pd-sticky-thumb{ width:40px; height:40px; }
  .pd-sticky-cta{ padding:0 .85rem; font-size:.68rem; }
}

/* --- Gallery zoom transitions polished ---------------------------- */
#pdMain{ transition:transform .35s cubic-bezier(.2,.6,.2,1); cursor:zoom-in; }
#pdMainWrap.zoomed #pdMain{ transform:scale(1.7); cursor:zoom-out; }

/* --- pd-share : refinement -------------------------------------- */
.pd-share{ display:flex; align-items:center; gap:.5rem; margin-top:1.25rem; padding-top:1rem; border-top:1px solid var(--c-line); }
.pd-share a, .pd-share button{
  width:36px; height:36px; border-radius:50%;
  border:1px solid var(--c-line); background:#fff; color:var(--c-ink-2);
  display:inline-flex; align-items:center; justify-content:center;
  cursor:pointer; text-decoration:none;
  transition:background .2s ease, color .2s ease, border-color .2s ease, transform .25s ease;
}
.pd-share a:hover, .pd-share button:hover{
  background:var(--c-ink); color:#fff; border-color:var(--c-ink);
  transform:translateY(-2px);
}
.pd-share .bi{ font-size:1rem; }

/* ============================================================================
   HEADER REFINEMENT — Mega menu polish + Search overlay full-width
   ============================================================================ */

/* --- Search clear button (X) ----------------------------------------- */
.search-pill__clear{
  flex-shrink:0;
  width:30px; height:30px; border-radius:50%;
  background:transparent; border:0; color:var(--c-ink-2);
  display:none; align-items:center; justify-content:center;
  cursor:pointer; margin-right:.25rem;
  transition:background .15s ease, color .15s ease;
}
.search-pill__clear[hidden]{ display:none !important; }
.search-pill__clear:not([hidden]){ display:inline-flex; }
.search-pill__clear:hover{ background:var(--c-bg); color:var(--c-ink); }

/* --- Search overlay -------------------------------------------------- */
.search-overlay{
  position:fixed; inset:0;
  display:none; z-index:1060;
  align-items:flex-start; justify-content:center;
}
.search-overlay.is-open{ display:flex; }
.search-overlay[hidden]{ display:none !important; }
.search-overlay__backdrop{
  position:absolute; inset:0;
  background:rgba(20,18,14,.45);
  -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
  opacity:0; transition:opacity .25s ease;
}
.search-overlay.is-open .search-overlay__backdrop{ opacity:1; }
.search-overlay__panel{
  position:relative;
  margin-top:120px; width:min(720px, 92vw);
  background:#fff;
  border:1px solid var(--c-line);
  border-radius:var(--r-md);
  box-shadow:0 24px 60px rgba(30,27,22,.18);
  overflow:hidden;
  opacity:0; transform:translateY(-12px);
  transition:opacity .25s ease, transform .25s ease;
}
.search-overlay.is-open .search-overlay__panel{ opacity:1; transform:none; }

.search-overlay__head{
  display:flex; align-items:center; justify-content:space-between;
  padding:.75rem 1.1rem; border-bottom:1px solid var(--c-line);
  background:var(--c-bg);
}
.search-overlay__eyebrow{
  font-family:var(--ff-eyebrow);
  font-size:.7rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--c-ink-2); font-weight:600;
}
.search-overlay__close{
  width:30px; height:30px; border-radius:50%;
  background:transparent; border:0; color:var(--c-ink-2);
  display:inline-flex; align-items:center; justify-content:center;
  cursor:pointer;
  transition:background .15s ease, color .15s ease;
}
.search-overlay__close:hover{ background:#fff; color:var(--c-ink); }

.search-overlay__body{ max-height:60vh; overflow:auto; }

/* --- État vide --------------------------------------------------------- */
.search-empty{ padding:1.25rem 1.25rem 1rem; }
.search-empty__title{
  font-family:var(--ff-display); font-weight:500;
  font-size:1.1rem; letter-spacing:-.005em;
  margin:.25rem 0 .85rem; color:var(--c-ink);
}
.search-empty__chips{
  display:flex; flex-wrap:wrap; gap:.5rem;
  margin-bottom:1.1rem;
}
.search-chip{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.4rem .75rem .4rem .4rem;
  background:var(--c-bg); border:1px solid var(--c-line);
  border-radius:999px;
  color:var(--c-ink); text-decoration:none;
  font-size:.82rem; font-weight:500;
  transition:background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.search-chip:hover{
  background:var(--c-ink); color:#fff; border-color:var(--c-ink);
  transform:translateY(-1px); text-decoration:none;
}
.search-chip__img{
  width:24px; height:24px; border-radius:50%;
  background:#fff; overflow:hidden;
  display:inline-flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.search-chip__img img{ width:100%; height:100%; object-fit:cover; }

.search-empty__hint{
  display:flex; align-items:center; gap:.55rem;
  padding:.7rem .85rem;
  background:rgba(179,142,93,.08);
  border:1px solid rgba(179,142,93,.22);
  border-radius:var(--r-md);
  font-size:.82rem; color:var(--c-ink-2);
}
.search-empty__hint .bi{ color:var(--c-gold); font-size:1rem; }

/* --- Suggestions list (override des règles globales legacy) ----------- */
.search-overlay .search-suggest{
  position:static !important; left:auto !important; right:auto !important; top:auto !important;
  border:0 !important; border-radius:0 !important; box-shadow:none !important;
  max-height:none !important; overflow:visible !important; display:none !important;
  background:transparent !important;
}
.search-overlay .search-suggest.open{ display:block !important; }
.search-overlay .search-suggest a{
  padding:.7rem 1.1rem;
  border-bottom:1px solid var(--c-line);
  transition:background .15s ease;
  position:relative;
}
.search-overlay .search-suggest a:last-child{ border-bottom:0; }
.search-overlay .search-suggest a:hover,
.search-overlay .search-suggest a.is-active{
  background:var(--c-bg);
}
.search-overlay .search-suggest img{
  width:48px !important; height:48px !important;
  border-radius:var(--r-md) !important;
  object-fit:cover !important;
}
.search-overlay .search-suggest a > span{ display:flex; flex-direction:column; gap:.15rem; min-width:0; flex:1; }
.search-overlay .search-suggest a > span::first-line{ /* */ }
.search-overlay .search-suggest a small{
  color:var(--c-accent-dk);
  font-family:var(--ff-eyebrow); font-weight:600;
  font-size:.78rem; letter-spacing:.04em;
}

/* --- Footer "Voir tous" --------------------------------------------- */
.search-overlay__foot{
  border-top:1px solid var(--c-line);
  background:var(--c-bg);
  padding:.65rem 1.1rem;
}
.search-overlay__seeall{
  display:inline-flex; align-items:center; gap:.5rem;
  color:var(--c-ink); text-decoration:none;
  font-family:var(--ff-eyebrow); font-size:.72rem;
  letter-spacing:.16em; text-transform:uppercase; font-weight:600;
  transition:gap .2s ease, color .2s ease;
}
.search-overlay__seeall:hover{ color:var(--c-accent-dk); gap:.75rem; text-decoration:none; }

/* Body scroll lock when overlay open */
body.search-locked{ overflow:hidden; }

/* --- Mega menu : polish supplémentaire ------------------------------- */
.nav-top-list > li > .mega{
  /* Largeur élargie + grille en 5 cols pour donner plus d'air */
  width:960px;
}
.mega-grid{ grid-template-columns:repeat(5, 1fr) !important; gap:1rem; }
@media (max-width:1199.98px){
  .nav-top-list > li > .mega{ width:780px; }
  .mega-grid{ grid-template-columns:repeat(4, 1fr) !important; }
}
.mega-cats .mega-cat{
  padding:.85rem .5rem !important;
  position:relative;
}
.mega-cats .mega-cat__img{
  width:72px; height:72px;
  transition:transform .35s cubic-bezier(.2,.6,.2,1);
}
.mega-cats .mega-cat:hover .mega-cat__img{ transform:scale(1.06); }
.mega-cats .mega-cat__label{
  font-family:var(--ff-display); font-weight:500;
  font-size:.88rem; letter-spacing:-.005em;
  margin-top:.45rem;
}
.mega-cats .mega-cat::after{
  content:""; position:absolute; left:50%; bottom:-6px;
  width:0; height:1px; background:var(--c-gold);
  transform:translateX(-50%);
  transition:width .3s ease;
}
.mega-cats .mega-cat:hover::after{ width:32px; }

/* --- Mobile : search overlay adapté ---------------------------------- */
@media (max-width:991.98px){
  .search-overlay__panel{ margin-top:80px; width:94vw; }
  .search-overlay__body{ max-height:70vh; }
}


