/* Xcendia — design system v2.1. Navy ground, single teal accent.
   Tokens follow the Xcendia Brand Identity & Guidelines.
   v2.1: type scale collapsed to three heading tiers and two body sizes. */

:root{
  --navy-900:#08141F;
  --navy-800:#0E1E2E;
  --navy-700:#12263A;
  --graphite:#1A1C20;
  --teal:#14b8a6;
  --teal-400:#2dd4bf;
  --teal-600:#0e9e93;
  --text-1:#ffffff;
  --text-2:#c6d3df;
  --text-3:#a6b8c7;
  --line:rgba(255,255,255,.10);
  --line-strong:rgba(255,255,255,.18);
  --line-teal:rgba(20,184,166,.35);
  --glass:rgba(255,255,255,.04);
  --glass-hi:rgba(255,255,255,.06);
  --r-sm:6px; --r-md:10px; --r-tile:14px; --r-card:20px; --r-panel:28px;
  --d-ctl:140ms; --d-panel:220ms; --d-sect:340ms; --d-hero:520ms;
  --e-std:cubic-bezier(.2,.8,.2,1);
  --e-in:cubic-bezier(.16,1,.3,1);
  --wrap:1200px;
  --gutter:clamp(20px,5vw,48px);
  --section:clamp(72px,9vw,120px);
  /* Type scale. Three heading tiers, two body sizes. Nothing between them. */
  --t-card:20px;     /* card and row titles, Xolonium */
  --t-compact:17px;  /* compact rows and labelled blocks, Inter */
  --t-body:15px;     /* all body copy inside components */
  --t-meta:13.5px;   /* metadata, chips, footnotes */
}

/* ---------- base ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--navy-900);color:var(--text-2);
  font-family:'Inter','Noto Sans Arabic',system-ui,sans-serif;font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
a,button,input,textarea,select{touch-action:manipulation}
img,svg{max-width:100%}
img{height:auto}
h1,h2,h3,h4,p{margin:0}
h1,h2,h3{font-family:'Xolonium','Noto Kufi Arabic',sans-serif;font-weight:700;color:var(--text-1);
  line-height:1.08;letter-spacing:0;text-wrap:pretty}
strong{color:var(--text-1);font-weight:600}
::selection{background:rgba(20,184,166,.3);color:#fff}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:3px solid rgba(20,184,166,.55);outline-offset:4px;border-radius:var(--r-sm)}
.skip{position:absolute;top:-100px;inset-inline-start:12px;z-index:100}
.skip:focus{top:12px;background:var(--teal);color:var(--navy-900);padding:12px 16px;border-radius:var(--r-md)}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.eyebrow{display:block;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--teal);margin-bottom:18px}
.num{font-family:'Xolonium',sans-serif;font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--teal)}

/* ---------- motion ---------- */
[data-reveal]{opacity:0;transform:translateY(12px);
  transition:opacity var(--d-sect) var(--e-in),transform var(--d-sect) var(--e-in)}
[data-reveal].is-in{opacity:1;transform:none}
.hero [data-reveal]{transition-duration:var(--d-hero)}
@keyframes xc-flow{to{stroke-dashoffset:-220}}
@keyframes xc-node{0%,100%{opacity:.45}50%{opacity:1}}
@keyframes xc-halo{0%,100%{opacity:.30;transform:translate(-50%,-50%) scale(1)}
  50%{opacity:.52;transform:translate(-50%,-50%) scale(1.04)}}

/* ---------- buttons ---------- */
.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;
  padding:14px 24px;border-radius:var(--r-md);border:1px solid transparent;
  background:var(--teal);color:var(--navy-900);font-size:15px;font-weight:600;
  transition:background var(--d-ctl) var(--e-std),transform var(--d-ctl) var(--e-std),
    border-color var(--d-ctl) var(--e-std),color var(--d-ctl) var(--e-std)}
.button:hover{background:var(--teal-400);transform:translateY(-1px)}
.button:active{background:var(--teal-600);transform:scale(.985)}
.button.line{background:var(--glass);border-color:var(--line-strong);color:var(--text-1)}
.button.line:hover{background:rgba(20,184,166,.08);border-color:var(--line-teal)}
.button.dark{background:var(--teal);color:var(--navy-900)}
.button.small{min-height:40px;padding:10px 18px;font-size:14px}
.arrow{font-size:17px;line-height:1}
[dir=rtl] .arrow{transform:scaleX(-1)}
.text-link{display:inline-flex;align-items:center;gap:10px;font-size:var(--t-meta);font-weight:600;color:var(--teal);
  transition:gap var(--d-ctl) var(--e-std),color var(--d-ctl) var(--e-std)}
