/* =====================================================================
   Royal Light — Design tokens
   Single source of truth for colour, type, spacing, radius, motion.
   Shared by the website (src/css/site.css) and the style tile
   (style-tile/index.html). Edit here, never in both places.
   ===================================================================== */
:root {
  /* ---- Colour: surfaces (from the logo's dark marble) ---- */
  --c-ink: #0b0b0d;          /* page background */
  --c-charcoal: #141417;     /* section surface */
  --c-graphite: #1e1e23;     /* raised surface / cards */
  --c-vein: #2a2a30;         /* borders, dividers */
  --c-vein-soft: #222227;

  /* ---- Colour: brass / gold (from the logo) ---- */
  --c-gold: #c9a24a;         /* primary accent, buttons */
  --c-gold-light: #e7c873;   /* highlights, hover */
  --c-gold-deep: #8f6b22;    /* pressed, outlines on light */
  --c-glow: #ffe7b8;         /* warm light accent (2700K) */

  /* ---- Colour: text ---- */
  --c-ivory: #f4efe6;        /* primary text on dark  (≈17:1 on ink) */
  --c-sand: #b9b2a6;         /* secondary text        (≈9:1 on ink)  */
  --c-on-gold: #15110a;      /* text on gold buttons  (≈9:1 on gold) */

  /* ---- Colour: feedback ---- */
  --c-focus: #ffd97a;        /* focus ring */
  --c-whatsapp: #25d366;     /* only as a small icon accent */

  /* ---- Gradients / effects ---- */
  --g-gold: linear-gradient(135deg, #e7c873 0%, #c9a24a 45%, #a8822f 100%);
  --g-scrim-start: linear-gradient(to left, rgba(11,11,13,.82) 0%, rgba(11,11,13,.55) 55%, rgba(11,11,13,0) 100%);
  --g-scrim-bottom: linear-gradient(to top, rgba(11,11,13,.92) 0%, rgba(11,11,13,.55) 45%, rgba(11,11,13,0) 100%);
  --shadow-card: 0 10px 30px rgba(0,0,0,.45), 0 1px 0 rgba(255,255,255,.04) inset;
  --glow-card: 0 0 0 1px rgba(201,162,74,.35), 0 18px 50px rgba(201,162,74,.12);

  /* ---- Typography ----
     Per-language families are set on <html lang> below. */
  --f-heading: "Frank Ruhl Libre", "Times New Roman", serif;
  --f-body: "IBM Plex Sans Hebrew", "Heebo", Arial, sans-serif;
  --f-latin: "IBM Plex Sans Hebrew", Arial, sans-serif;

  --fs-display: clamp(2.4rem, 1.6rem + 3.4vw, 4.6rem);   /* hero */
  --fs-h1: clamp(2rem, 1.4rem + 2.4vw, 3.4rem);
  --fs-h2: clamp(1.6rem, 1.2rem + 1.6vw, 2.5rem);
  --fs-h3: clamp(1.15rem, 1.05rem + .5vw, 1.4rem);
  --fs-lead: clamp(1.05rem, 1rem + .35vw, 1.25rem);
  --fs-body: 1rem;
  --fs-small: .875rem;
  --fs-eyebrow: .78rem;

  --lh-tight: 1.12;
  --lh-heading: 1.22;
  --lh-body: 1.65;
  --ls-eyebrow: .16em;

  /* ---- Spacing rhythm (8px base) ---- */
  --s-1: .25rem;  /* 4  */
  --s-2: .5rem;   /* 8  */
  --s-3: .75rem;  /* 12 */
  --s-4: 1rem;    /* 16 */
  --s-5: 1.5rem;  /* 24 */
  --s-6: 2rem;    /* 32 */
  --s-7: 3rem;    /* 48 */
  --s-8: 4rem;    /* 64 */
  --s-9: 6rem;    /* 96 */
  --gutter: clamp(1rem, 4vw, 2.5rem);
  --container: 1200px;
  --header-h: 64px;
  --touch: 44px;

  /* ---- Radius ---- */
  --r-sm: 8px;
  --r-md: 16px;
  --r-lg: 24px;
  --r-pill: 999px;

  /* ---- Motion ---- */
  --ease-out: cubic-bezier(.2,.7,.2,1);
  --ease-in-out: cubic-bezier(.65,0,.35,1);
  --t-fast: 180ms;
  --t-base: 320ms;
  --t-slow: 700ms;
  --t-reveal: 900ms;
}

/* Language-specific type. The site is Hebrew-default, Arabic second. */
html[lang="he"] {
  --f-heading: "Frank Ruhl Libre", "David", "Times New Roman", serif;
  --f-body: "IBM Plex Sans Hebrew", "Heebo", Arial, sans-serif;
}
html[lang="ar"] {
  --f-heading: "Amiri", "Noto Naskh Arabic", "Times New Roman", serif;
  --f-body: "IBM Plex Sans Arabic", "Cairo", Tahoma, sans-serif;
  --lh-heading: 1.4;   /* Naskh needs more leading */
  --lh-body: 1.85;
}


/* Self-hosted fonts (SIL OFL). Files live in /assets/fonts/. Subsets are
   split by script so a Hebrew page never downloads the Arabic faces. */

/* Frank Ruhl Libre — Hebrew headings */
@font-face{font-family:"Frank Ruhl Libre";font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/frank-ruhl-libre-hebrew-300-normal.woff2) format("woff2");unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}
@font-face{font-family:"Frank Ruhl Libre";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/frank-ruhl-libre-hebrew-400-normal.woff2) format("woff2");unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}
@font-face{font-family:"Frank Ruhl Libre";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/frank-ruhl-libre-hebrew-500-normal.woff2) format("woff2");unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}
@font-face{font-family:"Frank Ruhl Libre";font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/frank-ruhl-libre-latin-300-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Frank Ruhl Libre";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/frank-ruhl-libre-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Frank Ruhl Libre";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/frank-ruhl-libre-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* Amiri — Arabic headings */
@font-face{font-family:"Amiri";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/amiri-arabic-400-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:"Amiri";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/amiri-arabic-700-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:"Amiri";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/amiri-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Amiri";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/amiri-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* IBM Plex Sans Hebrew — Hebrew body/UI */
@font-face{font-family:"IBM Plex Sans Hebrew";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-hebrew-hebrew-400-normal.woff2) format("woff2");unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}
@font-face{font-family:"IBM Plex Sans Hebrew";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-hebrew-hebrew-500-normal.woff2) format("woff2");unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}
@font-face{font-family:"IBM Plex Sans Hebrew";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-hebrew-hebrew-600-normal.woff2) format("woff2");unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}
@font-face{font-family:"IBM Plex Sans Hebrew";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-hebrew-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Sans Hebrew";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-hebrew-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Sans Hebrew";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-hebrew-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* IBM Plex Sans Arabic — Arabic body/UI */
@font-face{font-family:"IBM Plex Sans Arabic";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-arabic-arabic-400-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:"IBM Plex Sans Arabic";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-arabic-arabic-500-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:"IBM Plex Sans Arabic";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-arabic-arabic-600-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:"IBM Plex Sans Arabic";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-arabic-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Sans Arabic";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-arabic-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Sans Arabic";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-arabic-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}


/* =====================================================================
   Royal Light — site styles. Tokens come from tokens.css (same bundle).
   Layout is RTL-first (Hebrew/Arabic); logical properties throughout.
   ===================================================================== */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  margin: 0;
  background: var(--c-ink);
  color: var(--c-ivory);
  font-family: var(--f-body);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img, canvas, video { display: block; max-width: 100%; }
a { color: inherit; }
button { font: inherit; color: inherit; }
h1, h2, h3, h4 { font-family: var(--f-heading); font-weight: 400; line-height: var(--lh-heading); margin: 0; letter-spacing: -.005em; }
p { margin: 0; }
:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 3px; border-radius: 4px; }
[hidden] { display: none !important; }

