/* ============================================================
   VESTIGE — Antiquités & Objets Rares
   Al Mokhtar Antiquités · Baabda, Lebanon · est. 2016
   Design system — "Archival & Majesty"
   Strict Zero-White Policy: #FFFFFF never appears.
   ============================================================ */

:root{
  /* ---- Substrate ---- */
  --obsidian:      #0B0907;
  --obsidian-deep: #070605;
  --surface:       #16110C;
  --surface-2:     #1E1710;
  --surface-3:     #261D14;

  /* ---- Metals ---- */
  --gold:          #D4AF37;
  --gold-soft:     #C5A059;
  --gold-pale:     #E6C594;
  --brass:         #A98B4B;

  /* ---- Heritage accents ---- */
  --crimson:       #671618;
  --plum:          #2D1E2F;

  /* ---- Illuminated text ---- */
  --parchment:     #F0E6D2;
  --parchment-dim: #B5A593;
  --muted:         #8C7E6D;

  /* ---- Lines ---- */
  --filigree:      rgba(212,175,55,.20);
  --filigree-lit:  rgba(212,175,55,.48);

  --serif-display: 'Cormorant Garamond', 'Cinzel', 'Times New Roman', serif;
  --serif-body:    'EB Garamond', 'Cormorant Garamond', Georgia, serif;
  --serif-ui:      'Cinzel', 'Cormorant Garamond', serif;
  --arabic:        'Amiri', 'Noto Naskh Arabic', 'Traditional Arabic', serif;

  --ease-vault:    cubic-bezier(.22,1,.36,1);
  --ease-drape:    cubic-bezier(.16,.84,.32,1);

  --gutter: clamp(1.25rem, 5vw, 6rem);
  --rule: 1px solid var(--filigree);
}

*,*::before,*::after{box-sizing:border-box}

