/** Shopify CDN: Minification failed

Line 591:215 Unexpected "var("

**/
html{scroll-behavior:smooth;}
/* Lavoue — shared design system. Tokens & components lifted verbatim from index.html. */
:root{
  --cream:#FAF6F2;
  --ink:#2C2420;
  /* Metallic accent system: bronze reads on light/cream surfaces, bronze-light reads on dark ink surfaces. */
  --bronze:#8A6D3F;
  --bronze-light:#D4AF77;
  --rose:var(--bronze-light);
  --rose-deep:var(--bronze);
  --taupe:#8B6F5C;
  --blush:#F0E2DC;
  --line: rgba(44,36,32,0.12);
  --ease: cubic-bezier(.16,1,.3,1);
}
*{margin:0;padding:0;box-sizing:border-box;}
body{
  background:var(--cream);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  -webkit-font-smoothing:antialiased;
}
.serif{font-family:'Cormorant Garamond',serif;}
.wrap{max-width:1240px;margin:0 auto;padding:0 48px;}

/* ---------- NAV ---------- */
nav{
  position:fixed; top:0; left:0; right:0; z-index:50;
  background:var(--cream);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
body{padding-top:79px;}
.nav-inner{
  max-width:1240px;margin:0 auto;padding:22px 48px;
  display:flex;align-items:center;justify-content:space-between;
}
.logo{font-family:'Cormorant Garamond',serif;font-size:26px;letter-spacing:5px;font-weight:500;text-decoration:none;color:var(--ink);}
.nav-links{display:flex;gap:40px;list-style:none;}
.nav-toggle{display:none;}
.nav-toggle-label{display:none;}
.mobile-nav{display:none;}
.nav-links a{color:var(--ink);text-decoration:none;font-size:13px;letter-spacing:1px;text-transform:uppercase;opacity:0.75;transition:opacity .5s var(--ease); position:relative; padding-bottom:2px;}
.nav-links a::after{content:'';position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--bronze);transition:right .5s var(--ease);}
.nav-links a:hover, .nav-links a.is-current{opacity:1;}
.nav-links a:hover::after, .nav-links a.is-current::after{right:0;}
.nav-right{display:flex;align-items:center;gap:28px;}
.icon-btn{background:none;border:none;cursor:pointer;color:var(--ink);font-size:18px;opacity:0.8; transition:opacity .4s var(--ease); display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px;}
.icon-btn:hover{opacity:1;}
.nav-cta{
  border:1px solid var(--ink); background:none; color:var(--ink);
  padding:10px 24px; font-size:12px; letter-spacing:1.5px; text-transform:uppercase;
  cursor:pointer; transition:all .5s var(--ease); font-family:'Inter',sans-serif;
  white-space:nowrap; flex-shrink:0;
}
.nav-cta:hover{background:var(--ink); color:var(--cream); letter-spacing:2px;}

/* ---------- EYEBROW ---------- */
.eyebrow{
  font-size:11px; letter-spacing:3px; text-transform:uppercase;
  color:var(--rose-deep); margin-bottom:28px; display:flex; align-items:center; gap:14px;
}
.eyebrow::before{content:''; width:32px; height:1px; background:var(--rose-deep);}
.eyebrow.no-line::before{display:none;}

/* ---------- BUTTONS ---------- */
.btn-primary{
  background:var(--ink); color:var(--cream); border:none;
  padding:17px 38px; font-size:12px; letter-spacing:1.5px; text-transform:uppercase;
  cursor:pointer; transition:transform .6s var(--ease), letter-spacing .6s var(--ease), box-shadow .6s var(--ease); font-family:'Inter',sans-serif;
  display:inline-block; text-decoration:none; text-align:center;
}
.btn-primary:hover{transform:translateY(-2px); letter-spacing:2.2px; box-shadow:0 18px 36px rgba(44,36,32,0.18);}
.btn-primary:active{transform:translateY(0) scale(0.98);}
.btn-link{font-size:13px; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--ink); padding-bottom:3px; transition:opacity .4s var(--ease); opacity:0.85;}
.btn-link:hover{opacity:1;}

/* ---------- HERO ---------- */
.hero{
  display:grid;
  grid-template-columns: 1.05fr 0.95fr;
  align-items:stretch;
  min-height:88vh;
}
.hero-copy{
  display:flex; flex-direction:column; justify-content:center;
  padding:0 80px 0 48px;
  max-width:560px;
}
.hero h1{
  font-size:clamp(48px,5.5vw,76px);
  font-weight:300; line-height:1.04; letter-spacing:-0.5px;
  margin-bottom:28px;
}
.hero h1 em{font-style:italic; font-weight:500; color:var(--rose-deep);}
.hero p{
  font-size:17px; line-height:1.7; color:var(--taupe); max-width:420px; margin-bottom:40px;
}
.hero-actions{display:flex; align-items:center; gap:32px; flex-wrap:wrap;}

.pd-restock{
  border:1px solid rgba(138,109,63,0.25); background:rgba(138,109,63,0.06);
  padding:22px 26px; margin-bottom:8px;
}
.pd-restock-eyebrow{font-size:11px; letter-spacing:1.6px; text-transform:uppercase; color:var(--bronze); font-weight:600; margin-bottom:10px;}
.pd-restock-copy{font-size:13.5px; line-height:1.7; color:var(--taupe); margin-bottom:18px; max-width:44ch;}
.pd-restock-form{display:flex; gap:0; margin-bottom:16px; max-width:420px;}
.pd-restock-form input[type="email"]{
  flex:1; border:1px solid var(--line); border-right:none; background:var(--cream); color:var(--ink);
  font-family:'Inter',sans-serif; font-size:13px; padding:14px 16px; outline:none;
}
.pd-restock-form input[type="email"]:focus{border-color:var(--bronze);}
.pd-restock-form .btn-primary{padding:0 26px; white-space:nowrap;}
.pd-restock-success{font-size:13.5px; color:var(--bronze); font-weight:600; margin-bottom:16px;}
.pd-restock .btn-link{font-size:12.5px;}
@media (max-width:520px){
  .pd-restock-form{flex-direction:column;}
  .pd-restock-form input[type="email"]{border-right:1px solid var(--line); border-bottom:none;}
  .pd-restock-form .btn-primary{padding:14px 26px;}
}
.hero-formula{
  margin-top:56px; padding-top:28px; border-top:1px solid var(--line);
  display:flex; gap:36px; flex-wrap:wrap;
}
.formula-stat .num{font-family:'Cormorant Garamond',serif; font-size:30px; font-weight:500; color:var(--rose-deep); line-height:1;}
.formula-stat .lbl{font-size:11px; letter-spacing:1px; text-transform:uppercase; color:var(--taupe); margin-top:6px;}

.hero-image{
  position:relative;
  background:transparent;
  overflow:hidden;
}
.hero-image img{
  width:100%; height:100%; object-fit:contain; object-position:center 55%;
  filter:saturate(1.05); padding:36px; box-sizing:border-box;
}
/* Product gallery: main frame + thumbnail rail. Main image runs smaller than the frame.
   Top offset is set inline by assets/lavoue.js to match the product title's vertical
   position (the title sits inside a vertically-centered column, so its height depends
   on the product's own copy length and can't be pinned with a fixed CSS value). */
.hero-gallery-main{
  position:absolute; inset:0; display:flex; align-items:flex-start; justify-content:center;
  padding-top:36px; box-sizing:border-box;
}
/* Fixed 70% frame with cover: keeps the shot 30% smaller than the panel without
   leaving dead space above/below when the source photo is landscape. */
/* Scratch reveal: the NEW photo sits plainly underneath and is never clipped.
   The outgoing frame is an overlay torn away by a jagged diagonal clip-path,
   resting at opacity 0 so the settled state is always the new image. */
.hero-gallery-prev, .hero-scratch{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
}
.hero-gallery-prev{opacity:0; pointer-events:none; z-index:1;}
.hero-gallery-prev.swipe-a{animation:scratchTearA 1.1s linear;}
.hero-gallery-prev.swipe-b{animation:scratchTearB 1.1s linear;}
@keyframes scratchTearA{
  0%,0.01%{opacity:1; clip-path:polygon(-14% 0,132% 0,124% 100%,-22% 100%);}
  99.9%{opacity:1; clip-path:polygon(118% 0,132% 0,124% 100%,110% 100%);}
  100%{opacity:0;}
}
@keyframes scratchTearB{
  0%,0.01%{opacity:1; clip-path:polygon(-14% 0,132% 0,124% 100%,-22% 100%);}
  99.9%{opacity:1; clip-path:polygon(118% 0,132% 0,124% 100%,110% 100%);}
  100%{opacity:0;}
}
.hero-scratch-streak{
  position:absolute; top:-12%; bottom:-12%; width:200px; pointer-events:none; opacity:0; z-index:2;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.10) 34%,rgba(255,255,255,.55) 50%,rgba(255,255,255,.10) 66%,transparent);
  mix-blend-mode:screen; filter:blur(3px); transform:rotate(6deg);
}
.hero-scratch-streak.swipe-a{animation:scratchStreakA 1.1s linear;}
.hero-scratch-streak.swipe-b{animation:scratchStreakB 1.1s linear;}
@media (prefers-reduced-motion: reduce){
  .hero-gallery-prev, .hero-gallery-prev.swipe-a, .hero-gallery-prev.swipe-b{animation:none; opacity:0;}
  .hero-scratch-streak{display:none;}
}
/* Streak rides exactly on the tear edge (same -14%→118% travel, same linear
   timing), so the new photo is revealed continuously behind the moving line. */
@keyframes scratchStreakA{
  0%{left:calc(-14% - 100px); opacity:0;}
  12%{opacity:.75;}
  88%{opacity:.75;}
  100%{left:calc(118% - 100px); opacity:0;}
}
@keyframes scratchStreakB{
  0%{left:calc(-14% - 100px); opacity:0;}
  12%{opacity:.75;}
  88%{opacity:.75;}
  100%{left:calc(118% - 100px); opacity:0;}
}
.hero-gallery-prev img{
  width:68.4%; height:68.4%; padding:0; object-fit:contain; object-position:center center;
}
.hero-gallery-main img{
  width:68.4%; height:68.4%; padding:0; object-fit:contain; object-position:center center;
  transition:opacity .5s var(--ease);
}
.hero-thumbs{
  position:absolute; left:50%; bottom:28px; transform:translateX(-50%);
  display:flex; flex-direction:row; gap:10px; z-index:3;
}
.hero-thumb{
  width:64px; height:80px; padding:0; cursor:pointer; overflow:hidden;
  background:rgba(250,246,242,0.85); border:1px solid transparent;
  transition:border-color .3s var(--ease), opacity .3s var(--ease);
  opacity:.72;
}
.hero-thumb img{width:100%; height:100%; padding:6px; object-fit:contain; object-position:center center;}
.hero-thumb:hover{opacity:1;}
.hero-thumb.is-active{opacity:1; border-color:var(--ink);}
@media (max-width:980px){
  .hero-thumbs{bottom:24px;}
  .hero-image-tag{bottom:120px;}
}
.hero-image-tag{
  position:absolute; bottom:36px; left:36px;
  background:rgba(250,246,242,0.92); backdrop-filter:blur(6px);
  padding:16px 22px; max-width:240px;
}
.hero-image-tag .serif{font-size:17px; font-style:italic; line-height:1.4;}

/* ---------- DARK STRIP ---------- */
.strip{
  background:var(--ink); color:var(--cream);
  padding:64px 0;
}
.strip-inner{
  max-width:1240px;margin:0 auto;padding:0 48px;
  display:grid; grid-template-columns:1fr 2fr; gap:60px; align-items:center;
}
.strip-head .serif{font-size:32px; font-weight:300; line-height:1.25;}
.strip-head .serif em{font-style:italic; color:var(--rose);}
.strip-list{display:flex; gap:48px; flex-wrap:wrap;}
.strip-item{flex:1; min-width:160px;}
.strip-item .pct{font-family:'Cormorant Garamond',serif; font-size:44px; font-weight:500; color:var(--rose); line-height:1;}
.strip-item .nm{font-size:13px; letter-spacing:0.5px; margin-top:10px; opacity:0.9;}
.strip-item .ds{font-size:12px; line-height:1.6; opacity:0.55; margin-top:8px;}