.text-link:hover{color:var(--teal-400);gap:14px}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(10,23,36,.62);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--line);
  transition:background var(--d-panel) var(--e-std),border-color var(--d-panel) var(--e-std)}
.site-header.is-scrolled{background:rgba(10,23,36,.94);border-bottom-color:var(--line-strong)}
.admin-bar .site-header{top:32px}
.header-inner{min-height:76px;display:flex;align-items:center;gap:clamp(16px,3vw,40px);
  transition:min-height var(--d-panel) var(--e-std)}
.site-header.is-scrolled .header-inner{min-height:62px}
.brand{display:block;width:186px;flex:0 0 auto}
.brand-mark{display:block;width:100%;height:auto}
.nav{display:flex;align-items:center;gap:26px;margin-inline-start:auto;font-size:14px;font-weight:500}
.nav a{color:var(--text-2);transition:color var(--d-ctl) var(--e-std)}
.nav a:hover{color:var(--text-1)}
.nav a[aria-current=page]{color:var(--teal)}
/* Nav link colour must not leak into the CTA: navy on teal is the only legible pairing. */
.nav a.button,.nav a.button:hover,.nav a.button[aria-current=page]{color:var(--navy-900)}
.nav .lang{font-size:13px;font-weight:600;color:var(--text-2);background:var(--glass);
  border:1px solid var(--line);border-radius:var(--r-md);padding:9px 14px;transition:all var(--d-ctl) var(--e-std)}
.nav .lang:hover{background:rgba(20,184,166,.12);border-color:var(--line-teal);color:var(--text-1)}
.menu-toggle{display:none;flex-direction:column;gap:4px;align-items:center;justify-content:center;
  width:44px;height:44px;margin-inline-start:auto;background:var(--glass);border:1px solid var(--line);
  border-radius:var(--r-md)}
.menu-toggle span{display:block;width:16px;height:1.5px;background:#fff;transition:transform var(--d-ctl) var(--e-std)}
.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-2px) rotate(-45deg)}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.hero:before{content:'';position:absolute;inset:0;
  background:radial-gradient(115% 120% at 8% -12%,rgba(20,184,166,.46) 0%,rgba(20,184,166,.14) 32%,rgba(10,23,36,0) 64%),
    linear-gradient(180deg,var(--navy-700) 0%,var(--navy-900) 100%)}
.hero:after{content:'';position:absolute;inset:0;pointer-events:none;opacity:.05;
  background-image:radial-gradient(#fff .5px,transparent .5px);background-size:3px 3px}
.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);
  gap:clamp(40px,5vw,72px);align-items:center;padding-block:clamp(64px,9vw,116px) clamp(48px,6vw,76px)}