html{
  scroll-behavior:auto;
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
  background:var(--obsidian);
  color:var(--parchment-dim);
  font-family:var(--serif-body);
  font-size:clamp(1rem,.94rem + .28vw,1.1rem);
  line-height:1.75;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

body.is-locked{overflow:hidden}

/* Ambient grain + warm bloom over the whole document */
body::before{
  content:'';
  position:fixed; inset:0; z-index:1; pointer-events:none;
  background:
    radial-gradient(120% 80% at 50% -10%, rgba(212,175,55,.055), transparent 62%),
    radial-gradient(90% 60% at 50% 110%, rgba(103,22,24,.05), transparent 60%);
  mix-blend-mode:screen;
}
body::after{
  content:'';
  position:fixed; inset:-50%; z-index:2; pointer-events:none;
  opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 7s steps(6) infinite;
}
@keyframes grain{
  0%,100%{transform:translate(0,0)}
  20%{transform:translate(-2%,3%)}
  40%{transform:translate(3%,-2%)}
  60%{transform:translate(-3%,-3%)}
  80%{transform:translate(2%,2%)}
}

img,video{max-width:100%;display:block}

::selection{background:rgba(212,175,55,.28);color:var(--parchment)}

/* Scrollbar */
::-webkit-scrollbar{width:9px}
::-webkit-scrollbar-track{background:var(--obsidian-deep)}
::-webkit-scrollbar-thumb{background:linear-gradient(var(--brass),var(--surface-3));border-radius:0}

/* ============================================================
   TYPE
   ============================================================ */
h1,h2,h3,h4{
  font-family:var(--serif-display);
  color:var(--parchment);
  font-weight:300;
  line-height:1.04;
  letter-spacing:-.01em;
  margin:0;
}

.eyebrow{
  font-family:var(--serif-ui);
  font-size:.68rem;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:var(--gold-soft);
  display:flex; align-items:center; gap:.9rem;
  margin:0 0 1.5rem;
  font-weight:500;
}
.eyebrow::before,
.eyebrow::after{
  content:''; height:1px; flex:1;
  background:linear-gradient(90deg,transparent,var(--filigree-lit),transparent);
  max-width:6rem;
}
.eyebrow.is-left::before{display:none}
.eyebrow.is-left::after{max-width:none}

.display{
  font-size:clamp(2.9rem,1.4rem + 6.6vw,7rem);
  letter-spacing:-.025em;
}
.section-title{
  font-size:clamp(2rem,1.2rem + 3.4vw,4.2rem);
}
.lede{
  font-size:clamp(1.05rem,.98rem + .42vw,1.32rem);
  color:var(--parchment-dim);
  max-width:56ch;
  line-height:1.72;
}

/* Gilded text — foil sheen that sweeps on reveal */
.gilded{
  background:linear-gradient(100deg,
    #8A6C20 0%, var(--brass) 18%, var(--gold-pale) 34%,
    #FBEFC8 46%, var(--gold) 58%, var(--brass) 74%, #7E6224 100%);
  background-size:280% 100%;
  background-position:100% 0;
  -webkit-background-clip:text; background-clip:text;
  color:transparent;
  -webkit-text-fill-color:transparent;
}
.is-inview .gilded{
  animation:foil 2.6s var(--ease-vault) .2s forwards;
}
@keyframes foil{to{background-position:0 0}}

/* ============================================================
   LAYOUT
   ============================================================ */
.shell{
  width:min(100% - (var(--gutter) * 2), 1520px);
  margin-inline:auto;
}
.shell-narrow{
  width:min(100% - (var(--gutter) * 2), 1080px);
  margin-inline:auto;
}
section{position:relative; z-index:3}
.band{padding:clamp(5rem,10vh + 3rem,11rem) 0}
.band-tight{padding:clamp(3.5rem,7vh,6rem) 0}

.hairline{
  height:1px;
  background:linear-gradient(90deg,transparent,var(--filigree),var(--filigree-lit),var(--filigree),transparent);
  border:0; margin:0;
}

/* ============================================================
   SCROLL REVEALS
   ============================================================ */
[data-reveal]{
  opacity:0;
  transform:translate3d(0,var(--rise,34px),0);
  transition:
    opacity 1.05s var(--ease-drape) var(--delay,0s),
    transform 1.15s var(--ease-vault) var(--delay,0s),
    filter 1.15s var(--ease-vault) var(--delay,0s);
  filter:blur(6px);
  will-change:opacity,transform;
}
[data-reveal].is-inview{
  opacity:1; transform:none; filter:blur(0);
}
/* "Drape lift" — a curtain slides off the frame.
   NB: deliberately NOT clip-path on the observed node; Chromium
   folds self-clipping into IntersectionObserver visibility, so a
   fully-clipped element never reports as intersecting and the
   reveal would never fire. The curtain is a child instead. */
[data-reveal="mask"]{opacity:1; transform:none; filter:none}
[data-reveal="mask"]::before{
  content:''; position:absolute; inset:-1px; z-index:5;
  background:linear-gradient(180deg,var(--obsidian-deep) 88%,rgba(212,175,55,.35));
  transform:translateY(0);
  transition:transform 1.4s var(--ease-vault) var(--delay,0s);
}
[data-reveal="mask"].is-inview::before{transform:translateY(-101%)}

/* word-by-word kinetic type */
.kinetic{display:block}
.kinetic .ln{display:block; overflow:hidden; padding-bottom:.06em}
.kinetic .wd{
  display:inline-block;
  transform:translate3d(0,110%,0) rotate(3deg);
  transition:transform 1.25s var(--ease-vault);
}
.is-inview .kinetic .wd{transform:none}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  [data-reveal]{opacity:1;transform:none;filter:none;clip-path:none}
  .kinetic .wd{transform:none}
}

/* ============================================================
   PRELOADER — the vault opening
   ============================================================ */
#vault{
  position:fixed; inset:0; z-index:9999;
  background:var(--obsidian-deep);
  display:grid; place-items:center;
  transition:opacity .9s ease .35s, visibility .9s .35s;
}
#vault.is-open{opacity:0; visibility:hidden}
#vault .seal{width:118px;height:118px}
#vault .seal path,#vault .seal circle{
  fill:none; stroke:var(--gold); stroke-width:1.1;
  stroke-dasharray:1000; stroke-dashoffset:1000;
  animation:draw 2s var(--ease-vault) forwards;
}
#vault .seal .m{animation-delay:.55s}
@keyframes draw{to{stroke-dashoffset:0}}
#vault .vword{
  margin-top:1.6rem; font-family:var(--serif-ui);
  letter-spacing:.62em; font-size:.68rem; text-indent:.62em;
  color:var(--brass); opacity:0;
  animation:fadein 1.1s ease 1s forwards;
}
@keyframes fadein{to{opacity:1}}
.vault-curtain{
  position:fixed; left:0; right:0; height:50vh; z-index:9998;
  background:var(--obsidian-deep);
  transition:transform 1.1s var(--ease-vault) .25s;
}
.vault-curtain.t{top:0}
.vault-curtain.b{bottom:0}
.is-open ~ .vault-curtain.t{transform:translateY(-100%)}
.is-open ~ .vault-curtain.b{transform:translateY(100%)}

/* ============================================================
   NAVIGATION — floating gold-trimmed pill
   ============================================================ */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:900;
  padding:1.6rem var(--gutter);
  display:flex; align-items:center; justify-content:space-between;
  gap:1.5rem;
  transition:padding .6s var(--ease-vault);
}
.nav.is-stuck{padding-top:.85rem; padding-bottom:.85rem}

