/* =====================================================================
   PIETRA · site styles
   Travertine, basalt and brass. Crisp tile corners (4px / 14px), expo-out
   easing, Cormorant Garamond for display (English), IBM Plex Sans Arabic /
   Hebrew for Arabic and Hebrew (display in light weight + one bold word).
   ===================================================================== */
:root {
  --basalt: #1C1A17;
  --basalt-2: #262320;
  --ink: #1C1A17;
  --ink-2: #3A352F;
  --muted: #6B6359;
  --paper: #F5F1EB;
  --stone: #ECE5DA;
  --sand: #D8CBB8;
  --brass: #9A5F26;          /* on light: 4.6:1 on paper (AA text) · white on brass 5.2:1 */
  --brass-ink: #7A4618;     /* brass for small text on stone/sand: 6:1 on stone, 4.8:1 on sand (the brand brass is 4.2:1 / 3.3:1 there) */
  --brass-soft: #D9B48A;     /* on dark: 9:1 on basalt */
  --sage: #4F6A55;
  --white: #FFFDF9;
  --wa: #1F7A4D;
  --line: rgba(28, 26, 23, .12);
  --line-2: rgba(28, 26, 23, .22);
  --line-d: rgba(245, 241, 235, .14);
  --ease: cubic-bezier(.19, 1, .22, 1);
  --ease-io: cubic-bezier(.65, 0, .35, 1);
  --r: 4px;
  --r-lg: 14px;
  --gutter: clamp(20px, 4.2vw, 64px);
  --max: 1320px;
  --shadow: 0 30px 70px -34px rgba(28, 26, 23, .45);
  --shadow-s: 0 12px 30px -18px rgba(28, 26, 23, .45);
  --f-latin: "Cormorant Garamond", "Times New Roman", serif;
  --f-text: "IBM Plex Sans Arabic", "IBM Plex Sans Hebrew", system-ui, -apple-system, "Segoe UI", sans-serif;
  --hdr: 76px;
  --bar: 0px;
  color-scheme: light;
}
html[lang="he"] { --f-text: "IBM Plex Sans Hebrew", "IBM Plex Sans Arabic", system-ui, -apple-system, "Segoe UI", sans-serif; }

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
html.pre-swap body { opacity: 0; }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font-family: var(--f-text); font-size: 16px; line-height: 1.8; letter-spacing: 0;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  font-variant-numeric: lining-nums;   /* Cormorant defaults to old-style figures: 1001 read as "IOOI" */
  overflow-x: hidden;
}
html[lang="en"] body { line-height: 1.65; }
html[lang="he"] body { line-height: 1.7; }
img, video, canvas, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
h1, h2, h3, h4 { margin: 0; font-weight: 400; line-height: 1.15; }
p { margin: 0; }
::selection { background: var(--brass-soft); color: var(--basalt); }
:focus-visible { outline: 2px solid var(--brass); outline-offset: 3px; border-radius: 2px; }
.dark :focus-visible, .on-dark :focus-visible { outline-color: var(--brass-soft); }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: fixed; inset-inline-start: 12px; top: -80px; z-index: 300; background: var(--basalt); color: var(--paper); padding: 10px 18px; border-radius: var(--r); transition: top .3s var(--ease); }
.skip:focus { top: 12px; }
bdi, .num { unicode-bidi: isolate; }
.num { font-variant-numeric: tabular-nums lining-nums; }
.wrap { width: 100%; max-width: var(--max); margin-inline: auto; padding-inline: var(--gutter); }
.ico { width: 20px; height: 20px; flex: none; fill: currentColor; stroke: none; }
[dir="rtl"] .ico--dir { transform: scaleX(-1); }
[hidden] { display: none !important; }

/* ---------- type ---------- */
.display {
  font-family: var(--f-text); font-weight: 200; letter-spacing: 0; line-height: 1.2;
}
.display em { font-style: normal; font-weight: 500; }
html[lang="en"] .display { font-family: var(--f-latin); font-weight: 300; letter-spacing: -.012em; line-height: 1.02; }
html[lang="en"] .display em { font-style: italic; font-weight: 400; }
.h1 { font-size: clamp(2.6rem, 6.4vw, 6.4rem); }
html[lang="en"] .h1 { font-size: clamp(3.1rem, 7.6vw, 7.6rem); }
.h2 { font-size: clamp(2.1rem, 4.6vw, 4.4rem); }
html[lang="en"] .h2 { font-size: clamp(2.5rem, 5.6vw, 5.4rem); }
.h3 { font-size: clamp(1.5rem, 2.4vw, 2.2rem); }
html[lang="en"] .h3 { font-size: clamp(1.8rem, 2.8vw, 2.6rem); }
.lead { font-size: clamp(1.02rem, 1.2vw, 1.18rem); color: var(--muted); max-width: 54ch; font-weight: 300; }
.dark .lead, .on-dark .lead { color: rgba(245, 241, 235, .74); }
.label {
  display: flex; align-items: center; gap: 14px; font-size: .78rem; font-weight: 500; color: var(--muted); margin-block-end: 22px;
}
.label__n { color: var(--brass-ink); font-variant-numeric: tabular-nums; }
.label__line { width: 44px; height: 1px; background: currentColor; opacity: .5; transform-origin: inline-start; }
html[lang="en"] .label { text-transform: uppercase; letter-spacing: .22em; font-size: .7rem; }
.dark .label, .on-dark .label, .label.on-dark { color: rgba(245, 241, 235, .62); }
.dark .label__n, .on-dark .label__n { color: var(--brass-soft); }
.eyebrow { font-size: .82rem; font-weight: 500; color: var(--brass-soft); display: flex; align-items: center; gap: 12px; }
.eyebrow::before { content: ""; width: 30px; height: 1px; background: currentColor; }
html[lang="en"] .eyebrow { text-transform: uppercase; letter-spacing: .22em; font-size: .7rem; }
.muted { color: var(--muted); }
.small { font-size: .86rem; }