.hero h1{font-size:clamp(2.75rem,6.8vw,5.25rem);line-height:1;margin-top:20px}
.hero h1 em{font-style:normal;color:var(--teal);text-shadow:0 0 48px rgba(20,184,166,.35)}
/* Brand-book watermark: the mark at architectural scale, outline only, bleeding off the edge. */
/* Sized to fit the hero's height so the whole mark reads; only the outer edge bleeds off. */
.hero-mark{position:absolute;top:50%;inset-inline-end:-14%;width:min(52vw,720px);transform:translateY(-50%);
  opacity:.3;pointer-events:none;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 28%);mask-image:linear-gradient(90deg,transparent 0%,#000 28%)}
[dir=rtl] .hero-mark{-webkit-mask-image:linear-gradient(270deg,transparent 0%,#000 28%);mask-image:linear-gradient(270deg,transparent 0%,#000 28%)}
.hero-mark svg{display:block;width:100%;height:auto;stroke-width:1.25}
.hero-lead{font-size:clamp(16px,1.6vw,19px);line-height:1.55;color:#d4e3e8;max-width:54ch;margin-top:24px}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
.hero-note{font-size:var(--t-meta);color:var(--text-3);margin-top:32px}
.hero-bottom{position:relative;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;
  border-top:1px solid var(--line);padding-block:26px clamp(24px,4vw,36px);
  font-size:13px;font-weight:600;letter-spacing:.14em;color:var(--text-3)}

/* capability lattice */
.lattice{position:relative;min-height:340px}
.lattice .halo{position:absolute;left:50%;top:50%;width:min(46%,190px);
  transform:translate(-50%,-50%);opacity:.34;pointer-events:none;animation:xc-halo 6.5s ease-in-out infinite}
.lattice svg{display:block;position:relative;width:100%;height:auto}
.lattice .rail{stroke:rgba(20,184,166,.22);stroke-width:1;fill:none;stroke-linecap:round;stroke-linejoin:round}
.lattice .hub{fill:var(--navy-900);stroke:rgba(20,184,166,.6);stroke-width:1.2;
  filter:drop-shadow(0 0 16px rgba(20,184,166,.35))}
.lattice .hub-mark{fill:var(--teal)}
.lattice .pin{stroke:rgba(20,184,166,.75);stroke-width:2.2;stroke-linecap:round;fill:none}
.lattice .die{fill:none;stroke:rgba(20,184,166,.28);stroke-width:1}
.lattice .pulse{stroke:var(--teal);stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:26 194;
  animation:xc-flow 3.4s linear infinite}
.lattice .node{fill:var(--navy-900);stroke:rgba(20,184,166,.5);stroke-width:1.2}
.lattice .dot{fill:var(--teal);animation:xc-node 3.4s ease-in-out infinite}
.lattice .label{font-family:'Inter',sans-serif;font-size:11px;font-weight:600;letter-spacing:.6px;fill:#d3dee7}
.lattice .label .idx{fill:var(--teal);font-weight:700}
.lattice .label .sep{fill:var(--text-3)}
[dir=rtl] .lattice .label{font-family:'Noto Sans Arabic',sans-serif;letter-spacing:0}
.lattice .label.faint{fill:rgba(45,212,191,.7);font-size:10px;letter-spacing:1px}
[dir=rtl] .lattice .geo{transform:translate(460px,0) scale(-1,1)}

/* ---------- sections ---------- */
.section{padding-block:var(--section)}
.section.band{background:var(--navy-700);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section.glow{position:relative;overflow:hidden}
.section.glow:before{content:'';position:absolute;inset:0;
  background:radial-gradient(90% 100% at 92% 0%,rgba(20,184,166,.18) 0%,rgba(10,23,36,0) 58%)}
.section.glow > .wrap{position:relative}
.section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:end}
.section-head h2{font-size:clamp(1.9rem,4.2vw,2.75rem);max-width:24ch}
.section-head p{font-size:clamp(15px,1.5vw,18px);color:var(--text-2);max-width:60ch}
.section-head.stack{display:block}
/* Blueprint grid: 120px hairlines, a teal node at every third crossing, faded at top and bottom. */
.section.blueprint{position:relative}
.section.blueprint:before{content:'';position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(circle,rgba(20,184,166,.55) 1.4px,transparent 2px),
    linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:360px 360px,120px 120px,120px 120px;
  background-position:-60px -60px,0 0,0 0;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 22%,#000 78%,transparent);
  mask-image:linear-gradient(180deg,transparent,#000 22%,#000 78%,transparent)}
.section.blueprint > .wrap{position:relative}

/* glass card */
.card{background:var(--glass);border:1px solid var(--line);border-radius:var(--r-card);padding:28px;
  transition:background var(--d-ctl) var(--e-std),border-color var(--d-ctl) var(--e-std),
    transform var(--d-ctl) var(--e-std)}
.card h3{font-size:var(--t-card);line-height:1.3;margin:14px 0 10px}
.card p{font-size:var(--t-body);color:var(--text-2)}
a.card:hover,.card.lift:hover{background:var(--glass-hi);border-color:var(--line-teal);transform:translateY(-1px)}

.icon-tile{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;
  border-radius:var(--r-tile);border:1px solid var(--line-teal);
  background:linear-gradient(135deg,rgba(20,184,166,.18),rgba(20,184,166,0));color:var(--teal)}
.line-icon{width:22px;height:22px;display:block}

/* gaps */
.gap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:clamp(40px,5vw,64px)}

/* capabilities */
.cap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:clamp(40px,5vw,64px)}
.cap-card{position:relative;overflow:hidden;display:block}
.cap-card:before{content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(90% 70% at 100% 0%,rgba(20,184,166,.16) 0%,rgba(20,184,166,0) 60%);
  opacity:.85;transition:opacity var(--d-ctl) var(--e-std)}
.cap-card:hover:before{opacity:1}
/* Light trace: one teal highlight runs the border once on hover, then fades. */
@property --xc-a{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes xc-trace{0%{--xc-a:0deg;opacity:1}80%{opacity:1}100%{--xc-a:360deg;opacity:0}}
.cap-card:after{content:'';position:absolute;inset:0;border-radius:inherit;padding:1.5px;pointer-events:none;opacity:0;
  background:conic-gradient(from var(--xc-a),transparent 0 72%,rgba(45,212,191,.9) 90%,transparent 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.cap-card:hover:after{animation:xc-trace 1.2s var(--e-std) 1 forwards}
.cap-card > *{position:relative}
.cap-card h3{font-size:var(--t-card);margin:20px 0 10px}
.cap-card p{margin-bottom:20px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-size:var(--t-meta);color:var(--text-2);border:1px solid var(--line);border-radius:999px;padding:6px 12px}
.cap-card .text-link{margin-top:20px}

/* enabling capability + secondary */
.enabling{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:20px;align-items:center;
  margin-top:20px;border:1px solid var(--line);border-radius:var(--r-card);padding:22px 26px;
  background:var(--glass);transition:border-color var(--d-ctl) var(--e-std)}
.enabling:hover{border-color:var(--line-teal)}
.enabling h3{font-size:var(--t-compact);margin-bottom:6px}
.enabling p{font-size:var(--t-body);color:var(--text-2)}
.secondary{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-top:20px;
  border-top:1px solid var(--line);padding-top:22px}
.secondary .eyebrow{margin:0}
.secondary ul{display:flex;flex-wrap:wrap;gap:10px 18px;list-style:none;margin:0;padding:0}
.secondary li{font-size:var(--t-body);color:var(--text-2)}
.secondary li+li{border-inline-start:1px solid var(--line);padding-inline-start:18px}

/* layered system */
.layers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:clamp(40px,5vw,72px);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden}
.layer{padding:32px}
.layer+.layer{border-inline-start:1px solid var(--line)}
.layer:nth-child(2){background:rgba(255,255,255,.02)}
.layer h3{font-size:var(--t-card);margin:14px 0 10px}
.layer p{font-size:var(--t-body);color:var(--text-2)}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:clamp(40px,5vw,64px)}
.step{border-top:1px solid var(--line);padding-top:22px}
.step:first-child{border-top-color:var(--line-teal)}
.step h3{font-size:var(--t-card);margin:12px 0 10px}
.step p{font-size:var(--t-body);color:var(--text-2)}

/* why */
.why-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 40px;margin-top:clamp(40px,5vw,60px)}
.why{display:grid;grid-template-columns:20px minmax(0,1fr);gap:16px}
.why .line-icon{width:20px;height:20px;color:var(--teal);margin-top:2px}
.why h3{font-size:var(--t-compact);font-family:'Inter','Noto Kufi Arabic',sans-serif;font-weight:600;margin-bottom:8px}
.why p{font-size:var(--t-body);color:var(--text-2)}

/* case-study infrastructure — hidden until real material exists */
.cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:clamp(40px,5vw,64px)}
.case-card{overflow:hidden}
.case-card .case-meta{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.case-card .case-meta span{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--teal)}
.case-card h3{font-size:var(--t-card);margin:0 0 10px}

/* ---------- CTA + footer ---------- */
.cta{position:relative;overflow:hidden;background:var(--navy-700);border-top:1px solid var(--line)}
.cta:before{content:'';position:absolute;inset:0;
  background:radial-gradient(100% 120% at 10% 0%,rgba(20,184,166,.28) 0%,rgba(18,38,58,0) 62%)}
.cta-inner{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(28px,4vw,56px);
  align-items:center;padding-block:clamp(64px,8vw,104px)}
.cta h2{font-size:clamp(1.9rem,4.4vw,3rem)}
.cta p{font-size:clamp(15px,1.5vw,18px);color:#d4e3e8;margin-top:20px;max-width:52ch}
.site-footer{background:var(--graphite);border-top:1px solid var(--line);padding-top:clamp(48px,6vw,64px)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding-bottom:36px}
.footer-brand{width:186px;display:block}
.site-footer p{font-size:var(--t-meta);color:var(--text-3);max-width:34ch}
.site-footer .footer-lead{font-size:var(--t-body);color:var(--text-2);margin-top:18px}
.site-footer .footer-address{margin-top:18px}
.footer-heading{display:block;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--text-1);margin-bottom:16px;font-family:'Inter','Noto Kufi Arabic',sans-serif}
.footer-links{display:grid;gap:10px;font-size:14px}
.footer-links a{color:var(--text-3);transition:color var(--d-ctl) var(--e-std)}
.footer-links a:hover{color:var(--teal)}
.footer-contact{display:grid;gap:10px;margin-top:18px;font-size:14px}
.footer-contact a{color:var(--teal)}
.footer-contact a:hover{color:var(--teal-400)}
.footer-bottom{border-top:1px solid var(--line);padding-block:22px;display:flex;flex-wrap:wrap;gap:16px;
  justify-content:space-between;font-size:var(--t-meta);color:var(--text-3)}

/* ---------- inner pages ---------- */
.page-hero{position:relative;overflow:hidden;padding-block:clamp(56px,7vw,92px);border-bottom:1px solid var(--line)}
.page-hero:before{content:'';position:absolute;inset:0;
  background:radial-gradient(110% 130% at 6% -20%,rgba(20,184,166,.34) 0%,rgba(20,184,166,.08) 34%,rgba(10,23,36,0) 66%),
    linear-gradient(180deg,var(--navy-700) 0%,var(--navy-900) 100%)}
.page-hero > .wrap{position:relative}
.page-hero h1{font-size:clamp(2.1rem,5vw,3.6rem);max-width:22ch}
.page-hero p{margin-top:24px;font-size:clamp(16px,1.6vw,19px);color:#d4e3e8;max-width:62ch}

/* breadcrumbs — real navigation, separator drawn in CSS so it is not read aloud */
.breadcrumbs{font-size:13px;color:var(--text-3);margin-bottom:26px}
.breadcrumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:8px;list-style:none;margin:0;padding:0}
.breadcrumbs li{display:flex;align-items:center;gap:8px}
.breadcrumbs li+li:before{content:'/';color:var(--line-strong);speak:never}
.breadcrumbs a{transition:color var(--d-ctl) var(--e-std)}
.breadcrumbs a:hover{color:var(--teal)}
.breadcrumbs [aria-current=page]{color:var(--text-2)}

.page-body{max-width:900px;margin-inline:auto;padding:clamp(56px,7vw,88px) var(--gutter)}
.page-body h2{font-size:clamp(1.5rem,3vw,2rem);margin:44px 0 18px}
.page-body h1{font-size:clamp(2rem,4.4vw,2.9rem);margin-bottom:18px}
.page-body .button{margin-top:26px}
.page-body h2:first-child{margin-top:0}
.page-body h3{font-size:1.25rem;margin:32px 0 12px}
.page-body p{margin-bottom:20px;color:var(--text-2)}
.page-body ul{padding-inline-start:22px;margin:20px 0 30px;list-style:disc}
.page-body li{margin-bottom:12px;color:var(--text-2)}
.page-body li::marker{color:var(--teal)}
.page-body .cap-grid,.page-body .service-grid{margin-block:32px}
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(32px,5vw,72px);align-items:start}
.contact-grid h2{font-size:clamp(1.7rem,3.4vw,2.4rem)}
.contact-grid > div > p{color:var(--text-2);margin-top:18px}
.contact-detail{border-top:1px solid var(--line);padding-top:24px;margin-top:28px}
.contact-detail h3{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--text-1);margin-bottom:12px;font-family:'Inter','Noto Kufi Arabic',sans-serif}
.contact-detail p{font-size:var(--t-body);color:var(--text-3)}
.contact-detail a{color:var(--teal)}
.contact-detail a:hover{color:var(--teal-400)}
.contact-channels{display:grid;gap:12px;margin-top:16px;font-size:var(--t-body)}
.contact-channels div{display:flex;align-items:center;gap:12px;color:var(--text-2)}
.contact-channels .line-icon{width:18px;height:18px;color:var(--teal);flex:0 0 auto}
.form-notice{font-size:var(--t-meta);color:var(--text-3);margin-top:20px}
.form-notice a{color:var(--teal)}

/* Fluent Forms on navy */
.fluentform .ff-el-group{margin-bottom:22px!important}
.fluentform label,.fluentform .ff-el-input--label label{color:var(--text-2)!important;font-size:14px!important;font-weight:500!important}
.fluentform .ff-el-form-control{background:rgba(255,255,255,.04)!important;border:1px solid var(--line)!important;
  border-radius:var(--r-md)!important;padding:13px 14px!important;min-height:48px;color:#fff!important;
  transition:border-color var(--d-ctl) var(--e-std),background var(--d-ctl) var(--e-std)}
.fluentform .ff-el-form-control::placeholder{color:#7d93a6!important}
.fluentform .ff-el-form-control:focus{border-color:var(--line-teal)!important;background:rgba(255,255,255,.06)!important;
  outline:3px solid rgba(20,184,166,.35)!important;outline-offset:1px}
.fluentform .ff-btn-submit{background:var(--teal)!important;color:var(--navy-900)!important;
  border-radius:var(--r-md)!important;padding:15px 26px!important;font-weight:600!important;border:0!important;
  transition:background var(--d-ctl) var(--e-std)!important}
.fluentform .ff-btn-submit:hover{background:var(--teal-400)!important}
.fluentform .ff-el-is-error .ff-el-form-control{border-color:#f87171!important}
.fluentform .error,.fluentform .text-danger{color:#fca5a5!important}
.ff-message-success{background:rgba(20,184,166,.10)!important;border:1px solid var(--line-teal)!important;
  border-radius:var(--r-card)!important;color:var(--text-1)!important;padding:20px!important}

/* ---------- RTL ---------- */
[dir=rtl] body{font-family:'Noto Sans Arabic','Inter',sans-serif}
[dir=rtl] h1,[dir=rtl] h2,[dir=rtl] h3{font-family:'Noto Kufi Arabic',sans-serif;line-height:1.35}
[dir=rtl] .hero h1{line-height:1.3}
[dir=rtl] .eyebrow,[dir=rtl] .hero-bottom,[dir=rtl] .footer-heading,
[dir=rtl] .contact-detail h3,[dir=rtl] .secondary .eyebrow{letter-spacing:0}
[dir=rtl] .num{letter-spacing:0}

/* ---------- responsive ---------- */
@media(max-width:1040px){
  .gap-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* Three full-width cards read better than two plus one stretched to double width. */
  .cap-grid{grid-template-columns:1fr}
  .layers{grid-template-columns:1fr}
  .layer+.layer{border-inline-start:0;border-top:1px solid var(--line)}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
  .brand{width:168px}
  .nav{gap:18px}
}
@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr;padding-block:56px 44px;gap:44px}
  .lattice{max-width:520px;margin-inline:auto;min-height:0}
  .hero-mark{width:92vw;inset-inline-end:-30%;top:30%;opacity:.18}
  .menu-toggle{display:flex}
  .nav{display:none;position:absolute;inset-inline:0;top:100%;flex-direction:column;align-items:stretch;
    gap:2px;margin:0;padding:8px var(--gutter) 20px;background:rgba(10,23,36,.98);
    backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
  .nav.is-open{display:flex}
  .nav > a{padding:15px 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:16px}
  .nav .lang{margin-top:14px;text-align:center}
  .nav .button{margin-top:10px}
  .section-head{grid-template-columns:1fr;gap:20px;align-items:start}
  .contact-grid,.cta-inner{grid-template-columns:1fr}
  .why-grid{grid-template-columns:1fr}
  .enabling{grid-template-columns:44px minmax(0,1fr);gap:16px}
  .enabling .text-link{grid-column:2}
}
/* The WordPress admin bar is 46px tall below this width, not 32px. */
@media(max-width:782px){
  .admin-bar .site-header{top:46px}
}
@media(max-width:620px){
  .gap-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr;gap:26px}
  .cases{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:32px}
  .actions{flex-direction:column;align-items:stretch}
  .actions .button{width:100%}
  .secondary li+li{border-inline-start:0;padding-inline-start:0}
  .card,.cap-card{padding:24px}
  .layer{padding:26px}
}
/* ---------- Phase 2: inner-page system ---------- */

/* two-column lead under a page hero */
.lead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:start}
.lead h2{font-size:clamp(1.7rem,3.6vw,2.5rem)}
.lead p{font-size:clamp(15px,1.5vw,18px);color:var(--text-2)}
.lead p+p{margin-top:18px}

/* signature diagrams — geometry only in SVG, captions in HTML so RTL is automatic */
.viz-figure{margin-top:clamp(36px,5vw,56px);border:1px solid var(--line);border-radius:var(--r-card);
  background:var(--glass);padding:clamp(20px,3vw,32px);overflow:hidden}
.viz{display:block;width:100%;height:auto}
.viz .rail{stroke:rgba(20,184,166,.22);stroke-width:1;fill:none}
.viz .pulse{stroke:var(--teal);stroke-width:1.6;fill:none;stroke-linecap:round;stroke-dasharray:22 168;
  animation:xc-flow 3.4s linear infinite}
.viz .node{fill:rgba(255,255,255,.03);stroke:var(--line-strong);stroke-width:1.2}
.viz .node-accent{fill:rgba(20,184,166,.08);stroke:var(--line-teal);stroke-width:1.4}
.viz .glyph{color:var(--teal)}
.viz .glyph-quiet{color:var(--text-3)}
.viz .band{fill:rgba(255,255,255,.02);stroke:var(--line);stroke-width:1}
.viz .dot{fill:var(--teal);animation:xc-node 3.4s ease-in-out infinite}
[dir=rtl] .viz .pulse{animation-direction:reverse}
.viz-caps{display:grid;grid-template-columns:repeat(var(--cols,5),minmax(0,1fr));gap:14px;margin-top:20px}
.viz-caps div{text-align:center}
.viz-caps strong{display:block;font-size:var(--t-meta);font-weight:600;color:var(--text-1);margin-bottom:4px}
.viz-caps span{display:block;font-size:var(--t-meta);line-height:1.45;color:var(--text-3)}
.viz-note{font-size:var(--t-meta);color:var(--text-3);margin-top:18px;text-align:center}

/* "what we build" grid */
.build-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:clamp(36px,5vw,56px)}
.build-grid .card h3{font-size:var(--t-compact);font-family:'Inter','Noto Kufi Arabic',sans-serif;font-weight:600;margin:14px 0 8px}
.build-grid .card p{font-size:var(--t-body)}

/* closing note columns */
.notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(24px,4vw,56px);
  margin-top:clamp(36px,5vw,56px);border-top:1px solid var(--line);padding-top:clamp(32px,4vw,44px)}