.brandmark{
  display:flex; align-items:center; gap:.85rem;
  text-decoration:none; color:var(--parchment);
  position:relative; z-index:2;
}
.brandmark svg{width:38px;height:38px;flex:none;transition:transform .8s var(--ease-vault)}
.brandmark:hover svg{transform:rotate(-8deg) scale(1.06)}
.brandmark .wordmark{line-height:1.05}
.brandmark .wordmark b{
  display:block; font-family:var(--serif-ui); font-weight:500;
  letter-spacing:.34em; font-size:.92rem; color:var(--gold-pale);
}
.brandmark .wordmark span{
  display:block; font-size:.6rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--muted); margin-top:.18rem;
}

.navpill{
  display:flex; align-items:center; gap:.25rem;
  padding:.42rem .5rem;
  border:var(--rule); border-radius:999px;
  background:rgba(11,9,7,.42);
  backdrop-filter:blur(16px) saturate(1.2);
  -webkit-backdrop-filter:blur(16px) saturate(1.2);
  transition:background .6s ease, border-color .6s ease, box-shadow .6s ease;
}
.nav.is-stuck .navpill{
  background:rgba(11,9,7,.86);
  border-color:var(--filigree-lit);
  box-shadow:0 16px 44px rgba(0,0,0,.6), inset 0 1px 0 rgba(212,175,55,.12);
}
.navpill a{
  position:relative;
  padding:.55rem 1.05rem;
  font-family:var(--serif-ui); font-size:.66rem;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--parchment-dim); text-decoration:none;
  border-radius:999px;
  transition:color .45s ease;
  white-space:nowrap;
}
.navpill a::before{
  content:''; position:absolute; inset:0; border-radius:999px;
  background:radial-gradient(60% 120% at 50% 120%, rgba(212,175,55,.22), transparent 70%);
  opacity:0; transition:opacity .45s ease;
}
.navpill a:hover{color:var(--gold-pale)}
.navpill a:hover::before{opacity:1}
.navpill a.is-live{color:var(--gold-pale)}

.nav-right{display:flex;align-items:center;gap:.9rem;position:relative;z-index:2}

.lang{
  display:flex; border:var(--rule); border-radius:999px; overflow:hidden;
  background:rgba(11,9,7,.42); backdrop-filter:blur(14px);
}
.lang button{
  appearance:none; border:0; background:transparent; cursor:pointer;
  font-family:var(--serif-ui); font-size:.6rem; letter-spacing:.16em;
  padding:.55rem .72rem; color:var(--muted);
  transition:color .4s ease, background .4s ease;
}
.lang button:hover{color:var(--gold-pale)}
.lang button.on{color:var(--obsidian); background:linear-gradient(180deg,var(--gold-pale),var(--brass))}

.btn{
  --btn-fg:var(--gold-pale);
  position:relative; display:inline-flex; align-items:center; gap:.7rem;
  padding:.95rem 1.9rem;
  font-family:var(--serif-ui); font-size:.64rem;
  letter-spacing:.26em; text-transform:uppercase;
  color:var(--btn-fg); text-decoration:none;
  border:1px solid var(--filigree-lit);
  background:transparent; cursor:pointer;
  overflow:hidden; isolation:isolate;
  transition:color .55s var(--ease-vault), border-color .55s ease;
  white-space:nowrap;
}
.btn::after{
  content:''; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(115deg,var(--gold-pale),var(--gold) 45%,var(--brass));
  transform:translateY(101%);
  transition:transform .7s var(--ease-vault);
}
.btn:hover{color:#0B0907; border-color:var(--gold)}
.btn:hover::after{transform:translateY(0)}
.btn.btn-sm{padding:.7rem 1.3rem;font-size:.6rem;letter-spacing:.2em}
.btn.btn-solid{color:#0B0907;border-color:var(--gold)}
.btn.btn-solid::after{transform:translateY(0)}
.btn.btn-solid:hover::after{transform:translateY(-101%)}
.btn.btn-solid:hover{color:var(--gold-pale)}

.navtoggle{display:none}

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative; min-height:100svh;
  display:grid; align-items:end;
  overflow:hidden;
  padding-bottom:clamp(3rem,9vh,7rem);
}
.hero-media{
  position:absolute; inset:0; z-index:0;
  overflow:hidden;
}
.hero-media video,
.hero-media img{
  width:100%; height:118%; object-fit:cover;
  filter:brightness(.46) contrast(1.16) saturate(.82) sepia(.16);
  transform:translate3d(0,0,0) scale(1.06);
  will-change:transform;
}
.hero-media::after{
  content:''; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(11,9,7,.82) 0%, rgba(11,9,7,.24) 34%, rgba(11,9,7,.72) 76%, var(--obsidian) 100%),
    radial-gradient(78% 62% at 50% 44%, transparent 0%, rgba(11,9,7,.72) 100%);
}
.hero-inner{position:relative; z-index:3}
.hero .display{margin-bottom:1.8rem}
.hero-lede{max-width:44ch; margin-bottom:2.6rem}
.hero-cta{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}

