/* ============================================================
   Al Bayan MENA — Technical Services L.L.C
   Design system: luxury dark + gold, Spectral / Barlow
   Static · cPanel-ready · multi-page
   ============================================================ */

:root{
  --ink:#0b0b0d; --ink2:#111114; --ink3:#16161b; --paper:#f6f2e9;
  --gold:#c8a253; --gold-b:#e6c878; --gold-d:#9a7a32; --line:rgba(200,162,83,.22);
  --tx:#ece6d8; --tx2:#a39d8d;
  --serif:'Spectral',Georgia,serif; --sans:'Barlow',system-ui,sans-serif;
  --maxw:1200px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--ink);color:var(--tx);font-family:var(--sans);font-weight:300;line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.eyebrow{font-family:var(--sans);font-weight:600;letter-spacing:.42em;text-transform:uppercase;font-size:11px;color:var(--gold);display:block}
h1,h2,h3{font-family:var(--serif);font-weight:300;line-height:1.1}
.gold{color:var(--gold-b)}
.rule{height:1px;width:64px;background:linear-gradient(90deg,var(--gold),transparent);border:0;margin:18px 0 26px}
.center{text-align:center}
.mt0{margin-top:0}

.btn{display:inline-block;font-family:var(--sans);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:12px;
 padding:15px 30px;border:1px solid var(--gold);color:var(--gold-b);transition:.35s;cursor:pointer;background:transparent}
.btn:hover{background:var(--gold);color:var(--ink);box-shadow:0 10px 30px rgba(200,162,83,.18)}
.btn.solid{background:linear-gradient(135deg,var(--gold-b),var(--gold-d));color:var(--ink);border-color:transparent}
.btn.solid:hover{filter:brightness(1.08)}

/* ---------- header ---------- */
header{position:fixed;top:0;left:0;right:0;z-index:50;transition:.4s;padding:20px 0}
header.scrolled{background:rgba(11,11,13,.86);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:12px 0}
.nav{display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:12px}
.brand img{height:42px;transition:.4s}
header.scrolled .brand img{height:34px}
.brand .bt{font-family:var(--sans);font-weight:700;letter-spacing:.12em;font-size:14px;color:var(--gold-b);line-height:1;display:block}
.brand .bs{font-family:var(--sans);font-weight:400;letter-spacing:.24em;font-size:7.5px;color:var(--tx2);text-transform:uppercase;margin-top:2px;display:block}
.menu{display:flex;align-items:center;gap:34px}
.menu a{font-family:var(--sans);font-weight:500;letter-spacing:.06em;font-size:13px;color:var(--tx);position:relative;padding:4px 0}
.menu a:after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold);transition:.3s}
.menu a:hover,.menu a.active{color:var(--gold-b)} .menu a:hover:after,.menu a.active:after{width:100%}
.menu .btn{padding:11px 22px}
.menu .btn:after{display:none}
.burger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:6px;background:none;border:0}
.burger span{width:26px;height:2px;background:var(--gold-b);transition:.3s}

/* ---------- hero (home) ---------- */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden}
.hero-bg{position:absolute;inset:0;background-image:url('../img/hero.jpg');background-size:cover;background-position:center;filter:grayscale(.2) brightness(.5)}
.hero-bg:after{content:"";position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(8,8,10,.92) 0%,rgba(8,8,10,.6) 55%,rgba(8,8,10,.35) 100%),
  radial-gradient(120% 80% at 20% 30%,rgba(200,162,83,.10),transparent 60%)}
.hero .wrap{position:relative;z-index:2;padding-top:120px;padding-bottom:80px}
.hero h1{font-size:clamp(40px,6.4vw,82px);letter-spacing:.005em;margin:22px 0 0;max-width:14ch}
.hero h1 em{font-style:italic;color:var(--gold-b)}
.hero p{font-family:var(--sans);font-weight:300;font-size:clamp(15px,1.7vw,19px);color:var(--tx2);max-width:56ch;margin:26px 0 38px;line-height:1.85}
.hero .cta{display:flex;gap:16px;flex-wrap:wrap}
.scrollcue{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);z-index:2;font-family:var(--sans);
 letter-spacing:.3em;text-transform:uppercase;font-size:9px;color:var(--tx2);writing-mode:vertical-rl;animation:bob 2.4s infinite}
@keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}

