/* =========================================================
   LPBDM THEME — Design System
   PrestaShop 8 · Thème custom
   ========================================================= */

/* ── Google Fonts ── */
@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600;700&family=Cinzel+Decorative:wght@400;700&family=Crimson+Text:ital,wght@0,400;0,600;1,400&family=JetBrains+Mono:wght@400;500&display=swap');

/* =========================================================
   TOKENS — MODE SOMBRE (défaut)
   ========================================================= */
:root {
  /* Palette minuit */
  --lp-ink-950: #04040f;
  --lp-ink-900: #08081a;
  --lp-ink-850: #0c0c20;
  --lp-ink-800: #101028;
  --lp-ink-700: #161638;
  --lp-ink-600: #1e1e48;
  --lp-ink-500: #2a2e50;
  --lp-ink-400: #3a3f62;
  --lp-ink-300: #5c6485;

  /* Or */
  --lp-gold-600: #8b6820;
  --lp-gold-500: #c9a24a;
  --lp-gold-400: #d8b768;
  --lp-gold-300: #f0dba0;
  --lp-gold-glow: rgba(201,162,74,.20);

  /* Neutres */
  --lp-parchment: #ede8f5;
  --lp-muted: #9a8fba;
  --lp-line: rgba(201,162,74,.16);

  /* Accents */
  --lp-success: #6ec49a;
  --lp-alert: #e8a76e;
  --lp-red: #8c2b2b;

  /* Typographie */
  --lp-font-display: "Cinzel Decorative","Cinzel",Georgia,serif;
  --lp-font-title:   "Cinzel",Georgia,serif;
  --lp-font-serif:   "Crimson Text","EB Garamond",Georgia,serif;
  --lp-font-mono:    "JetBrains Mono",ui-monospace,monospace;

  /* Spacing 8pt */
  --lp-s-1: 4px;  --lp-s-2: 8px;  --lp-s-3: 12px; --lp-s-4: 16px;
  --lp-s-5: 24px; --lp-s-6: 32px; --lp-s-7: 48px; --lp-s-8: 64px;
  --lp-s-9: 80px; --lp-s-10: 96px;

  /* Rayons */
  --lp-r-sm: 2px; --lp-r-md: 4px; --lp-r-lg: 8px; --lp-r-pill: 999px;

  /* Ombres */
  --lp-shadow-sm: 0 1px 2px rgba(0,0,0,.45);
  --lp-shadow-md: 0 8px 28px rgba(0,0,0,.55);
  --lp-shadow-lg: 0 24px 64px rgba(0,0,0,.65);
  --lp-glow-gold: 0 0 0 1px rgba(201,162,74,.30), 0 12px 40px rgba(201,162,74,.14);

  --lp-maxw: 1300px;
  --lp-header-h: 88px;

  /* Aliases */
  --bg:          var(--lp-ink-900);
  --bg-raised:   var(--lp-ink-850);
  --bg-float:    var(--lp-ink-800);
  --bg-card:     var(--lp-ink-700);
  --bg-card-hi:  var(--lp-ink-600);
  --gold:        var(--lp-gold-500);
  --gold-lt:     var(--lp-gold-400);
  --gold-pale:   var(--lp-gold-300);
  --gold-dk:     var(--lp-gold-600);
  --gold-dim:    var(--lp-gold-glow);
  --text:        var(--lp-parchment);
  --text-2:      var(--lp-muted);
  --text-lt:     #edeaf8;
  --text-mute:   #4e4670;
  --border:      var(--lp-line);
  --border-2:    rgba(201,162,74,.30);
  --ft-display:  var(--lp-font-display);
  --ft-title:    var(--lp-font-title);
  --ft-body:     var(--lp-font-serif);
  --ft-ui:       var(--lp-font-mono);
  --r-sm: 2px; --r-md: 4px; --r-pill: 999px;
  --sh-glow: 0 4px 24px rgba(201,162,74,.32);
  --focus: 0 0 0 2px var(--gold), 0 0 0 4px rgba(201,162,74,.22);
}

/* =========================================================
   TOKENS — MODE CLAIR
   ========================================================= */
html[data-theme="light"] {
  --lp-ink-950: #beb5a0;
  --lp-ink-900: #ddd5be;
  --lp-ink-850: #d4ccb8;
  --lp-ink-800: #cac2ac;
  --lp-ink-700: #e6deca;
  --lp-ink-600: #ede5cf;
  --lp-ink-500: #b8ac8a;
  --lp-ink-400: #9a8a6a;
  --lp-ink-300: #7a6a50;
  --lp-gold-600: #321e04;
  --lp-gold-500: #6e4e00;
  --lp-gold-400: #8c6408;
  --lp-gold-300: #42290a;
  --lp-parchment: #342818;
  --lp-muted: #5c4c30;
  --lp-line: rgba(110,78,0,.15);
}

/* =========================================================
   RESET & BASE
   ========================================================= */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { scroll-behavior: smooth; }

body {
  background: var(--lp-ink-900);
  color: var(--lp-parchment);
  font-family: var(--lp-font-serif);
  font-size: 18px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  background-image:
    radial-gradient(1400px 600px at 80% -10%, rgba(201,162,74,.07), transparent 60%),
    radial-gradient(900px 500px at -5% 30%, rgba(80,60,160,.07), transparent 60%);
  background-attachment: fixed;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border: 0; background: none; color: inherit; }
input, select, textarea { font: inherit; }

/* ── Container ── */
.lp-container {
  max-width: var(--lp-maxw);
  margin: 0 auto;
  padding: 0 var(--lp-s-6);
}

/* ── Typographie ── */
h1, h2, h3, h4 {
  font-family: var(--lp-font-title);
  font-weight: 500;
  letter-spacing: .02em;
  margin: 0;
}
h1 { font-size: clamp(2.4rem, 4.5vw, 4rem); line-height: 1.06; }
h2 { font-size: clamp(1.7rem, 2.6vw, 2.6rem); line-height: 1.12; }
h3 { font-size: 1.2rem; line-height: 1.25; }
p  { margin: 0 0 var(--lp-s-4); }

.lp-eyebrow {
  font-family: var(--lp-font-mono);
  font-size: .72rem;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
  margin: 0 0 var(--lp-s-3);
}

/* ── Section title ── */
.lp-section-title {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--lp-s-5);
  margin: 0 0 var(--lp-s-7);
}
.lp-section-title__text { display: flex; flex-direction: column; gap: var(--lp-s-2); }
.lp-section-title h2 { display: flex; align-items: center; gap: var(--lp-s-5); }
.lp-section-title h2::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, var(--lp-gold-500), transparent);
  opacity: .45;
  min-width: 40px;
}

/* ── Liens or ── */
.lp-link-gold {
  font-family: var(--lp-font-mono);
  font-size: .72rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
  display: inline-flex;
  align-items: center;
  gap: var(--lp-s-2);
  border-bottom: 1px solid transparent;
  padding-bottom: 2px;
  transition: border-color .2s, color .2s;
}
.lp-link-gold:hover { border-color: var(--lp-gold-500); color: var(--lp-gold-400); }

/* =========================================================
   BOUTONS
   ========================================================= */
.lp-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--lp-s-2);
  padding: 14px 26px;
  font-family: var(--lp-font-title);
  font-size: .8rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  border-radius: var(--lp-r-sm);
  transition: transform .2s, background .2s, color .2s, box-shadow .2s;
  cursor: pointer;
  border: 0;
}
.lp-btn--primary {
  background: var(--lp-gold-500);
  color: var(--lp-ink-900);
}
.lp-btn--primary:hover {
  background: var(--lp-gold-400);
  transform: translateY(-1px);
  box-shadow: var(--lp-shadow-sm);
}
.lp-btn--ghost {
  background: transparent;
  color: var(--lp-parchment);
  border: 1px solid rgba(237,232,245,.22);
}
.lp-btn--ghost:hover {
  border-color: var(--lp-gold-500);
  color: var(--lp-gold-400);
}
.lp-btn--sm { padding: 9px 18px; font-size: .7rem; }

/* =========================================================
   BADGES
   ========================================================= */
.lp-badge {
  font-family: var(--lp-font-mono);
  font-size: .58rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: var(--lp-r-sm);
  border: 1px solid transparent;
}
.lp-badge--new    { background: rgba(201,162,74,.15); color: var(--lp-gold-400); border-color: rgba(201,162,74,.30); }
.lp-badge--best   { background: rgba(201,162,74,.22); color: var(--lp-gold-300); border-color: rgba(201,162,74,.40); }
.lp-badge--level  { background: rgba(124,77,204,.15); color: #b89cf0; border-color: rgba(124,77,204,.30); }
.lp-badge--format { background: rgba(201,162,74,.15); color: var(--lp-gold-400); border-color: rgba(201,162,74,.30); }
.lp-badge--promo  { background: rgba(140,43,43,.25);  color: #f0a0a0; border-color: rgba(140,43,43,.40); }

/* =========================================================
   GRILLE DE CATÉGORIES (sous-catégories — Boutique / Atelier)
   ========================================================= */
.lp-cat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--lp-s-4);
  list-style: none;
  margin: 0;
  padding: 0;
}
.lp-collection-card {
  position: relative;
  overflow: hidden;
  display: block;
  min-height: 220px;
  border: 1px solid var(--lp-line);
  border-radius: var(--lp-r-md);
  background: var(--lp-ink-700);
  padding: var(--lp-s-6);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  transition: transform .3s, border-color .3s, box-shadow .3s;
}
.lp-collection-card:hover {
  transform: translateY(-3px);
  border-color: var(--lp-gold-500);
  box-shadow: var(--lp-shadow-md);
}
.lp-collection-card__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-size: cover;
  background-position: center;
}
.lp-collection-card__bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(4,4,15,.85) 0%, rgba(4,4,15,.45) 50%, rgba(4,4,15,.2) 100%);
}
.lp-collection-card > * { position: relative; z-index: 1; }
/* Ces cartes ont toujours un fond photo + dégradé sombre, quel que soit le thème :
   on fige leurs couleurs de texte pour éviter le texte foncé-sur-foncé en mode clair. */
.lp-collection-card h3 {
  font-family: var(--lp-font-title);
  font-weight: 500;
  letter-spacing: .06em;
  font-size: clamp(1.05rem, 1.6vw, 1.4rem);
  margin: 0 0 var(--lp-s-2);
  color: #ede8f5;
}
.lp-collection-card p {
  font-size: .88rem;
  color: #9a8fba;
  margin: 0 0 var(--lp-s-3);
  max-width: 40ch;
}
.lp-collection-card .lp-link-gold { color: #c9a24a; }
.lp-collection-card .lp-link-gold:hover { color: #d8b768; }
@media (max-width: 1100px) { .lp-cat-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 720px)  { .lp-cat-grid { grid-template-columns: 1fr; } }

/* =========================================================
   SECTIONS
   ========================================================= */
.lp-section { padding: var(--lp-s-9) 0; }
.lp-section--alt { background: var(--lp-ink-850); }

/* =========================================================
   TOPBAR
   ========================================================= */
.lp-utility {
  background: var(--lp-ink-800);
  border-bottom: 1px solid var(--lp-line);
  padding: var(--lp-s-2) 0;
  font-family: var(--lp-font-mono);
  font-size: .62rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--lp-muted);
}
.lp-utility__inner {
  max-width: var(--lp-maxw);
  margin: 0 auto;
  padding: 0 var(--lp-s-6);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--lp-s-5);
}
.lp-utility__left { display: flex; gap: var(--lp-s-5); }
.lp-utility__right { display: flex; gap: var(--lp-s-4); }
.lp-utility__right a { color: var(--lp-muted); transition: color .2s; }
.lp-utility__right a:hover { color: var(--lp-gold-400); }

/* =========================================================
   HEADER
   ========================================================= */
.lp-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(8,8,26,.92);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--lp-line);
  height: var(--lp-header-h);
}
html[data-theme="light"] .lp-header { background: rgba(221,213,190,.95); }

.lp-header__inner {
  max-width: var(--lp-maxw);
  margin: 0 auto;
  padding: 0 var(--lp-s-6);
  height: 100%;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: var(--lp-s-6);
}

/* Logo — centré comme la maquette */
.lp-logo {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  order: 2;
  justify-self: center;
}
.lp-logo__img { height: 64px; width: auto; display: block; }
@media (max-width: 720px) { .lp-logo__img { height: 44px; } }

/* Bandeau promo doré */
.lp-announce {
  background: linear-gradient(90deg, var(--lp-gold-600), var(--lp-gold-400), var(--lp-gold-600));
  color: var(--lp-ink-900);
  text-align: center;
  padding: 6px var(--lp-s-4);
  font-family: var(--lp-font-mono);
  font-size: .62rem;
  letter-spacing: .18em;
  text-transform: uppercase;
}

/* Nav */
.lp-nav {
  display: flex;
  align-items: center;
  gap: var(--lp-s-6);
  order: 1;
  justify-self: start;
}
.lp-nav > a, .lp-megamenu-wrap > a {
  font-family: var(--lp-font-title);
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--lp-parchment);
  padding: var(--lp-s-2) 0;
  border-bottom: 1px solid transparent;
  transition: color .2s, border-color .2s;
}
.lp-nav > a:hover, .lp-megamenu-wrap > a:hover {
  color: var(--lp-gold-400);
  border-color: var(--lp-gold-500);
}

/* Méga menu */
.lp-megamenu-wrap { position: relative; }
.lp-megamenu {
  display: none;
  position: absolute;
  left: 0;
  top: 100%;
  transform: translateY(6px);
  min-width: 760px;
  background: var(--lp-ink-800);
  border: 1px solid var(--lp-line);
  border-top: 2px solid var(--lp-gold-500);
  box-shadow: var(--lp-shadow-lg);
  padding: var(--lp-s-6);
  grid-template-columns: repeat(3, 1fr);
  gap: var(--lp-s-6);
}
html[data-theme="light"] .lp-megamenu { background: var(--lp-ink-700); }
.lp-megamenu-wrap:hover .lp-megamenu,
.lp-megamenu-wrap:focus-within .lp-megamenu { display: grid; }
.lp-megamenu h4 {
  font-family: var(--lp-font-mono);
  font-size: .68rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
  margin: 0 0 var(--lp-s-3);
  padding-bottom: var(--lp-s-2);
  border-bottom: 1px solid var(--lp-line);
}
.lp-megamenu ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.lp-megamenu li a {
  font-family: var(--lp-font-serif);
  font-size: .95rem;
  letter-spacing: 0;
  text-transform: none;
  color: var(--lp-muted);
  display: block;
  transition: color .15s, padding-left .15s;
}
.lp-megamenu li a:hover { color: var(--lp-gold-400); padding-left: 4px; }

/* Actions header */
.lp-header__actions {
  display: flex;
  align-items: center;
  gap: var(--lp-s-3);
  flex-shrink: 0;
  order: 3;
  justify-self: end;
}
.lp-icon-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  color: var(--lp-parchment);
  transition: background .2s, color .2s;
  position: relative;
}
.lp-icon-btn:hover { background: rgba(201,162,74,.12); color: var(--lp-gold-400); }

.lp-count {
  position: absolute;
  top: -4px;
  right: -4px;
  background: var(--lp-gold-500);
  color: var(--lp-ink-900);
  font-family: var(--lp-font-mono);
  font-size: .55rem;
  font-weight: 700;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.lp-search {
  display: flex;
  align-items: center;
  gap: var(--lp-s-2);
  padding: 8px 14px;
  background: var(--lp-ink-700);
  border: 1px solid var(--lp-line);
  border-radius: var(--lp-r-pill);
  cursor: pointer;
  color: var(--lp-muted);
  transition: border-color .2s, background .2s;
}
.lp-search:hover { border-color: rgba(201,162,74,.35); background: var(--lp-ink-600); }

/* Hamburger */
.lp-hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  padding: 8px;
  cursor: pointer;
}
.lp-hamburger__line {
  width: 20px;
  height: 1.5px;
  background: var(--lp-parchment);
  display: block;
  transition: transform .25s, opacity .25s;
}

/* =========================================================
   OVERLAY RECHERCHE
   ========================================================= */
.lp-search-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 500;
  background: rgba(4,4,15,.88);
  backdrop-filter: blur(12px);
  align-items: flex-start;
  justify-content: center;
  padding-top: 100px;
}
.lp-search-overlay.is-open { display: flex; }
.lp-search-overlay__box {
  width: min(680px, 90vw);
}
.lp-search-overlay__bar {
  display: flex;
  align-items: center;
  gap: var(--lp-s-3);
  background: var(--lp-ink-700);
  border: 1px solid var(--lp-line);
  border-radius: var(--lp-r-md);
  padding: var(--lp-s-4) var(--lp-s-5);
}
.lp-search-overlay__input {
  flex: 1;
  background: transparent;
  border: 0;
  outline: 0;
  color: var(--lp-parchment);
  font-family: var(--lp-font-serif);
  font-size: 1.1rem;
}
.lp-search-overlay__input::placeholder { color: var(--lp-muted); }
.lp-search-overlay__close {
  font-size: 1.4rem;
  color: var(--lp-muted);
  line-height: 1;
  transition: color .2s;
}
.lp-search-overlay__close:hover { color: var(--lp-parchment); }
.lp-search-overlay__hint {
  font-family: var(--lp-font-mono);
  font-size: .62rem;
  letter-spacing: .12em;
  color: var(--lp-muted);
  text-align: center;
  margin-top: var(--lp-s-3);
}

/* =========================================================
   NAV MOBILE
   ========================================================= */
.lp-mobile-nav {
  position: fixed;
  inset: 0;
  z-index: 200;
  pointer-events: none;
}
.lp-mobile-nav.is-open { pointer-events: auto; }
.lp-mobile-nav__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(4,4,15,.7);
  opacity: 0;
  transition: opacity .3s;
}
.lp-mobile-nav.is-open .lp-mobile-nav__backdrop { opacity: 1; }
.lp-mobile-nav__panel {
  position: absolute;
  top: 0;
  right: 0;
  width: min(320px, 85vw);
  height: 100%;
  background: var(--lp-ink-800);
  border-left: 1px solid var(--lp-line);
  transform: translateX(100%);
  transition: transform .3s cubic-bezier(.4,0,.2,1);
  display: flex;
  flex-direction: column;
}
.lp-mobile-nav.is-open .lp-mobile-nav__panel { transform: translateX(0); }
.lp-mobile-nav__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--lp-s-5) var(--lp-s-5);
  border-bottom: 1px solid var(--lp-line);
}
.lp-mobile-nav__brand {
  font-family: var(--lp-font-title);
  font-size: .8rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
}
.lp-mobile-nav__close {
  font-size: 1.4rem;
  color: var(--lp-muted);
  transition: color .2s;
}
.lp-mobile-nav__close:hover { color: var(--lp-parchment); }
.lp-mobile-nav__links {
  list-style: none;
  margin: 0;
  padding: var(--lp-s-4) 0;
  flex: 1;
  overflow-y: auto;
}
.lp-mobile-nav__link {
  display: block;
  padding: var(--lp-s-4) var(--lp-s-5);
  font-family: var(--lp-font-title);
  font-size: .9rem;
  letter-spacing: .08em;
  color: var(--lp-parchment);
  border-bottom: 1px solid rgba(201,162,74,.08);
  transition: color .2s, background .2s;
}
.lp-mobile-nav__link:hover { color: var(--lp-gold-400); background: rgba(201,162,74,.05); }
.lp-mobile-nav__footer { padding: var(--lp-s-4) var(--lp-s-5); border-top: 1px solid var(--lp-line); }
.lp-mobile-nav__search-bar {
  display: flex;
  align-items: center;
  gap: var(--lp-s-2);
  background: var(--lp-ink-700);
  border: 1px solid var(--lp-line);
  border-radius: var(--lp-r-pill);
  padding: 10px var(--lp-s-4);
  color: var(--lp-muted);
}
.lp-mobile-nav__search-input {
  flex: 1;
  background: transparent;
  border: 0;
  outline: 0;
  color: var(--lp-parchment);
  font-size: .9rem;
}
.lp-mobile-nav__search-input::placeholder { color: var(--lp-muted); }