/* ---------- buttons (pill + round icon) ---------- */
.btn {
  --bg: var(--basalt); --fg: var(--paper); --ib: var(--paper); --if: var(--basalt);
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 14px;
  min-height: 54px; padding-block: 6px; padding-inline: 26px 7px; border-radius: 999px; border: 1px solid transparent;
  background: var(--bg); color: var(--fg); font-weight: 500; font-size: .95rem; line-height: 1.2; white-space: nowrap;
  transition: transform .5s var(--ease), background-color .3s, color .3s, border-color .3s, box-shadow .5s var(--ease);
  overflow: hidden; isolation: isolate;
}
html[lang="en"] .btn { text-transform: uppercase; letter-spacing: .16em; font-size: .74rem; }
.btn__i { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--ib); color: var(--if); flex: none; transition: transform .6s var(--ease); }
.btn__i .ico { width: 18px; height: 18px; }
.btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-s); }
.btn:hover .btn__i { transform: translateX(4px); }
[dir="rtl"] .btn:hover .btn__i { transform: translateX(-4px); }
.btn--light { --bg: var(--paper); --fg: var(--basalt); --ib: var(--basalt); --if: var(--paper); }
.btn--ghost { --bg: transparent; --fg: currentColor; --ib: transparent; --if: currentColor; border-color: currentColor; padding-inline: 24px; }
.btn--ghost .btn__i { width: auto; height: auto; background: none; }
.btn--brass { --bg: var(--brass); --fg: var(--white); --ib: var(--white); --if: var(--brass); }
.btn--wa { --bg: var(--wa); --fg: #fff; --ib: #fff; --if: var(--wa); }
.btn--line { --bg: transparent; --fg: var(--ink); --ib: var(--ink); --if: var(--paper); border-color: var(--line-2); }
.btn--block { width: 100%; justify-content: space-between; }
.btn--sm { min-height: 44px; padding-inline: 18px 5px; font-size: .88rem; gap: 10px; }
.btn--sm .btn__i { width: 34px; height: 34px; }
.btn:disabled, .btn[aria-disabled="true"] { opacity: .45; pointer-events: none; }
.link { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; border-block-end: 1px solid currentColor; padding-block-end: 2px; }
html[lang="en"] .link { text-transform: uppercase; letter-spacing: .18em; font-size: .72rem; }
.icon-btn { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--line-2); background: transparent; color: inherit; flex: none; transition: background .3s, border-color .3s; }
.icon-btn:hover { background: rgba(28, 26, 23, .06); }
.chip { display: inline-flex; align-items: center; gap: 6px; min-height: 30px; padding: 2px 12px; border-radius: 999px; font-size: .78rem; font-weight: 500; border: 1px solid var(--line-2); background: var(--white); white-space: nowrap; }
html[lang="en"] .chip { letter-spacing: .06em; }
.chip--dark { background: rgba(28, 26, 23, .55); color: var(--paper); border-color: rgba(255, 255, 255, .16); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.dot { width: 8px; height: 8px; border-radius: 50%; background: #5BBF7A; box-shadow: 0 0 0 4px rgba(91, 191, 122, .2); flex: none; }
.dot--off { background: #C9A27A; box-shadow: 0 0 0 4px rgba(201, 162, 122, .2); }

/* ---------- image slots: quiet gradient when the file is missing ---------- */
.ph { position: relative; overflow: hidden; background: radial-gradient(120% 90% at 25% 15%, #F6F1E9 0%, #E7DDCF 55%, #D8CAB6 100%); border-radius: var(--r); }
.ph--dark { background: radial-gradient(120% 90% at 70% 20%, #3A352F 0%, #26231F 55%, #181614 100%); }
.ph > img, .ph > video, .ph > canvas { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ph > canvas { opacity: 0; transition: opacity 1s var(--ease); }
.ph > canvas.is-painted { opacity: 1; }
.ph > img { z-index: 1; }
.r-45 { aspect-ratio: 4 / 5; } .r-11 { aspect-ratio: 1; } .r-32 { aspect-ratio: 3 / 2; } .r-169 { aspect-ratio: 16 / 9; } .r-1610 { aspect-ratio: 16 / 10; } .r-34 { aspect-ratio: 3 / 4; }

/* ---------- announcement bar ---------- */
.ann { position: relative; z-index: 60; background: var(--basalt); color: rgba(245, 241, 235, .86); font-size: .8rem; }
.ann__in { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 40px; padding-inline: 48px; text-align: center; }
.ann a { display: inline-flex; align-items: center; gap: 10px; }
.ann a:hover { color: var(--brass-soft); }
html[lang="en"] .ann { text-transform: uppercase; letter-spacing: .16em; font-size: .68rem; }
.ann__x { position: absolute; inset-inline-end: 10px; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; border: 0; background: none; color: inherit; display: grid; place-items: center; border-radius: 50%; }
.ann__x:hover { background: rgba(255, 255, 255, .08); }
.ann .dot { background: var(--brass-soft); box-shadow: none; width: 6px; height: 6px; }

/* ---------- header ---------- */
.hdr { position: sticky; top: 0; z-index: 50; height: var(--hdr); color: var(--ink); transition: transform .6s var(--ease), background-color .4s, color .4s, box-shadow .4s; }
.hdr__in { height: 100%; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; }
.hdr.is-over { color: var(--paper); background: transparent; }
.hdr.is-solid { background: rgba(245, 241, 235, .86); backdrop-filter: blur(18px) saturate(1.2); -webkit-backdrop-filter: blur(18px) saturate(1.2); box-shadow: 0 1px 0 var(--line); color: var(--ink); }
.hdr.is-hidden { transform: translateY(-100%); }
.page-home .hdr, .page-over .hdr { position: fixed; inset-inline: 0; top: var(--ann, 0px); }
.logo { display: inline-flex; align-items: center; gap: 12px; justify-self: start; min-height: 44px; }
.logo__mark { width: 34px; height: 34px; flex: none; }
.logo__word { display: flex; flex-direction: column; line-height: 1; }
.logo__word b { font-family: var(--f-latin); font-weight: 500; font-size: 1.55rem; letter-spacing: .28em; margin-inline-end: -.28em; }
.logo__word small { font-size: .56rem; letter-spacing: .32em; text-transform: uppercase; opacity: .75; margin-block-start: 5px; font-family: var(--f-text); }
html[lang="ar"] .logo__word small, html[lang="he"] .logo__word small { letter-spacing: .06em; font-size: .64rem; text-transform: none; }
.logo__img { height: 40px; width: auto; }
.nav { display: flex; gap: clamp(16px, 2.2vw, 34px); align-items: center; }
.nav a { position: relative; font-size: .92rem; padding-block: 10px; opacity: .92; }
html[lang="en"] .nav a { text-transform: uppercase; letter-spacing: .18em; font-size: .7rem; }
.nav a::after { content: ""; position: absolute; inset-inline: 0; bottom: 4px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: inline-end; transition: transform .6s var(--ease); }
.nav a:hover::after, .nav a[aria-current="page"]::after { transform: scaleX(1); transform-origin: inline-start; }
.hdr__end { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.langpill { display: inline-flex; align-items: center; border: 1px solid currentColor; border-radius: 999px; padding: 3px; gap: 2px; opacity: .92; }
.langpill button { border: 0; background: none; min-width: 40px; min-height: 34px; border-radius: 999px; font-size: .78rem; font-weight: 500; opacity: .7; padding-inline: 8px; }
.langpill button[aria-pressed="true"] { opacity: 1; background: currentColor; }
.langpill button[aria-pressed="true"] span { color: var(--paper); }
.hdr.is-over .langpill button[aria-pressed="true"] span { color: var(--basalt); }
.qbtn { position: relative; display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding-inline: 16px 6px; border-radius: 999px; border: 1px solid currentColor; background: none; font-size: .86rem; font-weight: 500; }
html[lang="en"] .qbtn { text-transform: uppercase; letter-spacing: .14em; font-size: .7rem; }
.qbtn__n { min-width: 30px; height: 30px; border-radius: 999px; background: var(--brass); color: #fff; display: grid; place-items: center; font-size: .8rem; padding-inline: 8px; transition: transform .5s var(--ease); }
.qbtn__n.bump { transform: scale(1.25); }
.burger { display: none; }
@media (max-width: 1080px) { .nav { display: none; } .burger { display: grid; } .hdr__in { grid-template-columns: auto 1fr; } .hdr__end { justify-self: end; } }
@media (max-width: 560px) { .qbtn span:first-child { display: none; } .qbtn { padding-inline: 6px; } .logo__word b { font-size: 1.3rem; } .langpill button { min-width: 34px; } }
/* phones: the bottom nav already carries "My list" with its count, so the header drops it and the menu button stays on screen at 320–390px */
@media (max-width: 760px) { .hdr .qbtn { display: none; } }
@media (max-width: 420px) { .hdr__end { gap: 6px; } .hdr__in { gap: 8px; } .logo { gap: 8px; } .logo__mark { width: 28px; height: 28px; } .logo__word b { font-size: 1.08rem; letter-spacing: .2em; margin-inline-end: -.2em; } .logo__word small { display: none; } .langpill button { min-width: 30px; min-height: 32px; padding-inline: 4px; font-size: .72rem; } }

/* full-screen menu (phones), wipes in with clip-path */
.menu { position: fixed; inset: 0; z-index: 90; background: var(--basalt); color: var(--paper); clip-path: inset(0 0 100% 0); transition: clip-path .9s var(--ease-io); display: flex; flex-direction: column; padding: 22px var(--gutter) calc(30px + env(safe-area-inset-bottom)); }
.menu.is-open { clip-path: inset(0); }
.menu__top { display: flex; justify-content: space-between; align-items: center; }
.menu nav { display: grid; gap: 6px; margin-block: auto; }
.menu nav a { font-size: clamp(2rem, 9vw, 3.2rem); font-weight: 200; display: flex; align-items: baseline; gap: 16px; padding-block: 4px; }
html[lang="en"] .menu nav a { font-family: var(--f-latin); font-weight: 300; }
.menu nav a small { font-size: .8rem; color: var(--brass-soft); font-family: var(--f-text); }
.menu__foot { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; border-block-start: 1px solid var(--line-d); padding-block-start: 18px; }
.menu .icon-btn { border-color: var(--line-d); }

/* ---------- loader (4 tiles build the mark) ---------- */
.loader { position: fixed; inset: 0; z-index: 400; background: var(--basalt); color: var(--paper); display: grid; place-items: center; clip-path: inset(0); transition: clip-path 1.1s var(--ease-io); cursor: pointer; }
.loader.is-out { clip-path: inset(0 0 100% 0); }
.loader__in { display: grid; justify-items: center; gap: 22px; }
.loader__mark { width: 84px; height: 84px; display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
.loader__mark i { display: block; border-radius: 1px; transform: translateY(-36px) rotateX(70deg); opacity: 0; animation: tileIn .9s var(--ease) forwards; }
.loader__mark i:nth-child(1) { background: #EFE9DF; animation-delay: .1s; }
.loader__mark i:nth-child(2) { background: var(--brass-soft); animation-delay: .28s; }
.loader__mark i:nth-child(3) { background: var(--sand); animation-delay: .46s; }
.loader__mark i:nth-child(4) { background: linear-gradient(135deg, #EFE9DF 0 46%, #9b8f80 47%, #EFE9DF 49%); animation-delay: .64s; }
@keyframes tileIn { to { transform: none; opacity: 1; } }
.loader__word { font-family: var(--f-latin); font-size: 1.6rem; letter-spacing: .5em; margin-inline-end: -.5em; clip-path: inset(0 100% 0 0); animation: wordIn 1s .9s var(--ease-io) forwards; }
[dir="rtl"] .loader__word { clip-path: inset(0 0 0 100%); }
@keyframes wordIn { to { clip-path: inset(0); } }
.loader__bar { width: 120px; height: 1px; background: rgba(255, 255, 255, .15); overflow: hidden; }
.loader__bar span { display: block; height: 100%; background: var(--brass-soft); transform: scaleX(0); transform-origin: inline-start; animation: barIn 2s var(--ease-io) forwards; }
@keyframes barIn { to { transform: scaleX(1); } }

/* ---------- hero (full screen, opens from a frame) ---------- */
.hero { position: relative; min-height: 100svh; display: grid; align-items: end; color: var(--paper); overflow: hidden; background: var(--basalt); isolation: isolate; }
.hero__media { position: absolute; inset: 0; z-index: -2; clip-path: inset(14% 10% 14% 10%); transform: scale(1.18); transition: clip-path 1.8s var(--ease-io), transform 2.4s var(--ease); border-radius: 0; }
.is-loaded .hero__media { clip-path: inset(0); transform: scale(1); }
.hero__media canvas, .hero__media img, .hero__media video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero__media canvas { opacity: 0; transition: opacity 1.4s var(--ease); }
.hero__media canvas.is-painted { opacity: 1; }
.hero__media video { opacity: 0; transition: opacity 1.2s var(--ease); z-index: 2; }
.hero__media video.is-playing { opacity: 1; }
.hero__media img { z-index: 1; }
.hero__light { position: absolute; inset: -20% -40%; z-index: 3; background: linear-gradient(105deg, transparent 30%, rgba(255, 236, 205, .0) 38%, rgba(255, 236, 205, .34) 47%, rgba(255, 244, 228, .5) 50%, rgba(255, 236, 205, .3) 53%, transparent 64%); mix-blend-mode: soft-light; animation: rake 9s var(--ease-io) infinite alternate; pointer-events: none; }
.hero.has-video .hero__light { display: none; }
@keyframes rake { from { transform: translateX(-28%); } to { transform: translateX(28%); } }
.hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(20, 18, 16, .55) 0%, rgba(20, 18, 16, .1) 26%, rgba(20, 18, 16, .22) 50%, rgba(20, 18, 16, .86) 100%), linear-gradient(90deg, rgba(20, 18, 16, .66) 0%, rgba(20, 18, 16, .3) 38%, transparent 66%); }
[dir="rtl"] .hero::after { background: linear-gradient(180deg, rgba(20, 18, 16, .55) 0%, rgba(20, 18, 16, .1) 26%, rgba(20, 18, 16, .22) 50%, rgba(20, 18, 16, .86) 100%), linear-gradient(270deg, rgba(20, 18, 16, .66) 0%, rgba(20, 18, 16, .3) 38%, transparent 66%); }
.hero h1, .hero .lead, .hero .eyebrow { text-shadow: 0 2px 28px rgba(20, 18, 16, .45); }
.hero__in { padding-block: calc(var(--hdr) + 60px) 0; }
.hero--page { min-height: 78svh; }
.hero--page .hero__media.has-img canvas { display: none; }
.hero__txt { max-width: 900px; display: grid; gap: 26px; }
.hero h1 { color: var(--white); text-wrap: balance; }
.hero h1 em { color: var(--brass-soft); }
.hero .lead { color: rgba(245, 241, 235, .82); max-width: 50ch; }
.hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-block-start: 8px; }
.hero__ctas .btn--ghost { color: var(--paper); }
.hero__foot { margin-block-start: clamp(40px, 8vh, 90px); border-block-start: 1px solid rgba(245, 241, 235, .2); display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; font-size: .84rem; color: rgba(245, 241, 235, .78); flex-wrap: wrap; padding-block: 10px; }
.hero__foot > * { display: inline-flex; align-items: center; gap: 10px; }
.hero__cap { text-align: end; display: grid !important; gap: 2px; }
.hero__cap span { font-size: .7rem; opacity: .7; }
html[lang="en"] .hero__cap span { text-transform: uppercase; letter-spacing: .2em; }
.hero__cap em { font-family: var(--f-latin); font-style: italic; font-size: 1.15rem; color: var(--paper); }
html[lang="ar"] .hero__cap em, html[lang="he"] .hero__cap em { font-family: var(--f-text); font-style: normal; font-size: .95rem; }
.scroll-cue { position: relative; padding-inline-start: 18px; }
.scroll-cue::before { content: ""; position: absolute; inset-inline-start: 0; top: -14px; bottom: -14px; width: 1px; background: rgba(245, 241, 235, .4); }
.scroll-cue::after { content: ""; position: absolute; inset-inline-start: 0; top: -14px; height: 14px; width: 1px; background: var(--brass-soft); animation: cue 2.2s var(--ease-io) infinite; }
@keyframes cue { from { transform: translateY(0); } to { transform: translateY(42px); } }
@media (max-width: 760px) { .hero__cap { display: none !important; } .hero__ctas .btn { flex: 1 1 100%; justify-content: space-between; } }

/* ---------- trust row ---------- */
.trust { border-block-end: 1px solid var(--line); background: var(--paper); }
.trust__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.tr { display: flex; gap: 16px; align-items: center; padding: 30px clamp(12px, 2vw, 30px); border-inline-end: 1px solid var(--line); min-height: 128px; }
.tr:first-child { padding-inline-start: 0; }
.tr:last-child { border-inline-end: 0; }
.tr__big { font-family: var(--f-latin); font-size: clamp(2.4rem, 3.4vw, 3.2rem); line-height: 1; color: var(--ink); display: inline-flex; align-items: baseline; gap: 6px; }
.tr__big small { font-size: .9rem; color: var(--brass-ink); font-family: var(--f-text); }
.tr__ic { width: 52px; height: 52px; border-radius: 50%; border: 1px solid var(--line-2); display: grid; place-items: center; color: var(--brass); flex: none; }
.tr__t { font-weight: 500; font-size: .98rem; line-height: 1.4; }
.tr__s { font-size: .84rem; color: var(--muted); line-height: 1.5; }
.tr a { display: contents; }
@media (max-width: 980px) { .trust__grid { grid-template-columns: 1fr 1fr; } .tr { border-block-end: 1px solid var(--line); } .tr:nth-child(2n) { border-inline-end: 0; } .tr:nth-child(odd) { padding-inline-start: 0; } .tr:nth-last-child(-n+2) { border-block-end: 0; } }
@media (max-width: 560px) { .trust__grid { grid-template-columns: 1fr; } .tr { border-inline-end: 0 !important; padding-inline: 0; min-height: 0; padding-block: 20px; border-block-end: 1px solid var(--line) !important; } .tr:last-child { border-block-end: 0 !important; } }

/* ---------- sections ---------- */
.sec { padding-block: clamp(84px, 11vw, 170px); position: relative; }
.sec--stone { background: var(--stone); }
.dark { background: var(--basalt); color: var(--paper); }
.sec-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px 60px; margin-block-end: clamp(40px, 6vw, 80px); }
.sec-head > div { max-width: 760px; }
.sec-head .lead { margin-block-start: 22px; }
.sec-head .h2 em { color: var(--brass); }
.dark .sec-head .h2 em { color: var(--brass-soft); }

/* ---------- collections: pinned sideways gallery ---------- */
.pin { position: relative; }
.pin__sticky { position: sticky; top: 0; height: 100vh; height: 100svh; display: flex; flex-direction: column; justify-content: center; overflow: hidden; padding-block: calc(var(--hdr) + 10px) 30px; }
.pin__track { display: flex; gap: clamp(16px, 2vw, 28px); padding-inline: var(--gutter); will-change: transform; }
.pin__head { margin-block-end: clamp(24px, 4vh, 48px); }
.pin__bar { margin-inline: var(--gutter); margin-block-start: clamp(20px, 4vh, 40px); height: 1px; background: var(--line-d); overflow: hidden; }
.pin__bar span { display: block; height: 100%; background: var(--brass-soft); transform: scaleX(0); transform-origin: inline-start; }
.ccard { flex: none; width: clamp(260px, 27vw, 400px); display: grid; gap: 16px; color: var(--paper); }
.ccard .ph { aspect-ratio: 4 / 5; max-height: 58vh; border-radius: var(--r); }
.ccard .ph > img, .ccard .ph > canvas { transition: transform 1.4s var(--ease), opacity 1s var(--ease); }
.ccard:hover .ph > img, .ccard:hover .ph > canvas { transform: scale(1.05); }
.ccard__n { position: absolute; z-index: 2; top: 14px; inset-inline-start: 14px; }
.ccard__meta { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.ccard__t { font-weight: 200; font-size: clamp(1.6rem, 2.4vw, 2.2rem); }
html[lang="en"] .ccard__t { font-family: var(--f-latin); font-weight: 300; font-size: clamp(1.9rem, 2.8vw, 2.6rem); }
.ccard__c { font-size: .8rem; color: var(--brass-soft); white-space: nowrap; }
.ccard__s { font-size: .9rem; color: rgba(245, 241, 235, .66); line-height: 1.6; max-width: 34ch; }
.ccard--end { display: grid; place-content: center; text-align: center; border: 1px solid var(--line-d); border-radius: var(--r); padding: 30px; min-height: 40vh; align-self: stretch; }
@media (max-width: 760px), (prefers-reduced-motion: reduce) {
  .pin { height: auto !important; }
  .pin__sticky { position: static; height: auto; padding-block: 0; overflow: visible; }
  .pin__track { overflow-x: auto; scroll-snap-type: x mandatory; padding-block-end: 12px; scrollbar-width: none; transform: none !important; }
  .pin__track::-webkit-scrollbar { display: none; }
  .ccard { width: min(78vw, 340px); scroll-snap-align: start; }
  .pin__bar { display: none; }
}

/* ---------- "The laying" (scroll scene) ---------- */
.lay { position: relative; background: var(--stone); }
.lay__sticky { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; display: grid; align-items: center; }
.lay__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(20px, 5vw, 80px); align-items: center; }
.lay__steps { list-style: none; margin: 34px 0 0; padding: 0; display: grid; gap: 4px; }
.lay__steps li { display: grid; grid-template-columns: 46px 1fr; gap: 12px; padding-block: 14px; border-block-start: 1px solid var(--line); opacity: .38; transition: opacity .6s var(--ease); }
.lay__steps li.on { opacity: 1; }
.lay__steps b { font-family: var(--f-latin); font-weight: 400; font-size: 1.4rem; color: var(--brass-ink); line-height: 1.2; }
.lay__steps strong { display: block; font-weight: 500; }
.lay__steps span { font-size: .9rem; color: var(--muted); }
.lay__stage { position: relative; aspect-ratio: 1; perspective: 1400px; perspective-origin: 50% 0%; }
.lay__floor { position: absolute; inset: 6% 2%; transform: rotateX(58deg) rotateZ(-36deg); transform-style: preserve-3d; transform-origin: 50% 60%; }
[dir="rtl"] .lay__floor { transform: rotateX(58deg) rotateZ(36deg); }
.lay__tiles { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(4, 1fr); gap: 0; transform-style: preserve-3d; background: #CFC5B6; box-shadow: 0 60px 80px -40px rgba(28, 26, 23, .5); }
.lay__t { background-color: #EDE7DE; background-repeat: no-repeat; will-change: transform, opacity; transform-origin: 50% 50%; box-shadow: inset 0 0 0 .5px rgba(0, 0, 0, .05); }
.lay__grout { position: absolute; inset: 0; pointer-events: none; transform: translateZ(1px); }
.lay__grout i { position: absolute; background: #E9E2D6; box-shadow: 0 0 0 .5px rgba(120, 104, 84, .25); }
.lay__grout i.h { inset-inline: 0; height: 3px; margin-top: -1.5px; transform: scaleX(0); transform-origin: left; }
.lay__grout i.v { inset-block: 0; width: 3px; margin-left: -1.5px; transform: scaleY(0); transform-origin: top; }
.lay__chip { position: absolute; inset-block-end: 4%; inset-inline-end: 0; z-index: 3; background: var(--white); border-radius: var(--r); padding: 12px 16px; box-shadow: var(--shadow-s); font-size: .82rem; display: grid; gap: 2px; min-width: 200px; }
.lay__chip b { font-weight: 500; font-size: .94rem; }
@media (max-width: 860px) {
  .lay { height: auto !important; }
  .lay__sticky { position: relative; height: auto; padding-block: 90px; }
  .lay__grid { grid-template-columns: 1fr; }
  .lay__stage { max-width: 520px; width: 100%; margin-inline: auto; }
}

/* ---------- statement (words light up) ---------- */
.stmt { padding-block: clamp(100px, 14vw, 220px); }
.no-intro .loader { display: none; }
.stmt__p { font-size: clamp(1.7rem, 3.6vw, 3.4rem); font-weight: 200; line-height: 1.45; max-width: 26ch; }
html[lang="en"] .stmt__p { font-family: var(--f-latin); font-weight: 300; line-height: 1.2; max-width: 24ch; font-size: clamp(2rem, 4.2vw, 4rem); }
.stmt .w { opacity: .16; transition: opacity .5s var(--ease), color .5s; }
.stmt .w.on { opacity: 1; }
.stmt .w.b { color: var(--brass); }
.stmt__sig { margin-block-start: 34px; display: flex; align-items: center; gap: 14px; color: var(--muted); font-size: .9rem; }

/* ---------- studio teaser ---------- */
.teaser { overflow: hidden; }
.teaser__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: clamp(30px, 6vw, 100px); align-items: center; }
.teaser__list { list-style: none; padding: 0; margin: 30px 0 34px; display: grid; gap: 12px; }
.teaser__list li { display: flex; gap: 12px; align-items: flex-start; color: rgba(245, 241, 235, .8); }
.teaser__list .ico { color: var(--brass-soft); margin-block-start: 5px; }
.teaser__stage { position: relative; border-radius: var(--r-lg); overflow: hidden; aspect-ratio: 4 / 3.2; background: #2B2723; box-shadow: 0 60px 120px -50px rgba(0, 0, 0, .8); }
.teaser__tag { position: absolute; z-index: 5; inset-block-end: 16px; inset-inline-start: 16px; display: grid; gap: 4px; }
@media (max-width: 900px) { .teaser__grid { grid-template-columns: 1fr; } }

/* ---------- the real room on a product page (js/room3d.js) ---------- */
/* the 3D canvas, in the Studio and on product pages */
.room3d { position: absolute; inset: 0; width: 100% !important; height: 100% !important; touch-action: none; cursor: grab; }
.room3d.is-drag { cursor: grabbing; }
.room-still { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.galroom { position: absolute; inset: 0; background: #1d1b18; }
.galroom .room3d { touch-action: pan-y; }   /* on a phone, a vertical swipe still scrolls the page */
.galroom__veil { position: absolute; inset: 0; z-index: 4; display: grid; place-items: center; background: #1d1b18; opacity: 0; pointer-events: none; transition: opacity .6s var(--ease); }
.galroom.is-loading .galroom__veil { opacity: 1; }
.galroom.is-loading .gal__hint { opacity: 0; }
.galthumb--room { position: relative; display: grid; place-items: center; }
.galthumb--room img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.galthumb--room .ico { position: relative; z-index: 2; width: 30px; height: 30px; padding: 7px; border-radius: 50%; background: rgba(29, 27, 24, .72); color: #fff; }

/* ---------- how ordering works ---------- */
.how__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(30px, 6vw, 110px); align-items: start; }
.steps { list-style: none; margin: 0; padding: 0; counter-reset: s; display: grid; }
.steps li { display: grid; grid-template-columns: 64px 1fr; gap: 18px; padding-block: 26px; border-block-start: 1px solid var(--line); }
.steps li:last-child { border-block-end: 1px solid var(--line); }
.steps__n { font-family: var(--f-latin); font-size: 2.2rem; line-height: 1; color: var(--brass); }
.steps h3 { font-size: 1.2rem; font-weight: 500; margin-block-end: 6px; }
html[lang="en"] .steps h3 { font-family: var(--f-latin); font-size: 1.6rem; font-weight: 400; }
.steps p { color: var(--muted); font-size: .95rem; }
.phone { position: sticky; top: calc(var(--hdr) + 30px); width: min(100%, 340px); margin-inline: auto; aspect-ratio: 9 / 18.5; border-radius: 44px; background: #0F0E0D; padding: 12px; box-shadow: 0 50px 100px -40px rgba(28, 26, 23, .6), inset 0 0 0 2px #2A2724; }
.phone__screen { height: 100%; border-radius: 34px; overflow: hidden; background: #EAE2D6; display: flex; flex-direction: column; }
.phone__top { background: #1F2C2A; color: #fff; display: flex; align-items: center; gap: 10px; padding: 34px 16px 12px; }
.phone__av { width: 36px; height: 36px; border-radius: 50%; background: var(--paper); display: grid; place-items: center; flex: none; }
.phone__av svg { width: 22px; height: 22px; }
.phone__nm { font-size: .9rem; font-weight: 500; line-height: 1.2; }
.phone__st { font-size: .7rem; opacity: .7; }
.chat { flex: 1; padding: 14px 12px; display: flex; flex-direction: column; gap: 8px; overflow: hidden; background-image: radial-gradient(rgba(0, 0, 0, .035) 1px, transparent 1px); background-size: 14px 14px; }
.msg { max-width: 86%; background: #fff; border-radius: 10px; padding: 7px 10px 18px; font-size: .78rem; line-height: 1.5; position: relative; box-shadow: 0 1px 1px rgba(0, 0, 0, .08); opacity: 0; transform: translateY(10px); transition: opacity .6s var(--ease), transform .6s var(--ease); transition-delay: calc(var(--d, 0) * 380ms); color: #111B21; }
.msg time { position: absolute; inset-block-end: 3px; inset-inline-end: 8px; font-size: .62rem; color: #54656F; }
.msg--out { align-self: flex-end; background: #D9FDD3; }
.is-in .msg { opacity: 1; transform: none; }

/* ---------- FAQ ---------- */
.faq__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(30px, 6vw, 100px); }
.faq details { border-block-end: 1px solid var(--line-2); }
.faq details:first-child { border-block-start: 1px solid var(--line-2); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-block: 24px; font-size: 1.08rem; font-weight: 500; min-height: 44px; }
html[lang="en"] .faq summary { font-family: var(--f-latin); font-size: 1.45rem; font-weight: 400; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary .pm { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--line-2); display: grid; place-items: center; flex: none; transition: transform .6s var(--ease), background .3s; }
.faq details[open] summary .pm { transform: rotate(45deg); background: var(--basalt); color: var(--paper); }
.faq details p { padding-block-end: 26px; color: var(--muted); max-width: 62ch; }
@media (max-width: 860px) { .faq__grid { grid-template-columns: 1fr; } }

/* ---------- visit / contact ---------- */
.visit__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 60px); align-items: stretch; }
.visit__photo { border-radius: var(--r); min-height: 420px; }
.vcards { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.vcard { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 22px; display: grid; gap: 10px; align-content: start; transition: transform .6s var(--ease), box-shadow .6s var(--ease); min-height: 170px; }
a.vcard:hover { transform: translateY(-3px); box-shadow: var(--shadow-s); }
.vcard__top { display: flex; justify-content: space-between; align-items: center; }
.vcard__i { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line-2); display: grid; place-items: center; color: var(--brass); }
.vcard__k { font-size: .74rem; color: var(--muted); }
html[lang="en"] .vcard__k { text-transform: uppercase; letter-spacing: .2em; font-size: .66rem; }
.vcard__v { font-size: 1.08rem; font-weight: 500; line-height: 1.45; }
.vcard__s { font-size: .84rem; color: var(--muted); }
.vcard--wide { grid-column: 1 / -1; }
.hours { width: 100%; border-collapse: collapse; font-size: .92rem; }
.hours td { padding: 9px 0; border-block-end: 1px solid var(--line); }
.hours td:last-child { text-align: end; }
.hours tr.is-today td { font-weight: 600; color: var(--brass-ink); }
.hours tr:last-child td { border-block-end: 0; }
.openchip { display: inline-flex; align-items: center; gap: 10px; font-size: .86rem; font-weight: 500; }
.hdial { height: 6px; border-radius: 3px; background: var(--stone); position: relative; overflow: hidden; margin-block: 6px 2px; }
.hdial span { position: absolute; top: 0; bottom: 0; background: linear-gradient(90deg, var(--sand), var(--brass-soft)); border-radius: 3px; }
.hdial i { position: absolute; top: -3px; bottom: -3px; width: 2px; background: var(--basalt); }
.maps { display: flex; flex-wrap: wrap; gap: 10px; }
@media (max-width: 900px) { .visit__grid { grid-template-columns: 1fr; } .visit__photo { min-height: 300px; } }
@media (max-width: 520px) { .vcards { grid-template-columns: 1fr; } }

/* ---------- footer with the big logo ---------- */
.ftr { background: var(--basalt); color: var(--paper); padding-block: clamp(80px, 10vw, 140px) calc(28px + var(--bar)); overflow: hidden; }
.ftr__top { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 40px 80px; align-items: end; }
.ftr__top h2 em { color: var(--brass-soft); }
.ftr__links { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 30px; }
.ftr__links a { padding-block: 8px; color: rgba(245, 241, 235, .76); border-block-end: 1px solid var(--line-d); display: flex; justify-content: space-between; align-items: center; }
.ftr__links a:hover { color: var(--brass-soft); }
.ftr__wm { font-family: var(--f-latin); font-weight: 300; font-size: clamp(5rem, 21vw, 20rem); line-height: .8; letter-spacing: .06em; text-align: center; margin-block: clamp(60px, 9vw, 120px) 30px; color: var(--paper); clip-path: inset(100% 0 0 0); transform: translateY(12%); transition: clip-path 1.8s var(--ease-io), transform 2s var(--ease); white-space: nowrap; direction: ltr; }
.ftr__wm.is-in { clip-path: inset(0); transform: none; }
.ftr__bot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 30px; font-size: .78rem; color: rgba(245, 241, 235, .5); border-block-start: 1px solid var(--line-d); padding-block-start: 22px; }
.ftr__bot a:hover { color: var(--paper); }
@media (max-width: 860px) { .ftr__top { grid-template-columns: 1fr; } }

/* ---------- floating WhatsApp + app-style bottom nav ---------- */
.fwa { position: fixed; inset-inline-end: 22px; bottom: 22px; z-index: 40; opacity: 0; transform: translateY(16px); pointer-events: none; transition: opacity .5s var(--ease), transform .6s var(--ease); }
.fwa.is-on { opacity: 1; transform: none; pointer-events: auto; }
.bnav { display: none; }
@media (max-width: 760px) {
  :root { --bar: calc(66px + env(safe-area-inset-bottom)); }
  .fwa { display: none; }
  .bnav {
    display: grid; grid-template-columns: repeat(5, 1fr); position: fixed; inset-inline: 0; bottom: 0; z-index: 70;
    background: rgba(28, 26, 23, .94); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); color: rgba(245, 241, 235, .7);
    padding-block-end: env(safe-area-inset-bottom); border-block-start: 1px solid rgba(255, 255, 255, .06);
  }
  .bnav a, .bnav button { position: relative; display: grid; justify-items: center; align-content: center; gap: 3px; min-height: 64px; font-size: .66rem; background: none; border: 0; color: inherit; padding: 0; }
  .bnav .ico { width: 22px; height: 22px; }
  .bnav [aria-current="page"] { color: var(--brass-soft); }
  .bnav__n { position: absolute; top: 8px; inset-inline-start: calc(50% + 4px); min-width: 18px; height: 18px; border-radius: 9px; background: var(--brass); color: #fff; font-size: .62rem; display: grid; place-items: center; padding-inline: 5px; }
  body { padding-block-end: var(--bar); }
}

/* ---------- quote drawer + sheets ---------- */
.scrim { position: fixed; inset: 0; z-index: 180; background: rgba(20, 18, 16, .5); opacity: 0; pointer-events: none; transition: opacity .5s var(--ease); backdrop-filter: blur(2px); }
.scrim.is-on { opacity: 1; pointer-events: auto; }
.drawer { position: fixed; top: 0; bottom: 0; inset-inline-end: 0; z-index: 190; width: min(520px, 100%); background: var(--paper); display: flex; flex-direction: column; transform: translateX(105%); transition: transform .8s var(--ease); box-shadow: -30px 0 80px -40px rgba(0, 0, 0, .5); visibility: hidden; }
[dir="rtl"] .drawer { transform: translateX(-105%); }
.drawer.is-open { transform: none; visibility: visible; }
.drawer__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 20px 24px; border-block-end: 1px solid var(--line); }
.drawer__head h2 { font-size: 1.5rem; font-weight: 300; }
html[lang="en"] .drawer__head h2 { font-family: var(--f-latin); font-size: 2rem; }
.drawer__body { flex: 1; overflow-y: auto; padding: 20px 24px; overscroll-behavior: contain; }
.drawer__foot { padding: 16px 24px calc(16px + env(safe-area-inset-bottom)); border-block-start: 1px solid var(--line); background: var(--paper); }
.qline { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 14px; padding-block: 16px; border-block-end: 1px solid var(--line); }
.qline .ph { width: 72px; height: 90px; }
.qline__top { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.qline__nm { font-weight: 500; line-height: 1.4; }
.qline__meta { font-size: .8rem; color: var(--muted); }
.qline__row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-block-start: 10px; }
.qline__in { display: inline-flex; align-items: center; border: 1px solid var(--line-2); border-radius: var(--r); background: var(--white); }
.qline__in input { width: 76px; border: 0; background: none; min-height: 40px; padding-inline: 10px; font-size: 16px; text-align: center; }
.qline__in span { padding-inline: 8px; font-size: .8rem; color: var(--muted); }
.qline__res { font-size: .84rem; }
.qline__res strong { font-weight: 600; }
.qline__x { width: 36px; height: 36px; border-radius: 50%; border: 0; background: none; display: grid; place-items: center; color: var(--muted); }
.qline__x:hover { background: var(--stone); color: var(--ink); }
.qline.need .qline__in { border-color: var(--brass); box-shadow: 0 0 0 3px rgba(154, 95, 38, .15); }
.qtot { display: grid; grid-template-columns: 1fr auto; gap: 6px 14px; padding-block: 18px; font-size: .92rem; }
.qtot dd { margin: 0; text-align: end; }
.qtot .grand { font-size: 1.5rem; font-family: var(--f-latin); }
.qempty { text-align: center; padding: 50px 10px; display: grid; gap: 18px; justify-items: center; color: var(--muted); }
.qempty .loader__mark { width: 56px; height: 56px; }
.qempty .loader__mark i { animation: none; opacity: 1; transform: none; }
.form { display: grid; gap: 14px; margin-block-start: 10px; }
.form h3 { font-size: 1.1rem; font-weight: 500; margin-block-start: 10px; }
.field { display: grid; gap: 6px; }
.field label, .flabel { font-size: .84rem; font-weight: 500; }
.field input, .field textarea, .field select { width: 100%; min-height: 50px; border: 1px solid var(--line-2); border-radius: var(--r); background: var(--white); padding: 10px 14px; font-size: 16px; transition: border-color .3s, box-shadow .3s; }
.field textarea { min-height: 84px; resize: vertical; }
.field input:focus, .field textarea:focus, .field select:focus { outline: none; border-color: var(--brass); box-shadow: 0 0 0 3px rgba(154, 95, 38, .15); }
.row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 420px) { .row2 { grid-template-columns: 1fr; } }
.opts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.opts--3 { grid-template-columns: 1fr; }
.opt { position: relative; display: flex; align-items: center; gap: 10px; min-height: 50px; border: 1px solid var(--line-2); border-radius: var(--r); padding-inline: 14px; background: var(--white); cursor: pointer; font-size: .92rem; transition: border-color .3s, background .3s; }
.opt input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.opt::before { content: ""; width: 16px; height: 16px; border-radius: 50%; border: 1px solid var(--line-2); flex: none; transition: box-shadow .3s, border-color .3s; }
.opt:has(input:checked) { border-color: var(--basalt); background: var(--paper); }
.opt:has(input:checked)::before { border-color: var(--basalt); box-shadow: inset 0 0 0 4px var(--white), inset 0 0 0 9px var(--basalt); }
.opt:has(input:focus-visible) { outline: 2px solid var(--brass); outline-offset: 2px; }
.seg { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 999px; background: var(--stone); border: 0; margin: 0; }
.seg label { position: relative; cursor: pointer; }
.seg input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.seg span { display: flex; align-items: center; justify-content: center; min-height: 42px; border-radius: 999px; font-size: .88rem; font-weight: 500; color: var(--muted); text-align: center; padding-inline: 8px; transition: background .4s var(--ease), color .3s; }
.seg input:checked + span { background: var(--basalt); color: var(--paper); }
.seg input:focus-visible + span { outline: 2px solid var(--brass); outline-offset: 2px; }
.switch { display: flex; gap: 14px; align-items: flex-start; cursor: pointer; position: relative; }
.switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.switch__ui { flex: none; width: 46px; height: 28px; border-radius: 999px; background: var(--sand); position: relative; transition: background .3s; margin-block-start: 2px; }
.switch__ui::after { content: ""; position: absolute; top: 3px; inset-inline-start: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; transition: transform .5s var(--ease); box-shadow: 0 1px 2px rgba(0, 0, 0, .2); }
.switch input:checked + .switch__ui { background: var(--sage); }
.switch input:checked + .switch__ui::after { transform: translateX(18px); }
[dir="rtl"] .switch input:checked + .switch__ui::after { transform: translateX(-18px); }
.switch input:focus-visible + .switch__ui { outline: 2px solid var(--brass); outline-offset: 2px; }
.switch strong { display: block; font-weight: 500; font-size: .92rem; }
.switch small { display: block; color: var(--muted); font-size: .8rem; }
.err { background: #F7E2DC; color: #7A2A1B; border-radius: var(--r); padding: 10px 12px; font-size: .88rem; }
.note { font-size: .8rem; color: var(--muted); }
.hp { position: absolute; inset-inline-start: -9999px; width: 1px; height: 1px; overflow: hidden; }
.sent { text-align: center; display: grid; gap: 16px; justify-items: center; padding-block: 20px; }
.sent__ic { width: 74px; height: 74px; border-radius: 50%; background: var(--sage); color: #fff; display: grid; place-items: center; }
.sent__ic .ico { width: 34px; height: 34px; stroke: currentColor; stroke-width: 6; }
.sent h3 { font-size: 1.6rem; font-weight: 300; }
html[lang="en"] .sent h3 { font-family: var(--f-latin); font-size: 2.1rem; }
.wa-bubble { background: #D9FDD3; color: #111B21; border-radius: 12px; border-start-end-radius: 3px; padding: 12px 14px; white-space: pre-wrap; font-size: .86rem; line-height: 1.6; text-align: start; width: 100%; box-shadow: 0 1px 1px rgba(0, 0, 0, .08); max-height: 240px; overflow: auto; }

dialog.sheet { border: 0; padding: 0; border-radius: var(--r-lg); width: min(560px, calc(100% - 24px)); max-height: 92dvh; background: var(--paper); color: var(--ink); box-shadow: var(--shadow); }
dialog.sheet::backdrop { background: rgba(20, 18, 16, .55); backdrop-filter: blur(3px); }
dialog.sheet[open] { animation: sheetIn .6s var(--ease); }
@keyframes sheetIn { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@media (max-width: 600px) { dialog.sheet { width: 100%; max-width: 100%; margin: auto 0 0; border-end-start-radius: 0; border-end-end-radius: 0; max-height: 94dvh; } }
.sheet__in { display: flex; flex-direction: column; max-height: inherit; }
.sheet__head { display: grid; grid-template-columns: 76px 1fr auto; gap: 14px; align-items: center; padding: 18px 20px; border-block-end: 1px solid var(--line); }
.sheet__head .ph { width: 76px; height: 76px; }
.sheet__head h2 { font-size: 1.3rem; font-weight: 400; line-height: 1.3; }
html[lang="en"] .sheet__head h2 { font-family: var(--f-latin); font-size: 1.7rem; }
.sheet__body { padding: 18px 20px; overflow-y: auto; display: grid; gap: 16px; }
.sheet__foot { padding: 14px 20px calc(14px + env(safe-area-inset-bottom)); border-block-start: 1px solid var(--line); }

/* calculator result */
.calc-res { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 18px 20px; display: grid; gap: 10px; }
.calc-res__big { display: flex; align-items: baseline; gap: 10px; }
.calc-res__big strong { font-family: var(--f-latin); font-weight: 400; font-size: 3.4rem; line-height: 1; }
.calc-res dl { display: grid; grid-template-columns: 1fr auto; gap: 6px 14px; margin: 0; font-size: .9rem; }
.calc-res dt { color: var(--muted); }
.calc-res dd { margin: 0; text-align: end; font-weight: 500; }
.calc-res .tot dd { font-size: 1.3rem; color: var(--brass); font-weight: 600; }
.warn { background: #FBF0DE; color: #6B4210; border-radius: var(--r); padding: 8px 12px; font-size: .84rem; }
.units { display: inline-flex; align-items: center; border: 1px solid var(--line-2); border-radius: var(--r); background: var(--white); }
.units input { border: 0 !important; box-shadow: none !important; min-width: 0; }
.units span { padding-inline: 12px; color: var(--muted); font-size: .86rem; }

/* toast */
.toast { position: fixed; inset-inline: 16px; bottom: calc(24px + var(--bar)); z-index: 500; display: flex; justify-content: center; pointer-events: none; }
.toast p { background: var(--basalt); color: var(--paper); border-radius: 999px; padding: 12px 22px; box-shadow: var(--shadow); font-size: .9rem; opacity: 0; transform: translateY(10px); transition: opacity .4s var(--ease), transform .6s var(--ease); display: flex; gap: 10px; align-items: center; }
.toast p.on { opacity: 1; transform: none; }
.toast .ico { color: var(--brass-soft); }

/* ---------- product cards (catalogue) ---------- */
.pgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: clamp(26px, 3vw, 44px) clamp(14px, 2vw, 26px); }
@media (max-width: 520px) { .pgrid { grid-template-columns: 1fr 1fr; gap: 26px 12px; } }
.pcard { display: grid; gap: 12px; position: relative; }
.pcard .ph { aspect-ratio: 4 / 5; }
.pcard .ph > img, .pcard .ph > canvas { transition: transform 1.4s var(--ease), opacity 1s var(--ease); }
.pcard:hover .ph > img, .pcard:hover .ph > canvas { transform: scale(1.045); }
.pcard__link { position: absolute; inset: 0; z-index: 2; }
.pcard__chips { position: absolute; z-index: 3; top: 10px; inset-inline-start: 10px; display: flex; gap: 6px; flex-wrap: wrap; pointer-events: none; }
.pcard__add { position: absolute; z-index: 4; bottom: 10px; inset-inline-end: 10px; width: 46px; height: 46px; border-radius: 50%; border: 0; background: var(--paper); color: var(--basalt); display: grid; place-items: center; box-shadow: var(--shadow-s); transition: transform .5s var(--ease), background .3s, color .3s; }
.pcard__add:hover { transform: scale(1.08); background: var(--basalt); color: var(--paper); }
.pcard__add.is-in { background: var(--sage); color: #fff; }
.pcard__room { position: absolute; z-index: 4; bottom: 12px; inset-inline-start: 10px; opacity: 0; transform: translateY(6px); transition: opacity .5s var(--ease), transform .5s var(--ease); }
.pcard:hover .pcard__room, .pcard:focus-within .pcard__room { opacity: 1; transform: none; }
@media (hover: none) { .pcard__room { display: none; } }
.pcard__meta { display: flex; justify-content: space-between; gap: 10px; font-size: .78rem; color: var(--muted); }
.pcard__nm { font-size: 1.06rem; font-weight: 500; line-height: 1.35; }
html[lang="en"] .pcard__nm { font-family: var(--f-latin); font-size: 1.42rem; font-weight: 500; line-height: 1.1; }
.pcard__price { display: flex; align-items: baseline; gap: 6px; font-size: .95rem; }
.pcard__price strong { font-weight: 600; }
.pcard__price small { color: var(--muted); font-size: .78rem; }
.stock { display: inline-flex; align-items: center; gap: 6px; font-size: .74rem; }
.stock::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.stock--in_stock { color: #3E6B4A; } .stock--low_stock { color: #8A5310; } .stock--on_order { color: #7D5A4A; }

/* ---------- page hero (inner pages) ---------- */
.phero { padding-block: calc(var(--hdr) + clamp(40px, 7vw, 90px)) clamp(40px, 6vw, 70px); background: var(--stone); position: relative; overflow: hidden; }
.phero--dark { background: var(--basalt); color: var(--paper); }
.phero__row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px; }
.phero .h1 { font-size: clamp(2.4rem, 5.6vw, 5.6rem); }
html[lang="en"] .phero .h1 { font-size: clamp(2.8rem, 6.6vw, 6.6rem); }
.phero .h1 em { color: var(--brass); }
.phero--dark .h1 em { color: var(--brass-soft); }
.crumbs { display: flex; gap: 8px; align-items: center; font-size: .8rem; color: var(--muted); margin-block-end: 22px; flex-wrap: wrap; }
.crumbs a:hover { color: var(--ink); }
.phero--dark .crumbs { color: rgba(245, 241, 235, .6); }
.phero__swatches { display: flex; gap: 8px; }
.phero__swatches .ph { width: clamp(54px, 7vw, 90px); aspect-ratio: 3 / 4; }
.page-inner .hdr { position: fixed; inset-inline: 0; top: var(--ann, 0px); }

/* ---------- collections page ---------- */
.cat { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: clamp(24px, 4vw, 60px); padding-block: 40px 120px; }
.cat__side { position: sticky; top: calc(var(--hdr) + 20px); align-self: start; max-height: calc(100vh - var(--hdr) - 40px); overflow-y: auto; padding-inline-end: 6px; scrollbar-width: thin; }
.fgroup { border-block-end: 1px solid var(--line); padding-block: 16px; }
.fgroup:first-child { padding-block-start: 0; }
.fgroup h3 { font-size: .8rem; font-weight: 600; margin-block-end: 10px; color: var(--muted); }
html[lang="en"] .fgroup h3 { text-transform: uppercase; letter-spacing: .18em; font-size: .68rem; }
.fchecks { display: grid; gap: 2px; }
.fcheck { display: flex; align-items: center; gap: 10px; min-height: 36px; cursor: pointer; font-size: .92rem; position: relative; }
.fcheck input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.fcheck__box { width: 18px; height: 18px; border: 1px solid var(--line-2); border-radius: 3px; display: grid; place-items: center; flex: none; background: var(--white); transition: background .3s, border-color .3s; }
.fcheck__box .ico { width: 12px; height: 12px; stroke: currentColor; stroke-width: 14; stroke-linejoin: round; opacity: 0; color: var(--paper); }
.fcheck input:checked + .fcheck__box { background: var(--basalt); border-color: var(--basalt); }
.fcheck input:checked + .fcheck__box .ico { opacity: 1; }
.fcheck input:focus-visible + .fcheck__box { outline: 2px solid var(--brass); outline-offset: 2px; }
.fcheck small { margin-inline-start: auto; color: var(--muted); font-size: .76rem; }
.fswatch { width: 14px; height: 14px; border-radius: 2px; flex: none; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .1); }
.frange { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.frange input { width: 100%; min-height: 42px; border: 1px solid var(--line-2); border-radius: var(--r); padding-inline: 10px; font-size: 16px; background: var(--white); }
.toolbar { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin-block-end: 26px; }
.search { position: relative; flex: 1 1 260px; max-width: 420px; }
.search .ico { position: absolute; inset-inline-start: 16px; top: 50%; transform: translateY(-50%); color: var(--muted); }
.search input { width: 100%; min-height: 50px; border: 1px solid var(--line-2); border-radius: 999px; background: var(--white); padding-inline: 46px 18px; font-size: 16px; }
.search input:focus { outline: none; border-color: var(--brass); box-shadow: 0 0 0 3px rgba(154, 95, 38, .15); }
.toolbar__end { display: flex; gap: 10px; align-items: center; }
.select { position: relative; }
.select select { appearance: none; min-height: 50px; border: 1px solid var(--line-2); border-radius: 999px; background: var(--white); padding-inline: 18px 40px; font-size: .92rem; }
.select .ico { position: absolute; inset-inline-end: 14px; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; }
.fbtn { display: none; }
.actives { display: flex; flex-wrap: wrap; gap: 8px; margin-block-end: 20px; }
.actives button { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; border-radius: 999px; border: 1px solid var(--line-2); background: var(--white); padding-inline: 14px 8px; font-size: .82rem; }
.actives button .ico { width: 14px; height: 14px; }
.count { font-size: .86rem; color: var(--muted); }
.more { display: flex; justify-content: center; margin-block-start: 50px; }
.sentinel { height: 1px; }
.demo-note { display: flex; gap: 10px; align-items: center; font-size: .8rem; color: var(--muted); margin-block-start: 50px; padding-block-start: 20px; border-block-start: 1px solid var(--line); }
@media (max-width: 960px) {
  .cat { grid-template-columns: 1fr; padding-block-start: 24px; }
  .cat__side { position: fixed; inset: 0; z-index: 200; max-height: none; background: var(--paper); padding: 20px var(--gutter) calc(100px + env(safe-area-inset-bottom)); transform: translateY(100%); transition: transform .8s var(--ease); visibility: hidden; }
  .cat__side.is-open { transform: none; visibility: visible; }
  .fbtn { display: inline-flex; }
  .cat__sidehead { display: flex !important; }
  .cat__apply { display: block !important; }
}
.cat__sidehead { display: none; justify-content: space-between; align-items: center; margin-block-end: 16px; }
.cat__sidehead h2 { font-size: 1.5rem; font-weight: 300; }
.cat__apply { display: none; position: fixed; inset-inline: var(--gutter); bottom: calc(16px + env(safe-area-inset-bottom)); }

/* ---------- product page ---------- */
.prod { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(24px, 5vw, 80px); padding-block: calc(var(--hdr) + 30px) clamp(60px, 8vw, 120px); }
.gal { position: sticky; top: calc(var(--hdr) + 16px); align-self: start; display: grid; gap: 12px; }
.gal__main { aspect-ratio: 4 / 5; cursor: zoom-in; border-radius: var(--r); touch-action: pan-y pinch-zoom; }
.gal__main .zoomer { position: absolute; inset: 0; transform-origin: var(--zx, 50%) var(--zy, 50%); transition: transform .7s var(--ease); }
.gal__main.is-zoom .zoomer { transform: scale(2.4); }
.gal__main.is-zoom { cursor: zoom-out; }
.gal__main .zoomer > * { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gal__hint { position: absolute; z-index: 5; inset-block-end: 12px; inset-inline-start: 12px; pointer-events: none; }
.gal__thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.gal__thumbs button { padding: 0; border: 1px solid transparent; background: none; border-radius: var(--r); display: grid; gap: 6px; font-size: .74rem; color: var(--muted); text-align: start; }
.gal__thumbs button .ph { aspect-ratio: 1; transition: box-shadow .3s; }
.gal__thumbs button[aria-pressed="true"] .ph { box-shadow: 0 0 0 2px var(--basalt); }
.gal__thumbs button[aria-pressed="true"] { color: var(--ink); }
.pinfo { display: grid; gap: 26px; align-content: start; }
.pinfo__price { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.pinfo__price strong { font-family: var(--f-latin); font-weight: 400; font-size: 2.6rem; line-height: 1; }
.pinfo__price small { color: var(--muted); }
.specs { display: grid; grid-template-columns: 1fr 1fr; border-block-start: 1px solid var(--line); margin: 0; }
.specs div { padding-block: 12px; border-block-end: 1px solid var(--line); display: grid; gap: 2px; }
.specs div:nth-child(odd) { padding-inline-end: 14px; }
.specs dt { font-size: .74rem; color: var(--muted); }
.specs dd { margin: 0; font-weight: 500; font-size: .95rem; }
.pcalc { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); padding: clamp(18px, 2.4vw, 28px); display: grid; gap: 16px; }
.pcalc h2 { font-size: 1.5rem; font-weight: 300; }
html[lang="en"] .pcalc h2 { font-family: var(--f-latin); font-size: 2rem; }
.pcalc__res { display: grid; grid-template-columns: auto 1fr; gap: 20px; align-items: center; background: var(--paper); border-radius: var(--r); padding: 16px; }
.pcalc__big { text-align: center; padding-inline-end: 20px; border-inline-end: 1px solid var(--line); }
.pcalc__big strong { display: block; font-family: var(--f-latin); font-size: 3.4rem; line-height: 1; font-weight: 400; }
.pcalc__big span { font-size: .8rem; color: var(--muted); }
.pcalc dl { margin: 0; display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; font-size: .88rem; }
.pcalc dd { margin: 0; text-align: end; font-weight: 500; }
.pcalc .tot dd { color: var(--brass); font-size: 1.15rem; font-weight: 600; }
.pacts { display: grid; gap: 10px; }
.pacts__row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 960px) { .prod { grid-template-columns: 1fr; } .gal { position: static; } }
@media (max-width: 460px) { .pacts__row { grid-template-columns: 1fr; } .specs { grid-template-columns: 1fr; } .specs div:nth-child(odd) { padding-inline-end: 0; } }

/* ---------- Room Studio ---------- */
.page-studio .hdr { position: fixed; inset-inline: 0; top: 0; }
.studio { display: grid; grid-template-columns: minmax(0, 1fr) 430px; height: 100vh; height: 100svh; padding-block-start: var(--hdr); }
.studio__stage { position: relative; overflow: hidden; background: #201D1A; isolation: isolate; }
.studio__2d { position: absolute; inset: 0; }
.studio__veil { position: absolute; inset: 0; z-index: 8; display: grid; place-items: center; background: #201D1A; color: rgba(245, 241, 235, .8); transition: opacity .8s var(--ease); }
.studio__veil.is-off { opacity: 0; pointer-events: none; }
.studio__veil .loader__mark i { animation: tileIn .9s var(--ease) forwards, pulse 1.6s 1s ease-in-out infinite alternate; }
@keyframes pulse { to { opacity: .45; } }
.studio__top { position: absolute; z-index: 6; top: 16px; inset-inline: 16px; display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; pointer-events: none; }
.studio__top > * { pointer-events: auto; }
.studio__tag { display: flex; flex-wrap: wrap; gap: 6px; max-width: 70%; }
.studio__btn { min-height: 40px; cursor: pointer; }
.studio__btn .ico { width: 16px; height: 16px; }
.studio__hint { position: absolute; z-index: 6; bottom: 16px; inset-inline-start: 50%; transform: translateX(-50%); transition: opacity .8s var(--ease); pointer-events: none; }
[dir="rtl"] .studio__hint { transform: translateX(50%); }
.studio__hint.is-gone { opacity: 0; }
.studio__note { position: absolute; z-index: 6; bottom: 16px; inset-inline-end: 16px; }
.studio__panel { overflow-y: auto; background: var(--paper); border-inline-start: 1px solid var(--line); padding: 28px 28px 48px; display: grid; gap: 28px; align-content: start; overscroll-behavior: contain; }
.studio__panel h1 em { color: var(--brass); }
.sgroup { display: grid; gap: 12px; }
.sgroup__h { font-size: .8rem; font-weight: 600; color: var(--muted); }
html[lang="en"] .sgroup__h { text-transform: uppercase; letter-spacing: .18em; font-size: .68rem; }
.rpicks { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.rpick { border: 0; background: none; padding: 0; display: grid; gap: 6px; font-size: .8rem; text-align: center; color: var(--muted); }
.rpick .ph { box-shadow: 0 0 0 1px var(--line); transition: box-shadow .3s; }
.rpick[aria-pressed="true"] { color: var(--ink); font-weight: 600; }
.rpick[aria-pressed="true"] .ph { box-shadow: 0 0 0 2px var(--paper), 0 0 0 4px var(--basalt); }
.chips-row { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding-block: 2px 4px; }
.chips-row::-webkit-scrollbar { display: none; }
.fchip { cursor: pointer; min-height: 36px; }
.fchip[aria-pressed="true"] { background: var(--basalt); color: var(--paper); border-color: var(--basalt); }
.swgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px 10px; }
.swb { border: 0; background: none; padding: 0; display: grid; gap: 4px; text-align: start; color: var(--ink); }
.swb .ph { transition: box-shadow .3s, transform .5s var(--ease); }
.swb:hover .ph { transform: translateY(-2px); }
.swb[aria-pressed="true"] .ph { box-shadow: 0 0 0 2px var(--paper), 0 0 0 4px var(--basalt); }
.swb__nm { font-size: .8rem; font-weight: 500; line-height: 1.35; margin-block-start: 4px; }
.swb__meta { font-size: .7rem; color: var(--muted); }
.pats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.pat { border: 1px solid var(--line-2); background: var(--white); border-radius: var(--r); padding: 10px 4px 8px; display: grid; gap: 6px; justify-items: center; font-size: .74rem; color: var(--ink-2); min-height: 44px; transition: border-color .3s, box-shadow .3s; }
.pat svg { width: 34px; height: 34px; }
.pat[aria-pressed="true"] { border-color: var(--basalt); box-shadow: inset 0 0 0 1px var(--basalt); color: var(--ink); }
.pat:disabled { opacity: .32; cursor: not-allowed; }
.grouts { display: flex; gap: 12px; flex-wrap: wrap; }
.grout { width: 44px; height: 44px; border-radius: 50%; border: 0; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .14); transition: box-shadow .3s, transform .4s var(--ease); }
.grout:hover { transform: scale(1.06); }
.grout[aria-pressed="true"] { box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .14), 0 0 0 3px var(--paper), 0 0 0 5px var(--basalt); }
.lookcard { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 14px; display: grid; gap: 12px; }
.lookrow { display: grid; grid-template-columns: 52px 1fr; gap: 12px; align-items: center; }
.lookrow .ph { width: 52px; }
.lookrow strong { display: block; font-weight: 500; line-height: 1.35; }
.lookrow span { display: block; }
.lookrow:hover strong { color: var(--brass); }
/* narrow screens: an app frame. The room keeps its place on top, the options scroll in their own box
   below it, and the page itself stands still, so nothing slides under the room. */
@media (max-width: 960px) {
  .page-studio { overflow: hidden; }
  .studio { display: flex; flex-direction: column; height: 100vh; height: 100svh; }
  .studio__stage { flex: none; height: clamp(220px, 46vh, 520px); height: clamp(220px, 46svh, 520px); }
  .studio__panel { flex: 1 1 auto; min-height: 0; overflow-y: auto; border: 0; border-block-start: 1px solid var(--line); padding: 22px var(--gutter) 40px; gap: 24px; }
  .studio__panel > div:first-child > .label { display: none; }
  .swgrid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 760px) {
  .studio { height: calc(100vh - var(--bar)); }
  @supports (height: 100svh) { .studio { height: calc(100svh - var(--bar)); } }   /* a var() line can't fall back on its own */
}
/* a phone on its side: room and options side by side, like the desktop */
@media (max-width: 960px) and (max-height: 540px) and (orientation: landscape) {
  .studio { display: grid; grid-template-columns: minmax(0, 1fr) min(360px, 46vw); }
  .studio__stage { height: auto; }
  .studio__panel { border-block-start: 0; border-inline-start: 1px solid var(--line); padding-block-start: 18px; }
  .swgrid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 520px) { .swgrid { grid-template-columns: repeat(3, 1fr); } .studio__tag .chip:not(:first-child) { display: none; } }

/* ---------- motion: reveals ---------- */
.rv { opacity: 0; transform: translateY(28px); transition: opacity 1s var(--ease), transform 1.2s var(--ease); transition-delay: calc(var(--d, 0) * 110ms); }
.rv.is-in { opacity: 1; transform: none; }
.rv-img > .ph, .rv-img.ph { clip-path: inset(100% 0 0 0); transition: clip-path 1.6s var(--ease-io); transition-delay: calc(var(--d, 0) * 110ms); }
.rv-img.is-in > .ph, .rv-img.ph.is-in { clip-path: inset(0); }
.line-grow { transform: scaleX(0); transform-origin: inline-start; transition: transform 1.4s var(--ease-io); }
.is-in .line-grow, .line-grow.is-in { transform: scaleX(1); }
html:not(.js) .rv, html:not(.js) .rv-img > .ph { opacity: 1; transform: none; clip-path: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; transition-delay: 0s !important; }
  .rv, .rv-img > .ph, .rv-img.ph, .hero__media, .ftr__wm, .msg { opacity: 1 !important; transform: none !important; clip-path: none !important; }
  .hero__light { display: none; }
  .loader { display: none; }
  .stmt .w { opacity: 1; }
  .lay__t { transform: none !important; opacity: 1 !important; }
  .lay__grout i { transform: none !important; }
  .lay__steps li { opacity: 1; }
}

/* ---------- print ---------- */
@media print { .hdr, .ann, .bnav, .fwa, .loader, .drawer, .scrim { display: none !important; } body { padding: 0; } }

/* sample-hours tag next to the open-now chip (only while data.js hours.status is "TODO") */
.openchip__demo { margin-inline-start: 8px; padding: 1px 8px; border: 1px solid currentColor; border-radius: 999px; font-size: .68rem; opacity: .7; white-space: nowrap; }
/* brass numbers on basalt (brand cover, dark component samples) use the soft brass */
.bs-cover .label__n, .comp--dark .label__n, .ph--dark ~ * .label__n { color: var(--brass-soft); }