.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.container { width: min(100% - 2 * var(--gutter), var(--container)); margin-inline: auto; }

/* ---------- Skip links ---------- */
.skip-link {
  position: fixed; inset-block-start: 8px; inset-inline-start: 8px; z-index: 200;
  background: var(--c-gold); color: var(--c-on-gold); padding: .6rem 1rem; border-radius: var(--r-pill);
  transform: translateY(-160%); transition: transform var(--t-fast) var(--ease-out); font-weight: 600;
}
.skip-link:focus { transform: none; }

/* ---------- Header (glassy) ---------- */
.header {
  position: fixed; inset-block-start: 0; inset-inline: 0; z-index: 100;
  height: var(--header-h);
  padding-inline: max(var(--gutter), env(safe-area-inset-left)) max(var(--gutter), env(safe-area-inset-right));
  padding-block-start: env(safe-area-inset-top);
  background: linear-gradient(180deg, rgba(11,11,13,.72), rgba(11,11,13,.55));
  -webkit-backdrop-filter: blur(18px) saturate(140%); backdrop-filter: blur(18px) saturate(140%);
  border-block-end: 1px solid rgba(201, 162, 74, .28);
  box-shadow: 0 1px 0 rgba(255,255,255,.04) inset, 0 10px 30px rgba(0,0,0,.25);
  display: flex; align-items: center; gap: var(--s-4);
}
.brand { display: inline-flex; align-items: center; gap: .65rem; text-decoration: none; min-height: var(--touch); flex: none; }
.brand__mark { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 1px rgba(201,162,74,.45); }
.brand__word { font-family: var(--f-latin); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; font-size: .95rem; color: var(--c-gold-light); line-height: 1.1; }
.brand__sub { display: block; font-size: .62rem; letter-spacing: .22em; color: var(--c-sand); font-weight: 500; }

.nav { display: flex; align-items: center; margin-inline-start: var(--s-3); }
.nav__list { display: flex; gap: var(--s-2); list-style: none; margin: 0; padding: 0; }
.nav__item { position: relative; }
.nav__link { display: inline-flex; align-items: center; gap: .3rem; min-height: var(--touch); padding: 0 .55rem; text-decoration: none; color: var(--c-ivory); font-weight: 500; position: relative; background: none; border: 0; cursor: pointer; white-space: nowrap; }
.nav__link::after { content: ""; position: absolute; inset-inline: .55rem; inset-block-end: 8px; height: 1px; background: var(--c-gold); transform: scaleX(0); transform-origin: var(--origin-start, right); transition: transform var(--t-base) var(--ease-out); }
.nav__link:hover::after, .nav__link[aria-current="page"]::after, .nav__item.is-open .nav__link::after { transform: scaleX(1); }
.nav__link--btn svg { transition: transform var(--t-fast); }
.nav__item.is-open .nav__link--btn svg { transform: rotate(180deg); }

.dropdown { position: absolute; inset-block-start: calc(100% + 6px); inset-inline-start: 0; width: min(92vw, 420px); background: rgba(20,20,23,.92); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); border: 1px solid rgba(201,162,74,.3); border-radius: var(--r-md); box-shadow: 0 24px 60px rgba(0,0,0,.5); padding: .5rem; z-index: 120; }
.dropdown__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .15rem; }
.dropdown__item { display: grid; grid-template-columns: 40px 1fr; gap: .75rem; align-items: center; padding: .5rem .6rem; border-radius: var(--r-sm); text-decoration: none; min-height: var(--touch); }
.dropdown__item:hover, .dropdown__item:focus-visible { background: rgba(201,162,74,.12); }
.dropdown__item img { width: 40px; height: 50px; object-fit: cover; border-radius: 6px; }
.dropdown__item b { display: block; font-weight: 500; }
.dropdown__item small { display: block; color: var(--c-sand); font-size: .78rem; }
.dropdown__all { display: inline-flex; align-items: center; gap: .4rem; min-height: var(--touch); padding: .4rem .8rem; margin-block-start: .25rem; color: var(--c-gold-light); text-decoration: none; font-size: var(--fs-small); border-block-start: 1px solid var(--c-vein-soft); width: 100%; }
.dropdown__all svg { width: 14px; height: 14px; }
html[dir="rtl"] .dropdown__all svg { transform: scaleX(-1); }

