/* Sixtystones — refonte e-commerce
   Couleurs, type et grille définies via variables.
   Tweakable via le panneau. */

:root {
  /* Palette officielle Sixtystones : turquoise signature + ivoire/sable, accent terre */
  --ivory:        #FBF8F2;
  --paper:        #FFFFFF;
  --sand:         #ECE3D2;
  --ink:          #1B1B1B;
  --ink-soft:     #3A332E;
  --ink-mute:     #7A726A;
  --rule:         #E2DACA;
  --rule-soft:    #EFE9DC;

  --turquoise:    #88BFB9;  /* turquoise signature (bandeaux) */
  --turquoise-d:  #5E9892;
  --turquoise-l:  #B7D6D2;
  --terre:        #C8643D;  /* corail / terre cuite */
  --terre-deep:   #9D4A28;
  --ocre:         #C68B59;
  --dore:         #C9A86B;

  --accent:       var(--turquoise);
  --accent-deep:  var(--turquoise-d);

  --font-serif: 'Jost', system-ui, sans-serif;
  --font-sans:    'Jost', 'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --font-mono:    'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

  --maxw:         1480px;
  --gutter:       clamp(20px, 4vw, 64px);
  --section-y:    clamp(64px, 9vw, 128px);

  --shadow-card:  0 1px 0 rgba(42,36,32,.04), 0 18px 40px -28px rgba(42,36,32,.22);
  --easing:       cubic-bezier(.22,.61,.36,1);
}

/* — Tweakable typography pairings — */
:root[data-type="cormorant"] {
  --font-serif: 'Jost', system-ui, sans-serif;
  --font-sans:  'Jost', system-ui, sans-serif;
}
:root[data-type="fraunces"] {
  --font-serif: 'Jost', system-ui, sans-serif;
  --font-sans:  'Inter', system-ui, sans-serif;
}
:root[data-type="playfair"] {
  --font-serif: 'Jost', system-ui, sans-serif;
  --font-sans:  'Work Sans', system-ui, sans-serif;
}

/* — Tweakable accent — */
:root[data-accent="turquoise"]  { --accent: var(--turquoise); --accent-deep: var(--turquoise-d); }
:root[data-accent="terre"]      { --accent: var(--terre);     --accent-deep: var(--terre-deep); }
:root[data-accent="dore"]       { --accent: #B08C4A;          --accent-deep: #7E6228; }
:root[data-accent="ink"]        { --accent: var(--ink);       --accent-deep: #000; }

/* — Density — */
:root[data-density="airy"]    { --section-y: clamp(96px, 12vw, 168px); }
:root[data-density="regular"] { --section-y: clamp(64px, 9vw, 128px); }
:root[data-density="dense"]   { --section-y: clamp(40px, 6vw, 88px); }

/* ───────────────────────────────────────── Reset & base */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink);
  background: var(--ivory);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, svg { display: block; max-width: 100%; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; padding: 0; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; margin: 0; padding: 0; }
input, textarea, select { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 2px; }

.serif { font-family: var(--font-serif); font-weight: 500; letter-spacing: -0.005em; }
.mono  { font-family: var(--font-mono); }
.eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-mute);
}

.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--gutter); }

/* Section header — used across the page */
.section-head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 24px; margin-bottom: clamp(32px, 4vw, 56px);
  flex-wrap: wrap;
}
.section-head .titles { max-width: 880px; }
.section-head .eyebrow { margin-bottom: 14px; display: block; }
.section-head h2 {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: clamp(20px, 2.3vw, 29px);
  line-height: 1.15;
  letter-spacing: -0.015em;
  margin: 0;
  text-wrap: balance;
}
.section-head h2 em { font-style: italic; color: var(--accent); font-weight: 400; }
.section-head .lead {
  margin-top: 14px; color: var(--ink-soft); max-width: 52ch;
  font-size: 17px; line-height: 1.55;
}
.section-head .link-more {
  font-size: 13px; letter-spacing: 0.04em;
  border-bottom: 1px solid currentColor; padding-bottom: 2px;
  align-self: flex-end;
  transition: color .25s var(--easing);
}
.section-head .link-more:hover { color: var(--accent); }

/* ───────────────────────────────────────── Announce bar (ticker style éditorial) */
.announce {
  background: var(--turquoise);
  color: #FFFFFF;
  font-size: 13px;
  letter-spacing: 0.01em;
  overflow: hidden;
  position: relative;
  height: 44px;
}
.announce-track {
  display: flex;
  align-items: center;
  gap: 60px;
  height: 100%;
  animation: announce-scroll 60s linear infinite;
  width: max-content;
  white-space: nowrap;
}
.announce:hover .announce-track { animation-play-state: paused; }
.announce-item {
  display: inline-flex; align-items: center; gap: 10px;
  font-weight: 400;
}
.announce-item .dot { width: 5px; height: 5px; background: #FFFFFF; border-radius: 999px; display: inline-block; opacity: 0.7; }
.announce-item .gift { font-size: 14px; }
.announce code {
  font-family: var(--font-mono);
  font-size: 11.5px;
  padding: 2px 8px;
  border: 1px solid rgba(255,255,255,.45);
  background: rgba(255,255,255,.12);
  border-radius: 999px;
  letter-spacing: 0.08em;
}
@keyframes announce-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ───────────────────────────────────────── Header */
.header {
  position: relative; z-index: 50;
  background: var(--paper);
  border-bottom: 1px solid transparent;
  transition: background .3s var(--easing), border-color .3s var(--easing), box-shadow .3s var(--easing);
}
.header.is-stuck {
  background: var(--paper);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-bottom-color: transparent;
}
.header-inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  height: clamp(80px, 7vw, 96px);
  gap: 24px;
}
.header.is-stuck .header-inner { height: clamp(80px, 7vw, 96px); }

.logo {
  font-family: var(--font-serif);
  font-size: 26px; font-weight: 500;
  letter-spacing: 0.02em;
  display: inline-flex; align-items: center; gap: 10px;
  justify-self: start;
}
.logo {
  /* Logo Sixtystones : Sixty / 60 / Stones empilé dans un cercle turquoise */
}
.logo .glyph {
  width: 44px; height: 44px;
  border: 1.6px solid var(--turquoise);
  border-radius: 999px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  background: var(--paper);
  color: var(--turquoise-d);
  font-family: var(--font-sans); font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  line-height: 1;
  gap: 1px;
  font-size: 8.5px;
}
.logo .glyph .num {
  font-family: var(--font-sans);
  font-size: 9px; letter-spacing: 0.04em; opacity: 0.7;
}
.logo .glyph::before,
.logo .glyph::after {
  content: ''; width: 14px; height: 1px; background: var(--turquoise);
  display: none;
}
.logo .name { line-height: 1; display: none; }
.logo .name em { font-style: italic; color: var(--accent); }

.nav-primary { display: flex; gap: clamp(16px, 2vw, 28px); justify-self: center; }
.nav-primary__head { display: none; } /* visible uniquement dans le tiroir mobile */
.nav-primary a {
  position: relative;
  font-size: 14px; letter-spacing: 0.02em;
  padding: 8px 2px;
  color: var(--ink-soft);
  transition: color .2s var(--easing);
}
.nav-primary a::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 2px;
  height: 1px; background: var(--accent);
  transform: scaleX(0); transform-origin: left;
  transition: transform .35s var(--easing);
}
.nav-primary a:hover, .nav-primary a.is-active { color: var(--ink); }
.nav-primary a:hover::after, .nav-primary a.is-active::after { transform: scaleX(1); }

.nav-icons { display: flex; align-items: center; gap: 4px; justify-self: end; }
.icon-btn {
  width: 40px; height: 40px;
  display: grid; place-items: center;
  border-radius: 999px;
  color: var(--ink);
  transition: background .2s var(--easing), color .2s var(--easing);
  position: relative;
}
.icon-btn:hover { background: var(--sand); }
.icon-btn .badge {
  position: absolute; top: 6px; right: 4px;
  min-width: 16px; height: 16px; padding: 0 4px;
  background: var(--accent); color: var(--paper);
  font-size: 10px; font-family: var(--font-mono); font-weight: 500;
  letter-spacing: 0; line-height: 16px;
  border-radius: 999px; text-align: center;
}

/* Mega menu — 4 colonnes : Type · Pierre · Vertu · Cartes éditoriales */
.megamenu {
  position: absolute; left: 0; right: 0; top: 100%;
  background: var(--paper);
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  opacity: 0; pointer-events: none;
  transform: translateY(-8px);
  transition: opacity .25s var(--easing), transform .25s var(--easing);
  box-shadow: 0 30px 60px -40px rgba(27,27,27,.18);
}
.megamenu.is-open { opacity: 1; pointer-events: auto; transform: translateY(0); }
.megamenu-inner {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1.4fr;
  gap: clamp(28px, 3vw, 56px);
  padding: 40px 0 44px;
}
.mm-col h6 {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-mute);
  margin: 0 0 18px;
  font-weight: 500;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--rule-soft);
}
.mm-list { display: flex; flex-direction: column; gap: 4px; }
.mm-list a {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--font-sans);
  font-size: 14px;
  color: var(--ink);
  padding: 6px 0;
  transition: color .2s var(--easing), padding-left .25s var(--easing);
  position: relative;
}
.mm-list a:hover { color: var(--accent-deep); padding-left: 6px; }
.mm-list a .arrow-mini {
  opacity: 0; transform: translateX(-4px);
  transition: opacity .2s var(--easing), transform .2s var(--easing);
  color: var(--accent-deep);
}
.mm-list a:hover .arrow-mini { opacity: 1; transform: translateX(0); }
.mm-list a .stone-dot {
  width: 16px; height: 16px; border-radius: 999px; flex-shrink: 0;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.06);
}
.mm-list a .stone-dot.bordered { box-shadow: inset 0 0 0 1px rgba(0,0,0,0.18); }
.mm-list a .tag {
  font-family: var(--font-mono); font-size: 9px; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--accent-deep);
  background: rgba(136,191,185,0.18);
  padding: 2px 6px; border-radius: 2px;
  margin-left: auto;
}

.mm-feat { display: grid; gap: 12px; grid-template-columns: 1fr 1fr; }
.mm-feat-card {
  position: relative;
  aspect-ratio: 4/5;
  background: var(--sand);
  overflow: hidden;
  cursor: pointer;
  display: flex; flex-direction: column; justify-content: flex-end;
}
.mm-feat-card .mm-feat-art { position: absolute; inset: 0; transition: transform .8s var(--easing); }
.mm-feat-card:hover .mm-feat-art { transform: scale(1.04); }
.mm-feat-card .mm-feat-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, transparent 40%, rgba(27,27,27,0.6) 100%);
}
.mm-feat-card .mm-feat-body {
  position: relative; z-index: 2;
  padding: 14px;
  color: #FFFFFF;
  display: flex; flex-direction: column; gap: 2px;
}
.mm-feat-card .mm-feat-body .eyebrow { color: rgba(255,255,255,0.85); }
.mm-feat-card .mm-feat-body strong {
  font-family: var(--font-serif); font-size: 18px; font-weight: 500; line-height: 1.15;
}
.mm-feat-card .mm-feat-body span { font-size: 12px; opacity: 0.85; }
.mm-feat-card .mm-feat-body .cta {
  margin-top: 8px;
  font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.16em;
  text-transform: uppercase;
  background: var(--paper); color: var(--ink);
  padding: 6px 10px; align-self: flex-start;
  display: inline-flex; align-items: center; gap: 6px;
  transition: background .2s var(--easing);
}
.mm-feat-card:hover .mm-feat-body .cta { background: var(--accent); color: #FFFFFF; }

.mm-bottom {
  border-top: 1px solid var(--rule-soft);
  padding: 14px 0;
  display: flex; gap: 24px; flex-wrap: wrap; align-items: center;
  font-size: 12.5px; color: var(--ink-mute);
}
.mm-bottom strong { color: var(--ink); font-weight: 500; }
.mm-bottom a { color: var(--ink); border-bottom: 1px solid currentColor; padding-bottom: 1px; transition: color .2s var(--easing); }
.mm-bottom a:hover { color: var(--accent-deep); }
.mm-bottom .sep { color: var(--rule); }

/* ───────────────────────────────────────── Hero */
.hero {
  position: relative;
  padding: clamp(48px, 8vw, 96px) 0 clamp(64px, 9vw, 112px);
  background:
    radial-gradient(circle at 75% 25%, rgba(136,191,185,0.10), transparent 55%),
    linear-gradient(to bottom, var(--paper), var(--ivory));
}
.hero-grid {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
}
.hero-copy .eyebrow { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 28px; }
.hero-copy .eyebrow .dot { background: var(--accent); }
.hero h1 {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: clamp(44px, 7.5vw, 104px);
  line-height: 0.96;
  letter-spacing: -0.025em;
  margin: 0;
  text-wrap: balance;
}
.hero h1 em { font-style: italic; color: var(--accent); font-weight: 400; }
.hero h1 .underline {
  display: inline-block; position: relative;
}
.hero h1 .underline::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: -2px;
  height: 1px; background: var(--ink); opacity: 0.25;
}
.hero p.lead {
  margin-top: 28px;
  font-size: 19px; line-height: 1.55;
  color: var(--ink-soft); max-width: 44ch;
}
.hero-ctas { margin-top: 36px; display: flex; gap: 14px; flex-wrap: wrap; }
.hero-meta {
  margin-top: 40px; display: flex; gap: 28px;
  font-size: 12.5px; color: var(--ink-mute);
  letter-spacing: 0.02em;
}
.hero-meta strong { color: var(--ink); font-weight: 500; }
.hero-meta li { display: flex; align-items: center; gap: 10px; }
.hero-meta li + li { padding-left: 28px; border-left: 1px solid var(--rule); }

/* Hero visual — composition main + cartouches */
.hero-stage {
  position: relative;
  aspect-ratio: 5/6;
  background: var(--sand);
  overflow: hidden;
  border-radius: 2px;
}
.hero-stage .hero-photo { position: absolute; inset: 0; }
.hero-stage .hero-tag {
  position: absolute; bottom: 24px; left: 24px;
  background: var(--paper);
  padding: 14px 18px;
  display: flex; flex-direction: column; gap: 4px;
  border-radius: 2px;
  box-shadow: var(--shadow-card);
  max-width: 240px;
}
.hero-stage .hero-tag .eyebrow { color: var(--accent); }
.hero-stage .hero-tag strong { font-family: var(--font-serif); font-size: 20px; font-weight: 500; }
.hero-stage .hero-tag span { font-size: 13px; color: var(--ink-soft); }
.hero-stage .hero-corner {
  position: absolute; top: 16px; right: 16px;
  font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.18em;
  color: var(--paper); text-transform: uppercase;
  background: rgba(42,36,32,0.6); padding: 6px 10px;
  border-radius: 2px;
}
.hero-side {
  position: absolute; right: -36px; bottom: -36px;
  width: 50%; aspect-ratio: 1;
  background: var(--paper);
  border: 1px solid var(--rule);
  display: none;
}

/* CTAs */
.btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 16px 28px;
  font-size: 13.5px; letter-spacing: 0.05em;
  border-radius: 999px;
  font-weight: 500;
  transition: background .25s var(--easing), color .25s var(--easing), transform .25s var(--easing), border-color .25s var(--easing);
}
.btn-primary {
  background: var(--ink); color: #FFFFFF;
  border: 1px solid var(--ink);
}
.btn-primary:hover { background: var(--turquoise-d); border-color: var(--turquoise-d); }
.btn-ghost {
  background: transparent; color: var(--ink);
  border: 1px solid var(--ink);
}
.btn-ghost:hover { background: var(--ink); color: var(--paper); }
.btn-accent { background: var(--accent); color: var(--paper); border: 1px solid var(--accent); }
.btn-accent:hover { background: var(--accent-deep); border-color: var(--accent-deep); }
.btn .arrow { transition: transform .25s var(--easing); display: inline-block; }
.btn:hover .arrow { transform: translateX(4px); }
.btn-small { padding: 11px 20px; font-size: 12px; }
.btn-large { padding: 20px 36px; font-size: 14px; letter-spacing: 0.06em; }
.btn-white { background: #FFFFFF; color: var(--ink); border: 1px solid #FFFFFF; }
.btn-white:hover { background: var(--ink); color: #FFFFFF; border-color: var(--ink); }

/* ───────────────────────────────────────── Trust strip (under hero) */
.trust-strip {
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  background: var(--ivory);
}
.trust-strip-inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}
.trust-cell {
  padding: 20px 24px;
  display: flex; align-items: center; gap: 14px;
  font-size: 13.5px;
  border-left: 1px solid var(--rule);
}
.trust-cell:first-child { border-left: 0; }
.trust-cell .ic { color: var(--accent); flex: 0 0 auto; }
.trust-cell strong { font-weight: 500; display: block; }
.trust-cell span { color: var(--ink-mute); font-size: 12px; display: block; margin-top: 1px; }

/* ───────────────────────────────────────── Categories */
.cats {
  padding: var(--section-y) 0;
}
.cats-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px;
}
.cat-card {
  position: relative;
  aspect-ratio: 3/4;
  background: var(--sand);
  overflow: hidden;
  border-radius: 2px;
  cursor: pointer;
}
.cat-card:nth-child(6n+1) { grid-column: span 2; }
.cat-card:nth-child(6n+2) { grid-column: span 2; aspect-ratio: 3/4; }
.cat-card:nth-child(6n+3) { grid-column: span 2; aspect-ratio: 3/4; }
.cat-card:nth-child(6n+4) { grid-column: span 3; aspect-ratio: 5/4; }
.cat-card:nth-child(6n+5) { grid-column: span 3; aspect-ratio: 5/4; }
.cat-card:nth-child(6n+6) { display: none; }
.cat-card .cat-art { position: absolute; inset: 0; transition: transform 1s var(--easing); }
.cat-card:hover .cat-art { transform: scale(1.04); }
.cat-card .cat-label {
  position: absolute; left: 20px; right: 20px; bottom: 20px;
  display: flex; flex-direction: column; gap: 2px;
  color: var(--paper);
  z-index: 2;
}
.cat-card .cat-label h3 { font-family: var(--font-serif); font-size: 26px; font-weight: 500; margin: 0; line-height: 1.05; }
.cat-card .cat-label .count { font-size: 12px; letter-spacing: 0.04em; opacity: 0.85; }
.cat-card .cat-cta {
  position: absolute; left: 20px; bottom: 20px;
  background: var(--paper); color: var(--ink);
  padding: 9px 14px; font-size: 12px; letter-spacing: 0.04em;
  opacity: 0; transform: translateY(8px);
  transition: opacity .3s var(--easing), transform .3s var(--easing);
  display: inline-flex; gap: 8px; align-items: center;
}
.cat-card:hover .cat-cta { opacity: 1; transform: translateY(0); }
.cat-card:hover .cat-label { opacity: 0; transform: translateY(-6px); transition: opacity .25s var(--easing), transform .25s var(--easing); }
.cat-card .cat-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, transparent 45%, rgba(42,36,32,0.55) 100%);
  z-index: 1;
}

/* ───────────────────────────────────────── Featured products */
.featured { padding: 0 0 var(--section-y); }
.products-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(20px, 2.4vw, 32px) clamp(16px, 1.8vw, 24px);
}
.product {
  display: flex; flex-direction: column;
  cursor: pointer;
}
.product-media {
  position: relative;
  aspect-ratio: 1;
  background: var(--sand);
  overflow: hidden;
  border-radius: 2px;
}
.product-media .layer { position: absolute; inset: 0; transition: opacity .55s var(--easing), transform .8s var(--easing); }
.product-media .layer.alt { opacity: 0; transform: scale(1.04); }
.product:hover .product-media .layer.main { opacity: 0; }
.product:hover .product-media .layer.alt  { opacity: 1; transform: scale(1); }

.product-badges {
  position: absolute; top: 12px; left: 12px;
  display: flex; flex-direction: column; gap: 6px; align-items: flex-start;
  z-index: 3;
}
.badge {
  font-family: var(--font-mono); font-size: 9.5px; letter-spacing: 0.12em;
  text-transform: uppercase; padding: 4px 8px; border-radius: 2px;
  background: var(--paper); color: var(--ink); border: 1px solid var(--rule);
}
.badge.accent { background: var(--accent); color: var(--paper); border-color: var(--accent); }
.badge.ink { background: var(--ink); color: var(--paper); border-color: var(--ink); }