/* =========================================================
   TOGGLE THÈME
   ========================================================= */
.lp-theme-toggle {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 300;
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--lp-ink-700);
  border: 1px solid var(--lp-line);
  border-radius: var(--lp-r-pill);
  padding: 14px 24px 14px 14px;
  font-family: var(--lp-font-mono);
  font-size: .82rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--lp-muted);
  cursor: pointer;
  box-shadow: var(--lp-shadow-md);
  transition: background .25s, border-color .25s, color .25s;
  user-select: none;
}
.lp-theme-toggle:hover { border-color: var(--lp-gold-500); color: var(--lp-gold-400); }
.lp-toggle-track {
  width: 58px;
  height: 32px;
  background: var(--lp-ink-850);
  border-radius: var(--lp-r-pill);
  border: 1px solid var(--lp-line);
  position: relative;
  flex-shrink: 0;
  transition: background .25s;
}
html[data-theme="light"] .lp-toggle-track { background: var(--lp-gold-500); border-color: var(--lp-gold-500); }
.lp-toggle-thumb {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 26px;
  height: 26px;
  background: var(--lp-gold-500);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  line-height: 1;
  transition: transform .25s cubic-bezier(.4,0,.2,1), background .25s;
}
html[data-theme="light"] .lp-toggle-thumb { transform: translateX(28px); background: #fff; }

/* =========================================================
   FOOTER
   ========================================================= */
.lp-footer {
  background: var(--lp-ink-850);
  border-top: 1px solid var(--lp-line);
  padding: var(--lp-s-9) 0 var(--lp-s-6);
}
html[data-theme="light"] .lp-footer { background: var(--lp-ink-850); }

.lp-footer__grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr;
  gap: var(--lp-s-7);
  margin-bottom: var(--lp-s-8);
}
.lp-footer h4 {
  font-family: var(--lp-font-mono);
  font-size: .65rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
  margin: 0 0 var(--lp-s-4);
}
.lp-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.lp-footer ul a { font-size: .9rem; color: var(--lp-muted); transition: color .2s; }
.lp-footer ul a:hover { color: var(--lp-gold-400); }
.lp-footer__brand p { font-size: .9rem; color: var(--lp-muted); margin-bottom: var(--lp-s-5); }
.lp-socials { display: flex; gap: var(--lp-s-3); }
.lp-socials a {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .1em;
  color: var(--lp-muted);
  background: var(--lp-ink-700);
  border: 1px solid var(--lp-line);
  padding: 6px 10px;
  border-radius: var(--lp-r-sm);
  transition: color .2s, border-color .2s;
}
.lp-socials a:hover { color: var(--lp-gold-400); border-color: rgba(201,162,74,.35); }
.lp-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: var(--lp-s-5);
  border-top: 1px solid var(--lp-line);
  font-family: var(--lp-font-mono);
  font-size: .62rem;
  letter-spacing: .1em;
  color: var(--lp-muted);
}
.lp-footer__payments { display: flex; gap: var(--lp-s-2); }
.lp-footer__payments span {
  background: var(--lp-ink-700);
  border: 1px solid var(--lp-line);
  padding: 4px 8px;
  border-radius: var(--lp-r-sm);
  font-size: .58rem;
}

/* =========================================================
   CARTES PRODUIT (composant partagé)
   ========================================================= */
.lp-products {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--lp-s-4);
}

.product-card {
  background: var(--lp-ink-700);
  border: 1px solid var(--lp-line);
  border-radius: var(--lp-r-md);
  overflow: hidden;
  transition: border-color .25s, transform .25s, box-shadow .25s;
  display: flex;
  flex-direction: column;
}
.product-card:hover {
  border-color: rgba(201,162,74,.35);
  transform: translateY(-3px);
  box-shadow: var(--lp-shadow-md);
}

.product-card__cover {
  position: relative;
  aspect-ratio: 3/4;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.product-card__img { width: 100%; height: 100%; object-fit: cover; }
.product-card__badges {
  position: absolute;
  top: var(--lp-s-3);
  left: var(--lp-s-3);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.product-card__wishlist {
  position: absolute;
  top: var(--lp-s-3);
  right: var(--lp-s-3);
  font-size: 1rem;
  color: var(--lp-muted);
  transition: color .2s;
}
.product-card__wishlist:hover { color: var(--lp-gold-500); }
.product-card__quick {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: var(--lp-s-3);
  background: linear-gradient(to top, rgba(8,8,26,.95), transparent);
  transform: translateY(100%);
  transition: transform .25s;
}
.product-card:hover .product-card__quick { transform: translateY(0); }

.product-card__body {
  padding: var(--lp-s-4);
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.product-card__kicker {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
  margin: 0;
}
.product-card__title {
  font-family: var(--lp-font-title);
  font-size: .9rem;
  letter-spacing: .02em;
  color: var(--lp-parchment);
  line-height: 1.3;
  margin: 0;
}
.product-card__meta {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  color: var(--lp-muted);
  margin: 0;
}
.product-card__footer {
  margin-top: auto;
  padding-top: var(--lp-s-3);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.product-card__price {
  font-family: var(--lp-font-title);
  font-size: 1rem;
  color: var(--lp-gold-400);
}
.product-card__cta {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--lp-muted);
  transition: color .2s;
}
.product-card__cta:hover { color: var(--lp-gold-400); }

/* Carte featured (best-seller) */
.product-card--featured { grid-column: span 1; }
@media (min-width: 900px) {
  .product-card--featured .product-card__cover { aspect-ratio: 3/5; }
}

/* =========================================================
   FONDS TEXTURAUX (cartes sans image)
   ========================================================= */
.product-card__cover-ornament {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.product-card__cover-ornament::before {
  content: "✦";
  font-size: 5rem;
  opacity: .06;
  color: var(--lp-gold-500);
}
.product-card__cover--marbre {
  background:
    radial-gradient(ellipse at 30% 20%, rgba(201,162,74,.12) 0%, transparent 60%),
    radial-gradient(ellipse at 70% 80%, rgba(80,60,160,.10) 0%, transparent 60%),
    linear-gradient(135deg, var(--lp-ink-800) 0%, var(--lp-ink-700) 100%);
}
.product-card__cover--velours {
  background:
    radial-gradient(ellipse at 50% 30%, rgba(124,77,204,.15) 0%, transparent 55%),
    linear-gradient(160deg, var(--lp-ink-700) 0%, #0e0e2a 100%);
}
.product-card__cover--brume {
  background:
    radial-gradient(ellipse at 60% 40%, rgba(201,162,74,.08) 0%, transparent 50%),
    radial-gradient(ellipse at 20% 70%, rgba(58,90,64,.12) 0%, transparent 50%),
    linear-gradient(145deg, var(--lp-ink-800) 0%, var(--lp-ink-700) 100%);
}

/* =========================================================
   BREADCRUMB
   ========================================================= */
.lp-breadcrumb {
  display: flex;
  align-items: center;
  gap: var(--lp-s-2);
  list-style: none;
  margin: var(--lp-s-5) 0;
  padding: 0;
  font-family: var(--lp-font-mono);
  font-size: .62rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--lp-muted);
}
.lp-breadcrumb a { color: var(--lp-muted); transition: color .2s; }
.lp-breadcrumb a:hover { color: var(--lp-gold-400); }
.lp-breadcrumb li[aria-current="page"] { color: var(--lp-parchment); }
.lp-bc-sep { color: var(--lp-ink-400); }

/* =========================================================
   FILTRES — ps_facetedsearch override (O-03)
   ========================================================= */
.lp-filters {
  display: flex;
  flex-direction: column;
  gap: 0;
  position: sticky;
  top: calc(var(--lp-header-h) + var(--lp-s-5));
}

.lp-filters__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: var(--lp-s-4);
  margin-bottom: var(--lp-s-3);
  border-bottom: 1px solid var(--lp-line);
}
.lp-filters__title {
  font-family: var(--lp-font-mono);
  font-size: .7rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
}
.lp-filters__reset {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--lp-muted);
  transition: color .2s;
  cursor: pointer;
  background: none;
  border: 0;
  padding: 0;
}
.lp-filters__reset:hover { color: var(--lp-gold-400); }

/* Groupe */
.lp-filter-group {
  border-bottom: 1px solid var(--lp-line);
  padding: var(--lp-s-4) 0;
}
.lp-filter-group__title {
  font-family: var(--lp-font-mono);
  font-size: .65rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--lp-parchment);
  margin: 0 0 var(--lp-s-3);
}
.lp-filter-group__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background: none;
  border: 0;
  cursor: pointer;
  color: var(--lp-parchment);
  padding: 0;
}
.lp-filter-chevron { transition: transform .2s; }
.lp-filter-group__toggle[aria-expanded="false"] .lp-filter-chevron { transform: rotate(-90deg); }

/* Liste filtres */
.lp-filter-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.lp-filter-item {
  display: flex;
  align-items: center;
  gap: var(--lp-s-2);
}
.lp-filter-input {
  appearance: none;
  -webkit-appearance: none;
  width: 14px;
  height: 14px;
  border: 1px solid var(--lp-ink-400);
  border-radius: 2px;
  background: transparent;
  flex-shrink: 0;
  cursor: pointer;
  transition: border-color .2s, background .2s;
  position: relative;
}
.lp-filter-input[type="radio"] { border-radius: 50%; }
.lp-filter-input:checked {
  background: var(--lp-gold-500);
  border-color: var(--lp-gold-500);
}
.lp-filter-input:checked::after {
  content: "";
  position: absolute;
  inset: 3px;
  background: var(--lp-ink-900);
  border-radius: 1px;
}
.lp-filter-input[type="radio"]:checked::after { border-radius: 50%; }

.lp-filter-label {
  font-family: var(--lp-font-serif);
  font-size: .88rem;
  color: var(--lp-muted);
  cursor: pointer;
  transition: color .2s;
  flex: 1;
}
.lp-filter-label a { color: inherit; display: flex; justify-content: space-between; align-items: center; }
.lp-filter-label:hover, .lp-filter-label.is-active { color: var(--lp-parchment); }
.lp-filter-count {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  color: var(--lp-ink-400);
  margin-left: 4px;
}

/* Slider prix */
.lp-price-range { padding: var(--lp-s-2) 0; }
.lp-price-range__label {
  font-family: var(--lp-font-mono);
  font-size: .65rem;
  color: var(--lp-muted);
  margin-bottom: var(--lp-s-3);
}
.lp-price-range__slider {
  height: 3px;
  background: var(--lp-ink-500);
  border-radius: 2px;
  position: relative;
  margin: var(--lp-s-3) 8px;
}

/* Dropdown */
.lp-filter-dropdown { position: relative; }
.lp-filter-dropdown__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 8px var(--lp-s-3);
  background: var(--lp-ink-700);
  border: 1px solid var(--lp-line);
  border-radius: var(--lp-r-md);
  font-family: var(--lp-font-serif);
  font-size: .88rem;
  color: var(--lp-parchment);
  cursor: pointer;
  transition: border-color .2s;
}
.lp-filter-dropdown__trigger:hover { border-color: rgba(201,162,74,.35); }
.lp-filter-dropdown__trigger[aria-expanded="true"] { border-color: var(--lp-gold-500); }
.lp-filter-dropdown__menu {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  background: var(--lp-ink-700);
  border: 1px solid var(--lp-line);
  border-radius: var(--lp-r-md);
  box-shadow: var(--lp-shadow-md);
  z-index: 10;
  list-style: none;
  margin: 0;
  padding: var(--lp-s-2) 0;
  max-height: 220px;
  overflow-y: auto;
}
.lp-filter-dropdown__trigger[aria-expanded="true"] + .lp-filter-dropdown__menu { display: block; }
.lp-filter-dropdown__menu li a {
  display: block;
  padding: 8px var(--lp-s-3);
  font-family: var(--lp-font-serif);
  font-size: .88rem;
  color: var(--lp-muted);
  transition: color .15s, background .15s;
}
.lp-filter-dropdown__menu li a:hover { color: var(--lp-parchment); background: rgba(201,162,74,.06); }

/* Filtres actifs — chips desktop (au-dessus grille) */
.lp-active-filters-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--lp-s-2);
  margin-bottom: var(--lp-s-4);
  min-height: 0;
}
.lp-active-filters-bar--hidden { display: none; }
.lp-active-filters-bar__label {
  font-family: var(--lp-font-mono);
  font-size: .62rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--lp-muted);
}
.lp-active-filter {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  background: rgba(201,162,74,.10);
  border: 1px solid rgba(201,162,74,.25);
  border-radius: var(--lp-r-pill);
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .1em;
  color: var(--lp-gold-400);
  cursor: pointer;
  transition: background .2s, border-color .2s;
}
.lp-active-filter:hover { background: rgba(201,162,74,.18); border-color: var(--lp-gold-500); }
.lp-active-filter span { font-size: .75rem; line-height: 1; }

/* Mobile — barre filtres + drawer */
.lp-filter-mobile-bar {
  display: none;
  gap: var(--lp-s-3);
  margin-bottom: var(--lp-s-5);
}
.lp-filter-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--lp-s-2);
  padding: 10px var(--lp-s-4);
  background: var(--lp-ink-700);
  border: 1px solid var(--lp-line);
  border-radius: var(--lp-r-md);
  font-family: var(--lp-font-mono);
  font-size: .65rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--lp-parchment);
  cursor: pointer;
  transition: border-color .2s;
}
.lp-filter-btn:hover { border-color: rgba(201,162,74,.35); }

.lp-filter-drawer {
  position: fixed;
  inset: 0;
  z-index: 400;
  pointer-events: none;
}
.lp-filter-drawer.is-open { pointer-events: auto; }
.lp-filter-drawer__overlay {
  position: absolute;
  inset: 0;
  background: rgba(4,4,15,.75);
  opacity: 0;
  transition: opacity .3s;
}
.lp-filter-drawer.is-open .lp-filter-drawer__overlay { opacity: 1; }
.lp-filter-drawer__panel {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: min(340px, 90vw);
  background: var(--lp-ink-800);
  border-right: 1px solid var(--lp-line);
  display: flex;
  flex-direction: column;
  transform: translateX(-100%);
  transition: transform .3s cubic-bezier(.4,0,.2,1);
}
.lp-filter-drawer.is-open .lp-filter-drawer__panel { transform: translateX(0); }
.lp-filter-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--lp-s-5);
  border-bottom: 1px solid var(--lp-line);
}
.lp-filter-drawer__title {
  font-family: var(--lp-font-mono);
  font-size: .7rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
}
.lp-filter-drawer__close {
  font-size: 1.4rem;
  color: var(--lp-muted);
  cursor: pointer;
  transition: color .2s;
}
.lp-filter-drawer__close:hover { color: var(--lp-parchment); }
.lp-filter-drawer__content {
  flex: 1;
  overflow-y: auto;
  padding: 0 var(--lp-s-5);
}
.lp-filter-drawer__footer {
  display: flex;
  gap: var(--lp-s-3);
  padding: var(--lp-s-4) var(--lp-s-5);
  border-top: 1px solid var(--lp-line);
}

@media (max-width: 900px) {
  .lp-filters { display: none; }
  .lp-filter-mobile-bar { display: flex; }
}

/* =========================================================
   NEWSLETTER — ps_emailsubscription override (O-04)
   ========================================================= */
.lp-newsletter {
  position: relative;
  overflow: hidden;
  background: var(--lp-ink-800);
  border-top: 1px solid var(--lp-line);
  border-bottom: 1px solid var(--lp-line);
  padding: clamp(56px, 8vw, 100px) 0;
}
.lp-newsletter__ornament {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 80% at 90% 50%, rgba(201,162,74,.07) 0%, transparent 70%),
    radial-gradient(ellipse 40% 60% at 10% 50%, rgba(201,162,74,.04) 0%, transparent 70%);
  pointer-events: none;
}
.lp-newsletter__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 80px);
  align-items: center;
}
.lp-newsletter__title {
  font-family: var(--lp-font-display);
  font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  line-height: 1.15;
  color: var(--lp-parchment);
  margin: var(--lp-s-3) 0 var(--lp-s-4);
}
.lp-newsletter__desc {
  font-family: var(--lp-font-serif);
  font-size: 1rem;
  color: var(--lp-muted);
  line-height: 1.7;
  margin-bottom: var(--lp-s-5);
}
.lp-newsletter__perks {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--lp-s-2);
}
.lp-newsletter__perks li {
  font-family: var(--lp-font-mono);
  font-size: .65rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--lp-muted);
  display: flex;
  align-items: center;
  gap: var(--lp-s-2);
}
.lp-newsletter__perks li::before {
  content: "";
  display: inline-block;
  width: 16px;
  height: 1px;
  background: var(--lp-gold-500);
  flex-shrink: 0;
}
.lp-newsletter__form-wrap {
  display: flex;
  flex-direction: column;
  gap: var(--lp-s-4);
}
.lp-newsletter__feedback {
  display: flex;
  align-items: center;
  gap: var(--lp-s-2);
  padding: 12px var(--lp-s-4);
  border-radius: var(--lp-r-md);
  font-family: var(--lp-font-mono);
  font-size: .65rem;
  letter-spacing: .1em;
}
.lp-newsletter__feedback--ok {
  background: rgba(74,201,113,.08);
  border: 1px solid rgba(74,201,113,.25);
  color: #4ac971;
}
.lp-newsletter__feedback--error {
  background: rgba(201,74,74,.08);
  border: 1px solid rgba(201,74,74,.25);
  color: #e57373;
}
.lp-newsletter__label {
  display: block;
  font-family: var(--lp-font-mono);
  font-size: .62rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
  margin-bottom: var(--lp-s-2);
}
.lp-newsletter__input-row {
  display: flex;
  gap: var(--lp-s-3);
}
.lp-newsletter__input {
  flex: 1;
  min-width: 0;
  padding: 12px var(--lp-s-4);
  background: var(--lp-ink-700);
  border: 1px solid var(--lp-line);
  border-radius: var(--lp-r-md);
  font-family: var(--lp-font-serif);
  font-size: .95rem;
  color: var(--lp-parchment);
  outline: none;
  transition: border-color .2s, box-shadow .2s;
}
.lp-newsletter__input::placeholder { color: var(--lp-ink-400); }
.lp-newsletter__input:focus {
  border-color: rgba(201,162,74,.5);
  box-shadow: 0 0 0 3px rgba(201,162,74,.1);
}
.lp-newsletter__input:focus:not(:placeholder-shown):valid { border-color: rgba(74,201,113,.4); }
.lp-newsletter__input:focus:not(:placeholder-shown):invalid { border-color: rgba(201,74,74,.4); }
.lp-newsletter__conditions {
  font-family: var(--lp-font-serif);
  font-size: .8rem;
  color: var(--lp-muted);
  line-height: 1.6;
  margin: var(--lp-s-2) 0 0;
}
.lp-newsletter__reassurance {
  display: flex;
  align-items: center;
  gap: var(--lp-s-2);
  font-family: var(--lp-font-mono);
  font-size: .58rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--lp-ink-400);
  margin: var(--lp-s-2) 0 0;
}
@media (max-width: 800px) {
  .lp-newsletter__inner { grid-template-columns: 1fr; }
  .lp-newsletter__input-row { flex-direction: column; }
  .lp-newsletter__input-row .lp-btn { width: 100%; justify-content: center; }
}