.header__tools { margin-inline-start: auto; display: flex; align-items: center; gap: .5rem; min-width: 0; }
.search { display: flex; align-items: center; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: var(--r-pill); padding-inline-start: .9rem; min-height: var(--touch); transition: border-color var(--t-base), background var(--t-base); }
.search:focus-within { border-color: var(--c-gold); background: rgba(255,255,255,.09); }
.search__input { background: none; border: 0; color: var(--c-ivory); font: inherit; min-width: 0; width: 200px; outline: none; }
.search__input::placeholder { color: var(--c-sand); }
.search__input::-webkit-search-decoration, .search__input::-webkit-search-cancel-button { -webkit-appearance: none; }
.search__btn { background: none; border: 0; color: var(--c-gold-light); min-width: var(--touch); min-height: var(--touch); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; border-radius: var(--r-pill); }
.search--mobile { width: 100%; margin-block-end: var(--s-3); }
.search--mobile .search__input { width: 100%; }
@media (max-width: 1180px) { .search--header .search__input { width: 140px; } }
@media (max-width: 1000px) { .search--header { display: none; } }

.icon-btn { display: inline-flex; align-items: center; justify-content: center; min-width: var(--touch); min-height: var(--touch); background: transparent; border: 1px solid transparent; border-radius: var(--r-pill); color: var(--c-ivory); cursor: pointer; position: relative; transition: color var(--t-fast), border-color var(--t-fast), background var(--t-fast); }
.icon-btn:hover { color: var(--c-gold-light); }
.icon-btn--round { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); width: var(--touch); height: var(--touch); }
.icon-btn--round:hover { background: var(--c-gold); color: var(--c-on-gold); border-color: var(--c-gold); }
.basket-btn { border-color: rgba(201,162,74,.45); }
.basket-btn__count { position: absolute; inset-block-start: 2px; inset-inline-end: 2px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--c-gold); color: var(--c-on-gold); font-size: .7rem; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }

.lang { display: inline-flex; align-items: center; gap: .35rem; min-height: var(--touch); padding: 0 .75rem; border: 1px solid var(--c-vein); border-radius: var(--r-pill); text-decoration: none; color: var(--c-sand); font-size: var(--fs-small); white-space: nowrap; }
.lang:hover { border-color: var(--c-gold); color: var(--c-ivory); }

.menu-btn { display: none; align-items: center; justify-content: center; gap: .5rem; min-width: var(--touch); min-height: var(--touch); padding: 0 .75rem; background: transparent; border: 1px solid rgba(201,162,74,.5); border-radius: var(--r-pill); cursor: pointer; }
.menu-btn__bars { position: relative; width: 20px; height: 14px; }
.menu-btn__bars::before, .menu-btn__bars::after, .menu-btn__bars i { content: ""; position: absolute; inset-inline: 0; height: 2px; background: var(--c-gold-light); transition: transform var(--t-base) var(--ease-out), opacity var(--t-fast); }
.menu-btn__bars::before { inset-block-start: 0; } .menu-btn__bars i { inset-block-start: 6px; } .menu-btn__bars::after { inset-block-end: 0; }
.menu-btn[aria-expanded="true"] .menu-btn__bars::before { transform: translateY(6px) rotate(45deg); }
.menu-btn[aria-expanded="true"] .menu-btn__bars::after { transform: translateY(-6px) rotate(-45deg); }
.menu-btn[aria-expanded="true"] .menu-btn__bars i { opacity: 0; }
@media (max-width: 560px) { .menu-btn__label { display: none; } .menu-btn { padding: 0; width: var(--touch); } }

/* Mobile menu (modal dialog) */
.mobile-menu { position: fixed; inset: 0; z-index: 150; display: none; }
.mobile-menu[open] { display: block; }
.mobile-menu__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.6); }
.mobile-menu__panel {
  position: absolute; inset-block: 0; inset-inline-end: 0; width: min(88vw, 360px);
  background: var(--c-charcoal); border-inline-start: 1px solid rgba(201,162,74,.35);
  padding: calc(var(--header-h) + env(safe-area-inset-top) + var(--s-4)) var(--s-5) calc(var(--s-6) + env(safe-area-inset-bottom));
  display: flex; flex-direction: column; gap: var(--s-4); overflow-y: auto;
  transition: transform var(--t-base) var(--ease-out);
}
html[dir="ltr"] .mobile-menu__panel { transform: translateX(100%); }
html[dir="rtl"] .mobile-menu__panel { transform: translateX(-100%); }
.mobile-menu[open] .mobile-menu__panel { transform: none; }
.mobile-menu__close { position: absolute; inset-block-start: calc(10px + env(safe-area-inset-top)); inset-inline-end: var(--s-4); }
.mobile-menu__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .25rem; }
.mobile-menu__link { display: flex; align-items: center; min-height: 52px; padding: 0 .5rem; font-size: 1.2rem; font-family: var(--f-heading); text-decoration: none; border-block-end: 1px solid var(--c-vein-soft); }
.mobile-menu__cats { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.mobile-menu__cat { display: flex; align-items: center; min-height: var(--touch); padding: 0 .5rem; color: var(--c-sand); text-decoration: none; }
.mobile-menu__eyebrow { margin-block-start: var(--s-4); }

@media (max-width: 900px) {
  .nav, .header .lang { display: none; }
  .menu-btn { display: inline-flex; }
}
body.modal-open { overflow: hidden; }

/* Inquiry basket (side panel) */
.basket { position: fixed; inset: 0; z-index: 150; display: none; }
.basket[open] { display: block; }
.basket__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.6); }
.basket__panel { position: absolute; inset-block: 0; inset-inline-end: 0; width: min(92vw, 420px); background: var(--c-charcoal); border-inline-start: 1px solid rgba(201,162,74,.35); padding: calc(var(--s-4) + env(safe-area-inset-top)) var(--s-5) calc(var(--s-5) + env(safe-area-inset-bottom)); display: flex; flex-direction: column; gap: var(--s-4); overflow-y: auto; transition: transform var(--t-base) var(--ease-out); }
html[dir="ltr"] .basket__panel { transform: translateX(100%); }
html[dir="rtl"] .basket__panel { transform: translateX(-100%); }
.basket[open] .basket__panel { transform: none; }
.basket__head { display: flex; align-items: center; justify-content: space-between; }
.basket__note { color: var(--c-sand); font-size: var(--fs-small); border: 1px dashed rgba(201,162,74,.4); border-radius: var(--r-sm); padding: .6rem .8rem; }
.basket__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s-3); }
.basket__item { display: grid; grid-template-columns: 64px 1fr auto; gap: var(--s-3); align-items: center; padding-block-end: var(--s-3); border-block-end: 1px solid var(--c-vein-soft); }
.basket__thumb img { width: 64px; height: 80px; object-fit: cover; border-radius: var(--r-sm); }
.basket__name { text-decoration: none; font-weight: 500; display: block; }
.basket__finish { display: block; color: var(--c-sand); font-size: var(--fs-small); }
.basket__empty { color: var(--c-sand); }
.basket__actions { margin-block-start: auto; display: grid; gap: .5rem; }
.btn.is-disabled { opacity: .45; pointer-events: none; }