.product-actions {
  position: absolute; right: 12px; top: 12px;
  display: flex; flex-direction: column; gap: 6px; z-index: 3;
  opacity: 0; transform: translateX(6px); transition: opacity .3s var(--easing), transform .3s var(--easing);
}
.product:hover .product-actions { opacity: 1; transform: translateX(0); }
.product-actions .pa {
  width: 36px; height: 36px;
  background: var(--paper); color: var(--ink);
  display: grid; place-items: center;
  border-radius: 999px;
  border: 1px solid var(--rule);
  transition: background .2s var(--easing), color .2s var(--easing);
}
.product-actions .pa:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.product-actions .pa.is-on { background: var(--accent); color: var(--paper); border-color: var(--accent); }

.product-quickview {
  position: absolute; left: 12px; right: 12px; bottom: 12px;
  background: var(--paper); color: var(--ink);
  padding: 11px 14px;
  font-size: 12.5px; letter-spacing: 0.04em;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  opacity: 0; transform: translateY(6px);
  transition: opacity .3s var(--easing), transform .3s var(--easing), background .2s var(--easing), color .2s var(--easing);
  z-index: 3;
  border-radius: 2px;
}
.product:hover .product-quickview { opacity: 1; transform: translateY(0); }
.product-quickview:hover { background: var(--ink); color: var(--paper); }

.product-info { padding: 14px 2px 0; display: flex; flex-direction: column; gap: 4px; }
.product-info .rating { display: inline-flex; align-items: center; gap: 6px; color: var(--ink-mute); font-size: 11.5px; }
.product-info .rating .stars { color: var(--accent); letter-spacing: 0.5px; font-size: 11px; }
.product-info h3 {
  font-family: var(--font-serif); font-weight: 500; font-size: 19px; line-height: 1.2;
  margin: 2px 0; color: var(--ink);
  letter-spacing: -0.005em;
}
.product-info .stone-label {
  font-size: 11.5px; color: var(--ink-mute); letter-spacing: 0.02em;
  display: flex; align-items: center; gap: 6px;
}
.product-info .stone-label .stone-dot { width: 8px; height: 8px; border-radius: 999px; display: inline-block; }
.product-info .price { display: flex; align-items: baseline; gap: 8px; margin-top: 8px; }
.product-info .price .now { font-family: var(--font-sans); font-weight: 500; font-size: 16px; color: var(--ink); }
.product-info .price .was { font-size: 13px; color: var(--ink-mute); text-decoration: line-through; }
.product-info .price .save { font-size: 11px; color: var(--accent); font-family: var(--font-mono); letter-spacing: 0.08em; text-transform: uppercase; }

/* ───────────────────────────────────────── Storytelling */
.story {
  background: var(--paper);
  padding: var(--section-y) 0;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.story-grid {
  display: grid; grid-template-columns: 1.1fr 1fr;
  gap: clamp(40px, 6vw, 96px);
  align-items: center;
}
.story-media {
  aspect-ratio: 4/5;
  background: var(--sand);
  position: relative;
  overflow: hidden;
}
.story-stamp {
  position: absolute; right: 16px; top: 16px;
  width: 110px; height: 110px;
  border: 1px solid var(--paper); border-radius: 999px;
  display: grid; place-items: center;
  color: var(--paper);
  font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.16em; text-align: center; text-transform: uppercase;
  background: rgba(42,36,32,0.35);
  backdrop-filter: blur(2px);
}
.story-stamp .yr { font-family: var(--font-serif); font-size: 28px; font-weight: 500; display: block; line-height: 1; letter-spacing: 0; }
.story-text .eyebrow { display: block; margin-bottom: 18px; }
.story-text h2 {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(34px, 4.6vw, 60px); line-height: 1.04;
  letter-spacing: -0.015em; margin: 0;
  text-wrap: balance;
}
.story-text h2 em { font-style: italic; color: var(--accent); font-weight: 400; }
.story-text p { font-size: 17px; line-height: 1.65; color: var(--ink-soft); margin: 24px 0 0; max-width: 52ch; }
.story-text .signature { margin-top: 32px; font-family: var(--font-serif); font-style: italic; font-size: 22px; color: var(--ink); }
.story-text .signature span { display: block; font-family: var(--font-sans); font-style: normal; font-size: 12px; color: var(--ink-mute); letter-spacing: 0.08em; text-transform: uppercase; margin-top: 4px; }
.story-text .story-cta { margin-top: 32px; display: inline-flex; }

.story-pillars {
  margin-top: clamp(56px, 7vw, 88px);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  border-top: 1px solid var(--rule);
  padding-top: 40px;
}
.pillar { display: flex; flex-direction: column; gap: 10px; }
.pillar .ic { color: var(--accent); }
.pillar h4 { font-family: var(--font-serif); font-weight: 500; font-size: 22px; margin: 0; }
.pillar p { font-size: 13.5px; color: var(--ink-soft); line-height: 1.55; margin: 0; }

/* ───────────────────────────────────────── Deals */
.deals { padding: var(--section-y) 0; }
.deals-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(16px, 1.8vw, 24px);
}

/* ───────────────────────────────────────── Reassurance band */
.reassure {
  background: var(--turquoise);
  color: #FFFFFF;
  padding: clamp(48px, 6vw, 72px) 0;
}
.reassure-inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  align-items: stretch;
}
.r-cell {
  display: flex; flex-direction: column; gap: 8px;
  padding: 0 12px;
  border-left: 1px solid rgba(255,255,255,0.22);
}
.r-cell:first-child { border-left: 0; padding-left: 0; }
.r-cell .ic { color: #FFFFFF; margin-bottom: 8px; opacity: 0.95; }
.r-cell strong { font-family: var(--font-serif); font-size: 22px; font-weight: 500; color: #FFFFFF; }
.r-cell span { font-size: 13px; color: rgba(255,255,255,0.82); line-height: 1.5; }

/* ───────────────────────────────────────── Newsletter */
.news {
  padding: var(--section-y) 0;
  background:
    radial-gradient(circle at 20% 80%, rgba(184,92,56,.08), transparent 50%),
    var(--paper);
  border-top: 1px solid var(--rule);
}
.news-inner {
  max-width: 680px; margin: 0 auto; text-align: center;
}
.news .eyebrow { display: block; margin-bottom: 18px; }
.news h2 {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(32px, 4vw, 52px); line-height: 1.08;
  letter-spacing: -0.015em; margin: 0;
}
.news h2 em { font-style: italic; color: var(--accent); font-weight: 400; }
.news p { margin: 18px auto 0; max-width: 48ch; color: var(--ink-soft); font-size: 16px; }
.news-form {
  margin-top: 32px;
  display: flex; gap: 8px;
  max-width: 480px; margin-left: auto; margin-right: auto;
  border-bottom: 1px solid var(--ink);
  padding-bottom: 4px;
}
.news-form input {
  flex: 1; min-width: 0;
  background: transparent; border: 0;
  padding: 12px 4px;
  font-size: 16px;
  color: var(--ink);
  outline: none;
}
.news-form input::placeholder { color: var(--ink-mute); }
.news-form button {
  font-size: 13px; letter-spacing: 0.04em;
  padding: 12px 4px;
  font-weight: 500;
  display: inline-flex; align-items: center; gap: 8px;
  transition: gap .25s var(--easing), color .25s var(--easing);
}
.news-form button:hover { gap: 12px; color: var(--accent); }
.news-consent {
  display: flex; align-items: center; gap: 10px;
  margin-top: 18px; justify-content: center;
  font-size: 11.5px; color: var(--ink-mute);
}
.news-consent input { accent-color: var(--accent); }

/* ───────────────────────────────────────── Footer */
.footer {
  background: var(--paper);
  border-top: 1px solid var(--rule);
  padding: clamp(56px, 6vw, 88px) 0 32px;
}
.footer-inner {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: clamp(28px, 4vw, 56px);
  padding-bottom: 56px;
  border-bottom: 1px solid var(--rule);
}
.footer h5 {
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-mute);
  margin: 0 0 18px;
}
.footer ul { display: flex; flex-direction: column; gap: 10px; }
.footer a { font-size: 14px; color: var(--ink-soft); transition: color .2s var(--easing); }
.footer a:hover { color: var(--accent); }
.footer .brand-block .serif { font-size: 32px; line-height: 1; display: block; margin-bottom: 16px; }
.footer .brand-block .serif em { color: var(--accent); font-style: italic; }
.footer .brand-block p { font-size: 13.5px; line-height: 1.6; color: var(--ink-soft); max-width: 36ch; margin: 0 0 18px; }
.footer .socials { display: flex; gap: 8px; }
.footer .socials a {
  width: 36px; height: 36px; display: grid; place-items: center;
  border: 1px solid var(--rule); border-radius: 999px;
  transition: background .2s var(--easing), color .2s var(--easing), border-color .2s var(--easing);
}
.footer .socials a:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }

.footer-bottom {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 16px;
  padding-top: 24px;
  font-size: 12px;
  color: var(--ink-mute);
}
.pay-strip { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.pay-strip span {
  font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ink-mute);
  padding: 6px 10px;
  border: 1px solid var(--rule);
  border-radius: 2px;
}

.footer-legal { display: flex; gap: 18px; flex-wrap: wrap; }

/* ───────────────────────────────────────── Cart drawer */
.scrim {
  position: fixed; inset: 0;
  background: rgba(42,36,32,0.42);
  z-index: 80;
  opacity: 0; pointer-events: none;
  transition: opacity .35s var(--easing);
}
.scrim.is-on { opacity: 1; pointer-events: auto; }

.drawer {
  position: fixed; top: 0; right: 0; bottom: 0;
  width: min(440px, 100vw);
  background: var(--paper);
  z-index: 90;
  transform: translateX(100%);
  transition: transform .42s var(--easing);
  display: flex; flex-direction: column;
}
.drawer.is-open { transform: translateX(0); }
.drawer-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 22px 24px;
  border-bottom: 1px solid var(--rule);
}
.drawer-head .title {
  font-family: var(--font-serif); font-size: 24px; font-weight: 500;
  display: flex; align-items: baseline; gap: 10px;
}
.drawer-head .count { font-family: var(--font-mono); font-size: 11px; color: var(--ink-mute); letter-spacing: 0.1em; }
.drawer-body { flex: 1; overflow-y: auto; padding: 8px 24px; }
.drawer-body .empty {
  text-align: center; padding: 64px 24px;
  color: var(--ink-mute); font-size: 14px;
}
.drawer-body .empty .glyph {
  width: 56px; height: 56px; margin: 0 auto 18px;
  border: 1px solid var(--rule); border-radius: 999px;
  display: grid; place-items: center; color: var(--ink-mute);
}
.drawer-body .empty h4 { font-family: var(--font-serif); font-size: 22px; color: var(--ink); margin: 0 0 8px; }

.cart-line {
  display: grid; grid-template-columns: 80px 1fr auto; gap: 16px;
  padding: 18px 0; border-bottom: 1px solid var(--rule-soft);
  align-items: center;
}
.cart-line .thumb {
  width: 80px; aspect-ratio: 1; background: var(--sand);
  position: relative; overflow: hidden;
}
.cart-line .meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.cart-line .meta strong { font-family: var(--font-serif); font-size: 16px; font-weight: 500; line-height: 1.2; }
.cart-line .meta .opt { font-size: 12px; color: var(--ink-mute); }
.cart-line .qty {
  display: inline-flex; align-items: center;
  border: 1px solid var(--rule);
  border-radius: 2px;
  margin-top: 6px;
  font-size: 12.5px;
  width: max-content;
}
.cart-line .qty button { width: 26px; height: 26px; display: grid; place-items: center; }
.cart-line .qty span { padding: 0 8px; font-variant-numeric: tabular-nums; }
.cart-line .price-col { text-align: right; display: flex; flex-direction: column; gap: 4px; align-items: flex-end; }
.cart-line .price-col .now { font-family: var(--font-sans); font-size: 15px; font-weight: 500; }
.cart-line .price-col .remove { font-size: 11px; color: var(--ink-mute); text-decoration: underline; text-underline-offset: 3px; }
.cart-line .price-col .remove:hover { color: var(--terre); }

.drawer-foot {
  border-top: 1px solid var(--rule);
  padding: 20px 24px 24px;
  background: var(--paper);
}
.drawer-foot .row { display: flex; justify-content: space-between; font-size: 14px; padding: 4px 0; }
.drawer-foot .row.total { font-family: var(--font-serif); font-size: 22px; font-weight: 500; padding-top: 12px; border-top: 1px solid var(--rule-soft); margin-top: 6px; }
.drawer-foot .ship-progress {
  margin: 10px 0 16px;
  font-size: 11.5px; color: var(--ink-soft);
  font-family: var(--font-mono); letter-spacing: 0.04em;
}
.drawer-foot .ship-progress .bar { margin-top: 8px; height: 3px; background: var(--rule); position: relative; overflow: hidden; border-radius: 2px; }
.drawer-foot .ship-progress .bar i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--accent); transition: width .6s var(--easing); }
.drawer-foot .checkout {
  margin-top: 14px; width: 100%; justify-content: center;
}

/* ───────────────────────────────────────── Quick view modal */
.modal {
  position: fixed; inset: 0;
  z-index: 100;
  display: grid; place-items: center;
  padding: 24px;
  opacity: 0; pointer-events: none;
  transition: opacity .3s var(--easing);
}
.modal.is-open { opacity: 1; pointer-events: auto; }
.modal-back {
  position: absolute; inset: 0;
  background: rgba(42,36,32,0.42);
}
.modal-body {
  position: relative;
  background: var(--paper);
  width: min(940px, 100%);
  max-height: 86vh;
  display: grid; grid-template-columns: 1.05fr 1fr;
  overflow: hidden;
  transform: translateY(12px);
  transition: transform .35s var(--easing);
  border-radius: 2px;
}
.modal.is-open .modal-body { transform: translateY(0); }
.modal-close {
  position: absolute; top: 12px; right: 12px;
  width: 36px; height: 36px; display: grid; place-items: center;
  background: var(--paper); border-radius: 999px; z-index: 2;
  border: 1px solid var(--rule);
}
.modal-media { aspect-ratio: 1; background: var(--sand); position: relative; }
.modal-content { padding: 36px; display: flex; flex-direction: column; gap: 14px; overflow-y: auto; }
.modal-content h2 { font-family: var(--font-serif); font-size: 32px; font-weight: 500; margin: 0; line-height: 1.05; }
.modal-content .stone-label { font-size: 12px; color: var(--ink-mute); letter-spacing: 0.02em; display: inline-flex; gap: 6px; align-items: center; }
.modal-content .price { display: flex; align-items: baseline; gap: 8px; margin: 4px 0; }
.modal-content .price .now { font-family: var(--font-serif); font-size: 28px; font-weight: 500; }
.modal-content .price .was { font-size: 16px; color: var(--ink-mute); text-decoration: line-through; }
.modal-content .rating { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--ink-mute); }
.modal-content .rating .stars { color: var(--accent); letter-spacing: 0.5px; }
.modal-content .descr { font-size: 14px; color: var(--ink-soft); line-height: 1.6; }
.modal-content .size-picker { display: flex; gap: 8px; flex-wrap: wrap; }
.modal-content .size-picker button {
  padding: 8px 14px; border: 1px solid var(--rule); border-radius: 2px;
  font-size: 13px;
  transition: all .2s var(--easing);
}
.modal-content .size-picker button:hover { border-color: var(--ink); }
.modal-content .size-picker button.is-on { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.modal-content .accordion { border-top: 1px solid var(--rule); padding-top: 12px; }
.modal-content .accordion summary {
  list-style: none; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 0; font-size: 14px; letter-spacing: 0.02em;
}
.modal-content .accordion summary::-webkit-details-marker { display: none; }
.modal-content .accordion summary .ic { transition: transform .25s var(--easing); }
.modal-content .accordion[open] summary .ic { transform: rotate(45deg); }
.modal-content .accordion p { font-size: 13.5px; color: var(--ink-soft); line-height: 1.55; padding: 4px 0 8px; margin: 0; }

/* ───────────────────────────────────────── Search overlay */
.search-overlay {
  position: fixed; inset: 0; z-index: 95;
  background: rgba(245,241,234,0.96);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  opacity: 0; pointer-events: none;
  transition: opacity .3s var(--easing);
  display: flex; flex-direction: column;
}
.search-overlay.is-open { opacity: 1; pointer-events: auto; }
.search-head {
  display: flex; align-items: center; gap: 16px;
  padding: 28px var(--gutter);
  border-bottom: 1px solid var(--rule);
}
.search-head input {
  flex: 1; min-width: 0;
  background: transparent; border: 0; outline: 0;
  font-family: var(--font-serif); font-size: clamp(28px, 4vw, 44px); font-weight: 500;
  color: var(--ink);
}
.search-head input::placeholder { color: var(--ink-mute); }
.search-body { padding: 32px var(--gutter); max-width: var(--maxw); margin: 0 auto; width: 100%; }
.search-body .eyebrow { display: block; margin-bottom: 14px; }
.search-suggests { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 36px; }
.search-suggests button {
  padding: 8px 14px; border: 1px solid var(--rule);
  font-size: 13px; border-radius: 2px;
  transition: all .2s var(--easing);
}
.search-suggests button:hover { border-color: var(--ink); }

/* ───────────────────────────────────────── Toast */
.toast {
  position: fixed; bottom: 24px; left: 50%;
  transform: translateX(-50%) translateY(20px);
  z-index: 100001;
  background: var(--ink); color: var(--paper);
  padding: 14px 22px; font-size: 13.5px;
  display: flex; gap: 12px; align-items: center;
  opacity: 0; pointer-events: none;
  transition: opacity .3s var(--easing), transform .3s var(--easing);
  border-radius: 2px;
}
.toast.is-on { opacity: 1; transform: translateX(-50%) translateY(0); pointer-events: auto; }
.toast .ic { color: var(--accent); }

/* ───────────────────────────────────────── Stones (SVG art) — backdrops */
.bd { position: absolute; inset: 0; width: 100%; height: 100%; }

/* Scroll reveal */
.reveal { opacity: 0; transform: translateY(20px); transition: opacity .8s var(--easing), transform .8s var(--easing); }
.reveal.is-in { opacity: 1; transform: translateY(0); }
.reveal[data-delay="1"] { transition-delay: 0.08s; }
.reveal[data-delay="2"] { transition-delay: 0.16s; }
.reveal[data-delay="3"] { transition-delay: 0.24s; }
.reveal[data-delay="4"] { transition-delay: 0.32s; }

/* ───────────────────────────────────────── Responsive */
@media (max-width: 1024px) {
  .header-inner { grid-template-columns: auto 1fr auto; }
  .nav-primary { display: none; }
  .hero-grid { grid-template-columns: 1fr; }
  .hero-stage { aspect-ratio: 5/4; }
  .cats-grid { grid-template-columns: repeat(4, 1fr); }
  .cat-card:nth-child(6n+1), .cat-card:nth-child(6n+2), .cat-card:nth-child(6n+3) { grid-column: span 2; aspect-ratio: 3/4; }
  .cat-card:nth-child(6n+4), .cat-card:nth-child(6n+5) { grid-column: span 2; aspect-ratio: 1; }
  .products-grid, .deals-grid { grid-template-columns: repeat(3, 1fr); }
  .story-grid { grid-template-columns: 1fr; }
  .story-pillars { grid-template-columns: repeat(2, 1fr); }
  .reassure-inner { grid-template-columns: repeat(2, 1fr); row-gap: 28px; }
  .r-cell:nth-child(odd) { border-left: 0; padding-left: 0; }
  .modal-body { grid-template-columns: 1fr; max-height: 92vh; }
  .modal-media { aspect-ratio: 4/3; }
}

@media (max-width: 640px) {
  .announce .ticker { gap: 18px; font-size: 11.5px; }
  .announce code { font-size: 10px; padding: 1px 6px; }
  .logo { font-size: 22px; }
  .logo .glyph { width: 24px; height: 24px; font-size: 10px; }
  .products-grid, .deals-grid, .cats-grid { grid-template-columns: repeat(2, 1fr); gap: 16px 12px; }
  .cat-card:nth-child(6n+1), .cat-card:nth-child(6n+2), .cat-card:nth-child(6n+3),
  .cat-card:nth-child(6n+4), .cat-card:nth-child(6n+5) { grid-column: span 1; aspect-ratio: 3/4; }
  .trust-strip-inner { grid-template-columns: 1fr 1fr; }
  .trust-cell { padding: 16px; }
  .trust-cell:nth-child(odd) { border-left: 0; }
  .trust-cell:nth-child(3), .trust-cell:nth-child(4) { border-top: 1px solid var(--rule); }
  .footer-inner { grid-template-columns: 1fr 1fr; row-gap: 36px; }
  .footer .brand-block { grid-column: 1 / -1; }
  .hero h1 { font-size: clamp(34px, 11vw, 60px); }
  .reassure-inner { grid-template-columns: 1fr; row-gap: 24px; }
  .r-cell { border-left: 0 !important; padding-left: 0; }
  .modal-content { padding: 24px; }
  .product-quickview { font-size: 11.5px; padding: 9px 12px; }
}


/* ──────────────────────────────────────────────────────────────────────────
   ENRICHISSEMENTS — marquee de pierres, sélecteur vertu, avis, Instagram
   ────────────────────────────────────────────────────────────────────────── */

/* Marquee de pierres (sous hero) */
.stones-strip {
  background: var(--ivory);
  border-bottom: 1px solid var(--rule);
  overflow: hidden;
  padding: 18px 0;
}
.stones-strip-track {
  display: flex;
  gap: 48px;
  animation: stones-scroll 50s linear infinite;
  width: max-content;
  align-items: center;
}
.stones-strip:hover .stones-strip-track { animation-play-state: paused; }
.stones-strip-item {
  display: inline-flex; align-items: center; gap: 12px;
  font-family: var(--font-serif);
  font-size: 22px;
  color: var(--ink-soft);
  white-space: nowrap;
  flex-shrink: 0;
}
.stones-strip-item .dot {
  width: 18px; height: 18px; border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.08);
  flex-shrink: 0;
}
.stones-strip-item em {
  font-family: var(--font-mono);
  font-style: normal;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-mute);
}
.stones-strip-item .sep {
  width: 1px; height: 18px; background: var(--rule);
}
@keyframes stones-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ──── Sélecteur par vertu */
.vertus {
  padding: var(--section-y) 0;
  background:
    radial-gradient(circle at 80% 20%, rgba(136,191,185,0.08), transparent 50%),
    var(--ivory);
}
.vertus-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(16px, 1.8vw, 24px);
}
.vertu-card {
  position: relative;
  padding: 28px 22px 24px;
  background: var(--paper);
  border: 1px solid var(--rule-soft);
  border-radius: 2px;
  display: flex; flex-direction: column; gap: 14px;
  cursor: pointer;
  transition: border-color .3s var(--easing), transform .3s var(--easing), box-shadow .3s var(--easing);
  overflow: hidden;
}
.vertu-card:hover {
  border-color: var(--turquoise);
  transform: translateY(-2px);
  box-shadow: var(--shadow-card);
}
.vertu-card .vertu-stone {
  width: 72px; height: 72px;
  border-radius: 999px;
  position: relative; overflow: hidden;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.25), inset 0 4px 10px rgba(255,255,255,0.5);
  flex-shrink: 0;
}
.vertu-card .vertu-stone::before {
  content: ''; position: absolute; top: 15%; left: 22%;
  width: 28%; height: 24%;
  border-radius: 999px;
  background: rgba(255,255,255,0.55);
  filter: blur(2px);
}
.vertu-card h4 {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 24px;
  margin: 0;
  letter-spacing: -0.01em;
  line-height: 1.1;
}
.vertu-card .vertu-sub {
  font-size: 13px;
  color: var(--ink-mute);
  margin: -8px 0 0;
}
.vertu-card .vertu-meta {
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid var(--rule-soft);
  display: flex; align-items: center; justify-content: space-between;
  font-size: 12px;
  color: var(--ink-mute);
  font-family: var(--font-mono);
  letter-spacing: 0.06em;
}
.vertu-card .vertu-meta .stone-name { color: var(--ink); font-weight: 500; text-transform: none; font-family: var(--font-sans); letter-spacing: 0; }
.vertu-card .vertu-arrow {
  position: absolute; top: 22px; right: 22px;
  width: 32px; height: 32px;
  border-radius: 999px;
  display: grid; place-items: center;
  background: var(--ivory);
  color: var(--ink);
  opacity: 0; transform: translate(8px, -4px);
  transition: opacity .25s var(--easing), transform .25s var(--easing), background .25s var(--easing);
}
.vertu-card:hover .vertu-arrow {
  opacity: 1; transform: translate(0,0);
  background: var(--turquoise); color: #FFFFFF;
}