/* =========================================================
   AVIS CLIENTS — productcomments override (O-05)
   ========================================================= */

/* Étoiles inline (sous titre produit) */
.lp-review-summary {
  display: flex;
  align-items: center;
  gap: var(--lp-s-3);
  flex-wrap: wrap;
  margin: var(--lp-s-3) 0;
}
.lp-review-stars {
  display: flex;
  align-items: center;
  gap: 3px;
}
.lp-review-star polygon { fill: var(--lp-ink-500); stroke: var(--lp-ink-500); }
.lp-review-star--filled polygon { fill: var(--lp-gold-500); stroke: var(--lp-gold-500); }
.lp-review-grade {
  font-family: var(--lp-font-mono);
  font-size: .65rem;
  color: var(--lp-gold-400);
  margin-left: 4px;
}
.lp-review-count__link {
  font-family: var(--lp-font-mono);
  font-size: .65rem;
  color: var(--lp-muted);
}
.lp-review-count__link:hover { color: var(--lp-parchment); }
.lp-review-sep { color: var(--lp-ink-500); font-size: .7rem; }
.lp-review-write-btn {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--lp-gold-400);
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  transition: color .2s;
}
.lp-review-write-btn:hover { color: var(--lp-gold-300); }
.lp-review-write-btn--first { color: var(--lp-muted); }

/* Section liste avis */
.lp-reviews {
  margin-top: clamp(40px, 6vw, 72px);
  padding-top: clamp(40px, 6vw, 72px);
  border-top: 1px solid var(--lp-line);
}
.lp-reviews__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--lp-s-4);
  margin-bottom: clamp(28px, 4vw, 48px);
}
.lp-reviews__title {
  font-family: var(--lp-font-display);
  font-size: clamp(1.4rem, 2.5vw, 1.9rem);
  color: var(--lp-parchment);
  margin: var(--lp-s-2) 0 0;
}
.lp-reviews__count {
  color: var(--lp-gold-500);
  font-size: .85em;
}

/* Items avis */
.lp-reviews__list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.lp-review-item {
  padding: var(--lp-s-5) 0;
  border-bottom: 1px solid var(--lp-line);
}
.lp-review-item__header {
  display: flex;
  align-items: center;
  gap: var(--lp-s-3);
  margin-bottom: var(--lp-s-3);
  flex-wrap: wrap;
}
.lp-review-item__stars { display: flex; gap: 2px; }
.lp-review-item__title {
  font-family: var(--lp-font-serif);
  font-size: 1rem;
  font-weight: 600;
  color: var(--lp-parchment);
  margin: 0;
}
.lp-review-item__body {
  font-family: var(--lp-font-serif);
  font-size: .95rem;
  color: var(--lp-muted);
  line-height: 1.7;
  margin: 0 0 var(--lp-s-4);
}
.lp-review-item__footer {
  display: flex;
  align-items: center;
  gap: var(--lp-s-4);
  flex-wrap: wrap;
}
.lp-review-item__author {
  font-family: var(--lp-font-mono);
  font-size: .62rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--lp-parchment);
}
.lp-review-item__date {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  color: var(--lp-ink-400);
}
.lp-review-item__actions {
  display: flex;
  align-items: center;
  gap: var(--lp-s-2);
  margin-left: auto;
}
.lp-review-action {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: none;
  border: 0;
  padding: 4px 8px;
  border-radius: var(--lp-r-sm);
  font-family: var(--lp-font-mono);
  font-size: .58rem;
  color: var(--lp-ink-400);
  cursor: pointer;
  transition: color .2s, background .2s;
}
.lp-review-action:hover { color: var(--lp-parchment); background: rgba(255,255,255,.04); }

/* Footer avis (pagination + bouton) */
.lp-reviews__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--lp-s-4);
  padding-top: var(--lp-s-5);
}
.lp-reviews__pagination ul {
  display: flex;
  align-items: center;
  gap: var(--lp-s-1);
  list-style: none;
  margin: 0;
  padding: 0;
}
.lp-reviews__pagination li span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: var(--lp-r-sm);
  font-family: var(--lp-font-mono);
  font-size: .65rem;
  color: var(--lp-muted);
  cursor: pointer;
  transition: color .2s, background .2s;
}
.lp-reviews__pagination li span:hover,
.lp-reviews__pagination li.active span { color: var(--lp-parchment); background: rgba(201,162,74,.12); }

/* Empty state */
#product-comments-list-empty {
  text-align: center;
  padding: clamp(32px, 5vw, 56px) 0;
  font-family: var(--lp-font-serif);
  font-size: 1rem;
  color: var(--lp-muted);
}

/* ── Modal avis ── */
.lp-modal {
  position: fixed;
  inset: 0;
  z-index: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  opacity: 0;
  transition: opacity .25s;
}
.lp-modal.show { pointer-events: auto; opacity: 1; }

/* Modales natives Bootstrap du module avis (alert/confirm) : le thème ne charge pas
   le CSS Bootstrap, donc sans cette règle elles restent affichées en permanence dans
   le flux de la page au lieu d'être cachées par défaut. Bootstrap (via classic-core.js)
   passe en display:block inline quand il les ouvre, ce qui prime sur cette règle. */
.modal.product-comment-modal { display: none; }
.lp-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(4,4,15,.8);
  backdrop-filter: blur(4px);
}
.lp-modal__panel {
  position: relative;
  z-index: 1;
  width: min(640px, 95vw);
  max-height: 92dvh;
  background: var(--lp-ink-800);
  border: 1px solid var(--lp-line);
  border-radius: var(--lp-r-lg);
  box-shadow: var(--lp-shadow-lg);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transform: translateY(16px);
  transition: transform .25s cubic-bezier(.4,0,.2,1);
}
.lp-modal.show .lp-modal__panel { transform: translateY(0); }
.lp-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--lp-s-5);
  border-bottom: 1px solid var(--lp-line);
  flex-shrink: 0;
}
.lp-modal__title {
  font-family: var(--lp-font-display);
  font-size: 1.1rem;
  color: var(--lp-parchment);
  margin: 0;
}
.lp-modal__close {
  background: none;
  border: 0;
  color: var(--lp-muted);
  cursor: pointer;
  padding: 4px;
  border-radius: var(--lp-r-sm);
  transition: color .2s, background .2s;
}
.lp-modal__close:hover { color: var(--lp-parchment); background: rgba(255,255,255,.06); }
.lp-modal__body {
  padding: var(--lp-s-5);
  overflow-y: auto;
  flex: 1;
}

/* Formulaire avis */
.lp-comment-product {
  display: flex;
  align-items: center;
  gap: var(--lp-s-4);
  padding-bottom: var(--lp-s-5);
  margin-bottom: var(--lp-s-5);
  border-bottom: 1px solid var(--lp-line);
}
.lp-comment-product__img {
  width: 64px;
  height: 64px;
  object-fit: cover;
  border-radius: var(--lp-r-sm);
  flex-shrink: 0;
}
.lp-comment-product__name {
  font-family: var(--lp-font-serif);
  font-size: .95rem;
  color: var(--lp-parchment);
  margin: 0 0 4px;
}
.lp-comment-product__desc {
  font-size: .82rem;
  color: var(--lp-muted);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.lp-comment-field { margin-bottom: var(--lp-s-4); }
.lp-comment-label {
  display: block;
  font-family: var(--lp-font-mono);
  font-size: .62rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
  margin-bottom: var(--lp-s-2);
}
.lp-comment-label sup { color: var(--lp-muted); }
.lp-comment-input {
  width: 100%;
  padding: 10px var(--lp-s-4);
  background: var(--lp-ink-700);
  border: 1px solid var(--lp-line);
  border-radius: var(--lp-r-md);
  font-family: var(--lp-font-serif);
  font-size: .93rem;
  color: var(--lp-parchment);
  outline: none;
  transition: border-color .2s;
  box-sizing: border-box;
}
.lp-comment-input:focus { border-color: rgba(201,162,74,.5); }
.lp-comment-textarea { resize: vertical; min-height: 120px; }

/* Picker d'étoiles interactif */
.lp-star-picker {
  display: flex;
  gap: 6px;
  cursor: pointer;
}
.lp-star-pick polygon { fill: var(--lp-ink-500); stroke: var(--lp-ink-500); transition: fill .15s, stroke .15s; }
.lp-star-pick:hover polygon,
.lp-star-pick.is-filled polygon { fill: var(--lp-gold-500); stroke: var(--lp-gold-500); }

.lp-comment-criterions {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--lp-s-3);
  margin-bottom: var(--lp-s-4);
}

.lp-comment-required {
  font-family: var(--lp-font-mono);
  font-size: .58rem;
  color: var(--lp-ink-400);
  margin: 0 0 var(--lp-s-4);
}
.lp-comment-actions {
  display: flex;
  justify-content: flex-end;
  gap: var(--lp-s-3);
}

/* =========================================================
   HERO — M-01 lpbdm_hero (resync maquette 19/08 — mise en page 2 colonnes)
   ========================================================= */
.lp-hero {
  position: relative;
  padding: var(--lp-s-10) 0 var(--lp-s-9);
  overflow: hidden;
  border-bottom: 1px solid var(--lp-line);
  background:
    radial-gradient(ellipse 65% 55% at 12% 45%, rgba(124,77,204,.20) 0%, transparent 55%),
    radial-gradient(ellipse 40% 60% at 88% 55%, rgba(60,30,120,.12) 0%, transparent 50%),
    linear-gradient(160deg, #06060e 0%, #09091f 55%, #080818 100%);
}
html[data-theme="light"] .lp-hero {
  background: linear-gradient(160deg, #e4dac8, #d8d0b8);
}
/* Champ étoilé */
.lp-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    radial-gradient(1px 1px at 8% 18%, rgba(201,162,74,.6) 0%, transparent 100%),
    radial-gradient(1px 1px at 22% 72%, rgba(201,162,74,.4) 0%, transparent 100%),
    radial-gradient(1px 1px at 38% 12%, rgba(255,255,255,.18) 0%, transparent 100%),
    radial-gradient(1.5px 1.5px at 62% 30%, rgba(201,162,74,.45) 0%, transparent 100%),
    radial-gradient(1px 1px at 78% 65%, rgba(255,255,255,.12) 0%, transparent 100%),
    radial-gradient(1px 1px at 91% 15%, rgba(201,162,74,.35) 0%, transparent 100%),
    radial-gradient(1px 1px at 50% 85%, rgba(201,162,74,.28) 0%, transparent 100%);
}
/* Dégradé bas */
.lp-hero::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 140px;
  background: linear-gradient(to top, var(--lp-ink-900) 0%, transparent 100%);
  pointer-events: none;
}

.lp-hero__inner {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: var(--lp-s-8);
  align-items: center;
  position: relative;
  z-index: 1;
}
@media (max-width: 800px) {
  .lp-hero__inner { grid-template-columns: 1fr; }
}

/* Visuel */
.lp-hero__visual { display: flex; align-items: center; justify-content: center; position: relative; }
.lp-hero__visual::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: var(--lp-r-lg);
  background:
    linear-gradient(to right, var(--lp-ink-900) 0%, transparent 18%),
    linear-gradient(to top, var(--lp-ink-900) 0%, transparent 22%),
    linear-gradient(to left, var(--lp-ink-900) 0%, transparent 10%);
  pointer-events: none;
}
.lp-hero__img {
  width: 100%;
  max-width: 560px;
  height: auto;
  display: block;
  border-radius: var(--lp-r-lg);
  object-fit: cover;
  transition: filter .3s;
}

/* Texte */
.lp-hero__brand {
  font-family: var(--lp-font-display);
  font-size: clamp(2.4rem, 4.5vw, 4rem);
  font-weight: 400;
  color: var(--lp-gold-400);
  letter-spacing: .05em;
  line-height: 1.1;
  margin: 0 0 var(--lp-s-4);
}
.lp-hero__kicker {
  font-family: var(--lp-font-mono);
  font-size: .72rem;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
  margin-bottom: var(--lp-s-5);
  display: flex;
  align-items: center;
  gap: var(--lp-s-3);
}
.lp-hero__kicker::before { content: ""; width: 36px; height: 1px; background: var(--lp-gold-500); }
.lp-hero__title {
  font-family: var(--lp-font-display);
  font-weight: 400;
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  line-height: 1.25;
  color: var(--lp-parchment);
  margin: var(--lp-s-3) 0 0;
}
.lp-hero__title em {
  font-family: var(--lp-font-serif);
  font-style: italic;
  color: var(--lp-gold-400);
  font-weight: 400;
}
.lp-hero__subtitle {
  font-family: var(--lp-font-serif);
  font-size: 1.12rem;
  color: var(--lp-muted);
  max-width: 46ch;
  margin: var(--lp-s-5) 0 var(--lp-s-6);
  line-height: 1.7;
}
.lp-hero__ctas { display: flex; gap: var(--lp-s-3); flex-wrap: wrap; }

/* Responsive */
@media (max-width: 600px) {
  .lp-hero__ctas { flex-direction: column; }
  .lp-hero__scroll { display: none; }
}

/* =========================================================
   RÉASSURANCE — M-02 lpbdm_reassurance
   ========================================================= */
.lp-reassurance {
  border-top: 1px solid var(--lp-line);
  border-bottom: 1px solid var(--lp-line);
  background: var(--lp-ink-850);
}
.lp-reassurance__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--lp-s-5);
  padding: var(--lp-s-5) 0;
}
.lp-reassurance__item {
  display: flex;
  align-items: center;
  gap: var(--lp-s-4);
  padding: var(--lp-s-3);
  color: inherit;
  text-decoration: none;
  transition: background .25s;
}
.lp-reassurance__item + .lp-reassurance__item { border-left: 1px solid var(--lp-line); }
.lp-reassurance__item--link:hover {
  background: rgba(201,162,74,.05);
}
.lp-reassurance__item--link:hover .lp-reassurance__icon {
  color: var(--lp-gold-400);
}

.lp-reassurance__icon {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--lp-gold-500);
  border: 1px solid var(--lp-line);
  transition: color .25s;
}

.lp-reassurance__title {
  font-family: var(--lp-font-title);
  font-size: .82rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin: 0 0 2px;
}
.lp-reassurance__text {
  font-size: .86rem;
  color: var(--lp-muted);
  margin: 0;
  line-height: 1.4;
}

@media (max-width: 1100px) {
  .lp-reassurance__grid { grid-template-columns: 1fr 1fr; }
  .lp-reassurance__item:nth-child(3) { border-left: 0; }
}
@media (max-width: 720px) {
  .lp-reassurance__grid { grid-template-columns: 1fr; }
  .lp-reassurance__item + .lp-reassurance__item { border-left: 0; border-top: 1px solid var(--lp-line); }
}

/* =========================================================
   DISCIPLINES — M-03 lpbdm_disciplines
   ========================================================= */

/* Grille CSS (resync maquette 19/08) : 3 colonnes, 2 lignes
   Item 1 (featured) → col 1, span 2 lignes
   Items 2 à 5       → auto-placés dans les 4 cellules restantes (col 2-3 × row 1-2)
*/
.lp-disc-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: var(--lp-s-4);
  min-height: 520px;
}

.lp-disc-card {
  position: relative;
  overflow: hidden;
  border-radius: var(--lp-r-lg);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  text-decoration: none;
  background: var(--lp-ink-700);
}

.lp-disc-card--featured { grid-row: span 2; grid-column: 1; min-height: 100%; }

/* Fond image */
.lp-disc-card__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.lp-disc-card__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .6s cubic-bezier(.4,0,.2,1);
}
.lp-disc-card:hover .lp-disc-card__bg img { transform: scale(1.06); }

/* Fallback sans image : dégradé par position */
.lp-disc-card:nth-child(1) .lp-disc-card__bg { background: radial-gradient(ellipse at 30% 60%, rgba(201,162,74,.18) 0%, transparent 70%), var(--lp-ink-700); }
.lp-disc-card:nth-child(2) .lp-disc-card__bg { background: radial-gradient(ellipse at 70% 30%, rgba(130,100,60,.25) 0%, transparent 70%), var(--lp-ink-700); }
.lp-disc-card:nth-child(3) .lp-disc-card__bg { background: radial-gradient(ellipse at 20% 80%, rgba(80,60,120,.25) 0%, transparent 70%), var(--lp-ink-700); }
.lp-disc-card:nth-child(4) .lp-disc-card__bg { background: radial-gradient(ellipse at 60% 40%, rgba(201,162,74,.12) 0%, transparent 70%), var(--lp-ink-700); }
.lp-disc-card:nth-child(5) .lp-disc-card__bg { background: radial-gradient(ellipse at 40% 70%, rgba(100,80,50,.25) 0%, transparent 70%), var(--lp-ink-700); }
.lp-disc-card:nth-child(6) .lp-disc-card__bg { background: radial-gradient(ellipse at 50% 50%, rgba(60,80,120,.25) 0%, transparent 70%), var(--lp-ink-700); }

.lp-disc-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(4,4,15,.9) 0%, rgba(4,4,15,.2) 60%, transparent 100%);
  transition: opacity .3s;
}
.lp-disc-card:hover .lp-disc-card__overlay { opacity: .85; }

/* Compteur de références */
.lp-disc-card__count {
  font-family: var(--lp-font-mono);
  font-size: .68rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
  margin: 0 0 var(--lp-s-2);
}

/* Texte */
.lp-disc-card__copy {
  position: relative;
  z-index: 1;
  padding: clamp(16px, 3vw, 28px);
}
.lp-disc-card__title {
  font-family: var(--lp-font-display);
  font-size: clamp(1rem, 2vw, 1.5rem);
  color: var(--lp-parchment);
  margin: 0 0 var(--lp-s-2);
  line-height: 1.2;
}
.lp-disc-card--featured .lp-disc-card__title {
  font-size: clamp(1.4rem, 3vw, 2.4rem);
}
.lp-disc-card__subtitle {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(230,220,200,.55);
  margin: 0 0 var(--lp-s-3);
  transition: color .3s;
}
.lp-disc-card__cta {
  display: inline-block;
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--lp-gold-400);
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .3s, transform .3s;
}
.lp-disc-card:hover .lp-disc-card__cta {
  opacity: 1;
  transform: translateY(0);
}
.lp-disc-card:hover .lp-disc-card__subtitle { color: rgba(230,220,200,.8); }