/* toast */
.toast { position: fixed; inset-inline-start: 50%; inset-block-end: calc(var(--s-5) + env(safe-area-inset-bottom)); transform: translate(-50%, 20px); z-index: 200; background: var(--c-gold); color: var(--c-on-gold); padding: .7rem 1.1rem; border-radius: var(--r-pill); font-weight: 600; opacity: 0; pointer-events: none; transition: opacity var(--t-base), transform var(--t-base) var(--ease-out); box-shadow: 0 12px 30px rgba(0,0,0,.4); max-width: 90vw; }
.toast.is-on { opacity: 1; transform: translate(-50%, 0); }

/* quantity stepper */
.qty { display: inline-flex; align-items: center; border: 1px solid var(--c-vein); border-radius: var(--r-pill); overflow: hidden; }
.qty__btn { width: var(--touch); height: var(--touch); background: none; border: 0; color: var(--c-ivory); font-size: 1.2rem; cursor: pointer; }
.qty__btn:hover { background: rgba(255,255,255,.06); }
.qty__input { width: 52px; text-align: center; background: none; border: 0; color: var(--c-ivory); font: inherit; -moz-appearance: textfield; }
.qty__input::-webkit-inner-spin-button, .qty__input::-webkit-outer-spin-button { -webkit-appearance: none; }
.qty--sm .qty__btn { width: 32px; height: 32px; font-size: 1rem; }
.qty__val { min-width: 28px; text-align: center; }

/* ---------- Type helpers ---------- */
.eyebrow { font-family: var(--f-body); font-size: var(--fs-eyebrow); letter-spacing: var(--ls-eyebrow); text-transform: uppercase; color: var(--c-gold); font-weight: 600; }
html[lang="ar"] .eyebrow, html[lang="he"] .eyebrow { letter-spacing: .06em; text-transform: none; }
.lead { font-size: var(--fs-lead); color: var(--c-sand); max-width: 60ch; }
.h-display { font-size: var(--fs-display); line-height: var(--lh-tight); }
.h1 { font-size: var(--fs-h1); } .h2 { font-size: var(--fs-h2); } .h3 { font-size: var(--fs-h3); }
.gold-line { display: block; width: 56px; height: 1px; background: var(--g-gold); margin-block: var(--s-3); transform-origin: var(--origin-start, right); transform: scaleX(0); transition: transform var(--t-reveal) var(--ease-out) .1s; }
.is-inview .gold-line, .story .gold-line { transform: scaleX(1); }
html[dir="rtl"] { --origin-start: right; }
html[dir="ltr"] { --origin-start: left; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-height: 48px; padding: .75rem 1.5rem; border-radius: var(--r-pill);
  font-weight: 600; text-decoration: none; cursor: pointer; border: 1px solid transparent;
  transition: transform var(--t-fast) var(--ease-out), box-shadow var(--t-base), background-color var(--t-base), color var(--t-base), border-color var(--t-base);
}
.btn:active { transform: translateY(1px); }
.btn--primary { background: var(--g-gold); color: var(--c-on-gold); box-shadow: 0 8px 24px rgba(201,162,74,.22); }
.btn--primary:hover { box-shadow: 0 10px 30px rgba(231,200,115,.35); filter: brightness(1.05); }
.btn--ghost { background: rgba(11,11,13,.35); color: var(--c-ivory); border-color: rgba(244,239,230,.35); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.btn--ghost:hover { border-color: var(--c-gold); color: var(--c-gold-light); }
.btn--sm { min-height: var(--touch); padding: .5rem 1rem; font-size: var(--fs-small); }
.btn__ico { width: 18px; height: 18px; flex: none; }
.link-arrow { display: inline-flex; align-items: center; gap: .4rem; min-height: var(--touch); padding: 0 1rem; border: 1px solid var(--c-vein); border-radius: var(--r-pill); text-decoration: none; color: var(--c-ivory); font-weight: 500; transition: border-color var(--t-base), color var(--t-base); }
.link-arrow:hover { border-color: var(--c-gold); color: var(--c-gold-light); }
.link-arrow svg { width: 16px; height: 16px; }
html[dir="rtl"] .link-arrow svg, html[dir="rtl"] .breadcrumb svg { transform: scaleX(-1); }

/* ---------- Sections ---------- */
main { display: block; }
.section { padding-block: clamp(var(--s-8), 9vw, var(--s-9)); scroll-margin-top: calc(var(--header-h) + 8px); }
.section--alt { background: var(--c-charcoal); }
.section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--s-5); margin-block-end: var(--s-6); flex-wrap: wrap; }
.section__head .lead { margin-block-start: var(--s-2); }
[id] { scroll-margin-top: calc(var(--header-h) + 8px); }

