/* ==========================================================================
   FREYA BEAUTY SALON — v2 (GSAP motion edition)
   Palette: warm cream · espresso ink · champagne gold
   AR (default, RTL) / EN — logical properties only.
   Motion is owned by main.js (GSAP). This file never hides content unless
   html.gsap is present, so the page is complete without JavaScript.
   ========================================================================== */

:root{
  --ink:#241C17; --ink-2:#4A3B31; --muted:#8A7A6C;
  --cream:#FBF8F3; --sand:#F3ECE3; --sand-2:#E9DECF;
  --gold:#B08D57; --gold-2:#D9BE92;
  --line:rgba(36,28,23,.13); --line-2:rgba(36,28,23,.07);
  --shadow-md:0 2px 6px rgba(36,28,23,.06), 0 24px 60px -28px rgba(36,28,23,.28);

  --serif-en:"Cormorant Garamond","Times New Roman",serif;
  --sans-en:"Jost",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --serif-ar:"Amiri","Noto Naskh Arabic","Geeza Pro",serif;
  --sans-ar:"Tajawal","Noto Kufi Arabic",-apple-system,"Segoe UI",sans-serif;
  --display:var(--serif-ar); --body:var(--sans-ar);

  --pad:clamp(20px,5vw,64px); --maxw:1240px; --sec-y:clamp(80px,12vw,160px);
  --head-h:74px; --top-h:34px;
}
html[lang="en"]{ --display:var(--serif-en); --body:var(--sans-en); }

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }
body{
  margin:0; background:var(--cream); color:var(--ink);
  font-family:var(--body); font-weight:300; font-size:clamp(15px,1.02vw,17px); line-height:1.85;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

/* ---- motion gates: only hide when GSAP is really here ---- */
html.gsap [data-r], html.gsap [data-split], html.gsap [data-intro]{ visibility:hidden; }
html.gsap .clip{ clip-path:inset(100% 0 0 0); }
.clip{ overflow:hidden; }
.clip img{ will-change:transform; }

/* ---------- primitives ---------- */
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad); }
.section{ padding-block:var(--sec-y); }
.section--sand{ background:var(--sand); }
.section--ink{ background:var(--ink); color:var(--cream); }

.eyebrow{
  font-family:var(--sans-en); font-size:11px; font-weight:400; letter-spacing:.34em; text-transform:uppercase;
  color:var(--gold); display:flex; align-items:center; gap:14px; margin:0 0 22px;
}
.eyebrow::after{ content:""; flex:0 0 46px; height:1px; background:currentColor; opacity:.5; }
html[lang="ar"] .eyebrow{ font-family:var(--sans-ar); font-size:13px; letter-spacing:0; text-transform:none; }