.notes h3{font-size:var(--t-card);margin-bottom:12px}
.notes p{font-size:var(--t-body);color:var(--text-2);max-width:68ch}

/* cross-links between capabilities */
.cross{margin-top:clamp(36px,5vw,56px);border-top:1px solid var(--line);padding-top:28px}
.cross.bare{border-top:0;padding-top:0;margin-top:clamp(36px,5vw,52px)}
.cross .eyebrow{margin-bottom:16px}
.cross-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.cross-row a{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:var(--r-md);
  padding:16px 18px;font-size:var(--t-body);font-weight:500;color:var(--text-2);background:var(--glass);
  transition:border-color var(--d-ctl) var(--e-std),background var(--d-ctl) var(--e-std),color var(--d-ctl) var(--e-std)}
.cross-row a:hover{border-color:var(--line-teal);background:var(--glass-hi);color:var(--text-1)}
.cross-row .line-icon{width:18px;height:18px;color:var(--teal);flex:0 0 auto}

/* specialist support cards */
.card.spec{padding:20px 22px}
.spec-head{display:flex;align-items:center;gap:12px}
.spec-head strong{font-size:var(--t-body)}
.card.spec p{font-size:var(--t-meta);margin-top:10px}

/* capability stack — the Capabilities page hero graphic */
.stack-viz{margin-top:clamp(36px,5vw,56px)}
.stack-pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.stack-pillar{position:relative;display:block;overflow:hidden;border:1px solid var(--line);
  border-radius:var(--r-card);background:var(--glass);padding:26px;
  transition:border-color var(--d-ctl) var(--e-std),background var(--d-ctl) var(--e-std),transform var(--d-ctl) var(--e-std)}
