/* =====================================================================
   CULT51 LONDON — Clinical luxury skincare
   Bespoke rebuild by CREATE · brand palette: aubergine / silver / lilac / white
   ===================================================================== */

/* ---------- Design tokens ---------- */
:root{
  --plum:       #4b0a45;   /* primary brand aubergine (from logo) */
  --plum-deep:  #2c0a2a;   /* dark text / dark sections */
  --plum-grad-a:#3c0a39;
  --plum-grad-b:#5d1453;
  --orchid:     #7d2f76;   /* accent purple — links, small caps */
  --lilac:      #b98fbe;
  --lilac-soft: #f1e8f3;   /* pale section wash */
  --lilac-line: #e7dcea;
  --rose:       #e0a3c4;   /* sparing pink accent */
  --rose-soft:  #f7ebf2;
  --silver:     #c2c5cf;
  --silver-line:#e6e4ec;
  --platinum:   #8a8597;   /* muted body text */
  --ink:        #2b1a2b;   /* body text on light */
  --white:      #ffffff;
  --paper:      #fbfafc;   /* page background, faintly cool */

  --muted-d:    rgba(245,240,247,.66);
  --hair-d:     rgba(245,240,247,.16);

  --display: "Cormorant Garamond", Georgia, serif;
  --sans:    "Jost", "Helvetica Neue", Arial, sans-serif;

  --ease: cubic-bezier(.22,.61,.36,1);
  --container: 1280px;
  --gutter: clamp(20px, 5vw, 72px);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:var(--sans); background:var(--paper); color:var(--ink);
  line-height:1.62; font-weight:300; letter-spacing:.01em; overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
ul{ list-style:none; }

/* ---------- Typography ---------- */
.display{ font-family:var(--display); font-weight:500; line-height:1.04; letter-spacing:-.005em; }
h1,h2,h3{ font-family:var(--display); font-weight:500; color:var(--plum-deep); }
.eyebrow{ font-size:.7rem; letter-spacing:.36em; text-transform:uppercase; font-weight:400; color:var(--orchid); }
.eyebrow.light{ color:var(--lilac); }
.lede{ font-size:clamp(1.05rem,1.5vw,1.26rem); font-weight:300; line-height:1.72; }
.container{ max-width:var(--container); margin:0 auto; padding-inline:var(--gutter); }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.7em;
  font-family:var(--sans); font-size:.72rem; font-weight:500;
  letter-spacing:.22em; text-transform:uppercase; padding:1.15em 2.1em;
  border-radius:2px; transition:all .5s var(--ease); white-space:nowrap;
}
.btn--plum{ background:var(--plum); color:#fff; }
.btn--plum:hover{ background:var(--orchid); transform:translateY(-2px); box-shadow:0 16px 36px -18px rgba(75,10,69,.65); }
.btn--ghost{ border:1px solid currentColor; color:var(--plum); }
.btn--ghost:hover{ background:var(--plum); color:#fff; border-color:var(--plum); }
.btn--light{ border:1px solid rgba(255,255,255,.5); color:#fff; }
.btn--light:hover{ background:#fff; color:var(--plum); }
.btn--line{ padding:0 0 .35em 0; border-radius:0; letter-spacing:.2em; color:var(--orchid); border-bottom:1px solid var(--lilac); }
.btn--line:hover{ border-color:var(--orchid); }
.btn .arrow{ transition:transform .5s var(--ease); }
.btn:hover .arrow{ transform:translateX(5px); }

/* ---------- Announcement ---------- */
.announce{
  background:var(--plum); color:#fff; font-size:.66rem; letter-spacing:.26em;
  text-transform:uppercase; text-align:center; padding:.72em 1em; overflow:hidden;
}
.announce__track{ display:inline-flex; gap:3em; white-space:nowrap; }
.announce__track span{ opacity:.9; }
.announce__track i{ color:var(--rose); font-style:normal; }

/* ---------- Header ---------- */
.header{
  position:sticky; top:0; z-index:60; background:rgba(251,250,252,.82);
  -webkit-backdrop-filter: saturate(140%) blur(14px); backdrop-filter:saturate(140%) blur(14px); border-bottom:1px solid transparent;
  transition:background .5s var(--ease), border-color .5s var(--ease), padding .5s var(--ease);
}
.header.scrolled{ background:rgba(251,250,252,.95); border-bottom-color:var(--silver-line); }
.nav{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:1.2rem var(--gutter); transition:padding .5s var(--ease); }
.header.scrolled .nav{ padding-block:.85rem; }
.nav__links{ display:flex; gap:2.2rem; }
.nav__links a{ font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; font-weight:400; position:relative; padding-block:.4em; color:var(--ink); }
.nav__links a::after{ content:""; position:absolute; left:0; bottom:.1em; height:1px; width:0; background:var(--orchid); transition:width .45s var(--ease); }
.nav__links a:hover::after{ width:100%; }
.brand-logo{ justify-self:center; }
.brand-logo img{ height:34px; width:auto; }
.header.scrolled .brand-logo img{ height:30px; }
.nav__right{ display:flex; align-items:center; justify-content:flex-end; gap:1.5rem; }
.nav__icon{ display:inline-flex; align-items:center; gap:.5em; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink); }
.nav__icon svg{ width:19px; height:19px; }
.cart-count{ background:var(--plum); color:#fff; font-size:.58rem; font-weight:600; border-radius:50%; width:17px; height:17px; display:grid; place-items:center; letter-spacing:0; }
.burger{ display:none; width:26px; height:16px; position:relative; }
.burger span{ position:absolute; left:0; height:1.5px; width:100%; background:var(--plum); transition:.4s var(--ease); }
.burger span:nth-child(1){ top:0; } .burger span:nth-child(2){ top:7px; } .burger span:nth-child(3){ top:14px; }

/* ---------- Hero (light, clinical) ---------- */
.hero{ position:relative; min-height:90vh; display:flex; align-items:center; background:linear-gradient(120deg,#f6eef6 0%, #fbfafc 55%, #f3eef5 100%); overflow:hidden; }
.hero__media{ position:absolute; inset:0; }
.hero__media img{ width:100%; height:100%; object-fit:cover; object-position:right center; opacity:0; transform:scale(1.06); transition:opacity 1.6s ease, transform 7s ease; }
.hero__media img.in{ opacity:1; transform:scale(1); }
.hero__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(251,250,252,.96) 0%, rgba(251,250,252,.7) 36%, rgba(251,250,252,.08) 66%, rgba(246,238,246,.2) 100%); }
.hero__inner{ position:relative; z-index:2; max-width:620px; padding-block:8vh; }
.hero h1{ font-size:clamp(3rem,6.6vw,5.8rem); margin:.32em 0 .42em; color:var(--plum-deep); }
.hero h1 em{ font-style:italic; color:var(--orchid); }
.hero p{ color:var(--platinum); max-width:46ch; margin-bottom:2.4rem; font-size:1.08rem; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }
.hero__scroll{ position:absolute; bottom:2.2rem; left:var(--gutter); z-index:2; color:var(--platinum); font-size:.62rem; letter-spacing:.3em; text-transform:uppercase; display:flex; align-items:center; gap:.9em; }
.hero__scroll .line{ width:46px; height:1px; background:var(--orchid); transform-origin:left; animation:scrollline 2.4s var(--ease) infinite; }
@keyframes scrollline{ 0%,100%{ transform:scaleX(.3); opacity:.4 } 50%{ transform:scaleX(1); opacity:1 } }

/* ---------- Trust bar ---------- */
.trust{ background:#fff; border-bottom:1px solid var(--silver-line); }
.trust__grid{ display:grid; grid-template-columns:repeat(4,1fr); }
.trust__item{ padding:1.7rem 1.4rem; text-align:center; border-left:1px solid var(--silver-line); }
.trust__item:first-child{ border-left:none; }
.trust__item b{ display:block; font-family:var(--display); font-size:1.05rem; color:var(--plum); letter-spacing:.02em; }
.trust__item span{ font-size:.64rem; letter-spacing:.18em; text-transform:uppercase; color:var(--platinum); margin-top:.3em; display:block; }

/* ---------- Stat band (dark aubergine) ---------- */
.stats{ background:linear-gradient(120deg,var(--plum-grad-a),var(--plum-grad-b)); color:#fff; }
.stats__grid{ display:grid; grid-template-columns:repeat(4,1fr); }
.stat{ padding:3.4rem 1.5rem; text-align:center; border-left:1px solid var(--hair-d); }
.stat:first-child{ border-left:none; }
.stat__num{ font-family:var(--display); font-size:clamp(2.6rem,4.6vw,3.7rem); font-weight:500; color:#fff; line-height:1; }
.stat__num small{ font-size:.5em; color:var(--rose); }
.stat__label{ font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted-d); margin-top:.9em; }

/* ---------- Section scaffolding ---------- */
.section{ padding-block:clamp(4.5rem,10vw,8.5rem); }
.section--plum{ background:linear-gradient(150deg,var(--plum-grad-a),var(--plum-deep)); color:#fff; }
.section--lilac{ background:var(--lilac-soft); }
.section--white{ background:#fff; }
.section-head{ max-width:760px; }
.section-head.center{ margin-inline:auto; text-align:center; }
.section-head h2{ font-size:clamp(2.3rem,4.8vw,3.8rem); margin:.45em 0 .4em; }
.section--plum .section-head h2{ color:#fff; }
.section-head p{ color:var(--platinum); }
.section--plum .section-head p{ color:var(--muted-d); }
.divider-quote{ font-family:var(--display); font-style:italic; font-size:clamp(1.6rem,3vw,2.4rem); color:var(--plum); line-height:1.4; max-width:24ch; }

/* ---------- Feature (hero product) ---------- */
.feature{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,6vw,6rem); align-items:center; }
.feature__media{ position:relative; }
.feature__media img{ width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:4px; }
.feature__badge{ position:absolute; bottom:-24px; left:-24px; background:#fff; padding:1.4rem 1.7rem; border:1px solid var(--lilac-line); border-radius:4px; max-width:220px; box-shadow:0 30px 60px -34px rgba(75,10,69,.4); }
.feature__badge .display{ font-size:2.4rem; color:var(--plum); line-height:1; }
.feature__badge span{ font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:var(--platinum); display:block; margin-top:.5em; }
.feature__price{ display:flex; align-items:baseline; gap:1rem; margin:1.3rem 0 1.7rem; }
.feature__price .amt{ font-family:var(--display); font-size:2.3rem; color:var(--plum-deep); }
.feature__price .size{ font-size:.76rem; letter-spacing:.16em; text-transform:uppercase; color:var(--platinum); }
.rating{ display:flex; align-items:center; gap:.7em; margin-bottom:1.4rem; }
.rating .stars{ color:var(--orchid); letter-spacing:.15em; font-size:.95rem; }
.rating span{ font-size:.74rem; letter-spacing:.06em; color:var(--platinum); }
.feature__list{ display:grid; gap:.8rem; margin:1.7rem 0 2.2rem; }
.feature__list li{ display:flex; gap:.9em; align-items:flex-start; font-size:.95rem; color:var(--ink); }
.feature__list svg{ flex:none; width:18px; height:18px; margin-top:.28em; color:var(--orchid); }
.feature__buy{ display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }

/* ---------- Science ---------- */
.science{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,6vw,6rem); align-items:center; }
.science__media img{ width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:4px; }
.science__points{ display:grid; gap:1.5rem; margin-top:2.2rem; }
.science__points li{ padding-left:1.5rem; border-left:1px solid var(--hair-d); }
.science__points b{ font-family:var(--display); font-size:1.4rem; font-weight:500; color:#fff; display:block; margin-bottom:.2em; }
.science__points span{ color:var(--muted-d); font-size:.95rem; }
.atp{ display:inline-flex; flex-direction:column; align-items:center; margin-top:.5rem; }
.atp__ring{ position:relative; width:clamp(190px,26vw,260px); aspect-ratio:1; display:grid; place-items:center; border-radius:50%; background:radial-gradient(circle at 50% 42%, rgba(224,163,196,.25), transparent 60%); }
.atp__ring::before,.atp__ring::after{ content:""; position:absolute; inset:0; border-radius:50%; border:1px solid var(--hair-d); }
.atp__ring::after{ inset:12%; border-color:rgba(224,163,196,.4); }
.atp__spin{ position:absolute; inset:5%; border-radius:50%; border:1px dashed rgba(224,163,196,.45); animation:spin 38s linear infinite; }
@keyframes spin{ to{ transform:rotate(360deg) } }
.atp__core{ text-align:center; z-index:2; }
.atp__core .display{ font-size:clamp(3.4rem,7vw,5.4rem); color:#fff; line-height:.9; }
.atp__core .display small{ font-size:.42em; color:var(--rose); }
.atp__core p{ font-size:.64rem; letter-spacing:.26em; text-transform:uppercase; color:var(--muted-d); margin-top:.7em; }

/* ---------- Clinical results table ---------- */
.clinical-method{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; margin-top:3rem; }
.method{ padding:1.8rem 1.4rem; border:1px solid var(--silver-line); border-radius:4px; background:#fff; }
.method b{ font-family:var(--display); font-size:1.3rem; color:var(--plum); display:block; margin-bottom:.3em; }
.method span{ font-size:.82rem; color:var(--platinum); }
.clinical-results{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; margin-top:1.2rem; }
.cres{ text-align:center; padding:2.4rem 1.2rem; border:1px solid var(--lilac-line); border-radius:4px; background:var(--lilac-soft); }
.cres__num{ font-family:var(--display); font-size:clamp(2.6rem,4.4vw,3.6rem); color:var(--plum); line-height:1; }
.cres__num small{ font-size:.42em; color:var(--orchid); }
.cres p{ font-size:.84rem; color:var(--ink); margin-top:.7em; }
.cres em{ display:block; font-style:normal; font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; color:var(--orchid); margin-top:1rem; }
.clinical-cite{ margin-top:2.6rem; padding:2.4rem; border-left:2px solid var(--orchid); background:#fff; }
.clinical-cite blockquote{ font-family:var(--display); font-size:clamp(1.5rem,2.6vw,2.1rem); line-height:1.4; color:var(--plum-deep); font-weight:500; }
.clinical-cite cite{ font-style:normal; display:block; margin-top:1.2rem; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--platinum); }

/* ---------- Ingredients ---------- */
.ingredients{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; margin-top:3.2rem; }
.ing-card{ position:relative; padding:2.3rem 1.9rem; border:1px solid var(--silver-line); border-radius:4px; background:#fff; transition:.5s var(--ease); }
.ing-card:hover{ transform:translateY(-6px); border-color:var(--lilac); box-shadow:0 30px 60px -38px rgba(75,10,69,.28); }
.ing-card__num{ font-family:var(--display); font-size:.95rem; color:var(--orchid); letter-spacing:.1em; }
.ing-card h3{ font-size:1.6rem; margin:.5rem 0 .5rem; }
.ing-card p{ font-size:.9rem; color:var(--platinum); }
.ing-card .latin{ font-style:italic; font-family:var(--display); font-size:1.02rem; color:var(--orchid); display:block; margin-top:1.3rem; }

/* ---------- Biochemist editorial ---------- */
.bio-grid{ display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(2.5rem,6vw,6rem); align-items:center; }
.bio-grid img{ width:100%; aspect-ratio:3/4; object-fit:cover; border-radius:4px; }
.bio-quote{ font-family:var(--display); font-size:clamp(1.7rem,3.2vw,2.7rem); line-height:1.28; font-weight:500; color:#fff; }
.bio-quote em{ color:var(--rose); font-style:italic; }
.bio-cite{ margin-top:1.8rem; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted-d); }
.bio-cite b{ color:#fff; font-weight:500; }

/* ---------- Range ---------- */
.range{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:1.6rem; margin-top:3.2rem; }
.product h3 a{ transition:color .3s; }
.product h3 a:hover{ color:var(--orchid); }
.product{ position:relative; }
.product__media{ position:relative; aspect-ratio:4/5; overflow:hidden; border-radius:4px; background:#fff; border:1px solid var(--silver-line); }
.product__media img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.product:hover .product__media img{ transform:scale(1.05); }
.product__tag{ position:absolute; top:1rem; left:1rem; background:var(--plum); color:#fff; font-size:.58rem; letter-spacing:.18em; text-transform:uppercase; padding:.5em .9em; border-radius:2px; }
.product__tag.rose{ background:var(--rose); color:var(--plum-deep); }
.product__add{ position:absolute; left:1rem; right:1rem; bottom:1rem; background:var(--plum); color:#fff; text-align:center; padding:.95em; font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; border-radius:2px; opacity:0; transform:translateY(12px); transition:.5s var(--ease); }
.product:hover .product__add{ opacity:1; transform:translateY(0); }
.product__add:hover{ background:var(--orchid); }
.product__stat{ font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--orchid); margin:1.1rem 0 .3rem; }
.product h3{ font-size:1.4rem; margin:0 0 .25rem; }
.product__meta{ display:flex; justify-content:space-between; align-items:baseline; }
.product__meta .type{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--platinum); }
.product__meta .price{ font-family:var(--display); font-size:1.25rem; color:var(--plum-deep); }

/* ---------- Real people ---------- */
.people{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.6rem; margin-top:3.2rem; }
.person{ display:grid; grid-template-columns:auto 1fr; gap:1.6rem; padding:2.2rem; border:1px solid var(--silver-line); border-radius:4px; background:#fff; align-items:start; }
.person__avatar{ width:54px; height:54px; border-radius:50%; background:linear-gradient(140deg,var(--lilac),var(--orchid)); display:grid; place-items:center; color:#fff; font-family:var(--display); font-size:1.4rem; }
.person h4{ font-family:var(--sans); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--plum); margin-bottom:.2em; }
.person .focus{ font-size:.72rem; color:var(--platinum); margin-bottom:.9rem; letter-spacing:.04em; }
.person blockquote{ font-family:var(--display); font-size:1.32rem; line-height:1.4; color:var(--plum-deep); margin-bottom:.9rem; }
.person .result{ font-size:.86rem; color:var(--ink); }

/* ---------- Ritual ---------- */
.ritual{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.5rem,4vw,3rem); margin-top:3.2rem; counter-reset:step; }
.ritual__step{ position:relative; padding-top:2.4rem; border-top:1px solid var(--lilac-line); }
.ritual__step::before{ counter-increment:step; content:"0" counter(step); font-family:var(--display); font-size:1.1rem; color:var(--orchid); position:absolute; top:1rem; left:0; letter-spacing:.1em; }
.ritual__step h3{ font-size:1.6rem; margin-bottom:.6rem; }
.ritual__step p{ color:var(--platinum); font-size:.94rem; }

/* ---------- Reviews ---------- */
.reviews{ overflow:hidden; }
.reviews__track{ display:flex; gap:1.5rem; transition:transform .8s var(--ease); }
.review{ flex:0 0 calc(33.333% - 1rem); background:#fff; border:1px solid var(--silver-line); border-radius:4px; padding:2.4rem 2rem; }
.review .stars{ color:var(--orchid); letter-spacing:.18em; font-size:.9rem; }
.review blockquote{ font-family:var(--display); font-size:1.4rem; line-height:1.42; margin:1.1rem 0 1.5rem; font-weight:500; color:var(--plum-deep); }
.review cite{ font-style:normal; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--platinum); }
.review cite b{ color:var(--plum); display:block; font-weight:500; margin-bottom:.2em; }
.reviews__nav{ display:flex; gap:.8rem; justify-content:center; margin-top:2.8rem; }
.reviews__nav button{ width:46px; height:46px; border-radius:50%; border:1px solid var(--silver-line); display:grid; place-items:center; color:var(--plum); transition:.4s var(--ease); }
.reviews__nav button:hover{ background:var(--plum); color:#fff; border-color:var(--plum); }

/* ---------- Values ---------- */
.values{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; margin-top:3.2rem; }
.value{ padding:2.2rem 1.9rem; border:1px solid var(--lilac-line); border-radius:4px; background:#fff; }
.value__ico{ width:40px; height:40px; color:var(--orchid); margin-bottom:1.1rem; }
.value h3{ font-size:1.4rem; margin-bottom:.5rem; }
.value p{ font-size:.88rem; color:var(--platinum); }

/* ---------- Story ---------- */
.story{ background:linear-gradient(150deg,var(--plum-grad-a),var(--plum-deep)); color:#fff; overflow:hidden; }
.story__grid{ display:grid; grid-template-columns:1fr 1fr; min-height:560px; }
.story__media{ position:relative; }
.story__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.story__body{ padding:clamp(3rem,7vw,6.5rem); display:flex; flex-direction:column; justify-content:center; }
.story__body h2{ font-size:clamp(2.2rem,4.5vw,3.4rem); margin:.5em 0 .6em; color:#fff; }
.story__body p{ color:var(--muted-d); margin-bottom:1.2rem; max-width:48ch; }
.story__sign{ font-family:var(--display); font-style:italic; font-size:1.5rem; color:var(--rose); margin-top:1rem; }

/* ---------- Newsletter ---------- */
.join{ text-align:center; }
.join h2{ font-size:clamp(2.2rem,5vw,3.5rem); margin-bottom:.4em; color:#fff; }
.join p{ color:var(--muted-d); max-width:46ch; margin:0 auto 2.2rem; }
.join__form{ display:flex; gap:.8rem; max-width:480px; margin:0 auto; }
.join__form input{ flex:1; background:rgba(255,255,255,.06); border:1px solid var(--hair-d); color:#fff; padding:1.1em 1.3em; border-radius:2px; font-family:var(--sans); font-size:.85rem; letter-spacing:.04em; }
.join__form input::placeholder{ color:var(--muted-d); }
.join__form input:focus{ outline:none; border-color:var(--rose); }
.join small{ display:block; margin-top:1.3rem; font-size:.7rem; letter-spacing:.06em; color:var(--muted-d); }

/* ---------- Footer ---------- */
.footer{ background:var(--plum-deep); color:#fff; padding-block:clamp(3.5rem,6vw,5rem) 2.4rem; }
.footer__top{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:2.4rem; padding-bottom:3.2rem; border-bottom:1px solid var(--hair-d); }
.footer__brand img{ height:30px; margin-bottom:1.2rem; }
.footer__brand p{ color:var(--muted-d); font-size:.9rem; max-width:34ch; }
.footer h4{ font-family:var(--sans); font-size:.7rem; letter-spacing:.22em; text-transform:uppercase; color:var(--rose); margin-bottom:1.3rem; font-weight:500; }
.footer ul{ display:grid; gap:.75rem; }
.footer ul a{ color:var(--muted-d); font-size:.88rem; transition:color .3s; }
.footer ul a:hover{ color:#fff; }
.footer__bottom{ display:flex; justify-content:space-between; align-items:center; gap:1.5rem; flex-wrap:wrap; padding-top:2rem; }
.footer__bottom p{ font-size:.72rem; color:var(--muted-d); letter-spacing:.04em; }
.footer__pay{ display:flex; gap:.55rem; align-items:center; flex-wrap:wrap; }
.footer__pay span{ font-size:.58rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted-d); border:1px solid var(--hair-d); padding:.45em .7em; border-radius:2px; }
.footer__credit a{ color:var(--rose); }
.footer__credit a:hover{ text-decoration:underline; }

/* ---------- Reveal ---------- */
[data-reveal]{ opacity:0; transform:translateY(26px); transition:opacity 1s var(--ease), transform 1s var(--ease); }
[data-reveal].in{ opacity:1; transform:none; }
[data-reveal][data-delay="1"]{ transition-delay:.1s; }
[data-reveal][data-delay="2"]{ transition-delay:.2s; }
[data-reveal][data-delay="3"]{ transition-delay:.3s; }

/* ---------- Mobile menu ---------- */
.mobile-menu{ position:fixed; inset:0; z-index:80; background:var(--plum-deep); color:#fff; transform:translateX(100%); transition:transform .6s var(--ease); display:flex; flex-direction:column; padding:2rem var(--gutter); visibility:hidden; }
.mobile-menu.open{ transform:none; visibility:visible; }
.mobile-menu__head{ display:flex; justify-content:space-between; align-items:center; }
.mobile-menu__head img{ height:28px; }
.mobile-menu__close{ font-size:1.6rem; line-height:1; color:#fff; }
.mobile-menu nav{ display:grid; gap:.3rem; margin-top:12vh; }
.mobile-menu nav a{ font-family:var(--display); font-size:2.2rem; padding-block:.3em; border-bottom:1px solid var(--hair-d); }

/* ---------- Responsive ---------- */
@media (max-width:1080px){
  .footer__top{ grid-template-columns:1fr 1fr; }
  .footer__brand{ grid-column:1/-1; }
  .clinical-method{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:900px){
  .nav{ grid-template-columns:auto 1fr auto; }
  .nav__links, .nav__icon span{ display:none; }
  .burger{ display:block; }
  .feature, .science, .bio-grid, .story__grid{ grid-template-columns:1fr; }
  .story__media{ min-height:340px; }
  .trust__grid, .stats__grid{ grid-template-columns:1fr 1fr; }
  .trust__item:nth-child(odd), .stat:nth-child(odd){ border-left:none; }
  .trust__item, .stat{ border-top:1px solid var(--silver-line); }
  .stat{ border-top-color:var(--hair-d); }
  .trust__item:nth-child(1),.trust__item:nth-child(2),.stat:nth-child(1),.stat:nth-child(2){ border-top:none; }
  .ingredients, .range, .values, .clinical-results, .people{ grid-template-columns:1fr 1fr; }
  .ritual{ grid-template-columns:1fr; }
  .review{ flex-basis:100%; }
  .feature__badge{ left:0; }
}
@media (max-width:560px){
  .trust__grid, .stats__grid, .clinical-method, .ingredients, .range, .values, .clinical-results, .people{ grid-template-columns:1fr; }
  .trust__item, .stat{ border-left:none; }
  .person{ grid-template-columns:1fr; }
  .join__form{ flex-direction:column; }
  .hero{ min-height:84vh; }
}
@media (prefers-reduced-motion:reduce){ *{ animation:none !important; transition-duration:.001s !important; } html{ scroll-behavior:auto; } }

/* =====================================================================
   PRODUCT PAGE
   ===================================================================== */
.breadcrumb{ padding:1.4rem 0 .2rem; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--platinum); }
.breadcrumb a:hover{ color:var(--plum); }
.breadcrumb span{ color:var(--plum); }

.pdp{ display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(2.5rem,5vw,5rem); padding-top:2rem; align-items:start; }
.pdp__gallery{ position:sticky; top:96px; }
.pdp__main{ aspect-ratio:4/5; border-radius:4px; overflow:hidden; border:1px solid var(--silver-line); background:#fff; }
.pdp__main img{ width:100%; height:100%; object-fit:cover; }
.pdp__thumbs{ display:flex; gap:.7rem; margin-top:.8rem; }
.pdp__thumbs button{ flex:1; aspect-ratio:1; border-radius:3px; overflow:hidden; border:1px solid var(--silver-line); opacity:.6; transition:.3s var(--ease); }
.pdp__thumbs button.active,.pdp__thumbs button:hover{ opacity:1; border-color:var(--orchid); }
.pdp__thumbs img{ width:100%; height:100%; object-fit:cover; }

.pdp__cat{ font-size:.7rem; letter-spacing:.3em; text-transform:uppercase; color:var(--orchid); }
.pdp h1{ font-size:clamp(2.2rem,4vw,3.2rem); margin:.4rem 0 .5rem; }
.pdp__tag{ font-family:var(--display); font-style:italic; font-size:1.3rem; color:var(--platinum); margin-bottom:1.2rem; }
.pdp__rating{ display:flex; align-items:center; gap:.6em; margin-bottom:1.4rem; }
.pdp__rating .stars{ color:var(--orchid); letter-spacing:.12em; }
.pdp__rating span{ font-size:.74rem; color:var(--platinum); }
.pdp__price{ font-family:var(--display); font-size:2.2rem; color:var(--plum-deep); margin-bottom:1.4rem; }
.pdp__intro{ color:var(--ink); font-size:1.02rem; margin-bottom:1.6rem; }
.pdp__sizes{ margin-bottom:1.6rem; }
.pdp__sizes p{ font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:var(--platinum); margin-bottom:.6rem; }
.pdp__sizes .opts{ display:flex; gap:.6rem; }
.pdp__sizes button{ padding:.7em 1.4em; border:1px solid var(--silver-line); border-radius:3px; font-size:.8rem; letter-spacing:.06em; color:var(--ink); transition:.3s var(--ease); }
.pdp__sizes button.active{ border-color:var(--plum); background:var(--plum); color:#fff; }
.pdp__buy{ display:flex; gap:1rem; align-items:center; flex-wrap:wrap; margin-bottom:1.8rem; }
.pdp__buy .btn--plum{ flex:1; justify-content:center; min-width:200px; }
.pdp__list{ display:grid; gap:.8rem; margin:1.6rem 0; padding-top:1.6rem; border-top:1px solid var(--silver-line); }
.pdp__list li{ display:flex; gap:.8em; align-items:flex-start; font-size:.92rem; }
.pdp__list svg{ flex:none; width:17px; height:17px; margin-top:.25em; color:var(--orchid); }
.pdp__trust{ display:flex; gap:1.4rem; flex-wrap:wrap; padding-top:1.4rem; border-top:1px solid var(--silver-line); }
.pdp__trust span{ font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--platinum); display:flex; align-items:center; gap:.5em; }
.pdp__trust svg{ width:15px; height:15px; color:var(--orchid); }

/* ingredient list (pdp) */
.ing-list{ display:grid; grid-template-columns:1fr 1fr; gap:1.6rem 2.4rem; margin-top:3rem; }
.ing-list li{ border-top:1px solid var(--lilac-line); padding-top:1.2rem; }
.ing-list b{ font-family:var(--display); font-size:1.4rem; font-weight:500; color:var(--plum); display:block; margin-bottom:.3em; }
.ing-list span{ font-size:.92rem; color:var(--platinum); }

/* FAQ accordion */
.faq{ max-width:820px; margin:3rem auto 0; }
.faq__item{ border-bottom:1px solid var(--silver-line); }
.faq__q{ width:100%; text-align:left; display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.5rem 0; font-family:var(--display); font-size:1.35rem; color:var(--plum-deep); }
.faq__q .ico{ flex:none; width:22px; height:22px; position:relative; }
.faq__q .ico::before,.faq__q .ico::after{ content:""; position:absolute; background:var(--orchid); transition:.3s var(--ease); }
.faq__q .ico::before{ top:50%; left:0; width:100%; height:1.5px; transform:translateY(-50%); }
.faq__q .ico::after{ left:50%; top:0; height:100%; width:1.5px; transform:translateX(-50%); }
.faq__item.open .ico::after{ transform:translateX(-50%) scaleY(0); }
.faq__a{ max-height:0; overflow:hidden; transition:max-height .45s var(--ease); }
.faq__a p{ padding:0 0 1.5rem; color:var(--platinum); font-size:.98rem; max-width:68ch; }

@media (max-width:900px){
  .pdp{ grid-template-columns:1fr; }
  .pdp__gallery{ position:static; }
  .ing-list{ grid-template-columns:1fr; }
}

/* =====================================================================
   CART DRAWER
   ===================================================================== */
.cart-overlay{
  position:fixed; inset:0; z-index:90;
  background:rgba(43,26,43,.48); opacity:0; pointer-events:none;
  transition:opacity .45s var(--ease);
}
.cart-overlay.open{ opacity:1; pointer-events:auto; }

.cart-drawer{
  position:fixed; top:0; right:0; bottom:0; z-index:100;
  width:min(460px,100vw); background:var(--paper);
  display:flex; flex-direction:column;
  transform:translateX(100%); transition:transform .5s var(--ease);
  box-shadow:-24px 0 60px -20px rgba(43,26,43,.22);
}
.cart-drawer.open{ transform:none; }

.cart-drawer__head{
  display:flex; justify-content:space-between; align-items:center;
  padding:1.6rem 1.8rem; border-bottom:1px solid var(--silver-line);
}
.cart-drawer__head h2{ font-size:1.1rem; letter-spacing:.16em; text-transform:uppercase; font-family:var(--sans); font-weight:400; color:var(--plum-deep); }
.cart-drawer__close{ width:34px; height:34px; display:grid; place-items:center; border-radius:50%; font-size:1.1rem; color:var(--platinum); transition:background .3s,color .3s; }
.cart-drawer__close:hover{ background:var(--lilac-soft); color:var(--plum); }

#cartItems{
  flex:1; overflow-y:auto; padding:1.2rem 1.8rem;
}
.cart-empty{ text-align:center; padding:3rem 0; }
.cart-empty p{ color:var(--platinum); font-size:1rem; }

.cart-item{
  display:grid; grid-template-columns:76px 1fr auto;
  gap:1rem; align-items:start; padding:1.2rem 0;
  border-bottom:1px solid var(--silver-line);
}
.cart-item img{ width:76px; aspect-ratio:4/5; object-fit:cover; border-radius:3px; border:1px solid var(--silver-line); }
.cart-item__name{ font-family:var(--display); font-size:1.1rem; color:var(--plum-deep); margin-bottom:.2rem; }
.cart-item__size{ font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--platinum); }
.cart-item__price{ font-family:var(--display); font-size:1.1rem; color:var(--plum); margin-top:.4rem; }
.cart-item__right{ display:flex; flex-direction:column; align-items:flex-end; gap:.7rem; }
.cart-item__remove{ font-size:.75rem; color:var(--platinum); transition:color .3s; padding:.2em; }
.cart-item__remove:hover{ color:var(--plum); }

.cart-qty{ display:flex; align-items:center; border:1px solid var(--silver-line); border-radius:3px; overflow:hidden; }
.cart-qty span{ min-width:28px; text-align:center; font-size:.85rem; padding-block:.35em; }
.cart-qty__btn{ width:28px; height:28px; display:grid; place-items:center; font-size:1rem; color:var(--plum); transition:background .3s; }
.cart-qty__btn:hover{ background:var(--lilac-soft); }

#cartFooter{ padding:1.2rem 1.8rem 2rem; border-top:1px solid var(--silver-line); }
.cart-summary{ margin-bottom:1.2rem; }
.cart-summary__row{ display:flex; justify-content:space-between; font-size:.88rem; color:var(--platinum); padding:.3rem 0; }
.cart-summary__total{ display:flex; justify-content:space-between; font-family:var(--display); font-size:1.45rem; color:var(--plum-deep); padding-top:.9rem; margin-top:.5rem; border-top:1px solid var(--silver-line); }
.cart-free-del{ color:var(--orchid); font-weight:500; }
.cart-free-hint{ font-size:.68rem; letter-spacing:.08em; color:var(--orchid); margin-top:.3rem; }
.cart-actions{ display:flex; gap:.8rem; margin-top:1.4rem; }
.cart-actions .btn{ font-size:.66rem; padding:.95em 1.4em; }

/* =====================================================================
   CART PAGE
   ===================================================================== */
.cart-page{ padding-block:clamp(3rem,6vw,5rem); }
.cart-page h1{ font-size:clamp(2rem,4vw,3rem); margin-bottom:2.8rem; }
.cart-layout{ display:grid; grid-template-columns:1fr 360px; gap:3.2rem; align-items:start; }

.cart-table{}
.cart-table__head{ display:grid; grid-template-columns:1fr auto auto auto; gap:1rem; padding:.6rem 0 .8rem; border-bottom:1px solid var(--silver-line); font-size:.64rem; letter-spacing:.2em; text-transform:uppercase; color:var(--platinum); }
.cart-table__head :first-child{ grid-column:span 1; }

.cart-row{ display:grid; grid-template-columns:88px 1fr auto auto auto; gap:1rem; align-items:center; padding:1.4rem 0; border-bottom:1px solid var(--silver-line); }
.cart-row img{ width:88px; aspect-ratio:4/5; object-fit:cover; border-radius:3px; border:1px solid var(--silver-line); }
.cart-row__info h3{ font-family:var(--display); font-size:1.2rem; color:var(--plum-deep); }
.cart-row__info p{ font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--platinum); margin-top:.25rem; }
.cart-row__price{ font-family:var(--display); font-size:1.1rem; color:var(--ink); text-align:center; }
.cart-row__total{ font-family:var(--display); font-size:1.2rem; color:var(--plum-deep); text-align:right; }
.cart-row__remove{ color:var(--platinum); font-size:.75rem; padding:.3em; transition:color .3s; background:none; }
.cart-row__remove:hover{ color:var(--plum); }

.cart-aside{
  position:sticky; top:108px;
  background:#fff; border:1px solid var(--silver-line); border-radius:4px;
  padding:2rem;
}
.cart-aside h3{ font-size:1rem; letter-spacing:.16em; text-transform:uppercase; font-family:var(--sans); margin-bottom:1.4rem; }
.cart-aside-row{ display:flex; justify-content:space-between; font-size:.9rem; color:var(--platinum); padding:.4rem 0; }
.cart-aside-total{ display:flex; justify-content:space-between; font-family:var(--display); font-size:1.5rem; color:var(--plum-deep); padding-top:1rem; margin-top:.5rem; border-top:1px solid var(--silver-line); }
.cart-aside .btn{ width:100%; justify-content:center; margin-top:1.4rem; }
.cart-delivery-note{ font-size:.7rem; letter-spacing:.06em; color:var(--orchid); margin-top:.8rem; text-align:center; }

.cart-empty-page{ text-align:center; padding:6rem 0; }
.cart-empty-page p{ color:var(--platinum); font-size:1.1rem; margin-bottom:2rem; }

@media(max-width:900px){
  .cart-layout{ grid-template-columns:1fr; }
  .cart-aside{ position:static; }
  .cart-table__head{ display:none; }
  .cart-row{ grid-template-columns:76px 1fr auto; grid-template-rows:auto auto; gap:.8rem; }
  .cart-row__price{ display:none; }
  .cart-row__total{ grid-column:2; grid-row:2; text-align:left; }
  .cart-row__remove{ grid-column:3; grid-row:1; }
}

/* =====================================================================
   CHECKOUT
   ===================================================================== */
.checkout-page{ padding-block:clamp(3rem,6vw,5rem); }
.checkout-page h1{ font-size:clamp(1.8rem,3.5vw,2.6rem); margin-bottom:2.8rem; }
.checkout-layout{ display:grid; grid-template-columns:1fr 380px; gap:3.2rem; align-items:start; }

.checkout-form section{ margin-bottom:2.4rem; }
.checkout-form h2{ font-family:var(--sans); font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--plum); margin-bottom:1.2rem; padding-bottom:.7rem; border-bottom:1px solid var(--silver-line); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.form-row.single{ grid-template-columns:1fr; }
.form-group{ display:flex; flex-direction:column; gap:.4rem; margin-bottom:1rem; }
.form-group label{ font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--platinum); }
.form-group input, .form-group select{
  padding:.85em 1em; border:1px solid var(--silver-line); border-radius:3px;
  font-family:var(--sans); font-size:.9rem; color:var(--ink); background:#fff;
  transition:border-color .3s;
}
.form-group input:focus, .form-group select:focus{ outline:none; border-color:var(--orchid); }
.form-group input.error{ border-color:#c0392b; }

.checkout-aside{
  position:sticky; top:108px;
  background:#fff; border:1px solid var(--silver-line); border-radius:4px;
  padding:2rem;
}
.checkout-aside h3{ font-family:var(--sans); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; margin-bottom:1.4rem; }
.order-item{ display:flex; gap:1rem; align-items:center; padding:.9rem 0; border-bottom:1px solid var(--silver-line); }
.order-item img{ width:56px; aspect-ratio:4/5; object-fit:cover; border-radius:3px; border:1px solid var(--silver-line); position:relative; }
.order-item__badge{ position:relative; }
.order-item__badge::after{ content:attr(data-qty); position:absolute; top:-8px; right:-8px; background:var(--plum); color:#fff; font-size:.58rem; width:18px; height:18px; border-radius:50%; display:grid; place-items:center; font-family:var(--sans); }
.order-item__info{ flex:1; }
.order-item__name{ font-family:var(--display); font-size:1rem; color:var(--plum-deep); }
.order-item__size{ font-size:.65rem; letter-spacing:.12em; text-transform:uppercase; color:var(--platinum); }
.order-item__price{ font-family:var(--display); font-size:1rem; color:var(--plum-deep); }
.order-summary-row{ display:flex; justify-content:space-between; font-size:.88rem; color:var(--platinum); padding:.4rem 0; }
.order-summary-total{ display:flex; justify-content:space-between; font-family:var(--display); font-size:1.4rem; color:var(--plum-deep); padding-top:.9rem; margin-top:.5rem; border-top:1px solid var(--silver-line); }

.checkout-submit{ margin-top:2rem; }
.checkout-submit .btn{ width:100%; justify-content:center; padding:1.3em; }
.checkout-submit p{ font-size:.68rem; color:var(--platinum); text-align:center; margin-top:.9rem; letter-spacing:.04em; }
.form-error{ background:#fff0f0; border:1px solid #e0b0b0; border-radius:3px; padding:.9em 1.1em; font-size:.84rem; color:#c0392b; margin-bottom:1.4rem; display:none; }
.form-error.show{ display:block; }

@media(max-width:900px){
  .checkout-layout{ grid-template-columns:1fr; }
  .checkout-aside{ position:static; order:-1; }
  .form-row{ grid-template-columns:1fr; }
}

/* =====================================================================
   ORDER CONFIRMATION
   ===================================================================== */
.confirm-page{ min-height:60vh; display:flex; align-items:center; justify-content:center; padding:clamp(3rem,6vw,6rem) var(--gutter); }
.confirm-card{ max-width:680px; width:100%; background:#fff; border:1px solid var(--silver-line); border-radius:4px; padding:clamp(2rem,5vw,4rem); text-align:center; }
.confirm-check{ width:64px; height:64px; border-radius:50%; background:linear-gradient(140deg,var(--lilac),var(--orchid)); display:grid; place-items:center; color:#fff; font-size:1.6rem; margin:0 auto 1.8rem; }
.confirm-ref{ font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--platinum); margin-bottom:1.8rem; }
.confirm-ref span{ color:var(--plum); font-weight:500; }
.confirm-card h1{ font-size:clamp(1.8rem,3.5vw,2.6rem); margin-bottom:.6rem; }
.confirm-card > p{ color:var(--platinum); margin-bottom:1.6rem; }
.confirm-items{ text-align:left; border:1px solid var(--silver-line); border-radius:3px; margin:2rem 0; overflow:hidden; }
.confirm-item{ display:flex; gap:1rem; align-items:center; padding:1rem 1.2rem; border-bottom:1px solid var(--silver-line); }
.confirm-item:last-child{ border-bottom:none; }
.confirm-item img{ width:52px; aspect-ratio:4/5; object-fit:cover; border-radius:3px; }
.confirm-item__info{ flex:1; }
.confirm-item__name{ font-family:var(--display); font-size:1rem; color:var(--plum-deep); }
.confirm-item__meta{ font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--platinum); margin-top:.2rem; }
.confirm-item__price{ font-family:var(--display); font-size:1rem; color:var(--plum-deep); }
.confirm-total{ display:flex; justify-content:space-between; font-family:var(--display); font-size:1.3rem; color:var(--plum-deep); padding-top:1rem; }
.confirm-address{ background:var(--lilac-soft); border-radius:3px; padding:1.2rem 1.4rem; text-align:left; margin-bottom:2rem; font-size:.9rem; color:var(--ink); line-height:1.8; }
.confirm-address strong{ display:block; font-family:var(--sans); font-size:.64rem; letter-spacing:.18em; text-transform:uppercase; color:var(--orchid); margin-bottom:.4rem; }

/* =====================================================================
   LUXE ELEVATION  —  hyper-premium refinements (La Mer / Augustinus Bader tier)
   ===================================================================== */

/* ---- More air, finer rhythm ---- */
:root{ --gutter: clamp(22px, 5.5vw, 96px); }
.section{ padding-block:clamp(5.5rem,11vw,11rem); }

/* ---- Finer, more editorial type ---- */
.display, h1, h2, h3{ font-weight:400; letter-spacing:-.01em; }
.eyebrow{ font-size:.66rem; letter-spacing:.46em; }
.section-head h2{ line-height:1.06; }
.lede{ font-weight:300; }

/* ---- Hairline announcement, calmer ---- */
.announce{ font-size:.6rem; letter-spacing:.34em; padding:.85em 1em; background:var(--plum-deep); }
.announce__track i{ color:var(--rose); opacity:.8; }

/* ---- Buttons: slimmer, more couture ---- */
.btn{ font-size:.66rem; letter-spacing:.28em; padding:1.25em 2.4em; border-radius:1px; }
.btn--plum:hover{ box-shadow:0 22px 50px -22px rgba(75,10,69,.6); }

/* ---- Header: airier, finer rule ---- */
.nav{ padding-block:1.5rem; }
.nav__links a, .nav__icon{ font-size:.68rem; letter-spacing:.2em; }
.brand-logo img{ height:38px; }
.header.scrolled .brand-logo img{ height:32px; }

/* =====================================================================
   FULL-BLEED CINEMATIC HERO
   ===================================================================== */
.hero{ min-height:100vh; }
.hero__media img{ object-position:center center; transform:scale(1.08); }
.hero__media::after{
  background:linear-gradient(95deg,
    rgba(251,250,252,.97) 0%,
    rgba(251,250,252,.82) 28%,
    rgba(251,250,252,.34) 52%,
    rgba(246,238,246,.08) 74%,
    rgba(246,238,246,.18) 100%);
}
.hero__inner{ max-width:640px; padding-block:10vh; }
.hero .eyebrow{ position:relative; padding-left:62px; }
.hero .eyebrow::before{
  content:""; position:absolute; left:0; top:50%; width:46px; height:1px;
  background:var(--orchid); transform:translateY(-50%);
}
.hero h1{ font-size:clamp(3.2rem,7vw,6.4rem); font-weight:400; letter-spacing:-.018em; line-height:1; }
.hero p{ font-size:1.12rem; line-height:1.8; max-width:44ch; }

/* =====================================================================
   FULL-BLEED EDITORIAL BAND  (cinematic image + overlaid statement)
   ===================================================================== */
.cinematic{
  position:relative; min-height:clamp(440px,72vh,760px);
  display:flex; align-items:center; justify-content:center;
  overflow:hidden; isolation:isolate;
}
.cinematic__img{ position:absolute; inset:0; z-index:-2; }
.cinematic__img img{ width:100%; height:100%; object-fit:cover; }
.cinematic::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:radial-gradient(ellipse at center, rgba(35,12,33,.28), rgba(35,12,33,.52));
}
.cinematic--light::after{ background:linear-gradient(180deg, rgba(251,250,252,.12), rgba(251,250,252,.40)); }
.cinematic__inner{ text-align:center; max-width:840px; padding:4rem var(--gutter); color:#fff; }
.cinematic--light .cinematic__inner{ color:var(--plum-deep); }
.cinematic__inner .eyebrow{ color:var(--rose); }
.cinematic--light .cinematic__inner .eyebrow{ color:var(--orchid); }
.cinematic__inner h2{
  font-family:var(--display); font-weight:400; color:inherit;
  font-size:clamp(2rem,4.6vw,3.9rem); line-height:1.16; letter-spacing:-.01em;
  margin:.5em 0 .55em;
}
.cinematic__inner h2 em{ font-style:italic; color:var(--rose); }
.cinematic--light .cinematic__inner h2 em{ color:var(--orchid); }
.cinematic__inner p{ font-size:1.06rem; line-height:1.8; max-width:56ch; margin-inline:auto; color:rgba(255,255,255,.82); font-weight:300; }
.cinematic--light .cinematic__inner p{ color:var(--platinum); }
.cinematic__rule{ width:54px; height:1px; background:currentColor; opacity:.5; margin:0 auto 2rem; }

/* slow parallax-ish drift */
.cinematic__img img{ transform:scale(1.06); transition:transform 1.4s var(--ease); }

/* ---- Feature product: lift it, premium framing ---- */
.feature__media img{ aspect-ratio:4/5; box-shadow:0 50px 90px -50px rgba(43,16,43,.5); }
.feature__badge{ box-shadow:0 40px 70px -40px rgba(75,10,69,.5); }

/* ---- Story image (premium product portrait) ---- */
.story__media img{ filter:saturate(1.02); }

@media(max-width:900px){
  .hero{ min-height:88vh; }
  .hero .eyebrow{ padding-left:0; }
  .hero .eyebrow::before{ display:none; }
  .cinematic{ min-height:clamp(380px,60vh,520px); }
}

/* =====================================================================
   NAVIGATION v2  —  refined header + Shop mega-menu
   ===================================================================== */
.nav__links a{ display:inline-flex; align-items:center; gap:.4em; }
.nav-shop{ position:static; }
.nav-shop > a .caret{ width:8px; height:8px; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:rotate(45deg) translateY(-1px); transition:transform .4s var(--ease); opacity:.7; }
.nav-shop:hover > a .caret, .nav-shop:focus-within > a .caret{ transform:rotate(225deg) translateY(-2px); }

/* full-width dropdown panel */
.mega{
  position:absolute; left:0; right:0; top:100%;
  background:rgba(251,250,252,.98); -webkit-backdrop-filter: saturate(140%) blur(16px); backdrop-filter:saturate(140%) blur(16px);
  border-top:1px solid var(--silver-line); border-bottom:1px solid var(--silver-line);
  box-shadow:0 40px 60px -40px rgba(43,16,43,.28);
  opacity:0; visibility:hidden; transform:translateY(-10px);
  transition:opacity .4s var(--ease), transform .4s var(--ease), visibility .4s;
  z-index:55;
}
.nav-shop:hover .mega, .nav-shop:focus-within .mega{ opacity:1; visibility:visible; transform:none; }
.mega__inner{ max-width:var(--container); margin:0 auto; padding:2.6rem var(--gutter) 2.8rem; display:grid; grid-template-columns:.85fr 3fr; gap:3rem; align-items:start; }
.mega__intro .eyebrow{ margin-bottom:.7rem; }
.mega__intro h3{ font-family:var(--display); font-weight:400; font-size:1.8rem; line-height:1.1; color:var(--plum-deep); margin-bottom:1rem; }
.mega__intro p{ font-size:.86rem; color:var(--platinum); margin-bottom:1.4rem; }
.mega__intro a.mega__all{ font-size:.66rem; letter-spacing:.22em; text-transform:uppercase; color:var(--orchid); border-bottom:1px solid var(--lilac); padding-bottom:.3em; }
.mega__intro a.mega__all:hover{ border-color:var(--orchid); }
.mega__grid{ display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:1.1rem; }
.mega .mega__card{ display:block; text-align:left; min-width:0; }
.mega__card .thumb{ width:100%; aspect-ratio:4/5; border-radius:3px; overflow:hidden; border:1px solid var(--silver-line); background:#fff; margin-bottom:.7rem; }
.mega__card .thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.mega__card:hover .thumb img{ transform:scale(1.06); }
.mega__card .mname{ font-family:var(--display); font-size:1.02rem; color:var(--plum-deep); line-height:1.15; }
.mega__card .mprice{ font-size:.72rem; letter-spacing:.08em; color:var(--platinum); margin-top:.2rem; }
@media(max-width:1100px){ .mega__grid{ grid-template-columns:repeat(3,1fr); } .mega__inner{ grid-template-columns:1fr; gap:1.8rem; } }

/* =====================================================================
   ATP RING v2  —  animated SVG progress, clear two-line label
   ===================================================================== */
.atp{ position:relative; width:clamp(220px,28vw,300px); aspect-ratio:1; display:grid; place-items:center; margin:0 auto; }
.atp__svg{ position:absolute; inset:0; width:100%; height:100%; transform:rotate(-90deg); overflow:visible; }
.atp__track{ fill:none; stroke:rgba(245,240,247,.16); stroke-width:3; }
.atp__prog{
  fill:none; stroke:url(#atpGrad); stroke-width:3; stroke-linecap:round;
  stroke-dasharray:540.35; stroke-dashoffset:540.35;
  transition:stroke-dashoffset 2s var(--ease);
}
.atp.in .atp__prog{ stroke-dashoffset:189; }   /* 65% fill */
.atp__halo{ position:absolute; inset:14%; border-radius:50%; background:radial-gradient(circle at 50% 42%, rgba(224,163,196,.22), transparent 62%); }
.atp__core{ position:relative; z-index:2; text-align:center; }
.atp__num{ font-family:var(--display); font-size:clamp(3.2rem,6.4vw,4.8rem); color:#fff; line-height:.9; font-weight:400; }
.atp__num small{ font-size:.42em; color:var(--rose); margin-left:.04em; }
.atp__label{ margin-top:1rem; font-size:.62rem; letter-spacing:.24em; text-transform:uppercase; color:var(--muted-d); line-height:1.5; }
.atp__label em{ display:block; font-style:normal; color:var(--rose); letter-spacing:.2em; margin-top:.35em; }

/* =====================================================================
   REAL PEOPLE  —  real photography
   ===================================================================== */
.person__photo{ width:88px; height:88px; border-radius:50%; overflow:hidden; border:1px solid var(--silver-line); flex:none; }
.person__photo img{ width:100%; height:100%; object-fit:cover; object-position:center top; }
.person{ align-items:start; }

/* =====================================================================
   LIFESTYLE BAND CTA  (drive orders)
   ===================================================================== */
.cinematic__cta{ margin-top:2.2rem; display:inline-flex; }
.cinematic .btn--light{ border-color:rgba(255,255,255,.6); }

/* =====================================================================
   STICKY MOBILE ORDER BAR  (PDP)
   ===================================================================== */
.buybar{
  position:fixed; left:0; right:0; bottom:0; z-index:70;
  display:none; align-items:center; gap:1rem;
  padding:.8rem 1.1rem calc(.8rem + env(safe-area-inset-bottom));
  background:rgba(251,250,252,.97); -webkit-backdrop-filter: saturate(140%) blur(14px); backdrop-filter:saturate(140%) blur(14px);
  border-top:1px solid var(--silver-line);
  transform:translateY(110%); transition:transform .45s var(--ease);
}
.buybar.show{ transform:none; }
.buybar__info{ flex:1; min-width:0; }
.buybar__name{ font-family:var(--display); font-size:1.05rem; color:var(--plum-deep); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.buybar__price{ font-size:.78rem; color:var(--platinum); letter-spacing:.04em; }
.buybar .btn{ padding:1em 1.6em; white-space:nowrap; }

/* =====================================================================
   MOBILE FINE-TUNING  —  flow, CTAs, no cut-off product imagery
   ===================================================================== */
@media(max-width:900px){
  /* keep the hero jar in frame, never cropped out */
  .hero__media img{ object-position:62% center; }
  .hero__inner{ padding-block:7vh; }
  .hero h1{ font-size:clamp(2.7rem,11vw,3.8rem); }

  /* product & feature imagery: show the whole product */
  .feature__media img{ aspect-ratio:4/5; object-fit:cover; object-position:center; }
  .product__media{ aspect-ratio:4/5; }
  .story__grid{ min-height:0; }
  .story__media{ min-height:380px; }
  .story__media img{ object-position:center; }

  /* roomier tap targets / CTAs */
  .btn{ padding:1.15em 2rem; }
  .hero__cta .btn, .feature__buy .btn{ width:100%; justify-content:center; }
  .hero__cta, .feature__buy{ width:100%; }

  /* mega menu lives in the mobile menu instead */
  .mega{ display:none; }
}
@media(max-width:560px){
  .range{ grid-template-columns:1fr 1fr; gap:1rem; }
  .product h3{ font-size:1.2rem; }
  .product__stat{ font-size:.6rem; }
  .people{ grid-template-columns:1fr; }
  .buybar__price{ display:none; }
}

/* show the sticky buy bar only where a product is in play, on small screens */
@media(max-width:760px){
  body.pdp-page .buybar{ display:flex; }
}

/* ---- Mobile menu: scrollable + shoppable collection ---- */
.mobile-menu{ overflow-y:auto; }
.mobile-menu nav{ margin-top:8vh; }
.mobile-menu nav a{ font-size:1.9rem; }
.mobile-shop{ margin-top:2.2rem; padding-top:2rem; border-top:1px solid var(--hair-d); }
.mobile-shop .eyebrow{ margin-bottom:1.2rem; display:block; }
.mobile-shop__list{ display:grid; gap:.1rem; }
.mobile-shop__list a{
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
  font-family:var(--display); font-size:1.25rem; color:#fff;
  padding:.7em 0; border-bottom:1px solid var(--hair-d);
}
.mobile-shop__list a span{ font-family:var(--sans); font-size:.8rem; color:var(--rose); letter-spacing:.04em; }

/* =====================================================================
   SOCIAL ICONS (footer)
   ===================================================================== */
.footer__social{ display:flex; gap:.7rem; margin-top:1.5rem; }
.footer__social a{ width:40px; height:40px; border:1px solid var(--hair-d); border-radius:50%; display:grid; place-items:center; color:var(--muted-d); transition:transform .4s var(--ease), background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease); }
.footer__social a:hover{ background:var(--rose); color:var(--plum-deep); border-color:var(--rose); transform:translateY(-3px); }
.footer__social svg{ width:18px; height:18px; }

/* =====================================================================
   UGC / SOCIAL SHOWCASE  —  mobile-first, video-ready
   ===================================================================== */
.ugc-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:.6rem; margin-top:3.2rem; }
.ugc-tile{ position:relative; aspect-ratio:1; overflow:hidden; border-radius:4px; display:block; background:var(--lilac-soft); border:1px solid var(--silver-line); }
.ugc-tile img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.ugc-tile:hover img{ transform:scale(1.07); }
.ugc-tile::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 52%,rgba(43,16,43,.45)); opacity:0; transition:opacity .45s var(--ease); }
.ugc-tile:hover::after{ opacity:1; }
.ugc-tile__ig{ position:absolute; right:.7rem; bottom:.7rem; width:24px; height:24px; color:#fff; opacity:0; transform:translateY(8px); transition:.45s var(--ease); z-index:3; }
.ugc-tile:hover .ugc-tile__ig{ opacity:1; transform:none; }
.ugc-tile__handle{ position:absolute; left:.8rem; bottom:.7rem; color:#fff; font-size:.66rem; letter-spacing:.08em; opacity:0; transform:translateY(8px); transition:.45s var(--ease); z-index:3; }
.ugc-tile:hover .ugc-tile__handle{ opacity:1; transform:none; }
.ugc-tile__play{ position:absolute; inset:0; display:grid; place-items:center; z-index:2; pointer-events:none; }
.ugc-tile__play span{ width:54px; height:54px; border-radius:50%; background:rgba(255,255,255,.82); -webkit-backdrop-filter: blur(4px); backdrop-filter:blur(4px); display:grid; place-items:center; transition:transform .45s var(--ease), background .45s var(--ease); }
.ugc-tile__play span::before{ content:""; width:0; height:0; border-left:15px solid var(--plum); border-top:9px solid transparent; border-bottom:9px solid transparent; margin-left:4px; }
.ugc-tile--video:hover .ugc-tile__play span{ transform:scale(1.12); background:#fff; }
.ugc-tag{ display:inline-flex; align-items:center; gap:.5em; margin-top:1rem; font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--orchid); }
.ugc-cta{ text-align:center; margin-top:2.6rem; }
@media(min-width:680px){ .ugc-grid{ grid-template-columns:repeat(3,1fr); } }
@media(min-width:1000px){ .ugc-grid{ grid-template-columns:repeat(6,1fr); gap:.7rem; } }

/* =====================================================================
   MOBILE DESIGN FIXES  —  stacked hero (no overlap / no cropped product) + 2×2 stats
   ===================================================================== */
@media(max-width:760px){
  /* Hero: image becomes a band on top, copy sits below on solid ground */
  .hero{ min-height:0; display:block; background:linear-gradient(180deg,#f6eef6 0%, #fbfafc 60%); }
  .hero__media{ position:relative; inset:auto; width:100%; height:44vh; min-height:300px; border-bottom:1px solid var(--silver-line); }
  .hero__media img{ opacity:1; transform:none; object-position:80% center; }
  .hero__media::after{ display:none; }
  .hero .container{ padding-block:0; }
  .hero__inner{ max-width:none; padding:2.4rem 0 2.8rem; }
  .hero h1{ font-size:clamp(2.6rem,10vw,3.7rem); margin:.2em 0 .5em; }
  .hero p{ max-width:none; margin-bottom:1.9rem; color:var(--platinum); }
  .hero__scroll{ display:none; }

  /* Stats: clean 2×2 instead of a tall single column */
  .stats__grid{ grid-template-columns:1fr 1fr; }
  .stat{ padding:2.3rem 1rem; border-left:none; border-top:none; }
  .stat:nth-child(even){ border-left:1px solid var(--hair-d); }
  .stat:nth-child(n+3){ border-top:1px solid var(--hair-d); }

  /* Trust bar: 2×2 to match */
  .trust__grid{ grid-template-columns:1fr 1fr; }
  .trust__item{ border-left:none; border-top:none; padding:1.4rem 1rem; }
  .trust__item:nth-child(even){ border-left:1px solid var(--silver-line); }
  .trust__item:nth-child(n+3){ border-top:1px solid var(--silver-line); }
}
@media(max-width:560px){
  .stats__grid{ grid-template-columns:1fr 1fr; }
  .trust__grid{ grid-template-columns:1fr 1fr; }
}

/* =====================================================================
   REBUILD v4  —  high-end refinement: menu fix, nav, type, cinematic
   ===================================================================== */

/* ---- Nav: cleaner, icon-only utilities, more air ---- */
.nav__right .nav__icon span:not(.cart-count){ display:none; }
.nav__icon svg{ width:20px; height:20px; }
.nav__links{ gap:2.7rem; }
.nav__links a{ font-size:.7rem; letter-spacing:.2em; }
.header{ background:rgba(251,250,252,.72); }
.header.scrolled{ background:rgba(251,250,252,.96); }

/* ---- Mega-menu: FIXED — 4 generous columns, readable serif names ---- */
.mega__inner{ grid-template-columns:.78fr 2.7fr; gap:3.6rem; padding:3rem var(--gutter) 3.4rem; }
.mega__grid{ grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.7rem; }
.mega .mega__card .thumb{ aspect-ratio:4/5; }
.mega__card .mname{ font-size:1.18rem; line-height:1.18; margin-top:.5rem; }
.mega__card .mprice{ font-size:.8rem; letter-spacing:.06em; margin-top:.3rem; }
.mega__intro h3{ font-size:2.1rem; line-height:1.08; }
.mega__intro p{ font-size:.9rem; }
@media(max-width:1100px){
  .mega__inner{ grid-template-columns:1fr; gap:1.8rem; }
  .mega__grid{ grid-template-columns:repeat(4,minmax(0,1fr)); }
}

/* ---- Type: more confident scale, more air ---- */
.section{ padding-block:clamp(6rem,12vw,12rem); }
.eyebrow{ font-size:.64rem; letter-spacing:.48em; }
.section-head h2{ font-size:clamp(2.5rem,5.2vw,4.2rem); letter-spacing:-.018em; line-height:1.04; }
.section-head p{ font-size:1.04rem; line-height:1.8; }
.lede{ line-height:1.78; }

/* ---- Hero: refined overlay so the headline sits on a clean field ---- */
.hero__media::after{
  background:linear-gradient(95deg,
    rgba(251,250,252,.99) 0%, rgba(251,250,252,.92) 26%,
    rgba(251,250,252,.55) 48%, rgba(246,238,246,.12) 72%, rgba(246,238,246,.16) 100%);
}
.hero h1{ font-size:clamp(3.4rem,7.4vw,6.6rem); }

/* ---- Product cards: premium framing for the new marble scenes ---- */
.product__media{ border:1px solid var(--lilac-line); background:linear-gradient(165deg,#fff,var(--lilac-soft)); }
.product:hover .product__media{ border-color:var(--lilac); box-shadow:0 34px 60px -40px rgba(75,10,69,.3); }
.product h3{ font-size:1.5rem; margin-top:.1rem; }
.range{ gap:2rem; }

/* ---- Feature product: more cinematic ---- */
.feature__media img{ box-shadow:0 60px 100px -55px rgba(43,16,43,.55); }

/* ---- Real People: refined monogram avatars (no stock photos) ---- */
.person__mono{ width:60px; height:60px; border-radius:50%; flex:none; display:grid; place-items:center;
  font-family:var(--display); font-size:1.5rem; color:var(--plum);
  border:1px solid var(--lilac); background:var(--lilac-soft); }

/* ---- Section divider hairline for rhythm ---- */
.section--white + .section--white{ border-top:1px solid var(--silver-line); }

/* ---- Cinematic band: left-aligned variant (text opposite the subject) ---- */
.cinematic--left{ justify-content:flex-start; }
.cinematic--left .cinematic__inner{ text-align:left; margin:0; max-width:540px; }
.cinematic--left .cinematic__rule{ margin-left:0; }
.cinematic--left::after{ background:linear-gradient(90deg, rgba(35,12,33,.62) 0%, rgba(35,12,33,.34) 40%, rgba(35,12,33,.04) 70%, transparent 100%); }
.cinematic--left .cinematic__inner p{ color:rgba(255,255,255,.86); margin-inline:0; max-width:48ch; }
@media(max-width:760px){
  .cinematic--left{ justify-content:center; }
  .cinematic--left .cinematic__inner{ text-align:center; max-width:none; }
  .cinematic--left .cinematic__inner p{ margin-inline:auto; }
  .cinematic--left .cinematic__rule{ margin-inline:auto; }
  .cinematic--left::after{ background:linear-gradient(180deg, rgba(35,12,33,.25), rgba(35,12,33,.55)); }
}

/* =====================================================================
   MOBILE RHYTHM TIGHTEN (v=e)  —  kill the oversized gaps on phones
   ===================================================================== */
@media(max-width:760px){
  .section{ padding-block:3.4rem; }
  .section--plum, .section--lilac{ padding-block:3.6rem; }
  .section-head h2{ font-size:clamp(2.1rem,8vw,2.7rem); }
  .section-head{ margin-bottom:.5rem; }
  .section-head p{ font-size:.96rem; }
  /* snappier reveals so content keeps up with a fast scroll */
  [data-reveal]{ transition:opacity .55s var(--ease), transform .55s var(--ease); transform:translateY(16px); }
  [data-reveal][data-delay="1"],[data-reveal][data-delay="2"],[data-reveal][data-delay="3"]{ transition-delay:.05s; }
  /* tighten the big editorial paddings */
  .story__body{ padding:3.2rem var(--gutter); }
  .join{ }
  .cinematic{ min-height:clamp(360px,56vh,460px); }
}
@media(max-width:560px){
  .section{ padding-block:3rem; }
}

/* =====================================================================
   REFINEMENT PASS (v=f)  —  Dom's homepage notes
   ===================================================================== */

/* ---- Section-head paragraphs: let them run wider, to the section edge ---- */
.section-head{ max-width:980px; }
.section-head p{ max-width:72ch; }

/* ---- Clinical method boxes: centred ---- */
.method{ text-align:center; }

/* ---- ATP ring: keep the 65% + label tidy INSIDE the circle ---- */
.atp__core{ width:78%; }
.atp__num{ line-height:.92; }
.atp__label{ margin-top:.7rem; font-size:.58rem; letter-spacing:.18em; line-height:1.45; }
.atp__label em{ letter-spacing:.14em; margin-top:.3em; }
@media(max-width:760px){
  .atp{ width:240px; }
  .atp__num{ font-size:3.4rem; }
  .atp__label{ font-size:.55rem; letter-spacing:.14em; }
  .atp__core{ width:82%; }
}

/* ---- Ingredient cards: centred, number in a brand circle ---- */
.ing-card{ text-align:center; }
.ing-card__num{
  display:inline-grid; place-items:center; width:54px; height:54px; border-radius:50%;
  background:var(--plum); color:#fff; font-family:var(--display); font-size:1.4rem;
  letter-spacing:0; margin:0 auto .9rem; line-height:1;
}
.ing-card .latin{ display:block; }

/* ---- Cinematic LEFT band: keep text within the page margins on wide screens ---- */
.cinematic--left .cinematic__inner{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter); }
.cinematic--left .cinematic__inner > *{ max-width:540px; }

/* ---- Parallax band (image fixed, content scrolls over) ---- */
.cinematic--parallax{ background-size:cover; background-position:center 30%; background-attachment:fixed; background-repeat:no-repeat; }
.cinematic--parallax .cinematic__img{ display:none; }
@media(hover:none), (max-width:760px){ .cinematic--parallax{ background-attachment:scroll; } }

/* ---- What We Believe: centred icons + titles ---- */
.value{ text-align:center; }
.value__ico{ margin-inline:auto; }

/* ---- Join / newsletter: light grey, lift it off the plum + footer ---- */
.section--plum.join{ background:linear-gradient(180deg,#f4f2f6,#eceaf1); }
.join h2{ color:var(--plum-deep); }
.join .eyebrow.light{ color:var(--orchid); }
.join p{ color:var(--platinum); }
.join .join__form input{ background:#fff; border-color:var(--silver-line); color:var(--ink); }
.join .join__form input::placeholder{ color:var(--platinum); }
.join .btn--light{ border-color:var(--plum); color:var(--plum); }
.join .btn--light:hover{ background:var(--plum); color:#fff; }
.join small{ color:var(--platinum); }

/* ---- Product card images: ensure crisp, correctly-fitted ---- */
.product__media img{ object-fit:cover; object-position:center; image-rendering:auto; }
.product__media{ background:#fff; }

/* ---- Collection cards: CRISP — rendered straight from the high-res source, no raster upscale ----
   (the previous transform:scale magnified the rendered bitmap and made the bottle text look fake) */
.range .product__media{ overflow:hidden; }
.range .product__media img{ width:100%; height:100%; object-fit:cover; object-position:center 45%; transition:transform .9s var(--ease); image-rendering:auto; }
.range .product:hover .product__media img{ transform:scale(1.04); }

/* =====================================================================
   PRESS  —  "As featured in" logo strip
   ===================================================================== */
.press{ background:#fff; border-bottom:1px solid var(--silver-line); padding-block:clamp(2.4rem,4vw,3.4rem); }
.press__label{ text-align:center; font-size:.6rem; letter-spacing:.36em; text-transform:uppercase; color:var(--platinum); margin-bottom:1.7rem; }
.press__logos{ display:flex; align-items:center; justify-content:center; gap:clamp(1.8rem,6vw,5rem); flex-wrap:wrap; color:#26222a; }
.press-logo{ opacity:.62; transition:opacity .45s var(--ease); white-space:nowrap; }
.press-logo:hover{ opacity:1; }
.press-logo--serif{ font-family:var(--display); font-weight:500; }
.press-logo--vogue{ font-size:clamp(1.5rem,3vw,2.1rem); letter-spacing:.14em; }
.press-logo--elle{ font-size:clamp(1.5rem,3vw,2.1rem); letter-spacing:.28em; }
.press-logo--times{ font-size:clamp(.95rem,1.8vw,1.25rem); letter-spacing:.05em; line-height:1.05; }
.press-logo--itv{ font-family:var(--sans); font-weight:600; font-size:clamp(1.45rem,2.7vw,1.95rem); letter-spacing:-.015em; }
@media(max-width:560px){ .press__logos{ gap:1.4rem 2.4rem; } }

/* =====================================================================
   SECTION-HEAD WIDTHS (v=d)  —  left heads run full width, centred heads stay centred
   ===================================================================== */
.section-head{ max-width:none; }
.section-head p{ max-width:none; }                 /* left-aligned paragraphs span the full section */
.section-head.center{ max-width:860px; margin-inline:auto; text-align:center; }
.section-head.center p{ max-width:64ch; margin-inline:auto; }   /* centred heads: centred, readable */

/* =====================================================================
   LEGAL / POLICY PAGES
   ===================================================================== */
.legal{ max-width:800px; }
.legal .eyebrow{ display:block; margin-bottom:1rem; }
.legal h1{ font-size:clamp(2.2rem,4.8vw,3.4rem); margin-bottom:.4rem; }
.legal__updated{ font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--platinum); margin-bottom:2.6rem; }
.legal h2{ font-family:var(--display); font-weight:500; font-size:1.7rem; color:var(--plum-deep); margin:2.6rem 0 .7rem; }
.legal h3{ font-family:var(--sans); font-weight:500; font-size:.96rem; color:var(--plum); margin:1.6rem 0 .3rem; letter-spacing:.02em; }
.legal p{ color:var(--ink); font-size:1rem; line-height:1.8; margin-bottom:1rem; }
.legal ul{ list-style:disc; padding-left:1.3rem; margin:0 0 1.2rem; display:grid; gap:.45rem; }
.legal li{ color:var(--ink); font-size:1rem; line-height:1.7; }
.legal a{ color:var(--orchid); text-decoration:underline; text-underline-offset:2px; }
.legal a:hover{ color:var(--plum); }
.legal strong{ font-weight:500; color:var(--plum-deep); }
.legal__note{ font-size:.82rem; color:var(--platinum); font-style:italic; }
.legal__contact{ margin-top:2.6rem; padding:1.6rem 1.8rem; background:var(--lilac-soft); border-radius:4px; border:1px solid var(--lilac-line); }
.legal__contact p{ margin:0; }

/* =====================================================================
   COOKIE CONSENT BANNER
   ===================================================================== */
.cookie{ position:fixed; left:1rem; right:1rem; bottom:1rem; z-index:120; max-width:600px; margin:0 auto;
  background:var(--plum-deep); color:#fff; border-radius:4px; padding:1.1rem 1.3rem;
  display:flex; gap:1.1rem; align-items:center; flex-wrap:wrap; justify-content:center;
  box-shadow:0 26px 54px -22px rgba(43,16,43,.55); transform:translateY(160%); transition:transform .55s var(--ease); }
.cookie.show{ transform:none; }
.cookie p{ font-size:.82rem; line-height:1.55; color:rgba(255,255,255,.86); margin:0; flex:1 1 260px; }
.cookie p a{ color:var(--rose); text-decoration:underline; }
.cookie__btns{ display:flex; gap:.6rem; flex:none; }
.cookie button{ font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; font-weight:500; padding:.78em 1.3em; border-radius:2px; transition:opacity .3s; }
.cookie button:hover{ opacity:.85; }
.cookie .c-accept{ background:#fff; color:var(--plum-deep); }
.cookie .c-decline{ border:1px solid rgba(255,255,255,.4); color:#fff; }
@media(max-width:540px){ .cookie{ text-align:center; } .cookie__btns{ width:100%; } .cookie__btns button{ flex:1; } }

/* ---- live stock badges on product cards ---- */
.product__media{ position:relative; }
.stock-flag{ position:absolute; left:12px; bottom:12px; z-index:3; font-size:.6rem; letter-spacing:.14em;
  text-transform:uppercase; font-weight:500; padding:.45em .85em; border-radius:2px; }
.stock-flag.low{ background:#fff; color:var(--plum-deep); box-shadow:0 6px 16px -6px rgba(43,16,43,.3); }
.stock-flag.soldout{ background:var(--plum-deep); color:#fff; }
.product.is-soldout .product__media img{ filter:grayscale(.45); opacity:.62; }
