:root {
  --c-bone: #FCFBF9;
  --c-paper: #FFFFFF;
  --c-ink: #1B1813;
  --c-noir: #14120D;
  --c-stone: #8C8475;
  --c-line: #DAD4C7;
  --c-accent: #5E3A42;
  --page-width: 1320px;
  --font-display: "Marcellus", Georgia, "Times New Roman", serif;
  --font-body: "Jost", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
/* ============================================================
   MINYA PARFUMERIE — base.css
   Luxury minimalist parfumerie. Marcellus + Jost.
   Near-monochrome palette, hairline rules, generous whitespace.
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--c-bone);
  color: var(--c-ink);
  font-family: var(--font-body);
  font-weight: 300;
  font-size: 16px;
  line-height: 1.65;
  letter-spacing: 0.01em;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img { max-width: 100%; height: auto; display: block; }

a { color: inherit; text-decoration: none; }

button { font-family: inherit; cursor: pointer; }

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: 0.005em;
  margin: 0;
}

/* ---- Type scale ---- */
.h-display { font-size: clamp(2.6rem, 6vw, 5.2rem); }
.h1 { font-size: clamp(2rem, 4vw, 3.4rem); }
.h2 { font-size: clamp(1.6rem, 3vw, 2.4rem); }
.h3 { font-size: clamp(1.2rem, 2vw, 1.6rem); }

/* small uppercase label — the recurring utility voice */
.label {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.28em;
  color: var(--c-stone);
}

.muted { color: var(--c-stone); }

/* ---- Layout primitives ---- */
.page-width {
  max-width: var(--page-width);
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 5vw, 4rem);
}
.section { padding-block: clamp(3.5rem, 8vw, 7rem); }
.section--tight { padding-block: clamp(2rem, 4vw, 3rem); }

.rule { border: 0; border-top: 1px solid var(--c-line); margin: 0; }

.skip-link {
  position: absolute; left: -999px; top: 0;
  background: var(--c-ink); color: var(--c-bone); padding: 0.75rem 1rem; z-index: 1000;
}
.skip-link:focus { left: 0; }

:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 3px; }

/* ---- Buttons ---- */
.btn {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 0.74rem;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  padding: 1.05rem 2.4rem;
  border: 1px solid var(--c-ink);
  background: transparent;
  color: var(--c-ink);
  transition: background .4s ease, color .4s ease, border-color .4s ease;
}
.btn:hover { background: var(--c-ink); color: var(--c-bone); }
.btn--solid { background: var(--c-ink); color: var(--c-bone); }
.btn--solid:hover { background: transparent; color: var(--c-ink); }
.btn--light { border-color: var(--c-bone); color: var(--c-bone); }
.btn--light:hover { background: var(--c-bone); color: var(--c-ink); }
.btn--block { display: block; width: 100%; text-align: center; }
.btn[disabled] { opacity: .4; cursor: not-allowed; pointer-events: none; }

.link-underline {
  position: relative;
  font-family: var(--font-body); font-size: 0.74rem;
  text-transform: uppercase; letter-spacing: 0.22em;
}
.link-underline::after {
  content: ""; position: absolute; left: 0; bottom: -4px; height: 1px; width: 100%;
  background: currentColor; transform: scaleX(0); transform-origin: left;
  transition: transform .4s ease;
}
.link-underline:hover::after { transform: scaleX(1); }

/* ============================================================
   HEADER
   ============================================================ */
.header {
  position: sticky; top: var(--ann-h, 38px); z-index: 60;
  background: transparent;
  transition: background .4s ease, border-color .4s ease;
  border-bottom: 1px solid transparent;
}
.header.is-scrolled,
.header.is-solid {
  background: var(--c-bone);
  border-bottom-color: var(--c-line);
}
.header__inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1rem;
  padding-block: 1.4rem;
}
.header__nav { display: flex; gap: 2.2rem; align-items: center; }
.header__nav--right { justify-content: flex-end; }
.header__nav a { font-size: 0.74rem; text-transform: uppercase; letter-spacing: 0.2em; }
.header__logo {
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 2.4vw, 1.8rem);
  text-align: center;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  white-space: nowrap;
}
.header__logo img { max-height: 44px; width: auto; margin-inline: auto; }
.header__actions { display: flex; gap: 1.4rem; justify-content: flex-end; align-items: center; }
.header__icon { background: none; border: 0; padding: 0; color: inherit; display: inline-flex; }
.header__icon svg { width: 20px; height: 20px; }
.cart-count {
  font-size: 0.62rem; letter-spacing: 0.08em; margin-left: 0.35rem; color: var(--c-stone);
}
.header__burger { display: none; background: none; border: 0; color: inherit; padding: 0; }
.header__burger svg { width: 22px; height: 22px; }

/* Mobile nav */
.mobile-nav {
  position: fixed; inset: 0; z-index: 80;
  background: var(--c-bone);
  transform: translateX(-100%);
  transition: transform .45s cubic-bezier(.7,0,.2,1);
  display: flex; flex-direction: column;
  padding: 1.4rem clamp(1.25rem,5vw,2rem);
}
.mobile-nav.is-open { transform: translateX(0); }
.mobile-nav__top { display: flex; justify-content: space-between; align-items: center; }
.mobile-nav__close { background: none; border: 0; font-size: 1.6rem; line-height: 1; color: inherit; }
.mobile-nav__links { list-style: none; padding: 0; margin: 3rem 0 0; }
.mobile-nav__links li { border-top: 1px solid var(--c-line); }
.mobile-nav__links li:last-child { border-bottom: 1px solid var(--c-line); }
.mobile-nav__links a {
  display: block; padding: 1.15rem 0;
  font-family: var(--font-display); font-size: 1.4rem;
}

/* ============================================================
   ANNOUNCEMENT BAR
   ============================================================ */
.announcement {
  position: sticky; top: 0; z-index: 62;
  background: var(--c-noir); color: var(--c-bone);
  text-align: center; padding: 0.7rem 1rem;
  font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.26em;
  overflow: hidden;
}
.announcement__viewport { position: relative; height: 1em; }
.announcement__msg {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transform: translateY(60%);
  transition: opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1);
  pointer-events: none;
}
.announcement__msg.is-active { opacity: 1; transform: none; pointer-events: auto; }
.announcement a { text-decoration: underline; text-underline-offset: 3px; }

/* ============================================================
   HERO
   ============================================================ */
.hero { position: relative; }
.hero__media { position: relative; overflow: hidden; }
.hero__media img { width: 100%; object-fit: cover; }
.hero--tall .hero__media { min-height: 78vh; }
.hero--medium .hero__media { min-height: 60vh; }
.hero__media img { height: 100%; position: absolute; inset: 0; }
.hero__placeholder {
  background: linear-gradient(135deg, #e7e2d6, #d8d2c4);
  width: 100%; height: 100%; position: absolute; inset: 0;
}
.hero__overlay { position: absolute; inset: 0; background: rgba(20,18,13,var(--hero-tint,0.18)); }
.hero__content {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; justify-content: center;
  color: var(--c-bone);
}
.hero__content.is-light { color: var(--c-bone); }
.hero__content .label { color: rgba(244,241,235,0.8); }
.hero__content .h-display { max-width: 16ch; margin-block: 1rem 1.6rem; }
.hero__lede { max-width: 42ch; font-size: 1.05rem; margin-bottom: 2rem; }
.hero[data-align="center"] .hero__content { align-items: center; text-align: center; }
.hero[data-align="left"] .hero__content { align-items: flex-start; }

/* page-load reveal */
.reveal { opacity: 0; transform: translateY(22px); will-change: opacity, transform; }
.reveal.is-in { opacity: 1; transform: none; transition: opacity 1s ease, transform 1.1s cubic-bezier(.2,.7,.2,1); }
.reveal--fade { transform: none; }
.reveal--scale { transform: scale(.94); }
.reveal--scale.is-in { transform: none; }
.reveal--left { transform: translateX(-28px); }
.reveal--right { transform: translateX(28px); }
.reveal--left.is-in, .reveal--right.is-in { transform: none; }

/* staggered children */
[data-stagger] > * { opacity: 0; transform: translateY(22px); }
[data-stagger].is-in > * { opacity: 1; transform: none; transition: opacity .9s ease, transform 1s cubic-bezier(.2,.7,.2,1); }

/* hero entrance on load */
.hero__content > * { opacity: 0; animation: heroIn 1.15s cubic-bezier(.2,.7,.2,1) forwards; }
.hero__content > *:nth-child(1) { animation-delay: .15s; }
.hero__content > *:nth-child(2) { animation-delay: .32s; }
.hero__content > *:nth-child(3) { animation-delay: .48s; }
.hero__content > *:nth-child(4) { animation-delay: .62s; }
.hero__content > *:nth-child(5) { animation-delay: .74s; }
@keyframes heroIn { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }

/* slow hero image drift */
.hero__media img { animation: heroDrift 18s ease-in-out infinite alternate; }
@keyframes heroDrift { from { transform: scale(1.04); } to { transform: scale(1.12); } }

/* hover lift */
.product-card, .collection-tile, .usp__item, .testimonial { transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.product-card:hover { transform: translateY(-6px); }
.collection-tile:hover { transform: translateY(-4px); }

/* ============================================================
   PRODUCT GRID / CARDS
   ============================================================ */
.section-head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 1rem; margin-bottom: 2.8rem; flex-wrap: wrap;
}
.section-head__titles { display: flex; flex-direction: column; gap: 0.7rem; }

.product-grid {
  display: grid;
  grid-template-columns: repeat(var(--cols, 4), 1fr);
  gap: clamp(1.5rem, 3vw, 2.6rem) clamp(1rem, 2vw, 2rem);
}
.product-card { display: block; }
.product-card__media {
  position: relative; overflow: hidden; background: var(--c-paper);
  aspect-ratio: 3 / 4; margin-bottom: 1.1rem;
}
.product-card__media img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 1.1s cubic-bezier(.2,.7,.2,1), opacity .6s ease;
}
.product-card__media img.is-second { position: absolute; inset: 0; opacity: 0; }
.product-card:hover .product-card__media img.is-first { opacity: 0; }
.product-card:hover .product-card__media img.is-second { opacity: 1; }
.product-card:hover .product-card__media img { transform: scale(1.04); }
.product-card__placeholder {
  width: 100%; height: 100%;
  background: linear-gradient(135deg, #ece7da, #ded8ca);
  display: grid; place-items: center;
}
.product-card__placeholder span { font-family: var(--font-display); color: var(--c-stone); letter-spacing: .2em; }
.product-card__tag {
  position: absolute; top: 0.9rem; left: 0.9rem;
  background: var(--c-bone); color: var(--c-accent);
  font-size: 0.6rem; letter-spacing: 0.2em; text-transform: uppercase;
  padding: 0.35rem 0.7rem;
}
.product-card__brand { font-size: 0.66rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--c-stone); }
.product-card__title { font-family: var(--font-display); font-size: 1.25rem; margin: 0.35rem 0 0.45rem; }
.product-card__price { font-size: 0.85rem; letter-spacing: 0.04em; }
.price--strike { color: var(--c-stone); text-decoration: line-through; margin-right: 0.5rem; }
.price--sale { color: var(--c-accent); }