/* Focus accessible */
.lp-disc-card:focus-visible {
  outline: 2px solid var(--lp-gold-500);
  outline-offset: 3px;
}

/* Responsive */
@media (max-width: 900px) {
  .lp-disc-grid {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(4, 220px);
  }
  .lp-disc-card:nth-child(1) { grid-column: 1 / 3; grid-row: 1; }
  .lp-disc-card:nth-child(2) { grid-column: 1; grid-row: 2; }
  .lp-disc-card:nth-child(3) { grid-column: 2; grid-row: 2; }
  .lp-disc-card:nth-child(4) { grid-column: 1; grid-row: 3; }
  .lp-disc-card:nth-child(5) { grid-column: 2; grid-row: 3; }
  .lp-disc-card:nth-child(6) { grid-column: 1 / 3; grid-row: 4; }
}
@media (max-width: 560px) {
  .lp-disc-grid {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(6, 200px);
  }
  .lp-disc-card { grid-column: 1 !important; grid-row: auto !important; }
}

/* =========================================================
   COUP DE CŒUR — M-04 lpbdm_coupdecoeur
   ========================================================= */
.lp-fullbleed {
  background:
    radial-gradient(ellipse 60% 80% at 80% 50%, rgba(124,77,204,.12) 0%, transparent 55%),
    radial-gradient(ellipse 40% 60% at 15% 50%, rgba(201,162,74,.05) 0%, transparent 50%),
    linear-gradient(135deg, #0c0c28 0%, #14123a 50%, #0c0c28 100%);
  border-top: 1px solid var(--lp-line);
  border-bottom: 1px solid var(--lp-line);
  padding: var(--lp-s-10) 0;
  position: relative;
  overflow: hidden;
}
html[data-theme="light"] .lp-fullbleed {
  background: linear-gradient(135deg, var(--lp-ink-800), var(--lp-ink-850));
}

.lp-fullbleed__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--lp-s-8);
  align-items: center;
  position: relative;
  z-index: 1;
}

/* Image à gauche : visuel en col 1, texte en col 2 (défaut mockup = image à droite) */
.lp-fullbleed--img-left .lp-fullbleed__visual  { order: 1; }
.lp-fullbleed--img-left .lp-fullbleed__content { order: 2; }

.lp-fullbleed__eyebrow {
  font-family: var(--lp-font-mono);
  font-size: .68rem;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
  opacity: .75;
  margin-bottom: var(--lp-s-4);
  display: flex;
  align-items: center;
  gap: var(--lp-s-3);
}
.lp-fullbleed__eyebrow::before { content: ""; width: 22px; height: 1px; background: var(--lp-gold-500); }

.lp-fullbleed h2 {
  font-family: var(--lp-font-display);
  font-size: clamp(2rem, 3.5vw, 3.4rem);
  color: var(--lp-gold-300);
  letter-spacing: .03em;
  line-height: 1.06;
  margin: 0 0 var(--lp-s-5);
}

.lp-fullbleed__body {
  font-family: var(--lp-font-serif);
  font-size: 1.05rem;
  color: var(--lp-muted);
  line-height: 1.7;
  font-style: italic;
  margin: 0 0 var(--lp-s-6);
  max-width: 44ch;
}

/* Méta éditoriaux (Format / Pages / Tirage / Prix…) */
.lp-fullbleed__meta { display: flex; gap: var(--lp-s-6); flex-wrap: wrap; margin: 0 0 var(--lp-s-7); }
.lp-fullbleed__meta-item { display: flex; flex-direction: column; gap: 3px; }
.lp-fullbleed__meta-label {
  font-family: var(--lp-font-mono);
  font-size: .62rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--lp-muted);
}
.lp-fullbleed__meta-val {
  font-family: var(--lp-font-title);
  font-size: .92rem;
  color: var(--lp-gold-300);
  letter-spacing: .05em;
}

/* Citation */
.lp-fullbleed__quote {
  margin: 0 0 var(--lp-s-5);
  padding: var(--lp-s-4) var(--lp-s-5);
  border-left: 2px solid var(--lp-gold-500);
  background: rgba(201,162,74,.04);
  border-radius: 0 var(--lp-r-sm) var(--lp-r-sm) 0;
}
.lp-fullbleed__quote p {
  font-family: var(--lp-font-serif);
  font-style: italic;
  font-size: clamp(.9rem, 1.1vw, 1rem);
  line-height: 1.65;
  color: var(--lp-parchment);
  margin: 0 0 var(--lp-s-2);
}
.lp-fullbleed__quote-author {
  font-family: var(--lp-font-mono);
  font-size: .58rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
}

.lp-fullbleed__ctas { display: flex; align-items: center; gap: var(--lp-s-4); flex-wrap: wrap; }
.lp-fullbleed__product-link {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--lp-muted);
  transition: color .2s;
}
.lp-fullbleed__product-link:hover { color: var(--lp-gold-400); }

/* ── Visuel : carte-livre ── */
.lp-fullbleed__visual { display: flex; align-items: center; justify-content: center; position: relative; }
.lp-fullbleed__book {
  width: 260px;
  background: linear-gradient(140deg, var(--lp-ink-700) 0%, #1c1c50 100%);
  border: 1px solid var(--lp-line);
  aspect-ratio: 3/4;
  position: relative;
  overflow: hidden;
  box-shadow: var(--lp-shadow-lg), var(--lp-glow-gold);
  border-radius: var(--lp-r-md);
  display: flex;
  align-items: center;
  justify-content: center;
  transform: rotate(-2deg);
}
.lp-fullbleed__book-spine {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 8px;
  background: linear-gradient(180deg, var(--lp-gold-600), var(--lp-gold-500), var(--lp-gold-600));
  border-radius: var(--lp-r-sm) 0 0 var(--lp-r-sm);
  z-index: 1;
}
.lp-fullbleed__book-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.lp-fullbleed__book-fallback {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--lp-s-4);
  padding: var(--lp-s-6);
  text-align: center;
}
.lp-fullbleed__book-star { font-size: 2.4rem; color: rgba(201,162,74,.35); font-family: serif; }
.lp-fullbleed__book-title {
  font-family: var(--lp-font-title);
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #f0dba0;
  line-height: 1.5;
  margin: 0;
}
.lp-fullbleed__shadow {
  position: absolute;
  bottom: -18px;
  width: 240px;
  height: 28px;
  background: rgba(0,0,0,.5);
  filter: blur(14px);
  border-radius: 50%;
}

/* Badge prix flottant (mode produit) */
.lp-fullbleed__price-badge {
  position: absolute;
  bottom: var(--lp-s-5);
  right: calc(50% - 130px + var(--lp-s-4));
  padding: 10px 20px;
  background: var(--lp-ink-900);
  border: 1px solid rgba(201,162,74,.35);
  border-radius: var(--lp-r-pill);
  font-family: var(--lp-font-display);
  font-size: 1.3rem;
  color: var(--lp-gold-400);
  backdrop-filter: blur(8px);
  z-index: 2;
}

/* Responsive */
@media (max-width: 860px) {
  .lp-fullbleed__inner { grid-template-columns: 1fr; }
  .lp-fullbleed__visual { display: none; }
}

/* =========================================================
   PRESTATIONS — M-05 lpbdm_prestations
   ========================================================= */
.lp-prest-section {
  background: var(--lp-ink-900);
  position: relative;
}
.lp-prest-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 80% 60% at 50% 0%, rgba(201,162,74,.05) 0%, transparent 65%);
  pointer-events: none;
}

/* En-tête */
.lp-prest-header {
  display: flex;
  align-items: flex-end;
  gap: var(--lp-s-6);
  margin-bottom: clamp(40px, 5vw, 64px);
}
.lp-prest-header__text { flex: 0 0 auto; max-width: 560px; }
.lp-prest-title {
  font-family: var(--lp-font-display);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  color: var(--lp-parchment);
  margin: var(--lp-s-3) 0 var(--lp-s-3);
}
.lp-prest-intro {
  font-family: var(--lp-font-serif);
  font-size: 1rem;
  line-height: 1.7;
  color: var(--lp-muted);
  margin: 0;
}
.lp-prest-header__rule {
  flex: 1;
  height: 1px;
  background: linear-gradient(to right, var(--lp-line), transparent);
  margin-bottom: 8px;
}

/* Grille cartes */
.lp-prest-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--lp-s-4);
}

/* Carte */
.lp-prest-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(24px, 3.5vw, 40px);
  background: var(--lp-ink-800);
  border: 1px solid var(--lp-line);
  border-radius: var(--lp-r-lg);
  overflow: hidden;
  transition: border-color .3s, transform .3s;
}
.lp-prest-card:hover {
  border-color: rgba(201,162,74,.3);
  transform: translateY(-4px);
}
.lp-prest-card:hover .lp-prest-card__glow { opacity: 1; }

/* Glow décoratif */
.lp-prest-card__glow {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 70% 60% at 50% 110%, rgba(201,162,74,.08) 0%, transparent 70%);
  opacity: 0;
  transition: opacity .4s;
  pointer-events: none;
}

/* Couleur accent par type */
.lp-prest-card--spectacle  .lp-prest-card__icon { color: #c9a24a; }
.lp-prest-card--conference .lp-prest-card__icon { color: #7b9fd4; }
.lp-prest-card--consulting .lp-prest-card__icon { color: #9d7bc9; }
.lp-prest-card--atelier    .lp-prest-card__icon { color: #7bc9a2; }
.lp-prest-card--formation  .lp-prest-card__icon { color: #c97b7b; }
.lp-prest-card--autre      .lp-prest-card__icon { color: var(--lp-muted); }

/* En-tête carte */
.lp-prest-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: var(--lp-s-5);
}
.lp-prest-card__icon {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  transition: transform .3s;
}
.lp-prest-card:hover .lp-prest-card__icon { transform: scale(1.1) rotate(-4deg); }
.lp-prest-card__icon svg { width: 100%; height: 100%; }

.lp-prest-card__meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}
.lp-prest-card__type-badge {
  font-family: var(--lp-font-mono);
  font-size: .55rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
  padding: 3px 10px;
  border: 1px solid rgba(201,162,74,.25);
  border-radius: var(--lp-r-pill);
}
.lp-prest-card__num {
  font-family: var(--lp-font-mono);
  font-size: .55rem;
  letter-spacing: .15em;
  color: var(--lp-ink-400);
}

/* Corps */
.lp-prest-card__body { flex: 1; }
.lp-prest-card__title {
  font-family: var(--lp-font-display);
  font-size: clamp(1.05rem, 1.8vw, 1.3rem);
  line-height: 1.2;
  color: var(--lp-parchment);
  margin: 0 0 var(--lp-s-3);
}
.lp-prest-card__desc {
  font-family: var(--lp-font-serif);
  font-size: .93rem;
  line-height: 1.7;
  color: var(--lp-muted);
  margin: 0 0 var(--lp-s-4);
}

/* Liste détails (formats) */
.lp-prest-card__details {
  list-style: none;
  margin: 0 0 var(--lp-s-4);
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.lp-prest-card__details li {
  display: flex;
  align-items: center;
  gap: var(--lp-s-2);
  font-family: var(--lp-font-mono);
  font-size: .58rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--lp-ink-400);
}
.lp-prest-card__details li::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--lp-gold-500);
  flex-shrink: 0;
  opacity: .6;
}

/* CTA */
.lp-prest-card__footer {
  margin-top: auto;
  padding-top: var(--lp-s-4);
  border-top: 1px solid var(--lp-line);
}
.lp-prest-card__cta {
  display: inline-flex;
  align-items: center;
  gap: var(--lp-s-2);
  font-family: var(--lp-font-mono);
  font-size: .62rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--lp-gold-400);
  transition: gap .2s, color .2s;
}
.lp-prest-card__cta:hover { color: var(--lp-gold-300); gap: var(--lp-s-3); }
.lp-prest-card__cta svg { transition: transform .2s; }
.lp-prest-card__cta:hover svg { transform: translateX(3px); }

/* Responsive */
@media (max-width: 900px) {
  .lp-prest-header { flex-direction: column; align-items: flex-start; }
  .lp-prest-header__rule { display: none; }
  .lp-prest-grid { grid-template-columns: 1fr; gap: var(--lp-s-3); }
  .lp-prest-card { flex-direction: row; flex-wrap: wrap; gap: var(--lp-s-4); }
  .lp-prest-card__header { flex-direction: column; gap: var(--lp-s-2); margin-bottom: 0; width: 100%; flex-direction: row; }
  .lp-prest-card__meta { flex-direction: row; align-items: center; }
}
@media (min-width: 600px) and (max-width: 900px) {
  .lp-prest-grid { grid-template-columns: repeat(2, 1fr); }
  .lp-prest-card { flex-direction: column; }
}

/* =========================================================
   LISTING CATALOGUE — C-01
   ========================================================= */

/* ── Hero catégorie ── */
.lp-listing-hero {
  position: relative;
  padding: clamp(48px, 8vw, 96px) 0 clamp(32px, 5vw, 56px);
  overflow: hidden;
  background: var(--lp-ink-900);
  border-bottom: 1px solid var(--lp-line);
  margin-bottom: clamp(24px, 4vw, 48px);
}
.lp-listing-hero--has-img { min-height: clamp(280px, 35vw, 420px); display: flex; align-items: flex-end; }
.lp-listing-hero--simple { padding: clamp(32px, 5vw, 64px) 0 clamp(24px, 3vw, 40px); }

.lp-listing-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.lp-listing-hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.lp-listing-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(4,4,15,.95) 0%, rgba(4,4,15,.5) 60%, rgba(4,4,15,.2) 100%);
}
.lp-listing-hero__content {
  position: relative;
  z-index: 1;
  width: 100%;
}
.lp-listing-breadcrumb { margin-bottom: var(--lp-s-4); }
.lp-listing-hero__title {
  font-family: var(--lp-font-display);
  font-size: clamp(1.8rem, 4vw, 3.2rem);
  line-height: 1.1;
  color: var(--lp-parchment);
  margin: var(--lp-s-3) 0 var(--lp-s-3);
}
.lp-listing-hero__desc {
  font-family: var(--lp-font-serif);
  font-size: .95rem;
  line-height: 1.7;
  color: rgba(230,220,200,.65);
  max-width: 60ch;
  margin: 0 0 var(--lp-s-3);
}
.lp-listing-hero__count {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
  margin: 0;
}


/* ── Corps listing ── */
.lp-listing-body {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: clamp(24px, 4vw, 56px);
  align-items: start;
  padding-bottom: clamp(40px, 6vw, 80px);
}
.lp-listing-body:not(:has(.lp-listing-aside)) {
  grid-template-columns: 1fr;
}
.lp-listing-aside {
  position: sticky;
  top: calc(var(--lp-header-h, 72px) + var(--lp-s-5));
}

/* ── Toolbar ── */
.lp-listing-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--lp-s-3);
  margin-bottom: var(--lp-s-4);
  padding-bottom: var(--lp-s-4);
  border-bottom: 1px solid var(--lp-line);
}
.lp-listing-count {
  font-family: var(--lp-font-mono);
  font-size: .62rem;
  letter-spacing: .1em;
  color: var(--lp-muted);
  margin: 0;
}
.lp-listing-count__page { opacity: .6; }
.lp-listing-toolbar__right {
  display: flex;
  align-items: center;
  gap: var(--lp-s-3);
}

/* Tri */
.lp-sort-wrap {
  display: flex;
  align-items: center;
  gap: var(--lp-s-2);
}
.lp-sort-label {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--lp-muted);
  white-space: nowrap;
}
.lp-sort-select {
  appearance: none;
  -webkit-appearance: none;
  padding: 8px 32px 8px 14px;
  background: var(--lp-ink-700) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 10px center;
  border: 1px solid var(--lp-line);
  border-radius: var(--lp-r-md);
  font-family: var(--lp-font-mono);
  font-size: .62rem;
  letter-spacing: .08em;
  color: var(--lp-parchment);
  cursor: pointer;
  outline: none;
  transition: border-color .2s;
}
.lp-sort-select:focus { border-color: rgba(201,162,74,.5); }

/* Bouton filtres mobile (visible < 900px) */
.lp-filter-mobile-trigger { display: none; }

/* ── Grille produits listing ── */
.lp-products--listing {
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

/* ── Pagination ── */
.lp-listing-pagination {
  margin-top: clamp(32px, 5vw, 56px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--lp-s-4);
}

.lp-pagination-summary {
  font-family: var(--ft-body);
  font-size: .8125rem;
  color: var(--text-2);
}

.lp-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--lp-s-2);
  list-style: none;
  padding: 0;
  margin: 0;
}

.lp-page {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  font-family: var(--ft-ui);
  font-size: .6875rem;
  color: var(--text-2);
  cursor: pointer;
  text-decoration: none;
  transition: all .15s;
}

.lp-page:hover,
.lp-page.active {
  color: var(--gold);
  border-color: var(--gold);
  background: var(--gold-dim);
}

.lp-page--prev,
.lp-page--next {
  font-size: .875rem;
}

.lp-page--spacer {
  border-color: transparent;
  cursor: default;
}

.lp-page.disabled {
  opacity: .35;
  pointer-events: none;
}

/* ── État vide ── */
.lp-listing-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: clamp(56px, 10vw, 120px) 0;
  gap: var(--lp-s-4);
}
.lp-listing-empty__icon { color: var(--lp-ink-500); }
.lp-listing-empty__title {
  font-family: var(--lp-font-display);
  font-size: clamp(1.2rem, 2vw, 1.6rem);
  color: var(--lp-parchment);
  margin: 0;
}
.lp-listing-empty__text {
  font-family: var(--lp-font-serif);
  font-size: .95rem;
  color: var(--lp-muted);
  max-width: 40ch;
  margin: 0;
}

/* ── Footer description catégorie ── */
.lp-cat-footer-desc {
  font-family: var(--lp-font-serif);
  font-size: .92rem;
  line-height: 1.8;
  color: var(--lp-muted);
  padding: clamp(32px, 4vw, 48px) 0;
  border-top: 1px solid var(--lp-line);
  max-width: 80ch;
}

/* ── Responsive ── */
@media (max-width: 900px) {
  .lp-listing-body { grid-template-columns: 1fr; }
  .lp-listing-aside { display: none; }
  .lp-filter-mobile-trigger { display: inline-flex; }
  .lp-filter-drawer { display: block; }
}
@media (max-width: 560px) {
  .lp-products--listing { grid-template-columns: repeat(2, 1fr); }
  .lp-sort-label { display: none; }
}
@media (max-width: 380px) {
  .lp-products--listing { grid-template-columns: 1fr; }
}

/* =========================================================
   FICHE PRODUIT — C-02
   ========================================================= */

