/* =========================================================
   METALEX — shared stylesheet
   Used by: index.html, about.html, services.html, contact.html
   ========================================================= */

:root{
  --navy-900:#141b25;
  --navy-800:#1c2531;
  --navy-700:#2a3648;
  --blue-600:#3d6bb0;
  --blue-500:#4d7fc7;
  --blue-400:#7aa1da;
  --blue-100:#e7eefa;
  --steel-50:#f5f6f8;
  --steel-100:#eceff3;
  --steel-300:#cdd4dc;
  --steel-500:#8b94a3;
  --white:#ffffff;
  --ink:#161d27;
  --radius:2px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--steel-50);
  color:var(--ink);
  font-family:'IBM Plex Sans', sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Big Shoulders Display', sans-serif;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:0.01em;
  margin:0;
  color:var(--navy-900);
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
.mono{font-family:'IBM Plex Mono', monospace; letter-spacing:0.06em;}
::selection{background:var(--blue-500); color:#fff;}

a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline:3px solid var(--blue-500);
  outline-offset:2px;
}

/* ---------- Nav ---------- */
header.site{
  position:sticky; top:0; z-index:100;
  background:rgba(245,246,248,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--steel-300);
}
nav{
  display:flex; align-items:center; justify-content:flex-start; gap:28px;
  padding:14px 28px;
  max-width:1180px; margin:0 auto;
}
.navlinks{margin-right:auto;}
html[dir="rtl"] .navlinks{margin-right:0; margin-left:auto;}
.brand{display:flex; align-items:center; gap:12px;}
.brand img{height:40px; width:auto;}
.brand-text{display:flex; flex-direction:column; line-height:1.1;}
.brand-text .name{font-family:'Big Shoulders Display'; font-weight:800; font-size:22px; letter-spacing:0.03em; color:var(--navy-900);}
.brand-text .tag{font-family:'IBM Plex Mono'; font-size:9px; letter-spacing:0.14em; color:var(--blue-600); text-transform:uppercase;}
.navlinks{display:flex; align-items:center; gap:30px;}
.navlinks a{
  font-family:'IBM Plex Mono'; font-size:12px; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--navy-700); padding:6px 2px; border-bottom:2px solid transparent;
  transition:border-color .2s, color .2s;
}
.navlinks a:hover, .navlinks a.active{border-color:var(--blue-500); color:var(--navy-900);}
.btn{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--navy-900); color:#fff;
  font-family:'IBM Plex Mono'; font-size:12px; letter-spacing:0.08em; text-transform:uppercase;
  padding:12px 22px; border:1px solid var(--navy-900);
  transition:background .2s, color .2s, transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s cubic-bezier(.2,.8,.2,1);
  cursor:pointer;
}
.btn:hover{background:var(--blue-600); border-color:var(--blue-600); transform:translateY(-2px); box-shadow:0 10px 20px -10px rgba(61,107,176,.55);}
.btn:active{transform:translateY(0); box-shadow:none;}
.btn.outline{background:transparent; color:var(--navy-900); border:1px solid var(--navy-900);}
.btn.outline:hover{background:var(--navy-900); color:#fff;}
.btn.light{background:var(--blue-500); border-color:var(--blue-500);}
.btn.light:hover{background:var(--blue-400); border-color:var(--blue-400);}

.navtoggle{
  display:none; background:none; border:1px solid var(--navy-900); padding:8px 10px; cursor:pointer;
}
.navtoggle span{display:block; width:20px; height:2px; background:var(--navy-900); margin:4px 0;}
.mobile-panel{display:none; flex-direction:column; gap:2px; border-bottom:1px solid var(--steel-300); background:var(--steel-50);}
.mobile-panel.open{display:flex;}
.mobile-panel a{
  padding:16px 28px; font-family:'IBM Plex Mono'; font-size:13px; letter-spacing:0.06em; text-transform:uppercase;
  border-top:1px solid var(--steel-300); color:var(--navy-700);
}
.mobile-panel a.active{color:var(--blue-600);}

/* ---------- Dimension-line divider (signature element) ---------- */
.dim-line{
  display:flex; align-items:center; gap:14px;
  margin:0 0 44px 0;
  color:var(--blue-600);
}
.dim-line .tick{width:1px; height:14px; background:var(--steel-300); flex:0 0 auto;}
.dim-line .bar{
  flex:1 1 auto; height:1px; background:var(--steel-300);
  position:relative;
  transform-origin:left center;
  transform:scaleX(0);
  transition:transform 1s cubic-bezier(.2,.8,.2,1);
}
.dim-line.in .bar{transform:scaleX(1);}
.dim-line .bar::before, .dim-line .bar::after{
  content:''; position:absolute; top:-5px; width:1px; height:11px; background:var(--steel-300);
}
.dim-line .bar::before{left:0;} .dim-line .bar::after{right:0;}
.dim-line .label{
  font-family:'IBM Plex Mono'; font-size:12px; letter-spacing:0.16em; text-transform:uppercase;
  white-space:nowrap; color:var(--blue-600);
  display:inline-flex; align-items:baseline; gap:8px;
}
.dim-line .label .idxnum{color:var(--navy-900); order:-1;}
.dim-line .label .idxnum::after{content:'/'; margin-inline-start:8px; color:var(--blue-600); font-weight:400;}
html[dir="rtl"] .dim-line .label{flex-direction:row-reverse;}

section{padding:100px 0;}
section.tight{padding:80px 0;}

/* ---------- Page header (About / Services / Contact) — full-bleed photo banner ---------- */
.page-header{
  position:relative; overflow:hidden; color:#fff;
  padding:96px 0 68px; min-height:320px; display:flex; align-items:flex-end;
}
.page-header .bg{
  position:absolute; inset:0; background-size:cover; background-position:center;
  transform:scale(1.08); animation:heroZoom 16s ease-out forwards;
}
.page-header .overlay{
  position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(18,24,33,.94) 0%, rgba(18,24,33,.8) 38%, rgba(18,24,33,.42) 75%, rgba(18,24,33,.22) 100%);
}
.page-header .wrap{position:relative; z-index:2;}
.page-header h1{font-size:clamp(34px,4.8vw,54px); line-height:1; color:#fff;}
.page-header p.lead{margin-top:18px; max-width:520px; color:#c7cedb; font-size:16.5px;}
.page-header .eyebrow{color:var(--blue-400);}
.page-header .eyebrow::before{background:var(--blue-400);}

/* ---------- Hero (home only) — full-bleed photo hero ---------- */
.hero{
  position:relative; overflow:hidden; color:#fff;
  min-height:88vh; display:flex; align-items:center;
  padding:150px 0 70px;
}
.hero .bg{
  position:absolute; inset:0; background-size:cover; background-position:center;
  transform:scale(1.08); animation:heroZoom 20s ease-out forwards;
}
@keyframes heroZoom{to{transform:scale(1);}}
.hero .overlay{
  position:absolute; inset:0;
  background:linear-gradient(115deg, rgba(15,20,28,.95) 0%, rgba(16,22,31,.82) 32%, rgba(18,25,35,.48) 62%, rgba(20,27,37,.22) 100%);
}
.hero .wrap{
  position:relative; z-index:2;
  display:grid; grid-template-columns:minmax(0,720px); gap:40px; align-items:center;
}
.eyebrow{
  font-family:'IBM Plex Mono'; font-size:12px; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--blue-400); display:flex; align-items:center; gap:10px; margin-bottom:22px;
}
.eyebrow::before{content:''; width:26px; height:1px; background:var(--blue-400); display:inline-block;}
.hero h1{
  font-size:clamp(42px, 6.4vw, 80px);
  line-height:0.96;
  letter-spacing:0.005em;
  color:#fff;
}
.hero h1 .line{display:block; overflow:hidden;}
.hero h1 .line span{display:block; transform:translateY(110%); animation:riseUp .9s cubic-bezier(.2,.8,.2,1) forwards;}
.hero h1 .line:nth-child(1) span{animation-delay:.05s;}
.hero h1 .line:nth-child(2) span{animation-delay:.18s; color:var(--blue-400);}
@keyframes riseUp{to{transform:translateY(0);}}
.hero p.lead{
  margin-top:26px; max-width:520px; font-size:17.5px; color:#dfe4ec;
  opacity:0; animation:fadeUp .8s ease forwards; animation-delay:.5s;
}
.hero .cta-row{margin-top:34px; display:flex; gap:14px; flex-wrap:wrap; opacity:0; animation:fadeUp .8s ease forwards; animation-delay:.65s;}
@keyframes fadeUp{from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:translateY(0);}}
.hero .btn.outline{color:#fff; border-color:rgba(255,255,255,.55);}
.hero .btn.outline:hover{background:#fff; color:var(--navy-900); border-color:#fff;}
.hero-stats{
  display:grid; grid-template-columns:repeat(3,1fr); gap:0;
  margin-top:56px; border-top:1px solid rgba(255,255,255,.22);
  max-width:560px;
  opacity:0; animation:fadeUp .8s ease forwards; animation-delay:.8s;
}
.hero-stats div{padding:18px 0 0; border-right:1px solid rgba(255,255,255,.22);}
.hero-stats div:last-child{border-right:none;}
.hero-stats .num{font-family:'Big Shoulders Display'; font-weight:800; font-size:34px; color:#fff;}
.hero-stats .lbl{font-family:'IBM Plex Mono'; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:#aab4c4; margin-top:4px;}

@media (max-width:640px){
  .hero{min-height:82vh; padding:130px 0 50px;}
  .page-header{padding:80px 0 48px; min-height:260px;}
}

/* ---------- About ---------- */
.about-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:start;}
.about-grid h2{font-size:clamp(30px,3.6vw,44px); line-height:1.02; margin-bottom:22px;}
.about-grid p{color:var(--navy-700); font-size:16px; margin:0 0 16px;}
.about-facts{display:flex; flex-direction:column; gap:0; border-top:1px solid var(--steel-300);}
.fact{
  display:grid; grid-template-columns:70px 1fr; gap:18px; padding:20px 0; border-bottom:1px solid var(--steel-300);
}
.fact .idx{font-family:'IBM Plex Mono'; color:var(--blue-500); font-size:13px; padding-top:2px;}
.fact h4{font-size:17px; text-transform:none; font-family:'IBM Plex Sans'; font-weight:600; margin-bottom:4px; color:var(--navy-900);}
.fact p{margin:0; color:var(--steel-500); font-size:14.5px;}

/* ---------- Services (photo cards) ---------- */
.svc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.svc-card{
  position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end;
  min-height:300px; padding:26px 24px; cursor:pointer; color:#fff;
  background-size:cover; background-position:center; background-color:var(--navy-800);
  transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s cubic-bezier(.2,.8,.2,1);
  transform:translateY(0); z-index:1;
}
.svc-card::before{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(15,20,28,.1) 0%, rgba(15,20,28,.55) 62%, rgba(15,20,28,.92) 100%);
  transition:background .35s ease;
}
.svc-card:hover{transform:translateY(-6px); box-shadow:0 20px 38px -18px rgba(15,20,28,.5); z-index:2;}
.svc-card:hover::before{background:linear-gradient(180deg, rgba(15,20,28,.25) 0%, rgba(15,20,28,.68) 55%, rgba(15,20,28,.95) 100%);}
.svc-card > *{position:relative; z-index:1;}
.svc-card .icon{width:34px; height:34px; margin-bottom:16px; color:#fff; transition:transform .35s cubic-bezier(.2,.8,.2,1);}
.svc-card:hover .icon{transform:scale(1.1) rotate(-4deg);}
.svc-card h3{font-size:18px; text-transform:none; font-family:'IBM Plex Sans'; font-weight:700; margin-bottom:0; color:#fff; line-height:1.25;}
.svc-card ul{
  margin:0; padding:0; list-style:none; color:rgba(255,255,255,.82); font-size:13px; line-height:1.85;
  max-height:0; opacity:0; overflow:hidden; transition:max-height .4s ease, opacity .3s ease, margin-top .4s ease;
}
.svc-card:hover ul{max-height:180px; opacity:1; margin-top:12px;}
.svc-card ul li::before{content:'— '; color:var(--blue-400);}
.svc-more{
  display:inline-flex; align-items:center; gap:6px; margin-top:14px;
  font-family:'IBM Plex Mono'; font-size:10.5px; letter-spacing:0.12em; text-transform:uppercase; color:#fff;
  opacity:0; transform:translateX(-6px); transition:opacity .3s ease, transform .3s ease;
}
.svc-more::after{content:'→'; transition:transform .3s ease;}
.svc-card:hover .svc-more{opacity:1; transform:translateX(0);}
.svc-card:hover .svc-more::after{transform:translateX(3px);}
html[dir="rtl"] .svc-more{transform:translateX(6px);}
html[dir="rtl"] .svc-more::after{content:'←';}
html[dir="rtl"] .svc-card:hover .svc-more::after{transform:translateX(-3px);}

/* Staggered entrance for service cards (opacity only — hover lift stays independent) */
.svc-grid .svc-card{opacity:0; transition:opacity .6s ease, transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s cubic-bezier(.2,.8,.2,1);}
.svc-grid.in .svc-card{opacity:1;}
.svc-grid.in .svc-card:nth-child(1){transition-delay:.04s;}
.svc-grid.in .svc-card:nth-child(2){transition-delay:.1s;}
.svc-grid.in .svc-card:nth-child(3){transition-delay:.16s;}
.svc-grid.in .svc-card:nth-child(4){transition-delay:.22s;}
.svc-grid.in .svc-card:nth-child(5){transition-delay:.28s;}
.svc-grid.in .svc-card:nth-child(6){transition-delay:.34s;}

/* ---------- Why (dark) ---------- */
.why{background:var(--navy-900); color:#fff;}
.why .dim-line{color:var(--blue-400);}
.why .dim-line .bar, .why .dim-line .tick, .why .dim-line .bar::before, .why .dim-line .bar::after{background:var(--navy-700);}
.why .dim-line .label{color:var(--blue-400);}
.why .dim-line .label .idxnum{color:#fff;}
.why h2{color:#fff; font-size:clamp(28px,3.4vw,40px); max-width:640px; line-height:1.05; margin-bottom:56px;}
.why-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:36px;}
.why-item{border-top:1px solid var(--navy-700); padding-top:20px; opacity:0; transition:opacity .55s ease;}
.why-grid.in .why-item{opacity:1;}
.why-grid.in .why-item:nth-child(1){transition-delay:.05s;}
.why-grid.in .why-item:nth-child(2){transition-delay:.13s;}
.why-grid.in .why-item:nth-child(3){transition-delay:.21s;}
.why-grid.in .why-item:nth-child(4){transition-delay:.29s;}
.why-item .n{font-family:'IBM Plex Mono'; color:var(--blue-400); font-size:13px; margin-bottom:14px; display:block;}
.why-item h4{font-size:17px; text-transform:none; font-family:'IBM Plex Sans'; font-weight:700; color:#fff; margin-bottom:10px;}
.why-item p{margin:0; color:#aab4c4; font-size:14px;}

/* ---------- Process ---------- */
.process-list{display:flex; flex-direction:column;}
.p-row{
  display:grid; grid-template-columns:110px 1fr 1fr; gap:24px; align-items:center;
  padding:30px 0; border-bottom:1px solid var(--steel-300);
}
.p-row:first-child{border-top:1px solid var(--steel-300);}
.p-row .pn{font-family:'Big Shoulders Display'; font-weight:800; font-size:44px; color:var(--steel-300); line-height:1;}
.p-row h4{font-size:20px; text-transform:none; font-family:'IBM Plex Sans'; font-weight:700; color:var(--navy-900);}
.p-row p{margin:0; color:var(--steel-500); font-size:14.5px;}

/* ---------- Capability ---------- */
.cap-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:40px;}
.cap-card{border:1px solid var(--steel-300); padding:30px; background:var(--white); transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s cubic-bezier(.2,.8,.2,1), border-color .35s;}
.cap-card:hover{transform:translateY(-5px); box-shadow:0 16px 28px -18px rgba(20,27,37,.3); border-color:var(--blue-400);}
.cap-card .big{font-family:'Big Shoulders Display'; font-weight:800; font-size:40px; color:var(--blue-500); margin-bottom:6px;}
.cap-card h4{font-size:15px; letter-spacing:0.04em; margin-bottom:12px; text-transform:uppercase; font-family:'IBM Plex Mono'; font-weight:500; color:var(--navy-900);}
.cap-card p{margin:0; color:var(--steel-500); font-size:14px;}

/* ---------- CTA banner ---------- */
.cta-banner{background:var(--blue-500); color:#fff; text-align:center;}
.cta-banner h2{color:#fff; font-size:clamp(28px,3.6vw,42px); margin-bottom:22px;}
.cta-banner .btn{background:var(--navy-900); border-color:var(--navy-900);}
.cta-banner .btn:hover{background:var(--navy-800); border-color:var(--navy-800);}

/* ---------- Contact ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px;}
.contact-info h2{font-size:clamp(28px,3.4vw,38px); margin-bottom:20px; line-height:1.02;}
.contact-info p.lead{color:var(--navy-700); max-width:420px; margin-bottom:36px;}
.ci-row{display:flex; gap:18px; padding:18px 0; border-top:1px solid var(--steel-300);}
.ci-row:last-of-type{border-bottom:1px solid var(--steel-300);}
.ci-row .k{font-family:'IBM Plex Mono'; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--steel-500); width:110px; flex:0 0 auto; padding-top:2px;}
.ci-row .v{font-size:15.5px; color:var(--navy-900); font-weight:500;}
.ci-row .v a{border-bottom:1px solid var(--steel-300);}
.ci-row .v a:hover{border-color:var(--blue-500); color:var(--blue-600);}

form.quote{display:flex; flex-direction:column; gap:18px;}
.field{display:flex; flex-direction:column; gap:8px;}
.field label{font-family:'IBM Plex Mono'; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--steel-500);}
.field input, .field textarea, .field select{
  border:1px solid var(--steel-300); background:var(--white);
  padding:12px 14px; font-family:'IBM Plex Sans'; font-size:15px; color:var(--ink);
  border-radius:var(--radius);
}
.field textarea{resize:vertical; min-height:110px;}
.field input:focus, .field textarea:focus, .field select:focus{border-color:var(--blue-500); outline:none;}
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
form.quote .btn{align-self:flex-start; border:none;}
.form-note{font-size:12.5px; color:var(--steel-500); margin-top:-4px;}

/* ---------- Footer ---------- */
footer{background:var(--navy-900); color:#aab4c4; padding:56px 0 28px; margin-top:0;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:40px; border-bottom:1px solid var(--navy-700);}
.foot-brand{display:flex; align-items:center; gap:12px; margin-bottom:14px;}
.foot-brand img{height:32px;}
.foot-brand .name{font-family:'Big Shoulders Display'; font-weight:800; font-size:19px; color:#fff;}
footer p{font-size:13.5px; line-height:1.7; max-width:280px;}
footer h5{font-family:'IBM Plex Mono'; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:#6b7688; margin-bottom:16px; font-weight:500;}
footer ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px;}
footer ul a{font-size:14px; color:#c7cedb;}
footer ul a:hover{color:#fff;}
.foot-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:24px; font-size:12.5px; color:#6b7688; flex-wrap:wrap; gap:12px;}
.ar{font-family:'Tajawal', sans-serif;}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important;}
  .hero h1 .line span{transform:translateY(0);}
}

/* ---------- Our Work gallery ---------- */
.work-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.work-card{
  border:1px solid var(--steel-300); background:var(--white); overflow:hidden; scroll-margin-top:96px;
  transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s cubic-bezier(.2,.8,.2,1), border-color .35s;
}
.work-card[data-service]{cursor:pointer;}
.work-card[data-service]:hover{transform:translateY(-6px); box-shadow:0 18px 32px -18px rgba(20,27,37,.35); border-color:var(--blue-400);}
.work-scene{
  aspect-ratio:4/3; position:relative; overflow:hidden;
  background:var(--steel-100);
}
.work-scene img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s cubic-bezier(.2,.8,.2,1);}
.work-card:hover .work-scene img{transform:scale(1.08);}
.work-badge{
  position:absolute; bottom:8px; inset-inline-end:8px; z-index:1;
  width:34px; height:34px; border-radius:50%;
  background:rgba(20,27,37,.72); backdrop-filter:blur(2px);
  display:flex; align-items:center; justify-content:center;
  transition:transform .35s cubic-bezier(.2,.8,.2,1), background .35s;
}
.work-card:hover .work-badge{transform:scale(1.1); background:var(--blue-600);}
.work-badge svg{width:18px; height:18px; color:#fff;}
.work-info{padding:16px 18px 20px;}
.work-info h4{font-size:14px; text-transform:none; font-family:'IBM Plex Sans'; font-weight:700; color:var(--navy-900); margin-bottom:6px; line-height:1.25;}
.work-info p{margin:0; color:var(--steel-500); font-size:12.5px; line-height:1.6;}
.work-grid .work-card{opacity:0; transition:opacity .55s ease, transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s cubic-bezier(.2,.8,.2,1), border-color .35s;}
.work-grid.in .work-card{opacity:1;}
.work-grid.in .work-card:nth-child(4n+1){transition-delay:.03s;}
.work-grid.in .work-card:nth-child(4n+2){transition-delay:.08s;}
.work-grid.in .work-card:nth-child(4n+3){transition-delay:.13s;}
.work-grid.in .work-card:nth-child(4n+4){transition-delay:.18s;}

/* ---------- Language toggle ---------- */
.langtoggle{
  display:flex; align-items:center; border:1px solid var(--navy-900); font-family:'IBM Plex Mono'; font-size:11px; letter-spacing:0.06em; text-transform:uppercase; margin-right:6px;
}
.langtoggle button{
  background:transparent; border:none; padding:8px 12px; cursor:pointer; color:var(--navy-700); font-family:inherit; font-size:inherit; letter-spacing:inherit;
}
.langtoggle button.active{background:var(--navy-900); color:#fff;}
.mobile-panel .langtoggle{margin:14px 28px; width:calc(100% - 56px);}
.mobile-panel .langtoggle button{flex:1;}

/* ---------- Product grid (blueprint cards) ---------- */
.product-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--steel-300); border:1px solid var(--steel-300);}
.product-card{
  background:var(--white); padding:26px 22px 24px; display:block; cursor:pointer;
  transition:background .25s, transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s cubic-bezier(.2,.8,.2,1);
  position:relative; z-index:1;
}
.product-card:hover{background:var(--blue-100); transform:translateY(-5px); box-shadow:0 16px 28px -18px rgba(20,27,37,.32); z-index:2;}
.product-card svg{width:100%; height:76px; margin-bottom:16px; color:var(--blue-500); transition:transform .35s cubic-bezier(.2,.8,.2,1);}
.product-card:hover svg{transform:scale(1.08);}
.product-card h4{font-size:14.5px; text-transform:none; font-family:'IBM Plex Sans'; font-weight:700; color:var(--navy-900); margin-bottom:6px; line-height:1.25;}
.product-card p{margin:0; color:var(--steel-500); font-size:12.5px; line-height:1.6;}
.product-grid .product-card{opacity:0; transition:opacity .55s ease, background .25s, transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s cubic-bezier(.2,.8,.2,1);}
.product-grid.in .product-card{opacity:1;}
.product-grid.in .product-card:nth-child(4n+1){transition-delay:.03s;}
.product-grid.in .product-card:nth-child(4n+2){transition-delay:.08s;}
.product-grid.in .product-card:nth-child(4n+3){transition-delay:.13s;}
.product-grid.in .product-card:nth-child(4n+4){transition-delay:.18s;}

/* ---------- Brand strip ---------- */
.brand-strip{background:var(--navy-900); padding:44px 0;}
.brand-strip .dim-line{color:var(--blue-400); margin-bottom:28px;}
.brand-strip .dim-line .bar, .brand-strip .dim-line .tick, .brand-strip .dim-line .bar::before, .brand-strip .dim-line .bar::after{background:var(--navy-700);}
.brand-strip .dim-line .label{color:var(--blue-400);}
.brand-strip .dim-line .label .idxnum{color:#fff;}
.brand-row{display:flex; flex-wrap:wrap; gap:10px;}
.brand-pill{
  border:1px solid var(--navy-700); color:#c7cedb; font-family:'IBM Plex Mono'; font-size:12px; letter-spacing:0.04em;
  padding:9px 16px; display:flex; align-items:baseline; gap:8px;
}
.brand-pill b{color:#fff; font-family:'IBM Plex Sans'; font-weight:700; letter-spacing:0; font-size:13.5px;}
.brand-pill span{color:var(--blue-400); font-size:10.5px;}

/* ---------- Materials & brands (light section variant) ---------- */
.materials-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--steel-300); border:1px solid var(--steel-300);}
.materials-card{background:var(--white); padding:30px 26px;}
.materials-card h4{font-family:'IBM Plex Mono'; font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--blue-600); margin-bottom:16px;}
.materials-card ul{margin:0; padding:0; list-style:none;}
.materials-card li{
  display:flex; justify-content:space-between; gap:10px; padding:10px 0; border-top:1px solid var(--steel-100); font-size:14px; color:var(--navy-900); font-weight:500;
}
.materials-card li:first-of-type{border-top:none;}
.materials-card li span{color:var(--steel-500); font-weight:400; font-size:12.5px; font-family:'IBM Plex Mono';}

/* ---------- Service detail modal ---------- */
body.modal-open{overflow:hidden;}
.svc-modal{
  position:fixed; inset:0; z-index:1000;
  display:flex; align-items:center; justify-content:center; padding:24px;
  visibility:hidden; opacity:0;
  transition:opacity .3s ease, visibility 0s linear .3s;
}
.svc-modal.open{visibility:visible; opacity:1; transition:opacity .3s ease, visibility 0s linear 0s;}
.svc-modal-backdrop{
  position:absolute; inset:0; background:rgba(20,27,37,.78); backdrop-filter:blur(3px);
}
.svc-modal-panel{
  position:relative; background:var(--white); width:100%; max-width:960px; max-height:88vh;
  overflow-y:auto; display:grid; grid-template-columns:1fr 1fr;
  border:1px solid var(--steel-300);
  transform:scale(.94) translateY(14px); opacity:0;
  transition:transform .35s cubic-bezier(.2,.8,.2,1), opacity .35s ease;
}
.svc-modal.open .svc-modal-panel{transform:scale(1) translateY(0); opacity:1;}
.svc-modal-close{
  position:absolute; top:14px; inset-inline-end:14px; z-index:3;
  width:38px; height:38px; border-radius:50%; border:none; cursor:pointer;
  background:rgba(20,27,37,.65); color:#fff; backdrop-filter:blur(2px);
  display:flex; align-items:center; justify-content:center;
  transition:background .2s, transform .2s;
}
.svc-modal-close:hover{background:var(--blue-600); transform:rotate(90deg);}
.svc-modal-close svg{width:16px; height:16px;}
.svc-modal-gallery{background:var(--steel-100); display:flex; flex-direction:column;}
.svc-modal-mainimg{aspect-ratio:4/3; overflow:hidden; background:var(--steel-300);}
.svc-modal-mainimg img{width:100%; height:100%; object-fit:cover; display:block; transition:opacity .25s ease;}
.svc-modal-thumbs{display:flex; gap:8px; padding:12px;}
.svc-modal-thumb{
  flex:1 1 0; aspect-ratio:4/3; padding:0; border:2px solid transparent; overflow:hidden; cursor:pointer;
  background:none; transition:border-color .2s, opacity .2s; opacity:.6;
}
.svc-modal-thumb img{width:100%; height:100%; object-fit:cover; display:block;}
.svc-modal-thumb:hover{opacity:.9;}
.svc-modal-thumb.active{border-color:var(--blue-500); opacity:1;}
.svc-modal-body{padding:40px 36px; display:flex; flex-direction:column;}
.svc-modal-icon{width:36px; height:36px; color:var(--blue-500); margin-bottom:18px;}
.svc-modal-icon svg{width:100%; height:100%;}
.svc-modal-panel h3{font-size:23px; text-transform:none; font-family:'IBM Plex Sans'; font-weight:700; color:var(--navy-900); margin-bottom:14px; line-height:1.2;}
.svc-modal-detail{color:var(--navy-700); font-size:14.5px; line-height:1.75; margin:0 0 22px;}
.svc-modal-list{margin:0 0 28px; padding:0; list-style:none; color:var(--steel-500); font-size:13.5px; line-height:2;}
.svc-modal-list li::before{content:'— '; color:var(--blue-400);}
.svc-modal-body .btn{align-self:flex-start;}

@media (max-width:760px){
  .svc-modal{padding:0;}
  .svc-modal-panel{grid-template-columns:1fr; max-height:100vh; height:100%; max-width:100%; border:none;}
  .svc-modal-body{padding:28px 24px 36px;}
}

/* ---------- RTL / Arabic ---------- */
html[dir="rtl"] body{font-family:'Tajawal', 'IBM Plex Sans', sans-serif;}
html[dir="rtl"] h1, html[dir="rtl"] h2, html[dir="rtl"] h3, html[dir="rtl"] h4{font-family:'Tajawal', sans-serif; text-transform:none; letter-spacing:0;}
html[dir="rtl"] .mono, html[dir="rtl"] .navlinks a, html[dir="rtl"] .btn, html[dir="rtl"] .eyebrow, html[dir="rtl"] .dim-line .label, html[dir="rtl"] .field label, html[dir="rtl"] .ci-row .k, html[dir="rtl"] footer h5{
  font-family:'Tajawal', sans-serif; letter-spacing:0;
}
html[dir="rtl"] .fact, html[dir="rtl"] .p-row{grid-template-columns:1fr 70px;}
html[dir="rtl"] .fact .idx{order:2;}
html[dir="rtl"] .p-row .pn{order:2; text-align:right;}
html[dir="rtl"] .ci-row{flex-direction:row-reverse; justify-content:flex-end;}
html[dir="rtl"] .svc-card ul li::before, html[dir="rtl"] .product-card ul li::before{content:'— ';}
html[dir="rtl"] .eyebrow::before{order:2;}
html[dir="rtl"] .eyebrow{flex-direction:row-reverse; justify-content:flex-end;}
html[dir="rtl"] .brand-pill{flex-direction:row-reverse;}
html[dir="rtl"] .materials-card li{flex-direction:row-reverse; justify-content:space-between;}
html[dir="rtl"] .langtoggle{margin-right:0; margin-left:6px;}
html[dir="rtl"] .svc-modal-gallery{order:2;}
html[dir="rtl"] .svc-modal-body{order:1;}
html[dir="rtl"] .svc-modal-list li::before{content:'— ';}
html[dir="rtl"] .hero .overlay{background:linear-gradient(245deg, rgba(15,20,28,.95) 0%, rgba(16,22,31,.82) 32%, rgba(18,25,35,.48) 62%, rgba(20,27,37,.22) 100%);}
html[dir="rtl"] .page-header .overlay{background:linear-gradient(260deg, rgba(18,24,33,.94) 0%, rgba(18,24,33,.8) 38%, rgba(18,24,33,.42) 75%, rgba(18,24,33,.22) 100%);}
html[dir="rtl"] .hero-stats div{border-right:none; border-left:1px solid rgba(255,255,255,.22);}
html[dir="rtl"] .hero-stats div:last-child{border-left:none;}

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .about-grid{grid-template-columns:1fr; gap:40px;}
  .svc-grid{grid-template-columns:repeat(2,1fr);}
  .why-grid{grid-template-columns:repeat(2,1fr); row-gap:36px;}
  .p-row{grid-template-columns:60px 1fr; }
  .p-row p{grid-column:2 / 3;}
  .cap-grid{grid-template-columns:1fr; gap:24px;}
  .contact-grid{grid-template-columns:1fr; gap:48px;}
  .foot-grid{grid-template-columns:1fr 1fr; row-gap:32px;}
  .product-grid{grid-template-columns:repeat(2,1fr);}
  .materials-grid{grid-template-columns:1fr;}
  .work-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:640px){
  .navlinks{display:none;}
  .navtoggle{display:block;}
  nav .btn.hero-cta-nav{display:none;}
  .svc-grid{grid-template-columns:1fr;}
  .why-grid{grid-template-columns:1fr;}
  .hero-stats{grid-template-columns:1fr 1fr;}
  .hero-stats div:nth-child(2){border-right:1px solid var(--steel-300);}
  .two-col{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr;}
  section{padding:70px 0;}
  .product-grid{grid-template-columns:1fr;}
  .brand-row{gap:8px;}
  .work-grid{grid-template-columns:1fr;}
}

/* Small screens: let the dimension-line label shrink so it can't push the
   trailing bar + tick past the viewport edge (caused h-scroll under ~560px). */
@media (max-width:560px){
  .dim-line{gap:10px;}
  .dim-line .label{
    white-space:normal; min-width:0; flex:0 1 auto;
    font-size:10px; letter-spacing:0.08em; line-height:1.4;
  }
  .dim-line .bar{min-width:10px;}
}

/* Very small phones (<=380px): tighten the nav bar so the menu button
   can't push past the viewport edge. */
@media (max-width:380px){
  nav{gap:12px; padding:12px 16px;}
  .brand{gap:8px;}
  .brand img{height:34px;}
  .brand-text .name{font-size:19px;}
  .brand-text .tag{font-size:8px; letter-spacing:0.10em;}
  .langtoggle{margin-right:0; font-size:10px;}
  .langtoggle button{padding:6px 9px;}
  .navtoggle{padding:7px 9px;}
  .navtoggle span{width:18px;}
}
