/* ABZI Group — site styles. Generated from the approved design.
   Logical properties throughout, so Arabic can be added without a rebuild. */

:root{
  --paper:#F7F7F5; --surface:#FFFFFF; --ink:#0F1419; --ink2:#3D4750; --muted:#6B7680;
  --line:#E4E6E3; --line2:#CFD3CF; --accent:#166DB1; --labc:#265A82; --bodyink:#253F53;
  --ds:"Instrument Serif",Georgia,serif;
  --ui:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mo:"DM Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --pad:clamp(18px,4vw,56px);
}
*{box-sizing:border-box}
/* invisible page breaks - the journey rests on one company at a time */
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--ui);font-size:16px;
  line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2{margin:0;font-family:var(--ds);font-weight:400;line-height:1.04;letter-spacing:-.018em;text-wrap:balance}
p{margin:0}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}
.lab{font-family:var(--mo);font-size:.64rem;letter-spacing:.17em;text-transform:uppercase;
  color:var(--labc,#265A82);transition:color .5s ease}
.skip{position:absolute;inset-inline-start:-9999px;top:0;z-index:200;background:var(--ink);color:#fff;padding:10px 16px;font-family:var(--mo);font-size:.7rem}
.skip:focus{inset-inline-start:0}
#nav{position:fixed;inset-block-start:0;inset-inline:0;z-index:60;display:flex;align-items:center;gap:20px;height:70px;
  padding-inline:var(--pad);background:linear-gradient(to bottom,rgba(247,247,245,.97),rgba(247,247,245,.72) 60%,rgba(247,247,245,0));
  backdrop-filter:blur(6px);pointer-events:none}
#nav>*{pointer-events:auto}
#nav .brand{display:block;height:34px}
#nav .brand img{height:100%;width:auto;display:block}
#nav .sp{flex:1}
#nav .links{display:flex;gap:20px;font-size:.84rem;color:var(--ink2)}
#nav .links a{color:inherit;text-decoration:none}
#nav .links a:hover{color:var(--accent)}
@media (max-width:1000px){#nav .links{display:none}#nav .brand{height:28px}}
.btn{font-family:var(--mo);font-size:.63rem;letter-spacing:.13em;text-transform:uppercase;padding:8px 13px;
  border:1px solid var(--line2);color:var(--ink);background:var(--surface);cursor:pointer;border-radius:2px}
.btn:hover{border-color:var(--accent);color:var(--accent)}

#journey{position:relative}
/* the stage pins while the invisible snap panels below it scroll past */
#stage{position:sticky;inset-block-start:0;height:100vh;margin-block-end:-100vh;overflow:hidden}
.snap{height:100vh}
#copy{position:absolute;inset-block:0;inset-inline-start:0;z-index:4;display:grid;align-content:center;
  width:min(560px,calc(100% - var(--pad)*2 - 34px));margin-inline-start:var(--pad);
  padding-block:66px 34px;min-width:0}
.scene{grid-area:1/1;align-self:center;display:flex;flex-direction:column;min-width:0;
  opacity:0;visibility:hidden;transform:translate3d(0,18px,0);
  transition:opacity .45s ease,transform .45s ease,visibility .45s}
.scene.live{opacity:1;visibility:visible;transform:none}
.lockup{align-self:flex-start;width:min(330px,86%);margin-block-end:22px;display:block;
  transition:transform .25s ease}
.lockup:hover{transform:translateY(-2px)}
/* the call to action belongs after the facts, not between the logo and its sector */
.visit{order:5;align-self:flex-start;display:inline-flex;align-items:center;gap:7px;
  font-family:var(--mo);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--labc,#265A82);text-decoration:none;margin-block-start:26px;
  border-block-end:1px solid currentColor;padding-block-end:3px;opacity:.9;transition:opacity .2s}
.visit:hover{opacity:1}
.motion{order:6}
.visit:hover{border-block-end-color:currentColor}
#art{cursor:pointer}
.lockup img{width:100%;height:auto;display:block}
.scene h1,.scene h2{font-size:clamp(1.95rem,3.6vw,3.3rem)}
.scene em{font-style:italic;color:var(--accent);transition:color .5s ease}
.scene .bd{font-size:1.03rem;color:var(--bodyink,#2B343C);margin-block-start:16px;max-width:44ch;
  transition:color .5s ease}
.scene .fx{display:flex;gap:24px;flex-wrap:wrap;margin-block-start:22px}
.fx b{display:block;font-family:var(--ds);font-size:1.5rem;font-weight:400;line-height:1;color:var(--ink)}
.fx span{font-family:var(--mo);font-size:.61rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:block;margin-block-start:6px}
.motion{font-family:var(--mo);font-size:.59rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);
  margin-block-start:20px;display:flex;align-items:center;gap:9px}
.motion i{width:16px;height:1px;background:var(--accent);display:block;flex:none}
/* the 3D lives in its own box - it can never sit on top of the words */
/* the field runs the full frame; a paper scrim keeps the words crisp where they meet */
#art{position:absolute;inset:0;z-index:1;width:100%;height:100%}
#veil{position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(to right,
    rgba(247,247,245,.60) 0%, rgba(247,247,245,.54) 24%,
    rgba(247,247,245,.30) 48%, rgba(247,247,245,0) 70%)}