/* Reveal (blur -> sharp, like a lamp warming up) */
.reveal { opacity: 0; filter: blur(14px); transform: translateY(14px); transition: opacity var(--t-reveal) var(--ease-out), filter var(--t-reveal) var(--ease-out), transform var(--t-reveal) var(--ease-out); transition-delay: var(--reveal-delay, 0ms); will-change: opacity, filter; }
.reveal.is-inview { opacity: 1; filter: blur(0); transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; filter: none; transform: none; transition: none; } .gold-line { transform: none; transition: none; } }

/* ---------- Category cards (catDesign1 reference: image, name below) ---------- */
.cat-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--s-4); }
@media (max-width: 1080px) { .cat-grid { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 640px) { .cat-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--s-3); } }
.cat-card { display: grid; gap: .5rem; text-decoration: none; }
.cat-card__media { display: block; aspect-ratio: 4 / 5; border-radius: var(--r-md); overflow: hidden; background: var(--c-graphite); box-shadow: var(--shadow-card); border: 1px solid var(--c-vein-soft); transition: box-shadow var(--t-base), border-color var(--t-base); }
.cat-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--t-slow) var(--ease-out); }
.cat-card__name { font-family: var(--f-heading); font-size: var(--fs-h3); color: var(--c-ivory); margin-block-start: .35rem; }
.cat-card__blurb { font-size: var(--fs-small); color: var(--c-sand); }
.cat-card:hover .cat-card__media img, .cat-card:focus-visible .cat-card__media img { transform: scale(1.05); }
.cat-card:hover .cat-card__media { box-shadow: var(--glow-card); border-color: rgba(201,162,74,.5); }
@media (max-width: 640px) { .cat-card__blurb { display: none; } .cat-card__name { font-size: 1.05rem; } }

/* ---------- Product cards (ProductsInCat reference) ---------- */
.prod-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: var(--s-5); }
@media (max-width: 1000px) { .prod-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--s-4); } }
@media (max-width: 480px) { .prod-grid { grid-template-columns: 1fr; } }
.prod-card { position: relative; display: flex; flex-direction: column; background: var(--c-graphite); border-radius: var(--r-md); overflow: hidden; box-shadow: var(--shadow-card); border: 1px solid var(--c-vein-soft); transition: box-shadow var(--t-base), border-color var(--t-base), transform var(--t-base) var(--ease-out); }
.prod-card:hover { border-color: rgba(201,162,74,.5); box-shadow: var(--glow-card); transform: translateY(-3px); }
.prod-card__media { display: block; aspect-ratio: 4 / 5; overflow: hidden; background: #26262b; }
.prod-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--t-slow) var(--ease-out); }
.prod-card:hover .prod-card__media img { transform: scale(1.04); }
.prod-card__body { padding: var(--s-4); display: flex; align-items: flex-end; justify-content: space-between; gap: var(--s-3); }
.prod-card__text { display: grid; gap: .2rem; min-width: 0; }
.prod-card__cat { font-size: var(--fs-eyebrow); color: var(--c-gold); letter-spacing: .06em; }
.prod-card__name { font-family: var(--f-heading); font-size: 1.2rem; line-height: 1.25; }
.prod-card__name a { text-decoration: none; }
.prod-card__name a::after { content: ""; position: absolute; inset: 0; }
.prod-card__price { color: var(--c-sand); font-size: var(--fs-small); }
.prod-card__add { position: relative; z-index: 1; flex: none; }

/* ---------- Why ---------- */
.why-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: var(--s-5); }
@media (max-width: 800px) { .why-grid { grid-template-columns: 1fr; } }
.why-item { padding: var(--s-5); border: 1px solid var(--c-vein-soft); border-radius: var(--r-md); background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,0)); }
.why-item__ico { width: 40px; height: 40px; color: var(--c-gold); margin-block-end: var(--s-3); }
.why-item h3 { margin-block-end: .4rem; }
.why-item p { color: var(--c-sand); }

/* ---------- Contact ---------- */
.contact { display: grid; grid-template-columns: 1.1fr .9fr; gap: var(--s-7); align-items: start; }
@media (max-width: 860px) { .contact { grid-template-columns: 1fr; gap: var(--s-6); } }
.contact__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s-4); }
.contact__item { display: grid; grid-template-columns: 24px 1fr; gap: var(--s-3); align-items: start; }
.contact__item svg { width: 22px; height: 22px; color: var(--c-gold); margin-block-start: .15rem; }
.contact__label { font-size: var(--fs-eyebrow); color: var(--c-sand); letter-spacing: .06em; }
.contact__value { font-size: 1.05rem; }
.contact__value a { text-decoration: none; }
.contact__value a:hover { color: var(--c-gold-light); }
.contact__value.is-todo { color: var(--c-sand); font-style: italic; }
.contact__cta { display: flex; gap: var(--s-3); flex-wrap: wrap; margin-block-start: var(--s-5); }
.notice { border: 1px dashed rgba(201,162,74,.5); border-radius: var(--r-sm); padding: .75rem 1rem; color: var(--c-sand); font-size: var(--fs-small); background: rgba(201,162,74,.06); }
.logo-plate { border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-card); aspect-ratio: 1; max-width: 420px; justify-self: center; width: 100%; }
.logo-plate img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Footer ---------- */
.footer { border-block-start: 1px solid var(--c-vein-soft); padding-block: var(--s-7) calc(var(--s-6) + env(safe-area-inset-bottom)); background: var(--c-charcoal); color: var(--c-sand); font-size: var(--fs-small); }
.footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: var(--s-6); }
@media (max-width: 860px) { .footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .footer__grid { grid-template-columns: 1fr; } }
.footer h4 { font-family: var(--f-body); font-size: var(--fs-eyebrow); letter-spacing: .08em; color: var(--c-gold); margin-block-end: var(--s-3); }
.footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; }
.footer a { text-decoration: none; display: inline-flex; min-height: 32px; align-items: center; }
.footer a:hover { color: var(--c-gold-light); }
.footer__bottom { margin-block-start: var(--s-6); padding-block-start: var(--s-4); border-block-start: 1px solid var(--c-vein-soft); display: flex; justify-content: space-between; gap: var(--s-4); flex-wrap: wrap; }
.footer__tagline { font-family: var(--f-heading); font-size: 1.25rem; color: var(--c-ivory); margin-block: var(--s-3); }