.stack-pillar:before{content:'';position:absolute;inset-inline:0;top:0;height:2px;background:var(--teal);
  opacity:.5;transition:opacity var(--d-ctl) var(--e-std)}
.stack-pillar:hover{border-color:var(--line-teal);background:var(--glass-hi);transform:translateY(-1px)}
.stack-pillar:hover:before{opacity:1}
.stack-pillar h3{font-size:var(--t-card);margin:18px 0 8px}
.stack-pillar p{font-size:var(--t-body);color:var(--text-2)}
.stack-pillar .text-link{margin-top:16px}
.stack-legs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));height:26px}
.stack-legs span{border-inline-start:1px solid var(--line-teal);margin-inline-start:50%;opacity:.6}
.stack-base{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:20px;align-items:center;
  border:1px solid var(--line-teal);border-radius:var(--r-card);padding:22px 26px;
  background:linear-gradient(135deg,rgba(20,184,166,.10),rgba(20,184,166,.02));
  transition:background var(--d-ctl) var(--e-std)}
.stack-base:hover{background:linear-gradient(135deg,rgba(20,184,166,.16),rgba(20,184,166,.04))}
.stack-base h3{font-size:var(--t-compact);margin-bottom:6px}
.stack-base p{font-size:var(--t-body);color:var(--text-2)}
.stack-tier{display:block;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--teal);margin-bottom:14px}
[dir=rtl] .stack-tier{letter-spacing:0}