/* ============================================================
   FEATURED / EDITORIAL BLOCKS
   ============================================================ */
.split {
  display: grid; grid-template-columns: 1fr 1fr; align-items: center;
  gap: clamp(2rem, 5vw, 5rem);
}
.split--reverse .split__media { order: 2; }
.split__media { aspect-ratio: 4 / 5; overflow: hidden; background: var(--c-paper); }
.split__media img { width: 100%; height: 100%; object-fit: cover; }
.split__placeholder { width:100%; height:100%; background: linear-gradient(135deg,#ece7da,#ded8ca);}
.split__body { display: flex; flex-direction: column; gap: 1.2rem; align-items: flex-start; }
.split__body p { max-width: 46ch; margin: 0; }

.rich-text { text-align: center; max-width: 64ch; margin-inline: auto; }
.rich-text .h2 { margin-block: 1rem; }
.rich-text p { margin-inline: auto; max-width: 56ch; }

/* collection list */
.collection-list { display: grid; grid-template-columns: repeat(var(--cols,3),1fr); gap: clamp(1rem,2vw,1.8rem); }
.collection-tile { position: relative; aspect-ratio: 3/4; overflow: hidden; display: grid; place-items: center; background: var(--c-paper); }
.collection-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s ease; }
.collection-tile:hover img { transform: scale(1.05); }
.collection-tile__label { position: relative; z-index: 2; color: var(--c-bone); font-family: var(--font-display); font-size: 1.6rem; text-transform: uppercase; letter-spacing: 0.12em; }
.collection-tile::after { content:""; position:absolute; inset:0; background: rgba(20,18,13,.28); z-index:1; }

/* ============================================================
   PRODUCT PAGE
   ============================================================ */
.product { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(2rem,5vw,5rem); align-items: start; }
.product__gallery { display: flex; flex-direction: column; gap: 1rem; position: sticky; top: 6rem; }
.product__main-image { aspect-ratio: 3/4; overflow: hidden; background: var(--c-paper); }
.product__main-image img { width: 100%; height: 100%; object-fit: cover; }
.product__thumbs { display: flex; gap: 0.7rem; flex-wrap: wrap; }
.product__thumbs button { width: 70px; height: 90px; padding: 0; border: 1px solid transparent; background: var(--c-paper); overflow: hidden; }
.product__thumbs button.is-active { border-color: var(--c-ink); }
.product__thumbs img { width: 100%; height: 100%; object-fit: cover; }
.product__placeholder { width:100%; height:100%; background: linear-gradient(135deg,#ece7da,#ded8ca); display:grid; place-items:center;}

.product__info { display: flex; flex-direction: column; gap: 1.4rem; }
.product__brand { letter-spacing: 0.26em; text-transform: uppercase; font-size: 0.72rem; color: var(--c-stone); }
.product__title { font-size: clamp(2rem,4vw,3rem); }
.product__price { font-size: 1.15rem; letter-spacing: 0.04em; }
.product__desc { color: var(--c-ink); }
.product__desc p { margin-block: 0 1rem; }

.variant-group { display: flex; flex-direction: column; gap: 0.7rem; }
.variant-options { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.variant-options input { position: absolute; opacity: 0; pointer-events: none; }
.variant-options label {
  border: 1px solid var(--c-line); padding: 0.65rem 1.2rem;
  font-size: 0.78rem; letter-spacing: 0.06em; transition: border-color .3s, background .3s;
}
.variant-options input:checked + label { border-color: var(--c-ink); background: var(--c-ink); color: var(--c-bone); }

.qty { display: inline-flex; align-items: center; border: 1px solid var(--c-line); }
.qty button { width: 44px; height: 46px; background: none; border: 0; font-size: 1.1rem; color: inherit; }
.qty input { width: 48px; height: 46px; border: 0; text-align: center; background: none; font-family: var(--font-body); color: inherit; -moz-appearance: textfield; }
.qty input::-webkit-outer-spin-button, .qty input::-webkit-inner-spin-button { -webkit-appearance: none; }

.product__buy { display: flex; flex-direction: column; gap: 0.9rem; }

/* Signature — olfactory pyramid */
.olfactory { border-top: 1px solid var(--c-line); padding-top: 1.6rem; margin-top: 0.4rem; }
.olfactory__title { letter-spacing: 0.26em; text-transform: uppercase; font-size: 0.72rem; color: var(--c-stone); margin-bottom: 1.2rem; }
.olfactory__row { display: grid; grid-template-columns: 7rem 1fr; gap: 1rem; padding: 0.85rem 0; border-bottom: 1px solid var(--c-line); align-items: baseline; }
.olfactory__tier { font-family: var(--font-display); font-size: 1.05rem; }
.olfactory__notes { color: var(--c-stone); font-size: 0.92rem; }

.accordion { border-top: 1px solid var(--c-line); }
.accordion__item { border-bottom: 1px solid var(--c-line); }
.accordion__head { width: 100%; text-align: left; background: none; border: 0; padding: 1.15rem 0; display: flex; justify-content: space-between; align-items: center; font-family: var(--font-display); font-size: 1.05rem; color: inherit; }
.accordion__head .plus { position: relative; width: 14px; height: 14px; flex: none; font-size: 0; color: var(--c-accent); }
.accordion__head .plus::before, .accordion__head .plus::after { content: ""; position: absolute; background: currentColor; }
.accordion__head .plus::before { left: 0; right: 0; top: 50%; height: 1.6px; transform: translateY(-50%); }
.accordion__head .plus::after { top: 0; bottom: 0; left: 50%; width: 1.6px; transform: translateX(-50%); transition: opacity .3s; }
.accordion__item.is-open .plus::after { opacity: 0; }
.accordion__body { max-height: 0; overflow: hidden; transition: max-height .4s ease; }
.accordion__body-inner { padding-bottom: 1.2rem; color: var(--c-stone); }

/* ============================================================
   COLLECTION PAGE
   ============================================================ */
.collection-banner { text-align: center; padding-block: clamp(3rem,6vw,5rem) clamp(2rem,4vw,3rem); }
.collection-banner p { max-width: 52ch; margin: 1rem auto 0; color: var(--c-stone); }
.collection-toolbar { display: flex; justify-content: space-between; align-items: center; padding-block: 1.2rem; border-block: 1px solid var(--c-line); margin-bottom: 2.5rem; flex-wrap: wrap; gap: 1rem; }
.collection-toolbar select { font-family: var(--font-body); font-size: 0.74rem; text-transform: uppercase; letter-spacing: 0.14em; border: 0; background: none; color: inherit; }
.empty-state { text-align: center; padding-block: 5rem; }

/* ============================================================
   CART
   ============================================================ */
.cart-page { padding-block: clamp(2.5rem,5vw,4rem); }
.cart-line { display: grid; grid-template-columns: 90px 1fr auto; gap: 1.5rem; padding: 1.6rem 0; border-bottom: 1px solid var(--c-line); align-items: center; }
.cart-line__media { aspect-ratio: 3/4; background: var(--c-paper); overflow: hidden; }
.cart-line__media img { width: 100%; height: 100%; object-fit: cover; }
.cart-line__title { font-family: var(--font-display); font-size: 1.1rem; }
.cart-foot { display: flex; flex-direction: column; gap: 1.2rem; align-items: flex-end; padding-top: 2rem; }
.cart-foot__total { display: flex; gap: 2rem; align-items: baseline; }

/* Cart drawer */
.cart-drawer { position: fixed; inset: 0; z-index: 90; visibility: hidden; }
.cart-drawer.is-open { visibility: visible; }
.cart-drawer__overlay { position: absolute; inset: 0; background: rgba(20,18,13,.35); opacity: 0; transition: opacity .4s; }
.cart-drawer.is-open .cart-drawer__overlay { opacity: 1; }
.cart-drawer__panel { position: absolute; top: 0; right: 0; height: 100%; width: min(420px, 90vw); background: var(--c-bone); transform: translateX(100%); transition: transform .45s cubic-bezier(.7,0,.2,1); display: flex; flex-direction: column; }
.cart-drawer.is-open .cart-drawer__panel { transform: none; }
.cart-drawer__head { display: flex; justify-content: space-between; align-items: center; padding: 1.5rem; border-bottom: 1px solid var(--c-line); }
.cart-drawer__close { background: none; border: 0; font-size: 1.6rem; line-height: 1; color: inherit; }
.cart-drawer__body { padding: 1.5rem; overflow-y: auto; flex: 1; }
.cart-drawer__line { display: grid; grid-template-columns: 64px 1fr; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--c-line); }
.cart-drawer__line img { width: 64px; height: 80px; object-fit: cover; background: var(--c-paper); }
.cart-drawer__foot { padding: 1.5rem; border-top: 1px solid var(--c-line); display: flex; flex-direction: column; gap: 1rem; }

/* ============================================================
   FOOTER
   ============================================================ */
.footer { background: var(--c-noir); color: var(--c-bone); padding-block: clamp(3.5rem,7vw,6rem) 2.5rem; }
.footer a { color: var(--c-bone); }
.footer .label { color: rgba(244,241,235,0.55); }
.footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: clamp(2rem,4vw,3.5rem); }
.footer__brand h3 { font-size: 1.9rem; letter-spacing: 0.16em; text-transform: uppercase; }
.footer__brand p { color: rgba(244,241,235,0.6); max-width: 34ch; margin-top: 1rem; }
.footer__col h4 { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.22em; color: rgba(244,241,235,0.55); margin-bottom: 1.2rem; font-family: var(--font-body); font-weight: 400; }
.footer__col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.7rem; }
.footer__col a { font-size: 0.85rem; color: rgba(244,241,235,0.85); }
.footer__col a:hover { color: var(--c-bone); }
.footer__news input { width: 100%; background: transparent; border: 0; border-bottom: 1px solid rgba(244,241,235,0.3); color: var(--c-bone); padding: 0.7rem 0; font-family: var(--font-body); }
.footer__news input::placeholder { color: rgba(244,241,235,0.5); }
.footer__news button { margin-top: 1.2rem; }
.footer__bottom { display: flex; justify-content: space-between; align-items: center; margin-top: 3.5rem; padding-top: 1.8rem; border-top: 1px solid rgba(244,241,235,0.15); flex-wrap: wrap; gap: 1rem; }
.footer__bottom p { font-size: 0.72rem; color: rgba(244,241,235,0.5); margin: 0; letter-spacing: 0.04em; }

/* ============================================================
   NEWSLETTER (light)
   ============================================================ */
.newsletter { text-align: center; }
.newsletter__form { display: flex; gap: 0; max-width: 460px; margin: 1.8rem auto 0; border-bottom: 1px solid var(--c-ink); }
.newsletter__form input { flex: 1; border: 0; background: none; padding: 0.9rem 0; font-family: var(--font-body); color: inherit; }
.newsletter__form input:focus { outline: none; }
.newsletter__form button { border: 0; background: none; color: inherit; letter-spacing: 0.2em; text-transform: uppercase; font-size: 0.72rem; }

/* ============================================================
   FORMS (customers / contact)
   ============================================================ */
.form-wrap { max-width: 460px; margin-inline: auto; }
.field { display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 1.3rem; }
.field label { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.18em; color: var(--c-stone); }
.field input, .field textarea { border: 1px solid var(--c-line); background: var(--c-paper); padding: 0.85rem 1rem; font-family: var(--font-body); color: inherit; }
.field input:focus, .field textarea:focus { outline: none; border-color: var(--c-ink); }
.form-note { text-align: center; margin-top: 1.5rem; font-size: 0.85rem; color: var(--c-stone); }
.errors { background: var(--c-paper); border-left: 2px solid var(--c-accent); padding: 1rem 1.2rem; margin-bottom: 1.5rem; font-size: 0.85rem; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 990px) {
  .product { grid-template-columns: 1fr; }
  .product__gallery { position: static; }
  .footer__grid { grid-template-columns: 1fr 1fr; }
  .product-grid { --cols: 3; }
}
@media (max-width: 749px) {
  .header__nav:not(.header__nav--right) { display: none; }
  .header__nav--right .header-link-desktop { display: none; }
  .header__burger { display: inline-flex; justify-self: start; }
  .header__inner { grid-template-columns: 1fr auto 1fr; }
  .header__logo { text-align: center; }
  .header__logo img { margin-inline: auto; max-height: 38px; }
  .header__actions { justify-self: end; }
  .split { grid-template-columns: 1fr; }
  .split--reverse .split__media { order: 0; }
  .product-grid { --cols: 2; gap: 1.5rem 1rem; }
  .collection-list { --cols: 2; }
  .footer__grid { grid-template-columns: 1fr; gap: 2.2rem; }
  .footer__bottom { flex-direction: column; align-items: flex-start; }
  .cart-line { grid-template-columns: 70px 1fr; }
  .cart-line__price { grid-column: 2; }
}
@media (max-width: 480px) {
  .product-grid { --cols: 2; }
  .h-display { font-size: 2.4rem; }
}

/* ---- Reduced motion ---- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal, [data-stagger] > *, .hero__content > * { opacity: 1 !important; transform: none !important; }
  .marquee__track { animation: none !important; }
}

.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.no-js .js-only { display: none; }

/* Contact form */
.contact-form { max-width: 720px; }
.contact-form__form { margin-top: 1rem; }
.contact-form__form .field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.3rem; }
.contact-form__form .btn { margin-top: 0.6rem; }
.form-success { border: 1px solid var(--c-line); background: var(--c-paper); padding: 1rem 1.2rem; margin-bottom: 1.6rem; font-size: 0.9rem; }
.form-error { color: var(--c-accent); padding: 0.4rem 0; margin-bottom: 1.2rem; font-size: 0.9rem; }
@media (max-width: 749px) {
  .contact-form__form .field-row { grid-template-columns: 1fr; gap: 0; }
}