/* ---------- Breadcrumbs ---------- */
.breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; list-style: none; margin: 0 0 var(--s-5); padding: 0; font-size: var(--fs-small); color: var(--c-sand); }
.breadcrumb a { text-decoration: none; min-height: 32px; display: inline-flex; align-items: center; }
.breadcrumb a:hover { color: var(--c-gold-light); }
.breadcrumb svg { width: 14px; height: 14px; opacity: .6; }
.breadcrumb [aria-current] { color: var(--c-ivory); }

/* ---------- Page header (inner pages) ---------- */
.page-head { padding-block: calc(var(--header-h) + var(--s-7)) var(--s-6); }
.page-head .lead { margin-block-start: var(--s-3); }

/* ---------- Filter chips (catalog) ---------- */
.chips { display: flex; gap: .5rem; flex-wrap: wrap; margin-block-end: var(--s-6); }
.chip { min-height: 40px; padding: .35rem 1rem; border-radius: var(--r-pill); border: 1px solid var(--c-vein); background: transparent; color: var(--c-sand); cursor: pointer; transition: all var(--t-fast); }
.chip[aria-pressed="true"] { background: var(--c-gold); color: var(--c-on-gold); border-color: var(--c-gold); font-weight: 600; }
.chip:hover { border-color: var(--c-gold); color: var(--c-ivory); }
.chip[aria-pressed="true"]:hover { color: var(--c-on-gold); }

/* ---------- Product page ---------- */
.product { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: var(--s-7); align-items: start; }
@media (max-width: 900px) { .product { grid-template-columns: 1fr; gap: var(--s-6); } }
.gallery { display: grid; gap: var(--s-3); }
.gallery__main { border-radius: var(--r-md); overflow: hidden; background: var(--c-graphite); aspect-ratio: 4 / 5; box-shadow: var(--shadow-card); }
.gallery__main img { width: 100%; height: 100%; object-fit: cover; }
.gallery__thumbs { display: flex; gap: .5rem; list-style: none; margin: 0; padding: 0; overflow-x: auto; }
.gallery__thumb { flex: none; width: 84px; height: 84px; border-radius: var(--r-sm); overflow: hidden; border: 2px solid transparent; background: none; padding: 0; cursor: pointer; }
.gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
.gallery__thumb[aria-pressed="true"] { border-color: var(--c-gold); }
.product__info { display: grid; gap: var(--s-4); }
.product__price { font-size: 1.35rem; font-weight: 500; }
.product__price small { display: block; font-size: var(--fs-small); color: var(--c-sand); font-weight: 400; }
.finishes { display: flex; gap: .6rem; flex-wrap: wrap; }
.finish { display: inline-flex; align-items: center; gap: .5rem; min-height: var(--touch); padding: .25rem .8rem .25rem .4rem; border: 1px solid var(--c-vein); border-radius: var(--r-pill); background: transparent; cursor: pointer; color: var(--c-ivory); }
html[dir="rtl"] .finish { padding: .25rem .4rem .25rem .8rem; }
.finish[aria-pressed="true"] { border-color: var(--c-gold); box-shadow: 0 0 0 1px var(--c-gold); }
.finish__swatch { width: 26px; height: 26px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(255,255,255,.25); }
.product__desc { color: var(--c-sand); font-size: var(--fs-lead); }
.product__cta { display: flex; gap: var(--s-3); flex-wrap: wrap; }
.spec-list { display: grid; grid-template-columns: max-content 1fr; gap: .4rem var(--s-4); margin: 0; }
.spec-list dt { color: var(--c-sand); } .spec-list dd { margin: 0; }

/* ---------- Scroll story (pinned stage) ---------- */
/* Height is preset from the timeline (--story-travel, generated at build) so anchors, reloads and
   back/forward land correctly before JS refines it in px. */
.story { position: relative; background: var(--c-ink); height: calc((var(--story-travel, 2.5) + 1) * 100vh); height: calc((var(--story-travel, 2.5) + 1) * 100svh); }
.story__stage { position: sticky; inset-block-start: 0; height: 100vh; height: 100svh; overflow: hidden; isolation: isolate; background: var(--c-ink); }
.story__picture { display: contents; }
.story__poster, .story__canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.story__poster { object-fit: cover; object-position: 60% 50%; }
@media (max-aspect-ratio: 9/10) { .story__poster { object-position: 50% 50%; } }
.story__canvas { display: none; }
.story.is-animated .story__canvas.is-ready { display: block; }
.story.is-animated .story__canvas.is-ready ~ .story__picture .story__poster { visibility: hidden; }
.story__scrim { position: absolute; inset: 0; pointer-events: none; z-index: 1; background: var(--g-scrim-start); opacity: .9; }
.story__scrim--bottom { background: var(--g-scrim-bottom); }
@media (min-width: 821px) { .story__scrim--bottom { display: none; } }
@media (max-width: 820px) { .story__scrim { display: none; } .story__scrim--bottom { display: block; } }