.hero-meta{
  position:absolute; z-index:3; bottom:clamp(3rem,9vh,7rem); right:var(--gutter);
  text-align:right; font-family:var(--serif-ui);
  font-size:.6rem; letter-spacing:.24em; text-transform:uppercase;
  color:var(--muted); line-height:2.4;
}
.hero-meta b{display:block;color:var(--gold-soft);font-weight:500}

.scrollcue{
  position:absolute; z-index:3; left:50%; bottom:2rem; transform:translateX(-50%);
  width:1px; height:64px; background:linear-gradient(var(--filigree-lit),transparent);
  overflow:visible;
}
.scrollcue::after{
  content:''; position:absolute; left:-2px; top:0;
  width:5px;height:5px;border-radius:50%;background:var(--gold);
  box-shadow:0 0 12px var(--gold);
  animation:cue 2.4s var(--ease-vault) infinite;
}
@keyframes cue{
  0%{transform:translateY(0);opacity:0}
  25%{opacity:1}
  75%{opacity:1}
  100%{transform:translateY(60px);opacity:0}
}

/* Floating gold motes */
.motes{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.mote{
  position:absolute; border-radius:50%;
  background:radial-gradient(circle,rgba(240,230,210,.9),rgba(212,175,55,.28) 45%,transparent 70%);
  animation:drift linear infinite;
  opacity:0;
}
@keyframes drift{
  0%{transform:translate3d(0,20px,0) scale(.6);opacity:0}
  12%{opacity:var(--peak,.5)}
  88%{opacity:var(--peak,.5)}
  100%{transform:translate3d(var(--dx,20px),-120px,0) scale(1.1);opacity:0}
}

/* ============================================================
   MARQUEE
   ============================================================ */
.marquee{
  border-top:var(--rule); border-bottom:var(--rule);
  padding:1.15rem 0; overflow:hidden;
  background:linear-gradient(180deg,rgba(30,23,16,.5),transparent);
}
.marquee-track{display:flex;width:max-content;animation:slide 46s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee span{
  font-family:var(--serif-ui); font-size:.66rem;
  letter-spacing:.4em; text-transform:uppercase;
  color:var(--brass); padding:0 2.2rem;
  display:inline-flex; align-items:center; gap:2.2rem;
  white-space:nowrap;
}
.marquee span::after{content:'✦'; color:var(--gold); font-size:.55rem; opacity:.7}
@keyframes slide{to{transform:translateX(-50%)}}

/* ============================================================
   SECTION HEAD
   ============================================================ */
.sec-head{
  display:grid; grid-template-columns:minmax(0,1fr) auto;
  gap:2rem; align-items:end; margin-bottom:clamp(2.5rem,5vw,4.5rem);
}
.sec-head .lede{margin-top:1.3rem}
@media(max-width:820px){
  .sec-head{grid-template-columns:1fr}
}

/* ============================================================
   COLLECTION GRID
   ============================================================ */
.collection{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));
  gap:clamp(1rem,2vw,1.9rem);
}
.piece{
  position:relative; display:block; text-decoration:none;
  background:linear-gradient(180deg,var(--surface-2),var(--surface));
  border:1px solid rgba(212,175,55,.13);
  overflow:hidden; isolation:isolate;
  transition:border-color .7s ease, transform .9s var(--ease-vault), box-shadow .9s var(--ease-vault);
}
.piece:hover{
  border-color:var(--filigree-lit);
  transform:translateY(-7px);
  box-shadow:0 26px 60px rgba(0,0,0,.62);
}
/* filigree corner brackets that draw in on hover */
.piece .bracket{
  position:absolute; width:26px; height:26px; z-index:4;
  border:0 solid var(--gold); opacity:0;
  transition:opacity .6s ease .05s, width .7s var(--ease-vault), height .7s var(--ease-vault);
  pointer-events:none;
}
.piece .bracket.tl{top:11px;left:11px;border-top-width:1px;border-left-width:1px}
.piece .bracket.br{bottom:11px;right:11px;border-bottom-width:1px;border-right-width:1px}
.piece:hover .bracket{opacity:1;width:38px;height:38px}