/* Footer boutique block */
.footer__boutique p { font-size: 0.85rem; color: rgba(244,241,235,0.85); margin: 0 0 0.7rem; line-height: 1.6; }
.footer__boutique .footer__hours { color: rgba(244,241,235,0.6); }
.footer__maplink { display: inline-block; margin-top: 0.2rem; font-size: 0.8rem; letter-spacing: 0.08em; color: var(--c-bone); border-bottom: 1px solid rgba(244,241,235,0.4); padding-bottom: 2px; }
.footer__maplink:hover { border-color: var(--c-bone); }

/* Contact info block */
.contact-form__info { display: flex; flex-wrap: wrap; gap: 2.4rem; align-items: flex-start; margin: 0 0 2.8rem; padding: 1.8rem 0; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
.contact-form__info .label { display: block; margin-bottom: 0.5rem; }
.contact-form__info p { margin: 0; font-size: 0.95rem; line-height: 1.6; }
.contact-form__info .btn { margin-left: auto; }
@media (max-width: 749px) { .contact-form__info .btn { margin-left: 0; } }

/* ============================================================
   MARQUEE BAND
   ============================================================ */
.marquee-section { padding: 1.4rem 0; border-block: 1px solid var(--c-line); background: var(--c-bone); }
.marquee-section--dark { background: var(--c-noir); border-color: rgba(244,241,235,0.12); }
.marquee { overflow: hidden; white-space: nowrap; }
.marquee__track { display: inline-flex; align-items: center; gap: 2.4rem; width: max-content; animation: marquee 30s linear infinite; }
.marquee:hover .marquee__track { animation-play-state: paused; }
.marquee__item { font-family: var(--font-display); font-size: clamp(1.1rem, 2.2vw, 1.6rem); letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-ink); }
.marquee__sep { color: var(--c-accent); font-size: 0.9rem; }
.marquee-section--dark .marquee__item { color: var(--c-bone); }
.marquee-section--dark .marquee__sep { color: var(--c-accent); }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ============================================================
   USP / RÉASSURANCE
   ============================================================ */
.usp-section--dark { background: var(--c-noir); color: var(--c-bone); }
.usp__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1.5rem, 3vw, 3rem); }
.usp__item { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 0.7rem; }
.usp__icon { width: 46px; height: 46px; color: var(--c-accent); }
.usp__icon svg { width: 100%; height: 100%; }
.usp__item h4 { font-family: var(--font-display); font-size: 1.05rem; letter-spacing: 0.04em; }
.usp__item p { font-size: 0.85rem; color: var(--c-stone); max-width: 24ch; line-height: 1.6; }
.usp-section--dark .usp__item p { color: rgba(244,241,235,0.6); }

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.testimonials-section--dark { background: var(--c-noir); color: var(--c-bone); }
.testimonials__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.4rem, 2.6vw, 2.4rem); }
.testimonial { background: var(--c-paper); border: 1px solid var(--c-line); padding: 2.2rem 1.8rem; display: flex; flex-direction: column; gap: 1rem; }
.testimonials-section--dark .testimonial { background: rgba(244,241,235,0.04); border-color: rgba(244,241,235,0.12); }
.testimonial__stars { color: var(--c-accent); letter-spacing: 0.18em; font-size: 0.85rem; }
.testimonial blockquote { font-family: var(--font-display); font-size: 1.12rem; line-height: 1.55; margin: 0; }
.testimonial figcaption { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.16em; color: var(--c-stone); margin-top: auto; }
.testimonial figcaption span { text-transform: none; letter-spacing: 0.02em; }
.testimonials-section--dark .testimonial figcaption { color: rgba(244,241,235,0.55); }

@media (max-width: 990px) {
  .usp__grid { grid-template-columns: repeat(2, 1fr); }
  .testimonials__grid { grid-template-columns: 1fr; }
}
@media (max-width: 749px) {
  .usp__grid { grid-template-columns: 1fr 1fr; gap: 2rem 1rem; }
}

/* No-JS / fallback: never leave animated content hidden */
.no-js .reveal, .no-js [data-stagger] > *, .no-js .hero__content > * { opacity: 1 !important; transform: none !important; animation: none !important; }

/* ============================================================
   SCROLL PROGRESS
   ============================================================ */
.scroll-progress {
  position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 100;
  background: var(--c-accent); transform: scaleX(0); transform-origin: left;
  will-change: transform;
}

/* ============================================================
   FIGURES / COMPTEURS
   ============================================================ */
.figures-section { background: var(--c-noir); color: var(--c-bone); }
.figures-section.figures--light { background: var(--c-bone); color: var(--c-ink); }
.figures__grid { display: grid; grid-template-columns: repeat(var(--cols,4),1fr); gap: clamp(1.5rem,3vw,2.5rem); text-align: center; }
.figure__num { font-family: var(--font-display); font-size: clamp(2.4rem,5vw,3.6rem); line-height: 1; letter-spacing: 0.02em; }
.figure__num .figure__suffix { font-size: 0.5em; vertical-align: super; margin-left: 0.1em; color: var(--c-accent); }
.figure__label { display: block; margin-top: 0.8rem; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.2em; color: var(--c-stone); }
.figures-section .figure__label { color: rgba(244,241,235,0.55); }
.figures--light .figure__label { color: var(--c-stone); }

/* ============================================================
   PARALLAX BRAND STORY
   ============================================================ */
.story { position: relative; overflow: hidden; min-height: 78vh; display: flex; align-items: center; justify-content: center; text-align: center; color: var(--c-bone); }
.story__media { position: absolute; inset: -10% 0; z-index: 0; }
.story__media img { width: 100%; height: 120%; object-fit: cover; will-change: transform; }
.story__overlay { position: absolute; inset: 0; background: rgba(20,18,13,var(--story-tint,0.5)); z-index: 1; }
.story__inner { position: relative; z-index: 2; max-width: 640px; padding: 2rem 1.5rem; }
.story__inner .h-display, .story__inner h2 { color: var(--c-bone); }
.story__inner p { color: rgba(244,241,235,0.82); margin-top: 1.2rem; font-size: 1.05rem; line-height: 1.7; }
.story__inner .btn { margin-top: 2rem; }
.story__inner .btn--ghost { border-color: rgba(244,241,235,0.5); color: var(--c-bone); }
.story__inner .btn--ghost:hover { background: var(--c-bone); color: var(--c-ink); border-color: var(--c-bone); }

/* ============================================================
   STICKY MOBILE ADD-TO-CART
   ============================================================ */
