/* =============================================================
   AL-ETEMAD · PREMIUM KITCHEN BRAND
   Palette: graphite black · warm ivory · champagne gold · bronze
   ============================================================= */

:root{
  /* Brand identity from the LOGO (2026-07): deep MAROON + GOLD on a warm ivory
     base. Variable NAMES kept for compatibility but hold light-theme values:
       --black* = light SURFACES · --ivory* = dark TEXT
       --gold*  = gold ACCENT     · --cta*/--maroon* = maroon (primary + buttons).
     Token-driven — change brand colours here only. */
  --black:#ffffff;        /* Surface — cards / inputs */
  --black-2:#fbf6ee;      /* Surface tint — warm */
  --ink:#f0e6d6;          /* Warm panel tint */
  --graphite:#9c8f7e;     /* low-emphasis text / hairlines */
  --grey:#6f6357;         /* muted text (WCAG-AA on the base) */
  --line:#e7dccb;         /* Border (warm hairline) */
  --ivory:#241a15;        /* Text — warm near-black (brand brown) */
  --ivory-2:#000000;      /* strongest text */
  /* GOLD accent (from the logo) — decorative + hover */
  --gold:#bd8a24;
  --gold-soft:#e6bd5c;
  --gold-deep:#8a621a;
  --bronze:#8a621a;
  --accent:var(--gold);
  /* MAROON — primary brand + CTAs (from the logo); high contrast on light */
  --cta:#7e1f35;
  --cta-soft:#9a2c43;
  --cta-ink:#ffffff;
  --maroon:#7e1f35;
  --maroon-deep:#5e1526;

  --bg:#f7f1e8;           /* Base — warm ivory */
  --fg:var(--ivory);

  --maxw:1240px;
  --pad:clamp(20px,5vw,72px);
  --r:18px;

  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Manrope',system-ui,sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}

/* Arabic fonts */
html[lang="ar"]{ --serif:'El Messiri',serif; --sans:'Tajawal',system-ui,sans-serif; }

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } *{ animation:none!important; transition:none!important; } }

body{
  font-family:var(--sans);
  background:var(--bg);
  color:var(--fg);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  letter-spacing:.01em;
  /* Always reserve the scrollbar space. Because body has overflow-x:hidden,
     it is body's scrollbar that the browser shows for the page — so locking
     scroll (body overflow:hidden when a modal opens) no longer removes the
     scrollbar and shifts/"shakes" the page. Zero layout shift on open/close. */
  scrollbar-gutter:stable;
}
body.no-scroll{ overflow:hidden; }