.piece-frame{
  position:relative; aspect-ratio:4/5; overflow:hidden;
  background:var(--obsidian-deep);
}
.piece-frame img{
  width:100%;height:100%;object-fit:cover;
  transform:scale(1.02);
  transition:transform 1.5s var(--ease-vault), filter 1.1s ease;
  filter:brightness(.94) saturate(.94);
}
.piece:hover .piece-frame img{transform:scale(1.11); filter:brightness(1.06) saturate(1.02)}
.piece-frame::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg,transparent 40%,rgba(11,9,7,.78) 100%);
  transition:opacity .8s ease; opacity:.85;
}
.piece:hover .piece-frame::after{opacity:.6}

/* light sweep across the glass */
.piece-frame::before{
  content:''; position:absolute; top:0; left:-70%; z-index:3;
  width:45%; height:100%;
  background:linear-gradient(100deg,transparent,rgba(240,230,210,.14),transparent);
  transform:skewX(-18deg);
  transition:left .95s var(--ease-vault);
}
.piece:hover .piece-frame::before{left:130%}

.piece-body{padding:1.5rem 1.5rem 1.7rem; position:relative}
.piece-cat{
  font-family:var(--serif-ui); font-size:.58rem; letter-spacing:.28em;
  text-transform:uppercase; color:var(--brass); display:block; margin-bottom:.7rem;
}
.piece-name{
  font-family:var(--serif-display); font-size:1.28rem; line-height:1.28;
  color:var(--parchment); margin:0 0 1rem; font-weight:400;
}
.piece-foot{
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  padding-top:.95rem; border-top:1px solid rgba(212,175,55,.13);
}
.piece-price{
  font-family:var(--serif-display); font-size:1.12rem;
  color:var(--gold-pale); letter-spacing:.02em;
}
.piece-price.por{
  font-family:var(--serif-ui); font-size:.6rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--muted);
}
.piece-go{
  font-family:var(--serif-ui); font-size:.58rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--gold-soft);
  display:inline-flex;align-items:center;gap:.5rem;
  transition:gap .5s var(--ease-vault);
}
.piece:hover .piece-go{gap:.95rem}

/* ============================================================
   CATEGORY CLOISONNÉ
   ============================================================ */
.cats{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,215px),1fr));
  gap:1px; background:var(--filigree);
  border:var(--rule);
}
.cat{
  position:relative; display:flex; flex-direction:column;
  justify-content:space-between; gap:2.6rem;
  min-height:172px; padding:1.5rem 1.4rem;
  background:var(--surface); text-decoration:none;
  overflow:hidden; isolation:isolate;
  transition:background .7s ease;
}
.cat::after{
  content:''; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(150deg,rgba(212,175,55,.16),rgba(103,22,24,.14));
  opacity:0; transition:opacity .7s ease;
}
.cat:hover::after{opacity:1}
.cat:hover{background:var(--surface-3)}
.cat-idx{
  font-family:var(--serif-ui); font-size:.56rem; letter-spacing:.22em;
  color:var(--brass); opacity:.65;
}
.cat-name{
  font-family:var(--serif-display); font-size:1.42rem; line-height:1.1;
  color:var(--parchment-dim);
  transition:color .6s ease, transform .8s var(--ease-vault);
}
.cat:hover .cat-name{color:var(--gold-pale); transform:translateX(5px)}
.cat-arrow{
  position:absolute; right:1.3rem; bottom:1.4rem;
  color:var(--gold); opacity:0; transform:translate(-8px,8px);
  transition:opacity .6s ease, transform .7s var(--ease-vault);
  font-size:1rem;
}
.cat:hover .cat-arrow{opacity:1;transform:none}

/* ============================================================
   SPLIT / PARALLAX FEATURE
   ============================================================ */
.split{
  display:grid; grid-template-columns:1.05fr .95fr;
  gap:clamp(2rem,5vw,5.5rem); align-items:center;
}
.split.flip{grid-template-columns:.95fr 1.05fr}
.split.flip .split-media{order:2}
.split.flip .split-copy{order:1}
@media(max-width:900px){
  .split,.split.flip{grid-template-columns:1fr}
  .split.flip .split-media,.split.flip .split-copy{order:initial}
}
.split-media{
  position:relative; overflow:hidden;
  aspect-ratio:4/3.05;
  border:1px solid rgba(212,175,55,.16);
}
.split-media img{
  width:100%; height:126%; object-fit:cover;
  will-change:transform;
}
.split-media::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(200deg,rgba(11,9,7,.1),rgba(11,9,7,.6));
}
.split-media .plate{
  position:absolute; z-index:3; left:1.4rem; bottom:1.4rem;
  padding:.7rem 1.1rem; border:1px solid var(--filigree-lit);
  background:rgba(11,9,7,.68); backdrop-filter:blur(8px);
  font-family:var(--serif-ui); font-size:.56rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--gold-soft);
}

