/* ============================================================================
   SORA LIFE V2 — HOMEPAGE
   Hero, category rail, product rails, editorial, story, trust strip.
   Image-led surfaces get --slv2-r-art (4px). Everything structural is 2px.
   ========================================================================= */

.v2-home { background:var(--slv2-ivory); padding-bottom:40px; }

/* ------------------------------------------------------------------ hero */
.v2-hero {
  position:relative; overflow:hidden;
  margin-inline:var(--slv2-gutter); margin-top:16px;
  border:1px solid var(--slv2-line);
  border-radius:var(--slv2-r-art);
  background:var(--slv2-cream);
}
.v2-hero__slide { position:relative; display:none; }
.v2-hero__slide.is-active { display:block; }
.v2-hero__media {
  position:relative; width:100%; aspect-ratio:358 / 292; overflow:hidden; background:var(--slv2-sand);
}
/* The parallax wrapper is inset so its ±40px transform stays inside the
   overflow-hidden frame and can never expose an edge. */
.v2-hero__par { position:absolute; inset:-44px 0; }
.v2-hero__img { width:100%; height:100%; object-fit:cover; display:block; }
/* Copy sits directly on the artwork: no scrim, panel or frosted haze. */
.v2-hero__ui {
  position:absolute; inset:0; z-index:3;
  display:flex; flex-direction:column; justify-content:center;
  width:70%; padding:20px 16px;
}
.v2-hero__kicker {
  font-family:var(--slv2-sans);
  font-size:9.5px; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  color:var(--slv2-gold-ink); margin:0 0 6px;
}
.v2-hero__title {
  font-family:var(--slv2-sans);
  font-size:27px; font-weight:400; line-height:1.09; letter-spacing:-.014em;
  margin:0 0 8px; color:var(--slv2-f900); text-wrap:balance; white-space:pre-line;
}
.v2-hero__sub {
  font-family:var(--slv2-sans);
  font-size:12px; line-height:1.5; color:var(--slv2-ink-2);
  margin:0 0 14px; max-width:26ch;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.v2-hero__ui .v2-btn { white-space:nowrap; }
.v2-hero__sub-compact, .v2-hero__cta-compact { display:none; }
.v2-hero__dots { position:absolute; left:0; right:0; bottom:12px; z-index:4; display:flex; justify-content:center; gap:5px; }
.v2-hero__dots button {
  width:12px; height:2px; border-radius:0; border:0; padding:0; cursor:pointer;
  background:rgba(22,33,27,.26); transition:width .2s ease, background .2s ease;
}
.v2-hero__dots button.is-on { background:var(--slv2-f700); width:24px; }
.v2-hero__dots button:focus-visible { outline:2px solid var(--slv2-f500); outline-offset:3px; }
.v2-hero__arrow { display:none; }

@media (max-width: 767px) {
  /* Preserve the landscape canvas, with enough height for narrow phones. */
  .v2-home .v2-hero__media {
    aspect-ratio:358 / 200; height:auto; min-height:clamp(205px, 58vw, 225px); max-height:225px;
  }
  .v2-home .v2-hero { margin-top:12px; }
  .v2-hero__par { inset:0; }
  .v2-hero:not(.v2-hero--product) .v2-hero__img { object-position:36% center !important; }
  /* One copy scale for collection, configured and product-led slides. */
  .v2-home .v2-hero .v2-hero__ui {
    width:47%; padding:14px 0 14px 12px;
    justify-content:center; transform:none;
  }
  .v2-home .v2-hero__slide--collection .v2-hero__ui,
  .v2-home .v2-hero--product .v2-hero__ui { width:52%; }
  .v2-home .v2-hero .v2-hero__ui > * { flex-shrink:0; }
  .v2-home .v2-hero .v2-hero__kicker {
    font-size:8px; font-weight:600; line-height:1.3; letter-spacing:.09em;
    margin:0 0 6px; color:var(--slv2-f900);
  }
  .v2-home .v2-hero .v2-hero__title {
    font-family:var(--slv2-disp); font-size:clamp(24px, 6.5vw, 27px);
    font-weight:400; line-height:1.06; letter-spacing:-.01em;
    margin:0 0 7px; max-width:none; width:auto;
    text-shadow:0 1px 1px rgba(255,255,255,.35);
  }
  .v2-home .v2-hero .v2-hero__title--long { font-size:clamp(22px, 6vw, 24px); }
  .v2-home .v2-hero .v2-hero__sub {
    max-width:23ch; margin:0 0 10px;
    font-size:clamp(11.5px, 3.15vw, 13px); font-weight:500; line-height:1.35; letter-spacing:0;
    color:var(--slv2-f900); -webkit-line-clamp:3;
    text-shadow:0 1px 1px rgba(255,255,255,.75);
  }
  .v2-home .v2-hero__slide--collection .v2-hero__img {
    object-position:left top !important;
  }
  .v2-home .v2-hero__sub-full, .v2-home .v2-hero__cta-full { display:none; }
  .v2-home .v2-hero__sub-compact, .v2-home .v2-hero__cta-compact { display:inline; }
  .v2-home .v2-hero .v2-btn {
    height:36px; max-width:100%; padding:0 10px;
    font-size:10px; font-weight:600; line-height:1.2; letter-spacing:.01em;
    white-space:normal; text-align:center;
  }
  /* Keep one compact copy stack. The narrow CTA clears the artwork's low,
     leftmost package instead of being pushed to the bottom of the slide. */
  .v2-home .v2-hero__slide--collection .v2-hero__ui { justify-content:flex-start; padding-top:4px; }
  .v2-home .v2-hero__slide--collection .v2-hero__kicker {
    width:max-content; white-space:nowrap; font-size:7.5px; margin-bottom:3px;
  }
  .v2-home .v2-hero__slide--collection .v2-hero__title {
    font-size:clamp(22px, 6.25vw, 26px); width:100%;
    line-height:1.1; letter-spacing:0; margin-bottom:4px;
  }
  .v2-home .v2-hero__slide--collection .v2-hero__sub {
    font-size:clamp(11.5px, 3vw, 12.5px); line-height:1.25; margin-bottom:0;
  }
  .v2-home .v2-hero__slide--collection .v2-hero__ui > div:last-child { margin-top:8px; }
  .v2-home .v2-hero__slide--collection .v2-btn {
    width:auto; height:36px; padding-inline:12px; white-space:nowrap;
  }
}

@media (min-width: 768px) {
  .v2-hero { margin-inline:auto; max-width:var(--slv2-container); width:calc(100% - 2 * var(--slv2-gutter)); margin-top:24px; }
  .v2-hero__media { aspect-ratio:2 / 1; }
  .v2-hero__ui { width:58%; padding:0 44px; }
  .v2-hero__title { font-size:38px; }
  .v2-hero__sub { font-size:14px; max-width:34ch; }
  .v2-hero__kicker { font-size:11px; }
}
@media (min-width: 1024px) {
  .v2-hero__media { aspect-ratio:1192 / 470; }
  .v2-hero__ui { width:52%; padding:0 64px; }
  .v2-hero__title { font-size:52px; line-height:1.04; letter-spacing:-.022em; margin-bottom:14px; }
  .v2-hero__sub { font-size:16px; margin-bottom:26px; }
  .v2-hero__arrow {
    display:grid; place-items:center; position:absolute; top:50%; z-index:5;
    width:36px; height:36px; transform:translateY(-50%);
    background:rgba(251,248,241,.9); border:1px solid var(--slv2-line);
    border-radius:var(--slv2-r-ui); color:var(--slv2-ink-2); cursor:pointer; padding:0;
  }
  .v2-hero__arrow--prev { left:16px; }
  .v2-hero__arrow--next { right:16px; }
  .v2-hero__arrow:hover { background:var(--slv2-ivory); color:var(--slv2-f700); }
  .v2-hero__arrow:focus-visible { outline:2px solid var(--slv2-f500); outline-offset:2px; }
}
/* Keep collection copy clear of the low, leftmost package in this artwork.
   Tablet uses the existing compact copy; the desktop canvas stays unchanged. */
@media (min-width: 768px) and (max-width: 1023px) {
  .v2-home .v2-hero__slide--collection .v2-hero__ui { padding-left:28px; }
  .v2-home .v2-hero__slide--collection .v2-hero__sub { max-width:15ch; }
  .v2-home .v2-hero__slide--collection .v2-hero__sub-full,
  .v2-home .v2-hero__slide--collection .v2-hero__cta-full { display:none; }
  .v2-home .v2-hero__slide--collection .v2-hero__sub-compact,
  .v2-home .v2-hero__slide--collection .v2-hero__cta-compact { display:inline; }
  .v2-home .v2-hero__slide--collection .v2-btn { padding-inline:12px; font-size:11px; }
}
@media (min-width: 1024px) {
  .v2-home .v2-hero__slide--collection .v2-hero__sub { max-width:25ch; }
}
@media (prefers-reduced-motion: reduce) { .v2-hero__dots button { transition:none; } }

/* ------------------------------------------------ PRODUCT-LED HERO (V2)
   Copy left, product central-right, warm ivory environment, travertine
   plinth, restrained botanical depth. The environment is CSS; the product is
   the real catalogue image. Artwork radius is capped at --slv2-r-art (4px).
   ---------------------------------------------------------------------- */
.v2-hero--product { background:transparent; border:0; }
.v2-hero__stage {
  position:relative; overflow:hidden;
  border:1px solid var(--slv2-line);
  border-radius:var(--slv2-r-art);
  aspect-ratio:358 / 300;
  background:var(--slv2-cream);
}
@media (max-width: 767px) {
  .v2-home .v2-hero__stage {
    aspect-ratio:358 / 200; height:auto; min-height:clamp(205px, 58vw, 225px); max-height:225px;
  }
}
.v2-hero__ground {
  position:absolute; inset:0; z-index:0;
  background:
    radial-gradient(72% 54% at 22% 8%, rgba(255,255,255,.85), transparent 70%),
    radial-gradient(122% 100% at 70% 14%, #FDFAF3 0%, #F5ECDC 44%, #EADCC4 100%);
}
/* botanical depth — soft, behind the product plane, never overlapping copy */
.v2-hero__leaf {
  position:absolute; z-index:1; border-radius:0 70% 0 70%;
  background:linear-gradient(148deg, #A9BC95 0%, #7C9866 52%, #5C7A4E 100%);
  /* heavily softened: this is depth behind the product plane, not a graphic */
  filter:blur(6px); opacity:.24;
}
.v2-hero__leaf--a { width:17%; aspect-ratio:1/2.1; right:3%;  bottom:40%; transform:rotate(28deg) scaleX(-1); }
.v2-hero__leaf--b { width:11%; aspect-ratio:1/2.1; right:26%; bottom:56%; transform:rotate(-16deg); opacity:.15; }
/* travertine plinth — the product is grounded on this, never floating */
/* travertine slab: a light top face, a darker front face and a soft cast
   shadow — enough to read as stone, restrained enough to stay background */
.v2-hero__plinth {
  position:absolute; z-index:2; left:74%; bottom:11%; transform:translateX(-50%);
  width:50%; height:9%; border-radius:var(--slv2-r-ui);
  background:
    linear-gradient(180deg, #F5EDDC 0%, #EFE4CE 38%, #DFCFAF 39%, #CDB693 100%);
  box-shadow:0 18px 26px -16px rgba(84,62,28,.55);
}
.v2-hero__plinth::after { content:""; position:absolute; inset:0 0 auto; height:1.5px; background:rgba(255,255,255,.66); }
.v2-hero__contact {
  position:absolute; z-index:3; left:74%; bottom:12%; transform:translateX(-50%);
  width:34%; height:9%;
  background:radial-gradient(50% 100% at 50% 62%, rgba(74,54,22,.34), transparent 72%);
}
.v2-hero__productwrap {
  position:absolute; z-index:4; left:74%; bottom:16.5%; transform:translateX(-50%);
  width:48%; height:68%;
  display:flex; align-items:flex-end; justify-content:center;
}
.v2-hero__product { width:100%; height:100%; display:block; }
.v2-hero__product picture, .v2-hero__product img { width:100%; height:100%; display:block; }
.v2-hero__product img {
  object-fit:contain; object-position:center bottom;
  /* drops the asset's white studio background into the cream ground without
     editing the file or altering the packaging */
  mix-blend-mode:multiply;
}
.v2-hero--product .v2-hero__ui {
  position:absolute; inset:0; z-index:5;
  display:flex; flex-direction:column; justify-content:center;
  width:50%; padding:20px 0 20px 16px;
}
/* Product names are long. At phone widths the display face is stepped down so
   a two-word product name holds two lines instead of three, which keeps the
   copy block clear of the product. */
.v2-hero--product .v2-hero__title { font-size:23px; }
@media (max-width: 359px) { .v2-hero--product .v2-hero__title { font-size:21px; } }
@media (max-width: 767px) {
  .v2-home .v2-hero__productwrap { left:76%; width:44%; }
}
.v2-hero__meta {
  font-family:var(--slv2-sans);
  font-size:10.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:var(--slv2-ink-4); margin:0 0 14px;
}
@media (min-width: 768px) {
  .v2-hero__stage { aspect-ratio:2 / 1; }
  .v2-hero--product .v2-hero__ui { width:40%; padding:0 0 0 44px; }
  .v2-hero--product .v2-hero__title { font-size:38px; }
  .v2-hero__productwrap { left:64%; width:38%; height:72%; bottom:16%; }
  .v2-hero__plinth  { left:64%; width:40%; height:8%; }
  .v2-hero__contact { left:64%; width:28%; bottom:10%; }
  .v2-hero__meta { font-size:12px; margin-bottom:22px; }
}
@media (min-width: 1024px) {
  .v2-hero__stage { aspect-ratio:1192 / 470; }
  /* copy 38% / imagery 62% — inside the approved 35–42 / 58–65 band */
  .v2-hero--product .v2-hero__ui { width:38%; padding:0 0 0 64px; }
  .v2-hero--product .v2-hero__title { font-size:50px; }
  .v2-hero__productwrap { left:66%; width:34%; height:74%; bottom:17.5%; }
  .v2-hero__plinth  { left:66%; width:34%; height:7.5%; bottom:12%; }
  .v2-hero__contact { left:66%; width:24%; bottom:11%; }
  .v2-hero__leaf--a { right:4%;  bottom:38%; width:11%; }
  .v2-hero__leaf--b { right:22%; bottom:56%; width:7%;  opacity:.13; }
}
/* Reduced transparency / forced colours: multiply can wash out, so fall back
   to the plain asset on its own white plate rather than a muddy composite. */
@media (prefers-contrast: more) {
  .v2-hero__product img { mix-blend-mode:normal; }
}

/* -------------------------------------------------------- category rail */
.v2-cats { display:flex; gap:12px; }
.v2-cat { width:66px; flex:0 0 auto; display:flex; flex-direction:column; align-items:center; gap:7px; text-align:center; text-decoration:none; }
.v2-cat__tile {
  width:62px; height:62px; display:grid; place-items:center;
  background:var(--slv2-cream); border:1px solid var(--slv2-line);
  border-radius:var(--slv2-r-ui); color:var(--slv2-f600);
  transition:border-color .18s ease, background .18s ease;
}
.v2-cat:hover .v2-cat__tile { background:var(--slv2-f50); border-color:var(--slv2-f100); }
.v2-cat__lb {
  font-family:var(--slv2-sans);
  font-size:9.5px; font-weight:500; line-height:1.28; color:var(--slv2-ink-2);
}
.v2-cat__initials { font:400 22px/1 var(--slv2-disp); }
.v2-cat__photo { display:none; }
@media (max-width: 767px) {
  .v2-home .v2-home-categories { margin-top:14px; }
  .v2-home .v2-cats { gap:8px; padding-block:2px; scroll-padding-inline:var(--slv2-gutter); }
  .v2-home .v2-cat {
    --v2-cat-paper:var(--slv2-cream);
    position:relative; display:grid; grid-template-columns:minmax(0, 1fr);
    grid-template-rows:52px minmax(0, 1fr); align-items:center;
    width:clamp(90px, calc((100vw - 2 * var(--slv2-gutter) - 24px) / 3), 128px);
    height:90px; padding:4px 6px; gap:4px;
    text-align:center; background:var(--v2-cat-paper); border:1px solid var(--slv2-line);
    border-radius:var(--slv2-r-ui); color:var(--slv2-accent-primary);
  }
  .v2-home .v2-cat--wellness { --v2-cat-paper:var(--slv2-olive-50); }
  .v2-home .v2-cat--body-building { --v2-cat-paper:#EDEAE2; }
  .v2-home .v2-cat--juices-drinks { --v2-cat-paper:var(--slv2-gold-100); }
  .v2-home .v2-cat--supplements { --v2-cat-paper:#ECEBE2; }
  .v2-home .v2-cat--skin-care { --v2-cat-paper:#F3E8E1; }
  .v2-home .v2-cat--hair-care { --v2-cat-paper:#EEE8DF; }
  .v2-home .v2-cat--bath-body { --v2-cat-paper:#E8EEEA; }
  .v2-home .v2-cat--mens-care { --v2-cat-paper:#E7E8E2; }
  .v2-home .v2-cat--personal-care { --v2-cat-paper:#F0EBDF; }
  .v2-home .v2-cat__tile { width:38px; height:38px; background:none; border:0; color:inherit; }
  .v2-home .v2-cat__tile svg { width:38px; height:38px; }
  .v2-home .v2-cat__visual { display:grid; place-items:center; width:100%; height:52px; }
  .v2-home .v2-cat__photo { display:block; width:52px; height:52px; background:transparent; }
  .v2-home .v2-cat__photo img { object-fit:contain; padding:0; }
  .v2-home .v2-cat__visual:has(.v2-cat__photo img) .v2-cat__tile { display:none; }
  .v2-home .v2-cat__photo:has(.v2-pimg__fallback) { display:none; }
  .v2-home .v2-cat__lb {
    font-size:11px; font-weight:500; line-height:1.2; letter-spacing:0;
    align-self:center; overflow-wrap:normal; color:var(--slv2-ink);
  }
  .v2-home .v2-cat:hover { border-color:var(--slv2-accent-primary); }
  .v2-home .v2-cat:focus-visible { outline-offset:-3px; }
  .v2-home .v2-promo-slot .promo-section { padding-top:24px; }
}
@media (min-width: 768px) {
  .v2-cats { display:grid; grid-template-columns:repeat(4, 1fr); gap:16px; overflow:visible; margin-inline:0; padding-inline:0; }
  .v2-cat { width:auto; padding:20px 10px 16px; border:1px solid var(--slv2-line); border-radius:var(--slv2-r-ui); background:var(--slv2-cream); gap:12px; }
  .v2-cat__tile { width:auto; height:auto; border:0; background:none; }
  .v2-cat__lb { font-size:13px; font-weight:600; }
}
@media (min-width: 1024px) { .v2-cats { grid-template-columns:repeat(8, 1fr); } }

/* ------------------------------------------------------- bestsellers grid */
.v2-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px 12px; }
.v2-grid > * { display:flex; flex-direction:column; }
@media (min-width: 768px) { .v2-grid { grid-template-columns:repeat(3, 1fr); gap:24px 20px; } }
@media (min-width: 1024px) { .v2-grid { grid-template-columns:repeat(4, 1fr); gap:24px; } }

/* The Bestsellers rail shows 2.2 cards so the partial card advertises the
   scroll. Above 768 it becomes a real grid. */
.v2-rail--cards > * { width:calc(50% - 26px); min-width:150px; }
@media (min-width: 560px) { .v2-rail--cards > * { width:calc(33.333% - 20px); } }
@media (min-width: 768px) {
  .v2-rail--cards { display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; overflow:visible; margin-inline:0; padding-inline:0; }
  .v2-rail--cards > * { width:auto; min-width:0; }
}
@media (min-width: 1024px) { .v2-rail--cards { grid-template-columns:repeat(4, 1fr); gap:24px; } }

.v2-rail--compact > * { width:214px; }
@media (min-width: 768px) {
  .v2-rail--compact { display:grid; grid-template-columns:repeat(2, 1fr); gap:16px; overflow:visible; margin-inline:0; padding-inline:0; }
  .v2-rail--compact > * { width:auto; }
}
@media (min-width: 1024px) { .v2-rail--compact { grid-template-columns:repeat(4, 1fr); } }

/* --------------------------------------------------------- editorial card */
.v2-ed {
  position:relative; width:214px; overflow:hidden;
  border:1px solid var(--slv2-line); border-radius:var(--slv2-r-art);
  background:var(--slv2-cream); text-decoration:none; display:block;
}
.v2-ed__media { position:relative; width:100%; aspect-ratio:214 / 134; overflow:hidden; }
.v2-ed__media .v2-pimg { height:100%; aspect-ratio:auto; }
.v2-ed__scrim {
  position:absolute; inset:0; z-index:2;
  background:linear-gradient(90deg, rgba(247,242,232,.96) 4%, rgba(247,242,232,.7) 48%, rgba(247,242,232,0) 88%);
}
.v2-ed__ui { position:absolute; inset:0; z-index:3; padding:12px; display:flex; flex-direction:column; justify-content:space-between; width:76%; }
.v2-ed__k { font-family:var(--slv2-sans); font-size:9px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--slv2-ink-4); }
.v2-ed__h {
  font-family:var(--slv2-disp); font-variation-settings:'opsz' 144, 'SOFT' 0, 'WONK' 0;
  font-size:16px; font-weight:500; line-height:1.13; letter-spacing:-.01em;
  margin:3px 0 0; color:var(--slv2-f900);
}
.v2-ed__note {
  font-family:var(--slv2-sans); font-size:10.5px; font-weight:600;
  color:var(--slv2-gold-ink); margin:4px 0 0;
}
.v2-ed__cta {
  font-family:var(--slv2-sans);
  font-size:9.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:var(--slv2-f700); display:inline-flex; align-items:center; gap:5px;
}
@media (min-width: 768px) {
  .v2-ed { width:auto; }
  .v2-ed__media { aspect-ratio:381 / 230; }
  .v2-ed__ui { padding:24px; width:70%; }
  .v2-ed__h { font-size:26px; margin-top:6px; }
  .v2-ed__k { font-size:11px; }
  .v2-ed__note {
  font-family:var(--slv2-sans); font-size:10.5px; font-weight:600;
  color:var(--slv2-gold-ink); margin:4px 0 0;
}
.v2-ed__cta { font-size:12px; }
}

/* -------------------------------------------------------------- story block */
.v2-story {
  display:grid; grid-template-columns:1fr 122px; overflow:hidden;
  border:1px solid var(--slv2-line); border-radius:var(--slv2-r-art);
  background:var(--slv2-cream); text-decoration:none; color:inherit;
}
.v2-story__b { padding:16px 4px 16px 16px; display:flex; flex-direction:column; justify-content:center; }
.v2-story__h {
  font-family:var(--slv2-disp); font-variation-settings:'opsz' 144, 'SOFT' 0, 'WONK' 0;
  font-size:19px; font-weight:500; line-height:1.14; letter-spacing:-.012em;
  margin:5px 0 7px; color:var(--slv2-f900);
}
.v2-story__p { font-family:var(--slv2-sans); font-size:11.5px; line-height:1.55; color:var(--slv2-ink-3); margin:0 0 12px; }
.v2-story__lk {
  font-family:var(--slv2-sans);
  font-size:9.5px; font-weight:700; letter-spacing:.13em; text-transform:uppercase;
  color:var(--slv2-f700); display:inline-flex; align-items:center; gap:6px;
}
.v2-story__m { position:relative; overflow:hidden; }
.v2-story__m .v2-pimg { height:100%; aspect-ratio:auto; }
@media (min-width: 768px) {
  .v2-story { grid-template-columns:1fr 300px; }
  .v2-story__b { padding:32px 24px 32px 32px; }
  .v2-story__h { font-size:28px; }
  .v2-story__p { font-size:14px; max-width:46ch; }
}
@media (min-width: 1024px) {
  .v2-story { grid-template-columns:1fr 480px; }
  .v2-story__b { padding:44px 48px; }
  .v2-story__h { font-size:36px; line-height:1.12; letter-spacing:-.018em; margin:8px 0 12px; }
  .v2-story__p { font-size:15px; line-height:1.62; margin-bottom:22px; }
  .v2-story__lk { font-size:12px; }
}

/* -------------------------------------------------------------- trust strip */
.v2-trust {
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:1fr 1fr; overflow:hidden;
  background:var(--slv2-cream); border:1px solid var(--slv2-line);
  border-radius:var(--slv2-r-ui);
}
.v2-trust__it {
  display:flex; gap:9px; align-items:center; padding:13px 12px;
  border-bottom:1px solid var(--slv2-line); border-right:1px solid var(--slv2-line);
}
.v2-trust__it:nth-child(2n) { border-right:0; }
.v2-trust__it:nth-last-child(-n+2) { border-bottom:0; }
.v2-trust__it svg { color:var(--slv2-f500); flex:0 0 auto; }
.v2-trust__t { display:block; font-family:var(--slv2-sans); font-size:10.5px; font-weight:600; line-height:1.3; color:var(--slv2-ink); }
.v2-trust__s { display:block; font-family:var(--slv2-sans); font-size:9.5px; line-height:1.3; color:var(--slv2-ink-4); margin-top:1px; }
@media (min-width: 768px) {
  .v2-trust { grid-template-columns:repeat(4, 1fr); }
  .v2-trust__it { padding:22px 20px; gap:13px; border-bottom:0; }
  .v2-trust__it:nth-child(2n) { border-right:1px solid var(--slv2-line); }
  .v2-trust__it:last-child { border-right:0; }
  .v2-trust__t { font-size:14px; }
  .v2-trust__s { font-size:12px; margin-top:2px; }
}

/* --------------------------------------------------- promo slot on Home */
/* The promotions runtime, its components and promotions.css are all untouched.
   V2 only frames whatever the engine renders on THIS slot: it collapses the
   slot when nothing renders, and brings the promo chrome onto the locked
   geometry so Home has no rounded/pill leak. Scoped to .v2-promo-slot, so
   every other placement (PDP, Cart, Offers) keeps its current V1 look until
   its own phase. */
.v2-promo-slot:empty { display:none; }

.v2-promo-slot .promo-poster { border-radius:var(--slv2-r-art); }   /* image-led campaign */
.v2-promo-slot .promo-offer  { border-radius:var(--slv2-r-ui); }    /* structural card */
.v2-promo-slot .promo-poster__badge,
.v2-promo-slot .promo-poster__cta,
.v2-promo-slot .promo-offer__ic,
.v2-promo-slot .promo-code__row,
.v2-promo-slot .promo-code__copy,
.v2-promo-slot .promo-offer__cta { border-radius:var(--slv2-r-ui); }
/* .promo-poster__leaf is decorative artwork, not UI — its organic shape stays. */
/* =========================================================
   HOME CATEGORY CIRCLES — fixed curated product imagery
   ========================================================= */

@media (max-width: 767px) {
  .v2-home .v2-cats {
    display:flex;
    gap:14px;
    padding-block:4px;
    align-items:flex-start;
  }

  .v2-home .v2-cat {
    position:relative;
    flex:0 0 78px;
    width:78px;
    min-height:0;
    padding:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:7px;

    background:transparent;
    border:0;
    border-radius:0;
    text-align:center;
    color:var(--slv2-ink);
  }

  .v2-home .v2-cat::before,
  .v2-home .v2-cat::after {
    display:none;
  }

  .v2-home .v2-cat__visual {
    position:relative;
    width:74px;
    height:74px;
    flex:0 0 74px;
    border-radius:50%;
    overflow:hidden;
    background:#fff;
    border:1px solid var(--slv2-line);
  }

  .v2-home .v2-cat__photo {
    position:absolute;
    inset:0;
    z-index:2;
    width:100%;
    height:100%;
    display:block;
    object-fit:contain;
    object-position:center;
    padding:2px;
    border-radius:50%;
    background:#fff;
  }

  .v2-home .v2-cat__tile {
    position:absolute;
    inset:0;
    z-index:1;
    width:100%;
    height:100%;
    display:grid;
    place-items:center;
    border:0;
    border-radius:50%;
    background:var(--slv2-cream);
  }

  .v2-home .v2-cat__tile svg {
    width:28px;
    height:28px;
  }

  .v2-home .v2-cat__lb {
    width:100%;
    font-size:11px;
    font-weight:500;
    line-height:1.2;
    letter-spacing:0;
    color:var(--slv2-ink);
    text-align:center;
  }
}
/* =========================================
   DESKTOP CATEGORY CIRCLES
   Keep mobile design unchanged
   ========================================= */

@media (min-width: 768px) {
  .v2-home .v2-cats {
    display:grid;
    grid-template-columns:repeat(9, minmax(0, 1fr));
    gap:18px;
    align-items:start;
  }

  .v2-home .v2-cat {
    width:auto;
    min-height:0;
    padding:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:9px;

    background:transparent;
    border:0;
    border-radius:0;
    box-shadow:none;
    text-align:center;
  }

  .v2-home .v2-cat::before,
  .v2-home .v2-cat::after {
    display:none;
  }

  .v2-home .v2-cat__visual {
    position:relative;
    width:92px;
    height:92px;
    flex:0 0 92px;
    border-radius:50%;
    overflow:hidden;
    background:#fff;
    border:1px solid var(--slv2-line);
  }

  .v2-home .v2-cat__photo {
    position:absolute;
    inset:0;
    z-index:2;
    width:100%;
    height:100%;
    display:block;
    object-fit:contain;
    object-position:center;
    padding:2px;
    background:#fff;
    border-radius:50%;
  }

  .v2-home .v2-cat__tile {
    position:absolute;
    inset:0;
    z-index:1;
    width:100%;
    height:100%;
    padding:0;
    display:grid;
    place-items:center;
    border:0;
    border-radius:50%;
    background:var(--slv2-cream);
  }

  .v2-home .v2-cat__lb {
    width:100%;
    font-size:11.5px;
    font-weight:500;
    line-height:1.25;
    text-align:center;
    color:var(--slv2-ink);
  }
}
/* ===== CONTINUOUS CATEGORY MARQUEE ===== */

.v2-home .v2-cats-marquee {
  width:100%;
  overflow:hidden;
}

.v2-home .v2-cats-track {
  display:flex;
  width:max-content;
  animation:v2CategoryMarquee 28s linear infinite;
  will-change:transform;
}

.v2-home .v2-cats-set {
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding-right:14px;
}

@keyframes v2CategoryMarquee {
  from {
    transform:translateX(0);
  }

  to {
    transform:translateX(-50%);
  }
}

.v2-home .v2-cats-marquee:hover .v2-cats-track,
.v2-home .v2-cats-marquee:focus-within .v2-cats-track {
  animation-play-state:paused;
}

@media (min-width:768px) {
  .v2-home .v2-cats-set {
    gap:24px;
    padding-right:24px;
  }

  .v2-home .v2-cats-track {
    animation-duration:36s;
  }
}

@media (prefers-reduced-motion:reduce) {
  .v2-home .v2-cats-track {
    animation:none;
  }
}
/* Polish moving category rail edges */
.v2-home .v2-cats-marquee {
  padding-inline:10px;
  box-sizing:border-box;
  -webkit-mask-image:linear-gradient(
    to right,
    transparent 0,
    #000 18px,
    #000 calc(100% - 18px),
    transparent 100%
  );
  mask-image:linear-gradient(
    to right,
    transparent 0,
    #000 18px,
    #000 calc(100% - 18px),
    transparent 100%
  );
}

@media (max-width:767px) {
  .v2-home .v2-cat__lb {
    font-size:10.5px;
    line-height:1.2;
    white-space:nowrap;
  }
}
/* Mobile marquee label clipping fix */
@media (max-width:767px) {
  .v2-home .v2-cat {
    flex:0 0 96px;
    width:96px;
    overflow:visible;
  }

  .v2-home .v2-cat__visual {
    width:74px;
    height:74px;
    flex:0 0 74px;
  }

  .v2-home .v2-cat__lb {
    width:96px;
    max-width:96px;
    min-height:26px;
    font-size:10.5px;
    line-height:1.18;
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    text-align:center;
  }

  .v2-home .v2-cats-set {
    gap:8px;
    padding-right:8px;
  }

  .v2-home .v2-cats-marquee {
    padding-inline:16px;
  }
}
/* Mobile marquee edge polish — hide partial category cards cleanly */
@media (max-width:767px) {
  .v2-home .v2-cats-marquee {
    position:relative;
    padding-inline:22px;
    overflow:hidden;

    -webkit-mask-image:linear-gradient(
      to right,
      transparent 0,
      transparent 10px,
      #000 42px,
      #000 calc(100% - 42px),
      transparent calc(100% - 10px),
      transparent 100%
    );

    mask-image:linear-gradient(
      to right,
      transparent 0,
      transparent 10px,
      #000 42px,
      #000 calc(100% - 42px),
      transparent calc(100% - 10px),
      transparent 100%
    );
  }

  .v2-home .v2-cat {
    flex:0 0 94px;
    width:94px;
  }

  .v2-home .v2-cat__lb {
    width:94px;
    max-width:94px;
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    text-align:center;
  }

  .v2-home .v2-cats-set {
    gap:10px;
    padding-right:10px;
  }
}
/* Extra breathing room for mobile moving categories */
@media (max-width:767px) {
  .v2-home .v2-cats-marquee {
    min-height:112px;
    padding-bottom:14px;
  }

  .v2-home .v2-cats-set {
    align-items:flex-start;
  }

  .v2-home .v2-cat__lb {
    min-height:28px;
    padding-top:2px;
  }
}
/* ===== FINAL MOBILE HERO TYPOGRAPHY + HEIGHT ===== */
@media (max-width:767px) {

  /* All Home hero types use one clean font system */
  .v2-home .v2-hero__title,
  .v2-home .v2-hero--product .v2-hero__title,
  .v2-home .v2-hero__slide--collection .v2-hero__title {
    font-family:var(--slv2-sans);
    font-variation-settings:normal;
    font-weight:600;
    line-height:1.08;
    letter-spacing:-.018em;
  }

  /* Normal/configured slides */
  .v2-home .v2-hero:not(.v2-hero--product) .v2-hero__title {
    font-size:clamp(21px, 6vw, 24px);
  }

  /* Collection slide */
  .v2-home .v2-hero__slide--collection .v2-hero__title {
    font-size:clamp(22px, 6.2vw, 25px);
  }

  /* Product-led hero */
  .v2-home .v2-hero--product .v2-hero__title {
    font-size:clamp(21px, 6vw, 24px);
  }

  /* Make ALL mobile hero canvases shorter */
  .v2-home .v2-hero__media,
  .v2-home .v2-hero__stage {
    aspect-ratio:auto;
    height:clamp(195px, 54vw, 210px);
    min-height:0;
    max-height:210px;
  }
}
/* Mobile hero — true edge-to-edge */
@media (max-width: 767px) {
  .v2-home .v2-hero {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    border-left: 0;
    border-right: 0;
    border-radius: 0;
  }
}