/* ──── Avis clients (Avis Garantis-style) */
.reviews {
  padding: var(--section-y) 0;
  background: var(--paper);
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.reviews-summary {
  display: grid; grid-template-columns: auto 1fr auto; align-items: center;
  gap: clamp(28px, 4vw, 56px);
  padding-bottom: clamp(36px, 4vw, 56px);
  margin-bottom: clamp(36px, 4vw, 56px);
  border-bottom: 1px solid var(--rule-soft);
}
.reviews-badge {
  width: 132px; height: 132px;
  border: 1.5px solid var(--turquoise);
  border-radius: 999px;
  display: grid; place-items: center;
  text-align: center;
  font-family: var(--font-mono); font-size: 9px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--ink-mute);
  position: relative;
  background: var(--paper);
  flex-shrink: 0;
}
.reviews-badge::before {
  content: ''; position: absolute; inset: 6px;
  border-radius: 999px;
  border: 1px solid var(--turquoise-l);
}
.reviews-badge .grade {
  display: block;
  font-family: var(--font-serif); font-weight: 500;
  font-size: 38px; letter-spacing: -0.02em;
  color: var(--ink);
  line-height: 1;
  margin-bottom: 4px;
}
.reviews-badge .grade em { color: var(--turquoise-d); font-style: italic; }
.reviews-badge .grade sup { font-size: 16px; opacity: 0.5; }
.reviews-summary-text h2 {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(28px, 3.6vw, 44px);
  line-height: 1.08; letter-spacing: -0.015em;
  margin: 0;
}
.reviews-summary-text h2 em { color: var(--accent); font-style: italic; font-weight: 400; }
.reviews-summary-text p { font-size: 14px; color: var(--ink-soft); margin: 10px 0 0; max-width: 50ch; }
.reviews-summary-text .stars-row {
  display: flex; align-items: center; gap: 12px;
  margin-top: 14px;
  font-size: 13px; color: var(--ink-mute);
}
.reviews-summary-text .stars-row .stars {
  color: var(--turquoise-d);
  letter-spacing: 2px;
  font-size: 18px;
}
.reviews-summary-actions { display: flex; flex-direction: column; gap: 10px; align-items: flex-end; }
.reviews-summary-actions .btn { white-space: nowrap; }
.reviews-summary-actions .stamp {
  font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ink-mute);
}

.reviews-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(16px, 1.8vw, 24px);
}
.review {
  position: relative;
  padding: 24px 22px 22px;
  background: var(--ivory);
  border: 1px solid var(--rule-soft);
  display: flex; flex-direction: column; gap: 12px;
}
.review .quote-mark {
  position: absolute; top: 14px; right: 18px;
  font-family: var(--font-serif); font-size: 56px; font-weight: 500;
  line-height: 0.6; color: var(--turquoise-l);
  pointer-events: none;
}
.review .review-head {
  display: flex; align-items: center; gap: 12px;
}
.review .avatar {
  width: 38px; height: 38px; border-radius: 999px;
  background: var(--turquoise-l);
  display: grid; place-items: center;
  font-family: var(--font-sans); font-weight: 500;
  font-size: 12px; color: var(--turquoise-d);
  letter-spacing: 0.02em;
  flex-shrink: 0;
}
.review .review-meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.review .review-meta strong { font-size: 13px; font-weight: 500; color: var(--ink); }
.review .review-meta .date { font-size: 11px; color: var(--ink-mute); font-family: var(--font-mono); letter-spacing: 0.04em; }
.review .review-stars {
  color: var(--turquoise-d);
  font-size: 14px; letter-spacing: 2px;
}
.review .review-title {
  font-family: var(--font-serif); font-weight: 500;
  font-size: 19px; line-height: 1.2; margin: 0;
  color: var(--ink);
}
.review .review-txt {
  font-size: 13.5px; line-height: 1.6;
  color: var(--ink-soft);
  margin: 0;
}
.review .review-product {
  margin-top: auto; padding-top: 12px;
  border-top: 1px solid var(--rule-soft);
  display: flex; align-items: center; gap: 8px;
  font-size: 11.5px; color: var(--ink-mute);
}
.review .review-product .verified {
  display: inline-flex; align-items: center; gap: 4px;
  color: var(--turquoise-d);
  font-family: var(--font-mono); font-size: 9.5px; letter-spacing: 0.12em; text-transform: uppercase;
  background: rgba(136,191,185,0.15);
  padding: 3px 6px; border-radius: 2px;
  margin-left: auto;
}

/* ──── Instagram / UGC */
.ugc {
  padding: var(--section-y) 0;
  background: var(--ivory);
}
.ugc-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 12px;
}
.ugc-card {
  position: relative;
  aspect-ratio: 1;
  background: var(--sand);
  overflow: hidden;
  cursor: pointer;
}
.ugc-card .ugc-art { position: absolute; inset: 0; transition: transform .8s var(--easing); }
.ugc-card:hover .ugc-art { transform: scale(1.06); }
.ugc-card .ugc-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, transparent 50%, rgba(27,27,27,0.7) 100%);
  opacity: 0;
  transition: opacity .3s var(--easing);
}
.ugc-card:hover .ugc-scrim { opacity: 1; }
.ugc-card .ugc-body {
  position: absolute; left: 12px; right: 12px; bottom: 12px;
  display: flex; flex-direction: column; gap: 2px;
  color: #FFFFFF;
  opacity: 0; transform: translateY(8px);
  transition: opacity .3s var(--easing), transform .3s var(--easing);
}
.ugc-card:hover .ugc-body { opacity: 1; transform: translateY(0); }
.ugc-card .ugc-body strong {
  font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.06em; font-weight: 500;
}
.ugc-card .ugc-body span {
  font-size: 12px; line-height: 1.3;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}
.ugc-card .ugc-ig {
  position: absolute; top: 12px; right: 12px;
  width: 28px; height: 28px;
  display: grid; place-items: center;
  color: #FFFFFF;
  background: rgba(27,27,27,0.5);
  border-radius: 999px;
  opacity: 0;
  transition: opacity .3s var(--easing);
}
.ugc-card:hover .ugc-ig { opacity: 1; }

/* Responsive — mega menu + new sections */
@media (max-width: 1024px) {
  .megamenu-inner { grid-template-columns: 1fr 1fr; gap: 32px; padding: 28px 0 32px; }
  .mm-feat { grid-column: 1 / -1; }
  .vertus-grid { grid-template-columns: repeat(2, 1fr); }
  .reviews-summary { grid-template-columns: 1fr; text-align: left; }
  .reviews-summary-actions { align-items: flex-start; }
  .reviews-grid { grid-template-columns: repeat(2, 1fr); }
  .ugc-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
  .megamenu-inner { grid-template-columns: 1fr; }
  .vertus-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .vertu-card { padding: 22px 16px 18px; }
  .vertu-card .vertu-stone { width: 56px; height: 56px; }
  .vertu-card h4 { font-size: 20px; }
  .vertu-card .vertu-arrow { display: none; }
  .reviews-grid { grid-template-columns: 1fr; }
  .ugc-grid { grid-template-columns: repeat(2, 1fr); }
  .stones-strip-item { font-size: 18px; }
}


/* ──────────────────────────────────────────────────────────────────────────
   STYLE ÉDITORIAL — Hero full-bleed, lifetime, presse, journal, stockists
   ────────────────────────────────────────────────────────────────────────── */

/* Hero éditorial : full-bleed photo, copy en bas, CTA pill centré */
.hero-editorial {
  position: relative;
  height: clamp(640px, 92vh, 920px);
  min-height: 600px;
  overflow: hidden;
  background: var(--sand);
  display: flex; flex-direction: column; justify-content: flex-end;
  color: #FFFFFF;
  isolation: isolate;
}
.hero-editorial .hero-bg {
  position: absolute; inset: 0; z-index: 0;
}
.hero-editorial .hero-bg .bd { width: 100%; height: 100%; }
.hero-editorial::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(27,27,27,0.0) 30%, rgba(27,27,27,0.35) 75%, rgba(27,27,27,0.55) 100%);
  z-index: 1;
  pointer-events: none;
}
.hero-editorial .hero-edit-inner {
  position: relative; z-index: 2;
  padding: 0 var(--gutter) clamp(48px, 6vw, 84px);
  width: 100%;
  text-align: center;
  display: flex; flex-direction: column; align-items: center; gap: 22px;
}
.hero-editorial .hero-edit-eyebrow {
  font-family: var(--font-mono); font-size: 11px;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: rgba(255,255,255,0.85);
  display: inline-flex; align-items: center; gap: 10px;
  background: rgba(27,27,27,0.35);
  padding: 8px 16px; border-radius: 999px;
  backdrop-filter: blur(6px);
}
.hero-editorial h1 {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(40px, 6vw, 84px);
  line-height: 1.0;
  letter-spacing: -0.025em;
  margin: 0;
  text-wrap: balance;
  max-width: 18ch;
  color: #FFFFFF;
}
.hero-editorial h1 em { font-style: italic; font-weight: 400; }
.hero-editorial .hero-edit-sub {
  font-size: 17px; line-height: 1.5;
  max-width: 56ch; margin: 0;
  color: rgba(255,255,255,0.92);
}
.hero-editorial .hero-edit-cta {
  margin-top: 14px;
  display: inline-flex; align-items: center; gap: 12px;
  padding: 22px 48px;
  background: #FFFFFF; color: var(--ink);
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(20px, 2.2vw, 26px);
  letter-spacing: 0;
  border-radius: 999px;
  transition: background .3s var(--easing), color .3s var(--easing), transform .3s var(--easing);
  text-decoration: none;
}
.hero-editorial .hero-edit-cta:hover {
  background: var(--turquoise);
  color: #FFFFFF;
  transform: translateY(-2px);
}
.hero-editorial .hero-edit-cta .arrow {
  width: 22px; height: 22px;
  background: var(--ink); color: #FFFFFF;
  border-radius: 999px;
  display: grid; place-items: center;
  transition: background .3s var(--easing), color .3s var(--easing), transform .3s var(--easing);
}
.hero-editorial .hero-edit-cta:hover .arrow {
  background: #FFFFFF; color: var(--turquoise);
  transform: translateX(4px);
}

/* Hero side nav arrows */
.hero-nav-arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  z-index: 3;
  width: 44px; height: 44px; border-radius: 999px;
  display: grid; place-items: center;
  color: #FFFFFF; background: rgba(255,255,255,0.16);
  border: 1px solid rgba(255,255,255,0.32);
  backdrop-filter: blur(6px);
  transition: background .2s var(--easing);
}
.hero-nav-arrow:hover { background: rgba(255,255,255,0.32); }
.hero-nav-arrow.prev { left: clamp(16px, 2vw, 28px); }
.hero-nav-arrow.next { right: clamp(16px, 2vw, 28px); }
.hero-nav-arrow.prev svg { transform: rotate(180deg); }

/* Hero corner stamp */
.hero-corner-stamp {
  position: absolute; top: 24px; right: 28px;
  z-index: 3;
  font-family: var(--font-mono); font-size: 10px;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: rgba(255,255,255,0.9);
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(27,27,27,0.4);
  padding: 8px 14px; border-radius: 999px;
  backdrop-filter: blur(6px);
}

/* Hero scroll cue */
.hero-scroll-cue {
  position: absolute; bottom: 20px; left: 50%;
  transform: translateX(-50%); z-index: 3;
  font-family: var(--font-mono); font-size: 9px;
  letter-spacing: 0.24em; text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  pointer-events: none;
}
.hero-scroll-cue::after {
  content: ''; width: 1px; height: 18px;
  background: linear-gradient(to bottom, rgba(255,255,255,0.6), transparent);
  margin-top: 4px;
  animation: scroll-cue 2s ease-in-out infinite;
}
@keyframes scroll-cue {
  0%, 100% { opacity: 0.4; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(4px); }
}

/* Gift / promo bar — sous le hero */
.gift-bar {
  background: var(--ink);
  color: #FFFFFF;
  padding: 18px 0;
  font-size: 13.5px;
}
.gift-bar-inner {
  display: flex; align-items: center; justify-content: center;
  gap: clamp(18px, 3vw, 40px);
  flex-wrap: wrap;
  text-align: center;
}
.gift-bar-item {
  display: inline-flex; align-items: center; gap: 10px;
  color: rgba(255,255,255,0.92);
}
.gift-bar-item strong {
  color: #FFFFFF;
  font-family: var(--font-serif); font-weight: 500;
  font-size: 16px;
  letter-spacing: 0.005em;
}
.gift-bar-item em {
  font-style: normal; color: var(--turquoise);
  font-family: var(--font-serif); font-weight: 500;
}
.gift-bar-item .ic {
  width: 28px; height: 28px;
  display: grid; place-items: center;
  border: 1px solid rgba(255,255,255,0.25);
  border-radius: 999px;
  color: var(--turquoise);
}
.gift-bar-sep { width: 1px; height: 24px; background: rgba(255,255,255,0.18); }

/* Lifetime band — éditorial avec gros chiffre */
.lifetime {
  background: var(--paper);
  padding: var(--section-y) 0;
  position: relative;
  overflow: hidden;
}
.lifetime-inner {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: clamp(40px, 6vw, 96px);
  align-items: center;
}
.lifetime-visual {
  aspect-ratio: 1;
  background: var(--sand);
  position: relative;
  overflow: hidden;
}
.lifetime-visual .big-num {
  position: absolute; top: -8%; right: -4%;
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(220px, 32vw, 420px);
  line-height: 0.78;
  letter-spacing: -0.04em;
  color: rgba(255,255,255,0.7);
  z-index: 2;
  pointer-events: none;
}
.lifetime-visual .big-num em {
  font-style: italic; font-weight: 400;
  color: var(--turquoise);
  font-size: 0.4em;
  vertical-align: super;
  letter-spacing: 0;
}
.lifetime-text .eyebrow { margin-bottom: 22px; display: block; }
.lifetime-text h2 {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(40px, 5.4vw, 72px);
  line-height: 1.0;
  letter-spacing: -0.02em;
  margin: 0 0 28px;
  text-wrap: balance;
}
.lifetime-text h2 em { font-style: italic; color: var(--accent); font-weight: 400; }
.lifetime-text p {
  font-size: 17px; line-height: 1.6;
  color: var(--ink-soft);
  margin: 0 0 18px;
  max-width: 52ch;
}
.lifetime-text .lifetime-stats {
  display: grid; grid-template-columns: repeat(3, auto);
  gap: clamp(24px, 4vw, 56px);
  margin-top: 36px;
  padding-top: 32px;
  border-top: 1px solid var(--rule);
  align-items: end;
}
.lifetime-text .lifetime-stat strong {
  display: block;
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(40px, 4vw, 56px);
  line-height: 1;
  color: var(--ink);
  letter-spacing: -0.02em;
}
.lifetime-text .lifetime-stat strong em { font-style: italic; color: var(--turquoise); }
.lifetime-text .lifetime-stat span {
  display: block;
  margin-top: 8px;
  font-size: 12.5px;
  color: var(--ink-mute);
  line-height: 1.45;
  letter-spacing: 0.01em;
}

/* Press strip — "vu dans" */
.press {
  padding: clamp(40px, 5vw, 64px) 0;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  background: var(--ivory);
}
.press-inner {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: clamp(28px, 4vw, 64px);
  align-items: center;
}
.press-label {
  font-family: var(--font-mono); font-size: 10.5px;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--ink-mute);
  line-height: 1.5;
  max-width: 14ch;
}
.press-list {
  display: flex; align-items: center; justify-content: space-between;
  gap: clamp(20px, 3vw, 48px);
  flex-wrap: wrap;
}
.press-logo {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(20px, 2.2vw, 26px);
  letter-spacing: 0.02em;
  color: var(--ink);
  opacity: 0.6;
  transition: opacity .25s var(--easing);
  text-transform: uppercase;
  letter-spacing: 0.16em;
}
.press-logo:hover { opacity: 1; }
.press-logo.italic { font-style: italic; text-transform: none; letter-spacing: 0; font-size: clamp(22px, 2.4vw, 30px); }
.press-logo.thin { font-weight: 400; letter-spacing: 0.04em; }
.press-logo.tiny { font-size: clamp(14px, 1.4vw, 17px); letter-spacing: 0.3em; }