.sticky-atc {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 70;
  background: var(--c-bone); border-top: 1px solid var(--c-line);
  display: none; align-items: center; gap: 1rem;
  padding: 0.7rem clamp(1rem,4vw,1.4rem);
  transform: translateY(110%); transition: transform .45s cubic-bezier(.2,.7,.2,1);
}
.sticky-atc.is-visible { transform: none; }
.sticky-atc__info { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
.sticky-atc__name { font-family: var(--font-display); font-size: 0.95rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sticky-atc__price { font-size: 0.85rem; color: var(--c-stone); }
.sticky-atc .btn { margin-left: auto; white-space: nowrap; }

@media (max-width: 990px) { .figures__grid { --cols: 2 !important; } }
@media (max-width: 749px) {
  .sticky-atc { display: flex; }
  .story { min-height: 64vh; }
}

/* Bundle / degressive offer note */
.bundle-note { margin-top: 1rem; padding: 0.7rem 1rem; border: 1px dashed var(--c-line); background: var(--c-paper); font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.14em; color: var(--c-accent); text-align: center; }
.bundle-note p { margin: 0; }

/* Demo cart specifics (standalone site) */
.cart-drawer__body .cart-line { grid-template-columns: 64px 1fr auto; gap: 1rem; }
.cart-line__info { display: flex; flex-direction: column; gap: 0.3rem; }
.cart-line__meta { font-size: 0.8rem; color: var(--c-stone); }
.cart-line__remove { align-self: flex-start; background: none; border: 0; padding: 0; margin-top: 0.3rem; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--c-accent); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.cart-line__price { font-size: 0.9rem; white-space: nowrap; }
.cart-foot { align-items: stretch; }
.cart-foot__row { display: flex; justify-content: space-between; align-items: baseline; }

/* Transparent header over hero (homepage) with logo swap */
.header__logo .logo-light { display: none; }
.header:not(.is-solid):not(.is-scrolled) { color: var(--c-bone); }
.header:not(.is-solid):not(.is-scrolled) .cart-count { color: rgba(244,241,235,0.75); }
.header:not(.is-solid):not(.is-scrolled) .header__logo .logo-dark { display: none; }
.header:not(.is-solid):not(.is-scrolled) .header__logo .logo-light { display: inline; }

/* Five-across product row (responsive, class-based to avoid inline override) */
.product-grid--five { --cols: 5; }
@media (max-width: 1100px) { .product-grid--five { --cols: 4; } }
@media (max-width: 900px)  { .product-grid--five { --cols: 3; } }
@media (max-width: 620px)  { .product-grid--five { --cols: 2; } }

/* Hide desktop-only header links on mobile (ensures logo stays centered) */
@media (max-width: 749px) { .header-link-desktop { display: none !important; } }

/* ============================================================
   MEGA-MENU (desktop)
   ============================================================ */
.header { overflow: visible; }
.header__nav { align-items: center; }
.nav-item { display: flex; align-items: center; }
.nav-trigger { display: inline-flex; align-items: center; }
.megamenu {
  position: absolute; top: 100%; left: 0; right: 0;
  background: var(--c-bone);
  border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line);
  box-shadow: 0 26px 44px rgba(20,18,13,0.09);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .28s ease, transform .28s ease, visibility .28s ease;
  z-index: 55;
}
.megamenu::before { content: ""; position: absolute; top: -26px; left: 0; right: 0; height: 26px; }
.nav-item:hover .megamenu, .nav-item:focus-within .megamenu { opacity: 1; visibility: visible; transform: none; }
.megamenu__inner { display: grid; grid-template-columns: 1.3fr 1fr 1.1fr; gap: 3rem; padding: 2.6rem 0 3rem; align-items: start; }
.megamenu--small .megamenu__inner { grid-template-columns: 1fr 1.1fr; max-width: 760px; }
.megamenu__title { display: block; font-family: var(--font-body); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.22em; color: var(--c-stone); margin-bottom: 1.3rem; }
.megamenu__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.75rem; }
.megamenu__list--2col { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem 2rem; }
.megamenu__list a { font-family: var(--font-display); font-size: 0.98rem; letter-spacing: 0.02em; color: var(--c-ink); position: relative; }
.megamenu__list a:hover { color: var(--c-accent); }
.megamenu__feature { position: relative; display: block; overflow: hidden; aspect-ratio: 4/3; background: var(--c-paper); }
.megamenu__feature img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.megamenu__feature:hover img { transform: scale(1.05); }
.megamenu__feature::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(20,18,13,0.55), transparent 55%); }
.megamenu__feature-cap { position: absolute; left: 1.2rem; bottom: 1rem; z-index: 1; color: var(--c-bone); font-family: var(--font-display); font-size: 1.15rem; }
.megamenu__feature-eyebrow { display: block; font-family: var(--font-body); font-size: 0.62rem; letter-spacing: 0.22em; text-transform: uppercase; opacity: 0.85; margin-bottom: 0.25rem; }

/* ============================================================
   MOBILE NAV GROUPS
   ============================================================ */
.mobile-nav__links { display: flex; flex-direction: column; margin-top: 2.4rem; flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; padding-bottom: 2rem; }
.mnav-group { border-top: 1px solid var(--c-line); }
.mnav-group summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; padding: 1rem 0; font-family: var(--font-display); font-size: 1.2rem; }
.mnav-group summary::-webkit-details-marker { display: none; }
.mnav-caret { color: var(--c-accent); font-size: 1.3rem; line-height: 1; transition: transform .3s ease; }
.mnav-group[open] .mnav-caret { transform: rotate(45deg); }
.mnav-sub { display: flex; flex-direction: column; gap: 0.65rem; padding: 0.2rem 0 1.3rem 0.1rem; }
.mnav-subtitle { font-size: 0.66rem; text-transform: uppercase; letter-spacing: 0.2em; color: var(--c-stone); margin-top: 0.7rem; }
.mnav-sub a { font-size: 0.98rem; color: var(--c-ink); padding: 0.15rem 0; display: block; }
.mnav-link { display: block; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); padding: 1rem 0; font-family: var(--font-display); font-size: 1.2rem; color: var(--c-ink); }

@media (max-width: 1100px) { .megamenu__inner { gap: 2rem; } }

/* ============================================================
   AJOUTS — catalogue réel (filtres, fiches, marques, tailles)
   ============================================================ */

/* Flacons : montrer le flacon entier sur fond clair */
.product-card__media img { object-fit: contain; padding: 7% 12%; }
.product-card:hover .product-card__media img { transform: scale(1.05); }
.product__main-image { aspect-ratio: 1 / 1; background: var(--c-paper); }
.product__main-image img { object-fit: contain; padding: 7%; }

/* Sous-titre de carte + prix "à partir de" */
.product-card__price { color: var(--c-stone); }

/* En-tête de catalogue / marques */
.catalog-head { text-align: center; margin-bottom: 2.4rem; }
.catalog-head .h2 { margin-top: .7rem; }
.catalog-head .muted { margin-top: .6rem; }

/* Filtres (chips) */
.filters {
  display: flex; flex-wrap: wrap; gap: .55rem; justify-content: center;
  margin: 0 auto 3rem; max-width: 900px;
}
.chip {
  font-family: var(--font-sans); font-size: .74rem; letter-spacing: .12em;
  text-transform: uppercase; color: var(--c-ink);
  background: transparent; border: 1px solid var(--c-line);
  padding: .62rem 1.15rem; border-radius: 100px; cursor: pointer;
  transition: background .3s ease, color .3s ease, border-color .3s ease;
}
.chip:hover { border-color: var(--c-ink); }
.chip.is-active { background: var(--c-noir); border-color: var(--c-noir); color: var(--c-bone); }
.catalog-empty { text-align: center; color: var(--c-stone); padding: 3rem 0; }

/* Fiche produit : sous-titre + familles */
.product__subtitle {
  font-family: var(--font-serif); font-style: italic;
  color: var(--c-accent); font-size: 1.05rem; margin: -.4rem 0 1rem;
}
.product__families { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.6rem; }
.tagpill {
  font-family: var(--font-sans); font-size: .68rem; letter-spacing: .1em;
  text-transform: uppercase; color: var(--c-stone);
  border: 1px solid var(--c-line); border-radius: 100px; padding: .4rem .85rem;
  transition: color .25s ease, border-color .25s ease;
}
.tagpill:hover { color: var(--c-ink); border-color: var(--c-ink); }

/* Sélecteur de taille */
.product__sizes { margin: 1.6rem 0 .4rem; }
.product__sizes .label { display: block; margin-bottom: .7rem; }
.size-opts { display: flex; flex-wrap: wrap; gap: .6rem; }
.size-opt {
  position: relative; cursor: pointer; user-select: none;
  border: 1px solid var(--c-line); border-radius: 4px;
  padding: .7rem 1.1rem; font-family: var(--font-sans); font-size: .85rem;
  transition: border-color .25s ease, background .25s ease;
}
.size-opt input { position: absolute; opacity: 0; pointer-events: none; }
.size-opt:hover { border-color: var(--c-ink); }
.size-opt.is-active { border-color: var(--c-noir); background: var(--c-noir); color: var(--c-bone); }

/* Section head : lien "Tout voir" */
.section-head__link {
  font-family: var(--font-sans); font-size: .78rem; letter-spacing: .12em;
  text-transform: uppercase; color: var(--c-ink); white-space: nowrap;
  align-self: end; padding-bottom: .3rem;
  border-bottom: 1px solid var(--c-ink); transition: opacity .25s ease;
}
.section-head__link:hover { opacity: .55; }

/* Page Marques */
.brand-list {
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: 1px; background: var(--c-line);
  border: 1px solid var(--c-line);
}
.brand-card {
  background: var(--c-bone); padding: 2.4rem 2.2rem;
  display: flex; flex-direction: column;
}
.brand-card__head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.brand-card__name { font-family: var(--font-serif); font-size: 1.5rem; font-weight: 400; }
.brand-card__country {
  font-family: var(--font-sans); font-size: .68rem; letter-spacing: .12em;
  text-transform: uppercase; color: var(--c-stone); white-space: nowrap;
}
.brand-card__desc { color: var(--c-ink); opacity: .82; line-height: 1.75; font-size: .93rem; flex: 1; }
.brand-card__link {
  margin-top: 1.6rem; font-family: var(--font-sans); font-size: .78rem;
  letter-spacing: .1em; text-transform: uppercase; color: var(--c-accent);
  align-self: flex-start; border-bottom: 1px solid transparent; transition: border-color .25s ease;
}
.brand-card__link:hover { border-color: var(--c-accent); }

/* Footer réseaux */
.footer__social { margin-top: 1rem; }
.footer__social a { border-bottom: 1px solid transparent; transition: border-color .25s ease; }
.footer__social a:hover { border-color: currentColor; }

/* Tuiles familles avec photo produit */
.collection-tile--product { background: var(--c-paper); }
.collection-tile--product img { object-fit: contain; padding: 12% 16% 20%; }
.collection-tile--product .collection-tile__label { color: var(--c-ink); text-shadow: none; }

@media (max-width: 749px) {
  .brand-list { grid-template-columns: 1fr; }
  .brand-card { padding: 2rem 1.5rem; }
  .filters { margin-bottom: 2rem; }
  .product__main-image { aspect-ratio: 4 / 5; }
}

/* Tuiles familles (accueil) — typographiques */
.famille-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 1px; background: var(--c-line); border: 1px solid var(--c-line);
}
.famille-tile {
  background: var(--c-bone); min-height: 158px; padding: 2rem 1.2rem;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .8rem; text-align: center; transition: background .35s ease;
}
.famille-tile:hover { background: var(--c-paper); }
.famille-tile__name { font-family: var(--font-serif); font-size: 1.4rem; color: var(--c-ink); }
.famille-tile__go {
  font-family: var(--font-sans); font-size: .68rem; letter-spacing: .14em;
  text-transform: uppercase; color: var(--c-stone);
  opacity: 0; transform: translateY(4px); transition: opacity .3s ease, transform .3s ease;
}
.famille-tile:hover .famille-tile__go { opacity: 1; transform: none; }
@media (max-width: 749px) {
  .famille-grid { grid-template-columns: repeat(2, 1fr); }
  .famille-tile { min-height: 120px; }
  .famille-tile__go { opacity: 1; transform: none; }
}

/* ============================================================
   RÉVISION — retours client (hero split, images carrées, menus 1 col)
   ============================================================ */