h1,h2,h3{ font-family:var(--display); font-weight:400; line-height:1.22; margin:0; text-wrap:balance; }
h2{ font-size:clamp(34px,5vw,64px); }
h3{ font-size:clamp(19px,1.7vw,23px); }
html[lang="en"] h2{ font-weight:300; letter-spacing:.01em; }
.lede{ font-size:clamp(16px,1.25vw,19px); color:var(--ink-2); max-width:62ch; }
.muted{ color:var(--muted); }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:15px 30px; border-radius:999px; font-family:var(--sans-en); font-size:12px; font-weight:400;
  letter-spacing:.2em; text-transform:uppercase; white-space:nowrap;
  transition:background .35s ease,color .35s ease,border-color .35s ease,transform .35s ease;
}
html[lang="ar"] .btn{ font-family:var(--sans-ar); font-size:14px; letter-spacing:0; text-transform:none; font-weight:500; }
.btn:hover{ transform:translateY(-1px); }
.btn--gold{ background:var(--gold); color:#fff; } .btn--gold:hover{ background:#9C7B49; }
.btn--ghost{ border:1px solid rgba(255,255,255,.45); color:#fff; } .btn--ghost:hover{ background:rgba(255,255,255,.12); border-color:#fff; }
.btn--line{ border:1px solid var(--line); color:var(--ink); } .btn--line:hover{ border-color:var(--gold); color:var(--gold); }
.btn svg{ width:17px; height:17px; fill:currentColor; flex:none; }

/* ---------- loader (GSAP only) ---------- */
.loader{ position:fixed; inset:0; z-index:300; background:var(--cream); display:grid; place-items:center; will-change:transform; }
html:not(.gsap) .loader{ display:none; }
.loader__mark{ font-family:var(--serif-en); font-size:clamp(40px,7vw,84px); letter-spacing:.34em; text-indent:.34em; color:var(--ink); line-height:1; }
.loader__mark .char{ display:inline-block; }
.loader__line{ width:min(240px,40vw); height:1px; background:var(--gold); margin:26px auto 0; transform-origin:50% 50%; transform:scaleX(0); }

/* ---------- announcement + header ---------- */
.topbar{ background:var(--ink); color:rgba(251,248,243,.78); font-size:12px; letter-spacing:.04em; padding-block:9px; }
.topbar .wrap{ display:flex; align-items:center; justify-content:center; gap:10px; text-align:center; }
.topbar .dot{ width:4px; height:4px; border-radius:50%; background:var(--gold); flex:none; }
.topbar b{ color:var(--gold-2); font-weight:400; }

.header{
  position:sticky; top:0; z-index:60;
  background:rgba(251,248,243,.86); backdrop-filter:saturate(140%) blur(14px); -webkit-backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .4s ease,background .4s ease;
}
.header.ready{ transition:border-color .4s ease,background .4s ease,transform .5s cubic-bezier(.2,.7,.3,1); } /* only after the GSAP entrance */
html:not(.gsap) .header{ transition:border-color .4s ease,background .4s ease,transform .5s cubic-bezier(.2,.7,.3,1); }
.header.stuck{ border-bottom-color:var(--line); }
.header.hide{ transform:translateY(-100%); }
.header .wrap{ display:flex; align-items:center; gap:clamp(14px,2.4vw,40px); height:var(--head-h); }

.mark{ display:flex; flex-direction:column; align-items:center; line-height:1; flex:none; }
.mark__name{ font-family:var(--serif-en); font-weight:400; font-size:22px; letter-spacing:.42em; text-indent:.42em; color:var(--ink); }
.mark__sub{
  font-family:var(--sans-en); font-size:7.5px; letter-spacing:.44em; text-indent:.44em; text-transform:uppercase; color:var(--gold);
  margin-top:5px; display:flex; align-items:center; gap:7px; white-space:nowrap;
}
.mark__sub::before,.mark__sub::after{ content:""; width:14px; height:1px; background:currentColor; opacity:.55; }

.nav{ display:flex; align-items:center; gap:clamp(14px,1.8vw,30px); margin-inline-start:auto; }
.nav a{ font-size:13px; letter-spacing:.03em; color:var(--ink-2); position:relative; padding-block:6px; transition:color .3s ease; }
html[lang="en"] .nav a{ font-family:var(--sans-en); font-size:12px; letter-spacing:.16em; text-transform:uppercase; }
.nav a::after{ content:""; position:absolute; inset-inline-start:0; bottom:0; width:100%; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:0 50%; transition:transform .4s cubic-bezier(.2,.7,.3,1); }
html[dir="rtl"] .nav a::after{ transform-origin:100% 50%; }
.nav a:hover{ color:var(--ink); } .nav a:hover::after{ transform:scaleX(1); }

.header__act{ display:flex; align-items:center; gap:12px; flex:none; }
.langsw{ display:flex; align-items:center; gap:2px; border:1px solid var(--line); border-radius:999px; padding:3px; }
.langsw a{ font-family:var(--sans-en); font-size:11px; letter-spacing:.12em; padding:5px 11px; border-radius:999px; color:var(--muted); transition:.3s ease; }
.langsw a[aria-current="page"]{ background:var(--ink); color:var(--cream); }

.burger{ display:none; width:42px; height:42px; align-items:center; justify-content:center; }
.burger span{ display:block; width:20px; height:1px; background:var(--ink); position:relative; transition:.3s; }
.burger span::before,.burger span::after{ content:""; position:absolute; inset-inline-start:0; width:20px; height:1px; background:var(--ink); transition:.3s; }
.burger span::before{ top:-6px; } .burger span::after{ top:6px; }
body.menu-open .burger span{ background:transparent; }
body.menu-open .burger span::before{ top:0; transform:rotate(45deg); }
body.menu-open .burger span::after{ top:0; transform:rotate(-45deg); }

/* ---------- hero ---------- */
.hero{
  position:relative; min-height:clamp(560px,calc(100svh - var(--head-h) - var(--top-h)),920px);
  display:grid; align-items:end; overflow:hidden; isolation:isolate;
}
.hero__media{ position:absolute; inset:-8% 0; z-index:-2; }            /* room for parallax */
.hero__media img{ width:100%; height:100%; object-fit:cover; object-position:58% 22%; will-change:transform; transform-origin:58% 30%; }
.hero::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(120% 62% at 58% 22%, rgba(20,14,10,0) 0%, rgba(20,14,10,.18) 55%, rgba(20,14,10,.42) 100%),
    linear-gradient(to bottom, rgba(20,14,10,.42) 0%, rgba(20,14,10,.06) 26%, rgba(18,12,8,.62) 66%, rgba(14,9,6,.9) 100%);
}
.hero__inner{ text-align:center; color:#fff; padding-block:0 clamp(104px,15vh,168px); }
.hero__eyebrow{ justify-content:center; color:var(--gold-2); margin-bottom:18px; }
.hero__eyebrow::after{ display:none; }
.hero__tag{ font-family:var(--display); font-size:clamp(30px,4.2vw,58px); font-weight:400; line-height:1.35; margin:0 auto; max-width:18ch; color:#fff; text-shadow:0 2px 30px rgba(12,8,5,.5); }
.hero__tag .word{ display:inline-block; will-change:transform; }
.hero__sub{ margin:22px auto 0; max-width:52ch; color:rgba(255,255,255,.84); font-size:clamp(14px,1.05vw,16px); text-shadow:0 1px 18px rgba(12,8,5,.6); }
.hero__cta{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin-top:38px; }
.hero__facts{ position:absolute; inset-inline:0; bottom:0; z-index:1; border-top:1px solid rgba(255,255,255,.16); background:linear-gradient(to top,rgba(16,11,8,.55),rgba(16,11,8,0)); }
.hero__facts .wrap{ display:flex; justify-content:center; flex-wrap:wrap; gap:clamp(18px,4vw,64px); padding-block:20px; }
.hero__facts span{ color:rgba(255,255,255,.82); font-size:12.5px; letter-spacing:.05em; display:flex; align-items:center; gap:9px; }
.hero__facts span::before{ content:""; width:5px; height:5px; border-radius:50%; background:var(--gold-2); flex:none; }
.scrollcue{ position:absolute; bottom:78px; inset-inline-end:var(--pad); z-index:1; width:1px; height:56px; background:linear-gradient(to bottom,rgba(255,255,255,0),rgba(255,255,255,.7)); }
@media (min-width:821px) and (max-height:880px){
  .hero__inner{ padding-block:0 clamp(64px,9vh,104px); }
  .hero__tag{ font-size:clamp(24px,2.8vw,40px); }
  .hero__sub{ display:none; }
}

/* ---------- about ---------- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,6vw,86px); align-items:center; }
.split__media{ position:relative; }
.split__media .clip{ aspect-ratio:4/5; }
.split__media img{ width:100%; height:100%; object-fit:cover; }
.split__media::after{ content:""; position:absolute; inset-inline-end:-20px; bottom:-20px; width:58%; height:54%; border:1px solid var(--gold); opacity:.85; z-index:-1; }
.split__body p+p{ margin-top:1.1em; }
.stats{ display:flex; flex-wrap:wrap; gap:clamp(24px,4vw,54px); margin-top:38px; padding-top:32px; border-top:1px solid var(--line); }
.stats b{ display:block; font-family:var(--serif-en); font-size:clamp(34px,3.8vw,50px); font-weight:300; color:var(--gold); line-height:1; font-variant-numeric:tabular-nums; }
.stats span{ font-size:12.5px; letter-spacing:.05em; color:var(--muted); }

/* ---------- promise ---------- */
.promise{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border-block:1px solid var(--line); }
.promise__i{ background:var(--sand); padding:clamp(28px,3.2vw,44px) clamp(18px,2vw,28px); text-align:center; position:relative; }
.promise__i svg{ width:26px; height:26px; stroke:var(--gold); fill:none; stroke-width:1.1; margin-inline:auto; }
.promise__i h3{ font-size:16px; margin-top:16px; font-family:var(--body); font-weight:500; }
.promise__i p{ font-size:13px; color:var(--muted); margin:7px 0 0; line-height:1.7; }
.promise__i i{ position:absolute; inset-inline:0; top:0; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:0 50%; display:block; }
html[dir="rtl"] .promise__i i{ transform-origin:100% 50%; }
html:not(.gsap) .promise__i i{ transform:none; }

/* ---------- section heads ---------- */
.sec-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:32px; flex-wrap:wrap; margin-bottom:clamp(34px,4.5vw,58px); }
.sec-head__t{ flex:1 1 520px; max-width:640px; }   /* px, not ch: the div's ch is body-sized while the h2 is 64px */
.sec-head > .lede{ flex:0 1 44ch; margin:0; }

/* ---------- services: pinned horizontal (desktop) / grid (else) ---------- */
.svc{ background:var(--cream); }
.svc__pin{ position:relative; }
.svc__head{ padding-top:clamp(56px,7vw,96px); }
.svc__bar{ display:none; height:1px; background:var(--line); position:absolute; inset-inline:var(--pad); bottom:clamp(22px,4vh,40px); }
.svc__bar i{ position:absolute; inset:0; background:var(--gold); transform:scaleX(0); transform-origin:0 50%; display:block; }
html[dir="rtl"] .svc__bar i{ transform-origin:100% 50%; }
.svc__viewport{ min-width:0; }
.svc__track{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,2.2vw,32px); padding:clamp(28px,3vw,44px) var(--pad) var(--sec-y); }
.card{ background:var(--cream); display:flex; flex-direction:column; }
.card__ph{ overflow:hidden; aspect-ratio:4/5; background:var(--sand-2); }
.card__ph img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s cubic-bezier(.2,.7,.3,1); }
.card:hover .card__ph img{ transform:scale(1.055); }
.card__b{ padding:22px clamp(4px,.6vw,10px) 0; display:flex; flex-direction:column; flex:1; }
.card__n{ font-family:var(--serif-en); font-size:15px; letter-spacing:.18em; color:var(--gold); font-variant-numeric:tabular-nums; }
.card h3{ margin:8px 0 0; }
.card__en{ font-family:var(--sans-en); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin-top:8px; }
html[lang="en"] .card__en{ display:none; }
.card p{ font-size:13.5px; color:var(--ink-2); margin:12px 0 0; line-height:1.75; }
.card__tags{ margin-top:auto; padding-top:16px; display:flex; flex-wrap:wrap; gap:7px; }
.card__tags i{ font-style:normal; font-size:11.5px; color:var(--muted); border:1px solid var(--line); border-radius:999px; padding:4px 11px; }
.card__from{ margin-top:14px; font-family:var(--sans-en); font-size:12.5px; letter-spacing:.04em; color:var(--gold); }
.card__from b{ font-size:17px; font-weight:500; }

