/* =========================================================
   HAMMER — Built on Precision
   v4 · multi-page · 2026-09
   Clean architectural-minimal system
   ========================================================= */

:root{
  --bg:#F6F4EF;          /* warm paper */
  --bg-alt:#FFFFFF;
  --bg-ink:#141618;      /* near-black sections */
  --ink:#16181A;
  --ink-soft:#5C5E60;
  --ink-faint:#8B8D8F;
  --line:#E4E0D7;
  --line-strong:#CFC9BC;
  --red:#8E1B2E;         /* brand crimson */
  --red-deep:#6E1322;
  --wood:#B07A45;
  --maxw:1280px;
  --gutter:clamp(20px,5vw,72px);
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Manrope",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:80px}
body{
  background:var(--bg);color:var(--ink);
  font-family:var(--sans);font-weight:400;
  line-height:1.6;font-size:17px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
::selection{background:var(--red);color:#fff}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Cross-page view transitions (progressive enhancement) */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .28s var(--ease) both}
::view-transition-new(root){animation:vt-in .42s var(--ease-out) both}
@keyframes vt-out{to{opacity:0;transform:translateY(-8px)}}
@keyframes vt-in{from{opacity:0;transform:translateY(10px)}}

/* ---- Type ---- */
h1,h2,h3,h4{font-family:var(--serif);font-weight:340;line-height:1.05;letter-spacing:-.01em;text-wrap:balance}
.eyebrow{
  font-family:var(--sans);font-weight:600;font-size:12px;
  letter-spacing:.22em;text-transform:uppercase;color:var(--red);
  display:inline-block;
}
.eyebrow.muted{color:var(--ink-faint)}
.lede{font-size:clamp(18px,2vw,21px);color:var(--ink-soft);max-width:62ch;text-wrap:pretty}
p{text-wrap:pretty}
strong{font-weight:700}

/* ---- Layout ---- */
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter)}
section{padding-block:clamp(72px,9vw,140px)}
.section-head{max-width:760px;margin-bottom:clamp(40px,5vw,68px)}
.section-head h2{font-size:clamp(34px,5vw,60px);margin:18px 0 22px}
.section-head.center{text-align:center;margin-inline:auto}
.divider{height:1px;background:var(--line);border:0}

/* ---- Reveal animation ---- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease);
  transition-delay:calc(var(--i,0)*90ms)}
.reveal.in{opacity:1;transform:none}
.reveal-scale{opacity:0;transform:scale(.96);transition:opacity 1s var(--ease-out),transform 1.1s var(--ease-out)}
.reveal-scale.in{opacity:1;transform:none}
.reveal-line{position:relative}
.reveal-line::after{content:"";position:absolute;left:0;bottom:-2px;height:1px;width:0;background:var(--red);transition:width 1.2s var(--ease-out) .2s}
.reveal-line.in::after{width:100%}

/* ============ NAV ============ */
.progress{position:fixed;top:0;left:0;height:2px;width:100%;z-index:61;transform-origin:0 50%;
  transform:scaleX(0);background:var(--red);pointer-events:none}
.nav{
  position:fixed;top:0;left:0;right:0;z-index:60;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px var(--gutter);
  transition:background .4s var(--ease),padding .4s var(--ease),box-shadow .4s var(--ease);
}
.nav.scrolled{background:rgba(246,244,239,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:0 1px 0 var(--line);padding-block:12px}
.brand{display:flex;align-items:center;gap:12px}
.brand .logo-lockup{height:34px;width:auto;display:block;
  filter:brightness(0) invert(1);transition:filter .4s var(--ease)}
.nav.scrolled .brand .logo-lockup,.nav.solid .brand .logo-lockup{filter:none}
.brand .wm{font-family:var(--serif);font-weight:400;font-size:22px;letter-spacing:.32em;
  text-transform:uppercase;padding-left:2px}
.nav-links{display:flex;align-items:center;gap:clamp(18px,2.2vw,30px)}
.nav-links a{font-size:13.5px;font-weight:600;letter-spacing:.04em;color:rgba(255,255,255,.86);
  transition:color .25s;position:relative;padding-block:4px}
.nav-links a:not(.nav-app)::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;
  background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.nav-links a:not(.nav-app):hover::after,.nav-links a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.nav-links a:hover{color:#fff}
.nav.scrolled .nav-links a,.nav.solid .nav-links a{color:var(--ink-soft)}
.nav.scrolled .nav-links a:hover,.nav.solid .nav-links a:hover,
.nav.scrolled .nav-links a[aria-current="page"],.nav.solid .nav-links a[aria-current="page"]{color:var(--ink)}
.lang{font-size:12px;font-weight:700;letter-spacing:.12em;border:1px solid rgba(255,255,255,.5);
  border-radius:999px;padding:7px 14px;background:transparent;cursor:pointer;color:#fff;
  transition:.25s;font-family:var(--sans)}
.nav.scrolled .lang,.nav.solid .lang{border-color:var(--line-strong);color:var(--ink)}
.lang:hover{border-color:var(--red);color:var(--red)}
.nav-links a.nav-app{display:inline-flex;align-items:center;gap:6px;background:var(--red);
  color:#fff;padding:7px 14px;border-radius:999px;border:1px solid var(--red);
  font-size:12px;font-weight:700;letter-spacing:.02em;white-space:nowrap;
  box-shadow:0 3px 12px rgba(142,27,46,.24);transition:.28s var(--ease)}
.nav-links a.nav-app:hover,.nav.scrolled .nav-links a.nav-app:hover{background:var(--ink);border-color:var(--ink);color:#fff;
  box-shadow:0 5px 16px rgba(20,22,24,.28)}
.nav.scrolled .nav-links a.nav-app,.nav.solid .nav-links a.nav-app{color:#fff}
.nav-app svg{width:13px;height:13px;fill:currentColor;flex:none}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;width:30px;height:22px;position:relative}
.nav-toggle span{position:absolute;left:0;right:0;height:2px;background:#fff;transition:.3s}
.nav.scrolled .nav-toggle span,.nav.solid .nav-toggle span{background:var(--ink)}
.nav-toggle span:nth-child(1){top:0}
.nav-toggle span:nth-child(2){top:10px}
.nav-toggle span:nth-child(3){top:20px}

/* Mobile nav panel */
.mobile-menu{position:fixed;inset:0;z-index:70;background:var(--bg);transform:translateX(100%);
  transition:transform .45s var(--ease);display:flex;flex-direction:column;justify-content:center;
  padding:0 var(--gutter);gap:2px;overflow-y:auto}
.mobile-menu.open{transform:none}
.mobile-menu a{font-family:var(--serif);font-size:clamp(26px,7vw,34px);padding:8px 0;color:var(--ink);
  opacity:0;transform:translateX(24px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.mobile-menu.open a{opacity:1;transform:none}
.mobile-menu a:nth-child(2){transition-delay:.05s}.mobile-menu a:nth-child(3){transition-delay:.1s}
.mobile-menu a:nth-child(4){transition-delay:.15s}.mobile-menu a:nth-child(5){transition-delay:.2s}
.mobile-menu a:nth-child(6){transition-delay:.25s}.mobile-menu a:nth-child(7){transition-delay:.3s}
.mobile-menu a:nth-child(8){transition-delay:.35s}.mobile-menu a:nth-child(9){transition-delay:.4s}
.mobile-menu a:nth-child(10){transition-delay:.45s}
.mobile-menu .group{font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ink-faint);margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.mobile-menu .close{position:absolute;top:22px;right:var(--gutter);font-size:30px;background:none;border:0;cursor:pointer;color:var(--ink)}
.mobile-menu a.app-link{display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);
  font-size:18px;font-weight:700;color:#fff;background:var(--red);padding:14px 28px;
  border-radius:999px;margin-top:18px;box-shadow:0 6px 18px rgba(142,27,46,.28);align-self:flex-start}
.mobile-menu a.app-link svg{width:18px;height:18px;fill:currentColor}
.mobile-menu .m-lang{margin-top:16px;align-self:flex-start;border-color:var(--line-strong);color:var(--ink)}

/* ============ HERO ============ */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;
  color:#fff;padding-bottom:clamp(56px,8vw,96px);overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:-2;background:#1a1b1c}
.hero-bg img{width:100%;height:100%;object-fit:cover;animation:kenburns 22s var(--ease) both;transform-origin:60% 40%}
@keyframes kenburns{from{transform:scale(1.12)}to{transform:scale(1)}}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(10,11,12,.42) 0%,rgba(10,11,12,.14) 38%,rgba(10,11,12,.82) 100%)}
.hero .wrap{width:100%}
.hero .eyebrow{color:#fff;opacity:.9}
.hero h1{font-size:clamp(46px,8.5vw,116px);font-weight:300;color:#fff;letter-spacing:-.02em;line-height:1}
.hero h1 em{font-style:italic;color:#fff}
.hero h1 .w{display:inline-block;overflow:hidden;vertical-align:bottom}
.hero h1 .w>span{display:inline-block;transform:translateY(110%);animation:rise 1.1s var(--ease-out) forwards;
  animation-delay:calc(.15s + var(--d,0)*.09s)}
@keyframes rise{to{transform:none}}
.hero .h1-sub{display:block;font-family:var(--sans);font-weight:500;font-size:clamp(15px,1.5vw,19px);
  letter-spacing:.01em;color:rgba(255,255,255,.9);margin-top:22px;line-height:1.5;max-width:60ch;text-wrap:pretty}
.hero .lede{color:rgba(255,255,255,.86);margin-top:20px;font-size:clamp(17px,1.7vw,20px)}
.hero-meta{display:flex;gap:30px;flex-wrap:wrap;margin-top:34px;
  font-size:13px;letter-spacing:.04em;color:rgba(255,255,255,.78)}
.hero-meta span{display:flex;align-items:center;gap:9px}
.hero-meta span::before{content:"";width:6px;height:6px;background:var(--red);border-radius:50%}
.hero .fade{opacity:0;animation:fadeup 1s var(--ease-out) forwards}
.hero .fade.d1{animation-delay:.5s}.hero .fade.d2{animation-delay:.7s}.hero .fade.d3{animation-delay:.9s}.hero .fade.d4{animation-delay:1.05s}
@keyframes fadeup{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:38px}
.btn{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:14px;
  letter-spacing:.03em;padding:15px 26px;border-radius:2px;transition:.3s var(--ease);cursor:pointer;border:1px solid transparent;
  position:relative;overflow:hidden;isolation:isolate}
.btn-primary{background:var(--red);color:#fff}
.btn-primary::before{content:"";position:absolute;inset:0;background:#fff;transform:translateY(101%);transition:transform .45s var(--ease-out);z-index:-1}
.btn-primary:hover{color:var(--ink)}
.btn-primary:hover::before{transform:none}
.btn-ghost{border-color:rgba(255,255,255,.5);color:#fff}
.btn-ghost:hover{background:#fff;color:var(--ink);border-color:#fff}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:var(--red)}
.btn-outline{border-color:var(--line-strong);color:var(--ink)}
.btn-outline:hover{border-color:var(--ink);background:var(--ink);color:#fff}
.btn .arr{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;transition:transform .3s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
[dir="rtl"] .btn .arr{transform:scaleX(-1)}
[dir="rtl"] .btn:hover .arr{transform:scaleX(-1) translateX(4px)}
.scroll-hint{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);
  font-size:11px;letter-spacing:.25em;text-transform:uppercase;color:rgba(255,255,255,.7);
  display:flex;flex-direction:column;align-items:center;gap:8px}
.scroll-hint::after{content:"";width:1px;height:34px;background:rgba(255,255,255,.5);animation:drop 2s var(--ease) infinite}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}
  51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* Sub-page hero (shorter) */
.hero.sub{min-height:min(78svh,760px)}
.hero.sub h1{font-size:clamp(38px,6.4vw,84px)}
.crumbs{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  color:rgba(255,255,255,.7);margin-bottom:22px}
.crumbs a:hover{color:#fff}
.crumbs li{list-style:none;display:flex;gap:10px}
.crumbs li+li::before{content:"/";opacity:.5}

/* ============ STATS ============ */
.stats{background:var(--bg-ink);color:#fff}
.stats .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.1)}
.stat{background:var(--bg-ink);padding:clamp(28px,3.5vw,52px) clamp(20px,2.5vw,40px)}
.stat .num{font-family:var(--serif);font-weight:300;font-size:clamp(42px,5.2vw,72px);line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.stat .num .suf{color:var(--red);font-size:.55em;vertical-align:super;margin-left:2px}
.stat .lbl{margin-top:14px;font-size:13px;letter-spacing:.04em;color:rgba(255,255,255,.66);max-width:22ch}

/* ============ INTRO / SEO STATEMENT ============ */
.manifesto{background:var(--bg)}
.manifesto p{font-family:var(--serif);font-weight:330;font-size:clamp(24px,3.4vw,40px);
  line-height:1.28;letter-spacing:-.01em;max-width:20ch;}
.manifesto .big{max-width:none;}
.manifesto h2.big{font-size:clamp(26px,3.6vw,44px);font-weight:330;line-height:1.22}
.manifesto .cols{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,5vw,80px);align-items:end;margin-top:10px}
.manifesto .body p{font-family:var(--sans);font-size:17px;font-weight:400;line-height:1.7;
  color:var(--ink-soft);max-width:46ch;margin-bottom:18px}
.manifesto .body a{color:var(--red);border-bottom:1px solid rgba(142,27,46,.3);transition:.25s}
.manifesto .body a:hover{border-color:var(--red)}

/* ============ PILLARS (doors / rooms / hospitality) ============ */
.pillars{background:var(--bg-alt)}
.pillar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.8vw,24px)}
.pillar{position:relative;display:block;border-radius:4px;overflow:hidden;background:#000;aspect-ratio:3/4;color:#fff;isolation:isolate}
.pillar img{width:100%;height:100%;object-fit:cover;opacity:.9;transition:transform 1.3s var(--ease-out),opacity .6s}
.pillar::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.05) 30%,rgba(0,0,0,.8) 100%)}
.pillar:hover img{transform:scale(1.06);opacity:1}
.pillar .body{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:clamp(20px,2.4vw,32px);transform:translateY(12px);transition:transform .5s var(--ease-out)}
.pillar:hover .body{transform:none}
.pillar .ix{font-family:var(--serif);font-size:14px;color:rgba(255,255,255,.75);letter-spacing:.06em}
.pillar h3{font-size:clamp(24px,2.6vw,34px);margin:10px 0 8px;color:#fff}
.pillar p{font-size:14px;color:rgba(255,255,255,.82);max-width:34ch}
.pillar .more{display:inline-flex;align-items:center;gap:8px;margin-top:16px;font-size:12px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;opacity:0;transform:translateY(6px);transition:.45s var(--ease-out) .05s}
.pillar:hover .more{opacity:1;transform:none}
.pillar .more::after{content:"→"}
[dir="rtl"] .pillar .more::after{content:"←"}
.pillar .stat-chip{position:absolute;top:16px;left:16px;z-index:2;background:rgba(20,22,24,.75);backdrop-filter:blur(6px);
  padding:8px 12px;border-radius:2px;font-size:11px;letter-spacing:.14em;text-transform:uppercase}
[dir="rtl"] .pillar .stat-chip{left:auto;right:16px}

/* ============ FACTORIES ============ */
.factories{background:var(--bg-alt)}
.fac{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(28px,4vw,70px);align-items:center;
  padding-block:clamp(40px,5vw,68px)}
.fac + .fac{border-top:1px solid var(--line)}
.fac:nth-child(even) .fac-media{order:2}
.fac-media{position:relative;overflow:hidden;border-radius:3px}
.fac-media img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 1.2s var(--ease)}
.fac:hover .fac-media img{transform:scale(1.04)}
.fac-media .tag{position:absolute;top:16px;left:16px;background:rgba(20,22,24,.82);color:#fff;
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;padding:7px 13px;border-radius:2px}
.fac-no{font-family:var(--serif);font-size:15px;color:var(--red);letter-spacing:.05em}
.fac h3{font-size:clamp(26px,3.2vw,40px);margin:10px 0 16px}
.fac .desc{color:var(--ink-soft);max-width:48ch;margin-bottom:24px}
.spec-list{list-style:none;display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line)}
.spec-list li{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid var(--line);
  font-size:14.5px}
.spec-list .k{color:var(--ink-faint);letter-spacing:.02em}
.spec-list .v{font-weight:600;text-align:right}
.cap-badge{display:inline-flex;align-items:baseline;gap:8px;margin-top:22px;
  background:var(--bg);border:1px solid var(--line-strong);border-radius:2px;padding:12px 18px}
.cap-badge .n{font-family:var(--serif);font-size:30px;color:var(--red);line-height:1}
.cap-badge .t{font-size:13px;color:var(--ink-soft);letter-spacing:.02em}
.fac .link{display:inline-flex;align-items:center;gap:8px;margin-top:18px;margin-left:14px;font-size:13px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--red)}
.fac .link::after{content:"→";transition:transform .3s}
.fac .link:hover::after{transform:translateX(4px)}

/* ============ MACHINERY ============ */
.machinery{background:var(--bg)}
.mach-banner{margin:0 0 18px;background:#fff;border:1px solid var(--line);border-radius:3px;
  padding:clamp(10px,1.6vw,24px)}
.mach-banner img{width:100%;height:clamp(160px,26vw,270px);object-fit:contain;object-position:center}
.mach-cap{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:baseline;margin-bottom:clamp(30px,4vw,48px);
  padding-top:2px}
.mach-cap .lbl{font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--red)}
.mach-cap span:last-child{font-size:14px;color:var(--ink-soft)}
.mach-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,28px)}
.mach-card{background:#fff;border:1px solid var(--line);border-radius:3px;overflow:hidden;
  transition:box-shadow .35s var(--ease),transform .35s var(--ease)}
.mach-card:hover{box-shadow:0 18px 40px rgba(20,22,24,.08);transform:translateY(-3px)}
.mach-card .pic{height:clamp(165px,18vw,215px);display:flex;align-items:center;justify-content:center;
  padding:clamp(10px,1.2vw,18px);background:#fff;border-bottom:1px solid var(--line)}
.mach-card .pic img{max-width:100%;max-height:100%;object-fit:contain}
.mach-card .info{padding:18px clamp(18px,2vw,24px) 24px}
.mach-card .info h4{font-size:20px;font-weight:360;margin-bottom:6px}
.mach-card .info .role{font-family:var(--sans);font-weight:700;font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--red);margin-bottom:8px}
.mach-card .info p{font-size:13.5px;color:var(--ink-soft);line-height:1.55}

/* ============ FINISHING / QA ============ */
.finishing{background:var(--bg-ink);color:#fff}
.finishing .section-head h2{color:#fff}
.finishing .lede{color:rgba(255,255,255,.72)}
.fin-feature{margin:0 0 clamp(28px,4vw,46px);border-radius:3px;overflow:hidden;position:relative}
.fin-feature img{width:100%;height:clamp(220px,34vw,420px);object-fit:cover;display:block}
.fin-feature figcaption{position:absolute;left:0;bottom:0;right:0;padding:16px 20px;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.6));color:rgba(255,255,255,.9);
  font-size:12px;letter-spacing:.04em}
.fin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.1);margin-top:10px}
.fin-cell{background:var(--bg-ink);padding:clamp(26px,3vw,40px)}
.fin-cell h4{font-size:21px;color:#fff;margin-bottom:12px;font-weight:360}
.fin-cell p{font-size:14.5px;color:rgba(255,255,255,.66);line-height:1.65}
.fin-cell .ix{font-family:var(--serif);font-size:14px;color:var(--red);display:block;margin-bottom:18px}
.certs{display:flex;flex-wrap:wrap;gap:12px;margin-top:48px}
.cert{border:1px solid rgba(255,255,255,.22);border-radius:2px;padding:11px 18px;font-size:13px;
  letter-spacing:.04em;color:rgba(255,255,255,.85)}
.cert.pending{color:rgba(255,255,255,.55)}
.cert.pending::after{content:" · in process";color:var(--red)}

/* ============ CAPABILITIES (products) ============ */
.capabilities{background:var(--bg)}
.cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,22px)}
.cap-card{position:relative;overflow:hidden;border-radius:3px;background:#000;aspect-ratio:4/5;display:block}
.cap-card img{width:100%;height:100%;object-fit:cover;opacity:.92;transition:transform 1.1s var(--ease),opacity .6s}
.cap-card:hover img{transform:scale(1.05);opacity:1}
.cap-card::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(0,0,0,.72) 100%)}
.cap-card .meta{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:22px;color:#fff}
.cap-card .meta h3,.cap-card .meta h4{font-size:22px;font-weight:360;color:#fff}
.cap-card .meta p{font-size:13px;color:rgba(255,255,255,.78);margin-top:4px}

/* ============ PROCESS ============ */
.process{background:var(--bg-alt);border-top:1px solid var(--line)}
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(14px,2vw,28px);position:relative;counter-reset:step}
.steps::before{content:"";position:absolute;left:0;right:0;top:17px;height:1px;background:var(--line)}
.steps::after{content:"";position:absolute;left:0;top:17px;height:1px;width:0;background:var(--red);transition:width 2.4s var(--ease-out) .2s}
.steps.in::after{width:100%}
.step{position:relative;padding-top:52px}
.step::before{content:counter(step,decimal-leading-zero);counter-increment:step;position:absolute;top:0;left:0;
  width:36px;height:36px;border-radius:50%;background:var(--bg);border:1px solid var(--line-strong);
  display:grid;place-items:center;font-family:var(--serif);font-size:13px;color:var(--red);
  transition:background .4s var(--ease),color .4s,border-color .4s;transition-delay:calc(var(--i,0)*.35s)}
.steps.in .step::before{background:var(--red);color:#fff;border-color:var(--red)}
.step h3{font-size:20px;font-weight:400;margin-bottom:8px}
.step p{font-size:14px;color:var(--ink-soft);line-height:1.6}

/* ============ WORK ============ */
.work{background:var(--bg-alt)}
.lifetime{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);margin-bottom:clamp(40px,5vw,64px)}
.lifetime div{background:var(--bg-alt);padding:clamp(24px,3vw,40px)}
.lifetime .n{font-family:var(--serif);font-size:clamp(38px,5vw,62px);font-weight:300;line-height:1;font-variant-numeric:tabular-nums}
.lifetime .n .suf{color:var(--red);font-size:.5em;vertical-align:super}
.lifetime .l{margin-top:10px;font-size:14px;color:var(--ink-soft);letter-spacing:.02em}
.proj-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2vw,28px)}
.proj{position:relative;overflow:hidden;border-radius:3px;background:#000}
.proj img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform 1.2s var(--ease);opacity:.95}
.proj:hover img{transform:scale(1.05)}
.proj::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.72))}
.proj .meta{position:absolute;inset:auto 0 0 0;z-index:2;padding:clamp(20px,2.5vw,32px);color:#fff}
.proj .client{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.8)}
.proj h3,.proj h4{font-size:clamp(22px,2.6vw,30px);font-weight:360;color:#fff;margin:8px 0 6px}
.proj p{font-size:14px;color:rgba(255,255,255,.82);max-width:42ch}
.proj .status{position:absolute;top:18px;right:18px;z-index:2;background:var(--red);color:#fff;
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:6px 12px;border-radius:2px}

/* ============ GALLERY ============ */
.gallery{background:var(--bg);padding-block:0}
.gal-track{display:flex;gap:14px;overflow-x:auto;padding:0 var(--gutter) clamp(60px,8vw,100px);
  scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none}
.gal-track::-webkit-scrollbar{display:none}
.gal-track img{height:clamp(240px,34vw,420px);width:auto;border-radius:3px;object-fit:cover;
  scroll-snap-align:start;flex:0 0 auto}

/* Masonry-ish image grid for sub-pages */
.img-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.5vw,20px)}
.img-grid figure{position:relative;overflow:hidden;border-radius:3px;background:#000;margin:0}
.img-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 1.2s var(--ease-out)}
.img-grid figure:hover img{transform:scale(1.05)}
.img-grid figcaption{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;font-size:12px;letter-spacing:.04em;color:#fff;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.65))}
.img-grid figure.wide{grid-column:span 2}
.img-grid figure.wide img{aspect-ratio:8/3}

/* ============ FOUNDER ============ */
.founder{background:var(--bg-ink);color:#fff}
.founder .cols{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(34px,5vw,80px);align-items:center}
.founder .portrait{aspect-ratio:4/5;background:#222;border-radius:3px;position:relative;overflow:hidden}
.founder .portrait img{width:100%;height:100%;object-fit:cover}
.founder h2{color:#fff;font-size:clamp(30px,4vw,52px);margin:16px 0 24px}
.founder .bio p{color:rgba(255,255,255,.76);font-size:16px;line-height:1.75;margin-bottom:16px;max-width:58ch}
.founder .sign{font-family:var(--serif);font-style:italic;font-size:22px;color:#fff;margin-top:26px}
.founder .role{font-size:13px;letter-spacing:.04em;color:var(--red);margin-top:4px}

/* ============ LEADERSHIP ============ */
.leadership{background:var(--bg)}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.8vw,24px)}
.member .ph{aspect-ratio:4/5;background:var(--line);border-radius:3px;display:flex;align-items:center;
  justify-content:center;color:var(--ink-faint);font-family:var(--serif);font-size:40px;overflow:hidden}
.member .ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.9);transition:filter .5s,transform 1s var(--ease-out)}
.member:hover .ph img{filter:none;transform:scale(1.03)}
.member h4{font-size:18px;font-weight:600;font-family:var(--sans);margin-top:16px}
.member .pos{font-size:13.5px;color:var(--red);margin-top:3px}

/* ============ CLIENTS MARQUEE ============ */
.clients{background:var(--bg-alt);border-top:1px solid var(--line);padding-block:clamp(48px,6vw,80px);overflow:hidden}
.marquee{display:flex;overflow:hidden;gap:0;
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.marquee .track{display:flex;flex:none;gap:clamp(40px,6vw,96px);padding-inline:clamp(20px,3vw,48px);
  animation:marquee 34s linear infinite;align-items:center;will-change:transform}
.marquee:hover .track{animation-play-state:paused}
.marquee span{font-family:var(--serif);font-size:clamp(22px,2.6vw,34px);font-weight:340;
  color:var(--ink-faint);letter-spacing:.02em;white-space:nowrap;transition:color .3s}
.marquee span:hover{color:var(--ink)}
@keyframes marquee{to{transform:translateX(-100%)}}
[dir="rtl"] .marquee .track{animation-direction:reverse}

/* ============ FAQ ============ */
.faq{background:var(--bg)}
.faq-list{max-width:860px;border-top:1px solid var(--line)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:22px 0;font-family:var(--serif);font-size:clamp(18px,2vw,23px);font-weight:400;transition:color .25s}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:hover{color:var(--red)}
.faq-list summary .pm{flex:none;width:28px;height:28px;border:1px solid var(--line-strong);border-radius:50%;position:relative;
  transition:transform .4s var(--ease),background .3s,border-color .3s}
.faq-list summary .pm::before,.faq-list summary .pm::after{content:"";position:absolute;top:50%;left:50%;background:var(--ink);
  transform:translate(-50%,-50%);transition:.3s}
.faq-list summary .pm::before{width:11px;height:1px}
.faq-list summary .pm::after{width:1px;height:11px}
.faq-list details[open] summary .pm{transform:rotate(135deg);background:var(--red);border-color:var(--red)}
.faq-list details[open] summary .pm::before,.faq-list details[open] summary .pm::after{background:#fff}
.faq-list .a{padding:0 0 26px;color:var(--ink-soft);max-width:66ch;font-size:16px;line-height:1.7}
.faq-list .a a{color:var(--red);border-bottom:1px solid rgba(142,27,46,.3)}
.faq-list details[open] .a{animation:fadeup .5s var(--ease-out)}

/* ============ CONTENT (sub-page long-form) ============ */
.content{background:var(--bg-alt)}
.content .cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px);align-items:start}
.content h2{font-size:clamp(30px,4vw,48px);margin-bottom:22px}
.content h3{font-size:clamp(21px,2.4vw,27px);margin:30px 0 10px;font-weight:400}
.content p{color:var(--ink-soft);margin-bottom:16px;max-width:60ch}
.content ul{list-style:none;margin:8px 0 18px}
.content ul li{position:relative;padding-left:22px;color:var(--ink-soft);margin-bottom:8px;max-width:60ch}
.content ul li::before{content:"";position:absolute;left:0;top:.7em;width:8px;height:1px;background:var(--red)}
[dir="rtl"] .content ul li{padding-left:0;padding-right:22px}
[dir="rtl"] .content ul li::before{left:auto;right:0}
.content .aside{position:sticky;top:96px}
.content .aside .card{background:var(--bg);border:1px solid var(--line);border-radius:3px;padding:clamp(22px,2.6vw,34px);margin-bottom:18px}
.content .aside .card h4{font-size:19px;font-weight:400;margin-bottom:14px}
.content .aside .card ul{list-style:none}
.content .aside .card li{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}
.content .aside .card li:last-child{border-bottom:0}
.content .aside .card .k{color:var(--ink-faint)}
.content .aside .card .v{font-weight:600;text-align:right}
.content .aside .card .n{font-family:var(--serif);font-size:44px;color:var(--red);line-height:1;font-variant-numeric:tabular-nums}
.content .aside .card .t{font-size:13px;color:var(--ink-soft);margin-top:6px}
.content .aside .cta{display:flex;flex-direction:column;gap:10px;align-items:flex-start}

/* Dark strip of key facts */
.facts{background:var(--bg-ink);color:#fff;padding-block:clamp(40px,5vw,64px)}
.facts .row{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.1)}
.facts .cell{background:var(--bg-ink);padding:clamp(20px,2.4vw,34px)}
.facts .n{font-family:var(--serif);font-size:clamp(34px,4vw,54px);font-weight:300;line-height:1;font-variant-numeric:tabular-nums}
.facts .n .suf{color:var(--red);font-size:.5em;vertical-align:super}
.facts .l{margin-top:10px;font-size:13px;color:rgba(255,255,255,.66);letter-spacing:.03em}

/* Related pages */
.related{background:var(--bg);border-top:1px solid var(--line)}
.rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.8vw,24px)}
.rel{display:block;border:1px solid var(--line);border-radius:3px;background:#fff;overflow:hidden;transition:box-shadow .35s var(--ease),transform .35s var(--ease)}
.rel:hover{box-shadow:0 18px 40px rgba(20,22,24,.08);transform:translateY(-3px)}
.rel img{width:100%;aspect-ratio:16/9;object-fit:cover}
.rel .b{padding:20px 22px 24px}
.rel .b .eyebrow{font-size:10.5px}
.rel .b h3{font-size:22px;margin:8px 0 6px;font-weight:380}
.rel .b p{font-size:14px;color:var(--ink-soft)}

/* ============ CONTACT ============ */
.contact{background:var(--bg-ink);color:#fff}
.contact .cols{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(34px,5vw,80px)}
.contact h2{color:#fff;font-size:clamp(34px,5vw,64px);margin:18px 0 26px}
.contact .lede{color:rgba(255,255,255,.74)}
.contact-list{margin-top:30px;border-top:1px solid rgba(255,255,255,.16)}
.contact-list a,.contact-list div{display:flex;justify-content:space-between;gap:20px;
  padding:18px 0;border-bottom:1px solid rgba(255,255,255,.16);font-size:15px;transition:.25s}
.contact-list a:hover{padding-left:8px;color:#fff}
[dir="rtl"] .contact-list a:hover{padding-left:0;padding-right:8px}
.contact-list .k{color:rgba(255,255,255,.55);letter-spacing:.04em}
.contact-list .v{font-weight:600;text-align:right}
.contact .panel{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);
  border-radius:3px;padding:clamp(26px,3vw,40px);align-self:start}
.contact .panel h3,.contact .panel h4{color:#fff;font-size:22px;font-weight:360;margin-bottom:14px}
.contact .panel p{font-size:14px;color:rgba(255,255,255,.66);margin-bottom:22px}
.contact .panel .stack{display:flex;flex-direction:column;gap:12px;align-items:flex-start}

/* ============ FOOTER ============ */
.footer{background:var(--bg-ink);color:rgba(255,255,255,.55);
  border-top:1px solid rgba(255,255,255,.12);padding-block:clamp(40px,5vw,64px) 32px;font-size:13.5px}
.footer .top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:clamp(24px,4vw,56px);padding-bottom:36px;
  border-bottom:1px solid rgba(255,255,255,.12)}
.footer .brand .wm{color:#fff;font-size:18px}
.footer .about{margin-top:16px;max-width:36ch;line-height:1.65}
.footer h4{font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:14px;font-weight:700}
.footer ul{list-style:none}
.footer li{margin-bottom:9px}
.footer a{transition:color .25s}
.footer a:hover{color:#fff}
.footer address{font-style:normal;line-height:1.7}
.footer .bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding-top:22px;font-size:12.5px;color:rgba(255,255,255,.4)}

/* ============ WHATSAPP FAB ============ */
.wa{position:fixed;right:22px;bottom:22px;z-index:80;width:58px;height:58px;border-radius:50%;
  background:#25D366;display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 30px rgba(0,0,0,.25);transition:transform .3s var(--ease)}
.wa:hover{transform:scale(1.08)}
.wa svg{width:30px;height:30px;fill:#fff}
.wa::before{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid rgba(37,211,102,.6);animation:pulse 2.4s ease-out infinite}
@keyframes pulse{0%{transform:scale(.9);opacity:.8}100%{transform:scale(1.45);opacity:0}}
.wa::after{content:"Chat on WhatsApp";position:absolute;right:70px;white-space:nowrap;
  background:var(--ink);color:#fff;font-size:12px;padding:8px 12px;border-radius:3px;
  opacity:0;transform:translateX(8px);transition:.3s;pointer-events:none}
.wa:hover::after{opacity:1;transform:none}

/* ============ RESPONSIVE ============ */
@media(max-width:1100px){
  .steps{grid-template-columns:repeat(3,1fr)}
  .steps::before,.steps::after{display:none}
  .footer .top{grid-template-columns:1fr 1fr}
}
@media(max-width:1024px){
  .cap-grid,.fin-grid{grid-template-columns:repeat(2,1fr)}
  .team-grid{grid-template-columns:repeat(2,1fr)}
  .pillar-grid{grid-template-columns:1fr 1fr}
  .pillar-grid .pillar:last-child{grid-column:span 2;aspect-ratio:16/9}
  .content .cols{grid-template-columns:1fr}
  .content .aside{position:static}
  .rel-grid{grid-template-columns:1fr 1fr}
  .rel-grid .rel:last-child{grid-column:span 2}
  .img-grid{grid-template-columns:1fr 1fr}
  .img-grid figure.wide{grid-column:span 2}
}
@media(max-width:760px){
  body{font-size:16px}
  .nav-links{display:none}
  .nav-toggle{display:block}
  .stats .grid,.facts .row{grid-template-columns:repeat(2,1fr)}
  .manifesto .cols,.founder .cols,.contact .cols{grid-template-columns:1fr;gap:34px}
  .fac{grid-template-columns:1fr;gap:24px}
  .fac:nth-child(even) .fac-media{order:0}
  .cap-grid{grid-template-columns:1fr 1fr;gap:12px}
  .proj-grid{grid-template-columns:1fr}
  .lifetime{grid-template-columns:1fr}
  .fin-grid{grid-template-columns:1fr}
  .hero{min-height:92svh}
  .scroll-hint{display:none}
  .hero-meta{gap:10px 22px;margin-top:26px}
  .cta-row{margin-top:28px}
  .hero.sub{min-height:auto;padding-top:120px}
  .pillar-grid{grid-template-columns:1fr}
  .pillar-grid .pillar:last-child{grid-column:auto;aspect-ratio:3/4}
  .pillar .body{transform:none}.pillar .more{opacity:1;transform:none}
  .steps{grid-template-columns:1fr 1fr}
  .mach-grid{grid-template-columns:1fr}
  .rel-grid{grid-template-columns:1fr}
  .rel-grid .rel:last-child{grid-column:auto}
  .footer .top{grid-template-columns:1fr}
  .img-grid{grid-template-columns:1fr}
  .img-grid figure.wide{grid-column:auto}
  .img-grid figure.wide img{aspect-ratio:4/3}
}
@media(max-width:460px){
  .cap-grid{grid-template-columns:1fr}
  .team-grid{grid-template-columns:1fr 1fr}
  .stats .grid,.facts .row{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr}
}

/* ============ MOTION PREFERENCES ============ */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  .reveal,.reveal-scale{opacity:1;transform:none}
  .hero h1 .w>span{transform:none}
  .hero .fade{opacity:1}
  .marquee .track{animation:none}
  .steps::after{width:100%}
}

/* ============ RTL (Arabic) ============ */
[dir="rtl"] .spec-list .v,[dir="rtl"] .contact-list .v,[dir="rtl"] .lifetime .l,[dir="rtl"] .content .aside .card .v{text-align:left}
[dir="rtl"] .wa{right:auto;left:22px}
[dir="rtl"] .wa::after{right:auto;left:70px}
[dir="rtl"] .fac-media .tag{left:auto;right:16px}
[dir="rtl"] .proj .status{right:auto;left:18px}
[dir="rtl"] .step::before{left:auto;right:0}
[dir="rtl"] .fac .link{margin-left:0;margin-right:14px}
[dir="rtl"] .fac .link::after{content:"←"}
[dir="rtl"] .mobile-menu .close{right:auto;left:var(--gutter)}
[dir="rtl"] .mobile-menu{transform:translateX(-100%)}
[dir="rtl"] .mobile-menu.open{transform:none}

/* Arabic typography */
[dir="rtl"] body,[dir="rtl"] .lede,[dir="rtl"] p,[dir="rtl"] .nav-links a,[dir="rtl"] .btn,
[dir="rtl"] .spec-list,[dir="rtl"] .contact-list,[dir="rtl"] .stat .lbl,[dir="rtl"] .member h4,
[dir="rtl"] .note,[dir="rtl"] .pos,[dir="rtl"] .eyebrow,[dir="rtl"] .role,[dir="rtl"] .client,
[dir="rtl"] .mach-cap .lbl,[dir="rtl"] .cert,[dir="rtl"] .tag,[dir="rtl"] .fac-no,[dir="rtl"] .lbl,
[dir="rtl"] .content ul li,[dir="rtl"] .footer,[dir="rtl"] .faq-list .a,[dir="rtl"] .h1-sub,[dir="rtl"] .crumbs{
  font-family:"Tajawal","Manrope",system-ui,sans-serif}
[dir="rtl"] h1,[dir="rtl"] h2,[dir="rtl"] h3,[dir="rtl"] h4,[dir="rtl"] .manifesto p.big,
[dir="rtl"] .hero h1,[dir="rtl"] .sign,[dir="rtl"] .stat .num,[dir="rtl"] .lifetime .n,
[dir="rtl"] .cap-badge .n,[dir="rtl"] .marquee span,[dir="rtl"] .faq-list summary{
  font-family:"El Messiri","Tajawal",serif}
[dir="rtl"] *{letter-spacing:normal !important}
[dir="rtl"] .eyebrow,[dir="rtl"] .tag,[dir="rtl"] .fac-no,[dir="rtl"] .mach-cap .lbl,
[dir="rtl"] .mach-card .info .role,[dir="rtl"] .proj .client,[dir="rtl"] .cert,
[dir="rtl"] .fin-cell .ix,[dir="rtl"] .nav-links a,[dir="rtl"] .lang,[dir="rtl"] .crumbs,
[dir="rtl"] .pillar .more,[dir="rtl"] .footer h4{text-transform:none}
[dir="rtl"] .cert.pending::after{content:" · قيد الاعتماد"}
[dir="rtl"] .wa::after{content:"الدردشة عبر واتساب"}
[dir="rtl"] .hero h1{font-weight:600;line-height:1.2}
[dir="rtl"] .hero h1 .w>span{transform:none;animation:none}
/* keep numerals + suffix in LTR order inside RTL layouts */
[dir="rtl"] .stat .num,[dir="rtl"] .lifetime .n,[dir="rtl"] .facts .n,[dir="rtl"] .cap-badge,[dir="rtl"] .content .aside .card .n{direction:ltr;unicode-bidi:isolate}