/* 1. Images produit : carré plein, sans cadre/padding (photos studio) */
.product-card__media { aspect-ratio: 1 / 1; background: transparent; }
.product-card__media img { object-fit: cover; padding: 0; }
.product__main-image { aspect-ratio: 1 / 1; background: transparent; }
.product__main-image img { object-fit: cover; padding: 0; }
@media (max-width: 749px) { .product__main-image { aspect-ratio: 1 / 1; } }

/* 2. Hero split façon écrin (image + panneau sombre) */
.hero-split { display: grid; grid-template-columns: 1.62fr 1fr; min-height: 82vh; }
.hero-split__media { position: relative; overflow: hidden; background: var(--c-paper); }
.hero-split__media img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  animation: heroDrift 20s ease-in-out infinite alternate;
}
.hero-split__panel {
  background: var(--c-noir); color: var(--c-bone);
  display: flex; flex-direction: column; justify-content: center;
  padding: clamp(2.4rem, 5vw, 5rem); gap: 1.5rem;
}
.hero-split__eyebrow {
  font-family: var(--font-sans); font-size: .72rem; letter-spacing: .24em;
  text-transform: uppercase; color: rgba(244,241,235,.62);
}
.hero-split__title {
  font-family: var(--font-serif); font-weight: 400;
  font-size: clamp(2.8rem, 4.4vw, 4.6rem); line-height: 1.02; letter-spacing: .01em;
}
.hero-split__sub {
  font-family: var(--font-sans); font-weight: 300; font-size: 1.12rem;
  line-height: 1.65; color: rgba(244,241,235,.82); max-width: 30ch;
}
.hero-split__actions { margin-top: .8rem; }
@media (max-width: 900px) {
  .hero-split { grid-template-columns: 1fr; min-height: 0; }
  .hero-split__media { aspect-ratio: 16 / 11; }
  .hero-split__panel { padding: 2.6rem 1.6rem 3rem; gap: 1.1rem; }
}

/* 3. Méga-menus : une colonne + lien "voir tout" */
.megamenu--parfums .megamenu__inner { grid-template-columns: 1fr 1fr 1.15fr; }
.megamenu--brands .megamenu__inner { grid-template-columns: 1.1fr 1.15fr; max-width: 880px; }
.megamenu__list--tall { gap: .5rem; }
.megamenu__more {
  display: inline-block; margin-top: 1.4rem;
  font-family: var(--font-sans); font-size: .74rem; letter-spacing: .14em;
  text-transform: uppercase; color: var(--c-accent);
  border-bottom: 1px solid transparent; transition: border-color .25s ease;
}
.megamenu__more:hover { border-color: var(--c-accent); }

/* 4. Fermeture immédiate du menu au clic sur un lien */
.header.nav-collapsed .megamenu {
  opacity: 0 !important; visibility: hidden !important;
  pointer-events: none !important; transform: translateY(6px) !important;
}

