/*
 * Zairi Living Commerce — scoped reference styles.
 * Merge into the existing classic theme after inspecting redesign.css, garden.css,
 * motion-2027.css, interaction.css and product-editorial.css.
 * DO NOT load alongside legacy .worlds motion while both versions render.
 */
:root {
  --zfl-forest: #0F5123;
  --zfl-coral: #D76C48;
  --zfl-coral-action: #A84227;
  --zfl-sage: #8CA97C;
  --zfl-cream: #FFF8EA;
  --zfl-ink: #1F2A21;
  --zfl-muted: #4B554E;
  --zfl-border: #768275;
  --zfl-white: #FFFFFF;
  --zfl-content: 1240px;
  --zfl-reading: 68ch;
  --zfl-page-pad: clamp(16px, 3vw, 48px);
  --zfl-radius: clamp(14px, 2vw, 24px);
  --zfl-shadow: 0 8px 24px rgb(15 81 35 / 0.10);
  --zfl-ease: cubic-bezier(0.16, 1, 0.3, 1);
}
:where(.zf-living-home, .zf-living-pdp) {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  color: var(--zfl-ink);
  background: var(--zfl-cream);
  min-inline-size: 0;
}
:where(.zf-living-home, .zf-living-pdp) :is(h1,h2,h3) {
  font-family: Fredoka, system-ui, sans-serif;
  line-height: 1.17;
  text-wrap: balance;
  letter-spacing: normal;
}
:where(.zf-living-home, .zf-living-pdp) :is(a,button,input,select,summary):focus-visible {
  outline: 3px solid var(--zfl-coral-action);
  outline-offset: 4px;
}
:where(.zf-living-home, .zf-living-pdp) [id] {
  scroll-margin-block-start: 100px;
}
.zf-living-content {
  inline-size: min(calc(100% - 2 * var(--zfl-page-pad)), var(--zfl-content));
  margin-inline: auto;
}
/* The parent (main) must be layout-wide; see IMPLEMENTATION instructions. */
.zf-living-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  align-items: center;
  inline-size: 100cqi;
  margin-inline: calc(50% - 50cqi);
  min-block-size: clamp(500px, 52vw, 740px);
  background: var(--zfl-forest);
  overflow: clip;
}
.zf-living-hero__picture,
.zf-living-hero__shade {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.zf-living-hero__picture > img {
  display: block;
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  object-position: 22% center;
}
.zf-living-hero__shade {
  z-index: 1;
  background: linear-gradient(to left, rgb(10 45 22 / .84), rgb(10 45 22 / .37) 43%, rgb(10 45 22 / .05) 82%);
}
.zf-living-hero__inner {
  position: relative;
  z-index: 2;
  inline-size: min(calc(100% - 2 * var(--zfl-page-pad)), var(--zfl-content));
  margin-inline: auto;
  padding-block: clamp(60px, 9vw, 118px);
}
.zf-living-hero__content {
  max-inline-size: 600px;
  color: #fff;
  text-shadow: 0 1px 2px rgb(0 0 0 / .27);
}
.zf-living-hero__eyebrow {
  font-size: clamp(15px, 1.2vw, 18px);
  font-weight: 600;
}
.zf-living-hero h1 {
  font-size: clamp(48px, 6.5vw, 96px);
  margin-block: 18px;
}
.zf-living-hero__summary {
  font-size: clamp(18px, 1.6vw, 23px);
  line-height: 1.5;
  max-inline-size: 46ch;
}
.zf-living-hero__actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-block-start: clamp(20px, 3vw, 38px);
}
.zf-living-button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-block-size: 48px;
  padding: 12px 22px;
  border-radius: 999px;
  background: var(--zfl-forest);
  border: 2px solid var(--zfl-white);
  color: var(--zfl-white);
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  text-shadow: none;
}
.zf-living-button--light {
  background: var(--zfl-cream);
  border-color: var(--zfl-cream);
  color: var(--zfl-forest);
}
@media (hover: hover) and (pointer: fine) {
  .zf-living-button:hover { filter: brightness(1.08); }
}
.zf-living-button:active { filter: brightness(0.94); }
.zf-living-hero__disclosure {
  color: #fff;
  font-size: 13px;
  line-height: 1.5;
  margin-block-start: 16px;
}
.zf-living-categories {
  inline-size: min(calc(100% - 2 * var(--zfl-page-pad)), var(--zfl-content));
  margin: 0 auto;
  padding-block: 26px 22px;
}
.zf-living-categories__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 10.5rem), 1fr));
  padding: 0;
  margin: 0;
  list-style: none;
  gap: clamp(12px, 1.6vw, 22px);
}
.zf-living-category {
  display: grid;
  gap: 8px;
  justify-items: stretch;
  text-align: center;
  padding: 10px;
  min-inline-size: 0;
  border-radius: 18px;
  overflow: clip;
  color: var(--zfl-forest);
  background: #fff;
  text-decoration: none;
  border: 1px solid rgb(15 81 35 / .16);
}
.zf-living-category__image,
.zf-living-category__fallback {
  display: block;
  border-radius: 13px;
  inline-size: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  background: #E9EBDC;
}
.zf-living-category__name { max-inline-size: 100%; font-weight: 700; font-size: clamp(14px, 1.15vw, 16px); line-height: 1.35; overflow-wrap: break-word; }
.zf-living-section { padding-block: clamp(44px, 5.3vw, 96px); }
.zf-living-section__heading { font-size: clamp(30px, 3vw, 52px); margin: 0 0 22px; color: var(--zfl-forest); }
.zf-living-fullbleed { inline-size: 100%; min-inline-size: 0; }
.zf-living-editorial-grid { display: grid; gap: 0; grid-template-columns: repeat(2,minmax(0,1fr)); }
.zf-living-editorial-grid > :where(figure,section) { min-inline-size: 0; margin: 0; }
.zf-living-editorial-grid img { display: block; inline-size: 100%; block-size: 100%; min-block-size: 420px; object-fit: cover; }
.zf-living-editorial-grid__copy { display: grid; align-content: center; padding: clamp(24px, 5vw, 88px); background: var(--zfl-cream); }
.zf-living-editorial-grid__copy > * { max-inline-size: var(--zfl-reading); }
.zf-living-editorial-grid__copy h2 { font-size: clamp(32px, 3.5vw, 60px); }
.zf-living-editorial-grid__copy p { font-size: 18px; line-height: 1.65; }
.zf-vine {
  pointer-events: none;
  user-select: none;
  position: relative;
  z-index: 0;
  block-size: 4.5rem;
  inline-size: min(100% - 2rem, 28rem);
  margin-inline: auto;
}
.zf-vine__layer {
  position: absolute;
  inset: 0;
  inline-size: 100%;
  block-size: 100%;
}
.zf-living-home { position: relative; }
.zf-living-home > :not(.zf-grape) { position: relative; z-index: 1; }
/* Ceiling vines - fixed side curtains that hang from under the sticky header.
   Roots sit behind the header so the trailing stems grow down past it.
   The vines sit under the page layer so cards, text and buttons stay clear. */