/* ── Layout principal ── */
.lp-product-main {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 5vw, 80px);
  align-items: start;
  padding-top: clamp(32px, 4vw, 56px);
  padding-bottom: clamp(40px, 5vw, 64px);
}

/* ── Galerie ── */
.lp-product-gallery {
  position: sticky;
  top: calc(var(--lp-header-h, 72px) + var(--lp-s-5));
}

.lp-product-gallery .product-cover img { border-radius: var(--lp-r-lg); width: 100%; }

/* Rangée de vignettes (pas de carousel JS : simple rangée flex, comme la maquette) */
.lp-product-gallery .images-container { margin-top: var(--lp-s-3); }
.lp-product-gallery .js-qv-mask { overflow: visible; }
.lp-product-gallery .product-images {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lp-s-3);
  list-style: none;
  margin: 0;
  padding: 0;
}
.lp-product-gallery .thumb-container {
  flex: 1 1 72px;
  max-width: 96px;
  border-radius: var(--lp-r-sm);
  overflow: hidden;
  border: 1px solid var(--lp-line);
  transition: border-color .15s;
}
.lp-product-gallery .thumb-container .thumb {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  cursor: pointer;
  opacity: .65;
  transition: opacity .15s;
}
.lp-product-gallery .thumb-container:hover,
.lp-product-gallery .thumb-container:has(.thumb.selected) {
  border-color: var(--lp-gold-500);
}
.lp-product-gallery .thumb-container .thumb.selected,
.lp-product-gallery .thumb-container .thumb:hover {
  opacity: 1;
}
/* Flèches de scroll du carousel JS PS (scrollbox) : la rangée de vignettes ci-dessus
   est en flex-wrap, tout est déjà visible sans scroll — ces flèches n'ont jamais eu
   de style (pas de curseur, pas de hover) et sont inutiles avec ce layout. */
.lp-product-gallery .scroll-box-arrows { display: none; }

/* ── Zone infos ── */
.lp-product-breadcrumb { margin-bottom: var(--lp-s-4); }

.lp-product-meta {
  display: flex;
  align-items: center;
  gap: var(--lp-s-3);
  margin-bottom: var(--lp-s-3);
}
.lp-product-meta__cat {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
  padding: 3px 10px;
  border: 1px solid rgba(201,162,74,.25);
  border-radius: var(--lp-r-pill);
}
.lp-product-meta__brand {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .1em;
  color: var(--lp-muted);
}

.lp-product-title {
  font-family: var(--lp-font-display);
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  line-height: 1.1;
  color: var(--lp-parchment);
  margin: 0 0 var(--lp-s-3);
}

.lp-product-reviews-summary { margin-bottom: var(--lp-s-4); }

.lp-product-price-wrap { margin-bottom: var(--lp-s-5); }

/* Surcharges prix PS */
.lp-product-price-wrap .product-price .current-price {
  font-family: var(--lp-font-display);
  font-size: 2rem;
  color: var(--lp-parchment);
}
.lp-product-price-wrap .product-price .regular-price {
  font-family: var(--lp-font-serif);
  font-size: 1rem;
  color: var(--lp-muted);
  text-decoration: line-through;
}
.lp-product-price-wrap .product-discount .discount-percentage {
  background: rgba(201,162,74,.15);
  border: 1px solid rgba(201,162,74,.3);
  color: var(--lp-gold-400);
  border-radius: var(--lp-r-pill);
  padding: 2px 10px;
  font-family: var(--lp-font-mono);
  font-size: .62rem;
}

.lp-product-desc-short {
  font-family: var(--lp-font-serif);
  font-size: 1rem;
  line-height: 1.75;
  color: var(--lp-muted);
  margin-bottom: var(--lp-s-5);
}

/* Pack produits */
.lp-product-pack {
  padding: var(--lp-s-4);
  background: var(--lp-ink-800);
  border: 1px solid var(--lp-line);
  border-radius: var(--lp-r-md);
  margin-bottom: var(--lp-s-4);
}
.lp-product-pack__label {
  font-family: var(--lp-font-mono);
  font-size: .62rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
  margin: 0 0 var(--lp-s-3);
}

/* Bouton ATC */
.lp-product-atc { margin-bottom: var(--lp-s-4); }
.lp-product-atc .btn-primary,
.lp-product-atc [data-button-action="add-to-cart"] {
  background: var(--lp-gold-500) !important;
  border-color: var(--lp-gold-500) !important;
  color: var(--lp-ink-900) !important;
  font-family: var(--lp-font-mono);
  font-size: .7rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  padding: 14px 28px;
  border-radius: var(--lp-r-md);
  transition: background .2s, transform .15s;
  width: 100%;
}
.lp-product-atc .btn-primary:hover,
.lp-product-atc [data-button-action="add-to-cart"]:hover {
  background: var(--lp-gold-400) !important;
  transform: translateY(-1px);
}

/* Réassurance inline */
.lp-product-reassurance {
  margin-top: var(--lp-s-5);
  padding-top: var(--lp-s-5);
  border-top: 1px solid var(--lp-line);
}
/* Le module blockreassurance écrit une couleur de texte en inline style
   (configurée dans l'admin pour un thème clair) : illisible en dark mode.
   On force la couleur du thème par-dessus. */
.lp-product-reassurance .blockreassurance_product .block-title,
.lp-product-reassurance .blockreassurance_product p {
  color: var(--lp-muted) !important;
}

/* Partage */
.lp-product-share { margin-top: var(--lp-s-4); }

/* ── Onglets ── */
.lp-product-tabs {
  margin: clamp(32px, 5vw, 64px) 0;
  border-top: 1px solid var(--lp-line);
  border-bottom: 1px solid var(--lp-line);
}
.lp-tabs-nav {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--lp-line);
  overflow-x: auto;
  scrollbar-width: none;
}
.lp-tabs-nav::-webkit-scrollbar { display: none; }

.lp-tab-btn {
  flex-shrink: 0;
  background: none;
  border: 0;
  border-bottom: 2px solid transparent;
  padding: var(--lp-s-4) var(--lp-s-5);
  font-family: var(--lp-font-mono);
  font-size: .62rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--lp-muted);
  cursor: pointer;
  transition: color .2s, border-color .2s;
  margin-bottom: -1px;
}
.lp-tab-btn:hover { color: var(--lp-parchment); }
.lp-tab-btn--active {
  color: var(--lp-gold-400);
  border-bottom-color: var(--lp-gold-500);
}

.lp-tabs-body { padding: clamp(28px, 4vw, 48px) 0; }

.lp-tab-panel { display: none; }
.lp-tab-panel--active { display: block; }

.lp-product-desc-long {
  font-family: var(--lp-font-serif);
  font-size: 1rem;
  line-height: 1.8;
  color: var(--lp-muted);
}
.lp-product-desc-long h2,
.lp-product-desc-long h3 {
  font-family: var(--lp-font-display);
  color: var(--lp-parchment);
  margin-top: var(--lp-s-5);
}

/* Caractéristiques PS */
#product-details .product-features { display: flex; flex-direction: column; gap: var(--lp-s-2); }
#product-details .product-feature {
  display: flex;
  gap: var(--lp-s-4);
  padding: var(--lp-s-3) 0;
  border-bottom: 1px solid var(--lp-line);
  font-family: var(--lp-font-serif);
  font-size: .93rem;
}
#product-details .product-feature-name {
  flex: 0 0 180px;
  color: var(--lp-muted);
}
#product-details .product-feature-value { color: var(--lp-parchment); }

/* Pièces jointes */
.lp-product-attachments { display: flex; flex-direction: column; gap: var(--lp-s-3); }
.lp-attachment {
  display: flex;
  align-items: center;
  gap: var(--lp-s-3);
  padding: var(--lp-s-4);
  background: var(--lp-ink-800);
  border: 1px solid var(--lp-line);
  border-radius: var(--lp-r-md);
  text-decoration: none;
  transition: border-color .2s, background .2s;
}
.lp-attachment:hover { border-color: rgba(201,162,74,.35); background: rgba(201,162,74,.04); }
.lp-attachment svg { color: var(--lp-gold-500); flex-shrink: 0; }
.lp-attachment__name { font-family: var(--lp-font-serif); color: var(--lp-parchment); flex: 1; }
.lp-attachment__desc { font-size: .85rem; color: var(--lp-muted); }
.lp-attachment__size {
  font-family: var(--lp-font-mono);
  font-size: .58rem;
  color: var(--lp-ink-400);
  white-space: nowrap;
}

/* ── Avis ── */
.lp-product-reviews-wrap { margin-bottom: clamp(40px, 6vw, 72px); }

/* ── Produits associés ── */
.lp-product-accessories { margin-bottom: clamp(40px, 6vw, 80px); }

/* ── Sticky CTA mobile ── */
.lp-product-sticky-cta {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 200;
  background: var(--lp-ink-800);
  border-top: 1px solid var(--lp-line);
  backdrop-filter: blur(12px);
  padding: var(--lp-s-3) var(--lp-s-4);
  transform: translateY(100%);
  transition: transform .3s cubic-bezier(.4,0,.2,1);
}
.lp-product-sticky-cta.is-visible { transform: translateY(0); }
.lp-product-sticky-cta__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--lp-s-4);
  max-width: 600px;
  margin: 0 auto;
}
.lp-product-sticky-cta__price {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.lp-product-sticky-cta__regular {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  color: var(--lp-muted);
  text-decoration: line-through;
}
.lp-product-sticky-cta__current {
  font-family: var(--lp-font-display);
  font-size: 1.3rem;
  color: var(--lp-parchment);
}
.lp-product-sticky-cta__btn { flex-shrink: 0; }

/* ── Responsive ── */
@media (max-width: 900px) {
  .lp-product-main { grid-template-columns: 1fr; }
  .lp-product-gallery { position: static; }
  .lp-product-sticky-cta { display: block; }
}
@media (max-width: 560px) {
  .lp-product-tabs { margin: var(--lp-s-6) 0; }
  .lp-product-sticky-cta__price { display: none; }
  .lp-product-sticky-cta__btn { width: 100%; justify-content: center; }
}

/* JS tab switcher (inline) */
.lp-tab-btn { outline: none; }
.lp-tab-btn:focus-visible { outline: 2px solid var(--lp-gold-500); outline-offset: -2px; }

/* =========================================================
   BLOG — M-06 lpbdm_blog
   ========================================================= */

/* ── Grille cards homepage (3 articles) ── */
.lp-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--lp-s-4);
}
/* Version full listing : 3 cols avec 1 grande carte */
.lp-blog-grid--full .lp-blog-card:first-child {
  grid-column: 1 / 3;
}

/* ── Card ── */
.lp-blog-card {
  display: flex;
  flex-direction: column;
  background: var(--lp-ink-800);
  border: 1px solid var(--lp-line);
  border-radius: var(--lp-r-lg);
  overflow: hidden;
  transition: border-color .3s, transform .3s;
}
.lp-blog-card:hover {
  border-color: rgba(201,162,74,.25);
  transform: translateY(-3px);
}

/* Image */
.lp-blog-card__img-link { display: block; overflow: hidden; }
.lp-blog-card__cover {
  aspect-ratio: 16/9;
  overflow: hidden;
  background: var(--lp-ink-700);
}
.lp-blog-card--featured .lp-blog-card__cover { aspect-ratio: 16/7; }
.lp-blog-card__cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s cubic-bezier(.4,0,.2,1);
  display: block;
}
.lp-blog-card:hover .lp-blog-card__cover img { transform: scale(1.05); }
.lp-blog-card__cover-fallback {
  width: 100%;
  height: 100%;
  background: radial-gradient(ellipse at 40% 60%, rgba(201,162,74,.12) 0%, transparent 70%), var(--lp-ink-700);
}

/* Corps */
.lp-blog-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: var(--lp-s-5);
  gap: var(--lp-s-3);
}
.lp-blog-card__cat {
  font-family: var(--lp-font-mono);
  font-size: .55rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
  padding: 3px 10px;
  border: 1px solid rgba(201,162,74,.25);
  border-radius: var(--lp-r-pill);
  align-self: flex-start;
}
.lp-blog-card__title {
  font-family: var(--lp-font-display);
  font-size: clamp(.95rem, 1.5vw, 1.15rem);
  line-height: 1.25;
  color: var(--lp-parchment);
  margin: 0;
}
.lp-blog-card--featured .lp-blog-card__title { font-size: clamp(1.2rem, 2vw, 1.6rem); }
.lp-blog-card__title a { color: inherit; transition: color .2s; }
.lp-blog-card__title a:hover { color: var(--lp-gold-400); }
.lp-blog-card__excerpt {
  font-family: var(--lp-font-serif);
  font-size: .9rem;
  line-height: 1.65;
  color: var(--lp-muted);
  margin: 0;
  flex: 1;
}
.lp-blog-card__footer {
  display: flex;
  align-items: center;
  gap: var(--lp-s-3);
  margin-top: auto;
  padding-top: var(--lp-s-3);
  border-top: 1px solid var(--lp-line);
}
.lp-blog-card__date,
.lp-blog-card__read {
  font-family: var(--lp-font-mono);
  font-size: .58rem;
  letter-spacing: .1em;
  color: var(--lp-ink-400);
}

/* ── Pagination blog ── */
.lp-blog-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--lp-s-2);
  margin-top: clamp(40px, 5vw, 64px);
}
.lp-blog-page-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 12px;
  border-radius: var(--lp-r-sm);
  font-family: var(--lp-font-mono);
  font-size: .62rem;
  color: var(--lp-muted);
  border: 1px solid var(--lp-line);
  background: var(--lp-ink-800);
  transition: color .2s, border-color .2s, background .2s;
}
.lp-blog-page-btn:hover,
.lp-blog-page-btn.is-active {
  color: var(--lp-parchment);
  border-color: rgba(201,162,74,.4);
  background: rgba(201,162,74,.07);
}

/* ── Article · Hero ── */
.lp-post-hero {
  position: relative;
  padding: clamp(56px, 10vw, 120px) 0 clamp(40px, 6vw, 72px);
  overflow: hidden;
  background: var(--lp-ink-900);
  margin-bottom: clamp(32px, 5vw, 56px);
}
.lp-post-hero--has-img { min-height: clamp(320px, 40vw, 520px); display: flex; align-items: flex-end; }
.lp-post-hero__bg { position: absolute; inset: 0; z-index: 0; }
.lp-post-hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.lp-post-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(4,4,15,.97) 0%, rgba(4,4,15,.55) 60%, rgba(4,4,15,.2) 100%);
}
.lp-post-hero__content { position: relative; z-index: 1; width: 100%; }
.lp-post-hero__meta {
  display: flex;
  align-items: center;
  gap: var(--lp-s-3);
  flex-wrap: wrap;
  margin-bottom: var(--lp-s-3);
}
.lp-post-hero__meta time,
.lp-post-hero__meta span {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .12em;
  color: rgba(230,220,200,.55);
}
.lp-post-hero__title {
  font-family: var(--lp-font-display);
  font-size: clamp(1.8rem, 4.5vw, 3.6rem);
  line-height: 1.05;
  color: var(--lp-parchment);
  margin: var(--lp-s-3) 0;
  max-width: 900px;
}
.lp-post-hero__excerpt {
  font-family: var(--lp-font-serif);
  font-size: 1.05rem;
  line-height: 1.7;
  color: rgba(230,220,200,.65);
  max-width: 60ch;
  margin: 0;
}

/* ── Layout article ── */
.lp-post-layout {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: clamp(32px, 5vw, 64px);
  align-items: start;
  padding-bottom: clamp(40px, 6vw, 80px);
}

/* Contenu article */
.lp-post-content {
  font-family: var(--lp-font-serif);
  font-size: clamp(.95rem, 1.2vw, 1.08rem);
  line-height: 1.85;
  color: var(--lp-muted);
}
.lp-post-content h2 {
  font-family: var(--lp-font-display);
  font-size: clamp(1.3rem, 2.2vw, 1.7rem);
  color: var(--lp-parchment);
  margin: clamp(32px, 4vw, 48px) 0 var(--lp-s-4);
}
.lp-post-content h3 {
  font-family: var(--lp-font-display);
  font-size: clamp(1.05rem, 1.6vw, 1.25rem);
  color: var(--lp-parchment);
  margin: var(--lp-s-5) 0 var(--lp-s-3);
}
.lp-post-content p { margin: 0 0 var(--lp-s-4); }
.lp-post-content a { color: var(--lp-gold-400); text-decoration: underline; }
.lp-post-content blockquote {
  border-left: 2px solid var(--lp-gold-500);
  padding: var(--lp-s-3) var(--lp-s-5);
  margin: var(--lp-s-5) 0;
  font-style: italic;
  color: var(--lp-parchment);
  background: rgba(201,162,74,.04);
  border-radius: 0 var(--lp-r-sm) var(--lp-r-sm) 0;
}
.lp-post-content img {
  max-width: 100%;
  border-radius: var(--lp-r-md);
  margin: var(--lp-s-4) 0;
}
.lp-post-content ul, .lp-post-content ol {
  padding-left: var(--lp-s-5);
  margin-bottom: var(--lp-s-4);
}
.lp-post-content li { margin-bottom: var(--lp-s-2); }

/* Sidebar */
.lp-post-sidebar {
  position: sticky;
  top: calc(var(--lp-header-h, 72px) + var(--lp-s-5));
  display: flex;
  flex-direction: column;
  gap: var(--lp-s-5);
}
.lp-post-sidebar__title {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
  margin: 0 0 var(--lp-s-3);
}
.lp-post-sidebar__block {
  padding: var(--lp-s-4);
  background: var(--lp-ink-800);
  border: 1px solid var(--lp-line);
  border-radius: var(--lp-r-md);
}

/* Tags */
.lp-post-tags { display: flex; flex-wrap: wrap; gap: var(--lp-s-2); }
.lp-post-tag {
  font-family: var(--lp-font-mono);
  font-size: .55rem;
  letter-spacing: .1em;
  padding: 4px 10px;
  background: rgba(201,162,74,.07);
  border: 1px solid rgba(201,162,74,.2);
  border-radius: var(--lp-r-pill);
  color: var(--lp-muted);
}

/* Partage */
.lp-post-share { display: flex; gap: var(--lp-s-2); }
.lp-post-share-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--lp-r-sm);
  border: 1px solid var(--lp-line);
  color: var(--lp-muted);
  transition: color .2s, border-color .2s;
}
.lp-post-share-btn:hover { color: var(--lp-parchment); border-color: rgba(201,162,74,.3); }

.lp-post-back { width: 100%; justify-content: center; }

/* Articles liés */
.lp-blog-related { margin-bottom: clamp(40px, 6vw, 80px); }

/* ── Responsive ── */
@media (max-width: 900px) {
  .lp-blog-grid { grid-template-columns: 1fr 1fr; }
  .lp-blog-grid--full .lp-blog-card:first-child { grid-column: 1 / 3; }
  .lp-post-layout { grid-template-columns: 1fr; }
  .lp-post-sidebar { position: static; flex-direction: row; flex-wrap: wrap; }
  .lp-post-sidebar__block { flex: 1; min-width: 200px; }
}
@media (max-width: 560px) {
  .lp-blog-grid { grid-template-columns: 1fr; }
  .lp-blog-grid--full .lp-blog-card:first-child { grid-column: 1; }
}

