/*
Theme Name: Shree Ganesh Infotech
Theme URI: https://shreeganeshinfotech.com/
Author: Shree Ganesh Infotech
Author URI: https://shreeganeshinfotech.com/
Description: Premium enterprise theme for Shree Ganesh Infotech - government procurement and enterprise solutions. Fully editable from the WordPress admin, no page builder required. Requires PHP 8.1+.
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: shree-ganesh-infotech
Tags: business, corporate, custom-logo, custom-menu, featured-images, translation-ready, responsive
*/

/* ==========================================================================
   Shree Ganesh Infotech - theme stylesheet
   Colour tokens come from the company logo only:
     indigo #2A1A78 (primary)  |  red #E42400 (secondary)  |  #0E0836 (dark)
   Live colour values are injected as CSS custom properties by the Customizer
   (see inc/customizer.php -> sgi_customizer_css). Everything below consumes
   those variables, so changing a colour in the Customizer restyles the site.
   ========================================================================== */


/* ============ TOKENS ============ */
:root{
  --ink:#0E0836;            /* logo dark tone */
  --navy:#1A1060;
  --primary:#2A1A78;        /* logo primary */
  --primary-2:#4A31B8;
  --primary-3:#6A4FE0;
  --red:#E42400;            /* logo secondary */
  --red-2:#FF5A2B;          /* accent */
  --paper:#FFFFFF;
  --mist:#F4F5FB;
  --mist-2:#EDEFF8;
  --body:#4A5170;
  --line:rgba(14,8,54,.09);
  --grad:linear-gradient(115deg,#2A1A78 0%,#4A31B8 42%,#E42400 100%);
  --grad-soft:linear-gradient(115deg,rgba(42,26,120,.10),rgba(228,36,0,.10));
  --sh-s:0 2px 8px rgba(14,8,54,.05);
  --sh-m:0 14px 40px -14px rgba(14,8,54,.18);
  --sh-l:0 40px 90px -40px rgba(14,8,54,.42);
  --r:18px; --r-l:26px;
  --nav-h:86px;
  --ease:cubic-bezier(.22,.68,0,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:'Inter',system-ui,sans-serif;color:var(--body);background:var(--paper);
  font-size:16.5px;line-height:1.72;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.lock{overflow:hidden}
h1,h2,h3,h4,h5{font-family:'Plus Jakarta Sans','Inter',sans-serif;color:var(--ink);margin:0;
  line-height:1.1;letter-spacing:-.025em;font-weight:800}
p{margin:0 0 1.1em}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
ul{margin:0;padding:0;list-style:none}
::selection{background:var(--red);color:#fff}
.wrap{width:min(1280px,calc(100% - 48px));margin-inline:auto}
.sec{padding:clamp(70px,8.5vw,132px) 0;position:relative}
.sec--mist{background:linear-gradient(180deg,#fff 0%,var(--mist) 22%,var(--mist) 78%,#fff 100%)}
.sec--dark{background:
   radial-gradient(1100px 620px at 8% -10%,rgba(106,79,224,.42),transparent 60%),
   radial-gradient(900px 520px at 100% 110%,rgba(228,36,0,.30),transparent 62%),
   linear-gradient(160deg,#0E0836 0%,#1A1060 55%,#0E0836 100%);
  color:#C9CBE6}
.sec--dark h2,.sec--dark h3,.sec--dark h4{color:#fff}

/* ============ TYPE HELPERS ============ */
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;color:var(--primary);margin-bottom:20px}
.eyebrow::before{content:"";width:32px;height:2px;background:var(--grad);border-radius:2px}
.sec--dark .eyebrow{color:#A99CFF}
.sec--dark .eyebrow::before{background:linear-gradient(90deg,#6A4FE0,#FF5A2B)}
h1.display{font-size:clamp(2.35rem,5.35vw,4.5rem);letter-spacing:-.038em;line-height:1.03}
h2.title{font-size:clamp(1.95rem,3.65vw,3.15rem)}
h3.sub{font-size:clamp(1.2rem,1.5vw,1.42rem);letter-spacing:-.02em}
.lead{font-size:clamp(1.02rem,1.15vw,1.16rem);color:var(--body);max-width:62ch}
.sec--dark .lead,.sec--dark p{color:#B9BCDE}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.head{max-width:760px;margin-bottom:clamp(42px,4.5vw,68px)}
.head.center{margin-inline:auto;text-align:center}
.head.center .eyebrow{justify-content:center}

/* ============ BUTTONS ============ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:11px;
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:15px;letter-spacing:-.01em;
  padding:16px 30px;border-radius:100px;border:1px solid transparent;cursor:pointer;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),background .35s,color .35s,border-color .35s;
  position:relative;overflow:hidden;white-space:nowrap}
.btn svg{width:17px;height:17px;flex:none;transition:transform .4s var(--ease)}
.btn:hover{transform:translateY(-3px)}
.btn:hover svg{transform:translateX(4px)}
.btn--p{background:var(--grad);background-size:180% 100%;color:#fff;box-shadow:0 12px 30px -10px rgba(42,26,120,.6)}
.btn--p:hover{background-position:100% 0;box-shadow:0 20px 44px -12px rgba(228,36,0,.5)}
.btn--o{border-color:var(--line);color:var(--ink);background:rgba(255,255,255,.7);backdrop-filter:blur(8px)}
.btn--o:hover{border-color:var(--primary);color:var(--primary);box-shadow:var(--sh-m)}
.btn--ghost{border-color:rgba(255,255,255,.28);color:#fff;background:rgba(255,255,255,.06);backdrop-filter:blur(10px)}
.btn--ghost:hover{background:#fff;color:var(--primary);border-color:#fff}
.btn--lg{padding:19px 38px;font-size:16px}

/* ============ PRELOADER ============ */
#pre{position:fixed;inset:0;z-index:9999;background:#fff;display:grid;place-items:center;
  transition:opacity .7s ease,visibility .7s}
#pre.gone{opacity:0;visibility:hidden}
.pre-in{text-align:center;width:230px}
.pre-in img{width:180px;margin:0 auto 26px;animation:pop .9s var(--ease) both}
@keyframes pop{from{opacity:0;transform:scale(.9) translateY(8px)}to{opacity:1;transform:none}}
.pre-bar{height:3px;border-radius:3px;background:var(--mist-2);overflow:hidden}
.pre-bar i{display:block;height:100%;width:0;background:var(--grad);border-radius:3px;
  animation:load 1.5s var(--ease) forwards}
@keyframes load{to{width:100%}}
.pre-tx{margin-top:16px;font-size:10.5px;letter-spacing:.32em;text-transform:uppercase;
  color:#9AA0C0;font-weight:600}

/* ============ HEADER ============ */
.topbar{background:var(--ink);color:#A9AFD4;font-size:12.5px;position:relative;z-index:1001}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;height:40px;gap:20px}
.topbar a{transition:color .25s}.topbar a:hover{color:#fff}
.tb-l{display:flex;gap:26px;align-items:center;min-width:0}
.tb-l span{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.tb-l svg{width:13px;height:13px;color:var(--red-2);flex:none}
.tb-r{display:flex;gap:16px;align-items:center}
.tb-pill{border:1px solid rgba(255,255,255,.16);border-radius:100px;padding:3px 13px;
  font-weight:600;letter-spacing:.05em;color:#fff;font-size:11px}
header{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.82);backdrop-filter:blur(20px) saturate(160%);
  border-bottom:1px solid var(--line);transition:background .45s var(--ease),border-color .45s,box-shadow .45s,height .45s}
header .bar{display:flex;align-items:center;justify-content:space-between;height:var(--nav-h);
  gap:26px;transition:height .45s var(--ease);position:relative}
header.stuck{background:rgba(14,8,54,.86);backdrop-filter:blur(22px) saturate(150%);
  border-color:rgba(255,255,255,.09);box-shadow:0 20px 50px -30px rgba(0,0,0,.85)}
header.stuck .bar{height:74px}
.brand img{height:46px;width:auto;transition:opacity .4s,height .45s var(--ease)}
.brand .lg-d{display:none}
header.stuck .brand .lg-l{display:none}
header.stuck .brand .lg-d{display:block}
header.stuck .brand img{height:42px}
ul.main{display:flex;align-items:center;gap:2px;margin-left:auto}
ul.main > li{position:relative}
ul.main > li > a{display:flex;align-items:center;gap:6px;padding:11px 15px;border-radius:100px;
  font-size:14.5px;font-weight:600;color:var(--ink);letter-spacing:-.005em;transition:color .3s,background .3s}
ul.main > li > a .chev{width:11px;height:11px;opacity:.55;transition:transform .35s var(--ease)}
header.stuck ul.main > li > a{color:#E4E5F5}
ul.main > li > a::after{content:"";position:absolute;left:15px;right:15px;bottom:4px;height:2px;
  background:var(--grad);border-radius:2px;transform:scaleX(0);transform-origin:left;
  transition:transform .45s var(--ease)}
ul.main > li:hover > a{color:var(--primary)}
header.stuck ul.main > li:hover > a{color:#fff}
ul.main > li:hover > a::after{transform:scaleX(1)}
ul.main > li:hover > a .chev{transform:rotate(180deg)}
.nav-cta{display:flex;align-items:center;gap:12px}
.burger{display:none;width:46px;height:46px;border-radius:14px;border:1px solid var(--line);
  background:#fff;cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:5px}
.burger i{display:block;width:19px;height:2px;background:var(--ink);border-radius:2px;transition:.35s var(--ease)}
header.stuck .burger{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2)}
header.stuck .burger i{background:#fff}
.burger.on i:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.on i:nth-child(2){opacity:0}
.burger.on i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* MEGA MENU */
.mega{position:absolute;top:calc(100% + 22px);left:0;right:0;transform:translateY(14px);
  background:rgba(255,255,255,.97);backdrop-filter:blur(26px);
  border:1px solid var(--line);border-radius:24px;box-shadow:var(--sh-l);padding:12px;
  opacity:0;visibility:hidden;pointer-events:none;transition:.42s var(--ease)}
.mega::before{content:"";position:absolute;inset:0;border-radius:24px;padding:1px;
  background:linear-gradient(120deg,rgba(42,26,120,.45),transparent 45%,rgba(228,36,0,.4));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
ul.main > li:hover .mega{opacity:1;visibility:visible;pointer-events:auto;transform:none}
ul.main > li{position:static}
ul.main > li > a{position:relative}
/* invisible bridge so the pointer can cross the gap into the mega panel */
.mega::after{content:"";position:absolute;left:0;right:0;top:-26px;height:26px}
.mega-grid{display:grid;grid-template-columns:1fr 1fr 1fr .95fr;gap:6px}
.mega-col{padding:18px 16px}
.mega-col h5{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--red);
  margin-bottom:14px;font-weight:700}
.mega-col a{display:block;padding:7px 10px;margin-left:-10px;border-radius:10px;font-size:14px;
  color:var(--body);font-weight:500;transition:.3s var(--ease)}
.mega-col a:hover{background:var(--mist);color:var(--primary);transform:translateX(4px)}
.mega-promo{background:
   radial-gradient(400px 200px at 100% 0,rgba(228,36,0,.5),transparent 65%),
   linear-gradient(150deg,#2A1A78,#0E0836);
  border-radius:18px;padding:24px 22px;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;min-height:230px}
.mega-promo h6{font-family:'Plus Jakarta Sans';font-size:19px;font-weight:800;margin:0 0 8px;line-height:1.2}
.mega-promo p{font-size:12.7px;color:rgba(255,255,255,.72);margin:0 0 16px;line-height:1.55}
.mega-promo .lnk{font-size:13px;font-weight:700;display:inline-flex;align-items:center;gap:7px;color:#FF8A5C}
.mega-promo .lnk svg{width:14px;height:14px;transition:transform .35s var(--ease)}
.mega-promo:hover .lnk svg{transform:translateX(5px)}

/* MOBILE DRAWER */
.drawer{position:fixed;inset:0;z-index:999;background:#fff;padding:calc(var(--nav-h) + 30px) 26px 40px;
  transform:translateX(100%);transition:transform .55s var(--ease);overflow-y:auto;display:none}
.drawer.on{transform:none}
.drawer > ul > li{border-bottom:1px solid var(--line)}
.drawer > ul > li > a{display:block;padding:17px 0;font-family:'Plus Jakarta Sans';font-weight:700;
  font-size:19px;color:var(--ink)}
.drawer .dsub{padding:0 0 16px}
.drawer .dsub a{display:block;padding:7px 0;font-size:14.5px;color:var(--body)}
.drawer .dbtn{margin-top:26px;display:grid;gap:12px}

/* ============ HERO ============ */
.hero{position:relative;min-height:calc(100vh - var(--nav-h) - 40px);display:flex;flex-direction:column;
  justify-content:center;padding:clamp(60px,8vh,110px) 0 0;overflow:hidden;background:var(--ink);isolation:isolate}
.hero-bg{position:absolute;inset:-8% 0 0;z-index:-3}
.hero-bg img{width:100%;height:118%;object-fit:cover;opacity:.30;
  filter:saturate(.55) contrast(1.05);will-change:transform}
.hero-tint{position:absolute;inset:0;z-index:-2;background:
  radial-gradient(1200px 700px at 12% 18%,rgba(74,49,184,.62),transparent 62%),
  radial-gradient(900px 620px at 92% 88%,rgba(228,36,0,.42),transparent 60%),
  linear-gradient(105deg,#0E0836 8%,rgba(14,8,54,.90) 48%,rgba(14,8,54,.62) 100%)}
.hero-grid{position:absolute;inset:0;z-index:-1;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:78px 78px;
  -webkit-mask:radial-gradient(circle at 30% 40%,#000,transparent 78%);
  mask:radial-gradient(circle at 30% 40%,#000,transparent 78%)}
.hero-in{display:grid;grid-template-columns:1.06fr .94fr;gap:60px;align-items:center;align-content:center;
  padding-bottom:clamp(40px,6vh,80px);width:100%;flex:1 1 auto}
.stats{flex:0 0 auto;width:100%}
.hero-badge{display:inline-flex;align-items:center;gap:11px;padding:8px 8px 8px 8px;
  border:1px solid rgba(255,255,255,.16);border-radius:100px;background:rgba(255,255,255,.06);
  backdrop-filter:blur(12px);font-size:12.5px;color:#D6D8F0;font-weight:500;margin-bottom:26px}
.hero-badge b{background:var(--grad);color:#fff;font-size:10.5px;font-weight:800;letter-spacing:.13em;
  padding:5px 12px;border-radius:100px;text-transform:uppercase}
.hero h1{color:#fff;margin-bottom:26px}
.hero h1 .hl{position:relative;display:inline-block;
  background:linear-gradient(100deg,#FF7A4D,#E42400);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lead{color:#C0C4E6;max-width:56ch;font-size:clamp(1.02rem,1.2vw,1.17rem)}
.hero-tags{display:flex;flex-wrap:wrap;gap:9px;margin:26px 0 36px}
.hero-tags span{font-size:12.5px;font-weight:600;color:#D6D8F0;padding:7px 15px;border-radius:100px;
  border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.05);backdrop-filter:blur(8px);
  transition:.35s var(--ease)}
.hero-tags span:hover{background:rgba(255,255,255,.14);transform:translateY(-2px);border-color:rgba(255,255,255,.3)}
.hero-btns{display:flex;flex-wrap:wrap;gap:14px}
/* hero visual */
.hero-vis{position:relative;height:clamp(400px,52vh,540px)}
.hv-card{position:absolute;border-radius:var(--r-l);overflow:hidden;box-shadow:var(--sh-l);
  border:1px solid rgba(255,255,255,.14)}
.hv-1{inset:0 24% 22% 0;animation:float1 9s ease-in-out infinite}
.hv-2{width:52%;right:0;top:16%;aspect-ratio:4/3;animation:float2 11s ease-in-out infinite}
.hv-card img{width:100%;height:100%;object-fit:cover}
@keyframes float1{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes float2{0%,100%{transform:translateY(0)}50%{transform:translateY(16px)}}
.hv-glass{position:absolute;left:6%;bottom:0;width:min(340px,80%);padding:20px 22px;border-radius:20px;
  background:rgba(255,255,255,.10);backdrop-filter:blur(24px) saturate(160%);
  border:1px solid rgba(255,255,255,.20);box-shadow:var(--sh-l);animation:float2 10s ease-in-out infinite .5s}
.hv-glass .row{display:flex;align-items:center;gap:14px}
.hv-glass .ic{width:44px;height:44px;border-radius:13px;background:var(--grad);display:grid;place-items:center;flex:none}
.hv-glass .ic svg{width:21px;height:21px;color:#fff}
.hv-glass b{display:block;font-family:'Plus Jakarta Sans';color:#fff;font-size:15px;font-weight:700;line-height:1.3}
.hv-glass span{font-size:12px;color:rgba(255,255,255,.68)}
.hv-glass .bar{height:5px;border-radius:5px;background:rgba(255,255,255,.16);margin-top:15px;overflow:hidden}
.hv-glass .bar i{display:block;height:100%;width:94%;border-radius:5px;background:linear-gradient(90deg,#6A4FE0,#FF5A2B)}
.hv-glass .fine{display:flex;justify-content:space-between;font-size:11px;color:rgba(255,255,255,.6);margin-top:8px}
/* stats strip */
.stats{position:relative;z-index:2;background:rgba(255,255,255,.055);border-top:1px solid rgba(255,255,255,.11);
  backdrop-filter:blur(18px)}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:34px 30px;position:relative}
.stat + .stat::before{content:"";position:absolute;left:0;top:26%;height:48%;width:1px;background:rgba(255,255,255,.14)}
.stat .n{font-family:'Plus Jakarta Sans';font-size:clamp(2rem,3vw,2.85rem);font-weight:800;color:#fff;
  letter-spacing:-.04em;line-height:1;display:flex;align-items:baseline;gap:2px}
.stat .n .suf{background:linear-gradient(100deg,#FF7A4D,#E42400);-webkit-background-clip:text;
  background-clip:text;color:transparent}
.stat p{margin:9px 0 0;font-size:13.2px;color:#A9AECF;line-height:1.5;max-width:22ch}
.scroll-cue{position:absolute;bottom:calc(100% + 22px);left:50%;transform:translateX(-50%);
  width:26px;height:42px;border:1.5px solid rgba(255,255,255,.28);border-radius:100px;display:grid;
  place-items:start center;padding-top:8px}
.scroll-cue i{width:3px;height:8px;border-radius:3px;background:#FF5A2B;animation:cue 1.7s infinite}
@keyframes cue{0%{opacity:0;transform:translateY(0)}35%{opacity:1}100%{opacity:0;transform:translateY(15px)}}

/* ============ TRUST BAR ============ */
.trust{padding:44px 0 52px;background:#fff;border-bottom:1px solid var(--line)}
.trust-lbl{text-align:center;font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;
  color:#9AA0C0;font-weight:700;margin-bottom:30px}
.marquee{overflow:hidden;-webkit-mask:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
  mask:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
.marquee-t{display:flex;gap:18px;width:max-content;animation:slide 44s linear infinite}
.marquee:hover .marquee-t{animation-play-state:paused}
@keyframes slide{to{transform:translateX(-50%)}}
.tlogo{display:flex;align-items:center;gap:13px;padding:15px 26px;border:1px solid var(--line);
  border-radius:100px;background:#fff;filter:grayscale(1);opacity:.55;transition:.45s var(--ease);white-space:nowrap}
.tlogo:hover{filter:none;opacity:1;transform:translateY(-3px);box-shadow:var(--sh-m);border-color:transparent}
.tlogo .em{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:none;
  background:var(--grad);color:#fff}
.tlogo .em svg{width:17px;height:17px}
.tlogo b{font-family:'Plus Jakarta Sans';font-size:14.5px;font-weight:700;color:var(--ink);display:block;line-height:1.25}
.tlogo small{font-size:11px;color:#9AA0C0;letter-spacing:.05em}

/* ============ ABOUT ============ */
.about-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(40px,5vw,80px);align-items:center}
.about-vis{position:relative}
.about-vis .main{border-radius:var(--r-l);overflow:hidden;box-shadow:var(--sh-l);aspect-ratio:4/4.4}
.about-vis .main img{width:100%;height:100%;object-fit:cover}
.about-vis .sub{position:absolute;right:-6%;bottom:12%;width:56%;border-radius:20px;overflow:hidden;
  box-shadow:var(--sh-l);border:5px solid #fff;aspect-ratio:4/3}
.about-vis .sub img{width:100%;height:100%;object-fit:cover}
.about-badge{position:absolute;left:-5%;top:7%;background:#fff;border-radius:18px;padding:17px 21px;
  box-shadow:var(--sh-l);display:flex;align-items:center;gap:14px}
.about-badge .n{font-family:'Plus Jakarta Sans';font-size:30px;font-weight:800;line-height:1;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.about-badge p{margin:0;font-size:11.5px;line-height:1.35;font-weight:600;color:var(--ink);max-width:11ch}
/* timeline */
.tl{margin-top:38px;position:relative;padding-left:30px}
.tl::before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:2px;
  background:linear-gradient(180deg,var(--primary),var(--red),transparent)}
.tl li{position:relative;padding-bottom:26px}
.tl li:last-child{padding-bottom:0}
.tl li::before{content:"";position:absolute;left:-30px;top:6px;width:16px;height:16px;border-radius:50%;
  background:#fff;border:3px solid var(--primary);box-shadow:0 0 0 4px rgba(42,26,120,.10)}
.tl li:nth-child(even)::before{border-color:var(--red);box-shadow:0 0 0 4px rgba(228,36,0,.10)}
.tl .yr{font-family:'Plus Jakarta Sans';font-size:12px;font-weight:800;letter-spacing:.14em;
  color:var(--red);text-transform:uppercase}
.tl h4{font-size:17px;margin:4px 0 5px;font-weight:700}
.tl p{margin:0;font-size:14.5px;line-height:1.62}
/* mvv — full-width row under the about grid */
.mvv-row{margin-top:clamp(44px,4.5vw,68px)}
.mvv{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.mvv-c{padding:34px 30px;border-radius:var(--r);border:1px solid var(--line);background:#fff;
  transition:.5s var(--ease);position:relative;overflow:hidden}
.mvv-c::after{content:"";position:absolute;inset:auto 0 0 0;height:3px;background:var(--grad);
  transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease)}
.mvv-c:hover{transform:translateY(-6px);box-shadow:var(--sh-m);border-color:transparent}
.mvv-c:hover::after{transform:scaleX(1)}
.mvv-c .ic{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;margin-bottom:20px;
  background:var(--grad-soft);color:var(--primary);transition:.5s var(--ease)}
.mvv-c .ic svg{width:25px;height:25px}
.mvv-c:hover .ic{background:var(--grad);color:#fff;box-shadow:0 14px 30px -12px rgba(42,26,120,.65)}
.mvv-c h4{font-size:19px;margin-bottom:9px}
.mvv-c p{margin:0;font-size:14.5px;line-height:1.65}

/* ============ WHY CHOOSE US ============ */
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.why-c{position:relative;padding:32px 26px 30px;border-radius:var(--r-l);background:#fff;
  border:1px solid var(--line);transition:.55s var(--ease);overflow:hidden;isolation:isolate}
.why-c::before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .55s var(--ease);
  background:radial-gradient(320px 200px at 50% 0%,rgba(74,49,184,.10),transparent 70%)}
.why-c:hover{transform:translateY(-8px);box-shadow:var(--sh-l);border-color:transparent}
.why-c:hover::before{opacity:1}
.why-c .num{position:absolute;right:20px;top:16px;font-family:'Plus Jakarta Sans';font-size:44px;
  font-weight:800;color:var(--mist-2);line-height:1;transition:.55s var(--ease)}
.why-c:hover .num{color:rgba(228,36,0,.14);transform:scale(1.1)}
.why-c .ic{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;margin-bottom:20px;
  background:linear-gradient(150deg,var(--mist),#fff);border:1px solid var(--line);color:var(--primary);
  transition:.55s var(--ease)}
.why-c .ic svg{width:25px;height:25px;transition:.55s var(--ease)}
.why-c:hover .ic{background:var(--grad);border-color:transparent;color:#fff;transform:rotate(-6deg) scale(1.06);
  box-shadow:0 14px 30px -12px rgba(42,26,120,.7)}
.why-c h4{font-size:16.5px;margin-bottom:9px}
.why-c p{margin:0;font-size:14px;line-height:1.62}

/* ============ SOLUTIONS ============ */
.sol-filter{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin-bottom:44px}
.sol-filter button{border:1px solid var(--line);background:#fff;color:var(--body);font-family:'Inter';
  font-size:13.2px;font-weight:600;padding:10px 20px;border-radius:100px;cursor:pointer;transition:.4s var(--ease)}
.sol-filter button:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-2px)}
.sol-filter button.on{background:var(--grad);color:#fff;border-color:transparent;
  box-shadow:0 10px 26px -10px rgba(42,26,120,.6)}
.sol-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.sol-c{position:relative;border-radius:20px;background:#fff;border:1px solid var(--line);
  padding:26px 22px;overflow:hidden;isolation:isolate;cursor:pointer;
  transition:transform .55s var(--ease),box-shadow .55s var(--ease),border-color .45s}
.sol-c.pop{animation:fadeUp .5s var(--ease) both}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.sol-c::before{content:"";position:absolute;inset:0;z-index:-1;background:
   radial-gradient(360px 220px at 100% 0,rgba(228,36,0,.42),transparent 62%),
   linear-gradient(155deg,#2A1A78,#0E0836);
  opacity:0;transition:opacity .55s var(--ease)}
.sol-c:hover{transform:translateY(-8px) scale(1.015);box-shadow:var(--sh-l);border-color:transparent}
.sol-c:hover::before{opacity:1}
.sol-c .ic{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;margin-bottom:18px;
  background:var(--grad-soft);color:var(--primary);transition:.5s var(--ease)}
.sol-c .ic svg{width:23px;height:23px}
.sol-c:hover .ic{background:rgba(255,255,255,.14);color:#fff}
.sol-c h4{font-size:15.5px;line-height:1.28;margin-bottom:6px;transition:color .45s}
.sol-c .cap{font-size:13px;color:#8990B4;margin:0;transition:color .45s;line-height:1.55}
.sol-c:hover h4{color:#fff}
.sol-c:hover .cap{color:rgba(255,255,255,.72)}
.sol-c .more{max-height:0;opacity:0;overflow:hidden;transition:max-height .6s var(--ease),opacity .45s,margin .6s var(--ease)}
.sol-c:hover .more{max-height:150px;opacity:1;margin-top:16px}
.sol-c .more ul li{font-size:12.5px;color:rgba(255,255,255,.78);display:flex;gap:8px;align-items:flex-start;
  padding:3px 0;line-height:1.5}
.sol-c .more ul li::before{content:"";width:5px;height:5px;border-radius:50%;background:#FF5A2B;
  margin-top:8px;flex:none}
.sol-c .more .go{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;
  color:#FF8A5C;margin-top:12px}
.sol-c .more .go svg{width:13px;height:13px}
.sol-more{text-align:center;margin-top:44px}

/* ============ PROCESS ============ */
.proc{position:relative;margin-top:20px}
.proc-line{position:absolute;left:0;right:0;top:44px;height:2px;background:var(--mist-2);overflow:hidden}
.proc-line i{display:block;height:100%;width:0;background:var(--grad);transition:width 2s var(--ease)}
.proc.in .proc-line i{width:100%}
.proc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;position:relative}
.proc-s{text-align:center}
.proc-s .dot{width:88px;height:88px;margin:0 auto 20px;border-radius:26px;background:#fff;
  border:1px solid var(--line);display:grid;place-items:center;position:relative;
  transition:.55s var(--ease);box-shadow:var(--sh-s)}
.proc-s .dot svg{width:31px;height:31px;color:var(--primary);transition:.5s var(--ease)}
.proc-s .dot span{position:absolute;top:-9px;right:-9px;width:28px;height:28px;border-radius:50%;
  background:var(--ink);color:#fff;font-family:'Plus Jakarta Sans';font-size:12px;font-weight:800;
  display:grid;place-items:center;transition:.5s var(--ease)}
.proc-s:hover .dot{transform:translateY(-8px) scale(1.05);border-color:transparent;
  background:var(--grad);box-shadow:0 20px 44px -16px rgba(42,26,120,.75)}
.proc-s:hover .dot svg{color:#fff}
.proc-s:hover .dot span{background:#fff;color:var(--red)}
.proc-s h4{font-size:15px;margin-bottom:6px}
.proc-s p{font-size:13px;margin:0;line-height:1.55}

/* ============ INDUSTRIES ============ */
.ind-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ind-c{position:relative;border-radius:var(--r-l);overflow:hidden;aspect-ratio:16/11.5;
  display:flex;align-items:flex-end;isolation:isolate;cursor:pointer}
.ind-c img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;
  transition:transform 1.1s var(--ease),filter .7s;filter:saturate(.75)}
.ind-c::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(14,8,54,.05) 20%,rgba(14,8,54,.62) 62%,rgba(14,8,54,.94) 100%);
  transition:.6s var(--ease)}
.ind-c:hover img{transform:scale(1.09);filter:saturate(1.05)}
.ind-c:hover::after{background:linear-gradient(180deg,rgba(42,26,120,.35) 0%,rgba(14,8,54,.72) 55%,rgba(228,36,0,.55) 100%)}
.ind-in{padding:26px 26px 24px;width:100%;position:relative}
.ind-in .ic{width:46px;height:46px;border-radius:13px;background:rgba(255,255,255,.14);
  backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.2);display:grid;place-items:center;
  margin-bottom:14px;color:#fff;transition:.5s var(--ease)}
.ind-in .ic svg{width:22px;height:22px}
.ind-c:hover .ic{background:#fff;color:var(--red)}
.ind-in h4{color:#fff;font-size:19px;margin-bottom:0}
.ind-in p{margin:0;max-height:0;opacity:0;overflow:hidden;font-size:13.5px;color:rgba(255,255,255,.8);
  transition:max-height .6s var(--ease),opacity .5s,margin .6s var(--ease);line-height:1.55}
.ind-c:hover p{max-height:90px;opacity:1;margin-top:8px}

/* ============ GOV TRUST INFOGRAPHIC ============ */
.gov-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(40px,5vw,76px);align-items:center}
/* credential ring — central medallion + 6 orbiting label chips */
.orb{--op:clamp(84px,7.5vw,112px);position:relative;padding:14px var(--op);width:100%;max-width:660px;margin-inline:auto}
.orb-stage{position:relative;aspect-ratio:1;width:100%}
.orb .ring{position:absolute;border-radius:50%;border:1px dashed rgba(255,255,255,.15)}
.orb .r1{inset:0;animation:spin 52s linear infinite}
.orb .r2{inset:14%;border-style:solid;border-color:rgba(255,255,255,.09);animation:spin 38s linear infinite reverse}
.orb .r3{inset:28%;border-color:rgba(255,90,43,.20);animation:spin 28s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.orb-core{position:absolute;inset:24%;border-radius:50%;display:grid;place-items:center;text-align:center;
  background:radial-gradient(circle at 32% 26%,#6A4FE0,#2A1A78 55%,#0E0836);
  box-shadow:0 0 0 1px rgba(255,255,255,.12),0 30px 80px -20px rgba(106,79,224,.75);z-index:2}
.orb-stage::after{content:"";position:absolute;inset:10%;border-radius:50%;z-index:1;pointer-events:none;
  background:radial-gradient(circle,rgba(106,79,224,.35),transparent 66%);animation:pulse 3.4s ease-in-out infinite}
@keyframes pulse{0%,100%{transform:scale(1);opacity:.7}50%{transform:scale(1.12);opacity:.3}}
.orb-core b{display:block;font-family:'Plus Jakarta Sans';font-size:clamp(1.7rem,3.2vw,2.5rem);
  font-weight:800;color:#fff;line-height:1;letter-spacing:-.04em}
.orb-core span{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.66);
  margin-top:8px;display:block;line-height:1.4}
.orb-chips{position:absolute;top:14px;bottom:14px;left:var(--op);right:var(--op);z-index:3;pointer-events:none}
.chip{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;
  display:flex;align-items:center;gap:11px;padding:10px 16px 10px 10px;border-radius:100px;
  background:rgba(20,12,66,.72);backdrop-filter:blur(18px) saturate(150%);
  border:1px solid rgba(255,255,255,.16);box-shadow:0 18px 40px -20px rgba(0,0,0,.9);
  transition:.5s var(--ease);white-space:nowrap}
.chip .ci{width:36px;height:36px;border-radius:11px;flex:none;display:grid;place-items:center;
  background:linear-gradient(145deg,#6A4FE0,#2A1A78);color:#fff;transition:.5s var(--ease)}
.chip .ci svg{width:18px;height:18px}
.chip b{display:block;font-family:'Plus Jakarta Sans';font-size:13px;font-weight:700;color:#fff;line-height:1.2}
.chip i{display:block;font-style:normal;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#9CA2C8;margin-top:2px}
.chip:hover{background:#fff;border-color:#fff;transform:translate(-50%,-50%) scale(1.06)}
.chip:hover b{color:var(--ink)}
.chip:hover i{color:var(--red)}
.chip:hover .ci{background:var(--red);color:#fff}
.p1{left:50%;top:0}
.p2{left:93.3%;top:25%}
.p3{left:93.3%;top:75%}
.p4{left:50%;top:100%}
.p5{left:6.7%;top:75%}
.p6{left:6.7%;top:25%}
.gov-list{display:grid;gap:14px;margin-top:34px}
.gov-li{display:flex;gap:16px;padding:18px 20px;border-radius:16px;background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.09);transition:.5s var(--ease)}
.gov-li:hover{background:rgba(255,255,255,.10);transform:translateX(6px);border-color:rgba(255,255,255,.2)}
.gov-li .k{width:42px;height:42px;border-radius:12px;flex:none;display:grid;place-items:center;
  background:linear-gradient(150deg,#6A4FE0,#2A1A78);color:#fff}
.gov-li .k svg{width:20px;height:20px}
.gov-li h4{font-size:15.5px;margin-bottom:4px}
.gov-li p{margin:0;font-size:13.4px;line-height:1.55}

/* ============ PROJECTS ============ */
.pj-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:16px}
.pj{position:relative;border-radius:var(--r-l);overflow:hidden;isolation:isolate;cursor:pointer;
  display:flex;align-items:flex-end}
.pj img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;
  transition:transform 1.1s var(--ease);filter:saturate(.8)}
.pj::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,transparent 32%,rgba(14,8,54,.82) 100%);transition:.6s}
.pj:hover img{transform:scale(1.08)}
.pj:hover::after{background:linear-gradient(180deg,rgba(42,26,120,.4) 0%,rgba(14,8,54,.9) 100%)}
.pj-a{grid-column:span 2;grid-row:span 2}
.pj-b{grid-column:span 2;grid-row:span 1}
.pj-c{grid-column:span 1;grid-row:span 1}
.pj-in{padding:24px;width:100%}
.pj-tag{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;
  color:#fff;background:rgba(255,255,255,.16);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);
  padding:5px 12px;border-radius:100px;margin-bottom:11px}
.pj-in h4{color:#fff;font-size:18px;line-height:1.24}
.pj-in .meta{margin:8px 0 0;font-size:12.6px;color:rgba(255,255,255,.74);
  max-height:0;opacity:0;overflow:hidden;transition:.55s var(--ease)}
.pj:hover .meta{max-height:70px;opacity:1}
.pj-arrow{position:absolute;top:20px;right:20px;width:42px;height:42px;border-radius:50%;
  background:rgba(255,255,255,.14);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.22);
  display:grid;place-items:center;color:#fff;transform:scale(.7) rotate(-30deg);opacity:0;
  transition:.5s var(--ease)}
.pj-arrow svg{width:17px;height:17px}
.pj:hover .pj-arrow{transform:none;opacity:1;background:#fff;color:var(--red);border-color:#fff}

/* ============ TESTIMONIALS ============ */
.tst-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.tst{position:relative;padding:38px 30px 30px;border-radius:var(--r-l);
  background:rgba(255,255,255,.06);backdrop-filter:blur(22px) saturate(150%);
  border:1px solid rgba(255,255,255,.13);transition:.55s var(--ease);overflow:hidden}
.tst::before{content:"";position:absolute;inset:0;border-radius:var(--r-l);padding:1px;opacity:0;
  background:linear-gradient(130deg,rgba(106,79,224,.9),transparent 45%,rgba(255,90,43,.85));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;transition:opacity .55s}
.tst:hover{transform:translateY(-8px);background:rgba(255,255,255,.10)}
.tst:hover::before{opacity:1}
.tst .q{position:absolute;top:12px;right:22px;font-family:'Plus Jakarta Sans';font-size:112px;
  font-weight:800;line-height:1;color:rgba(255,255,255,.07);pointer-events:none}
.tst .stars{display:flex;gap:3px;margin-bottom:16px}
.tst .stars svg{width:15px;height:15px;color:#FFB020}
.tst p{color:#D3D6F0;font-size:14.8px;line-height:1.75;margin-bottom:24px;position:relative}
.tst .who{display:flex;align-items:center;gap:14px;padding-top:20px;border-top:1px solid rgba(255,255,255,.11)}
.tst .who img{width:50px;height:50px;border-radius:50%;object-fit:cover;flex:none;
  border:2px solid rgba(255,255,255,.22)}
.tst .who b{display:block;color:#fff;font-family:'Plus Jakarta Sans';font-size:14.5px;font-weight:700}
.tst .who span{font-size:12.3px;color:#9AA0C8}

/* ============ PARTNERS ============ */
.pt-row{display:flex;gap:16px;width:max-content;animation:slide 38s linear infinite}
.pt-row.rev{animation-direction:reverse}
.pt{display:grid;place-items:center;min-width:186px;height:96px;border-radius:16px;background:#fff;
  border:1px solid var(--line);padding:16px;transition:.45s var(--ease);text-align:center}
.pt:hover{transform:translateY(-5px);box-shadow:var(--sh-m);border-color:transparent}
.pt b{font-family:'Plus Jakarta Sans';font-size:16px;font-weight:800;color:var(--ink);
  letter-spacing:-.02em;filter:grayscale(1);opacity:.5;transition:.45s}
.pt:hover b{filter:none;opacity:1;color:var(--primary)}
.pt small{display:block;font-size:9.5px;letter-spacing:.18em;color:#AEB3CE;text-transform:uppercase;margin-top:3px}

/* ============ CTA ============ */
.cta-band{position:relative;border-radius:34px;overflow:hidden;isolation:isolate;
  padding:clamp(52px,6vw,82px) clamp(30px,5vw,72px);text-align:center}
.cta-band::before{content:"";position:absolute;inset:0;z-index:-2;background:
  radial-gradient(760px 420px at 12% 8%,rgba(106,79,224,.72),transparent 62%),
  radial-gradient(700px 400px at 92% 92%,rgba(228,36,0,.62),transparent 60%),
  linear-gradient(140deg,#1A1060,#0E0836)}
.cta-band::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.35;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:56px 56px;
  -webkit-mask:radial-gradient(circle at 50% 50%,#000,transparent 76%);
  mask:radial-gradient(circle at 50% 50%,#000,transparent 76%)}
.cta-band h2{color:#fff;font-size:clamp(1.95rem,3.8vw,3.3rem);margin-bottom:18px}
.cta-band p{color:#BFC3E6;max-width:60ch;margin-inline:auto;margin-bottom:34px}
.cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.cta-fine{margin-top:28px;font-size:12.8px;color:#8E94C0;display:flex;gap:26px;justify-content:center;flex-wrap:wrap}
.cta-fine span{display:inline-flex;align-items:center;gap:7px}
.cta-fine svg{width:14px;height:14px;color:#5FD39A}

/* ============ FOOTER ============ */
footer{background:linear-gradient(180deg,#0E0836,#080421);color:#9AA0C8;padding-top:clamp(60px,7vw,96px)}
.f-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1.35fr;gap:34px;padding-bottom:54px;
  border-bottom:1px solid rgba(255,255,255,.09)}
.f-brand img{height:52px;margin-bottom:22px}
.f-brand p{font-size:14px;line-height:1.7;color:#8E94C0;max-width:34ch}
.f-social{display:flex;gap:9px;margin-top:22px}
.f-social a{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10);color:#B6BAD8;transition:.42s var(--ease)}
.f-social a svg{width:17px;height:17px}
.f-social a:hover{background:var(--grad);color:#fff;border-color:transparent;transform:translateY(-4px)}
footer h5{color:#fff;font-family:'Plus Jakarta Sans';font-size:14px;font-weight:700;letter-spacing:.03em;
  margin:0 0 20px}
.f-links li{margin-bottom:11px}
.f-links a{font-size:13.9px;color:#8E94C0;transition:.35s var(--ease);display:inline-flex;align-items:center;gap:0}
.f-links a::before{content:"";width:0;height:1px;background:var(--red-2);transition:.35s var(--ease);margin-right:0}
.f-links a:hover{color:#fff}
.f-links a:hover::before{width:12px;margin-right:8px}
.f-contact li{display:flex;gap:12px;margin-bottom:16px;font-size:13.7px;line-height:1.6}
.f-contact svg{width:16px;height:16px;color:var(--red-2);flex:none;margin-top:3px}
.f-contact a:hover{color:#fff}
.f-map{margin-top:18px;border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.11);
  height:150px;filter:grayscale(1) invert(.92) contrast(.86);transition:filter .6s}
.f-map:hover{filter:none}
.f-map iframe{width:100%;height:100%;border:0;display:block}
.f-news{padding:34px 0;border-bottom:1px solid rgba(255,255,255,.09);display:flex;
  align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap}
.f-news h4{font-size:19px;margin-bottom:4px}
.f-news p{margin:0;font-size:13.5px}
.f-form{display:flex;gap:10px;min-width:min(430px,100%)}
.f-form input{flex:1;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.13);
  border-radius:100px;padding:15px 22px;color:#fff;font-family:'Inter';font-size:14px;outline:none;transition:.35s}
.f-form input::placeholder{color:#7E84AE}
.f-form input:focus{border-color:var(--primary-3);background:rgba(255,255,255,.1)}
.f-bot{padding:24px 0 28px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  font-size:12.8px;color:#767CA6}
.f-bot .lnks{display:flex;gap:22px}
.f-bot a:hover{color:#fff}

/* ============ FLOATING ============ */
.fab{position:fixed;right:22px;z-index:900;width:54px;height:54px;border-radius:50%;display:grid;
  place-items:center;box-shadow:var(--sh-l);cursor:pointer;transition:.45s var(--ease);border:none}
.fab svg{width:24px;height:24px}
#wa{bottom:88px;background:#25D366;color:#fff;animation:ring 3.4s ease-in-out infinite}
#wa:hover{transform:scale(1.1)}
@keyframes ring{0%,100%{box-shadow:0 0 0 0 rgba(37,211,102,.5)}50%{box-shadow:0 0 0 14px rgba(37,211,102,0)}}
#top{bottom:22px;background:var(--grad);color:#fff;opacity:0;visibility:hidden;transform:translateY(14px)}
#top.on{opacity:1;visibility:visible;transform:none}
#top:hover{transform:translateY(-4px)}

/* ============ REVEAL ============ */
.rv{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.09s}.rv-d2{transition-delay:.18s}.rv-d3{transition-delay:.27s}
.rv-d4{transition-delay:.36s}.rv-d5{transition-delay:.45s}.rv-d6{transition-delay:.54s}
.rv-d7{transition-delay:.63s}.rv-d8{transition-delay:.72s}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition-duration:.01ms!important}
  .rv{opacity:1;transform:none}}

/* ============ RESPONSIVE ============ */
@media(max-width:1180px){
  .why-grid,.sol-grid{grid-template-columns:repeat(3,1fr)}
  .f-top{grid-template-columns:1.4fr 1fr 1fr;gap:34px}
  .f-contact-col{grid-column:span 3}
  .proc-grid{grid-template-columns:repeat(4,1fr);gap:26px}
  .proc-line{display:none}
}
@media(max-width:1024px){
  ul.main,.nav-cta .btn{display:none}
  .burger{display:flex}.drawer{display:block}
  .hero-in{grid-template-columns:1fr;gap:44px}
  .hero-vis{height:360px;max-width:560px}
  .stats .wrap{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(3)::before,.stat:nth-child(1)::before{display:none}
  .about-grid,.gov-grid{grid-template-columns:1fr}
  .about-vis{width:100%;max-width:520px;margin-inline:auto}
  .ind-grid{grid-template-columns:repeat(2,1fr)}
  .pj-grid{grid-template-columns:repeat(2,1fr)}
  .tst-grid{grid-template-columns:1fr}
  .tb-l span:nth-child(3){display:none}
}
@media(max-width:860px){
  /* ring can't hold floating chips at this width — lay them out as a clean grid */
  .orb{padding:0;width:100%;max-width:560px}
  .orb-stage{max-width:330px;margin-inline:auto}
  .orb-chips{position:static;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:30px}
  .chip{position:static;transform:none;white-space:normal;justify-content:flex-start}
  .chip:hover{transform:translateY(-3px)}
}
@media(max-width:820px){
  .why-grid,.sol-grid{grid-template-columns:repeat(2,1fr)}
  .mvv{grid-template-columns:1fr}
  .proc-grid{grid-template-columns:repeat(2,1fr)}
  .f-top{grid-template-columns:1fr 1fr}
  .f-brand{grid-column:span 2}
  .f-contact-col{grid-column:span 2}
  .f-news{flex-direction:column;align-items:flex-start}
}
@media(max-width:600px){
  :root{--nav-h:72px}
  .wrap{width:calc(100% - 32px)}
  .topbar .wrap{height:auto;padding:8px 0;flex-direction:column;gap:5px}
  .tb-l{gap:14px;font-size:11.5px}.tb-r{font-size:11.5px}
  .why-grid,.sol-grid,.ind-grid,.pj-grid{grid-template-columns:1fr}
  .pj-grid{grid-auto-rows:210px}
  .pj-a,.pj-b,.pj-c{grid-column:span 1;grid-row:span 1}
  .stats .wrap{grid-template-columns:1fr}
  .stat + .stat::before{left:0;right:0;top:0;width:100%;height:1px}
  .hero-btns .btn{flex:1}
  .about-badge{left:0}
  .about-vis .sub{right:0;width:50%}
  .f-form{flex-direction:column;min-width:100%}
  .f-form .btn{justify-content:center}
  .cta-band{border-radius:24px}
  .fab{right:16px}
}


/* graceful image fallbacks — branded gradient instead of broken icons */
.ind-c,.pj,.hero-bg,.hv-card,.about-vis .main,.about-vis .sub{
  background:linear-gradient(150deg,#2A1A78,#4A31B8 55%,#E42400)}
img.fail{opacity:0!important;visibility:hidden}
.tst .who img{background:linear-gradient(150deg,#4A31B8,#E42400)}
.tst .who img.fail{opacity:1!important;visibility:visible}


/* ==========================================================================
   WordPress integration
   Everything above is the approved design. Everything below adapts it to
   WordPress markup (inner pages, blog, comments, widgets, accessibility).
   ========================================================================== */

/* The primary <nav> wrapper takes over the flex positioning from the <ul>,
   which avoids display:contents and its accessibility-tree quirks. */
nav.sgi-primary{margin-left:auto}
ul.main{margin-left:0}
@media(max-width:1024px){nav.sgi-primary{display:none}}

/* Process grid follows the number of steps the client publishes. The two
   media queries are repeated here because this block is appended after the
   original responsive rules and would otherwise win at every width. */
.proc-grid{grid-template-columns:repeat(var(--proc-count,7),1fr)}
@media(max-width:1180px){.proc-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:820px){.proc-grid{grid-template-columns:repeat(2,1fr)}}

/* Solutions filter hides non-matching cards. */
.sol-c.is-hidden{display:none}

/* Accessibility ---------------------------------------------------------- */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;
  overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}
.skip-link{position:absolute;left:-9999px;top:0;z-index:10000;background:var(--ink);color:#fff;
  padding:14px 22px;border-radius:0 0 12px 0;font-weight:600}
.skip-link:focus{left:0}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:3px solid var(--red);outline-offset:3px;border-radius:6px}

/* Inner page hero -------------------------------------------------------- */
.page-hero{position:relative;padding:clamp(60px,7vw,110px) 0 clamp(44px,5vw,70px);overflow:hidden;
  background:radial-gradient(900px 520px at 12% 0,rgba(74,49,184,.45),transparent 62%),
             radial-gradient(700px 420px at 96% 100%,rgba(228,36,0,.30),transparent 60%),
             linear-gradient(150deg,var(--ink),var(--navy))}
.page-hero .title{color:#fff;font-size:clamp(2rem,4vw,3.3rem);max-width:22ch}
.page-hero .eyebrow{color:#A99CFF}
.page-hero .lead{color:#BCC1E8;margin-top:16px}

/* Blog layout ------------------------------------------------------------ */
.sgi-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(30px,4vw,58px);align-items:flex-start}
.sgi-main{min-width:0}
.post-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.post-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden;
  transition:.5s var(--ease);display:flex;flex-direction:column}
.post-card:hover{transform:translateY(-6px);box-shadow:var(--sh-l);border-color:transparent}
.post-card__img{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--mist)}
.post-card__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.post-card:hover .post-card__img img{transform:scale(1.05)}
.post-card__body{padding:24px 24px 26px;display:flex;flex-direction:column;flex:1}
.post-card__meta{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--red);font-weight:700;margin-bottom:10px}
.post-card h3{font-size:19px;line-height:1.28;margin-bottom:10px}
.post-card h3 a:hover{color:var(--primary)}
.post-card p{font-size:14.2px;margin-bottom:16px}
.post-card__more{margin-top:auto;display:inline-flex;align-items:center;gap:8px;font-family:'Plus Jakarta Sans',sans-serif;
  font-size:13px;font-weight:700;color:var(--ink)}
.post-card__more svg{width:14px;height:14px;transition:transform .4s var(--ease)}
.post-card__more:hover{color:var(--red)}
.post-card__more:hover svg{transform:translateX(4px)}

/* Entry content ---------------------------------------------------------- */
.sgi-entry__img{margin:0 0 30px;border-radius:var(--r-l);overflow:hidden}
.sgi-entry--wide{max-width:860px;margin-inline:auto}
.sgi-content{font-size:16.5px}
.sgi-content h1,.sgi-content h2,.sgi-content h3,.sgi-content h4{margin:1.7em 0 .6em;line-height:1.2}
.sgi-content h2{font-size:clamp(1.5rem,2.4vw,2rem)}
.sgi-content h3{font-size:clamp(1.25rem,1.9vw,1.55rem)}
.sgi-content ul,.sgi-content ol{margin:0 0 1.2em 1.3em;list-style:disc}
.sgi-content ol{list-style:decimal}
.sgi-content li{margin-bottom:.5em}
.sgi-content a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}
.sgi-content a:hover{color:var(--red)}
.sgi-content img,.sgi-content iframe{max-width:100%;border-radius:var(--r)}
.sgi-content blockquote{margin:1.6em 0;padding:22px 26px;border-left:3px solid var(--red);
  background:var(--mist);border-radius:0 var(--r) var(--r) 0;font-size:1.05em}
.sgi-content blockquote p:last-child{margin-bottom:0}
.sgi-content table{width:100%;border-collapse:collapse;margin-bottom:1.4em}
.sgi-content th,.sgi-content td{border:1px solid var(--line);padding:11px 14px;text-align:left}
.sgi-content th{background:var(--mist);font-family:'Plus Jakarta Sans',sans-serif;color:var(--ink)}
.sgi-content code,.sgi-content pre{background:var(--mist);border-radius:8px}
.sgi-content code{padding:2px 7px;font-size:.92em}
.sgi-content pre{padding:18px 20px;overflow:auto}
.alignwide{max-width:1100px;margin-inline:auto}
.alignfull{max-width:none}
.aligncenter{margin-inline:auto;display:block}
.alignleft{float:left;margin:0 24px 18px 0}
.alignright{float:right;margin:0 0 18px 24px}
.wp-caption-text,.sgi-content figcaption{font-size:13px;color:#8990B4;margin-top:8px;text-align:center}

/* Sidebar and widgets ---------------------------------------------------- */
.sgi-side .widget{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:26px 24px;margin-bottom:18px}
.widget-title{font-size:16px;margin-bottom:16px}
.sgi-side ul{display:grid;gap:9px}
.sgi-side li a{font-size:14.2px}
.sgi-side li a:hover{color:var(--primary)}

/* Search form ------------------------------------------------------------ */
.sgi-search{display:flex;gap:10px;max-width:520px;margin-inline:auto}
.sgi-search input{flex:1;border:1px solid var(--line);border-radius:100px;padding:15px 22px;
  font-family:'Inter',sans-serif;font-size:14.5px;outline:none;background:#fff;transition:.35s}
.sgi-search input:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(42,26,120,.10)}

/* Pagination ------------------------------------------------------------- */
.pagination{margin-top:40px;display:flex;justify-content:center}
.pagination .nav-links{display:flex;gap:8px;flex-wrap:wrap}
.pagination .page-numbers{display:grid;place-items:center;min-width:46px;height:46px;padding:0 14px;
  border-radius:100px;border:1px solid var(--line);background:#fff;font-weight:600;font-size:14px;transition:.35s var(--ease)}
.pagination .page-numbers:hover{border-color:var(--primary);color:var(--primary)}
.pagination .page-numbers.current{background:var(--grad);color:#fff;border-color:transparent}

/* Comments --------------------------------------------------------------- */
.sgi-comments{margin-top:50px;padding-top:36px;border-top:1px solid var(--line)}
.sgi-comments h3{font-size:20px;margin-bottom:22px}
.comment-list{display:grid;gap:18px;margin-bottom:36px}
.comment-list .children{margin-top:18px;margin-left:26px;display:grid;gap:18px}
.comment-body{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px 24px}
.comment-author{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.comment-author img{border-radius:50%}
.comment-meta{font-size:12.5px;color:#8990B4;margin-bottom:10px}
.comment-form{display:grid;gap:14px;max-width:680px}
.comment-form label{font-size:13.5px;font-weight:600;color:var(--ink);display:block;margin-bottom:6px}
.comment-form input[type="text"],.comment-form input[type="email"],.comment-form input[type="url"],.comment-form textarea{
  width:100%;border:1px solid var(--line);border-radius:14px;padding:13px 16px;font-family:'Inter',sans-serif;
  font-size:14.5px;outline:none;background:#fff;transition:.35s}
.comment-form textarea{border-radius:18px;min-height:150px;resize:vertical}
.comment-form input:focus,.comment-form textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(42,26,120,.10)}
.comment-form .submit{background:var(--grad);color:#fff;border:0;border-radius:100px;padding:15px 30px;
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:14.5px;cursor:pointer;
  transition:.4s var(--ease);justify-self:start}
.comment-form .submit:hover{transform:translateY(-3px);box-shadow:var(--sh-m)}

/* Admin bar offset for the sticky header --------------------------------- */
body.admin-bar header{top:32px}
@media(max-width:782px){body.admin-bar header{top:46px}}

/* Responsive ------------------------------------------------------------- */
@media(max-width:1024px){
  .sgi-layout{grid-template-columns:1fr}
  .sgi-side{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
}
@media(max-width:700px){
  .post-grid{grid-template-columns:1fr}
  .sgi-side{grid-template-columns:1fr}
  .sgi-search{flex-direction:column}
  .sgi-search .btn{justify-content:center}
  .comment-list .children{margin-left:12px}
}

/* ==========================================================================
   Inner pages (v1.1) - archives, detail pages, contact, careers, gallery
   ========================================================================== */

/* Page hero with an optional photograph behind it ------------------------ */
.page-hero{isolation:isolate}
.page-hero--img::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(120deg,rgba(14,8,54,.94),rgba(26,16,96,.82) 55%,rgba(228,36,0,.42))}
.page-hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;opacity:.5}
.crumbs{margin-top:22px}
.crumbs ol{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12.8px;color:#9AA0C8}
.crumbs li+li::before{content:"/";margin-right:8px;opacity:.5}
.crumbs a{color:#C5C9EE}
.crumbs a:hover{color:#fff}
.crumbs [aria-current]{color:#fff}

/* Whole-card link overlay ------------------------------------------------ */
.sol-link{position:absolute;inset:0;z-index:5;border-radius:inherit}
.sol-c,.ind-c,.pj{position:relative}

/* Detail page layout ----------------------------------------------------- */
.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(30px,4vw,58px);align-items:flex-start}
.detail-main{min-width:0}
.detail-list{margin-top:38px}
.detail-list h3{font-size:20px;margin-bottom:18px}
.detail-list ul{display:grid;gap:11px}
.detail-list li{display:flex;gap:13px;align-items:flex-start;padding:15px 18px;border-radius:16px;
  background:var(--mist);border:1px solid var(--line);font-size:14.6px}
.detail-list li svg{width:19px;height:19px;color:var(--primary);flex:none;margin-top:2px}
.side-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:26px 24px;margin-bottom:16px}
.side-card .ic{width:50px;height:50px;border-radius:15px;display:grid;place-items:center;margin-bottom:16px;
  background:var(--grad-soft);color:var(--primary)}
.side-card .ic svg{width:23px;height:23px}
.side-card h4{font-size:17px;margin-bottom:9px}
.side-card p{font-size:14px;margin-bottom:18px}
.side-card .btn{width:100%}
.side-card--dark{background:radial-gradient(400px 240px at 100% 0,rgba(228,36,0,.4),transparent 62%),
  linear-gradient(155deg,var(--primary),var(--ink));border-color:transparent}
.side-card--dark h4{color:#fff}
.side-card--dark p{color:rgba(255,255,255,.76)}
.side-meta{display:grid;gap:12px;margin-top:18px}
.side-meta li{display:flex;gap:11px;align-items:flex-start;font-size:14px;line-height:1.55}
.side-meta svg{width:16px;height:16px;color:var(--red);flex:none;margin-top:3px}
.side-meta a:hover{color:var(--primary)}
.side-tags{display:flex;flex-wrap:wrap;gap:8px}
.side-tags a{font-size:12.5px;font-weight:600;padding:7px 14px;border-radius:100px;
  background:var(--mist);border:1px solid var(--line);transition:.35s var(--ease)}
.side-tags a:hover{background:var(--grad);color:#fff;border-color:transparent}

/* Related mini cards ----------------------------------------------------- */
.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.mini-card{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff;
  display:block;transition:.45s var(--ease)}
.mini-card:hover{transform:translateY(-5px);box-shadow:var(--sh-m);border-color:transparent}
.mini-card__img{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--mist)}
.mini-card__img img{width:100%;height:100%;object-fit:cover}
.mini-card__body{display:block;padding:15px 16px 17px}
.mini-card__body strong{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;
  color:var(--ink);line-height:1.3;margin-bottom:5px}
.mini-card__body em{font-style:normal;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);font-weight:700}

/* Even project grid on detail pages -------------------------------------- */
.pj-grid--even{grid-auto-rows:230px}
.pj-grid--even .pj{grid-column:span 2;grid-row:span 1}

/* Stats band on inner pages ---------------------------------------------- */
.stats-band{padding:clamp(46px,5vw,74px) 0}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.stats-band .stat{padding:0 24px;position:relative}
.stats-band .stat+.stat::before{content:"";position:absolute;left:0;top:12%;height:76%;width:1px;background:rgba(255,255,255,.14)}
.stats-band .n{font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(2rem,3vw,2.9rem);font-weight:800;
  color:#fff;letter-spacing:-.04em;line-height:1;display:flex;align-items:baseline;gap:2px}
.stats-band .suf{background:linear-gradient(100deg,#FF7A4D,var(--red));-webkit-background-clip:text;
  background-clip:text;color:transparent}
.stats-band p{margin:10px 0 0;font-size:13.4px;color:#A9AECF;max-width:24ch}

/* Partners page ---------------------------------------------------------- */
.partner-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.partner-cell{display:grid;place-items:center;text-align:center;min-height:118px;padding:22px 18px;
  background:#fff;border:1px solid var(--line);border-radius:var(--r);transition:.45s var(--ease)}
.partner-cell:hover{transform:translateY(-5px);box-shadow:var(--sh-m);border-color:transparent}
.partner-cell img{max-height:46px;width:auto;filter:grayscale(1);opacity:.6;transition:.4s}
.partner-cell:hover img{filter:none;opacity:1}
.partner-cell b{font-family:'Plus Jakarta Sans',sans-serif;font-size:17px;color:var(--ink);
  filter:grayscale(1);opacity:.5;transition:.4s;display:block}
.partner-cell:hover b{filter:none;opacity:1;color:var(--primary)}
.partner-cell small{display:block;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:#A2A8C4;margin-top:4px}

/* Gallery ---------------------------------------------------------------- */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gal{margin:0;position:relative;border-radius:var(--r-l);overflow:hidden;aspect-ratio:4/3;
  background:var(--primary);isolation:isolate}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.gal::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(14,8,54,.86),transparent 55%);
  transition:.5s}
.gal:hover img{transform:scale(1.07)}
.gal figcaption{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:20px 22px;color:#fff}
.gal figcaption strong{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-size:15.5px;line-height:1.3}

/* Careers ---------------------------------------------------------------- */
.job-list{display:grid;gap:16px}
.job{display:flex;justify-content:space-between;align-items:center;gap:26px;flex-wrap:wrap;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:28px 30px;transition:.45s var(--ease)}
.job:hover{transform:translateY(-4px);box-shadow:var(--sh-m);border-color:transparent}
.job-main{min-width:min(340px,100%);flex:1}
.job h3{font-size:20px;margin-bottom:8px}
.job h3 a:hover{color:var(--primary)}
.job p{font-size:14.4px;margin-bottom:14px}
.job-meta{display:flex;flex-wrap:wrap;gap:18px;font-size:13px;color:#8990B4}
.job-meta span{display:inline-flex;align-items:center;gap:7px}
.job-meta svg{width:15px;height:15px;color:var(--red)}
.empty-state{text-align:center;background:#fff;border:1px solid var(--line);border-radius:var(--r-l);
  padding:clamp(40px,6vw,70px) 26px}
.empty-state>svg{width:46px;height:46px;color:var(--primary);margin-bottom:18px}
.empty-state h3{font-size:22px;margin-bottom:10px}
.empty-state p{max-width:46ch;margin-inline:auto;margin-bottom:24px}

/* Contact ---------------------------------------------------------------- */
.contact-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.contact-card{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--r-l);
  padding:26px 24px;transition:.5s var(--ease)}
.contact-card:hover{transform:translateY(-6px);box-shadow:var(--sh-l);border-color:transparent}
.contact-card .ic{width:50px;height:50px;border-radius:15px;display:grid;place-items:center;margin-bottom:16px;
  background:var(--grad-soft);color:var(--primary);transition:.45s var(--ease)}
.contact-card .ic svg{width:23px;height:23px}
.contact-card:hover .ic{background:var(--grad);color:#fff}
.contact-card--wa:hover .ic{background:#25D366}
.contact-card strong{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-size:16px;color:var(--ink);margin-bottom:5px}
.contact-card span{font-size:14px;color:var(--body);word-break:break-word}
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:clamp(30px,4vw,54px);align-items:flex-start}
.contact-form-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:clamp(28px,3.4vw,44px)}
.enquiry-form{margin-top:24px}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.f-field{margin-bottom:18px}
.f-field label{display:block;font-size:13.5px;font-weight:600;color:var(--ink);margin-bottom:7px}
.f-field label span{color:var(--red)}
.f-field input,.f-field select,.f-field textarea{width:100%;border:1px solid var(--line);border-radius:14px;
  padding:14px 16px;font-family:'Inter',sans-serif;font-size:15px;color:var(--ink);background:#fff;
  outline:none;transition:.35s var(--ease)}
.f-field textarea{border-radius:18px;resize:vertical;min-height:150px}
.f-field input:focus,.f-field select:focus,.f-field textarea:focus{border-color:var(--primary);
  box-shadow:0 0 0 4px rgba(42,26,120,.10)}
.f-field input:invalid:not(:placeholder-shown){border-color:var(--red)}
.f-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.f-small{font-size:12.5px;color:#8990B4;margin:14px 0 0}
.form-note{padding:15px 20px;border-radius:14px;font-size:14.5px;margin-bottom:22px;border:1px solid}
.form-note--ok{background:#EAF7F0;border-color:#B9E3CD;color:#0F6B3F}
.form-note--err{background:#FDF0F0;border-color:#F3C9C9;color:#A22020}
.contact-map{height:clamp(300px,42vw,460px);position:relative;border-top:1px solid var(--line)}
.contact-map iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(1) contrast(.92);transition:filter .6s}
.contact-map:hover iframe{filter:none}

/* Responsive ------------------------------------------------------------- */
@media(max-width:1180px){
  .contact-cards,.partner-grid{grid-template-columns:repeat(2,1fr)}
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:1024px){
  .detail-grid,.contact-grid{grid-template-columns:1fr}
  .detail-side,.contact-side{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
  .side-card{margin-bottom:0}
  .stats-grid{grid-template-columns:repeat(2,1fr);gap:26px}
  .stats-band .stat:nth-child(3)::before{display:none}
  .mini-grid{grid-template-columns:repeat(2,1fr)}
  .pj-grid--even .pj{grid-column:span 1}
}
@media(max-width:700px){
  .contact-cards,.partner-grid,.gallery-grid,.mini-grid{grid-template-columns:1fr}
  .detail-side,.contact-side{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:1fr}
  .stats-band .stat{padding:0}
  .stats-band .stat+.stat::before{left:0;right:0;top:0;width:100%;height:1px}
  .f-row{grid-template-columns:1fr;gap:0}
  .job{flex-direction:column;align-items:flex-start}
  .job .btn{width:100%;justify-content:center}
}