/* Journal / magazine teaser */
.journal {
  padding: var(--section-y) 0;
  background: var(--paper);
}
.journal-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 2.4vw, 36px);
}
.journal-card {
  display: flex; flex-direction: column;
  cursor: pointer;
  background: transparent;
}
.journal-card .j-media {
  position: relative;
  aspect-ratio: 4/5;
  background: var(--sand);
  overflow: hidden;
  margin-bottom: 22px;
}
.journal-card .j-media .bd { transition: transform .8s var(--easing); }
.journal-card:hover .j-media .bd { transform: scale(1.04); }
.journal-card .j-cat {
  position: absolute; top: 16px; left: 16px;
  font-family: var(--font-mono); font-size: 10px;
  letter-spacing: 0.14em; text-transform: uppercase;
  background: rgba(255,255,255,0.92);
  color: var(--ink);
  padding: 5px 10px; border-radius: 999px;
}
.journal-card .j-date {
  font-family: var(--font-mono); font-size: 11px;
  letter-spacing: 0.1em; color: var(--ink-mute);
  display: flex; align-items: center; gap: 10px;
}
.journal-card .j-date::after {
  content: ''; flex: 1; height: 1px; background: var(--rule);
}
.journal-card h3 {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(22px, 2.4vw, 30px); line-height: 1.15;
  margin: 14px 0 10px;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.journal-card p {
  font-size: 14px; line-height: 1.6;
  color: var(--ink-soft); margin: 0;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.journal-card .j-read {
  margin-top: 16px;
  font-family: var(--font-sans); font-size: 12.5px;
  letter-spacing: 0.04em;
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--ink);
  align-self: flex-start;
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
  transition: color .2s var(--easing);
}
.journal-card:hover .j-read { color: var(--accent-deep); }

/* Concept stores / stockists */
.stockists {
  padding: var(--section-y) 0;
  background: var(--ivory);
  position: relative;
  overflow: hidden;
}
.stockists-inner {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: clamp(40px, 6vw, 80px);
  align-items: center;
}
.stockists-text h2 {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(36px, 5vw, 64px);
  line-height: 1.02;
  letter-spacing: -0.02em;
  margin: 18px 0 24px;
  text-wrap: balance;
}
.stockists-text h2 em { font-style: italic; color: var(--accent); font-weight: 400; }
.stockists-text p { font-size: 16px; line-height: 1.6; color: var(--ink-soft); max-width: 50ch; margin: 0 0 24px; }
.stockists-text .stockists-count {
  display: inline-flex; align-items: baseline; gap: 12px;
  margin: 0 0 16px;
}
.stockists-text .stockists-count strong {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(72px, 8vw, 120px);
  line-height: 0.9;
  letter-spacing: -0.03em;
  color: var(--turquoise);
}
.stockists-text .stockists-count strong em { font-style: italic; }
.stockists-text .stockists-count span {
  font-family: var(--font-mono); font-size: 11px;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--ink-mute);
  max-width: 16ch;
  line-height: 1.5;
}

.stockists-map {
  position: relative;
  aspect-ratio: 5/4;
  background: var(--paper);
  border: 1px solid var(--rule);
  overflow: hidden;
}
.stockists-map svg { width: 100%; height: 100%; display: block; }
.stockists-map .pin-pop {
  position: absolute;
  background: var(--paper);
  border: 1px solid var(--rule);
  padding: 10px 14px;
  font-size: 12.5px;
  display: flex; flex-direction: column; gap: 2px;
  border-radius: 2px;
  box-shadow: var(--shadow-card);
  max-width: 200px;
}
.stockists-map .pin-pop::after {
  content: ''; position: absolute;
  width: 1px; height: 24px;
  background: var(--ink-mute);
}
.stockists-map .pin-pop strong { font-family: var(--font-serif); font-size: 16px; font-weight: 500; }
.stockists-map .pin-pop span { font-size: 11px; color: var(--ink-mute); font-family: var(--font-mono); letter-spacing: 0.04em; }
.stockists-map .pin-pop.pos-1 { top: 12%; left: 38%; }
.stockists-map .pin-pop.pos-1::after { right: -1px; top: 100%; }
.stockists-map .pin-pop.pos-2 { top: 38%; left: 16%; }
.stockists-map .pin-pop.pos-3 { bottom: 18%; right: 16%; }
.stockists-map .pin-pop.pos-4 { top: 55%; left: 52%; }

@media (max-width: 1024px) {
  .lifetime-inner { grid-template-columns: 1fr; }
  .lifetime-visual { aspect-ratio: 16/10; }
  .lifetime-visual .big-num { font-size: clamp(160px, 28vw, 280px); top: -4%; right: -2%; }
  .journal-grid { grid-template-columns: 1fr 1fr; }
  .journal-card:nth-child(3) { display: none; }
  .stockists-inner { grid-template-columns: 1fr; }
  .press-inner { grid-template-columns: 1fr; gap: 18px; }
  .press-label { max-width: none; }
  .hero-editorial { height: clamp(540px, 80vh, 760px); }
}
@media (max-width: 640px) {
  .journal-grid { grid-template-columns: 1fr; }
  .journal-card:nth-child(3) { display: flex; }
  .gift-bar-sep { display: none; }
  .gift-bar-inner { gap: 14px; }
  .hero-editorial h1 { font-size: clamp(34px, 9vw, 56px); }
  .hero-editorial .hero-edit-cta { font-size: 18px; padding: 18px 32px; }
  .hero-nav-arrow { display: none; }
  .stockists-text .stockists-count strong { font-size: clamp(56px, 16vw, 92px); }
}


/* ──────────────────────────────────────────────────────────────────────────
   PAGES COMMUNES — page-header, breadcrumb, sidebar, layouts WooCommerce-like
   ────────────────────────────────────────────────────────────────────────── */

/* Page header (titre de page + breadcrumb) */
.page-head {
  padding: clamp(48px, 6vw, 96px) 0 clamp(28px, 3vw, 48px);
  background: var(--ivory);
  border-bottom: 1px solid var(--rule);
}
.page-head .crumb {
  display: flex; align-items: center; gap: 8px;
  font-family: var(--font-mono); font-size: 11px;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--ink-mute);
  margin-bottom: 20px;
}
.page-head .crumb a { color: var(--ink-mute); transition: color .2s var(--easing); }
.page-head .crumb a:hover { color: var(--ink); }
.page-head .crumb .sep { opacity: 0.4; }
.page-head .crumb .curr { color: var(--ink); }
.page-head h1 {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(40px, 6vw, 80px);
  line-height: 1.0; letter-spacing: -0.02em;
  margin: 0; text-wrap: balance;
  max-width: 18ch;
}
.page-head h1 em { font-style: italic; color: var(--accent); font-weight: 400; }
.page-head .page-sub {
  margin-top: 18px; font-size: 17px; color: var(--ink-soft);
  max-width: 52ch; line-height: 1.55;
}
.page-head .page-meta {
  margin-top: 22px;
  display: flex; gap: 16px; flex-wrap: wrap;
  font-size: 13px; color: var(--ink-mute);
}
.page-head .page-meta strong { color: var(--ink); font-weight: 500; }
.page-head .page-meta li { display: inline-flex; align-items: center; gap: 8px; }
.page-head.compact { padding: clamp(28px, 4vw, 56px) 0 clamp(18px, 2vw, 28px); }
.page-head.compact h1 { font-size: clamp(32px, 4vw, 52px); }

/* ──── Shop / Catalogue */
.shop {
  padding: clamp(32px, 4vw, 56px) 0 var(--section-y);
}
.shop-inner {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: clamp(28px, 4vw, 56px);
  align-items: flex-start;
}
.shop-aside {
  position: sticky; top: 100px;
  align-self: start;
  max-height: calc(100vh - 120px);
  overflow-y: auto;
  padding-right: 8px;
}
.shop-aside::-webkit-scrollbar { width: 6px; }
.shop-aside::-webkit-scrollbar-thumb { background: var(--rule); border-radius: 3px; }
.filter-group { padding: 22px 0; border-bottom: 1px solid var(--rule-soft); }
.filter-group:first-child { padding-top: 0; }
.filter-group:last-child { border-bottom: 0; }
.filter-group h5 {
  font-family: var(--font-mono); font-size: 10px; font-weight: 500;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--ink-mute);
  margin: 0 0 14px;
  display: flex; align-items: center; justify-content: space-between;
}
.filter-group h5 .clear {
  font-size: 10px; color: var(--accent-deep);
  text-transform: none; letter-spacing: 0;
  font-family: var(--font-sans);
  border-bottom: 1px solid currentColor;
  padding-bottom: 1px;
  cursor: pointer;
}
.filter-list { display: flex; flex-direction: column; gap: 8px; }
.filter-check {
  display: flex; align-items: center; gap: 10px;
  font-size: 14px;
  cursor: pointer;
  padding: 4px 0;
  color: var(--ink);
  transition: color .2s var(--easing);
}
.filter-check:hover { color: var(--accent-deep); }
.filter-check input {
  appearance: none; -webkit-appearance: none;
  width: 16px; height: 16px;
  border: 1px solid var(--rule);
  border-radius: 2px;
  display: inline-grid; place-items: center;
  cursor: pointer;
  transition: border-color .2s var(--easing), background .2s var(--easing);
  flex-shrink: 0;
}
.filter-check input:checked {
  background: var(--ink); border-color: var(--ink);
}
.filter-check input:checked::after {
  content: ''; width: 8px; height: 8px;
  background: var(--turquoise);
  border-radius: 1px;
}
.filter-check .stone-dot {
  width: 14px; height: 14px; border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.06);
  flex-shrink: 0;
}
.filter-check .count {
  margin-left: auto; font-size: 11px; color: var(--ink-mute);
  font-family: var(--font-mono); letter-spacing: 0.04em;
}
.filter-price {
  display: flex; gap: 8px; align-items: center;
  font-size: 13px;
}
.filter-price input {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid var(--rule);
  background: var(--paper);
  border-radius: 2px;
  font-size: 13px;
  font-family: var(--font-mono);
}
.filter-price input:focus { border-color: var(--ink); outline: 0; }

.shop-main {
  min-width: 0;
}
.shop-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; flex-wrap: wrap;
  padding-bottom: 22px;
  margin-bottom: 28px;
  border-bottom: 1px solid var(--rule);
  font-size: 13px;
}
.shop-toolbar .count { color: var(--ink-mute); font-family: var(--font-mono); letter-spacing: 0.04em; }
.shop-toolbar .count strong { color: var(--ink); font-family: var(--font-sans); }
.shop-toolbar .toolbar-right { display: flex; gap: 16px; align-items: center; }
.shop-toolbar select {
  padding: 8px 32px 8px 12px;
  border: 1px solid var(--rule);
  background: var(--paper);
  border-radius: 999px;
  font-size: 13px;
  cursor: pointer;
  font-family: var(--font-sans);
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%231B1B1B' d='M0 0h10L5 6z'/></svg>");
  background-repeat: no-repeat;
  background-position: right 12px center;
}
.shop-toolbar .view-toggle { display: flex; gap: 4px; border: 1px solid var(--rule); border-radius: 999px; padding: 3px; }
.shop-toolbar .view-toggle button {
  width: 30px; height: 30px;
  border-radius: 999px;
  display: grid; place-items: center;
  color: var(--ink-mute);
  transition: background .2s var(--easing), color .2s var(--easing);
}
.shop-toolbar .view-toggle button.is-on { background: var(--ink); color: var(--paper); }

.shop-active-filters {
  display: flex; gap: 8px; flex-wrap: wrap;
  margin-bottom: 22px;
}
.chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 8px 6px 12px;
  font-size: 12px;
  background: var(--ivory); border: 1px solid var(--rule);
  border-radius: 999px;
}
.chip button {
  width: 18px; height: 18px;
  border-radius: 999px; display: grid; place-items: center;
  background: var(--rule-soft); color: var(--ink-mute);
  transition: background .2s var(--easing), color .2s var(--easing);
}
.chip button:hover { background: var(--ink); color: var(--paper); }
.chip.clear-all { background: transparent; border-color: transparent; color: var(--accent-deep); cursor: pointer; padding: 6px 8px; }
.chip.clear-all:hover { color: var(--ink); }

.shop-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 2.4vw, 32px) clamp(16px, 1.8vw, 24px);
}
.shop-grid.cols-4 { grid-template-columns: repeat(4, 1fr); }
.shop-grid.cols-2 { grid-template-columns: repeat(2, 1fr); }

.shop-empty {
  padding: 24px 24px 48px;
  text-align: center; color: var(--ink-mute);
  border: 0;
}
.shop-empty h3 { font-family: var(--font-serif); font-weight: 500; font-size: 26px; color: var(--ink); margin: 0 0 8px; }

.pagination {
  margin-top: 48px;
  display: flex; justify-content: center; gap: 6px;
}
.pagination button {
  min-width: 40px; height: 40px;
  border-radius: 999px;
  display: grid; place-items: center;
  font-size: 14px;
  border: 1px solid var(--rule);
  background: var(--paper);
  transition: all .2s var(--easing);
  padding: 0 12px;
  font-family: var(--font-mono);
  letter-spacing: 0.04em;
}
.pagination button:hover { border-color: var(--ink); }
.pagination button.is-on { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.pagination button.nav { font-family: var(--font-sans); }

/* ──── Filter pills bar (top) — quick filter chips */
.filter-pills {
  display: flex; gap: 8px; flex-wrap: wrap;
  margin-bottom: 24px;
}
.filter-pill {
  padding: 9px 16px;
  font-size: 13px;
  border-radius: 999px;
  border: 1px solid var(--rule);
  background: var(--paper);
  transition: all .2s var(--easing);
  font-family: var(--font-sans);
  cursor: pointer;
}
.filter-pill:hover { border-color: var(--ink); }
.filter-pill.is-on { background: var(--ink); color: var(--paper); border-color: var(--ink); }

/* Mobile filters trigger */
.mobile-filters-btn { display: none; }

@media (max-width: 1024px) {
  .shop-inner { grid-template-columns: 1fr; }
  .shop-aside { display: none; position: static; max-height: none; }
  .shop-aside.is-open {
    display: block;
    position: fixed; inset: 0;
    background: var(--paper);
    z-index: 90;
    padding: 24px;
    overflow-y: auto;
  }
  .mobile-filters-btn {
    display: inline-flex;
  }
  .shop-grid, .shop-grid.cols-4 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
  .shop-grid, .shop-grid.cols-4 { grid-template-columns: repeat(2, 1fr); }
  .shop-toolbar { flex-direction: column; align-items: stretch; }
  .shop-toolbar .toolbar-right { justify-content: space-between; }
}


/* ──────────────────────────────────────────────────────────────────────────
   PAGE PRODUIT
   ────────────────────────────────────────────────────────────────────────── */
.product-page { padding: clamp(28px, 4vw, 56px) 0 var(--section-y); }
.product-page-inner {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: clamp(40px, 5vw, 80px);
  align-items: flex-start;
}
.pp-gallery { display: grid; grid-template-columns: 80px 1fr; gap: 16px; }
.pp-thumbs { display: flex; flex-direction: column; gap: 10px; }
.pp-thumb {
  aspect-ratio: 1;
  background: var(--sand);
  position: relative; overflow: hidden;
  cursor: pointer;
  border: 1px solid transparent;
  transition: border-color .2s var(--easing);
}
.pp-thumb.is-on { border-color: var(--ink); }
.pp-main {
  position: relative;
  aspect-ratio: 4/5;
  background: var(--sand);
  overflow: hidden;
}
.pp-main .pp-pager { position: absolute; right: 16px; bottom: 16px;
  background: var(--paper); padding: 6px 12px;
  font-family: var(--font-mono); font-size: 11px;
  letter-spacing: 0.1em; border-radius: 999px;
}
.pp-main .pp-zoom {
  position: absolute; top: 16px; right: 16px;
  width: 40px; height: 40px;
  background: var(--paper); border-radius: 999px;
  display: grid; place-items: center;
  border: 1px solid var(--rule);
}

.pp-info {
  position: sticky; top: 100px;
  display: flex; flex-direction: column; gap: 14px;
}
.pp-info .stones-tag {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-mono); font-size: 10.5px;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--turquoise-d);
  padding: 6px 12px;
  background: rgba(136,191,185,0.14);
  border-radius: 999px;
  align-self: flex-start;
}
.pp-info h1 {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(34px, 4.4vw, 56px);
  line-height: 1.02; letter-spacing: -0.02em;
  margin: 0;
  text-wrap: balance;
}
.pp-info h1 em { font-style: italic; color: var(--accent); font-weight: 400; }
.pp-info .pp-rating {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 13px; color: var(--ink-mute);
}
.pp-info .pp-rating .stars { color: var(--turquoise-d); font-size: 16px; letter-spacing: 2px; }
.pp-info .pp-rating a { color: var(--ink); border-bottom: 1px solid currentColor; padding-bottom: 1px; }

.pp-price {
  display: flex; align-items: baseline; gap: 12px;
  margin: 6px 0 4px;
}
.pp-price .now {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(28px, 3.2vw, 40px);
  letter-spacing: -0.01em;
}
.pp-price .was {
  font-family: var(--font-sans);
  font-size: 18px;
  color: var(--ink-mute);
  text-decoration: line-through;
}
.pp-price .save {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--accent-deep);
  background: rgba(200,100,61,0.12);
  padding: 4px 10px;
  border-radius: 999px;
}
.pp-pay-info { font-size: 13px; color: var(--ink-mute); margin: 0; }
.pp-pay-info strong { color: var(--ink); font-weight: 500; }

.pp-section { padding: 14px 0; }
.pp-section h6 {
  font-family: var(--font-mono); font-size: 10.5px;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--ink-mute);
  margin: 0 0 12px;
  display: flex; align-items: center; justify-content: space-between;
}
.pp-section h6 a {
  font-family: var(--font-sans); text-transform: none; letter-spacing: 0;
  font-size: 11px; color: var(--ink);
  border-bottom: 1px solid currentColor; padding-bottom: 1px;
}
.pp-size-picker {
  display: flex; gap: 8px; flex-wrap: wrap;
}
.pp-size-picker button {
  padding: 12px 18px;
  font-size: 13px;
  border: 1px solid var(--rule);
  background: var(--paper);
  border-radius: 999px;
  transition: all .2s var(--easing);
  cursor: pointer;
  font-family: var(--font-sans);
}
.pp-size-picker button:hover { border-color: var(--ink); }
.pp-size-picker button.is-on { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.pp-size-picker button.unavailable { opacity: 0.4; text-decoration: line-through; cursor: not-allowed; }

.pp-color-picker { display: flex; gap: 10px; }
.pp-color-picker button {
  width: 44px; height: 44px;
  border-radius: 999px;
  border: 2px solid transparent;
  cursor: pointer;
  padding: 3px;
  position: relative;
  background: transparent;
}
.pp-color-picker button .color-inner {
  width: 100%; height: 100%; border-radius: 999px;
  display: block;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.2), inset 0 2px 4px rgba(255,255,255,0.4);
}
.pp-color-picker button.is-on { border-color: var(--ink); }

.pp-actions {
  display: flex; gap: 10px; align-items: stretch;
  margin: 10px 0 4px;
}
.pp-qty {
  display: flex; align-items: center;
  border: 1px solid var(--rule);
  border-radius: 999px;
  background: var(--paper);
}
.pp-qty button { width: 40px; height: 48px; display: grid; place-items: center; }
.pp-qty span { width: 32px; text-align: center; font-variant-numeric: tabular-nums; font-weight: 500; }
.pp-actions .btn-add {
  flex: 1; justify-content: center;
  padding: 16px 28px;
  font-family: var(--font-sans); font-weight: 500;
  font-size: 14px; letter-spacing: 0.06em;
}
.pp-wish-btn {
  width: 48px; height: 48px;
  display: grid; place-items: center;
  border: 1px solid var(--rule);
  border-radius: 999px;
  background: var(--paper);
  color: var(--ink);
  transition: all .2s var(--easing);
}
.pp-wish-btn:hover { border-color: var(--ink); }
.pp-wish-btn.is-on { background: var(--accent); border-color: var(--accent); color: #FFFFFF; }

.pp-shipping-card {
  margin-top: 12px;
  padding: 18px 20px;
  background: var(--ivory);
  border: 1px solid var(--rule-soft);
  border-radius: 4px;
  display: flex; flex-direction: column; gap: 10px;
  font-size: 13.5px;
}
.pp-shipping-card .row { display: flex; gap: 12px; align-items: center; }
.pp-shipping-card .row strong { color: var(--ink); font-weight: 500; }
.pp-shipping-card .ic { color: var(--turquoise-d); flex-shrink: 0; }

.pp-accordion { border-top: 1px solid var(--rule); margin-top: 18px; }
.pp-accordion details {
  border-bottom: 1px solid var(--rule-soft);
}
.pp-accordion summary {
  list-style: none;
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 0;
  font-family: var(--font-serif); font-weight: 500; font-size: 18px;
  cursor: pointer;
}
.pp-accordion summary::-webkit-details-marker { display: none; }
.pp-accordion summary .ic { transition: transform .25s var(--easing); }
.pp-accordion details[open] summary .ic { transform: rotate(45deg); }
.pp-accordion p {
  padding: 0 0 18px;
  font-size: 14px; color: var(--ink-soft); line-height: 1.7;
  margin: 0; max-width: 60ch;
}
.pp-accordion ul {
  padding: 0 0 18px; margin: 0;
  display: flex; flex-direction: column; gap: 8px;
}
.pp-accordion li {
  font-size: 14px; color: var(--ink-soft);
  display: flex; gap: 10px; align-items: flex-start;
}
.pp-accordion li::before {
  content: '·'; color: var(--accent-deep);
  font-weight: bold; flex-shrink: 0;
}

/* Cross-sell section */
.cross-sell, .recent-viewed {
  padding: var(--section-y) 0;
  background: var(--ivory);
}
.cross-sell + .cross-sell, .recent-viewed { background: var(--paper); border-top: 1px solid var(--rule); }

/* Reviews block on product page */
.pp-reviews {
  padding: var(--section-y) 0;
  background: var(--paper);
  border-top: 1px solid var(--rule);
}
.pp-reviews-top {
  display: grid; grid-template-columns: 280px 1fr; gap: 56px;
  padding-bottom: 36px; border-bottom: 1px solid var(--rule-soft); margin-bottom: 36px;
}
.pp-reviews-stat {
  display: flex; flex-direction: column; gap: 6px;
}
.pp-reviews-stat .grade {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(56px, 6vw, 80px);
  letter-spacing: -0.02em; line-height: 1;
}
.pp-reviews-stat .grade sup { font-size: 0.4em; color: var(--ink-mute); }
.pp-reviews-stat .stars { color: var(--turquoise-d); font-size: 18px; letter-spacing: 3px; }
.pp-reviews-stat .total { font-size: 13px; color: var(--ink-mute); font-family: var(--font-mono); letter-spacing: 0.04em; margin-top: 6px; }
.pp-reviews-dist { display: flex; flex-direction: column; gap: 6px; max-width: 360px; }
.dist-row { display: grid; grid-template-columns: 24px 1fr 40px; align-items: center; gap: 10px; font-size: 12px; color: var(--ink-mute); font-family: var(--font-mono); }
.dist-row .bar { height: 4px; background: var(--rule-soft); border-radius: 2px; position: relative; overflow: hidden; }
.dist-row .bar i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--turquoise-d); border-radius: 2px; }