/* pinned mode: title panel on the start side, cards flow toward the end side.
   Height budget: card = 1.25 × min(22vw,42vh) + ~190px body ≤ 100vh on every laptop. */
@media (min-width:1024px){
  .svc--pinned .svc__pin{ height:100vh; display:flex; align-items:center; gap:clamp(24px,3vw,56px); padding:0 var(--pad) 56px; overflow:hidden; } /* 56px = room for the progress bar */
  .svc--pinned .svc__head{ flex:0 0 clamp(250px,23vw,340px); padding:0; }
  .svc--pinned .svc__head .sec-head{ display:block; margin:0; }
  .svc--pinned .svc__head .sec-head__t{ max-width:none; }
  .svc--pinned .svc__head h2{ font-size:clamp(30px,4.4vh,54px); }
  .svc--pinned .svc__head .lede{ margin-top:18px; font-size:15px; max-width:none; }
  .svc--pinned .svc__viewport{ flex:1; }
  .svc--pinned .svc__track{ display:flex; align-items:start; width:max-content; gap:clamp(18px,2vw,30px); padding:0; will-change:transform; }
  .svc--pinned .card{ flex:0 0 min(22vw,36vh); }
  .svc--pinned .card h3{ font-size:clamp(18px,2.4vh,23px); }
  .svc--pinned .card p{ font-size:clamp(12px,1.55vh,13.5px); }
  .svc--pinned .svc__bar{ display:block; }
}