/* =========================================================
   NOTIFICATIONS PS
   ========================================================= */
.alert {
  padding: var(--lp-s-4) var(--lp-s-5);
  border-radius: var(--lp-r-md);
  margin-bottom: var(--lp-s-4);
  font-size: .95rem;
}
.alert-success { background: rgba(110,196,154,.12); border: 1px solid rgba(110,196,154,.30); color: var(--lp-success); }
.alert-danger, .alert-error { background: rgba(140,43,43,.15); border: 1px solid rgba(140,43,43,.35); color: #f0a0a0; }
.alert-warning { background: rgba(232,167,110,.12); border: 1px solid rgba(232,167,110,.30); color: var(--lp-alert); }
.alert-info { background: rgba(201,162,74,.10); border: 1px solid var(--lp-line); color: var(--lp-gold-400); }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 1100px) {
  .lp-footer__grid { grid-template-columns: 1fr 1fr 1fr; }
}
@media (max-width: 900px) {
  .lp-nav { display: none; }
  .lp-hamburger { display: flex; }
  .lp-utility__left { display: none; }
  .lp-products { grid-template-columns: repeat(2, 1fr); }
  .lp-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .lp-products { grid-template-columns: 1fr 1fr; }
  .lp-footer__grid { grid-template-columns: 1fr; }
  .lp-footer__bottom { flex-direction: column; gap: var(--lp-s-3); text-align: center; }
  .lp-section-title { flex-direction: column; align-items: flex-start; }
}

/* =========================================================
   LISTING — compléments hero éditorial (C-01)
   ========================================================= */

/* Séparateurs du fil d'Ariane */
.lp-breadcrumb li:not(:last-child)::after {
  content: "›";
  margin-left: var(--lp-s-2);
  color: var(--lp-line-strong, var(--lp-muted));
  opacity: .6;
}

.lp-listing-hero__eyebrow { margin-bottom: var(--lp-s-2); }

/* Chips sous-catégories */
.lp-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lp-s-2);
  list-style: none;
  margin: var(--lp-s-5) 0 0;
  padding: 0;
}
.lp-chip {
  display: inline-block;
  padding: 7px 16px;
  border: 1px solid var(--lp-line);
  border-radius: 999px;
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--lp-muted);
  transition: color .2s, border-color .2s, background .2s;
}
.lp-chip:hover {
  color: var(--lp-gold-300);
  border-color: var(--lp-gold-600);
}
.lp-chip--active {
  color: var(--lp-ink-900);
  background: var(--lp-gold-500);
  border-color: var(--lp-gold-500);
}
.lp-chip--active:hover { color: var(--lp-ink-900); }

/* =========================================================
   MATERIAL ICONS — requis par les partials PS (galerie, panier…)
   ========================================================= */
@font-face {
  font-family: "Material Icons";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: local("Material Icons"), local("MaterialIcons-Regular"),
       url(../fonts/12a47ed5fd5585f0f422.woff2) format("woff2"),
       url(../fonts/f2a0933406f783065152.woff) format("woff"),
       url(../fonts/00b1fb69fb78ff50fd55.ttf) format("truetype");
}
.material-icons {
  display: inline-block;
  width: 1em;
  height: 1em;
  font-family: "Material Icons", Arial, sans-serif;
  font-size: 22px;
  font-style: normal;
  font-weight: 500;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  vertical-align: middle;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "liga";
}

/* =========================================================
   FICHE PRODUIT — bloc achat & quick facts (C-02)
   ========================================================= */

/* Disponibilité */
.lp-avail {
  display: flex;
  align-items: center;
  gap: var(--lp-s-2);
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin: var(--lp-s-3) 0 var(--lp-s-4);
}
.lp-avail__dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.lp-avail--in  { color: #6ec49a; }
.lp-avail--in .lp-avail__dot  { background: #6ec49a; box-shadow: 0 0 6px #6ec49a; }
.lp-avail--low { color: var(--lp-gold-400); }
.lp-avail--low .lp-avail__dot { background: var(--lp-gold-400); box-shadow: 0 0 6px var(--lp-gold-400); }
.lp-avail--out { color: #c46e6e; }
.lp-avail--out .lp-avail__dot { background: #c46e6e; }

/* Quantité — stepper */
.lp-qty-label {
  display: block;
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--lp-muted);
  margin-bottom: var(--lp-s-2);
}
.lp-qty {
  display: flex;
  align-items: center;
  gap: 0;
  border: 1px solid var(--lp-line);
  border-radius: 4px;
  overflow: hidden;
  width: fit-content;
  margin-bottom: var(--lp-s-5);
}
.lp-qty__btn {
  width: 40px;
  height: 40px;
  background: var(--lp-ink-800, rgba(255,255,255,.03));
  border: none;
  color: var(--lp-muted);
  font-size: 1.125rem;
  cursor: pointer;
  transition: background .15s, color .15s;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lp-qty__btn:hover { color: var(--lp-gold-400); }
.lp-qty__val {
  width: 56px;
  height: 40px;
  background: transparent;
  border: none;
  border-left: 1px solid var(--lp-line);
  border-right: 1px solid var(--lp-line);
  text-align: center;
  font-family: var(--lp-font-title);
  font-size: .9375rem;
  color: var(--lp-parchment);
  outline: none;
  appearance: textfield;
  -moz-appearance: textfield;
}
.lp-qty__val::-webkit-outer-spin-button,
.lp-qty__val::-webkit-inner-spin-button { appearance: none; margin: 0; }

/* Boutons verticaux générés par TouchSpin (JS classic) : masqués, on a nos −/+ */
.lp-qty .input-group-btn-vertical { display: none !important; }

/* CTAs achat : panier + favoris côte à côte */
.lp-buy-ctas {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: var(--lp-s-3);
  margin-bottom: var(--lp-s-5);
}
.lp-buy-ctas .add-to-cart { flex: 1; }
.lp-btn--block { width: 100%; justify-content: center; }
.lp-buy-ctas .add-to-cart .material-icons { font-size: 18px; margin-right: 6px; }

/* Bouton wishlist (module blockwishlist) : sa CSS d'origine est pensée pour
   flotter en position:absolute sur une vignette produit, pas dans les CTA
   d'une fiche produit. On le remet dans le flux, à côté du bouton panier. */
.lp-buy-ctas .wishlist-button-product {
  position: static !important;
  flex: 0 0 52px;
  width: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--lp-r-sm);
  border: 1px solid rgba(237,232,245,.22);
  background: transparent;
  color: var(--lp-parchment);
  cursor: pointer;
  transition: border-color .2s, color .2s;
}
.lp-buy-ctas .wishlist-button-product:hover {
  border-color: var(--lp-gold-500);
  color: var(--lp-gold-400);
}
.lp-buy-ctas .wishlist-button-product .material-icons { font-size: 20px; }

.lp-qty-minimal {
  font-size: .8rem;
  color: var(--lp-muted);
  margin: 0 0 var(--lp-s-3);
}
.lp-qty-minimal:empty { display: none; }

/* Quick facts */
.lp-quick-facts {
  border: 1px solid var(--lp-line);
  border-radius: 6px;
  overflow: hidden;
  margin-top: var(--lp-s-6);
}
.lp-qf-row {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  border-bottom: 1px solid var(--lp-line);
}
.lp-qf-row:last-child { border-bottom: none; }
.lp-qf-key {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
  padding: var(--lp-s-4) var(--lp-s-5);
  background: rgba(201,168,76,.04);
  display: flex;
  align-items: center;
}
.lp-qf-val {
  font-size: .9375rem;
  color: var(--lp-muted);
  padding: var(--lp-s-4) var(--lp-s-5);
  display: flex;
  align-items: center;
  gap: var(--lp-s-2);
}

/* =========================================================
   PANIER — C-03
   ========================================================= */
.lp-cart-page { padding: clamp(32px, 5vw, 64px) 0; }

.lp-cart-title {
  font-family: var(--lp-font-display);
  font-size: clamp(1.6rem, 3.5vw, 2.6rem);
  color: var(--lp-parchment);
  margin: 0 0 clamp(24px, 4vw, 40px);
  padding-bottom: var(--lp-s-4);
  border-bottom: 1px solid var(--lp-line);
}

.lp-cart-layout {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: clamp(24px, 4vw, 56px);
  align-items: start;
}
@media (max-width: 900px) { .lp-cart-layout { grid-template-columns: 1fr; } }

/* Lignes produit */
.cart-items { list-style: none; margin: 0; padding: 0; }
.cart-items > .cart-item { border-bottom: 1px solid var(--lp-line); }
.cart-items > .cart-item:last-child { border-bottom: none; }

.lp-cart-item {
  display: grid;
  grid-template-columns: 88px 1fr auto;
  gap: var(--lp-s-5);
  align-items: start;
  padding: var(--lp-s-6) 0;
}
@media (max-width: 600px) { .lp-cart-item { grid-template-columns: 64px 1fr; } .lp-cart-item__right { grid-column: 1 / -1; } }

.lp-cart-item__thumb img {
  width: 100%;
  height: auto;
  border-radius: 4px;
  border: 1px solid var(--lp-line);
  display: block;
}

.lp-cart-item__title {
  display: block;
  font-family: var(--lp-font-title);
  font-size: 1rem;
  letter-spacing: .04em;
  color: var(--lp-parchment);
  margin-bottom: var(--lp-s-2);
}
.lp-cart-item__title:hover { color: var(--lp-gold-400); }

.lp-cart-item__variant {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--lp-muted);
  margin: 0 0 var(--lp-s-2);
}

.lp-cart-item__unit { font-size: .875rem; color: var(--lp-muted); }
.lp-cart-item__unit .regular-price { text-decoration: line-through; margin-right: 6px; font-size: .8em; }
.lp-cart-item__unit .current-price { color: var(--lp-muted); }

.lp-cart-item__right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--lp-s-3);
}
.lp-qty--cart { margin-bottom: 0; }
.lp-qty--cart .lp-qty__val { width: 48px; height: 36px; }
.lp-qty--cart .lp-qty__btn { width: 34px; height: 36px; }

.lp-cart-item__price {
  font-family: var(--lp-font-title);
  font-size: 1.125rem;
  color: var(--lp-gold-400);
  white-space: nowrap;
}

.lp-cart-item__remove {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--lp-muted);
  transition: color .15s;
}
.lp-cart-item__remove:hover { color: #c46e6e; }

.no-items { color: var(--lp-muted); font-style: italic; display: block; padding: var(--lp-s-6) 0; }

.lp-back-link {
  display: inline-block;
  margin-top: var(--lp-s-5);
  font-family: var(--lp-font-mono);
  font-size: .65rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--lp-muted);
  transition: color .15s;
}
.lp-back-link:hover { color: var(--lp-gold-400); }

/* Récapitulatif */
.lp-cart-summary {
  background: var(--lp-ink-800, rgba(255,255,255,.02));
  border: 1px solid var(--lp-line);
  border-radius: 6px;
  padding: var(--lp-s-6);
  position: sticky;
  top: calc(var(--lp-header-h) + var(--lp-s-4));
}
.lp-cart-summary__title {
  font-family: var(--lp-font-title);
  font-size: .875rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--lp-gold-pale, var(--lp-gold-300));
  margin: 0 0 var(--lp-s-5);
  padding-bottom: var(--lp-s-4);
  border-bottom: 1px solid var(--lp-line);
}

.cart-summary-line {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--lp-s-3);
  margin-bottom: var(--lp-s-3);
  font-size: .9375rem;
  color: var(--lp-muted);
}
.cart-summary-line .value { color: var(--lp-parchment); white-space: nowrap; }
.cart-summary-line.cart-total {
  margin-top: var(--lp-s-4);
  padding-top: var(--lp-s-4);
  border-top: 1px solid var(--lp-line);
  font-family: var(--lp-font-title);
  font-size: 1.05rem;
  color: var(--lp-parchment);
}
.cart-summary-line.cart-total .value { color: var(--lp-gold-400); font-size: 1.2rem; }

/* Code promo */
.block-promo { margin: var(--lp-s-5) 0; padding-top: var(--lp-s-4); border-top: 1px solid var(--lp-line); }
.block-promo .promo-code { margin-top: var(--lp-s-3); }
.block-promo .collapse-button,
.block-promo .promo-code-button a {
  font-family: var(--lp-font-mono);
  font-size: .62rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
  cursor: pointer;
}
.block-promo form { display: flex; gap: var(--lp-s-2); margin-top: var(--lp-s-3); }
.block-promo input[name="discount_name"] {
  flex: 1;
  min-width: 0;
  background: transparent;
  border: 1px solid var(--lp-line);
  border-radius: 4px;
  padding: 9px 12px;
  color: var(--lp-parchment);
  font-size: .875rem;
}
.block-promo input[name="discount_name"]:focus { outline: none; border-color: var(--lp-gold-600); }
.block-promo button[type="submit"] {
  background: transparent;
  border: 1px solid var(--lp-gold-600);
  border-radius: 4px;
  color: var(--lp-gold-400);
  padding: 9px 14px;
  font-family: var(--lp-font-mono);
  font-size: .62rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.block-promo button[type="submit"]:hover { background: var(--lp-gold-500); color: var(--lp-ink-900); }
.block-promo .js-error, .block-promo .help-block { font-size: .8rem; color: #c46e6e; margin-top: var(--lp-s-2); }

/* CTA + réassurance */
.lp-cart-summary .lp-btn--block { margin-top: var(--lp-s-4); }
.lp-cart-alert { font-size: .85rem; color: var(--lp-gold-400); margin-bottom: var(--lp-s-3); }

.lp-cart-reassurance {
  list-style: none;
  margin: var(--lp-s-5) 0 0;
  padding: var(--lp-s-4) 0 0;
  border-top: 1px solid var(--lp-line);
  display: flex;
  flex-direction: column;
  gap: var(--lp-s-2);
}
.lp-cart-reassurance li {
  font-size: .8rem;
  color: var(--lp-muted);
  padding-left: 18px;
  position: relative;
}
.lp-cart-reassurance li::before {
  content: "✦";
  position: absolute;
  left: 0;
  color: var(--lp-gold-600);
  font-size: .7rem;
}

/* Comportement bootstrap minimal (collapse) — requis par les partials PS */
.collapse { display: none; }
.collapse.in, .collapse.show { display: block; }
.block-promo .js-error { display: none; }

/* =========================================================
   TUNNEL DE COMMANDE — C-03
   ========================================================= */

/* Header épuré */
.lp-checkout-header {
  border-bottom: 1px solid var(--lp-line);
  background: var(--lp-ink-900);
}
.lp-checkout-header__inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding-top: var(--lp-s-4);
  padding-bottom: var(--lp-s-4);
}
.lp-checkout-header__back { margin-top: 0; justify-self: start; }
.lp-checkout-header__secure {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: var(--lp-s-2);
  font-family: var(--lp-font-mono);
  font-size: .62rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--lp-muted);
}

.lp-checkout-page { padding: clamp(32px, 5vw, 56px) 0; }

/* Étapes = cartes */
.checkout-step {
  background: var(--lp-ink-800, rgba(255,255,255,.02));
  border: 1px solid var(--lp-line);
  border-radius: 6px;
  margin-bottom: var(--lp-s-4);
  padding: var(--lp-s-5) var(--lp-s-6);
}
.checkout-step.-current { border-color: var(--lp-gold-600); }

.step-title {
  display: flex;
  align-items: center;
  gap: var(--lp-s-3);
  font-family: var(--lp-font-title);
  font-size: 1rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--lp-muted);
  margin: 0;
  cursor: pointer;
}
.checkout-step.-current .step-title { color: var(--lp-parchment); }
.step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid var(--lp-line);
  font-family: var(--lp-font-mono);
  font-size: .7rem;
  color: var(--lp-muted);
  flex-shrink: 0;
}
.checkout-step.-current .step-number {
  background: var(--lp-gold-500);
  border-color: var(--lp-gold-500);
  color: var(--lp-ink-900);
}
.checkout-step.-complete .step-number { border-color: var(--lp-gold-600); color: var(--lp-gold-500); }
.step-title .done { display: none; color: var(--lp-gold-500); font-size: 18px; }
.checkout-step.-complete .step-title .done { display: inline-block; }
.checkout-step.-complete .step-title .step-number { display: none; }
.step-edit {
  margin-left: auto;
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--lp-muted);
  display: none;
  align-items: center;
  gap: 4px;
}
.step-edit .material-icons { font-size: 14px; }
.checkout-step.-complete .step-edit { display: inline-flex; cursor: pointer; }
.checkout-step .content { padding-top: var(--lp-s-5); }
.checkout-step:not(.-current) > .content { display: none; }

/* ── Formulaires (tunnel + compte + contact) ── */
#main label, #content label, #main .form-control-label, #content .form-control-label {
  font-family: var(--lp-font-mono);
  font-size: .62rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--lp-muted);
}
#main input[type="text"], #content input[type="text"],
#main input[type="email"], #content input[type="email"],
#main input[type="password"], #content input[type="password"],
#main input[type="tel"], #content input[type="tel"],
#main input[type="date"], #content input[type="date"],
#main input[type="number"]:not(.lp-qty__val), #content input[type="number"]:not(.lp-qty__val),
#main select, #content select,
#main textarea, #content textarea {
  width: 100%;
  background: var(--lp-ink-900);
  border: 1px solid var(--lp-line);
  border-radius: 4px;
  padding: 11px 14px;
  color: var(--lp-parchment);
  font-size: .9375rem;
  font-family: var(--lp-font-serif, inherit);
  transition: border-color .15s;
}
#main input:focus, #content input:focus,
#main select:focus, #content select:focus,
#main textarea:focus, #content textarea:focus {
  outline: none;
  border-color: var(--lp-gold-600);
}
#main .form-group, #content .form-group { margin-bottom: var(--lp-s-4); }
#main .form-control-comment, #content .form-control-comment { font-size: .75rem; color: var(--lp-muted); }
#main input[type="checkbox"], #content input[type="checkbox"],
#main input[type="radio"], #content input[type="radio"] { accent-color: var(--lp-gold-500); width: auto; }

/* Boutons du tunnel + espace client (continue, se connecter, enregistrer…) */
.checkout-step .btn-primary,
#payment-confirmation .btn-primary,
#content .btn.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--lp-gold-500);
  border: 1px solid var(--lp-gold-500);
  border-radius: 4px;
  color: var(--lp-ink-900);
  font-family: var(--lp-font-mono);
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: 13px 26px;
  cursor: pointer;
  transition: background .15s;
  text-decoration: none;
}
.checkout-step .btn-primary:hover,
#payment-confirmation .btn-primary:hover,
#content .btn.btn-primary:hover { background: var(--lp-gold-400); color: var(--lp-ink-900); }
.checkout-step .btn-primary:disabled,
#payment-confirmation .btn-primary:disabled,
#content .btn.btn-primary:disabled { opacity: .4; cursor: not-allowed; }