/* ---------- page hero (inner pages) ---------- */
.phero{position:relative;padding:172px 0 70px;overflow:hidden;border-bottom:1px solid var(--line)}
.phero-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:grayscale(.25) brightness(.4)}
.phero-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,8,10,.93),rgba(8,8,10,.66) 70%,rgba(8,8,10,.45))}
.phero .wrap{position:relative;z-index:2}
.phero h1{font-size:clamp(34px,5vw,60px);margin:16px 0 0}
.phero h1 em{font-style:italic;color:var(--gold-b)}
.phero p{font-family:var(--sans);color:var(--tx2);max-width:60ch;margin-top:18px;font-size:16px}
.crumbs{font-family:var(--sans);font-size:12px;letter-spacing:.08em;color:var(--tx2);margin-top:22px}
.crumbs a:hover{color:var(--gold-b)} .crumbs span{color:var(--gold-d);margin:0 8px}

/* ---------- partners strip ---------- */
.partners{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--ink2);overflow:hidden;padding:22px 0}
.pmark{display:flex;align-items:center;gap:60px;white-space:nowrap;animation:scroll 26s linear infinite;width:max-content}
.pmark span{font-family:var(--sans);font-weight:600;letter-spacing:.18em;font-size:15px;color:var(--tx2);text-transform:uppercase}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.pmark{animation:none}.scrollcue{animation:none}}