/* ============================================================
   SERVICES — hover-reveal index
   ============================================================ */
.svc-list{border-top:var(--rule)}
.svc{
  position:relative; display:grid;
  grid-template-columns:4.5rem minmax(0,1fr) auto;
  gap:1.6rem; align-items:center;
  padding:clamp(1.5rem,3vw,2.5rem) 0;
  border-bottom:var(--rule);
  text-decoration:none; overflow:hidden;
  transition:padding-left .8s var(--ease-vault);
}
.svc::before{
  content:''; position:absolute; inset:0; z-index:0;
  background:linear-gradient(90deg,rgba(212,175,55,.09),transparent 62%);
  transform:scaleX(0); transform-origin:left;
  transition:transform .85s var(--ease-vault);
}
.svc:hover::before{transform:scaleX(1)}
.svc:hover{padding-left:1.6rem}
.svc > *{position:relative;z-index:1}
.svc-no{
  font-family:var(--serif-ui); font-size:.62rem; letter-spacing:.18em;
  color:var(--brass);
}
.svc-name{
  font-family:var(--serif-display);
  font-size:clamp(1.5rem,1rem + 1.9vw,2.6rem);
  color:var(--parchment-dim); line-height:1.15;
  transition:color .6s ease;
}
.svc:hover .svc-name{color:var(--gold-pale)}
.svc-desc{
  display:block; font-size:.94rem; color:var(--muted);
  margin-top:.5rem; max-width:62ch; line-height:1.65;
}
.svc-tag{
  font-family:var(--serif-ui); font-size:.56rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--gold-soft);
  border:1px solid var(--filigree); padding:.45rem .85rem;
  white-space:nowrap;
  transition:border-color .6s ease,color .6s ease;
}
.svc:hover .svc-tag{border-color:var(--filigree-lit)}
@media(max-width:760px){
  .svc{grid-template-columns:2.6rem minmax(0,1fr); gap:1rem}
  .svc-tag{grid-column:2;justify-self:start;margin-top:.9rem}
}

/* ============================================================
   INVESTMENT — editorial statement
   ============================================================ */
.statement{
  position:relative; padding:clamp(3rem,7vw,6rem) clamp(1.5rem,5vw,5rem);
  border:var(--rule);
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(103,22,24,.18), transparent 60%),
    linear-gradient(180deg,var(--surface),var(--obsidian));
  overflow:hidden;
}
.statement::before{
  content:'“'; position:absolute; top:-3rem; left:1rem;
  font-family:var(--serif-display); font-size:22rem; line-height:1;
  color:rgba(212,175,55,.055); pointer-events:none;
}
.statement q{
  quotes:none;
  font-family:var(--serif-display); font-weight:300;
  font-size:clamp(1.4rem,1rem + 1.9vw,2.5rem);
  line-height:1.42; color:var(--parchment);
  display:block; max-width:34ch;
}
.figures{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:clamp(1.5rem,3vw,3rem); margin-top:clamp(2.5rem,5vw,4rem);
  padding-top:2.4rem; border-top:1px solid var(--filigree);
}
.fig b{
  display:block; font-family:var(--serif-display); font-weight:300;
  font-size:clamp(2.2rem,1.4rem + 2.4vw,3.4rem);
  color:var(--gold-pale); line-height:1;
}
.fig span{
  display:block; margin-top:.7rem;
  font-family:var(--serif-ui); font-size:.58rem;
  letter-spacing:.24em; text-transform:uppercase; color:var(--muted);
}

/* ============================================================
   THE SALEROOM — auction module (toggleable)
   ============================================================ */
.saleroom{
  position:relative; overflow:hidden;
  border:1px solid rgba(212,175,55,.22);
  background:
    radial-gradient(100% 120% at 15% 0%, rgba(212,175,55,.1), transparent 55%),
    linear-gradient(160deg,var(--surface-2),var(--obsidian-deep));
}
.saleroom-grid{
  display:grid; grid-template-columns:1.15fr .85fr;
  gap:clamp(2rem,4vw,4rem); align-items:center;
  padding:clamp(2rem,4.5vw,4rem);
}
@media(max-width:900px){.saleroom-grid{grid-template-columns:1fr}}