/* 5. Preuve sociale (avis) */
.proof { background: var(--c-bone); }
.proof__inner { max-width: 620px; margin: 0 auto; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 1.1rem; }
.proof__stars { color: #C9A24B; font-size: 1.35rem; letter-spacing: .22em; }
.proof__lead { color: var(--c-ink); opacity: .82; line-height: 1.8; max-width: 52ch; }
.proof__inner .btn { margin-top: .6rem; }

/* 6. Mobile : lien "voir tout" du sous-menu */
.mnav-more { color: var(--c-accent) !important; font-size: .82rem !important; letter-spacing: .1em; text-transform: uppercase; margin-top: .4rem; }

/* ============================================================
   RÉVISION 2 — hero slider, méga Marques (suggestions)
   ============================================================ */

/* Hero slider */
.hero-slider { position: relative; overflow: hidden; }
.hero-slides { display: flex; transition: transform .7s cubic-bezier(.4,0,.2,1); }
.hero-slide { min-width: 100%; }
.hero-split__media--product { background: var(--c-paper); }
.hero-split__media--product img { object-fit: contain; padding: 4% 7%; animation: none; }
.hero-nav {
  position: absolute; bottom: 1.5rem; z-index: 4;
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(251,250,246,.9); border: 1px solid rgba(20,18,13,.14);
  color: var(--c-ink); font-size: 1.4rem; line-height: 1; cursor: pointer;
  display: grid; place-items: center; transition: background .25s ease;
  padding-bottom: 3px;
}
.hero-nav:hover { background: #fff; }
.hero-nav--prev { left: 1.5rem; }
.hero-nav--next { left: 4.6rem; }
.hero-dots {
  position: absolute; bottom: 1.9rem; left: 50%; transform: translateX(-50%);
  z-index: 4; display: flex; gap: .5rem;
  background: rgba(20,18,13,.32); padding: .45rem .7rem; border-radius: 100px;
  backdrop-filter: blur(3px);
}
.hero-dot { width: 8px; height: 8px; border-radius: 50%; padding: 0;
  background: rgba(255,255,255,.5); border: none; cursor: pointer; transition: background .25s ease; }
.hero-dot.is-active { background: #fff; }
@media (max-width: 900px) {
  .hero-nav { bottom: auto; top: calc(56vw - 22px); }
  .hero-nav--prev { left: 1rem; }
  .hero-nav--next { right: 1rem; left: auto; }
  .hero-dots { bottom: auto; top: calc(56vw - 30px); }
}

/* Méga Marques — colonne suggestions */
.megamenu--brands .megamenu__inner { grid-template-columns: 1fr 1.05fr; max-width: 820px; }
.megamenu__suggest { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .85rem; }
.megamenu__suggest a { display: flex; flex-direction: column; gap: .12rem; }
.megamenu__suggest .s-name { font-family: var(--font-display); font-size: .98rem; color: var(--c-ink); transition: color .2s ease; }
.megamenu__suggest a:hover .s-name { color: var(--c-accent); }
.megamenu__suggest .s-brand { font-family: var(--font-sans); font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; color: var(--c-stone); }

/* Slide Fascent — image large des 8 flacons, remplit comme la boutique */
.hero-split__media--fascent { background: #BAB5BA; }
.hero-split__media--fascent img { object-fit: cover; object-position: center; padding: 0; animation: none; }
@media (max-width: 900px) {
  .hero-split__media--fascent { aspect-ratio: 16 / 11; }
}

/* ============================================================
   RÉVISION 3 — hero slider : hauteur égale, sans flèches, dots intégrés
   ============================================================ */

/* 1. Hauteur STRICTEMENT identique pour toutes les slides (desktop) */
@media (min-width: 901px) {
  .hero-slider, .hero-slides { height: 82vh; }
  .hero-slide { height: 82vh; }
  .hero-split { height: 82vh; min-height: 0; }
  .hero-split__media, .hero-split__panel { height: 82vh; overflow: hidden; }
}

/* 2. Plus de flèches, seulement les puces */
.hero-nav { display: none !important; }

/* 3. Dots intégrés dans le panneau sombre, en bas, façon pro */
.hero-dots {
  position: absolute; z-index: 5;
  bottom: clamp(2.2rem, 5vh, 3.4rem);
  left: calc(61.8% + clamp(2.4rem, 5vw, 5rem));
  display: flex; align-items: center; gap: .55rem;
  background: none; padding: 0; backdrop-filter: none; border-radius: 0;
}
.hero-dot {
  width: 9px; height: 9px; border-radius: 100px; padding: 0; border: none; cursor: pointer;
  background: rgba(244,241,235,.34); transition: background .35s ease, width .35s ease;
}
.hero-dot.is-active { width: 26px; background: var(--c-bone); }
@media (max-width: 900px) {
  .hero-dots { left: 1.6rem; bottom: 1.6rem; }
}

/* ============================================================
   Pages légales + pied de page (liens légaux, crédit)
   ============================================================ */
.legal { max-width: 760px; margin: 0 auto; }
.legal__intro { color: var(--c-stone); font-size: 1.05rem; margin-bottom: 2rem; }
.legal__h {
  font-family: var(--font-display); font-size: 1.25rem; font-weight: 400;
  margin: 2.5rem 0 .8rem; color: var(--c-ink);
}
.legal p { line-height: 1.85; color: var(--c-ink); opacity: .9; margin-bottom: .9rem; }
.legal strong { font-weight: 500; }
.legal a { color: var(--c-accent); border-bottom: 1px solid transparent; transition: border-color .25s ease; }
.legal a:hover { border-color: var(--c-accent); }
.legal__update { margin-top: 2.8rem; padding-top: 1.4rem; border-top: 1px solid var(--c-line);
  font-size: .82rem; color: var(--c-stone); font-style: italic; }

.footer__legal { margin-top: .5rem; }
.footer__legal a { border-bottom: 1px solid transparent; transition: border-color .25s ease; }
.footer__legal a:hover { border-color: currentColor; }
.footer__credit { margin-top: .7rem; opacity: .78; }
.footer__credit a { border-bottom: 1px solid currentColor; }
.footer__credit a:hover { opacity: .7; }

/* ============================================================
   Recherche (overlay live)
   ============================================================ */
.search-overlay { position: fixed; inset: 0; z-index: 200; visibility: hidden; opacity: 0;
  transition: opacity .3s ease, visibility .3s ease; }
.search-overlay.is-open { visibility: visible; opacity: 1; }
.search-overlay__backdrop { position: absolute; inset: 0; background: rgba(20,18,13,.45); }
.search-overlay__panel { position: relative; background: var(--c-bone);
  box-shadow: 0 24px 60px rgba(0,0,0,.2); padding: 1.7rem 0 2rem;
  transform: translateY(-14px); transition: transform .3s ease; }
.search-overlay.is-open .search-overlay__panel { transform: none; }
.search-overlay__bar { display: flex; align-items: center; gap: 1rem;
  padding-top: .4rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--c-line); }
.search-overlay__bar svg { width: 22px; height: 22px; color: var(--c-stone); flex: none; }
.search-overlay__input { flex: 1; border: none; background: transparent;
  font-family: var(--font-display); font-size: clamp(1.2rem, 3vw, 1.7rem);
  color: var(--c-ink); padding: .3rem 0; }
.search-overlay__input::placeholder { color: var(--c-stone); opacity: .7; }
.search-overlay__input:focus { outline: none; }
.search-overlay__close { border: none; background: transparent; font-size: 2rem;
  line-height: 1; color: var(--c-ink); cursor: pointer; flex: none; }
.search-overlay__results { padding-top: 1.4rem; max-height: 62vh; overflow-y: auto; }
.search-hint { color: var(--c-stone); font-size: .95rem; padding: .4rem 0; }
.search-suggests { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 1.4rem; }
.search-chip { font-family: var(--font-sans); font-size: .72rem; letter-spacing: .1em;
  text-transform: uppercase; border: 1px solid var(--c-noir); border-radius: 100px;
  padding: .55rem 1.1rem; color: var(--c-ink); transition: background .25s ease, color .25s ease; }
.search-chip:hover { background: var(--c-noir); color: var(--c-bone); }
.search-list { list-style: none; margin: 0; padding: 0; }
.search-result { display: flex; align-items: baseline; gap: 1rem; padding: .95rem 0;
  border-bottom: 1px solid var(--c-line); }
.search-result__name { font-family: var(--font-display); font-size: 1.05rem; color: var(--c-ink);
  flex: 1; transition: color .2s ease; }
.search-result:hover .search-result__name { color: var(--c-accent); }
.search-result__brand { font-family: var(--font-sans); font-size: .68rem; letter-spacing: .1em;
  text-transform: uppercase; color: var(--c-stone); }
.search-result__price { font-family: var(--font-sans); font-size: .85rem; color: var(--c-stone);
  min-width: 96px; text-align: right; }
@media (max-width: 600px) { .search-result__price { display: none; } }

/* Crédit Arkn Studio */
.footer__credit strong { font-weight: 700; }

/* Masquer la croix native du champ de recherche (doublon) */
.search-overlay__input::-webkit-search-cancel-button,
.search-overlay__input::-webkit-search-decoration { -webkit-appearance: none; appearance: none; }

/* ============================================================
   RÉVISION 4 — optimisation mobile
   ============================================================ */
/* Bandeau d'annonce sur une seule ligne */
@media (max-width: 600px) {
  .announcement { font-size: 0.55rem; letter-spacing: 0.06em; padding: 0.6rem 0.6rem; }
  .announcement__msg { white-space: nowrap; }
}

/* Puces du hero : nettoyer l'ancienne position et centrer proprement en mobile */
@media (max-width: 900px) {
  .hero-dots { top: auto !important; bottom: 1.5rem; left: 50%; transform: translateX(-50%); }
}

/* Zones tactiles confortables pour les icônes d'en-tête */
@media (max-width: 900px) {
  .header__icon, .header__burger, [data-open-nav] { min-width: 44px; min-height: 44px;
    display: inline-flex; align-items: center; justify-content: center; }
  .btn, .btn--solid, .btn--light { min-height: 46px; }
}

/* ============================================================
   Suivi de commande
   ============================================================ */
.track { max-width: 600px; margin: 0 auto; }
.track-intro { color: var(--c-ink); opacity: .85; line-height: 1.8; margin-bottom: 2rem; }
.track-form { margin-top: .5rem; }
.track-form .btn { margin-top: .4rem; }
.track-note { margin-top: 1.8rem; color: var(--c-stone); font-size: .92rem; line-height: 1.7; }
.track-note a { color: var(--c-accent); border-bottom: 1px solid transparent; transition: border-color .25s ease; }
.track-note a:hover { border-color: var(--c-accent); }

/* Respecter l'attribut hidden sur les champs (ex. code postal Mondial Relay) */
.field[hidden] { display: none !important; }

/* ============================================================
   AJOUTS — réassurance, mosaïque, filtres select, newsletter
   ============================================================ */

/* Bandeau réassurance (type Sayhar) */
.reassure-section { border-top: 1px solid var(--c-line); }
.reassure { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); text-align: center; }
.reassure__item { display: flex; flex-direction: column; align-items: center; gap: 0.9rem; padding: 0 1rem; }
.reassure__icon { width: 58px; height: 58px; border: 1px solid var(--c-line); border-radius: 50%; display: grid; place-items: center; color: var(--c-ink); }
.reassure__icon svg { width: 26px; height: 26px; }
.reassure__title { font-family: var(--font-display); font-size: 1.05rem; letter-spacing: 0.12em; text-transform: uppercase; }
.reassure__text { font-size: 0.85rem; color: var(--c-stone); max-width: 28ch; line-height: 1.6; margin: 0; }
@media (max-width: 749px) { .reassure { grid-template-columns: 1fr; gap: 2.2rem; } }

/* Mosaïque best-sellers (pleine largeur) */
.mosaic-section { margin-block: clamp(2rem, 5vw, 4.5rem); }
.mosaic { display: grid; grid-template-columns: repeat(4, 1fr); }
.mosaic__cell { position: relative; aspect-ratio: 4 / 5; overflow: hidden; }
.mosaic__cell--photo { background: var(--c-paper); }
.mosaic__cell--photo img { width: 100%; height: 100%; object-fit: cover; }
.mosaic__cell--text { background: var(--c-noir); color: var(--c-bone); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 0.5rem; padding: clamp(1.2rem, 3vw, 2.2rem); }
.mosaic__eyebrow { font-size: 0.62rem; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(244,241,235,0.55); }
.mosaic__brand { font-size: 0.64rem; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(244,241,235,0.75); }
.mosaic__name { font-family: var(--font-display); font-size: clamp(1.35rem, 2.2vw, 2rem); color: var(--c-bone); margin: 0.1rem 0 0; }
.mosaic__btn { margin-top: 0.9rem; }
@media (max-width: 749px) {
  .mosaic { grid-template-columns: repeat(2, 1fr); }
  .mosaic__cell { aspect-ratio: 1 / 1; }
  /* Effet damier : on inverse la 2e rangée (noir à gauche, blanc à droite) */
  .mosaic__cell:nth-child(3) { order: 2; }
  .mosaic__cell:nth-child(4) { order: 1; }
}

/* Filtres — menus déroulants (maison + prix) */
.filters-select { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0.8rem; margin: 0 auto 3rem; }
.filters-select__field { position: relative; display: inline-flex; }
.filters-select__field select {
  appearance: none; -webkit-appearance: none;
  font-family: var(--font-body); font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--c-ink); background: transparent; border: 1px solid var(--c-line); border-radius: 100px;
  padding: 0.62rem 2.6rem 0.62rem 1.15rem; cursor: pointer;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="8" viewBox="0 0 12 8" fill="none" stroke="%238C8475" stroke-width="1.3"><path d="M1 1.5 6 6.5l5-5"/></svg>');
  background-repeat: no-repeat; background-position: right 1rem center;
  transition: border-color .3s ease;
}
.filters-select__field select:hover { border-color: var(--c-ink); }
.filters-select__field select:focus { outline: none; border-color: var(--c-ink); }
.filters-reset { background: none; border: 0; color: var(--c-stone); font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.filters-reset:hover { color: var(--c-ink); }

/* Select dans les formulaires (.field) */
.field select {
  border: 1px solid var(--c-line); background: var(--c-paper); padding: 0.85rem 2.6rem 0.85rem 1rem;
  font-family: var(--font-body); font-size: 1rem; color: inherit; appearance: none; -webkit-appearance: none;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="8" viewBox="0 0 12 8" fill="none" stroke="%238C8475" stroke-width="1.3"><path d="M1 1.5 6 6.5l5-5"/></svg>');
  background-repeat: no-repeat; background-position: right 1rem center;
}
.field select:focus { outline: none; border-color: var(--c-ink); }

/* Newsletter — message de confirmation + code promo */
.newsletter__msg { margin: 1.2rem auto 0; max-width: 46ch; color: var(--c-accent); font-size: 0.92rem; line-height: 1.5; }
.newsletter__msg .promo-code { display: inline-block; font-family: var(--font-display); letter-spacing: 0.18em; border: 1px dashed var(--c-accent); padding: 0.25rem 0.7rem; margin-top: 0.5rem; }
.footer__news-lead { font-size: 0.85rem; color: rgba(244,241,235,0.6); margin: 0.2rem 0 1rem; line-height: 1.55; }
.footer__news-msg { margin-top: 0.8rem; font-size: 0.82rem; color: var(--c-bone); }
.footer__news-msg .promo-code { font-family: var(--font-display); letter-spacing: 0.16em; border: 1px dashed rgba(244,241,235,0.5); padding: 0.15rem 0.55rem; }

/* ============================================================
   AJOUTS 2 — footer logo, sous-menu familles mobile, mosaïque produits,
   filtres compacts, header mobile
   ============================================================ */

/* Footer : logo image */
.footer__logo { max-height: 48px; width: auto; margin: 0 0 1.1rem; }

/* Menu Parfums mobile : lien "Voir tout" en tête + sous-groupe familles repliable */
.mnav-more--lead { margin-top: 0 !important; margin-bottom: .5rem; font-size: .9rem !important; }
.mnav-subgroup summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between;
  align-items: center; padding: .15rem 0; font-size: .98rem; color: var(--c-ink); }
.mnav-subgroup summary::-webkit-details-marker { display: none; }
.mnav-subgroup[open] .mnav-caret { transform: rotate(45deg); }
.mnav-subsub { display: flex; flex-direction: column; gap: .5rem; padding: .5rem 0 .7rem .9rem; }
.mnav-subsub a { font-size: .92rem; color: var(--c-stone); padding: .1rem 0; }

/* Mosaïque : l'image remplit tout le carré (aucun bord blanc autour) */
.mosaic__cell--photo { background: var(--c-paper); }
.mosaic__cell--photo img { object-fit: cover; padding: 0; }

/* Slides Silona / Élisire : photo entière nette + fond flou de la même image */
.hero-split__media--fill { position: relative; }
.hero-split__media--fill .hero-media-bg {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; transform: scale(1.15); filter: blur(30px) saturate(1.05);
}
.hero-split__media--fill .hero-media-fg {
  position: relative; z-index: 1; width: 100%; height: 100%;
  object-fit: contain; padding: 3% 4%;
}

/* Page Parfums : bloc filtres compact + parfums visibles d'emblée */
.catalog-section { padding-top: clamp(1.3rem, 3vw, 2.1rem); }
.catalog-head--compact { margin-bottom: 1rem; }
.catalog-head--compact .h2 { margin-top: .3rem; }
.catalog-head--compact .muted { margin-top: .3rem; }
.filters { margin: 0 auto 1rem; }
.filters-select { margin: 0 auto 1.5rem; }

/* Header mobile : loupe + panier rapprochés et à droite */
@media (max-width: 749px) {
  .header__actions { gap: .1rem; }
  .header__icon { min-width: 38px; }
}

/* ============================================================
   POP-UP NEWSLETTER DE BIENVENUE (-10 %)
   ============================================================ */
.nl-popup { position: fixed; inset: 0; z-index: 200; display: none; align-items: center; justify-content: center; padding: 1.2rem; }
.nl-popup.is-open { display: flex; }
.nl-popup__overlay { position: absolute; inset: 0; background: rgba(20,18,13,0.55); backdrop-filter: blur(2px); animation: nlFade .3s ease; }
.nl-popup__panel {
  position: relative; z-index: 1; width: 100%; max-width: 440px; text-align: center;
  background: var(--c-bone); border: 1px solid var(--c-line);
  padding: clamp(2rem, 5vw, 3rem); box-shadow: 0 30px 80px rgba(0,0,0,.25);
  animation: nlPop .4s cubic-bezier(.2,.7,.2,1);
}
.nl-popup__close { position: absolute; top: .5rem; right: .8rem; background: none; border: 0; font-size: 1.7rem; line-height: 1; color: var(--c-stone); cursor: pointer; padding: .2rem; }
.nl-popup__close:hover { color: var(--c-ink); }
.nl-popup__title { margin: .8rem 0 .6rem; }
.nl-popup__text { color: var(--c-stone); font-size: .95rem; line-height: 1.6; max-width: 36ch; margin: 0 auto 1.5rem; }
.nl-popup__form { margin: 0 auto; max-width: 340px; }
.nl-popup .newsletter__msg { margin-top: 1rem; }
.nl-popup__decline { display: inline-block; margin-top: 1.1rem; background: none; border: 0; color: var(--c-stone); font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.nl-popup__decline:hover { color: var(--c-ink); }
@keyframes nlFade { from { opacity: 0; } }
@keyframes nlPop { from { opacity: 0; transform: translateY(16px) scale(.98); } }
@media (max-width: 480px) { .nl-popup__panel { padding: 2.2rem 1.4rem; } }

/* Section « La maison » (photo boutique) : petits textes lisibles */
.story__overlay { background: rgba(20,18,13,0.60); }
.story__inner .label { color: rgba(244,241,235,0.92); }
.story__inner p { color: rgba(244,241,235,0.96); }
.story__inner .label,
.story__inner p,
.story__inner .h-display,
.story__inner h2 { text-shadow: 0 1px 14px rgba(20,18,13,0.5); }

/* ============================================================
   Lisibilité : intitulés, marques et prix plus foncés (fond clair)
   ============================================================ */
.label { color: #5E5748; }                                   /* ex. "LA SÉLECTION", "La collection"… */
.product-card__brand, .product__brand { color: #5A5344; }    /* noms de marques */
.product-card__price { color: var(--c-ink); }                /* prix des cartes en encre foncée */
.price--strike { color: #7C7565; }

/* Rubriques de réassurance : texte descriptif dans la couleur des icônes (bordeaux) */
.usp__item p { color: var(--c-accent); }

/* ============================================================
   HERO PLEINE IMAGE (2 slides : Silona / Élisire)
   ============================================================ */
.hero-slider, .hero-slides, .hero-slide { height: 86vh; }
.hero-full { position: relative; width: 100%; height: 100%; overflow: hidden; }
.hero-full picture { display: block; width: 100%; height: 100%; }
.hero-full img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.hero-full__scrim { position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to top, rgba(20,18,13,.55) 0%, rgba(20,18,13,.16) 30%, rgba(20,18,13,0) 55%); }
.hero-full--light .hero-full__scrim { background: linear-gradient(to top, rgba(20,18,13,.6) 0%, rgba(20,18,13,.22) 34%, rgba(20,18,13,0) 60%); }
.hero-full__cap { position: absolute; left: 0; right: 0; bottom: clamp(2.4rem, 7vh, 4.5rem); z-index: 2;
  display: flex; flex-direction: column; align-items: flex-start; gap: .9rem; color: var(--c-bone); }
.hero-full__eyebrow { font-family: var(--font-body); font-size: .72rem; letter-spacing: .26em; text-transform: uppercase; color: rgba(244,241,235,.85); }
.hero-full__title { font-family: var(--font-display); font-weight: 400; font-size: clamp(2.6rem, 5.4vw, 4.8rem); line-height: 1; margin: 0; text-shadow: 0 2px 26px rgba(20,18,13,.4); }
.hero-full__sub { font-family: var(--font-body); font-weight: 300; font-size: clamp(1rem, 1.4vw, 1.15rem); line-height: 1.6; max-width: 34ch; color: rgba(244,241,235,.92); }
.hero-full__btn { margin-top: .4rem; }
@media (max-width: 749px) {
  .hero-slider, .hero-slides, .hero-slide { height: 84vh; }
  .hero-full__cap { align-items: center; text-align: center; bottom: clamp(2rem, 6vh, 3.4rem); }
  .hero-full__sub { max-width: 28ch; }
}

/* Position de la légende selon le visuel :
   - sombre (Silona) : en bas, texte clair
   - clair (Élisire) : en haut, texte foncé (les flacons sont en bas de l'image) */
.hero-full--dark .hero-full__cap { bottom: clamp(2.4rem,7vh,4.5rem); top: auto; }
.hero-full--light .hero-full__cap { top: clamp(2.4rem,9vh,4.5rem); bottom: auto; color: var(--c-ink); }
.hero-full--light .hero-full__eyebrow { color: var(--c-stone); }
.hero-full--light .hero-full__sub { color: rgba(27,24,19,.82); }
.hero-full--light .hero-full__title { text-shadow: none; }
.hero-full--light .hero-full__scrim { background: linear-gradient(to bottom, rgba(252,251,249,.45) 0%, rgba(252,251,249,0) 24%); }
.hero-full--light .hero-full__btn { border-color: var(--c-ink); color: var(--c-ink); }
.hero-full--light .hero-full__btn:hover { background: var(--c-ink); color: var(--c-bone); }
@media (max-width: 749px) {
  .hero-full--light .hero-full__cap { top: clamp(1.6rem,6vh,3rem); }
  .hero-full--dark .hero-full__cap { bottom: clamp(2rem,6vh,3.4rem); }
}

/* ============================================================
   Accueil : header transparent superposé au hero (comme Odorare)
   Le hero remonte derrière le header (margin-top négatif via JS).
   Un léger dégradé en haut garde le logo/menu blanc lisibles,
   y compris sur l'image claire d'Élisire.
   ============================================================ */
body.home .hero-slider { position: relative; z-index: 1; }
body.home .hero-slider::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 150px;
  background: linear-gradient(to bottom, rgba(18,16,11,.42), rgba(18,16,11,0));
  z-index: 3; pointer-events: none;
}
body.home .hero-full { display: block; height: 100%; }
body.home .hero-full img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* la barre redevient bien blanche opaque au scroll */
body.home .header.is-scrolled { background: var(--c-bone); }

/* ============================================================
   Section « En ce moment » — les 2 maisons à l'honneur
   ============================================================ */
.maison-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; margin-top: 1.8rem; }
.maison-tile {
  position: relative; display: block; border-radius: 4px; overflow: hidden;
  aspect-ratio: 16 / 10; color: var(--c-bone); text-decoration: none;
}
.maison-tile__media { position: absolute; inset: 0; }
.maison-tile__media img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .9s cubic-bezier(.4,0,.2,1);
}
.maison-tile:hover .maison-tile__media img { transform: scale(1.05); }
.maison-tile__scrim {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(18,16,11,.68) 0%, rgba(18,16,11,.15) 55%, rgba(18,16,11,.05) 100%);
}
.maison-tile__body {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 1.6rem 1.8rem;
  display: flex; flex-direction: column; align-items: flex-start; gap: .35rem;
}
.maison-tile__eyebrow {
  font-size: .68rem; text-transform: uppercase; letter-spacing: .24em;
  color: rgba(244,241,235,.8);
}
.maison-tile__name {
  font-family: var(--f-serif, Georgia, serif); font-weight: 400;
  font-size: clamp(1.5rem, 3.4vw, 2.1rem); line-height: 1.05; color: var(--c-bone);
}
.maison-tile__link {
  margin-top: .5rem; font-size: .78rem; text-transform: uppercase; letter-spacing: .18em;
  border-bottom: 1px solid rgba(244,241,235,.55); padding-bottom: 2px;
  transition: border-color .3s;
}
.maison-tile:hover .maison-tile__link { border-bottom-color: var(--c-bone); }
@media (max-width: 749px) {
  .maison-grid { grid-template-columns: 1fr; gap: 1rem; }
  .maison-tile { aspect-ratio: 16 / 11; }
  .maison-tile__body { padding: 1.3rem 1.4rem; }
}