@media (max-width: 1024px) {
  .product-page-inner { grid-template-columns: 1fr; }
  .pp-info { position: static; }
  .pp-gallery { grid-template-columns: 1fr; }
  .pp-thumbs { flex-direction: row; order: 2; overflow-x: auto; }
  .pp-thumb { width: 70px; flex-shrink: 0; }
  .pp-reviews-top { grid-template-columns: 1fr; gap: 24px; }
}

/* ──────────────────────────────────────────────────────────────────────────
   PAGE PANIER
   ────────────────────────────────────────────────────────────────────────── */
.cart-page { padding: clamp(28px, 4vw, 56px) 0 var(--section-y); }
.cart-page-inner {
  display: grid; grid-template-columns: 1fr 380px; gap: clamp(32px, 4vw, 56px);
  align-items: flex-start;
}
.cart-lines { border-top: 1px solid var(--rule); }
.cart-page-line {
  display: grid;
  grid-template-columns: 120px 1fr auto auto auto;
  gap: clamp(16px, 2vw, 24px);
  padding: 22px 0;
  border-bottom: 1px solid var(--rule-soft);
  align-items: center;
}
.cart-page-line .thumb {
  width: 120px; aspect-ratio: 1; background: var(--sand);
  position: relative; overflow: hidden;
}
.cart-page-line .info { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.cart-page-line .info strong {
  font-family: var(--font-serif); font-weight: 500; font-size: 22px;
  line-height: 1.15; letter-spacing: -0.01em;
}
.cart-page-line .info .opt { font-size: 13px; color: var(--ink-mute); }
.cart-page-line .info .stone-label { font-size: 12.5px; color: var(--ink-mute); display: flex; align-items: center; gap: 6px; }
.cart-page-line .info .stone-dot { width: 8px; height: 8px; border-radius: 999px; display: inline-block; }
.cart-page-line .info .row-acts { display: flex; gap: 14px; font-size: 12px; color: var(--ink-mute); margin-top: 4px; }
.cart-page-line .info .row-acts a { color: var(--ink-mute); transition: color .2s var(--easing); border-bottom: 1px solid currentColor; padding-bottom: 1px; }
.cart-page-line .info .row-acts a:hover { color: var(--accent); }
.cart-page-line .qty-cell {
  display: flex; align-items: center;
  border: 1px solid var(--rule); border-radius: 999px;
  background: var(--paper);
}
.cart-page-line .qty-cell button { width: 34px; height: 38px; display: grid; place-items: center; }
.cart-page-line .qty-cell span { width: 26px; text-align: center; font-variant-numeric: tabular-nums; font-weight: 500; font-size: 14px; }
.cart-page-line .unit-price { font-size: 14px; color: var(--ink-mute); white-space: nowrap; min-width: 70px; text-align: right; font-variant-numeric: tabular-nums; }
.cart-page-line .line-total { font-family: var(--font-serif); font-weight: 500; font-size: 22px; white-space: nowrap; font-variant-numeric: tabular-nums; min-width: 100px; text-align: right; }

.cart-page-foot {
  margin-top: 22px;
  display: flex; justify-content: space-between; align-items: center;
  gap: 12px; flex-wrap: wrap;
}
.cart-page-foot .promo-form { display: flex; gap: 8px; align-items: center; max-width: 380px; flex: 1; }
.cart-page-foot .promo-form input {
  padding: 12px 16px; border: 1px solid var(--rule);
  background: var(--paper); border-radius: 999px;
  font-size: 14px; flex: 1;
}
.cart-page-foot .promo-form input:focus { border-color: var(--ink); outline: 0; }

.cart-summary {
  position: sticky; top: 100px;
  padding: 28px;
  background: var(--ivory);
  border: 1px solid var(--rule);
  display: flex; flex-direction: column; gap: 14px;
}
.cart-summary h4 {
  font-family: var(--font-serif); font-weight: 500; font-size: 24px;
  margin: 0 0 6px;
}
.cart-summary .row { display: flex; justify-content: space-between; font-size: 14px; padding: 4px 0; }
.cart-summary .row.muted { color: var(--ink-mute); font-size: 12.5px; }
.cart-summary .row.total {
  font-family: var(--font-serif); font-weight: 500;
  font-size: 24px;
  border-top: 1px solid var(--rule);
  padding-top: 14px; margin-top: 8px;
}
.cart-summary .summary-progress {
  font-size: 12px; color: var(--ink-soft);
  padding: 12px 14px;
  background: var(--paper);
  border: 1px solid var(--rule-soft);
  border-radius: 2px;
}
.cart-summary .summary-progress .bar { margin-top: 8px; height: 4px; background: var(--rule); border-radius: 2px; overflow: hidden; }
.cart-summary .summary-progress .bar i { display: block; height: 100%; background: var(--turquoise); }
.cart-summary .pays {
  display: flex; flex-wrap: wrap; gap: 6px;
  font-family: var(--font-mono); font-size: 9.5px;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--ink-mute);
}
.cart-summary .pays span { padding: 5px 8px; border: 1px solid var(--rule); border-radius: 2px; background: var(--paper); }

.cart-empty {
  text-align: center; padding: 80px 24px;
}
.cart-empty .glyph {
  width: 80px; height: 80px; margin: 0 auto 24px;
  border: 1.5px solid var(--rule); border-radius: 999px;
  display: grid; place-items: center; color: var(--ink-mute);
}
.cart-empty h2 { font-family: var(--font-serif); font-weight: 500; font-size: clamp(32px, 4vw, 44px); margin: 0 0 14px; }
.cart-empty p { color: var(--ink-soft); margin: 0 auto 28px; max-width: 38ch; font-size: 16px; }

@media (max-width: 1024px) {
  .cart-page-inner { grid-template-columns: 1fr; }
  .cart-summary { position: static; }
}
@media (max-width: 640px) {
  .cart-page-line {
    grid-template-columns: 80px 1fr;
    grid-template-areas: 'thumb info' 'thumb info' 'qty total' 'unit unit';
    gap: 12px;
  }
  .cart-page-line .thumb { width: 80px; grid-area: thumb; }
  .cart-page-line .info { grid-area: info; }
  .cart-page-line .info strong { font-size: 16px; }
  .cart-page-line .qty-cell { grid-area: qty; }
  .cart-page-line .line-total { grid-area: total; font-size: 18px; }
  .cart-page-line .unit-price { grid-area: unit; text-align: left; font-size: 12px; }
}

/* ──────────────────────────────────────────────────────────────────────────
   PAGE CHECKOUT
   ────────────────────────────────────────────────────────────────────────── */
.checkout-shell {
  min-height: 100vh;
  background: var(--paper);
}
.checkout-head {
  border-bottom: 1px solid var(--rule);
  padding: 20px 0;
  position: sticky; top: 0; background: var(--paper); z-index: 10;
}
.checkout-head-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.checkout-head .logo { font-family: var(--font-serif); font-weight: 500; font-size: 22px; }
.checkout-steps {
  display: flex; gap: 32px;
  font-family: var(--font-mono); font-size: 11.5px;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--ink-mute);
}
.checkout-steps .step { display: inline-flex; align-items: center; gap: 8px; }
.checkout-steps .step i {
  width: 18px; height: 18px; border-radius: 999px;
  border: 1px solid var(--rule);
  display: inline-grid; place-items: center;
  font-style: normal; font-size: 10px;
}
.checkout-steps .step.is-active { color: var(--ink); }
.checkout-steps .step.is-active i { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.checkout-steps .step.is-done i { background: var(--turquoise); color: var(--paper); border-color: var(--turquoise); }
.checkout-steps .step.is-done { color: var(--ink); }
.checkout-secure { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; color: var(--ink-mute); }
.checkout-secure svg { color: var(--turquoise-d); }

.checkout-inner {
  padding: clamp(32px, 4vw, 56px) 0;
  display: grid; grid-template-columns: 1fr 420px; gap: clamp(40px, 5vw, 72px);
  align-items: flex-start;
}
.checkout-form { display: flex; flex-direction: column; gap: 32px; }
.checkout-card {
  background: var(--paper);
  padding: 28px;
  border: 1px solid var(--rule);
}
.checkout-card h3 {
  font-family: var(--font-serif); font-weight: 500;
  font-size: 24px; margin: 0 0 6px;
}
.checkout-card .card-sub { font-size: 13px; color: var(--ink-mute); margin: 0 0 22px; }
.checkout-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.checkout-grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
.field {
  position: relative;
  display: flex; flex-direction: column;
}
.field label {
  font-family: var(--font-mono); font-size: 10px;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--ink-mute);
  margin-bottom: 6px;
}
.field input, .field select, .field textarea {
  padding: 14px 16px;
  border: 1px solid var(--rule);
  background: var(--paper);
  border-radius: 4px;
  font-size: 15px;
  font-family: var(--font-sans);
  transition: border-color .2s var(--easing);
}
.field input:focus, .field select:focus, .field textarea:focus {
  border-color: var(--ink); outline: 0;
}
.field-row { display: flex; flex-direction: column; gap: 12px; }

.ship-options { display: flex; flex-direction: column; gap: 10px; }
.ship-option {
  display: grid; grid-template-columns: 24px 1fr auto; gap: 14px;
  align-items: center;
  padding: 16px 18px;
  border: 1px solid var(--rule);
  border-radius: 4px;
  cursor: pointer;
  transition: border-color .2s var(--easing), background .2s var(--easing);
}
.ship-option:hover { border-color: var(--ink-mute); }
.ship-option.is-on { border-color: var(--ink); background: var(--ivory); }
.ship-option .radio {
  width: 18px; height: 18px; border-radius: 999px;
  border: 1.5px solid var(--rule);
  display: grid; place-items: center;
  flex-shrink: 0;
}
.ship-option.is-on .radio { border-color: var(--ink); }
.ship-option.is-on .radio::after {
  content: ''; width: 8px; height: 8px; background: var(--ink); border-radius: 999px;
}
.ship-option .label strong { display: block; font-size: 15px; font-weight: 500; font-family: var(--font-sans); }
.ship-option .label span { font-size: 12.5px; color: var(--ink-mute); }
.ship-option .price-cell { font-family: var(--font-serif); font-weight: 500; font-size: 18px; }
.ship-option .price-cell em { font-style: italic; color: var(--turquoise-d); font-size: 14px; }

.pay-methods { display: flex; flex-direction: column; gap: 10px; }
.pay-method-card {
  border: 1px solid var(--rule); border-radius: 4px;
  overflow: hidden;
}
.pay-method-card > .head {
  display: grid; grid-template-columns: 24px 1fr auto; gap: 14px;
  align-items: center;
  padding: 16px 18px; cursor: pointer;
}
.pay-method-card.is-on { border-color: var(--ink); }
.pay-method-card.is-on > .head { background: var(--ivory); }
.pay-method-card .radio { width: 18px; height: 18px; border-radius: 999px; border: 1.5px solid var(--rule); display: grid; place-items: center; flex-shrink: 0; }
.pay-method-card.is-on .radio { border-color: var(--ink); }
.pay-method-card.is-on .radio::after { content: ''; width: 8px; height: 8px; background: var(--ink); border-radius: 999px; }
.pay-method-card .label strong { display: block; font-size: 15px; font-weight: 500; }
.pay-method-card .label span { font-size: 12px; color: var(--ink-mute); }
.pay-method-card .brand-icons { display: flex; gap: 6px; font-family: var(--font-mono); font-size: 9.5px; letter-spacing: 0.12em; color: var(--ink-mute); }
.pay-method-card .brand-icons span { padding: 3px 6px; border: 1px solid var(--rule); border-radius: 2px; }
.pay-method-card .body {
  padding: 20px 18px;
  border-top: 1px solid var(--rule-soft);
  display: grid; gap: 12px;
}

.order-summary {
  position: sticky; top: 90px;
  background: var(--ivory);
  border: 1px solid var(--rule);
  padding: 28px;
}
.order-summary h4 {
  font-family: var(--font-serif); font-weight: 500;
  font-size: 22px; margin: 0 0 18px;
  display: flex; align-items: center; justify-content: space-between;
}
.order-summary h4 .count { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.1em; color: var(--ink-mute); font-weight: 400; }
.os-lines { display: flex; flex-direction: column; gap: 14px; padding-bottom: 18px; border-bottom: 1px solid var(--rule-soft); margin-bottom: 16px; }
.os-line { display: grid; grid-template-columns: 56px 1fr auto; gap: 12px; align-items: center; }
.os-line .thumb-wrap { width: 56px; aspect-ratio: 1; background: var(--sand); position: relative; overflow: hidden; }
.os-line .thumb-wrap .qty-badge {
  position: absolute; top: -6px; right: -6px;
  width: 22px; height: 22px;
  border-radius: 999px; background: var(--ink); color: var(--paper);
  display: grid; place-items: center;
  font-size: 11px; font-family: var(--font-mono);
  z-index: 2;
}
.os-line .meta { font-size: 13px; min-width: 0; }
.os-line .meta strong { display: block; font-family: var(--font-serif); font-size: 15px; font-weight: 500; line-height: 1.2; }
.os-line .meta span { font-size: 11.5px; color: var(--ink-mute); }
.os-line .px { font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; }

.os-totals { display: flex; flex-direction: column; gap: 6px; font-size: 14px; }
.os-totals .row { display: flex; justify-content: space-between; }
.os-totals .row.total {
  font-family: var(--font-serif); font-weight: 500;
  font-size: 22px;
  padding-top: 12px; margin-top: 6px;
  border-top: 1px solid var(--rule-soft);
}
.os-totals .row.muted { color: var(--ink-mute); font-size: 12px; }
.os-trust {
  margin-top: 20px;
  display: flex; flex-direction: column; gap: 8px;
  font-size: 12px; color: var(--ink-mute);
}
.os-trust .row { display: flex; align-items: center; gap: 8px; }
.os-trust .ic { color: var(--turquoise-d); flex-shrink: 0; }

@media (max-width: 1024px) {
  .checkout-inner { grid-template-columns: 1fr; }
  .order-summary { position: static; order: -1; }
  .checkout-steps { display: none; }
}

/* ──────────────────────────────────────────────────────────────────────────
   COMPTE CLIENT
   ────────────────────────────────────────────────────────────────────────── */
.account-page { padding: clamp(32px, 4vw, 56px) 0 var(--section-y); }
.account-inner {
  display: grid; grid-template-columns: 260px 1fr; gap: clamp(32px, 4vw, 56px);
  align-items: flex-start;
}
.account-nav {
  position: sticky; top: 100px;
  display: flex; flex-direction: column; gap: 4px;
  background: var(--ivory);
  padding: 14px;
  border: 1px solid var(--rule);
}
.account-nav a {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 14px;
  font-size: 14px;
  color: var(--ink);
  border-radius: 4px;
  transition: background .2s var(--easing), color .2s var(--easing);
  cursor: pointer;
}
.account-nav a:hover { background: var(--paper); }
.account-nav a.is-on { background: var(--ink); color: var(--paper); }
.account-nav a .ic { flex-shrink: 0; }
.account-nav a .ic svg { width: 18px; height: 18px; }
.account-nav .signout {
  margin-top: 12px; padding-top: 14px;
  border-top: 1px solid var(--rule);
  font-size: 12.5px; color: var(--ink-mute);
}

.account-main { min-width: 0; }
.account-hello {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; flex-wrap: wrap;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--rule);
  margin-bottom: 32px;
}
.account-hello h1 {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(32px, 4vw, 48px);
  margin: 0;
}
.account-hello h1 em { font-style: italic; color: var(--accent); font-weight: 400; }
.account-hello p { color: var(--ink-mute); margin: 6px 0 0; font-size: 14px; }
.account-hello .meta {
  display: flex; gap: 18px; font-family: var(--font-mono); font-size: 11px;
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-mute);
}

.account-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 32px; }
.acc-card { padding: 24px; background: var(--ivory); border: 1px solid var(--rule); display: flex; flex-direction: column; gap: 8px; }
.acc-card h6 { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-mute); margin: 0; }
.acc-card .big { font-family: var(--font-serif); font-weight: 500; font-size: 36px; line-height: 1; margin: 4px 0; letter-spacing: -0.02em; }
.acc-card .big em { font-style: italic; color: var(--turquoise-d); }
.acc-card p { font-size: 13px; color: var(--ink-soft); margin: 0; }
.acc-card a { font-size: 12.5px; color: var(--ink); border-bottom: 1px solid currentColor; padding-bottom: 1px; align-self: flex-start; margin-top: 6px; }

.orders-list { display: flex; flex-direction: column; gap: 0; border-top: 1px solid var(--rule); }
.order-row {
  padding: 22px 0;
  border-bottom: 1px solid var(--rule-soft);
  display: grid; grid-template-columns: 1fr 1fr 1fr 1fr 100px; gap: 18px; align-items: center;
}
.order-row .num { font-family: var(--font-mono); font-size: 13px; letter-spacing: 0.06em; }
.order-row .num strong { display: block; font-family: var(--font-sans); font-size: 14px; letter-spacing: 0; margin-bottom: 2px; }
.order-row .date { font-size: 13px; color: var(--ink-mute); }
.order-row .items-row { display: flex; align-items: center; gap: 6px; }
.order-row .items-row .thumb-mini { width: 36px; aspect-ratio: 1; background: var(--sand); position: relative; overflow: hidden; }
.order-row .total-c { font-family: var(--font-serif); font-weight: 500; font-size: 18px; }
.order-row .status {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase;
  padding: 4px 8px;
  background: rgba(136,191,185,0.18);
  color: var(--turquoise-d);
  border-radius: 2px;
}
.order-row .status.shipped { background: rgba(200,100,61,0.14); color: var(--accent-deep); }
.order-row .status.delivered { background: var(--ivory); color: var(--ink-mute); }

/* Login / register card */
.auth-shell { padding: clamp(40px, 6vw, 96px) 0; min-height: 70vh; }
.auth-inner {
  max-width: 920px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 4vw, 56px);
}
.auth-card {
  padding: 36px 32px;
  background: var(--ivory);
  border: 1px solid var(--rule);
}
.auth-card h2 { font-family: var(--font-serif); font-weight: 500; font-size: 28px; margin: 0 0 8px; }
.auth-card p { color: var(--ink-soft); font-size: 14px; margin: 0 0 22px; }
.auth-card .field-row { gap: 14px; }
.auth-card .auth-foot { display: flex; justify-content: space-between; align-items: center; margin-top: 14px; font-size: 12.5px; color: var(--ink-mute); }
.auth-card .auth-foot a { color: var(--ink); border-bottom: 1px solid currentColor; padding-bottom: 1px; }
.auth-card .auth-btn { margin-top: 18px; width: 100%; justify-content: center; padding: 16px; }