.live-dot{
  display:inline-flex;align-items:center;gap:.6rem;
  font-family:var(--serif-ui);font-size:.58rem;letter-spacing:.26em;
  text-transform:uppercase;color:var(--crimson);
  filter:brightness(1.9);
}
.live-dot i{
  width:7px;height:7px;border-radius:50%;background:#B8322F;
  box-shadow:0 0 0 0 rgba(184,50,47,.65);
  animation:pulse 2.1s infinite;
}
@keyframes pulse{
  70%{box-shadow:0 0 0 11px rgba(184,50,47,0)}
  100%{box-shadow:0 0 0 0 rgba(184,50,47,0)}
}

.lot{
  border:1px solid var(--filigree);
  background:rgba(11,9,7,.55);
  backdrop-filter:blur(10px);
  padding:1.5rem;
}
.lot-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.2rem}
.lot-no{font-family:var(--serif-ui);font-size:.56rem;letter-spacing:.24em;text-transform:uppercase;color:var(--brass)}
.lot-name{font-family:var(--serif-display);font-size:1.3rem;color:var(--parchment);margin:.4rem 0 0;font-weight:400}
.lot-img{width:78px;height:78px;object-fit:cover;border:1px solid var(--filigree);flex:none}
.lot-row{display:flex;justify-content:space-between;gap:1rem;padding:.65rem 0;border-top:1px solid rgba(212,175,55,.12);font-size:.9rem}
.lot-row span{color:var(--muted);font-family:var(--serif-ui);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase}
.lot-row b{color:var(--gold-pale);font-family:var(--serif-display);font-size:1.15rem;font-weight:400}

.clock{display:flex;gap:.55rem;margin:1.3rem 0 1.1rem}
.clock div{
  flex:1; text-align:center; padding:.7rem .3rem;
  border:1px solid var(--filigree); background:rgba(30,23,16,.6);
}
.clock b{
  display:block;font-family:var(--serif-display);font-size:1.55rem;
  color:var(--gold-pale);line-height:1;font-weight:300;
  font-variant-numeric:tabular-nums;
}
.clock span{
  display:block;margin-top:.4rem;font-family:var(--serif-ui);
  font-size:.5rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);
}
.admin-note{
  margin-top:1.6rem;padding:.9rem 1.1rem;
  border-left:2px solid var(--gold);
  background:rgba(212,175,55,.06);
  font-size:.84rem;color:var(--parchment-dim);
}
.admin-note b{color:var(--gold-pale);font-family:var(--serif-ui);font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;display:block;margin-bottom:.35rem}

/* ============================================================
   CONTACT + FOOTER
   ============================================================ */
.contact-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));
  gap:1px; background:var(--filigree); border:var(--rule);
}
.ccard{
  background:var(--surface); padding:clamp(1.6rem,3vw,2.4rem);
  text-decoration:none; display:block;
  transition:background .7s ease;
}
.ccard:hover{background:var(--surface-3)}
.ccard span{
  display:block;font-family:var(--serif-ui);font-size:.56rem;
  letter-spacing:.26em;text-transform:uppercase;color:var(--brass);margin-bottom:.9rem;
}
.ccard b{
  display:block;font-family:var(--serif-display);font-weight:400;
  font-size:1.22rem;color:var(--parchment);line-height:1.35;
  transition:color .5s ease;
}
.ccard:hover b{color:var(--gold-pale)}
.ccard em{display:block;font-style:normal;color:var(--muted);font-size:.88rem;margin-top:.45rem}

footer{
  border-top:var(--rule);
  padding:clamp(3rem,6vw,5rem) 0 2.5rem;
  background:linear-gradient(180deg,transparent,rgba(7,6,5,.9));
  position:relative;z-index:3;
}
.foot-grid{
  display:grid;grid-template-columns:1.6fr 1fr 1fr;
  gap:clamp(2rem,4vw,4rem);margin-bottom:3.5rem;
}
@media(max-width:820px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.foot-grid{grid-template-columns:1fr}}
.foot-grid h4{
  font-family:var(--serif-ui);font-size:.58rem;letter-spacing:.26em;
  text-transform:uppercase;color:var(--brass);margin-bottom:1.3rem;font-weight:500;
}
.foot-grid a{
  display:block;color:var(--parchment-dim);text-decoration:none;
  padding:.34rem 0;font-size:.95rem;
  transition:color .45s ease,transform .55s var(--ease-vault);
}
.foot-grid a:hover{color:var(--gold-pale);transform:translateX(6px)}
.foot-blurb{color:var(--muted);max-width:38ch;font-size:.95rem;margin-top:1.2rem}
.foot-base{
  display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;
  padding-top:2rem;border-top:1px solid var(--filigree);
  font-family:var(--serif-ui);font-size:.56rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--muted);
}