#content .btn.btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid var(--lp-line);
  border-radius: 4px;
  color: var(--lp-muted);
  font-family: var(--lp-font-mono);
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: 12px 24px;
  cursor: pointer;
  text-decoration: none;
  transition: border-color .15s, color .15s;
}
#content .btn.btn-secondary:hover { border-color: var(--lp-gold-600); color: var(--lp-gold-400); }

/* Options livraison / paiement */
.delivery-options .delivery-option,
.payment-options .payment-option {
  border: 1px solid var(--lp-line);
  border-radius: 6px;
  padding: var(--lp-s-4) var(--lp-s-5);
  margin-bottom: var(--lp-s-3);
  display: flex;
  align-items: center;
  gap: var(--lp-s-4);
  color: var(--lp-muted);
}
.delivery-options .carrier-name { color: var(--lp-parchment); font-family: var(--lp-font-title); }
.delivery-options .carrier-price { color: var(--lp-gold-400); }
.payment-options .payment-option label { display: flex; align-items: center; gap: var(--lp-s-3); text-transform: none; font-family: var(--lp-font-serif, inherit); font-size: .9375rem; color: var(--lp-parchment); letter-spacing: 0; }

/* Résumé colonne droite du tunnel */
.lp-checkout-page .cart-summary {
  background: var(--lp-ink-800, rgba(255,255,255,.02));
  border: 1px solid var(--lp-line);
  border-radius: 6px;
  padding: var(--lp-s-6);
  position: sticky;
  top: var(--lp-s-5);
}
.lp-checkout-page .cart-summary .media-list, .lp-checkout-page #cart-summary-product-list ul { list-style: none; margin: 0 0 var(--lp-s-4); padding: 0; display: flex; flex-direction: column; gap: var(--lp-s-3); }
.lp-checkout-page #cart-summary-product-list .media { display: flex; align-items: center; gap: var(--lp-s-3); font-size: .85rem; color: var(--lp-muted); }
.lp-checkout-page #cart-summary-product-list img { width: 44px; border-radius: 4px; border: 1px solid var(--lp-line); }
.lp-checkout-page .cart-summary-line { font-size: .875rem; }

/* Footer épuré du tunnel */
#checkout .lp-footer, #checkout footer { border-top: 1px solid var(--lp-line); }

/* Onglets invité / connexion (étape infos perso du tunnel) */
.nav.nav-inline {
  display: flex;
  align-items: center;
  gap: var(--lp-s-3);
  list-style: none;
  margin: 0 0 var(--lp-s-5);
  padding: 0;
}
.nav.nav-inline .nav-item { display: flex; align-items: center; }
.nav.nav-inline .nav-separator { color: var(--lp-line); }
.nav.nav-inline .nav-link {
  font-family: var(--lp-font-mono);
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--lp-muted);
  padding-bottom: 4px;
  border-bottom: 2px solid transparent;
  transition: color .15s, border-color .15s;
}
.nav.nav-inline .nav-link:hover { color: var(--lp-parchment); }
.nav.nav-inline .nav-link.active { color: var(--lp-gold-400); border-color: var(--lp-gold-500); }

.tab-content .tab-pane { display: none; }
.tab-content .tab-pane.active { display: block; }

/* Titre radio + case dans le tunnel */
#main .radio-inline, #main .checkbox { display: inline-flex; align-items: center; gap: 6px; margin-right: var(--lp-s-4); text-transform: none; font-family: var(--lp-font-serif, inherit); color: var(--lp-muted); font-size: .875rem; }

/* =========================================================
   TUNNEL — grille bootstrap minimale + radios/checkboxes natifs
   (le thème n'embarque pas bootstrap ; ces partials PS s'appuient dessus)
   ========================================================= */
#main .row, #content .row { display: flex; flex-wrap: wrap; gap: var(--lp-s-3); margin: 0; }
#main [class^="col-"], #main [class*=" col-"],
#content [class^="col-"], #content [class*=" col-"] { flex: 1 1 0; min-width: 0; }
#main .col-sm-1, #content .col-sm-1 { flex: 0 0 auto; }

/* Formulaires FormFields (identity, address, login, register) : label au-dessus du champ,
   plus lisible dans la colonne étroite de l'espace client que le 3/6/3 bootstrap d'origine */
#content .form-group.row { flex-direction: column; gap: var(--lp-s-2); margin-bottom: var(--lp-s-4); }
#content .form-group.row > [class^="col-"] { width: 100%; }
#content .form-group.row .form-control-comment { font-size: .7rem; }

/* PS enveloppe les radios/checkboxes dans un span fake — on affiche le natif */
#main .custom-radio, #main .custom-checkbox,
#content .custom-radio, #content .custom-checkbox {
  display: inline-flex;
  align-items: center;
  position: static;
}
#main .custom-radio input, #main .custom-checkbox input,
#content .custom-radio input, #content .custom-checkbox input {
  position: static;
  opacity: 1;
  margin: 0;
  width: 16px;
  height: 16px;
  accent-color: var(--lp-gold-500);
}
#main .custom-radio > span:not(:has(input)), #main .custom-checkbox > span:not(:has(input)),
#content .custom-radio > span:not(:has(input)), #content .custom-checkbox > span:not(:has(input)) { display: none; }
#content .radio-inline { display: inline-flex; align-items: center; gap: 6px; margin-right: var(--lp-s-4); text-transform: none; font-family: var(--lp-font-serif, inherit); color: var(--lp-muted); font-size: .875rem; }

/* Carte transporteur */
.delivery-option { background: var(--lp-ink-900); }
.delivery-option.js-delivery-option { flex-wrap: nowrap; align-items: center; }
.carrier-logo img { max-height: 28px; }
.carrier-name { font-family: var(--lp-font-title); color: var(--lp-parchment); font-size: .95rem; }
.carrier-delay { font-size: .8rem; color: var(--lp-muted); }
.carrier-price { font-family: var(--lp-font-title); color: var(--lp-gold-400); }
.delivery-option label { cursor: pointer; flex: 1; }

/* Sélecteur d'adresse */
.address-selector .address-item,
.address-selector [class*="address-item"] {
  border: 1px solid var(--lp-line);
  border-radius: 6px;
  padding: var(--lp-s-4) var(--lp-s-5);
  margin-bottom: var(--lp-s-3);
  color: var(--lp-muted);
}
.add-address a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--lp-font-mono);
  font-size: .65rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
}

/* Paiement */
.payment-option label { cursor: pointer; }
.payment-option img { max-height: 24px; }
#conditions-to-approve ul { list-style: none; margin: var(--lp-s-4) 0; padding: 0; }
#conditions-to-approve li { display: flex; align-items: flex-start; gap: var(--lp-s-3); margin-bottom: var(--lp-s-3); font-size: .85rem; color: var(--lp-muted); }
#conditions-to-approve .condition-label { text-transform: none; }
#payment-confirmation { margin-top: var(--lp-s-5); text-align: center; }
#payment-confirmation .center-block { display: inline-flex; }
.js-alert-payment-conditions { font-size: .8rem; color: var(--lp-gold-400); margin-top: var(--lp-s-3); }

.alert-danger, .alert-warning, .alert-info {
  border-radius: 4px;
  padding: var(--lp-s-3) var(--lp-s-4);
  font-size: .85rem;
  margin-bottom: var(--lp-s-3);
}
.alert-danger { background: rgba(196,110,110,.12); color: #e08a8a; border: 1px solid rgba(196,110,110,.3); }
.alert-warning, .alert-info { background: rgba(201,162,74,.1); color: var(--lp-gold-400); border: 1px solid rgba(201,162,74,.3); }

/* =========================================================
   CONFIRMATION DE COMMANDE — C-03
   ========================================================= */
.lp-confirm { max-width: 860px; margin: 0 auto; }

.lp-confirm__hero {
  text-align: center;
  padding: clamp(40px, 8vw, 80px) 0;
  border-bottom: 1px solid var(--lp-line);
  margin-bottom: clamp(32px, 5vw, 56px);
}
.lp-confirm__check {
  width: 72px;
  height: 72px;
  background: rgba(110,196,154,.12);
  border: 1px solid rgba(110,196,154,.3);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto var(--lp-s-5);
  font-size: 2rem;
  color: #6ec49a;
}
.lp-confirm__title {
  font-family: var(--lp-font-display);
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  color: var(--lp-parchment);
  letter-spacing: .04em;
  line-height: 1.1;
  margin: var(--lp-s-3) 0 var(--lp-s-4);
}
.lp-confirm__lead {
  font-size: 1rem;
  color: var(--lp-muted);
  max-width: 560px;
  margin: 0 auto;
}

.lp-confirm__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(24px, 4vw, 48px);
  margin-bottom: clamp(32px, 5vw, 56px);
}
@media (max-width: 700px) { .lp-confirm__grid { grid-template-columns: 1fr; } }

.lp-confirm__col-title {
  font-family: var(--lp-font-title);
  font-size: .82rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
  margin: 0 0 var(--lp-s-4);
  padding-bottom: var(--lp-s-3);
  border-bottom: 1px solid var(--lp-line);
}

.lp-confirm__items { display: flex; flex-direction: column; gap: var(--lp-s-3); }
.lp-confirm__item {
  display: flex;
  justify-content: space-between;
  gap: var(--lp-s-3);
  font-size: .9375rem;
  color: var(--lp-muted);
}
.lp-confirm__item-total { color: var(--lp-gold-400); white-space: nowrap; }
.lp-confirm__divider { height: 1px; background: var(--lp-line); margin: var(--lp-s-2) 0; }
.lp-confirm__item--total {
  font-family: var(--lp-font-title);
  font-size: 1.05rem;
  color: var(--lp-parchment);
}
.lp-confirm__item--total span:last-child { color: var(--lp-gold-400); }
.lp-confirm__tax-note { font-size: .75rem; color: var(--lp-muted); margin: 0; }

.lp-confirm__meta {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--lp-s-3);
  font-size: .9375rem;
  color: var(--lp-muted);
  line-height: 1.6;
}

.lp-confirm__ctas {
  display: flex;
  justify-content: center;
  gap: var(--lp-s-4);
  flex-wrap: wrap;
  padding-bottom: clamp(32px, 5vw, 56px);
}

.lp-account-prompt {
  background: var(--lp-ink-800);
  border: 1px solid var(--lp-line);
  border-radius: 4px;
  padding: clamp(24px, 4vw, 40px);
  margin-bottom: clamp(32px, 5vw, 56px);
}
.lp-account-prompt__perks {
  list-style: none;
  margin: 0 0 var(--lp-s-5);
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--lp-s-2);
  font-size: .9375rem;
  color: var(--lp-muted);
}
.lp-account-prompt__perks li::before { content: "› "; color: var(--lp-gold-500); }
.lp-account-prompt__form { max-width: 360px; }
.lp-account-prompt__footer { margin-top: var(--lp-s-4); }

/* =========================================================
   ESPACE CLIENT - C-04
   ========================================================= */
.lp-account { padding: clamp(32px, 5vw, 56px) 0; }
.lp-account__eyebrow { margin-bottom: var(--lp-s-5); }

.lp-page-title {
  font-family: var(--lp-font-display);
  font-size: clamp(1.6rem, 3.5vw, 2.2rem);
  color: var(--lp-parchment);
  margin: var(--lp-s-4) 0 0;
  padding-top: clamp(24px, 4vw, 40px);
}

.lp-account-layout {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: clamp(24px, 4vw, 48px);
  align-items: start;
}
@media (max-width: 800px) { .lp-account-layout { grid-template-columns: 1fr; } }

.lp-account-sidebar { position: sticky; top: calc(var(--lp-header-h) + var(--lp-s-4)); }
.lp-account-sidebar__user {
  background: var(--lp-ink-800, rgba(255,255,255,.02));
  border: 1px solid var(--lp-line);
  border-radius: 6px;
  padding: var(--lp-s-6);
  text-align: center;
  margin-bottom: var(--lp-s-4);
}
.lp-account-sidebar__avatar {
  width: 60px;
  height: 60px;
  border: 2px solid var(--lp-line);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto var(--lp-s-3);
  font-family: var(--lp-font-display);
  font-size: 1.4rem;
  color: var(--lp-gold-500);
  background: var(--lp-ink-900);
}
.lp-account-sidebar__name {
  font-family: var(--lp-font-title);
  font-size: .9rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--lp-gold-pale, var(--lp-gold-300));
  margin: 0;
}
.lp-account-sidebar__email {
  font-family: var(--lp-font-mono);
  font-size: .58rem;
  letter-spacing: .08em;
  color: var(--lp-muted);
  margin: 4px 0 0;
}

.lp-account-nav {
  background: var(--lp-ink-800, rgba(255,255,255,.02));
  border: 1px solid var(--lp-line);
  border-radius: 6px;
  overflow: hidden;
}
.lp-account-nav__item {
  display: flex;
  align-items: center;
  gap: var(--lp-s-3);
  padding: var(--lp-s-4) var(--lp-s-5);
  font-family: var(--lp-font-mono);
  font-size: .64rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--lp-muted);
  border-bottom: 1px solid var(--lp-line);
  transition: background .15s, color .15s;
}
.lp-account-nav__item:last-child { border-bottom: none; }
.lp-account-nav__item:hover, .lp-account-nav__item.on {
  background: rgba(201,168,76,.06);
  color: var(--lp-gold-400);
}
.lp-account-nav__item.on { border-left: 2px solid var(--lp-gold-500); }
.lp-account-nav__ico { font-size: .9rem; flex-shrink: 0; width: 18px; text-align: center; }
.lp-account-nav__item--logout { color: #c46e6e; }
.lp-account-nav__item--logout:hover { background: rgba(196,110,110,.08); color: #e08a8a; }
.lp-account-back-links { display: none; }

.lp-account-main { min-width: 0; }
.lp-account-section {
  background: var(--lp-ink-800, rgba(255,255,255,.02));
  border: 1px solid var(--lp-line);
  border-radius: 6px;
  padding: var(--lp-s-6) var(--lp-s-6);
  margin-bottom: var(--lp-s-5);
}
.lp-account-section__title {
  font-family: var(--lp-font-title);
  font-size: .85rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
  margin: 0 0 var(--lp-s-5);
  padding-bottom: var(--lp-s-3);
  border-bottom: 1px solid var(--lp-line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--lp-s-3);
}
.lp-account-section__action {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
}
.lp-account-empty { color: var(--lp-muted); font-style: italic; }

.lp-account-links {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--lp-s-4);
}
.lp-account-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--lp-s-3);
  text-align: center;
  padding: var(--lp-s-6) var(--lp-s-4);
  background: var(--lp-ink-900);
  border: 1px solid var(--lp-line);
  border-radius: 6px;
  color: var(--lp-muted);
  font-family: var(--lp-font-mono);
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  transition: border-color .15s, color .15s;
}
.lp-account-link:hover { border-color: var(--lp-gold-600); color: var(--lp-gold-400); }
.lp-account-link__ico { font-size: 1.6rem; color: var(--lp-gold-500); }

.lp-order-row {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  gap: var(--lp-s-4);
  align-items: center;
  padding: var(--lp-s-5) 0;
  border-bottom: 1px solid var(--lp-line);
}
.lp-order-row:last-child { border-bottom: none; }
@media (max-width: 640px) { .lp-order-row { grid-template-columns: 1fr; } }
.lp-order-row__num {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--lp-muted);
}
.lp-order-row__title {
  display: block;
  font-family: var(--lp-font-title);
  font-size: .9rem;
  letter-spacing: .04em;
  color: var(--lp-parchment);
}
.lp-order-row__title:hover { color: var(--lp-gold-400); }
.lp-order-row__date {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .1em;
  color: var(--lp-muted);
  margin: 2px 0 0;
}
.lp-order-row__actions { display: flex; gap: var(--lp-s-3); flex-wrap: wrap; }

.lp-status-badge {
  display: inline-flex;
  align-items: center;
  font-family: var(--lp-font-mono);
  font-size: .58rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 999px;
  border: 1px solid;
  white-space: nowrap;
}

.lp-address-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: var(--lp-s-4);
}
.lp-address-card {
  background: var(--lp-ink-900);
  border: 1px solid var(--lp-line);
  border-radius: 6px;
  padding: var(--lp-s-5);
  display: flex;
  flex-direction: column;
  gap: var(--lp-s-3);
}
.lp-address-card__alias {
  font-family: var(--lp-font-title);
  font-size: .9rem;
  color: var(--lp-parchment);
  margin: 0;
}
.lp-address-card__text {
  font-size: .85rem;
  color: var(--lp-muted);
  line-height: 1.7;
  font-style: normal;
}
.lp-address-card__footer { display: flex; gap: var(--lp-s-4); padding-top: var(--lp-s-2); border-top: 1px solid var(--lp-line); }
.lp-address-card__delete {
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--lp-muted);
}
.lp-address-card__delete:hover { color: #e08a8a; }

#content .box {
  background: var(--lp-ink-900);
  border: 1px solid var(--lp-line);
  border-radius: 6px;
  padding: var(--lp-s-5) var(--lp-s-6);
  margin-bottom: var(--lp-s-4);
}
#content .box h3, #content .box h4 {
  font-family: var(--lp-font-title);
  font-size: .85rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--lp-gold-500);
  margin: 0 0 var(--lp-s-3);
}
#content .box address { font-style: normal; color: var(--lp-muted); line-height: 1.7; }
#content .box ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--lp-s-2); }
#content .box li { color: var(--lp-muted); font-size: .875rem; }
#content .box li strong { color: var(--lp-parchment); margin-right: 6px; }

#content table.table {
  width: 100%;
  border-collapse: collapse;
  font-size: .875rem;
}
#content table.table th {
  text-align: left;
  font-family: var(--lp-font-mono);
  font-size: .6rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--lp-muted);
  padding: var(--lp-s-3);
  border-bottom: 1px solid var(--lp-line);
}
#content table.table td {
  padding: var(--lp-s-3);
  color: var(--lp-muted);
  border-bottom: 1px solid var(--lp-line);
}
#content table.table a { color: var(--lp-parchment); }
#content table.table a:hover { color: var(--lp-gold-400); }

#content .label.label-pill {
  display: inline-flex;
  align-items: center;
  font-family: var(--lp-font-mono);
  font-size: .58rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 999px;
  color: #07071a;
}

.hidden-sm-down, .hidden-xs-down { display: table; }
.hidden-md-up, .hidden-sm-up { display: none; }
@media (max-width: 767px) {
  .hidden-sm-down, .hidden-xs-down { display: none; }
  .hidden-md-up, .hidden-sm-up { display: block; }
}
.history-line, .shipping-line { padding: var(--lp-s-3) 0; border-bottom: 1px solid var(--lp-line); font-size: .85rem; color: var(--lp-muted); }

/* =========================================================
   CONTACT - C-05
   ========================================================= */
.lp-contact-hero {
  text-align: center;
  padding: clamp(40px, 7vw, 72px) 0 clamp(32px, 5vw, 48px);
  border-bottom: 1px solid var(--lp-line);
  margin-bottom: clamp(32px, 5vw, 48px);
}
.lp-contact-hero__title {
  font-family: var(--lp-font-display);
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  color: var(--lp-parchment);
  letter-spacing: .04em;
  margin: var(--lp-s-3) 0 var(--lp-s-4);
}
.lp-contact-hero__lead {
  font-size: 1rem;
  color: var(--lp-muted);
  max-width: 560px;
  margin: 0 auto;
}