/* ---------- ticker ---------- */
.ticker{ background:var(--ink); color:var(--cream); overflow:hidden; padding-block:clamp(18px,2.4vw,28px); border-block:1px solid rgba(217,190,146,.25); }
.ticker__track{ display:flex; width:max-content; will-change:transform; }
.ticker__row{ display:flex; align-items:center; white-space:nowrap; }
.ticker__row span{ font-family:var(--display); font-size:clamp(20px,2.4vw,32px); padding-inline:clamp(18px,2.4vw,36px); color:var(--cream); }
.ticker__row span:nth-child(even){ color:var(--gold-2); }
.ticker__row em{ width:6px; height:6px; border-radius:50%; background:var(--gold); flex:none; }
.ticker__cta{ display:flex; justify-content:center; gap:16px; align-items:center; flex-wrap:wrap; margin-top:clamp(14px,1.6vw,20px); padding-inline:var(--pad); }
.ticker__cta p{ margin:0; font-size:14px; color:rgba(251,248,243,.66); }
.ticker__cta .btn{ border:1px solid rgba(217,190,146,.55); color:var(--gold-2); padding:12px 24px; }
.ticker__cta .btn:hover{ background:rgba(217,190,146,.12); }

/* ---------- prices ---------- */
.prices{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(18px,2.2vw,32px); align-items:start; }
.pcol{ display:flex; flex-direction:column; gap:clamp(18px,2.2vw,32px); }
.pg{ background:#fff; border:1px solid var(--line); padding:clamp(24px,2.4vw,36px); }
.pg__h{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; padding-bottom:16px; border-bottom:1px solid var(--gold); }
.pg__h h3{ font-size:clamp(19px,1.8vw,25px); }
.pg__h span{ font-family:var(--sans-en); font-size:10.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); white-space:nowrap; }
html[lang="en"] .pg__h span{ display:none; }
.pg h4{ margin:24px 0 6px; font-family:var(--body); font-weight:500; font-size:13px; letter-spacing:.06em; color:var(--muted); }
.pg h4:first-of-type{ margin-top:20px; }
.pr{ display:flex; align-items:baseline; gap:12px; padding-block:9px; border-bottom:1px dotted var(--line); font-size:14.5px; }
.pr:last-child{ border-bottom:0; }
.pr__n{ flex:1; }
.pr__p{ font-family:var(--sans-en); font-size:14px; color:var(--ink); white-space:nowrap; letter-spacing:.02em; direction:ltr; unicode-bidi:isolate; font-variant-numeric:tabular-nums; }
.pr__p b{ font-weight:500; unicode-bidi:isolate; }
.pr__p b::after{ content:"\00A0ر.س"; font-family:var(--sans-ar); font-size:10.5px; font-weight:400; color:var(--muted); opacity:.75; }
html[lang="en"] .pr__p b::after{ content:" SAR"; font-family:var(--sans-en); letter-spacing:.08em; }
.pr__p u{ text-decoration:none; color:var(--muted); font-size:11.5px; unicode-bidi:isolate; }
.pg__note{ margin:20px 0 0; padding-top:16px; border-top:1px solid var(--line); font-size:12.5px; color:var(--gold); display:flex; gap:9px; line-height:1.65; }
.pg__note::before{ content:"✓"; flex:none; }
.pnote{ margin-top:clamp(26px,3vw,40px); text-align:center; font-size:13px; color:var(--muted); }