.story__chapters { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.chapter {
  position: absolute; inset-inline-start: var(--gutter); inset-inline-end: var(--gutter);
  inset-block-start: 50%; transform: translateY(-50%);
  max-width: min(32rem, 34vw); display: grid; gap: var(--s-3); padding-block-start: var(--header-h);
  opacity: 0; visibility: hidden; transition: opacity var(--t-base) var(--ease-out), visibility 0s linear var(--t-base), transform var(--t-slow) var(--ease-out);
  pointer-events: none;
}
.chapter.is-active { opacity: 1; visibility: visible; transition-delay: 0s; pointer-events: auto; }
.chapter__actions { display: flex; gap: var(--s-3); flex-wrap: wrap; margin-block-start: var(--s-2); }
.chapter__actions .btn { pointer-events: auto; }
.chapter .lead { color: var(--c-ivory); opacity: .9; text-shadow: 0 1px 12px rgba(0,0,0,.6); }
.chapter .h-display, .chapter .h1 { text-shadow: 0 2px 24px rgba(0,0,0,.65); }

/* quotes floating beside the chandelier (desktop: left/right thirds; mobile: one at a time under the header) */
.hero-quote { position: absolute; margin: 0; max-width: min(22rem, 30vw); opacity: 0; visibility: hidden; transform: translateY(12px); transition: opacity var(--t-slow) var(--ease-out), transform var(--t-slow) var(--ease-out), visibility 0s linear var(--t-slow); pointer-events: none; }
.hero-quote.is-active { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.hero-quote p { font-family: var(--f-heading); font-size: clamp(1.4rem, 1rem + 1.4vw, 2.2rem); line-height: var(--lh-heading); color: var(--c-ivory); text-shadow: 0 2px 22px rgba(0,0,0,.7); margin: 0; }
.hero-quote p::before { content: "“"; color: var(--c-gold); margin-inline-end: .1em; }
.hero-quote--left { inset-inline-start: auto; left: var(--gutter); inset-block-start: 38%; text-align: left; }
.hero-quote--right { inset-inline-end: auto; right: var(--gutter); inset-block-start: 62%; text-align: right; }
html[dir="rtl"] .hero-quote--left { text-align: right; direction: rtl; }
html[dir="rtl"] .hero-quote--right { text-align: right; }
@media (max-width: 820px) {
  .hero-quote { left: var(--gutter); right: var(--gutter); inset-block-start: calc(var(--header-h) + env(safe-area-inset-top) + var(--s-2)); max-width: none; text-align: center !important; }
  .hero-quote p { font-size: 1.2rem; }
}

@media (max-width: 820px) {
  .chapter { inset-block-start: auto; inset-block-end: calc(var(--s-8) + env(safe-area-inset-bottom)); transform: none; max-width: none; padding-block-start: 0; gap: var(--s-2); }
  .chapter__eyebrow { display: none; }              /* one short headline + actions: drop decorative labels */
  .chapter--intro .chapter__lead { display: none; }  /* the lead lives in the About section */
  .chapter .lead { font-size: 1rem; }
  .chapter__actions { gap: .5rem; }
}
.story__skip { position: absolute; z-index: 3; inset-inline-end: var(--gutter); inset-block-end: calc(var(--s-4) + env(safe-area-inset-bottom)); }
@media (max-width: 820px) { .story__skip { inset-inline-start: auto; inset-inline-end: var(--gutter); inset-block-end: calc(var(--s-3) + env(safe-area-inset-bottom)); } .story__hint { display: none; } }  /* phones: skip sits bottom-left (RTL end edge); the primary button carries the scroll arrow */
.story__progress { position: absolute; z-index: 3; inset-block-end: 0; inset-inline-start: 0; height: 2px; background: var(--g-gold); width: 0; transform-origin: var(--origin-start, right); }
.story__hint { position: absolute; z-index: 3; inset-inline-start: 50%; inset-block-end: calc(var(--s-3) + env(safe-area-inset-bottom)); transform: translateX(-50%); color: var(--c-sand); font-size: var(--fs-eyebrow); letter-spacing: .1em; display: inline-flex; gap: .4rem; align-items: center; opacity: .85; pointer-events: none; }
.story__hint svg { width: 14px; height: 14px; animation: nudge 1.6s var(--ease-in-out) infinite; }
@keyframes nudge { 0%,100% { transform: translateY(0); } 50% { transform: translateY(4px); } }
.story.is-scrolled .story__hint { opacity: 0; transition: opacity var(--t-slow); }
@media (prefers-reduced-motion: reduce) { .story__hint svg { animation: none; } }

/* Static / reduced-motion / no-JS presentation: no pinned travel, chapters stacked below the still */
.story.is-static, .no-js .story { height: auto !important; }
@media (max-height: 500px) { .story { height: auto; } }   /* landscape phones: static presentation (JS confirms) */
.story.is-static .story__stage, .no-js .story__stage { position: relative; height: auto; min-height: 70vh; }
.story.is-static .story__poster, .no-js .story__poster { position: relative; height: min(88vh, 720px); }
.story.is-static .story__canvas, .story.is-static .story__skip, .story.is-static .story__progress, .story.is-static .story__hint, .story.is-static .hero-quote,
.no-js .story__canvas, .no-js .story__skip, .no-js .story__progress, .no-js .story__hint, .no-js .hero-quote { display: none !important; }
.story.is-static .story__chapters, .no-js .story__chapters { position: static; pointer-events: auto; padding: var(--s-6) 0; }
.story.is-static .chapter, .no-js .chapter { position: relative; inset: auto; transform: none; opacity: 1; visibility: visible; pointer-events: auto; max-width: var(--container); width: min(100% - 2*var(--gutter), var(--container)); margin-inline: auto; padding-block: var(--s-5); border-block-end: 1px solid var(--c-vein-soft); transition: none; display: grid; grid-template-columns: 1fr; }
.story.is-static .chapter:last-of-type, .no-js .chapter:last-of-type { border: 0; }
.story.is-static .chapter__eyebrow, .story.is-static .chapter__lead, .story.is-static .gold-line, .no-js .chapter__eyebrow, .no-js .chapter__lead, .no-js .gold-line { display: block; }
.story.is-static .chapter--intro, .no-js .chapter--intro { position: absolute; z-index: 2; inset-inline-start: var(--gutter); inset-inline-end: auto; inset-block-start: 0; max-width: 32rem; width: auto; margin: 0; padding: calc(var(--header-h) + 8vh) 0 0; border: 0; }
.story.is-static .story__scrim, .no-js .story__scrim { display: block; position: absolute; inset: 0; height: min(88vh, 720px); opacity: .8; }
@media (max-width: 820px) {
  .story.is-static .chapter--intro, .no-js .chapter--intro { position: relative; inset: auto; width: min(100% - 2*var(--gutter), var(--container)); max-width: var(--container); margin-inline: auto; padding: var(--s-5) 0; border-block-end: 1px solid var(--c-vein-soft); }
  .story.is-static .story__scrim, .no-js .story__scrim { display: none; }
  .story.is-static .story__poster, .no-js .story__poster { height: min(60vh, 520px); }
}
.story__demo { position: absolute; z-index: 3; inset-inline-start: var(--gutter); inset-block-end: calc(var(--s-4) + env(safe-area-inset-bottom)); }
@media (max-width: 820px) { .story__demo { display: none; } }

/* ---------- Language chooser (root index) ---------- */
.lang-choose { min-height: 100svh; display: grid; place-items: center; text-align: center; padding: var(--s-6); }
.lang-choose img { width: 220px; border-radius: 50%; margin-inline: auto; margin-block-end: var(--s-5); }
.lang-choose .btn { margin: .4rem; min-width: 180px; }

/* ---------- Utilities ---------- */
.stack-sm > * + * { margin-block-start: var(--s-3); }
.mt-6 { margin-block-start: var(--s-6); }
.text-sand { color: var(--c-sand); }

/* ---------- Moments: supplied photos + floating quotes (Details.docx) ---------- */
.moments__list { display: grid; gap: clamp(var(--s-6), 6vw, var(--s-8)); }
.moment { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(var(--s-5), 5vw, var(--s-8)); align-items: center; }
.moment--alt .moment__media { order: 2; }
.moment__media { display: block; border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-card); aspect-ratio: 4 / 5; max-height: 640px; border: 1px solid var(--c-vein-soft); }
.moment__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--t-slow) var(--ease-out); }
.moment__media:hover img { transform: scale(1.03); }
.moment__caption { transform: translateY(var(--float, 0)); will-change: transform; }
.moment__quote { margin: 0; }
.moment__line { font-family: var(--f-heading); font-size: clamp(1.6rem, 1.2rem + 1.8vw, 2.6rem); line-height: var(--lh-heading); color: var(--c-ivory); text-shadow: 0 2px 20px rgba(0,0,0,.5); }
.moment__line::before { content: "“"; color: var(--c-gold); margin-inline-end: .1em; }
.moment__text { color: var(--c-sand); font-size: var(--fs-lead); margin-block-start: var(--s-3); max-width: 44ch; }
.moment__caption .link-arrow { margin-block-start: var(--s-4); }
.float-in { opacity: 0; transition: opacity var(--t-reveal) var(--ease-out) .15s; }
.float-in.is-inview { opacity: 1; }
@media (max-width: 760px) { .moment { grid-template-columns: 1fr; gap: var(--s-4); } .moment--alt .moment__media { order: 0; } .moment__media { max-height: 420px; aspect-ratio: 4 / 3; } .moment__caption { transform: none !important; } }
@media (prefers-reduced-motion: reduce) { .moment__caption { transform: none !important; } .float-in { opacity: 1; transition: none; } }