.zf-grape {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: visible;
  opacity: 0.82;
  --grow: 1; --wind-x: 0; --wind-y: 0;
}
.zf-grape__defs { position: absolute; inline-size: 0; block-size: 0; overflow: hidden; }
.zf-grape__vine {
  position: absolute;
  inset-block-start: 0;
  inline-size: min(10rem, max(4rem, calc((100% - 75rem) / 2 - 2px)));
  block-size: auto;
  max-block-size: 112svh;
  overflow: visible;
  transform: translate3d(calc(var(--wind-x) * 14px), calc(var(--wind-y) * 7px), 0) rotateY(calc(var(--wind-x) * -10deg));
  transform-origin: center top;
}
html[dir="rtl"] .zf-grape__vine { scale: -1 1; }
.zf-grape__vine--start { inset-inline-start: 0; }
.zf-grape__vine--end { inset-inline-end: 0; }
.zf-grape__hang { transform-box: view-box; transform-origin: 50% -2%; }
.zf-grape__stem, .zf-grape__branch { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.zf-grape__stem { stroke: #496F31; stroke-width: 3; }
.zf-grape__branch { stroke: #638F48; stroke-width: 2; }
.zf-grape__leaf, .zf-grape__budlet {
  transform-box: fill-box;
  transform-origin: var(--ox, 0%) 50%;
  translate: calc(var(--wind-x) * 10px) calc(var(--wind-y) * 5px);
  rotate: calc(var(--wind-x) * -8deg);
}
.zf-grape__bloom { transform-box: fill-box; transform-origin: 50% 50%; translate: calc(var(--wind-x) * 10px) calc(var(--wind-y) * 5px); }
.zf-grape__budlet { transform-origin: 50% 50%; }
.zf-grape__sway { transform-box: fill-box; transform-origin: var(--ox, 0%) 50%; }
.zf-grape__bud, .zf-grape__flower { transform-box: fill-box; transform-origin: 50% 50%; }
.zf-grape__bud { opacity: 0; }
.zf-grape__flower { opacity: 1; }
@media (max-width: 64rem) {
  .zf-grape { opacity: 0.6; }
  .zf-grape__vine { inline-size: 3.5rem; block-size: auto; }
  .zf-grape__vine--start { inset-inline-start: 0; }
  .zf-grape__vine--end { inset-inline-end: 0; }
  .zf-grape__stem { stroke-width: 2.8; }
}
@media (max-width: 48rem) {
  .zf-grape { opacity: 0.5; }
  .zf-grape__vine { inline-size: 3rem; }
  .zf-grape__stem { stroke-width: 2.6; }
}
/* PDP: standalone commerce UI stays immediately usable. */
.zf-living-pdp__hero {
  display: grid;
  grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr);
  gap: clamp(20px, 4vw, 72px);
  align-items: start;
  inline-size: min(calc(100% - 2 * var(--zfl-page-pad)), 1380px);
  margin-inline: auto;
  padding-block: clamp(30px, 5vw, 76px);
}
.zf-living-pdp__summary { min-inline-size: 0; }
.zf-living-pdp__summary h1 { font-size: clamp(36px, 4.5vw, 72px); }
.zf-living-pdp__gallery { min-inline-size: 0; }
.zf-living-pdp__gallery img { display: block; inline-size: 100%; block-size: auto; object-fit: contain; border-radius: var(--zfl-radius); }
.zf-living-pdp__buy { background: #fff; border-radius: 18px; padding: clamp(16px,2.1vw,28px); border: 1px solid #D9DED7; }
.zf-living-pdp__buy :is(input,select,button) { min-block-size: 44px; }
.zf-living-pdp__anchors { position: sticky; inset-block-start: 72px; z-index: 14; background: rgb(246 242 231 / .98); border-block: 1px solid #D9DED7; }
.zf-living-pdp__anchors ul { display: flex; gap: 6px; overflow-x: auto; padding: 10px var(--zfl-page-pad); margin: 0 auto; max-inline-size: var(--zfl-content); list-style: none; }
.zf-living-pdp__anchors a { text-decoration: none; white-space: nowrap; display: inline-flex; align-items: center; min-block-size: 44px; padding: 8px 16px; color: var(--zfl-forest); font-weight: 650; border-radius: 999px; }
.zf-living-pdp__chapter { padding-block: clamp(40px, 6vw, 112px); }
.zf-living-pdp__chapter h2 { font-size: clamp(30px, 3.5vw, 58px); color: var(--zfl-forest); }
.zf-living-pdp__chapter p { font-size: 17px; line-height: 1.7; }
.zf-living-pdp__chapter .prose { max-inline-size: var(--zfl-reading); }
.zf-living-pdp__sticky-buy { position: fixed; inset-inline: 0; inset-block-end: 0; z-index: 40; display: none; background: white; border-block-start: 1px solid #D9DED7; padding: 9px max(16px, env(safe-area-inset-right)) max(9px, env(safe-area-inset-bottom)); box-shadow: 0 -6px 22px #0f512316; }
.zf-living-pdp__sticky-buy.is-active { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.zf-living-pdp__sticky-buy a { flex: none; }
@media (max-width: 900px) {
  .zf-living-categories__list { grid-template-columns: repeat(auto-fit, minmax(min(100%, 8.5rem), 1fr)); }
}
@media (max-width: 767px) {
  .zf-living-hero { display: block; min-block-size: 0; background: var(--zfl-cream); }
  .zf-living-hero__picture { position: relative; display: block; block-size: min(70vw, 450px); }
  .zf-living-hero__picture > img { object-position: 30% center; }
  .zf-living-hero__shade { display: none; }
  .zf-living-hero__inner { padding-block: 24px 40px; }
  .zf-living-hero__content { color: var(--zfl-forest); text-shadow: none; }
  .zf-living-hero h1 { font-size: clamp(39px, 9vw, 56px); }
  .zf-living-hero__summary { font-size: 17px; }
  .zf-living-hero__disclosure { color: var(--zfl-muted); }
  .zf-living-hero__actions { display: grid; grid-template-columns: 1fr; }
  .zf-living-hero .zf-living-button { inline-size: 100%; border-color: var(--zfl-forest); }
  .zf-living-editorial-grid { grid-template-columns: 1fr; }
  .zf-living-editorial-grid img { min-block-size: 0; max-block-size: 380px; }
  .zf-living-pdp__hero { grid-template-columns: 1fr; }
  .zf-living-pdp__anchors { inset-block-start: 58px; }
  .zf-vine--divider { inline-size: min(100%,340px); }
}
@media (prefers-reduced-motion: no-preference) {
  html.zf-living-js:not(.zf-motion-off) .zf-vine__stem {
    stroke-dasharray: 1;
    stroke-dashoffset: 0;
    transition: stroke-dashoffset 980ms var(--zfl-ease);
  }
  html.zf-living-js:not(.zf-motion-off) .zf-vine:not(.is-grown) .zf-vine__stem { stroke-dashoffset: 1; }
  html.zf-living-js:not(.zf-motion-off) .zf-vine__leaf {
    scale: 1;
    transition: scale 520ms var(--zfl-ease);
  }
  html.zf-living-js:not(.zf-motion-off) .zf-vine:not(.is-grown) .zf-vine__leaf { scale: 0; }
  html.zf-living-js:not(.zf-motion-off) .zf-vine.is-grown .zf-vine__leaf:nth-child(1) { transition-delay: 180ms; }
  html.zf-living-js:not(.zf-motion-off) .zf-vine.is-grown .zf-vine__leaf:nth-child(2) { transition-delay: 300ms; }
  html.zf-living-js:not(.zf-motion-off) .zf-vine.is-grown .zf-vine__leaf:nth-child(3) { transition-delay: 420ms; }
  html.zf-living-js:not(.zf-motion-off) .zf-vine.is-grown .zf-vine__leaf:nth-child(4) { transition-delay: 540ms; }
  html.zf-living-js:not(.zf-motion-off) .zf-vine.is-grown .zf-vine__leaf:nth-child(5) { transition-delay: 660ms; }
  html.zf-living-js:not(.zf-motion-off) [data-zf-reveal] :is(.zf-living-category__image, .home-world-card__image) {
    clip-path: inset(0 round 16px);
    transition: clip-path 740ms var(--zfl-ease), scale 420ms var(--zfl-ease);
  }
  html.zf-living-js:not(.zf-motion-off) [data-zf-reveal]:not(.is-grown) :is(.zf-living-category__image, .home-world-card__image) {
    clip-path: inset(16% round 18px);
  }
  .zf-living-button { transition: scale 140ms var(--zfl-ease), filter 140ms var(--zfl-ease); }
  .zf-living-button:active { scale: 0.98; }
  /* Gentle hanging sway - small angles so the vines feel alive without drifting. */
  html:not(.zf-motion-off) .zf-grape__hang { animation: zf-grape-hang 7s ease-in-out infinite alternate; }
  html:not(.zf-motion-off) .zf-grape__vine--end .zf-grape__hang { animation-duration: 8.5s; animation-delay: -2s; }
  html:not(.zf-motion-off) .zf-grape__sway { animation: zf-leaf-sway 5.5s ease-in-out infinite alternate; }
  html:not(.zf-motion-off) .zf-grape__leaf:nth-of-type(2n) .zf-grape__sway { animation-duration: 6.5s; animation-delay: -1.4s; }
  html:not(.zf-motion-off) .zf-grape__leaf:nth-of-type(3n) .zf-grape__sway { animation-duration: 4.8s; animation-delay: -2.6s; }
  @keyframes zf-grape-hang { from { transform: rotate(-0.9deg); } to { transform: rotate(0.9deg); } }
  @keyframes zf-leaf-sway { from { transform: rotate(-2deg); } to { transform: rotate(2deg); } }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .zf-living-category { transition: border-color 180ms var(--zfl-ease), box-shadow 240ms var(--zfl-ease), translate 240ms var(--zfl-ease); }
  .zf-living-category:hover {
    border-color: var(--zfl-forest);
    box-shadow: 0 16px 32px rgb(15 81 35 / 0.16);
    translate: 0 -6px;
  }
  .zf-living-category__image { transition: scale 460ms var(--zfl-ease); }
  .zf-living-category:hover .zf-living-category__image { scale: 1.08; }
  .home-world-card:hover .home-world-card__image { scale: 1.045; }
  .zf-grape__vine { transition: transform 480ms var(--zfl-ease); }
  .zf-grape__leaf, .zf-grape__bloom, .zf-grape__budlet { transition: translate 520ms var(--zfl-ease), rotate 520ms var(--zfl-ease); }
}
/* Living buy-grid owns its own 2-col layout. Do not trap it in the legacy hero tracks. */
.zf-living-pdp__hero:has(> .zf-living-pdp__buy-grid),
.zf-living-pdp__hero:has(> #buy.zf-living-pdp__buy-grid) {
  display: block;
  inline-size: 100%;
  max-inline-size: none;
  margin-inline: 0;
  padding-block: 0;
}
.zf-living-pdp__hero > .zf-living-pdp__buy-grid,
.zf-living-pdp__hero > #buy,
.zf-living-pdp__hero > #composition {
  grid-column: 1 / -1;
}
.zf-living-pdp__buy-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: clamp(20px, 4vw, 72px);
  inline-size: min(calc(100% - 2 * var(--zfl-page-pad)), 1380px);
  margin-inline: auto;
  padding-block: clamp(30px, 5vw, 76px);
}
@media (max-width: 900px) {
  .zf-living-pdp__buy-grid { grid-template-columns: 1fr; }
}
.zf-living-home .home-flows { min-block-size: 0; }
.home-worlds-compact__grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.home-world-card {
  display: grid;
  grid-template-columns: 1fr;
  container-type: inline-size;
  padding: 0;
  overflow: clip;
  background: var(--zfl-white);
  border: 1px solid #D9DED7;
  border-radius: var(--zfl-radius);
}
.home-world-card__media { margin: 0; min-inline-size: 0; }
.home-world-card__image {
  display: block;
  inline-size: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  block-size: auto;
  background: var(--zfl-cream);
}
.home-world-card__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  padding: clamp(20px, 3vw, 32px);
}
.home-world-card__copy :is(h2, p) { margin: 0; }
.home-world-card h2 { font-size: clamp(22px, 2.5vw, 32px); color: var(--zfl-forest); }
@container (min-width: 28rem) {
  .home-world-card { grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr); }
  .home-world-card__image { aspect-ratio: auto; block-size: 100%; min-block-size: 11rem; }
}
.home-help-path .home-occasions { margin-block: 16px 0; padding: 0; border: 0; }
.home-help-links { display: flex; flex-wrap: wrap; gap: 12px; list-style: none; padding: 0; margin: 16px 0 0; }
.home-help-links a { font-weight: 650; color: var(--zfl-forest); }
.family-story.zf-living-section {
  padding-block: 0;
  overflow: clip;
}
.family-story__grid {
  display: grid;
  gap: 0;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  align-items: stretch;
  max-inline-size: none;
}
.family-story__figure {
  margin: 0;
  min-inline-size: 0;
  background: var(--zfl-cream, #FFF8EA);
}
.family-story__figure img {
  display: block;
  inline-size: 100%;
  block-size: 100%;
  min-block-size: clamp(220px, 42vw, 520px);
  object-fit: cover;
  object-position: center;
}
.family-story__figure figcaption {
  margin: 0;
  padding: .55rem 1rem .75rem;
  font-size: .85rem;
  color: var(--muted, #5c6558);
}
.family-story__grid > div {
  display: grid;
  align-content: center;
  gap: .85rem;
  padding: clamp(1.25rem, 3.5vw, 2.75rem);
  max-inline-size: 42rem;
}
.family-story__grid > div h2 {
  margin: 0;
  max-inline-size: 18ch;
}
.family-story__grid > div p {
  margin: 0;
  max-inline-size: 42ch;
}
/* No CMS image: single readable column, no vacant media slot. */
.family-story__grid:not(:has(figure)) {
  grid-template-columns: minmax(0, 1fr);
  max-inline-size: min(42rem, 100%);
  margin-inline: auto;
}
.family-story.zf-living-section:not(:has(figure)) {
  padding-block: clamp(20px, 2.4vw, 40px);
}
@media (max-width: 767px) {
  .home-worlds-compact__grid { grid-template-columns: 1fr; }
  .family-story__grid {
    grid-template-columns: 1fr;
  }
  .family-story__figure img {
    min-block-size: 0;
    aspect-ratio: 16 / 9;
    block-size: auto;
  }
}
.zf-living-category__fallback {
  display: block;
  inline-size: min(100%, 120px);
  aspect-ratio: 1;
  border-radius: 13px;
  background: linear-gradient(145deg, var(--zfl-sage), var(--zfl-cream));
}
body.home .content-grid,
body.single-product .content-grid { --content: 75rem; }
.zf-living-home,
.zf-living-pdp { background: var(--zfl-cream); }
.zf-living-home > :not(.zf-living-hero):not(.family-story):not(.zf-mobile-dock):not(.zf-grape) {
  inline-size: min(100% - 2rem, 75rem);
  margin-inline: auto;
}
.zf-living-home .zf-living-hero {
  inline-size: 100%;
  margin-inline: 0;
}
.zf-living-home .zf-living-categories { inline-size: 100%; margin: 0; padding-inline: 0; }
.zf-living-home .collection { padding-block: 1.25rem 0; }
.zf-living-home .products-grid.home-shelf {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
}
.zf-living-home .home-shelf .product-image,
.zf-living-home .home-shelf .product-card:first-child .product-image { aspect-ratio: 1; }
.zf-living-home .home-flows { display: grid; gap: 1.25rem; margin-block: 0; }
.zf-living-home .family-story--bleed {
  display: grid;
  grid-template-columns: 1fr;
  padding: 0;
  gap: 0;
  min-block-size: clamp(28rem, 70vh, 44rem);
  background: #12331c;
  color: var(--zfl-ink);
}
.zf-living-home .family-story__bleed,
.zf-living-home .family-story__panel { grid-area: 1 / 1; }
.zf-living-home .family-story__bleed { margin: 0; min-inline-size: 0; }
.zf-living-home .family-story__photo,
.zf-living-home .family-story--bleed img {
  inline-size: 100%;
  block-size: 100%;
  min-block-size: clamp(28rem, 70vh, 44rem);
  max-inline-size: none;
  object-fit: cover;
  object-position: center;
  aspect-ratio: auto;
  transform: none;
  border: 0;
  border-radius: 0;
}
.zf-living-home .family-story__panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  align-self: center;
  justify-self: start;
  gap: .85rem;
  inline-size: min(calc(100% - 2rem), 34rem);
  margin-inline-start: clamp(1rem, 4vw, 3.5rem);
  padding: clamp(1.5rem, 3vw, 2.25rem);
  background: var(--zfl-cream);
  max-inline-size: 34rem;
}
.zf-living-home .family-story__panel > * { margin: 0; max-inline-size: 34rem; }
.zf-living-home .family-story__eyebrow { font-weight: 700; color: var(--zfl-forest); }
.zf-living-home .family-story__panel h2 { font-size: clamp(2rem, 3vw, 3.25rem); }
.zf-living-home .family-story__panel p { font-size: 1.125rem; line-height: 1.6; }
.zf-living-home .family-story__panel .zf-living-button { margin-block-start: .35rem; }
.home-care-knowledge { display: grid; gap: 1rem; padding-block: clamp(1.5rem, 3vw, 2.75rem) 0; }
.home-care-knowledge__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: .75rem; }
.home-care-knowledge__head h2 { margin: 0; }
.home-guide-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15.5rem), 1fr));
  gap: .85rem;
}
.home-guide-card {
  display: grid;
  grid-template-rows: auto 1fr;
  min-inline-size: 0;
  background: var(--zfl-white);
  color: var(--zfl-ink);
  text-decoration: none;
  border-radius: 18px;
  overflow: clip;
  border: 1px solid rgb(15 81 35 / .14);
}
.home-guide-card img {
  inline-size: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: var(--zfl-cream);
}
.home-guide-card__copy { display: grid; align-content: start; gap: .35rem; padding: .9rem 1rem 1.1rem; }
.home-guide-card__copy h3 { margin: 0; font-size: clamp(1.2rem, 1.4vw, 1.45rem); line-height: 1.25; }
.home-guide-card__copy p { margin: 0; font-size: 1rem; line-height: 1.45; }
@media (max-width: 767px) {
  .zf-living-home .family-story--bleed { display: block; min-block-size: 0; background: var(--zfl-cream); }
  .zf-living-home .family-story__photo,
  .zf-living-home .family-story--bleed img { min-block-size: 0; block-size: min(78vw, 24rem); }
  .zf-living-home .family-story__panel { inline-size: auto; max-inline-size: none; margin: 0; padding: 1.25rem clamp(1rem, 4vw, 1.5rem) 1.75rem; }
}
.home-helper { display: grid; gap: 1rem; }
.home-helper .builder-promo, .home-helper .intent-chooser { margin: 0; }
.product-traits { display: flex; flex-wrap: wrap; gap: .35rem .75rem; margin: .35rem 0; padding: 0; list-style: none; font-family: system-ui, sans-serif; font-size: 1rem; line-height: 1.35; }
.product-trait-label { font-weight: 700; color: var(--zfl-forest); }
.home-shelf .product-card .add-form { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: end; gap: .5rem; margin: 0; }
.home-shelf .product-card .add-form label { max-inline-size: none; }
.zf-pdp-whatsapp { margin-block-start: .75rem; }
.zf-living-pdp__summary { position: sticky; inset-block-start: 1rem; }
.zf-mobile-dock { display: none; }
@media (max-width: 900px) {
  .zf-living-pdp__buy-grid { display: flex; flex-direction: column; }
  .zf-living-pdp__summary { order: -1; position: static; }
}
@media (max-width: 767px) {
  .product-card .product-traits { display: grid; grid-template-columns: 1fr 1fr; gap: .25rem .5rem; }
  .zf-living-pdp__gallery img { max-block-size: 42vh; object-fit: cover; }
  .zf-living-pdp__sticky-buy { display: flex; flex-wrap: wrap; }
  body.single-product { padding-block-end: 5.5rem; }
  .zf-mobile-dock {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    position: fixed;
    inset-inline: 0;
    inset-block-end: 0;
    z-index: 45;
    background: var(--zfl-white);
    border-block-start: 1px solid #D9DED7;
    padding-block-end: env(safe-area-inset-bottom);
  }
  .zf-mobile-dock a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .25rem;
    min-block-size: 48px;
    padding: .45rem .3rem;
    text-align: center;
    text-decoration: none;
    font-weight: 700;
    color: var(--zfl-forest);
    background: var(--zfl-cream);
  }
  .zf-mobile-dock a:focus-visible { outline: 3px solid var(--zfl-coral-action); outline-offset: -3px; }
  body.home { padding-block-end: 4.75rem; }
}
@media (prefers-reduced-motion: reduce) {
  :where(.zf-living-home, .zf-living-pdp) * { scroll-behavior: auto !important; }
  .zf-vine__stem, .zf-vine__leaf, .zf-grape__hang, .zf-grape__sway, .zf-grape__leaf, .zf-grape__bloom, .zf-grape__budlet, .zf-grape__drifter, .zf-living-category__image, .home-world-card__image, .zf-living-button {
    transition: none !important;
    animation: none !important;
    scale: 1 !important;
    transform: none !important;
    stroke-dashoffset: 0 !important;
    clip-path: none !important;
  }
  .zf-grape__leaf, .zf-grape__bloom, .zf-grape__budlet { opacity: 1 !important; }
  .zf-grape__bud { opacity: 0 !important; }
  .zf-grape__flower { opacity: 1 !important; }
}