/* dark strip in "list" mode — used on product detail (every active) and about (standards) */
.strip.tall{padding:110px 0;}
.strip.tall .strip-inner{grid-template-columns:1fr; gap:56px;}
.strip.tall .strip-head .serif{font-size:44px; max-width:640px;}
.strip-rows{display:grid; grid-template-columns:1fr 1fr; gap:0; border-top:1px solid rgba(250,246,242,0.18);}
.strip-row{
  display:grid; grid-template-columns:140px 1fr; gap:32px;
  padding:28px 36px 28px 0; border-bottom:1px solid rgba(250,246,242,0.18);
}
.strip-row:nth-child(odd){border-right:1px solid rgba(250,246,242,0.18); padding-right:36px;}
.strip-row:nth-child(even){padding-left:36px;}
.strip-row .pct{font-family:'Cormorant Garamond',serif; font-size:32px; font-weight:500; color:var(--rose); line-height:1;}
.strip-row .nm{font-size:13px; letter-spacing:0.5px; opacity:0.9; margin-top:6px;}
.strip-row .ds{font-size:13px; line-height:1.65; opacity:0.6; margin-top:4px;}

/* ingredient breakdown — editorial-magazine treatment, used on Product detail */
.ingredient-head{
  display:flex; align-items:flex-end; justify-content:space-between; gap:40px;
  padding-bottom:28px; border-bottom:1px solid rgba(250,246,242,0.18);
  flex-wrap:wrap;
}
.ingredient-head .meta{font-size:13px; font-weight:500; letter-spacing:2px; text-transform:uppercase; opacity:0.82;}
.ingredient-hero{
  display:grid; grid-template-columns: 1fr 1.35fr; gap:80px;
  padding:64px 0 72px;
  border-bottom:1px solid rgba(250,246,242,0.18);
}
.ingredient-hero .idx{
  font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:600;
  font-size:22px; letter-spacing:2.4px; text-transform:uppercase; color:var(--rose);
  margin-bottom:24px;
}
.ingredient-hero .pct{
  font-family:'Cormorant Garamond',serif; font-weight:300; font-style:italic;
  font-size:clamp(64px,7vw,92px); line-height:0.85; color:var(--rose);
  margin-bottom:20px;
}
.ingredient-hero .nm{
  font-size:16px; font-weight:500; letter-spacing:0.9px; text-transform:uppercase; color:var(--cream);
  opacity:1;
}
.ingredient-hero .ds{
  font-family:'Cormorant Garamond',serif; font-weight:300;
  font-size:26px; line-height:1.5; color:rgba(250,246,242,0.88);
  align-self:center; max-width:520px;
}
.ingredient-hero .ds em{font-style:italic; color:var(--rose); font-weight:500;}

.ingredient-rows{
  display:grid; grid-template-columns:1fr 1fr;
  border-bottom:1px solid rgba(250,246,242,0.18);
}
.ingredient-row{
  display:grid; grid-template-columns:140px 1fr; gap:36px; align-items:start;
  padding:36px 36px 36px 0;
  border-top:1px solid rgba(250,246,242,0.18);
}
.ingredient-row:first-child, .ingredient-row:nth-child(2){border-top:none;}
.ingredient-row:nth-child(odd){border-right:1px solid rgba(250,246,242,0.18); padding-right:48px;}
.ingredient-row:nth-child(even){padding-left:48px;}
.ingredient-row .idx{
  font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:600;
  font-size:21px; letter-spacing:1.6px; color:var(--rose);
  margin-bottom:10px;
}
.ingredient-row .pct{
  font-family:'Cormorant Garamond',serif; font-weight:300; font-style:italic;
  font-size:38px; line-height:0.95; color:var(--rose);
}
.ingredient-row .nm{
  font-size:13.5px; font-weight:500; letter-spacing:0.7px; text-transform:uppercase;
  color:rgba(250,246,242,0.98); margin-top:14px;
}
.ingredient-row .ds{
  font-size:15px; line-height:1.75; color:rgba(250,246,242,0.78);
  padding-top:6px;
}

/* ---------- SECTION HEAD ---------- */
.section{padding:150px 0;}
.section.short{padding:110px 0;}
.section-head{
  display:flex; justify-content:space-between; align-items:flex-end;
  margin-bottom:64px; gap:24px; flex-wrap:wrap;
}
.section-head .eyebrow{margin-bottom:18px;}
.section-head h2{font-size:44px; font-weight:300; max-width:480px; line-height:1.15;}
.section-head h2 em{font-style:italic; color:var(--rose-deep); font-weight:500;}
.section-head .nav-link{font-size:13px; border-bottom:1px solid var(--ink); padding-bottom:3px; color:var(--ink); text-decoration:none; white-space:nowrap;}

/* ---------- PRODUCT GRID ---------- */
.product-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:4px;
  background:var(--line);
}
.product-grid.two-up{grid-template-columns:repeat(2,1fr);}
.product-card{
  background:var(--cream); padding:0; position:relative;
  display:flex; flex-direction:column;
  text-decoration:none; color:var(--ink);
}
.product-card.featured{grid-row:auto;}
.pc-image{
  aspect-ratio:4/5; background:var(--blush); overflow:hidden; position:relative;
  display:flex; align-items:center; justify-content:center; padding:26px; box-sizing:border-box;
}
.product-card.featured .pc-image{aspect-ratio:4/5;}
.pc-image img{width:100%; height:100%; object-fit:contain; transition:transform 1.1s var(--ease); transform:scale(1.001); position:relative; z-index:1;}
.product-card:hover .pc-image img{transform:scale(1.045);}

/* Themed ambient backgrounds, one per formula's photographic motif — slow, quiet motion only. */
.pc-image::before{content:''; position:absolute; inset:0; z-index:0;}