@media (max-width: 1024px) {
  .account-inner { grid-template-columns: 1fr; }
  .account-nav { position: static; flex-direction: row; flex-wrap: wrap; }
  .account-nav a { flex: 1; min-width: 140px; }
  .account-nav .signout { width: 100%; margin: 8px 0 0; }
  .auth-inner { grid-template-columns: 1fr; }
  .account-cards { grid-template-columns: 1fr 1fr; }
  .order-row { grid-template-columns: 1fr 1fr; gap: 10px; }
  .order-row .items-row, .order-row > div:last-child { grid-column: 1 / -1; }
}

/* ──────────────────────────────────────────────────────────────────────────
   À PROPOS / CONTACT
   ────────────────────────────────────────────────────────────────────────── */
.about-hero {
  position: relative; height: clamp(420px, 60vh, 600px);
  background: var(--sand); overflow: hidden;
  display: flex; align-items: flex-end;
  color: #FFFFFF;
}
.about-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, transparent 30%, rgba(27,27,27,0.55) 100%); z-index: 1; }
.about-hero-inner { position: relative; z-index: 2; padding: 0 var(--gutter) 56px; width: 100%; }
.about-hero h1 {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(44px, 6vw, 88px);
  line-height: 1.0; letter-spacing: -0.025em;
  margin: 0; max-width: 18ch;
  color: #FFFFFF;
}
.about-hero h1 em { font-style: italic; font-weight: 400; }
.about-hero .eyebrow { color: rgba(255,255,255,0.85); }

.about-section { padding: var(--section-y) 0; }
.about-2col { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 96px); align-items: center; }
.about-2col h2 { font-family: var(--font-serif); font-weight: 500; font-size: clamp(32px, 4.4vw, 56px); line-height: 1.04; letter-spacing: -0.02em; margin: 12px 0 22px; }
.about-2col h2 em { font-style: italic; color: var(--accent); font-weight: 400; }
.about-2col p { font-size: 16px; line-height: 1.7; color: var(--ink-soft); margin: 0 0 16px; }
.about-2col .img-box { aspect-ratio: 4/5; background: var(--sand); position: relative; overflow: hidden; }
.about-2col.reverse > div:first-child { order: 2; }

.about-stats { padding: var(--section-y) 0; background: var(--ivory); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.about-stats-inner { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(20px, 3vw, 40px); }
.about-stat strong { display: block; font-family: var(--font-serif); font-weight: 500; font-size: clamp(48px, 5vw, 72px); line-height: 1; letter-spacing: -0.02em; color: var(--ink); }
.about-stat strong em { font-style: italic; color: var(--turquoise-d); }
.about-stat span { display: block; font-size: 13px; color: var(--ink-mute); margin-top: 8px; max-width: 22ch; line-height: 1.5; }

.about-team { padding: var(--section-y) 0; }
.about-team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px, 2.4vw, 36px); }
.about-team-card { display: flex; flex-direction: column; gap: 16px; }
.about-team-card .photo { aspect-ratio: 4/5; background: var(--sand); position: relative; overflow: hidden; }
.about-team-card h4 { font-family: var(--font-serif); font-weight: 500; font-size: 24px; margin: 0; }
.about-team-card p { font-size: 14px; color: var(--ink-soft); line-height: 1.6; margin: 0; }
.about-team-card .role { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent-deep); }

/* Contact */
.contact-page { padding: var(--section-y) 0; }
.contact-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(40px, 5vw, 80px); align-items: flex-start; }
.contact-form { display: flex; flex-direction: column; gap: 14px; }
.contact-info { display: flex; flex-direction: column; gap: 28px; padding: 28px; background: var(--ivory); border: 1px solid var(--rule); }
.contact-info h3 { font-family: var(--font-serif); font-weight: 500; font-size: 22px; margin: 0 0 6px; }
.contact-info-block { display: flex; gap: 16px; }
.contact-info-block .ic { width: 40px; height: 40px; border-radius: 999px; background: var(--paper); border: 1px solid var(--rule); display: grid; place-items: center; color: var(--turquoise-d); flex-shrink: 0; }
.contact-info-block strong { display: block; font-size: 14px; font-weight: 500; margin-bottom: 2px; }
.contact-info-block span, .contact-info-block a { font-size: 13px; color: var(--ink-soft); display: block; }
.contact-info-block a { color: var(--ink); border-bottom: 1px solid currentColor; padding-bottom: 1px; display: inline; }

.contact-faq { padding: var(--section-y) 0; background: var(--ivory); border-top: 1px solid var(--rule); }
.faq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px clamp(40px, 5vw, 72px); margin-top: 36px; }
.faq-item { padding: 18px 0; border-bottom: 1px solid var(--rule-soft); }
.faq-item summary { list-style: none; display: flex; align-items: center; justify-content: space-between; cursor: pointer; font-family: var(--font-serif); font-weight: 500; font-size: 18px; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item .ic { transition: transform .25s var(--easing); }
.faq-item[open] .ic { transform: rotate(45deg); }
.faq-item p { font-size: 14px; color: var(--ink-soft); line-height: 1.6; margin: 14px 0 0; }

@media (max-width: 1024px) {
  .about-2col { grid-template-columns: 1fr; }
  .about-2col.reverse > div:first-child { order: 0; }
  .about-stats-inner { grid-template-columns: repeat(2, 1fr); row-gap: 32px; }
  .about-team-grid { grid-template-columns: 1fr 1fr; }
  .about-team-card:nth-child(3) { display: none; }
  .contact-grid { grid-template-columns: 1fr; }
  .faq-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .about-stats-inner { grid-template-columns: 1fr; }
  .about-team-grid { grid-template-columns: 1fr; }
  .about-team-card:nth-child(3) { display: flex; }
  .account-cards { grid-template-columns: 1fr; }
}

/* ──────────────────────────────────────────────────────────────────────────
   JOURNAL (liste + article)
   ────────────────────────────────────────────────────────────────────────── */
.journal-list { padding: var(--section-y) 0; }
.journal-feature {
  display: grid; grid-template-columns: 1.2fr 1fr;
  gap: clamp(32px, 4vw, 64px); align-items: center;
  margin-bottom: clamp(48px, 5vw, 72px);
  padding-bottom: clamp(48px, 5vw, 72px);
  border-bottom: 1px solid var(--rule);
}
.journal-feature .feat-img { aspect-ratio: 4/3; background: var(--sand); position: relative; overflow: hidden; }
.journal-feature h2 { font-family: var(--font-serif); font-weight: 500; font-size: clamp(32px, 4vw, 52px); line-height: 1.04; letter-spacing: -0.02em; margin: 14px 0 18px; text-wrap: balance; }
.journal-feature h2 em { font-style: italic; color: var(--accent); font-weight: 400; }
.journal-feature p { color: var(--ink-soft); font-size: 16px; line-height: 1.65; margin: 0 0 22px; }

.journal-pills { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 36px; }

.post-article { padding: var(--section-y) 0; }
.post-article-inner { max-width: 760px; margin: 0 auto; }
.post-article header h1 { font-family: var(--font-serif); font-weight: 500; font-size: clamp(36px, 5vw, 64px); line-height: 1.02; letter-spacing: -0.02em; margin: 14px 0 18px; text-wrap: balance; }
.post-article header h1 em { font-style: italic; color: var(--accent); font-weight: 400; }
.post-article header .lead { font-size: 19px; color: var(--ink-soft); line-height: 1.55; margin: 0 0 28px; }
.post-article .post-meta { display: flex; gap: 18px; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-mute); }
.post-article .post-cover { aspect-ratio: 16/10; background: var(--sand); margin: 36px 0; position: relative; overflow: hidden; }
.post-article .post-body { font-size: 17px; line-height: 1.7; color: var(--ink-soft); }
.post-article .post-body h2 { font-family: var(--font-serif); font-weight: 500; font-size: 32px; color: var(--ink); margin: 40px 0 16px; line-height: 1.15; }
.post-article .post-body p { margin: 0 0 20px; }
.post-article .post-body p strong { color: var(--ink); font-weight: 500; }
.post-article .post-body blockquote {
  margin: 32px 0; padding: 24px 28px; background: var(--ivory);
  border-left: 3px solid var(--accent);
  font-family: var(--font-serif); font-weight: 500; font-style: italic;
  font-size: 22px; line-height: 1.4; color: var(--ink);
}
.post-article .post-body figure { margin: 32px 0; }
.post-article .post-body figcaption { font-size: 12px; color: var(--ink-mute); margin-top: 8px; text-align: center; font-family: var(--font-mono); letter-spacing: 0.06em; }

.post-share { display: flex; gap: 8px; align-items: center; margin: 40px 0; padding: 24px 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); font-size: 12px; color: var(--ink-mute); }
.post-share strong { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink); margin-right: auto; }
.post-share button { padding: 8px 14px; border-radius: 999px; border: 1px solid var(--rule); background: var(--paper); font-size: 12px; }

/* ──────────────────────────────────────────────────────────────────────────
   404
   ────────────────────────────────────────────────────────────────────────── */
.notfound { padding: var(--section-y) 0 calc(var(--section-y) * 1.4); text-align: center; }
.notfound .big-404 {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(180px, 28vw, 360px); line-height: 0.8;
  letter-spacing: -0.04em; color: var(--turquoise);
  margin: 0;
}
.notfound .big-404 em { font-style: italic; color: var(--accent); }
.notfound h2 { font-family: var(--font-serif); font-weight: 500; font-size: clamp(28px, 3.5vw, 44px); margin: 20px 0 14px; }
.notfound p { color: var(--ink-soft); margin: 0 auto 32px; max-width: 44ch; }
.notfound .nf-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.notfound .nf-suggest {
  margin-top: 64px; padding-top: 36px; border-top: 1px solid var(--rule);
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 16px; max-width: 800px; margin-left: auto; margin-right: auto; text-align: left;
}
.notfound .nf-suggest a { padding: 16px 18px; background: var(--ivory); font-family: var(--font-serif); font-size: 18px; transition: background .2s var(--easing); }
.notfound .nf-suggest a:hover { background: var(--ink); color: var(--paper); }

@media (max-width: 1024px) {
  .journal-feature { grid-template-columns: 1fr; }
  .notfound .nf-suggest { grid-template-columns: 1fr 1fr; }
}

