
:root{
  --bg:#FFFFFF; --bg-soft:#F5F5F7; --bg-deep:#F5F5F7; --ink:#1D1D1F; --muted:#6E6E73;
  --blue:#0071E3; --indigo:#0071E3; --cyan:#0071E3; --line:#D2D2D7;
  --navy:#1D1D1F; --navy-soft:#2A2A2E; --gold:#0071E3; --gold-light:#0077ED; --gold-deep:#0066CC; --red:#FF3B30;
  --grad:linear-gradient(135deg,#0071E3,#0077ED);
  --grad-gold:linear-gradient(135deg,#0071E3,#0077ED);
  --grad-soft:linear-gradient(120deg,rgba(0,113,227,.06),rgba(0,113,227,.04));
  --shadow:0 10px 30px rgba(0,0,0,.08);
  --shadow-lg:0 24px 50px rgba(0,0,0,.12);
  --maxw:1180px;
  --font-display: "Sora", -apple-system, BlinkMacSystemFont, "SF Pro Display", "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-body: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font-body);background:var(--bg);color:var(--ink);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3{font-family:var(--font-display);line-height:1.1;margin:0;letter-spacing:-.018em}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.eyebrow{font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--blue);margin-bottom:14px;display:inline-flex;align-items:center;gap:9px}
.eyebrow::before{content:"";width:22px;height:2px;border-radius:2px;background:currentColor;opacity:.7}

/* scroll reveal */
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
[data-reveal].in{opacity:1;transform:none}
[data-reveal][data-delay="1"]{transition-delay:.08s}
[data-reveal][data-delay="2"]{transition-delay:.16s}
[data-reveal][data-delay="3"]{transition-delay:.24s}
[data-reveal][data-delay="4"]{transition-delay:.32s}
@media(prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transform:none;transition:none}}

/* header */
body > header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.82);backdrop-filter:blur(16px) saturate(140%);border-bottom:1px solid var(--line);transition:box-shadow .3s,background .3s}
body > header.scrolled{box-shadow:0 10px 30px rgba(15,27,51,.08)}
.nav{display:flex;align-items:center;justify-content:space-between;min-height:104px;gap:18px}
.brand{display:flex;align-items:center;gap:11px}
.brand-logo{height:88px;width:auto;display:block;image-rendering:-webkit-optimize-contrast}
/* Uniform brand chip — header. Image-as-chip: 48x48 white square, contain-fit, soft border. */
.brand .brand-logo{height:48px;width:48px;padding:5px;background:#fff;border:1px solid #ECECEF;border-radius:11px;object-fit:contain;box-sizing:border-box}
.navlinks{display:flex;align-items:center;gap:6px;font-size:15.5px;font-weight:600;flex-wrap:nowrap}
.navlinks>a,.dropbtn{color:var(--ink);cursor:pointer;background:none;border:0;font:inherit;font-weight:600;padding:9px 16px;border-radius:11px;transition:background .2s,color .2s,transform .2s;white-space:nowrap}
.navlinks>a:hover,.dropbtn:hover{background:var(--bg-soft)}
.navlinks>a.active{background:var(--grad);color:#fff}
/* top utility bar */
.topbar{background:linear-gradient(120deg,#7C3AED,#2563EB 55%,#06B6D4);color:#fff}
.topbar-in{display:flex;align-items:center;justify-content:space-between;min-height:42px;gap:14px;flex-wrap:wrap}
.tb-left{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.tb-link{display:inline-flex;align-items:center;gap:8px;color:#fff;font-size:13.5px;font-weight:500;opacity:.96}
.tb-link:hover{opacity:1}
.tb-social{display:flex;gap:8px}
.soc{width:30px;height:30px;border-radius:9px;background:rgba(255,255,255,.18);display:grid;place-items:center;color:#fff;transition:background .2s,transform .2s,color .2s}
.soc:hover{background:#fff;color:#7C3AED;transform:translateY(-2px)}
/* header contact actions */
.nav-actions{display:flex;align-items:center;gap:18px}
.nav-tel,.nav-mail{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:500;color:var(--ink);white-space:nowrap}
.nav-tel:hover,.nav-mail:hover{color:var(--blue)}
@media(max-width:1280px){.nav-mail{display:none}}
@media(max-width:760px){.nav-tel span{display:none}}
.btn-call{background:#fff;color:var(--blue);border:1.5px solid var(--line);padding:11px 18px}
.btn-call:hover{border-color:var(--blue);transform:translateY(-2px)}
.btn-wa{background:linear-gradient(135deg,#25D366,#0FA958);color:#fff;padding:11px 18px;box-shadow:0 8px 22px rgba(18,140,80,.34)}
.btn-wa:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(18,140,80,.46)}
.drop{position:relative}
.dropbtn::after{content:"";display:inline-block;margin-left:6px;border:4px solid transparent;border-top-color:currentColor;transform:translateY(2px)}
.dropmenu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(8px);background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:10px;min-width:240px;opacity:0;visibility:hidden;transition:.18s}
.drop:hover .dropmenu,.drop:focus-within .dropmenu,.drop.open .dropmenu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(6px)}
.dropmenu a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;font-size:14.5px;color:var(--ink);font-weight:500;transition:background .15s,transform .15s}
.dropmenu a:hover{background:var(--bg-soft);transform:translateX(3px)}
.dropmenu .sw{width:9px;height:9px;border-radius:3px;flex:0 0 auto}
.dropmenu .di{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;color:#fff;flex:0 0 auto;box-shadow:0 5px 12px rgba(15,27,51,.18)}
.dropmenu .di svg{width:17px;height:17px}
.dropmenu a:hover .di{transform:scale(1.06);transition:transform .15s}
.btn{display:inline-flex;align-items:center;gap:9px;font-weight:600;border-radius:12px;padding:13px 24px;transition:transform .18s,box-shadow .25s,filter .2s;cursor:pointer;border:0;font:inherit;font-weight:600;position:relative;overflow:hidden}
.btn svg{width:17px;height:17px}
.btn-primary{background:var(--grad);color:#fff;font-weight:700;box-shadow:0 10px 26px rgba(124,58,237,.42);background-size:160% 160%}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(124,58,237,.54);background-position:100% 50%}
.btn-ghost{border:1.5px solid var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-2px)}
/* Brochure download button: kept hidden by the HTML `hidden` attr until cms.js
   detects brand.brochure_url. The display:none override beats .btn's
   `display:inline-flex` which would otherwise re-show the element. */
.btn.js-brochure-btn[hidden],.mf-cta-btn.js-brochure-btn[hidden]{display:none !important}
.btn-white{background:#fff;color:var(--blue);box-shadow:0 10px 28px rgba(0,0,0,.16)}
.btn-white:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(0,0,0,.24)}
.btn-outline{border:1.5px solid rgba(255,255,255,.55);color:#fff}
.btn-outline:hover{background:rgba(255,255,255,.12);transform:translateY(-2px)}
.menu-toggle{display:none;background:none;border:0;color:var(--ink);cursor:pointer;padding:6px}

/* hero (home) */
.hero{position:relative;color:#fff;overflow:hidden;background:var(--bg-deep)}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.5}
.hero-veil{position:absolute;inset:0;background:linear-gradient(130deg,rgba(124,58,237,.9) 0%,rgba(37,99,235,.82) 44%,rgba(6,182,212,.74) 100%)}
.hero-grid{position:absolute;inset:0;z-index:0;background-image:linear-gradient(rgba(125,211,252,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(125,211,252,.08) 1px,transparent 1px);background-size:46px 46px;-webkit-mask:linear-gradient(180deg,transparent,#000 26%,#000 74%,transparent);mask:linear-gradient(180deg,transparent,#000 26%,#000 74%,transparent);animation:gridpan 20s linear infinite}
@keyframes gridpan{to{background-position:46px 46px}}
.hero-net{position:absolute;inset:0;z-index:1;pointer-events:none}
.hero-mesh{position:absolute;inset:0;z-index:1;overflow:hidden}
.hero-mesh span{position:absolute;border-radius:50%;filter:blur(60px);opacity:.5;animation:float 14s ease-in-out infinite}
.hero-mesh span:nth-child(1){width:420px;height:420px;background:#F472B6;top:-120px;right:-80px}
.hero-mesh span:nth-child(2){width:360px;height:360px;background:#22D3EE;bottom:-140px;left:-60px;animation-delay:-5s}
.hero-mesh span:nth-child(3){width:280px;height:280px;background:#A855F7;top:30%;left:40%;animation-delay:-9s}
@keyframes float{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(30px,-26px) scale(1.12)}}
.hero-inner{position:relative;z-index:2;padding:104px 0 110px;display:grid;grid-template-columns:1.08fr .92fr;gap:48px;align-items:center}
.hero-copy{max-width:600px}
/* radar / monitoring visual */
.hero-visual{position:relative;display:grid;place-items:center;min-height:380px}
.radar{position:relative;width:min(360px,86%);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 50% 50%,rgba(16,44,96,.7),rgba(11,20,48,.25));border:1px solid rgba(246,201,68,.3);box-shadow:inset 0 0 60px rgba(10,96,138,.4),0 30px 80px rgba(0,0,0,.45)}
.radar::before{content:"";position:absolute;inset:0;border-radius:50%;background:repeating-radial-gradient(circle at 50% 50%,transparent 0 33px,rgba(125,211,252,.18) 33px 34px)}
.radar .cross::before,.radar .cross::after{content:"";position:absolute;background:rgba(125,211,252,.2)}
.radar .cross::before{left:50%;top:7%;bottom:7%;width:1px;transform:translateX(-.5px)}
.radar .cross::after{top:50%;left:7%;right:7%;height:1px;transform:translateY(-.5px)}
.radar .sweep{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,rgba(246,201,68,.55),rgba(246,201,68,0) 26%);-webkit-mask:radial-gradient(circle at 50% 50%,#000 64%,transparent 66%);mask:radial-gradient(circle at 50% 50%,#000 64%,transparent 66%);animation:spin 4.6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.blip{position:absolute;width:11px;height:11px;border-radius:50%;background:#F6C944;box-shadow:0 0 14px #F6C944;animation:blip 3.2s ease-in-out infinite}
.blip.b1{top:24%;left:62%}.blip.b2{top:58%;left:36%;animation-delay:-1.4s;background:#7DD3FC;box-shadow:0 0 14px #7DD3FC}.blip.b3{top:70%;left:66%;animation-delay:-2.3s}
@keyframes blip{0%,100%{opacity:.25;transform:scale(.7)}50%{opacity:1;transform:scale(1)}}
.radar .core{position:absolute;top:50%;left:50%;width:14px;height:14px;border-radius:50%;transform:translate(-50%,-50%);background:var(--grad);box-shadow:0 0 22px rgba(246,201,68,.8)}
.hero-chip{position:absolute;background:rgba(255,255,255,.11);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.22);border-radius:14px;padding:11px 14px;display:flex;gap:11px;align-items:center;box-shadow:0 14px 34px rgba(0,0,0,.32);animation:floaty 6s ease-in-out infinite}
.hero-chip .ico{width:32px;height:32px;border-radius:9px;background:var(--grad);display:grid;place-items:center;color:#0B1430;flex:0 0 auto}
.hero-chip b{font-family:var(--font-display);font-size:14px;display:block;line-height:1.15}
.hero-chip span{font-size:11.5px;opacity:.82}
.hero-chip.c1{top:2%;left:-6%}
.hero-chip.c2{bottom:6%;right:-7%;animation-delay:-2s}
.hero-chip.c3{bottom:36%;left:-10%;animation-delay:-4s}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@media(prefers-reduced-motion:reduce){.hero-grid,.radar .sweep,.blip,.hero-chip{animation:none}}
.hero-tag{display:inline-flex;align-items:center;gap:9px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:7px 16px;font-size:13px;font-weight:600;letter-spacing:.04em;margin-bottom:24px;backdrop-filter:blur(6px)}
.hero-tag .live{width:8px;height:8px;border-radius:50%;background:#34D399;box-shadow:0 0 0 0 rgba(52,211,153,.6);animation:ping 2s infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(52,211,153,.6)}70%{box-shadow:0 0 0 10px rgba(52,211,153,0)}100%{box-shadow:0 0 0 0 rgba(52,211,153,0)}}
.hero h1{font-size:clamp(38px,5.6vw,66px);font-weight:800;letter-spacing:-.025em}
.hero h1 .accent{background:linear-gradient(120deg,#FDE68A,#67E8F9);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{font-size:clamp(16px,2vw,20px);opacity:.92;margin:24px 0 36px;max-width:580px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.hero-stats{display:flex;gap:46px;margin-top:64px;flex-wrap:wrap}
.hero-stats b{font-family:var(--font-display);font-size:30px;display:block;background:linear-gradient(120deg,#fff,#C4B5FD);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-stats span{font-size:13.5px;opacity:.82}

/* page banner (inner pages) */
.banner{position:relative;color:#fff;padding:104px 0 92px;overflow:hidden;background:var(--bg-deep)}
.banner-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.4}
.banner-veil{position:absolute;inset:0}
.banner .crumb{position:relative;z-index:2;font-size:13.5px;opacity:.92;margin-bottom:16px}
.banner .crumb a{color:#fff;opacity:.85}
.banner .crumb a:hover{opacity:1}
.banner h1{position:relative;z-index:2;font-size:clamp(32px,4.6vw,50px);font-weight:800}
.banner p{position:relative;z-index:2;opacity:.92;margin-top:16px;max-width:600px;font-size:18px}

section{padding:88px 0}
.sec-head{max-width:660px;margin-bottom:50px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head h2{font-size:clamp(27px,3.6vw,40px);font-weight:700}
.sec-head p{color:var(--muted);margin-top:16px;font-size:16.5px}

/* logos / marquee */
.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg-soft);padding:26px 0;overflow:hidden}
.marquee-label{text-align:center;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:18px}
.marquee-track{display:flex;gap:54px;width:max-content;animation:scroll 28s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span{font-family:var(--font-display);font-weight:700;font-size:19px;color:#90A0BC;white-space:nowrap;display:flex;align-items:center;gap:10px}
.marquee-track span::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--grad);opacity:.6}
@keyframes scroll{to{transform:translateX(-50%)}}

/* services grid (image cards) */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.scard{display:block;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;transition:transform .25s,box-shadow .3s,border-color .25s;position:relative}
.scard:hover{transform:translateY(-7px);box-shadow:var(--shadow-lg);border-color:transparent}
.scard-img{height:172px;position:relative;overflow:hidden}
.scard-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.scard:hover .scard-img img{transform:scale(1.08)}
.scard-img::after{content:"";position:absolute;inset:0;opacity:.82;mix-blend-mode:multiply}
.scard-body{padding:24px}
.scard .ic{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;color:#fff;margin:-46px 0 16px 0;position:relative;z-index:2;box-shadow:var(--shadow)}
.scard h3{font-size:20px;font-weight:700;margin-bottom:9px}
.scard p{color:var(--muted);font-size:14.5px;margin:0 0 16px}
.scard .more{font-weight:600;font-size:14px;display:inline-flex;align-items:center;gap:7px;transition:gap .2s}
.scard:hover .more{gap:12px}

/* simple card (related services) */
.card{display:block;background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;transition:transform .2s,box-shadow .25s,border-color .2s}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:transparent}
.card .ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;color:#fff;margin-bottom:16px}
.card h3{font-size:17px;font-weight:700;margin-bottom:9px}
.card .more{font-weight:600;font-size:14px;display:inline-flex;align-items:center;gap:6px}

/* stats counters */
.stats2{background:linear-gradient(120deg,#DB2777 0%,#7C3AED 52%,#2563EB 100%);color:#fff;position:relative;overflow:hidden}
.stats2::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 18% 20%,rgba(250,204,21,.42),transparent 45%),radial-gradient(circle at 82% 75%,rgba(34,211,238,.4),transparent 45%)}
.stats2 .wrap{position:relative;z-index:2}
.stats2-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}
.stat b{font-family:var(--font-display);font-weight:800;font-size:clamp(34px,4.4vw,52px);display:block;background:linear-gradient(120deg,#fff,#FDE68A);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat span{color:#AEBBD4;font-size:14.5px;display:block;margin-top:6px}

/* image + text feature rows */
.split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.split.rev .split-media{order:2}
/* .media-figure — DEAD CSS removed (class never used in markup) */
.split-body p{color:var(--muted);margin:0 0 18px;font-size:16px}
.ticks{margin:0 0 26px;padding:0}
.ticks li{list-style:none;display:flex;gap:12px;padding:8px 0;font-size:15px;align-items:flex-start;font-weight:500}
.ticks li svg{flex:0 0 auto;color:var(--blue);margin-top:3px}

/* product grid (software) */
.prodgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.prod{position:relative;background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px 24px;overflow:hidden;transition:transform .2s,box-shadow .25s,border-color .2s}
.prod::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--grad);opacity:0;transition:opacity .25s}
.prod:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:transparent}
.prod:hover::before{opacity:1}
.prod-ic{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;color:#fff;margin-bottom:16px;box-shadow:var(--shadow)}
.prod h3{font-size:17.5px;font-weight:700;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.prod h3 .pill{font-family:var(--font-body);font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--blue);background:var(--bg-soft);border:1px solid var(--line);border-radius:999px;padding:3px 8px}
.prod p{color:var(--muted);font-size:14px;margin:0}
.tagrow{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:8px}
.tagrow .chip{background:#fff}

/* feature boxes (inner pages) */
.feature{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:8px}
.fbox{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px 26px;transition:transform .2s,box-shadow .25s,border-color .2s}
.fbox:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:transparent}
.fbox .num{font-family:var(--font-display);font-weight:800;font-size:15px;color:#fff;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;margin-bottom:18px;box-shadow:var(--shadow)}
.fbox h3{font-size:18px;font-weight:700;margin-bottom:9px}
.fbox p{color:var(--muted);font-size:14.5px;margin:0}

/* process steps — DEAD CSS removed (.steps/.step/.step-line never used in markup; live UI uses .proc/.pstep) */

/* sectors */
.sectors{background:var(--bg-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sectors .wrap{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;padding-top:50px;padding-bottom:50px}
.sectors h2{font-size:23px;font-weight:700;max-width:360px}
.chips{display:flex;gap:12px;flex-wrap:wrap}
.chip{background:#fff;border:1px solid var(--line);border-radius:999px;padding:10px 20px;font-size:14px;color:var(--muted);font-weight:500;transition:transform .18s,border-color .2s,color .2s}
.chip:hover{transform:translateY(-3px);border-color:var(--blue);color:var(--blue)}

/* testimonials */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.testi{background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px;transition:transform .2s,box-shadow .25s}
.testi:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.testi .quote{font-size:34px;font-family:var(--font-display);line-height:1;color:var(--blue);opacity:.4}
.testi p{font-size:15px;margin:8px 0 22px;color:var(--ink)}
.testi .who{display:flex;align-items:center;gap:13px}
.testi .av{width:46px;height:46px;border-radius:50%;background:var(--grad);display:grid;place-items:center;color:#fff;font-family:var(--font-display);font-weight:700;flex:0 0 auto}
.testi .who b{display:block;font-size:14.5px}
.testi .who span{font-size:13px;color:var(--muted)}

/* about */
.about{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.about p{color:var(--muted);margin:0 0 18px}
.panel{background:linear-gradient(160deg,#fff,var(--bg-soft));border:1px solid var(--line);border-radius:22px;padding:34px;box-shadow:var(--shadow)}
.panel ul{margin:0;padding:0}
.panel li{list-style:none;display:flex;gap:12px;padding:12px 0;font-size:15px;align-items:flex-start;border-bottom:1px solid var(--line)}
.panel li:last-child{border-bottom:0}
.panel li::before{content:"";flex:0 0 auto;width:20px;height:20px;border-radius:6px;background:var(--grad-soft);background:var(--grad);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E") center/14px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E") center/14px no-repeat;margin-top:1px}

/* CTA band */
.ctaband{background:linear-gradient(120deg,#7C3AED 0%,#2563EB 52%,#06B6D4 100%);color:#fff;border-radius:28px;padding:64px 50px;text-align:center;position:relative;overflow:hidden;box-shadow:0 30px 70px rgba(124,58,237,.42)}
.ctaband::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 0%,rgba(255,255,255,.25),transparent 40%),radial-gradient(circle at 0% 100%,rgba(255,255,255,.18),transparent 40%)}
.ctaband>*{position:relative;z-index:2}
.ctaband h2{font-size:clamp(26px,3.2vw,38px);font-weight:800;margin-bottom:14px}
.ctaband p{opacity:.94;margin:0 auto 28px;max-width:560px;font-size:16.5px}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.contact-card{background:linear-gradient(160deg,#fff,var(--bg-soft));border:1px solid var(--line);border-radius:22px;padding:36px;box-shadow:var(--shadow)}
.contact label{display:block;font-size:13px;color:var(--muted);margin:0 0 7px;font-weight:600}
.contact input,.contact textarea{width:100%;background:#fff;border:1.5px solid var(--line);border-radius:12px;color:var(--ink);padding:13px 15px;font:inherit;font-size:15px;margin-bottom:18px;transition:border-color .2s,box-shadow .2s}
.contact input:focus,.contact textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(124,58,237,.2)}
.contact textarea{resize:vertical;min-height:140px}
.info-row{display:flex;gap:15px;align-items:flex-start;padding:18px 0;border-bottom:1px solid var(--line)}
.info-row .ic{color:#fff;flex:0 0 auto;width:42px;height:42px;border-radius:12px;background:var(--grad);display:grid;place-items:center;box-shadow:var(--shadow)}
.info-row b{display:block;font-weight:700;margin-bottom:3px}
.info-row a,.info-row span{color:var(--muted);font-size:15px}
.map-figure{margin-top:24px;border-radius:18px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}
.map-figure img{width:100%;height:230px;object-fit:cover}

footer{background:linear-gradient(125deg,#7C3AED 0%,#4F46E5 52%,#2563EB 100%);color:#E3DEFF;padding:64px 0 32px;position:relative;overflow:hidden}
footer::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--grad)}
footer .cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:36px;margin-bottom:40px}
footer .brand{color:#fff}
footer .brand b{-webkit-text-fill-color:#fff;background:none;color:#fff}
.brand-foot{display:inline-block;background:#fff;padding:10px 16px;border-radius:14px;margin-bottom:16px;box-shadow:0 10px 28px rgba(0,0,0,.28)}
.brand-foot .brand-logo{height:40px}
footer h4{color:#fff;font-family:var(--font-display);font-size:15px;margin:0 0 16px}
footer a{display:block;color:#D7D0FF;padding:5px 0;font-size:14.5px;transition:color .2s,transform .2s}
footer a:hover{color:#fff;transform:translateX(3px)}
footer .fnews input{width:100%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:11px;padding:12px 14px;color:#fff;font:inherit;font-size:14px;margin-bottom:10px}
footer .fnews input::placeholder{color:#7A88A6}
footer .fnews button{width:100%}
footer .bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:24px;font-size:13.5px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

@media(max-width:980px){
  .grid,.feature,.testi-grid{grid-template-columns:repeat(2,1fr)}
  .stats2-grid{grid-template-columns:repeat(2,1fr);gap:36px}
  .about,.contact-grid,.split{grid-template-columns:1fr;gap:38px}
  .hero-inner{grid-template-columns:1fr;gap:30px}
  .hero-copy{max-width:none}
  .hero-visual{min-height:320px;margin-top:6px}
  .split.rev .split-media{order:0}
  footer .cols{grid-template-columns:1fr 1fr}
}
@media(max-width:880px){.tb-mail{display:none}}
@media(max-width:560px){.tb-left{gap:12px}.tb-link{font-size:12.5px}.soc{width:28px;height:28px}.nav-actions .lbl{display:none}.btn-call,.btn-wa{padding:10px 12px}}
@media(max-width:640px){
  .navlinks{display:none;position:absolute;top:104px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:#fff;border-bottom:1px solid var(--line);padding:8px 0}
  .navlinks.open{display:flex}
  .navlinks>a,.drop{padding:8px 24px}
  .navlinks>a::after{display:none}
  .dropmenu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:4px 0 4px 12px;min-width:0}
  .drop .dropbtn{display:none}
  .menu-toggle{display:block}
  .brand .brand-logo{height:48px;width:48px}
  .nav .btn-primary{display:none}
  .hero-visual{display:none}
  .grid,.feature,.testi-grid{grid-template-columns:1fr}
  .stats2-grid{grid-template-columns:1fr 1fr}
  .ctaband{padding:44px 26px}
  .hero-inner{padding:84px 0 88px}
  footer .cols{grid-template-columns:1fr}
}

/* ============================================================
   LIGHT  PROFESSIONAL  THEME  — light everywhere, navy text, gold accents
   ============================================================ */
.eyebrow{color:#936E0A!important}
.eyebrow::before{background:var(--gold)}

/* top utility bar -> light */
.topbar{background:#F4F6FB;color:var(--ink);border-bottom:1px solid var(--line)}
.tb-link{color:var(--ink);opacity:.9}
.tb-link:hover{opacity:1;color:var(--gold-deep)}
.soc{background:var(--grad-gold);color:#14213D}
.soc:hover{filter:brightness(1.07);color:#14213D;transform:translateY(-2px)}

/* nav */
.navlinks>a{color:var(--ink)}
.navlinks>a:hover,.dropbtn:hover{background:var(--bg-soft)}
.navlinks>a.active{background:var(--grad-gold);color:#14213D}
.dropmenu a:hover{background:var(--bg-soft)}

/* buttons */
.btn-primary{background:var(--grad-gold);color:#14213D;box-shadow:0 10px 24px rgba(200,146,12,.3)}
.btn-primary:hover{box-shadow:0 14px 30px rgba(200,146,12,.42)}
.btn-ghost{border:1.5px solid var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold-deep)}
.btn-call{background:#fff;color:var(--ink);border:1.5px solid var(--line)}
.btn-call:hover{border-color:var(--gold)}
.btn-wa{background:linear-gradient(135deg,#1FA463,#15784A);color:#fff;box-shadow:0 8px 20px rgba(20,80,50,.26)}
.btn-wa:hover{box-shadow:0 12px 26px rgba(20,80,50,.4)}

/* every icon tile -> gold tile, navy icon (uniform, flat) */
.dropmenu .di,.scard .ic,.card .ic,.prod-ic,.fbox .num,.info-row .ic,.hero-chip .ico,.testi .av{background:var(--grad-gold)!important;color:#14213D!important;box-shadow:0 8px 18px rgba(200,146,12,.22)!important;border:0!important}
.scard:hover .ic,.card:hover .ic,.prod:hover .prod-ic,.fbox:hover .num,.dropmenu a:hover .di{filter:brightness(1.06)}
.prod::before{background:var(--grad-gold)}
.panel li::before{background:var(--grad-gold)}
.more,.scard .more,.card .more{color:var(--gold-deep)!important}

/* HERO -> light */
.hero{background:linear-gradient(135deg,#E9F0FB 0%,#F6F9FE 55%,#FFFFFF 100%);color:var(--ink)}
.hero-bg{opacity:.07}
.hero-veil{background:linear-gradient(135deg,rgba(255,255,255,.45),rgba(255,255,255,.72))}
.hero-grid{background-image:linear-gradient(rgba(20,33,61,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(20,33,61,.05) 1px,transparent 1px)}
.hero-mesh span{opacity:.2}
.hero-mesh span:nth-child(1){background:#E0A92E}
.hero-mesh span:nth-child(2){background:#9DB4E8}
.hero-mesh span:nth-child(3){background:#C8920C}
.hero-tag{background:#fff;border:1px solid var(--line);color:var(--ink)}
.hero h1{color:var(--ink)}
.hero h1 .accent{background:linear-gradient(120deg,#B5840A,#8A6608);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{color:var(--muted)}
.hero-stats b{background:none;-webkit-text-fill-color:var(--ink);color:var(--ink)}
.hero-stats span{color:var(--muted)}
.hero .btn-white{background:var(--grad-gold);color:#14213D;box-shadow:0 10px 24px rgba(200,146,12,.3)}
.hero .btn-outline{border:1.5px solid var(--ink);color:var(--ink)}
.hero .btn-outline:hover{background:var(--bg-soft)}
.radar{background:radial-gradient(circle at 50% 50%,rgba(233,240,251,.9),rgba(255,255,255,.5));border:1px solid rgba(200,146,12,.4)}
.radar::before{background:repeating-radial-gradient(circle at 50% 50%,transparent 0 33px,rgba(20,33,61,.12) 33px 34px)}
.radar .cross::before,.radar .cross::after{background:rgba(20,33,61,.14)}
.radar .sweep{background:conic-gradient(from 0deg,rgba(200,146,12,.45),rgba(200,146,12,0) 26%)}
.blip{background:#C8920C;box-shadow:0 0 12px rgba(200,146,12,.7)}
.blip.b2{background:#2C3E66;box-shadow:0 0 12px rgba(44,62,102,.55)}
.radar .core{background:var(--grad-gold)}
.hero-chip{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);color:var(--ink)}
.hero-chip span{color:var(--muted)}

/* stats band -> light */
.stats2{background:var(--bg-soft);color:var(--ink);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stats2::before{background:none}
.stats2 .sec-head h2{color:var(--ink)!important}
.stats2 .eyebrow{color:#936E0A!important}
.stat b{background:none;-webkit-text-fill-color:var(--ink);color:var(--ink)}
.stat span{color:var(--muted)}

/* CTA band -> bright gold */
.ctaband{background:var(--grad-gold)!important;color:#14213D;box-shadow:0 22px 50px rgba(200,146,12,.3)}
.ctaband p{color:#3A3112}
.ctaband .btn-white{background:#14213D;color:#fff}

/* footer -> light */
footer{background:var(--bg-soft);color:var(--muted);border-top:1px solid var(--line)}
footer::before{background:var(--grad-gold)}
footer p{color:var(--muted)!important}
footer h4{color:var(--ink)}
footer a{color:var(--muted)}
footer a:hover{color:var(--gold-deep)}
footer .brand b{color:var(--ink);-webkit-text-fill-color:var(--ink)}
.brand-foot{background:transparent;box-shadow:none;padding:0}
footer .bottom{border-top:1px solid var(--line)}
footer .fnews input{background:#fff;border:1px solid var(--line);color:var(--ink)}
footer .fnews input::placeholder{color:#9AA3B5}

/* page banners -> light with dark text */
.banner{background:#EEF2FA;color:var(--ink)}
.banner-veil{background:linear-gradient(120deg,rgba(238,242,250,.86),rgba(245,247,251,.8))!important}
.banner-bg{opacity:.12}
.banner h1{color:var(--ink)}
.banner p{color:var(--muted)}
.banner .crumb,.banner .crumb a{color:var(--muted)}
.banner::after{display:none}

/* misc accents */
.chip:hover{border-color:var(--gold);color:var(--gold-deep)}
.contact input:focus,.contact textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(200,146,12,.18)}
.testi .quote{color:var(--gold)}
.marquee-track span::before{background:var(--gold)}

/* ============================================================
   APPLE-STYLE  THEME  (final overrides)
   ============================================================ */
body{font-family:var(--font-body);color:var(--ink);letter-spacing:-.01em;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.022em;color:var(--ink)}
.eyebrow{color:var(--blue)!important;font-weight:600;letter-spacing:0;text-transform:none;font-size:17px;margin-bottom:8px}
.eyebrow::before{display:none}
section{padding:90px 0}
.sec-head h2{font-size:clamp(28px,4vw,48px);font-weight:600}
.sec-head p{font-size:clamp(17px,2vw,21px);color:var(--muted)}

/* buttons -> Apple pill */
.btn{border-radius:980px;font-weight:400;font-size:17px;padding:11px 22px;gap:5px}
.btn-primary,.btn-white,.btn-wa{background:var(--blue)!important;color:#fff!important;box-shadow:none!important}
.btn-primary:hover,.btn-white:hover,.btn-wa:hover{background:#0077ED!important;transform:none!important;filter:none;box-shadow:none!important}
.btn-ghost,.btn-outline{border:1px solid rgba(0,0,0,.2)!important;color:var(--ink)!important;background:none!important}
.btn-ghost:hover,.btn-outline:hover{border-color:var(--ink)!important;color:var(--ink)!important;background:none!important;transform:none}
.btn-call{border-radius:980px!important;border:0!important;background:none!important;color:var(--blue)!important;padding:11px 14px}
.btn-call:hover{color:#0077ED!important}

/* header / nav -> minimal frosted */
body > header{background:rgba(255,255,255,.8)!important;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid rgba(0,0,0,.08)}
.navlinks{gap:2px;font-size:14.5px;font-weight:500}
.navlinks>a,.dropbtn{font-weight:500;color:var(--ink)!important;font-size:14.5px;padding:8px 14px;border-radius:8px;opacity:.78;letter-spacing:-.005em;transition:opacity .18s,color .18s,background .18s}
.navlinks>a:hover,.dropbtn:hover{background:none!important;opacity:1;color:var(--blue)!important}
.navlinks>a.active{background:none!important;color:var(--blue)!important;opacity:1;font-weight:600}
.navlinks>a.active::after{content:"";display:block;height:2px;width:18px;margin:3px auto 0;background:var(--blue);border-radius:2px}
/* Cleaner dropdown caret — small chevron instead of solid triangle */
.dropbtn::after{margin-left:5px;border:0;width:8px;height:8px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg) translateY(-1px);opacity:.6;transition:opacity .2s,transform .2s}
.drop:hover .dropbtn::after,.drop.open .dropbtn::after{opacity:1;transform:rotate(225deg) translateY(2px)}
/* Tighter nav-actions for less crowding */
.nav-actions{gap:14px}
.nav-tel,.nav-mail{font-size:13.5px;font-weight:500;opacity:.82}
.nav-tel:hover,.nav-mail:hover{opacity:1}
.nav-tel svg,.nav-mail svg{opacity:.7}
/* At narrower desktop widths (1100–1280), hide the email text — keep icon only */
@media(max-width:1280px){
 .nav-mail span{display:none}
 .nav-actions{gap:10px}
}
/* At even narrower (≤1080) hide phone text too */
@media(max-width:1080px) and (min-width:921px){
 .nav-tel span{display:none}
}
.topbar{background:var(--bg-soft)!important;border-bottom:1px solid #E3E3E6}
.tb-link{color:var(--ink)!important;opacity:.85}
.soc{background:none!important;color:var(--ink)!important;box-shadow:none!important;width:26px;height:26px}
.soc:hover{color:var(--blue)!important;background:none!important;transform:none}
.dropmenu{border-radius:18px;box-shadow:0 20px 50px rgba(0,0,0,.12)}

/* icons -> minimal light grey tiles, dark glyph */
.dropmenu .di,.scard .ic,.card .ic,.prod-ic,.fbox .num,.info-row .ic,.hero-chip .ico,.testi .av{background:var(--bg-soft)!important;color:var(--ink)!important;box-shadow:none!important;border:0!important}
.scard:hover .ic,.card:hover .ic,.prod:hover .prod-ic,.fbox:hover .num,.dropmenu a:hover .di{filter:none}
.more,.scard .more,.card .more{color:var(--blue)!important}
.prod::before{background:var(--blue)}
.panel li::before{background:var(--blue)}

/* HERO -> centered, clean, white */
.hero{background:#FFFFFF!important}
.hero-bg,.hero-veil,.hero-grid,.hero-net,.hero-mesh,.hero-visual{display:none!important}
.hero-inner{grid-template-columns:1fr!important;text-align:center;padding:88px 0 78px!important}
.hero-copy{max-width:880px;margin:0 auto}
.hero-tag{background:none!important;border:0!important;color:var(--blue)!important;font-weight:600;font-size:19px;padding:0;margin-bottom:10px}
.hero-tag .live{display:none}
.hero h1{font-size:clamp(40px,7vw,80px);font-weight:600;letter-spacing:-.03em;line-height:1.05}
.hero h1 .accent{background:none!important;-webkit-text-fill-color:var(--blue)!important;color:var(--blue)!important}
.hero p{font-size:clamp(19px,2.4vw,26px);color:var(--muted);max-width:660px;margin:20px auto 28px;font-weight:400}
.hero-cta{justify-content:center}
.hero-stats{justify-content:center;gap:64px;margin-top:54px}
.hero-stats b{background:none!important;-webkit-text-fill-color:var(--ink)!important;color:var(--ink)!important;font-weight:600}
.hero-stats span{color:var(--muted)}

/* banners -> centered light */
.banner{background:var(--bg-soft)!important;text-align:center;padding:96px 0 74px}
.banner-bg,.banner-veil,.banner::after{display:none!important}
.banner .crumb{justify-content:center;color:var(--muted)}
.banner .crumb a{color:var(--muted)}
.banner h1{font-size:clamp(40px,6vw,68px);color:var(--ink);font-weight:600;letter-spacing:-.03em}
.banner p{color:var(--muted);font-size:clamp(19px,2.2vw,24px);margin-left:auto;margin-right:auto}

/* cards -> Apple rounded */
.scard,.card,.fbox,.prod,.testi,.panel,.contact-card{border-radius:20px;border:1px solid #E8E8ED;background:#fff;box-shadow:none}
.scard:hover,.card:hover,.fbox:hover,.prod:hover,.testi:hover{box-shadow:0 14px 44px rgba(0,0,0,.1);transform:none;border-color:#E8E8ED}
.chip{border-radius:980px;border-color:#D2D2D7}

/* stats band -> light, large */
.stats2{background:var(--bg-soft)!important;color:var(--ink)!important;border:0}
.stats2::before{display:none}
.stats2 .sec-head h2{color:var(--ink)!important}
.stats2 .eyebrow{color:var(--blue)!important}
.stat b{background:none!important;-webkit-text-fill-color:var(--ink)!important;color:var(--ink)!important;font-weight:600}
.stat span{color:var(--muted)}

/* CTA -> grey section, blue button */
.ctaband{background:var(--bg-soft)!important;color:var(--ink)!important;box-shadow:none!important;border-radius:24px}
.ctaband h2{color:var(--ink)}
.ctaband p{color:var(--muted)!important}
.ctaband .btn-white{background:var(--blue)!important;color:#fff!important}

/* footer -> Apple minimal */
footer{background:var(--bg-soft)!important;color:var(--muted)!important;border-top:1px solid #D2D2D7;padding:40px 0 28px}
footer::before{display:none}
footer h4{color:var(--ink);font-size:12px;font-weight:600}
footer a,footer p{font-size:12px;color:var(--muted)!important}
footer a:hover{color:var(--ink)!important;text-decoration:underline;transform:none}
footer .bottom{font-size:12px;border-top:1px solid #D2D2D7;color:#86868B}
.fnews input{background:#fff!important;border:1px solid #D2D2D7!important;color:var(--ink)!important}

/* misc */
.marquee{background:#fff;border-color:#E8E8ED}
.marquee-track span{color:#86868B}
.marquee-track span::before{display:none}
.sectors{background:var(--bg-soft)}
.testi .quote{color:var(--blue)}
.contact input,.contact textarea{border-radius:12px;border-color:#D2D2D7}

/* ============================================================
   APPLE.COM-STYLE  MARKETING TILES + MEGA FOOTER
   ============================================================ */
.atiles{display:flex;flex-direction:column;gap:12px;background:#fafafc}
.atiles-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.atile{position:relative;text-align:center;overflow:hidden;background:#fff;padding:56px 24px 0;min-height:580px;display:flex;flex-direction:column}
.atile.grey{background:var(--bg-soft)}
.atile.short{min-height:480px}
.atile-in{position:relative;z-index:2;max-width:860px;margin:0 auto}
.atile .ey{font-size:clamp(18px,2vw,22px);font-weight:600;color:var(--muted);margin-bottom:2px}
.atile h2{font-size:clamp(32px,5vw,56px);font-weight:700;letter-spacing:-.022em;line-height:1.05;margin:0;color:var(--ink)}
.atile .sub{font-size:clamp(18px,2.2vw,26px);font-weight:500;color:var(--ink);margin:9px auto 0;max-width:620px;line-height:1.28}
.atile .links{display:flex;gap:26px;justify-content:center;margin-top:16px;flex-wrap:wrap}
.alink{color:var(--blue);font-size:clamp(16px,1.6vw,19px);display:inline-flex;align-items:center}
.alink:hover{text-decoration:underline}
.alink::after{content:"\203A";margin-left:3px;font-weight:500}
.atile-media{flex:1;display:flex;align-items:flex-end;justify-content:center;margin-top:26px;min-height:0}
.atile-media img{width:100%;max-width:1040px;display:block;object-fit:contain;border-radius:18px 18px 0 0}
.atiles-2 .atile-media img{border-radius:16px}
.atiles-2 .atile{padding-bottom:48px}
.atiles-2 .atile h2{font-size:clamp(26px,3vw,38px)}
.atiles-2 .atile .sub{font-size:clamp(16px,1.8vw,19px)}
@media(max-width:820px){.atiles-2{grid-template-columns:1fr}.atile{min-height:480px;padding:46px 20px 0}.atile.short{min-height:420px}}

/* mega footer (apple.com) */
footer{background:var(--bg-soft);color:var(--muted);border-top:0;padding:0;overflow:visible}
footer::before{display:none}
.mf{max-width:1000px;margin:0 auto;padding:0 22px}
.mf-note{padding:22px 0 16px;border-bottom:1px solid #d2d2d7;font-size:12px;line-height:1.5;color:var(--muted);margin:0}
.mf-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;padding:18px 0 22px;border-bottom:1px solid #d2d2d7}
.mf-cols h4{font-size:12px;font-weight:600;color:var(--ink);margin:0 0 7px}
.mf-cols a,.mf-cols span{display:block;color:var(--muted);font-size:12px;line-height:1.45;padding:4px 0}
.mf-cols a{transform:none}
.mf-cols a:hover{color:var(--ink);text-decoration:underline;transform:none}
.mf-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px 0 30px;font-size:12px;color:#86868b}
.mf-legal{display:flex;gap:16px;flex-wrap:wrap}
.mf-legal a{color:#86868b}
.mf-legal a:hover{color:var(--ink);text-decoration:underline}
@media(max-width:760px){.mf-cols{grid-template-columns:1fr 1fr}.mf-bottom{flex-direction:column;align-items:flex-start}}

/* ============================================================
   SERVICE-COMPANY RICH COMPONENTS  (light, professional)
   ============================================================ */
/* service hero: split copy + image, trust stats */
.shero{background:linear-gradient(180deg,#FFFFFF 0%,var(--bg-soft) 100%);padding:64px 0 70px}
.shero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;max-width:var(--maxw);margin:0 auto;padding:0 24px}
.shero .crumbs{font-size:14px;color:var(--muted);margin-bottom:14px}
.shero .crumbs a{color:var(--blue)}
.shero h1{font-size:clamp(36px,4.8vw,58px);font-weight:700;letter-spacing:-.025em;line-height:1.06;color:var(--ink);margin:0}
.shero .lead{font-size:clamp(17px,2vw,21px);color:var(--muted);margin:18px 0 26px;max-width:560px;line-height:1.5}
.shero-cta{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.shero-img{border-radius:24px;overflow:hidden;box-shadow:0 30px 70px rgba(0,0,0,.14)}
.shero-img img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;display:block}
.trustrow{display:flex;gap:40px;margin-top:36px;flex-wrap:wrap}
.trustrow b{font-size:26px;font-weight:700;display:block;color:var(--ink);letter-spacing:-.02em}
.trustrow span{font-size:13px;color:var(--muted)}

/* capability cards with deliverables */
.cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.cap-grid-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1080px){.cap-grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.cap-grid-4{grid-template-columns:1fr}}

/* ---------- "Trusted across Kuwait" — stats band + industries grid ---------- */
.trust-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:1000px;margin:0 auto 44px;padding:28px 32px;background:#fff;border:1px solid #ECECEF;border-radius:22px;box-shadow:0 1px 0 rgba(0,0,0,.02),0 18px 40px -28px rgba(0,0,0,.18)}
.trust-stats .tst{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}
.trust-stats .tst strong{font-size:clamp(28px,3.4vw,40px);font-weight:800;letter-spacing:-.02em;color:var(--blue);line-height:1}
.trust-stats .tst span{font-size:13.5px;color:var(--muted);font-weight:500}
.ind-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;max-width:1080px;margin:0 auto}
.ind{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 16px;background:#fff;border:1px solid #ECECEF;border-radius:18px;transition:transform .25s,border-color .25s,box-shadow .25s}
.ind:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--blue) 35%,#ECECEF);box-shadow:0 14px 28px -18px color-mix(in srgb,var(--blue) 35%,transparent)}
.ind .ich{width:48px;height:48px;border-radius:14px;background:color-mix(in srgb,var(--blue) 10%,#F5F5F7);color:var(--blue);display:grid;place-items:center;margin:0}
.ind .ich svg{width:24px;height:24px}
.ind span{font-size:14px;font-weight:600;color:var(--ink);text-align:center;line-height:1.3}
.trust-note{max-width:760px;margin:36px auto 0;text-align:center;font-size:13.5px;color:var(--muted);font-style:italic}
@media(max-width:920px){.trust-stats,.ind-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.trust-stats{grid-template-columns:1fr 1fr;padding:22px 18px;gap:12px}.ind-grid{grid-template-columns:repeat(2,1fr)}}
.cap{background:#fff;border:1px solid #E8E8ED;border-radius:20px;padding:30px 28px;transition:box-shadow .25s}
.cap:hover{box-shadow:0 16px 44px rgba(0,0,0,.1)}
.cap .ich{width:46px;height:46px;border-radius:13px;background:#EAF3FF;color:var(--blue);display:grid;place-items:center;margin-bottom:18px}
.cap .ich svg{width:23px;height:23px}
.cap h3{font-size:20px;font-weight:600;margin:0 0 8px;color:var(--ink)}
.cap>p{font-size:14.5px;color:var(--muted);margin:0 0 16px;line-height:1.5}
.cap ul{margin:0;padding:0;list-style:none}
.cap li{display:flex;gap:9px;align-items:flex-start;font-size:14px;color:var(--ink);padding:5px 0}
.cap li::before{content:"";flex:0 0 auto;width:16px;height:16px;margin-top:2px;background:var(--blue);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E") center/14px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E") center/14px no-repeat}

/* split rows */
.srow{display:grid;grid-template-columns:1.05fr 1fr;gap:80px;align-items:center;position:relative}
.srow.rev .srow-img{order:2}
.srow-img{position:relative;border-radius:26px;overflow:hidden;box-shadow:0 1px 0 rgba(15,23,42,.04),0 32px 80px -22px rgba(15,23,42,.32),0 0 0 1px rgba(15,23,42,.04);transform:translateZ(0);transition:transform .55s cubic-bezier(.22,.61,.36,1),box-shadow .55s cubic-bezier(.22,.61,.36,1)}
.srow-img::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,transparent 55%,rgba(0,113,227,.18) 100%);pointer-events:none;z-index:2;mix-blend-mode:screen}
.srow-img::after{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);pointer-events:none;z-index:2}
.srow-img img{width:100%;display:block;object-fit:cover;aspect-ratio:4/3;transition:transform .9s cubic-bezier(.22,.61,.36,1)}
.srow-img:hover{transform:translateY(-5px);box-shadow:0 1px 0 rgba(15,23,42,.05),0 42px 96px -22px rgba(15,23,42,.38),0 0 0 1px rgba(0,113,227,.10)}
.srow-img:hover img{transform:scale(1.04)}
.srow h2{font-size:clamp(28px,3.7vw,42px);font-weight:700;letter-spacing:-.027em;margin:0 0 18px;line-height:1.12;color:#0d1226}
.srow p{color:#3D3D42;font-size:17px;margin:0 0 26px;line-height:1.6;max-width:560px;font-weight:400}
.srow .ticks{margin:0 0 30px;padding:0}
.srow .ticks li{position:relative;list-style:none;display:flex;gap:14px;align-items:flex-start;padding:14px 0;font-size:15.5px;font-weight:500;color:#1d1d1f;border-bottom:1px solid rgba(15,23,42,.07);transition:transform .25s ease,padding-left .25s ease}
.srow .ticks li:last-child{border-bottom:0}
.srow .ticks li svg{flex:0 0 26px;width:26px;height:26px;color:#0071E3;background:linear-gradient(135deg,rgba(0,113,227,.14),rgba(0,113,227,.06));border-radius:50%;padding:5px;margin-top:0;transition:background .28s ease,color .28s ease,transform .28s ease,box-shadow .28s ease}
.srow .ticks li:hover{padding-left:6px}
.srow .ticks li:hover svg{background:linear-gradient(135deg,#0071E3,#0066CC);color:#fff;transform:scale(1.06);box-shadow:0 8px 18px -6px rgba(0,113,227,.45)}
@media(max-width:920px){.srow .ticks li{padding:12px 0;font-size:15px}.srow .ticks li svg{flex-basis:24px;width:24px;height:24px}.srow p{font-size:16px}}

/* process */
.proc{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;counter-reset:pstep;position:relative}
.proc::before{content:'';position:absolute;top:60px;left:11%;right:11%;height:1px;background:repeating-linear-gradient(90deg,rgba(0,113,227,.28) 0 6px,transparent 6px 14px);z-index:0;pointer-events:none}
.pstep{position:relative;z-index:1;background:#fff;border:0;border-radius:24px;padding:36px 28px 30px;box-shadow:0 1px 0 rgba(15,23,42,.04),0 18px 40px -14px rgba(15,23,42,.12),0 0 0 1px rgba(15,23,42,.06);transition:transform .4s cubic-bezier(.22,.61,.36,1),box-shadow .4s cubic-bezier(.22,.61,.36,1);overflow:hidden}
.pstep::after{content:'';position:absolute;top:-50px;right:-50px;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,rgba(0,113,227,.10),transparent 70%);pointer-events:none;transition:transform .55s ease,opacity .4s ease;opacity:.7}
.pstep:hover{transform:translateY(-6px);box-shadow:0 1px 0 rgba(15,23,42,.04),0 28px 60px -12px rgba(0,113,227,.22),0 0 0 1px rgba(0,113,227,.18)}
.pstep:hover::after{transform:scale(1.4);opacity:1}
.pstep::before{counter-increment:pstep;content:counter(pstep,decimal-leading-zero);font-family:var(--font-display);font-size:14px;font-weight:800;color:#fff;background:linear-gradient(135deg,#0071E3 0%,#0058B0 100%);width:46px;height:46px;border-radius:14px;display:grid;place-items:center;margin:0 0 22px;box-shadow:0 10px 22px -6px rgba(0,113,227,.5),inset 0 1px 0 rgba(255,255,255,.35);letter-spacing:.04em;position:relative;z-index:1}
.pstep h3{font-size:19px;font-weight:700;margin:0 0 10px;color:#0d1226;letter-spacing:-.012em;line-height:1.3;position:relative;z-index:1}
.pstep h3::after{content:'';display:block;width:28px;height:2px;background:linear-gradient(90deg,#0071E3,transparent);margin-top:12px;border-radius:2px;transition:width .35s ease}
.pstep:hover h3::after{width:54px}
.pstep p{font-size:14.5px;color:#3D3D42;margin:0;line-height:1.6;position:relative;z-index:1}

/* big stats band */
.bandstats{background:#fff;border:1px solid #E8E8ED;border-radius:24px;padding:44px 40px;display:grid;grid-template-columns:repeat(4,1fr);gap:30px;text-align:center}
.bandstats b{font-size:clamp(30px,3.6vw,44px);font-weight:700;color:var(--blue);display:block;letter-spacing:-.02em}
.bandstats span{font-size:13.5px;color:var(--muted)}

/* FAQ accordion (no JS) */
.faqs{max-width:760px;margin:0 auto}
.faqs details{border-bottom:1px solid #D2D2D7;padding:4px 0}
.faqs summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:17px;font-weight:600;color:var(--ink);padding:18px 0}
.faqs summary::-webkit-details-marker{display:none}
.faqs summary::after{content:"+";font-size:24px;font-weight:400;color:var(--blue);transition:transform .2s}
.faqs details[open] summary::after{transform:rotate(45deg)}
.faqs details p{margin:0 0 18px;color:var(--muted);font-size:15px;line-height:1.55}

/* CTA panel */
.cta-panel{background:var(--bg-soft);border-radius:28px;text-align:center;padding:64px 40px}
.cta-panel h2{font-size:clamp(28px,4vw,44px);font-weight:700;letter-spacing:-.025em;margin:0 0 12px}
.cta-panel p{color:var(--muted);font-size:17px;max-width:560px;margin:0 auto 26px}
.cta-actions{display:flex;gap:18px;justify-content:center;align-items:center;flex-wrap:wrap}

/* quote */
.bigquote{max-width:820px;margin:0 auto;text-align:center}
.bigquote blockquote{font-size:clamp(20px,2.6vw,28px);font-weight:600;letter-spacing:-.015em;color:var(--ink);line-height:1.35;margin:0 0 22px}
.bigquote cite{font-style:normal;font-size:14.5px;color:var(--muted)}
.bigquote cite b{color:var(--ink);display:block;font-size:15px}

@media(max-width:920px){.shero-grid,.srow{grid-template-columns:1fr;gap:36px}.srow.rev .srow-img{order:0}.cap-grid{grid-template-columns:repeat(2,1fr)}.proc{grid-template-columns:repeat(2,1fr)}.proc::before{display:none}.bandstats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.cap-grid,.proc{grid-template-columns:1fr}.bandstats{grid-template-columns:1fr 1fr;padding:32px 22px}.cta-panel{padding:46px 24px}}

/* ============================================================
   PROOF BAND  — unified stats + testimonial + chips
   ============================================================ */
section.proof-band{padding:96px 0;background:linear-gradient(180deg,#FAFAFC 0%,#F2F2F5 100%);position:relative;overflow:hidden}
section.proof-band::before{content:'';position:absolute;top:-160px;left:-120px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(0,113,227,.07),transparent 60%);pointer-events:none}
section.proof-band::after{content:'';position:absolute;bottom:-180px;right:-120px;width:560px;height:560px;border-radius:50%;background:radial-gradient(circle,rgba(29,29,31,.05),transparent 60%);pointer-events:none}
section.proof-band > .wrap{position:relative;z-index:1}
section.proof-band .proof-eyebrow{text-align:center;font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#0066CC;margin:0 0 32px;display:flex;align-items:center;justify-content:center;gap:14px}
section.proof-band .proof-eyebrow::before,
section.proof-band .proof-eyebrow::after{content:'';display:block;width:44px;height:1px;background:linear-gradient(90deg,transparent,#0071E3,transparent)}
section.proof-band .bandstats{background:transparent !important;border:0 !important;border-radius:0 !important;padding:0 !important;margin:0 auto 64px;max-width:1080px;gap:0;text-align:center}
section.proof-band .bandstats > div{position:relative;padding:14px 24px}
section.proof-band .bandstats > div + div::before{content:'';position:absolute;left:0;top:22%;bottom:22%;width:1px;background:linear-gradient(180deg,transparent,rgba(15,23,42,.14),transparent)}
section.proof-band .bandstats b{font-size:clamp(34px,4.2vw,52px);font-weight:700;letter-spacing:-.025em;background:linear-gradient(180deg,#1D1D1F 0%,#0071E3 100%);-webkit-background-clip:text;background-clip:text;color:transparent;display:block;line-height:1}
section.proof-band .bandstats span{display:block;margin-top:10px;font-size:13px;color:#52525b;font-weight:500;letter-spacing:.005em}
section.proof-band .bigquote{position:relative;max-width:880px;margin:0 auto 52px;background:#fff;border-radius:28px;padding:72px 56px 44px;text-align:center;box-shadow:0 1px 0 rgba(15,23,42,.04),0 30px 60px -20px rgba(15,23,42,.22),0 0 0 1px rgba(15,23,42,.04)}
section.proof-band .bigquote::before{content:'\201C';position:absolute;top:-30px;left:50%;transform:translateX(-50%);width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#0071E3 0%,#0066CC 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-family:Georgia,'Times New Roman',serif;font-size:60px;line-height:1;padding-bottom:18px;box-shadow:0 12px 28px -6px rgba(0,113,227,.45),inset 0 1px 0 rgba(255,255,255,.35)}
section.proof-band .bigquote blockquote{font-size:clamp(19px,2.2vw,25px);font-weight:500;font-style:italic;letter-spacing:-.012em;color:#1d1d1f;line-height:1.55;margin:0 0 34px;quotes:none}
section.proof-band .bigquote blockquote::before,
section.proof-band .bigquote blockquote::after{content:''}
section.proof-band .bigquote cite{font-style:normal;display:inline-flex;align-items:center;gap:0;padding-top:26px;border-top:1px solid #ececef;font-size:14px;color:#6e6e73;line-height:1.4;text-align:center;flex-direction:column}
section.proof-band .bigquote cite b{color:#1d1d1f;display:block;font-size:15px;font-weight:600;letter-spacing:-.005em;margin-bottom:4px}
section.proof-band .chips{max-width:780px;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;padding:0}
section.proof-band .chip{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:999px;padding:10px 20px;font-size:13.5px;color:#475569;font-weight:500;transition:transform .22s ease,border-color .22s ease,color .22s ease,box-shadow .22s ease;cursor:default}
section.proof-band .chip:hover{transform:translateY(-2px);border-color:#0071E3;color:#0071E3;box-shadow:0 10px 22px -8px rgba(0,113,227,.32)}
[dir="rtl"] section.proof-band .proof-eyebrow{letter-spacing:.12em}
[dir="rtl"] section.proof-band .bigquote::before{content:'\201D'}
@media(max-width:760px){
 section.proof-band{padding:72px 0}
 section.proof-band .proof-eyebrow{font-size:11px;letter-spacing:.18em;margin-bottom:24px}
 section.proof-band .proof-eyebrow::before,
 section.proof-band .proof-eyebrow::after{width:28px}
 section.proof-band .bandstats{grid-template-columns:1fr 1fr;gap:24px 0;margin-bottom:44px;padding:0 !important}
 section.proof-band .bandstats > div + div::before{display:none}
 section.proof-band .bigquote{padding:56px 26px 36px;border-radius:22px;margin-bottom:40px}
 section.proof-band .bigquote::before{width:54px;height:54px;font-size:48px;top:-26px}
 section.proof-band .chip{padding:8px 16px;font-size:13px}
}

/* ============================================================
   HOME HERO SLIDER  — FULL-BLEED image fills the whole banner
   ============================================================ */
.hslider{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:calc(100vh - 106px);min-height:calc(100svh - 106px);background:#10141E}
.hbg{position:absolute;inset:0;overflow:hidden}
.himg{position:absolute;inset:0;opacity:0;transition:opacity 1s ease;z-index:1}
.himg.on{opacity:1;z-index:2}
.himg img{width:100%;height:100%;object-fit:cover;display:block;transform-origin:60% 40%}
.himg.on img{animation:kburns 14s ease-in-out infinite alternate}
@keyframes kburns{from{transform:scale(1)}to{transform:scale(1.16) translate(-1.5%,1.5%)}}
/* ~50% colored scrim — tint comes from the company logo, set per slide via --sc */
.hscrim{position:absolute;inset:0;z-index:3;--sc:19,46,110;background:linear-gradient(90deg,rgba(var(--sc),.78) 0%,rgba(var(--sc),.6) 38%,rgba(var(--sc),.44) 66%,rgba(var(--sc),.32) 100%)}
.hscrim::after{content:"";position:absolute;left:0;right:0;bottom:0;height:160px;background:linear-gradient(180deg,rgba(var(--sc),0),rgba(var(--sc),.62))}
.hcontent{position:relative;z-index:4;flex:1;display:flex;align-items:center;width:100%;max-width:var(--maxw);margin:0 auto;padding:40px 24px 20px}
.hcopy{max-width:620px}
.hcopy .ey2{font-size:15px;font-weight:600;color:#7DC4FF;margin-bottom:10px;display:flex;align-items:center;gap:10px}
.hcopy .ey2 .idx{color:rgba(255,255,255,.6);font-weight:500;font-variant-numeric:tabular-nums}
.hcopy h1{font-size:clamp(36px,4.9vw,64px);font-weight:700;letter-spacing:-.025em;line-height:1.06;margin:0;color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.hcopy .lead{font-size:clamp(16px,2vw,21px);color:rgba(255,255,255,.9);margin:16px 0 0;max-width:540px;line-height:1.5;text-shadow:0 1px 14px rgba(0,0,0,.3)}
.hchips{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 24px;min-height:38px}
.hchip{background:rgba(255,255,255,.14);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.34);border-radius:980px;padding:7px 15px;font-size:13.5px;font-weight:500;color:#fff;white-space:nowrap}
.hslider .trustrow{margin-top:30px}
.hslider .trustrow b{color:#fff}
.hslider .trustrow span{color:rgba(255,255,255,.72)}
.hslider .alink{color:#9BCBFF}
.hslider .alink:hover{color:#fff}
.hfade{animation:hfade .55s cubic-bezier(.2,.7,.2,1)}
@keyframes hfade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
/* tabs float over the image, frosted */
.htabs{position:relative;z-index:4;display:flex;gap:4px;overflow-x:auto;margin:0 auto 26px;padding:6px 8px;scrollbar-width:none;max-width:calc(100% - 48px);background:rgba(14,18,28,.5);backdrop-filter:saturate(140%) blur(16px);-webkit-backdrop-filter:saturate(140%) blur(16px);border:1px solid rgba(255,255,255,.2);border-radius:18px;box-shadow:0 14px 38px rgba(0,0,0,.3)}
.htabs::-webkit-scrollbar{display:none}
.htab{position:relative;background:none;border:0;font:inherit;font-size:14px;font-weight:500;color:rgba(255,255,255,.75);padding:10px 16px 16px;cursor:pointer;white-space:nowrap;border-radius:12px;transition:color .2s,background .2s}
.htab:hover{color:#fff;background:rgba(255,255,255,.12)}
.htab.on{color:#fff;font-weight:600}
.htab .bar{position:absolute;left:16px;right:16px;bottom:8px;height:3px;border-radius:3px;background:rgba(255,255,255,.28);overflow:hidden}
.htab .bar i{display:block;height:100%;width:0;background:#4DA3FF;border-radius:3px}
@media(prefers-reduced-motion:reduce){.himg.on img,.htab.on .bar i{animation:none}.htab.on .bar i{width:100%}}
@media(max-width:920px){
 .hslider{min-height:calc(100svh - 106px)}
 .hscrim{background:linear-gradient(180deg,rgba(var(--sc),.76) 0%,rgba(var(--sc),.58) 45%,rgba(var(--sc),.44) 75%,rgba(var(--sc),.36) 100%)}
 .hcontent{align-items:flex-start;padding-top:34px}
 .hcopy .lead{min-height:0}
 .htabs{justify-content:flex-start;margin-bottom:18px}
}
@media(max-height:850px) and (min-width:921px){
 .hcopy h1{font-size:clamp(30px,3.3vw,46px)}
 .hcopy .lead{font-size:17px;margin-top:10px}
 .hchips{margin:14px 0 18px}
 .hslider .trustrow{margin-top:20px;gap:30px}
 .hslider .trustrow b{font-size:21px}
 .htabs{margin-bottom:16px}
}

/* ============================================================
   LOGO-COLORED MENU  (navy + gold + red from the crest)
   ============================================================ */
.navlinks{gap:10px;font-size:15px}
.navlinks>a,.dropbtn{color:#14213D!important;font-weight:500;opacity:1;font-size:15px}
.navlinks>a{position:relative;padding:9px 14px}
.navlinks>a::after{content:"";display:block;position:absolute;left:13px;right:13px;bottom:4px;height:2.5px;border-radius:3px;background:linear-gradient(90deg,#E0A92E 0%,#C8920C 55%,#C61F2E 100%);transform:scaleX(0);transform-origin:left;transition:transform .28s ease}
.navlinks>a:hover::after,.navlinks>a.active::after{transform:scaleX(1)}
.navlinks>a:hover,.dropbtn:hover{color:#B8860B!important;background:none!important}
.navlinks>a.active{color:#0E1B3D!important;font-weight:600;background:none!important}
.dropbtn{position:relative;padding:9px 14px}
.dropbtn::after{border-top-color:#C8920C}
.dropbtn:hover::after{border-top-color:#C61F2E}
/* dropdown icon tiles: soft logo-gold */
.dropmenu .di{background:linear-gradient(135deg,#F9EECB,#F1D795)!important;color:#8A6508!important}
.dropmenu a:hover{background:#FBF6E9}
.dropmenu a:hover .di{background:linear-gradient(135deg,#E0A92E,#C8920C)!important;color:#fff!important}

/* ============================================================
   IMAGE CAPABILITY CARDS  (photo-topped caps)
   ============================================================ */
.cap.icap{padding:0;overflow:hidden;display:flex;flex-direction:column}
.icap-img{height:175px;overflow:hidden;flex:0 0 auto}
.icap-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.cap.icap:hover .icap-img img{transform:scale(1.06)}
.icap-body{padding:24px 26px 28px}
.icap-body h3{font-size:19px;font-weight:600;margin:0 0 8px;color:var(--ink)}
.icap-body>p{font-size:14.5px;color:var(--muted);margin:0 0 14px;line-height:1.5}

/* ============================================================
   GLOBAL PRESENCE  (countries we serve)
   ============================================================ */
.geo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.geo{background:#fff;border:1px solid #E8E8ED;border-radius:20px;padding:28px 22px;text-align:center;transition:box-shadow .25s,transform .2s}
.geo:hover{box-shadow:0 16px 44px rgba(0,0,0,.1);transform:translateY(-3px)}
.geo .flag{width:64px;height:44px;object-fit:cover;border-radius:8px;box-shadow:0 4px 14px rgba(0,0,0,.18);margin:0 auto 14px;display:block}
.geo h3{font-size:18px;font-weight:600;margin:0 0 4px;color:var(--ink)}
.geo span{font-size:13px;color:var(--muted)}
.geo .hq{display:inline-block;margin-top:8px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8A6508;background:linear-gradient(135deg,#F9EECB,#F1D795);border-radius:999px;padding:4px 12px}
@media(max-width:880px){.geo-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.geo-grid{grid-template-columns:1fr 1fr;gap:12px}.geo{padding:20px 14px}}

/* ============================================================
   WHATSAPP BOT AGENT  (floating widget)
   ============================================================ */
#waWidget{position:fixed;right:22px;bottom:22px;z-index:200;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Inter","Helvetica Neue",Helvetica,Arial,sans-serif}
#waFab{position:relative;width:60px;height:60px;border-radius:50%;border:0;cursor:pointer;background:linear-gradient(135deg,#25D366,#0FA958);color:#fff;display:grid;place-items:center;box-shadow:0 12px 32px rgba(15,140,80,.45);transition:transform .2s,box-shadow .25s}
#waFab:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(15,140,80,.55)}
#waFab.open{transform:scale(.94)}
.waPulse{position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 0 rgba(37,211,102,.5);animation:waPing 2.4s infinite}
@keyframes waPing{0%{box-shadow:0 0 0 0 rgba(37,211,102,.5)}70%{box-shadow:0 0 0 16px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}
#waPanel{position:absolute;right:0;bottom:74px;width:340px;max-width:calc(100vw - 44px);background:#fff;border-radius:20px;box-shadow:0 30px 80px rgba(0,0,0,.25);overflow:hidden;animation:waUp .3s cubic-bezier(.2,.7,.2,1)}
@keyframes waUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.waHead{display:flex;align-items:center;gap:11px;background:linear-gradient(135deg,#0FA958,#0B8A47);color:#fff;padding:14px 16px}
.waAvatar{width:42px;height:42px;border-radius:50%;background:#fff;display:grid;place-items:center;flex:0 0 auto;padding:3px;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.waAvatar img{width:100%;height:100%;object-fit:contain;display:block}
.waWho{flex:1;line-height:1.25}
.waWho b{font-size:15px;display:block}
.waWho i{font-style:normal;font-size:12px;opacity:.9;display:flex;align-items:center;gap:6px}
.waDot{width:8px;height:8px;border-radius:50%;background:#7CF5B2;display:inline-block}
#waClose{background:none;border:0;color:#fff;font-size:26px;line-height:1;cursor:pointer;padding:2px 6px;opacity:.85}
#waClose:hover{opacity:1}
.waBody{background:#EFEAE2;padding:16px 14px;max-height:300px;overflow-y:auto}
.waMsg{background:#fff;border-radius:4px 14px 14px 14px;padding:11px 13px;font-size:13.5px;color:var(--ink);line-height:1.45;box-shadow:0 1px 2px rgba(0,0,0,.08);margin-bottom:12px;max-width:92%}
.waChips{display:flex;flex-wrap:wrap;gap:7px}
.waChip{background:#fff;border:1.5px solid #0FA958;color:#0B8A47;border-radius:999px;padding:6px 13px;font-size:12.5px;font-weight:600;cursor:pointer;transition:background .15s,color .15s,transform .15s;font-family:inherit}
.waChip:hover{transform:translateY(-1px)}
.waChip.sel{background:#0FA958;color:#fff}
.waFoot{display:flex;align-items:center;gap:9px;padding:11px 12px;background:#fff;border-top:1px solid #E8E8ED}
#waText{flex:1;border:1px solid #D2D2D7;border-radius:999px;padding:10px 15px;font:inherit;font-size:13.5px;color:var(--ink);outline:none}
#waText:focus{border-color:#0FA958;box-shadow:0 0 0 3px rgba(15,169,88,.15)}
.waSendBtn{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#25D366,#0FA958);color:#fff;display:grid;place-items:center;flex:0 0 auto;box-shadow:0 6px 16px rgba(15,140,80,.4);transition:transform .15s}
.waSendBtn:hover{transform:scale(1.07)}
@media(prefers-reduced-motion:reduce){.waPulse{animation:none}#waPanel{animation:none}}
@media(max-width:560px){#waWidget{right:14px;bottom:14px}#waPanel{bottom:70px}}

/* ============================================================
   BILINGUAL  (Arabic RTL + language toggle)
   ============================================================ */
.lang-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1.5px solid #D2D2D7;background:#fff;border-radius:980px;padding:6px 10px;font:inherit;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;white-space:nowrap;transition:border-color .2s,color .2s,transform .2s,box-shadow .2s;overflow:visible}
.lang-btn::before{content:"";position:absolute;inset:-2px;border-radius:inherit;background:conic-gradient(from 0deg,transparent 0deg,color-mix(in srgb,var(--blue) 55%,transparent) 60deg,transparent 120deg,transparent 360deg);opacity:0;animation:langSpin 4s linear infinite;z-index:-1;filter:blur(2px)}
.lang-btn::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 0 0 color-mix(in srgb,var(--blue) 55%,transparent);animation:langPulse 2.4s ease-out infinite;pointer-events:none}
.lang-btn:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-1px)}
.lang-btn:hover::before{opacity:1}
.lang-btn:hover::after{animation:none;box-shadow:none}
.lang-flag{width:22px;height:16px;border-radius:3px;object-fit:cover;box-shadow:0 0 0 1px rgba(0,0,0,.08);display:block;animation:langWave 3.2s ease-in-out infinite;transform-origin:left center}
.lang-btn:hover .lang-flag{animation-duration:.9s}
@keyframes langWave{
 0%,100%{transform:rotate(0) scale(1)}
 12%{transform:rotate(-10deg) scale(1.04)}
 24%{transform:rotate(8deg) scale(1.04)}
 36%{transform:rotate(-6deg) scale(1.02)}
 48%{transform:rotate(4deg) scale(1.02)}
 60%{transform:rotate(0) scale(1)}
}
@keyframes langPulse{
 0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--blue) 55%,transparent)}
 70%{box-shadow:0 0 0 14px color-mix(in srgb,var(--blue) 0%,transparent)}
 100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--blue) 0%,transparent)}
}
@keyframes langSpin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.lang-flag,.lang-btn::after,.lang-btn::before{animation:none!important}}
html[lang="ar"] body,html[lang="ar"] h1,html[lang="ar"] h2,html[lang="ar"] h3,html[lang="ar"] .btn,html[lang="ar"] input,html[lang="ar"] textarea{font-family:'Tajawal','Segoe UI',-apple-system,Tahoma,Arial,sans-serif;letter-spacing:0}
html[lang="ar"] h1,html[lang="ar"] h2{line-height:1.25}
/* keep phone numbers and emails left-to-right inside RTL text */
[dir="rtl"] a[href^="tel"],[dir="rtl"] a[href^="mailto"],[dir="rtl"] .nav-tel span,[dir="rtl"] .idx{direction:ltr;unicode-bidi:isolate}
/* hero slider mirroring */
[dir="rtl"] .hscrim{background:linear-gradient(270deg,rgba(var(--sc),.78) 0%,rgba(var(--sc),.6) 38%,rgba(var(--sc),.44) 66%,rgba(var(--sc),.32) 100%)}
[dir="rtl"] .himg img{transform-origin:40% 40%}
/* small directional fixes */
[dir="rtl"] .alink::after{content:"\2039";margin-left:0;margin-right:3px}
[dir="rtl"] .dropmenu a:hover{transform:translateX(-3px)}
[dir="rtl"] .waMsg{border-radius:14px 4px 14px 14px}
[dir="rtl"] .crumbs,[dir="rtl"] .mf-note{text-align:right}
@media(max-width:920px){[dir="rtl"] .hscrim{background:linear-gradient(180deg,rgba(var(--sc),.76) 0%,rgba(var(--sc),.58) 45%,rgba(var(--sc),.44) 75%,rgba(var(--sc),.36) 100%)}}

/* ---------- "Wow" treatment for the Nine-services section heading ---------- */
.sec-grand{position:relative;max-width:1120px;padding:14px 0 6px}
.sec-grand .grand-stage{
 position:relative;display:flex;justify-content:center;align-items:center;
 padding:18px 0 24px;margin:0 auto;max-width:1120px;isolation:isolate;overflow:visible;
 min-height:clamp(180px,20vw,240px);
}
.sec-grand .grand-stage::before{
 content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
 width:min(620px,90%);height:120%;
 background:radial-gradient(closest-side,color-mix(in srgb,var(--blue) 16%,transparent),transparent 72%);
 filter:blur(6px);z-index:-2;pointer-events:none;
}
.sec-grand .grand-bg{
 position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
 font-size:clamp(180px,22vw,280px);font-weight:900;line-height:.85;letter-spacing:-.06em;
 color:transparent;
 background:linear-gradient(180deg,color-mix(in srgb,var(--blue) 24%,transparent) 0%,color-mix(in srgb,var(--blue) 14%,transparent) 60%,color-mix(in srgb,var(--blue) 4%,transparent) 100%);
 -webkit-background-clip:text;background-clip:text;
 pointer-events:none;user-select:none;z-index:-1;
 font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;
 animation:grandRise 1s cubic-bezier(.2,.7,.2,1) both;
}
.sec-grand .grand-stage h2{position:relative;z-index:1;margin:0}
@keyframes grandRise{from{opacity:0}to{opacity:1}}
.sec-grand > *:not(.grand-bg){position:relative;z-index:1}
.sec-grand .eyebrow{
 position:relative;
 padding:10px 22px 10px 20px;
 background:linear-gradient(135deg,color-mix(in srgb,var(--blue) 18%,transparent),color-mix(in srgb,var(--blue) 8%,transparent));
 border:1px solid color-mix(in srgb,var(--blue) 22%,transparent);
 border-radius:99px;margin-bottom:14px;
 letter-spacing:.16em;font-size:13px;font-weight:700;
 box-shadow:0 6px 22px -10px color-mix(in srgb,var(--blue) 60%,transparent),
            0 1px 0 rgba(255,255,255,.7) inset;
 animation:grandFade .8s .05s both;
 backdrop-filter:saturate(140%);
}
.sec-grand .eyebrow::before{
 width:8px;height:8px;border-radius:50%;background:var(--blue);opacity:1;
 box-shadow:0 0 0 4px color-mix(in srgb,var(--blue) 30%,transparent);
 animation:grandPulse 1.8s ease-in-out infinite;
}
.sec-grand .eyebrow::after{
 content:"";display:inline-block;width:14px;height:14px;margin-left:4px;
 background:var(--blue);
 -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M12 2l2.4 5.6L20 9l-4.4 3.8L17 19l-5-3-5 3 1.4-6.2L4 9l5.6-1.4L12 2z'/></svg>") center/contain no-repeat;
         mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M12 2l2.4 5.6L20 9l-4.4 3.8L17 19l-5-3-5 3 1.4-6.2L4 9l5.6-1.4L12 2z'/></svg>") center/contain no-repeat;
 animation:grandSparkle 2.4s ease-in-out infinite;
}
@keyframes grandSparkle{
 0%,100%{transform:rotate(0) scale(1);opacity:.85}
 50%{transform:rotate(12deg) scale(1.15);opacity:1}
}
@keyframes grandPulse{0%,100%{box-shadow:0 0 0 4px color-mix(in srgb,var(--blue) 28%,transparent)}50%{box-shadow:0 0 0 9px color-mix(in srgb,var(--blue) 0%,transparent)}}
.sec-grand h2{
 font-size:clamp(28px,3.8vw,46px);font-weight:700;letter-spacing:-.02em;line-height:1.08;
 margin:0;animation:grandFade .9s .15s both;white-space:nowrap;
}
@media(max-width:780px){.sec-grand h2{white-space:normal}}
.sec-grand h2::after{
 content:"";display:block;height:3px;width:0;margin:22px auto 0;border-radius:3px;
 background:linear-gradient(90deg,transparent,var(--blue) 30%,color-mix(in srgb,var(--blue) 40%,#fff) 70%,transparent);
 animation:grandUnderline 1.1s .45s cubic-bezier(.2,.7,.2,1) forwards;
}
@keyframes grandUnderline{to{width:180px}}
.sec-grand p{
 max-width:620px;margin:18px auto 0;font-size:17px;line-height:1.6;color:var(--muted);
 animation:grandFade 1s .3s both;
}
.sec-grand .grand-dots{display:flex;gap:9px;justify-content:center;margin:28px auto 0;animation:grandFade 1s .55s both}
.sec-grand .grand-dots i{width:7px;height:7px;border-radius:50%;background:color-mix(in srgb,var(--blue) 28%,transparent);display:block;animation:grandHop 1.6s ease-in-out infinite}
.sec-grand .grand-dots i:nth-child(1){animation-delay:0s}
.sec-grand .grand-dots i:nth-child(2){animation-delay:.07s}
.sec-grand .grand-dots i:nth-child(3){animation-delay:.14s}
.sec-grand .grand-dots i:nth-child(4){animation-delay:.21s}
.sec-grand .grand-dots i:nth-child(5){animation-delay:.28s}
.sec-grand .grand-dots i:nth-child(6){animation-delay:.35s}
.sec-grand .grand-dots i:nth-child(7){animation-delay:.42s}
.sec-grand .grand-dots i:nth-child(8){animation-delay:.49s}
.sec-grand .grand-dots i:nth-child(9){animation-delay:.56s}
@keyframes grandHop{0%,100%{transform:translateY(0);background:color-mix(in srgb,var(--blue) 28%,transparent)}50%{transform:translateY(-7px);background:var(--blue);box-shadow:0 6px 14px -4px color-mix(in srgb,var(--blue) 50%,transparent)}}
@keyframes grandFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){
 .sec-grand .grand-bg,.sec-grand .eyebrow,.sec-grand h2,.sec-grand p,.sec-grand .grand-dots,.sec-grand .grand-dots i,.sec-grand .eyebrow::before,.sec-grand h2::after{animation:none!important}
 .sec-grand h2::after{width:180px}
}
@media(max-width:600px){.sec-grand .grand-bg{font-size:200px;top:-10px}.sec-grand h2{font-size:32px}.sec-grand .grand-dots i{width:6px;height:6px}}

/* ===== Blog: listing grid + single-post layout ===== */
.blog-hero{padding:88px 0 48px;background:linear-gradient(180deg,#fff 0%,#FAFBFD 100%);text-align:center}
.blog-hero h1{font-size:clamp(34px,4.4vw,52px);font-weight:700;letter-spacing:-.02em;margin:0 0 14px}
.blog-hero .lead{font-size:18px;line-height:1.55;color:var(--muted);max-width:620px;margin:0 auto}
.blog-list-section{padding:48px 0 96px}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;max-width:1180px;margin:0 auto}
.post-card{background:var(--card,#fff);border:1px solid var(--line,#e7e7ea);border-radius:18px;overflow:hidden;transition:box-shadow .15s ease,transform .15s ease,border-color .15s ease}
.post-card[hidden]{display:none}
.post-card:hover{box-shadow:0 18px 36px -22px rgba(0,0,0,.18);transform:translateY(-2px);border-color:#d8d8de}
.post-card>a{display:block;color:inherit;text-decoration:none;padding:0}
.post-card .post-hero{aspect-ratio:16/9;background:#eef0f3 center/cover no-repeat;display:block}
.post-card .post-hero[data-empty="1"]{background:linear-gradient(135deg,#e9eef6 0%,#f5f7fb 100%)}
.post-card .post-meta{display:flex;gap:10px;align-items:center;font-size:12.5px;color:var(--muted,#6b6b73);padding:18px 22px 6px;text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.post-card .post-meta span{display:inline-block}
.post-card h3{font-size:21px;line-height:1.3;font-weight:700;letter-spacing:-.01em;margin:0;padding:6px 22px 10px;color:var(--ink,#111)}
.post-card p{margin:0;padding:0 22px 14px;color:var(--muted,#555);font-size:15px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.post-card .readmore{display:inline-block;padding:0 22px 22px;font-size:14px;font-weight:600;color:var(--accent,#0a66c2)}
.pagination{display:flex;align-items:center;justify-content:center;gap:24px;margin:48px auto 0;font-size:15px;color:var(--muted,#555)}
.pagination[hidden]{display:none}
.pagination a{color:var(--ink,#111);text-decoration:none;padding:8px 16px;border:1px solid var(--line,#e7e7ea);border-radius:99px;font-weight:600;transition:background .15s,border-color .15s}
.pagination a:hover{background:#f5f5f7;border-color:#d8d8de}
.pagination a[aria-disabled="true"]{opacity:.4;pointer-events:none}
.blog-empty{text-align:center;color:var(--muted);padding:80px 24px;font-size:17px}
.single-post{padding:0 0 80px;background:#fff}
.single-post[hidden]{display:none}
.single-post-head{padding:72px 0 28px;background:linear-gradient(180deg,#fff 0%,#FAFBFD 100%)}
.single-post-head .breadcrumb{font-size:13px;color:var(--muted,#6b6b73);margin-bottom:18px}
.single-post-head .breadcrumb a{color:var(--muted,#6b6b73);text-decoration:none}
.single-post-head .breadcrumb a:hover{color:var(--ink,#111)}
.single-post-head .post-meta{font-size:13.5px;color:var(--muted,#6b6b73);text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin-bottom:14px}
.single-post-head h1{font-size:clamp(30px,4vw,46px);font-weight:700;letter-spacing:-.02em;line-height:1.15;margin:0 0 18px;max-width:760px}
.single-post-head .lead{font-size:19px;line-height:1.55;color:var(--muted,#555);max-width:720px;margin:0}
.single-post-hero{max-width:1080px;margin:36px auto 0;padding:0 24px}
.single-post-hero[hidden]{display:none}
.single-post-hero img{width:100%;height:auto;display:block;border-radius:14px;aspect-ratio:16/9;object-fit:cover;background:#eef0f3}
.single-post-body{max-width:720px;margin:48px auto 0;font-size:17.5px;line-height:1.72;color:var(--ink,#111)}
.single-post-body p{margin:0 0 1.1em}
.single-post-body h2{font-size:28px;font-weight:700;letter-spacing:-.01em;margin:2em 0 .6em;line-height:1.25}
.single-post-body h3{font-size:22px;font-weight:700;margin:1.6em 0 .5em;line-height:1.3}
.single-post-body h4{font-size:18px;font-weight:700;margin:1.4em 0 .4em}
.single-post-body ul,.single-post-body ol{margin:0 0 1.2em;padding-left:1.6em}
.single-post-body li{margin:.35em 0}
.single-post-body a{color:var(--accent,#0a66c2);text-decoration:underline;text-underline-offset:3px}
.single-post-body blockquote{margin:1.4em 0;padding:14px 22px;border-left:3px solid var(--accent,#0a66c2);background:#f7f9fc;color:var(--muted,#444);font-style:italic;border-radius:0 8px 8px 0}
.single-post-body code{background:#f3f3f7;padding:.12em .4em;border-radius:5px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.92em}
.single-post-body pre{background:#13131a;color:#f5f5f7;padding:16px 18px;border-radius:10px;overflow-x:auto;font-size:14px;line-height:1.55;margin:1.4em 0}
.single-post-body pre code{background:transparent;padding:0;color:inherit;font-size:inherit}
.single-post-body img{max-width:100%;height:auto;border-radius:10px;display:block;margin:1.4em auto}
.post-tags{max-width:720px;margin:36px auto 0;display:flex;flex-wrap:wrap;gap:8px}
.post-tags[hidden]{display:none}
.post-tags span{display:inline-block;padding:5px 12px;background:#f0f0f3;color:var(--muted,#555);border-radius:99px;font-size:12.5px;font-weight:600}
.back-link{display:inline-block;max-width:720px;margin:48px auto 0;color:var(--accent,#0a66c2);text-decoration:none;font-weight:600;font-size:15px}
.back-link:hover{text-decoration:underline}
.not-found{padding:120px 0;text-align:center}
.not-found h1{font-size:36px;font-weight:700;margin:0 0 16px}
.not-found a{color:var(--accent,#0a66c2);text-decoration:none;font-weight:600}
@media(max-width:900px){.blog-grid{grid-template-columns:repeat(2,1fr);gap:22px}}
@media(max-width:600px){.blog-grid{grid-template-columns:1fr;gap:18px}.blog-hero{padding:60px 0 32px}.single-post-head{padding:48px 0 22px}.single-post-body{font-size:16.5px;margin-top:32px}}

/* ===== Projects: card grid + lightbox (BEM — matches index.html + cms.js) ===== */
.projects-section{padding:84px 0;background:linear-gradient(180deg,#fff 0%,#FAFBFD 100%)}
.projects-section[hidden]{display:none}
.projects-section .section-head{text-align:center;max-width:680px;margin:0 auto 44px}
.projects-section .section-head h2{font-size:clamp(28px,3.4vw,40px);font-weight:700;letter-spacing:-.02em;margin:8px 0 12px}
.projects-section .section-head .lead{font-size:16px;line-height:1.55;color:var(--muted)}
.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;max-width:1120px;margin:0 auto}
/* Case-study card: hero photo on top, content panel below. */
.project-card{
 background:#fff;border:1px solid #E8E8EE;border-radius:22px;
 overflow:hidden;
 transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .25s,box-shadow .35s;
 display:flex;flex-direction:column;
 box-shadow:0 1px 0 rgba(20,20,30,.02),0 24px 48px -32px rgba(20,20,30,.12);
}
.project-card[hidden]{display:none}
.project-card:hover{
 transform:translateY(-4px);
 border-color:color-mix(in srgb,var(--blue) 28%,#E8E8EE);
 box-shadow:0 1px 0 rgba(20,20,30,.02),0 30px 60px -28px color-mix(in srgb,var(--blue) 40%,rgba(20,20,30,.25));
}

/* Photos strip: 1 hero (left, full height) + 2 smaller stacked (right). */
.project-card__photos{
 display:grid;grid-template-columns:1.55fr 1fr;grid-template-rows:1fr 1fr;
 gap:4px;aspect-ratio:16/10;background:#F2F3F6;flex:0 0 auto;
}
.project-card__photo{
 position:relative;padding:0;border:0;background:#EDEEF2;cursor:pointer;
 overflow:hidden;display:block;width:100%;height:100%;
 transition:opacity .2s;
}
.project-card__photo[hidden]{display:none}
.project-card__photo:nth-child(1){grid-row:1/span 2;grid-column:1}
.project-card__photo:nth-child(2){grid-row:1;grid-column:2}
.project-card__photo:nth-child(3){grid-row:2;grid-column:2}
.project-card__photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.project-card__photo:hover img{transform:scale(1.05)}
.project-card:hover .project-card__photo:nth-child(1) img{transform:scale(1.03)}
/* Placeholder shown when img fails to load (cms.js adds .project-card__photo--fallback). */
.project-card__photo--fallback img{visibility:hidden}
.project-card__photo--fallback{
 background:
  radial-gradient(circle at 30% 30%, color-mix(in srgb,var(--blue) 22%,transparent), transparent 60%),
  linear-gradient(135deg,#E8EAEE 0%,#D6D9DF 100%);
}
.project-card__photo--fallback::after{
 content:"";position:absolute;left:50%;top:50%;width:42px;height:42px;
 transform:translate(-50%,-50%);
 background:var(--blue);opacity:.45;
 -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6'><rect x='3' y='5' width='18' height='14' rx='2'/><circle cx='9' cy='11' r='1.6'/><path d='M3 17l5-5 4 4 3-3 6 6'/></svg>") center/contain no-repeat;
         mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6'><rect x='3' y='5' width='18' height='14' rx='2'/><circle cx='9' cy='11' r='1.6'/><path d='M3 17l5-5 4 4 3-3 6 6'/></svg>") center/contain no-repeat;
}
.project-card__photo-more{
 position:absolute;inset:0;display:grid;place-items:center;
 background:linear-gradient(180deg,rgba(0,0,0,.3),rgba(0,0,0,.65));
 color:#fff;font-weight:700;font-size:18px;letter-spacing:.02em;
}
.project-card__photo-more[hidden]{display:none}

/* Visually float the photos to the top; pad each text child individually
   so no HTML wrapper is needed. */
.project-card{padding:0}
.project-card__photos{order:-1;margin:0;border-radius:0}
.project-card__head{display:flex;align-items:center;gap:14px;margin:26px 28px 0}
.project-card__title{margin:20px 28px 0;line-height:1.35}
.project-card__summary{margin:14px 28px 0;line-height:1.65}
.project-card__chips{margin:22px 28px 28px;gap:8px}
.project-card__chip{padding:6px 12px}
.project-card__logo{
 position:relative;flex:0 0 auto;width:56px;height:56px;border-radius:12px;overflow:hidden;
 background:#fff;border:1px solid #ECECEF;padding:5px;
 display:grid;place-items:center;font-weight:800;font-size:15px;color:var(--blue);
 letter-spacing:.01em;box-sizing:border-box;
}
/* Contain so wide/landscape logos (e.g. 4:1) display fully instead of being cropped. */
.project-card__logo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block;position:relative;inset:auto}
.project-card__logo-fallback{
 display:grid;place-items:center;width:100%;height:100%;
 background:linear-gradient(135deg,color-mix(in srgb,var(--blue) 18%,#fff),color-mix(in srgb,var(--blue) 8%,#fff));
 color:var(--blue);font-weight:800;font-size:15px;letter-spacing:.02em;
}
.project-card__meta{display:flex;flex-direction:column;min-width:0;flex:1}
.project-card__client{font-weight:700;font-size:15.5px;color:var(--ink);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.project-card__year{color:var(--muted);font-size:12.5px;margin-top:3px;letter-spacing:.02em}
.project-card__title{font-size:19px;font-weight:700;margin:20px 28px 0;color:var(--ink);line-height:1.35;letter-spacing:-.01em}
.project-card__summary{
 color:var(--muted);font-size:14.5px;line-height:1.65;margin:14px 28px 0;
 display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.project-card__chips{display:flex;flex-wrap:wrap;gap:8px;margin:22px 28px 28px;padding:0;list-style:none}
.project-card__chip{
 display:inline-flex;align-items:center;padding:6px 12px;border-radius:99px;
 font-size:12px;font-weight:600;letter-spacing:.01em;
 background:color-mix(in srgb,var(--blue) 8%,#fff);
 color:var(--blue);
 border:1px solid color-mix(in srgb,var(--blue) 18%,transparent);
}
.projects-cta{display:block;text-align:center;margin-top:34px}
.projects-cta a{
 display:inline-block;color:var(--blue);font-weight:600;font-size:15px;text-decoration:none;
 position:relative;padding:6px 2px;
}
.projects-cta a::after{
 content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--blue);
 transform:scaleX(0);transform-origin:left center;transition:transform .3s cubic-bezier(.2,.7,.2,1);
}
.projects-cta a:hover::after{transform:scaleX(1)}

/* Lightbox — single overlay shared across pages. Uses .open class for state. */
.lightbox{
 position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:9999;
 display:flex;align-items:center;justify-content:center;
 opacity:0;pointer-events:none;transition:opacity .25s ease;
}
.lightbox.open{opacity:1;pointer-events:auto}
.lightbox[hidden]{display:none}
.lightbox__backdrop{position:absolute;inset:0;cursor:pointer}
.lightbox__frame{position:relative;max-width:1180px;width:92vw;display:flex;flex-direction:column;align-items:center;gap:14px}
.lightbox__head{position:absolute;top:-52px;left:0;right:0;display:flex;align-items:center;justify-content:space-between;color:#fff;width:100%;z-index:2}
.lightbox__title{font-size:15px;font-weight:600;margin:0;color:#fff;max-width:80%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lightbox__close{
 background:rgba(255,255,255,.08);border:0;color:#fff;cursor:pointer;
 width:42px;height:42px;border-radius:50%;display:grid;place-items:center;
 transition:background .2s;
}
.lightbox__close:hover{background:rgba(255,255,255,.2)}
.lightbox__nav{
 position:absolute;top:50%;transform:translateY(-50%);
 background:rgba(255,255,255,.1);border:0;color:#fff;cursor:pointer;
 width:48px;height:48px;border-radius:50%;display:grid;place-items:center;
 transition:background .2s;z-index:2;
}
.lightbox__nav:hover{background:rgba(255,255,255,.22)}
.lightbox__nav--prev{left:-64px}
.lightbox__nav--next{right:-64px}
.lightbox__stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;margin:0}
.lightbox__img{max-width:92vw;max-height:78vh;object-fit:contain;border-radius:6px;box-shadow:0 20px 60px rgba(0,0,0,.5);display:block;background:#000}
.lightbox__counter{color:rgba(255,255,255,.85);font-size:13px;letter-spacing:.04em;margin:0}

@media(max-width:1280px){
 .lightbox__nav--prev{left:8px}
 .lightbox__nav--next{right:8px}
 .lightbox__nav{background:rgba(0,0,0,.5)}
}
@media(max-width:920px){
 .projects-grid{grid-template-columns:repeat(2,1fr);gap:22px}
 .projects-section{padding:64px 0}
}
@media(max-width:560px){
 .projects-grid{grid-template-columns:1fr;gap:18px}
 .project-card{padding:18px}
 .lightbox__head{top:8px;padding:0 12px}
 .lightbox__title{display:none}
}

/* ===== Hero banner: 9 distinct per-slide entrance animations ===== */
/* Wider stagger between children so each block lands noticeably later. */
.hcopy[class*="anim-"] > *{animation-fill-mode:both;will-change:opacity,transform,filter;perspective:1000px}
.hcopy[class*="anim-"] > *:nth-child(1){animation-delay:.00s}
.hcopy[class*="anim-"] > *:nth-child(2){animation-delay:.18s}
.hcopy[class*="anim-"] > *:nth-child(3){animation-delay:.36s}
.hcopy[class*="anim-"] > *:nth-child(4){animation-delay:.54s}
.hcopy[class*="anim-"] > *:nth-child(5){animation-delay:.72s}
.hcopy[class*="anim-"] > *:nth-child(6){animation-delay:.90s}

/* 1 — IT Solutions  : long, deliberate rise from far below */
.hcopy.anim-1 > *{animation:heroRise 1.5s cubic-bezier(.16,.84,.22,1)}
@keyframes heroRise{from{opacity:0;transform:translateY(70px)}to{opacity:1;transform:translateY(0)}}

/* 2 — Networking    : strong horizontal sweep from far left with heavy blur clear */
.hcopy.anim-2 > *{animation:heroSweepLeft 1.6s cubic-bezier(.16,.84,.22,1)}
@keyframes heroSweepLeft{from{opacity:0;transform:translateX(-160px);filter:blur(16px)}to{opacity:1;transform:translateX(0);filter:blur(0)}}

/* 3 — Telecom       : 3D rotate-in — title spins flat-to-camera */
.hcopy.anim-3 > *{animation:heroRotate3D 1.5s cubic-bezier(.2,.7,.2,1);transform-origin:left center}
@keyframes heroRotate3D{from{opacity:0;transform:perspective(800px) rotateY(-55deg) translateX(-30px)}to{opacity:1;transform:perspective(800px) rotateY(0) translateX(0)}}

/* 4 — Security      : pop — small and tight, then bursts to full size with overshoot */
.hcopy.anim-4 > *{animation:heroPop 1.6s cubic-bezier(.34,1.6,.5,1);transform-origin:left center}
@keyframes heroPop{
 0%{opacity:0;transform:scale(.45)}
 60%{opacity:1;transform:scale(1.08)}
 80%{transform:scale(.97)}
 100%{opacity:1;transform:scale(1)}
}

/* 5 — Software      : very slow, very wide stagger — each block drops in cleanly */
.hcopy.anim-5 > *{animation:heroDropSoft 1.4s cubic-bezier(.2,.7,.2,1)}
.hcopy.anim-5 > *:nth-child(1){animation-delay:.00s}
.hcopy.anim-5 > *:nth-child(2){animation-delay:.30s}
.hcopy.anim-5 > *:nth-child(3){animation-delay:.60s}
.hcopy.anim-5 > *:nth-child(4){animation-delay:.90s}
.hcopy.anim-5 > *:nth-child(5){animation-delay:1.20s}
.hcopy.anim-5 > *:nth-child(6){animation-delay:1.50s}
@keyframes heroDropSoft{from{opacity:0;transform:translateY(-26px) scale(1.06);filter:blur(3px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}

/* 6 — Web Solutions : full spring bounce, multiple peaks, real overshoot */
.hcopy.anim-6 > *{animation:heroSpring 1.8s cubic-bezier(.22,1.6,.36,1)}
@keyframes heroSpring{
 0%{opacity:0;transform:translateY(120px) scale(.92)}
 45%{opacity:1;transform:translateY(-22px) scale(1.04)}
 65%{transform:translateY(8px) scale(.99)}
 80%{transform:translateY(-3px) scale(1.01)}
 100%{opacity:1;transform:translateY(0) scale(1)}
}

/* 7 — Media         : heavy cinematic blur, slow clear, scaling down from oversized */
.hcopy.anim-7 > *{animation:heroBlurIn 1.7s cubic-bezier(.2,.7,.2,1)}
@keyframes heroBlurIn{from{opacity:0;filter:blur(28px) brightness(1.4);transform:scale(1.18)}to{opacity:1;filter:blur(0) brightness(1);transform:scale(1)}}

/* 8 — Social Media  : strong skew + slide from upper-left, like a tilted card sliding in */
.hcopy.anim-8 > *{animation:heroSkew 1.5s cubic-bezier(.2,.7,.2,1);transform-origin:left top}
@keyframes heroSkew{from{opacity:0;transform:skewY(-7deg) translate(-50px,-40px)}to{opacity:1;transform:skewY(0) translate(0,0)}}

/* 9 — Interior      : gravity drop from way above with elastic rebound */
.hcopy.anim-9 > *{animation:heroGravity 1.7s cubic-bezier(.34,1.5,.5,1)}
@keyframes heroGravity{
 0%{opacity:0;transform:translateY(-110px)}
 55%{opacity:1;transform:translateY(18px)}
 75%{transform:translateY(-6px)}
 90%{transform:translateY(2px)}
 100%{opacity:1;transform:translateY(0)}
}

/* Respect reduced-motion preferences. */
@media(prefers-reduced-motion:reduce){
 .hcopy[class*="anim-"] > *{animation:none!important}
}

/* ============================================================
   PREMIUM CAP GRID — homepage 9-services only
   Scoped to .cap-grid--premium so about.html / service pages
   keep the original .cap look.
   ============================================================ */
.cap-grid--premium{position:relative}

.cap-grid--premium .cap{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  padding:34px 28px 30px;
  border:1px solid #E8E8ED;
  background:#fff;
  border-radius:22px;
  cursor:pointer;
  transition:transform .32s cubic-bezier(.2,.7,.2,1),
             box-shadow .32s cubic-bezier(.2,.7,.2,1),
             border-color .32s ease;
}
/* Stretched-link: the h3's anchor expands to cover the whole card so
   clicking anywhere routes to the service page. The ::after positions
   relative to .cap (not h3) because h3 is NOT given position:relative. */
.cap-grid--premium .cap > *:not(h3){position:relative;z-index:2}
.cap-grid--premium .cap h3{position:static}
.cap-grid--premium .cap h3 a{position:static;color:inherit}
.cap-grid--premium .cap h3 a::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  border-radius:inherit;
}
.cap-grid--premium .cap h3 a:focus-visible::after{
  outline:2px solid var(--blue);
  outline-offset:-3px;
}

/* gradient border layer — sits behind the white card, only visible on hover */
.cap-grid--premium .cap::before{
  content:"";
  position:absolute;inset:-1px;
  border-radius:inherit;
  padding:1px;
  background:linear-gradient(135deg,
    var(--blue) 0%,
    color-mix(in srgb,var(--blue) 55%,#ffb37a) 55%,
    color-mix(in srgb,var(--blue) 25%,#fff) 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  opacity:0;
  transition:opacity .32s ease;
  z-index:1;pointer-events:none;
}

/* orange accent line that slides in along the bottom edge */
.cap-grid--premium .cap::after{
  content:"";
  position:absolute;left:0;bottom:0;height:3px;width:0;
  background:linear-gradient(90deg,
    var(--blue),
    color-mix(in srgb,var(--blue) 55%,#ffd1a8));
  transition:width .5s cubic-bezier(.2,.7,.2,1);
  border-bottom-left-radius:22px;border-bottom-right-radius:22px;
  z-index:2;
}

.cap-grid--premium .cap:hover,
.cap-grid--premium .cap:focus-within{
  transform:translateY(-5px);
  box-shadow:0 22px 50px -18px color-mix(in srgb,var(--blue) 35%,rgba(0,0,0,.22)),
             0 6px 14px rgba(0,0,0,.05);
  border-color:transparent;
}
.cap-grid--premium .cap:hover::before,
.cap-grid--premium .cap:focus-within::before{opacity:1}
.cap-grid--premium .cap:hover::after,
.cap-grid--premium .cap:focus-within::after{width:100%}

/* number badge -- top-right, decorative */
.cap-grid--premium .cap__num{
  position:absolute;top:18px;right:20px;
  display:inline-flex;align-items:baseline;gap:1px;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:12px;letter-spacing:.04em;font-weight:500;
  color:color-mix(in srgb,var(--muted) 75%,transparent);
  opacity:0;transform:translateY(-4px);
  animation:capNumIn .6s cubic-bezier(.2,.7,.2,1) forwards;
  z-index:3;pointer-events:none;
}
.cap-grid--premium .cap__num b{
  font-weight:700;font-size:18px;color:var(--blue);
  letter-spacing:-.01em;
}
.cap-grid--premium .cap__num i{font-style:normal;margin:0 2px;opacity:.55}

/* stagger badge entrance across the 9 cards */
.cap-grid--premium .cap:nth-child(1) .cap__num{animation-delay:.00s}
.cap-grid--premium .cap:nth-child(2) .cap__num{animation-delay:.15s}
.cap-grid--premium .cap:nth-child(3) .cap__num{animation-delay:.30s}
.cap-grid--premium .cap:nth-child(4) .cap__num{animation-delay:.45s}
.cap-grid--premium .cap:nth-child(5) .cap__num{animation-delay:.60s}
.cap-grid--premium .cap:nth-child(6) .cap__num{animation-delay:.75s}
.cap-grid--premium .cap:nth-child(7) .cap__num{animation-delay:.90s}
.cap-grid--premium .cap:nth-child(8) .cap__num{animation-delay:1.05s}
.cap-grid--premium .cap:nth-child(9) .cap__num{animation-delay:1.20s}

@keyframes capNumIn{
  to{opacity:1;transform:translateY(0)}
}

/* larger gradient icon hero -- replaces the 46px chip */
.cap-grid--premium .cap .ich{
  width:56px;height:56px;border-radius:16px;
  background:linear-gradient(135deg,
    var(--blue) 0%,
    color-mix(in srgb,var(--blue) 70%,#ffb37a) 100%);
  color:#fff;
  display:grid;place-items:center;
  margin-bottom:20px;
  box-shadow:0 10px 22px -10px color-mix(in srgb,var(--blue) 65%,transparent),
             inset 0 1px 0 rgba(255,255,255,.25);
  transition:transform .4s cubic-bezier(.2,.7,.2,1),
             box-shadow .4s ease;
}
.cap-grid--premium .cap .ich svg{width:28px;height:28px;stroke:#fff}
.cap-grid--premium .cap:hover .ich,
.cap-grid--premium .cap:focus-within .ich{
  transform:scale(1.06) rotate(-1deg);
  box-shadow:0 14px 28px -10px color-mix(in srgb,var(--blue) 80%,transparent),
             inset 0 1px 0 rgba(255,255,255,.35);
}

/* keep content above the gradient-border layer */
.cap-grid--premium .cap > *{position:relative;z-index:2}
/* badge stays pinned to the corner (override the > * rule above) */
.cap-grid--premium .cap > .cap__num{position:absolute;z-index:3}

/* ---------- animated check draw ---------- */
/* Replace mask-based check with an inline SVG path we can stroke-dash.
   We swap the existing ::before marker for a flex marker that is a real
   <svg> rendered via background, so we use clip-path/stroke trick:
   simpler approach -- keep the mask but animate the LI itself in,
   plus a fake "draw" via clip-path on the mask. */
.cap-grid--premium .cap li{
  opacity:0;
  transform:translateX(-6px);
  transition:opacity .4s ease,transform .4s ease;
}
.cap-grid--premium .cap li::before{
  /* override sizing so we can clip-path it for the draw effect */
  clip-path:inset(0 100% 0 0);
  transition:clip-path .4s cubic-bezier(.2,.7,.2,1);
}

/* in-view state -- triggered by IntersectionObserver */
.cap-grid--premium.cap-grid--in-view .cap li{
  opacity:1;transform:translateX(0);
}
.cap-grid--premium.cap-grid--in-view .cap li::before{
  clip-path:inset(0 0 0 0);
}

/* per-bullet stagger ~80 ms */
.cap-grid--premium.cap-grid--in-view .cap li:nth-child(1){transition-delay:.00s}
.cap-grid--premium.cap-grid--in-view .cap li:nth-child(1)::before{transition-delay:.05s}
.cap-grid--premium.cap-grid--in-view .cap li:nth-child(2){transition-delay:.08s}
.cap-grid--premium.cap-grid--in-view .cap li:nth-child(2)::before{transition-delay:.13s}
.cap-grid--premium.cap-grid--in-view .cap li:nth-child(3){transition-delay:.16s}
.cap-grid--premium.cap-grid--in-view .cap li:nth-child(3)::before{transition-delay:.21s}
.cap-grid--premium.cap-grid--in-view .cap li:nth-child(4){transition-delay:.24s}
.cap-grid--premium.cap-grid--in-view .cap li:nth-child(4)::before{transition-delay:.29s}
.cap-grid--premium.cap-grid--in-view .cap li:nth-child(5){transition-delay:.32s}
.cap-grid--premium.cap-grid--in-view .cap li:nth-child(5)::before{transition-delay:.37s}

/* focus visibility on the title link */
.cap-grid--premium .cap h3 a:focus-visible{
  outline:2px solid var(--blue);
  outline-offset:3px;
  border-radius:4px;
}

/* ---------- breakpoints ---------- */
@media(max-width:920px){
  .cap-grid--premium .cap{padding:30px 24px 28px}
  .cap-grid--premium .cap .ich{width:50px;height:50px;border-radius:14px}
  .cap-grid--premium .cap .ich svg{width:25px;height:25px}
  .cap-grid--premium .cap__num{top:16px;right:16px;font-size:11px}
  .cap-grid--premium .cap__num b{font-size:16px}
}
@media(max-width:600px){
  .cap-grid--premium .cap{padding:26px 22px 24px}
  .cap-grid--premium .cap .ich{width:48px;height:48px}
  .cap-grid--premium .cap .ich svg{width:24px;height:24px}
  /* badge becomes inline above icon on very narrow viewports */
  .cap-grid--premium .cap__num{
    position:static;display:inline-flex;
    margin-bottom:10px;transform:none;
  }
  .cap-grid--premium .cap__num b{font-size:14px}
}

/* ---------- reduced motion ---------- */
@media(prefers-reduced-motion:reduce){
  .cap-grid--premium .cap,
  .cap-grid--premium .cap::after,
  .cap-grid--premium .cap::before,
  .cap-grid--premium .cap .ich,
  .cap-grid--premium .cap__num,
  .cap-grid--premium .cap li,
  .cap-grid--premium .cap li::before{
    transition:opacity .25s ease !important;
    animation:none !important;
    transform:none !important;
  }
  .cap-grid--premium .cap__num{opacity:1}
  .cap-grid--premium .cap li{opacity:0}
  .cap-grid--premium .cap li::before{clip-path:none}
  .cap-grid--premium.cap-grid--in-view .cap li{opacity:1}
  .cap-grid--premium .cap:hover{transform:none}
  .cap-grid--premium .cap:hover .ich{transform:none}
  .cap-grid--premium .cap:hover::after{width:100%;transition:opacity .25s ease}
}

/* ============================================================
   Premium "wow" footer (.mf-wow)
   ============================================================ */
footer.mf-wow{
  background:
    radial-gradient(circle at 14% -10%, color-mix(in srgb,var(--blue) 12%,transparent) 0%, transparent 50%),
    radial-gradient(circle at 86% 110%, color-mix(in srgb,var(--blue) 8%,transparent) 0%, transparent 55%),
    linear-gradient(180deg,#ffffff 0%,#F6F7FA 100%) !important;
  color:var(--ink) !important;padding:0 !important;margin-top:80px;position:relative;overflow:hidden;border-top:1px solid #ECECF2 !important;
}
/* Subtle dot grid pattern decoration (light version) */
footer.mf-wow .mf-cta::before{
  content:"";position:absolute;left:-40px;top:-40px;width:280px;height:280px;
  background-image:radial-gradient(rgba(20,30,50,.06) 1px,transparent 1px);
  background-size:14px 14px;mask-image:radial-gradient(circle,#000 30%,transparent 70%);
  pointer-events:none;
}
footer.mf-wow .mf-main::before{
  content:"";position:absolute;right:-60px;top:60px;width:340px;height:340px;
  background-image:radial-gradient(rgba(20,30,50,.05) 1px,transparent 1px);
  background-size:18px 18px;mask-image:radial-gradient(circle,#000 30%,transparent 70%);
  pointer-events:none;
}
footer.mf-wow .mf-cta,
footer.mf-wow .mf-main{position:relative}
footer.mf-wow::before{display:none}
footer.mf-wow::after{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--blue) 70%,transparent),transparent);
}
footer.mf-wow .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* --- CTA strip --- */
.mf-wow .mf-cta{
  padding:48px 0 44px;border-bottom:1px solid #ECECF2;
  background:linear-gradient(180deg,#fff,#fafbfd);
}
.mf-wow .mf-cta-inner{
  display:flex;align-items:center;justify-content:space-between;gap:36px;flex-wrap:wrap;
}
.mf-wow .mf-cta-copy{flex:1;min-width:280px}
.mf-wow .mf-cta-ey{
  display:inline-block;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--blue);margin-bottom:10px;padding:5px 12px;border-radius:99px;
  background:color-mix(in srgb,var(--blue) 14%,transparent);
}
.mf-wow .mf-cta-copy h3{
  font-size:clamp(28px,3.4vw,40px);font-weight:800;letter-spacing:-.025em;line-height:1.12;
  margin:0;
  background:linear-gradient(95deg,var(--ink) 0%,var(--ink) 40%,var(--blue) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.mf-wow .mf-cta-btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 26px;border-radius:99px;
  background:var(--blue);color:#fff!important;font-weight:600;font-size:15px;
  text-decoration:none;white-space:nowrap;
  box-shadow:0 1px 0 rgba(255,255,255,.18) inset,
             0 12px 28px -10px color-mix(in srgb,var(--blue) 55%,transparent);
  transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s,background .2s;
}
.mf-wow .mf-cta-btn:hover{
  transform:translateY(-2px);background:color-mix(in srgb,var(--blue) 88%,#fff);
  box-shadow:0 1px 0 rgba(255,255,255,.25) inset,
             0 18px 38px -10px color-mix(in srgb,var(--blue) 70%,transparent);
}
.mf-wow .mf-cta-btn svg{transition:transform .25s cubic-bezier(.2,.7,.2,1)}
.mf-wow .mf-cta-btn:hover svg{transform:translateX(3px)}

/* --- Main grid (brand + 3 cols) --- */
.mf-wow .mf-main{padding:60px 0 48px}
/* Footer = two stacked rows:
   Row 1 — brand block (logo + tagline) spanning full width.
   Row 2 — 4 evenly-sized cards (Services / Company / Industries / Get In Touch). */
.mf-wow .mf-grid{
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:auto auto;
  gap:36px;
  align-items:start;
}
.mf-wow .mf-brand{
  min-width:0;max-width:none;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  gap:18px;
}
.mf-wow .mf-brand .mf-note{
  max-width:880px;margin:0 auto;
  text-align:center!important;
}
.mf-wow .mf-cols{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  column-gap:24px;row-gap:24px;
  align-items:stretch;
}
/* Each footer column rendered as a card: light background, soft border,
   rounded corners, inner padding. */
.mf-wow .mf-cols .mf-col,
.mf-wow .mf-cols .mf-col-contact{
  background:rgba(255,255,255,.6);
  border:1px solid #E6E8EE;
  border-radius:16px;
  padding:22px 22px 18px;
  box-shadow:0 1px 0 rgba(0,0,0,.02),0 6px 18px -10px rgba(20,30,50,.08);
  transition:transform .25s ease,box-shadow .25s ease;
}
.mf-wow .mf-cols .mf-col:hover,
.mf-wow .mf-cols .mf-col-contact:hover{
  transform:translateY(-2px);
  box-shadow:0 1px 0 rgba(0,0,0,.02),0 14px 30px -12px rgba(20,30,50,.18);
}
@media(max-width:1080px){
  .mf-wow .mf-cols{grid-template-columns:1fr 1fr;column-gap:18px}
  .mf-wow .mf-brand{flex-direction:column;align-items:flex-start;gap:14px}
}
@media(max-width:560px){
  .mf-wow .mf-cols{grid-template-columns:1fr}
}
.mf-wow .mf-brand{display:flex;flex-direction:column;gap:18px}
/* Uniform brand chip — footer (mf-wow). Container is the <a class="mf-logo">; img is contained inside. */
/* Footer brand logo — no chip, full size, natural aspect. */
.mf-wow .mf-logo{
  display:inline-flex!important;
  width:auto!important;height:auto!important;
  background:transparent!important;border:0!important;
  border-radius:0!important;padding:0!important;
  box-shadow:none!important;
}
.mf-wow .mf-logo img{
  height:96px!important;width:auto!important;
  max-width:none!important;max-height:none!important;
  object-fit:contain;filter:none;
  display:block;
}
/* Tagline — stronger contrast for readability against the soft footer bg. */
.mf-wow .mf-note{
  color:#2a3140 !important;          /* darker ink, was light muted */
  font-size:15px !important;
  font-weight:500 !important;
  line-height:1.7 !important;
  margin:0;
  max-width:none !important;          /* allow full row width */
  letter-spacing:-.005em;
}
/* Footer text — light theme. Dark ink on the soft background. */
footer.mf-wow .mf-col a,
footer.mf-wow .mf-col-contact a,
footer.mf-wow .mf-col-contact .mf-loc{color:#525560 !important;font-size:14.5px !important;padding:6px 0 !important;white-space:nowrap}
footer.mf-wow .mf-col a:hover{color:var(--blue) !important}
footer.mf-wow .mf-col h4{color:var(--ink) !important;font-size:13px !important}
footer.mf-wow .mf-legal a{color:var(--muted) !important;font-size:13.5px !important}
footer.mf-wow .mf-legal a:hover{color:var(--ink) !important}
footer.mf-wow .mf-bottom-inner{color:var(--muted) !important;font-size:13.5px !important}
.mf-wow .mf-socials{display:flex;gap:10px;margin-top:6px}
.mf-wow .mf-socials{display:flex;gap:12px;margin-top:6px}
.mf-wow .mf-socials a{
  display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;border-radius:50%;
  background:#fff;border:1px solid #E3E5EC;
  color:#525560;text-decoration:none;padding:0;position:relative;
  box-shadow:0 1px 0 rgba(0,0,0,.02), 0 4px 12px -6px rgba(0,0,0,.08);
  transition:color .3s ease,background .3s ease,border-color .3s ease,box-shadow .35s ease,transform .35s cubic-bezier(.34,1.5,.5,1);
  overflow:hidden;
}
.mf-wow .mf-socials a svg{position:relative;z-index:1;transition:transform .35s cubic-bezier(.34,1.5,.5,1)}
.mf-wow .mf-socials a:hover{color:#fff !important;transform:translateY(-3px) scale(1.06)}
.mf-wow .mf-socials a:hover svg{transform:scale(1.1)}

/* Brand-true hover colors per platform — order: Facebook, Instagram, LinkedIn, YouTube, WhatsApp. */
.mf-wow .mf-socials a:nth-child(1):hover{
  background:#1877F2;border-color:#1877F2;
  box-shadow:0 12px 28px -8px rgba(24,119,242,.55);
}
.mf-wow .mf-socials a:nth-child(2):hover{
  background:linear-gradient(45deg,#F58529 0%,#DD2A7B 40%,#8134AF 70%,#515BD4 100%);
  border-color:transparent;
  box-shadow:0 12px 28px -8px rgba(221,42,123,.55);
}
.mf-wow .mf-socials a:nth-child(3):hover{
  background:#0A66C2;border-color:#0A66C2;
  box-shadow:0 12px 28px -8px rgba(10,102,194,.55);
}
.mf-wow .mf-socials a:nth-child(4):hover{
  background:#FF0000;border-color:#FF0000;
  box-shadow:0 12px 28px -8px rgba(255,0,0,.45);
}
.mf-wow .mf-socials a:nth-child(5):hover{
  background:#25D366;border-color:#25D366;
  box-shadow:0 12px 28px -8px rgba(37,211,102,.55);
}

/* Soft entrance pulse — staggered, fires once when footer is reached. */
@keyframes mfSocialIn{
  from{opacity:0;transform:translateY(8px) scale(.9)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
.mf-wow .mf-socials a{animation:mfSocialIn .55s cubic-bezier(.34,1.5,.5,1) both}
.mf-wow .mf-socials a:nth-child(1){animation-delay:0s}
.mf-wow .mf-socials a:nth-child(2){animation-delay:.06s}
.mf-wow .mf-socials a:nth-child(3){animation-delay:.12s}
.mf-wow .mf-socials a:nth-child(4){animation-delay:.18s}
.mf-wow .mf-socials a:nth-child(5){animation-delay:.24s}
@media(prefers-reduced-motion:reduce){
  .mf-wow .mf-socials a{animation:none}
  .mf-wow .mf-socials a:hover{transform:none}
  .mf-wow .mf-socials a:hover svg{transform:none}
}

/* ===== Contact page: map + info split ===== */
.contact-map-grid{
  display:grid;grid-template-columns:1.4fr 1fr;gap:32px;
  max-width:1180px;margin:0 auto;align-items:stretch;
}
.contact-map{
  position:relative;border-radius:22px;overflow:hidden;
  background:#e6e8ec;border:1px solid #E3E5EC;
  box-shadow:0 1px 0 rgba(0,0,0,.02),0 24px 48px -32px rgba(20,30,50,.18);
  min-height:460px;
}
.contact-map iframe{
  position:absolute;inset:0;width:100%;height:100%;border:0;
  filter:saturate(.95) contrast(.98);
}
/* Floating business card on top of the map */
.contact-map-card{
  position:absolute;left:20px;bottom:20px;z-index:2;
  display:flex;align-items:center;gap:14px;
  padding:12px 18px 12px 14px;
  background:#fff;border-radius:14px;
  border:1px solid #E6E8EE;
  box-shadow:0 1px 0 rgba(0,0,0,.02),0 18px 36px -16px rgba(20,30,50,.25);
  max-width:calc(100% - 40px);
  animation:contactCardIn .55s cubic-bezier(.34,1.5,.5,1) .25s both;
}
/* Uniform brand chip — contact map card. Img-as-chip; contain so wide logos fully show. */
/* !important on size beats .brand-logo height:88px (img also carries .brand-logo class). */
.contact-map-card__logo{
  flex:0 0 auto;width:56px!important;height:56px!important;object-fit:contain;
  border-radius:12px;background:#fff;padding:5px;border:1px solid #ECECEF;
  display:grid;place-items:center;box-sizing:border-box;
}
.contact-map-card__body{display:flex;flex-direction:column;min-width:0;gap:2px}
.contact-map-card__name{
  font-weight:700;font-size:15px;color:var(--ink);line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em;
}
.contact-map-card__addr{
  display:inline-flex;align-items:center;gap:5px;
  font-size:13px;color:var(--muted);text-decoration:none;line-height:1.3;
  transition:color .2s;
}
.contact-map-card__addr svg{color:var(--blue);flex:0 0 auto}
.contact-map-card__addr:hover{color:var(--blue)}
@keyframes contactCardIn{
  from{opacity:0;transform:translateY(12px) scale(.96)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@media(prefers-reduced-motion:reduce){.contact-map-card{animation:none}}
@media(max-width:560px){
  .contact-map-card{left:12px;bottom:12px;padding:10px 14px 10px 10px;gap:10px}
  .contact-map-card__logo{width:48px!important;height:48px!important}
  .contact-map-card__name{font-size:14px}
}
.contact-info{
  background:#fff;border:1px solid #ECECEF;border-radius:22px;padding:32px 30px;
  display:flex;flex-direction:column;
  box-shadow:0 1px 0 rgba(0,0,0,.02),0 24px 48px -32px rgba(20,30,50,.18);
}
.contact-info h3{font-size:22px;font-weight:700;letter-spacing:-.01em;margin:0 0 6px;color:var(--ink)}
.contact-info__lead{font-size:14.5px;color:var(--muted);margin:0 0 24px;line-height:1.6}
.contact-info ul{list-style:none;padding:0;margin:0 0 24px;display:flex;flex-direction:column;gap:18px}
.contact-info li{display:flex;gap:14px;align-items:flex-start}
.contact-info__icon{
  flex:0 0 auto;width:42px;height:42px;border-radius:12px;
  background:color-mix(in srgb,var(--blue) 10%,#F4F5F7);
  color:var(--blue);display:grid;place-items:center;
  transition:transform .3s cubic-bezier(.34,1.5,.5,1),background .25s ease;
}
.contact-info li:hover .contact-info__icon{
  transform:scale(1.08) rotate(-3deg);
  background:color-mix(in srgb,var(--blue) 18%,#F4F5F7);
}
.contact-info__body{display:flex;flex-direction:column;gap:2px;min-width:0}
.contact-info__lbl{
  font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:#9aa0ad;
}
.contact-info__body a,
.contact-info__body span:not(.contact-info__lbl){
  color:var(--ink);font-size:15px;font-weight:600;text-decoration:none;line-height:1.4;
  transition:color .2s ease;
}
.contact-info__body a:hover{color:var(--blue)}
.contact-info__cta{
  margin-top:auto;align-self:flex-start;
}
@media(max-width:920px){
  .contact-map-grid{grid-template-columns:1fr;gap:24px}
  .contact-map{min-height:340px}
}
@media(max-width:560px){
  .contact-info{padding:26px 22px}
}

/* --- Link columns --- */
.mf-wow .mf-col h4{
  font-size:13px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  color:#fff;margin:0 0 22px;position:relative;padding-bottom:12px;
}
.mf-wow .mf-col h4::after{
  content:"";position:absolute;left:0;bottom:0;width:32px;height:2px;
  background:linear-gradient(90deg,var(--blue),color-mix(in srgb,var(--blue) 30%,#fff));
  border-radius:2px;
}
.mf-wow .mf-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0}
.mf-wow .mf-col li{margin:0}
/* Services list as a clean single column — no wraps, no orphans. */
.mf-wow .mf-col--services ul{display:flex;flex-direction:column}
.mf-wow .mf-col a,
.mf-wow .mf-col-contact a,
.mf-wow .mf-col-contact .mf-loc{
  display:inline-flex;align-items:center;gap:10px;
  padding:7px 0;font-size:14.5px;font-weight:500;color:#d4d9e3;text-decoration:none;
  transition:color .22s ease,transform .28s cubic-bezier(.2,.7,.2,1);
  position:relative;
}
/* Sliding accent bullet that appears on hover */
.mf-wow .mf-col ul a::before{
  content:"";display:inline-block;width:0;height:1.5px;
  background:var(--blue);border-radius:2px;
  transition:width .28s cubic-bezier(.2,.7,.2,1),margin .28s cubic-bezier(.2,.7,.2,1);
  vertical-align:middle;margin-right:0;
}
.mf-wow .mf-col ul a:hover{color:#fff;transform:translateX(2px)}
.mf-wow .mf-col ul a:hover::before{width:14px;margin-right:10px}
.mf-wow .mf-col-contact svg{
  flex:0 0 auto;color:var(--blue);
  transition:transform .25s cubic-bezier(.2,.7,.2,1);
}
.mf-wow .mf-col-contact a:hover svg{transform:scale(1.15)}

/* --- Bottom strip --- */
.mf-wow .mf-bottom{
  border-top:1px solid #ECECF2;
  background:rgba(0,0,0,.02);
}
.mf-wow .mf-bottom-inner{
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:22px 0;font-size:13.5px;color:#a4abb8;flex-wrap:wrap;
}
.mf-wow .mf-legal{display:flex;gap:24px;flex-wrap:wrap;align-items:center}
.mf-wow .mf-legal a{
  color:#a4abb8;text-decoration:none;font-size:13.5px;
  transition:color .2s;padding:0;
}
.mf-wow .mf-legal a:hover{color:#fff}
/* Back-to-top pill */
.mf-wow .mf-top{
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 14px 7px 12px;border-radius:99px;
  background:#fff;border:1px solid #E3E5EC;
  color:var(--ink) !important;font-size:12.5px;font-weight:600;letter-spacing:.04em;
  text-decoration:none;cursor:pointer;
  box-shadow:0 1px 0 rgba(0,0,0,.02);
  transition:background .2s,border-color .2s,color .2s,transform .25s cubic-bezier(.2,.7,.2,1);
}
.mf-wow .mf-top:hover{
  background:var(--blue);border-color:var(--blue);color:#fff !important;transform:translateY(-2px);
  box-shadow:0 10px 22px -8px color-mix(in srgb,var(--blue) 55%,transparent);
}
.mf-wow .mf-top svg{transition:transform .25s cubic-bezier(.2,.7,.2,1)}
.mf-wow .mf-top:hover svg{transform:translateY(-2px)}

/* --- Responsive --- */
@media(max-width:1080px){
  .mf-wow .mf-grid{grid-template-columns:1.5fr 1fr 1fr;gap:40px}
  .mf-wow .mf-col-contact{grid-column:1/-1;border-top:1px solid #ECECF2;padding-top:32px}
  .mf-wow .mf-col-contact ul{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
}
@media(max-width:820px){
  .mf-wow .mf-grid{grid-template-columns:1fr 1fr;gap:32px}
  .mf-wow .mf-brand{grid-column:1/-1}
  .mf-wow .mf-col-contact ul{grid-template-columns:1fr}
  .mf-wow .mf-cta-inner{flex-direction:column;align-items:flex-start;text-align:left}
  .mf-wow .mf-main{padding:44px 0 36px}
}
@media(max-width:520px){
  .mf-wow .mf-grid{grid-template-columns:1fr;gap:28px}
  .mf-wow .mf-cta-copy h3{font-size:22px}
  .mf-wow .mf-bottom-inner{flex-direction:column;align-items:flex-start;text-align:left}
}

/* Reduced motion */
@media(prefers-reduced-motion:reduce){
  .mf-wow *{animation:none!important;transition:color .2s,background .2s!important}
  .mf-wow .mf-cta-btn:hover,
  .mf-wow .mf-socials a:hover,
  .mf-wow .mf-col a:hover{transform:none}
}

/* ============================================================
   NEWSLETTER signup — used in the footer (every page) and in
   the homepage CTA band. Light + dark variants share the same
   markup; the dark variant lives inside .mf-wow.
   ============================================================ */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.mf-newsletter{padding:18px 0;border-top:1px solid rgba(0,0,0,.08);margin-top:8px}
.mf-newsletter h4{font-size:13px;font-weight:600;color:var(--ink);margin:0 0 4px;letter-spacing:.01em}
.mf-newsletter .sub{font-size:12px;color:var(--muted);margin:0 0 10px;line-height:1.5}
.nl-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;position:relative;max-width:520px}
.nl-form input[type=email]{flex:1;min-width:200px;padding:10px 14px;border-radius:8px;border:1px solid rgba(0,0,0,.18);background:#fff;color:var(--ink);font:inherit;font-size:14px}
.nl-form input[type=email]:focus{outline:2px solid var(--accent);outline-offset:1px}
.nl-form .btn{font-size:14px}
.nl-msg{width:100%;font-size:13px;margin:6px 0 0;min-height:18px}
.nl-msg.ok{color:#15803d}
.nl-msg.err{color:#b91c1c}

/* Dark variant inside the wow footer */
.mf-wow .mf-newsletter{border-top:1px solid rgba(255,255,255,.08);padding:22px 0 4px;margin-top:18px}
.mf-wow .mf-newsletter h4{color:#fff;font-size:15px;font-weight:600}
.mf-wow .mf-newsletter .sub{color:rgba(255,255,255,.65);font-size:13px}
.mf-wow .nl-form input[type=email]{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#fff}
.mf-wow .nl-form input[type=email]::placeholder{color:rgba(255,255,255,.45)}
.mf-wow .nl-msg.ok{color:#65d6a3}
.mf-wow .nl-msg.err{color:#ff8b8b}

/* Homepage CTA newsletter band — tighter vertical rhythm, no big empty
   spaces around heading/sub/form. */
.nl-band{padding:22px 0!important;background:var(--bg-soft)}
.nl-band .nl-card{max-width:760px;margin:0 auto;text-align:center;padding:0 22px}
.nl-band h2{
  font-size:clamp(20px,2.2vw,26px)!important;
  margin:0 0 4px!important;
  color:var(--ink)!important;
  font-weight:700!important;
}
.nl-band p.sub{
  font-size:14.5px!important;
  color:var(--muted)!important;
  margin:0 0 10px!important;
  line-height:1.5!important;
}
.nl-band .nl-form{margin:0 auto;display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center}
.nl-band .nl-form input[type="email"]{
  padding:10px 14px;border-radius:99px;border:1px solid #DCDFE6;
  background:#fff;color:var(--ink);font-size:14px;min-width:240px;
}
.nl-band .nl-form input[type="email"]::placeholder{color:#8A8F99}
.nl-band .nl-form button{
  padding:10px 22px;border-radius:99px;border:0;
  background:var(--blue);color:#fff;font-weight:600;cursor:pointer;
}

/* ---------- Partnership badges + Certifications logo strips ----------
   Identical mechanics for both sections; horizontal scroll on overflow,
   greyscale logos that snap to full colour on hover. */
.partners-strip,
.certs-strip{padding:48px 0;background:var(--bg-soft,#f6f8fb)}
.logo-strip{display:flex;gap:18px;overflow-x:auto;padding:8px 4px 16px;scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none}
.logo-strip::-webkit-scrollbar{display:none}
.logo-chip{flex:0 0 auto;width:180px;height:96px;background:#fff;border:1px solid rgba(15,23,42,.06);border-radius:14px;display:flex;align-items:center;justify-content:center;padding:14px 18px;box-shadow:0 1px 2px rgba(15,23,42,.04);transition:transform .2s ease,box-shadow .2s ease;scroll-snap-align:start;text-decoration:none}
.logo-chip:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(15,23,42,.08)}
.logo-chip img{max-width:100%;max-height:64px;width:auto;height:auto;object-fit:contain;filter:grayscale(40%);opacity:.92;transition:filter .2s,opacity .2s}
.logo-chip:hover img{filter:none;opacity:1}
@media (max-width:640px){.logo-chip{width:140px;height:80px}}

/* ============================================================
   FINAL NAV POLISH — overrides the gold-theme rules at lines 747-754
   that were creating the orange underline on every nav item and
   defaulting active to dark ink. Lives at end of file so it wins. */
.navlinks{gap:2px!important;font-size:14.5px!important;font-weight:500!important}
.navlinks>a,.dropbtn{
  font-weight:500!important;font-size:14.5px!important;
  padding:8px 14px!important;border-radius:8px!important;
  color:var(--ink)!important;opacity:.78!important;
  letter-spacing:-.005em!important;
  transition:opacity .18s,color .18s!important;
}
/* Kill the gold animated underline */
.navlinks>a::after{display:none!important}
.navlinks>a:hover,.dropbtn:hover{
  color:var(--blue)!important;background:none!important;opacity:1!important;
}
.navlinks>a.active{
  color:var(--blue)!important;opacity:1!important;
  font-weight:600!important;background:none!important;
}
/* (Old tiny-pill active underline removed — the animated gradient
   underline below now handles both hover + active states.) */

/* Force the dropbtn to render text + chevron on the same line. inline-flex
   prevents the chevron's rotated bounding-box from wrapping below the text. */
.navlinks .dropbtn{
  display:inline-flex!important;
  align-items:center!important;
  white-space:nowrap!important;
  line-height:1!important;
  vertical-align:middle!important;
}

/* Cleaner chevron caret in place of solid triangle. */
.dropbtn::after{
  content:""!important;display:inline-block!important;
  margin-left:5px!important;
  width:7px!important;height:7px!important;
  border:0!important;
  border-right:1.5px solid currentColor!important;
  border-bottom:1.5px solid currentColor!important;
  border-top-color:transparent!important;
  transform:rotate(45deg) translateY(-1px)!important;
  opacity:.6!important;
  transition:opacity .2s,transform .2s!important;
}
.drop:hover .dropbtn::after,.drop.open .dropbtn::after{
  opacity:1!important;transform:rotate(225deg) translateY(2px)!important;
}

/* Tighter nav-actions and responsive collapse to icon-only at narrower widths */
.nav-actions{gap:14px!important}
.nav-tel,.nav-mail{font-size:13.5px;font-weight:500;opacity:.82}
.nav-tel:hover,.nav-mail:hover{opacity:1;color:var(--blue)!important}
.nav-tel svg,.nav-mail svg{opacity:.7}
@media(max-width:1280px) and (min-width:921px){
  .nav-mail span{display:none}
  .nav-actions{gap:10px!important}
}
@media(max-width:1080px) and (min-width:921px){
  .nav-tel span{display:none}
}

/* ============================================================
   DROPDOWN OVERLAP FIX
   The original `.drop:hover .dropmenu` rule keeps each dropmenu visible
   while the cursor is anywhere inside its `.drop` wrapper — that lets a
   second dropdown (Industries) sit on top of an already-open Services
   menu. Force only the freshly-hovered drop to show, and hide siblings
   by giving their dropmenu lower opacity priority on sibling hover.
   Simpler approach: when ANY sibling is hovered, hide the others. */
.navlinks:has(.drop:hover) .drop:not(:hover) .dropmenu{
  opacity:0!important;visibility:hidden!important;pointer-events:none!important;
}
/* Same rule via :focus-within so keyboard users get the same behaviour. */
.navlinks:has(.drop:focus-within) .drop:not(:focus-within):not(:hover) .dropmenu{
  opacity:0!important;visibility:hidden!important;pointer-events:none!important;
}

/* Industries dropmenu: tighter min-width so it stays under its own button
   instead of stretching toward Services. */
.dropmenu-industries{min-width:220px!important}

/* ============================================================
   HEADER BRAND LOGO — restore full size (original 88px).
   Wave-2's uniform-logo-chip shrank the header brand to a 48×48 white
   square; restore the natural landscape size. Chip styling stays for
   project cards / footer / contact-map card only. */
body > header .brand .brand-logo,
header > .wrap.nav > .brand > .brand-logo{
  height:88px!important;
  width:auto!important;
  padding:0!important;
  background:none!important;
  border:0!important;
  border-radius:0!important;
  object-fit:contain!important;
  box-shadow:none!important;
  max-width:300px;
}
@media(max-width:920px){
  body > header .brand .brand-logo,
  header > .wrap.nav > .brand > .brand-logo{
    height:68px!important;
  }
}

/* ============================================================
   NAV UNDERLINE — animated theme-coloured bar that slides in on
   hover/active. Replaces the simple "tiny pill" I'd added earlier.
   Uses var(--blue) so it picks up the user's orange theme. */
.navlinks>a{position:relative}
.navlinks>a::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:14px!important;right:14px!important;bottom:4px!important;
  height:2.5px!important;
  border-radius:3px!important;
  background:linear-gradient(90deg,
    color-mix(in srgb,var(--blue) 60%,#fff) 0%,
    var(--blue) 50%,
    color-mix(in srgb,var(--blue) 80%,#000) 100%)!important;
  transform:scaleX(0)!important;
  transform-origin:left center!important;
  transition:transform .32s cubic-bezier(.2,.7,.2,1)!important;
  width:auto!important;margin:0!important;top:auto!important;
}
.navlinks>a:hover::after,
.navlinks>a.active::after{
  transform:scaleX(1)!important;
}

/* Header nav-socials (5 icons in nav-actions) */
/* Drop socials onto their own row, aligned to the right edge (under email + flag).
   The lang toggle (#langToggle, appended by i18n.js as the last child of
   .nav-actions) gets order:1 so it stays on row 1 next to phone/email;
   .nav-socials get order:2 + flex-basis:100% so they wrap to row 2. */
.nav-actions{flex-wrap:wrap;row-gap:8px!important;position:relative;justify-content:center!important}
/* One invisible row-breaker after phone/email pushes flag + socials onto a
   second row. With justify-content:center on the parent, each row's items
   are centered horizontally. Phone/email row is also centered, which on
   typical nav-actions widths (~360-450 px) reads as a slight nudge to the
   right rather than a strong visual shift. */
.nav-actions::before{
  content:""!important;
  order:1;
  flex-basis:100%;
  height:0;
  margin:0;padding:0;
}
.nav-actions > #langToggle{
  order:2!important;
  margin:0!important;
}
.nav-socials{
  display:flex;gap:8px;align-items:center;
  order:3!important;
  flex-basis:auto!important;
  margin:0!important;
}
.nav-socials a{
  display:inline-flex;align-items:center;justify-content:center;
  width:36px!important;height:36px!important;border-radius:50%;
  flex:0 0 auto;
  background:#fff;border:1px solid #DCDFE6;color:#323742;
  text-decoration:none;
  transition:color .2s,background .2s,border-color .2s,transform .25s cubic-bezier(.34,1.5,.5,1),box-shadow .25s;
  box-shadow:0 1px 2px rgba(20,30,50,.06);
}
/* Larger, crisper glyphs — 18px in a 36px circle gives ~9px breathing space
   on every side, with stronger contrast against the white chip. */
.nav-socials a svg{
  width:18px!important;
  height:18px!important;
  display:block;
}
.nav-socials a:hover{transform:translateY(-2px) scale(1.06);color:#fff!important}
.nav-socials a:nth-child(1):hover{background:#1877F2;border-color:#1877F2}
.nav-socials a:nth-child(2):hover{background:linear-gradient(45deg,#F58529,#DD2A7B,#8134AF,#515BD4);border-color:transparent}
.nav-socials a:nth-child(3):hover{background:#0A66C2;border-color:#0A66C2}
.nav-socials a:nth-child(4):hover{background:#FF0000;border-color:#FF0000}
.nav-socials a:nth-child(5):hover{background:#25D366;border-color:#25D366}
@media(max-width:960px){.nav-socials{display:none}}

/* ============================================================
   HEADER LAYOUT — even distance logo ↔ menu ↔ contacts.
   3-column grid: [logo: auto] [menu: 1fr centered] [contacts: auto].
   Menu always sits in the middle column with equal whitespace on both
   sides regardless of the logo / contacts widths. */
header > .wrap.nav{
  display:grid!important;
  grid-template-columns:auto 1fr auto!important;
  align-items:center;
  gap:24px!important;
  justify-content:initial!important;
}
header > .wrap.nav > .navlinks{
  justify-self:center;
}
/* Increase chevron gap inside dropbtns so labels breathe. */
.navlinks .dropbtn{
  padding:8px 14px!important;
  gap:6px!important;
}


/* ====== Full-bleed service hero (shero-full) ====== */
.shero.shero-full{
  position:relative;
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  min-height:clamp(440px,60vh,640px);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;isolation:isolate;
  padding:96px 24px 84px;
  background:#0b1020; /* fallback while images load */
  color:#fff;
}
/* Image stack */
.shero-full .shero-bg{position:absolute;inset:0;z-index:0;}
.shero-full .shero-bg .shero-img{
  position:absolute;inset:0;
  opacity:0;
  transition:opacity 1.2s ease;
  will-change:opacity,transform;
  border-radius:0;box-shadow:none;overflow:hidden;
}
.shero-full .shero-bg .shero-img img{
  width:100%;height:100%;
  object-fit:cover;
  display:block;
  aspect-ratio:auto;
  transform:scale(1.04);
  transition:transform 6s ease-out;
}
.shero-full .shero-bg .shero-img.on{opacity:1;}
.shero-full .shero-bg .shero-img.on img{
  /* Ken Burns: gentle zoom while the slide is visible */
  transform:scale(1.10);
}
/* Scrim — dark gradient bottom plus radial depth at top */
.shero-full .shero-scrim{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(120% 90% at 50% 0%,rgba(0,0,0,.20) 0%,rgba(0,0,0,0) 60%),
    linear-gradient(180deg,rgba(8,12,28,.55) 0%,rgba(8,12,28,.35) 35%,rgba(8,12,28,.70) 100%);
}
/* Content block */
.shero-full .shero-content{
  position:relative;z-index:2;
  max-width:920px;width:100%;
  margin:0 auto;
  text-align:center;
  color:#fff;
  animation:sheroFadeUp .8s ease-out both;
}
.shero-full .shero-content .crumbs{
  font-size:13px;letter-spacing:.06em;text-transform:uppercase;
  color:rgba(255,255,255,.78);margin-bottom:18px;
}
.shero-full .shero-content .crumbs a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35);}
.shero-full .shero-content h1{
  font-size:clamp(36px,5.4vw,64px);
  font-weight:700;letter-spacing:-.025em;line-height:1.05;
  color:#fff;margin:0 0 18px;
  text-shadow:0 2px 24px rgba(0,0,0,.30);
  animation:sheroFadeUp .9s .05s ease-out both;
}
.shero-full .shero-content .lead{
  font-size:clamp(17px,2vw,21px);
  color:rgba(255,255,255,.92);
  margin:0 auto 28px;max-width:720px;line-height:1.55;
  text-shadow:0 1px 14px rgba(0,0,0,.25);
  animation:sheroFadeUp 1s .15s ease-out both;
}
.shero-full .shero-content .h1-sub,
.shero .h1-sub{
  font-size:clamp(15px,1.6vw,18px);
  font-weight:500;
  color:rgba(255,255,255,.85);
  margin:10px auto 18px;
  max-width:720px;
  line-height:1.4;
  letter-spacing:.005em;
  text-shadow:0 1px 12px rgba(0,0,0,.28);
  animation:sheroFadeUp .95s .1s ease-out both;
}
.shero-full .shero-cta{
  display:flex;gap:14px;align-items:center;justify-content:center;flex-wrap:wrap;
  animation:sheroFadeUp 1.05s .25s ease-out both;
}
/* Glass buttons */
.shero-full .btn-glass{
  background:rgba(255,255,255,.92);
  color:#0b1020;
  border:1px solid rgba(255,255,255,.85);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  box-shadow:0 8px 24px rgba(0,0,0,.18);
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.shero-full .btn-glass:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(0,0,0,.28);background:#fff;}
.shero-full .alink-glass{
  color:#fff;padding:12px 22px;border-radius:999px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.45);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  text-decoration:none;font-weight:600;
  transition:transform .2s ease,background .2s ease,border-color .2s ease;
}
.shero-full .alink-glass:hover{transform:translateY(-2px);background:rgba(255,255,255,.20);border-color:rgba(255,255,255,.75);}
/* Trustrow inside full hero — white on glass */
.shero-full .trustrow{
  justify-content:center;margin-top:34px;gap:44px;
  animation:sheroFadeUp 1.15s .35s ease-out both;
}
.shero-full .trustrow b{color:#fff;}
.shero-full .trustrow span{color:rgba(255,255,255,.75);}
/* Entrance animation */
@keyframes sheroFadeUp{
  from{opacity:0;transform:translateY(14px);}
  to{opacity:1;transform:translateY(0);}
}
/* Respect reduced motion */
@media (prefers-reduced-motion:reduce){
  .shero-full .shero-content,
  .shero-full .shero-content h1,
  .shero-full .shero-content .lead,
  .shero-full .shero-cta,
  .shero-full .trustrow{animation:none;}
  .shero-full .shero-bg .shero-img,
  .shero-full .shero-bg .shero-img img{transition:none;transform:none;}
}
/* Mobile */
@media (max-width:760px){
  .shero.shero-full{min-height:clamp(420px,72vh,560px);padding:80px 18px 64px;}
  .shero-full .trustrow{gap:24px;margin-top:24px;}
}

/* ============================================================
   RTL polish — comprehensive cosmetic mirroring for Arabic pages
   ============================================================ */
/* WhatsApp floating widget: anchor bottom-left in RTL */
[dir="rtl"] #waWidget{right:auto;left:22px}
[dir="rtl"] #waPanel{right:auto;left:0}
@media(max-width:640px){[dir="rtl"] #waWidget{right:auto;left:14px}}

/* Lightbox prev/next: swap arrow positions */
[dir="rtl"] .lightbox__nav--prev{left:auto;right:-64px}
[dir="rtl"] .lightbox__nav--next{right:auto;left:-64px}
@media(max-width:768px){
 [dir="rtl"] .lightbox__nav--prev{left:auto;right:8px}
 [dir="rtl"] .lightbox__nav--next{right:auto;left:8px}
}

/* Footer column underline pseudo: flip origin */
[dir="rtl"] .mf-col h4::after{left:auto;right:0}

/* Footer hover micro-slide: reverse direction */
[dir="rtl"] .mf-col a:hover{transform:translateX(-2px)}

/* Single post body: lists + blockquote should mirror */
[dir="rtl"] .single-post-body ul,
[dir="rtl"] .single-post-body ol{padding-left:0;padding-right:1.6em}
[dir="rtl"] .single-post-body blockquote{border-left:0;border-right:4px solid var(--blue);border-radius:8px 0 0 8px;padding-left:0;padding-right:18px}

/* Contact map card floats bottom-right in RTL */
[dir="rtl"] .contact-map-card{left:auto;right:20px}
@media(max-width:720px){[dir="rtl"] .contact-map-card{left:auto;right:12px}}

/* Mobile dropdown sub-menu padding mirror */
@media(max-width:640px){[dir="rtl"] .dropmenu{padding:4px 12px 4px 0}}

/* Nav underline: animate from the start edge in RTL */
[dir="rtl"] .navlinks>a::after{transform-origin:right center!important}

/* Dropdown chevron: spacing on the correct side */
[dir="rtl"] .dropbtn::after{margin-left:0!important;margin-right:5px!important}

/* ============================================================
   ABOUT PAGE  — editorial sections
   ============================================================ */
.shero-about{padding:96px 0 64px;background:linear-gradient(180deg,#FFFFFF 0%,#F8F9FC 100%);position:relative;overflow:hidden}
.shero-about::before{content:'';position:absolute;top:-180px;right:-160px;width:560px;height:560px;border-radius:50%;background:radial-gradient(circle,rgba(0,113,227,.07),transparent 60%);pointer-events:none}
.shero-about::after{content:'';position:absolute;bottom:-200px;left:-160px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(29,29,31,.05),transparent 60%);pointer-events:none}
.shero-about > .shero-grid{position:relative;z-index:1}
.shero-about .shero-eyebrow{font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#0066CC;margin:14px 0 18px;display:inline-flex;align-items:center;gap:12px}
.shero-about .shero-eyebrow::before{content:'';display:inline-block;width:32px;height:1px;background:linear-gradient(90deg,#0071E3,transparent)}
.shero-about h1{font-size:clamp(34px,4.6vw,52px);font-weight:700;letter-spacing:-.028em;line-height:1.08;color:#0d1226;margin:0 0 16px}
.shero-about .h1-sub{color:#3D3D42;font-size:clamp(16px,1.7vw,19px);line-height:1.5;font-weight:500;margin:0 0 20px;max-width:560px}
.shero-about .lead{color:#52525b;font-size:16px;line-height:1.6;max-width:560px}
.shero-about .trustrow{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:34px;padding-top:30px;border-top:1px solid rgba(15,23,42,.08)}
.shero-about .trustrow > div{position:relative;padding:6px 18px}
.shero-about .trustrow > div + div::before{content:'';position:absolute;left:0;top:20%;bottom:20%;width:1px;background:rgba(15,23,42,.10)}
.shero-about .trustrow b{font-size:clamp(20px,2.2vw,26px);font-weight:700;letter-spacing:-.02em;background:linear-gradient(180deg,#1D1D1F 0%,#0071E3 100%);-webkit-background-clip:text;background-clip:text;color:transparent;display:block;line-height:1.1}
.shero-about .trustrow span{display:block;margin-top:4px;font-size:12px;color:#6e6e73;font-weight:500}
.shero-about .shero-img{position:relative;border-radius:28px;overflow:hidden;box-shadow:0 1px 0 rgba(15,23,42,.04),0 32px 80px -22px rgba(15,23,42,.30),0 0 0 1px rgba(15,23,42,.04)}
.shero-about .shero-img img{width:100%;display:block;object-fit:cover;aspect-ratio:4/5}
.shero-about .shero-badge{position:absolute;bottom:20px;left:20px;background:rgba(255,255,255,.96);-webkit-backdrop-filter:saturate(180%) blur(10px);backdrop-filter:saturate(180%) blur(10px);border-radius:18px;padding:14px 18px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;box-shadow:0 20px 40px -10px rgba(15,23,42,.20),0 0 0 1px rgba(15,23,42,.05);min-width:130px}
.shero-about .shero-badge-lbl{font-size:10.5px;font-weight:700;color:#8a6914;letter-spacing:.18em;text-transform:uppercase}
.shero-about .shero-badge-year{font-family:var(--font-display);font-size:28px;font-weight:800;color:#0d1226;letter-spacing:-.02em;line-height:1}
.shero-about .shero-badge-loc{font-size:11px;color:#52525b;font-weight:500}
[dir="rtl"] .shero-about .shero-badge{left:auto;right:20px;align-items:flex-end}
[dir="rtl"] .shero-about .shero-eyebrow::before{display:none}
[dir="rtl"] .shero-about .shero-eyebrow::after{content:'';display:inline-block;width:32px;height:1px;background:linear-gradient(270deg,#0071E3,transparent)}
[dir="rtl"] .shero-about .trustrow > div + div::before{left:auto;right:0}

.mission-section{padding:96px 0;background:#fff;position:relative}
.mission-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:1080px;margin:0 auto}
.mission-card{background:linear-gradient(180deg,#FAFAFC 0%,#F2F2F5 100%);border-radius:26px;padding:42px 38px;position:relative;overflow:hidden;box-shadow:0 1px 0 rgba(15,23,42,.04),0 18px 40px -16px rgba(15,23,42,.14),0 0 0 1px rgba(15,23,42,.05);transition:transform .4s cubic-bezier(.22,.61,.36,1),box-shadow .4s cubic-bezier(.22,.61,.36,1)}
.mission-card::after{content:'';position:absolute;top:-60px;right:-60px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(0,113,227,.10),transparent 70%);pointer-events:none}
.mission-card:hover{transform:translateY(-4px);box-shadow:0 1px 0 rgba(15,23,42,.04),0 28px 56px -16px rgba(0,113,227,.18),0 0 0 1px rgba(0,113,227,.12)}
.mission-ic{width:56px;height:56px;border-radius:16px;background:linear-gradient(135deg,#0071E3 0%,#0058B0 100%);display:grid;place-items:center;color:#fff;margin-bottom:22px;box-shadow:0 10px 22px -6px rgba(0,113,227,.45)}
.mission-ic svg{width:30px;height:30px}
.mission-label{font-size:12px;font-weight:700;color:#0066CC;letter-spacing:.18em;text-transform:uppercase;margin-bottom:10px}
.mission-card h3{font-size:clamp(20px,2.2vw,25px);font-weight:700;letter-spacing:-.018em;color:#0d1226;line-height:1.25;margin:0 0 14px}
.mission-card p{font-size:15.5px;color:#3D3D42;line-height:1.6;margin:0}
[dir="rtl"] .mission-card::after{right:auto;left:-60px}

.timeline-section{padding:96px 0;background:linear-gradient(180deg,#F8F9FC 0%,#F2F2F5 100%);position:relative;overflow:hidden}
.timeline-section::before{content:'';position:absolute;top:-150px;left:50%;transform:translateX(-50%);width:600px;height:300px;background:radial-gradient(ellipse,rgba(0,113,227,.06),transparent 70%);pointer-events:none}
.timeline-section > .wrap{position:relative;z-index:1}
.timeline{list-style:none;padding:0;margin:60px auto 0;max-width:840px;position:relative;counter-reset:tl}
.timeline::before{content:'';position:absolute;left:78px;top:14px;bottom:14px;width:2px;background:linear-gradient(180deg,#0071E3 0%,rgba(0,113,227,.2) 100%);border-radius:2px}
.tl-item{display:grid;grid-template-columns:140px 1fr;gap:30px;align-items:flex-start;position:relative;padding:18px 0 32px}
.tl-item::before{content:'';position:absolute;left:71px;top:30px;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid #0071E3;box-shadow:0 0 0 4px rgba(0,113,227,.10);z-index:1}
.tl-current::before{background:#0071E3;animation:tlPulse 2.5s ease-in-out infinite}
@keyframes tlPulse{0%,100%{box-shadow:0 0 0 4px rgba(0,113,227,.10)}50%{box-shadow:0 0 0 10px rgba(0,113,227,.18)}}
.tl-year{font-family:var(--font-display);font-size:24px;font-weight:800;color:#0d1226;letter-spacing:-.02em;text-align:right;padding-top:14px;padding-right:32px}
.tl-current .tl-year{color:#0071E3}
.tl-card{background:#fff;border-radius:18px;padding:22px 26px;box-shadow:0 1px 0 rgba(15,23,42,.04),0 14px 32px -10px rgba(15,23,42,.12),0 0 0 1px rgba(15,23,42,.05);transition:transform .35s ease,box-shadow .35s ease}
.tl-card:hover{transform:translateY(-3px);box-shadow:0 1px 0 rgba(15,23,42,.04),0 22px 44px -10px rgba(0,113,227,.18),0 0 0 1px rgba(0,113,227,.12)}
.tl-card h3{font-size:18px;font-weight:700;letter-spacing:-.015em;color:#0d1226;margin:0 0 8px;line-height:1.3}
.tl-card p{font-size:14.5px;color:#3D3D42;line-height:1.6;margin:0}
[dir="rtl"] .timeline::before{left:auto;right:78px}
[dir="rtl"] .tl-item{grid-template-columns:1fr 140px}
[dir="rtl"] .tl-item::before{left:auto;right:71px}
[dir="rtl"] .tl-year{text-align:left;padding-right:0;padding-left:32px}

.leader-section{padding:96px 0;background:#fff;position:relative}
.leader-msg{max-width:840px;margin:0 auto;background:linear-gradient(135deg,#0d1226 0%,#1a2541 100%);border-radius:30px;padding:64px 56px 48px;text-align:center;position:relative;overflow:hidden;color:#fff;box-shadow:0 30px 70px -20px rgba(13,18,38,.40)}
.leader-msg::before{content:'';position:absolute;top:-100px;left:-100px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(0,113,227,.18),transparent 70%);pointer-events:none}
.leader-msg::after{content:'';position:absolute;bottom:-100px;right:-100px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(0,113,227,.12),transparent 70%);pointer-events:none}
.leader-msg > *{position:relative;z-index:1}
.leader-eyebrow{font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#7AB8FF;margin-bottom:22px}
.leader-quote-mark{font-family:Georgia,'Times New Roman',serif;font-size:80px;line-height:.5;color:#0071E3;margin-bottom:24px;font-weight:700;height:38px;overflow:hidden}
.leader-body{font-size:clamp(18px,2vw,22px);font-weight:500;font-style:italic;line-height:1.55;color:rgba(255,255,255,.95);margin:0 0 36px;letter-spacing:-.012em}
.leader-signoff{display:flex;justify-content:center}
.leader-sig{display:inline-flex;align-items:center;gap:16px;padding-top:24px;border-top:1px solid rgba(255,255,255,.18);min-width:280px;justify-content:center}
.leader-avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#0071E3,#0066CC);color:#fff;display:grid;place-items:center;font-family:var(--font-display);font-weight:800;font-size:18px;letter-spacing:-.02em;box-shadow:0 8px 18px -4px rgba(0,113,227,.45)}
.leader-name{text-align:left;font-size:14px;color:rgba(255,255,255,.72);line-height:1.3}
.leader-name b{color:#fff;display:block;font-weight:600;font-size:15px;letter-spacing:-.005em}
[dir="rtl"] .leader-name{text-align:right}

@media(max-width:920px){
  .shero-about .shero-img img{aspect-ratio:4/3}
  .shero-about .trustrow{grid-template-columns:repeat(2,1fr);gap:20px 0}
  .shero-about .trustrow > div:nth-child(odd) + div::before{display:none}
  .mission-grid{grid-template-columns:1fr;gap:20px}
  .timeline::before{left:18px}
  .tl-item{grid-template-columns:1fr;gap:8px;padding-left:48px;padding-right:0}
  .tl-item::before{left:11px;top:24px}
  .tl-year{text-align:left;padding-top:0;padding-right:0;font-size:18px}
  [dir="rtl"] .timeline::before{right:18px;left:auto}
  [dir="rtl"] .tl-item{grid-template-columns:1fr;padding-right:48px;padding-left:0}
  [dir="rtl"] .tl-item::before{right:11px}
  [dir="rtl"] .tl-year{text-align:right;padding-left:0}
}
@media(max-width:640px){
  .shero-about{padding:64px 0 48px}
  .mission-section,.timeline-section,.leader-section{padding:72px 0}
  .mission-card{padding:32px 26px}
  .tl-card{padding:18px 20px}
  .leader-msg{padding:48px 24px 36px;border-radius:24px}
  .leader-body{font-size:17px}
}

/* ============================================================
   RTL HEADER OVERLAP FIX — Arabic labels are 20-40% wider than EN.
   Without min-width:0 on the middle grid track, the navlinks
   container's intrinsic min-content width pushes into the
   right-side contacts column. These rules let it shrink properly.
   ============================================================ */
header > .wrap.nav{grid-template-columns:auto minmax(0,1fr) auto!important}
header > .wrap.nav > .navlinks{min-width:0!important;flex-shrink:1}
header > .wrap.nav > .nav-actions{flex-shrink:0;justify-self:end}
[dir="rtl"] .navlinks{gap:4px}
@media(max-width:1180px){
  html[lang="ar"] .navlinks>a,
  html[lang="ar"] .navlinks .dropbtn{padding:8px 10px!important;font-size:14px!important}
}

/* ============================================================
   MOBILE FIX PASS — appended from workflow audit
   Addresses 10 elevated mobile issues across viewport, hero,
   nav, forms/touch, footer, and RTL dimensions.
   ============================================================ */

/* --- 1. Overflow hardening (replaces overflow-x:hidden band-aid) --- */
html,body{overflow-x:clip}

/* --- 2. Shero full-bleed safer width with dvw fallback --- */
.shero.shero-full{width:100%;margin-left:0;margin-right:0}
@supports(width:100dvw){
  .shero.shero-full{width:100dvw;margin-left:calc(50% - 50dvw);margin-right:calc(50% - 50dvw)}
}

/* --- 3. Hero chip containment on small phones --- */
@media(max-width:560px){
  .hero-chip.c1{left:0;top:2%}
  .hero-chip.c2{right:0;bottom:6%}
  .hero-chip.c3{left:0;bottom:36%}
}

/* --- 4. Mobile header grid override (CRITICAL — fixes hamburger wrap) --- */
@media(max-width:640px){
  header>.wrap.nav,
  [dir="rtl"] header>.wrap.nav{
    display:flex!important;
    grid-template-columns:none!important;
    align-items:center;
    justify-content:space-between;
    gap:8px;
  }
  header>.wrap.nav .brand{flex:0 0 auto}
  header>.wrap.nav .nav-actions{flex:1 1 auto;justify-content:flex-end}
  header>.wrap.nav .menu-toggle{flex:0 0 auto;order:4}
  header>.wrap.nav .navlinks{flex:0 0 100%;order:5}
}

/* --- 5. Hamburger touch target + drawer overflow safety --- */
.menu-toggle{
  min-width:44px;min-height:44px;padding:9px;
  align-items:center;justify-content:center;
}
@media(max-width:980px){
  .menu-toggle{display:inline-flex!important}
}
@media(max-width:640px){
  .navlinks.open{
    top:auto;left:0;right:0;
    max-height:calc(100dvh - 88px);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
}

/* --- 6. Form inputs >=16px to prevent iOS auto-zoom --- */
.contact input,.contact textarea,.contact select{font-size:16px}
.nl-form input[type=email],
.mf-wow .nl-form input[type=email],
footer .nl-form input[type=email]{font-size:16px!important;padding:12px 14px;min-height:44px}
@media(max-width:560px){
  .nl-form button,.nl-form .btn{width:100%}
}

/* --- 7. Touch-target minimums for conversion links --- */
.alink{display:inline-flex;align-items:center;min-height:44px;padding:10px 4px}
.nav-tel,.nav-mail{display:inline-flex;align-items:center;min-height:44px;padding:6px 8px}
footer.mf-wow .mf-col a,
footer.mf-wow .mf-col-contact a,
footer.mf-wow .mf-legal a{
  display:inline-flex;align-items:center;min-height:32px;padding:6px 0;
}
@media(max-width:560px){
  .btn,.btn-call,.btn-wa{min-height:44px;padding:12px 16px}
}

/* --- 8. Footer mobile wrap + logo containment --- */
@media(max-width:560px){
  footer.mf-wow .mf-col a,
  footer.mf-wow .mf-col-contact a,
  footer.mf-wow .mf-col-contact .mf-loc{
    white-space:normal!important;
    word-break:break-word;
  }
  footer.mf-wow .mf-brand img{
    height:auto!important;
    max-height:72px!important;
    max-width:80%!important;
    width:auto!important;
  }
}

/* --- 9. Hero / shero typography tightening on narrow phones --- */
@media(max-width:480px){
  .hero h1,.hcopy h1{font-size:clamp(28px,8vw,34px);line-height:1.12}
  .shero h1,.shero-full .shero-content h1{font-size:clamp(28px,7.5vw,34px);line-height:1.15}
  .shero .lead,.shero-full .lead{font-size:15px;line-height:1.55}
  .shero .h1-sub,.shero-full .h1-sub{font-size:14px;letter-spacing:.12em}
}
@media(max-width:560px){
  .trustrow{gap:18px}
  .trustrow b{font-size:20px}
  .shero-about .trustrow{grid-template-columns:1fr 1fr}
  .shero-grid{padding:0 16px;gap:24px}
  .wrap{padding:0 16px}
}

/* --- 10. RTL mobile drawer fixes --- */
@media(max-width:640px){
  /* Override the AR rule from earlier that leaked padding into mobile */
  html[lang="ar"] .navlinks>a,
  html[lang="ar"] .navlinks .dropbtn{
    padding:8px 24px!important;
    font-size:15px!important;
  }
  [dir="rtl"] .navlinks{gap:6px}
  [dir="rtl"] .navlinks.open{text-align:right}
  [dir="rtl"] .dropmenu{padding:4px 12px 4px 0}
}

/* --- 11. Arabic hero H1 overflow safety --- */
@media(max-width:920px){
  [dir="rtl"] .hcopy h1,
  [dir="rtl"] .shero h1,
  [dir="rtl"] .shero-full .shero-content h1,
  [dir="rtl"] .shero .lead,
  [dir="rtl"] .shero-full .lead{
    overflow-wrap:anywhere;
    word-break:break-word;
  }
}
@media(max-width:480px){
  [dir="rtl"] .hcopy h1,
  [dir="rtl"] .shero h1,
  [dir="rtl"] .shero-full .shero-content h1{
    font-size:clamp(28px,7vw,34px);
    line-height:1.15;
  }
}

/* ============================================================
   CROSS-DEVICE COMPAT + RESPONSIVE PASS
   Append-only. Targets iOS 14/15 iPad mini, modern iOS Safari,
   Android Chrome, and RTL Arabic layout 768-1024px.
   ============================================================ */

/* --- A. backdrop-filter -webkit- prefixes (iOS Safari) --- */
body > header{
  -webkit-backdrop-filter:blur(16px) saturate(140%);
}
.hero-chip{
  -webkit-backdrop-filter:blur(10px);
}
.hero-tag{
  -webkit-backdrop-filter:blur(6px);
}
.sec-grand .eyebrow{
  -webkit-backdrop-filter:saturate(140%);
}

/* --- B. aspect-ratio fallback for iOS 14 (intrinsic-ratio box) --- */
@supports not (aspect-ratio: 1 / 1){
  .shero-img,
  .srow-img,
  .post-hero,
  .single-post-hero,
  .shero-about .shero-img,
  .radar{
    position:relative;
    height:0;
    padding-bottom:62.5%; /* ~16:10 default */
  }
  .shero-img > img,
  .srow-img > img,
  .post-hero > img,
  .single-post-hero > img,
  .shero-about .shero-img > img,
  .radar > img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
  }
}

/* --- C. overflow-x clip fallback (iOS <16) --- */
html,body{overflow-x:hidden}
@supports (overflow:clip){
  html,body{overflow-x:clip}
}

/* --- D. 100dvh fallback for mobile nav drawer (iOS <15.4) --- */
@media(max-width:640px){
  .navlinks.open{
    max-height:calc(100vh - 88px);
  }
}
@supports (height: 100dvh){
  @media(max-width:640px){
    .navlinks.open{
      max-height:calc(100dvh - 88px);
    }
  }
}

/* --- E. :has() JS-class fallback for nav dropdowns --- */
.navlinks.has-open .drop:not(.is-open) > .dropmenu{display:none}
.navlinks.has-open .drop:not(.is-open) > .dropbtn{opacity:.6}

/* --- F. Touch-pointer hardening (hover-as-tap traps) --- */
@media (hover:none) and (pointer:coarse){
  .drop:hover > .dropmenu{display:none}
  .drop.is-open > .dropmenu{display:block}
  .hchip:hover{transform:none}
}

/* --- G. Local hero fallback before Unsplash resolves --- */
.hslider .hbg{background:#0b1320 center/cover no-repeat}

/* --- H. iPad mini portrait + landscape RTL polish (768-1024) --- */
@media (min-width:721px) and (max-width:1024px){
  [dir="rtl"] .hcopy h1,
  [dir="rtl"] .shero h1,
  [dir="rtl"] .shero-full .shero-content h1{
    font-size:clamp(30px,4.6vw,42px);
    line-height:1.22;
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  [dir="rtl"] .htabs,
  [dir="rtl"] .htabs-wrap{
    flex-wrap:wrap;
    gap:8px;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  [dir="rtl"] .htabs::-webkit-scrollbar{display:none}
  [dir="rtl"] .hero-chip{max-width:60%}
  [dir="rtl"] .trustrow{grid-template-columns:repeat(3,1fr);gap:18px}
  [dir="rtl"] .shero-grid{padding:0 20px;gap:28px}
  [dir="rtl"] .hcopy,
  [dir="rtl"] .shero-content{padding-inline:20px}
  [dir="rtl"] .hslider,
  [dir="rtl"] .hbg{min-height:520px}
}

/* --- I. iPad mini portrait (768x1024) specific --- */
@media (min-width:721px) and (max-width:820px) and (orientation:portrait){
  [dir="rtl"] .hslider,
  [dir="rtl"] .hbg{min-height:560px}
  [dir="rtl"] header > .wrap.nav{padding:10px 14px}
  [dir="rtl"] .nav-actions{gap:6px}
}

/* --- J. Android small-tablet (600-720) safety --- */
@media (min-width:600px) and (max-width:720px){
  [dir="rtl"] .shero-grid,
  .shero-grid{grid-template-columns:1fr;gap:24px}
  [dir="rtl"] .htabs{flex-wrap:wrap}
}

/* --- K. Reduced motion --- */
@media (prefers-reduced-motion:reduce){
  .hslider .himg,
  .hslider .hbg,
  *{animation-duration:0.001ms !important;transition-duration:0.001ms !important}
}

/* --- L. Image rendering guarantees (defense in depth)
   NB: .hbg keeps its original position:absolute (line 732) so it can fill
   the hslider — don't override it here. */
.hslider img,
.hbg img{
  max-width:100%;
  display:block;
}
.hslider{position:relative;overflow:hidden}
.hslider .himg img{width:100%;height:100%;object-fit:cover}

/* --- M. RTL dropdown — anchor the dropdown's right edge to the parent
       button's right edge so it grows LEFT (away from the logo). */
[dir="rtl"] .dropmenu{
  left:auto!important;
  right:0!important;
  transform:translateY(8px)!important;
  text-align:right;
  max-width:min(320px, calc(100vw - 24px));
}
[dir="rtl"] .drop:hover > .dropmenu,
[dir="rtl"] .drop:focus-within > .dropmenu,
[dir="rtl"] .drop.open > .dropmenu{
  transform:translateY(6px)!important;
}