/* ---------- nail gallery ---------- */
/* 8 tiles on 3 columns: one tall tile makes exactly 9 cells = 3 full rows */
.gal{ display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:minmax(0,1fr); grid-auto-flow:dense; gap:clamp(10px,1.2vw,18px); }
.gal button{ display:block; overflow:hidden; background:var(--sand-2); position:relative; padding:0; aspect-ratio:4/5; }
.gal button:nth-child(3){ grid-row:span 2; aspect-ratio:auto; }
.gal img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s cubic-bezier(.2,.7,.3,1); }
.gal button:hover img{ transform:scale(1.06); }
.gal button::after{ content:""; position:absolute; inset:10px; border:1px solid rgba(255,255,255,.5); opacity:0; transition:opacity .4s ease; }
.gal button:hover::after{ opacity:1; }
.gal figcaption,.gal .cap{ position:absolute; inset-inline:0; bottom:0; padding:14px 16px; color:#fff; font-size:12.5px; letter-spacing:.04em; background:linear-gradient(to top,rgba(16,11,8,.7),transparent); text-align:start; opacity:0; transition:opacity .4s ease; }
.gal button:hover .cap{ opacity:1; }

.lb{ position:fixed; inset:0; z-index:200; background:rgba(18,13,9,.94); display:none; align-items:center; justify-content:center; padding:clamp(16px,4vw,56px); }
.lb.on{ display:flex; }
.lb img{ max-width:min(94vw,760px); max-height:88vh; object-fit:contain; box-shadow:var(--shadow-md); }
.lb__x{ position:absolute; top:clamp(12px,2.4vw,28px); inset-inline-end:clamp(12px,2.4vw,28px); width:46px; height:46px; border:1px solid rgba(255,255,255,.3); border-radius:50%; color:#fff; font-size:20px; display:grid; place-items:center; }
.lb__nav{ position:absolute; top:50%; transform:translateY(-50%); width:52px; height:52px; border:1px solid rgba(255,255,255,.28); border-radius:50%; color:#fff; display:grid; place-items:center; font-size:19px; }
.lb__nav--p{ inset-inline-start:clamp(8px,2vw,26px); } .lb__nav--n{ inset-inline-end:clamp(8px,2vw,26px); }
.lb__nav:hover,.lb__x:hover{ background:rgba(255,255,255,.14); }
.lb__cap{ position:absolute; bottom:clamp(14px,3vw,30px); inset-inline:0; text-align:center; color:rgba(255,255,255,.7); font-size:13px; letter-spacing:.05em; }

/* ---------- the space ---------- */
.space__hero{ position:relative; overflow:hidden; margin:0 0 clamp(14px,1.4vw,20px); aspect-ratio:16/7; }
.space__hero img{ width:100%; height:118%; object-fit:cover; will-change:transform; }
.space__hero figcaption{ position:absolute; inset-inline:0; bottom:0; padding:clamp(18px,2.4vw,34px); color:#fff; background:linear-gradient(to top,rgba(16,11,8,.72),transparent); font-family:var(--display); font-size:clamp(18px,2vw,26px); }
.space__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.4vw,20px); }
.space__grid figure{ margin:0; position:relative; overflow:hidden; aspect-ratio:4/3; }
.space__grid img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s cubic-bezier(.2,.7,.3,1); }
.space__grid figure:hover img{ transform:scale(1.05); }
.space__grid figcaption{ position:absolute; inset-inline:0; bottom:0; padding:16px 18px; color:#fff; font-size:13px; letter-spacing:.05em; background:linear-gradient(to top,rgba(16,11,8,.7),transparent); }

/* ---------- steps ---------- */
.steps{ position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(26px,4vw,60px); }
.steps__line{ position:absolute; top:34px; inset-inline:0; height:1px; background:rgba(217,190,146,.3); }
.steps__line i{ position:absolute; inset:0; background:var(--gold-2); transform:scaleX(0); transform-origin:0 50%; display:block; }
html[dir="rtl"] .steps__line i{ transform-origin:100% 50%; }
html:not(.gsap) .steps__line i{ transform:none; }
.step{ position:relative; padding-top:70px; }
.step__n{ position:absolute; top:0; inset-inline-start:0; width:68px; height:68px; border-radius:50%; border:1px solid rgba(217,190,146,.55); background:var(--ink); display:grid; place-items:center; font-family:var(--serif-en); font-size:22px; color:var(--gold-2); font-variant-numeric:tabular-nums; }
.step h3{ margin:14px 0 10px; color:var(--cream); }
.step p{ margin:0; font-size:14px; color:rgba(251,248,243,.66); }
.section--ink h2{ color:var(--cream); }
.section--ink .eyebrow{ color:var(--gold-2); }

/* ---------- visit ---------- */
.visit{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,5vw,74px); align-items:start; }
.info dl{ margin:0; }
.info__row{ display:grid; grid-template-columns:118px 1fr; gap:20px; padding-block:20px; border-bottom:1px solid var(--line); align-items:baseline; }
.info__row:first-child{ border-top:1px solid var(--line); }
.info__row dt{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); font-family:var(--sans-en); }
html[lang="ar"] .info__row dt{ font-family:var(--sans-ar); font-size:13px; letter-spacing:0; text-transform:none; }
.info__row dd{ margin:0; font-size:15px; color:var(--ink); }
.info__row dd small{ display:block; font-size:13px; color:var(--muted); margin-top:3px; }
.info__cta{ display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; }
.bookcard{ background:var(--ink); color:var(--cream); padding:clamp(28px,3.4vw,48px); will-change:transform; }
.bookcard h3{ color:var(--cream); font-size:clamp(22px,2.2vw,30px); }
.bookcard p{ color:rgba(251,248,243,.66); font-size:14px; margin:14px 0 0; }
.bookcard .hrs{ margin-top:28px; border-top:1px solid rgba(251,248,243,.16); }
.bookcard .hrs div{ display:flex; justify-content:space-between; gap:16px; padding-block:13px; border-bottom:1px solid rgba(251,248,243,.1); font-size:14px; }
.bookcard .hrs span:last-child{ color:var(--gold-2); }
.bookcard .btn{ width:100%; margin-top:28px; }
.tbd{ background:rgba(176,141,87,.1); border-bottom:1px dashed var(--gold); padding:1px 5px; border-radius:3px; }