.lp-contact-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: clamp(24px, 4vw, 48px);
  align-items: start;
  padding-bottom: clamp(40px, 6vw, 64px);
}
@media (max-width: 800px) { .lp-contact-layout { grid-template-columns: 1fr; } }

.lp-contact-form-card {
  background: var(--lp-ink-800, rgba(255,255,255,.02));
  border: 1px solid var(--lp-line);
  border-radius: 6px;
  padding: var(--lp-s-6);
}
.lp-contact-form-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--lp-s-4);
}
.lp-field { display: flex; flex-direction: column; gap: var(--lp-s-2); }
.lp-field--full { grid-column: 1 / -1; }
.lp-field label {
  font-family: var(--lp-font-mono);
  font-size: .62rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--lp-muted);
}
.lp-field input, .lp-field select, .lp-field textarea {
  background: var(--lp-ink-900);
  border: 1px solid var(--lp-line);
  border-radius: 4px;
  padding: 11px 14px;
  color: var(--lp-parchment);
  font-size: .9375rem;
  font-family: var(--lp-font-serif, inherit);
}
.lp-field input:focus, .lp-field select:focus, .lp-field textarea:focus {
  outline: none;
  border-color: var(--lp-gold-600);
}
.lp-field textarea { resize: vertical; min-height: 120px; }
.lp-contact-honeypot { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.lp-contact-form-footer { margin-top: var(--lp-s-5); display: flex; justify-content: flex-end; }

.lp-contact-notification {
  border-radius: 4px;
  padding: var(--lp-s-4);
  margin-bottom: var(--lp-s-5);
  font-size: .875rem;
}
.lp-contact-notification ul { list-style: none; margin: 0; padding: 0; }
.lp-contact-notification--success { background: rgba(110,196,154,.1); border: 1px solid rgba(110,196,154,.3); color: #6ec49a; }
.lp-contact-notification--error { background: rgba(196,110,110,.1); border: 1px solid rgba(196,110,110,.3); color: #e08a8a; }

.lp-contact-sidebar__block {
  background: var(--lp-ink-800, rgba(255,255,255,.02));
  border: 1px solid var(--lp-line);
  border-radius: 6px;
  padding: var(--lp-s-6);
  margin-bottom: var(--lp-s-4);
}
.lp-contact-info-row {
  display: flex;
  align-items: flex-start;
  gap: var(--lp-s-3);
  margin-bottom: var(--lp-s-4);
}
.lp-contact-info-row:last-child { margin-bottom: 0; }
.lp-contact-info-row__ico {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(201,168,76,.08);
  color: var(--lp-gold-500);
  font-size: .9rem;
}
.lp-contact-info-row strong {
  display: block;
  font-family: var(--lp-font-title);
  font-size: .8rem;
  letter-spacing: .04em;
  color: var(--lp-parchment);
}
.lp-contact-info-row span {
  font-size: .85rem;
  color: var(--lp-muted);
}

/* =========================================================
   PAGES CMS / SITEMAP - C-05
   ========================================================= */
.lp-cms { padding: clamp(32px, 5vw, 56px) 0; }
.lp-cms__wrap { max-width: 780px; margin: 0 auto; }

.lp-cms-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--lp-s-2); }
.lp-cms-list li { padding: var(--lp-s-2) 0; border-bottom: 1px solid var(--lp-line); }
.lp-cms-list li:last-child { border-bottom: none; }

.lp-sitemap-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(24px, 4vw, 40px);
  padding: clamp(32px, 5vw, 48px) 0;
}
@media (max-width: 900px) { .lp-sitemap-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .lp-sitemap-grid { grid-template-columns: 1fr; } }
.lp-sitemap-grid ul { list-style: none; margin: 0; padding: 0; }
.lp-sitemap-grid ul.nested { padding-left: var(--lp-s-4); margin-top: var(--lp-s-2); }
.lp-sitemap-grid li { margin-bottom: var(--lp-s-2); }
.lp-sitemap-grid a { color: var(--lp-muted); font-size: .875rem; transition: color .15s; }
.lp-sitemap-grid a:hover { color: var(--lp-gold-400); }

/* =========================================================
   PAGES D'ERREUR (404, maintenance) - C-05
   ========================================================= */
.lp-error-page { padding: clamp(56px, 10vw, 120px) 0; }
.lp-error-page__inner { max-width: 560px; margin: 0 auto; text-align: center; }
.lp-error-page__title, .lp-error-page h1, .lp-error-page h4 {
  font-family: var(--lp-font-display);
  font-size: clamp(1.6rem, 3.5vw, 2.2rem);
  color: var(--lp-parchment);
  margin: var(--lp-s-3) 0 var(--lp-s-4);
}
.lp-error-page__text, .lp-error-page p {
  font-size: 1rem;
  color: var(--lp-muted);
  margin: 0 0 var(--lp-s-5);
}
.lp-error-page__cta { display: inline-flex; margin-top: var(--lp-s-3); }

/* Layout autonome (maintenance) — pas de header/footer boutique */
body.lp-error-layout {
  background: var(--lp-ink-900);
  color: var(--lp-parchment);
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
#layout-error { width: 100%; }
.lp-maintenance {
  max-width: 560px;
  margin: 0 auto;
  padding: var(--lp-s-6);
  text-align: center;
}
.lp-maintenance__logo { height: 72px; margin-bottom: var(--lp-s-6); }
.lp-maintenance__logo-text {
  font-family: var(--lp-font-display);
  font-size: 1.4rem;
  color: var(--lp-gold-500);
  display: block;
  margin-bottom: var(--lp-s-6);
}
.lp-maintenance__title {
  font-family: var(--lp-font-display);
  font-size: clamp(1.6rem, 4vw, 2.4rem);
  color: var(--lp-parchment);
  margin: 0 0 var(--lp-s-5);
}
.lp-maintenance__content { color: var(--lp-muted); font-size: 1rem; line-height: 1.7; }

/* =========================================================
   CARTE DE FIDÉLITÉ — M-07 lpbdm_loyalty (resync maquette 19/08)
   ========================================================= */
.lp-loyalty {
  background: linear-gradient(135deg, var(--lp-ink-800), var(--lp-ink-850));
  border-top: 1px solid var(--lp-line);
  border-bottom: 1px solid var(--lp-line);
  padding: var(--lp-s-8) 0;
}
.lp-loyalty__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--lp-s-6);
  flex-wrap: wrap;
}
.lp-loyalty__icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--lp-gold-500);
  border: 1px solid var(--lp-gold-500);
  background: var(--lp-gold-glow);
}
.lp-loyalty__text { display: flex; align-items: center; gap: var(--lp-s-5); flex: 1; min-width: 260px; }
.lp-loyalty h3 { font-family: var(--lp-font-title); font-size: 1.3rem; color: var(--lp-parchment); margin-bottom: 4px; }
.lp-loyalty p { color: var(--lp-muted); margin: 0; max-width: 52ch; }

/* =========================================================
   PAGE CMS ÉDITORIALE — "L'Atelier" (id_cms=8)
   ========================================================= */
.lp-cms-hero {
  background: linear-gradient(180deg, var(--lp-ink-800) 0%, var(--lp-ink-900) 100%);
  border-bottom: 1px solid var(--lp-line);
  padding: var(--lp-s-9) 0;
}
.lp-cms-hero__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--lp-s-9);
  align-items: center;
}
.lp-cms-hero__title {
  font-family: var(--lp-font-display);
  font-size: clamp(2.2rem, 4.5vw, 3.6rem);
  color: var(--lp-gold-300);
  letter-spacing: .03em;
  line-height: 1.08;
  margin-bottom: var(--lp-s-5);
}
.lp-cms-hero__lead {
  font-family: var(--lp-font-serif);
  font-size: 1.1rem;
  color: var(--lp-muted);
  line-height: 1.8;
  font-style: italic;
  max-width: 44ch;
}
.lp-cms-hero__actions { display: flex; gap: var(--lp-s-4); flex-wrap: wrap; margin-top: var(--lp-s-6); }
.lp-cms-hero__visual {
  background: var(--lp-ink-800);
  border: 1px solid var(--lp-line);
  border-radius: var(--lp-r-lg);
  aspect-ratio: 4/3;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lp-cms-hero__visual img { max-width: 60%; height: auto; opacity: .92; }
@media (max-width: 768px) { .lp-cms-hero__inner { grid-template-columns: 1fr; } }

.lp-cms-counters {
  background: var(--lp-gold-glow);
  border-bottom: 1px solid var(--lp-line);
  padding: var(--lp-s-7) 0;
}
.lp-cms-counters__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--lp-s-5);
}
.lp-cms-counter { text-align: center; padding: var(--lp-s-5); }
.lp-cms-counter__num {
  font-family: var(--lp-font-display);
  font-size: 2.6rem;
  color: var(--lp-gold-500);
  letter-spacing: .03em;
  line-height: 1;
}
.lp-cms-counter__label {
  font-family: var(--lp-font-mono);
  font-size: .62rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--lp-muted);
  margin-top: var(--lp-s-3);
}
@media (max-width: 900px) { .lp-cms-counters__grid { grid-template-columns: repeat(2, 1fr); } }

.lp-cms-section { padding: var(--lp-s-9) 0; border-bottom: 1px solid var(--lp-line); }
.lp-cms-section:last-child { border-bottom: 0; }

.lp-cms-zigzag {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--lp-s-8);
  align-items: center;
  margin-bottom: var(--lp-s-8);
}
.lp-cms-zigzag:last-child { margin-bottom: 0; }
.lp-cms-zigzag--reverse .lp-cms-zigzag__img { order: 2; }
.lp-cms-zigzag--reverse .lp-cms-zigzag__text { order: 1; }
@media (max-width: 768px) {
  .lp-cms-zigzag { grid-template-columns: 1fr; }
  .lp-cms-zigzag--reverse .lp-cms-zigzag__img { order: 0; }
}
.lp-cms-zigzag__img {
  background: var(--lp-ink-800);
  border: 1px solid var(--lp-line);
  border-radius: var(--lp-r-md);
  aspect-ratio: 4/3;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--lp-font-display);
  font-size: 4rem;
  color: var(--lp-gold-500);
  opacity: .35;
}
.lp-cms-zigzag__text h3 {
  font-family: var(--lp-font-title);
  font-size: 1.3rem;
  letter-spacing: .04em;
  color: var(--lp-gold-500);
  margin-bottom: var(--lp-s-4);
}
.lp-cms-zigzag__text p { color: var(--lp-muted); line-height: 1.8; margin-bottom: var(--lp-s-4); }
.lp-cms-zigzag__text p:last-child { margin-bottom: 0; }
.lp-cms-zigzag__text p em { color: var(--lp-parchment); }
.lp-cms-zigzag__text .lp-link-gold { margin-top: var(--lp-s-2); }

.lp-cms-team-pending {
  border: 1px dashed var(--lp-line);
  border-radius: var(--lp-r-md);
  padding: var(--lp-s-7);
  text-align: center;
  color: var(--lp-muted);
  font-style: italic;
  max-width: 60ch;
  margin: 0 auto;
}

.lp-cms-values {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--lp-s-5);
}
@media (max-width: 768px) { .lp-cms-values { grid-template-columns: 1fr; } }
.lp-cms-value__icon { font-size: 1.8rem; color: var(--lp-gold-500); margin-bottom: var(--lp-s-3); }
.lp-cms-value__title {
  font-family: var(--lp-font-title);
  font-size: 1rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--lp-gold-300);
  margin-bottom: var(--lp-s-3);
}
.lp-cms-value__text { color: var(--lp-muted); line-height: 1.8; }

.lp-cms-cta { background: var(--lp-ink-800); border-top: 1px solid var(--lp-line); padding: var(--lp-s-9) 0; text-align: center; }
.lp-cms-cta__title {
  font-family: var(--lp-font-display);
  font-size: clamp(1.6rem, 3.5vw, 2.6rem);
  color: var(--lp-gold-300);
  letter-spacing: .03em;
  margin-bottom: var(--lp-s-5);
}
.lp-cms-cta__lead { color: var(--lp-muted); max-width: 56ch; margin: 0 auto var(--lp-s-7); font-size: 1.05rem; }
.lp-cms-cta__actions { display: flex; gap: var(--lp-s-4); justify-content: center; flex-wrap: wrap; }

/* =========================================================
   MODALE AJOUT PANIER — ps_shoppingcart/modal.tpl (Bootstrap piloté par classic-core.js)
   ========================================================= */
.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1040;
  background: rgba(4,4,15,.8);
}
.modal-backdrop.fade { opacity: 0; transition: opacity .15s linear; }
.modal-backdrop.show { opacity: 1; }

#blockcart-modal.modal {
  position: fixed;
  inset: 0;
  z-index: 1050;
  display: none;
  overflow-x: hidden;
  overflow-y: auto;
  outline: 0;
}
#blockcart-modal.modal.show { display: block; }
#blockcart-modal .modal-dialog {
  position: relative;
  width: min(720px, 94vw);
  margin: 6vh auto;
  transform: translateY(-24px);
  transition: transform .3s ease-out;
}
#blockcart-modal.show .modal-dialog { transform: translateY(0); }
#blockcart-modal .modal-content {
  background: var(--lp-ink-800);
  border: 1px solid var(--lp-line);
  border-top: 2px solid var(--lp-gold-500);
  border-radius: var(--lp-r-lg);
  box-shadow: var(--lp-shadow-lg);
  overflow: hidden;
}
#blockcart-modal .modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--lp-s-4);
  padding: var(--lp-s-5);
  border-bottom: 1px solid var(--lp-line);
}
#blockcart-modal .modal-title {
  display: flex;
  align-items: center;
  gap: var(--lp-s-3);
  font-family: var(--lp-font-title);
  font-size: 1.05rem;
  color: var(--lp-gold-300);
  margin: 0;
}
#blockcart-modal .modal-title .material-icons { color: var(--lp-success); }
#blockcart-modal .close {
  background: none;
  border: 0;
  color: var(--lp-muted);
  cursor: pointer;
  padding: 4px;
  border-radius: var(--lp-r-sm);
  transition: color .2s, background .2s;
  line-height: 1;
  flex-shrink: 0;
}
#blockcart-modal .close:hover { color: var(--lp-parchment); background: rgba(255,255,255,.06); }
#blockcart-modal .modal-body {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: var(--lp-s-6);
  padding: var(--lp-s-6);
}
@media (max-width: 600px) { #blockcart-modal .modal-body { grid-template-columns: 1fr; } }
#blockcart-modal .divide-right {
  display: flex;
  gap: var(--lp-s-4);
  padding-right: var(--lp-s-6);
  border-right: 1px solid var(--lp-line);
}
@media (max-width: 600px) { #blockcart-modal .divide-right { border-right: 0; padding-right: 0; padding-bottom: var(--lp-s-5); border-bottom: 1px solid var(--lp-line); } }
#blockcart-modal .product-image {
  width: 96px;
  height: 96px;
  object-fit: cover;
  border-radius: var(--lp-r-md);
  border: 1px solid var(--lp-line);
  flex-shrink: 0;
}
#blockcart-modal .product-name {
  font-family: var(--lp-font-title);
  font-size: .95rem;
  color: var(--lp-parchment);
  margin: 0 0 var(--lp-s-2);
}
#blockcart-modal .product-price {
  font-family: var(--lp-font-title);
  color: var(--lp-gold-500);
  margin: 0 0 var(--lp-s-2);
}
#blockcart-modal .product-quantity {
  font-family: var(--lp-font-mono);
  font-size: .78rem;
  color: var(--lp-muted);
}
#blockcart-modal .cart-products-count {
  font-family: var(--lp-font-mono);
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--lp-muted);
  margin: 0 0 var(--lp-s-4);
}
#blockcart-modal .cart-content p {
  display: flex;
  justify-content: space-between;
  gap: var(--lp-s-3);
  font-size: .9rem;
  color: var(--lp-muted);
  margin: 0 0 var(--lp-s-2);
}
#blockcart-modal .product-total {
  padding-top: var(--lp-s-3);
  margin-top: var(--lp-s-2);
  border-top: 1px solid var(--lp-line);
  font-family: var(--lp-font-title);
  font-size: 1.05rem;
  color: var(--lp-parchment);
}
#blockcart-modal .product-total .value { color: var(--lp-gold-500); }
#blockcart-modal .cart-content-btn {
  display: flex;
  flex-direction: column;
  gap: var(--lp-s-3);
  margin-top: var(--lp-s-5);
}
#blockcart-modal .cart-content-btn .lp-btn { width: 100%; justify-content: center; }

/* ── Modale zoom images produit (loupe sur la couverture) ── */
#product-modal.modal {
  position: fixed;
  inset: 0;
  z-index: 1050;
  display: none;
  overflow-x: hidden;
  overflow-y: auto;
  outline: 0;
}
#product-modal.modal.show { display: block; }
#product-modal .modal-dialog {
  position: relative;
  width: min(900px, 94vw);
  margin: 6vh auto;
  transform: translateY(-24px);
  transition: transform .3s ease-out;
}
#product-modal.show .modal-dialog { transform: translateY(0); }
#product-modal .modal-content {
  background: var(--lp-ink-800);
  border: 1px solid var(--lp-line);
  border-top: 2px solid var(--lp-gold-500);
  border-radius: var(--lp-r-lg);
  box-shadow: var(--lp-shadow-lg);
  overflow: hidden;
}
#product-modal .modal-body { padding: var(--lp-s-6); }
#product-modal .close {
  position: absolute;
  top: var(--lp-s-4);
  right: var(--lp-s-4);
  z-index: 2;
  background: var(--lp-ink-900);
  border: 1px solid var(--lp-line);
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--lp-muted);
  cursor: pointer;
  transition: color .2s, background .2s;
}
#product-modal .close:hover { color: var(--lp-parchment); background: rgba(255,255,255,.06); }
#product-modal figure { margin: 0; text-align: center; }
#product-modal .product-cover-modal {
  max-width: 100%;
  max-height: 60vh;
  width: auto;
  border-radius: var(--lp-r-md);
}
#product-modal .image-caption { color: var(--lp-muted); margin-top: var(--lp-s-4); font-size: .9375rem; }
#product-modal #thumbnails { margin-top: var(--lp-s-5); }
#product-modal .js-modal-mask { overflow: visible; }
#product-modal .product-images {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--lp-s-3);
  list-style: none;
  margin: 0;
  padding: 0;
}
#product-modal .thumb-container {
  flex: 0 0 72px;
  width: 72px;
  border-radius: var(--lp-r-sm);
  overflow: hidden;
  border: 1px solid var(--lp-line);
  transition: border-color .15s;
}
#product-modal .thumb-container .thumb {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  cursor: pointer;
  opacity: .65;
  transition: opacity .15s;
}
#product-modal .thumb-container:hover { border-color: var(--lp-gold-500); }
#product-modal .thumb-container:hover .thumb { opacity: 1; }
#product-modal .arrows { display: none; }