/* ===== Sous-menu simple (collé sous la barre du header, coins bas arrondis) ===== */
.nav-primary { align-self: stretch; align-items: stretch; flex-wrap: nowrap; gap: clamp(4px, 0.7vw, 12px); min-width: 0; }
.nav-primary .nav-item { position: relative; display: inline-flex; align-items: center; flex: 0 0 auto; }
.nav-primary .nav-item > a { display: inline-flex; align-items: center; gap: 5px; font-size: 13.5px; font-weight: 500; white-space: nowrap; padding: 6px 9px; border-radius: 8px; transition: background .18s ease, color .18s ease; }
.nav-primary .nav-item > a::after { display: none; }                 /* plus de trait collé en bas */
.nav-primary .nav-item > a:hover,
.nav-primary .nav-item.has-sub:hover > a { background: var(--turquoise); color: #fff; }
.nav-caret { font-size: 15px; line-height: 1; opacity: .9; transition: transform .15s; }
.nav-primary .nav-item.has-sub:hover .nav-caret { transform: rotate(180deg); opacity: 1; }
.nav-sub {
  position: absolute; top: 100%; left: 50%;
  transform: translateX(-50%);
  min-width: 234px; background: var(--paper);
  border: 1px solid var(--rule); border-top: none;
  border-radius: 0 0 14px 14px;
  box-shadow: 0 26px 44px -28px rgba(27,27,27,.35);
  padding: 8px; display: flex; flex-direction: column; gap: 1px;
  opacity: 0; visibility: hidden; transition: opacity .16s ease; z-index: 300;
}
.nav-primary .nav-item.has-sub:hover .nav-sub { opacity: 1; visibility: visible; }
.nav-sub a { position: static; padding: 8px 12px; border-radius: 8px; font-size: 13.5px; color: var(--ink); white-space: nowrap; line-height: 1.3; }
.nav-sub a::after { display: none; }
.nav-sub a:hover { background: var(--turquoise); color: #fff; }
.nav-sub a:hover.nav-sub-item { color: #fff; }
.nav-sub .nav-sub-head { font-weight: 500; }
.nav-sub .nav-sub-item { padding-left: 22px; font-size: 12.5px; color: #6b6f76; }

/* ===== Icônes header agrandies + effet panier (style eden) ===== */
.nav-icons { gap: 0; }
.nav-icons .icon-btn { width: 38px; height: 38px; }
.nav-icons .icon-btn svg { width: 23px; height: 23px; }
.icon-btn .badge { top: 4px; right: 2px; min-width: 18px; height: 18px; font-size: 10.5px; }
.icon-btn .badge.is-zero { display: none; }
.icon-btn.has-items .badge { animation: sxs-cart-pulse 1.9s ease-in-out infinite; }
@keyframes sxs-cart-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(95,163,154,.5); }
  50%      { box-shadow: 0 0 0 7px rgba(95,163,154,0); }
}
.badge.sxs-bump { animation: sxs-cart-bump .5s cubic-bezier(.34,1.56,.64,1); }
@keyframes sxs-cart-bump {
  0% { transform: scale(1); } 35% { transform: scale(1.55); } 100% { transform: scale(1); }
}

/* ===== Recherche live (dropdown sous le header — style eden) ===== */
 * .search-stack limite la longueur de la search → écart symétrique de chaque côté. */
.search-wrap { display: flex; align-items: center; justify-content: center; gap: 10px; min-width: 0; transform: translateY(6px); }
.search-stack { flex: 0 1 520px; min-width: 0; position: relative; }
.search-stack .search { width: 100%; }
.quiz-trigger {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  /* Plus discret : fond blanc + bordure rose-soft (comme la search), pas de rose plein */
  background: #fff;
  color: var(--turquoise-d);
  border: 2px solid var(--turquoise-l);
  border-radius: 10px;
  /* Padding aligné précisément pour matcher la hauteur de la search (~42px) :
   * border 2+2 + padding 13+13 + font 12.5 line-height 1 = ~42px. */
  padding: 13px 16px;
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s, color 0.2s, border-color 0.2s, transform 0.2s;
  white-space: nowrap;
}
.quiz-trigger:hover {
  background: var(--turquoise-l);
  border-color: var(--turquoise);
  color: var(--turquoise-d);
  transform: translateY(-1px);
}
.quiz-trigger svg { flex-shrink: 0; width: 15px; height: 15px; }
@media (max-width: 900px) {
  .quiz-trigger { padding: 9px 10px; }
  .quiz-trigger-label { display: none; }
}
form.search {
  display: flex;
  align-items: center;
  background: #fff;
  border: 2px solid var(--turquoise-l);
  border-radius: 10px;
  padding: 3px 3px 3px 20px;
  transition: border-color 0.2s;
}
form.search:focus-within { border-color: var(--turquoise); }
form.search input {
  flex: 1;
  border: none;
  background: none;
  outline: none;
  padding: 8px 0;
  font: inherit;
  color: var(--ink);
  font-size: 13.5px;
  font-weight: 500;
}
form.search input::placeholder { color: var(--muted); font-style: italic; font-weight: 400; }
form.search input::-webkit-search-cancel-button,
form.search input::-webkit-search-decoration { -webkit-appearance: none; appearance: none; display: none; }
form.search input::-ms-clear { display: none; width: 0; height: 0; }
form.search button {
  background: transparent;
  color: var(--turquoise-d);
  border-radius: 8px;
  padding: 8px 14px;
  font-size: 13.5px;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: background 0.18s, color 0.18s;
}
form.search button:hover { background: var(--turquoise-l); color: var(--turquoise-d); }

/* Dropdown AJAX live — résultats produits sous la barre de recherche.
 * Ancré sur .search-stack (sub-container qui ne contient que la form) pour
 * que le pop s'aligne sous la search et pas sous le bouton quiz à droite. */
.sixtystones-search-pop {
  position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 950;
  background: #fff;
  border: 1px solid var(--turquoise-l);
  border-radius: 10px;
  box-shadow: 0 24px 48px -24px rgba(95,163,154,0.28), 0 8px 24px -16px rgba(95,163,154,0.12);
  overflow: hidden;
  display: none;
  animation: sixtystones-search-in .2s cubic-bezier(.2,.8,.25,1) both;
}
.sixtystones-search-pop[data-open="1"] { display: block; }
.sixtystones-search-pop__inner {
  padding: 6px;
  max-height: min(70vh, 540px);
  overflow-y: auto;
  /* Scrollbar masquée par défaut, apparaît au survol du dropdown */
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.sixtystones-search-pop__inner::-webkit-scrollbar { width: 0; height: 0; }
.sixtystones-search-pop:hover .sixtystones-search-pop__inner {
  scrollbar-width: thin;
  scrollbar-color: var(--turquoise-l) transparent;
}
.sixtystones-search-pop:hover .sixtystones-search-pop__inner::-webkit-scrollbar { width: 6px; }
.sixtystones-search-pop:hover .sixtystones-search-pop__inner::-webkit-scrollbar-thumb { background: var(--turquoise-l); border-radius: 99px; }
.sixtystones-search-pop:hover .sixtystones-search-pop__inner::-webkit-scrollbar-thumb:hover { background: var(--turquoise); }
.sixtystones-search-pop:hover .sixtystones-search-pop__inner::-webkit-scrollbar-track { background: transparent; margin: 18px 0; }
.sixtystones-search-pop:hover .sixtystones-search-pop__inner::-webkit-scrollbar-button { display: none; }
@keyframes sixtystones-search-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
.sixtystones-search__state {
  padding: 22px 18px;
  text-align: center;
  font-size: 13.5px;
  color: var(--ink);
  font-weight: 400;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
}
.sixtystones-search__state strong { color: var(--turquoise-d); font-weight: 600; }
.sixtystones-search__state-emoji { font-size: 24px; line-height: 1; }
.sixtystones-search__item {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  text-decoration: none; color: var(--ink);
  transition: background 0.15s;
}
.sixtystones-search__item:hover, .sixtystones-search__item.is-active { background: var(--turquoise-l); }
.sixtystones-search__thumb {
  flex-shrink: 0;
  width: 48px; height: 48px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid var(--turquoise-l);
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.sixtystones-search__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sixtystones-search__txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.sixtystones-search__title {
  font-size: 13.5px; font-weight: 500; color: var(--ink); line-height: 1.3;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.sixtystones-search__price-row {
  font-size: 14px; color: var(--turquoise-d); display: flex; align-items: baseline; gap: 5px; flex-wrap: wrap;
}
.sixtystones-search__price-row .woocommerce-Price-amount,
.sixtystones-search__price-row .sixtystones-search__price { font-weight: 600; color: var(--turquoise-d); }
.sixtystones-search__price-row del { color: var(--muted); font-weight: 400; opacity: 0.75; margin-right: 4px; }
.sixtystones-search__price-row ins { background: none; text-decoration: none; }
.sixtystones-search__from {
  font-size: 12.5px; font-weight: 500; color: var(--muted); text-transform: lowercase; letter-spacing: 0.01em;
}
.sixtystones-search__period { font-size: 11px; color: var(--muted); font-weight: 400; }
.sixtystones-search__oos {
  margin-left: auto; flex-shrink: 0;
  font-size: 10.5px; font-weight: 500; padding: 2px 8px; border-radius: 99px;
  background: #f4f0f3; color: var(--muted); letter-spacing: 0.04em; text-transform: uppercase;
}
.sixtystones-search__footer {
  margin-top: 2px; padding: 8px 12px 4px;
  border-top: 1px dashed var(--turquoise-l);
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  font-size: 12.5px;
}
.sixtystones-search__count { color: var(--muted); }
.sixtystones-search__see-all {
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--turquoise-d); font-weight: 500; text-decoration: none;
  padding: 6px 12px; border-radius: 99px;
  background: var(--turquoise-l); transition: background 0.2s, color 0.2s;
}
.sixtystones-search__see-all:hover { background: var(--turquoise-l); color: var(--turquoise-d); }
@media (max-width: 720px) {
  .sixtystones-search-pop { border-radius: 18px; max-height: 65vh; }
  .sixtystones-search__thumb { width: 42px; height: 42px; border-radius: 10px; }
  .sixtystones-search__title { font-size: 13px; }
  .sixtystones-search__price-row { font-size: 12px; }
}


/* Panneau recherche déroulant sous le header */
.sxs-search-panel { position: absolute; left: 0; right: 0; top: 100%; background: var(--paper); border-bottom: 1px solid var(--rule); box-shadow: 0 26px 44px -30px rgba(0,0,0,.30); padding: 18px 0; z-index: 250; display: none; }
.sxs-search-panel.is-open { display: block; animation: sxs-search-down .18s ease; }
@keyframes sxs-search-down { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }
.sxs-search-panel .search-stack { margin: 0 auto; max-width: 640px; position: relative; transform: none; }

/* Bouton "Quiz / Bien choisir" dans le menu principal */
.nav-primary .nav-item-quiz > a {
  background: #fff; color: var(--turquoise-d);
  border: 2px solid var(--turquoise-l); border-radius: 10px;
  padding: 6px 13px; font-weight: 600; letter-spacing: .01em;
  transition: background .2s, color .2s, border-color .2s, transform .2s;
}
.nav-primary .nav-item-quiz > a:hover {
  background: var(--turquoise-l); border-color: var(--turquoise); color: var(--turquoise-d);
  transform: translateY(-1px);
}

/* ===== Hero catégorie : image de fond + texte blanc par-dessus ===== */
.cat-hero { position: relative; background: var(--turquoise, #81C2B8); background-size: cover; background-position: center; padding: clamp(24px, 3.2vw, 44px) 0; margin-bottom: 22px; overflow: hidden; }
.cat-hero__overlay { position: absolute; inset: 0; background: transparent; }
/* Degrade sombre uniquement SUR une image de fond ; sinon turquoise plat. */
.cat-hero.has-image .cat-hero__overlay { background: linear-gradient(180deg, rgba(18,34,32,0.34), rgba(18,34,32,0.62)); }
.cat-hero__inner { position: relative; z-index: 2; text-align: left; color: #fff; }
.cat-hero__lead-wrap { max-width: 720px; }
.cat-hero__lead-wrap.is-long .cat-hero__lead { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cat-hero__toggle-in:checked ~ .cat-hero__lead { -webkit-line-clamp: unset; overflow: visible; }
.cat-hero__toggle { display: inline-block; margin-top: 4px; color: #fff; font-size: 12.5px; font-weight: 600; text-decoration: underline; cursor: pointer; opacity: .92; }
.cat-hero__toggle .less { display: none; }
.cat-hero__toggle-in:checked ~ .cat-hero__toggle .more { display: none; }
.cat-hero__toggle-in:checked ~ .cat-hero__toggle .less { display: inline; }
.cat-hero__title { font-family: var(--font-serif); font-size: clamp(22px, 3vw, 29px); font-weight: 400; color: #fff; margin: 0 0 6px; letter-spacing: -0.01em; }
.cat-hero__lead { max-width: 600px; margin: 0 auto 8px; color: rgba(255,255,255,0.92); font-size: 14px; line-height: 1.5; }
.cat-hero__count { display: inline-block; color: #fff; font-size: 12.5px; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.92; }
.cat-hero__count strong { font-weight: 700; }

/* ===== Badge note Avis Garantis ===== */
.sxs-ag-badge { display: inline-flex; align-items: center; gap: 8px; margin: 6px 0 12px; font-size: 13px; }
.sxs-ag-stars { display: inline-flex; gap: 1px; color: #f5b301; }
.sxs-ag-badge__txt { color: inherit; opacity: .95; }
.sxs-ag-badge__txt strong { font-weight: 700; }

/* Badge avis sur fiche produit */
.product-detail-ag { margin: 4px 0 12px; }
.product-detail-ag img, .product-detail-ag svg, .product-detail-ag .sxs-ag-logo { max-height: 24px !important; width: auto !important; }
.product-detail-ag .sxs-ag-badge { font-size: 13.5px; }
.product-detail-ag .sxs-ag-stars { color: #f5b301; }
.product-detail-ag .sxs-ag-badge__txt { color: var(--ink, #1f1f1d); }

/* ===== Catégorie : bandeau avis défilant + description repliable ===== */
.cat-reviews { margin: 36px 0 8px; }
.cat-reviews__title { font-family: var(--font-serif); font-size: clamp(20px,3vw,28px); font-weight: 500; text-align: center; margin: 0 0 18px; }
.cat-reviews__marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.cat-reviews__track { display: flex; gap: 16px; width: max-content; animation: sxs-rev-scroll 45s linear infinite; }
.cat-reviews__marquee:hover .cat-reviews__track { animation-play-state: paused; }
@keyframes sxs-rev-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.cat-review { flex: 0 0 300px; background: #fff; border: 1px solid #ececea; border-radius: 14px; padding: 16px 18px; }
.cat-review__stars { display: flex; gap: 1px; color: #f5b301; margin-bottom: 8px; }
.cat-review__txt { font-size: 13.5px; line-height: 1.5; color: var(--ink, #1f1f1d); margin: 0 0 10px; }
.cat-review__author { font-size: 12px; font-weight: 600; color: #6b6f76; }

.cat-description { margin: 30px 0; }
.cat-description-inner { position: relative; }
.cat-description__body { font-size: 14.5px; line-height: 1.7; color: var(--ink-soft, #4f4f4f); display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.cat-description__toggle-in:checked ~ .cat-description__body { -webkit-line-clamp: unset; overflow: visible; }
.cat-description__toggle { display: inline-block; margin-top: 10px; color: var(--turquoise-d, #5FA39A); font-weight: 600; font-size: 13.5px; text-decoration: underline; cursor: pointer; }
.cat-description__toggle .less { display: none; }
.cat-description__toggle-in:checked ~ .cat-description__toggle .more { display: none; }
.cat-description__toggle-in:checked ~ .cat-description__toggle .less { display: inline; }

/* Catégorie : avis + description sur la largeur du contenu + label vérifié */
.cat-reviews { max-width: var(--maxw, 1480px); margin: 36px auto 8px; padding: 0 var(--gutter, 24px); }
.cat-reviews__head { display: flex; align-items: center; justify-content: center; gap: 14px; flex-wrap: wrap; margin-bottom: 18px; }
.cat-reviews__head .cat-reviews__title { margin: 0; }
.cat-reviews__verified { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--turquoise-d, #5FA39A); background: var(--turquoise-l, #e7f2f0); border-radius: 999px; padding: 5px 12px; }
.cat-description { max-width: var(--maxw, 1480px); margin: 30px auto; padding: 0 var(--gutter, 24px); }
.cat-description .cat-description-inner { max-width: none; padding: 0; margin: 0; }

/* Avis défilants — cartes propres et espacées */
.cat-reviews { margin: 44px auto 14px; }
.cat-reviews__track { gap: 20px; padding: 6px 2px 16px; }
.cat-review { flex: 0 0 290px; display: flex; flex-direction: column; min-height: 160px; padding: 18px 20px; border: 1px solid #ececea; border-radius: 14px; background: #fff; box-shadow: 0 12px 30px -24px rgba(0,0,0,.22); }
.cat-review__stars { margin-bottom: 10px; }
.cat-review__txt { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; flex: 1 1 auto; margin: 0 0 12px; font-size: 13.5px; line-height: 1.55; }
.cat-review__author { margin-top: auto; }
.cat-reviews { overflow: hidden; }
.cat-reviews__marquee { overflow: hidden; width: 100%; max-width: 100%; }

/* Description catégorie — panneau soigné + fondu (au lieu du clamp brut) */
.cat-description { background: #faf9f7; border: 1px solid #efeee9; border-radius: 16px; padding: clamp(20px,3vw,34px) clamp(22px,4vw,40px); }
.cat-description .cat-description-inner { position: relative; }
.cat-description__body { font-size: 15px; line-height: 1.75; color: #4a4a46; max-height: 9.5em; overflow: hidden; position: relative; -webkit-line-clamp: unset; -webkit-box-orient: initial; display: block; }
.cat-description__body::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3.4em; background: linear-gradient(transparent, #faf9f7); pointer-events: none; }
.cat-description__toggle-in:checked ~ .cat-description__body { max-height: none; }
.cat-description__toggle-in:checked ~ .cat-description__body::after { display: none; }
.cat-description__body > :first-child { margin-top: 0; }
.cat-description__body > :last-child { margin-bottom: 0; }
.cat-description__body h2, .cat-description__body h3, .cat-description__body h4 { font-family: var(--font-serif); font-weight: 500; color: var(--ink, #1f1f1d); margin: 18px 0 8px; line-height: 1.25; }
.cat-description__body h2 { font-size: 21px; }
.cat-description__body h3 { font-size: 18px; }
.cat-description__body p { margin: 0 0 12px; }
.cat-description__body ul, .cat-description__body ol { margin: 0 0 12px; padding-left: 22px; }
.cat-description__body li { margin: 4px 0; }
.cat-description__body a { color: var(--turquoise-d, #5FA39A); text-decoration: underline; }
.cat-description__body strong { color: var(--ink, #1f1f1d); }
.cat-description__body img { max-width: 100%; height: auto; border-radius: 10px; }
/* Hero catégorie : barre plus basse (titre seul) */
.cat-hero { padding: clamp(14px, 1.8vw, 26px) 0 !important; }

/* Barre de filtres "intégrée" : chevauche le bas du hero (carte flottante) */
.cat-hero { margin-bottom: 0 !important; }
.shop-wide { position: relative; }
.shop-wide .shop-toolbar-v2 { position: relative; z-index: 6; margin-top: -26px; margin-bottom: 26px; background: #fff; border: 1px solid #ececea; border-radius: 14px; padding: 12px 16px; box-shadow: 0 16px 38px -26px rgba(0,0,0,.25); }
/* Hero catégorie agrandi (la barre de filtres chevauche son bas) */
.cat-hero { padding: clamp(44px, 6vw, 92px) 0 !important; }
.cat-hero { padding: clamp(34px, 4.5vw, 66px) 0 !important; }
/* Recherche : hero un peu plus bas (fond turquoise plat, sans image) */
body.search .cat-hero { padding: clamp(26px, 3.4vw, 50px) 0 !important; }

/* Fond de page blanc (au lieu du crème) */
body { background: #ffffff !important; }

/* Menu principal : police un poil plus grande */
.nav-primary .nav-item > a { font-size: 14.5px; }

/* Bouton quiz : rempli turquoise pour qu'il se démarque, taille mesurée */
.nav-primary .nav-item-quiz > a { background: var(--turquoise) !important; color: #fff !important; border: 2px solid var(--turquoise) !important; font-size: 13px !important; padding: 6px 14px !important; }
.nav-primary .nav-item-quiz > a:hover { background: var(--turquoise-d) !important; border-color: var(--turquoise-d) !important; color: #fff !important; }

/* ===== Contact Form 7 — style aligné au site ===== */
.wpcf7-form { max-width: 660px; }
.wpcf7-form p { margin: 0 0 16px; }
.wpcf7-form label { display: block; font-size: 13.5px; font-weight: 500; color: var(--ink, #1f1f1d); }
.wpcf7-form-control:not(.wpcf7-submit):not([type=checkbox]):not([type=radio]) { width: 100%; box-sizing: border-box; margin-top: 6px; padding: 12px 14px; border: 1px solid #ddd9d2; border-radius: 10px; font: inherit; font-size: 14px; background: #fff; transition: border-color .15s; }
.wpcf7-form textarea { min-height: 140px; resize: vertical; }
.wpcf7-form-control:not(.wpcf7-submit):focus { outline: none; border-color: var(--turquoise, #81C2B8); box-shadow: 0 0 0 3px rgba(129,194,184,.15); }
.wpcf7-submit { display: inline-block; width: auto; background: var(--turquoise, #81C2B8); color: #fff; border: none; border-radius: 9px; padding: 10px 22px; font: inherit; font-size: 14px; font-weight: 600; letter-spacing: .02em; cursor: pointer; transition: background .15s; }
.wpcf7-submit:hover { background: var(--turquoise-d, #5FA39A); }
.wpcf7 .wpcf7-spinner { margin: 0 0 0 10px; }

/* Menu principal — taille augmentée (Jost rend plus petit) */
.nav-primary .nav-item > a { font-size: 15.5px !important; }
.nav-primary .nav-item-quiz > a { font-size: 13.5px !important; }

/* Sous-menu : bordure grise comme les cartes produit (au lieu du doré) */
.nav-sub { border-color: #ececea !important; }

/* ===== Recherche : overlay plein écran (UX premium) ===== */
/* ===== Recherche : modal centre, fond flou sombre, simple & elegant ===== */
.sxs-search-panel { position: fixed !important; inset: 0 !important; width: 100% !important; max-width: none !important; z-index: 99980; background: rgba(26,19,8,0.45); -webkit-backdrop-filter: blur(6px) saturate(140%); backdrop-filter: blur(6px) saturate(140%); display: flex !important; flex-direction: column; align-items: center; justify-content: center; padding: 24px; overflow-y: auto; border: none !important; box-shadow: none !important; border-radius: 0 !important; animation: sxs-search-fade .25s ease; }
.sxs-search-panel[hidden] { display: none !important; }
@keyframes sxs-search-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes sxs-search-pop { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
/* Carte centrale */
.sxs-search-panel .search-stack { width: 100%; max-width: 560px; margin: 0; flex: 0 0 auto; background: var(--cream, #FFFCF7); border: 1px solid rgba(129,194,184,0.18); border-radius: 18px; padding: 24px 24px 22px; box-shadow: 0 24px 64px -16px rgba(26,19,8,0.35), 0 8px 20px -8px rgba(95,163,154,0.18); transform: none; animation: sxs-search-pop .3s cubic-bezier(.2,.9,.3,1.1); }
.sxs-search-title { display: flex; align-items: center; gap: 8px; text-align: left; font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--turquoise-d, #5FA39A); margin: 0 0 12px; }
.sxs-search-title svg { width: 15px; height: 15px; color: var(--turquoise-d, #5FA39A); flex: 0 0 auto; }
/* Social proof masque quand la recherche est ouverte */
body.sxs-search-open .sxs-sp { display: none !important; }
.sxs-search-panel form.search { display: flex; gap: 8px; width: 100%; border: 1.5px solid #e5e2db; border-radius: 12px; padding: 5px 5px 5px 14px; background: #fff; }
.sxs-search-panel form.search input[type=search] { flex: 1 1 auto; min-width: 0; border: none !important; background: transparent !important; font-size: 14px; font-family: var(--font-body); color: var(--ink, #1f1f1d); padding: 9px 2px; outline: none; box-shadow: none !important; }
.sxs-search-panel form.search input[type=search]::placeholder { font-size: 13px; font-style: italic; color: var(--muted, #9a948a); }
.sxs-search-panel form.search button[type=submit] { flex: 0 0 auto; background: var(--turquoise, #81C2B8); color: #fff; border: none; border-radius: 9px; padding: 0 16px; min-height: 44px; display: inline-flex; align-items: center; gap: 7px; font-weight: 600; font-size: 13px; cursor: pointer; transition: background .15s; }
.sxs-search-panel form.search button[type=submit]:hover { background: var(--turquoise-d, #5FA39A); }
.sxs-search-close { position: fixed; top: clamp(16px,3vw,26px); right: clamp(16px,3vw,26px); width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 0; background: rgba(255,255,255,.92); border-radius: 50%; color: var(--ink, #1f1f1d); cursor: pointer; z-index: 3001; transition: background .15s, transform .2s; }
.sxs-search-close:hover { background: #fff; transform: rotate(90deg); }
.sxs-search-panel .sixtystones-search-pop { position: static !important; top: auto !important; left: auto !important; right: auto !important; margin-top: 14px; width: 100%; max-width: none; border: 1px solid #ece8df; box-shadow: none; border-radius: 12px; }
.sxs-search-panel .sixtystones-search-pop__inner { max-height: 46vh; overflow-y: auto; }
/* Mobile : recherche ET quiz plein ecran, colles en haut, sans arrondi */
@media (max-width: 768px) {
  .sxs-search-panel { padding: 0; align-items: stretch; justify-content: flex-start; }
  .sxs-search-panel .search-stack { max-width: none; width: 100%; min-height: 100vh; min-height: 100dvh; border: 0; border-radius: 0; box-shadow: none; padding: 78px 18px 24px; }
  .sxs-search-panel .sixtystones-search-pop__inner { max-height: none; }
  .sixtystones-quiz-overlay { padding: 0 !important; align-items: stretch !important; justify-content: flex-start !important; }
  .sixtystones-quiz-modal { max-width: none !important; width: 100% !important; max-height: 100dvh !important; min-height: 100dvh !important; border: 0 !important; border-radius: 0 !important; }
}

/* Footer bottom bar : pleine largeur, turquoise (comme la barre défilante) */
.footer-bottom { background: var(--turquoise) !important; color: #fff !important; padding: 16px 0 !important; border: none !important; margin: 0 !important; }
.footer-bottom__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.footer-bottom span, .footer-bottom a, .footer-bottom .footer-legal, .footer-bottom .pay-strip span { color: #fff !important; }
.footer-bottom .pay-strip { display: flex; flex-wrap: wrap; gap: 8px; }
.footer-bottom .pay-strip span { font-size: 11px; border: 1px solid rgba(255,255,255,.4); border-radius: 5px; padding: 3px 8px; }
/* Mobile : copyright centré */
@media (max-width: 768px) {
	.footer-bottom__inner { flex-direction: column; align-items: center; justify-content: center; text-align: center; }
	.footer-bottom .footer-legal { justify-content: center; width: 100%; }
	.footer-bottom .pay-strip { justify-content: center; }
}

/* La barre turquoise doit être à ras du bas (pas de padding sous le footer) */
.footer { padding-bottom: 0 !important; }
.footer-bottom { margin-top: 0 !important; }

/* Bottom bar VRAIMENT pleine largeur (full-bleed), quel que soit le parent */
.footer-bottom { margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; width: auto !important; max-width: none !important; }
/* Masque le liseré blanc de 1px (fond body) sous la bande turquoise. */
.footer-bottom { margin-bottom: -1px !important; }
body { overflow-x: hidden; }

/* Footer : contenu pleine largeur (supprime les grosses marges du .wrap centré) */
.footer > .wrap { max-width: none !important; padding-left: clamp(24px, 5vw, 80px) !important; padding-right: clamp(24px, 5vw, 80px) !important; }
.footer-bottom .footer-bottom__inner { max-width: none !important; margin: 0 !important; padding-left: clamp(24px, 5vw, 80px) !important; padding-right: clamp(24px, 5vw, 80px) !important; }

/* FORCE footer pleine largeur — annule tout centrage/max-width/marge */
.footer { max-width: none !important; width: 100% !important; }
.footer .wrap, .footer > .wrap, .footer-inner, .footer-bottom .footer-bottom__inner {
  max-width: none !important; width: auto !important;
  margin-left: 0 !important; margin-right: 0 !important;
  padding-left: clamp(20px, 4vw, 60px) !important; padding-right: clamp(20px, 4vw, 60px) !important;
  box-sizing: border-box !important;
}

/* RETOUR : footer (colonnes + texte) à la largeur du contenu, identique à .shop-wide ; barre turquoise reste full-bleed */
.footer > .wrap { max-width: var(--maxw) !important; width: auto !important; margin: 0 auto !important; padding: 0 var(--gutter) !important; }
.footer-inner { max-width: none !important; width: auto !important; margin: 0 !important; padding: 0 0 56px !important; }
.footer-bottom .footer-bottom__inner { max-width: var(--maxw) !important; width: auto !important; margin: 0 auto !important; padding: 0 var(--gutter) !important; }

/* TOUT le footer à la largeur du contenu (barre comprise, plus de full-bleed) */
.footer-bottom { margin-left: auto !important; margin-right: auto !important; max-width: var(--maxw) !important; width: auto !important; }
.footer-bottom .footer-bottom__inner { max-width: none !important; margin: 0 !important; padding: 0 var(--gutter) !important; width: auto !important; }

/* FINAL : footer = EXACTEMENT la largeur du contenu (.shop-wide) — pas de width fixe */
.footer > .wrap,
.footer-bottom,
.footer-bottom .footer-bottom__inner {
  max-width: var(--maxw) !important;
  width: auto !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.footer > .wrap,
.footer-bottom .footer-bottom__inner {
  padding-left: var(--gutter) !important;
  padding-right: var(--gutter) !important;
}
.footer-bottom .footer-bottom__inner { max-width: none !important; padding-left: 0 !important; padding-right: 0 !important; }

/* Barre turquoise du bas : RETOUR full-bleed (pleine largeur), texte à la largeur du contenu */
.footer-bottom { max-width: none !important; width: auto !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; }
.footer-bottom .footer-bottom__inner { max-width: var(--maxw) !important; width: auto !important; margin-left: auto !important; margin-right: auto !important; padding-left: var(--gutter) !important; padding-right: var(--gutter) !important; }

/* ====== FOOTER — RÈGLE FINALE UNIQUE (annule tous les essais précédents) ====== */
.footer { max-width: none !important; width: auto !important; }
.footer > .wrap { max-width: var(--maxw) !important; width: auto !important; margin: 0 auto !important; padding: 0 var(--gutter) !important; box-sizing: border-box !important; }
.footer-inner { max-width: none !important; width: auto !important; margin: 0 !important; padding: 0 0 56px !important; }
.footer-bottom { max-width: none !important; width: auto !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; }
.footer-bottom .footer-bottom__inner { max-width: var(--maxw) !important; width: auto !important; margin: 0 auto !important; padding: 0 var(--gutter) !important; box-sizing: border-box !important; }

/* Footer wrap : largeur = exactement le contenu */
.footer > .wrap { width: 100% !important; max-width: var(--maxw) !important; margin: 0 auto !important; padding: 0 var(--gutter) !important; }
.footer-bottom .footer-bottom__inner { width: 100% !important; max-width: var(--maxw) !important; margin: 0 auto !important; padding: 0 var(--gutter) !important; }

/* Footer : largeur fixe 1480px (demande explicite) */
.footer > .wrap { width: 1480px !important; max-width: 100% !important; margin: 0 auto !important; padding: 0 var(--gutter) !important; }
.footer-bottom .footer-bottom__inner { width: 1480px !important; max-width: 100% !important; margin: 0 auto !important; padding: 0 var(--gutter) !important; }

/* ===== Footer : logo + grille 5 colonnes + newsletter ===== */
.footer-logo { display: inline-block; margin-bottom: 16px; }
.footer-logo img { width: auto; height: auto; display: block; }
.footer-inner { grid-template-columns: 1.6fr repeat(4, 1fr) !important; }

.footer-newsletter { background: #f6f4ef; border-top: 1px solid #ece8df; border-bottom: 1px solid #ece8df; }
.footer-newsletter__inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap; padding: 34px var(--gutter); }
.footer-newsletter__txt h3 { font-family: var(--font-serif); font-size: clamp(16px, 1.8vw, 19px); font-weight: 600; margin: 0 0 6px; color: var(--ink, #1f1f1d); }
.footer-newsletter__txt p { color: var(--ink-soft, #4f4f4f); font-size: 14px; line-height: 1.55; margin: 0; max-width: 48ch; }
.footer-newsletter__form { display: flex; gap: 10px; flex: 0 0 auto; flex-wrap: wrap; }
.footer-newsletter__form input[type=email] { border: 1px solid #ddd9d2; border-radius: 10px; padding: 13px 16px; font: inherit; font-size: 14px; min-width: 260px; background: #fff; }
.footer-newsletter__form input[type=email]:focus { outline: none; border-color: var(--turquoise, #81C2B8); box-shadow: 0 0 0 3px rgba(129,194,184,.15); }
.footer-newsletter__form button { background: var(--turquoise, #81C2B8); color: #fff; border: none; border-radius: 10px; padding: 13px 26px; font-weight: 600; cursor: pointer; transition: background .15s; }
.footer-newsletter__form button:hover { background: var(--turquoise-d, #5FA39A); }
.footer-newsletter__ok { color: var(--turquoise-d, #5FA39A); font-weight: 600; font-size: 15px; }
@media (max-width: 900px) { .footer-inner { grid-template-columns: 1fr 1fr !important; } .footer-newsletter__form input[type=email] { min-width: 0; flex: 1; } }

/* Footer : 3 colonnes (marque + Maison + Catégories) */
.footer-inner { grid-template-columns: 1.8fr 1fr 1fr !important; }
@media (max-width: 900px) { .footer-inner { grid-template-columns: 1fr 1fr !important; } }

/* Newsletter : à la largeur du contenu (1480), comme le reste du footer */
.footer .footer-newsletter > .wrap { width: 1480px !important; max-width: 100% !important; margin-left: auto !important; margin-right: auto !important; }

/* Footer : espacements haut/bas égaux */
.footer { padding-top: 0 !important; padding-bottom: 0 !important; }
.footer-newsletter__inner { padding-top: 40px !important; padding-bottom: 40px !important; }
.footer-inner { padding-top: 48px !important; padding-bottom: 48px !important; }

/* Logo Avis Garantis dans le badge note */
.sxs-ag-badge { flex-wrap: wrap; }
.sxs-ag-badge__logo { height: 22px; width: auto; display: inline-block; margin-right: 4px; }

/* Logos de paiement (footer + autres) */
.sxs-payments { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.sxs-pay { display: inline-flex; }
.sxs-pay__svg { display: block; height: 26px; width: 40px; border-radius: 4px; box-shadow: 0 1px 3px rgba(0,0,0,.12); }

/* Badge avis dans le footer : texte foncé lisible (pas blanc) + étoiles dorées */
.footer .brand-block .sxs-ag-badge, .footer .brand-block .sxs-ag-badge__txt { color: var(--ink, #1f1f1d) !important; }
.footer .brand-block .sxs-ag-badge__txt strong { color: var(--ink, #1f1f1d) !important; }
.footer .brand-block .sxs-ag-badge .sxs-ag-stars { color: #f5b301 !important; }

/* Logos paiement : alignés en ligne (pas empilés) */
.footer .sxs-payments { display: flex !important; flex-direction: row !important; flex-wrap: wrap; gap: 6px; align-items: center; }
.footer .sxs-pay { display: inline-flex !important; flex: 0 0 auto; }
.footer .sxs-pay__svg { display: block; height: 26px; width: 40px; }

/* Notif (toast) aux couleurs du site */
.toast { background: var(--turquoise, #81C2B8) !important; color: #fff !important; border-radius: 12px !important; box-shadow: 0 16px 38px -16px rgba(95,163,154,.5) !important; font-weight: 500; }
.toast .ic { color: #fff !important; }

/* Copyright bottom bar : texte plus grand */
.footer-bottom .footer-legal, .footer-bottom .footer-legal span { font-size: 14px !important; }

/* Footer : 5 colonnes (marque + Maison + Catégories + Informations + Mon compte) */
.footer-inner { grid-template-columns: 1.5fr repeat(4, 1fr) !important; }
@media (max-width: 1024px) { .footer-inner { grid-template-columns: 1fr 1fr 1fr !important; } }
@media (max-width: 700px) { .footer-inner { grid-template-columns: 1fr 1fr !important; } }

/* Bordures du footer = comme les cartes produit (#ececea) */
.footer { border-top-color: #ececea !important; }
.footer-newsletter { border-bottom-color: #ececea !important; }
.footer-inner { border-bottom-color: #ececea !important; }

/* Icônes réseaux sociaux : couleur du site (turquoise), hover bleu-vert plein */
.footer .socials a { color: var(--turquoise, #81C2B8) !important; border-color: var(--turquoise-l, #B3DAD5) !important; }
.footer .socials a:hover { background: var(--turquoise-d, #5FA39A) !important; color: #fff !important; border-color: var(--turquoise-d, #5FA39A) !important; }

/* Pages génériques : largeur du contenu, marges haut/bas égales, typo propre */
.sxs-page-wrap { padding-top: 56px !important; padding-bottom: 56px !important; }
.sxs-entry { font-size: 15px; line-height: 1.75; color: #4a4a46; }
.sxs-entry > :first-child { margin-top: 0; }
.sxs-entry h2, .sxs-entry h3, .sxs-entry h4 { font-family: var(--font-serif); font-weight: 500; color: var(--ink, #1f1f1d); margin: 28px 0 10px; line-height: 1.25; }
.sxs-entry h2 { font-size: 24px; } .sxs-entry h3 { font-size: 19px; }
.sxs-entry p { margin: 0 0 14px; }
.sxs-entry ul, .sxs-entry ol { margin: 0 0 14px; padding-left: 22px; }
.sxs-entry li { margin: 5px 0; }
.sxs-entry a { color: var(--turquoise-d, #5FA39A); text-decoration: underline; }
.sxs-entry img { max-width: 100%; height: auto; border-radius: 10px; }

/* Bandeau de réassurance sous le header (pleine largeur, comme le footer) */
.sxs-reassurance { background: var(--turquoise, #81C2B8); color: #fff; }
.sxs-reassurance__inner { display: flex; align-items: center; justify-content: center; gap: clamp(18px, 4vw, 50px); flex-wrap: wrap; padding: 11px var(--gutter); }
.sxs-reassurance__item { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; letter-spacing: .01em; }
.sxs-reassurance__item svg { flex: 0 0 auto; opacity: .95; }
@media (max-width: 700px) { .sxs-reassurance__inner { gap: 14px; padding: 9px 14px; } .sxs-reassurance__item { font-size: 11.5px; gap: 6px; } .sxs-reassurance__item svg { width: 14px; height: 14px; } }
.sxs-page-wrap { padding-top: 0px !important; }

/* H1 des pages statiques : moins de marge + style */
.sxs-main .sxs-page .hero-title { font-family: var(--font-serif); font-size: clamp(28px, 4vw, 42px); font-weight: 500; line-height: 1.15; color: var(--ink, #1f1f1d); margin: 0 0 18px !important; padding-bottom: 14px; position: relative; }
.sxs-main .sxs-page .hero-title::after { content: ''; display: block; width: 56px; height: 3px; border-radius: 3px; background: var(--turquoise, #81C2B8); margin-top: 14px; }
.sxs-page-wrap { padding-top: 56px !important; padding-bottom: 0px !important; }
.sxs-main .sxs-page .hero-title { font-size: clamp(23px, 2.6vw, 30px) !important; }
.sxs-page-wrap { padding-top: 15px !important; padding-bottom: 8px !important; }
.sxs-main .sxs-page .hero-title { padding-bottom: 0px !important; }
.sxs-page-wrap { padding-top: 20px !important; padding-bottom: 8px !important; }
.footer-newsletter__inner { padding-top: 20px !important; padding-bottom: 20px !important; }
.footer-inner { padding-top: 28px !important; padding-bottom: 28px !important; }
.sxs-main .sxs-page .hero-title { font-size: clamp(21px, 2.2vw, 26px) !important; }

/* Bandeau réassurance plus léger : fond clair, icônes turquoise seulement */
.sxs-reassurance { background: #faf9f7 !important; color: var(--ink, #1f1f1d) !important; border-top: 1px solid #ececea; border-bottom: 1px solid #ececea; }
.sxs-reassurance__item { color: var(--ink-soft, #4f4f4f) !important; }
.sxs-reassurance__item svg { color: var(--turquoise-d, #5FA39A) !important; opacity: 1 !important; }
.sxs-reassurance { background: #f6f4ef !important; border-top: 1px solid #ece8df; border-bottom: 1px solid #ece8df; }
.sxs-reassurance__item { font-family: 'Jost', 'Inter', system-ui, sans-serif !important; font-size: 14px !important; font-weight: 500 !important; letter-spacing: .01em !important; -webkit-font-smoothing: auto !important; -moz-osx-font-smoothing: auto !important; }

/* Bouton quiz : hauteur normalisée, identique sur toutes les pages */
.nav-primary .nav-item-quiz > a { border-width: 1.5px !important; padding: 7px 14px !important; line-height: 1.35 !important; box-sizing: border-box !important; align-self: center !important; }

/* Bouton quiz : un peu plus présent (CTA) */
.nav-primary .nav-item-quiz > a { font-size: 14px !important; padding: 8px 17px !important; }
/* Items du menu : pastille hover de même hauteur que le bouton quiz */
.nav-primary .nav-item:not(.nav-item-quiz) > a { padding-top: 8px !important; padding-bottom: 8px !important; }

/* Bouton quiz : discret (contour léger), se remplit au survol */
.nav-primary .nav-item-quiz > a { background: transparent !important; color: var(--turquoise-d, #5FA39A) !important; border: 1.5px solid var(--turquoise-l, #B3DAD5) !important; font-size: 13.5px !important; padding: 7px 15px !important; }
.nav-primary .nav-item-quiz > a:hover { background: var(--turquoise, #81C2B8) !important; color: #fff !important; border-color: var(--turquoise, #81C2B8) !important; }

/* Icône IA du bouton quiz */
.nav-primary .nav-item-quiz > a { display: inline-flex !important; align-items: center; gap: 6px; }
.nav-primary .nav-item-quiz > a .quiz-ai-ic { flex: 0 0 auto; }
.sxs-search-title { display: inline-flex; align-items: center; gap: 10px; justify-content: center; }
.sxs-search-title .quiz-ai-ic { color: var(--turquoise, #81C2B8); flex: 0 0 auto; }
/* Icône quizz IA à côté de la loupe */
.nav-icons .icon-btn-quiz { color: var(--turquoise-d, #5FA39A); }
.nav-icons .icon-btn-quiz:hover { color: var(--turquoise, #81C2B8); }

/* Toast (confirmation ajout) : plus compact */
.toast { padding: 10px 16px !important; font-size: 12.5px !important; border-radius: 10px !important; gap: 8px !important; }
.toast .ic svg, .toast svg { width: 16px !important; height: 16px !important; }

/* Masque la cloche Web Push de Shopimind (demande client) */
#spmWebPushIcon{display:none!important;}

/* =========================================================================
   RESPONSIVE SITE-WIDE (2026-05-23) — place dans sixtystones.css car
   store/pages.css n'est PAS charge sur les pages statiques (optim perf).
   Header / burger / menu mobile / marquee reassurance / newsletter.
   ========================================================================= */
html { -webkit-text-size-adjust: 100%; }
.sxs-burger { display: none; }

/* Marquee reassurance : base + dup masque sur desktop */
.sxs-reassurance__track { display: flex; align-items: center; justify-content: center; gap: clamp(18px, 4vw, 50px); flex-wrap: wrap; width: 100%; }
.sxs-reassurance__item.is-dup { display: none; }
@keyframes sxs-reassure-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

@media (max-width: 1440px) {
  /* Header : burger tout a gauche, logo colle, icones a droite */
  .header-inner { display: flex !important; align-items: center; justify-content: flex-start; gap: 6px; padding-left: 10px !important; padding-right: 12px !important; grid-template-columns: none !important; }
  .logo { justify-self: auto; margin: 0; }
  .logo img, .logo .logo-img { max-height: 40px; width: auto; }
  .nav-icons { margin-left: auto; gap: 2px; flex: 0 0 auto; }
  .nav-icons .icon-btn { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }

  .sxs-burger { display: inline-flex; flex-direction: column; justify-content: center; gap: 5px; width: 44px; height: 44px; padding: 11px; margin-left: -4px; border: 0; background: none; cursor: pointer; flex: 0 0 auto; -webkit-tap-highlight-color: transparent; }
  .sxs-burger span { display: block; width: 100%; height: 2px; background: var(--ink, #1f1f1d); border-radius: 2px; transition: transform .25s ease, opacity .2s ease; }
  body.sxs-mobile-open .sxs-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  body.sxs-mobile-open .sxs-burger span:nth-child(2) { opacity: 0; }
  body.sxs-mobile-open .sxs-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

}

@media (max-width: 768px) {
  /* Marquee reassurance : defile sur mobile */
  .sxs-reassurance { overflow: hidden; }
  .sxs-reassurance__inner { display: block; max-width: none !important; padding: 9px 0 !important; }
  .sxs-reassurance__track { flex-wrap: nowrap; justify-content: flex-start; width: max-content; gap: 30px; animation: sxs-reassure-scroll 18s linear infinite; }
  .sxs-reassurance__item { flex: 0 0 auto; white-space: nowrap; }
  .sxs-reassurance__item.is-dup { display: inline-flex; }

  /* Newsletter : champ + bouton empiles */
  .footer-newsletter__inner { flex-direction: column; align-items: stretch; gap: 14px; text-align: center; }
  .footer-newsletter__form { flex-direction: column; width: 100%; gap: 10px; }
  .footer-newsletter__form input[type=email], .footer-newsletter__form button { width: 100%; min-height: 48px; box-sizing: border-box; }

  /* Anti-zoom iOS sur les champs */
  input[type=email], input[type=search], input[type=text], input[type=tel], textarea { font-size: 16px; }
}

/* ---- Mobile : titres h2/h3 reduits (beaucoup avaient des tailles fixes) ---- */
@media (max-width: 768px) {
  .section-head h2, .titles h2 { font-size: 20px !important; line-height: 1.2 !important; }
  .story-text h2, .news h2, .reviews-summary-text h2, .lifetime-text h2, .stockists-text h2,
  .about-2col h2, .journal-feature h2, .post-article .post-body h2, .modal-content h2,
  .notfound h2, .cart-empty h2, .auth-card h2 { font-size: clamp(22px, 6vw, 27px) !important; line-height: 1.18 !important; }
  .cat-card .cat-label h3 { font-size: 17px !important; }
  .contact-info h3, .checkout-card h3, .journal-card h3, .shop-empty h3 { font-size: 18px !important; }
  /* Contenu des pages statiques / articles */
  .sxs-page h2, .post-body h2, .entry-content h2, .cat-description__body h2 { font-size: 23px !important; line-height: 1.2 !important; }
  .sxs-page h3, .post-body h3, .entry-content h3 { font-size: 18px !important; }
}
@media (max-width: 480px) {
  .section-head h2, .titles h2 { font-size: 18.5px !important; }
}

/* Police d'affichage : Jost partout (remplace Fraunces), defini aussi ici pour les pages sans main.css */
:root { --font-display: "Jost", sans-serif; }

/* Regle client (2026-05-24) : TOUS les titres en Jost, sans exception
   (override les selecteurs plus specifiques type .footer h5{--font-mono}). */
h1, h2, h3, h4, h5, h6 { font-family: 'Jost', system-ui, sans-serif !important; }

/* ===== Footer : bouton newsletter + icones paiement affines (2026-05-23) ===== */
.footer-newsletter__form button{ font-size:13.5px !important; padding:11px 22px !important; font-weight:600 !important; }
.footer .sxs-pay__svg{ height:22px !important; width:33px !important; }
.footer .sxs-payments{ gap:5px !important; }
@media (max-width:768px){
  .footer-bottom__inner{ flex-direction:column !important; align-items:center !important; text-align:center !important; gap:12px !important; }
  .footer-legal{ width:100% !important; text-align:center !important; }
  .footer .sxs-payments{ justify-content:center !important; width:100% !important; }
}

/* ===== Recherche : input lisible + pas de contour autour ===== */
.sxs-search-panel form.search{ border:0 !important; padding:0 !important; background:transparent !important; gap:8px !important; }
.sxs-search-panel form.search input[type=search]{
  background:#fff !important; color:#1f1f1d !important; -webkit-text-fill-color:#1f1f1d !important;
  border:1px solid #e6e2db !important; border-radius:10px !important; padding:13px 15px !important; font-size:16px !important; box-shadow:none !important;
}
.sxs-search-panel form.search input[type=search]::placeholder{ color:#9a958c !important; }
.sxs-search-panel .sixtystones-search-pop{ border:0 !important; box-shadow:none !important; }

/* ===== Bouton retour en haut ===== */
.sxs-totop{ position:fixed; right:18px; bottom:18px; z-index:1200; width:46px; height:46px; display:inline-flex; align-items:center; justify-content:center; border:0; border-radius:50%; background:var(--turquoise,#81C2B8); color:#fff; cursor:pointer; box-shadow:0 8px 22px -8px rgba(0,0,0,.4); opacity:0; visibility:hidden; transform:translateY(12px); transition:opacity .25s ease, transform .25s ease, background .15s ease; }
.sxs-totop.is-on{ opacity:1; visibility:visible; transform:translateY(0); }
.sxs-totop:hover{ background:var(--turquoise-d,#5FA39A); }
@media (max-width:768px){ .sxs-totop{ right:14px; bottom:14px; width:42px; height:42px; } }

/* ===== Contact Form 7 — case de consentement encadrée (toute la phrase) =====
   La bordure vient du contrôle .wpcf7-acceptance (déjà .wpcf7-form-control),
   PAS du label, pour éviter une double bordure. */
.wpcf7 .wpcf7-acceptance { display: block; width: 100%; box-sizing: border-box; padding: 12px 14px; height: auto; min-height: 0; overflow: visible; line-height: 1.5; font-size: 13.5px; color: var(--ink-soft, #4f4f4f); transition: border-color .15s ease, background .15s ease; }
.wpcf7 .wpcf7-acceptance .wpcf7-list-item { display: block; width: 100%; margin: 0; }
.wpcf7 .wpcf7-acceptance .wpcf7-list-item-label { display: inline; }
.wpcf7 .wpcf7-acceptance label { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; margin: 0; line-height: 1.5; }
.wpcf7 .wpcf7-acceptance label > input[type="checkbox"] { margin-top: 3px; flex: 0 0 auto; }
.wpcf7 .wpcf7-acceptance.wpcf7-not-valid { border-color: #c0392b !important; background: #fdf3f2; }
.wpcf7 .wpcf7-acceptance .wpcf7-not-valid-tip { margin-top: 6px; }