/* יושב טוב יחד — vessel add-ons */
.zf-together{margin:1.5rem 0;padding:1.25rem;border:1px solid color-mix(in srgb, currentColor 12%, transparent);border-radius:1rem}
.zf-together__head h2{margin:0 0 .35rem;font-size:1.25rem}
.zf-together__head p{margin:0 0 1rem;opacity:.85}
.zf-together__list{list-style:none;margin:0;padding:0;display:grid;gap:1rem}
.zf-together__item{display:grid;grid-template-columns:96px 1fr;gap:.75rem 1rem;align-items:start}
.zf-together__item img{border-radius:.5rem;object-fit:cover;width:96px;height:112px}
.zf-together__price{display:flex;gap:.5rem;align-items:baseline;margin:.25rem 0}
.zf-together__price s{opacity:.55}
.zf-together__toggle{display:flex;gap:.4rem;align-items:center;margin:.35rem 0}
.zf-together .add-form{grid-column:1/-1}

.zf-bouquet-components{list-style:none;margin:1rem 0;padding:0;display:grid;gap:.4rem}
.zf-bouquet-components a{text-decoration:underline;text-underline-offset:.15em}
.zf-bouquet-customize{margin:1rem 0 0}
.zf-living-pdp__summary .pdp-builder-link,.zf-bouquet-customize .pdp-builder-link{
  display:inline-flex;justify-content:center;align-items:center;gap:.5rem;
  min-block-size:48px;padding-inline:1.25rem;
  border:1px solid var(--ink,#1F2A21);border-radius:.4rem;
  background:transparent;color:var(--ink,#1F2A21);
  text-decoration:none;font-weight:650;
}
.zf-living-pdp__summary .pdp-builder-link:hover,.zf-bouquet-customize .pdp-builder-link:hover{
  background:color-mix(in oklch,var(--sand,#EFE4D2) 70%,transparent);
}