.pc-image--splash{background:#F3E4DD;}
.pc-image--splash::before{
  background:radial-gradient(circle at 50% 45%, rgba(201,139,122,0.32) 0%, rgba(201,139,122,0.1) 45%, transparent 72%);
  animation:pc-breathe 7s ease-in-out infinite;
}
.pc-image--leaf{background:#EAEEDF;}
.pc-image--leaf::before{
  background:linear-gradient(120deg, rgba(143,160,137,0.05) 0%, rgba(143,160,137,0.34) 40%, rgba(143,160,137,0.05) 70%);
  background-size:220% 220%;
  animation:pc-drift 11s ease-in-out infinite;
}
.pc-image--wine{background:#3A2E28;}
.pc-image--wine::before{
  background:radial-gradient(circle at 50% 55%, rgba(233,180,166,0.22) 0%, transparent 70%);
  animation:pc-breathe 8s ease-in-out infinite;
}
.pc-image--ocean{background:#E3EBEE;}
.pc-image--sun{background:#F5EAD0;}
.pc-image--sun::before{
  background:radial-gradient(circle at 50% 45%, rgba(201,162,74,0.4) 0%, rgba(201,162,74,0.08) 45%, transparent 70%);
  animation:pc-pulse-rotate 10s ease-in-out infinite;
}
.pc-image--amber{background:#EEDFC2;}
.pc-image--amber::before{
  background:repeating-radial-gradient(circle at 50% 55%, rgba(181,101,74,0.28) 0, rgba(181,101,74,0.28) 2px, transparent 3px, transparent 22px);
  animation:pc-ripple 6.5s linear infinite;
}

@keyframes pc-breathe{0%,100%{opacity:0.7; transform:scale(1);} 50%{opacity:1; transform:scale(1.06);}}
@keyframes pc-drift{0%,100%{background-position:0% 50%;} 50%{background-position:100% 50%;}}
@keyframes pc-wave{0%{background-position:0% 0%;} 100%{background-position:-200% 0%;}}
@keyframes pc-pulse-rotate{0%,100%{opacity:0.75; transform:scale(1) rotate(0deg);} 50%{opacity:1; transform:scale(1.08) rotate(6deg);}}
@keyframes pc-ripple{0%{background-position:0 0; opacity:0.5;} 50%{opacity:0.9;} 100%{background-position:0 40px; opacity:0.5;}}

.pc-badge{
  /* z-index:2, not 1 — the product photo (.pc-image img) is also z-index:1 and
     comes later in the markup, so on an equal z-index it painted over this
     badge (visible as "RESTOCKING SOON" washed out/illegible whenever a
     product's photo has opaque content in that corner). */
  position:absolute; top:18px; left:18px;
  background:var(--cream); font-size:10px; letter-spacing:1px; text-transform:uppercase;
  padding:6px 12px; color:var(--rose-deep); z-index:2;
  box-shadow:0 2px 8px rgba(44,36,32,0.12);
}
.pc-body{padding:26px 28px 32px; display:flex; flex-direction:column; flex:1;}
.pc-body .pc-eyebrow{font-size:10px; letter-spacing:1.5px; text-transform:uppercase; color:var(--rose-deep); margin-bottom:10px;}
.pc-body h3{font-family:'Cormorant Garamond',serif; font-size:26px; font-weight:500; margin-bottom:8px; line-height:1.15;}
.pc-body p{
  font-size:13px; color:var(--taupe); line-height:1.6; margin-bottom:16px;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.pc-footer{display:flex; justify-content:space-between; align-items:center; margin-top:auto;}
.pc-price{font-size:15px; font-weight:500;}
.pc-add{
  background:none; border:1px solid var(--ink); color:var(--ink);
  width:44px; height:44px; cursor:pointer; font-size:16px; transition:all .4s var(--ease);
  opacity:0; transform:translateY(4px);
}
.product-card:hover .pc-add, .product-card:focus-within .pc-add{opacity:1; transform:translateY(0);}
.pc-add:hover{background:var(--ink); color:var(--cream);}
@media (hover:none){ .pc-add{opacity:1; transform:none;} }

.pc-badge--soldout{background:var(--bronze); color:var(--cream);}
.pc-notify{
  font-size:10.5px; letter-spacing:1px; text-transform:uppercase; color:var(--bronze);
  white-space:nowrap; transition:color .3s var(--ease);
}
.product-card--soldout:hover .pc-notify{color:var(--ink);}
.product-card--soldout .pc-image img{opacity:.88;}

/* ---------- RITUAL / EDITORIAL SPLIT ---------- */
.ritual{
  display:grid; grid-template-columns:1fr 1fr;
  background:var(--blush);
}
.ritual.reverse{direction:rtl;}
.ritual.reverse > *{direction:ltr;}
.ritual-image{aspect-ratio:1/1.05; overflow:hidden;}
.ritual-image img{width:100%;height:100%;object-fit:cover;}
.ritual-copy{
  display:flex; flex-direction:column; justify-content:center;
  padding:80px;
}
.ritual-copy .eyebrow{color:var(--rose-deep);}
.ritual-copy h2{
  font-family:'Cormorant Garamond',serif; font-weight:300; font-size:40px; line-height:1.2;
  margin-bottom:24px; max-width:440px;
}
.ritual-copy h2 em{font-style:italic; color:var(--rose-deep); font-weight:500;}
.ritual-copy p{font-size:15px; line-height:1.8; color:var(--taupe); max-width:420px; margin-bottom:32px;}

/* ---------- QUOTE SECTION ---------- */
.quote-section{padding:140px 0; text-align:center;}
.quote-section .stars{color:var(--rose-deep); font-size:14px; letter-spacing:4px; margin-bottom:36px;}
.quote-section blockquote{
  font-family:'Cormorant Garamond',serif; font-size:clamp(28px,3.4vw,42px);
  font-weight:300; font-style:italic; line-height:1.4; max-width:780px; margin:0 auto 28px;
}
.quote-section blockquote em{color:var(--rose-deep); font-weight:500;}
.quote-section cite{font-style:normal; font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:var(--taupe);}

/* stacked reviews variant (product detail) */
.review-stack{max-width:820px; margin:0 auto; display:flex; flex-direction:column; gap:48px;}
.review{padding:32px 0; border-bottom:1px solid var(--line); text-align:left;}
.review:last-child{border-bottom:none;}
.review .stars{font-size:12px; letter-spacing:3px; margin-bottom:14px;}
.review blockquote{
  font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:300; font-style:italic;
  line-height:1.45; margin-bottom:14px; max-width:none;
}
.review blockquote em{color:var(--rose-deep); font-weight:500;}
.review cite{font-style:normal; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--taupe);}

/* review summary bar */
.review-summary{
  display:flex; align-items:center; justify-content:center; gap:24px;
  margin:0 auto 56px; padding-bottom:36px; border-bottom:1px solid var(--line);
  max-width:820px;
}
.review-summary .rs-score{font-family:'Cormorant Garamond',serif; font-size:46px; font-weight:500; color:var(--rose-deep); line-height:1;}
.review-summary .rs-detail{text-align:left;}
.review-summary .rs-stars{color:var(--rose-deep); font-size:14px; letter-spacing:3px;}
.review-summary .rs-count{font-size:12px; color:var(--taupe); margin-top:6px; letter-spacing:0.5px;}
.fineprint{font-size:11px; line-height:1.7; opacity:0.45; max-width:640px; margin:56px auto 0; text-align:center;}

/* toast */
.pd-toast{
  position:fixed; left:50%; bottom:36px; transform:translate(-50%,140%);
  background:var(--ink); color:var(--cream); padding:16px 28px;
  font-size:13px; letter-spacing:0.5px; display:flex; align-items:center; gap:14px;
  transition:transform .35s cubic-bezier(.2,.8,.3,1); z-index:100; box-shadow:0 12px 32px rgba(0,0,0,0.25);
}
.pd-toast.is-visible{transform:translate(-50%,0);}
.pd-toast em{color:var(--rose); font-style:italic;}

/* ---------- FOOTER ---------- */
footer{background:var(--ink); color:var(--cream); padding:90px 0 36px;}
.footer-grid{
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:60px;
  padding-bottom:70px; border-bottom:1px solid rgba(250,246,242,0.12);
}
.footer-logo{font-family:'Cormorant Garamond',serif; font-size:28px; letter-spacing:5px; margin-bottom:18px;}
.footer-grid p{font-size:13px; line-height:1.7; opacity:0.6; max-width:280px;}
.footer-col h4{font-size:11px; letter-spacing:1.5px; text-transform:uppercase; opacity:0.5; margin-bottom:20px;}
.footer-col ul{list-style:none;}
.footer-col li{margin-bottom:13px;}
.footer-col a{color:var(--cream); text-decoration:none; font-size:14px; opacity:0.85; transition:opacity .4s var(--ease);}
.footer-col a:hover{opacity:1;}
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center; padding-top:32px;
  font-size:12px; opacity:0.45; flex-wrap:wrap; gap:12px;
}

/* ---------- PLACEHOLDER PHOTOS ----------
   Visual stand-ins for real product / editorial photography.
   Every instance is labelled in the markup with a comment noting the real shot needed. */
.photo-placeholder{
  width:100%; height:100%;
  background: radial-gradient(120% 90% at 50% 20%, #F7E7E1 0%, #F0E2DC 55%, #E8D4CC 100%);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:22px; padding:18px; color:var(--taupe); position:relative; overflow:hidden;
}
.photo-placeholder::before{
  content:''; position:absolute; inset:0;
  background: repeating-linear-gradient(135deg, rgba(44,36,32,0.035) 0 1px, transparent 1px 16px);
}
.photo-placeholder.tone-calm{ background: radial-gradient(120% 90% at 50% 20%, #F1F0E4 0%, #E7E6D6 55%, #DCDAC5 100%); }
.photo-placeholder.tone-night{
  background: radial-gradient(120% 90% at 50% 15%, #3A2E28 0%, #2C2420 60%, #1E1815 100%);
  color:var(--rose);
}
.photo-placeholder.tone-night::before{ background: repeating-linear-gradient(135deg, rgba(250,246,242,0.04) 0 1px, transparent 1px 16px); }
.ph-bottle{ position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; opacity:0.55; }
.ph-bottle .ph-cap{ width:22px; height:16px; border-radius:5px 5px 3px 3px; background:currentColor; opacity:0.4; }
.ph-bottle .ph-neck{ width:12px; height:10px; background:currentColor; opacity:0.3; }
.ph-bottle .ph-body{ width:58px; height:78px; border-radius:6px; border:1.5px solid currentColor; opacity:0.55; }
.photo-placeholder .ph-label{
  position:relative; z-index:1;
  font-family:'JetBrains Mono','SF Mono',ui-monospace,Menlo,monospace;
  font-size:10px; letter-spacing:1px; text-transform:uppercase; opacity:0.75; text-align:center; max-width:220px;
}

/* ---------- PRODUCT DETAIL — variant selector ---------- */
.pd-meta{display:flex; align-items:baseline; gap:18px; margin-bottom:22px; flex-wrap:wrap;}
.pd-price{font-family:'Cormorant Garamond',serif; font-size:34px; font-weight:500; color:var(--rose-deep); line-height:1;}
.pd-size{font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:var(--taupe);}
.pd-variants{display:flex; gap:10px; flex-wrap:wrap; margin-top:40px; padding-top:28px; border-top:1px solid var(--line);}
.pd-variants .lbl{font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--taupe); margin-right:6px; align-self:center;}
.pd-variant{
  border:1px solid var(--line); background:none; color:var(--ink);
  padding:10px 18px; font-size:12px; letter-spacing:1px; text-transform:uppercase;
  transition:all .4s var(--ease);
  cursor:pointer; font-family:'Inter',sans-serif; text-decoration:none;
  display:inline-flex; align-items:center; gap:9px;
}
.pd-variant.is-current{border-color:var(--ink); background:var(--ink); color:var(--cream);}

/* tonal variant — pill buttons, color dot per product, current one filled with a soft glow */
.pd-variant--tonal{
  border-radius:999px; border-color:color-mix(in oklab, var(--tone,var(--ink)) 35%, var(--line));
  color:var(--ink); padding:11px 20px 11px 16px;
  box-shadow:0 1px 2px rgba(44,36,32,0.04);
}
.pd-variant--tonal .tone-dot{
  width:8px; height:8px; border-radius:50%; background:var(--tone,var(--ink)); flex-shrink:0;
  box-shadow:0 0 0 3px color-mix(in oklab, var(--tone,var(--ink)) 18%, transparent);
  transition:box-shadow .4s var(--ease), transform .4s var(--ease);
}
.pd-variant--tonal:hover{
  border-color:var(--tone,var(--ink));
  background:color-mix(in oklab, var(--tone,var(--ink)) 8%, var(--cream));
}
.pd-variant--tonal:hover .tone-dot{ transform:scale(1.2); }
.pd-variant--tonal.is-current{
  background:var(--tone,var(--ink)); border-color:var(--tone,var(--ink)); color:var(--cream);
  box-shadow:0 8px 20px color-mix(in oklab, var(--tone,var(--ink)) 35%, transparent);
  font-weight:500;
}
.pd-variant--tonal.is-current .tone-dot{
  background:var(--cream); box-shadow:0 0 0 3px color-mix(in oklab, var(--cream) 30%, transparent);
}

/* hover effects for the collection-picker buttons, layered on top of any button style */
.pd-variants--hover-lift .pd-variant{transition:all .4s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);}
.pd-variants--hover-lift .pd-variant:hover{transform:translateY(-3px); box-shadow:0 10px 22px rgba(44,36,32,0.14);}
.pd-variants--hover-lift .pd-variant--tonal:hover{box-shadow:0 10px 22px color-mix(in oklab, var(--tone,var(--ink)) 30%, transparent);}
.pd-variants--hover-lift .pd-variant--tonal:hover .tone-dot{transform:scale(1.35);}

.pd-variants--hover-fill .pd-variant:hover{background:var(--ink); border-color:var(--ink); color:var(--cream);}
.pd-variants--hover-fill .pd-variant--tonal:hover{background:var(--tone,var(--ink)); border-color:var(--tone,var(--ink)); color:var(--cream);}
.pd-variants--hover-fill .pd-variant--underline:hover{background:none; color:var(--tone,var(--ink));}

/* underline variant — minimal, text-forward */
.pd-variant--underline{border:none; padding:8px 4px; position:relative; opacity:0.62;}
.pd-variant--underline::after{content:'';position:absolute;left:4px;right:4px;bottom:2px;height:1px;background:var(--tone,var(--ink));transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease);} var(--ease);}
.pd-variant--underline:hover{opacity:0.9;}
.pd-variant--underline:hover::after{transform:scaleX(1);}
.pd-variant--underline.is-current{background:none; color:var(--tone,var(--ink)); opacity:1; font-weight:500;}
.pd-variant--underline.is-current::after{transform:scaleX(1);}

/* ---------- HOW TO USE ---------- */
.how-grid{
  display:grid; grid-template-columns:1fr 1fr 1fr; gap:48px;
}
.how-step .num{
  font-family:'Cormorant Garamond',serif; font-size:48px; font-weight:300; color:var(--rose-deep);
  line-height:1; margin-bottom:18px;
}
.how-step h4{font-family:'Cormorant Garamond',serif; font-size:24px; font-weight:500; margin-bottom:10px;}
.how-step p{font-size:14px; line-height:1.7; color:var(--taupe);}

/* ---------- JOURNAL ---------- */
.journal-hero{padding:140px 0 40px;}
.journal-hero h1{font-family:'Cormorant Garamond',serif; font-size:clamp(56px,7vw,96px); font-weight:300; line-height:1.02; letter-spacing:-1px; max-width:900px;}
.journal-hero h1 em{font-style:italic; color:var(--rose-deep); font-weight:500;}
.journal-hero p{font-size:17px; line-height:1.7; color:var(--taupe); max-width:520px; margin-top:24px;}

.journal-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:4px; background:var(--line);
}
.journal-grid .product-card.featured{grid-row:span 2; grid-column:span 2;}
.journal-grid .product-card.featured .pc-image{aspect-ratio:auto; min-height:520px;}

/* ---------- ARTICLE ---------- */
.article{padding:120px 0 60px;}
.article-head{max-width:760px; margin:0 auto 56px; text-align:left;}
.article-head h1{
  font-family:'Cormorant Garamond',serif; font-size:clamp(40px,5vw,64px); font-weight:300;
  line-height:1.08; letter-spacing:-0.5px; margin-bottom:24px;
}
.article-head h1 em{font-style:italic; color:var(--rose-deep); font-weight:500;}
.article-head .byline{font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:var(--taupe);}
.article-cover{max-width:1080px; margin:0 auto 64px; aspect-ratio:16/8; overflow:hidden; background:var(--blush);}
.article-body{max-width:680px; margin:0 auto; font-size:17px; line-height:1.85; color:var(--ink);}
.article-body p{margin-bottom:24px;}
.article-body p > em{color:var(--rose-deep); font-style:italic;}
.article-body h2{
  font-family:'Cormorant Garamond',serif; font-weight:300; font-size:32px; line-height:1.25;
  margin:48px 0 20px; max-width:520px;
}
.article-body h2 em{font-style:italic; color:var(--rose-deep); font-weight:500;}
.article-body .pull-quote{
  font-family:'Cormorant Garamond',serif; font-weight:300; font-style:italic;
  font-size:32px; line-height:1.35; color:var(--ink);
  margin:48px 0; padding:24px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.article-body .pull-quote em{color:var(--rose-deep); font-weight:500;}

/* ---------- CONTACT ---------- */
.contact{
  position:relative; isolation:isolate; overflow-x:clip;
  display:grid; grid-template-columns:1fr 1fr; gap:96px;
  max-width:1240px; margin:0 auto; padding:120px 48px;
}
.contact-left h1{font-family:'Cormorant Garamond',serif; font-size:clamp(40px,5vw,60px); font-weight:300; line-height:1.08; margin-bottom:24px;}
.contact-left h1 em{font-style:italic; color:var(--rose-deep); font-weight:500;}
.contact-left p{font-size:15px; line-height:1.8; color:var(--taupe); margin-bottom:36px; max-width:380px;}
.contact-links{display:flex; flex-direction:column; gap:14px;}
.contact-links h4{font-size:11px; letter-spacing:1.5px; text-transform:uppercase; opacity:0.5; color:var(--ink); margin-bottom:6px;}
.contact-links a{color:var(--ink); text-decoration:none; font-size:15px; border-bottom:1px solid transparent; transition:border-color .4s var(--ease);}
.contact-links a:hover{border-bottom-color:var(--ink);}

/* decorative accent bloom — absolute, so it never becomes a grid item */
.contact::before{
  content:''; position:absolute; z-index:-1; pointer-events:none;
  top:0; right:0; width:740px; height:740px; border-radius:50%;
  background:radial-gradient(circle at 50% 45%,
    color-mix(in oklch, var(--bronze) 13%, transparent) 0%,
    color-mix(in oklch, var(--bronze) 10%, transparent) 18%,
    color-mix(in oklch, var(--bronze) 6.5%, transparent) 32%,
    color-mix(in oklch, var(--bronze) 3.5%, transparent) 45%,
    color-mix(in oklch, var(--bronze) 1.5%, transparent) 58%,
    transparent 74%);
}
.contact::after{
  content:''; position:absolute; z-index:-1; pointer-events:none;
  left:0; bottom:0; width:640px; height:640px; border-radius:50%;
  background:radial-gradient(circle at 50% 50%,
    color-mix(in oklch, var(--rose-deep,#D9748F) 9%, transparent) 0%,
    color-mix(in oklch, var(--rose-deep,#D9748F) 7%, transparent) 18%,
    color-mix(in oklch, var(--rose-deep,#D9748F) 4.5%, transparent) 32%,
    color-mix(in oklch, var(--rose-deep,#D9748F) 2.5%, transparent) 45%,
    color-mix(in oklch, var(--rose-deep,#D9748F) 1%, transparent) 58%,
    transparent 74%);
}
.contact-mark{
  display:flex; align-items:center; gap:12px; margin-bottom:26px;
}
.cmk-glyph{color:var(--bronze); font-size:14px; line-height:1;}
.cmk-word{
  font-family:'Cormorant Garamond',serif; font-style:italic;
  font-size:17px; color:var(--bronze); letter-spacing:0.4px;
}
.cmk-rule{flex:1; height:1px; background:linear-gradient(to right, var(--line), transparent);}

.contact-promise{display:flex; flex-direction:column; gap:0; border-top:1px solid var(--line);}
.cp-row{
  display:grid; grid-template-columns:44px 1fr; gap:18px; align-items:start;
  padding:22px 0; border-bottom:1px solid var(--line);
}
.cp-num{
  font-family:'Cormorant Garamond',serif; font-size:20px; font-weight:400;
  color:var(--rose-deep); line-height:1.2; padding-top:1px;
}
.cp-nm{font-size:14px; letter-spacing:0.2px; color:var(--ink); margin-bottom:6px;}
.cp-body p{font-size:13.5px; line-height:1.75; color:var(--taupe); margin:0; max-width:340px;}
.contact-meta{
  display:flex; align-items:center; gap:10px; margin-top:28px;
  font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--taupe);
}
.cm-dot{
  width:6px; height:6px; border-radius:50%; background:var(--rose-deep);
  box-shadow:0 0 0 4px rgba(217,116,143,0.16);
}
.contact-right{
  position:relative;
  border:1px solid var(--line); background:var(--card,var(--cream));
  padding:34px 34px 36px; align-self:start;
  box-shadow:0 24px 60px -32px rgba(44,36,32,0.28), 0 1px 2px rgba(44,36,32,0.04);
}
.contact-right::before{
  content:''; position:absolute; inset:0 0 auto 0; height:3px;
  background:linear-gradient(to right, var(--bronze), var(--bronze-light), transparent);
}
.contact-form-head{
  display:flex; justify-content:space-between; align-items:baseline; gap:16px;
  padding-bottom:20px; margin-bottom:28px; border-bottom:1px solid var(--line);
}
.cfh-lbl{font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--ink);}
.form-field .req{color:var(--bronze);}
.cfh-note{font-size:11px; color:var(--taupe);}

/* form — uses the same flat ink-bordered pattern as .nav-cta */
.form-field{display:flex; flex-direction:column; margin-bottom:22px;}
.form-field label{font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--taupe); margin-bottom:8px;}
.form-field input, .form-field textarea{
  border:1px solid var(--ink); background:none; color:var(--ink);
  padding:14px 16px; font-family:'Inter',sans-serif; font-size:14px;
  border-radius:0; outline:none;
}
.form-field textarea{min-height:160px; resize:vertical; font-family:'Inter',sans-serif;}
.form-field input:focus, .form-field textarea:focus{background:rgba(44,36,32,0.03);}

/* ---------- CART DRAWER ---------- */
.cart-drawer-overlay{
  position:fixed; inset:0; background:rgba(44,36,32,0.45);
  opacity:0; pointer-events:none; transition:opacity .5s var(--ease); z-index:200;
}
.cart-drawer-overlay.is-open{opacity:1; pointer-events:auto;}
.cart-drawer{
  position:fixed; top:0; right:-460px; height:100vh; width:min(440px,92vw);
  background:var(--cream); z-index:201; display:flex; flex-direction:column;
  transition:right .6s var(--ease);
  box-shadow:-30px 0 70px rgba(0,0,0,0.2);
}
.cart-drawer.is-open{right:0;}
.cart-drawer-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:34px 36px 26px; border-bottom:1px solid var(--line);
}
.cart-drawer-head .serif{font-size:24px; font-weight:500; letter-spacing:0.5px;}
.cart-drawer-close{
  background:none; border:none; cursor:pointer; font-size:24px; line-height:1;
  color:var(--ink); opacity:0.55; transition:opacity .3s var(--ease); padding:4px;
}
.cart-drawer-close:hover{opacity:1;}
.cart-drawer-body{flex:1; overflow-y:auto; padding:8px 36px;}
.cart-line{display:flex; gap:18px; padding:26px 0; border-bottom:1px solid var(--line);}
.cart-line-media{width:76px; height:92px; background:var(--blush); flex-shrink:0; overflow:hidden;}
.cart-line-media img{width:100%; height:100%; object-fit:cover;}
.cart-line-body{flex:1; display:flex; flex-direction:column; min-width:0;}
.cart-line-name{font-family:'Cormorant Garamond',serif; font-size:17px; font-weight:500; margin-bottom:4px; line-height:1.2;}
.cart-line-size{font-size:11px; letter-spacing:1px; text-transform:uppercase; color:var(--taupe);}
.cart-line-footer{display:flex; align-items:center; justify-content:space-between; margin-top:14px;}
.cart-line-qty{display:flex; align-items:center; gap:14px; font-size:13px;}
.cart-line-qty button{
  background:none; border:1px solid var(--line); width:32px; height:32px; cursor:pointer;
  color:var(--ink); font-size:13px; line-height:1; transition:border-color .3s var(--ease);
}
.cart-line-qty button:hover{border-color:var(--ink);}
.cart-line-price{font-size:14px; font-weight:500; min-width:60px; flex-shrink:0; text-align:right;}
.cart-line-remove{
  background:none; border:none; font-size:10.5px; letter-spacing:1px; text-transform:uppercase;
  color:var(--taupe); text-decoration:underline; cursor:pointer; margin-top:10px; align-self:flex-start;
  transition:color .3s var(--ease);
}
.cart-line-remove:hover{color:var(--ink);}
.cart-empty{padding:72px 8px; text-align:center; color:var(--taupe); font-size:14px; line-height:1.8;}
.cart-drawer-foot{padding:28px 36px 34px; border-top:1px solid var(--line);}
.cart-subtotal{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:22px;}
.cart-subtotal .lbl{font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--taupe);}
.cart-subtotal .amt{font-family:'Cormorant Garamond',serif; font-size:30px; font-weight:500; color:var(--rose-deep); min-width:70px; flex-shrink:0; text-align:right;}
.cart-drawer-foot .btn-primary{width:100%;}
.cart-note{font-size:11px; color:var(--taupe); opacity:0.75; line-height:1.6; margin-top:16px; text-align:center;}

/* ---------- KEY INGREDIENTS (quick cards) ---------- */
.ki-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:44px;}
.ki-card .idx{font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:400; font-size:14px; color:var(--rose-deep); margin-bottom:16px;}
.ki-card h4{font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:500; margin-bottom:10px; line-height:1.2;}
.ki-card p{font-size:14px; line-height:1.7; color:var(--taupe);}

/* ---------- TECHNOLOGY STRIP ---------- */
.tech-strip{background:var(--ink); color:var(--cream);}
.tech-inner{
  max-width:1240px; margin:0 auto; padding:130px 48px;
  display:grid; grid-template-columns:1fr 0.9fr; gap:80px; align-items:center;
}
.tech-inner .eyebrow{color:var(--rose);}
.tech-inner .eyebrow::before{background:var(--rose);}
.tech-title{font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(34px,4vw,50px); line-height:1.18; margin-bottom:22px;}
.tech-title em{font-style:italic; color:var(--rose); font-weight:500;}
.tech-body{font-size:16px; line-height:1.85; opacity:0.72; max-width:460px;}
.tech-figure{border-left:1px solid rgba(250,246,242,0.18); padding-left:52px;}
.tech-figure .word{font-family:'Cormorant Garamond',serif; font-weight:300; font-style:italic; font-size:clamp(44px,5vw,64px); color:var(--rose); line-height:1;}
.tech-figure .cap{font-size:12px; letter-spacing:1.2px; text-transform:uppercase; opacity:0.6; margin-top:20px; max-width:260px; line-height:1.6;}

/* ---------- CLINICAL RESULTS ---------- */
.clinical-head{max-width:620px; margin:0 auto 64px; text-align:center;}
.clinical-head .eyebrow{justify-content:center;}
.clinical-head h2{font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(32px,3.5vw,42px); line-height:1.2;}
.clinical-head h2 em{font-style:italic; color:var(--rose-deep); font-weight:500;}
.clinical-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line);}
.clinical-stat{background:var(--cream); padding:52px 28px; text-align:center;}
.clinical-stat .val{font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(38px,4vw,52px); color:var(--rose-deep); line-height:1;}
.clinical-stat .lbl{font-size:13px; line-height:1.55; color:var(--ink); margin-top:16px; max-width:170px; margin-left:auto; margin-right:auto;}
.clinical-stat .sub{font-size:10.5px; letter-spacing:1.2px; text-transform:uppercase; color:var(--taupe); margin-top:10px;}
.clinical-foot{text-align:center; font-size:12px; color:var(--taupe); opacity:0.75; margin-top:36px; max-width:640px; margin-left:auto; margin-right:auto; line-height:1.7;}

/* ---------- SPEC BAND ---------- */
.spec-band{background:var(--blush);}
.spec-grid{max-width:1240px; margin:0 auto; padding:100px 48px; display:grid; grid-template-columns:1fr 1fr; gap:80px;}
.spec-col h3{font-family:'Cormorant Garamond',serif; font-weight:500; font-size:24px; margin-bottom:16px;}
.spec-col p{font-size:15px; line-height:1.85; color:var(--ink); opacity:0.8;}

/* ---------- SPLASH (brand-word intro, fades out on scroll) ---------- */
.splash{
  position:fixed; inset:0; z-index:30;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
.splash-bg{
  position:absolute; inset:56px;
  background:url('images/lavoue-rose-hero.webp') center 45% / cover no-repeat;
  transition:transform .05s linear, filter .05s linear;
  will-change:transform, filter;
}
.splash-bg::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(44,36,32,0.35) 0%, rgba(44,36,32,0.55) 100%);
}
.splash-word{
  position:relative; z-index:1;
  font-family:'Cormorant Garamond',serif; font-weight:300;
  font-size:clamp(72px,15vw,240px); letter-spacing:0.06em;
  color:var(--cream);
}

/* ---------- BUNDLE CTA (cross-sell) ---------- */
.bundle-cta{
  margin-top:36px; padding:32px 40px; background:var(--blush);
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
}
.bundle-cta-copy{display:flex; flex-direction:column; gap:6px;}
.bundle-cta-copy .lbl{font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:var(--taupe);}
.bundle-cta-copy .amt{font-family:'Cormorant Garamond',serif; font-size:32px; font-weight:500; color:var(--rose-deep);}

/* ---------- COLLECTION SET (full-bleed editorial, between splash and hero) ---------- */
.collection-set{
  position:relative; width:100%; height:auto; min-height:0;
  display:block;
  background:var(--cream); overflow:hidden; padding:56px 6% 0;
  box-sizing:border-box;
}
.collection-set img{
  width:100%; height:auto; max-height:72vh; position:static; object-fit:contain; object-position:center;
  opacity:0.96; display:block; margin:0 auto;
}
.collection-set-copy{
  position:relative; z-index:1; text-align:center; color:var(--ink);
  padding:56px 48px 72px; background:var(--cream);
  width:100%;
}
.collection-set-copy .eyebrow{justify-content:center; color:var(--rose-deep);}
.collection-set-copy .eyebrow::before{background:var(--rose-deep);}
.collection-set-copy h2{
  font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(32px,4.5vw,52px);
  line-height:1.15; margin:18px 0 16px;
}
.collection-set-copy h2 em{font-style:italic; color:var(--rose-deep); font-weight:500;}
.collection-set-copy p{font-size:16px; line-height:1.7; color:var(--taupe); max-width:440px; margin:0 auto;}

/* ---------- FORMULA TABS (Home, replaces price grid) ---------- */
.formula-tabs{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:56px; border-bottom:1px solid var(--line); padding-bottom:28px;}
.formula-tab{
  border:1px solid var(--line); background:none; color:var(--ink); opacity:0.65;
  border-radius:999px; padding:11px 22px; font-size:12.5px; letter-spacing:0.8px;
  font-family:'Inter',sans-serif; cursor:pointer; transition:all .4s var(--ease);
}
.formula-tab:hover{opacity:0.9; border-color:var(--ink);}
.formula-tab.is-active{background:var(--ink); border-color:var(--ink); color:var(--cream); opacity:1;}
.formula-panel{
  display:grid; grid-template-columns:0.85fr 1fr; gap:72px; align-items:center;
}
.formula-panel-media{aspect-ratio:4/5; overflow:hidden; background:var(--blush);}
.formula-panel-media img{width:100%; height:100%; object-fit:cover;}
.formula-panel-copy .eyebrow{margin-bottom:20px;}
.formula-panel-copy h3{
  font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(30px,3.2vw,42px);
  line-height:1.18; margin-bottom:20px;
}
.formula-panel-copy h3 em{font-style:italic; color:var(--rose-deep); font-weight:500;}
.formula-contains{font-size:15px; line-height:1.8; color:var(--taupe); margin-bottom:30px; max-width:480px;}
.formula-contains strong{color:var(--ink); font-weight:500;}
.good-for-lbl{font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--rose-deep); margin-bottom:14px;}
.good-for-list{display:flex; flex-direction:column; gap:12px; margin-bottom:34px;}
.good-for-item{display:flex; align-items:flex-start; gap:12px; font-size:15px; line-height:1.5; color:var(--ink);}
.good-for-item .tick{color:var(--rose-deep); font-family:'Cormorant Garamond',serif; font-style:italic; font-size:18px; flex-shrink:0; line-height:1.3;}

/* ---------- INTRO TABS (Home, minimal pill style matching cross-sell picker) ---------- */
.intro-tabs{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:56px;}
.intro-tab{
  border:1px solid color-mix(in oklab, var(--tone,var(--ink)) 35%, var(--line));
  background:none; color:var(--ink); border-radius:999px;
  padding:11px 20px 11px 16px; font-size:12px; letter-spacing:1px; text-transform:uppercase;
  cursor:pointer; font-family:'Inter',sans-serif; transition:all .4s var(--ease);
  display:inline-flex; align-items:center; gap:9px; box-shadow:0 1px 2px rgba(44,36,32,0.04);
}
.intro-tab .tone-dot{
  width:8px; height:8px; border-radius:50%; background:var(--tone,var(--ink)); flex-shrink:0;
  box-shadow:0 0 0 3px color-mix(in oklab, var(--tone,var(--ink)) 18%, transparent);
  transition:transform .4s var(--ease);
}
.intro-tab:hover{border-color:var(--tone,var(--ink)); background:color-mix(in oklab, var(--tone,var(--ink)) 8%, var(--cream));}
.intro-tab:hover .tone-dot{transform:scale(1.2);}
.intro-tab.is-active{
  background:var(--tone,var(--ink)); border-color:var(--tone,var(--ink)); color:var(--cream);
  box-shadow:0 8px 20px color-mix(in oklab, var(--tone,var(--ink)) 35%, transparent); font-weight:500;
}
.intro-tab.is-active .tone-dot{background:var(--cream); box-shadow:0 0 0 3px color-mix(in oklab, var(--cream) 30%, transparent);}

.intro-panel{
  display:grid; grid-template-columns:1fr 1fr; gap:64px;
  padding-top:8px;
}
.intro-panel-lede{grid-column:1 / -1; max-width:640px; margin-bottom:8px;}
.intro-panel-lede .eyebrow{margin-bottom:16px;}
.intro-panel-lede h3{
  font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(28px,3vw,38px);
  line-height:1.2; margin-bottom:14px;
}
.intro-panel-lede h3 em{font-style:italic; color:var(--rose-deep); font-weight:500;}
.intro-panel-lede p{font-size:15px; line-height:1.75; color:var(--taupe); max-width:520px;}
.intro-col-lbl{font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--rose-deep); margin-bottom:16px;}
.intro-good-list{display:flex; flex-direction:column; gap:12px;}

/* ---------- INTRO COMPARISON (Home, all formulas at once, card grid) ---------- */
.intro-cards-wrap{overflow-x:visible; padding-bottom:0; margin:0;}
.intro-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.intro-card{
  display:flex; flex-direction:column; padding:26px 24px 28px;
  border:1px solid var(--line); border-radius:16px; background:var(--cream);
  text-decoration:none; color:inherit; cursor:pointer;
  transition:box-shadow .4s var(--ease), border-color .4s var(--ease), transform .4s var(--ease);
  position:relative; overflow:hidden;
}
.intro-card > *{position:relative; z-index:1;}
.intro-card::before{content:''; position:absolute; z-index:0; pointer-events:none;}

/* Themed corner motif per formula, echoing its photography — quiet, continuous motion. */
.intro-card--splash::before{
  top:-70px; right:-70px; width:200px; height:200px; border-radius:50%;
  background:radial-gradient(circle, rgba(217,116,143,0.24) 0%, transparent 70%);
  animation:pc-breathe 7s ease-in-out infinite;
}
.intro-card--leaf::before{
  top:-40px; right:-60px; width:220px; height:220px;
  background:conic-gradient(from 0deg, rgba(91,122,62,0.24), transparent 30%, rgba(91,122,62,0.2) 55%, transparent 80%);
  animation:pc-drift-rotate 14s linear infinite;
}
.intro-card--wine::before{
  top:-60px; right:-60px; width:190px; height:190px; border-radius:50%;
  background:radial-gradient(circle, rgba(123,74,46,0.5) 0%, transparent 70%);
  animation:pc-breathe 9s ease-in-out infinite;
}
.intro-card--ocean::before{
  top:0; right:0; width:190px; height:120px; left:auto; bottom:auto;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 200'%3E%3Cpath d='M0,58 Q50,18 100,58 T200,58 T300,58 T400,58 L400,0 L0,0 Z' fill='%233D6373' fill-opacity='0.5'/%3E%3Cpath d='M0,98 Q50,58 100,98 T200,98 T300,98 T400,98 L400,48 Q350,88 300,48 T200,48 T100,48 T0,48 Z' fill='%235C8598' fill-opacity='0.45'/%3E%3Cpath d='M0,138 Q50,98 100,138 T200,138 T300,138 T400,138 L400,88 Q350,128 300,88 T200,88 T100,88 T0,88 Z' fill='%238FB3BF' fill-opacity='0.4'/%3E%3C/svg%3E");
  background-repeat:repeat-x;
  background-size:220px 120px;
  background-position:0 0;
  animation:pc-ocean-drift 18s linear infinite;
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, black 30%);
  mask-image:linear-gradient(90deg, transparent 0%, black 30%);
}
@keyframes pc-ocean-drift{
  from{background-position:0 0;}
  to{background-position:-220px 0;}
}
.intro-card--sun::before{
  top:-64px; right:-64px; width:180px; height:180px; border-radius:50%;
  background:
    repeating-conic-gradient(from 0deg, rgba(201,162,74,0.32) 0deg 14deg, transparent 14deg 30deg),
    radial-gradient(circle, rgba(201,162,74,0.28) 0%, transparent 62%);
  animation:pc-sun-spin 16s linear infinite;
}
.intro-card--amber::before{
  top:-70px; right:-70px; width:200px; height:200px; border-radius:50%;
  background:repeating-radial-gradient(circle, rgba(181,101,74,0.3) 0, rgba(181,101,74,0.3) 2px, transparent 3px, transparent 18px);
  animation:pc-ripple-scale 7s ease-in-out infinite;
}

@keyframes pc-drift-rotate{0%{transform:rotate(0deg);} 100%{transform:rotate(360deg);}}
@keyframes pc-sun-spin{0%{transform:rotate(0deg) scale(1); opacity:0.85;} 50%{transform:rotate(180deg) scale(1.08); opacity:1;} 100%{transform:rotate(360deg) scale(1); opacity:0.85;}}
@keyframes pc-ripple-scale{0%,100%{transform:scale(0.9); opacity:0.55;} 50%{transform:scale(1.12); opacity:0.9;}}

.intro-card-name{display:inline-flex; align-items:center; gap:9px; margin-bottom:20px;}
.intro-card-name .tone-dot{
  width:9px; height:9px; border-radius:50%; background:var(--tone,var(--ink)); flex-shrink:0;
  box-shadow:0 0 0 3px color-mix(in oklab, var(--tone,var(--ink)) 18%, transparent);
}
.intro-card-name span{font-size:12.5px; letter-spacing:1px; text-transform:uppercase; font-weight:500; color:var(--ink);}
.intro-card-lbl{font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:500; font-size:15px; color:var(--rose-deep); margin-bottom:8px;}
.intro-card-contains{font-size:13.5px; line-height:1.65; color:var(--taupe); margin-bottom:24px;}
.intro-card .intro-good-list{display:flex; flex-direction:column; gap:9px; margin-bottom:22px;}
.intro-card .good-for-item{font-size:13px; line-height:1.5;}
.intro-card .good-for-item .tick{font-size:13px;}
.intro-card .btn-link{font-size:12px; margin-top:auto;}

/* lined — quiet, minimal: no card box, just a top accent rule and column dividers */
.intro-cards--lined .intro-card{
  border:none; border-radius:0; border-top:2px solid var(--tone,var(--ink));
  padding:22px 20px 0; background:none;
}
.intro-cards--lined{gap:0; border:1px solid var(--line); border-radius:0;}
.intro-cards--lined .intro-card + .intro-card{border-left:1px solid var(--line); margin-left:0;}
.intro-cards--lined .intro-card:nth-child(3n+1){border-left:none;}
.intro-cards--lined .intro-card:nth-child(n+4){border-top:2px solid var(--line);}
.intro-cards--lined .intro-card-name span{color:var(--tone,var(--ink));}

/* cards — elevated boxed card, tone-tinted on hover, the default */
.intro-cards--cards .intro-card{
  box-shadow:0 1px 3px rgba(44,36,32,0.05);
}
.intro-cards--cards .intro-card:hover{
  border-color:var(--tone,var(--ink));
  box-shadow:0 16px 32px color-mix(in oklab, var(--tone,var(--ink)) 20%, transparent);
  transform:translateY(-4px);
}

/* striped — bold tone-colored header band, cream body */
.intro-cards--striped .intro-card{padding-top:0; overflow:hidden;}
.intro-cards--striped .intro-card-name{
  background:var(--tone,var(--ink)); margin:0 0 22px; padding:16px 24px;
  width:calc(100% + 48px); margin-left:-24px; box-sizing:border-box;
}
.intro-cards--striped .intro-card-name span{color:var(--cream);}
.intro-cards--striped .intro-card-name .tone-dot{background:var(--cream);}

/* ---------- MEDIA ---------- */
@media (max-width:980px){
  .hero{grid-template-columns:1fr;}
  .hero-image{min-height:480px;}
  .hero-copy{padding:64px 24px;}
  .strip-inner{grid-template-columns:1fr; gap:32px;}
  .strip-list{flex-wrap:wrap;}
  .strip-rows{grid-template-columns:1fr;}
  .strip-row:nth-child(odd){border-right:none; padding-right:0;}
  .strip-row:nth-child(even){padding-left:0;}
  .ingredient-head{padding-bottom:20px;}
  .ingredient-hero{grid-template-columns:1fr; gap:28px; padding:44px 0 56px;}
  .ingredient-hero .pct{font-size:84px;}
  .ingredient-hero .ds{font-size:20px; max-width:none;}
  .ingredient-rows{grid-template-columns:1fr;}
  .ingredient-row{grid-template-columns:110px 1fr; gap:24px; padding:28px 0; border-top:1px solid rgba(250,246,242,0.18);}
  .ingredient-row:first-child{border-top:none;}
  .ingredient-row:nth-child(odd), .ingredient-row:nth-child(even){border-right:none; border-left:none; padding-left:0; padding-right:0;}
  .ingredient-row .pct{font-size:40px;}
  .product-grid, .journal-grid{grid-template-columns:1fr 1fr;}
  .product-grid.two-up{grid-template-columns:1fr;}
  .product-card.featured, .journal-grid .product-card.featured{grid-row:auto; grid-column:span 1;}
  .ritual{grid-template-columns:1fr;}
  .formula-panel{grid-template-columns:1fr; gap:32px;}
  .formula-tabs{gap:8px;}
  .intro-panel{grid-template-columns:1fr;}
  .intro-cards{grid-template-columns:1fr 1fr;}
  .ki-grid{grid-template-columns:1fr 1fr; gap:32px;}
  .tech-inner{grid-template-columns:1fr; gap:40px;}
  .tech-figure{border-left:none; padding-left:0; border-top:1px solid rgba(250,246,242,0.18); padding-top:32px;}
  .clinical-grid{grid-template-columns:1fr 1fr;}
  .spec-grid{grid-template-columns:1fr; gap:48px; padding:64px 24px;}
  .ritual.reverse{direction:ltr;}
  .ritual-copy{padding:56px 32px;}
  .how-grid{grid-template-columns:1fr; gap:32px;}
  .footer-grid{grid-template-columns:1fr 1fr; gap:40px;}
  .contact{grid-template-columns:1fr; gap:64px; padding:80px 24px;}
  .section{padding:80px 0;}
  .wrap, .nav-inner, .strip-inner{padding-left:24px; padding-right:24px;}
  .nav-links{display:none;}
  .nav-toggle-label{
    display:flex; align-items:center; justify-content:center;
    width:44px; height:44px; cursor:pointer;
    position:fixed; top:17px; right:19px; left:auto; z-index:70;
  }
  .nav-right{padding-right:70px; gap:16px;}
  .nav-right .icon-btn{display:none;
  }
  .nav-toggle-label span, .nav-toggle-label span::before, .nav-toggle-label span::after{
    content:''; display:block; width:20px; height:1px; background:var(--ink); position:relative; transition:all .3s var(--ease);
  }
  .nav-toggle-label span::before{position:absolute; top:-6px;}
  .nav-toggle-label span::after{position:absolute; top:6px;}
  .nav-toggle:checked ~ .nav-toggle-label span{background:transparent;}
  .nav-toggle:checked ~ .nav-toggle-label span::before{transform:translateY(6px) rotate(45deg);}
  .nav-toggle:checked ~ .nav-toggle-label span::after{transform:translateY(-6px) rotate(-45deg);}

  /* mobile-nav — a true top-level sibling of <nav>, so nav's own sticky/backdrop-filter
     can never act as a containing block for this fixed panel. Default: slide-down dropdown. */
  .mobile-nav{
    display:flex; flex-direction:column; gap:0;
    position:fixed; top:65px; left:0; right:0; z-index:65;
    background:var(--cream); border-bottom:1px solid var(--line); padding:8px 24px 20px;
    transform:translateY(-12px); opacity:0; pointer-events:none; list-style:none; margin:0;
    transition:opacity .35s var(--ease), transform .35s var(--ease);
  }
  .mobile-nav a{display:block; padding:16px 0; border-bottom:1px solid var(--line); font-size:14px; color:var(--ink); text-decoration:none; text-transform:uppercase; letter-spacing:1px;}
  .mobile-nav a.is-current{color:var(--rose-deep);}
  .nav-toggle:checked ~ .mobile-nav{opacity:1; pointer-events:auto; transform:translateY(0);}

  /* cover variant — full-screen dark takeover menu, large serif links */
  .mobile-nav.mobile-nav--cover{
    top:0; inset:0; border-bottom:none; padding:0;
    background:var(--ink); align-items:center; justify-content:center;
    transform:none; opacity:0; visibility:hidden;
    transition:opacity .5s var(--ease), visibility 0s linear .5s;
  }
  .nav-toggle:checked ~ .mobile-nav--cover{opacity:1; visibility:visible; pointer-events:auto; transition:opacity .5s var(--ease);}
  .mobile-nav--cover li{width:100%; text-align:center; list-style:none;}
  .mobile-nav--cover a{
    padding:22px 0; border-bottom:none;
    font-family:'Cormorant Garamond',serif; font-size:34px; font-weight:300; font-style:italic;
    color:var(--cream); opacity:0.7; letter-spacing:0; text-transform:none;
    transform:translateY(14px); transition:opacity .5s var(--ease), transform .5s var(--ease), color .3s var(--ease);
  }
  .mobile-nav--cover a.is-current{color:var(--rose); opacity:1;}
  .nav-toggle:checked ~ .mobile-nav--cover a{transform:translateY(0); opacity:0.85;}
  .nav-toggle:checked ~ .mobile-nav--cover li:nth-child(1) a{transition-delay:.08s;}
  .nav-toggle:checked ~ .mobile-nav--cover li:nth-child(2) a{transition-delay:.14s;}
  .nav-toggle:checked ~ .mobile-nav--cover li:nth-child(3) a{transition-delay:.2s;}
  .nav-toggle:checked ~ .mobile-nav--cover li:nth-child(4) a{transition-delay:.26s;}
  .nav-toggle:checked ~ .mobile-nav--cover li:nth-child(5) a{transition-delay:.32s;}
  .nav-toggle:checked ~ .nav-toggle-label span, .nav-toggle:checked ~ .nav-toggle-label span::before, .nav-toggle:checked ~ .nav-toggle-label span::after{background:var(--ink);}
  .nav-toggle:checked ~ .nav-toggle-label.icon-on-dark span, .nav-toggle:checked ~ .nav-toggle-label.icon-on-dark span::before, .nav-toggle:checked ~ .nav-toggle-label.icon-on-dark span::after{background:var(--cream);}

  /* stagger variant — same dropdown panel, links cascade in one by one */
  .mobile-nav.mobile-nav--stagger li{opacity:0; transform:translateY(-8px); transition:opacity .35s var(--ease), transform .35s var(--ease); list-style:none;}
  .nav-toggle:checked ~ .mobile-nav--stagger li{opacity:1; transform:translateY(0);}
  .nav-toggle:checked ~ .mobile-nav--stagger li:nth-child(1){transition-delay:.05s;}
  .nav-toggle:checked ~ .mobile-nav--stagger li:nth-child(2){transition-delay:.1s;}
  .nav-toggle:checked ~ .mobile-nav--stagger li:nth-child(3){transition-delay:.15s;}
  .nav-toggle:checked ~ .mobile-nav--stagger li:nth-child(4){transition-delay:.2s;}
  .nav-toggle:checked ~ .mobile-nav--stagger li:nth-child(5){transition-delay:.25s;}
  .review-summary{flex-direction:column; gap:12px; text-align:center;}
  .review-summary .rs-detail{text-align:center;}
}


/* ---------- CART PAGE ---------- */
.cart-page{
  position:relative; isolation:isolate; overflow-x:clip;
  max-width:1240px; margin:0 auto; padding:110px 48px 120px;
}
.cart-page::before{
  content:''; position:absolute; z-index:-1; pointer-events:none;
  top:0; right:0; width:760px; height:760px; border-radius:50%;
  background:radial-gradient(circle at 50% 45%,
    color-mix(in oklch, var(--bronze) 12%, transparent) 0%,
    color-mix(in oklch, var(--bronze) 9%, transparent) 18%,
    color-mix(in oklch, var(--bronze) 6%, transparent) 32%,
    color-mix(in oklch, var(--bronze) 3.5%, transparent) 45%,
    color-mix(in oklch, var(--bronze) 1.5%, transparent) 58%,
    transparent 74%);
}
.cart-head{
  display:grid; grid-template-columns:1fr 0.85fr; gap:80px; align-items:end;
  padding-bottom:44px; margin-bottom:52px; border-bottom:1px solid var(--line);
}
.cart-head h1{
  font-family:'Cormorant Garamond',serif; font-weight:300;
  font-size:clamp(44px,5.4vw,72px); line-height:1.02; letter-spacing:-0.02em;
  color:var(--ink); margin:0;
}
.cart-head h1 em{font-style:italic; color:var(--bronze);}
.cart-head-right{display:flex; flex-direction:column; gap:14px; padding-bottom:8px;}
.chc-count{
  align-self:flex-start; font-size:11px; letter-spacing:1.6px; text-transform:uppercase;
  color:var(--ink); border:1px solid var(--line); border-radius:100px; padding:7px 16px;
  background:var(--card,var(--cream));
}
.cart-head-right p{font-size:14px; line-height:1.8; color:var(--taupe); margin:0; max-width:420px; text-wrap:pretty;}

/* empty state */
.cart-void{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  gap:18px; padding:96px 32px 104px;
  border:1px solid var(--line); background:var(--card,var(--cream));
}
.cart-void-mark{font-size:30px; color:var(--bronze); line-height:1;}
.cart-void-title{font-family:'Cormorant Garamond',serif; font-size:34px; font-weight:300; color:var(--ink);}
.cart-void p{font-size:14.5px; line-height:1.8; color:var(--taupe); max-width:460px; margin:0; text-wrap:pretty;}
.cart-void-actions{display:flex; flex-direction:column; align-items:center; gap:16px; margin-top:10px;}

/* two-column body */
.cart-grid{display:grid; grid-template-columns:1fr 380px; gap:64px; align-items:start;}
.cart-lines-head{
  display:grid; grid-template-columns:96px 1fr 132px 84px; gap:24px; align-items:center;
  padding-bottom:14px; border-bottom:1px solid var(--line);
  font-size:10.5px; letter-spacing:1.6px; text-transform:uppercase; color:var(--taupe);
}
.cart-lines-head span:nth-child(1){grid-column:1 / span 2;}
.cart-lines-head span:nth-child(2){grid-column:3; text-align:center;}
.cart-lines-head span:nth-child(3){grid-column:4; text-align:right;}
.cart-row{
  display:grid; grid-template-columns:96px 1fr 132px 84px; gap:24px; align-items:start;
  padding:26px 0; border-bottom:1px solid var(--line);
}
.cart-row-media{
  display:block; width:96px; height:120px; overflow:hidden;
  background:var(--card,var(--cream)); border:1px solid var(--line);
}
.cart-row-main{display:flex; flex-direction:column; gap:6px; min-width:0;}
.cart-row-name{
  font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:400; line-height:1.25;
  color:var(--ink); text-decoration:none;
}
.cart-row-name:hover{color:var(--bronze);}
.cart-row-size{font-size:11px; letter-spacing:1.4px; text-transform:uppercase; color:var(--taupe);}
.cart-row-note{font-size:13px; line-height:1.7; color:var(--taupe); margin-top:4px;}
.cart-row-remove{
  align-self:flex-start; margin-top:8px; background:none; border:none; padding:0; cursor:pointer;
  font-size:11px; letter-spacing:1.2px; text-transform:uppercase; color:var(--taupe);
  border-bottom:1px solid var(--line);
}
.cart-row-remove:hover{color:var(--ink); border-bottom-color:var(--ink);}
.cart-row-qty{display:flex; flex-direction:column; align-items:center; gap:10px;}
.qty-stepper{
  display:flex; align-items:center; border:1px solid var(--line);
  background:var(--card,var(--cream));
}
.qty-stepper button{
  width:34px; height:36px; background:none; border:none; cursor:pointer;
  font-size:15px; color:var(--ink); line-height:1;
}
.qty-stepper button:hover{background:color-mix(in oklch, var(--bronze) 10%, transparent);}
.qty-stepper span{
  min-width:32px; text-align:center; font-size:13px; color:var(--ink);
  border-left:1px solid var(--line); border-right:1px solid var(--line); line-height:36px;
}
.qty-each{font-size:11px; color:var(--taupe);}
.cart-row-total{
  text-align:right; font-family:'Cormorant Garamond',serif; font-size:22px; color:var(--ink);
}
.cart-lines-foot{
  display:flex; justify-content:space-between; align-items:center; gap:24px;
  padding-top:26px;
}
.clf-note{font-size:11.5px; color:var(--taupe);}

/* summary panel */
.cart-summary{
  position:sticky; top:104px;
  border:1px solid var(--line); background:var(--card,var(--cream));
  padding:30px 30px 32px;
  box-shadow:0 24px 60px -34px rgba(44,36,32,0.26);
}
.cart-summary::before{
  content:''; display:block; height:3px; margin:-30px -30px 26px;
  background:linear-gradient(to right, var(--bronze), var(--bronze-light), transparent);
}
.cs-ship{margin-bottom:26px;}
.cs-ship-top{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:10px;}
.cs-ship-lbl{font-size:11px; letter-spacing:1.4px; text-transform:uppercase; color:var(--ink); line-height:16px;}
.cs-ship-val{font-size:11.5px; color:var(--bronze); min-width:76px; flex-shrink:0; text-align:right; line-height:16px; height:16px; overflow:hidden;}
.cs-track{height:2px; background:var(--line); overflow:hidden;}
.cs-track-fill{display:block; height:100%; background:var(--bronze); transition:width 0.4s ease;}

/* Roll-up value change — the outgoing number slides up and fades while the
   new one rises in from below, instead of the text just snapping to a new
   value. Applied by assets/lavoue.js's animateValue() wherever a cart total
   changes (subtotal, total, "to go" amount, item count). */
.val-track{display:inline-block; position:relative; vertical-align:top; overflow:hidden; white-space:nowrap; transition:width .38s cubic-bezier(.16,1,.3,1);}
.val-track .val-positioned{position:absolute; top:0; left:0; width:100%; transition:transform .38s cubic-bezier(.16,1,.3,1), opacity .38s cubic-bezier(.16,1,.3,1);}
.val-track .val-incoming{transform:translateY(65%); opacity:0;}
.val-track .val-outgoing{transform:translateY(0); opacity:1;}
.val-track .val-outgoing.val-leaving{transform:translateY(-65%); opacity:0;}
.val-track .val-incoming.val-entering{transform:translateY(0); opacity:1;}
.cs-rows{display:flex; flex-direction:column; gap:12px; padding:22px 0; border-top:1px solid var(--line);}
.cs-row{display:flex; justify-content:space-between; gap:16px; font-size:13.5px; color:var(--ink);}
.cs-row--muted{color:var(--taupe); font-size:12.5px;}
.cs-row--discount{color:var(--bronze);}
.co-promo-msg{font-size:11.5px; margin:-8px 0 8px; color:var(--taupe);}
.co-promo-msg.is-error{color:#B5443C;}
.cs-total{
  display:flex; justify-content:space-between; align-items:baseline; gap:16px;
  padding:18px 0 22px; border-top:1px solid var(--line);
}
.cst-lbl{font-size:11px; letter-spacing:1.6px; text-transform:uppercase; color:var(--taupe);}
.cst-amt{font-family:'Cormorant Garamond',serif; font-size:32px; color:var(--ink); min-width:70px; flex-shrink:0; text-align:right;}
.cs-row [data-cart-subtotal]{min-width:56px; flex-shrink:0; text-align:right;}
.cs-checkout{width:100%;}
.cs-gift{margin-top:20px; padding-top:20px; border-top:1px solid var(--line);}
.cs-gift-toggle{
  display:flex; align-items:center; gap:10px; background:none; border:none; padding:0;
  cursor:pointer; font-size:12.5px; color:var(--ink);
}
.csg-box{
  width:16px; height:16px; border:1px solid var(--line); display:grid; place-items:center;
  font-size:10px; color:var(--bronze); line-height:1;
}
.cs-gift-field{
  width:100%; margin-top:14px; padding:12px; font-family:inherit; font-size:13px;
  color:var(--ink); background:var(--cream); border:1px solid var(--line); resize:vertical;
}
.cs-gift-field:focus{outline:none; border-color:var(--bronze);}
.cs-trust{display:flex; flex-direction:column; gap:12px; margin-top:24px; padding-top:22px; border-top:1px solid var(--line);}
.cst-item{display:grid; grid-template-columns:14px 1fr; gap:10px; font-size:12px; line-height:1.65; color:var(--taupe);}
.cst-i{color:var(--bronze); font-size:8px; line-height:1.9;}

/* recommendations */
.cart-recs{margin-top:104px; padding-top:64px; border-top:1px solid var(--line);}
.rec-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.rec-card{display:flex; flex-direction:column; border:1px solid var(--line); background:var(--card,var(--cream));}
.rec-media{display:block; height:190px; overflow:hidden; border-bottom:1px solid var(--line);}
.rec-body{display:flex; flex-direction:column; flex:1; padding:20px 22px 22px;}
.rec-name{font-family:'Cormorant Garamond',serif; font-size:21px; line-height:1.25; color:var(--ink); margin-bottom:8px;}
.rec-why{font-size:13px; line-height:1.7; color:var(--taupe); margin:0 0 18px;}
.rec-foot{display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:auto;}
.rec-price{font-family:'Cormorant Garamond',serif; font-size:19px; color:var(--ink);}
.rec-add{
  background:none; border:1px solid var(--ink); color:var(--ink); cursor:pointer;
  padding:8px 20px; font-size:10.5px; letter-spacing:1.5px; text-transform:uppercase;
}
.rec-add:hover{background:var(--ink); color:var(--cream);}

@media (max-width:1080px){
  .cart-grid{grid-template-columns:1fr; gap:48px;}
  .cart-summary{position:static;}
}
@media (max-width:860px){
  .cart-page{padding:80px 24px 90px;}
  .cart-head{grid-template-columns:1fr; gap:32px; align-items:start;}
  .cart-lines-head{display:none;}
  .cart-row{grid-template-columns:80px 1fr; gap:18px;}
  .cart-row-media{width:80px; height:100px;}
  .cart-row-qty{grid-column:2; align-items:flex-start; flex-direction:row; gap:14px; align-items:center;}
  .cart-row-total{grid-column:2; text-align:left;}
  .rec-grid{grid-template-columns:1fr;}
  .cart-lines-foot{flex-direction:column; align-items:flex-start; gap:12px;}
}


/* ---------- FIRMING SERUM FAQ ---------- */
.faq-page{
  position:relative; isolation:isolate; overflow-x:clip;
  max-width:1240px; margin:0 auto; padding:110px 48px 120px;
}
.faq-page::before{
  content:''; position:absolute; z-index:-1; pointer-events:none;
  top:0; right:0; width:740px; height:740px; border-radius:50%;
  background:radial-gradient(circle at 50% 45%,
    color-mix(in oklch, var(--bronze) 13%, transparent) 0%,
    color-mix(in oklch, var(--bronze) 10%, transparent) 18%,
    color-mix(in oklch, var(--bronze) 6.5%, transparent) 32%,
    color-mix(in oklch, var(--bronze) 3.5%, transparent) 45%,
    color-mix(in oklch, var(--bronze) 1.5%, transparent) 58%,
    transparent 74%);
}
.faq-head{
  display:grid; grid-template-columns:1fr 320px; gap:80px; align-items:start;
  padding-bottom:52px; margin-bottom:60px; border-bottom:1px solid var(--line);
}
.faq-head h1{
  font-family:'Cormorant Garamond',serif; font-weight:300;
  font-size:clamp(44px,5.4vw,72px); line-height:1.02; letter-spacing:-0.02em;
  color:var(--ink); margin:0 0 26px;
}
.faq-head h1 em{font-style:italic; color:var(--bronze);}
.faq-lede{font-size:15px; line-height:1.85; color:var(--taupe); margin:0; max-width:560px; text-wrap:pretty;}
.faq-product{
  display:flex; flex-direction:column; gap:5px; margin-top:32px;
  padding:16px 20px; border-left:1px solid var(--bronze);
  background:color-mix(in oklch, var(--bronze) 4%, transparent);
}
.fp-name{font-family:'Cormorant Garamond',serif; font-size:20px; color:var(--ink);}
.fp-meta{font-size:10.5px; letter-spacing:1.5px; text-transform:uppercase; color:var(--taupe);}

.faq-toc{
  display:flex; flex-direction:column;
  border:1px solid var(--line); background:var(--card,var(--cream)); padding:22px 24px 10px;
}
.ftoc-lbl{
  font-size:10.5px; letter-spacing:1.6px; text-transform:uppercase; color:var(--taupe);
  padding-bottom:14px; border-bottom:1px solid var(--line);
}
.faq-toc a{
  padding:14px 0; border-bottom:1px solid var(--line); text-decoration:none;
  font-size:13.5px; color:var(--ink);
}
.faq-toc a:last-child{border-bottom:none;}
.faq-toc a:hover{color:var(--bronze);}

.faq-groups{display:flex; flex-direction:column; gap:76px;}
.faq-group{scroll-margin-top:100px;}
.fg-head{display:grid; grid-template-columns:52px 1fr; gap:18px; align-items:baseline; margin-bottom:30px;}
.fg-num{font-family:'Cormorant Garamond',serif; font-size:20px; color:var(--bronze);}
.fg-head h2{
  font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(30px,3.4vw,42px);
  line-height:1.1; letter-spacing:-0.015em; color:var(--ink); margin:0;
}
.fg-head h2 em{font-style:italic; color:var(--bronze);}
.fg-list{border-top:1px solid var(--line);}

.faq-item{border-bottom:1px solid var(--line);}
.faq-item summary{
  display:flex; justify-content:space-between; align-items:center; gap:24px;
  padding:22px 0; cursor:pointer; list-style:none;
}
.faq-item summary::-webkit-details-marker{display:none;}
.fi-q{font-size:15.5px; line-height:1.55; color:var(--ink); text-wrap:pretty;}
.faq-item summary:hover .fi-q{color:var(--bronze);}
.fi-mark{position:relative; flex:none; width:13px; height:13px;}
.fi-mark::before, .fi-mark::after{
  content:''; position:absolute; background:var(--bronze); transition:transform 0.25s ease, opacity 0.25s ease;
}
.fi-mark::before{top:6px; left:0; width:13px; height:1px;}
.fi-mark::after{left:6px; top:0; width:1px; height:13px;}
.faq-item[open] .fi-mark::after{transform:rotate(90deg); opacity:0;}
.fi-a{padding:0 52px 26px 0; max-width:760px;}
.fi-a p{font-size:14px; line-height:1.85; color:var(--taupe); margin:0; text-wrap:pretty;}
.fi-a p + p{margin-top:14px;}
.fi-steps{
  display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:20px;
  padding:16px 18px; border:1px solid var(--line); background:var(--card,var(--cream));
  font-size:11px; letter-spacing:1.3px; text-transform:uppercase; color:var(--taupe);
}
.fi-steps em{font-style:italic; text-transform:none; letter-spacing:0.3px; opacity:0.75;}
.fis-sep{color:var(--bronze); letter-spacing:0;}
.fis-here{color:var(--ink); border-bottom:1px solid var(--bronze); padding-bottom:2px;}

.faq-pending{
  display:flex; flex-direction:column; gap:10px; margin-top:32px;
  padding:24px 26px; border:1px dashed var(--line); background:var(--card,var(--cream));
}
.fp-lbl{font-size:10.5px; letter-spacing:1.6px; text-transform:uppercase; color:var(--bronze);}
.faq-pending p{font-size:13.5px; line-height:1.8; color:var(--taupe); margin:0; max-width:660px; text-wrap:pretty;}

.faq-foot{
  display:flex; justify-content:space-between; align-items:center; gap:48px;
  margin-top:96px; padding:40px 42px;
  border:1px solid var(--line); background:var(--card,var(--cream));
  box-shadow:0 24px 60px -34px rgba(44,36,32,0.24);
}
.ff-title{font-family:'Cormorant Garamond',serif; font-size:30px; font-weight:300; color:var(--ink); margin-bottom:8px;}
.ff-left p{font-size:13.5px; line-height:1.8; color:var(--taupe); margin:0; max-width:480px;}

@media (max-width:1080px){
  .faq-head{grid-template-columns:1fr; gap:44px;}
  .faq-toc{order:-1;}
}
@media (max-width:860px){
  .faq-page{padding:80px 24px 90px;}
  .faq-groups{gap:56px;}
  .fg-head{grid-template-columns:1fr; gap:8px;}
  .fi-a{padding-right:0;}
  .faq-foot{flex-direction:column; align-items:flex-start; gap:24px; padding:30px 26px;}
}


/* product-page FAQ block */
.pd-faq{display:grid; grid-template-columns:1fr 300px; gap:56px; align-items:start;}
.pd-faq .fg-list{border-top:1px solid var(--line);}
.pd-faq-more{
  display:flex; flex-direction:column; gap:10px; text-decoration:none;
  padding:24px 26px; border:1px solid var(--line); background:var(--card,var(--cream));
}
.pd-faq-more:hover{border-color:var(--bronze);}
.pfm-lbl{font-size:10.5px; letter-spacing:1.6px; text-transform:uppercase; color:var(--bronze);}
.pfm-txt{font-size:13px; line-height:1.75; color:var(--taupe);}
@media (max-width:900px){
  .pd-faq{grid-template-columns:1fr; gap:32px;}
}


/* ---------- CHECKOUT PAGE ---------- */
.co-grid{display:grid; grid-template-columns:1fr 400px; gap:64px; align-items:start;}
.co-steps{display:flex; flex-direction:column; gap:46px;}
.co-step-head{display:grid; grid-template-columns:30px 1fr; gap:16px; align-items:baseline; margin-bottom:26px; padding-bottom:14px; border-bottom:1px solid var(--line);}
.co-num{font-family:'Cormorant Garamond',serif; font-size:26px; color:var(--bronze); line-height:1;}
.co-step-head h2{font-family:'Cormorant Garamond',serif; font-weight:300; font-size:28px; letter-spacing:-0.01em; color:var(--ink); margin:0 0 4px;}
.co-step-head p{font-size:12.5px; line-height:1.7; color:var(--taupe); margin:0; max-width:440px;}
.co-fields{display:grid; grid-template-columns:1fr 1fr; gap:0 24px;}
.co-fields .form-field{margin-bottom:22px;}
.co-span{grid-column:1 / -1;}
.co-opts{display:flex; flex-direction:column; gap:12px;}
.co-opt{
  display:grid; grid-template-columns:14px 1fr auto; gap:16px; align-items:center;
  width:100%; text-align:left; cursor:pointer; padding:18px 20px;
  background:var(--card,var(--cream)); border:1px solid var(--line); border-radius:0;
  font-family:'Inter',sans-serif; transition:border-color .35s var(--ease), background .35s var(--ease);
}
.co-opt:hover{border-color:var(--bronze-light);}
.co-opt.is-on{border-color:var(--bronze); background:color-mix(in oklch, var(--bronze) 5%, var(--card,var(--cream)));}
.co-dot{width:11px; height:11px; border:1px solid var(--taupe); border-radius:50%;}
.co-opt.is-on .co-dot{border-color:var(--bronze); background:var(--bronze); box-shadow:inset 0 0 0 2px var(--card,var(--cream));}
.co-opt-name{font-size:13.5px; color:var(--ink); display:block; margin-bottom:3px;}
.co-opt-sub{font-size:11.5px; color:var(--taupe); line-height:1.6;}
.co-opt-price{font-size:12.5px; letter-spacing:1px; text-transform:uppercase; color:var(--ink); white-space:nowrap;}
.co-secure{display:flex; align-items:center; gap:9px; margin-top:18px; font-size:11.5px; color:var(--taupe);}
.co-secure span:first-child{color:var(--bronze); font-size:9px;}
.co-back{margin-top:44px; padding-top:26px; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap;}
.co-back-note{font-size:11.5px; color:var(--taupe);}

/* summary column */
.co-sum{position:sticky; top:104px; border:1px solid var(--line); background:var(--card,var(--cream)); padding:30px; box-shadow:0 24px 60px -34px rgba(44,36,32,0.26);}
.co-sum::before{content:''; display:block; height:3px; margin:-30px -30px 26px; background:linear-gradient(to right, var(--bronze), var(--bronze-light), transparent);}
.co-sum-head{display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:22px;}
.co-sum-head h3{font-family:'Cormorant Garamond',serif; font-weight:400; font-size:22px; color:var(--ink); margin:0;}
.co-sum-head a{font-size:11px; letter-spacing:1.2px; text-transform:uppercase; color:var(--taupe); text-decoration:none; border-bottom:1px solid var(--line);}
.co-sum-head a:hover{color:var(--ink); border-bottom-color:var(--ink);}
.co-mini-list{display:flex; flex-direction:column; gap:18px; padding-bottom:22px; border-bottom:1px solid var(--line);}
.co-mini{display:grid; grid-template-columns:58px 1fr auto; gap:16px; align-items:start;}
.co-mini-media{display:block; width:58px; height:74px; overflow:hidden; border:1px solid var(--line); background:var(--cream);}
.co-mini-name{font-family:'Cormorant Garamond',serif; font-size:17px; line-height:1.3; color:var(--ink); text-decoration:none; display:block;}
.co-mini-name:hover{color:var(--bronze);}
.co-mini-meta{font-size:11px; letter-spacing:1.2px; text-transform:uppercase; color:var(--taupe); margin-top:5px;}
.co-mini-amt{font-family:'Cormorant Garamond',serif; font-size:17px; color:var(--ink);}
.co-promo{display:grid; grid-template-columns:1fr auto; gap:0; padding:20px 0; border-bottom:1px solid var(--line);}
.co-promo input{border:1px solid var(--line); border-right:none; background:var(--cream); color:var(--ink); font-family:'Inter',sans-serif; font-size:12.5px; padding:12px 14px; outline:none;}
.co-promo input:focus{border-color:var(--bronze);}
.co-promo button{border:1px solid var(--ink); background:var(--ink); color:var(--cream); font-size:10.5px; letter-spacing:1.4px; text-transform:uppercase; padding:0 20px; cursor:pointer;}
.co-promo-applied{
  grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:13px 16px; background:rgba(138,109,63,0.07); border:1px solid rgba(138,109,63,0.22);
}
.co-promo-applied-label{display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--ink);}
.co-promo-applied-label::before{content:'✓'; color:var(--bronze); font-size:12px; line-height:1;}
.co-promo-applied-label strong{color:var(--bronze); font-weight:600; letter-spacing:.2px;}
.co-promo .co-promo-remove{
  background:none; border:none; padding:0; cursor:pointer;
  font-size:10.5px; letter-spacing:1.2px; text-transform:uppercase; color:var(--taupe);
  border-bottom:1px solid var(--line); white-space:nowrap;
}
.co-promo .co-promo-remove:hover{color:var(--ink); border-bottom-color:var(--ink);}
.co-done{
  max-width:620px; margin:0 auto; text-align:center; padding:90px 40px 100px;
  border:1px solid var(--line); background:var(--card,var(--cream));
}
.co-done-mark{font-size:22px; color:var(--bronze); margin-bottom:22px;}
.co-done h1{font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(34px,4vw,52px); line-height:1.08; color:var(--ink); margin:0 0 18px;}
.co-done h1 em{font-style:italic; color:var(--bronze);}
.co-done p{font-size:14px; line-height:1.85; color:var(--taupe); margin:0 auto 12px; max-width:420px; text-wrap:pretty;}
.co-done-ref{margin-top:26px; font-size:11px; letter-spacing:1.6px; text-transform:uppercase; color:var(--ink);}
.co-done-actions{display:flex; gap:22px; justify-content:center; align-items:center; margin-top:34px; flex-wrap:wrap;}
@media (max-width:1000px){
  .co-grid{grid-template-columns:1fr; gap:48px;}
  .co-sum{position:static;}
}
@media (max-width:640px){
  .co-fields{grid-template-columns:1fr;}
}

/* Below tablet width, two narrow squeezed columns make card copy wrap into
   many lines and the whole grid stretch on and on — one full-width column
   gives each card room to breathe instead. */
@media (max-width:600px){
  .product-grid, .journal-grid, .ki-grid, .clinical-grid, .intro-cards{
    grid-template-columns:1fr;
  }
  .pc-image, .product-card.featured .pc-image{aspect-ratio:1/1;}
  /* Full-bleed width (not the 56px side inset) so the photo isn't narrower
     than the "LAVOÙE" wordmark overlaid on it; back to the full-viewport
     height default — the shorter version read as less striking. */
  .splash-bg{inset:40px 0;}
}


.btn-secondary{
  background:transparent; color:var(--ink); border:1px solid var(--ink);
  padding:17px 24px; font-size:12px; letter-spacing:1.6px; text-transform:uppercase;
  font-family:'Inter',sans-serif; cursor:pointer; display:inline-block;
  transition:background .35s var(--ease), color .35s var(--ease);
}
.btn-secondary:hover{background:var(--ink); color:var(--cream);}


/* ---------- JOURNAL: two content types ---------- */
.journal-band{
  display:flex; align-items:flex-end; justify-content:space-between; gap:24px;
  border-top:1px solid var(--line); padding-top:32px; margin-bottom:38px;
}
.jb-title{font-family:'Cormorant Garamond',serif; font-weight:300; font-size:32px; line-height:1.15; letter-spacing:-0.01em;}
.jb-title em{font-style:italic; color:var(--rose-deep); font-weight:500;}
.jb-meta{font-size:10.5px; letter-spacing:1.6px; text-transform:uppercase; color:var(--taupe); white-space:nowrap; padding-bottom:6px;}

.journal-empty{
  border:1px dashed var(--line); background:var(--card,var(--cream));
  display:grid; grid-template-columns:1fr 1fr; gap:64px; padding:56px 52px;
}
.je-lbl{font-size:10.5px; letter-spacing:1.6px; text-transform:uppercase; color:var(--rose-deep); margin-bottom:18px;}
.je-title{font-family:'Cormorant Garamond',serif; font-weight:300; font-size:30px; line-height:1.2; margin-bottom:18px;}
.je-title em{font-style:italic; color:var(--rose-deep); font-weight:500;}
.journal-empty p{font-size:14px; line-height:1.85; color:var(--taupe); max-width:400px; text-wrap:pretty;}
.je-slots{border-top:1px solid var(--line);}
.je-slot{display:grid; grid-template-columns:40px 1fr; gap:16px; padding:18px 0; border-bottom:1px solid var(--line);}
.je-slot .n{font-family:'Cormorant Garamond',serif; font-size:18px; color:var(--rose-deep); line-height:1.3;}
.je-slot .t{font-size:13px; letter-spacing:0.3px; color:var(--ink);}
.je-slot .d{font-size:12.5px; line-height:1.7; color:var(--taupe); margin-top:5px; text-wrap:pretty;}
@media (max-width:900px){ .journal-empty{grid-template-columns:1fr; gap:36px; padding:36px 26px;} }

/* ---------- ARTICLE: shared post template, both content types ---------- */
.article-kind{
  display:inline-flex; align-items:center; gap:10px; margin-bottom:22px;
  font-size:10.5px; letter-spacing:1.6px; text-transform:uppercase; color:var(--rose-deep);
}
.article-kind::before{content:''; width:26px; height:1px; background:var(--rose-deep);}
.article-standfirst{
  font-family:'Cormorant Garamond',serif; font-weight:300; font-size:24px; line-height:1.5;
  color:var(--taupe); max-width:640px; margin:0 0 26px; text-wrap:pretty;
}
.article-body .field-slot{
  border:1px dashed var(--line); padding:22px 24px; margin:0 0 4px;
  display:flex; flex-direction:column; gap:8px;
}
.field-slot .fs-lbl{
  font-family:'JetBrains Mono','SF Mono',ui-monospace,Menlo,monospace;
  font-size:11px; letter-spacing:0.6px; color:var(--rose-deep);
}
.field-slot .fs-note{font-size:13px; line-height:1.75; color:var(--taupe); text-wrap:pretty;}
.article-body .field-group{margin:40px 0 48px; display:flex; flex-direction:column;}
.article-body .field-group > h2{margin-bottom:20px;}

/* ---- Trust rows (cart drawer + product page) ---- */
.trust-row{list-style:none; margin:18px 0 0; padding:0; display:flex; flex-direction:column; gap:8px; align-items:center;}
.trust-row li{display:flex; align-items:center; gap:8px; font-size:11.5px; color:var(--taupe); letter-spacing:.2px; line-height:1.5;}
.trust-row li svg{flex:none; color:var(--bronze);}
.trust-row--pd{align-items:flex-start; margin-top:20px;}
.trust-row--pd li::before{content:""; width:4px; height:4px; border-radius:50%; background:var(--bronze); flex:none;}

/* ---- Sticky mobile buy bar ---- */
.pd-sticky{display:none;}
@media (max-width:760px){
  .pd-sticky{
    position:fixed; left:0; right:0; bottom:0; z-index:60;
    display:flex; align-items:center; justify-content:space-between; gap:14px;
    padding:12px 16px calc(12px + env(safe-area-inset-bottom));
    background:var(--cream, #faf7f2); border-top:1px solid var(--line);
    box-shadow:0 -8px 24px rgba(0,0,0,.06);
    transform:translateY(110%); transition:transform .35s var(--ease);
  }
  .pd-sticky[hidden]{display:flex; visibility:hidden;}
  .pd-sticky.is-visible{transform:translateY(0); visibility:visible;}
  .pd-sticky-info{display:flex; flex-direction:column; min-width:0;}
  .pd-sticky-title{font-size:12px; color:var(--taupe); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  .pd-sticky-price{font-family:'Cormorant Garamond',serif; font-size:20px;}
  .pd-sticky .btn-primary{flex:none; padding-left:26px; padding-right:26px;}
}


/* 2026-09-25: hide design-tool image labels (e.g. "// about-hero.png") on photo placeholders; they read as an unfinished site to Google Merchant Center. */
.photo-placeholder .ph-label{ display:none !important; }