/* WhatsApp pill */
.wa{
  position:fixed;right:clamp(1rem,3vw,2rem);bottom:clamp(1rem,3vw,2rem);z-index:800;
  display:inline-flex;align-items:center;gap:.65rem;
  padding:.85rem 1.35rem;border:1px solid var(--filigree-lit);
  background:rgba(11,9,7,.86);backdrop-filter:blur(14px);
  font-family:var(--serif-ui);font-size:.58rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold-pale);text-decoration:none;
  box-shadow:0 14px 40px rgba(0,0,0,.55);
  transition:border-color .5s ease,transform .6s var(--ease-vault);
}
.wa:hover{border-color:var(--gold);transform:translateY(-3px)}
.wa i{width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 10px var(--gold)}

/* ============================================================
   RESPONSIVE / NAV DRAWER
   ============================================================ */
@media(max-width:1120px){
  .navpill{display:none}
  .navtoggle{
    display:inline-flex;flex-direction:column;gap:5px;
    background:transparent;border:1px solid var(--filigree);
    padding:.75rem .8rem;cursor:pointer;
  }
  .navtoggle i{display:block;width:20px;height:1px;background:var(--gold-pale);transition:transform .5s var(--ease-vault),opacity .3s}
  .navtoggle.on i:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .navtoggle.on i:nth-child(2){opacity:0}
  .navtoggle.on i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .drawer{
    position:fixed;inset:0;z-index:880;
    background:linear-gradient(160deg,var(--obsidian-deep),var(--surface));
    display:grid;place-content:center;gap:.4rem;text-align:center;
    clip-path:circle(0% at 92% 5%);
    transition:clip-path .95s var(--ease-vault);
  }
  .drawer.on{clip-path:circle(150% at 92% 5%)}
  .drawer a{
    font-family:var(--serif-display);font-size:2rem;color:var(--parchment-dim);
    text-decoration:none;padding:.5rem 2rem;transition:color .4s ease;
  }
  .drawer a:hover{color:var(--gold-pale)}
}
@media(min-width:1121px){.drawer{display:none}}

@media(max-width:760px){
  /* the Enquire button lives in the drawer at this width — keeping it in the
     bar pushes the hamburger off-screen on a 390px viewport */
  .nav-right > .btn{display:none}
  .nav{padding-left:1.1rem;padding-right:1.1rem}
  .lang button{padding:.5rem .58rem}
}
@media(max-width:640px){
  .hero-meta{display:none}
  .brandmark .wordmark span{display:none}
  .brandmark .wordmark b{font-size:.8rem;letter-spacing:.26em}
}

/* ============================================================
   ARABIC / RTL
   ============================================================ */
html[dir="rtl"] body{font-family:var(--arabic)}
html[dir="rtl"] h1,
html[dir="rtl"] h2,
html[dir="rtl"] h3,
html[dir="rtl"] .piece-name,
html[dir="rtl"] .svc-name,
html[dir="rtl"] .cat-name,
html[dir="rtl"] .statement q{font-family:var(--arabic);line-height:1.5}
html[dir="rtl"] .display{font-size:clamp(2.4rem,1.2rem + 5.2vw,5.4rem);line-height:1.28}
html[dir="rtl"] .eyebrow{letter-spacing:0}
html[dir="rtl"] .btn,
html[dir="rtl"] .navpill a,
html[dir="rtl"] .piece-cat,
html[dir="rtl"] .svc-tag,
html[dir="rtl"] .ccard span,
html[dir="rtl"] .foot-grid h4,
html[dir="rtl"] .fig span,
html[dir="rtl"] .clock span{letter-spacing:.06em;font-family:var(--arabic)}
html[dir="rtl"] .marquee-track{animation-direction:reverse}
/* hero-meta stays on the left in RTL, but the WhatsApp pill deliberately
   does NOT mirror — it would land on top of it, and bottom-right is the
   convention users expect in both directions. */
html[dir="rtl"] .hero-meta{text-align:left;right:auto;left:var(--gutter)}
html[dir="rtl"] .svc:hover{padding-left:0;padding-right:1.6rem}
html[dir="rtl"] .svc::before{transform-origin:right;background:linear-gradient(270deg,rgba(212,175,55,.09),transparent 62%)}
html[dir="rtl"] .foot-grid a:hover{transform:translateX(-6px)}
html[dir="rtl"] .cat:hover .cat-name{transform:translateX(-5px)}
html[dir="rtl"] .cat-arrow{right:auto;left:1.3rem;transform:translate(8px,8px) scaleX(-1)}
html[dir="rtl"] .cat:hover .cat-arrow{transform:scaleX(-1)}
html[dir="rtl"] .statement::before{left:auto;right:1rem}