/* capability deep-dive rows (Capabilities page) */
.deep{margin-top:clamp(48px,6vw,72px);display:grid;gap:20px}
.deep-row{display:grid;grid-template-columns:44px minmax(0,1fr);gap:20px 24px;
  border-top:1px solid var(--line);padding-top:28px}
.deep-row:first-child{border-top-color:var(--line-teal)}
.deep-row h3{font-size:var(--t-card);margin-bottom:10px}
.deep-row p{font-size:var(--t-body);color:var(--text-2);max-width:68ch}
.deep-row .chips{margin-top:16px}
.deep-row .text-link{margin-top:16px}

/* about */
.values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:clamp(36px,5vw,56px)}
.values .card h3{font-size:var(--t-card);margin:14px 0 10px}
.founder{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:clamp(24px,4vw,44px);
  align-items:center;margin-top:clamp(36px,5vw,56px);border:1px solid var(--line);
  border-radius:var(--r-card);background:var(--glass);padding:clamp(24px,3vw,36px)}
.founder-portrait{aspect-ratio:1;border-radius:var(--r-card);border:1px solid var(--line-teal);
  background:linear-gradient(135deg,rgba(20,184,166,.14),rgba(20,184,166,.02));
  display:flex;align-items:center;justify-content:center}
.founder-portrait .line-icon{width:34px;height:34px;color:var(--teal);opacity:.7}
.founder h3{font-size:var(--t-card);margin-bottom:6px}
.founder .role{display:block;font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--teal);margin-bottom:16px}
[dir=rtl] .founder .role{letter-spacing:0}
.founder p{font-size:var(--t-body);color:var(--text-2)}