#glow{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(50% 54% at var(--gx,56%) 50%,var(--tint,rgba(22,109,177,.12)),transparent 76%);
  transition:background .55s ease}
#sky{position:absolute;inset:0;width:100%;height:100%;display:block}
@media (max-width:960px){
  #copy{width:calc(100% - var(--pad)*2 - 26px);align-content:end;padding-block:0 clamp(48px,12vh,110px)}
  #art{inset-block-end:auto;height:49vh}
  #veil{background:linear-gradient(to bottom,
    rgba(247,247,245,.06) 0%, rgba(247,247,245,.10) 28%,
    rgba(247,247,245,.62) 43%, rgba(247,247,245,.93) 53%, rgba(247,247,245,.97) 100%)}
  .scene h1,.scene h2{font-size:clamp(1.7rem,6.2vw,2.4rem)}
  .scene .bd{font-size:.94rem;margin-block-start:12px}
  .scene .fx{margin-block-start:16px;gap:18px}
  .lockup{width:min(260px,74%);margin-block-end:16px}
  .motion{display:none}
}
.cue{position:absolute;inset-block-end:18px;inset-inline-start:var(--pad);z-index:6;font-family:var(--mo);
  font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:9px;transition:opacity .5s}
.cue i{width:1px;height:20px;background:linear-gradient(var(--muted),transparent);animation:fall 1.9s ease-in-out infinite}
@keyframes fall{0%,100%{transform:translateY(-4px);opacity:.3}50%{transform:translateY(4px);opacity:1}}
#index{position:absolute;inset-block-start:50%;inset-inline-end:14px;transform:translateY(-50%);z-index:6;
  display:flex;flex-direction:column;gap:2px;align-items:flex-end}
#index button{display:flex;align-items:center;gap:9px;background:none;border:0;cursor:pointer;padding:6px 4px;
  font-family:var(--mo);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