img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; cursor:pointer; background:none; border:none; }
::selection{ background:var(--cta); color:#fff; }

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

/* ---------- Brandmark ---------- */
.brandmark{ width:42px; height:auto; overflow:visible; }
.brandmark path{ fill:none; stroke-width:7; stroke-linecap:round; stroke-linejoin:round; }
.brandmark__roof{ stroke:var(--grey); }
.brandmark__body{ stroke:var(--grey); }
.brandmark__door{ stroke:var(--gold); stroke-width:8; }

/* ---------- Preloader ---------- */
.preloader{
  position:fixed; inset:0; z-index:9999;
  background:var(--bg);
  display:grid; place-items:center;
  transition:opacity .7s var(--ease),visibility .7s;
}
.preloader.is-done{ opacity:0; visibility:hidden; }
.preloader__inner{ display:grid; place-items:center; gap:20px; width:min(340px,74vw); text-align:center; }
.preloader__logo{ width:clamp(120px,26vw,150px); height:auto; animation:preBreath 2.6s var(--ease-out) infinite; }
@keyframes preBreath{ 0%,100%{ transform:scale(1); opacity:.94; } 50%{ transform:scale(1.03); opacity:1; } }
.preloader__name{ font-family:var(--serif); color:var(--maroon); font-size:clamp(19px,4.8vw,26px); font-weight:700; letter-spacing:.01em; line-height:1.2; margin-bottom:6px; animation:preNameIn .9s var(--ease-out) both; }
@keyframes preNameIn{ from{ opacity:0; transform:translateY(9px); } to{ opacity:1; transform:none; } }
.preloader__bar{ width:100%; height:3px; background:var(--line); overflow:hidden; border-radius:3px; }
.preloader__bar span{ display:block; height:100%; width:0; background:linear-gradient(90deg,var(--maroon),var(--gold)); transition:width .2s linear; }
.preloader__count{ font-family:var(--serif); font-size:14px; color:var(--grey); letter-spacing:.3em; }

/* ---------- Custom cursor ---------- */
.cursor{ position:fixed; top:0; left:0; z-index:9998; pointer-events:none; mix-blend-mode:difference; }
.cursor__dot{ position:absolute; width:6px; height:6px; border-radius:50%; background:#fff; transform:translate(-50%,-50%); }
.cursor__ring{ position:absolute; width:38px; height:38px; border:1px solid #fff; border-radius:50%; transform:translate(-50%,-50%); transition:width .3s var(--ease),height .3s var(--ease),opacity .3s; }
.cursor.is-hover .cursor__ring{ width:64px; height:64px; }
.cursor.is-label .cursor__ring{ width:84px; height:84px; background:var(--gold); border-color:var(--gold); mix-blend-mode:normal; }
.cursor__label{ position:absolute; transform:translate(-50%,-50%); color:#fff; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; opacity:0; transition:opacity .25s; }
.cursor.is-label .cursor__label{ opacity:1; color:var(--black); }
@media (hover:none),(pointer:coarse){ .cursor{ display:none; } }

/* ---------- Scroll progress ---------- */
.scroll-progress{ position:fixed; top:0; left:0; height:3px; width:0; z-index:9000; background:linear-gradient(90deg,var(--bronze),var(--gold-soft)); }

/* ---------- Header ---------- */
.header{
  position:fixed; top:0; inset-inline:0; z-index:1000;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px var(--pad);
  transition:padding .4s var(--ease),background .4s var(--ease),border-color .4s;
  border-bottom:1px solid transparent;
}
.header.is-stuck{ padding:12px var(--pad); background:rgba(248,245,239,.85); backdrop-filter:blur(16px); border-bottom-color:var(--line); box-shadow:0 6px 24px rgba(35,33,28,.05); }
.logo{ display:flex; align-items:center; gap:clamp(9px,1.5vw,14px); min-width:0; }
/* Transparent brand logo (PNG). Height-based sizing keeps it sharp and never
   stretched (intrinsic 1242×1152 downscaled = crisp on Retina). Scales down
   gracefully on small screens. */
.logo__mark{ height:clamp(42px,6.6vw,60px); width:auto; object-fit:contain; flex:none; }
.logo__word{ font-family:var(--serif); font-size:clamp(15px,4.5vw,25px); font-weight:700; letter-spacing:.01em; line-height:1.12; white-space:nowrap; color:var(--maroon); }
html[lang="en"] .logo__word{ font-weight:700; }

.nav{ display:flex; gap:6px; }
.nav__link{ position:relative; padding:10px 14px; font-size:14px; font-weight:500; color:var(--ivory); opacity:.78; transition:opacity .3s; }
.nav__link::after{ content:""; position:absolute; bottom:4px; inset-inline:14px; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:inline-start; transition:transform .4s var(--ease); }
.nav__link:hover,.nav__link.is-active{ opacity:1; }
.nav__link:hover::after,.nav__link.is-active::after{ transform:scaleX(1); }

.header__actions{ display:flex; align-items:center; gap:14px; }
.lang-toggle{ display:flex; align-items:center; gap:8px; padding:8px 12px; border:1px solid var(--line); border-radius:40px; font-size:13px; font-weight:600; transition:border-color .3s; }
.lang-toggle:hover{ border-color:var(--grey); }
.lang-toggle__opt{ opacity:.45; transition:opacity .3s,color .3s; }
.lang-toggle__opt.is-active{ opacity:1; color:var(--gold); }
.lang-toggle__sep{ width:1px; height:12px; background:var(--line); }

.burger{ display:none; width:30px; height:22px; position:relative; }
.burger span{ position:absolute; inset-inline:0; height:2px; background:var(--ivory); transition:transform .4s var(--ease),opacity .3s; }
.burger span:nth-child(1){ top:0; } .burger span:nth-child(2){ top:10px; } .burger span:nth-child(3){ top:20px; }
.burger.is-open span:nth-child(1){ top:10px; transform:rotate(45deg); }
.burger.is-open span:nth-child(2){ opacity:0; }
.burger.is-open span:nth-child(3){ top:10px; transform:rotate(-45deg); }

/* ---------- Hero ---------- */
.hero{ position:relative; min-height:100svh; display:grid; align-items:center; overflow:hidden; padding-top:120px; }
.hero__hex{ position:absolute; inset:0; opacity:.5;
  background-image:
    radial-gradient(circle at 18% 30%,rgba(189,138,36,.14),transparent 42%),
    radial-gradient(circle at 82% 70%,rgba(231,212,166,.08),transparent 45%);
}
.hero__hex::before{ content:""; position:absolute; inset:-10%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='100' viewBox='0 0 56 100'%3E%3Cpath d='M28 0L56 16v34L28 66 0 50V16z M28 66l28 16v34L28 116 0 100V82z' fill='none' stroke='%2326262b' stroke-width='1'/%3E%3C/svg%3E");
  opacity:.6; animation:hexDrift 40s linear infinite;
}
@keyframes hexDrift{ to{ transform:translateY(-100px); } }
.hero__glow{ position:absolute; bottom:-30%; left:50%; transform:translateX(-50%); width:120vw; height:60vh; background:radial-gradient(ellipse at center,rgba(189,138,36,.14),transparent 60%); filter:blur(40px); pointer-events:none; }

.hero__inner{ position:relative; z-index:2; max-width:1080px; padding-inline:var(--pad); }
.hero__eyebrow{ display:inline-block; font-size:13px; font-weight:700; letter-spacing:.28em; text-transform:uppercase; color:var(--gold); margin-bottom:28px; }
.hero__title{ font-family:var(--serif); font-weight:600; line-height:1.14; font-size:clamp(46px,8.4vw,104px); letter-spacing:-.01em; }
/* Keep each hero title line unbroken on desktop so «أثاثًا» never wraps alone. */
@media (min-width:769px){ .hero__title .line{ white-space:nowrap; } }
/* The reveal masks each line's slide-in. Using overflow:clip WITH an
   overflow-clip-margin lets Arabic diacritics (the tanwin ً on «أثاثًا») extend
   above the box and stay fully visible, while the slide-in from translateY(110%)
   is still masked. em-based margin → holds at every zoom level & font size. */
.line{ display:block; overflow:clip; overflow-clip-margin:0.55em; }
.line__in{ display:block; transform:translateY(110%); transition:transform 1s var(--ease-out); }
.is-loaded .line__in{ transform:translateY(0); }
.is-loaded .hero__title .line:nth-child(2) .line__in{ transition-delay:.12s; }
/* stagger hero reveal so sub-paragraph animates first, CTA second — prevents text overlap */
.hero__inner > .reveal:nth-child(3){ transition-delay:.22s; }
.hero__inner > .reveal:nth-child(4){ transition-delay:.5s; }
.line__in--accent{
  background:linear-gradient(100deg,var(--gold-soft) 0%,var(--gold) 48%,var(--gold-deep) 100%);
  -webkit-background-clip:text; background-clip:text;
  color:transparent; -webkit-text-fill-color:transparent;
}
.hero__sub{ max-width:560px; margin:28px 0 44px; font-size:clamp(15px,1.8vw,18px); color:var(--grey); line-height:1.65; }
.hero__cta{ display:flex; gap:16px; flex-wrap:wrap; }

.hero__scroll{ position:absolute; bottom:30px; inset-inline-start:var(--pad); display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--grey); z-index:2; }
.hero__scroll-line{ width:60px; height:1px; background:var(--line); position:relative; overflow:hidden; }
.hero__scroll-line i{ position:absolute; inset-inline-start:0; top:0; height:100%; width:30%; background:var(--gold); animation:scrollLine 2s var(--ease) infinite; }
@keyframes scrollLine{ 0%{ transform:translateX(-100%);} 100%{ transform:translateX(330%);} }
html[dir="rtl"] .hero__scroll-line i{ animation-direction:reverse; }

/* ---------- Buttons ---------- */
.btn{ position:relative; display:inline-flex; align-items:center; gap:10px; padding:16px 30px; border-radius:46px; font-size:15px; font-weight:700; letter-spacing:.01em; overflow:hidden; transition:transform .3s var(--ease),color .35s; }
.btn:active{ transform:scale(.97); }
.btn__arrow{ transition:transform .35s var(--ease); }
html[dir="rtl"] .btn__arrow{ transform:scaleX(-1); }
.btn:hover .btn__arrow{ transform:translateX(4px); }
html[dir="rtl"] .btn:hover .btn__arrow{ transform:scaleX(-1) translateX(4px); }
.btn--solid{ background:var(--cta); color:var(--cta-ink); }
.btn--solid::before{ content:""; position:absolute; inset:0; background:linear-gradient(120deg,var(--cta-soft),var(--cta)); transform:translateY(101%); transition:transform .5s var(--ease); z-index:-1; }
.btn--solid:hover::before{ transform:translateY(0); }
.btn--ghost{ border:1px solid var(--gold); color:var(--ivory); }
.btn--ghost:hover{ border-color:var(--cta); color:var(--cta); }

/* ---------- Marquee ---------- */
.marquee{ border-block:1px solid var(--line); padding:18px 0; overflow:hidden; background:var(--black-2); }
.marquee__track{ display:inline-flex; gap:30px; align-items:center; white-space:nowrap; animation:marquee 30s linear infinite; font-family:var(--serif); font-size:clamp(22px,3vw,34px); }
.marquee__track span{ color:var(--ivory); }
.marquee__track b{ color:var(--gold); }
@keyframes marquee{ to{ transform:translateX(-50%); } }
html[dir="rtl"] .marquee__track{ animation-direction:reverse; }

/* ---------- Sections ---------- */
.section{ padding:clamp(80px,12vw,160px) 0; position:relative; }
.section__head{ max-width:820px; margin-bottom:64px; }
.kicker{ display:inline-flex; align-items:center; gap:12px; font-size:13px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin-bottom:22px; }
.kicker i{ width:34px; height:1px; background:var(--gold); display:inline-block; }
.section__title{ font-family:var(--serif); font-weight:600; line-height:1.14; font-size:clamp(34px,6vw,68px); letter-spacing:-.01em; }
.section__desc{ margin-top:22px; font-size:clamp(16px,2vw,19px); color:var(--grey); max-width:620px; }

/* ---------- Reveal ---------- */
.reveal{ opacity:0; transform:translateY(34px); transition:opacity .9s var(--ease-out),transform .9s var(--ease-out); }
.reveal.is-in{ opacity:1; transform:none; }

/* ---------- About ---------- */
.about__grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(40px,6vw,90px); align-items:start; }
.about__lead p{ font-size:clamp(16px,1.7vw,18px); color:var(--grey); margin-bottom:22px; }
.about__lead p:first-child{ font-family:var(--serif); font-size:clamp(20px,2.4vw,26px); line-height:1.5; color:var(--ivory); }
.about__values{ display:grid; gap:14px; }
.value{ padding:26px 28px; border:1px solid var(--line); border-radius:var(--r); transition:transform .4s var(--ease),border-color .4s,background .4s; }
.value:hover{ transform:translateY(-4px); border-color:var(--gold); background:linear-gradient(180deg,rgba(189,138,36,.06),transparent); }
.value__num{ font-family:var(--serif); font-size:14px; color:var(--gold); letter-spacing:.2em; }
.value h3{ font-family:var(--serif); font-size:24px; margin:8px 0 6px; }
.value p{ font-size:14.5px; color:var(--grey); }

/* ---------- Stats ---------- */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:30px; margin-top:90px; padding-top:60px; border-top:1px solid var(--line); }
.stat{ text-align:center; }
.stat__num{ display:block; font-family:var(--serif); font-weight:600; font-size:clamp(40px,6vw,68px); line-height:1; background:linear-gradient(180deg,var(--ivory),var(--gold)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.stat__label{ display:block; margin-top:12px; font-size:13px; letter-spacing:.06em; color:var(--grey); text-transform:uppercase; }

/* ---------- Production Power ---------- */
/* top fade creates a smooth visual bridge from the gallery above */
.power{ background:radial-gradient(circle at 50% 0%,var(--ink),var(--bg) 58%); overflow:hidden; }
.power::before{ content:""; display:block; position:absolute; top:0; inset-inline:0; height:100px; pointer-events:none;
  background:linear-gradient(to bottom, var(--black), transparent); z-index:0; }
.power__bg{ position:absolute; inset:0; pointer-events:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Cpath d='M0 39.5H40 M39.5 0V40' stroke='%2326262b' stroke-width='1'/%3E%3C/svg%3E"); opacity:.25; mask-image:radial-gradient(circle at 50% 30%,#000,transparent 70%); }
.power__headline{ text-align:center; max-width:880px; margin-inline:auto; position:relative; }
.power__q{ font-family:var(--serif); font-style:italic; font-size:clamp(26px,4vw,46px); color:var(--grey); }
.power__a{ font-family:var(--serif); font-weight:700; font-size:clamp(44px,9vw,110px); line-height:1; letter-spacing:-.02em; }
.power__a .line__in{ background:linear-gradient(120deg,var(--ivory) 30%,var(--gold)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.power__lead{ margin:30px auto 0; max-width:560px; font-size:clamp(16px,2vw,19px); color:var(--grey); }
.power__lead strong{ color:var(--gold); }

.capacity{ display:flex; align-items:center; justify-content:center; gap:26px; margin:70px 0; }
.capacity__big{ font-family:var(--serif); font-weight:700; font-size:clamp(90px,22vw,260px); line-height:.8; color:transparent; -webkit-text-stroke:1.5px var(--gold); }
.capacity__txt{ display:grid; gap:6px; }
.capacity__txt span{ font-size:clamp(18px,2.4vw,26px); font-weight:700; color:var(--ivory); }
.capacity__txt small{ color:var(--grey); font-size:14px; }

.machines{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.machine{ border:1px solid var(--line); border-radius:var(--r); overflow:hidden; background:var(--black-2); transition:transform .5s var(--ease),border-color .5s; }
.machine:hover{ transform:translateY(-6px); border-color:var(--gold); }
.machine__media{ aspect-ratio:4/3; position:relative; overflow:hidden; background:var(--ink); }
.machine__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.machine:hover .machine__media img{ transform:scale(1.04); }
.machine__media img{ transition:transform .6s var(--ease); }
.machine__media::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,transparent 58%,rgba(36,26,21,.32)); }
.machine__media--press{ background:linear-gradient(135deg,#2b3a4a,#0e1620); }
.machine__media--cnc{ background:linear-gradient(135deg,#3a2b2b,#160e0e); }
.machine__media--lab{ background:linear-gradient(135deg,#2b3a32,#0e1611); }
.machine__media::before{ content:""; position:absolute; inset:0; opacity:.4;
  background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.05) 0 2px,transparent 2px 14px); }
.machine__body{ padding:26px 26px 30px; }
.machine__tag{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); }
.machine h3{ font-family:var(--serif); font-size:28px; margin:8px 0 12px; }
.machine p{ font-size:14.5px; color:var(--grey); }

/* ---------- Process ---------- */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; list-style:none; counter-reset:s; }
.step{ position:relative; padding:34px 26px; border-radius:var(--r); border:1px solid var(--line); transition:transform .4s var(--ease),background .4s; }
.step:hover{ transform:translateY(-5px); background:linear-gradient(180deg,rgba(189,138,36,.06),transparent); }
.step__no{ font-family:var(--serif); font-size:46px; color:var(--graphite); }
.step h3{ font-family:var(--serif); font-size:22px; margin:10px 0 8px; }
.step p{ font-size:14px; color:var(--grey); }

/* ---------- Our Work · two boxes ---------- */
.work__split{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.work-box{ position:relative; min-height:clamp(320px,42vw,440px); border-radius:24px; overflow:hidden;
  text-align:start; border:1px solid var(--line); display:block; isolation:isolate;
  transition:transform .55s var(--ease),border-color .55s,box-shadow .55s; }
.work-box:hover{ transform:translateY(-8px); border-color:var(--gold); box-shadow:0 34px 70px rgba(0,0,0,.55); }
.work-box__bg{ position:absolute; inset:0; z-index:-2; background:#1a1a1e center/cover no-repeat;
  transition:transform 1.1s var(--ease); }
.work-box:hover .work-box__bg{ transform:scale(1.07); }
.work-box__veil{ position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg,rgba(10,10,12,.25) 0%,rgba(10,10,12,.55) 45%,rgba(10,10,12,.92) 100%); }
.work-box__inner{ position:absolute; inset:0; padding:clamp(26px,3.4vw,44px); display:flex; flex-direction:column; justify-content:flex-end; gap:6px; }
.work-box__icon{ width:54px; height:54px; border-radius:14px; display:grid; place-items:center; margin-bottom:auto;
  background:rgba(189,138,36,.16); border:1px solid rgba(189,138,36,.4); backdrop-filter:blur(6px); }
.work-box__icon svg{ width:28px; height:28px; fill:var(--gold); }
.work-box__count{ font-family:var(--serif); font-size:clamp(40px,5vw,64px); line-height:1; color:var(--gold); font-weight:600; }
.work-box__count::after{ content:""; }
.work-box__title{ font-family:var(--serif); font-size:clamp(26px,3vw,38px); font-weight:600; line-height:1.1; }
.work-box__sub{ font-size:15px; color:var(--grey); }
.work-box__cta{ display:inline-flex; align-items:center; gap:8px; margin-top:14px; font-weight:700; font-size:14px;
  letter-spacing:.04em; color:var(--gold); transition:gap .35s var(--ease); }
.work-box:hover .work-box__cta{ gap:14px; }
.work-box__cta .btn__arrow{ transition:transform .35s var(--ease); }
.work-box:hover .work-box__cta .btn__arrow{ transform:translateX(4px); }
html[dir="rtl"] .work-box:hover .work-box__cta .btn__arrow{ transform:translateX(-4px); }
.play-btn--corner{ position:absolute; inset:auto; top:clamp(22px,3vw,38px); inset-inline-end:clamp(22px,3vw,38px); z-index:1; display:block; width:auto; height:auto; }
.play-btn--corner i{ width:64px; height:64px; }
.work-box--videos:hover .play-btn--corner i{ transform:scale(1.1); background:var(--gold); }

/* gallery grid shown inside the modal */
.wgrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:14px; padding:clamp(20px,3vw,32px); }
.wgrid__item{ position:relative; aspect-ratio:4/5; border-radius:14px; overflow:hidden; cursor:pointer; background:#1a1a1e;
  transition:transform .45s var(--ease),box-shadow .45s; }
.wgrid__item:hover{ transform:translateY(-5px); box-shadow:0 20px 40px rgba(0,0,0,.5); }
.wgrid__media{ position:absolute; inset:0; background:#222 center/cover no-repeat; transition:transform .8s var(--ease); }
.wgrid__item:hover .wgrid__media{ transform:scale(1.08); }
.wgrid__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,rgba(8,8,10,.9)); }
.wgrid__play{ position:absolute; inset:0; display:grid; place-items:center; z-index:2; }
.wgrid__play i{ width:54px; height:54px; border-radius:50%; background:rgba(255,255,255,.14); backdrop-filter:blur(6px); border:1px solid rgba(255,255,255,.35); display:grid; place-items:center; transition:transform .4s var(--ease),background .4s; }
.wgrid__play i::after{ content:""; border-style:solid; border-width:9px 0 9px 15px; border-color:transparent transparent transparent #fff; margin-inline-start:3px; }
html[dir="rtl"] .wgrid__play i::after{ transform:scaleX(-1); margin-inline-start:0; margin-inline-end:3px; }
.wgrid__item:hover .wgrid__play i{ transform:scale(1.12); background:var(--gold); }
.wgrid__cap{ position:absolute; inset-inline:0; bottom:0; z-index:3; padding:14px; }
.wgrid__cap b{ display:block; font-family:var(--serif); font-size:16px; font-weight:600; }
.wgrid__cap span{ display:block; font-size:11px; color:var(--gold); letter-spacing:.1em; text-transform:uppercase; margin-bottom:2px; }
.wgrid__empty{ padding:60px 30px; text-align:center; color:var(--grey); }
.modal__title{ font-family:var(--serif); font-size:clamp(24px,3vw,32px); padding:clamp(22px,3vw,30px) clamp(20px,3vw,32px) 0; }

/* ---------- (legacy gallery — kept for modal item views) ---------- */
.gallery{ display:grid; grid-template-columns:repeat(6,1fr); grid-auto-rows:220px; gap:20px; }
.gcard{ position:relative; grid-column:span 2; border-radius:var(--r); overflow:hidden; cursor:pointer; }
.gcard--lg{ grid-column:span 3; grid-row:span 2; }
.gcard--wide{ grid-column:span 4; }
.gcard--video{ grid-column:span 3; }
.gcard__media{ position:absolute; inset:0; background:#222; background-size:100% 100%; background-position:center; transition:transform 1s var(--ease); }
.gcard__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 35%,rgba(10,10,12,.9)); }
.gcard__media::before{ content:""; position:absolute; inset:0; opacity:.5;
  background-image:repeating-linear-gradient(115deg,rgba(255,255,255,.05) 0 1px,transparent 1px 9px); mix-blend-mode:overlay; }
.gcard:hover .gcard__media{ transform:scale(1.08); }
.gcard figcaption{ position:absolute; inset-inline:0; bottom:0; padding:22px; z-index:2; }
.gcard__cat{ display:block; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); }
.gcard__name{ display:block; font-family:var(--serif); font-size:22px; margin-top:4px; }
.play-btn{ position:absolute; inset:0; display:grid; place-items:center; z-index:2; }
.play-btn i{ width:70px; height:70px; border-radius:50%; background:rgba(255,255,255,.12); backdrop-filter:blur(6px); border:1px solid rgba(255,255,255,.35); display:grid; place-items:center; transition:transform .4s var(--ease),background .4s; }
.play-btn i::after{ content:""; border-style:solid; border-width:11px 0 11px 18px; border-color:transparent transparent transparent #fff; margin-inline-start:4px; }
html[dir="rtl"] .play-btn i::after{ transform:scaleX(-1); margin-inline-start:0; margin-inline-end:4px; }
.gcard--video:hover .play-btn i{ transform:scale(1.12); background:var(--gold); }

/* ---------- Catalog ---------- */
.catalog__tabs{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:26px; }
.cat-tab{ padding:12px 22px; border:1px solid var(--line); border-radius:40px; font-size:14px; font-weight:600; color:var(--grey); transition:all .35s var(--ease); }
.cat-tab:hover{ border-color:var(--grey); }
.cat-tab.is-active{ background:var(--ivory); color:var(--black); border-color:var(--ivory); }
.catalog__bar{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:24px; }
.catalog__count{ font-size:13px; letter-spacing:.06em; color:var(--grey); text-transform:uppercase; }

/* ---------- Catalog search ---------- */
.catalog__search{ position:relative; display:flex; align-items:center; min-width:min(320px,100%); }
.catalog__search-ico{ position:absolute; inset-inline-start:16px; width:18px; height:18px; pointer-events:none;
  fill:none; stroke:var(--grey); stroke-width:2; stroke-linecap:round; }
.catalog__search input{ width:100%; padding:13px 44px; border:1px solid var(--line); border-radius:44px;
  background:var(--black-2); color:var(--ivory); font:inherit; font-size:15px;
  transition:border-color .3s,box-shadow .3s,background .3s; -webkit-appearance:none; appearance:none; }
.catalog__search input::-webkit-search-cancel-button{ -webkit-appearance:none; }
.catalog__search input::placeholder{ color:var(--graphite); }
.catalog__search input:focus{ outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(189,138,36,.16); background:var(--black); }
.catalog__search-clear{ position:absolute; inset-inline-end:14px; width:26px; height:26px; border-radius:50%;
  display:grid; place-items:center; color:var(--grey); font-size:13px; opacity:0; pointer-events:none;
  transition:opacity .25s,background .25s,color .25s; }
.catalog__search-clear.is-visible{ opacity:1; pointer-events:auto; }
.catalog__search-clear:hover{ background:rgba(255,255,255,.1); color:var(--ivory); }
.catalog__empty{ grid-column:1/-1; text-align:center; color:var(--grey); padding:60px 20px; font-size:16px; }

.catalog__grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:20px; }
/* Catalog thumbnail card: 3:4 portrait — matches Picture 1 (800×1067px) */
.door{ position:relative; border-radius:16px; overflow:hidden; cursor:pointer; aspect-ratio:3/4; background:#222;
  transition:transform .5s var(--ease),box-shadow .5s; transform-origin:center;
  box-shadow:0 4px 20px rgba(0,0,0,.35); }
.door.is-hidden{ display:none; }
.door:hover{ transform:translateY(-8px) scale(1.02); box-shadow:0 28px 56px rgba(0,0,0,.6); }
.door__face{ position:absolute; inset:0; background-size:cover; background-position:center; background-repeat:no-repeat; }
/* Texture overlays only apply to CSS-gradient faces, not real photos */
.door__face:not(.door__face--photo)::before{ content:""; position:absolute; inset:0; opacity:.4;
  background-image:repeating-linear-gradient(180deg,rgba(0,0,0,.15) 0 1px,transparent 1px 8px); }
.door__face:not(.door__face--photo)::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,.28) 0%,transparent 35%,rgba(0,0,0,.28) 100%); }
/* Real photo card: full design shown (no crop) via media-fill, with a readability vignette */
.door__face--photo{ background:#0c0c0e; }
.door__face--photo::after{ content:""; position:absolute; inset:0; z-index:2; pointer-events:none;
  background:linear-gradient(180deg,transparent 55%,rgba(10,10,12,.55)); }

/* ---------- Premium media fill (blurred cover backdrop + sharp contain image) ---------- */
.media-fill{ position:absolute; inset:0; overflow:hidden; }
.media-fill__bg{ position:absolute; inset:0; background-size:cover; background-position:center;
  filter:blur(26px) brightness(.55) saturate(1.1); transform:scale(1.18); }
.media-fill__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; object-position:center;
  image-rendering:auto; }
.door__label{ position:absolute; inset-inline:0; bottom:0; z-index:3; padding:16px 14px 14px;
  display:flex; justify-content:space-between; align-items:flex-end;
  background:linear-gradient(180deg,transparent,rgba(8,8,10,.88) 70%); }
.door__code{ font-family:var(--serif); font-weight:600; font-size:19px; letter-spacing:.04em; line-height:1; }
.door__name{ font-size:11px; color:var(--grey); margin-top:3px; letter-spacing:.03em; }
.door__view{ position:absolute; top:14px; inset-inline-end:14px; z-index:3; width:34px; height:34px; border-radius:50%;
  background:rgba(189,138,36,.22); backdrop-filter:blur(6px); border:1px solid rgba(189,138,36,.4);
  display:grid; place-items:center; font-size:15px; opacity:0; transform:scale(.65); transition:all .35s var(--ease); }
.door:hover .door__view{ opacity:1; transform:scale(1); }

/* door style profiles (drawn with inset shadows) */
.door__panel{ position:absolute; z-index:2; }
.dp-shaker{ inset:14%; border-radius:4px; box-shadow:inset 0 0 0 2px rgba(0,0,0,.25), inset 0 0 0 14px transparent, inset 0 0 0 16px rgba(255,255,255,.08); }
.dp-raised{ inset:13%; border-radius:8px; box-shadow:inset 0 2px 6px rgba(255,255,255,.18), inset 0 -3px 8px rgba(0,0,0,.35), 0 0 0 2px rgba(0,0,0,.2); background:linear-gradient(135deg,rgba(255,255,255,.12),rgba(0,0,0,.12)); }
.dp-arch{ inset:13% 14% 12%; border-radius:50% 50% 8px 8px / 30% 30% 8px 8px; box-shadow:inset 0 0 0 2px rgba(0,0,0,.25), inset 0 0 0 14px transparent, inset 0 0 0 16px rgba(255,255,255,.08); }
.dp-classic{ inset:11%; border-radius:6px; box-shadow:inset 0 0 0 2px rgba(255,255,255,.12), inset 0 0 0 9px transparent, inset 0 0 0 11px rgba(0,0,0,.22), inset 0 0 0 20px transparent, inset 0 0 0 22px rgba(255,255,255,.08); }
.dp-lines{ inset:18% 16%; background-image:repeating-linear-gradient(90deg,transparent 0 22%,rgba(0,0,0,.22) 22% 23%,rgba(255,255,255,.07) 23% 24%); }
.dp-beaded{ inset:12%; border-radius:6px; box-shadow:inset 0 0 0 2px rgba(0,0,0,.22), inset 0 0 0 6px transparent, inset 0 0 0 7px rgba(255,255,255,.12); }
.dp-slab{ display:none; }
.dp-stone{ inset:0; background-image:radial-gradient(circle at 30% 20%,rgba(255,255,255,.18),transparent 25%),radial-gradient(circle at 70% 60%,rgba(255,255,255,.12),transparent 30%),repeating-linear-gradient(120deg,rgba(255,255,255,.05) 0 2px,transparent 2px 16px); }

/* ---------- Warranty ---------- */
.warranty{ overflow:hidden; }
.warranty__bg{ position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle at 80% 20%,rgba(189,138,36,.1),transparent 50%); }
.warranty__panel{ max-width:760px; margin-inline:auto; border:1px solid var(--line); border-radius:24px; padding:clamp(26px,4vw,48px); background:linear-gradient(180deg,var(--black-2),var(--black)); position:relative; z-index:1; }
.warranty__form{ display:grid; grid-template-columns:1fr auto; gap:16px; align-items:end; }
.field{ display:grid; gap:8px; }
.field__label{ font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:var(--grey); display:flex; align-items:center; justify-content:space-between; }
.field__format{ font-size:11px; letter-spacing:.04em; color:var(--gold); font-weight:700; opacity:.8; }
.field__wrap{ position:relative; }
.field input{
  width:100%; padding:16px 18px; padding-inline-end:46px;
  border:1px solid var(--line); border-radius:12px;
  background:var(--black); color:var(--ivory);
  font-size:17px; font-family:var(--sans); letter-spacing:.1em; text-transform:uppercase;
  transition:border-color .35s,box-shadow .35s,background .35s;
  -webkit-appearance:none; appearance:none;
  position:relative; z-index:2;
}
.field input::placeholder{ color:var(--graphite); letter-spacing:.06em; text-transform:none; }
.field input:focus{
  outline:none; border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(189,138,36,.16), 0 4px 20px rgba(0,0,0,.3);
  background:var(--black-2);
}
.field input.is-invalid{ border-color:#c0783a; box-shadow:0 0 0 3px rgba(192,120,58,.14); }
.field input.is-valid{ border-color:#4a9a6a; box-shadow:0 0 0 3px rgba(74,154,106,.14); }
.field__clear{ position:absolute; inset-inline-end:14px; top:50%; transform:translateY(-50%); z-index:3;
  width:28px; height:28px; border-radius:50%; display:grid; place-items:center;
  color:var(--grey); font-size:14px; line-height:1; opacity:0; pointer-events:none;
  transition:opacity .25s,background .25s,color .25s; background:transparent; border:none; cursor:pointer; font-family:inherit;
}
.field__clear.is-visible{ opacity:1; pointer-events:auto; }
.field__clear:hover{ background:rgba(255,255,255,.1); color:var(--ivory); }
.warranty__hint{ grid-column:1/-1; font-size:13px; color:var(--grey); line-height:1.6; }
.warranty__demos{ display:inline-flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.warranty__demo{ font-family:var(--sans); font-size:12px; padding:5px 12px; border:1px solid var(--line); border-radius:20px; color:var(--gold); letter-spacing:.06em; cursor:pointer; transition:border-color .25s,background .25s; background:transparent; }
.warranty__demo:hover{ border-color:var(--gold); background:rgba(189,138,36,.08); }
.warranty__result{ margin-top:26px; }

/* ===== Apply as a sales representative (التقديم كمندوب) ===== */
.apply{ overflow:hidden; }
.apply__bg{ position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(circle at 15% 18%,rgba(31,94,84,.10),transparent 55%),
             radial-gradient(circle at 85% 82%,rgba(189,138,36,.08),transparent 50%); }
.apply__wrap{ position:relative; z-index:1; max-width:760px; margin-inline:auto; }
.apply__perks{ list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:12px 22px; margin:0 0 26px; padding:0; }
.apply__perks li{ display:flex; align-items:center; gap:8px; font-size:14.5px; color:var(--ivory); }
.apply__perk-ico{ color:var(--gold); font-size:11px; }
.apply__form{ border:1px solid var(--line); border-radius:24px; padding:clamp(24px,3.5vw,40px);
  background:linear-gradient(180deg,var(--black-2),var(--black)); display:grid; gap:18px; }
.apply__form .field__label{ justify-content:flex-start; gap:6px; }
.apply__row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field__req{ color:#c0783a; font-weight:800; }
.apply__drop{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center;
  border:2px dashed var(--line); border-radius:16px; padding:24px 16px; min-height:130px; cursor:pointer;
  transition:border-color .3s,background .3s; position:relative; overflow:hidden; }
.apply__drop:hover, .apply__drop.is-drag{ border-color:var(--gold); background:rgba(189,138,36,.05); }
.apply__drop.has-file{ border-style:solid; border-color:var(--cta); }
.apply__drop-ico{ font-size:26px; color:var(--gold); line-height:1; }
.apply__drop-txt{ font-size:13.5px; color:var(--grey); line-height:1.6; }
.apply__drop-preview{ max-width:100%; max-height:220px; border-radius:12px; object-fit:contain; }
.apply__submit{ justify-self:start; }
.apply__msg{ min-height:20px; margin:0; font-size:14px; line-height:1.65; }
.apply__msg.is-ok{ color:#3f8f63; }
.apply__msg.is-err{ color:#c0783a; }
@media (max-width:620px){
  .apply__row{ grid-template-columns:1fr; }
  .apply__submit{ justify-self:stretch; width:100%; }
}

/* ── Certificate preview (identical render to the downloaded PDF) ── */
@keyframes certIn{ from{ opacity:0; transform:translateY(20px);} to{ opacity:1; transform:none;} }
.cert-stage{ animation:certIn .6s var(--ease-out); }
/* The A4 certificate is rendered at 794×1123 then scaled to fit by JS. */
.cert-viewport{
  position:relative; width:100%; overflow:hidden;
  border-radius:14px; box-shadow:0 24px 60px rgba(0,0,0,.28), 0 0 0 1px rgba(189,138,36,.18);
  /* The frame keeps its full 794px layout box even though transform:scale()
     shrinks it visually. In an RTL ancestor (Arabic UI), the browser anchors
     overflow-clipping to the right edge, cutting off the left side of the
     certificate (the English-label column). Force this wrapper to LTR so
     clipping always anchors to the physical left, matching transform-origin
     below — independent of the page language. */
  direction:ltr;
}
.cert-frame{
  width:794px; transform-origin:top left; will-change:transform;
}
/* Action bar: price eye-toggle + download */
.cert-actions{
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  flex-wrap:wrap; margin-top:20px;
}
.cert-eye{
  display:inline-flex; align-items:center; gap:9px; cursor:pointer;
  padding:11px 20px; border-radius:44px; font-family:inherit; font-size:14px; font-weight:600;
  border:1px solid var(--line); background:rgba(255,255,255,.03); color:var(--ivory);
  transition:border-color .3s var(--ease), background .3s var(--ease), color .3s var(--ease);
}
.cert-eye:hover{ border-color:var(--gold); background:rgba(189,138,36,.1); }
.cert-eye__ic{ flex:none; }
.cert-eye.is-open{ color:var(--gold); border-color:rgba(189,138,36,.5); }
.cert-eye.is-closed{ color:var(--grey); }
.cert-eye__label{ letter-spacing:.02em; }
.cert-actions__main{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }

/* Request Maintenance button (certificate) */
.cert-mnt-btn{
  display:inline-flex; align-items:center; gap:9px; cursor:pointer;
  padding:11px 20px; border-radius:44px; font-family:inherit; font-size:14px; font-weight:600;
  border:1px solid rgba(189,138,36,.5); background:rgba(189,138,36,.08); color:var(--gold);
  transition:border-color .3s var(--ease), background .3s var(--ease), transform .2s var(--ease);
}
.cert-mnt-btn:hover{ border-color:var(--gold); background:rgba(189,138,36,.16); }
.cert-mnt-btn.is-active{ background:var(--cta); color:var(--cta-ink); border-color:var(--gold); }
.cert-mnt-btn:disabled{ opacity:.5; cursor:default; }
.cert-mnt-btn__ic{ flex:none; }

/* Maintenance request form + success */
.mnt-zone{ margin-top:16px; }
.mnt-form{
  border:1px solid var(--line); border-radius:18px; padding:22px;
  background:linear-gradient(180deg,var(--black-2),var(--black)); animation:certIn .4s var(--ease-out);
}
.mnt-form__title{ font-family:var(--serif); font-size:20px; color:var(--ivory); margin:0 0 14px; }
.mnt-form__field{ display:block; }
.mnt-form__field>span{ display:block; font-size:13px; color:var(--gold); margin-bottom:8px; font-weight:600; }
.mnt-form__field textarea{
  width:100%; resize:vertical; min-height:110px; padding:14px 16px; border-radius:12px;
  border:1px solid var(--line); background:rgba(255,255,255,.03); color:var(--ivory);
  font-family:inherit; font-size:15px; line-height:1.6;
}
.mnt-form__field textarea:focus{ outline:none; border-color:var(--gold); }
.mnt-form__msg{ min-height:18px; margin:10px 0 0; font-size:13px; color:var(--grey); }
.mnt-form__msg.is-error{ color:#e88; }
.mnt-form__actions{ display:flex; align-items:center; justify-content:flex-end; gap:12px; margin-top:14px; flex-wrap:wrap; }
.mnt-success{
  display:flex; align-items:flex-start; gap:14px; padding:20px 22px; border-radius:16px;
  border:1px solid rgba(34,180,90,.4); background:rgba(34,180,90,.08); animation:certIn .45s var(--ease-out);
}
.mnt-success__ic{
  flex:none; width:34px; height:34px; border-radius:50%; display:grid; place-items:center;
  background:#22b45a; color:#fff; font-weight:800; font-size:18px;
}
.mnt-success strong{ display:block; color:var(--ivory); font-size:17px; margin-bottom:4px; }
.mnt-success p{ margin:0; color:var(--grey); font-size:14px; line-height:1.6; }

/* warn message */
.warn-msg{ display:flex; align-items:center; gap:12px; padding:20px 24px; border-radius:14px; border:1px solid var(--gold-deep); background:rgba(189,138,36,.1); color:var(--gold-soft); font-weight:500; animation:certIn .5s var(--ease-out); }

/* ---------- Testimonials ---------- */
.quotes{ background:var(--black-2); }
.quotes__track{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.quote{ display:flex; flex-direction:column; padding:34px; border:1px solid var(--line); border-radius:var(--r); }
.quote p{ flex:1; font-family:var(--serif); font-size:22px; line-height:1.5; }
.quote__stars{ display:flex; gap:3px; margin-bottom:16px; font-size:16px; color:rgba(255,255,255,.18); }
.quote__star.is-on{ color:var(--gold); }
.quote__by{ display:flex; align-items:center; gap:12px; margin-top:18px; }
.quote__avatar{ width:46px; height:46px; border-radius:50%; object-fit:cover; border:1px solid var(--line); flex:none; }
.quote cite{ font-style:normal; font-size:14px; color:var(--gold); }

/* ---------- Contact ---------- */
.contact__inner{ text-align:center; max-width:760px; margin-inline:auto; }
.contact__title{ font-family:var(--serif); font-size:clamp(34px,6vw,72px); line-height:1.14; }
.contact__sub{ margin:18px 0 34px; color:var(--grey); font-size:clamp(16px,2vw,19px); }
.contact__actions{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.contact__meta{ margin-top:30px; display:grid; gap:6px; font-size:13px; color:var(--grey); }
.contact__placeholder{ color:var(--graphite); }

/* ---------- Location / Waze ---------- */
.location-card{
  display:flex; align-items:center; gap:18px; text-align:start;
  max-width:640px; margin:38px auto 0; padding:18px 20px;
  border:1px solid var(--line); border-radius:20px;
  background:linear-gradient(180deg,var(--black-2),var(--black));
  transition:transform .45s var(--ease),border-color .45s,box-shadow .45s;
}
.location-card:hover{ transform:translateY(-4px); border-color:var(--gold); box-shadow:0 22px 50px rgba(0,0,0,.45); }
.location-card__pin{ flex:none; width:50px; height:50px; border-radius:50%; display:grid; place-items:center;
  background:radial-gradient(circle at 50% 35%,rgba(189,138,36,.22),rgba(189,138,36,.08)); border:1px solid rgba(189,138,36,.4); }
.location-card__pin svg{ width:24px; height:24px; fill:var(--gold); }
.location-card__text{ display:grid; gap:5px; flex:1; min-width:0; }
.location-card__label{ font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); }
.location-card__text strong{ font-family:var(--serif); font-size:clamp(17px,2vw,21px); font-weight:600; color:var(--ivory); line-height:1.3; }
.location-card__waze{ flex:none; display:inline-flex; align-items:center; gap:9px; padding:12px 20px; border-radius:44px;
  background:var(--cta); color:var(--cta-ink); font-weight:700; font-size:14px; white-space:nowrap; transition:background .35s var(--ease),transform .35s var(--ease); }
.location-card__waze-ico{ width:17px; height:17px; fill:currentColor; transition:transform .4s var(--ease); }
.location-card:hover .location-card__waze{ background:var(--gold-soft); }
.location-card:hover .location-card__waze-ico{ transform:translateX(3px); }
html[dir="rtl"] .location-card:hover .location-card__waze-ico{ transform:translateX(-3px); }

.footer__waze{ display:inline-flex; align-items:center; gap:7px; color:var(--gold)!important; }
.footer__waze::before{ content:"📍"; font-size:13px; }

@media (max-width:600px){
  .location-card{ flex-direction:column; align-items:stretch; text-align:center; padding:24px 20px; }
  .location-card__pin{ margin-inline:auto; }
  .location-card__text{ justify-items:center; }
  .location-card__waze{ justify-content:center; }
}

/* ---------- Footer ---------- */
.footer{ border-top:1px solid var(--line); padding:60px 0 40px; }
.footer__grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; align-items:start; }
.footer__brand{ display:grid; gap:10px; }
.footer__brand .brandmark{ width:46px; }
.footer__brand p{ font-size:13px; color:var(--grey); max-width:280px; }
.footer__nav{ display:grid; gap:12px; }
.footer__nav a{ color:var(--grey); font-size:15px; transition:color .3s; }
.footer__nav a:hover{ color:var(--gold); }
.footer__copy{ display:grid; gap:8px; font-size:13px; color:var(--grey); }
.footer__admin{ color:var(--graphite); font-size:12px; letter-spacing:.06em; transition:color .3s; width:max-content; }
.footer__admin:hover{ color:var(--gold); }

/* ---------- Modal ---------- */
.modal{ position:fixed; inset:0; z-index:5000; display:grid; place-items:center; padding:var(--pad); opacity:0; visibility:hidden; transition:opacity .4s,visibility .4s; }
.modal.is-open{ opacity:1; visibility:visible; }
.modal__overlay{ position:absolute; inset:0; background:rgba(6,6,8,.82); backdrop-filter:blur(8px); }
.modal__box{ position:relative; z-index:2; width:min(880px,100%); max-height:88vh; overflow-y:auto; overflow-x:hidden; scrollbar-gutter:stable; overscroll-behavior:contain; background:var(--black-2); border:1px solid var(--line); border-radius:24px; transform:scale(.94) translateY(14px); transition:transform .5s var(--ease-out); }
.modal.is-open .modal__box{ transform:none; }
.modal__close{ position:absolute; top:16px; inset-inline-end:16px; z-index:5; width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.08); display:grid; place-items:center; font-size:16px; transition:background .3s,transform .3s; }
.modal__close:hover{ background:var(--cta); color:var(--cta-ink); transform:rotate(90deg); }

.mview{ display:grid; grid-template-columns:1.1fr 1fr; }
/* Catalog detail modal image: 2:3 portrait — matches Picture 2 (800×1200px) */
.mview__media{ position:relative; aspect-ratio:2/3; min-height:260px; max-height:78vh; overflow:hidden; background:#0c0c0e; }
.mview__face{ position:absolute; inset:0; }
/* Photo detail: full design always visible (contain) — never cropped */
.mview--photo{ grid-template-columns:1fr 1fr; }
.mview--photo .mview__media{ aspect-ratio:auto; align-self:stretch; min-height:clamp(360px,58vh,620px); }
.mview__body{ padding:clamp(26px,4vw,46px); align-self:center; }
.mview__eyebrow{ font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); margin-bottom:8px; }
.mview__desc{ color:var(--grey); font-size:15px; line-height:1.7; margin:6px 0 20px; }
.mview__code{ font-family:var(--serif); font-size:clamp(40px,6vw,72px); line-height:1; color:var(--gold); }
.mview__name{ font-family:var(--serif); font-size:26px; margin:6px 0 24px; }
.mspec{ display:flex; justify-content:space-between; gap:16px; padding:14px 0; border-top:1px solid var(--line); font-size:15px; }
.mspec span{ color:var(--grey); }
.mspec b{ font-weight:600; }
.mview__swatch{ display:inline-flex; align-items:center; gap:12px; margin-top:24px; }
.mview__swatch i{ width:42px; height:42px; border-radius:10px; outline:1px solid var(--line); }
.mview__cta{ margin-top:28px; }

.mvideo{ padding:0; }
.mvideo__frame{ aspect-ratio:16/9; position:relative; background:linear-gradient(135deg,#1c1c20,#0c0c0e); display:grid; place-items:center; overflow:hidden; }
.mvideo__frame .play-btn i{ width:90px; height:90px; }
.mvideo__frame--embed{ display:block; }
.mvideo__frame--embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:none; }
.mvideo__cap{ padding:24px 30px; }
.mvideo__cap h3{ font-family:var(--serif); font-size:26px; }
.mvideo__cap p{ color:var(--grey); font-size:14px; margin-top:8px; }
.mvideo__ytguide{ font-size:12px!important; border:1px solid var(--line); border-radius:10px; padding:12px 16px; margin-top:12px!important; }
.mvideo__ytguide code{ color:var(--gold); font-family:monospace; }

/* ---------- Mobile menu ---------- */
@media (max-width:1024px){
  .stats{ grid-template-columns:repeat(2,1fr); gap:40px 20px; }
  .machines{ grid-template-columns:1fr; }
  .steps{ grid-template-columns:repeat(2,1fr); }
  .about__grid{ grid-template-columns:1fr; }
  .gallery{ grid-template-columns:repeat(4,1fr); }
  .gcard--lg,.gcard--video,.gcard{ grid-column:span 2; grid-row:auto; }
  .gcard--wide{ grid-column:span 4; }
  .quotes__track{ grid-template-columns:1fr; }
  .footer__grid{ grid-template-columns:1fr; gap:30px; }
  .mview{ grid-template-columns:1fr; }
  /* On a single column, cap the image so the description below is always in view */
  .mview__media{ max-height:46vh; }
  .mview--photo .mview__media{ min-height:auto; max-height:46vh; }
  .mview__body{ align-self:start; }
}
@media (max-width:780px){
  .burger{ display:block; }
  .nav{ position:fixed; inset:0; flex-direction:column; justify-content:center; align-items:center; gap:8px; background:rgba(15,15,17,.97); backdrop-filter:blur(20px); transform:translateY(-100%); transition:transform .6s var(--ease); z-index:999; }
  .nav.is-open{ transform:none; }
  .nav__link{ font-size:26px; font-family:var(--serif); opacity:1; }
  .nav__link::after{ inset-inline:14px; }
  .warranty__form{ grid-template-columns:1fr; }
  .cert-actions{ flex-direction:column; align-items:stretch; }
  .cert-actions__main{ flex-direction:column; align-items:stretch; width:100%; }
  .cert-actions .cert-eye, .cert-actions .btn, .cert-actions .cert-mnt-btn{ justify-content:center; width:100%; }
  .work__split{ grid-template-columns:1fr; gap:18px; }
  .work-box{ min-height:300px; }
  .gallery{ grid-template-columns:1fr 1fr; grid-auto-rows:190px; }
  .gcard,.gcard--lg,.gcard--video,.gcard--wide{ grid-column:span 2; }
  .capacity{ flex-direction:column; gap:10px; }
  .hero__scroll{ display:none; }
  /* Subtle scrim so the transparent header never visually merges with the hero */
  .header{ background:linear-gradient(180deg,rgba(15,15,17,.78) 0%,rgba(15,15,17,.32) 60%,transparent 100%); }

  /* Hero: top-align so the big title never slides under the fixed header */
  .hero{ align-items:start; padding-top:max(118px,calc(76px + env(safe-area-inset-top,0px))); padding-bottom:64px; }
  .hero__inner{ width:100%; }
  .hero__eyebrow{ margin-bottom:18px; letter-spacing:.14em; }
  .hero__title{ font-size:clamp(38px,11.5vw,58px); line-height:1.12; }
  .hero__sub{ margin:22px 0 32px; }
}

/* ---------- Touch / mobile performance: drop the GPU-heavy effects ---------- */
@media (hover:none),(pointer:coarse){
  .hero__hex::before{ animation:none; }                 /* stop the continuous drift repaint */
  .hero__glow{ filter:blur(22px); opacity:.65; }        /* 40px blur is very costly on mobile GPUs */
  .header.is-stuck{ backdrop-filter:none; background:rgba(247,241,232,.96); }
  .nav{ backdrop-filter:none; background:rgba(15,15,17,.98); }
  .modal__overlay{ backdrop-filter:none; background:rgba(6,6,8,.92); }
}