/* ============================================================
   Menu mobile — corrections
   ============================================================ */
/* Caret « + » remplacé par une flèche (chevron) vers le bas ; pivote vers le haut à l'ouverture */
.mnav-caret {
  width: 8px; height: 8px; padding: 0; font-size: 0; line-height: 0; flex: none;
  border-right: 1.6px solid var(--c-accent); border-bottom: 1.6px solid var(--c-accent);
  border-top: 0; border-left: 0; margin-right: 4px; margin-top: -4px;
  transform: rotate(45deg); transform-origin: center; transition: transform .3s ease;
}
.mnav-group[open] > summary .mnav-caret,
.mnav-subgroup[open] > summary .mnav-caret { transform: rotate(-135deg); margin-top: 2px; }

/* Contact : exactement la même taille que Parfums / Marques / Notre boutique */
.mnav-group > summary,
.mnav-link { font-size: 1.1rem !important; }
.mnav-link { border-bottom: none; }

/* « Voir tous nos parfums » (et « Toutes nos marques ») en minuscules comme le reste du menu */
.mnav-more { text-transform: none !important; letter-spacing: .01em; }

/* ============================================================
   Bande réassurance discrète en haut du footer
   (remplace l'ancien pavé USP à 4 colonnes)
   ============================================================ */
.footer__assur {
  margin-top: calc(clamp(3.5rem,7vw,6rem) * -1);
  padding: 1.05rem 0;
  border-bottom: 1px solid rgba(244,241,235,.14);
  margin-bottom: clamp(2.6rem,5vw,4rem);
}
.footer__assur-row {
  display: flex; justify-content: center; flex-wrap: wrap;
  gap: 1rem 2.6rem;
}
.fa-item {
  display: inline-flex; align-items: center; gap: .55rem;
  font-size: .74rem; letter-spacing: .12em; text-transform: uppercase;
  color: rgba(244,241,235,.9);
}
.fa-ic { width: 18px; height: 18px; flex: none; color: rgba(244,241,235,.7); }
.fa-ic svg { width: 100%; height: 100%; }
@media (max-width: 749px) {
  .footer__assur-row { gap: .7rem 1.3rem; }
  .fa-item { font-size: .66rem; letter-spacing: .08em; gap: .4rem; }
  .fa-ic { width: 16px; height: 16px; }
}

/* ============================================================
   Rupture de stock (carte + fiche produit)
   ============================================================ */
.product-card__media { position: relative; }
.product-card__badge {
  position: absolute; top: .6rem; left: .6rem; z-index: 2;
  background: rgba(20,18,13,.85); color: var(--c-bone);
  font-size: .6rem; letter-spacing: .16em; text-transform: uppercase;
  padding: .3rem .6rem; border-radius: 2px;
}
.product-card--soldout .product-card__media img { opacity: .6; filter: grayscale(.15); }
.product-card__price--out { color: var(--c-stone); font-style: italic; letter-spacing: .01em; }

.product__buy--out { margin-top: 1.3rem; }
.product__soldout {
  border: 1px solid var(--c-line); border-left: 3px solid var(--c-accent);
  background: rgba(94,58,66,.045); padding: 1rem 1.1rem; border-radius: 3px;
}
.product__soldout-badge {
  display: inline-block; font-family: var(--font-display);
  font-size: .76rem; letter-spacing: .16em; text-transform: uppercase; color: var(--c-accent);
}
.product__soldout-text { margin: .45rem 0 0; font-size: .9rem; color: var(--c-stone); line-height: 1.6; }
.product__soldout-btn { width: 100%; margin-top: 1rem; opacity: .45; cursor: not-allowed; pointer-events: none; }
.product__soldout-link {
  display: inline-block; margin-top: .85rem; font-size: .82rem; letter-spacing: .03em;
  border-bottom: 1px solid var(--c-line); padding-bottom: 2px;
}