/* ---------- sections ---------- */
section{padding:110px 0;position:relative}
.alt{background:var(--ink2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sec-head{max-width:720px}
.sec-head h2{font-size:clamp(30px,4.2vw,52px);margin-top:14px}
.sec-head h2 em{font-style:italic;color:var(--gold-b)}
.sec-head p{font-family:var(--sans);font-weight:300;color:var(--tx2);margin-top:18px;font-size:16px}
.reveal{opacity:0;transform:translateY(26px);transition:.9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* ---------- about ---------- */
.about{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center}
.about .txt p{font-family:var(--sans);color:var(--tx2);font-size:15.5px;margin-top:18px}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.stat{background:var(--ink);padding:34px 26px;text-align:center}
.stat .v{font-family:var(--serif);font-weight:300;font-size:46px;color:var(--gold-b);line-height:1}
.stat .k{font-family:var(--sans);font-weight:600;letter-spacing:.16em;text-transform:uppercase;font-size:10px;color:var(--tx2);margin-top:12px}

/* ---------- values / commitments ---------- */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:54px}
.svc{background:var(--ink);padding:42px 34px;transition:.4s}
.svc:hover{background:var(--ink3)}
.svc .no{font-family:var(--serif);font-size:15px;color:var(--gold-d);letter-spacing:.2em}
.svc h3{font-size:24px;margin:18px 0 12px;color:var(--tx)}
.svc p{font-family:var(--sans);font-weight:300;font-size:13.5px;color:var(--tx2);line-height:1.75}
.svc ul{list-style:none;margin-top:16px}
.svc ul li{font-family:var(--sans);font-size:13px;color:var(--tx2);padding-left:18px;position:relative;margin-top:8px}
.svc ul li:before{content:"";position:absolute;left:0;top:9px;width:7px;height:7px;background:var(--gold-d);transform:rotate(45deg)}

/* ---------- lighting ---------- */
.lighting{background:linear-gradient(180deg,var(--ink),#08080a);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.lt-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin-top:10px}
.lt-txt p{font-family:var(--sans);font-weight:300;color:var(--tx2);font-size:15.5px;margin-top:18px}
.brandline{font-family:var(--sans);font-weight:700;letter-spacing:.16em;font-size:17px;color:var(--gold-b);margin:26px 0 6px}
.brandline small{display:block;font-weight:400;letter-spacing:.24em;font-size:9px;color:var(--tx2);text-transform:uppercase;margin-top:8px}
.lt-imgs{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:14px}
.lt-imgs img{width:100%;height:100%;object-fit:cover;border:1px solid var(--line)}
.lt-imgs .tall{grid-row:span 2;height:100%}

/* ---------- portfolio cards (text-only, new-site style) ---------- */
.grid-pf{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:54px}
.pf{position:relative;border:1px solid var(--line);background:var(--ink2);padding:34px 28px;min-height:210px;display:flex;flex-direction:column;justify-content:flex-end;transition:.4s;overflow:hidden}
.pf:before{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 80% 0%,rgba(200,162,83,.10),transparent 60%);opacity:0;transition:.4s}
.pf:hover{transform:translateY(-6px);border-color:var(--gold)}
.pf:hover:before{opacity:1}
.pf .tag{font-family:var(--sans);font-weight:600;letter-spacing:.16em;text-transform:uppercase;font-size:9.5px;color:var(--gold);position:relative;z-index:2}
.pf h3{font-size:22px;margin-top:10px;color:var(--tx);position:relative;z-index:2}
.pf .meta{font-family:var(--sans);font-weight:300;font-size:12px;color:var(--tx2);margin-top:8px;position:relative;z-index:2}

/* ---------- branches ---------- */
.branches{background:var(--ink2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.grid-br{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:54px}
.br{border:1px solid var(--line);padding:32px 26px;transition:.4s;background:var(--ink)}
.br:hover{border-color:var(--gold);background:var(--ink3)}
.br .ct{font-family:var(--sans);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:11px;color:var(--gold-b)}
.br h3{font-family:var(--serif);font-size:19px;margin-top:14px;color:var(--tx);line-height:1.25}
.br .det{font-family:var(--sans);font-weight:300;font-size:12.5px;color:var(--tx2);margin-top:14px;line-height:1.7}
.br .badge{display:inline-block;font-family:var(--sans);font-weight:600;letter-spacing:.1em;font-size:8.5px;text-transform:uppercase;color:var(--ink);background:var(--gold);padding:3px 9px;margin-top:14px}

/* ---------- contact ---------- */
.contact{text-align:center}
.contact h2{font-size:clamp(30px,5vw,58px)}
.contact h2 em{font-style:italic;color:var(--gold-b)}
.cinfo{display:flex;justify-content:center;gap:46px;flex-wrap:wrap;margin:38px 0 36px;font-family:var(--sans);font-size:14px;color:var(--tx2)}
.cinfo b{display:block;font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:10px;color:var(--gold);margin-bottom:6px}

/* contact page layout */
.contact-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:64px;align-items:start}

/* info cards (contact details page) */
.info-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.icard{border:1px solid var(--line);background:var(--ink2);padding:26px 24px;transition:.4s;position:relative;overflow:hidden}
.icard:before{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 80% 0%,rgba(200,162,83,.10),transparent 60%);opacity:0;transition:.4s}
.icard:hover{border-color:var(--gold);transform:translateY(-4px)}
.icard:hover:before{opacity:1}
.icard>*{position:relative;z-index:2}
.icard .ic-ico{width:44px;height:44px;border:1px solid var(--gold-d);display:flex;align-items:center;justify-content:center;color:var(--gold-b);font-size:20px;margin-bottom:18px}
.icard.whatsapp .ic-ico{border-color:#3ba776;color:#5fd49e}
.icard .ic-k{font-family:var(--sans);font-weight:600;letter-spacing:.16em;text-transform:uppercase;font-size:10px;color:var(--gold)}
.icard .ic-v{font-family:var(--sans);font-size:14px;color:var(--tx);margin-top:9px;line-height:1.65}
.icard .ic-v a:hover{color:var(--gold-b)}
.icard .ic-act{display:inline-block;font-family:var(--sans);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:10px;color:var(--gold-b);margin-top:16px}
.icard .ic-act.muted{color:var(--tx2);font-weight:400}
.icard.whatsapp .ic-act{color:#5fd49e}

/* map */
.map-wrap{position:relative;border:1px solid var(--line);background:var(--ink2);aspect-ratio:4/3;overflow:hidden}
.map-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.35) invert(.92) contrast(.9) hue-rotate(180deg)}
.map-wrap:hover iframe{filter:none}

/* large CTA */
.btn.lg{padding:18px 44px;font-size:13px}
.cta-band{text-align:center}

.cdetails .citem{display:flex;gap:18px;padding:22px 0;border-bottom:1px solid var(--line)}
.cdetails .citem:last-child{border-bottom:0}
.cdetails .ci-ico{flex:0 0 44px;height:44px;border:1px solid var(--gold-d);display:flex;align-items:center;justify-content:center;color:var(--gold-b);font-family:var(--serif)}
.cdetails .ci-k{font-family:var(--sans);font-weight:600;letter-spacing:.16em;text-transform:uppercase;font-size:10px;color:var(--gold)}
.cdetails .ci-v{font-family:var(--sans);font-size:14.5px;color:var(--tx);margin-top:6px;line-height:1.6}
.cdetails .ci-v a:hover{color:var(--gold-b)}

/* form */
.form{border:1px solid var(--line);background:var(--ink2);padding:40px 38px}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{margin-bottom:18px}
.field label{display:block;font-family:var(--sans);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:10px;color:var(--tx2);margin-bottom:9px}
.field label .req{color:var(--gold-b)}
.field input,.field select,.field textarea{width:100%;background:var(--ink);border:1px solid var(--line);color:var(--tx);
 font-family:var(--sans);font-size:14px;font-weight:300;padding:13px 15px;transition:.3s;border-radius:0}
.field textarea{resize:vertical;min-height:130px}
.field select{appearance:none;cursor:pointer;
 background-image:linear-gradient(45deg,transparent 50%,var(--gold-b) 50%),linear-gradient(135deg,var(--gold-b) 50%,transparent 50%);
 background-position:calc(100% - 20px) 19px,calc(100% - 14px) 19px;background-size:6px 6px,6px 6px;background-repeat:no-repeat}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold)}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:#c0563f}
.field .err{display:none;font-family:var(--sans);font-size:11px;color:#d6735b;margin-top:7px;letter-spacing:.02em}
.field.invalid .err{display:block}
.form .btn{width:100%;margin-top:6px}
.form-note{font-family:var(--sans);font-size:11.5px;color:var(--tx2);margin-top:16px;text-align:center;letter-spacing:.02em}
.form-msg{font-family:var(--sans);font-size:14px;padding:15px 18px;margin-bottom:22px;border:1px solid var(--line);display:none}
.form-msg.show{display:block}
.form-msg.ok{border-color:var(--gold);color:var(--gold-b);background:rgba(200,162,83,.08)}
.form-msg.bad{border-color:#c0563f;color:#e08a72;background:rgba(192,86,63,.08)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- project detail ---------- */
.pd-hero{position:relative;padding:172px 0 70px;border-bottom:1px solid var(--line);overflow:hidden}
.pd-hero .phero-bg:after{background:linear-gradient(90deg,rgba(8,8,10,.92),rgba(8,8,10,.55))}
.pd-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:60px;align-items:start}
.pd-grid h2{font-size:clamp(26px,3.6vw,40px)}
.pd-grid h2 em{font-style:italic;color:var(--gold-b)}
.pd-grid p{font-family:var(--sans);color:var(--tx2);font-size:15.5px;margin-top:18px}
.pd-facts{border:1px solid var(--line);background:var(--ink2)}
.pd-facts .f{padding:20px 26px;border-bottom:1px solid var(--line)}
.pd-facts .f:last-child{border-bottom:0}
.pd-facts .fk{font-family:var(--sans);font-weight:600;letter-spacing:.16em;text-transform:uppercase;font-size:9.5px;color:var(--gold)}
.pd-facts .fv{font-family:var(--sans);font-size:15px;color:var(--tx);margin-top:7px}

/* ---------- 404 ---------- */
.nf{min-height:78vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:140px 0 80px}
.nf .big{font-family:var(--serif);font-size:clamp(90px,18vw,180px);color:var(--gold-b);line-height:.9}
.nf h2{font-size:clamp(24px,4vw,38px);margin-top:10px}
.nf p{font-family:var(--sans);color:var(--tx2);margin:18px auto 30px;max-width:46ch}

/* ---------- footer ---------- */
footer{background:#08080a;border-top:1px solid var(--line);padding:64px 0 30px}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.fgrid img{height:52px;margin-bottom:18px}
.fgrid p{font-family:var(--sans);font-weight:300;font-size:12.5px;color:var(--tx2);line-height:1.8;max-width:34ch}
.fcol h4{font-family:var(--sans);font-weight:600;letter-spacing:.16em;text-transform:uppercase;font-size:11px;color:var(--gold);margin-bottom:18px}
.fcol a,.fcol .li{display:block;font-family:var(--sans);font-weight:300;font-size:13px;color:var(--tx2);margin-bottom:11px;transition:.25s}
.fcol a:hover{color:var(--gold-b)}
.fbot{border-top:1px solid var(--line);margin-top:50px;padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
 font-family:var(--sans);font-size:11px;color:var(--tx2);letter-spacing:.04em}

/* ---------- responsive ---------- */
@media(max-width:980px){
 .pd-grid{grid-template-columns:1fr;gap:40px}
 .contact-grid{grid-template-columns:1fr;gap:44px}
}
@media(max-width:880px){
 .menu{position:fixed;inset:0 0 0 auto;width:78%;max-width:330px;background:var(--ink2);flex-direction:column;justify-content:center;gap:26px;
  transform:translateX(100%);transition:.4s;border-left:1px solid var(--line);z-index:60}
 .menu.open{transform:none}
 .burger{display:flex;z-index:61}
 .about,.lt-grid{grid-template-columns:1fr;gap:36px}
 .grid3,.grid-pf,.grid-br{grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr 1fr}
 section{padding:78px 0}
 .phero,.pd-hero{padding:140px 0 56px}
}
@media(max-width:560px){
 .stats{grid-template-columns:1fr 1fr}.fgrid{grid-template-columns:1fr}.cinfo{gap:26px}
 .form{padding:30px 22px}.form .row{grid-template-columns:1fr}
 .info-cards{grid-template-columns:1fr}
  .wrap{padding:0 20px}
}