/* ---------- footer / fab ---------- */
.footer{ background:var(--sand); border-top:1px solid var(--line); padding-block:clamp(46px,5vw,68px) 30px; }
.footer__top{ display:flex; justify-content:space-between; align-items:center; gap:28px; flex-wrap:wrap; }
.footer .mark__name{ font-size:26px; }
.social{ display:flex; gap:10px; }
.social a{ width:42px; height:42px; border:1px solid var(--line); border-radius:50%; display:grid; place-items:center; transition:.35s ease; }
.social a:hover{ border-color:var(--gold); background:var(--gold); color:#fff; }
.social svg{ width:17px; height:17px; fill:currentColor; }
.footer__bot{ margin-top:34px; padding-top:22px; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; font-size:12px; color:var(--muted); }
.fab{ position:fixed; z-index:80; inset-block-end:20px; inset-inline-end:20px; width:56px; height:56px; border-radius:50%; background:#25D366; color:#fff; display:grid; place-items:center; box-shadow:0 10px 30px -8px rgba(37,211,102,.6); will-change:transform; }
.fab svg{ width:29px; height:29px; fill:currentColor; }

/* ---------- responsive ---------- */
@media (max-width:1023px){
  .svc__track{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:1000px){
  .gal{ grid-template-columns:repeat(2,1fr); }
  .gal button:nth-child(3){ grid-row:auto; aspect-ratio:4/5; }
  .space__grid{ grid-template-columns:repeat(2,1fr); }
  .visit{ grid-template-columns:1fr; }
  .promise{ grid-template-columns:repeat(2,1fr); }
  .prices{ grid-template-columns:1fr; }
}
@media (max-width:820px){
  .header{ backdrop-filter:none; -webkit-backdrop-filter:none; background:var(--cream); }
  .burger{ display:flex; }
  .nav{ position:fixed; inset:0; z-index:70; background:var(--cream); flex-direction:column; justify-content:center; gap:8px; margin:0; padding:40px; transform:translateY(-100%); transition:transform .5s cubic-bezier(.2,.7,.3,1); }
  body.menu-open .nav{ transform:none; } body.menu-open{ overflow:hidden; }
  .nav a{ font-size:clamp(22px,5vw,30px); font-family:var(--display); padding-block:12px; }
  html[lang="en"] .nav a{ font-family:var(--serif-en); font-size:clamp(22px,5vw,30px); letter-spacing:.04em; text-transform:none; }
  .header__act{ margin-inline-start:auto; } .header .btn--gold{ display:none; }
  .split{ grid-template-columns:1fr; }
  .steps{ grid-template-columns:1fr; gap:32px; } .steps__line{ display:none; }
  .space__hero{ aspect-ratio:4/3; }
  .scrollcue{ display:none; }
}
@media (max-width:560px){
  .svc__track{ grid-template-columns:1fr; }
  .gal{ grid-template-columns:repeat(2,1fr); }
  .space__grid{ grid-template-columns:1fr; }
  .promise{ grid-template-columns:1fr; }
  .info__row{ grid-template-columns:1fr; gap:4px; }
  .hero__facts{ display:none; }
  .hero__cta .btn{ flex:1 1 100%; }
}

.freya-faq{max-width:850px;margin:auto}.freya-faq details{border-bottom:1px solid var(--line);padding:20px 0}.freya-faq summary{cursor:pointer;font-weight:500;font-size:18px}.freya-faq p{margin:16px 0 0;line-height:1.8;color:var(--muted)}