/* ============================================================
   Fiche produit : bloc "Le parfum" (caractéristiques + description étoffée)
   Ouvert par défaut, repliable via le − .
   ============================================================ */
.accordion--detail { margin-top: 1.6rem; }
/* affichage ouvert avant l'exécution du JS (pas de clignotement) */
.accordion__item.is-open > .accordion__body { max-height: none; }

.accordion--detail .accordion__body-inner { color: var(--c-ink); }
.prod-long p { color: var(--c-stone); line-height: 1.7; margin: 0 0 .85rem; }
.prod-long p:last-child { margin-bottom: 0; }

.pspec { margin-top: 1.5rem; }
.pspec__row { display: grid; grid-template-columns: 22px 132px 1fr auto; align-items: center; gap: .55rem .7rem; padding: .72rem 0; border-top: 1px solid var(--c-line); }
.pspec__row:first-child { border-top: 0; padding-top: .2rem; }
.pspec__ic { width: 20px; height: 20px; color: var(--c-accent); }
.pspec__ic svg { width: 100%; height: 100%; }
.pspec__label { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--c-ink); line-height: 1.25; }
.pspec__val { font-size: .9rem; color: var(--c-stone); line-height: 1.5; }
.pspec__end { justify-self: end; display: inline-flex; align-items: center; }
.pspec__stars { color: var(--c-accent); letter-spacing: 2px; font-size: .82rem; white-space: nowrap; }
.pspec__stars-off { color: rgba(94,58,66,.26); }
.pspec__seasons { display: inline-flex; gap: 6px; }
.pspec__sicon { width: 17px; height: 17px; color: var(--c-stone); display: inline-block; }
.pspec__sicon svg { width: 100%; height: 100%; }
@media (max-width: 749px) {
  .pspec__row { grid-template-columns: 20px 100px 1fr auto; gap: .45rem .5rem; }
  .pspec__label { font-size: .64rem; letter-spacing: .07em; }
  .pspec__val { font-size: .83rem; }
  .pspec__stars { font-size: .78rem; letter-spacing: 1.5px; }
}

/* ============================================================
   Accueil : hero unique Élisire avec titre + bouton (CTA)
   ============================================================ */
.hero-single { position: relative; height: 86vh; overflow: hidden; z-index: 1; }
.hero-single > picture { position: absolute; inset: 0; }
.hero-single img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (min-width: 750px) {
  .hero-single img { object-position: center 42%; }
}
.hero-single__scrim {
  position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(to bottom, rgba(20,18,13,.42) 0%, rgba(20,18,13,.12) 22%, rgba(20,18,13,0) 40%),
    radial-gradient(115% 45% at 50% 40%, rgba(20,18,13,.28), rgba(20,18,13,0) 60%);
}
.hero-single__cap {
  position: absolute; inset: 0; z-index: 2;
  display: flex; flex-direction: column; align-items: center; justify-content: flex-start;
  text-align: center; padding: clamp(5rem, 20vh, 13rem) 1.4rem 0;
}
.hero-single__title {
  font-family: var(--font-display); font-weight: 400; color: var(--c-bone);
  font-size: clamp(1.7rem, 4.6vw, 3.1rem); line-height: 1.24; letter-spacing: .01em;
  text-shadow: 0 2px 26px rgba(20,18,13,.4);
}
.hero-single__divider { display: block; width: 64px; height: 2px; background: #C6A24C; margin: 1.5rem 0 1.9rem; }
.hero-single__btn.btn {
  background: var(--c-bone); color: var(--c-ink); border: none;
  padding: 1.05rem 2.6rem; font-size: .8rem; letter-spacing: .2em; text-transform: uppercase;
}
.hero-single__btn.btn:hover { background: #fff; color: var(--c-ink); transform: translateY(-1px); }
@media (max-width: 749px) {
  .hero-single { height: 88vh; }
  .hero-single__cap { justify-content: flex-start; padding-top: 24vh; }
  .hero-single__title { font-size: clamp(.8rem, 3.7vw, 1rem); white-space: nowrap; letter-spacing: .02em; margin-bottom: 1.5rem; }
  .hero-single__btn.btn { padding: .85rem 1.9rem; font-size: .74rem; letter-spacing: .14em; }
}

/* ============================================================
   Lisibilité : textes de contenu plus foncés (demande client)
   ============================================================ */
:root { --c-stone: #6A6252; }
.olfactory__notes,
.accordion__body-inner,
.pspec__val,
.reassure__text,
.prod-long p,
.muted { color: #46402F; }
.pspec__label { color: var(--c-ink); }

/* Ordinateur : hero image seule, sans CTA (placé en fin pour l'emporter sur le display de base) */
@media (min-width: 750px) { .hero-single__cap { display: none !important; } }

/* ============================================================
   Avis Google (accueil)
   ============================================================ */
.reviews-summary { display: flex; align-items: center; justify-content: center; gap: .6rem; margin-top: 1.2rem; }
.reviews-summary .rev-g { width: 20px; height: 20px; }
.reviews-summary__note { font-size: 1rem; color: var(--c-ink); }
.reviews-summary__note strong { font-family: var(--font-display); font-size: 1.2rem; }
.reviews-summary__src { font-size: .82rem; letter-spacing: .06em; color: var(--c-stone); text-transform: uppercase; }
.rev-stars { color: #E8A33D; letter-spacing: 1px; font-size: .95rem; white-space: nowrap; }
.rev-stars-off { color: rgba(232,163,61,.28); }

.reviews-grid {
  display: flex; gap: 1rem; margin-top: 2rem; overflow-x: auto; padding: .3rem .1rem 1rem;
  scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
}
.reviews-grid::-webkit-scrollbar { height: 6px; }
.reviews-grid::-webkit-scrollbar-thumb { background: var(--c-line); border-radius: 3px; }
.review-card {
  scroll-snap-align: start; flex: 0 0 300px; display: flex; flex-direction: column; gap: .8rem;
  background: var(--c-paper, #FBF8F2); border: 1px solid var(--c-line); border-radius: 6px; padding: 1.3rem 1.4rem;
}
.review-card__top { display: flex; align-items: center; justify-content: space-between; }
.review-card__text { color: #46402F; font-size: .9rem; line-height: 1.6; margin: 0; }
.review-card__meta { display: flex; align-items: center; gap: .7rem; margin-top: auto; }
.review-card__avatar {
  width: 38px; height: 38px; border-radius: 50%; flex: none; display: flex; align-items: center; justify-content: center;
  background: var(--c-accent); color: var(--c-bone); font-family: var(--font-display); font-size: 1rem;
}
.review-card__id { display: flex; flex-direction: column; line-height: 1.3; }
.review-card__name { font-weight: 500; color: var(--c-ink); font-size: .9rem; }
.review-card__when { font-size: .76rem; color: var(--c-stone); }
.reviews-cta { text-align: center; margin-top: 1.6rem; }
@media (max-width: 749px) {
  .review-card { flex-basis: 80%; }
}

.review-card__gbadge { display: inline-flex; align-items: center; gap: .5rem; font-size: .8rem; color: var(--c-stone); }
.review-card__gbadge .rev-g { width: 16px; height: 16px; flex: none; }

/* ============================================================
   Panier : jauge « livraison offerte »
   ============================================================ */
.freeship { padding: .9rem 0 1.1rem; border-bottom: 1px solid var(--c-line); margin-bottom: 1rem; }
.freeship__msg { display: block; font-size: .82rem; color: var(--c-ink); letter-spacing: .01em; margin-bottom: .6rem; }
.freeship__msg strong { font-weight: 600; }
.freeship__bar { height: 6px; border-radius: 6px; background: var(--c-line); overflow: hidden; }
.freeship__bar > span { display: block; height: 100%; border-radius: 6px; background: var(--c-accent); transition: width .4s ease; }
.freeship--done .freeship__msg { color: #2E7D32; }
.freeship--done .freeship__bar > span { background: #2E7D32; }

/* Champ e-mail dans le panier (création du Customer Stripe) */
.cart-email__l { display:block; font-size:.74rem; letter-spacing:.04em; color:var(--c-stone); margin:.9rem 0 .35rem; }
.cart-email { width:100%; padding:.7rem .8rem; border:1px solid var(--c-line); border-radius:3px; background:var(--c-bone); font:inherit; font-size:.92rem; color:var(--c-ink); }
.cart-email:focus { outline:none; border-color:var(--c-accent); }
.cart-email__err { color:#B4232A; font-size:.78rem; margin:.35rem 0 0; }

/* ============================================================
   Page récap avant paiement (commande.html)
   ============================================================ */
.checkout-page { max-width: 980px; margin: 0 auto; }
.co-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 2.4rem; align-items: start; }
.co-lines { display: flex; flex-direction: column; }
.co-line { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; padding: 1rem 0; border-bottom: 1px solid var(--c-line); }
.co-line img { border-radius: 3px; object-fit: cover; background: #fff; }
.co-line__title { font-family: var(--font-display); font-size: 1.05rem; color: var(--c-ink); }
.co-line__meta { font-size: .82rem; color: var(--c-stone); margin-top: .15rem; }
.co-line__price { font-family: var(--font-display); white-space: nowrap; }
.co-side { background: var(--c-paper, #FBF8F2); border: 1px solid var(--c-line); border-radius: 6px; padding: 1.4rem 1.5rem; position: sticky; top: 120px; }
.co-row { display: flex; justify-content: space-between; align-items: baseline; margin: .2rem 0 .3rem; font-size: 1.05rem; }
.co-row span:last-child { font-family: var(--font-display); }
.co-back { display: inline-block; margin-top: 1rem; font-size: .84rem; color: var(--c-stone); letter-spacing: .02em; }
@media (max-width: 749px) {
  .co-grid { grid-template-columns: 1fr; gap: 1.4rem; }
  .co-side { position: static; }
}

/* ============================================================
   Stock dynamique (piloté depuis le dashboard, lu en direct)
   ============================================================ */
/* Cartes : badge caché par défaut, visible en rupture ; prix num/rupture */
.product-card__badge { display: none; }
.product-card--soldout .product-card__badge { display: inline-block; }
.pcp-out { display: none; }
.product-card--soldout .pcp-num { display: none; }
.product-card--soldout .pcp-out { display: inline; color: var(--c-stone); font-style: italic; letter-spacing: .01em; }

/* Fiche produit : on montre soit l'achat, soit la rupture, selon le statut */
.product__stock { margin-top: 1.3rem; }
.product__stock .product__soldout { display: none; }
.product__stock.is-soldout .product__soldout { display: block; }
.product__stock.is-soldout .product__buy { display: none; }