#index button i{width:18px;height:1px;background:currentColor;transition:width .3s,background .3s;display:block;flex:none}
#index button[aria-current="true"]{color:var(--accent)}
#index button[aria-current="true"] i{width:32px;background:var(--accent)}
#index .nm{display:none}
@media (min-width:1320px){#index{inset-inline-end:16px}#index .nm{display:block}}
@media (max-width:960px){#glow{--gx:50%}}
main{position:relative;z-index:10;background:var(--paper);border-block-start:1px solid var(--line)}
.wrap{max-width:1120px;margin-inline:auto;padding:clamp(44px,7vw,80px) var(--pad)}
.note h2{font-size:1.45rem;margin-block:10px 12px}
.note p{color:var(--ink2);font-size:.96rem}
.note ul{margin:14px 0 0;padding-inline-start:18px;color:var(--ink2);font-size:.94rem}
.note li{margin-block-end:7px}
.tw{overflow-x:auto;margin-block-start:18px}
.mtable{width:100%;min-width:460px;border-collapse:collapse;font-size:.85rem}
.mtable th{text-align:start;font-family:var(--mo);font-size:.6rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--muted);font-weight:500;padding:8px 10px;border-block-end:1px solid var(--line2)}
.mtable td{padding:8px 10px;border-block-end:1px solid var(--line);color:var(--ink2)}
.mtable td:first-child{color:var(--ink);font-weight:600;white-space:nowrap}

/* ---- evidence sections ---- */
.band{padding-block:clamp(48px,7vw,86px);border-block-start:1px solid var(--line)}
.bhead{display:grid;gap:11px;margin-block-end:30px;max-width:66ch}
.bhead h2{font-size:clamp(1.7rem,3.4vw,2.5rem)}
.bhead p{color:var(--ink2);font-size:1rem}
.certs{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}
.cert{background:var(--surface);border:1px solid var(--line);border-radius:3px;overflow:hidden;
  display:flex;flex-direction:column;box-shadow:0 1px 2px rgba(15,20,25,.04),0 14px 34px -26px rgba(15,20,25,.3)}
.cert figure{margin:0;background:#EDEEEA;aspect-ratio:4/5;overflow:hidden}
.cert img{width:100%;height:100%;object-fit:cover;object-position:50% 22%;display:block}
.cert .body{padding:18px 20px 20px;display:grid;gap:7px}
.cert h3{font-family:var(--ds);font-weight:400;font-size:1.5rem;margin:0;letter-spacing:-.01em}
.cert dl{margin:6px 0 0;display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:.8rem}
.cert dt{font-family:var(--mo);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  padding-block-start:3px}
.cert dd{margin:0;color:var(--ink2)}
.cert dd.mono{font-family:var(--mo);font-size:.76rem;color:var(--ink)}
.issuer{display:flex;align-items:center;gap:9px;margin-block-start:12px;padding-block-start:12px;
  border-block-start:1px solid var(--line);font-family:var(--mo);font-size:.6rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted)}
.gal{display:grid;gap:14px;grid-template-columns:repeat(12,1fr)}
.gal figure{margin:0;border-radius:3px;overflow:hidden;background:#EDEEEA;position:relative}
.gal img{width:100%;height:100%;object-fit:cover;display:block}
.gal figcaption{position:absolute;inset-block-end:0;inset-inline:0;padding:26px 14px 11px;
  font-family:var(--mo);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:#fff;
  background:linear-gradient(to top,rgba(12,18,22,.78),transparent)}
.g-wide{grid-column:span 7;aspect-ratio:4/3}
.g-side{grid-column:span 5;aspect-ratio:4/3}
.g-third{grid-column:span 4;aspect-ratio:3/2}
.g-tall{grid-column:span 4;aspect-ratio:3/4}
@media (max-width:820px){.g-wide,.g-side,.g-third,.g-tall{grid-column:span 12}}
.flagbox{border:1px solid var(--line2);background:var(--surface);padding:15px 19px;font-size:.88rem;
  color:var(--ink2);display:flex;gap:13px;align-items:flex-start;margin-block-start:22px;border-radius:3px}
.flagbox b{color:var(--labc,#265A82);font-family:var(--mo);font-size:.6rem;letter-spacing:.12em;
  text-transform:uppercase;white-space:nowrap;padding-block-start:3px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition-duration:.01ms!important}}
.split2{display:grid;gap:clamp(24px,4vw,58px);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start}
.vcol .subhead{margin-block:0 15px}
.vcol .prose{max-width:58ch}
@media (min-width:900px){.vcol+.vcol{padding-inline-start:clamp(24px,3vw,46px);border-inline-start:1px solid var(--line)}}
/* ---- vision, chairman, location ---- */
.prose{max-width:66ch}
.prose p{color:var(--ink2);font-size:1.03rem;margin-block-end:1.05em}
.prose p:last-child{margin-block-end:0}
.subhead{font-family:var(--mo);font-size:.64rem;letter-spacing:.17em;text-transform:uppercase;
  color:var(--labc,#265A82);margin-block:34px 12px;display:block}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-block-start:24px}
.chip{font-family:var(--mo);font-size:.66rem;letter-spacing:.05em;padding:6px 12px;border-radius:2px;
  border:1px solid var(--line2);background:var(--surface);color:var(--ink2)}
.split{display:grid;gap:clamp(24px,4vw,56px);grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.quote{border-inline-start:3px solid var(--accent);padding:4px 0 4px 22px;margin-block:26px}
.quote p{font-family:var(--ds);font-size:clamp(1.35rem,2.6vw,1.85rem);line-height:1.25;color:var(--ink);
  letter-spacing:-.012em;margin:0}
.quote cite{display:block;font-family:var(--mo);font-size:.63rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);font-style:normal;margin-block-start:14px}
.tl{border:1px solid var(--line);background:var(--surface);border-radius:3px;overflow:hidden}
.tl div{display:grid;grid-template-columns:96px 1fr;gap:16px;padding:15px 20px;border-block-end:1px solid var(--line)}
.tl div:last-child{border-block-end:none}
.tl b{font-family:var(--mo);font-size:.72rem;color:var(--accent);font-weight:500;padding-block-start:2px}
.tl span{font-size:.92rem;color:var(--ink2)}
.namecard{border:1px solid var(--line);background:var(--surface);border-radius:3px;padding:22px 24px;margin-block-end:22px}
.namecard h3{font-family:var(--ds);font-weight:400;font-size:1.5rem;margin:0;letter-spacing:-.012em}
.namecard p{font-family:var(--mo);font-size:.63rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);margin:9px 0 0}
.loc{display:grid;gap:0;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  border:1px solid var(--line);background:var(--surface);border-radius:3px;overflow:hidden}
@media (max-width:820px){.loc{grid-template-columns:1fr}}
.loc figure{margin:0;background:#E9EBE7;min-height:230px}
.loc img{width:100%;height:100%;object-fit:cover;display:block}
.loc .info{padding:24px 26px;display:grid;gap:14px;align-content:start}
.loc h3{font-family:var(--ds);font-weight:400;font-size:1.45rem;margin:0;letter-spacing:-.012em}
.loc address{font-style:normal;color:var(--ink2);font-size:.95rem;line-height:1.55}
.loc dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:.86rem}
.loc dt{font-family:var(--mo);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-block-start:3px}
.loc dd{margin:0;color:var(--ink2)}
.loc dd a{color:var(--ink2);text-decoration:none;border-block-end:1px solid var(--line2)}
.loc dd a:hover{color:var(--accent);border-block-end-color:currentColor}
.loc .coord{font-family:var(--mo);font-size:.78rem;color:var(--ink)}
.legal{display:flex;flex-wrap:wrap;gap:8px 22px;margin-block-start:16px;font-size:.84rem}
.legal a{color:var(--muted);text-decoration:none;border-block-end:1px solid transparent}
.legal a:hover{color:var(--ink2);border-block-end-color:var(--line2)}
.certrow{margin-block-end:38px}
.certrow:last-of-type{margin-block-end:0}
.rowhead{display:grid;gap:5px;margin-block-end:16px;padding-block-end:12px;border-block-end:1px solid var(--line2);max-width:74ch}
.rowhead h3{font-family:var(--ds);font-weight:400;font-size:1.24rem;margin:0;letter-spacing:-.01em}
.rowhead p{color:var(--ink2);font-size:.9rem;margin:0}
.certs-sm{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.cert .reg{font-family:var(--mo);font-size:.76rem;color:var(--ink);margin:2px 0 0}
.cert-sm figure{aspect-ratio:5/6}
.cert-sm .body{padding:14px 16px 16px;gap:4px}
.cert-sm h3{font-size:1.15rem}
.cert-sm .reg{font-size:.7rem}
.cert-sm .lab{font-size:.58rem}
/* ---- eleven-scene additions ---- */
.lockup{align-self:flex-start;display:block;margin-block-end:22px;max-width:min(360px,88%);
  transition:transform .25s ease}
a.lockup:hover{transform:translateY(-2px)}
.lockup img{display:block;max-width:100%;max-height:150px;width:auto;height:auto}
.ctas{order:5;display:flex;gap:11px;flex-wrap:wrap;margin-block-start:26px}
.btn.solid{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:500;text-decoration:none}
.btn.solid:hover{filter:brightness(1.08);color:#fff}
.ctas .btn{text-decoration:none;display:inline-block}
.cards{display:grid;gap:1px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  background:var(--line);border:1px solid var(--line);border-radius:3px;overflow:hidden}
.co-card{background:var(--surface);padding:24px;display:flex;flex-direction:column;gap:9px;
  text-decoration:none;color:inherit;transition:background .2s}
a.co-card:hover{background:#FBFBF9}
.co-card .tp{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.co-card .sec{font-family:var(--mo);font-size:.6rem;letter-spacing:.13em;text-transform:uppercase}
.co-card .yr{font-family:var(--mo);font-size:.6rem;color:var(--muted);white-space:nowrap}
.co-card h3{font-family:var(--ds);font-weight:400;font-size:1.34rem;margin:0;letter-spacing:-.01em}
.co-card p{font-size:.9rem;color:var(--ink2);flex:1;margin:0}
.co-card .go{font-family:var(--mo);font-size:.61rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--muted);margin-block-start:4px}
a.co-card:hover .go{color:var(--ink)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  border:1px solid var(--line);background:var(--surface);border-radius:3px;overflow:hidden}
.stats div{padding:22px 24px;border-inline-end:1px solid var(--line)}
.stats div:last-child{border-inline-end:none}
.stats b{display:block;font-family:var(--ds);font-size:2.4rem;font-weight:400;line-height:1;letter-spacing:-.02em}
.stats span{font-family:var(--mo);font-size:.62rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);
  display:block;margin-block-start:10px;line-height:1.5}
@media (max-width:680px){.stats div{border-inline-end:none;border-block-end:1px solid var(--line)}}
.two{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));align-items:start}
.cta{border:1px solid var(--line);background:var(--surface);border-radius:3px;
  padding:clamp(24px,3.4vw,38px);display:grid;gap:13px}
.cta h2{font-size:clamp(1.5rem,3vw,2.1rem)}
.cta p{color:var(--ink2);font-size:.96rem}
.cta .row{display:flex;gap:11px;flex-wrap:wrap;margin-block-start:5px}
footer{border-block-start:1px solid var(--line);padding-block:36px 52px;color:var(--muted);font-size:.86rem}
footer .fl{display:flex;flex-wrap:wrap;gap:18px 40px;justify-content:space-between;align-items:flex-start}
footer img{max-width:230px;height:auto;display:block;margin-block-end:12px}
footer a{color:var(--muted)}
footer a:hover{color:var(--ink2)}