/* contact */
.contact-points{display:grid;gap:16px;margin-top:28px}
.contact-points div{display:grid;grid-template-columns:18px minmax(0,1fr);gap:14px;font-size:var(--t-body);color:var(--text-2)}
.contact-points .line-icon{width:18px;height:18px;color:var(--teal);margin-top:3px}
.form-panel{border:1px solid var(--line);border-radius:var(--r-panel);background:var(--glass);
  padding:clamp(24px,3vw,36px)}
.form-panel h2{font-size:1.35rem;margin-bottom:8px}
.form-panel .form-intro{font-size:var(--t-body);color:var(--text-3);margin-bottom:26px}

@media(max-width:1040px){
  .build-grid,.values,.cross-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stack-pillars{grid-template-columns:1fr}
  .stack-legs{display:none}
  .viz-caps{--cols:3!important}
}
@media(max-width:900px){
  .lead,.notes{grid-template-columns:1fr;gap:20px}
  .founder{grid-template-columns:1fr}
  .founder-portrait{max-width:180px}
  .stack-base{grid-template-columns:44px minmax(0,1fr)}
  .stack-base .text-link{grid-column:2}
}
@media(max-width:700px){
  /* Wide stage diagrams stop being legible below this width: drop the geometry and
     present the same stages as a vertical list. No information is lost. */
  .viz-figure .viz{display:none}
  .viz-caps{--cols:1!important;gap:0}
  .viz-caps div{text-align:start!important;position:relative;padding:14px 0 14px 20px;
    border-inline-start:1px solid var(--line-teal)}
  [dir=rtl] .viz-caps div{padding:14px 20px 14px 0}
  .viz-caps div:before{content:'';position:absolute;inset-inline-start:-4px;top:21px;width:7px;height:7px;
    border-radius:50%;background:var(--teal)}
  .viz-note{text-align:start;margin-top:20px}
}
@media(max-width:620px){
  .build-grid,.values,.cross-row{grid-template-columns:1fr}
  .viz-caps{--cols:2!important;gap:12px}
  .viz-figure{padding:18px}
  .deep-row{grid-template-columns:1fr;gap:16px}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation:none!important;transition:none!important}
  [data-reveal]{opacity:1!important;transform:none!important}
}