/* ---------- About ---------- */
.about { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: var(--s-7); align-items: center; }
@media (max-width: 900px) { .about { grid-template-columns: 1fr; gap: var(--s-6); } }
.about__text .chapter__actions { margin-block-start: var(--s-5); }
.why-grid--about { grid-template-columns: 1fr; gap: var(--s-4); }

/* ---------- Catalog helpers ---------- */
.section--tight { padding-block-start: 0; }
.subcats { margin-block-start: var(--s-5); }
.subcats .eyebrow { margin-block-end: .5rem; }
.subcats .chips { margin-block-end: 0; }
.filter-status { color: var(--c-sand); margin-block-end: var(--s-4); }
.empty-state { display: grid; gap: var(--s-4); justify-items: start; padding: var(--s-6); border: 1px dashed var(--c-vein); border-radius: var(--r-md); }
.page-head .section__head { margin-block-end: 0; }

/* ---------- Product page extras (productDetails reference) ---------- */
.product__buy { display: flex; flex-wrap: wrap; gap: var(--s-3); align-items: center; }
.info-boxes { display: grid; gap: .6rem; }
.info-box { display: grid; grid-template-columns: 24px 1fr; gap: var(--s-3); align-items: start; padding: var(--s-4); border: 1px solid var(--c-vein-soft); border-radius: var(--r-md); background: rgba(255,255,255,.02); }
.info-box svg { width: 22px; height: 22px; color: var(--c-gold); margin-block-start: .1rem; }
.info-box b { display: block; font-weight: 500; }
.info-box span { color: var(--c-sand); font-size: var(--fs-small); }

/* ---------- Social ---------- */
.social-row { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
.social-row a { display: inline-flex; align-items: center; gap: .35rem; min-height: 36px; }
.social { display: inline-flex; align-items: center; justify-content: center; width: var(--touch); height: var(--touch); border: 1px solid var(--c-vein); border-radius: 50%; color: var(--c-ivory); }
.social:hover { border-color: var(--c-gold); color: var(--c-gold-light); }

/* generated from content/timeline.json */
:root { --story-travel: 2.550; --story-mobile-max: 820px; }
@media (max-width: 820px) { :root { --story-travel: 2.200; } }
