:root{
  --bg:#FFFFFF; --bg-alt:#F4F8FD; --bg-soft:#FBFCFE; --panel:#FFFFFF;
  --navy:#173458; --navy-2:#0F2543; --navy-3:#22456E;
  --ink:#173458; --slate:#3F4E64; --slate-dk:#34435A; --muted:#63718A; --faint:#96A2B4;
  --blue:#1077D5; --blue-deep:#0F62B8; --blue-soft:#EAF1F9;
  --green:#48E418; --green-deep:#48E418; --green-accent:#48E418; --green-bright:#48E418; --green-soft:#EDF8E4;
  --amber:#F2A100; --amber-deep:var(--amber);
  --line:#E4EAF2; --line-2:#D5DEEC;
  --sans:"Inter",system-ui,-apple-system,sans-serif;
  --display:"Sora","Inter",system-ui,sans-serif;
  --r-lg:24px; --r-md:16px; --r-sm:11px;
  --sh-sm:0 1px 2px rgba(21,39,65,.05),0 8px 22px -12px rgba(21,39,65,.16);
  --sh-md:0 2px 6px rgba(21,39,65,.06),0 22px 50px -22px rgba(21,39,65,.24);
  --glow-blue:0 10px 34px -10px rgba(16,119,213,.5);
  --glow-green:0 10px 34px -10px rgba(72,228,24,.44);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
a:hover{color:var(--blue)}
button{font-family:inherit}
img{display:block;max-width:100%}
::selection{background:var(--blue);color:#fff}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:3px}
.sd-case{background:#F4F8FD;padding:76px 0 96px}
.sdcase-card{display:grid;grid-template-columns:60% 40%;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 16px 44px -28px rgba(21,39,65,.28)}
.sdcase-img{position:relative;min-height:520px;overflow:hidden}
.sdcase-img img{width:100%;height:100%;object-fit:cover}
.sdcase-lab{position:absolute;left:22px;top:22px;display:inline-flex;align-items:center;gap:9px;font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(10,27,52,.62);backdrop-filter:blur(8px);border-radius:999px;padding:8px 15px}
.sdcase-b{padding:48px 44px;display:flex;flex-direction:column;justify-content:center}
.sdcase-t{font-family:var(--display);font-weight:800;font-size:42px;line-height:1.04;letter-spacing:-0.028em;color:var(--navy);margin:14px 0 16px}
.sdcase-b .body{margin:0 0 26px;font-size:16px;line-height:1.62}
.sdcase-facts{margin:0;padding:0;border-top:1px solid var(--line)}
.sdcf{display:grid;grid-template-columns:96px 1fr;gap:16px;padding:13px 0;border-bottom:1px solid var(--line);align-items:baseline}
.sdcf dt{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0}
.sdcf dd{margin:0;font-family:var(--display);font-weight:700;font-size:15.5px;line-height:1.4;color:var(--navy)}
.sdcase-cta{margin-top:28px;align-self:flex-start}
.section.band.sd-why{background:linear-gradient(180deg,#F4F8FD,#EDF3FA);border-top:1px solid var(--line);border-bottom:0;padding:100px 0}
.sd-why-head{max-width:720px;margin:0 0 48px}
.sd-why-head .h2{margin:0 0 14px}
.sd-why-sub{font-size:16.5px;line-height:1.62;color:var(--slate-dk);margin:0;max-width:640px}
.sd-why-cards{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.sd-wcard{position:relative;background:#fff;border:1px solid var(--line);border-radius:14px;padding:36px 34px 34px;box-shadow:0 2px 10px rgba(21,39,65,.04);transition:transform .25s,box-shadow .25s,border-color .25s}
.sd-wcard:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--wc) 34%,transparent);box-shadow:0 20px 44px -26px rgba(21,39,65,.28)}
.sdw-edge{display:block;width:46px;height:4px;border-radius:4px;background:var(--wc);margin-bottom:22px}
.sd-wcard h3{font-family:var(--display);font-weight:800;font-size:22px;line-height:1.22;color:var(--navy);letter-spacing:-0.02em;margin:0 0 12px}
.sd-wcard p{font-size:16px;line-height:1.62;color:var(--slate-dk);margin:0;max-width:400px}
.sd-why-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px 56px}
.sd-wc{padding-top:22px}
.sdw-rule{display:block;width:44px;height:3px;border-radius:3px;background:var(--wc);margin-bottom:18px}
.sd-wc h3{font-family:var(--display);font-weight:800;font-size:21px;line-height:1.24;color:var(--navy);letter-spacing:-0.018em;margin:0 0 10px}
.sd-wc p{font-size:15.5px;line-height:1.65;color:var(--slate-dk);margin:0;max-width:440px}
.sd-cta-sec{padding:0 0 104px;background:#fff}
.sd-cta{display:grid;grid-template-columns:42% 58%;border-radius:16px;overflow:hidden;min-height:520px;box-shadow:0 24px 58px -34px rgba(21,39,65,.42)}
.sd-cta-l{background:linear-gradient(160deg,#13294A,#0A1A31);padding:56px 48px;display:flex;flex-direction:column;justify-content:center}
.sd-cta-l h2{font-family:var(--display);font-weight:800;font-size:42px;line-height:1.06;letter-spacing:-0.028em;color:#fff;margin:0 0 16px}
.sd-cta-l p{font-size:17px;line-height:1.66;color:rgba(206,219,238,.94);margin:0 0 40px;max-width:420px}
.sd-cta-act{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.sd-cta-tel{font-family:var(--sans);font-weight:600;font-size:14.5px;color:rgba(214,226,242,.82);border-bottom:1px solid rgba(255,255,255,.24);padding-bottom:3px}
.sd-cta-tel:hover{color:var(--green-bright);border-bottom-color:var(--green-bright)}
.sd-cta-r{position:relative;overflow:hidden;min-height:520px}
.sd-cta-r img{width:100%;height:100%;object-fit:cover}
.sd-timeline{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:26px;padding-top:40px;margin-top:16px}
.sdt-line{position:absolute;top:23px;left:6%;right:6%;height:2px;background:linear-gradient(90deg,#3B9BF0,var(--green-bright),var(--amber),#3B9BF0);opacity:.42}
.sdt-step{position:relative;padding-top:44px}
.sdt-dot{position:absolute;top:16px;left:0;width:15px;height:15px;border-radius:50%;background:var(--dc);box-shadow:0 0 0 5px rgba(10,27,52,.9),0 0 16px -2px var(--dc)}
.sdt-n{display:block;font-family:var(--display);font-weight:800;font-size:12px;letter-spacing:.16em;color:var(--dc);margin-bottom:9px}
.sdt-step h3{font-family:var(--display);font-weight:800;font-size:20px;line-height:1.24;color:#fff;letter-spacing:-0.015em;margin:0 0 9px}
.sdt-step p{font-size:15px;line-height:1.62;color:rgba(206,219,238,.95);margin:0}
.sd-pair{grid-template-columns:repeat(3,1fr)}
@media(max-width:1080px){.sdcase-card{grid-template-columns:1fr}.sdcase-img{min-height:300px}.sdcase-b{padding:34px 28px}.sdcase-t{font-size:32px}.sd-timeline{grid-template-columns:1fr;gap:30px}.sdt-line{display:none}.sd-pair{grid-template-columns:1fr}}
.wid-solutions{margin-top:20px;font-family:var(--display);font-weight:800;font-size:21px;line-height:1.36;color:#fff;letter-spacing:-0.015em}
.wid-solutions .hl{color:var(--green-bright)}
.cp-lead b{display:block;font-family:var(--display);font-weight:800;font-size:17px;color:#fff;margin-bottom:8px;letter-spacing:-0.01em}
.contact-intro-sec{padding:128px 0 44px;background:var(--bg)}
.next-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ns-card{position:relative;background:#fff;border:1px solid var(--line);border-top:3px solid var(--cc);border-radius:var(--r-md);padding:28px 24px;box-shadow:var(--sh-sm)}
.ns-n{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:color-mix(in srgb,var(--cc) 12%,#fff);color:var(--cc);font-family:var(--display);font-weight:800;font-size:17px;margin-bottom:16px}
.ns-card h3{font-family:var(--display);font-weight:800;font-size:17.5px;color:var(--navy);letter-spacing:-0.015em;margin:0 0 8px}
.ns-card p{font-size:14.5px;line-height:1.55;color:var(--slate-dk);margin:0}
.ns-close{margin-top:34px;display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap;font-family:var(--display);font-weight:800;font-size:22px;color:var(--navy);letter-spacing:-0.018em}
@media(max-width:1080px){.next-steps{grid-template-columns:1fr}}
.ctr-why-in{display:grid;grid-template-columns:0.82fr 1.18fr;gap:64px;align-items:start}
.ctr-why-l{position:sticky;top:118px}
.ctr-why-l .h2{margin-top:16px;max-width:400px}
.ctr-why-r .body+.body{margin-top:15px}
.ctr-model{margin-top:22px;padding-top:20px;border-top:1px solid var(--line-2);font-family:var(--display);font-weight:800;font-size:20px;line-height:1.36;color:var(--navy);letter-spacing:-0.015em}
.ctr-model .hl{color:var(--green-deep)}
.ctr-origin-close{margin-top:22px;padding-top:20px;border-top:1px solid var(--line-2);font-family:var(--display);font-weight:800;font-size:20px;line-height:1.36;color:var(--navy);letter-spacing:-0.015em}
.ctr-origin-close .hl{color:var(--green-deep)}
@media(max-width:1080px){.ctr-why-in{grid-template-columns:1fr;gap:24px}.ctr-why-l{position:static;top:auto}}
.about-vision{position:relative;background:linear-gradient(180deg,#F7FAFD,#F4F8FD);border-top:1px solid var(--line);padding:104px 0}
.about-vision::before{content:"";position:absolute;top:-1px;left:0;width:180px;height:2px;background:linear-gradient(90deg,var(--green-bright),transparent);opacity:.7}
.about-vision-in{display:grid;grid-template-columns:0.85fr 1.15fr;gap:56px;align-items:start}
.about-vision-in .h2{margin-top:16px;max-width:420px}
.about-vision-in .av-r .body+.body{margin-top:16px}
.section.band.about-standard{background:#fff;border-top:1px solid var(--line);border-bottom:0;padding:104px 0}
.section.band.about-standard .wrap{max-width:1240px}
.about-std-in{display:grid;grid-template-columns:0.9fr 1.1fr;gap:64px;align-items:start}
.about-standard .as-close{margin-top:26px;padding-top:22px;border-top:1px solid var(--line-2);font-family:var(--display);font-weight:800;font-size:22px;line-height:1.34;color:var(--navy);letter-spacing:-0.015em}
.about-standard .as-close .hl{color:var(--green-deep)}
@media(max-width:1080px){.about-vision-in{grid-template-columns:1fr;gap:26px}}
.skip-link{position:absolute;left:16px;top:-60px;z-index:200;background:var(--navy);color:#fff;padding:12px 20px;border-radius:0 0 10px 10px;font-weight:700;font-size:14px;transition:top .2s}
.skip-link:focus{top:0;color:#fff}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}

.wrap{max-width:1240px;margin:0 auto;padding:0 44px}
.section{padding:104px 0}
.section-tight{padding:84px 0}
#top,#services,#why,#work,#contact,[id]{scroll-margin-top:84px}

.eyebrow{margin-bottom:18px;font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--green-deep);display:inline-flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:18px;height:2px;background:var(--green);border-radius:2px}
h1,h2,h3,h4{margin:0;font-family:var(--display);color:var(--ink)}
.h-hero{font-weight:800;font-size:62px;line-height:0.99;letter-spacing:-0.03em}
.hero-eyebrow{font-family:var(--sans);font-size:14px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);margin-bottom:20px}
.h2{font-weight:800;font-size:44px;line-height:1.05;letter-spacing:-0.022em}
.h2-sm{font-weight:800;font-size:31px;line-height:1.12;letter-spacing:-0.018em}
.tagline{font-family:var(--display);font-weight:800;font-size:26px;line-height:1.1;letter-spacing:-0.02em;color:var(--ink)}
.lead{font-family:var(--display);font-weight:700;font-size:19px;line-height:1.4;letter-spacing:-0.01em;color:var(--ink)}
.body{font-size:16.5px;line-height:1.66;color:var(--slate-dk);text-wrap:pretty}
.body-lg{font-size:18px;line-height:1.62;color:var(--slate-dk);text-wrap:pretty}
.c-blue{color:var(--blue)} .c-green{color:var(--green-accent)}

.btn{position:relative;display:inline-flex;align-items:center;gap:9px;padding:15px 24px;border-radius:12px;font-family:var(--sans);font-weight:700;font-size:13px;letter-spacing:.02em;border:1.5px solid transparent;cursor:pointer;transition:transform .2s,background .2s,color .2s,border-color .2s,box-shadow .2s;white-space:nowrap}
.btn .arrow{transition:transform .2s}
.btn:hover .arrow{transform:translateX(3px)}
.btn-blue{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:0 2px 8px -3px rgba(16,119,213,.45)}
.btn-blue:hover{background:var(--blue-deep);color:#fff;transform:translateY(-1px);box-shadow:0 0 26px -6px rgba(16,119,213,.72)}
.btn-green{background:var(--green);color:var(--navy);border-color:var(--green);box-shadow:var(--glow-green)}
.btn-green:hover{background:var(--green-deep);color:#fff;transform:translateY(-1px);box-shadow:0 14px 40px -10px rgba(72,228,24,.7)}
.btn-outline{background:#fff;color:var(--blue);border-color:var(--line-2)}
.btn-outline .arrow{color:var(--blue)}
.btn-outline:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-1px);box-shadow:var(--sh-sm)}
.btn-light{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.32);backdrop-filter:blur(6px)}
.btn-light:hover{background:rgba(255,255,255,.2);color:#fff;border-color:rgba(255,255,255,.6)}
.btn-gradient{display:inline-flex;align-items:center;gap:10px;padding:15px 28px;border-radius:999px;font-family:var(--sans);font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:#fff;border:1.6px solid transparent;background:linear-gradient(#0C1E39,#0C1E39) padding-box,linear-gradient(90deg,var(--blue),var(--green-bright)) border-box;box-shadow:0 0 22px -6px rgba(16,119,213,.55);cursor:pointer;transition:box-shadow .2s,transform .2s}
.btn-gradient:hover{transform:translateY(-1px);box-shadow:0 0 30px -4px rgba(72,228,24,.6);color:#fff}
.btn-gradient .arrow{transition:transform .2s}
.btn-gradient:hover .arrow{transform:translateX(3px)}

.logo{display:inline-flex;align-items:center;flex-shrink:0;min-width:0}
.logo img{height:55px;width:auto;display:block}
.logo img.logo-mark-light{display:none}
body.ctr .nav:not(.scrolled) img.logo-mark-dark{display:none}
body.ctr .nav:not(.scrolled) img.logo-mark-light{display:block;width:auto;height:58px}
body.ctr .nav:not(.scrolled) .nav-link{color:rgba(255,255,255,.88)}
body.ctr .nav:not(.scrolled) .nav-link:hover{color:var(--green-bright)}
body.ctr .nav:not(.scrolled) .nav-phone{color:#fff}
body.ctr .nav:not(.scrolled) .nav-phone:hover{color:var(--green-bright)}
body.ctr .nav:not(.scrolled) .menu-btn{color:#fff}
footer .logo-foot img{height:84px}

.nav{position:fixed;top:0;left:0;right:0;z-index:60;transition:background .28s,box-shadow .28s,border-color .28s;border-bottom:1px solid transparent}
.nav.scrolled{background:rgba(255,255,255,.94);backdrop-filter:saturate(150%) blur(16px);-webkit-backdrop-filter:saturate(150%) blur(16px);border-bottom-color:rgba(16,119,213,.14);box-shadow:0 4px 24px -16px rgba(21,39,65,.4)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:13px 36px}
.nav-inner .logo{margin-left:0}
.nav-links{display:flex;align-items:center;gap:27px;flex-shrink:1;min-width:0}
.nav-link{white-space:nowrap}
.nav-cta{flex-shrink:0}
.nav-link-join{position:relative;color:var(--green-deep)}
.nav-link-join::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:2px;background:var(--green);border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform .22s}
.nav-link-join:hover{color:var(--green-deep)}
.nav-link-join:hover::after{transform:scaleX(1)}
.nav:not(.scrolled) .nav-link-join{color:var(--green-bright)}
body.ctr .nav:not(.scrolled) .nav-link-join{color:var(--green-bright)}
.nav-link{position:relative;font-family:var(--sans);font-size:14px;font-weight:600;letter-spacing:.062em;text-transform:uppercase;color:var(--navy);cursor:pointer;padding:6px 0;display:inline-flex;align-items:center;line-height:1;gap:6px}
.nav-link:hover{color:var(--blue)}
.nav-link .chev{opacity:.55;transition:transform .2s;display:inline-flex;align-items:center}
.nav-link-wrap:hover .chev{transform:rotate(180deg)}
.nav-drop{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(-6px);width:620px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px 30px 22px;box-shadow:0 24px 60px -18px rgba(14,35,64,.4),0 4px 14px -6px rgba(14,35,64,.2);opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;z-index:70}
.nav-drop::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.nav-link-wrap{position:relative;display:flex;align-items:center}
.nav-link-wrap .nav-link{padding:6px 0}
.nav-link-wrap::after{content:"";position:absolute;left:-10px;right:-10px;top:100%;height:16px}
.nav-link-wrap:hover .nav-drop,.nav-link-wrap:focus-within .nav-drop{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.nav-mega{display:grid;grid-template-columns:1fr 1fr;gap:34px}
.nav-mega-col{display:flex;flex-direction:column}
.nav-mega-h{font-family:var(--sans);font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:0 0 14px}
.nd-item{display:flex;align-items:center;gap:16px;padding:11px 10px;border-radius:11px;cursor:pointer;position:relative}
.nd-item:hover{background:var(--bg-alt)}
.nd-item .ic{width:56px;height:44px;border-radius:8px;overflow:hidden;background:var(--bg-alt);display:block;flex-shrink:0;position:relative}
.nd-item .ic img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.nd-item:hover .ic img{transform:scale(1.08)}
.nd-item:hover .ic{box-shadow:0 0 0 1.5px rgba(16,119,213,.45)}
.nd-item .t{font-family:var(--sans);font-size:15px;font-weight:600;color:var(--navy);letter-spacing:0;text-transform:none;line-height:1.32;flex:1}
.nd-arr{color:var(--blue);opacity:0;transform:translateX(-4px);transition:opacity .18s,transform .18s;flex-shrink:0}
.nd-item:hover .nd-arr{opacity:1;transform:translateX(0)}
.nav-mega-foot{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:22px;padding:17px;border-top:0;background:var(--bg-alt);border-radius:12px;font-size:15px;font-weight:700;color:var(--blue-deep);font-family:var(--sans);font-weight:700;font-size:13px;color:var(--blue)}
.nav-mega-foot:hover{color:var(--blue-deep);gap:12px}
.nav-cta{display:flex;align-items:center;gap:16px}
.nav-phone{font-family:var(--sans);font-size:13px;font-weight:700;color:var(--navy);display:inline-flex;align-items:center;gap:7px;white-space:nowrap;flex-shrink:0}
body.home .nav:not(.scrolled) .nav-phone{color:#fff;text-shadow:0 1px 8px rgba(10,27,52,.5)}
.nav-phone:hover{color:var(--blue)}
body.home .nav:not(.scrolled) .nav-phone:hover{color:var(--green-bright)}
.menu-btn{display:none;background:transparent;border:0;color:var(--navy)}

.hero{position:relative;min-height:760px;overflow:hidden;background:var(--bg);padding-bottom:72px}
/* Video panel — anchor, width and hero height live in ONE place (see the pruned block
   at the end of this file). The base rule is desktop-neutral. */
.hero-media{position:absolute;top:0;right:0;bottom:0;left:26%;overflow:hidden}
.hero-media img,.hero-media video{display:block;width:100%;height:100%;object-fit:cover;object-position:56% 78%;transform:scale(1.12);transform-origin:60% 80%;filter:saturate(1.02) brightness(1)}
.hero-media video{object-position:52% 46%;transform:none;filter:saturate(1.04) contrast(1.05)}
@media (prefers-reduced-motion:reduce){.hero-media video{display:none}.hero-media{background:url(assets/hero.jpg) 56% 78%/cover no-repeat}}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(94deg,var(--bg) 0%,var(--bg) 26%,rgba(255,255,255,.62) 32%,rgba(255,255,255,0) 39%);pointer-events:none}
.hero-halo{position:absolute;z-index:1;left:44%;bottom:6%;width:420px;height:260px;background:radial-gradient(ellipse,rgba(47,107,235,.1),rgba(72,228,24,.06) 40%,transparent 70%);pointer-events:none}
.hero-glow{position:absolute;top:-120px;left:-60px;width:620px;height:620px;background:radial-gradient(circle,rgba(16,119,213,.12),transparent 62%);pointer-events:none;z-index:1}
.hero-glow.g2{left:auto;right:20%;top:auto;bottom:-160px;width:520px;height:520px;background:radial-gradient(circle,rgba(72,228,24,.12),transparent 62%)}
.hero-inner{position:relative;z-index:2;padding-top:136px;padding-bottom:104px;pointer-events:none}
.hero-copy{max-width:640px;pointer-events:auto}
.hero-eyebrow{color:var(--navy)}
.hero-copy .body-lg{max-width:510px;margin:26px 0 0;font-size:17.5px;line-height:1.55}
.hero-actions{display:flex;gap:14px;margin-top:36px}
.hero-copy .c-green{color:var(--green-accent)}
.hero-copy .c-blue{color:var(--blue)}
.hero-actions .btn-blue{box-shadow:0 0 26px -4px rgba(16,119,213,.65)}
.hero-actions .btn-blue:hover{box-shadow:0 0 34px -2px rgba(16,119,213,.82)}
.hero-actions .btn-outline{box-shadow:none;border-color:rgba(16,119,213,.4);border-width:1.5px;color:var(--blue);background:#fff}
.hero-actions .btn-outline:hover{border-color:var(--blue);background:var(--blue-soft);color:var(--blue-deep)}
.hero-actions .btn-outline:hover{border-color:var(--blue);color:var(--blue)}
.hero-actions .btn-outline:hover{box-shadow:0 0 20px -8px rgba(16,119,213,.5)}
.stat{display:flex;align-items:center;gap:14px;padding:6px 16px;border-left:1px solid var(--line-2)}
.stat:first-child{border-left:0;padding-left:0}
.stat:last-child{padding-right:0}
.stat-ic{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;color:var(--blue);border:1.5px solid rgba(47,107,235,.4);background:var(--blue-soft);box-shadow:0 0 16px -3px rgba(47,107,235,.5),inset 0 0 12px -7px rgba(47,107,235,.5)}
.stat-ic.ring-green{color:#48E418;border-color:rgba(72,228,24,.5);background:#EDF8E4;box-shadow:0 0 16px -3px rgba(72,228,24,.45),inset 0 0 12px -7px rgba(72,228,24,.5)}
.stat-ic.ring-amber{color:#C9860E;border-color:rgba(242,161,0,.6);background:#FFF6E0;box-shadow:0 0 16px -3px rgba(242,161,0,.5),inset 0 0 12px -7px rgba(242,161,0,.5)}
.stat .txt{display:flex;flex-direction:column}
.stat .v{font-family:var(--display);font-weight:800;font-size:18px;letter-spacing:-0.012em;color:var(--navy);line-height:1.18}
.stat .l{font-size:13.5px;color:var(--slate-dk);margin-top:4px;line-height:1.3}

.svc-section{position:relative;overflow:hidden;background:linear-gradient(180deg,#0E2340 0%,#0A1A31 100%);padding:96px 0 84px}
.svc-section::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(560px 420px at 82% 30%,rgba(47,107,235,.12),transparent 62%),radial-gradient(520px 420px at 10% 78%,rgba(72,228,24,.1),transparent 62%)}
.svc-section .wrap{position:relative;z-index:2}
.svc-grid-bg{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.6;background-image:linear-gradient(rgba(120,160,220,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(120,160,220,.055) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(130% 80% at 50% 0%,#000,transparent 76%);mask-image:radial-gradient(130% 80% at 50% 0%,#000,transparent 76%)}
.svc-top{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center;margin:0 0 36px;position:relative;z-index:2}
.svc-top-l{max-width:820px}
.eyebrow-c{display:inline-flex;align-items:center;gap:12px;font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--green-bright)}
.eyebrow-c::before,.eyebrow-c::after{content:"";width:34px;height:2px;background:var(--green-bright);border-radius:2px}
.svc-h{font-family:var(--display);font-weight:800;font-size:40px;line-height:1.08;letter-spacing:-0.022em;color:#fff;margin:16px 0 16px}
.svc-h .gg{color:var(--green-bright)}
.svc-h .gb{color:#3B9BF0}
.svc-top .body{margin:0;max-width:820px;color:#C6D2E4;font-size:16.5px}
.svc-top-cta{margin:0;align-self:center;white-space:nowrap}
.svc-panel{position:relative;z-index:2;background:rgba(255,255,255,.015);border:1px solid rgba(255,255,255,.12);border-radius:24px;padding:6px;box-shadow:0 40px 80px -40px #000,inset 0 1px 0 rgba(255,255,255,.05)}
.svc-panel-grid{display:grid;grid-template-columns:repeat(5,1fr)}
.svc-cell{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:34px 18px 26px;border-radius:14px;cursor:pointer;transition:background .2s;border-left:1px solid rgba(255,255,255,.08)}
.svc-cell:nth-child(5n+1){border-left:0}
.svc-cell:nth-child(n+6){border-top:1px solid rgba(255,255,255,.08)}
.svc-cell:hover{background:rgba(255,255,255,.05)}
.svc-cell .si{color:var(--cc);filter:drop-shadow(0 0 3px var(--cc)) drop-shadow(0 0 8px var(--cc)) drop-shadow(0 0 17px var(--cc));line-height:0}
.svc-cell .si svg{stroke-width:1.85}
.svc-cell .sn{font-family:var(--display);font-weight:700;font-size:15px;line-height:1.28;color:#fff;letter-spacing:-0.01em;min-height:38px;display:flex;align-items:center}
.svc-cell .sa{color:var(--cc);opacity:.92;transition:transform .2s;line-height:0}
.svc-cell:hover .sa{transform:translateX(3px)}

.band{position:relative;overflow:hidden;background:var(--bg-alt);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.band::before{content:"";position:absolute;top:-160px;left:-120px;width:520px;height:520px;background:radial-gradient(circle,rgba(16,119,213,.1),transparent 64%);pointer-events:none}
.band::after{content:"";position:absolute;bottom:-160px;right:-100px;width:480px;height:480px;background:radial-gradient(circle,rgba(72,228,24,.08),transparent 64%);pointer-events:none}
.whyx{position:relative;overflow:hidden;background:linear-gradient(180deg,#EAF1F9 0%,#F4F8FD 20%,#EDF3FA 100%);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:96px 0 88px}
.whyx-bg{position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(1000px 480px at 50% -4%,rgba(16,119,213,.16),transparent 70%),radial-gradient(620px 460px at 22% 46%,rgba(16,119,213,.12),transparent 66%),radial-gradient(560px 440px at 92% 92%,rgba(72,228,24,.13),transparent 66%)}
.whyx-bg::after{content:"";position:absolute;inset:0;opacity:.5;background-image:linear-gradient(rgba(16,119,213,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(16,119,213,.04) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(circle at 50% 40%,#000,transparent 74%);mask-image:radial-gradient(circle at 50% 40%,#000,transparent 74%)}
.whyx .wrap{position:relative;z-index:1}
.whyx-comp{position:relative;display:grid;grid-template-columns:58% 42%;align-items:center}
.whyx-photo{position:relative;border-radius:14px;overflow:hidden;height:700px;box-shadow:0 30px 66px -38px rgba(10,27,52,.5)}
.whyx-photo img{width:100%;height:100%;object-fit:cover}
.whyx-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,27,52,.52),transparent 42%);pointer-events:none}
.whyx-panel{position:relative;z-index:2;margin-left:-60px;background:linear-gradient(155deg,#13294A 0%,#0E2340 58%,#0A1A31 100%);border:1px solid rgba(90,147,255,.28);border-radius:26px;padding:44px 40px;box-shadow:0 44px 90px -36px rgba(8,19,38,.72)}
.whyx-panel::before{content:"";position:absolute;inset:0;border-radius:26px;pointer-events:none;background:radial-gradient(320px 220px at 100% 0%,rgba(77,155,255,.2),transparent 68%),radial-gradient(280px 200px at 0% 100%,rgba(72,228,24,.11),transparent 68%)}
.whyx-panel>*{position:relative;z-index:1}
.whyx-panel .eyebrow-c{color:var(--green-bright)}
.whyx-panel .eyebrow-c::before,.whyx-panel .eyebrow-c::after{background:var(--green-bright)}
.whyx-h{font-family:var(--display);font-weight:800;font-size:37px;line-height:1.1;letter-spacing:-0.026em;color:#fff;margin:16px 0 0;text-wrap:balance}
.whyx-h .gb{color:#5AA0FF}
.whyx-p{font-size:15.5px;line-height:1.62;color:#B9C7DC;margin:18px 0 24px;max-width:470px}
.whyx-rows{list-style:none;margin:0 0 26px;padding:0;display:flex;flex-direction:column}
.whyx-rows li{display:flex;align-items:flex-start;gap:15px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.1);transition:transform .18s}
.whyx-rows li:first-child{padding-top:0}
.whyx-rows li:hover{transform:translateX(3px)}
.whyx-rows .wr-ic{flex-shrink:0;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;color:var(--cc);background:rgba(255,255,255,.05);border:1px solid color-mix(in srgb,var(--cc) 42%,transparent);box-shadow:0 0 16px -5px var(--cc),inset 0 0 14px -9px var(--cc)}
.whyx-rows .wr-b{display:flex;flex-direction:column;gap:4px;padding-top:1px}
.whyx-rows .wr-t{font-family:var(--display);font-weight:700;font-size:16px;color:#fff;letter-spacing:-0.01em}
.whyx-rows .wr-d{font-size:13.5px;line-height:1.5;color:#96A2B4}
.whyx-cta{box-shadow:0 0 24px -6px rgba(16,119,213,.7)}
.whyx-strip{margin-top:36px;display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border:1px solid var(--line-2);border-radius:18px;box-shadow:0 2px 6px rgba(21,39,65,.05),0 18px 44px -26px rgba(21,39,65,.3);overflow:hidden}
.wxs{display:flex;align-items:center;gap:15px;padding:24px 30px;border-left:1px solid var(--line)}
.wxs:first-child{border-left:0}
.wxs-ic{flex-shrink:0;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;color:var(--blue);background:var(--blue-soft);box-shadow:0 0 18px -6px rgba(16,119,213,.55)}
.wxs:nth-child(2) .wxs-ic{color:var(--green-deep);background:var(--green-soft);box-shadow:0 0 18px -6px rgba(72,228,24,.55)}
.wxs-b{display:flex;flex-direction:column}
.wxs-b b{font-family:var(--display);font-weight:800;font-size:19px;color:var(--navy);letter-spacing:-0.02em;line-height:1.15}
.wxs-b span{font-size:13px;color:var(--muted);margin-top:3px}
@media(max-width:1080px){.whyx-comp{grid-template-columns:1fr}.whyx-panel{margin-left:0;margin-top:-40px}.whyx-photo{height:420px}.whyx-strip{grid-template-columns:1fr}.wxs{border-left:0;border-top:1px solid var(--line)}.wxs:first-child{border-top:0}}
.why-blueprint{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.4;background-image:linear-gradient(rgba(16,119,213,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(16,119,213,.045) 1px,transparent 1px);background-size:46px 46px;-webkit-mask-image:radial-gradient(circle at 25% 40%,#000,transparent 72%);mask-image:radial-gradient(circle at 25% 40%,#000,transparent 72%)}
.whyband{display:grid;grid-template-columns:1fr 1.34fr;gap:64px;align-items:center;position:relative;z-index:1}
.why-lead .h2{margin:18px 0 0}
.why-lead .body{margin:22px 0 26px;max-width:520px}
.why-track{list-style:none;margin:0 0 30px;padding:0;display:flex;flex-direction:column;position:relative}
.why-track::before{content:"";position:absolute;left:17px;top:12px;bottom:12px;width:2px;background:linear-gradient(180deg,var(--blue),var(--green));box-shadow:0 0 10px rgba(47,107,235,.4)}
.why-track li{position:relative;display:flex;align-items:flex-start;gap:16px;padding:11px 0;transition:transform .18s}
.why-track li:hover{transform:translateX(3px)}
.why-track .wt-n{position:relative;z-index:1;flex-shrink:0;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1.5px solid var(--blue);color:var(--blue-deep);font-family:var(--display);font-weight:800;font-size:14px;box-shadow:0 0 0 4px var(--bg-alt),0 0 14px -3px rgba(47,107,235,.5)}
.why-track li:last-child .wt-n{border-color:var(--green);color:var(--green-deep);box-shadow:0 0 0 4px var(--bg-alt),0 0 14px -3px rgba(72,228,24,.55)}
.why-track .wt-b{display:flex;flex-direction:column;gap:3px;padding-top:2px}
.why-track .wt-t{font-family:var(--display);font-weight:700;font-size:16px;color:var(--navy);letter-spacing:-0.01em}
.why-track .wt-d{font-size:13.5px;color:var(--muted);line-height:1.45}
.why-photo{position:relative;border-radius:24px;overflow:hidden;aspect-ratio:4/3.15;box-shadow:0 34px 70px -30px rgba(10,27,52,.5)}
.why-photo::before{content:"";position:absolute;inset:0;z-index:2;border-radius:24px;pointer-events:none;box-shadow:inset 0 0 0 1.5px rgba(77,155,255,.55),inset 0 2px 30px -14px rgba(77,155,255,.6)}
.why-photo img{width:100%;height:100%;object-fit:cover}
.why-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,27,52,.5),transparent 40%);pointer-events:none}
.why-yrs{position:absolute;top:16px;right:16px;z-index:3;background:rgba(255,255,255,.94);border:1px solid var(--blue-soft);border-radius:999px;padding:8px 14px;font-family:var(--display);font-weight:800;font-size:13px;color:var(--navy);box-shadow:0 8px 22px -10px rgba(10,27,52,.5)}
.why-badge{position:absolute;left:16px;bottom:16px;z-index:3;display:inline-flex;align-items:center;gap:9px;background:rgba(10,27,52,.6);backdrop-filter:blur(10px);border:1px solid rgba(72,228,24,.5);border-radius:999px;padding:9px 15px;font-family:var(--sans);font-weight:600;font-size:12.5px;color:#fff;box-shadow:0 0 18px -6px rgba(72,228,24,.5)}
.why-badge .wb-ic{color:var(--green-bright);display:grid;place-items:center}
.proof-bar{margin-top:52px;display:grid;grid-template-columns:repeat(5,1fr);background:#fff;border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-sm);position:relative;z-index:1;overflow:hidden}
.proof-item{display:flex;gap:13px;align-items:center;padding:22px 22px;border-left:1px solid var(--line)}
.proof-item:first-child{border-left:0}
.proof-item .pi-ic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;flex-shrink:0;color:#fff}
.proof-item .pi-v{display:block;font-family:var(--display);font-weight:800;font-size:14.5px;color:var(--navy);line-height:1.16;letter-spacing:-0.01em}
.proof-item .pi-l{display:block;font-size:12px;color:var(--muted);margin-top:3px}

.community{position:relative;overflow:hidden;min-height:640px;display:flex;align-items:center;background:var(--navy);padding:112px 0}
.community-media{position:absolute;inset:0;z-index:2}
.community-media img{width:100%;height:100%;object-fit:cover;object-position:62% 45%;filter:saturate(1.08) contrast(1.05)}
.community-media::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 82% 74% at 50% 50%,rgba(6,17,34,.74),rgba(6,17,34,.6) 52%,rgba(6,17,34,.5) 100%)}
.community-inner{position:relative;z-index:3;width:100%;padding:0;display:flex;justify-content:center;text-align:center}
.comm-rule{display:none}
.community-copy{max-width:760px}
.community::before{content:none}
.community::after{content:none}
.community-inner .eyebrow{margin-bottom:18px;color:#48E418}
.community-inner .eyebrow::before{background:#48E418}
.community-inner .h2{color:#fff;margin:16px 0 16px;max-width:560px}
.community-inner .body-lg{color:rgba(255,255,255,.86);max-width:480px}
.community-close{margin:0 auto;padding-top:0;position:relative;font-family:var(--display);font-weight:800;font-size:52px;line-height:1.14;letter-spacing:-0.03em;color:#fff;max-width:760px;text-shadow:0 2px 22px rgba(6,14,28,.7);text-wrap:balance}
.community-close::before{content:none}
.community .wrap.community-inner{position:relative;z-index:2;width:100%;max-width:1240px;margin:0 auto;padding:0 44px;display:flex;justify-content:center}
.community .community-copy{max-width:720px;text-align:center}
.community .community-close{margin:0 auto;text-align:center}
.community-close .c{color:var(--green-bright)}
.impact-stat{background:rgba(255,255,255,.1);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.2);border-radius:var(--r-lg);padding:34px 32px;box-shadow:0 24px 50px -28px #000}
.impact-stat .is-v{font-family:var(--display);font-weight:800;font-size:34px;letter-spacing:-0.03em;color:var(--green-bright);line-height:1}
.impact-stat .is-l{font-size:14px;line-height:1.5;color:rgba(255,255,255,.85);margin-top:9px}
.impact-stat .is-div{height:1px;background:rgba(255,255,255,.16);margin:24px 0}

.proj-head{display:flex;justify-content:space-between;align-items:center;gap:40px;margin-bottom:44px}
.proj-head .h2{font-size:50px;line-height:1.02}
.proj-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:206px;gap:16px}
.proj{position:relative;border-radius:var(--r-md);overflow:hidden;cursor:pointer;box-shadow:var(--sh-sm)}
.proj img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.proj:not(.proj-big) img{filter:brightness(.9) saturate(.94)}
.proj:not(.proj-big):hover img{filter:brightness(1) saturate(1)}
.proj:hover img{transform:scale(1.06)}
.proj::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 28%,rgba(10,27,52,.94));pointer-events:none;transition:opacity .3s}
.proj:hover::after{opacity:0}
.proj::before{content:"";position:absolute;inset:0;z-index:3;border-radius:var(--r-md);box-shadow:inset 0 0 0 0 transparent;transition:box-shadow .25s;pointer-events:none}
.proj:hover::before{box-shadow:inset 0 0 0 2px rgba(16,119,213,.7)}
.proj-hover{position:absolute;inset:0;z-index:2;background:linear-gradient(160deg,rgba(11,29,57,.9),rgba(8,19,38,.95));display:flex;flex-direction:column;justify-content:flex-end;padding:22px;opacity:0;transition:opacity .3s;pointer-events:none}
.proj:hover .proj-hover{opacity:1}
.proj-hover .ph-loc{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#48E418;margin-bottom:8px}
.proj-hover .ph-t{font-family:var(--display);font-weight:800;font-size:20px;color:#fff;letter-spacing:-0.02em;line-height:1.15}
.proj-big .proj-hover .ph-t{font-size:30px}
.proj-hover .ph-scope{font-family:var(--sans);font-size:12.5px;font-weight:700;color:#AEC0DA;margin-top:12px}
.proj-hover .ph-svcs{font-size:12.5px;line-height:1.5;color:#AEC0DA;margin-top:6px}
.proj-hover .ph-go{margin-top:16px;font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.04em;color:#fff;display:inline-flex;align-items:center;gap:7px}
.proj-big{grid-column:span 2;grid-row:span 2}
.proj-wide{grid-column:span 2;grid-row:span 1}
.proj-sm{grid-column:span 1;grid-row:span 1}
.proj-meta{position:absolute;left:20px;right:20px;bottom:18px;z-index:3;transition:opacity .25s}
.proj:hover .proj-meta{opacity:0}
.proj-meta .pt{font-family:var(--display);font-weight:800;font-size:19px;letter-spacing:-0.018em;color:#fff;line-height:1.18}
.proj-big .proj-meta .pt{font-size:32px;letter-spacing:-0.028em}
.proj-meta .ps{font-family:var(--sans);font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.9);margin-top:7px}
.proj-tag{position:absolute;top:14px;left:14px;z-index:3;padding:5px 9px;border-radius:999px;background:rgba(228,236,246,.82);backdrop-filter:blur(6px);font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.085em;text-transform:uppercase;color:var(--blue)}

.testi-section{position:relative;overflow:hidden;background:linear-gradient(180deg,#0A1A31 0%,#0C1E39 100%);padding:92px 0}
.testi-streaks{position:absolute;inset:0;z-index:1;pointer-events:none}
.testi-streaks svg{width:100%;height:100%;filter:drop-shadow(0 0 5px rgba(90,147,255,.3))}
.testi-head{max-width:920px;margin:0 auto 48px;text-align:center;position:relative;z-index:2}
.testi-head .eyebrow-c{justify-content:center}
.testi-head .th{font-family:var(--display);font-weight:800;font-size:42px;line-height:1.1;letter-spacing:-0.022em;color:#fff;margin:18px 0 16px}
.testi-head .th .gg{color:var(--green-bright)}
.testi-head .sub{color:#AEC0DA;font-size:17px;line-height:1.5;max-width:760px;margin:0 auto}
.tcards{display:grid;grid-template-columns:1.62fr 1fr;gap:24px;position:relative;z-index:2;align-items:stretch}
.tcard{position:relative;background:linear-gradient(160deg,rgba(18,34,60,.5),rgba(9,20,40,.42));backdrop-filter:blur(4px);border:1px solid rgba(90,147,255,.12);border-top:2px solid rgba(72,228,24,.4);border-radius:14px;padding:44px 44px;display:flex;flex-direction:column;box-shadow:0 24px 50px -30px #000;transition:box-shadow .25s,transform .25s}
.tcard:hover{transform:translateY(-3px);border-color:rgba(90,147,255,.3);border-top-color:rgba(72,228,24,.85);box-shadow:0 0 26px -14px rgba(16,119,213,.6)}
.tcard .qm{font-family:Georgia,"Times New Roman",serif;font-weight:700;font-size:78px;line-height:.8;height:40px;color:var(--green-bright);opacity:.34}
.tcard .qt{font-size:19px;line-height:1.62;color:#EDF3FA;margin:20px 0 0}
.tcard-feat .qt{font-size:22px;line-height:1.55}
.tcard-feat{border-color:rgba(90,147,255,.24);border-top-color:rgba(72,228,24,.4);background:linear-gradient(160deg,rgba(22,42,72,.68),rgba(10,22,44,.54));box-shadow:0 26px 58px -32px #000,inset 0 1px 0 rgba(255,255,255,.06)}
.tcard-feat::before{content:none}
.tcard-feat>*{position:relative;z-index:1}
.tcard-feat .qm{opacity:.6}
.tcard-feat:hover{border-top-color:var(--green-bright);box-shadow:0 30px 64px -30px #000,inset 0 1px 0 rgba(255,255,255,.08),inset 0 22px 44px -24px rgba(72,228,24,.42)}
.tcard .qa{margin-top:auto;padding-top:24px;border-top:1px solid rgba(255,255,255,.14)}

.tcard .qa b{display:block;font-family:var(--display);font-weight:800;font-size:19px;color:#fff;letter-spacing:-0.01em}
.tcard .qa .role{display:block;font-size:13.5px;color:#AEC0DA;margin-top:5px}
.tcard .qa .org{display:block;font-size:13.5px;color:#96A2B4;margin-top:2px}
.testi-cta{text-align:center;margin-top:42px;position:relative;z-index:2}
.testi-cta .btn{background:none;border:0;box-shadow:none;color:var(--green-bright);font-size:15px;padding:0;gap:9px}
.testi-cta .btn:hover{background:none;transform:none;color:#fff;gap:13px}
@media(max-width:1080px){.tcards{grid-template-columns:1fr}}

.serve-tight{position:relative;overflow:hidden;padding:98px 0 84px;background:linear-gradient(180deg,#EAF1F9,#DCE6F4)}
.serve-map{position:absolute;top:40px;right:-60px;width:620px;height:420px;z-index:0;pointer-events:none;opacity:.5;background-image:radial-gradient(circle,rgba(16,119,213,.3) 1.4px,transparent 1.4px);background-size:13px 13px;-webkit-mask-image:radial-gradient(closest-side,#000 55%,transparent 78%);mask-image:radial-gradient(closest-side,#000 55%,transparent 78%)}
.serve-strip{position:relative;display:grid;grid-template-columns:repeat(5,1fr);background:none;border:0;border-radius:0;overflow:visible;box-shadow:none;padding-top:32px;margin-top:8px}
.serve-strip::before{content:"";position:absolute;top:8px;left:2%;right:2%;height:2px;background:linear-gradient(90deg,#1077D5,var(--green),#C9860E,#1077D5,var(--green));opacity:.3}
.sv-item{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:0;padding:24px 30px 4px 0;border-left:0}
.sv-item::before{content:"";position:absolute;top:-31px;left:0;width:13px;height:13px;border-radius:50%;background:var(--cc);box-shadow:0 0 0 4px #F7FAFD,0 0 14px -1px var(--cc);transition:box-shadow .22s}
.sv-item:hover::before{box-shadow:0 0 0 4px #F7FAFD,0 0 22px 1px var(--cc)}
.sv-item:last-child{padding-right:0}
.sv-item:hover .svi-t{color:var(--cc)}
.svi-n{font-family:var(--display);font-weight:800;font-size:34px;line-height:1;color:var(--cc);letter-spacing:-0.03em;flex-shrink:0;margin-bottom:12px}
.svi-t{font-family:var(--display);font-weight:800;font-size:19px;color:var(--navy);letter-spacing:-0.018em;line-height:1.24;transition:color .22s}
.svi-d{font-size:14px;line-height:1.55;color:var(--slate-dk);margin-top:9px;max-width:190px}
@media(max-width:1080px){.serve-strip{grid-template-columns:1fr 1fr;gap:26px 20px}.serve-strip::before{display:none}.sv-item::before{top:-22px}}
.serve-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;align-items:stretch}
.sv-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-top:3px solid var(--cc);border-radius:14px;overflow:hidden;box-shadow:0 2px 6px rgba(21,39,65,.05),0 18px 40px -28px rgba(21,39,65,.35);transition:transform .22s,box-shadow .22s}
.sv-card:hover{transform:translateY(-4px);box-shadow:0 26px 54px -26px rgba(21,39,65,.4),0 0 22px -14px var(--cc)}
.sv-card.on{box-shadow:0 26px 60px -26px rgba(21,39,65,.4),0 0 0 1px color-mix(in srgb,var(--cc) 40%,transparent),0 0 30px -12px var(--cc)}
.sv-b{padding:24px 22px 18px;display:flex;flex-direction:column;flex:1}
.sv-n{font-family:var(--display);font-weight:800;font-size:32px;line-height:1;color:var(--cc);letter-spacing:-0.03em}
.sv-rule{display:block;width:30px;height:2.5px;border-radius:2px;background:var(--cc);opacity:.55;margin:12px 0 16px}
.sv-card h3{font-family:var(--display);font-weight:800;font-size:17px;color:var(--navy);letter-spacing:-0.015em;line-height:1.24;margin:0 0 10px}
.sv-card p{font-size:13.5px;line-height:1.6;color:var(--slate-dk);margin:0}
.sv-img{height:132px;overflow:hidden;position:relative}
.sv-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.sv-card:hover .sv-img img{transform:scale(1.06)}
.sv-img::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,transparent 62%,#fff);pointer-events:none}
.serve-band{margin-top:22px;display:flex;align-items:center;gap:12px;background:linear-gradient(100deg,#13294A,#0A1A31);border-radius:14px;padding:26px 32px;font-family:var(--sans);font-size:17px;color:rgba(255,255,255,.9);box-shadow:0 24px 50px -30px rgba(8,19,38,.7)}
.serve-band .sb-slash{color:var(--green-bright);font-weight:800;font-size:20px}
.serve-band b{color:var(--green-bright);font-weight:700;margin-left:6px}
.serve-bp{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;background-image:linear-gradient(rgba(23,52,88,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(23,52,88,.04) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(110% 70% at 50% 42%,#000,transparent 78%);mask-image:radial-gradient(110% 70% at 50% 42%,#000,transparent 78%)}
.serve-tight .wrap{position:relative;z-index:1}
.serve-top{display:grid;grid-template-columns:1fr auto;gap:48px;align-items:end;margin-bottom:40px}
.serve-top-l{max-width:820px}
.serve-top-l .eyebrow{margin-bottom:18px;margin-bottom:14px}
.serve-top-l h2{font-size:40px;line-height:1.06;letter-spacing:-0.022em}
.serve-top-l .body{margin:16px 0 0;max-width:640px;color:var(--slate)}
.serve-top-cta{margin-top:22px;white-space:nowrap;font-family:var(--sans);font-weight:700;font-size:15px;color:var(--blue-deep);display:inline-flex;align-items:center;gap:9px}
.serve-top-cta:hover{gap:12px}
.serve-panel{position:relative;display:grid;grid-template-columns:repeat(5,1fr);background:none;border:0;border-radius:0;box-shadow:none;overflow:visible;padding-top:30px}
.serve-panel::before{content:"";position:absolute;top:7px;left:3%;right:3%;height:2px;background:linear-gradient(90deg,#1077D5,var(--green),#C9860E,#1077D5,var(--green));opacity:.28}
.serve-seg{position:relative;display:flex;flex-direction:column;padding:26px 30px 6px 0;border-left:1px solid var(--line);transition:opacity .2s}
.serve-seg::marker{content:none}
.serve-seg::after{content:"";position:absolute;top:1px;left:-7px;width:14px;height:14px;border-radius:50%;background:var(--cc);box-shadow:0 0 0 4px #fff,0 0 14px -1px var(--cc);pointer-events:none}
.serve-seg:first-child{border-left:0;padding-left:0}
.serve-seg:first-child::after{left:0}
.serve-seg::before{content:none}
.serve-seg:hover .ss-t{color:var(--cc)}
.serve-seg:hover::after{box-shadow:0 0 0 4px #fff,0 0 22px 1px var(--cc)}
.serve-seg .ss-ic{display:none}
.serve-seg .ss-n{font-family:var(--display);font-weight:800;font-size:34px;line-height:1;color:var(--cc);letter-spacing:-0.02em;margin-bottom:14px}
.serve-seg .ss-t{font-family:var(--display);font-weight:800;font-size:19px;color:var(--navy);letter-spacing:-0.018em;line-height:1.22;margin-bottom:9px;transition:color .2s}
.serve-seg .ss-s{font-size:14.5px;line-height:1.58;color:var(--slate-dk)}
.serve-seg>*{position:relative;z-index:1}
@media(max-width:1080px){.serve-cards{grid-template-columns:repeat(2,1fr)}.serve-top{grid-template-columns:1fr}.serve-top-l h2{font-size:34px}}

.cred-dark{position:relative;overflow:hidden;background:linear-gradient(180deg,#0E2340,#0A1A31);padding:80px 0 110px}
.cred-dark::after{content:"";position:absolute;left:-8%;right:-8%;bottom:-88px;height:150px;z-index:3;border-radius:50%;background:#0A1A31;box-shadow:0 -1px 0 0 rgba(72,228,24,.4),0 -4px 22px -8px rgba(47,107,235,.45)}
body.home .cred-dark::after{background:#FBFCFE}
.cred-dark-bp{position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(640px 400px at 12% 0%,rgba(47,107,235,.16),transparent 60%),radial-gradient(560px 360px at 92% 100%,rgba(72,228,24,.12),transparent 62%)}
.cred-grid2{position:relative;z-index:1;display:grid;grid-template-columns:1.4fr 1.6fr;gap:48px;align-items:start}
.cred-lead .eyebrow-c{justify-content:flex-start}
.cred-h{font-family:var(--display);font-weight:800;font-size:29px;line-height:1.16;letter-spacing:-0.022em;color:#fff;margin:16px 0 0;max-width:100%;hyphens:none;overflow-wrap:normal;word-break:keep-all}
.cred-lead{align-self:center}
.cred-h .c-blue2{color:#5AA0FF}
.cred-p{font-size:15px;line-height:1.65;color:rgba(255,255,255,.78);margin:18px 0 0;max-width:420px}
.cred-link{display:inline-flex;align-items:center;gap:8px;margin-top:22px;font-family:var(--sans);font-weight:700;font-size:14px;color:#5AA0FF}
.cred-link:hover{gap:12px;color:var(--green-bright)}
.cred-p3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.cred-panel{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);border-radius:var(--r-md);padding:30px 26px;transition:border-color .2s,box-shadow .2s}
.cred-panel:hover{border-color:rgba(91,147,255,.5);box-shadow:0 0 24px -10px rgba(47,107,235,.6)}
.cred-panel .cp-ic{width:52px;height:52px;border-radius:12px;display:grid;place-items:center;color:var(--green-bright);border:1.5px solid rgba(72,228,24,.45);margin-bottom:16px;box-shadow:0 0 16px -4px rgba(72,228,24,.5),inset 0 0 14px -8px rgba(72,228,24,.6)}
.cred-panel:nth-child(2) .cp-ic{color:#5AA0FF;border-color:rgba(91,147,255,.45);box-shadow:0 0 16px -4px rgba(47,107,235,.5),inset 0 0 14px -8px rgba(47,107,235,.6)}
.cred-panel:nth-child(3) .cp-ic{color:var(--amber);border-color:rgba(242,168,28,.5);box-shadow:0 0 16px -4px rgba(242,168,28,.5),inset 0 0 14px -8px rgba(242,168,28,.6)}
.cred-panel h3{font-family:var(--display);font-weight:800;font-size:17px;color:#fff;letter-spacing:-0.015em;margin:0 0 7px}
.cred-panel p{font-size:13.5px;line-height:1.55;color:rgba(255,255,255,.82);margin:0}
.cred-rows{display:flex;gap:0;margin-top:14px;border:1px solid rgba(255,255,255,.12);border-radius:var(--r-md);overflow:hidden}
.cred-row{flex:1;display:flex;align-items:center;gap:11px;padding:16px 20px;border-left:1px solid rgba(255,255,255,.12);font-family:var(--display);font-weight:700;font-size:13.5px;color:rgba(255,255,255,.9);line-height:1.25}
.cred-row:first-child{border-left:0}
.cred-row .cr-ck{width:24px;height:24px;border-radius:50%;background:rgba(72,228,24,.16);color:var(--green-bright);display:grid;place-items:center;flex-shrink:0}
.cred-close{display:flex;align-items:center;gap:18px;margin-top:14px;background:linear-gradient(90deg,rgba(47,107,235,.14),rgba(72,228,24,.1));border:1px solid rgba(255,255,255,.14);border-radius:var(--r-md);padding:20px 28px}
.cred-close .cc-shield{color:var(--green-bright);flex-shrink:0;filter:drop-shadow(0 0 8px rgba(72,228,24,.5))}
.cred-close .cc-line{width:1px;height:30px;background:rgba(255,255,255,.2);flex-shrink:0}
.cred-close p{font-family:var(--display);font-weight:700;font-size:17px;color:#fff;margin:0;letter-spacing:-0.01em}
.cred-close .g{color:var(--green-bright)}
@media(max-width:1080px){.cred-grid2{grid-template-columns:1fr}.cred-p3{grid-template-columns:1fr}.cred-rows{flex-direction:column}.cred-row{border-left:0;border-top:1px solid rgba(255,255,255,.12)}.cred-row:first-child{border-top:0}.cred-close{flex-wrap:wrap}}

.cta{position:relative;overflow:hidden;background:var(--navy)}
.cta-media{position:absolute;inset:0}
.cta-media img{width:100%;height:100%;object-fit:cover;object-position:78% 60%}
.cta-media::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(10,27,52,.9) 0%,rgba(10,27,52,.8) 38%,rgba(10,27,52,.42) 70%,rgba(10,27,52,.28) 100%),linear-gradient(0deg,rgba(10,27,52,.4),transparent 30%)}
.cta-glow{position:absolute;left:-100px;bottom:-120px;width:460px;height:460px;background:radial-gradient(circle,rgba(72,228,24,.22),transparent 62%);z-index:1;pointer-events:none}
.cta-inner{position:relative;z-index:2;max-width:620px;padding:92px 0;pointer-events:none}
.cta-inner a{pointer-events:auto}
.cta-inner .h2{color:#fff;max-width:560px;font-size:38px}
.cta-inner .c-green{color:var(--green-bright)}
.cta-inner .body-lg{color:rgba(255,255,255,.82);margin-top:18px;max-width:500px}
.cta-actions{display:flex;flex-direction:row;align-items:center;gap:24px;margin-top:30px}
.cta-phone{color:#fff;font-family:var(--sans);font-weight:700;font-size:14px;display:inline-flex;align-items:center;gap:8px}
.cta-phone:hover{color:var(--green-bright)}

.contact-section{position:relative;overflow:hidden;background:linear-gradient(160deg,#0A1A31 0%,#0A1A31 50%,#08152B 100%)}
.contact-section::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.55;background-image:linear-gradient(rgba(120,160,220,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(120,160,220,.05) 1px,transparent 1px);background-size:58px 58px;-webkit-mask-image:radial-gradient(120% 90% at 50% 40%,#000,transparent 78%);mask-image:radial-gradient(120% 90% at 50% 40%,#000,transparent 78%)}
.contact-section::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(700px 460px at 4% 10%,rgba(47,107,235,.22),transparent 62%),radial-gradient(620px 420px at 98% 92%,rgba(72,228,24,.16),transparent 62%)}
.contact-section .wrap{position:relative;z-index:1}
.contact-section .eyebrow{margin-bottom:18px;color:var(--green-bright)}
.contact-section .eyebrow::before{background:var(--green-bright)}
.contact-section .h2{color:#fff}
.contact{position:relative;display:grid;grid-template-columns:44fr 56fr;gap:36px;align-items:stretch}
.contact-panel{position:relative;z-index:1;border-radius:18px;overflow:hidden;background:var(--navy-2);align-self:stretch;box-shadow:0 0 0 1.5px rgba(72,228,24,.45),0 0 34px -6px rgba(72,228,24,.4),0 0 70px -10px rgba(47,107,235,.35),0 40px 80px -34px #000}
.cp-media{position:absolute;inset:0}
.cp-media img{width:100%;height:100%;object-fit:cover;object-position:60% 40%;filter:saturate(.75) brightness(.62);animation:cpZoom 18s ease-in-out infinite alternate}
@keyframes cpZoom{from{transform:scale(1)}to{transform:scale(1.05)}}
.cp-media::after{content:"";position:absolute;inset:0;background:linear-gradient(155deg,rgba(8,19,38,.95) 0%,rgba(8,19,38,.9) 46%,rgba(10,25,48,.86) 100%)}
.cp-inner{position:relative;z-index:2;padding:44px 42px;height:100%;display:flex;flex-direction:column;gap:20px}
.cp-inner>.cp-actions{margin-top:auto}
.cp-h{font-family:var(--display);font-weight:800;font-size:38px;line-height:1.04;letter-spacing:-0.025em;color:#fff;margin:14px 0 0}
.cp-h .c-green{color:var(--green-bright)}
.cp-lead{font-size:15px;line-height:1.68;color:rgba(255,255,255,.82);margin:18px 0 0;max-width:420px}
.cp-proof{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:32px 0 0}
.cp-stat{background:rgba(6,15,30,.6);border:1px solid rgba(255,255,255,.16);border-radius:12px;padding:18px 18px;backdrop-filter:blur(6px);align-items:flex-start;gap:14px}
.cp-stat b{display:block;font-family:var(--display);font-weight:800;font-size:15.5px;color:#fff;letter-spacing:-0.01em;margin:0;line-height:1.25}
.cp-stat .cps-b>span{display:block;font-size:12.5px;color:rgba(255,255,255,.78);margin-top:4px;line-height:1.4}
.cp-actions{order:9;margin-top:auto;display:grid;grid-template-columns:1fr;gap:16px;margin-left:-40px;margin-right:-40px;margin-bottom:-44px;padding:34px 40px 28px;background:linear-gradient(180deg,rgba(6,15,30,.55),rgba(6,15,30,.88));border-top:0;position:relative}
.cp-check{margin-bottom:30px}
.cp-actions::before{content:"";position:absolute;top:0;left:40px;right:40px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18) 12%,rgba(255,255,255,.18) 88%,transparent)}
.cp-act{display:flex;align-items:center;gap:11px;padding:0;border-top:0}
.cp-act:last-child{border-bottom:0}
.cp-act .ca-ic{width:32px;height:32px;border-radius:50%;background:rgba(72,228,24,.12);border:1.5px solid rgba(72,228,24,.55);color:var(--green-bright);display:grid;place-items:center;flex-shrink:0;box-shadow:0 0 16px -3px rgba(72,228,24,.6),inset 0 0 14px -8px rgba(72,228,24,.5)}
.cp-act .ca-l{display:block;font-size:10.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:3px}
.cp-act .ca-v{display:block;font-size:14px;font-weight:600;color:#fff;margin-top:0}
.cp-act .ca-l{display:block;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.cp-act .ca-v{display:block;font-size:14.5px;font-weight:600;color:#fff;margin-top:2px}
.cp-act:hover .ca-v{color:var(--green-bright)}
.cp-creds{font-size:12.5px;color:rgba(255,255,255,.82);margin:22px 0 0;letter-spacing:.02em;line-height:1.6}
.cp-check{margin-top:26px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12)}
.cp-check-h{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--green-bright);margin-bottom:16px}
.cp-check ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px 20px}
.cp-check li{display:flex;align-items:center;gap:8px;font-size:13px;color:rgba(255,255,255,.88);font-weight:500}
.cp-check li svg{color:var(--green-bright);flex-shrink:0}
.cp-stat{display:flex;align-items:center;gap:13px;background:rgba(6,15,30,.6);border:1px solid rgba(255,255,255,.16);border-radius:12px;padding:16px 16px;backdrop-filter:blur(6px)}
.cps-ic{flex-shrink:0;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:var(--green-bright);background:rgba(72,228,24,.12);border:1.5px solid rgba(72,228,24,.55);box-shadow:0 0 16px -3px rgba(72,228,24,.6),inset 0 0 14px -8px rgba(72,228,24,.9)}
.cps-b{display:flex;flex-direction:column;min-width:0}
.cp-check li .lc-ic{flex-shrink:0;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;color:var(--green-bright);border:1.5px solid rgba(72,228,24,.6);box-shadow:0 0 10px -3px rgba(72,228,24,.7)}
.contact-section .form{border-radius:20px;border-color:rgba(255,255,255,.16);box-shadow:0 40px 90px -34px #000,0 0 0 1px rgba(255,255,255,.06)}
.contact-section .form-note{color:var(--slate)}
.contact-formcol{min-width:0;display:flex;align-items:stretch;position:relative;z-index:2}
.contact-formcol>*{width:100%}
.form-top{margin-bottom:4px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.form-top h3{font-family:var(--display);font-weight:800;font-size:24px;color:var(--navy);letter-spacing:-0.018em}
.form-req{font-size:12px;color:var(--muted);white-space:nowrap}
.form-steps{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}
.form-steps i{width:18px;height:4px;border-radius:2px;background:var(--line-2);transition:background .2s}
.form-steps i.on{background:var(--blue)}
.form-nav{display:flex;gap:12px;align-items:center}
.form-nav .btn-blue{flex:1;justify-content:center}
.btn-back{background:transparent;color:var(--navy);border:1.5px solid var(--line-2);padding:15px 22px}
.btn-back:hover{border-color:var(--navy);background:var(--bg-alt)}
.form .opt{font-weight:400;text-transform:none;letter-spacing:0;color:var(--faint)}
.filedrop{display:flex;align-items:center;justify-content:center;gap:10px;padding:18px;border:1.5px dashed var(--line-2);border-radius:10px;background:var(--bg-soft);color:var(--muted);font-size:14px;cursor:pointer;transition:border-color .2s,background .2s}
.filedrop:hover{border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}
.filedrop b{color:var(--blue-deep);font-weight:700}
@media(max-width:1080px){.contact{grid-template-columns:1fr;gap:28px}.contact-formcol{margin-left:0;margin-top:0}}
.contact-blueprint{position:absolute;inset:-40px -40px auto -40px;height:420px;z-index:0;pointer-events:none;opacity:.5;background-image:linear-gradient(rgba(16,119,213,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(16,119,213,.05) 1px,transparent 1px);background-size:38px 38px;-webkit-mask-image:radial-gradient(circle at 20% 20%,#000,transparent 70%);mask-image:radial-gradient(circle at 20% 20%,#000,transparent 70%)}
.contact-intro>.contact-blueprint{position:absolute;z-index:0}
.contact-intro>*{position:relative;z-index:1}
.contact-intro .h2{margin:18px 0 18px}
.contact-line{display:flex;gap:14px;align-items:center;padding:16px 0;border-top:1px solid var(--line);font-size:14px;color:var(--navy)}
.contact-line:last-of-type{border-bottom:1px solid var(--line)}
.contact-line .ci{width:38px;height:38px;border-radius:10px;background:var(--blue-soft);display:grid;place-items:center;color:var(--blue-deep);flex-shrink:0}
.contact-line .cl{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.contact-line .cv{font-weight:600}
.prep{margin-top:28px;padding:24px;background:#fff;border:1px solid var(--line);border-radius:12px}
.prep-h{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--green-deep);margin-bottom:14px}
.prep-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 18px}
.prep-list li{position:relative;padding-left:20px;font-size:13.5px;color:var(--navy);font-weight:500;line-height:1.35}
.prep-list li::before{content:"";position:absolute;left:0;top:7px;width:8px;height:8px;border-radius:2px;background:var(--green)}
.prep-note{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:12.5px;line-height:1.55;color:var(--muted)}
.form{position:relative;background:var(--panel);border:1px solid var(--line-2);border-radius:14px;padding:34px;box-shadow:0 1px 2px rgba(21,39,65,.05),0 12px 34px -20px rgba(21,39,65,.22);display:flex;flex-direction:column;gap:14px}
.form-group-label{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--navy);display:flex;align-items:center;gap:12px;margin-top:4px}
.form-group-label:first-child{margin-top:0}
.form-group-label::after{content:"";flex:1;height:1px;background:var(--line)}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{display:flex;flex-direction:column;gap:8px}
.field label{font-family:var(--sans);font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--slate-dk)}
.field input,.field select,.field textarea{width:100%;padding:14px 16px;border:1px solid var(--line-2);border-radius:9px;font:16px/1.4 var(--sans);color:var(--navy);background:var(--bg-soft);outline:none;transition:border-color .2s,box-shadow .2s}
.field input::placeholder,.field textarea::placeholder{color:#96A2B4}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(16,119,213,.14);background:#fff}
.field textarea{min-height:120px;resize:vertical}
.field.err input,.field.err select,.field.err textarea{border-color:#E0524E}
.field .em{display:none;color:#E0524E;font-size:12px;font-weight:500}
.field.err .em{display:block}
.form .btn{justify-content:center;margin-top:6px}
.form-note{font-size:13px;color:var(--slate)}
.form-ok{padding:44px;text-align:left}
.form-ok .ok-badge{width:56px;height:56px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;margin-bottom:22px;box-shadow:var(--glow-green)}

footer{position:relative;background:var(--navy-2);color:rgba(255,255,255,.88);padding:56px 0 30px}
footer::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--green),var(--blue) 55%,var(--amber));opacity:.7}
footer .logo-foot{margin-left:0}
footer .logo img{height:60px}
footer .f-grid{display:grid;grid-template-columns:1.65fr 1fr 1fr 1.15fr;gap:52px}
footer .f-brand p{margin:18px 0 0;font-size:15.5px;line-height:1.65;color:rgba(255,255,255,.9);max-width:330px}
.btn-foot{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.btn-foot .arrow{color:var(--green-bright)}
.btn-foot:hover{background:rgba(255,255,255,.08);color:#fff;border-color:#fff}
footer h4{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff;margin:2px 0 18px}
footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;font-size:14.5px;color:rgba(255,255,255,.9)}
footer .f-contact a{color:#fff;font-weight:600}
footer .f-region{color:rgba(255,255,255,.55);font-weight:400;margin-top:6px}
footer a:hover{color:var(--green-bright)}
footer .f-bottom{max-width:1240px;margin:52px auto 0;padding:24px 44px 0;border-top:1px solid rgba(255,255,255,.16);display:flex;justify-content:space-between;gap:20px;font-size:12.5px;color:rgba(255,255,255,.62)}
footer .f-bottom a{color:rgba(255,255,255,.62)}
footer .f-creds{color:rgba(255,255,255,.72);font-weight:500}

.mobile-menu{position:fixed;inset:0;background:var(--navy);color:#fff;z-index:200;padding:24px 44px;display:flex;flex-direction:column;transform:translateY(-100%);transition:transform .35s cubic-bezier(.6,.05,.3,1)}
.mobile-menu.open{transform:translateY(0)}
.mm-links{display:flex;flex-direction:column;gap:6px;margin-top:36px}
.mm-links a{font-family:var(--display);font-weight:800;font-size:38px;letter-spacing:-0.02em;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.12)}
/* Why IGS page */
.wi-hero{position:relative;background:var(--bg-alt);border-bottom:1px solid var(--line);padding:104px 0 88px}
.wi-sec-reasons{padding:88px 0 72px}
.wi-sec-case{padding:80px 0}
.wi-sec-cred{padding:80px 0}
.legal-hero{position:relative;background:var(--bg-alt);border-bottom:1px solid var(--line);padding:132px 0 60px}
.legal-hero::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--green),var(--blue),transparent);opacity:.6}
.legal-hero h1{font-family:var(--display);font-weight:800;font-size:42px;line-height:1.1;letter-spacing:-0.026em;color:var(--ink);margin:14px 0 0;max-width:760px}
.legal-date{font-size:13px;font-weight:600;color:var(--muted);margin-top:14px}
.legal-intro{font-size:17px;line-height:1.62;color:var(--slate-dk);max-width:720px;margin:18px 0 0}
.legal-body{padding:72px 0 80px}
.legal-wrap{max-width:820px}
.legal-block{padding:0 0 30px;margin-bottom:30px;border-bottom:1px solid var(--line)}
.legal-block:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.legal-block h2{font-family:var(--display);font-weight:800;font-size:21px;color:var(--navy);letter-spacing:-0.018em;margin:0 0 14px}
.legal-block p{font-size:15.5px;line-height:1.7;color:var(--slate-dk);margin:0 0 14px}
.legal-block p:last-child{margin-bottom:0}
.legal-list{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:11px}
.legal-list li{display:flex;align-items:flex-start;gap:11px;font-size:15.5px;line-height:1.55;color:var(--slate-dk)}
.spec-note{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;margin-top:26px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);font-family:var(--sans);font-weight:600;font-size:14.5px;color:rgba(255,255,255,.7);text-align:center}
.spec-note>span{display:inline-flex;align-items:center;align-self:flex-start;white-space:nowrap;gap:8px;font-weight:700;color:var(--green-bright)}
.spec-note>span svg{flex-shrink:0}
/* Testimonials page */
.testi-feature{position:relative;overflow:hidden;background:linear-gradient(180deg,#0E2340,#0A1A31);padding:76px 0}
.testi-feature::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(620px 380px at 12% 0%,rgba(47,107,235,.18),transparent 60%),radial-gradient(540px 340px at 92% 100%,rgba(72,228,24,.13),transparent 62%)}
.tf-grid{position:relative;z-index:1;display:grid;grid-template-columns:44fr 56fr;gap:44px;align-items:center}
.tf-photo{border-radius:20px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 34px 70px -32px #000}
.tf-photo img{width:100%;height:100%;object-fit:cover}
.tf-card{position:relative;background:rgba(255,255,255,.045);border:1px solid rgba(90,147,255,.3);border-radius:20px;padding:38px 40px;box-shadow:0 30px 60px -34px #000}
.tf-qm{font-family:Georgia,serif;font-weight:700;font-size:64px;line-height:.7;height:34px;color:var(--green-bright)}
.tf-q{font-size:18px;line-height:1.62;color:#DCE6F4;margin:16px 0 0}
.tf-a{margin-top:24px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14)}
.tf-a b{display:block;font-family:var(--display);font-weight:800;font-size:19px;color:#fff;letter-spacing:-0.01em}
.tf-a span{display:block;font-size:13.5px;color:#AEC0DA;margin-top:4px}
.tf-a .tf-org{color:#96A2B4}
@media(max-width:1080px){.tf-grid{grid-template-columns:1fr}.tf-photo{max-width:420px;aspect-ratio:16/10}}
.spec-note:hover>span{gap:12px}
/* Contractor page zones */
.ctr-light-zone{background:#F7FAFD;padding:88px 0}
.ctr-origin,.ctr-why{padding:92px 0}
.proc-split{display:block}
.proc-head-c{max-width:720px;margin:0 auto 44px;text-align:center}
.proc-head-c .h2{margin:14px 0 14px}
.proc-head-c .body{margin:0 auto;max-width:560px}
.proc-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.proc-card{position:relative;background:#fff;border:1px solid var(--line);border-top:3px solid var(--pc,var(--blue));border-radius:16px;padding:30px 26px;box-shadow:0 2px 6px rgba(21,39,65,.05),0 18px 40px -28px rgba(21,39,65,.35);transition:transform .2s,box-shadow .2s}
.proc-card:hover{transform:translateY(-4px);box-shadow:0 26px 54px -26px rgba(21,39,65,.4)}
.proc-cards>.proc-card:nth-child(1){--pc:var(--blue)}
.proc-cards>.proc-card:nth-child(2){--pc:var(--green-deep)}
.proc-cards>.proc-card:nth-child(3){--pc:var(--amber-deep)}
.pc-n{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;border:2px solid var(--pc);color:var(--pc);font-family:var(--display);font-weight:800;font-size:15px;margin-bottom:18px}
.proc-card h3{font-family:var(--display);font-weight:800;font-size:19px;color:var(--navy);letter-spacing:-0.015em;margin:0 0 10px}
.proc-card p{font-size:14.5px;line-height:1.6;color:var(--slate-dk);margin:0}
@media(max-width:1080px){.proc-cards{grid-template-columns:1fr}}
.proc-split-l .h2{margin:14px 0 14px}
.proc-split-l .body{max-width:380px}
.proc-img{margin-top:28px;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/3;box-shadow:var(--sh-md)}
.proc-img img{width:100%;height:100%;object-fit:cover}
.proc-steps{position:relative;display:flex;flex-direction:column;padding-left:6px}
.proc-steps::before{content:"";position:absolute;left:24px;top:26px;bottom:26px;width:2px;background:linear-gradient(180deg,var(--blue),var(--green));opacity:.45}
.proc-srow{display:flex;gap:20px;align-items:flex-start;padding:20px 0;border-bottom:1px solid var(--line)}
.proc-srow:last-child{border-bottom:0}
.psr-n{position:relative;z-index:1;flex-shrink:0;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#fff;border:2px solid var(--blue);color:var(--blue-deep);font-family:var(--display);font-weight:800;font-size:13px;box-shadow:0 0 0 5px #F7FAFD}
.proc-srow:last-child .psr-n{border-color:var(--green);color:var(--green-deep)}
.psr-b{display:flex;flex-direction:column;gap:5px}
.psr-t{font-family:var(--display);font-weight:800;font-size:18px;color:var(--navy);letter-spacing:-0.015em}
.psr-d{font-size:14.5px;line-height:1.6;color:var(--slate-dk);max-width:520px}
.crit-split{display:grid;grid-template-columns:47fr 53fr;gap:60px;align-items:center;margin-top:72px;padding-top:72px;border-top:1px solid var(--line-2)}
.crit-photo{border-radius:14px;overflow:hidden;aspect-ratio:4/4.1;box-shadow:0 32px 68px -40px rgba(10,27,52,.5)}
.crit-photo img{width:100%;height:100%;object-fit:cover}
.crit-row{display:flex;gap:18px;align-items:flex-start;padding:20px 0;border-bottom:1px solid var(--line)}
.cr-ic{flex-shrink:0;display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:color-mix(in srgb,var(--cc) 11%,#fff);color:var(--cc);box-shadow:0 0 16px -8px var(--cc)}
.cr-n{font-family:var(--display);font-weight:800;font-size:22px;color:var(--cc);letter-spacing:-0.02em;flex-shrink:0;width:34px;line-height:1.2}
.cr-b{display:flex;flex-direction:column;gap:5px}
.cr-t{font-family:var(--display);font-weight:800;font-size:17px;color:var(--navy);letter-spacing:-0.015em}
.cr-d{font-size:14px;line-height:1.6;color:var(--slate-dk)}
.crit-split .crit-foot{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-top:24px;padding-top:0;border-top:0}
.ctr-dark-zone{position:relative;overflow:hidden;background:linear-gradient(180deg,#0E2340,#0A1A31);padding:88px 0}
.ctr-dark-zone::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(680px 400px at 10% 0%,rgba(47,107,235,.16),transparent 60%),radial-gradient(600px 380px at 92% 100%,rgba(72,228,24,.13),transparent 62%)}
.ctr-dark-zone .wrap{position:relative;z-index:1}
.dz-head{max-width:760px;margin-bottom:36px}
.dz-ben{display:grid;grid-template-columns:1.25fr 1fr;gap:18px}
.dz-hero-ben{position:relative;display:block;border-radius:20px;overflow:hidden;min-height:330px;box-shadow:0 30px 60px -32px #000}
.dz-hero-ben img{width:100%;height:100%;object-fit:cover;object-position:50% 42%;filter:saturate(1.12) contrast(1.06);position:absolute;inset:0;transition:transform .6s}
.dz-hero-ben:hover img{transform:scale(1.04)}
.dz-hero-ben::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,19,38,.94),rgba(8,19,38,.42) 52%,rgba(8,19,38,.1))}
.dzh-b{position:relative;z-index:2;display:flex;flex-direction:column;gap:9px;padding:32px;height:100%;justify-content:flex-end;min-height:330px}
.dzh-t{font-family:var(--display);font-weight:800;font-size:25px;color:#fff;letter-spacing:-0.02em}
.dzh-d{font-size:15px;line-height:1.6;color:rgba(255,255,255,.84);max-width:400px}
.dzh-cap{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--green-bright);margin-top:4px}
.dzh-cap i{width:7px;height:7px;border-radius:50%;background:var(--green-bright);box-shadow:0 0 8px var(--green-bright)}
.dz-side{display:flex;flex-direction:column;gap:14px}
.dz-scard{flex:1;display:flex;gap:14px;align-items:flex-start;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.11);border-left:2.5px solid var(--cc);border-radius:14px;padding:20px 22px}
.dzs-ic{flex-shrink:0;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:var(--cc);background:rgba(255,255,255,.06)}
.dzs-b{display:flex;flex-direction:column;gap:4px}
.dzs-t{font-family:var(--display);font-weight:700;font-size:15.5px;color:#fff;letter-spacing:-0.01em}
.dzs-d{font-size:13px;line-height:1.5;color:rgba(255,255,255,.68)}
.dz-div{display:flex;align-items:center;gap:18px;margin:44px 0 24px}
.dz-div::before,.dz-div::after{content:"";flex:1;height:1px;background:rgba(255,255,255,.14)}
.dz-div span{font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--green-bright)}
.spec-thumb{position:relative;flex-shrink:0;width:110px;align-self:stretch;margin-left:0;border-radius:0;align-self:stretch;overflow:hidden;border-radius:11px}
.spec-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.spec-card:hover .spec-thumb img{transform:scale(1.06)}
.spec-thumb::after{content:"";position:absolute;inset:0;border-radius:0;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--cc) 45%,transparent),inset 0 0 22px -10px var(--cc)}
.ctr-map-zone{background:#fff;border-top:1px solid var(--line);padding:96px 0 104px}
.mz-stats{display:flex;gap:0;margin:24px 0 20px}
.mz-stats>div{padding-right:28px;margin-right:28px;border-right:1px solid var(--line-2)}
.mz-stats>div:last-child{border-right:0;padding-right:0;margin-right:0}
.mz-stats b{display:block;font-family:var(--display);font-weight:800;font-size:26px;color:var(--navy);letter-spacing:-0.025em;line-height:1}
.mz-stats span{display:block;font-size:12.5px;color:var(--muted);margin-top:5px;max-width:180px}
.mz-quote{position:relative;margin:80px auto -56px;max-width:70%;background:linear-gradient(155deg,#13294A,#0A1A31);border:1px solid rgba(90,147,255,.3);border-radius:20px;padding:40px 44px;box-shadow:0 40px 80px -34px rgba(8,19,38,.7);z-index:2}
.mz-quote .ctr-q-mark{font-family:Georgia,serif;font-weight:700;font-size:60px;line-height:.7;height:32px;color:var(--green-bright)}
.mz-quote .ctr-q-t{font-size:17px;line-height:1.6;color:#DCE6F4;margin:14px 0 0}
.mz-quote .ctr-q-a{margin-top:20px;padding-top:18px;border-top:1px solid rgba(255,255,255,.14)}
.mz-quote .ctr-q-a b{display:block;font-family:var(--display);font-weight:800;font-size:16px;color:#fff}
.mz-quote .ctr-q-a span{display:block;font-size:13px;color:#96A2B4;margin-top:3px}
.ctr-apply-zone{background:linear-gradient(180deg,#EAF1F9,#F4F8FD);border-top:1px solid var(--line-2);padding:104px 0 104px}
.ctr-apply-zone .cp-media img{filter:brightness(1.28) saturate(1.06)}
.legal-list .ll-ic{color:var(--green-deep);flex-shrink:0;margin-top:2px}
.story-open{font-family:var(--display);font-weight:800;font-size:24px;line-height:1.3;color:var(--navy);margin:20px 0 0;letter-spacing:-0.02em}
.wi-disposition{position:relative;overflow:hidden;background:linear-gradient(160deg,#0E2340,#0A1A31);padding:96px 0}
.wi-disposition::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(700px 460px at 82% 88%,rgba(72,228,24,.13),transparent 70%),radial-gradient(620px 420px at 10% 12%,rgba(47,107,235,.14),transparent 70%);-webkit-mask-image:radial-gradient(72% 72% at 50% 50%,#000 25%,transparent 100%);mask-image:radial-gradient(72% 72% at 50% 50%,#000 25%,transparent 100%)}
.wid-p{font-size:16px;line-height:1.72;color:rgba(255,255,255,.82);margin:0 0 18px}
.wid-quote{position:relative;margin:0;padding:34px 36px 36px;background:linear-gradient(165deg,rgba(22,44,76,.72),rgba(10,24,46,.6));border:1px solid rgba(90,150,255,.42);border-radius:16px;box-shadow:0 0 0 1px rgba(90,150,255,.12),0 0 48px -14px rgba(59,155,240,.5),inset 0 1px 0 rgba(255,255,255,.06)}
.wid-quote p{font-size:15.5px;line-height:1.68;color:rgba(255,255,255,.8);margin:0}
.wid-q{font-family:var(--display);font-weight:800;font-size:31px;letter-spacing:-0.025em;color:var(--green-bright);margin:18px 0 0;padding-bottom:20px;position:relative}
.wid-q::after{content:"";position:absolute;left:0;bottom:0;width:44px;height:3px;border-radius:3px;background:#F2A100;box-shadow:0 0 10px rgba(242,161,0,.55)}
.wi-inspect .body,.wi-vetted .body,.wi-handover .body{font-size:16px;line-height:1.72}
.why-proof{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:13px}
.why-proof li{display:flex;align-items:flex-start;gap:12px;font-size:15px;line-height:1.55;color:var(--navy);font-weight:500}
.why-proof .wp-ic{display:grid;place-items:center;color:var(--green-deep);flex-shrink:0;margin-top:1px}
/* Service detail page */
.sd-hero-img{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:5/3.9;box-shadow:0 40px 84px -34px rgba(4,12,26,.78),0 0 0 1px rgba(120,170,255,.22),0 0 46px -12px rgba(59,155,240,.4)}
.sd-hero-img img{width:100%;height:100%;object-fit:cover}
.sd-hero-img::after{content:"";position:absolute;inset:0;border-radius:20px;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.sd-crumbs{font-size:12.5px;color:var(--muted);font-weight:600;margin-bottom:28px}
.sd-crumbs a:hover{color:var(--blue)}
.sd-crumbs span{margin:0 6px;opacity:.5}
.sd-rail{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sd-rail-in{display:grid;grid-template-columns:repeat(4,1fr);padding:24px 44px}
.sdr{display:flex;align-items:center;gap:16px;padding:26px 24px;border-left:1px solid rgba(255,255,255,.09)}
.sdr:first-child{border-left:0}
.sdr-ic{flex-shrink:0;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:rgba(59,155,240,.1);border:1px solid rgba(59,155,240,.3);color:#3B9BF0;box-shadow:0 0 20px -8px rgba(59,155,240,.6)}
.sdr-b{display:flex;flex-direction:column;gap:5px;min-width:0}
.sdr-rule{display:block;width:22px;height:3px;border-radius:3px;background:var(--green-bright);box-shadow:0 0 9px rgba(72,228,24,.6);margin-bottom:3px}
.sdr:first-child{border-left:0;padding-left:0}
.sdr b{display:block;font-family:var(--display);font-weight:800;font-size:16px;color:var(--navy);letter-spacing:-0.01em}
.sdr span{display:block;font-size:12.5px;color:var(--muted);margin-top:4px}
.sd-hero-dark{position:relative;overflow:hidden;background:linear-gradient(135deg,#0E2340,#0A1A31);padding:122px 0 0}
.sd-hero-dark .svcpg-hero-in{display:grid;grid-template-columns:5.5fr 6.5fr;gap:64px;align-items:center;padding-bottom:84px}
.sdh-bg{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;background-image:linear-gradient(rgba(120,160,220,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(120,160,220,.05) 1px,transparent 1px);background-size:54px 54px}
.sd-hero-dark::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(680px 440px at 86% 12%,color-mix(in srgb,var(--sc) 16%,transparent),transparent 66%),radial-gradient(560px 400px at 4% 92%,rgba(47,107,235,.16),transparent 66%);-webkit-mask-image:radial-gradient(72% 72% at 50% 50%,#000 25%,transparent 100%);mask-image:radial-gradient(72% 72% at 50% 50%,#000 25%,transparent 100%)}
.sd-hero-dark .wrap{position:relative;z-index:1}
.sd-crumbs.dark{color:rgba(255,255,255,.55)}
.sd-crumbs.dark a:hover{color:var(--green-bright)}
.sdh-eyebrow{font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--sc);margin-bottom:16px}
.sd-hero-dark .sdh-h{font-family:var(--display);font-weight:800;font-size:60px;line-height:1.04;letter-spacing:-0.032em;color:#fff;margin:0;max-width:680px}
.sdh-h{font-family:var(--display);font-weight:800;font-size:44px;line-height:1.1;letter-spacing:-0.028em;color:#fff;margin:0;max-width:520px}
.sdh-lead{font-size:17px;line-height:1.62;color:rgba(214,228,244,.88);max-width:580px;margin:0}
.sd-rail.dark{background:linear-gradient(180deg,#0A1A31,#0C1E39);border-top:0;border-bottom:0;padding:0 0 92px}
.sd-rail.dark{background:linear-gradient(180deg,#0E2340,#13294A);border-top:1px solid rgba(255,255,255,.14);border-bottom:0;margin-top:-1px}
.sd-rail.dark .sdr{padding:26px 24px;position:relative}
.sd-rail.dark .sdr::before{content:"";position:absolute;top:14px;left:24px;width:22px;height:3px;border-radius:3px;background:var(--sc,var(--green-bright));opacity:.9;box-shadow:0 0 10px color-mix(in srgb,var(--sc,#48E418) 60%,transparent)}
.sd-rail.dark .sdr:first-child::before{left:0}
.sd-rail.dark .sdr{border-left:1px solid rgba(255,255,255,.14)}
.sd-rail.dark .sdr:first-child{border-left:0}
.sd-rail.dark .sdr b{color:#fff;font-size:18px}
.sd-rail.dark .sdr span{color:rgba(196,211,232,.88);font-size:13px}
.sd-scope.dark{background:linear-gradient(155deg,#13294A,#0A1A31);border:1px solid rgba(90,140,210,.24);box-shadow:0 30px 60px -34px rgba(8,19,38,.7)}
.sd-scope.dark .sd-scope-h{color:var(--green-bright)}
.sd-scope.dark li{color:rgba(255,255,255,.9)}
.sd-scope.dark li svg{color:var(--green-bright)}
.sd-overview{padding:96px 0 76px;background:#fff;border-top:1px solid var(--line)}
.sd-ov-in{display:grid;grid-template-columns:58fr 42fr;gap:60px;align-items:start}
.sd-scope{background:#fff;border:1px solid var(--line-2);border-radius:16px;padding:28px 26px;box-shadow:var(--sh-sm)}
.sd-scope-h{font-family:var(--sans);font-weight:700;font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--green-deep);margin-bottom:18px}
.sd-scope ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.sd-scope li{font-size:14.5px;line-height:1.5;display:flex;align-items:flex-start;gap:11px;font-size:14.5px;line-height:1.5;color:var(--navy);font-weight:500}
.sd-scope li svg{color:var(--green-deep);flex-shrink:0;margin-top:2px}
.sd-case{padding:76px 0 96px;background:#F4F8FD}
.sd-facts{display:grid;grid-template-columns:1fr 1fr;gap:16px 28px;margin:24px 0 24px}
.sdf-k{display:block;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.sdf-v{display:block;font-family:var(--display);font-weight:700;font-size:15px;color:var(--navy);margin-top:4px}
.sd-proc{position:relative;overflow:hidden;padding:132px 0 140px;background:linear-gradient(180deg,#0E2340,#0A1A31)}
.sd-proc::before{content:"";position:absolute;inset:0;pointer-events:none;background:url('assets/why-jobsite.jpg') center/cover no-repeat;opacity:.07}
.sd-proc::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(700px 440px at 50% 100%,rgba(47,107,235,.18),transparent 70%)}
.sd-proc .wrap{position:relative;z-index:1}
.sd-proc .section-head .h2-sm,.sd-proc .section-head h2{color:#fff}
.sdg{display:flex;flex-direction:column;gap:24px}
.sdg-g{padding-bottom:0;border-bottom:0}
.sdg-g:last-child{border-bottom:0}
.sdg-g+.sdg-g{margin-top:0;padding-top:24px;border-top:1px solid rgba(255,255,255,.1)}
.sdg-lab{display:block;font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gc);margin-bottom:12px}
.sdg-g ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.sdg-g li{position:relative;padding-left:14px;font-size:14.5px;line-height:1.5;color:rgba(255,255,255,.88)}
.sdg-g li::before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background:var(--gc)}
.sd-proc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;position:relative;padding-top:26px}
.sd-proc-grid::before{content:"";position:absolute;top:0;left:12%;right:12%;height:2px;background:linear-gradient(90deg,var(--blue),var(--green-bright),var(--amber));opacity:.55}
.sd-pp{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:28px 26px;box-shadow:0 24px 50px -30px #000}
.sdp-rule{display:block;width:34px;height:3px;border-radius:3px;background:var(--blue);box-shadow:0 0 10px rgba(16,119,213,.5);margin-bottom:16px}
.sd-proc-grid>.sd-pp:nth-child(2) .sdp-rule{background:var(--green-bright);box-shadow:0 0 10px rgba(72,228,24,.5)}
.sd-proc-grid>.sd-pp:nth-child(3) .sdp-rule{background:var(--amber);box-shadow:0 0 10px rgba(242,168,28,.5)}
.sd-pp h3{font-family:var(--display);font-weight:800;font-size:18px;color:#fff;letter-spacing:-0.015em;margin:0 0 10px}
.sd-pp p{font-size:14.5px;line-height:1.6;color:rgba(255,255,255,.76);margin:0}
.sd-why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px 40px}
.sd-wc{padding-bottom:20px;border-bottom:1px solid var(--line-2)}
.sd-wc h3{font-family:var(--display);font-weight:800;font-size:18px;color:var(--navy);letter-spacing:-0.015em;margin:0 0 8px}
.sd-wc p{font-size:14.5px;line-height:1.6;color:var(--slate-dk);margin:0}
.sd-pair{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.sd-pair-sec{background:#fff;padding:100px 0}
.sd-pair-sec .section-head{margin-bottom:40px}
.sd-pair-sec .section-head h2{margin:16px 0 0;max-width:820px}
.sd-pair .pf-img{aspect-ratio:4/3}
.sd-pair .pf-b h3{font-size:19px}
.sd-pair .pf-b p{font-size:13.5px;-webkit-line-clamp:3}
@media(max-width:1080px){.sd-ov-in,.sd-proc-grid,.sd-why-grid{grid-template-columns:1fr}.sd-pair{grid-template-columns:1fr 1fr}.sd-hero-img,.spcase-img{max-width:420px;aspect-ratio:16/10}.sd-rail-in{grid-template-columns:1fr 1fr;gap:18px}.sdr{border-left:0;padding-left:0}}
@media(max-width:1080px){.sd-why-grid{grid-template-columns:1fr;gap:34px}.sd-cta{grid-template-columns:1fr;min-height:0}.sd-cta-r{min-height:280px}.sd-cta-l{padding:38px 28px}.sd-cta-l h2{font-size:30px}.sd-hero-dark .svcpg-hero-in{grid-template-columns:1fr;gap:40px;padding-bottom:64px}.sd-hero-dark .sdh-h{font-size:40px}.sd-hero-img{max-width:none;aspect-ratio:5/4}}
/* Why IGS credentials zone */
.wi-credzone{position:relative;overflow:hidden;background:linear-gradient(180deg,#F4F8FD,#EDF3FA);border-top:1px solid var(--line);padding:110px 0}
.wcz-bg{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;background-image:linear-gradient(rgba(120,160,220,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(120,160,220,.045) 1px,transparent 1px);background-size:56px 56px}
.wi-credzone::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(700px 460px at 88% 92%,rgba(72,228,24,.13),transparent 70%),radial-gradient(620px 420px at 8% 10%,rgba(47,107,235,.12),transparent 70%);-webkit-mask-image:radial-gradient(72% 72% at 50% 50%,#000 25%,transparent 100%);mask-image:radial-gradient(72% 72% at 50% 50%,#000 25%,transparent 100%)}
.wcz-in{position:relative;z-index:1;display:grid;grid-template-columns:38fr 62fr;gap:60px;align-items:start}
.wcz-h{font-family:var(--display);font-weight:800;font-size:33px;line-height:1.14;letter-spacing:-0.024em;color:#fff;margin:16px 0 18px;hyphens:none;word-break:keep-all}
.wcz-h .c-blue2{color:#5AA0FF}
.wcz-p{font-size:15.5px;line-height:1.68;color:rgba(255,255,255,.78);margin:0 0 24px;max-width:400px}
.wcz-rows{display:grid;grid-template-columns:1fr 1fr;gap:30px 40px}
.wcz-row{display:flex;flex-direction:column;padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.11)}
.wcz-rule{display:block;width:36px;height:3px;border-radius:3px;background:var(--cc);box-shadow:0 0 10px var(--cc);margin-bottom:12px}
.wcz-cat{font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:8px}
.wcz-t{font-family:var(--display);font-weight:800;font-size:20px;line-height:1.24;color:#fff;letter-spacing:-0.015em;margin-bottom:7px}
.wcz-d{font-size:14.5px;line-height:1.58;color:rgba(180,196,220,.9)}
.wcz-band{margin-top:34px;border-radius:15px;padding:22px 28px;background:rgba(6,15,30,.62);border:1px solid transparent;background-image:linear-gradient(rgba(6,15,30,.62),rgba(6,15,30,.62)),linear-gradient(90deg,rgba(47,107,235,.6),rgba(72,228,24,.6));background-origin:border-box;background-clip:padding-box,border-box;font-family:var(--display);font-weight:700;font-size:17px;color:#fff;letter-spacing:-0.01em}
.wcz-band .hl{color:var(--green-bright)}
@media(max-width:1080px){.wcz-in{grid-template-columns:1fr;gap:40px}.wcz-rows{grid-template-columns:1fr}}
/* Services overview page */
.svcpg-hero{position:relative;overflow:hidden;background:linear-gradient(180deg,#F7FAFD,#EDF3FA);border-bottom:1px solid var(--line);padding:104px 0 72px}
.svcpg-hero-bg{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;background-image:linear-gradient(rgba(23,52,88,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(23,52,88,.045) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(120% 90% at 70% 40%,#000,transparent 78%);mask-image:radial-gradient(120% 90% at 70% 40%,#000,transparent 78%)}
.svcpg-hero-in{position:relative;z-index:1;display:grid;grid-template-columns:43fr 57fr;gap:52px;align-items:center}
.svcpg-hero-l h1{font-family:var(--display);font-weight:800;font-size:46px;line-height:1.08;letter-spacing:-0.028em;color:var(--ink);margin:14px 0 0;max-width:560px}
.svcpg-hero-l .lead{font-size:16.5px;line-height:1.65;color:var(--slate-dk);max-width:460px;margin:18px 0 0}
.svcpg-actions{margin-top:36px;display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}
.svcpg-collage{display:grid;grid-template-columns:1.5fr 1fr;grid-template-rows:1fr 1fr;gap:14px;height:400px}
.spc-main{grid-row:span 2;position:relative;border-radius:24px;overflow:hidden;box-shadow:0 30px 60px -32px rgba(10,27,52,.5)}
.spc-s{position:relative;border-radius:18px;overflow:hidden;box-shadow:0 24px 48px -30px rgba(10,27,52,.45)}
.svcpg-collage img{width:100%;height:100%;object-fit:cover}
.spc-main::after{content:"";position:absolute;inset:0;border-radius:24px;pointer-events:none;box-shadow:inset 0 0 0 1.5px rgba(72,228,24,.4)}
.spc-s::after{content:"";position:absolute;inset:0;border-radius:18px;pointer-events:none;box-shadow:inset 0 0 0 1.5px rgba(16,119,213,.35)}
.svcpg-proof{background:#fff;border-bottom:1px solid var(--line)}
.svcpg-proof-in{display:grid;grid-template-columns:repeat(4,1fr);padding:26px 44px}
.spp{padding:6px 26px;border-left:1px solid var(--line-2)}
.spp:first-child{border-left:0;padding-left:0}
.spp b{display:block;font-family:var(--display);font-weight:800;font-size:32px;color:var(--navy);letter-spacing:-0.028em;line-height:1}
.spp span{display:block;font-size:13.5px;color:var(--slate-dk);margin-top:7px;line-height:1.3}
.spcase-img{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 30px 66px -38px rgba(10,27,52,.5)}
.svcpg-case .spcase-img{position:relative;border-radius:24px;overflow:hidden}
.spcase-img img{width:100%;height:100%;object-fit:cover}
.spcase-lab{position:absolute;top:16px;left:16px;font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#08152B;background:var(--green-bright);border-radius:999px;padding:7px 14px}
.spcase-scope{display:flex;flex-wrap:wrap;gap:10px 18px;margin:22px 0 24px}
.spcase-scope span{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--navy)}
.spcase-scope svg{color:var(--green-deep);flex-shrink:0}
.svcpg-proc{display:grid;grid-template-columns:45fr 55fr;gap:52px;align-items:center}
.spproc-photo{position:relative;border-radius:24px;overflow:hidden;aspect-ratio:4/3.4;box-shadow:var(--sh-md)}
.spproc-photo img{width:100%;height:100%;object-fit:cover}
.spproc-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,27,52,.6),transparent 45%)}
.spproc-badge{position:absolute;left:18px;bottom:18px;z-index:2;font-family:var(--sans);font-weight:700;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:rgba(10,27,52,.66);backdrop-filter:blur(8px);border:1px solid rgba(72,228,24,.5);border-radius:999px;padding:8px 15px}
.spproc-steps{list-style:none;margin:0 0 26px;padding:0;position:relative}
.spproc-steps::before{content:"";position:absolute;left:19px;top:16px;bottom:16px;width:2px;background:linear-gradient(180deg,var(--blue),var(--green));opacity:.4}
.spproc-steps li{position:relative;display:flex;gap:18px;align-items:flex-start;padding:14px 0}
.sps-n{position:relative;z-index:1;flex-shrink:0;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#fff;border:2px solid var(--blue);color:var(--blue-deep);font-family:var(--display);font-weight:800;font-size:13px;box-shadow:0 0 0 5px var(--bg-alt)}
.spproc-steps li:last-child .sps-n{border-color:var(--green);color:var(--green-deep)}
.sps-b{display:flex;flex-direction:column;gap:4px;padding-top:3px}
.sps-t{font-size:18px;font-family:var(--display);font-weight:800;font-size:17px;color:var(--navy);letter-spacing:-0.015em}
.sps-d{font-size:15px;line-height:1.6;color:var(--slate-dk)}
@media(max-width:1080px){.svcpg-hero-in,.svcpg-proc{grid-template-columns:1fr}.svcpg-collage{height:320px}.svcpg-proof-in{grid-template-columns:1fr 1fr;gap:18px}.spp{border-left:0;padding-left:0}.spproc-photo{max-width:420px;aspect-ratio:16/10}}
@media(max-width:1180px){.nav-links{gap:16px}.nav-link{font-size:12.5px}.logo img{height:50px}.nav-phone{display:none}}
@media(max-width:1080px){.proc-split,.crit-split,.dz-ben,.ctr-map-wrap{grid-template-columns:1fr}.mz-quote{max-width:100%}
.proc-img,.crit-photo{max-width:420px;aspect-ratio:16/10}
.crit-split{margin-top:56px;padding-top:56px}
.proc-steps{padding-left:0}
.dz-hero-ben,.dzh-b{min-height:260px}
.spec-thumb{width:92px}
.ctr-light-zone,.ctr-dark-zone{padding:72px 0}
.ctr-map-zone{padding:72px 0 80px}
.ctr-apply-zone{padding:80px 0 72px}
.mz-stats{flex-wrap:wrap;gap:16px}}
.wi-hero-in{display:grid;grid-template-columns:52fr 48fr;gap:52px;align-items:center}
.wi-hero-l h1{font-family:var(--display);font-weight:800;font-size:48px;line-height:1.06;letter-spacing:-0.028em;color:var(--ink);margin:14px 0 0;max-width:560px}
.wi-hero-l .lead{font-size:17px;line-height:1.6;color:var(--slate);max-width:500px;margin:20px 0 0}
.wi-hero-actions{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}
.wi-hero-photo{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/3.2;box-shadow:var(--sh-md)}
.wi-hero-photo img{width:100%;height:100%;object-fit:cover}
.wi-badge{position:absolute;left:16px;bottom:16px;right:16px;display:flex;align-items:center;gap:9px;background:rgba(10,27,52,.66);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:11px 14px;font-family:var(--sans);font-weight:600;font-size:12.5px;color:#fff}
.wi-badge .wb-ic{color:var(--green-bright);display:grid;place-items:center;flex-shrink:0}
.wi-hero-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:14px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh-sm);overflow:hidden}
.wi-hero-stats>div{padding:16px 12px;text-align:center;position:relative;border-left:1px solid var(--line)}
.wi-hero-stats>div:first-child{border-left:0}
.wi-hero-stats>div::before{content:"";position:absolute;top:22%;bottom:22%;left:-1px;width:2px;background:linear-gradient(180deg,transparent,var(--green-bright),transparent);opacity:.6}
.wi-hero-stats>div:first-child::before{display:none}
.wi-hero-stats b{display:block;font-family:var(--display);font-weight:800;font-size:19px;color:var(--navy);letter-spacing:-0.02em}
.wi-hero-stats span{display:block;font-size:11px;color:var(--muted);margin-top:3px}
.wi-process{position:relative;overflow:hidden;background:var(--navy-2);padding:76px 0}
.wip-head{text-align:center;max-width:720px;margin:0 auto 34px}
.wip-head .eyebrow{margin-bottom:18px;justify-content:center;margin-bottom:14px}
.wip-head .h2{margin:0}
.wi-process::before{content:none}
.wi-process::after{content:"";position:absolute;inset:-18%;pointer-events:none;background:radial-gradient(52% 46% at 20% 16%,rgba(47,107,235,.16),rgba(47,107,235,0) 72%),radial-gradient(50% 44% at 82% 86%,rgba(72,228,24,.14),rgba(72,228,24,0) 72%)}
.wi-process .wrap{position:relative;z-index:1}
.wip-row{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;position:relative;text-align:center}
.wip-row::before{content:"";position:absolute;top:28px;left:12.5%;right:12.5%;height:2px;background:linear-gradient(90deg,var(--blue),var(--green-bright),var(--amber),var(--green-bright));opacity:.55;box-shadow:0 0 10px rgba(72,228,24,.4)}
.wip-step{position:relative;display:flex;flex-direction:column;align-items:center}
.wip-n{position:relative;width:56px;height:56px;border-radius:50%;background:var(--navy);border:2px solid var(--blue);color:var(--blue-deep);display:grid;place-items:center;box-shadow:0 0 0 6px var(--navy-2),0 0 20px -2px var(--blue);margin-bottom:16px}
.wip-step:nth-child(2) .wip-n{border-color:var(--green-bright);color:var(--green-bright);box-shadow:0 0 0 6px var(--navy-2),0 0 20px -2px var(--green-bright)}
.wip-step:nth-child(3) .wip-n{border-color:var(--amber);color:var(--amber);box-shadow:0 0 0 6px var(--navy-2),0 0 20px -2px var(--amber)}
.wip-step:nth-child(4) .wip-n{border-color:var(--green-bright);color:var(--green-bright);box-shadow:0 0 0 6px var(--navy-2),0 0 20px -2px var(--green-bright)}
.wip-num{font-family:var(--display);font-weight:800;font-size:12px;letter-spacing:.14em;color:rgba(255,255,255,.5);margin:10px 0 6px}
.wip-step h3{font-family:var(--display);font-weight:800;font-size:18px;color:#fff !important;letter-spacing:-0.015em;margin:0 0 7px}
.wip-step p{font-size:13.5px;line-height:1.5;color:rgba(255,255,255,.75);margin:0;max-width:230px}
.wip-foot{margin-top:34px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;gap:10px;font-size:13.5px;font-weight:600;color:rgba(255,255,255,.8)}
.wip-foot .wip-dot{width:7px;height:7px;border-radius:50%;background:var(--green-bright);box-shadow:0 0 8px var(--green-bright);flex-shrink:0}
.wip-tag{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--green-bright)}
.wip-tag .wip-dot{width:7px;height:7px;border-radius:50%;background:var(--green-bright);box-shadow:0 0 8px var(--green-bright)}
.wi-reasons5{display:flex;flex-wrap:wrap;justify-content:center;gap:18px}
.wi-reasons5>.wi-rcard{flex:0 1 calc((100% - 36px)/3);min-width:0}
.wi-reasons5 .wi-conclude{justify-content:center}
.wir-ic{position:relative;display:grid;place-items:center;width:42px;height:42px;border-radius:11px;color:var(--cc);background:color-mix(in srgb,var(--cc) 10%,#fff);border:1px solid color-mix(in srgb,var(--cc) 26%,transparent);margin-bottom:14px}
.wi-reasons{display:grid;grid-template-columns:1fr 1.15fr;gap:20px;margin-bottom:20px}
.wi-feature{position:relative;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--cc);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-sm)}
.wif-img{aspect-ratio:16/10;overflow:hidden}
.wif-img img{width:100%;height:100%;object-fit:cover}
.wif-b{padding:26px 26px 28px;position:relative}
.wif-n{position:absolute;top:20px;right:24px;font-family:var(--display);font-weight:800;font-size:64px;line-height:1;letter-spacing:-0.04em;color:var(--cc);opacity:.12}
.wif-b h3{font-family:var(--display);font-weight:800;font-size:22px;color:var(--navy);letter-spacing:-0.015em;margin:0 0 10px}
.wif-b p{font-size:14.5px;line-height:1.6;color:var(--slate);margin:0}
.wi-2x2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.wi-rcard{position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--cc);border-radius:var(--r-md);padding:26px 24px;box-shadow:var(--sh-sm);display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
.wir-wm{position:absolute;top:8px;right:14px;font-family:var(--display);font-weight:800;font-size:44px;line-height:1;letter-spacing:-0.04em;color:var(--cc);opacity:.09}
.wi-rcard::after{content:"";position:absolute;inset:0;border-radius:var(--r-md);pointer-events:none;box-shadow:inset 0 0 26px -12px var(--cc);opacity:.55}
.wi-rcard:hover{transform:translateY(-3px);box-shadow:var(--sh-md),0 0 22px -12px var(--cc)}
.wir-n{font-family:var(--display);font-weight:800;font-size:26px;color:var(--cc);letter-spacing:-0.02em;margin-bottom:12px;line-height:1}
.wi-rcard h3{position:relative;font-family:var(--display);font-weight:800;font-size:16.5px;color:var(--navy);letter-spacing:-0.01em;margin:0 0 7px;line-height:1.25;padding-top:6px}
.wi-rcard p{position:relative;font-size:13.5px;line-height:1.55;color:var(--muted);margin:0}
.wi-conclude{background:var(--navy);border-radius:var(--r-md);padding:26px 32px;display:flex;flex-direction:column;gap:7px}
.wi-conclude h3{font-family:var(--display);font-weight:800;font-size:20px;color:#fff;letter-spacing:-0.02em;margin:0}
.wi-conclude p{font-size:14.5px;line-height:1.5;color:rgba(255,255,255,.78);margin:0;max-width:640px}
.wi-proof{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding:80px 0}
.wi-proof-img{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/3;box-shadow:var(--sh-md)}
.wi-proof-img img{width:100%;height:100%;object-fit:cover}
.wi-proof-q{font-family:var(--display);font-weight:700;font-size:23px;line-height:1.4;letter-spacing:-0.015em;color:var(--navy);margin:16px 0 0}
.wi-proof-a{margin:22px 0 0}
.wi-proof-a b{display:block;font-family:var(--display);font-weight:800;font-size:16px;color:var(--navy)}
.wi-proof-a span{display:block;font-size:13.5px;color:var(--muted);margin-top:3px}
.wi-proof-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:26px;padding-top:24px;border-top:1px solid var(--line)}
.wi-proof-facts .pf-k{display:block;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.wi-proof-facts .pf-v{display:block;font-family:var(--display);font-weight:700;font-size:14px;color:var(--navy);margin-top:5px}
.wi-cred3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.wi-c3{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);padding:28px 24px;box-shadow:var(--sh-sm)}
.wi-c3 .c3-ic{width:50px;height:50px;border-radius:13px;display:grid;place-items:center;background:var(--green-soft);color:var(--green-deep);margin-bottom:16px;filter:drop-shadow(0 0 9px rgba(72,228,24,.4))}
.wi-c3:nth-child(2) .c3-ic{background:var(--blue-soft);color:var(--blue);filter:drop-shadow(0 0 9px rgba(47,107,235,.38))}
.wi-c3 h3{font-family:var(--display);font-weight:800;font-size:18px;color:var(--navy);letter-spacing:-0.015em;margin:0 0 7px}
.wi-c3 p{font-size:13.5px;line-height:1.55;color:var(--muted);margin:0}
.wi-cred-strip{margin-top:14px;text-align:center;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.92);border-radius:var(--r-md);padding:16px 24px;font-family:var(--display);font-weight:700;font-size:15px;letter-spacing:.01em}
.wi-case{position:relative;display:grid;grid-template-columns:1.1fr 1fr;background:linear-gradient(155deg,#13294A,#0A1A31);border:1px solid rgba(90,140,210,.22);border-radius:22px;overflow:hidden;box-shadow:0 34px 80px -40px #000}
.wi-case-img{position:relative;overflow:hidden}
.wi-case-img img{width:100%;height:100%;object-fit:cover;min-height:360px}
.wi-case-img::after{content:"";position:absolute;inset:0;box-shadow:inset -8px 0 40px -16px rgba(72,228,24,.55);pointer-events:none}
.wic-pill{position:absolute;top:16px;left:16px;z-index:2;font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#08152B;background:var(--green-bright);border-radius:999px;padding:6px 12px}
.wic-loc{position:absolute;bottom:16px;left:16px;z-index:2;display:inline-flex;align-items:center;gap:7px;font-family:var(--sans);font-weight:600;font-size:12px;color:#fff;background:rgba(6,14,28,.6);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:7px 13px}
.wi-case-b{position:relative;padding:44px;display:flex;flex-direction:column;justify-content:center}
.wic-qm{position:absolute;top:16px;right:28px;font-family:Georgia,serif;font-weight:700;font-size:120px;line-height:1;color:var(--green-bright);opacity:.24;text-shadow:0 0 30px rgba(72,228,24,.5)}
.wi-case-q{position:relative;z-index:1;font-family:var(--display);font-weight:700;font-size:20px;line-height:1.5;color:#fff;margin:14px 0 0}
.wi-case-a{margin:22px 0 0}
.wi-case-a b{display:block;font-family:var(--display);font-weight:800;font-size:16px;color:#fff}
.wi-case-a span{display:block;font-size:13px;color:rgba(255,255,255,.62);margin-top:3px}
.wi-case-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:24px;padding-top:22px;border-top:1px solid rgba(255,255,255,.16)}
.wi-case-facts .cf-k{display:block;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.wi-case-facts .cf-v{display:block;font-family:var(--display);font-weight:700;font-size:13.5px;color:#fff;margin-top:5px}
.wic-link{margin-top:22px;font-family:var(--sans);font-weight:700;font-size:13px;color:var(--green-bright);display:inline-flex;align-items:center;gap:8px}
.wic-link:hover{color:#fff}
.wi-cred-panel{position:relative;overflow:hidden;display:grid;grid-template-columns:0.82fr 1.18fr;gap:48px;background:linear-gradient(155deg,#13294A,#0A1A31);border:1px solid rgba(90,140,210,.22);border-radius:22px;padding:44px;box-shadow:0 34px 80px -40px #000}
.wcp-grid{position:absolute;inset:0;opacity:.5;pointer-events:none;background-image:linear-gradient(rgba(120,150,210,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(120,150,210,.05) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(circle at 20% 20%,#000,transparent 76%);mask-image:radial-gradient(circle at 20% 20%,#000,transparent 76%)}
.wcp-l{position:relative;z-index:1;align-self:center}
.wcp-link{margin-top:22px;font-family:var(--sans);font-weight:700;font-size:13px;color:var(--green-deep);display:inline-flex;align-items:center;gap:8px}
.wcp-link:hover{color:var(--blue)}
.wcp-matrix{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:0 28px}
.wcp-cell{display:flex;gap:13px;align-items:flex-start;padding:16px 0;border-top:1px solid rgba(255,255,255,.12)}
.wcp-cell:nth-child(1),.wcp-cell:nth-child(2){border-top:0}
.wcp-ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;color:var(--cc);background:rgba(255,255,255,.04);box-shadow:0 0 14px -3px var(--cc);border:1px solid rgba(255,255,255,.1)}
.wcp-cell h4{font-family:var(--display);font-weight:800;font-size:15px;color:#fff;letter-spacing:-0.01em;margin:2px 0 4px}
.wcp-cell p{font-size:12.5px;line-height:1.45;color:rgba(255,255,255,.66);margin:0}
@media(max-width:1080px){.wi-hero-in,.wi-reasons{grid-template-columns:1fr}.wi-reasons5{grid-template-columns:1fr 1fr}.wi-case{grid-template-columns:1fr}.wi-cred-panel{grid-template-columns:1fr;gap:32px}.wcp-matrix{grid-template-columns:1fr}.wcp-cell:nth-child(2){border-top:1px solid rgba(255,255,255,.12)}.wip-row{grid-template-columns:1fr 1fr}.wip-row::before{display:none}.wi-2x2{grid-template-columns:1fr 1fr}}
/* Contractor page */
.ctr-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#0E2340,#0A1A31);padding:112px 0 48px}
.ctr-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(680px 420px at 88% 8%,rgba(47,107,235,.2),transparent 60%),radial-gradient(560px 400px at 0% 100%,rgba(72,228,24,.14),transparent 62%)}
.ctr-hero::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;background-image:linear-gradient(rgba(120,150,210,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(120,150,210,.05) 1px,transparent 1px);background-size:52px 52px;-webkit-mask-image:radial-gradient(circle at 30% 40%,#000,transparent 72%);mask-image:radial-gradient(circle at 30% 40%,#000,transparent 72%)}
.ctr-hero-in{position:relative;z-index:1;display:grid;grid-template-columns:45fr 55fr;gap:48px;align-items:center}
.ctr-hero-l h1{font-family:var(--display);font-weight:800;font-size:56px;line-height:1.08;letter-spacing:-0.03em;color:#fff;margin:16px 0 0}
.ctr-hero-l h1 .c-green{color:var(--green-bright)}
.ctr-hero-l p{font-size:18px;line-height:1.62;color:rgba(255,255,255,.86);margin:24px 0 0;max-width:480px}
.ctr-hero-actions{display:flex;align-items:center;gap:22px;margin:34px 0 0}
.ctr-phone{color:#fff;font-family:var(--sans);font-weight:700;font-size:14px;display:inline-flex;align-items:center;gap:8px}
.ctr-phone:hover{color:var(--green-bright)}
.ctr-collage{display:grid;grid-template-columns:1.35fr 1fr;grid-template-rows:1fr 1fr;gap:14px;height:460px}
.ctr-collage>div{position:relative;border-radius:14px;overflow:hidden;box-shadow:0 20px 50px -24px #000;min-height:0}
.ctr-collage img{width:100%;height:100%;object-fit:cover}
.cc-a{grid-row:span 2}
.cc-a::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(72,228,24,.28)}
@media(max-width:1080px){.ctr-collage{grid-template-columns:1fr 1fr;grid-template-rows:auto;height:auto}.cc-a{grid-row:auto;grid-column:span 2;aspect-ratio:16/9}.cc-b,.cc-c{aspect-ratio:4/3}}
.proc-sec{padding:80px 0}.proc-track{position:relative}
.proc-track::before{content:"";position:absolute;top:26px;left:16%;right:16%;height:2px;background:linear-gradient(90deg,var(--blue),var(--green-bright),var(--amber));box-shadow:0 0 12px rgba(72,228,24,.5);z-index:0}
.proc-track .proc-step{text-align:center;padding-top:0;z-index:1}
.proc-node{width:54px;height:54px;border-radius:50%;margin:0 auto 18px;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:20px;color:#fff;background:var(--bg);border:2px solid var(--blue);box-shadow:0 0 0 6px var(--bg),0 0 18px -2px var(--blue)}
.proc-track .proc-step:nth-child(2) .proc-node{border-color:var(--green-bright);box-shadow:0 0 0 6px var(--bg),0 0 18px -2px var(--green-bright);color:var(--green-deep)}
.proc-track .proc-step:nth-child(3) .proc-node{border-color:var(--amber);box-shadow:0 0 0 6px var(--bg),0 0 18px -2px var(--amber);color:#C9860E}
.proc-track .proc-step:nth-child(1) .proc-node{color:var(--blue)}
.proc-track .proc-step p{margin:0 auto;max-width:280px}
.spec-sec{background:#F4F8FD}
.proc-row{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;position:relative}
.proc-step{position:relative;padding:8px 8px 0}
.proc-n{font-family:var(--display);font-weight:800;font-size:40px;color:var(--blue-deep);letter-spacing:-0.02em;line-height:1;margin-bottom:16px}
.proc-step:nth-child(2) .proc-n{color:var(--green-deep)}
.proc-step:nth-child(3) .proc-n{color:#C9860E}
.proc-step h3{font-family:var(--display);font-weight:800;font-size:20px;color:var(--navy);letter-spacing:-0.015em;margin:0 0 10px}
.proc-step p{font-size:14.5px;line-height:1.6;color:var(--slate);margin:0;max-width:300px}
.ben-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.ctr-benefits{position:relative;overflow:hidden}
.ctr-benefits::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(640px 380px at 12% 0%,rgba(47,107,235,.16),transparent 60%),radial-gradient(560px 360px at 92% 100%,rgba(72,228,24,.13),transparent 62%)}
.ctr-benefits .wrap{position:relative;z-index:1}
.ben-card{position:relative;overflow:hidden;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.14);border-top:3px solid var(--cc);border-radius:16px;padding:30px 24px 24px;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;flex-direction:column}
.ben-card::before{content:"";position:absolute;top:0;left:0;right:0;height:120px;pointer-events:none;background:radial-gradient(120px 80px at 24% 0%,color-mix(in srgb,var(--cc) 22%,transparent),transparent 70%);opacity:.7}
.ben-card:hover{transform:translateY(-4px);border-top-color:var(--cc);box-shadow:0 22px 44px -26px #000,0 0 26px -12px var(--cc)}
.ben-ic{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--cc) 18%,transparent);color:var(--cc);margin-bottom:16px;filter:drop-shadow(0 0 9px color-mix(in srgb,var(--cc) 55%,transparent))}
.ben-card h3{position:relative;font-family:var(--display);font-weight:800;font-size:17.5px;color:#fff;letter-spacing:-0.01em;margin:0 0 9px;line-height:1.25}
.ben-card p{position:relative;font-size:13.5px;line-height:1.6;color:rgba(255,255,255,.74);margin:0}
.ben-out{position:relative;margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.12);font-family:var(--display);font-weight:700;font-size:12.5px;line-height:1.4;color:var(--cc)}
.spec-section{background:linear-gradient(180deg,#0E2340,#0A1A31);position:relative;overflow:hidden}
.spec-section::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(620px 380px at 10% 0%,rgba(47,107,235,.16),transparent 60%),radial-gradient(560px 360px at 92% 100%,rgba(72,228,24,.12),transparent 62%)}
.spec-section .wrap{position:relative;z-index:1}
.spec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:34px}
.spec-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-auto-flow:column;grid-template-rows:repeat(5,1fr);gap:18px;align-items:stretch}
.spec-card{display:flex;align-items:center;gap:0;height:100%;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1);border-top:2.5px solid var(--cc);border-radius:14px;overflow:hidden;min-height:0;border-top:0;border-left:3px solid var(--cc);border-radius:14px;box-shadow:0 18px 40px -28px #000;transition:transform .22s,box-shadow .22s,background .22s}
.spec-card:hover{transform:translateY(-4px);background:rgba(255,255,255,.07);box-shadow:0 24px 50px -26px #000,0 0 22px -14px var(--cc)}
.spec-card .spec-ill{width:34%;min-height:104px;align-self:stretch;display:grid;place-items:center;color:var(--cc);background:radial-gradient(circle at 50% 45%,color-mix(in srgb,var(--cc) 22%,transparent),transparent 70%);border-right:1px solid rgba(255,255,255,.08);filter:drop-shadow(0 0 6px var(--cc)) drop-shadow(0 0 16px var(--cc));transition:transform .3s}
.spec-card:hover .spec-ill{transform:scale(1.08)}
.spec-card .spec-b{flex:1;display:flex;flex-direction:column;gap:5px;padding:0 16px}
.spec-card .spec-t{font-size:19px;font-family:var(--display);font-weight:700;font-size:16px;color:#fff;letter-spacing:-0.01em;line-height:1.2}
.spec-card .spec-d{font-size:15px;line-height:1.55;font-size:12.5px;color:rgba(255,255,255,.62);line-height:1.35}
.spec-card>svg{color:rgba(255,255,255,.4);flex-shrink:0;margin-right:18px;transition:transform .22s,color .22s}
.spec-card:hover>svg{color:var(--cc);transform:translateX(3px)}
.crit-panel{display:grid;grid-template-columns:repeat(3,1fr);background:linear-gradient(150deg,#0E2340,#0A1A31);border-radius:var(--r-lg);overflow:hidden;position:relative;box-shadow:var(--sh-md)}
.crit-panel::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;background-image:linear-gradient(rgba(120,150,210,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(120,150,210,.05) 1px,transparent 1px);background-size:46px 46px;-webkit-mask-image:radial-gradient(circle at 50% 30%,#000,transparent 78%);mask-image:radial-gradient(circle at 50% 30%,#000,transparent 78%)}
.crit-col{position:relative;padding:48px 40px;border-left:1px solid rgba(255,255,255,.1)}
.crit-col:first-child{border-left:0}
.crit-col::before{content:"";position:absolute;top:0;left:36px;width:40px;height:3px;background:var(--cc);box-shadow:0 0 12px var(--cc)}
.crit-num{font-family:var(--display);font-weight:800;font-size:52px;line-height:1;letter-spacing:-0.03em;color:var(--cc);margin-bottom:16px;text-shadow:0 0 22px color-mix(in srgb,var(--cc) 60%,transparent)}
.crit-col h3{font-family:var(--display);font-weight:800;font-size:19px;color:#fff;letter-spacing:-0.015em;margin:0 0 18px}
.crit-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.crit-col li{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;line-height:1.5;color:rgba(255,255,255,.82)}
.crit-col li svg{color:var(--cc);flex-shrink:0;margin-top:3px}
.crit-foot{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:24px;flex-wrap:wrap}
.crit-line{font-family:var(--display);font-weight:800;font-size:18px;color:var(--navy);letter-spacing:-0.015em}
.crit-cta{font-family:var(--sans);font-weight:700;font-size:14px;color:var(--blue-deep);display:inline-flex;align-items:center;gap:8px}
.crit-cta:hover{color:var(--navy);gap:11px}
.ctr-map-wrap{display:grid;grid-template-columns:0.78fr 1.22fr;gap:52px;align-items:center}
.ctr-state svg{color:var(--green-deep)}
.ctr-map{position:relative;background:var(--navy-2);border-radius:var(--r-lg);padding:0;overflow:hidden;box-shadow:0 40px 80px -34px rgba(10,27,52,.6),0 0 0 1px rgba(90,140,210,.24),0 0 46px -12px rgba(72,228,24,.42)}
.ctr-map>img{display:block;width:100%;height:100%;object-fit:cover;border-radius:var(--r-lg)}
.ctr-legend{position:absolute;left:24px;bottom:20px;z-index:2;display:flex;gap:18px;font-size:11.5px;font-weight:600;color:rgba(255,255,255,.72)}
.ctr-legend span{display:inline-flex;align-items:center;gap:6px}
.lg-dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.lg-green{background:#48E418}
.lg-blue{background:#5AA0FF}
.ctr-quote{position:relative;overflow:hidden;background:var(--navy-2);padding:56px 0;text-align:center}
.ctr-quote::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(560px 300px at 50% 0%,rgba(47,107,235,.16),transparent 62%),radial-gradient(460px 280px at 80% 100%,rgba(72,228,24,.12),transparent 62%)}
.ctr-quote .wrap{position:relative;z-index:1}
.ctr-q-panel{position:relative;max-width:860px;margin:0 auto;background:linear-gradient(155deg,rgba(23,52,88,.6),rgba(10,24,48,.6));border:1px solid rgba(90,140,210,.28);border-radius:22px;padding:44px 48px;box-shadow:0 30px 70px -36px #000,inset 0 0 60px -30px rgba(47,107,235,.4);backdrop-filter:blur(6px)}
.ctr-q-mark{font-family:Georgia,serif;font-weight:700;font-size:72px;line-height:.4;color:var(--green-bright);height:32px;text-shadow:0 0 24px rgba(72,228,24,.55)}
.ctr-q-t{max-width:820px;margin:0 auto;font-family:var(--display);font-weight:700;font-size:26px;line-height:1.4;letter-spacing:-0.015em;color:#fff}
.ctr-q-a{margin-top:26px}
.ctr-q-a b{display:block;font-family:var(--display);font-weight:800;font-size:16px;color:#fff}
.ctr-q-a span{display:block;font-size:13px;color:rgba(255,255,255,.6);margin-top:4px}
@media(max-width:1080px){.ctr-hero-in,.ctr-map-wrap{grid-template-columns:1fr}.ben-grid{grid-template-columns:1fr 1fr}.proc-row,.spec-grid,.crit-panel{grid-template-columns:1fr}.spec-head{flex-direction:column;align-items:flex-start;gap:16px}.crit-col{border-left:0;border-top:1px solid rgba(255,255,255,.1)}.crit-col:first-child{border-top:0}}

/* ---- Interior pages ---- */
.page-hero{position:relative;overflow:hidden;background:var(--bg-alt);border-bottom:1px solid var(--line);padding:150px 0 72px}
.page-hero::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--green),var(--blue) 55%,var(--amber));box-shadow:0 0 14px rgba(47,107,235,.5);z-index:2}
.page-hero::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.55;background-image:linear-gradient(rgba(47,107,235,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(47,107,235,.05) 1px,transparent 1px);background-size:46px 46px;-webkit-mask-image:radial-gradient(circle at 82% 30%,#000,transparent 68%);mask-image:radial-gradient(circle at 82% 30%,#000,transparent 68%)}
.page-hero .wrap{position:relative;z-index:1}
.page-hero .crumbs{font-size:13px;color:var(--muted);margin-bottom:20px;font-weight:600}
.page-hero .crumbs a:hover{color:var(--blue)}
.page-hero h1{font-family:var(--display);font-weight:800;font-size:52px;line-height:1.05;letter-spacing:-0.025em;color:var(--ink);max-width:900px;text-wrap:balance}
.page-hero .lead{font-size:19px;line-height:1.55;color:var(--slate);max-width:720px;margin:22px 0 0}
.page-hero .hero-actions{display:flex;gap:14px;margin-top:32px;flex-wrap:wrap}
.prose{max-width:770px}
.prose p{font-size:17px;line-height:1.7;color:var(--slate);margin:0 0 20px}
.prose p.k{font-family:var(--display);font-weight:800;font-size:22px;color:var(--ink);line-height:1.35}
.detail{display:grid;grid-template-columns:1.5fr 1fr;gap:64px;align-items:start}
.detail-side{position:sticky;top:104px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:30px;box-shadow:var(--sh-sm)}
.detail-side h4{font-family:var(--display);font-weight:800;font-size:18px;color:var(--navy);margin:0 0 6px}
.detail-side .sub{font-size:13.5px;color:var(--muted);margin:0 0 16px}
.detail-side .row{display:flex;gap:11px;align-items:center;padding:11px 0;border-top:1px solid var(--line);font-size:13.5px;color:var(--navy);font-weight:500}
.detail-side .row .i{color:var(--green-deep);flex-shrink:0}
.detail-side .btn{width:100%;justify-content:center;margin-top:20px}
.svc-media{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:16/10;box-shadow:var(--sh-md);margin-bottom:40px}
.svc-media::after{content:"";position:absolute;inset:0;border-radius:var(--r-lg);pointer-events:none;box-shadow:inset 0 0 0 1px rgba(47,107,235,.2),inset 0 0 46px -12px rgba(47,107,235,.35)}
.svc-media img{width:100%;height:100%;object-fit:cover}
.svc-list{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.svc-list-item{display:flex;flex-direction:column;gap:0;padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-sm);transition:transform .2s,box-shadow .2s,border-color .2s;cursor:pointer}
.svc-list-item:hover{transform:translateY(-3px);box-shadow:var(--sh-md);border-color:var(--line-2)}
.svc-list-item .li-ic{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;color:#fff;flex-shrink:0;margin-bottom:16px;box-shadow:0 10px 20px -8px rgba(16,119,213,.45)}
.svc-list-item h3{font-family:var(--display);font-weight:700;font-size:17px;color:var(--navy);margin:0 0 7px;letter-spacing:-0.01em}
.svc-list-item p{font-size:13.5px;line-height:1.55;color:var(--muted);margin:0}
.svc-list-item .go{margin-top:14px;font-size:13px;font-weight:700;color:var(--blue-deep);display:inline-flex;gap:6px;align-items:center}
.pf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.pf-img{aspect-ratio:4/3;position:relative;overflow:hidden;background:var(--bg-alt)}
.pf-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.pf-card{position:relative;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--sh-sm);transition:transform .24s,box-shadow .24s,border-color .24s;cursor:pointer;text-align:left;padding:0}
.pf-card:hover{transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(14,35,64,.5);border-color:color-mix(in srgb,var(--tc) 45%,var(--line))}
.pf-card.tone-g{--tc:var(--green)}.pf-card.tone-b{--tc:var(--blue)}.pf-card.tone-y{--tc:#C9860E}.pf-card.tone-e{--tc:#1077D5}
.pf-card::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--tc);opacity:0;transition:opacity .24s;z-index:3}
.pf-card:hover::after{opacity:1}
.pf-b{padding:24px 22px 26px;display:flex;flex-direction:column;flex:1;background:linear-gradient(180deg,#fff,#F7FAFD)}
.pf-b .pf-loc{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--green-deep);margin-top:2px}
.pf-b h3{font-family:var(--display);font-weight:800;font-size:23px;color:var(--navy);margin:8px 0 9px;letter-spacing:-0.02em;line-height:1.14}
.pf-b p{font-size:15px;line-height:1.58;color:var(--slate-dk);margin:0}
.pf-b .pf-view{margin-top:auto;padding-top:18px}
.pf-img{aspect-ratio:4/3;position:relative;overflow:hidden;background:var(--bg-alt)}
.pf-badge{position:absolute;top:14px;right:14px;z-index:2;display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:999px;background:rgba(6,14,28,.72);backdrop-filter:blur(6px);color:#fff;font-family:var(--sans);font-weight:700;font-size:10.5px;line-height:1}
.pf-img::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 52%,rgba(6,14,28,.5));opacity:.85;transition:opacity .24s}
.pf-card:hover .pf-img::after{opacity:1}
.pf-tag2{position:absolute;bottom:12px;left:12px;z-index:2;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.94);color:var(--tc,var(--blue));font-family:var(--sans);font-weight:700;font-size:10px;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 4px 12px -4px rgba(6,14,28,.5)}
.pff-flag{display:inline-block;font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:12px}
.pf-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.pf-card:hover .pf-img img{transform:scale(1.05)}
.pf-card:hover .pf-img{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--tc) 55%,transparent)}
.pf-card:hover .pf-tag2{box-shadow:0 0 14px -3px color-mix(in srgb,var(--tc) 70%,transparent)}
.pf-loc{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green-deep)}
.pf-view{display:inline-flex;align-items:center;gap:7px;margin-top:14px;font-family:var(--sans);font-weight:700;font-size:14px;color:var(--navy);border-bottom:2px solid transparent;padding-bottom:2px;transition:color .2s,gap .2s,border-color .2s}
.pf-card:hover .pf-view{color:var(--tc,var(--blue));border-color:var(--tc,var(--blue));gap:11px}
.cta-trust{display:inline-flex;align-items:center;margin-top:22px;font-size:13px;color:rgba(255,255,255,.94);font-weight:600;position:relative;padding:10px 18px 10px 32px;background:rgba(6,17,34,.72);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.14);border-radius:999px}
.cta-trust::before{content:"";position:absolute;left:16px;top:50%;margin-top:-3.5px;width:7px;height:7px;border-radius:50%;background:var(--green-bright);box-shadow:0 0 8px rgba(72,228,24,.8)}
.lb{position:fixed;inset:0;z-index:300;background:rgba(6,14,28,.94);backdrop-filter:blur(6px);display:grid;grid-template-columns:64px 1fr 64px;grid-template-rows:auto 1fr auto;gap:14px;padding:22px 26px 26px;align-items:center}
.lb-x{grid-column:3;grid-row:1;justify-self:end;width:42px;height:42px;border-radius:10px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:#fff;display:grid;place-items:center;cursor:pointer;transition:background .2s}
.lb-x:hover{background:rgba(255,255,255,.16)}
.lb-head{grid-column:1/3;grid-row:1;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#fff;padding-left:6px}
.lb-t{font-family:var(--display);font-weight:800;font-size:20px;letter-spacing:-0.015em}
.lb-loc{font-size:13px;color:rgba(255,255,255,.6);margin-top:2px}
.lb-count{font-family:var(--sans);font-weight:700;font-size:13px;color:var(--green-bright);letter-spacing:.06em}
.lb-nav{grid-row:2;width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.08);color:#fff;display:grid;place-items:center;cursor:pointer;transition:background .2s,transform .2s}
.lb-nav:hover{background:rgba(255,255,255,.2)}
.lb-nav.prev{grid-column:1;transform:scaleX(-1)}
.lb-nav.next{grid-column:3}
.lb-stage{grid-column:2;grid-row:2;height:100%;min-height:0;display:flex;align-items:center;justify-content:center}
.lb-stage img{max-width:100%;max-height:66vh;border-radius:12px;box-shadow:0 30px 70px -20px #000;object-fit:contain}
.lb-thumbs{grid-column:1/4;grid-row:3;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.lb-thumb{width:76px;height:52px;border-radius:8px;overflow:hidden;border:2px solid transparent;padding:0;cursor:pointer;opacity:.55;transition:opacity .2s,border-color .2s}
.lb-thumb.on,.lb-thumb:hover{opacity:1;border-color:var(--green-bright)}
.lb-thumb img{width:100%;height:100%;object-fit:cover}
/* Our Work hero */
.work-hero{position:relative;background:linear-gradient(180deg,#EDF3FA,var(--bg-alt));border-bottom:1px solid var(--line);padding:120px 0 52px;overflow:hidden}
.work-hero::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.6;background-image:linear-gradient(rgba(16,119,213,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(16,119,213,.045) 1px,transparent 1px);background-size:52px 52px;-webkit-mask-image:radial-gradient(120% 90% at 78% 30%,#000,transparent 72%);mask-image:radial-gradient(120% 90% at 78% 30%,#000,transparent 72%)}
.work-hero::after{content:"";position:absolute;top:-140px;right:-80px;width:560px;height:560px;pointer-events:none;background:radial-gradient(circle,rgba(16,119,213,.14),transparent 62%)}
.work-hero-in{position:relative;z-index:1;display:grid;grid-template-columns:44fr 56fr;gap:56px;align-items:center}
.wh-cred{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:28px;padding-top:22px;border-top:1px solid var(--line-2)}
.wh-cred span{font-size:13px;color:var(--slate);font-weight:500;position:relative;padding-left:16px}
.wh-cred span::before{content:"";position:absolute;left:0;top:7px;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 8px rgba(72,228,24,.6)}
.wh-cred b{font-family:var(--display);font-weight:800;color:var(--navy)}
.page-eyebrow{font-size:12px;font-weight:600;color:var(--muted);margin-bottom:8px;letter-spacing:.02em}
.page-eyebrow a:hover{color:var(--blue)}
.page-eyebrow span{margin:0 6px;opacity:.5}
.work-hero-l h1{font-family:var(--display);font-weight:800;font-size:46px;line-height:1.06;letter-spacing:-0.028em;color:var(--ink);margin:16px 0 0;max-width:560px}
.work-hero-l .lead{font-size:16.5px;line-height:1.6;color:var(--slate-dk);max-width:440px;margin:18px 0 0}
.work-hero-actions{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap}
.work-hero-actions .btn-outline{border-color:var(--line-2);box-shadow:none;font-weight:600}
.wh-proof{display:flex;gap:0;margin-top:30px;padding-top:22px;border-top:1px solid var(--line-2)}
.whp{padding:0 22px;border-left:1px solid var(--line-2);display:flex;flex-direction:column;gap:3px}
.whp:first-child{padding-left:0;border-left:0}
.whp b{font-family:var(--display);font-weight:800;font-size:19px;color:var(--navy);letter-spacing:-0.02em;line-height:1.1}
.whp span{font-size:12.5px;color:var(--muted);line-height:1.35}
.wh-collage{display:grid;grid-template-columns:1.35fr 1fr;grid-template-rows:1fr 1fr;gap:14px;height:520px}
.svc-proofrail{display:flex;gap:0;margin-top:34px;border-top:1px solid rgba(255,255,255,.14);padding-top:22px}
.svc-proofrail>div{padding:0 22px;border-left:1px solid rgba(255,255,255,.12)}
.svc-proofrail>div:first-child{padding-left:0;border-left:0}
.svc-proofrail b{display:block;font-family:var(--display);font-weight:800;font-size:19px;color:#fff;letter-spacing:-0.01em}
.svc-proofrail span{display:block;font-size:12px;color:rgba(255,255,255,.62);margin-top:3px}
.svc-hero-collage{position:relative;height:404px}
.shc-main{position:absolute;top:0;right:0;width:80%;height:100%;border-radius:20px;overflow:hidden;border:1.5px solid rgba(77,155,255,.6);box-shadow:0 0 0 1px rgba(77,155,255,.3),0 0 44px -6px rgba(47,107,235,.6),0 30px 70px -30px #000}
.shc-main img{width:100%;height:100%;object-fit:cover}
.sd-hero-img .shc-badge{top:auto;bottom:20px;left:20px;display:inline-flex;align-items:center;gap:9px;background:rgba(8,20,38,.78);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:8px 15px;text-shadow:none}
.shc-dot{width:8px;height:8px;border-radius:50%;background:var(--green-bright);box-shadow:0 0 10px var(--green-bright);flex-shrink:0}
.shc-badge{position:absolute;top:16px;left:16px;z-index:2;background:rgba(10,27,52,.62);backdrop-filter:blur(10px);border:1px solid rgba(72,228,24,.5);border-radius:999px;padding:8px 14px;font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#fff;box-shadow:0 0 18px -6px rgba(72,228,24,.5)}
.shc-f{position:absolute;border-radius:14px;overflow:hidden;z-index:3}
.shc-f img{width:100%;height:100%;object-fit:cover}
.shc-f1{width:32%;aspect-ratio:4/3;top:16%;left:0;border:1.5px solid rgba(56,199,222,.5);box-shadow:0 0 18px -6px rgba(56,199,222,.5),0 18px 44px -18px #000}
.shc-f2{width:28%;aspect-ratio:1/1;bottom:8%;left:9%;border:1.5px solid rgba(72,228,24,.5);box-shadow:0 0 18px -6px rgba(72,228,24,.5),0 18px 44px -18px #000}
.svc-dir{position:relative;overflow:hidden;background:linear-gradient(180deg,#0E2340,#0A1A31);padding:104px 0 108px}
.svc-dir-bp{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.6;background-image:linear-gradient(rgba(120,160,220,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(120,160,220,.05) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(130% 80% at 50% 0%,#000,transparent 76%);mask-image:radial-gradient(130% 80% at 50% 0%,#000,transparent 76%)}
.svc-dir .wrap{position:relative;z-index:1}
.svc-dir-top{max-width:820px;margin:0 0 8px}
.svc-dir-top .svc-h{margin:14px 0 14px}
.svc-group{margin-top:8px}
.proc-row5{grid-template-columns:repeat(5,1fr)}
.proc-row5 .proc-step p{max-width:none}
.svc-track{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;position:relative;margin-top:8px}
.svc-track::before{content:"";position:absolute;top:28px;left:10%;right:10%;height:2px;background:linear-gradient(90deg,var(--blue),var(--green-bright) 55%,var(--amber));box-shadow:0 0 12px rgba(72,228,24,.4);z-index:0}
.svc-track .proc-step{text-align:center;padding:0;z-index:1}
.svc-track .proc-node{width:56px;height:56px;border-radius:50%;margin:0 auto 14px;display:grid;place-items:center;color:var(--blue);background:#fff;border:2px solid var(--blue);box-shadow:0 0 0 6px var(--bg-alt),0 0 20px -4px rgba(16,119,213,.5)}
.svc-track .proc-step:nth-child(2) .proc-node{color:var(--green-deep);border-color:var(--green-bright);box-shadow:0 0 0 6px var(--bg-alt),0 0 20px -4px rgba(72,228,24,.5)}
.svc-track .proc-step:nth-child(3) .proc-node{color:#C9860E;border-color:var(--amber);box-shadow:0 0 0 6px var(--bg-alt),0 0 20px -4px rgba(242,168,28,.5)}
.svc-track .proc-step:nth-child(4) .proc-node{color:var(--green-deep);border-color:var(--green-bright);box-shadow:0 0 0 6px var(--bg-alt),0 0 20px -4px rgba(72,228,24,.5)}
.svc-track .proc-step:nth-child(5) .proc-node{color:#C9860E;border-color:var(--amber);box-shadow:0 0 0 6px var(--bg-alt),0 0 20px -4px rgba(242,168,28,.5)}
.proc-sn{font-family:var(--display);font-weight:800;font-size:13px;letter-spacing:.1em;color:var(--muted);margin-bottom:7px}
.svc-track .proc-step h3{font-size:17px;margin:0 0 8px}
.svc-track .proc-step p{font-size:14px;line-height:1.55;max-width:220px;margin:0 auto}
.svc-statband{background:linear-gradient(180deg,#0E2340,#0A1A31);padding:44px 0}
.svc-statband-in{display:grid;grid-template-columns:repeat(4,1fr)}
.ssb{text-align:center;padding:0 20px;border-left:1px solid rgba(255,255,255,.12)}
.ssb:first-child{border-left:0}
.ssb b{display:block;font-family:var(--display);font-weight:800;font-size:32px;letter-spacing:-0.02em;color:#fff;line-height:1}
.ssb span{display:block;font-size:13px;color:rgba(183,196,218,.85);margin-top:8px}
@media(max-width:1080px){.svc-track{grid-template-columns:1fr 1fr}.svc-track::before{display:none}.svc-statband-in{grid-template-columns:1fr 1fr;gap:24px 0}}
.proc-proof{margin-top:34px;display:inline-flex;align-items:center;gap:12px;background:linear-gradient(90deg,rgba(47,107,235,.12),rgba(72,228,24,.1));border:1px solid var(--line);border-radius:999px;padding:14px 26px;font-family:var(--display);font-weight:800;font-size:16px;color:var(--navy);letter-spacing:-0.01em}
.proc-proof svg{color:var(--green-deep);flex-shrink:0}
@media(max-width:1080px){.ctr-hero-in{grid-template-columns:1fr}.svc-hero-collage{height:320px}.spec-grid{grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row}.proc-row5{grid-template-columns:1fr 1fr}}
.wh-collage{height:520px}
.wh-c{display:block;border-radius:18px;overflow:hidden;box-shadow:0 26px 56px -30px rgba(10,27,52,.6);position:relative}
.wh-c::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(0deg,rgba(10,27,52,.82),rgba(10,27,52,.12) 46%,transparent 68%)}
.wh-lab{position:absolute;left:18px;right:18px;bottom:16px;z-index:2;display:flex;flex-direction:column;gap:3px}
.wh-lab b{font-family:var(--display);font-weight:800;font-size:19px;color:#fff;letter-spacing:-0.018em;line-height:1.15}
.wh-lab span{font-size:12.5px;font-weight:600;color:#48E418;letter-spacing:.02em}
.wh-lab.sm{left:14px;right:14px;bottom:13px}
.wh-lab.sm b{font-size:15px}
.wh-lab.sm span{font-size:11.5px}
.wh-c::after{content:"";position:absolute;inset:0;z-index:2;border-radius:18px;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(16,119,213,.24);transition:box-shadow .25s}
.wh-c:hover::after{box-shadow:inset 0 0 0 2px rgba(16,119,213,.6)}
.wh-c1::after{box-shadow:inset 0 0 0 1px rgba(72,228,24,.32)}
.wh-c1:hover::after{box-shadow:inset 0 0 0 2px rgba(72,228,24,.65)}
.wh-c img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.wh-c:hover img{transform:scale(1.05)}
.wh-c1{grid-row:span 2}
.wh-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.wh-stats>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px;box-shadow:var(--sh-sm)}
.wh-stats b{display:block;font-family:var(--display);font-weight:800;font-size:24px;color:var(--navy);letter-spacing:-0.02em}
.wh-stats span{display:block;font-size:12px;color:var(--muted);margin-top:3px}
/* Filters + featured */
.filter-label{display:none}
.pf-filters-row{display:flex;align-items:center;gap:18px;margin-bottom:44px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:12px 16px;box-shadow:var(--sh-sm)}
.pf-fl-lbl{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);white-space:nowrap;flex-shrink:0}
.pf-filters{display:flex;flex-wrap:wrap;gap:8px;flex:1;justify-content:center}
.pf-count{font-size:12.5px;color:var(--muted);font-weight:600;white-space:nowrap;flex-shrink:0}
.pill{font-family:var(--sans);font-weight:600;font-size:13px;color:var(--navy);background:var(--bg-alt);border:1px solid transparent;border-radius:999px;padding:9px 18px;cursor:pointer;transition:all .18s}
.pill:hover{background:#fff;border-color:var(--blue);color:var(--blue);box-shadow:0 0 0 3px rgba(16,119,213,.1)}
.pill.on{background:var(--navy);color:#fff;border-color:var(--navy);box-shadow:0 8px 18px -8px rgba(14,35,64,.5)}
.pf-featured{position:relative;display:grid;grid-template-columns:59fr 41fr;gap:0;width:100%;text-align:left;background:linear-gradient(150deg,#13294A,#0A1A31);border:1px solid rgba(90,140,210,.22);border-radius:22px;overflow:hidden;box-shadow:0 34px 80px -40px #000;cursor:pointer;margin-bottom:56px;transition:transform .22s,box-shadow .22s}
.pf-featured:hover{transform:translateY(-4px);box-shadow:0 40px 90px -40px #000,0 0 40px -18px rgba(16,119,213,.6)}
.pff-img{position:relative;overflow:hidden;min-height:340px;background:var(--bg-alt)}
.pff-img::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset -10px 0 46px -18px rgba(16,119,213,.6)}
.pff-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.pf-featured:hover .pff-img img{transform:scale(1.04)}
.pff-b{position:relative;padding:40px 44px;display:flex;flex-direction:column;justify-content:center}
.pff-flag{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--green-bright);background:rgba(72,228,24,.12);border:1px solid rgba(72,228,24,.35);border-radius:999px;padding:6px 13px;margin-bottom:16px;align-self:flex-start;box-shadow:0 0 20px -8px rgba(72,228,24,.7)}
.pff-flag i{width:6px;height:6px;border-radius:50%;background:var(--green-bright);box-shadow:0 0 8px rgba(72,228,24,.9)}
.pff-b .pf-loc{font-size:12px;color:var(--green-bright)}
.pff-b h3{font-family:var(--display);font-weight:800;font-size:32px;color:#fff;margin:8px 0 12px;letter-spacing:-0.025em;line-height:1.05}
.pff-b p{font-size:16px;line-height:1.62;color:rgba(255,255,255,.8);margin:0;max-width:460px}
.pff-facts{margin:22px 0 0;display:flex;flex-direction:column;padding-top:4px;border-top:0}
.pff-fact{display:grid;grid-template-columns:104px 1fr;gap:18px;align-items:baseline;padding:13px 0;border-top:1px solid rgba(255,255,255,.12)}
.pff-fact .ff-k{font-family:var(--sans);font-weight:700;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.52);padding-top:2px}
.pff-fact .ff-v{font-family:var(--display);font-weight:700;font-size:15px;line-height:1.45;color:#fff}
.pff-b .pf-view{color:#fff;margin-top:24px;border-bottom-color:rgba(255,255,255,.3)}
.pf-featured:hover .pff-b .pf-view{color:var(--green-bright);border-color:var(--green-bright);gap:11px}
.more-head{margin-bottom:26px}
.more-head .eyebrow{margin-bottom:18px;margin-bottom:12px}
.more-head h2{font-family:var(--display);font-weight:800;font-size:31px;color:var(--navy);letter-spacing:-0.022em;margin:0 0 10px}
.more-head p{font-size:15.5px;line-height:1.6;color:var(--slate-dk);margin:0;max-width:660px}
@media(max-width:1080px){.work-hero-in{grid-template-columns:1fr}.pf-featured{grid-template-columns:1fr}.pff-img{min-height:240px}}
.section-head{max-width:840px;margin:0 0 48px}
.section-head.center{margin:0 auto 48px;text-align:center}
.section-head.center .eyebrow{margin-bottom:18px;justify-content:center}
.section-head h2{margin:16px 0 14px}
.tcol{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.about-photo{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/3;box-shadow:var(--sh-md)}
.about-photo::after{content:"";position:absolute;inset:0;border-radius:var(--r-lg);pointer-events:none;box-shadow:inset 0 0 0 1px rgba(47,107,235,.2),inset 0 0 44px -12px rgba(47,107,235,.35)}
.about-photo img{width:100%;height:100%;object-fit:cover}
.tlist{columns:2;column-gap:24px}
.tq{position:relative;break-inside:avoid;margin:0 0 24px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);padding:28px;box-shadow:var(--sh-sm);transition:transform .2s,box-shadow .2s,border-color .2s}
.tq::before{content:"";position:absolute;top:0;left:24px;width:34px;height:3px;background:var(--green);box-shadow:0 0 10px rgba(72,228,24,.55);border-radius:0 0 3px 3px}
.tq:hover{transform:translateY(-3px);box-shadow:var(--sh-md);border-color:var(--line-2)}
.tq .qm{font-family:Georgia,serif;font-weight:700;font-size:60px;line-height:.4;height:28px;color:var(--green);opacity:.5}
.tq .qt{font-size:19px;line-height:1.58;color:var(--slate-dk);margin:0}
.tq .qa{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.tq .qa b{display:block;font-family:var(--display);font-weight:700;font-size:15.5px;color:var(--navy)}
.tq .qa span{display:block;font-size:13.5px;color:var(--slate-dk);margin-top:3px}
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.team-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-sm);transition:transform .22s,box-shadow .22s}
.team-card:hover{transform:translateY(-4px);box-shadow:var(--sh-md)}
.tm-photo{aspect-ratio:1/1;overflow:hidden;background:var(--bg-alt)}
.tm-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.tm-b{padding:22px 22px 24px}
.team-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
#team .section-head h2{font-size:36px}
.team-row .tm-bio{font-size:13.5px;line-height:1.62;color:var(--slate-dk);margin:12px 0 0}
.team-row .lf-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}
.tm-n{font-family:var(--display);font-weight:800;font-size:20px;color:var(--navy);letter-spacing:-0.015em}
.tm-r{font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--green-deep);margin-top:5px}
.tm-bio{font-size:13.5px;line-height:1.6;color:var(--slate);margin:12px 0 0}
.wi-creds{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.wi-cred{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px;font-family:var(--display);font-weight:700;font-size:14.5px;color:var(--navy);box-shadow:var(--sh-sm);line-height:1.3}
.wi-cred .wi-ck{color:var(--green-deep);flex-shrink:0}
@media(max-width:900px){.wi-creds{grid-template-columns:1fr}}
.story-wrap{max-width:840px;margin:0 auto;text-align:center;position:relative;z-index:1}
.story-open{font-size:17px;line-height:1.7;color:var(--slate);max-width:680px;margin:22px 0 0}
.story-ideas{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:36px 0 0;text-align:left}
.story-idea{background:#fff;border:1px solid var(--line);border-top:3px solid var(--green);border-radius:var(--r-md);padding:22px 22px;box-shadow:var(--sh-sm)}
.story-idea h4{font-family:var(--display);font-weight:800;font-size:16px;color:var(--navy);letter-spacing:-0.01em;margin:0 0 8px}
.story-idea p{font-size:13.5px;line-height:1.55;color:var(--muted);margin:0}
.about-proof{position:relative;overflow:hidden;background:linear-gradient(135deg,#0E2340,#0A1A31);padding:36px 0}
.ap-grid-bg{position:absolute;inset:0;opacity:.5;pointer-events:none;background-image:linear-gradient(rgba(120,150,210,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(120,150,210,.05) 1px,transparent 1px);background-size:52px 52px;-webkit-mask-image:radial-gradient(circle at 50% 40%,#000,transparent 76%);mask-image:radial-gradient(circle at 50% 40%,#000,transparent 76%)}
.about-proof .wrap{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.ap-item{display:flex;align-items:center;justify-content:center;gap:14px;border-left:1px solid rgba(255,255,255,.14)}
.ap-item:first-child{border-left:0}
.ap-ic{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;flex-shrink:0;color:var(--green-bright);background:rgba(72,228,24,.1);box-shadow:0 0 16px -4px rgba(72,228,24,.6)}
.ap-txt{text-align:left}
.ap-item b{display:block;font-family:var(--display);font-weight:800;font-size:24px;color:#fff;letter-spacing:-0.02em;text-shadow:0 0 18px rgba(90,150,255,.3)}
.ap-txt>span{display:block;font-size:11.5px;color:rgba(255,255,255,.62);margin-top:4px;text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.about-story-sec{padding:100px 0 104px;padding-bottom:48px}
.about-field-sec{padding-top:56px}
.mission-split{display:grid;grid-template-columns:0.85fr 1.15fr;gap:56px;align-items:center}
.mission-l .h2{margin-top:16px}
.mission-panel{position:relative;overflow:hidden;background:linear-gradient(155deg,#13294A,#0A1A31);border:1px solid rgba(90,140,210,.24);border-radius:var(--r-lg);padding:38px 40px;box-shadow:0 30px 70px -34px #000}
.mp-grid{position:absolute;inset:0;opacity:.5;pointer-events:none;background-image:linear-gradient(rgba(120,150,210,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(120,150,210,.05) 1px,transparent 1px);background-size:40px 40px;-webkit-mask-image:radial-gradient(circle at 80% 10%,#000,transparent 78%);mask-image:radial-gradient(circle at 80% 10%,#000,transparent 78%)}
.mp-row{position:relative;z-index:1;display:flex;gap:20px;align-items:flex-start;padding:20px 0;border-top:1px solid rgba(255,255,255,.1)}
.mp-row:first-of-type{border-top:0;padding-top:0}
.mp-n{font-family:var(--display);font-weight:800;font-size:30px;line-height:1;color:var(--mc,var(--green-bright));text-shadow:0 0 16px var(--mc,var(--green-bright));flex-shrink:0;width:44px}
.mp-b h4{font-family:var(--display);font-weight:800;font-size:17px;color:#fff;letter-spacing:-0.01em;margin:2px 0 6px}
.mp-b p{font-size:13.5px;line-height:1.55;color:rgba(255,255,255,.72);margin:0}
.mp-quote{position:relative;z-index:1;margin-top:22px;padding-top:22px;border-top:1px solid rgba(255,255,255,.14);font-family:var(--display);font-weight:700;font-size:16px;line-height:1.5;color:#fff}
.lead-feature{display:grid;grid-template-columns:0.9fr 1.1fr;gap:40px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-md);margin-bottom:24px}
.lf-photo{aspect-ratio:1/1;overflow:hidden;position:relative}
.lf-photo::after{content:"";position:absolute;inset:0;box-shadow:inset -6px 0 30px -14px rgba(16,119,213,.5);pointer-events:none}
.lf-photo img{width:100%;height:100%;object-fit:cover}
.lf-b{padding:8px 40px 8px 0}
.lf-bio{font-size:15px;line-height:1.65;color:var(--slate);margin:14px 0 0}
.lf-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.lf-tags span{font-family:var(--sans);font-weight:600;font-size:11.5px;color:var(--navy);background:var(--bg-alt);border:1px solid var(--line);border-radius:999px;padding:6px 12px}
.lead-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.ab-collage{display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:1fr 1fr;gap:12px;height:360px}
.ab-collage .abc-main{grid-row:span 2;position:relative;border-radius:16px;overflow:hidden;box-shadow:var(--sh-md)}
.ab-collage .abc-side{position:relative;border-radius:16px;overflow:hidden;box-shadow:var(--sh-md)}
.ab-collage img{width:100%;height:100%;object-fit:cover}
.ab-collage .abc-main::after,.ab-collage .abc-side::after{content:"";position:absolute;inset:0;border-radius:16px;box-shadow:inset 0 0 0 1px rgba(47,107,235,.25),inset 0 0 30px -12px rgba(72,228,24,.5);pointer-events:none}
.ab-collage .wi-badge{left:12px;right:12px;bottom:12px;font-size:12px;padding:9px 12px}
.ab-timeline{position:relative;overflow:hidden;background:linear-gradient(160deg,#13294A,#0A1A31);border:0}
.ab-tl-grid{position:absolute;inset:0;opacity:.5;pointer-events:none;background-image:linear-gradient(rgba(120,150,210,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(120,150,210,.05) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(circle at 50% 30%,#000,transparent 78%);mask-image:radial-gradient(circle at 50% 30%,#000,transparent 78%)}
.ab-timeline .wrap{position:relative;z-index:1}
.ab-tl-row{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;position:relative;margin-top:8px}
.ab-tl-row::before{content:"";position:absolute;top:7px;left:12.5%;right:12.5%;height:2px;background:linear-gradient(90deg,var(--blue),var(--green-bright),var(--amber),var(--green-bright));opacity:.6;box-shadow:0 0 10px rgba(72,228,24,.4)}
.ab-tl-step{position:relative;padding-top:30px;text-align:center}
.ab-tl-node{position:absolute;top:0;left:50%;transform:translateX(-50%);width:16px;height:16px;border-radius:50%;background:var(--cc);box-shadow:0 0 0 4px rgba(10,24,48,.9),0 0 16px var(--cc)}
.ab-tl-y{font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-0.02em;color:var(--cc);text-shadow:0 0 18px color-mix(in srgb,var(--cc) 55%,transparent)}
.ab-tl-step h3{font-family:var(--display);font-weight:800;font-size:16px;color:#fff;letter-spacing:-0.01em;margin:8px 0 8px}
.ab-tl-step p{font-size:13px;line-height:1.55;color:rgba(255,255,255,.7);margin:0 auto;max-width:220px}
@media(max-width:1080px){.story-ideas{grid-template-columns:1fr}.about-proof .wrap{grid-template-columns:1fr 1fr}.mission-split{grid-template-columns:1fr}.team-row{grid-template-columns:1fr 1fr}.lead-pair{grid-template-columns:1fr}
.tcol{grid-template-columns:1fr;gap:36px}
.about-photo{max-width:420px;aspect-ratio:16/10}
.tm-photo{aspect-ratio:4/3}
.lead-feature{grid-template-columns:1fr}
.lf-photo{aspect-ratio:16/9}
.lf-b{padding:0 28px 28px}
.ab-collage{height:300px}
.bio,.bio.rev{grid-template-columns:1fr;gap:28px}
.bio.rev .bio-photo{order:0}
.bio-photo{max-width:320px}
.ab-tl-row{grid-template-columns:1fr 1fr}
.story-cols{columns:1}}
.story-h{margin:16px auto 0;max-width:760px}
.story-lead{font-family:var(--display);font-weight:800;font-size:24px;color:var(--navy);margin:28px 0 22px}
.story-cols{columns:2;column-gap:44px;text-align:left}
.story-cols p{font-size:15px;line-height:1.7;color:var(--slate);margin:0 0 16px;break-inside:avoid}
.story-pull{margin:30px auto 0;max-width:700px;font-family:var(--display);font-weight:700;font-size:20px;line-height:1.42;color:var(--navy);padding-top:28px;border-top:1px solid var(--line-2)}
.mission-strip{background:var(--navy);color:#fff;padding:54px 0;text-align:center}
.mission-strip .eyebrow{margin-bottom:18px;color:var(--green-bright);justify-content:center}
.mission-strip .eyebrow::before{background:var(--green-bright)}
.mission-t{font-family:var(--display);font-weight:800;font-size:34px;letter-spacing:-0.022em;margin-top:12px;color:#fff}
.mission-t .hl{color:var(--green-bright)}
.bios{display:flex;flex-direction:column;gap:52px}
.bio{display:grid;grid-template-columns:340px 1fr;gap:48px;align-items:center}
.bio.rev{grid-template-columns:1fr 340px}
.bio.rev .bio-photo{order:2}
.bio-photo{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/5;box-shadow:var(--sh-md)}
.bio-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 22%}
.bio-n{font-family:var(--display);font-weight:800;font-size:26px;color:var(--navy);letter-spacing:-0.02em}
.bio-r{font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--green-deep);margin-top:6px}
.bio-b{font-size:14.5px;line-height:1.65;color:var(--slate);margin:14px 0 0}
@media(max-width:900px){.story-cols{columns:1}.bio,.bio.rev{grid-template-columns:1fr}.bio.rev .bio-photo{order:0}.bio-photo{max-width:340px}}

/* ---- Feature band (neon illustrations) ---- */
.feature{position:relative;overflow:hidden;background:linear-gradient(180deg,#0C1E39 0%,#0A1A31 100%);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.feature-head{text-align:center;max-width:820px;margin:0 auto 44px;position:relative;z-index:2}
.feature-head .eyebrow-c{justify-content:center}
.feature-head h2{font-family:var(--display);font-weight:800;font-size:40px;color:#fff;margin:18px 0 14px;letter-spacing:-0.02em}
.feature-head .sub{color:#AEC0DA;font-size:17px;line-height:1.5;max-width:660px;margin:0 auto}
.fb-grid{display:grid;grid-template-columns:1fr 1.9fr 1fr;gap:18px;align-items:stretch;position:relative;z-index:2}
.fb-col{display:flex;flex-direction:column;gap:18px}
.fb-cat{position:relative;flex:1;border-radius:14px;border:1px solid color-mix(in srgb,var(--cc) 55%,transparent);box-shadow:0 0 16px -10px var(--cc),inset 0 0 26px -22px var(--cc);background:rgba(255,255,255,.02);overflow:hidden;transition:border-color .3s,box-shadow .3s;display:flex;flex-direction:column;min-height:158px}
.fb-slot{flex:1;min-height:0;position:relative}
.fb-cat:hover{border-color:var(--cc);box-shadow:0 0 26px -8px var(--cc),inset 0 0 30px -20px var(--cc)}
.fb-lbl{padding:14px 16px;font-family:var(--sans);font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#fff;text-align:center}
.fb-center{position:relative;border-radius:22px;border:1.5px solid rgba(90,147,255,.6);box-shadow:0 0 40px -8px rgba(16,119,213,.55),inset 0 0 70px -34px rgba(16,119,213,.5);overflow:hidden;background:rgba(255,255,255,.02);display:flex;flex-direction:column}
.fb-center .fb-slot{min-height:440px}
.fb-caption{padding:24px;text-align:center}
.fb-caption .t{font-family:var(--display);font-weight:800;font-size:26px;color:#fff;letter-spacing:-0.015em}
.fb-caption .p{font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.28em;color:#3B9BF0;margin-top:9px}
.fc-slot img{width:100%;height:100%;object-fit:cover;display:block}
.hc-slot img{width:100%;height:100%;object-fit:cover;display:block}
.feature image-slot{display:block;width:100%;height:100%}
.svc-featured{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;position:relative;z-index:2;margin:8px 0 0}
.fc{position:relative;display:flex;flex-direction:column;border-radius:14px;background:rgba(255,255,255,.045);border:1px solid rgba(120,160,220,.16);border-top:2.5px solid var(--cc);overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 14px 34px -26px #000;transition:transform .22s,box-shadow .22s,border-color .22s}
.fc:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--cc) 55%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 26px 54px -26px #000,0 0 18px -13px var(--cc)}
.fc-slot{position:relative;aspect-ratio:4/2.7;overflow:hidden}
.fc-slot::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 42px -18px var(--cc);opacity:.32;transition:opacity .22s}
.fc:hover .fc-slot::after{opacity:.6}
.fc-slot image-slot{filter:saturate(.92) brightness(.96);transition:transform .3s,filter .22s}
.fc:hover .fc-slot image-slot{filter:saturate(1) brightness(1.05)}
.fc-slot image-slot{display:block;width:100%;height:100%;transition:transform .3s}
.fc:hover .fc-slot image-slot{transform:scale(1.02)}
.fc.is-featured{border-color:color-mix(in srgb,var(--cc) 62%,transparent);background:rgba(255,255,255,.07);box-shadow:inset 0 1px 0 rgba(255,255,255,.11),0 26px 58px -28px #000,0 0 30px -12px var(--cc)}
.fc.is-featured .fc-slot::after{opacity:.58}
.fc.is-featured .fc-slot img{filter:saturate(1.04) brightness(1.06)}
.fc.is-featured .fc-tag::after{content:" · Featured";color:rgba(255,255,255,.5);letter-spacing:.1em}
.fc:not(.is-featured) .fc-slot::after{opacity:.22}
.fc:not(.is-featured) .fc-slot img{filter:saturate(.86) brightness(.93)}
.fc-b{padding:20px 20px 22px;display:flex;flex-direction:column;gap:10px;flex:1}
.fc-tag{font-family:var(--sans);font-weight:800;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--cc)}
.svc-divide{position:relative;z-index:2;display:flex;align-items:center;gap:16px;margin:28px 0 16px}
.svc-divide::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,rgba(120,160,220,.35),transparent)}
.svc-divide span{font-family:var(--sans);font-weight:700;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:rgba(183,196,218,.75)}
.svc-divide::before{content:"";width:24px;height:2px;border-radius:2px;background:var(--green-bright);box-shadow:0 0 10px rgba(72,228,24,.6)}
.fc-t{font-family:var(--display);font-weight:800;font-size:21px;color:#fff;letter-spacing:-0.018em;line-height:1.22}
.fc-go{margin-top:auto;font-family:var(--sans);font-weight:700;font-size:14px;letter-spacing:.03em;color:rgba(255,255,255,.6);display:inline-flex;align-items:center;gap:7px;transition:color .2s,gap .2s}
.fc:hover .fc-go{color:var(--cc);gap:11px}
.svc-support{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;position:relative;z-index:2}
.hc{position:relative;display:flex;align-items:stretch;border-radius:14px;background:rgba(255,255,255,.045);border:1px solid rgba(120,160,220,.16);border-top:2.5px solid var(--cc);overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 12px 30px -26px #000;transition:transform .22s,box-shadow .22s,border-color .22s;min-height:118px}
.hc:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--cc) 55%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 22px 46px -26px #000,0 0 16px -13px var(--cc)}
.hc-slot{position:relative;width:118px;flex-shrink:0;overflow:hidden}
.hc-slot::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 30px -14px var(--cc);opacity:.32;background:linear-gradient(90deg,transparent 52%,rgba(11,27,51,.55));transition:opacity .22s}
.hc:hover .hc-slot::after{opacity:.58}
.hc-slot image-slot{display:block;width:100%;height:100%;transition:transform .3s}
.hc:hover .hc-slot image-slot{transform:scale(1.03)}
.hc-b{flex:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 28px}
.hc{min-height:112px}
.fc-t{min-height:46px;display:flex;align-items:flex-start}
.hc-t{font-family:var(--display);font-weight:700;font-size:18.5px;color:#fff;letter-spacing:-0.014em;line-height:1.26}
.hc-go{color:var(--cc);flex-shrink:0;opacity:.65;transition:transform .2s,opacity .2s}
.hc:hover .hc-go{opacity:1;transform:translateX(3px)}
@media(max-width:1080px){.svc-featured{grid-template-columns:repeat(2,1fr)}.svc-support{grid-template-columns:repeat(2,1fr)}.spec-grid{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(5,auto);grid-auto-flow:column}.svc-top{grid-template-columns:1fr}}
.media-band{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:24/9;box-shadow:var(--sh-md);position:relative}
.media-band img{width:100%;height:100%;object-fit:cover}

footer{position:relative}
.f-edge{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#1077D5 18%,var(--green-bright) 50%,#C9860E 78%,transparent);opacity:.55}
@keyframes svcGridDrift{0%{opacity:.42}50%{opacity:.7}100%{opacity:.42}}
.svc-grid-bg{animation:svcGridDrift 9s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.svc-grid-bg{animation:none}}


/* Services overview — full-width secondary grid (3x2) */
.svc-sec-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:24px;position:relative;z-index:2;align-items:stretch}
.svc-sec-grid .spec-card{min-height:132px;height:100%;align-items:center;padding:22px 24px;background:rgba(255,255,255,.045);border:1px solid rgba(120,160,220,.16);border-left:3px solid var(--cc);border-radius:14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.svc-sec-grid .spec-card:hover{border-color:color-mix(in srgb,var(--cc) 50%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 0 20px -12px var(--cc)}
.svc-sec-grid .spec-thumb{width:88px;height:88px;flex-shrink:0;border-radius:10px;overflow:hidden;align-self:center}
.svc-sec-grid .spec-thumb img{width:100%;height:100%;object-fit:cover;filter:saturate(.88) brightness(.92)}
.svc-sec-grid .spec-card:hover .spec-thumb img{filter:saturate(1) brightness(1)}
.svc-sec-grid .spec-t{font-size:17.5px;line-height:1.24;color:#fff}
.svc-sec-grid .spec-d{font-size:14px;line-height:1.5;color:rgba(196,211,232,.86);margin-top:5px}
.svc-sec-grid .spec-card svg{color:var(--cc);opacity:.7}
.svc-sec-grid .spec-card:hover svg{opacity:1}
.svc-group+.svc-group{margin-top:32px}

/* Site-plan background system */
.svc-dir-plan{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.06}
.svc-dir-plan svg{width:100%;height:100%}

/* Project proof — enlarged + metadata rail */
.svcpg-case .tcol{grid-template-columns:7fr 5fr;gap:72px;align-items:center}
.spcase-wrap{position:relative}
.spcase-img{border-radius:14px;box-shadow:0 30px 66px -38px rgba(10,27,52,.5)}
.spcase-meta{margin-top:16px;padding-top:14px;border-top:1px solid var(--line-2);font-family:var(--sans);font-size:13.5px;font-weight:600;letter-spacing:.03em;color:var(--slate-dk);position:relative}
.spcase-meta::after{content:"";position:absolute;top:-1px;left:0;width:70px;height:2px;background:var(--green);box-shadow:0 0 8px rgba(72,228,24,.5)}
.spcase-meta i{opacity:.4;margin:0 7px;font-style:normal}
.spcase-matrix{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px;margin:26px 0 28px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.spcase-matrix span{position:relative;padding-left:16px;font-family:var(--sans);font-size:14.5px;font-weight:600;color:var(--navy)}
.spcase-matrix span::before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:50%;background:var(--blue)}
.spcase-matrix span:nth-child(3)::before,.spcase-matrix span:nth-child(5)::before{background:var(--green)}

/* Process conclusion + merged complexity block */
.proc-conclude{margin-top:30px;padding-top:22px;border-top:2px solid var(--green);font-family:var(--display);font-weight:800;font-size:21px;line-height:1.34;color:var(--navy);letter-spacing:-0.018em;position:relative}
.proc-conclude::before{content:"";position:absolute;top:-2px;left:0;width:96px;height:2px;background:var(--green);box-shadow:0 0 12px rgba(72,228,24,.6)}
.proc-conclude .hl{color:var(--green-deep)}
.proc-complex{margin-top:30px}
.proc-complex h3{font-family:var(--display);font-weight:800;font-size:23px;line-height:1.2;color:var(--navy);letter-spacing:-0.022em;margin:0 0 12px}
.proc-complex p{font-size:15.5px;line-height:1.62;color:var(--slate-dk);margin:0 0 20px;max-width:520px}
.pcx-pts{display:flex;flex-wrap:wrap;gap:10px 24px}
.pcx-pts span{position:relative;padding-left:17px;font-family:var(--sans);font-size:14px;font-weight:700;color:var(--navy)}
.pcx-pts span::before{content:"";position:absolute;left:0;top:6px;width:7px;height:7px;border-radius:50%;background:var(--pc);box-shadow:0 0 8px color-mix(in srgb,var(--pc) 70%,transparent)}
@media(max-width:1080px){.svc-sec-grid{grid-template-columns:1fr}.svcpg-case .tcol{grid-template-columns:1fr;gap:32px}.spcase-matrix{grid-template-columns:1fr}}

/* Why IGS — inspection spread (60/40) */
.wi-inspect{padding:120px 0}
.wi-insp-in{display:grid;grid-template-columns:6fr 4fr;gap:80px;align-items:start}
.wi-insp-cats{margin:30px 0 0;display:flex;flex-direction:column;gap:24px}
.wi-icat{display:flex;gap:16px;align-items:flex-start}
.wi-icat .wic-n{flex-shrink:0;font-family:var(--display);font-weight:800;font-size:13px;letter-spacing:.1em;color:var(--cc);padding-top:3px;position:relative}
.wi-icat .wic-n::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--cc);box-shadow:0 0 8px color-mix(in srgb,var(--cc) 60%,transparent)}
.wi-icat .wic-b{display:flex;flex-direction:column;gap:5px}
.wi-icat b{font-family:var(--display);font-weight:800;font-size:17px;color:var(--navy);letter-spacing:-0.015em}
.wi-icat .wic-b>span{font-size:14.5px;line-height:1.56;color:var(--slate-dk)}
.wi-insp-close{margin:32px 0 0;padding-top:22px;border-top:1px solid var(--line-2);font-family:var(--display);font-weight:800;font-size:20px;line-height:1.34;color:var(--navy);letter-spacing:-0.018em}
.wi-insp-close .hl{color:var(--blue-deep)}
.wi-insp-r{display:flex;flex-direction:column;gap:14px}
.wi-insp-main{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:4/3.4;box-shadow:0 28px 60px -36px rgba(10,27,52,.5)}
.wi-insp-main img{width:100%;height:100%;object-fit:cover}
.wii-lab{position:absolute;left:18px;bottom:16px;font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#fff;padding-left:11px;border-left:3px solid var(--green-bright);text-shadow:0 2px 10px rgba(4,12,26,.9)}
.wi-insp-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.wi-insp-det{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:4/3}
.wi-insp-det img{width:100%;height:100%;object-fit:cover}
.wii-tick{position:absolute;right:11px;bottom:11px;width:9px;height:9px;border-radius:50%;background:var(--green-bright);box-shadow:0 0 0 3px rgba(6,17,34,.5),0 0 12px var(--green-bright)}

/* Why IGS — unified five-reason proof panel */
.wi-panel5{position:relative;display:grid;grid-template-columns:repeat(5,1fr);background:linear-gradient(180deg,#fff,#F7FAFD);border:1px solid var(--line-2);border-radius:14px;overflow:hidden;box-shadow:0 2px 10px rgba(21,39,65,.05)}
.wip5-line{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--green),var(--blue),var(--amber),var(--green),var(--blue));opacity:.7}
.wip5-seg{position:relative;padding:34px 26px 32px;border-left:1px solid var(--line);transition:background .22s}
.wip5-seg:first-child{border-left:0}
.wip5-seg:hover{background:color-mix(in srgb,var(--cc) 5%,#fff)}
.wip5-n{display:block;font-family:var(--display);font-weight:800;font-size:15px;letter-spacing:.1em;color:var(--cc);margin-bottom:16px;position:relative;padding-bottom:9px}
.wip5-n::after{content:"";position:absolute;left:0;bottom:0;width:26px;height:2px;background:var(--cc);box-shadow:0 0 8px color-mix(in srgb,var(--cc) 55%,transparent)}
.wip5-seg h3{font-family:var(--display);font-weight:800;font-size:18px;line-height:1.24;color:var(--navy);letter-spacing:-0.018em;margin:0 0 10px}
.wip5-seg p{font-size:14.5px;line-height:1.56;color:var(--slate-dk);margin:0}

/* Why IGS — long-term case study */
.wi-longcase{background:var(--bg-alt);padding:112px 0}
.wi-lc-in{display:grid;grid-template-columns:57fr 43fr;gap:64px;align-items:center}
.wi-lc-img{position:relative;border-radius:14px;overflow:hidden;box-shadow:0 34px 72px -40px rgba(10,27,52,.5)}
.wi-lc-img img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3.2;display:block}
.wilc-lab{position:absolute;left:20px;top:20px;font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#0A1A31;background:var(--green-bright);border-radius:4px;padding:5px 11px}
.wilc-rail{position:absolute;left:0;right:0;bottom:0;padding:14px 22px;background:linear-gradient(0deg,rgba(6,17,34,.92),rgba(6,17,34,.55));border-top:1px solid rgba(72,228,24,.4);font-family:var(--sans);font-size:12.5px;font-weight:600;letter-spacing:.04em;color:rgba(224,235,248,.95)}
.wilc-rail i{opacity:.45;margin:0 7px;font-style:normal}
.wilc-timeline{display:flex;flex-wrap:wrap;align-items:center;gap:0;margin:26px 0 28px;padding:18px 0;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.wilc-stage{position:relative;font-family:var(--sans);font-size:13px;font-weight:700;color:var(--navy);padding:0 16px 0 15px}
.wilc-stage:first-child{padding-left:11px}
.wilc-stage::before{content:"";position:absolute;left:0;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:var(--green);box-shadow:0 0 9px rgba(72,228,24,.6)}
.wilc-stage::after{content:"";position:absolute;right:0;top:50%;width:16px;height:2px;background:linear-gradient(90deg,var(--green),rgba(72,228,24,.25))}
.wilc-stage:last-child::after{display:none}
.wilc-quote{margin:0;font-family:var(--display);font-weight:700;font-size:20px;line-height:1.46;color:var(--navy);letter-spacing:-0.015em;padding-left:20px;border-left:3px solid var(--green)}
.wilc-attr{margin-top:18px}
.wilc-attr b{display:block;font-family:var(--display);font-weight:800;font-size:15.5px;color:var(--navy)}
.wilc-attr .role{display:block;font-size:13.5px;color:var(--slate-dk);margin-top:3px}
.wi-longcase .wic-link{margin-top:22px}

/* Why IGS — sign-off pull quote inside the manifesto */
.wid-pull{margin:30px 0 22px;padding-left:24px;border-left:3px solid var(--green-bright);font-family:var(--display);font-weight:800;font-size:29px;line-height:1.18;letter-spacing:-0.026em;color:#fff}
.wid-pull .hl{color:var(--green-bright)}
@media(max-width:1080px){.wi-insp-in{grid-template-columns:1fr;gap:36px}.wi-panel5{grid-template-columns:1fr}.wip5-seg{border-left:0;border-top:1px solid var(--line)}.wip5-seg:first-child{border-top:0}.wi-lc-in{grid-template-columns:1fr;gap:30px}.wid-pull{font-size:24px}}

/* About — hero metrics rail (no mini-cards) */
.ab-metrics{display:flex;align-items:stretch;margin-top:26px;padding-top:22px;border-top:1px solid var(--line-2)}
.abm{flex:1;padding:0 22px;border-left:1px solid var(--line);position:relative}
.abm:first-child{border-left:0;padding-left:0}
.abm::before{content:"";position:absolute;top:-23px;left:22px;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 9px rgba(72,228,24,.65)}
.abm:first-child::before{left:0}
.abm b{display:block;font-family:var(--display);font-weight:800;font-size:27px;color:var(--navy);letter-spacing:-0.028em;line-height:1}
.abm>span{display:block;font-size:13px;color:var(--slate-dk);margin-top:6px;line-height:1.3}
.abc-main{position:relative}
.abc-lab{position:absolute;left:18px;bottom:16px;z-index:2;font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#fff;padding-left:11px;border-left:3px solid var(--green-bright);text-shadow:0 2px 10px rgba(4,12,26,.9)}

/* About — field experience (enlarged, structured proof rows) */
.ab-field-in{display:grid;grid-template-columns:6fr 6fr;gap:72px;align-items:center}
.about-photo{position:relative;border-radius:14px;overflow:hidden;box-shadow:0 32px 68px -40px rgba(10,27,52,.5)}
.about-photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3.3;display:block}
.abf-lab{position:absolute;left:20px;top:20px;font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#0A1A31;background:var(--green-bright);border-radius:4px;padding:5px 11px}
.ab-proof{margin-top:30px;display:flex;flex-direction:column;gap:0}
.abp-row{display:flex;gap:16px;align-items:flex-start;padding:18px 0;border-top:1px solid var(--line)}
.abp-row:last-child{border-bottom:1px solid var(--line)}
.abp-dot{flex-shrink:0;width:9px;height:9px;margin-top:7px;border-radius:50%;background:var(--pc);box-shadow:0 0 10px color-mix(in srgb,var(--pc) 70%,transparent)}
.abp-b{display:flex;flex-direction:column;gap:5px}
.abp-b b{font-family:var(--display);font-weight:800;font-size:17px;color:var(--navy);letter-spacing:-0.016em}
.abp-b>span{font-size:14.5px;line-height:1.55;color:var(--slate-dk)}

/* About — mission panel rebalance + connection line */
.mission-split{grid-template-columns:45fr 55fr;gap:64px}
.mission-panel{position:relative;box-shadow:0 24px 54px -34px rgba(10,27,52,.42)}
.mp-line{position:absolute;left:44px;top:52px;bottom:120px;width:2px;background:linear-gradient(180deg,var(--blue),var(--green-bright) 50%,var(--amber));opacity:.4}
.mp-row{position:relative;z-index:1}
.mp-n{position:relative;z-index:2}

/* About — enlarged timeline with continuous energy line */
.ab-timeline{padding:118px 0}
.ab-tl-row{position:relative;max-width:80%;margin:0 auto}
.ab-tl-line{position:absolute;top:9px;left:5%;right:5%;height:2px;background:linear-gradient(90deg,var(--blue),var(--green-bright) 34%,var(--amber) 66%,var(--green-bright));opacity:.5}
.ab-tl-step h3{font-size:19px}
.ab-tl-y{font-size:15px}
.ab-tl-step p{font-size:14.5px;line-height:1.56}

/* About — leadership profiles */
.ab-team-head{max-width:820px;margin:0 0 48px}
.ab-leads{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.ab-lead{display:flex;flex-direction:column}
.abl-photo{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:4/5;box-shadow:0 20px 48px -30px rgba(10,27,52,.4)}
.abl-photo::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--blue),var(--green-bright));opacity:.85}
.abl-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.ab-lead:hover .abl-photo img{transform:scale(1.02)}
.abl-b{padding:24px 0 0}
.abl-role{display:inline-block;font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--green-deep);margin-bottom:10px}
.abl-b h3{font-family:var(--display);font-weight:800;font-size:27px;color:var(--navy);letter-spacing:-0.026em;margin:0 0 12px;line-height:1.08}
.abl-b p{font-size:15.5px;line-height:1.66;color:var(--slate-dk);margin:0}
.ab-lead-sm{display:grid;grid-template-columns:220px 1fr;gap:36px;align-items:center;margin-top:56px;padding-top:44px;border-top:1px solid var(--line-2)}
.abls-photo{border-radius:12px;overflow:hidden;aspect-ratio:4/5;position:relative}
.abls-photo::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--green-bright);opacity:.85}
.abls-photo img{width:100%;height:100%;object-fit:cover}
.abls-b h3{font-family:var(--display);font-weight:800;font-size:23px;color:var(--navy);letter-spacing:-0.024em;margin:0 0 11px}
.abls-b p{font-size:15.5px;line-height:1.64;color:var(--slate-dk);margin:0;max-width:620px}

/* About — community story */
.ab-give-in{display:grid;grid-template-columns:45fr 55fr;gap:64px;align-items:center}
.abg-b .body+.body{margin-top:16px}
.abg-pull{margin:24px 0;padding-left:20px;border-left:3px solid var(--green);font-family:var(--display);font-weight:800;font-size:22px;line-height:1.34;color:var(--navy);letter-spacing:-0.02em}
.abg-pull .hl{color:var(--green-deep)}
.abg-img{position:relative;border-radius:14px;overflow:hidden;box-shadow:0 30px 66px -40px rgba(10,27,52,.45)}
.abg-img::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(72,228,24,.28)}
.abg-img img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3.1;display:block}

/* About — cinematic closing statement */
.ab-closing{position:relative;overflow:hidden;min-height:560px;display:flex;align-items:center;background:var(--navy);padding:112px 0}
.ab-closing-media{position:absolute;inset:0}
.ab-closing-media img{width:100%;height:100%;object-fit:cover;object-position:50% 55%;filter:saturate(1.04)}
.ab-closing-media::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 78% 82% at 50% 50%,rgba(6,17,34,.84),rgba(6,17,34,.6) 62%,rgba(6,17,34,.44))}
.ab-closing-in{position:relative;z-index:2;text-align:center;max-width:900px}
.ab-closing-h{font-family:var(--display);font-weight:800;font-size:46px;line-height:1.1;letter-spacing:-0.032em;color:#fff;margin:18px auto 20px;max-width:760px}
.ab-closing-p{font-size:17.5px;line-height:1.62;color:rgba(228,238,250,.92);margin:0 auto;max-width:660px}
.ab-closing-c{margin:30px auto 0;padding-top:24px;border-top:1px solid rgba(255,255,255,.2);font-family:var(--display);font-weight:800;font-size:23px;line-height:1.3;color:#fff;letter-spacing:-0.02em;max-width:660px}
.ab-closing-c .hl{color:var(--green-bright)}
@media(max-width:1080px){.ab-field-in,.ab-give-in,.ab-leads{grid-template-columns:1fr;gap:32px}.ab-metrics{flex-direction:column;gap:18px}.abm{border-left:0;padding-left:0}.abm::before{display:none}.ab-tl-row{max-width:100%}.ab-tl-line{display:none}.ab-lead-sm{grid-template-columns:1fr;gap:22px}.abls-photo{max-width:220px}.ab-closing-h{font-size:32px}}

/* Careers — integrated multi-step application */
.ctr-apply-zone{position:relative;overflow:hidden}
.apz-bg{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.04;background-image:linear-gradient(rgba(16,119,213,.6) 1px,transparent 1px),linear-gradient(90deg,rgba(16,119,213,.6) 1px,transparent 1px);background-size:52px 52px}
.apz-glow-a{position:absolute;z-index:0;pointer-events:none;top:-120px;left:-80px;width:620px;height:620px;background:radial-gradient(circle,rgba(16,119,213,.14),transparent 66%)}
.apz-glow-b{position:absolute;z-index:0;pointer-events:none;bottom:-160px;right:-100px;width:620px;height:620px;background:radial-gradient(circle,rgba(72,228,24,.13),transparent 66%)}
.apz-in{position:relative;z-index:1;max-width:1080px}
.apz-intro{text-align:center;max-width:700px;margin:0 auto 40px}
.apz-h{font-family:var(--display);font-weight:800;font-size:42px;line-height:1.06;letter-spacing:-0.03em;color:var(--navy);margin:16px 0 16px}
.apz-h .hl{color:var(--green-deep)}
.apz-lead{font-size:17px;line-height:1.6;color:var(--slate-dk);margin:0 auto;max-width:640px}
.apz-note{margin:18px auto 0;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--slate-dk);display:inline-flex;align-items:center;gap:9px}
.apz-note::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 9px rgba(72,228,24,.6)}
.apz-card{background:#fff;border:1px solid var(--line-2);border-radius:14px;padding:44px 48px;box-shadow:0 20px 54px -34px rgba(21,39,65,.3)}
.apz-steps{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:38px;padding-bottom:34px;border-bottom:1px solid var(--line)}
.apz-track{position:absolute;top:17px;left:16%;right:16%;height:2px;background:var(--line-2)}
.apz-step{position:relative;display:flex;flex-direction:column;align-items:center;gap:11px;text-align:center}
.apz-node{position:relative;z-index:1;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#fff;border:2px solid var(--line-2);font-family:var(--display);font-weight:800;font-size:13px;color:var(--muted);transition:all .25s}
.apz-lab{font-family:var(--sans);font-size:12.5px;font-weight:700;letter-spacing:.04em;color:var(--muted);transition:color .25s}
.apz-step.is-current .apz-node{border-color:var(--blue);color:var(--blue);box-shadow:0 0 0 4px rgba(16,119,213,.12),0 0 18px -4px rgba(16,119,213,.7)}
.apz-step.is-current .apz-lab{color:var(--navy)}
.apz-step.is-done .apz-node{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 0 16px -4px rgba(72,228,24,.75)}
.apz-step.is-done .apz-lab{color:var(--green-deep)}
.apz-fields{display:flex;flex-direction:column;gap:24px}
.apz-form .frow{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.apz-form .field input,.apz-form .field select,.apz-form .field textarea{padding:15px 16px;font-size:16px}
.apz-form .field textarea{min-height:140px}
.apz-form .field label{font-size:12.5px;font-weight:700}
.apz-review{font-size:13.5px;line-height:1.6;color:var(--slate-dk);padding:16px 18px;background:var(--bg-alt);border-radius:10px;border-left:3px solid var(--green)}
.apz-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:36px;padding-top:28px;border-top:1px solid var(--line)}
.apz-meter{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--slate-dk)}
.apz-meter i{opacity:.45;margin:0 5px;font-style:normal}
.apz-btns{display:flex;align-items:center;gap:12px}
.apz-btns .btn{min-height:54px}
.apz-btns .btn-blue:hover{box-shadow:0 0 26px -6px rgba(16,119,213,.72)}
.apz-ok{text-align:center;padding:34px 0 12px}
.apz-support{text-align:center;margin-top:26px;font-size:15px;color:var(--slate-dk)}
.apz-support a{font-weight:700;color:var(--blue-deep)}
.apz-support a:hover{color:var(--green-deep)}
.apz-next{margin-top:64px;padding-top:44px;border-top:1px solid var(--line-2)}
.apz-next-h{text-align:center;font-family:var(--sans);font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--slate-dk);margin-bottom:36px}
.apz-next-row{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding-top:22px}
.apz-next-line{display:none}
.apz-nx{position:relative;display:flex;flex-direction:column;gap:7px;padding-right:16px}
.apz-nx-dot{position:absolute;top:-22px;left:0;width:12px;height:12px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px #F4F8FD,0 0 12px rgba(72,228,24,.7)}
.apz-nx-n{font-family:var(--display);font-weight:800;font-size:12.5px;letter-spacing:.12em;color:var(--green-deep)}
.apz-nx b{font-family:var(--display);font-weight:800;font-size:17px;line-height:1.26;color:var(--navy);letter-spacing:-0.016em}
.apz-nx-d{font-size:14.5px;line-height:1.55;color:var(--slate-dk)}
@media(max-width:1080px){.apz-card{padding:28px 24px}.apz-form .frow{grid-template-columns:1fr}.apz-h{font-size:31px}.apz-lab{display:none}.apz-step.is-current .apz-lab{display:block}.apz-next-row{grid-template-columns:1fr;gap:26px}.apz-next-line{display:none}.apz-nx-dot{top:-20px}.apz-foot{flex-direction:column-reverse;align-items:stretch}.apz-btns{width:100%}.apz-btns .btn{flex:1;justify-content:center}}

.wir-mk{display:block;width:34px;height:3px;border-radius:3px;background:var(--cc);box-shadow:0 0 10px color-mix(in srgb,var(--cc) 60%,transparent);margin-bottom:16px}

/* Why IGS — imagery added to former text-only sections */
.wi-ins2{display:grid;grid-template-columns:6fr 4.4fr;gap:64px;align-items:center;max-width:1240px}
.wi-ins2-l{min-width:0}
.wi-ins2-r{display:flex;flex-direction:column;gap:14px}
.wi-ins2-main{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 28px 62px -38px rgba(10,27,52,.5)}
.wi-ins2-main img{width:100%;height:100%;object-fit:cover}
.wi-ins2-tall{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:4/4.2;box-shadow:0 30px 66px -40px rgba(10,27,52,.5)}
.wi-ins2-tall img{width:100%;height:100%;object-fit:cover}
.wi2-lab{position:absolute;left:18px;bottom:16px;font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#fff;padding-left:11px;border-left:3px solid var(--green-bright);text-shadow:0 2px 12px rgba(4,12,26,.95)}
.wi-ins2-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.wi-ins2-det{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:4/3}
.wi-ins2-det img{width:100%;height:100%;object-fit:cover}
.wi2-tick{position:absolute;right:11px;bottom:11px;width:9px;height:9px;border-radius:50%;background:var(--green-bright);box-shadow:0 0 0 3px rgba(6,17,34,.5),0 0 12px var(--green-bright)}

/* credential badge rail */
.wi-cred-rail{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:34px;padding-top:30px;border-top:1px solid var(--line-2)}
.vet-badge{display:flex;flex-direction:column;align-items:flex-start;gap:11px;font-family:var(--display);font-weight:800;font-size:14.5px;line-height:1.28;color:var(--navy);letter-spacing:-0.012em;background:none;border:0;border-radius:0;padding:0}
.wi-cred-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--green-soft);color:var(--green-deep);box-shadow:0 0 18px -8px rgba(72,228,24,.7)}

/* before / during / final strip */
.wi-hand-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px}
.wi-hs{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 20px 44px -30px rgba(10,27,52,.4)}
.wi-hs img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.wi-hs:hover img{transform:scale(1.04)}
.wi-hs>span{position:absolute;left:14px;right:14px;bottom:13px;display:flex;align-items:center;gap:10px;font-family:var(--sans);font-weight:700;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:#fff;text-shadow:0 2px 12px rgba(4,12,26,.95)}
.wi-hs>span>i{flex-shrink:0;display:grid;place-items:center;width:22px;height:22px;border-radius:6px;background:rgba(8,20,38,.8);border:1px solid rgba(72,228,24,.5);font-family:var(--display);font-style:normal;font-size:11px;color:var(--green-bright);text-shadow:none}
@media(max-width:1080px){.wi-ins2{grid-template-columns:1fr;gap:32px}.wi-cred-rail{grid-template-columns:1fr 1fr}.wi-hand-strip{grid-template-columns:1fr}}

/* Why IGS — annotated inspection photo */
.wi-scan{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:4/4.3;box-shadow:0 30px 66px -38px rgba(10,27,52,.55)}
.wi-scan img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) brightness(.72)}
.wi-scan::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(160deg,rgba(6,17,34,.5),rgba(6,17,34,.15) 46%,rgba(6,17,34,.62));box-shadow:inset 0 0 0 1px rgba(72,228,24,.3)}
.wi-scan-line{position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--green-bright),transparent);box-shadow:0 0 18px 2px rgba(72,228,24,.6);animation:wiScan 6s ease-in-out infinite}
@keyframes wiScan{0%{top:6%;opacity:0}12%{opacity:1}88%{opacity:1}100%{top:94%;opacity:0}}
@media(prefers-reduced-motion:reduce){.wi-scan-line{animation:none;top:50%}}
.wi-pin{position:absolute;z-index:3;display:flex;align-items:center;gap:10px;transform:translateY(-50%);max-width:calc(100% - 32px);box-sizing:border-box}
.wi-pin.is-right{flex-direction:row-reverse;left:auto!important}
.wi-pin b{min-width:0}
.wi-pin i{flex-shrink:0;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--green-bright);color:#0A1A31;font-family:var(--display);font-weight:800;font-size:12px;font-style:normal;box-shadow:0 0 0 4px rgba(6,17,34,.55),0 0 16px rgba(72,228,24,.8)}
.wi-pin b{font-family:var(--sans);font-weight:700;font-size:12.5px;letter-spacing:.02em;color:#fff;background:rgba(6,17,34,.72);backdrop-filter:blur(6px);border-radius:6px;padding:6px 11px;white-space:nowrap}
.wi-scan-tag{position:absolute;z-index:3;left:18px;bottom:16px;font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#fff;padding-left:11px;border-left:3px solid var(--green-bright)}

/* Why IGS — then / now comparison */
.wi-projpair{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.wi-pf{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:4/4.4;box-shadow:0 20px 46px -30px rgba(10,27,52,.45)}
.wi-pf img{width:100%;height:100%;object-fit:cover}
.wi-pf-c{position:absolute;left:0;right:0;bottom:0;padding:11px 12px;background:linear-gradient(0deg,rgba(6,17,34,.92),transparent);font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#fff;text-align:center}
.wi-pf-c i{opacity:.5;margin:0 5px;font-style:normal}

/* Why IGS — dark credential band */
.wi-vetted-dark{position:relative;overflow:hidden;background:linear-gradient(180deg,#0E2340,#0A1A31)}
.wi-vetted-dark::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(680px 400px at 12% 0%,rgba(47,107,235,.16),transparent 62%),radial-gradient(600px 380px at 90% 100%,rgba(72,228,24,.13),transparent 62%)}
.wi-vetted-dark .wrap{position:relative;z-index:1}
.wi-vetted-dark .eyebrow{margin-bottom:18px;color:var(--green-bright)}
.wi-process .eyebrow,.wi-process .eyebrow-c,.wi-disposition .eyebrow,.sd-proc .eyebrow,.svc-dir .eyebrow,.ctr-why-dark .eyebrow,.testi-section .eyebrow{margin-bottom:18px;color:var(--green-bright)}
.wi-process .c-green,.wi-disposition .c-green,.sd-proc .c-green,.svc-dir .c-green,.ctr-why-dark .c-green,.testi-section .c-green,.wi-vetted-dark .c-green,.community .c-green,.ab-closing .c-green,.sd-cta-l .c-green{color:var(--green-bright)}
.wi-vetted-dark .eyebrow::before{background:var(--green-bright)}
.wi-vetted-dark .h2{color:#fff}
.wi-vetted-dark .h2 .c-blue{color:#5AA0FF}
.wi-vetted-dark .body{color:rgba(206,219,238,.9)}
.wi-vetted-dark .wi-cred-rail{border-top-color:rgba(255,255,255,.16)}
.wi-vetted-dark .vet-badge{color:#fff}
.wi-vetted-dark .wi-cred-ic{background:rgba(72,228,24,.12);color:var(--green-bright);box-shadow:0 0 20px -6px rgba(72,228,24,.6)}
@media(max-width:1080px){.wi-projpair{grid-template-columns:1fr;gap:14px}.wi-pin b{font-size:11px;padding:4px 8px}}

.section.band.wi-give{border-top:1px solid var(--line-2);padding:104px 0}

/* Careers — Why Work With IGS (dark card treatment) */
.ctr-why-dark{position:relative;overflow:hidden;background:linear-gradient(170deg,#0E2340,#0A1A31);padding:110px 0}
.cwd-grid{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.05;background-image:linear-gradient(rgba(120,160,220,.6) 1px,transparent 1px),linear-gradient(90deg,rgba(120,160,220,.6) 1px,transparent 1px);background-size:56px 56px}
.cwd-glow{position:absolute;z-index:0;pointer-events:none;top:-140px;left:50%;transform:translateX(-50%);width:820px;height:560px;background:radial-gradient(ellipse at 50% 0%,rgba(72,228,24,.14),rgba(16,119,213,.08) 48%,transparent 74%)}
.cwd-in{position:relative;z-index:1}
.cwd-head{text-align:center;max-width:740px;margin:0 auto 52px}
.cwd-h{font-family:var(--display);font-weight:800;font-size:40px;line-height:1.08;letter-spacing:-0.03em;color:#fff;margin:16px 0 16px}
.cwd-h .hl{color:var(--green-bright)}
.cwd-lead{font-size:17px;line-height:1.6;color:rgba(206,220,240,.92);margin:0 auto;max-width:620px}
.cwd-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.cwd-card{position:relative;background:linear-gradient(165deg,rgba(255,255,255,.055),rgba(255,255,255,.02));border:1px solid rgba(120,160,220,.16);border-top:2px solid var(--cc);border-radius:14px;padding:32px 28px 30px;transition:border-color .25s,box-shadow .25s,transform .25s}
.cwd-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--cc) 42%,transparent);box-shadow:0 0 30px -14px color-mix(in srgb,var(--cc) 75%,transparent)}
.cwd-ic{display:grid;place-items:center;width:48px;height:48px;border-radius:13px;background:color-mix(in srgb,var(--cc) 13%,transparent);color:var(--cc);box-shadow:0 0 20px -8px color-mix(in srgb,var(--cc) 80%,transparent);margin-bottom:20px}
.cwd-card h3{font-family:var(--display);font-weight:800;font-size:19px;line-height:1.24;color:#fff;letter-spacing:-0.018em;margin:0 0 11px}
.cwd-card p{font-size:14.5px;line-height:1.62;color:rgba(196,211,232,.9);margin:0}
.cwd-model{margin-top:44px;padding-top:32px;border-top:1px solid rgba(120,160,220,.2);text-align:center;font-family:var(--display);font-weight:800;font-size:22px;line-height:1.34;color:#fff;letter-spacing:-0.02em}
.cwd-model i{opacity:.36;margin:0 10px;font-style:normal}
.cwd-model .hl{color:var(--green-bright)}
@media(max-width:1080px){.ctr-why-dark{padding:76px 0}.cwd-cards{grid-template-columns:1fr}.cwd-h{font-size:29px}.cwd-model{font-size:18px}.cwd-model i{display:block;height:0;overflow:hidden;margin:0}}

/* Service detail — scope panel icons */
.sdg-g{display:flex;gap:18px;align-items:flex-start}
.sdg-ic{flex-shrink:0;display:grid;place-items:center;width:44px;height:44px;margin-top:-2px;border-radius:50%;background:color-mix(in srgb,var(--gc) 11%,#fff);border:1.5px solid color-mix(in srgb,var(--gc) 45%,transparent);color:var(--gc);box-shadow:0 0 18px -8px color-mix(in srgb,var(--gc) 70%,transparent)}
.sdg-b{flex:1;min-width:0}

/* Service detail — featured project fact icons */
.sdcf{display:grid;grid-template-columns:22px 96px 1fr;gap:14px;align-items:baseline}
.sdcf-ic{display:grid;place-items:center;color:var(--slate-dk);opacity:.7}

/* Service detail — Why IGS two-column cards */
.sd-wcard{display:grid;grid-template-columns:1.15fr .85fr;gap:0;padding:0;overflow:hidden}
.sdw-l{padding:30px 26px 28px}
.sdw-r{padding:30px 24px 28px;border-left:1px solid var(--line);display:flex;align-items:center}
.sdw-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:color-mix(in srgb,var(--wc) 11%,#fff);border:1.5px solid color-mix(in srgb,var(--wc) 42%,transparent);color:var(--wc);margin-bottom:18px;box-shadow:0 0 16px -8px color-mix(in srgb,var(--wc) 70%,transparent)}
.sd-wcard h3{font-size:20px;margin:0 0 10px}
.sd-wcard p{font-size:15px;max-width:none}
.sdw-proof{font-family:var(--sans);font-weight:700;font-size:14.5px;line-height:1.5;color:var(--wc)}

/* Service detail — related capabilities mosaic */
.sd-pair-mosaic{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.sdp-feat{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 2px 10px rgba(21,39,65,.04);transition:transform .25s,box-shadow .25s}
.sdp-feat:hover{transform:translateY(-3px);box-shadow:0 22px 48px -28px rgba(21,39,65,.3)}
.sdp-feat-img{aspect-ratio:16/10;overflow:hidden}
.sdp-feat-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.sdp-feat:hover .sdp-feat-img img{transform:scale(1.03)}
.sdp-feat-b{position:relative;padding:30px 30px 32px}
.sdp-ic{position:relative;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--blue-soft);border:1.5px solid rgba(16,119,213,.4);color:var(--blue);margin:-52px 0 18px;box-shadow:0 0 18px -6px rgba(16,119,213,.45),0 6px 18px -12px rgba(21,39,65,.3)}
.sdp-feat-b h3{font-family:var(--display);font-weight:800;font-size:25px;line-height:1.16;color:var(--navy);letter-spacing:-0.024em;margin:0 0 12px}
.sdp-feat-b p{font-size:15.5px;line-height:1.62;color:var(--slate-dk);margin:0 0 20px}
.sdp-side{display:flex;flex-direction:column;gap:22px}
.sdp-sm{display:grid;grid-template-columns:1fr 1.1fr;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 2px 10px rgba(21,39,65,.04);transition:transform .25s,box-shadow .25s}
.sdp-sm:hover{transform:translateY(-3px);box-shadow:0 20px 44px -28px rgba(21,39,65,.28)}
.sdp-sm-img{overflow:hidden;min-height:210px}
.sdp-sm-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.sdp-sm:hover .sdp-sm-img img{transform:scale(1.04)}
.sdp-sm-b{padding:26px 24px}
.sdp-sm-b .sdp-ic{width:44px;height:44px;margin:0 0 14px}
.sdp-sm-b h3{font-family:var(--display);font-weight:800;font-size:20px;line-height:1.2;color:var(--navy);letter-spacing:-0.02em;margin:0 0 9px}
.sdp-sm-b p{font-size:14.5px;line-height:1.55;color:var(--slate-dk);margin:0 0 16px}

/* Service detail — CTA phone treatment */
.sd-cta-alt{display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);font-size:14.5px;color:rgba(206,219,238,.78)}
.sd-cta-alt .sd-cta-tel{display:inline-flex;align-items:center;gap:7px;border-bottom:0;color:#fff;font-weight:700}
.sd-cta-alt .sd-cta-tel:hover{color:var(--green-bright)}
@media(max-width:1080px){.sd-wcard{grid-template-columns:1fr}.sdw-r{border-left:0;border-top:1px solid var(--line)}.sd-pair-mosaic{grid-template-columns:1fr}.sdp-sm{grid-template-columns:1fr}.sdp-sm-img{min-height:180px}.sdcf{grid-template-columns:22px 1fr}}

/* Service hero — mockup refinements */
.sd-crumbs .cx{margin:0 9px;opacity:.42;font-size:14px}
.sdh-rule{display:block;width:46px;height:3px;border-radius:3px;background:var(--green-bright);box-shadow:0 0 12px rgba(72,228,24,.6);margin:26px 0 22px}
.sd-hero-dark .svcpg-actions{margin-top:34px;flex-direction:row;flex-wrap:wrap;gap:14px}
.sd-hero-dark .btn-blue{box-shadow:0 0 30px -8px rgba(16,119,213,.75)}
.sd-hero-dark .btn-light{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);color:#fff;box-shadow:none}
.sd-hero-dark .btn-light:hover{background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.28)}
.sd-rail.dark .sd-rail-in{display:grid;grid-template-columns:repeat(4,1fr);background:rgba(255,255,255,.03);border:1px solid rgba(120,160,220,.14);border-radius:16px;overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.sd-rail.dark .sdr b{font-size:17px;color:#fff}
.sd-rail.dark .sdr>.sdr-b>span{font-size:13.5px;line-height:1.4;color:rgba(198,213,234,.86)}
@media(max-width:1080px){.sdh-h{font-size:38px}.sd-rail.dark .sd-rail-in{grid-template-columns:1fr}.sd-rail.dark .sdr{border-left:0;border-top:1px solid rgba(255,255,255,.09)}.sd-rail.dark .sdr:first-child{border-top:0}}

.hero-rule{display:block;width:48px;height:3px;border-radius:3px;background:var(--green-bright);box-shadow:0 0 12px rgba(72,228,24,.55);margin:26px 0 0}
@media(max-width:1080px){.hero{padding-bottom:48px}}

.wid-rule{display:block;width:44px;height:3px;border-radius:3px;background:#F2A100;box-shadow:0 0 11px rgba(242,161,0,.55);margin:22px 0 30px}
.wid-split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.wid-l .wid-p:last-of-type{margin-bottom:0}
.wid-qm{display:block;font-family:Georgia,serif;font-weight:700;font-size:56px;line-height:.7;height:30px;color:var(--green-bright);opacity:.62}
.wid-quote p{font-size:15.5px;line-height:1.68;color:rgba(226,236,248,.88);margin:0}
.wid-quote p+p{margin-top:20px}
@media(max-width:1080px){.wid-split{grid-template-columns:1fr;gap:32px}.wid-q{font-size:26px}}

/* Why IGS — project cards with metadata bars */
.wi-projpair{display:flex;flex-direction:column;gap:20px}
.wi-pcard{position:relative;border-radius:14px;overflow:hidden;background:#0C1E39;box-shadow:0 26px 58px -34px rgba(10,27,52,.55)}
.wi-pcard>img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/8.2;display:block}
.wi-pcard-bar{display:flex;align-items:center;gap:13px;padding:15px 18px;background:linear-gradient(180deg,#0C1E39,#0A1A31)}
.wpc-ic{flex-shrink:0;display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:rgba(72,228,24,.12);border:1px solid rgba(72,228,24,.4);color:var(--green-bright)}
.wpc-b{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.wpc-b b{font-family:var(--sans);font-weight:700;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:#fff}
.wpc-b>span{font-size:12.5px;color:rgba(190,207,230,.82)}
.wpc-tag{flex-shrink:0;font-family:var(--sans);font-weight:700;font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--green-bright)}

/* Why IGS — credential cards with supporting line */
.wi-cred-rail{grid-template-columns:repeat(4,1fr);gap:18px}
.vet-badge{flex-direction:row!important;align-items:flex-start!important;gap:14px!important;padding:22px 20px!important;background:rgba(255,255,255,.04)!important;border:1px solid rgba(120,160,220,.18)!important;border-radius:12px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.vet-badge:hover{border-color:rgba(72,228,24,.4)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 0 22px -12px rgba(72,228,24,.7)}
.vb-b{display:flex;flex-direction:column;gap:5px;min-width:0}
.vb-b b{font-family:var(--display);font-weight:800;font-size:15.5px;line-height:1.24;color:#fff;letter-spacing:-0.014em}
.vb-b>span{font-family:var(--sans)!important;font-weight:500!important;font-size:13px;line-height:1.44;color:rgba(190,207,230,.82);letter-spacing:0}
@media(max-width:1080px){.wi-cred-rail{grid-template-columns:1fr 1fr}}

/* Why IGS — light Vetted section with card rail */
.wi-vetted-light{background:linear-gradient(180deg,#F4F8FD,#EDF3FA);border-top:1px solid var(--line);padding:104px 0}
.wi-vet-in{display:grid;grid-template-columns:38fr 62fr;gap:60px;align-items:center}
.wi-vet-l .body{font-size:15px;line-height:1.68}
.wi-vetted-light .wi-cred-rail{grid-template-columns:repeat(4,1fr);gap:16px;margin:0;padding:0;border-top:0}
.wi-vetted-light .vet-badge{flex-direction:column!important;align-items:center!important;text-align:center;gap:0!important;padding:28px 18px 26px!important;background:#fff!important;border:1px solid var(--line)!important;border-radius:14px!important;box-shadow:0 14px 34px -24px rgba(21,39,65,.28)}
.wi-vetted-light .vet-badge:hover{border-color:rgba(72,228,24,.45)!important;box-shadow:0 18px 40px -22px rgba(21,39,65,.32)}
.wi-vetted-light .wi-cred-ic{width:52px;height:52px;margin-bottom:18px}
.wi-vetted-light .vb-b{align-items:center;gap:0}
.wi-vetted-light .vb-b b{color:var(--navy);font-size:15.5px;line-height:1.26}
.wi-vetted-light .vb-b b::after{content:"";display:block;width:26px;height:2px;border-radius:2px;background:var(--green-bright);margin:14px auto}
.wi-vetted-light .vb-b>span{color:var(--slate-dk)!important;font-size:13px;line-height:1.5}

/* Why IGS — handover cards with supporting line */
.wi-hand-strip{gap:20px}
.wi-hs{aspect-ratio:auto;display:flex;flex-direction:column;background:#0C1E39}
.wi-hs img{aspect-ratio:16/9.6;object-fit:cover}
.wi-hs-bar{display:flex;align-items:flex-start;gap:13px;padding:16px 18px 18px;background:linear-gradient(180deg,#0C1E39,#0A1A31)}
.wi-hs-bar>i{flex-shrink:0;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:rgba(72,228,24,.12);border:1px solid rgba(72,228,24,.5);font-family:var(--display);font-style:normal;font-weight:800;font-size:12px;color:var(--green-bright)}
.whs-b{display:flex;flex-direction:column;gap:5px;min-width:0}
.whs-b b{font-family:var(--display);font-weight:800;font-size:14.5px;line-height:1.24;color:#fff;letter-spacing:-0.012em}
.whs-b>span{font-family:var(--sans);font-weight:500;font-size:12.5px;line-height:1.42;color:rgba(190,207,230,.82)}

/* light credentials zone */
.wi-credzone .wcz-h{color:var(--navy)}
.wi-credzone .wcz-p{color:var(--slate-dk)}
.wi-credzone .wcz-row{background:#fff;border:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:12px;padding:20px 22px;box-shadow:0 12px 30px -24px rgba(21,39,65,.26)}
.wi-credzone .wcz-cat{color:var(--navy)}
.wi-credzone .wcz-t{color:var(--navy)}
.wi-credzone .wcz-d{color:var(--slate-dk)}
.wi-credzone .wcz-band{background:var(--navy);background-image:none;border:1px solid rgba(72,228,24,.4);color:#fff}
.wi-credzone .wcz-bg{opacity:.05}
@media(max-width:1080px){.wi-vet-in{grid-template-columns:1fr;gap:32px}.wi-vetted-light .wi-cred-rail{grid-template-columns:1fr 1fr}}

/* light-section green: darker for AA contrast (neon stays on navy) */

/* neon green stays on dark surfaces; --green-deep is the AA-safe light-surface value */
.wi-disposition .eyebrow,.wi-process .eyebrow,.wi-sec-case .eyebrow,.svc-section .eyebrow,.testi-section .eyebrow,.community .eyebrow,.cta .eyebrow,.svc-dir .eyebrow,.sd-proc .eyebrow,.ctr-hero .eyebrow,.ctr-dark-zone .eyebrow,.mz-quote .eyebrow,.ab-timeline .eyebrow,.ab-closing .eyebrow,.spec-section .eyebrow{margin-bottom:18px;color:var(--green-bright)}
@keyframes sbScroll{from{transform:translateX(0)}to{transform:translateX(-100%)}}
@media(prefers-reduced-motion:reduce){}
@media(max-width:1080px){}

/* scroll reveal — only active once JS confirms, so no-JS content stays visible */
body.js-reveal .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.22,.61,.36,1) var(--rd,0ms),transform .7s cubic-bezier(.22,.61,.36,1) var(--rd,0ms);will-change:opacity,transform}
body.js-reveal .reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){body.js-reveal .reveal{opacity:1!important;transform:none!important;transition:none}}

.community-p{font-size:16.5px;line-height:1.66;color:rgba(228,238,250,.92);margin:20px 0 0;max-width:620px}
.community-cta{margin-top:26px}

/* service detail — approved subsections + scope note */
.sd-subs{background:#fff;padding:96px 0}
.sd-subs-in{display:grid;grid-template-columns:1fr 1fr;gap:44px 56px}
.sd-sub{padding-top:22px}
.sd-sub-rule{display:block;width:42px;height:3px;border-radius:3px;background:var(--sc2);box-shadow:0 0 10px color-mix(in srgb,var(--sc2) 55%,transparent);margin-bottom:18px}
.sd-sub h3{font-family:var(--display);font-weight:800;font-size:21px;line-height:1.24;color:var(--navy);letter-spacing:-0.018em;margin:0 0 11px}
.sd-sub p{font-size:15.5px;line-height:1.66;color:var(--slate-dk);margin:0}
.sd-note{margin-top:24px;padding:16px 18px;background:var(--bg-alt);border-left:3px solid var(--line-2);border-radius:8px;font-size:13.5px;line-height:1.6;color:var(--slate-dk)}
.sd-note b{color:var(--navy)}
@media(max-width:1080px){.sd-subs-in{grid-template-columns:1fr;gap:32px}}

/* Projects — partner testimonial inside the featured card */
.pff-quote{margin:26px 0 4px;padding:22px 24px;background:rgba(255,255,255,.05);border:1px solid rgba(120,160,220,.22);border-left:3px solid var(--green-bright);border-radius:12px}
.pffq-mark{display:block;font-family:Georgia,serif;font-weight:700;font-size:44px;line-height:.6;height:22px;color:var(--green-bright);opacity:.6}
.pff-quote p{font-size:15.5px;line-height:1.62;color:rgba(232,240,250,.92);margin:12px 0 0}
.pffq-a{margin-top:16px}
.pffq-a b{display:block;font-family:var(--display);font-weight:800;font-size:14.5px;color:#fff}
.pffq-a span{display:block;font-family:var(--sans);font-weight:500;font-size:13px;color:rgba(190,207,230,.84);margin-top:2px}

/* Testimonials — client interview */
.ti-interview{display:grid;grid-template-columns:36fr 64fr;gap:56px;align-items:start}
.ti-int-meta{margin:0}
.ti-int-meta b{display:block;font-family:var(--display);font-weight:800;font-size:16px;color:var(--navy)}
.ti-int-meta span{display:block;font-size:14px;color:var(--slate-dk);margin-top:4px}
.ti-int-r{position:relative;padding-left:26px;border-left:3px solid var(--green-bright)}
.ti-int-qm{display:block;font-family:Georgia,serif;font-weight:700;font-size:52px;line-height:.6;height:26px;color:var(--green-bright);opacity:.5}
.ti-int-r p{font-size:16px;line-height:1.68;color:var(--slate-dk);margin:18px 0 0}
@media(max-width:1080px){.ti-interview{grid-template-columns:1fr;gap:26px}}

/* About team — 2-up row + compact solo card while Lisa's bio is pending */
.team-row-2{grid-template-columns:1fr 1fr!important;align-items:start}
.team-solo{display:grid;grid-template-columns:220px 1fr;gap:34px;align-items:center;margin-top:44px;padding-top:40px;border-top:1px solid var(--line-2)}
.team-solo .ts-photo{border-radius:12px;overflow:hidden;aspect-ratio:4/5;position:relative}
.team-solo .ts-photo::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--green-bright);opacity:.85}
.team-solo .ts-photo img{width:100%;height:100%;object-fit:cover}
.team-solo .ts-b .tm-bio{max-width:660px}
@media(max-width:1080px){.team-row-2{grid-template-columns:1fr!important}.team-solo{grid-template-columns:1fr;gap:22px}.team-solo .ts-photo{max-width:220px}}

.tm-bio+.tm-bio{margin-top:13px}
.tm-creds{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);font-family:var(--sans);font-weight:600;font-size:12.5px;line-height:1.5;color:var(--green-deep)}

/* ---- Phone breakpoint (<=640px) ---- */
@media(max-width:640px){
  .wrap{padding-left:20px;padding-right:20px}
  .nav-inner{padding:10px 20px}
  .logo img{height:44px}
  .h-hero{font-size:32px;line-height:1.06}
  h1,.h2,.svc-h,.wcz-h,.apz-h,.ab-closing-h,.sdh-h,.sdcase-t{font-size:27px!important;line-height:1.12!important}
  .h2-sm{font-size:23px!important}
  .body-lg,.lead{font-size:16px}
  .hero{min-height:0;padding:24px 0 40px}
  .hero-media{position:relative;left:0;height:340px;margin-top:22px}
  .hero-inner{display:block}
  .hero-copy .body-lg{max-width:none}
  .hero-actions{flex-direction:column;align-items:stretch}
  .hero-actions .btn{justify-content:center}
  .section,.section-tight,.band,.svc-section,.svc-dir,.wi-inspect,.wi-credzone,.wi-vetted-light,.sd-subs,.ctr-apply-zone,.about-vision,.about-standard,.ab-timeline,.serve-tight,.testi-section,.community,.sd-proc,.sd-case,.wi-longcase,.ctr-map-zone{padding-top:56px!important;padding-bottom:56px!important}
  .svc-featured,.svc-sec-grid,.proj-grid,.tcards,.serve-strip,.serve-panel,.wi-cred-rail,.next-steps,.apz-next-row,.sd-timeline,.wip-row,.ab-tl-row,.spec-grid,.proc-cards,.cred-p3,.wcz-rows,.wi-hand-strip,.wi-projpair,.pf-grid,.sd-pair,.team-row-2,.ti-interview,.wid-split,.sd-subs-in,.wi-ins2,.ab-field-in,.mission-split,.contact,.crit-split,.ctr-why-in,.svcpg-hero-in,.wi-hero-in,.work-hero-in,.sdcase-card,.wcz-in,.wi-vet-in,.ab-give-in,.wi-lc-in,.sd-cta,.spcase-wrap{grid-template-columns:1fr!important;gap:22px!important}
  .proj-grid{grid-auto-rows:auto!important}
  .proj{aspect-ratio:16/11}
  .proj-big,.proj-wide,.proj-sm{grid-column:span 1!important;grid-row:span 1!important}
  .cta-actions,.svcpg-actions,.wi-hero-actions,.work-hero-actions,.sd-actions,.apz-btns,.sd-cta-act{flex-direction:column;align-items:stretch}
  .cta-actions .btn,.svcpg-actions .btn,.wi-hero-actions .btn,.work-hero-actions .btn,.apz-btns .btn{justify-content:center}
  .frow{grid-template-columns:1fr!important}
  .form{padding:22px 18px}
  .cp-inner{padding:28px 22px}
  .footer .f-grid,footer .f-grid{grid-template-columns:1fr!important;gap:30px!important}
  footer .f-bottom{flex-direction:column;align-items:flex-start;gap:12px}
  .apz-card{padding:22px 18px}
  .apz-lab{display:none}
  .apz-step.is-current .apz-lab{display:block}
  .abm{padding:0}
  .team-solo{grid-template-columns:1fr}
  .tf-grid,.wh-collage,.ab-collage,.ctr-collage,.svcpg-collage{grid-template-columns:1fr!important}
  .lb-thumbs{overflow-x:auto}
  .pf-filters{overflow-x:auto;flex-wrap:nowrap;padding-bottom:6px}
  .sd-hero-img,.wi-insp-main,.wi-ins2-tall,.crit-photo{aspect-ratio:4/3}
}

.apz-nx{position:relative}
.apz-nx::after{content:"";position:absolute;top:-16px;left:18px;width:calc(100% + 14px);height:2px;background:linear-gradient(90deg,var(--green),rgba(72,228,24,.35));opacity:.5;pointer-events:none}
.apz-nx:last-child::after{display:none}
@media(max-width:1080px){.apz-nx::after{display:none}}

.tm-photo{max-width:340px;aspect-ratio:4/5}
@media(max-width:1080px){.team-row-2{grid-template-columns:1fr 1fr!important}.tm-photo{aspect-ratio:4/5}}
@media(max-width:640px){.team-row-2{grid-template-columns:1fr!important}.tm-photo{max-width:260px}}

.wi-hero-actions .btn-blue,.work-hero-actions .btn-blue,.svcpg-actions .btn-blue,.page-hero .btn-blue,.about-hero .btn-blue{box-shadow:0 0 30px -8px rgba(16,119,213,.75)}
.wi-hero-actions .btn-blue:hover,.work-hero-actions .btn-blue:hover,.svcpg-actions .btn-blue:hover,.page-hero .btn-blue:hover{box-shadow:0 0 38px -6px rgba(16,119,213,.85)}
.wi-hero-actions .btn-outline,.work-hero-actions .btn-outline,.svcpg-actions .btn-outline,.page-hero .btn-outline{border-color:rgba(16,119,213,.4);border-width:1.5px;color:var(--blue-deep);background:#fff;box-shadow:0 0 20px -10px rgba(16,119,213,.5)}
.wi-hero-actions .btn-outline:hover,.work-hero-actions .btn-outline:hover,.svcpg-actions .btn-outline:hover,.page-hero .btn-outline:hover{border-color:var(--blue);background:var(--blue-soft);box-shadow:0 0 26px -8px rgba(16,119,213,.6)}

.wi-rcard .wir-mk{display:none}

.wi-vetted-light .wi-cred-rail{grid-template-columns:1fr 1fr!important;gap:18px}
.wi-vetted-light .vet-badge{flex-direction:row!important;align-items:flex-start!important;text-align:left;gap:16px!important;padding:24px 22px!important}
.wi-vetted-light .wi-cred-ic{width:46px;height:46px;margin-bottom:0;flex-shrink:0}
.wi-vetted-light .vb-b{align-items:flex-start;gap:6px}
.wi-vetted-light .vb-b b::after{display:none}
@media(max-width:640px){.wi-vetted-light .wi-cred-rail{grid-template-columns:1fr!important}}

.wi-hand-strip{align-items:stretch;grid-auto-rows:1fr}
.wi-hs{height:100%}
.wi-hs img{flex-shrink:0}
.wi-hs-bar{flex:1;align-items:flex-start}
.whs-b b{min-height:2.5em}
@media(max-width:640px){.whs-b b{min-height:0}}

.wid-q{padding-bottom:0}
.wid-q::after{display:none}

.wcz-row .wcz-rule{display:none}
.wcz-row .wcz-cat{margin-top:0}

/* Services overview — Where IGS Fits */
.svc-fits{background:var(--bg-alt);border-top:1px solid var(--line)}
.svc-fits-in{display:grid;grid-template-columns:38fr 62fr;gap:60px;align-items:start}
.svc-fits-l{position:sticky;top:118px}
.svc-fits-l .h2{margin-top:16px;max-width:380px}
.svc-fits-rows{margin-top:26px;display:flex;flex-direction:column}
.sfr{display:flex;gap:16px;align-items:flex-start;padding:18px 0;border-top:1px solid var(--line-2)}
.sfr:last-child{border-bottom:1px solid var(--line-2)}
.sfr-dot{flex-shrink:0;width:9px;height:9px;margin-top:7px;border-radius:50%;background:var(--fc);box-shadow:0 0 10px color-mix(in srgb,var(--fc) 70%,transparent)}
.sfr-b{display:flex;flex-direction:column;gap:5px}
.sfr-b b{font-family:var(--display);font-weight:800;font-size:17px;color:var(--navy);letter-spacing:-0.016em}
.sfr-b>span{font-size:14.5px;line-height:1.56;color:var(--slate-dk)}
@media(max-width:1080px){.svc-fits-in{grid-template-columns:1fr;gap:28px}.svc-fits-l{position:static}}

.sd-rail.dark .sdr::before{display:none}

.pff-fact svg{display:none}
@media(max-width:640px){.pff-fact{grid-template-columns:1fr;gap:5px}}


/* Who We Serve — cool tinted light field, distinct from the white above and near-white below */
.serve-tight .serve-bp{opacity:.85}
.serve-tight .wrap{position:relative;z-index:1}
.serve-tight .sv-item::before{box-shadow:0 0 0 4px #E6EDF6,0 0 14px 1px var(--cc)}
.serve-tight .sv-item:hover::before{box-shadow:0 0 0 4px #E6EDF6,0 0 22px 2px var(--cc)}

/* Homepage — featured project: horizontal editorial band (distinct from the Why IGS split) */
.hp-feat{background:var(--bg-alt);border-top:1px solid var(--line);padding:96px 0 104px}
.hpf-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;margin-bottom:30px}
.hpf-head .h2{margin:14px 0 8px}
.hpf-loc{font-family:var(--sans);font-size:13.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--slate-dk)}
.hpf-loc i{opacity:.45;margin:0 7px;font-style:normal}
.hpf-link{font-family:var(--sans);font-weight:700;font-size:15px;color:var(--blue-deep);display:inline-flex;align-items:center;gap:9px;white-space:nowrap;padding-bottom:6px}
.hpf-link:hover{gap:13px;color:var(--navy)}
.hpf-photo{position:relative;border-radius:16px;overflow:hidden;box-shadow:0 26px 60px -36px rgba(10,27,52,.45)}
.hpf-photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:21/8;display:block}
.hpf-body{display:grid;grid-template-columns:1fr 1.35fr;gap:56px;align-items:start;margin-top:36px}
.hpf-lede{font-size:17px;line-height:1.66;color:var(--slate-dk);margin:0}
.hpf-facts{display:grid;grid-template-columns:1fr 1fr;gap:26px 40px}
.hpf-fact{display:flex;flex-direction:column;gap:7px;padding-top:14px;border-top:2px solid var(--fc)}
.hpf-k{font-family:var(--sans);font-weight:700;font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.hpf-v{font-family:var(--display);font-weight:700;font-size:15px;line-height:1.46;color:var(--navy)}
.hpf-quote{margin:44px 0 0;padding:30px 34px;background:#fff;border:1px solid var(--line);border-radius:14px;display:grid;grid-template-columns:1fr auto;gap:20px 44px;align-items:center}
.hpf-quote p{font-family:var(--display);font-weight:700;font-size:19px;line-height:1.5;color:var(--navy);letter-spacing:-0.014em;margin:0;position:relative;padding-left:26px}
.hpf-quote p::before{content:"\201C";position:absolute;left:0;top:-6px;font-family:Georgia,serif;font-size:42px;line-height:1;color:var(--green-bright)}
.hpf-quote cite{font-style:normal;font-size:13px;line-height:1.6;color:var(--slate-dk);text-align:right;white-space:nowrap}
.hpf-quote cite b{display:block;font-family:var(--display);font-weight:800;font-size:15px;color:var(--navy)}
.hpf-quote cite i{opacity:.45;margin:0 5px;font-style:normal}
@media(max-width:1080px){.hpf-body{grid-template-columns:1fr;gap:28px}.hpf-facts{grid-template-columns:1fr}.hpf-photo img{aspect-ratio:16/9}.hpf-quote{grid-template-columns:1fr;gap:18px}.hpf-quote cite{text-align:left;white-space:normal}}

/* Who We Serve — compressed single row */
.serve-tight{padding:64px 0 68px}
.serve-row{position:relative;z-index:1;display:grid;grid-template-columns:0.9fr 1.1fr;gap:52px;align-items:center}
.h3-serve{font-family:var(--display);font-weight:800;font-size:30px;line-height:1.18;letter-spacing:-0.024em;color:var(--navy);margin:14px 0 0}
.serve-chips{display:flex;flex-wrap:wrap;gap:12px}
.serve-chip{display:inline-flex;align-items:center;gap:10px;padding:13px 20px;background:#fff;border:1px solid var(--line-2);border-radius:999px;font-family:var(--display);font-weight:700;font-size:15px;color:var(--navy);letter-spacing:-0.012em;transition:border-color .2s,box-shadow .2s}
.serve-chip i{width:8px;height:8px;border-radius:50%;background:var(--cc);box-shadow:0 0 10px color-mix(in srgb,var(--cc) 70%,transparent);flex-shrink:0}
.serve-chip:hover{border-color:color-mix(in srgb,var(--cc) 45%,transparent);box-shadow:0 0 18px -8px var(--cc)}
@media(max-width:1080px){.serve-row{grid-template-columns:1fr;gap:24px}.h3-serve{font-size:25px}}

/* Homepage — How a Project Works */
.hiw{background:#fff;padding:96px 0 100px;border-top:1px solid var(--line)}
.hiw-head{max-width:760px;margin:0 0 48px}
.hiw-head .h2{margin:14px 0 0}
.hiw-row{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:34px;padding-top:26px}
.hiw-line{position:absolute;top:6px;left:6%;right:6%;height:2px;background:linear-gradient(90deg,#1077D5,var(--green-deep) 34%,var(--amber-deep) 66%,#1077D5);opacity:.4}
.hiw-step{position:relative;padding-right:14px}
.hiw-dot{position:absolute;top:-26px;left:0;width:13px;height:13px;border-radius:50%;background:var(--sc);box-shadow:0 0 0 4px #fff,0 0 14px 1px color-mix(in srgb,var(--sc) 70%,transparent)}
.hiw-n{display:block;font-family:var(--display);font-weight:800;font-size:12.5px;letter-spacing:.14em;color:var(--sc);margin-bottom:10px}
.hiw-step h3{font-family:var(--display);font-weight:800;font-size:19px;line-height:1.24;color:var(--navy);letter-spacing:-0.018em;margin:0 0 10px}
.hiw-step p{font-size:15px;line-height:1.6;color:var(--slate-dk);margin:0}
@media(max-width:1080px){.hiw-row{grid-template-columns:1fr;gap:30px}.hiw-line{display:none}.hiw-dot{top:-20px}}

.stat-ic svg{width:20px;height:20px}

/* Why IGS — repeat-client pull quotes */
.wi-repeat{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:32px}
.wi-rq{margin:0;padding:22px 24px;background:#fff;border:1px solid var(--line);border-left:3px solid var(--green-bright);border-radius:12px}
.wi-rq p{font-family:var(--display);font-weight:700;font-size:15.5px;line-height:1.52;color:var(--navy);letter-spacing:-0.012em;margin:0}
.wi-rq cite{display:block;font-style:normal;margin-top:14px;font-size:13px;color:var(--slate-dk)}
.wi-rq cite b{display:block;font-family:var(--display);font-weight:800;font-size:14px;color:var(--navy);margin-bottom:2px}
/* light-section run: make Five Reasons a dark field */
.wi-sec-reasons{background:linear-gradient(180deg,#0E2340,#0A1A31)}
.wi-sec-reasons .eyebrow{color:var(--green-bright)}
.wi-sec-reasons .h2{color:#fff}
.wi-sec-reasons .wi-rcard{background:rgba(255,255,255,.05);border-color:rgba(120,160,220,.18)}
.wi-sec-reasons .wi-rcard h3{color:#fff}
.wi-sec-reasons .wi-rcard p{color:rgba(198,213,234,.86)}
.wi-sec-reasons .wir-wm{color:rgba(255,255,255,.08)}
@media(max-width:1080px){.wi-repeat{grid-template-columns:1fr}}

.wi-inspect{background:linear-gradient(180deg,#FBFCFE,#F4F8FD)}
.wi-inspect .eyebrow{color:var(--green-deep)}
.wi-inspect .h2{color:var(--navy)}
.wi-inspect .body{color:var(--slate-dk)}

.wi-handover{background:linear-gradient(180deg,#F4F8FD,#EDF3FA);border-top:1px solid var(--line)}
.wi-handover .eyebrow{color:var(--green-deep)}
.wi-handover .h2{color:var(--navy)}
.wi-handover .h2 .c-blue{color:var(--blue-deep)}
.wi-handover .body{color:var(--slate-dk)}

/* About — full-width stacked bios, identical treatment for all three owners */
.team-stack{display:flex;flex-direction:column;gap:0}
.team-bio{display:grid;grid-template-columns:280px 1fr;gap:48px;align-items:start;padding:44px 0;border-top:1px solid var(--line-2)}
.team-bio:first-child{border-top:0;padding-top:8px}
.tb-photo{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:4/5}
.tb-photo::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--blue),var(--green-bright));opacity:.9}
.tb-photo img{width:100%;height:100%;object-fit:cover}
.tb-b .tm-n{font-family:var(--display);font-weight:800;font-size:27px;letter-spacing:-0.026em;color:var(--navy);line-height:1.08}
.tb-b .tm-r{font-family:var(--sans);font-weight:700;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--green-deep);margin:10px 0 16px}
.tb-b .tm-bio{font-size:15.5px;line-height:1.7;color:var(--slate-dk);margin:0 0 14px;max-width:720px}
/* Giving Back — dark field (solves the light-run and the visual-weight problem together) */
.wi-give{background:linear-gradient(160deg,#0E2340,#0A1A31);border-top:0}
.wi-give .eyebrow{color:var(--green-bright)}
.wi-give .h2{color:#fff}
.wi-give .h2 .c-blue{color:#5AA0FF}
.wi-give .body{color:rgba(212,226,244,.9)}
.wi-give .abg-pull{color:#fff;border-left-color:var(--green-bright)}
.wi-give .abg-pull .hl{color:var(--green-bright)}
@media(max-width:1080px){.team-bio{grid-template-columns:1fr;gap:22px}.tb-photo{max-width:260px}}

.about-vision{background:linear-gradient(180deg,#0E2340,#0A1A31)}
.about-vision .eyebrow{color:var(--green-bright)}
.about-vision .h2{color:#fff}
.about-vision .av-r .body{color:rgba(212,226,244,.9)}

.proc-cards{grid-template-columns:repeat(4,1fr)}
.proc-cards>.proc-card:nth-child(4){--pc:var(--blue-deep)}
@media(max-width:1080px){.proc-cards{grid-template-columns:1fr}}

.crit-quote{margin:26px 0 0;padding:22px 24px;background:var(--bg-alt);border-left:3px solid var(--green-bright);border-radius:0 12px 12px 0}
.crit-quote p{font-family:var(--display);font-weight:700;font-size:16px;line-height:1.55;color:var(--navy);letter-spacing:-0.012em;margin:0}
.crit-quote cite{display:block;font-style:normal;margin-top:14px;font-size:13px;color:var(--slate-dk)}
.crit-quote cite b{display:block;font-family:var(--display);font-weight:800;font-size:14px;color:var(--navy);margin-bottom:2px}
/* nav: Join the Network should not compete with Request a Quote */
body:not(.ctr):not(.home) .nav-link-join{color:var(--navy)!important}
body:not(.ctr):not(.home) .nav-link-join:hover{color:var(--blue-deep)!important}

.cp-creds{font-size:12.5px!important;color:rgba(226,238,252,.9)!important}
.contact-formcol .form{align-self:start}
.ns-close{display:flex;flex-direction:column;align-items:center;gap:18px}
.ns-close>span{font-family:var(--display);font-weight:800;font-size:22px;color:var(--navy);letter-spacing:-0.018em}
.ns-alt{display:flex;align-items:center;gap:24px;flex-wrap:wrap;justify-content:center}
.ns-mail{font-family:var(--sans);font-weight:700;font-size:15px;color:var(--blue-deep)}
.ns-mail:hover{color:var(--navy)}

.sd-timeline{grid-template-columns:repeat(5,1fr)}
@media(max-width:1080px){.sd-timeline{grid-template-columns:1fr}}

.sdr-ic svg,.sdg-ic svg{width:22px;height:22px;display:block;flex-shrink:0}
.sdr-ic,.sdg-ic{display:inline-flex;align-items:center;justify-content:center;overflow:hidden}

.sd-rail .sdr .sdr-ic,.sd-scope .sdg-g .sdg-ic{display:flex!important;align-items:center!important;justify-content:center!important;line-height:0}
.sd-rail .sdr .sdr-ic>svg,.sd-scope .sdg-g .sdg-ic>svg{display:block;margin:0}

.sd-rail .sdr .sdr-rule{display:none}

/* Apply steps: equal-height cards, real clearance before the form */
.apz-next-row{align-items:stretch;grid-auto-rows:1fr;gap:36px;padding-bottom:0;margin-bottom:56px}
.apz-nx{padding-right:20px}
.apz-nx b{min-height:2.6em}
.apz-nx-d{margin-top:auto}
@media(max-width:1080px){.apz-nx b{min-height:0}.apz-next-row{padding-bottom:36px}}

/* Why IGS band — editorial 55/45, minimal overlap, wider shorter panel */
.whyx-comp{grid-template-columns:55% 45%!important;align-items:center}
.whyx-photo{height:600px!important;border-radius:16px!important;box-shadow:0 18px 44px -30px rgba(10,27,52,.32)!important}
.whyx-panel{margin-left:-48px!important;border-radius:16px!important;padding:48px 46px!important;box-shadow:0 16px 40px -26px rgba(10,27,52,.34)!important;border-color:rgba(90,147,255,.2)!important}
.whyx-panel .whyx-h{font-size:32px;line-height:1.1}
.whyx-panel .whyx-p{margin-top:16px}
.whyx-rows{margin-top:26px;display:flex;flex-direction:column;gap:0}
.whyx-rows li{padding:15px 0;border-top:1px solid rgba(255,255,255,.1)}
.whyx-rows li:first-child{border-top:0;padding-top:0}
.whyx-rows li:last-child{padding-bottom:0}
.whyx-rows .wr-d{display:none}
.whyx-rows .wr-t{font-size:16px}
.whyx-cta{margin-top:30px}
@media(max-width:1080px){.whyx-comp{grid-template-columns:1fr!important}.whyx-photo{height:420px!important}.whyx-panel{margin-left:0!important;margin-top:-32px!important;padding:34px 26px!important}.whyx-panel .whyx-h{font-size:26px}.whyx-rows .wr-d{display:block}}

.whyx-photo{height:660px!important}
.whyx-panel{padding:40px 42px!important}
.whyx-panel .whyx-h{font-size:29px}
.whyx-panel .whyx-p{font-size:15px;line-height:1.6;margin-top:14px}
.whyx-rows{margin-top:22px}
.whyx-rows li{padding:13px 0}
.whyx-cta{margin-top:24px}

/* Process timeline — scaled up, blueprint field, visible progression */
.hiw{position:relative;overflow:hidden;background:linear-gradient(180deg,#FBFCFE,#F4F8FD)!important;padding:104px 0 108px!important}
.hiw::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;background-image:linear-gradient(rgba(16,119,213,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(16,119,213,.055) 1px,transparent 1px);background-size:56px 56px}
.hiw .wrap{position:relative;z-index:1}
.hiw-head{margin-bottom:52px}
.hiw-row{gap:40px!important;padding-top:38px!important;align-items:start;grid-auto-rows:1fr}
.hiw-line{top:9px!important;left:5%!important;right:5%!important;height:3px!important;opacity:.55!important;border-radius:3px}
.hiw-step{padding-right:22px!important;display:flex;flex-direction:column}
.hiw-dot{top:-38px!important;width:19px!important;height:19px!important;box-shadow:0 0 0 5px #F7FAFD,0 0 18px 2px color-mix(in srgb,var(--sc) 75%,transparent)!important}
.hiw-top{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.hiw-n{font-size:32px!important;letter-spacing:-0.02em!important;line-height:1!important;margin-bottom:0!important}
.hiw-ic{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:color-mix(in srgb,var(--sc) 11%,#fff);border:1.5px solid color-mix(in srgb,var(--sc) 40%,transparent);color:var(--sc);flex-shrink:0}
.hiw-ic>svg{display:block}
.hiw-step h3{font-size:22px!important;margin-bottom:12px!important}
.hiw-step p{font-size:15.5px!important;line-height:1.66!important}
@media(max-width:1080px){.hiw-row{grid-template-columns:1fr!important;gap:34px!important}.hiw-line{display:none!important}.hiw-dot{top:-28px!important}.hiw-n{font-size:26px!important}}

/* Featured project — one integrated case-study card */
.hpf-head{display:block!important;margin-bottom:0!important}
.hpf-title{font-family:var(--display);font-weight:800;font-size:46px;line-height:1.04;letter-spacing:-0.032em;color:var(--navy);margin:14px 0 10px}
.hpf-card{margin-top:28px;display:grid;grid-template-columns:52% 48%;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 22px 54px -34px rgba(21,39,65,.32)}
.hpf-card .hpf-photo{border-radius:0;box-shadow:none;min-height:100%}
.hpf-card .hpf-photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:auto!important}
.hpf-inner{padding:44px 44px 46px;display:flex;flex-direction:column}
.hpf-inner .hpf-lede{font-size:16.5px;line-height:1.66;color:var(--slate-dk);margin:0 0 26px}
.hpf-card .hpf-facts{display:flex;flex-direction:column;margin:0 0 26px;padding:0}
.hpf-card .hpf-fact{display:grid;grid-template-columns:132px 1fr;gap:18px;align-items:baseline;padding:13px 0;border-top:1px solid var(--line)}
.hpf-card .hpf-fact:last-child{border-bottom:1px solid var(--line)}
.hpf-card .hpf-fact dt{font-family:var(--sans);font-weight:800;font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin:0}
.hpf-card .hpf-fact dd{margin:0;font-family:var(--display);font-weight:700;font-size:15.5px;line-height:1.45;color:var(--navy)}
.hpf-card .hpf-quote{margin:0 0 28px;padding:0 0 0 24px;background:none;border:0;border-left:3px solid var(--green-bright);border-radius:0;display:block}
.hpf-card .hpf-quote p{font-family:var(--display);font-weight:700;font-size:17px;line-height:1.55;color:var(--navy);letter-spacing:-0.012em;margin:0;padding-left:0}
.hpf-card .hpf-quote p::before{display:none}
.hpf-card .hpf-quote cite{display:block;font-style:normal;text-align:left;white-space:normal;margin-top:14px;font-size:13px;line-height:1.55;color:var(--slate-dk)}
.hpf-card .hpf-quote cite b{display:block;font-family:var(--display);font-weight:800;font-size:14.5px;color:var(--navy);margin-bottom:2px}
.hpf-cta{margin-top:auto;align-self:flex-start}
@media(max-width:1080px){.hpf-card{grid-template-columns:1fr}.hpf-title{font-size:32px}.hpf-inner{padding:30px 26px 32px}.hpf-card .hpf-photo img{aspect-ratio:16/9!important}.hpf-card .hpf-fact{grid-template-columns:1fr;gap:5px}}

.cp-serve{margin-top:22px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14)}
.cp-serve-h{font-family:var(--sans);font-weight:800;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--green-bright);margin-bottom:12px}
.cp-serve-list{display:flex;flex-wrap:wrap;gap:8px 18px}
.cp-serve-list span{position:relative;padding-left:13px;font-family:var(--sans);font-size:13.5px;font-weight:600;color:rgba(222,234,250,.94)}
.cp-serve-list span::before{content:"";position:absolute;left:0;top:50%;width:5px;height:5px;margin-top:-2.5px;border-radius:50%;background:var(--green-bright)}

/* Testimonials — equal cards, one type size */
.tcards{grid-template-columns:1fr 1fr!important;align-items:stretch}
.tcard{height:100%}
.tcard .qt,.tcard-feat .qt{font-size:19px!important;line-height:1.62!important}
.tcard .qa{margin-top:auto}

/* Testimonials — one hover treatment for both cards */
.tcard-feat:hover,.tcard:hover{transform:translateY(-3px);border-color:rgba(90,147,255,.3)!important;border-top-color:rgba(72,228,24,.85)!important;box-shadow:0 0 26px -14px rgba(16,119,213,.6)!important}

.tcard .qm,.tcard-feat .qm{opacity:.5!important}

/* Our Work featured — 58/42, mosaic fills the left column */
.pf-featured{grid-template-columns:58fr 42fr!important}
.pff-media{display:grid;grid-template-rows:1.55fr 1fr;gap:2px;background:rgba(90,140,210,.18)}
.pff-media .pff-img{min-height:0!important;height:100%}
.pff-media .pff-img img{height:100%}
.pff-sub{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.pff-img2{position:relative;overflow:hidden;min-height:0}
.pff-img2 img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.pf-featured:hover .pff-img2 img{transform:scale(1.04)}
.pff-b{padding:38px 40px!important}
@media(max-width:1080px){.pf-featured{grid-template-columns:1fr!important}.pff-media{grid-template-rows:auto auto}.pff-media .pff-img{min-height:240px!important}.pff-img2{min-height:150px}}

.whyx-rows li{align-items:center!important}
.whyx-rows .wr-b{padding-top:0!important;justify-content:center}

/* Our Work hero — blueprint field, controlled glow, architectural cards */
.work-hero::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.55;background-image:linear-gradient(rgba(16,119,213,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(16,119,213,.06) 1px,transparent 1px);background-size:58px 58px}
.work-hero::after{content:"";position:absolute;pointer-events:none;right:-8%;bottom:-22%;width:760px;height:520px;background:radial-gradient(closest-side,rgba(16,119,213,.16),rgba(16,119,213,0) 72%)}
.wh-collage{grid-template-columns:1.5fr 1fr!important;height:540px!important;gap:12px!important}
.wh-c{border-radius:12px!important;box-shadow:0 16px 34px -22px rgba(10,27,52,.5),0 0 0 1px rgba(16,119,213,.12)!important}
.wh-c1{box-shadow:0 20px 44px -24px rgba(10,27,52,.55),0 0 0 1px rgba(16,119,213,.16),0 0 34px -14px rgba(16,119,213,.34)!important}
@media(max-width:1080px){.wh-collage{grid-template-columns:1fr!important;height:auto!important}}

/* Our Work grid + filter tabs — refined, less template-driven */
.pf-tabs{margin:20px 0 30px}
.pf-tabs-lbl{display:block;font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.pf-tabs-row{display:flex;flex-wrap:wrap;gap:4px 26px;border-bottom:1px solid var(--line-2);padding-bottom:0}
.pf-tab{background:none;border:0;padding:0 0 12px;margin-bottom:-1px;font-family:var(--sans);font-weight:700;font-size:14.5px;color:var(--slate-dk);cursor:pointer;border-bottom:2px solid transparent;transition:color .18s,border-color .18s}
.pf-tab:hover{color:var(--navy)}
.pf-tab.on{color:var(--navy);border-bottom-color:var(--green-bright)}
.pf-tabs .pf-count{margin-top:16px;font-family:var(--sans);font-size:14px;font-weight:600;color:var(--slate-dk)}
.pf-img{aspect-ratio:4/3.2!important}
.pf-card{border-radius:12px!important;box-shadow:0 12px 30px -22px rgba(21,39,65,.3)!important}
.pf-card:hover{box-shadow:0 18px 40px -24px rgba(21,39,65,.36)!important}
.pf-b h3{font-size:22px!important;margin:10px 0 11px!important;line-height:1.18!important}
.pf-b .pf-loc{font-size:11px!important;letter-spacing:.13em!important;color:var(--muted)!important}
.pf-b p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pf-view{font-size:14.5px!important;padding:9px 0 0!important;border-top:1px solid var(--line);width:100%;margin-top:18px!important;border-bottom:0!important;color:var(--blue-deep)!important}
.pf-card:hover .pf-view{color:var(--navy)!important}
@media(max-width:1080px){.pf-tabs-row{gap:4px 18px}}

/* Our Work CTA — darker scrim, easier paragraph, clearer button separation */
.cta-media::after{background:linear-gradient(100deg,rgba(6,17,34,.94) 0%,rgba(6,17,34,.88) 26%,rgba(6,17,34,.7) 52%,rgba(6,17,34,.5) 78%,rgba(6,17,34,.42) 100%)!important}
.cta-inner .body-lg{line-height:1.72!important;max-width:600px}
.cta-actions{gap:34px!important;align-items:center}
.cta-phone{padding-left:22px;border-left:1px solid rgba(255,255,255,.22)}
.cta-trust{font-size:12.5px!important;padding:9px 16px 9px 30px!important;color:rgba(255,255,255,.88)!important}
@media(max-width:640px){.cta-phone{padding-left:0;border-left:0}}

/* Why IGS — inspection section: wide annotated photo, centered */
.wi-insp-head{max-width:760px;margin:0 0 34px}
.wi-insp-head .h2{margin:14px 0 16px}
.wi-scan.wide{aspect-ratio:21/8.6!important;max-width:none;border-radius:16px}
.wi-scan.wide img{width:100%;height:100%;object-fit:cover}
.wi-insp-foot{display:grid;grid-template-columns:1.35fr 1fr;gap:52px;align-items:start;margin-top:34px}
.wi-insp-foot .body{margin:0}
.wi-insp-foot .wi-insp-close{margin:0;padding-top:0;border-top:0}
@media(max-width:1080px){.wi-scan.wide{aspect-ratio:16/11!important}.wi-insp-foot{grid-template-columns:1fr;gap:22px}}


/* Why IGS — photography-led proof grid */
.wi-r5{display:grid;grid-template-columns:42fr 58fr;gap:60px;align-items:start}
.wi-r5-photo{position:relative;border-radius:16px;overflow:hidden;box-shadow:0 18px 44px -30px rgba(10,27,52,.4)}
.wi-r5-photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5;display:block}
.wi-r5-b .h2{margin:14px 0 0}
.wi-r5-list{margin-top:32px;display:flex;flex-direction:column}
.wi-r5-item{display:grid;grid-template-columns:56px 1fr;gap:20px;align-items:baseline;padding:20px 0;border-top:1px solid var(--line-2)}
.wi-r5-item:last-child{border-bottom:1px solid var(--line-2)}
.wi-r5-n{font-family:var(--display);font-weight:800;font-size:26px;line-height:1;color:var(--cc);letter-spacing:-0.02em}
.wi-r5-t h3{font-family:var(--display);font-weight:800;font-size:20px;line-height:1.24;color:var(--navy);letter-spacing:-0.018em;margin:0 0 8px}
.wi-r5-t p{font-size:15.5px;line-height:1.62;color:var(--slate-dk);margin:0;max-width:560px}
@media(max-width:1080px){.wi-r5{grid-template-columns:1fr;gap:30px}.wi-r5-photo img{aspect-ratio:16/10}.wi-r5-item{grid-template-columns:44px 1fr;gap:14px}}

/* Why IGS — then-and-now decades story */
.wi-decades{padding:96px 0 100px}
.wi-decades::before,.wi-decades::after{display:none}
.wi-dec-head{max-width:780px;margin:0 0 38px}
.wi-dec-head .h2{margin:14px 0 16px}
.wi-dec-pair{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.wi-dec-f{margin:0;position:relative;border-radius:14px;overflow:hidden;box-shadow:0 16px 40px -28px rgba(10,27,52,.42)}
.wi-dec-f img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;display:block}
.wi-dec-f figcaption{position:absolute;left:0;right:0;bottom:0;padding:18px 22px;background:linear-gradient(0deg,rgba(6,17,34,.94),rgba(6,17,34,.55) 62%,transparent);font-family:var(--sans);font-size:13px;color:rgba(226,238,252,.92)}
.wi-dec-f figcaption b{display:block;font-family:var(--display);font-weight:800;font-size:16px;letter-spacing:-0.012em;color:#fff;margin-bottom:4px}
.wi-dec-f figcaption i{opacity:.5;margin:0 6px;font-style:normal}
.wi-dec-q{margin:34px 0 0;padding:0 0 0 24px;border-left:3px solid var(--green-bright);max-width:820px}
.wi-dec-q p{font-family:var(--display);font-weight:700;font-size:21px;line-height:1.5;color:var(--navy);letter-spacing:-0.016em;margin:0}
.wi-dec-q cite{display:block;font-style:normal;margin-top:14px;font-size:13.5px;color:var(--slate-dk)}
.wi-dec-q cite b{display:block;font-family:var(--display);font-weight:800;font-size:15px;color:var(--navy);margin-bottom:2px}
.wi-dec-q cite i{opacity:.5;margin:0 6px;font-style:normal}
@media(max-width:1080px){.wi-dec-pair{grid-template-columns:1fr;gap:16px}.wi-dec-q p{font-size:18px}}

/* Why IGS — Riverfront case card refinements */
.wi-case-q{font-size:22px!important;line-height:1.5!important}
.wi-case-b{padding-top:38px!important;padding-bottom:38px!important}
.wi-case-a b{font-size:16px!important}
.wi-case-a span{color:rgba(214,228,244,.9)!important;font-size:13.5px!important}
.wic-link{font-size:14.5px!important;color:var(--green-bright)!important}
.wic-link:hover{color:#fff!important}
.wic-pill{font-size:12px!important}
.wic-loc{font-size:12.5px!important;color:rgba(226,238,252,.92)!important}
@media(max-width:1080px){.wi-case-q{font-size:19px!important}}

/* Why IGS — sign-off: one large walkthrough photo + field checklist */
.wi-ho-head{max-width:840px;margin:0 0 34px}
.wi-ho-head .h2{margin-top:14px}
.wi-ho-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:22px;align-items:stretch}
.wi-ho-main{margin:0;position:relative;border-radius:14px;overflow:hidden;box-shadow:0 18px 44px -30px rgba(10,27,52,.42)}
.wi-ho-main img{width:100%;height:100%;object-fit:cover;display:block}
.wi-ho-main figcaption{position:absolute;left:0;right:0;bottom:0;padding:20px 24px;background:linear-gradient(0deg,rgba(6,17,34,.94),rgba(6,17,34,.5) 66%,transparent);font-family:var(--sans);font-size:13px;color:rgba(226,238,252,.92)}
.wi-ho-main figcaption b{display:block;font-family:var(--display);font-weight:800;font-size:17px;color:#fff;letter-spacing:-0.014em;margin-bottom:4px}
.wi-ho-side{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr;gap:14px}
.wi-ho-det{margin:0;border-radius:12px;overflow:hidden}
.wi-ho-det img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;display:block}
.wi-ho-check{grid-column:span 2;list-style:none;margin:0;padding:22px 24px;background:var(--bg-alt);border-left:3px solid var(--green-bright);border-radius:0 12px 12px 0;display:flex;flex-direction:column;gap:12px}
.wi-ho-check li{display:flex;align-items:flex-start;gap:11px;font-family:var(--sans);font-size:14.5px;line-height:1.5;font-weight:600;color:var(--navy)}
.wih-ic{flex-shrink:0;display:grid;place-items:center;width:19px;height:19px;margin-top:2px;border-radius:50%;background:var(--green-soft);color:var(--green-deep)}
.wi-ho-p{margin-top:28px;max-width:840px}
@media(max-width:1080px){.wi-ho-grid{grid-template-columns:1fr}.wi-ho-side{grid-template-rows:auto auto}}

/* Why IGS — disposition with owner portrait */
.wid-split2{display:grid;grid-template-columns:1.35fr 1fr;gap:60px;align-items:center;position:relative;z-index:1}
.wid-lead{font-size:15.5px;line-height:1.66;color:rgba(206,220,240,.86);margin:22px 0 0}
.wid-ask{font-family:var(--display);font-weight:800;font-size:40px;line-height:1.12;letter-spacing:-0.03em;color:var(--green-bright);margin:16px 0 20px}
.wid-portrait{position:relative;border-radius:14px;overflow:hidden;box-shadow:0 24px 56px -32px rgba(4,12,26,.7)}
.wid-portrait img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/4.6;display:block}
.wid-por-lab{position:absolute;left:0;right:0;bottom:0;padding:20px 22px;background:linear-gradient(0deg,rgba(6,17,34,.95),rgba(6,17,34,.5) 66%,transparent);font-family:var(--sans);font-size:13px;color:rgba(226,238,252,.92)}
.wid-por-lab b{display:block;font-family:var(--display);font-weight:800;font-size:17px;color:#fff;letter-spacing:-0.014em;margin-bottom:3px}
.wid-por-lab i{opacity:.5;margin:0 6px;font-style:normal}
@media(max-width:1080px){.wid-split2{grid-template-columns:1fr;gap:30px}.wid-ask{font-size:30px}.wid-portrait img{aspect-ratio:4/3.4}}

/* Five Reasons — CRITICAL contrast fix: section is dark, type was styled for light */
.wi-sec-reasons .wi-r5-t h3{color:#fff!important}
.wi-sec-reasons .wi-r5-t p{color:rgba(206,220,240,.88)!important}
.wi-sec-reasons .wi-r5-item{border-top-color:rgba(255,255,255,.11)!important}
.wi-sec-reasons .wi-r5-item:last-child{border-bottom-color:rgba(255,255,255,.11)!important}
.wi-sec-reasons .eyebrow{color:var(--green-bright)!important}
.wi-sec-reasons .h2{color:#fff!important}
.wi-sec-reasons .wi-r5-photo img{aspect-ratio:4/5.6}
/* Inspection footer — statement reads as the conclusion, not a second column */
.wi-insp-foot.single{grid-template-columns:1fr!important;gap:18px!important;max-width:840px}
.wi-insp-foot.single .wi-insp-close{padding-left:20px;border-left:3px solid var(--green-bright)}
.wi-pin b{font-size:13px}
/* Owner timeline — restrained palette, tighter bands */
.wip-step .wip-dot{background:var(--green-bright)!important;box-shadow:0 0 0 4px #0C1E39,0 0 14px 1px rgba(72,228,24,.6)!important}
.wip-step p{font-size:15px!important}
.wi-process{padding:88px 0 82px!important}
/* Decades — tighter bottom */
.wi-decades{padding:88px 0 78px!important}
/* Overall vertical rhythm ~12% tighter on this page */
.wi-hero{padding:104px 0 76px!important}
.wi-inspect{padding:86px 0!important}
.wi-sec-reasons{padding:86px 0!important}
.wi-vetted-light{padding:88px 0!important}
.wi-handover{padding:86px 0!important}
.wi-disposition{padding:88px 0!important}

/* Project proof card — readability + quieter decoration */
.wi-case-q{line-height:1.56!important;margin-bottom:26px!important}
.wi-case-a{margin-top:0!important}
.wi-case-facts .cf-k{font-size:11px!important;letter-spacing:.12em!important}
.wi-case-facts .cf-v{font-size:15px!important}
.wic-qm{opacity:.16!important}
.wi-case{box-shadow:0 16px 40px -30px rgba(4,12,26,.5)!important}
.wic-link{margin-top:22px!important;padding-top:18px!important;border-top:1px solid rgba(255,255,255,.14)}
/* Credentials — tighter band, lighter cards, larger icons, stronger descriptions */
.wi-vetted-light{padding:78px 0!important}
.wi-vetted-light .vet-badge{box-shadow:0 8px 22px -18px rgba(21,39,65,.22)!important;height:100%}
.wi-vetted-light .wi-cred-rail{grid-auto-rows:1fr}
.wi-vetted-light .wi-cred-ic{width:51px!important;height:51px!important}
.wi-vetted-light .wi-cred-ic>svg{width:24px;height:24px}
.wi-vetted-light .vb-b>span{color:var(--slate-dk)!important;font-size:13.5px!important}
.wi-vetted-light .wcz-h .c-blue2{color:var(--navy)}
.wi-vetted-light .wcz-h{max-width:420px}
/* Walkthrough — one unified right panel, wider headline */
.wi-ho-head{max-width:960px}
.wi-ho-head .h2{font-size:36px}
.wi-ho-side{background:var(--bg-alt);border-radius:12px;padding:14px;gap:12px}
.wi-ho-check{grid-column:span 2;background:none;border-left:0;border-radius:0;padding:6px 8px 4px;border-top:1px solid var(--line-2);margin-top:2px}
.wih-close{display:block!important;padding-top:12px;margin-top:4px;border-top:1px solid var(--line-2);font-size:13.5px!important;font-weight:500!important;line-height:1.6!important;color:var(--slate-dk)!important}
/* Titus portrait — less corporate, aligned, textured field ground */
.wid-portrait{box-shadow:none!important;border:1px solid rgba(120,160,220,.2)}
.wid-portrait img{aspect-ratio:4/4.2!important;object-position:50% 22%}
.wid-portrait::before{content:"";position:absolute;inset:0;z-index:0;background-image:linear-gradient(rgba(120,160,220,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(120,160,220,.07) 1px,transparent 1px);background-size:34px 34px}
.wid-por-lab b{font-size:18px}
.wid-por-lab{font-size:13.5px;padding:22px 24px}
@media(max-width:1080px){.wi-ho-head .h2{font-size:27px}}

/* About — art-directed leadership row: identical crops and treatment */
.ab-owners{display:grid;grid-template-columns:1fr 1fr;gap:44px}
.ab-owner{display:flex;flex-direction:column}
.abo-photo{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:4/4.4;background:var(--bg-alt)}
.abo-photo::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--blue),var(--green-bright));opacity:.9}
.abo-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.98)}
.abo-b{padding:24px 0 0}
.abo-b .tm-n{font-family:var(--display);font-weight:800;font-size:26px;letter-spacing:-0.026em;color:var(--navy);line-height:1.08}
.abo-b .tm-r{font-family:var(--sans);font-weight:700;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--green-deep);margin:9px 0 15px}
.abo-b .tm-bio{font-size:15.5px;line-height:1.68;color:var(--slate-dk);margin:0 0 13px}
.abo-cred{margin-top:14px;padding-top:14px;border-top:1px solid var(--line-2);font-family:var(--sans);font-size:13px;font-weight:700;color:var(--navy)}
.ab-owner-solo{display:grid;grid-template-columns:280px 1fr;gap:44px;align-items:start;margin-top:48px;padding-top:44px;border-top:1px solid var(--line-2)}
.ab-owner-solo .abo-b{padding-top:0}
.ab-owner-solo .abo-b .tm-bio{max-width:700px}
@media(max-width:1080px){.ab-owners{grid-template-columns:1fr;gap:34px}.ab-owner-solo{grid-template-columns:1fr;gap:22px}.ab-owner-solo .abo-photo{max-width:260px}}

.ab-owners.three{grid-template-columns:repeat(3,1fr);gap:36px;align-items:start}
.ab-owners.three .abo-photo{aspect-ratio:4/4.6}
.ab-owners.three .abo-b .tm-n{font-size:23px}
.ab-owners.three .abo-b .tm-bio{font-size:15px;line-height:1.66}
@media(max-width:1080px){.ab-owners.three{grid-template-columns:1fr;gap:34px}}

.wi-give{background:linear-gradient(180deg,#F7FAFD,#F4F8FD)!important}
.wi-give .eyebrow{color:var(--green-deep)!important}
.wi-give .h2{color:var(--navy)!important}
.wi-give .h2 .c-blue{color:var(--blue-deep)!important}
.wi-give .body{color:var(--slate-dk)!important}
.wi-give .abg-pull{color:var(--navy)!important;border-left-color:var(--green-deep)!important}
.wi-give .abg-pull .hl{color:var(--green-deep)!important}

/* Why IGS — no back-to-back dark: Five Reasons returns to light */
.wi-sec-reasons{background:linear-gradient(180deg,#FBFCFE,#F4F8FD)!important}
.wi-sec-reasons .eyebrow{color:var(--green-deep)!important}
.wi-sec-reasons .h2{color:var(--navy)!important}
.wi-sec-reasons .h2 .c-green{color:var(--green-accent)!important}
.wi-sec-reasons .wi-r5-t h3{color:var(--navy)!important}
.wi-sec-reasons .wi-r5-t p{color:var(--slate-dk)!important}
.wi-sec-reasons .wi-r5-item{border-top-color:var(--line-2)!important}
.wi-sec-reasons .wi-r5-item:last-child{border-bottom-color:var(--line-2)!important}
.wi-sec-reasons .wi-r5-n{color:var(--navy)!important;opacity:.16}
.wi-sec-reasons .wi-rcard{background:#fff!important;border-color:var(--line)!important}
.wi-sec-reasons .wi-rcard h3{color:var(--navy)!important}
.wi-sec-reasons .wi-rcard p{color:var(--slate-dk)!important}
.wi-sec-reasons .wir-wm{color:rgba(21,39,65,.06)!important}
/* CTA sits inside a light frame so it never abuts the dark disposition band */
.wi-cta-frame{background:linear-gradient(180deg,#F4F8FD,#EDF3FA);padding:76px 0}
.wi-cta-frame .cta{max-width:1240px;margin:0 auto;border-radius:18px;overflow:hidden}

/* Our Work — let descriptions finish, and equalize card heights */
.pf-grid{align-items:stretch;grid-auto-rows:1fr}
.pf-card{height:100%}
.pf-card .pf-b p{display:block!important;-webkit-line-clamp:none!important;overflow:visible!important;min-height:3.2em}
.pf-b{display:flex;flex-direction:column}
.pf-b .pf-view{margin-top:auto}

/* About — one shared content edge, and even section rhythm */
.about-story-sec .wrap,#team .wrap{max-width:1240px;padding-left:44px;padding-right:44px;margin-left:auto;margin-right:auto}
#team{padding-top:96px!important;padding-bottom:104px!important}
.about-story-sec{padding-top:100px!important;padding-bottom:96px!important}

/* Contact — shared content edge */
.contact-intro-sec .wrap{max-width:1240px!important;padding-left:44px;padding-right:44px;margin-left:auto;margin-right:auto}
.contact-intro-sec .wrap>*{max-width:820px;margin-left:auto;margin-right:auto}

/* Careers — process cards equal height */
.proc-cards{align-items:stretch;grid-auto-rows:1fr}
.proc-card{height:100%}

/* Careers — benefit columns, connected process, tighter application */
.ctr-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.ctr-benefit{display:flex;flex-direction:column;gap:9px}
.cb-rule{display:block;width:38px;height:3px;border-radius:3px;background:var(--bc)}
.ctr-benefit b{font-family:var(--display);font-weight:800;font-size:17px;line-height:1.26;color:var(--navy);letter-spacing:-0.016em}
.ctr-benefit>span{font-size:14.5px;line-height:1.56;color:var(--slate-dk)}
/* four-step model reads as one operating system, not app cards */
.proc-cards{position:relative}
.proc-cards::before{content:"";position:absolute;top:0;left:6%;right:6%;height:2px;background:linear-gradient(90deg,var(--blue-deep),var(--green-deep),var(--amber-deep),var(--blue-deep));opacity:.3}
.proc-card{border-radius:8px!important;box-shadow:none!important;border-top-width:3px}
.pc-n{font-size:30px!important;line-height:1!important}
.proc-card h3{font-size:18px!important}
.proc-card p{font-size:15px!important;line-height:1.6!important}
.proc-cards>.proc-card:nth-child(3){background:#fff;border-color:var(--green-deep);box-shadow:0 10px 30px -22px rgba(21,39,65,.3)!important}
/* separate the two pale zones */
.ctr-light-zone{background:#fff!important}
/* market map: substantial figures */
.ctr-map-l .cml-fig b{font-size:44px!important;line-height:1!important}
.ctr-map img{box-shadow:0 18px 44px -32px rgba(10,27,52,.4)!important}
/* application: tighter, larger steps, higher-contrast helper line */
.ctr-apply-zone{padding-top:78px!important}
.apz-intro{margin-bottom:30px!important}
.apz-next{margin-top:0!important;padding-top:0!important;border-top:0!important}
.apz-next-row{margin-bottom:38px!important}
.apz-nx b{font-size:18px!important}
.apz-nx-d{font-size:15px!important}
.apz-support{color:var(--slate-dk);font-weight:600}
.field label{color:var(--navy)!important}
@media(max-width:1080px){.ctr-benefits{grid-template-columns:1fr;gap:24px}.proc-cards::before{display:none}}

/* Careers — process section: cards must read against their field */
.ctr-light-zone{background:linear-gradient(180deg,#FBFCFE,#F4F8FD)!important}
.proc-card{background:#fff!important;border:1px solid var(--line)!important;border-top:3px solid var(--pc,var(--blue))!important;box-shadow:0 8px 24px -18px rgba(21,39,65,.28)!important;border-radius:10px!important}
.proc-cards::before{top:-18px;left:10%;right:10%;opacity:.22}
.proc-cards>.proc-card:nth-child(3){box-shadow:0 14px 34px -20px rgba(21,39,65,.34)!important}
/* restore breathing room the compression removed */
.apz-next{margin-top:14px!important}

/* ============ Careers: rhythm dark→light→dark→light→dark→light ============ */
/* 2. Why the network exists — stays light, but the strips become substantial benefits */
.ctr-origin{background:#fff!important;padding:96px 0!important}
.ctr-benefits{grid-template-columns:repeat(3,1fr);gap:44px}
.ctr-benefit{gap:12px}
.cb-rule{width:0;height:0;margin:0}
.ctr-benefit b{font-size:21px;line-height:1.22}
.ctr-benefit b::before{content:attr(data-n);display:block;font-family:var(--display);font-weight:800;font-size:34px;line-height:1;color:var(--bc);margin-bottom:14px;letter-spacing:-0.02em}
.ctr-benefit>span{font-size:15.5px;line-height:1.62}

/* 3. Operating model → dark blueprint pipeline, step 3 dominant */
.ctr-light-zone{background:linear-gradient(180deg,#0E2340,#0A1A31)!important;padding:100px 0!important;position:relative;overflow:hidden}
.ctr-light-zone::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.05;background-image:linear-gradient(rgba(120,160,220,.7) 1px,transparent 1px),linear-gradient(90deg,rgba(120,160,220,.7) 1px,transparent 1px);background-size:54px 54px}
.ctr-light-zone .wrap{position:relative;z-index:1}
.ctr-light-zone .eyebrow{color:var(--green-bright)!important}
.ctr-light-zone .h2,.ctr-light-zone .h2 .c-green{color:#fff!important}
.ctr-light-zone .h2 .c-green{color:var(--green-bright)!important}
.ctr-light-zone .body{color:rgba(208,222,242,.9)!important}
.proc-cards{position:relative;gap:26px}
.proc-cards::before{content:"";position:absolute;top:34px;left:8%;right:8%;height:2px;background:linear-gradient(90deg,#3B9BF0,var(--green-bright),var(--amber),#3B9BF0);opacity:.34}
.proc-card{background:transparent!important;border:0!important;border-top:0!important;box-shadow:none!important;border-radius:0!important;padding:0!important;position:relative;padding-top:64px!important}
.proc-card::before{content:"";position:absolute;top:28px;left:0;width:14px;height:14px;border-radius:50%;background:var(--pc,#3B9BF0);box-shadow:0 0 0 5px #0C1E39,0 0 16px 1px var(--pc,#3B9BF0)}
.pc-n{font-size:13px!important;letter-spacing:.16em!important;color:var(--pc)!important;display:block;margin-bottom:10px!important}
.proc-card h3{font-size:20px!important;color:#fff!important;line-height:1.24!important}
.proc-card p{font-size:15px!important;line-height:1.6!important;color:rgba(198,213,234,.86)!important}
.proc-cards>.proc-card:nth-child(3){background:rgba(255,255,255,.06)!important;border:1px solid rgba(72,228,24,.34)!important;border-radius:12px!important;padding:56px 22px 26px!important;margin-top:-14px}
.proc-cards>.proc-card:nth-child(3)::before{left:22px;top:20px}
.proc-cards>.proc-card:nth-child(3) h3{font-size:23px!important}

/* 5. Qualification section — testimonial pulled out to a full-width strip */
.crit-quote{margin:44px 0 0!important;padding:34px 40px!important;background:var(--navy)!important;border:0!important;border-left:4px solid var(--green-bright)!important;border-radius:0 14px 14px 0!important;grid-column:1/-1}
.crit-quote p{color:#fff!important;font-size:19px!important;line-height:1.56!important}
.crit-quote cite{color:rgba(198,213,234,.84)!important}
.crit-quote cite b{color:#fff!important}

/* 6. Market map → full-width dark, map as the visual centre */
.ctr-map-zone{background:linear-gradient(180deg,#0E2340,#0A1A31)!important;padding:96px 0 104px!important;border-top:0!important}
.ctr-map-zone .eyebrow{color:var(--green-bright)!important}
.ctr-map-zone .h2{color:#fff!important}
.ctr-map-zone .h2 .c-green{color:var(--green-bright)!important}
.ctr-map-zone .body{color:rgba(208,222,242,.9)!important}
.ctr-map-wrap{align-items:center}
.ctr-map img{box-shadow:none!important;filter:none}
.ctr-legend span{color:rgba(214,228,244,.9)!important}
.ctr-map-l b,.cml-fig b{color:#fff!important}

/* 7. Application — one process diagram only */
.apz-steps{display:none!important}
.ctr-apply-zone{padding-top:84px!important}

/* Careers benefits — breathing room and even columns */
.ctr-benefits{gap:48px;padding:34px 34px 36px;background:var(--bg-alt);border-radius:14px;align-items:start}
.ctr-benefit{gap:10px}
.ctr-benefit b{font-size:19px;line-height:1.26;min-height:2.6em}
.ctr-benefit>span{font-size:15px;line-height:1.6}
.ctr-why-r .body{margin-bottom:34px!important}
.ctr-why-l{padding-right:40px}
@media(max-width:1080px){.ctr-benefits{gap:28px;padding:26px 22px}.ctr-benefit b{min-height:0}.ctr-why-l{padding-right:0}}

/* Careers pipeline — kill the leftover circular number badge; the line dot is the only marker */
.ctr-light-zone .pc-n{background:none!important;border:0!important;border-radius:0!important;width:auto!important;height:auto!important;display:block!important;place-items:initial!important;box-shadow:none!important;font-size:12px!important;font-weight:800!important;letter-spacing:.18em!important;margin:0 0 12px!important;padding:0!important;color:var(--pc)!important}
.ctr-light-zone .proc-card{padding-top:56px!important}
.ctr-light-zone .proc-cards>.proc-card:nth-child(3){padding:52px 24px 26px!important;margin-top:-16px}
.ctr-light-zone .proc-cards>.proc-card:nth-child(3)::before{left:24px;top:22px}
.ctr-light-zone .proc-cards>.proc-card:nth-child(3) .pc-n{color:var(--green-bright)!important}
.ctr-light-zone .proc-cards>.proc-card:nth-child(3)::before{background:var(--green-bright);box-shadow:0 0 0 5px #0E2340,0 0 18px 2px var(--green-bright)}

/* Careers — section returns to light; ONLY the pipeline is a dark inset panel */
.ctr-light-zone{background:linear-gradient(180deg,#FBFCFE,#F4F8FD)!important;padding:96px 0!important}
.ctr-light-zone::after{display:none}
.ctr-light-zone .eyebrow{color:var(--green-deep)!important}
.ctr-light-zone .h2{color:var(--navy)!important}
.ctr-light-zone .h2 .c-green{color:var(--green-accent)!important}
.ctr-light-zone .h2 .c-blue{color:var(--green-accent)!important}
.ctr-light-zone .body{color:var(--slate-dk)!important}

/* the pipeline itself: dark blueprint panel */
.proc-cards{position:relative;background:linear-gradient(180deg,#0E2340,#0A1A31);border-radius:16px;padding:44px 34px 38px!important;gap:30px;overflow:hidden}
.proc-cards::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.06;background-image:linear-gradient(rgba(120,160,220,.7) 1px,transparent 1px),linear-gradient(90deg,rgba(120,160,220,.7) 1px,transparent 1px);background-size:52px 52px}
.proc-cards::before{top:78px;left:8%;right:8%}
.proc-card{position:relative;z-index:1;padding-top:56px!important}
.proc-card::before{top:72px}
.proc-cards>.proc-card:nth-child(3){margin-top:0;padding:52px 22px 24px!important}
.proc-cards>.proc-card:nth-child(3)::before{top:64px;left:22px}

/* qualification block stays light and readable */
.crit-split{margin-top:72px!important;padding-top:72px!important}
.crit-row .cr-ic{background:color-mix(in srgb,var(--cc) 11%,#fff)!important}
.crit-row b,.crit-title{color:var(--navy)!important}
.crit-row span,.crit-row p{color:var(--slate-dk)!important}
.crit-line{color:var(--navy)!important}
.crit-quote{background:var(--navy)!important}

/* Careers pipeline — one aligned baseline: line → dot → number → title → body */
.proc-cards{display:grid;grid-template-columns:repeat(4,1fr);align-items:start!important;grid-auto-rows:auto!important;gap:32px;padding:52px 34px 44px!important}
.proc-cards::before{top:74px!important;left:34px!important;right:34px!important}
.proc-card{padding:0!important;margin:0!important;padding-top:44px!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;height:auto!important}
.proc-card::before{top:16px!important;left:0!important}
.proc-card .pc-n{margin:0 0 8px!important}
.proc-card h3{margin:0 0 10px!important}
/* stage 3 emphasis: tone only, no vertical offset */
.proc-cards>.proc-card:nth-child(3){padding:44px 20px 22px!important;margin:-16px -20px 0!important;background:rgba(255,255,255,.05)!important;border:1px solid rgba(72,228,24,.3)!important;border-radius:12px!important}
.proc-cards>.proc-card:nth-child(3)::before{top:32px!important;left:20px!important}
.proc-cards>.proc-card:nth-child(3) h3{font-size:21px!important}
@media(max-width:1080px){.proc-cards{grid-template-columns:1fr;padding:34px 22px!important}.proc-cards::before{display:none}.proc-cards>.proc-card:nth-child(3){margin:0!important}}

.nav-drop-sm{width:290px}
.nav-mega-1{grid-template-columns:1fr!important}
.nd-plain{padding:11px 12px}
.nd-plain .t{font-size:14px}
@media(max-width:1080px){.util-in{padding:7px 20px}}

/* ================= Careers: fewer boxes, bolder type, editorial not modular ================= */
/* strip the eyebrow parade — keep only the hero and application labels */
.ctr-origin .eyebrow,.ctr-light-zone .eyebrow,.ctr-map-zone .eyebrow{display:none!important}

/* 2. value proposition: real presence, no mini-cells */
.ctr-origin{padding:112px 0 108px!important}
.ctr-why-in{grid-template-columns:1fr!important;gap:0!important}
.ctr-why-l{position:static!important;padding:0!important;max-width:900px}
.ctr-why-l .h2{font-size:52px!important;line-height:1.04!important;letter-spacing:-0.032em!important;max-width:820px!important}
.ctr-why-r{margin-top:26px}
.ctr-why-r .body{font-size:19px!important;line-height:1.62!important;max-width:760px;margin-bottom:56px!important}
.ctr-benefits{background:none!important;padding:0!important;border-radius:0!important;gap:0!important;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--navy)}
.ctr-benefit{padding:32px 40px 0 0;gap:14px}
.ctr-benefit b{font-size:26px!important;line-height:1.14!important;min-height:0!important;letter-spacing:-0.024em}
.ctr-benefit b::before{font-size:13px!important;letter-spacing:.18em;margin-bottom:18px!important;opacity:.9}
.ctr-benefit>span{font-size:16px!important;line-height:1.62!important;max-width:290px}

/* 3. operating model: structural, full-bleed dark, not a rounded panel */
.ctr-light-zone{padding:0!important;background:none!important}
.ctr-light-zone>.wrap{max-width:none;padding:0}
.ctr-light-zone .section-head,.ctr-light-zone>.wrap>.body{max-width:900px;margin:0 auto;padding:0 44px}
.proc-cards{border-radius:0!important;margin:0!important;padding:104px 44px 108px!important;max-width:none!important;background:linear-gradient(180deg,#0E2340,#0A1A31)!important}
.proc-cards::before{left:44px!important;right:44px!important;top:130px!important;height:1px!important;opacity:.28!important}
.proc-card::before{top:72px!important;width:11px!important;height:11px!important}
.proc-card{padding-top:100px!important}
.proc-card h3{font-size:23px!important;letter-spacing:-0.02em!important}
.proc-cards>.proc-card:nth-child(3){background:none!important;border:0!important;border-radius:0!important;margin:0!important;padding:100px 0 0!important}
.proc-cards>.proc-card:nth-child(3)::before{left:0!important;top:72px!important;width:15px!important;height:15px!important}
.proc-cards>.proc-card:nth-child(3) h3{font-size:26px!important;color:var(--green-bright)!important}

/* the model heading sits on the dark field with the flow */
.ctr-light-zone .h2{color:#fff!important;font-size:46px!important;line-height:1.06!important}
.ctr-light-zone .h2 .c-green{color:var(--green-bright)!important}
.ctr-light-zone .body{color:rgba(206,220,240,.88)!important}
.ctr-light-zone .section-head{padding-top:104px!important;padding-bottom:0!important;background:#0E2340}
.ctr-light-zone>.wrap>.body{background:#0E2340;padding-bottom:0!important;color:rgba(206,220,240,.88)!important}

/* 4. qualification: de-boxed rows, testimonial separated as its own proof unit */
.crit-split{margin-top:0!important;padding-top:0!important;border-top:0!important}
.crit-row{padding:26px 0!important;border-top:1px solid var(--line-2)!important;border-bottom:0!important}
.crit-row .cr-ic{display:none!important}
.crit-row b{font-size:22px!important;letter-spacing:-0.02em!important}
.crit-row span{font-size:16px!important;line-height:1.62!important}
.crit-quote{margin:0!important;border-radius:0!important;border-left:0!important;border-top:4px solid var(--green-bright)!important;padding:52px 44px!important;background:var(--navy)!important;max-width:none!important}
.crit-quote p{font-size:24px!important;line-height:1.5!important;max-width:960px;margin:0 auto!important}
.crit-quote cite{max-width:960px;margin:20px auto 0!important}
.crit-line{font-size:26px!important;letter-spacing:-0.022em!important}

/* 5. application: less sleepy */
.ctr-apply-zone{background:linear-gradient(180deg,#EDF3FA,#F7FAFD)!important;padding-top:96px!important}
.apz-h{font-size:46px!important;line-height:1.06!important}
.apz-lead{font-size:18px!important}
.apz-next-h{font-size:11.5px!important;letter-spacing:.2em!important}
.apz-nx b{font-size:19px!important}
@media(max-width:1080px){.ctr-benefits{grid-template-columns:1fr;border-top:0}.ctr-benefit{padding:26px 0 0;border-top:2px solid var(--navy)}.ctr-why-l .h2{font-size:33px!important}.ctr-light-zone .h2{font-size:31px!important}.proc-cards{padding:64px 22px!important}.proc-card{padding-top:56px!important}.crit-quote p{font-size:19px!important}}

.f-contractors{margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.14)}
.f-contractors span{display:block;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(190,207,230,.7);margin-bottom:7px}
.f-contractors a{font-family:var(--sans);font-weight:700;font-size:14.5px;color:var(--green-bright);display:inline-flex;align-items:center;gap:8px}
.f-contractors a:hover{color:#fff}

/* Why IGS accountability track — even rhythm, last row matches the rest */
.whyx-panel .wxp-row,.whyx-track .wxp-row,.wxp-row{padding:22px 0!important;border-top:1px solid rgba(255,255,255,.12)!important;border-bottom:0!important;align-items:center!important}
.wxp-row:first-child{border-top:0!important;padding-top:0!important}
.wxp-row:last-child{padding-bottom:0!important;border-bottom:0!important}
.wxp-row .wxp-ic{align-self:center!important;margin:0!important}

/* ===== Brand blue: text accents match the logo (#153A66) ===== */
:root{--logo-blue:#153A66;--logo-blue-lt:#3B9BF0}
/* light surfaces */
.c-blue,.h2 .c-blue,.h-hero .c-blue,h1 .c-blue,.h3 .c-blue,
.prose a,.legal-body a,.body a,
.crit-cta,.hpf-link,.pf-view,.wcp-link,.ns-mail,.apz-support a,
.sfr-b b,.abp-b b,.wi-insp-close .hl,.ctr-model .hl,
.svc-list-item .go,.serve-top-cta,.filedrop b,.form-note a{color:var(--blue)!important}
a:not(.btn):hover{color:var(--navy)!important}
/* dark surfaces keep the same hue, lightened to stay readable */
.svc-section .c-blue,.testi-section .c-blue,.community .c-blue,.cta .c-blue,
.wi-disposition .c-blue,.wi-process .c-blue,.ctr-hero .c-blue,.sd-hero-dark .c-blue,
.wcz-h .c-blue2,.proc-cards .c-blue,.crit-quote a,.mission-panel .c-blue,
.about-vision .c-blue,.ab-timeline .c-blue,.ab-closing .c-blue,
footer a:not(.btn),.tcard .qa .org,.sdt-step .sdt-n{color:var(--logo-blue-lt)!important}
footer a:not(.btn):hover{color:#fff!important}

/* nav + footer keep their own treatments — the logo blue is for body/accent text only */
body:not(.ctr):not(.home) .nav-link,body:not(.ctr):not(.home) .nav .nav-link{color:var(--navy)!important}
body:not(.ctr):not(.home) .nav-link:hover,body:not(.ctr):not(.home) .nav-link-wrap:hover .nav-link{color:var(--logo-blue)!important}
footer a:not(.btn),footer .f-col a{color:rgba(214,228,246,.9)!important}
footer a:not(.btn):hover{color:#fff!important}
.f-contractors a{color:var(--green-bright)!important}

/* ===== Credentials: one unified panel, not six floating cards ===== */
.wi-vetted-light .wi-cred-rail{grid-template-columns:1fr 1fr!important;gap:0!important;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 10px 28px -24px rgba(21,39,65,.22)}
.wi-vetted-light .vet-badge{flex-direction:row!important;align-items:flex-start!important;text-align:left!important;gap:16px!important;padding:26px 26px!important;background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;border-top:1px solid var(--line)!important;border-left:1px solid var(--line)!important}
.wi-vetted-light .vet-badge:nth-child(1),.wi-vetted-light .vet-badge:nth-child(2){border-top:0!important}
.wi-vetted-light .vet-badge:nth-child(odd){border-left:0!important}
.wi-vetted-light .vet-badge:hover{background:#FBFCFE!important;box-shadow:none!important}
.wi-vetted-light .wi-cred-ic{width:44px!important;height:44px!important;border-radius:10px!important;margin:2px 0 0!important;flex-shrink:0;box-shadow:none!important}
.wi-vetted-light .wi-cred-ic svg{width:20px;height:20px}
.wi-vetted-light .vb-b{align-items:flex-start!important;gap:7px!important;min-width:0}
.wi-vetted-light .vb-b b{font-size:16.5px!important;line-height:1.24!important;color:var(--navy)!important}
.wi-vetted-light .vb-b b::after{display:none!important}
.wi-vetted-light .vb-b>span{font-size:14px!important;line-height:1.5!important;color:var(--slate-dk)!important;max-width:34ch}
@media(max-width:720px){.wi-vetted-light .wi-cred-rail{grid-template-columns:1fr!important}.wi-vetted-light .vet-badge{border-left:0!important}.wi-vetted-light .vet-badge:nth-child(2){border-top:1px solid var(--line)!important}}

/* Credential icons: crisp solid marks beside each heading — no box, no glow */
.wi-vetted-light .wi-cred-ic{width:auto!important;height:auto!important;background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;color:var(--green-deep)!important;margin:1px 0 0!important}
.wi-vetted-light .wi-cred-ic svg{width:30px!important;height:30px!important}
.wi-vetted-light .vet-badge{gap:15px!important;padding:24px 26px!important}

/* Service hero — mockup match: ambient corner glow, tighter breadcrumb, refined image + rail */
.sd-hero-dark{background:radial-gradient(120% 90% at 88% 8%,#153A66 0%,#0E2340 42%,#08152B 100%)}
.sd-hero-dark::after{content:"";position:absolute;z-index:0;right:-160px;bottom:-220px;width:620px;height:620px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(59,155,240,.14),rgba(59,155,240,0) 62%)}
.sd-hero-dark .wrap{position:relative;z-index:1}
.sd-crumbs{font-size:13px;color:rgba(196,213,236,.72);margin-bottom:34px}
.sd-crumbs a{color:rgba(214,228,244,.86)}
.sd-crumbs a:hover{color:#fff}
.sd-hero-dark .eyebrow-c{color:var(--green-bright);letter-spacing:.16em;font-size:12.5px}
.sd-hero-dark .sdh-h{font-size:64px;line-height:1.02;letter-spacing:-0.034em;max-width:620px}
.sdh-rule{width:52px;height:4px;margin:30px 0 24px}
.sdh-lead{font-size:16.5px;line-height:1.72;color:rgba(206,222,242,.86);max-width:560px}
.sd-hero-dark .svcpg-actions{flex-direction:column;align-items:flex-start;gap:14px;margin-top:34px}
.sd-hero-dark .svcpg-actions .btn{min-width:0}
.sd-hero-img{border-radius:20px;aspect-ratio:5/4.1;box-shadow:0 44px 92px -34px rgba(2,8,20,.85),0 0 0 1px rgba(140,185,255,.26),0 0 0 7px rgba(120,170,255,.05)}
.shc-badge{top:auto;right:auto;bottom:22px;left:22px;display:inline-flex;align-items:center;width:fit-content;height:auto;white-space:nowrap;background:rgba(10,22,40,.82);border-color:rgba(255,255,255,.18);font-size:11px;letter-spacing:.14em}
.sd-rail.dark{padding:0 0 88px}
.sd-rail.dark .sd-rail-in{position:relative;background:linear-gradient(105deg,rgba(72,228,24,.07),rgba(255,255,255,.028) 46%,rgba(255,255,255,.022));border-color:rgba(130,175,235,.16);border-radius:18px;padding:8px 0 10px}
.sd-rail.dark .sd-rail-in::after{content:"";position:absolute;left:12%;right:12%;bottom:-1px;height:2px;background:linear-gradient(90deg,transparent,rgba(72,228,24,.65),transparent)}
.sd-rail-cap{display:flex;align-items:center;gap:10px;padding:20px 26px 6px;font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--green-bright)}
.sd-rail-cap::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green-bright);box-shadow:0 0 10px rgba(72,228,24,.8)}
.sd-rail.dark .sdr{align-items:flex-start;padding:22px 26px 24px}
.sd-rail .sdr .sdr-ic{display:none!important}
.sd-rail.dark .sdr .sdr-rule{display:block;width:30px;height:3px;border-radius:3px;background:var(--green-bright);box-shadow:0 0 9px rgba(72,228,24,.55);margin-bottom:14px}
.sd-rail.dark .sdr b{font-size:20px;line-height:1.16;letter-spacing:-0.018em}
.sd-rail.dark .sdr>.sdr-b>span{font-size:13.5px;color:rgba(190,209,234,.82);margin-top:8px}
@media(max-width:1080px){.sd-hero-dark .sdh-h{font-size:38px}.sd-rail-cap{padding:18px 20px 4px}}

.nav.scrolled .nav-link,.nav.scrolled .nav-link-join{color:var(--navy)!important}
.nav.scrolled .nav-link:hover,.nav.scrolled .nav-link-wrap:hover .nav-link{color:var(--logo-blue)!important}
body.ctr .nav:not(.scrolled) .nav-link,body.ctr .nav:not(.scrolled) .nav .nav-link{color:rgba(255,255,255,.9)!important}
body.ctr .nav:not(.scrolled) .nav-link:hover,body.ctr .nav:not(.scrolled) .nav-link-wrap:hover .nav-link{color:var(--green-bright)!important}

/* rail caption must span the grid, not consume a column */
.sd-rail.dark .sd-rail-in{grid-template-columns:repeat(4,1fr)}
.sd-rail-cap{grid-column:1 / -1;padding:22px 26px 14px}
.sd-rail.dark .sdr:first-of-type{border-left:0}
/* hero split tuned to the mockup */
.sd-hero-dark .svcpg-hero-in{grid-template-columns:46fr 54fr;gap:64px;align-items:center;padding-bottom:88px}
@media(max-width:1080px){.sd-hero-dark .svcpg-hero-in{grid-template-columns:1fr;gap:36px;padding-bottom:60px}}

/* Related capabilities: photography carries these cards — no floating icon badges */
.sd-pair .pf-b{padding-top:24px}

.sdp-feat-b,.sdp-sm-b{padding-top:22px}

/* Why Clients Choose — split card: copy left, tinted takeaway right */
.sdw-eyebrow{color:var(--slate-dk)!important;letter-spacing:.16em}
.sdw-eyebrow::before{background:#1077D5}
.sd-why-cards{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.sd-wcard{display:grid;grid-template-columns:1.1fr .9fr;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 1px 3px rgba(21,39,65,.05)}
.sd-wcard .sdw-l{padding:30px 28px 32px}
.sd-wcard .sdw-ic{display:none}
.sdw-rule,.sdw-rule2{display:block;width:44px;height:3px;border-radius:3px;background:var(--wc);margin-bottom:18px}
.sd-wcard .sdw-l h3{font-family:var(--display);font-weight:800;font-size:22px;line-height:1.18;letter-spacing:-0.02em;color:var(--navy);margin:0 0 12px}
.sd-wcard .sdw-l p{font-size:14.5px;line-height:1.62;color:var(--slate-dk);margin:0}
.sd-wcard .sdw-r{position:relative;padding:30px 26px;display:flex;flex-direction:column;justify-content:center;background:color-mix(in srgb,var(--wc) 7%,#fff);overflow:hidden}
.sd-wcard .sdw-r::after{content:"";position:absolute;right:-40%;bottom:-60%;width:130%;height:130%;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--wc) 9%,transparent),transparent 66%)}
.sdw-proof{position:relative;z-index:1;font-family:var(--display);font-weight:800;font-size:16px;line-height:1.42;letter-spacing:-0.012em;color:var(--wc)}
@media(max-width:1080px){.sd-why-cards{grid-template-columns:1fr}.sd-wcard{grid-template-columns:1fr}.sd-wcard .sdw-r{padding:22px 26px 26px}}

/* Why Clients Choose — one rule per card, even rows, tighter measure */
.sd-why-cards{gap:24px;align-items:stretch;grid-auto-rows:1fr}
.sd-wcard{grid-template-columns:1.15fr .85fr;height:100%}
.sd-wcard .sdw-l{padding:32px 30px 34px;display:flex;flex-direction:column}
.sd-wcard .sdw-l h3{font-size:21px;line-height:1.2;margin:0 0 14px;min-height:2.4em}
.sd-wcard .sdw-l p{font-size:14.5px;line-height:1.6;max-width:34ch}
.sd-wcard .sdw-r{padding:32px 28px;justify-content:center}
.sd-wcard .sdw-r .sdw-rule2{display:none}
.sdw-proof{font-size:16.5px;line-height:1.44;max-width:20ch}
.sdw-eyebrow::after{display:none}

/* Capability rail: open columns with vertical separators, no bottom underline */
.sd-rail.dark .sd-rail-in{background:none;border:0;border-radius:0;padding:0;box-shadow:none}
.sd-rail.dark .sd-rail-in::after{display:none}
.sd-rail-cap{padding:0 0 26px}
.sd-rail.dark .sdr{padding:4px 30px 0;border-left:1px solid rgba(130,175,235,.16)}
.sd-rail.dark .sdr:first-of-type{padding-left:0;border-left:0}
.sd-rail.dark .sdr .sdr-rule{width:34px;height:3px;margin-bottom:16px}
.sd-rail.dark .sdr b{font-size:21px;line-height:1.14}
.sd-rail.dark .sdr>.sdr-b>span{font-size:14px;line-height:1.55;margin-top:10px}

/* Featured project heading: tighter eyebrow→title, more air before the photo */
.hpf-head{margin-bottom:44px}
.hp-feat .eyebrow{margin-bottom:0}
.hpf-head .h2{margin:18px 0 12px;line-height:1.02}
.hpf-loc{font-size:13px;letter-spacing:.07em;color:var(--muted)}

.hiw-ic{display:none}
.hiw-top{margin-bottom:16px}

/* Quote panel: fewer blocks, wider form, stacked badges */
.contact{grid-template-columns:36fr 64fr;gap:34px}
.cp-proof{grid-template-columns:1fr;gap:12px}
.cp-serve{display:none}
.contact-formcol .form{height:auto}
.contact-formcol{align-items:stretch}
@media(max-width:1080px){.contact{grid-template-columns:1fr;gap:28px}}

.contact{align-items:stretch}
.contact-panel{align-self:stretch!important;display:flex}
.contact-panel .cp-inner{flex:1}
.contact-formcol{align-self:stretch!important;display:flex}
.contact-formcol .form{flex:1;display:flex;flex-direction:column}
.contact-formcol .form>form{flex:1;display:flex;flex-direction:column}

.contact>.contact-panel{align-self:stretch!important;height:auto!important;min-height:0}
.contact>.contact-formcol{align-self:stretch!important;height:auto!important}

.cp-lead b{margin-bottom:0}
.cp-inner .cp-check{margin-top:26px}

/* Request a Quote — single centered form on a dark blueprint field */
.qf{position:relative;overflow:hidden;background:radial-gradient(120% 80% at 50% 0%,#153A66 0%,#0C1E39 46%,#08152B 100%);padding:150px 0 96px}
.qf-bp{position:absolute;inset:0;opacity:.07;pointer-events:none;background-image:linear-gradient(rgba(150,190,245,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(150,190,245,.5) 1px,transparent 1px);background-size:58px 58px}
.qf-glow{position:absolute;left:50%;top:-180px;width:900px;height:600px;transform:translateX(-50%);pointer-events:none;background:radial-gradient(circle,rgba(59,155,240,.16),transparent 66%)}
.qf-in{position:relative;z-index:1;max-width:1000px}
.qf-head{text-align:center;margin-bottom:40px}
.qf-eyebrow{justify-content:center;color:var(--green-bright)!important;letter-spacing:.18em;font-size:12.5px}
.qf-h{font-family:var(--display);font-weight:800;font-size:58px;line-height:1.04;letter-spacing:-0.034em;color:#fff;margin:18px 0 16px}
.qf-sub{font-size:17px;line-height:1.6;color:rgba(206,222,242,.86);margin:0 auto;max-width:640px}
.qf-trust{display:flex;align-items:center;justify-content:center;gap:34px;flex-wrap:wrap;margin-top:26px}
.qf-t{display:inline-flex;align-items:center;gap:9px;font-family:var(--sans);font-size:14.5px;font-weight:600;color:rgba(224,236,250,.94)}
.qf-t svg{color:var(--green-bright);flex-shrink:0}
.qf-card{background:#fff;border-radius:16px;padding:44px 44px 0;box-shadow:0 50px 100px -40px rgba(2,8,20,.7)}
.qf-card form{padding-bottom:34px}
.qf-row{display:grid;grid-template-columns:1fr 1fr;gap:22px 30px;margin-bottom:22px}
.qf-card .field label{font-size:13px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--navy)}
.qf-card .field input,.qf-card .field select,.qf-card .field textarea{padding:14px 16px;font-size:15.5px;border-radius:9px;border-color:#DCE6F4}
.qf-card .field textarea{min-height:130px}
.qf-more{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 0;padding:15px 18px;background:#fff;border:1px solid #DCE6F4;border-radius:9px;font-family:var(--sans);font-size:15px;color:var(--slate-dk);cursor:pointer;text-align:left}
.qf-more:hover{border-color:#B9C7DC}
.qf-more svg{transition:transform .2s;flex-shrink:0}
.qf-more.open svg{transform:rotate(180deg)}
.qf-more-b{margin-top:22px}
.qf-submit{width:100%;justify-content:center;margin-top:24px;min-height:56px;font-size:16px}
.qf-next{margin-top:26px;padding-top:22px;border-top:1px solid var(--line);text-align:center;font-size:14.5px;line-height:1.6;color:var(--slate-dk)}
.qf-next b{color:var(--green-deep)}
.qf-foot{border-top:1px solid var(--line);margin:0 -44px;padding:22px 44px;text-align:center;font-size:14.5px;color:var(--slate-dk);background:#FBFCFE;border-radius:0 0 16px 16px}
.qf-foot a{font-weight:700;color:var(--logo-blue)}
.qf-ok{text-align:center;padding:48px 0 40px}
.qf-ok-i{display:grid;place-items:center;width:60px;height:60px;margin:0 auto 20px;border-radius:50%;background:var(--green-soft);color:var(--green-deep)}
.qf-ok h3{font-family:var(--display);font-weight:800;font-size:26px;color:var(--navy);margin:0 0 10px}
.qf-ok p{font-size:15.5px;color:var(--slate-dk);margin:0}
@media(max-width:1080px){.qf{padding:120px 0 64px}.qf-h{font-size:36px}.qf-row{grid-template-columns:1fr;gap:20px}.qf-card{padding:28px 24px 0}.qf-foot{margin:0 -24px;padding:20px 24px}}

/* How a Project Works — two-column: intro + photo left, numbered rows right */
.hiw-split{display:grid;grid-template-columns:44fr 56fr;gap:64px;align-items:start}
.hiw-l .h2{margin:16px 0 14px;max-width:420px}
.hiw-lede{font-size:16px;line-height:1.62;color:var(--slate-dk);margin:0 0 30px;max-width:400px}
.hiw-photo{border-radius:12px;overflow:hidden;box-shadow:0 22px 50px -32px rgba(10,27,52,.45)}
.hiw-photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3.5;display:block}
.hiw-rows{display:flex;flex-direction:column;border-left:2px solid var(--line-2);align-self:center}
.hiw-rows .hiw-step{position:relative;display:grid;grid-template-columns:96px 1fr;gap:22px;align-items:start;padding:26px 0 26px 30px;border-bottom:1px solid var(--line)}
.hiw-rows .hiw-step:last-child{border-bottom:0}
.hiw-rows .hiw-step::before{content:"";position:absolute;left:-2px;top:0;bottom:0;width:2px;background:var(--sc)}
.hiw-rows .hiw-n{font-family:var(--display);font-weight:700;font-size:52px;line-height:.9;letter-spacing:-0.03em;color:var(--sc);opacity:.55}
.hiw-rows .hiw-b h3{font-family:var(--display);font-weight:800;font-size:20px;line-height:1.2;letter-spacing:-0.018em;color:var(--navy);margin:6px 0 9px}
.hiw-rows .hiw-b p{font-size:14.5px;line-height:1.62;color:var(--slate-dk);margin:0;max-width:400px}
.hiw-line,.hiw-dot{display:none}
@media(max-width:1080px){.hiw-split{grid-template-columns:1fr;gap:34px}.hiw-rows .hiw-step{grid-template-columns:64px 1fr;gap:16px;padding-left:20px}.hiw-rows .hiw-n{font-size:38px}}

/* Homepage quote: dark field, centered intro, form as a floating white card */
.contact-section{background:linear-gradient(180deg,#0E2340,#0A1A31)}
.contact-section .contact{grid-template-columns:1fr;gap:0;max-width:940px;margin:0 auto}
.contact-section .contact-panel{display:none}
.contact-section .contact-formcol{align-self:auto!important}
.contact-section .contact-head{text-align:center;max-width:720px;margin:0 auto 34px}
.contact-section .contact-head .eyebrow{justify-content:center;color:var(--green-bright)}
.contact-section .contact-head h2{color:#fff;margin:16px 0 12px}
.contact-section .contact-head p{font-size:16px;line-height:1.6;color:rgba(206,222,242,.88);margin:0 auto;max-width:600px}
.contact-badges{display:flex;align-items:center;justify-content:center;gap:26px;flex-wrap:wrap;margin-top:20px}
.contact-badges span{position:relative;font-family:var(--sans);font-weight:600;font-size:13.5px;color:rgba(214,228,246,.9);padding-left:16px}
.contact-badges span::before{content:"";position:absolute;left:0;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--green-bright);box-shadow:0 0 8px rgba(72,228,24,.7)}
.contact-section .form{background:#fff;border:0;border-radius:16px;padding:38px 40px 34px;box-shadow:0 40px 90px -36px rgba(2,8,20,.7)}
.contact-section .form-note{text-align:center;color:var(--slate-dk)}
.contact-section .form-note b{color:var(--green-deep)}
.contact-alt{text-align:center;margin-top:24px;font-size:14.5px;color:rgba(206,222,242,.86)}
.contact-alt a{color:var(--green-bright);font-weight:700}
.contact-alt a:hover{color:#fff}
@media(max-width:1080px){.contact-section .form{padding:26px 22px 24px}}

/* About hero — main shot + inset card + caption */
.ab-shot{position:relative}
.abs-main{border-radius:12px;overflow:hidden;box-shadow:0 26px 60px -34px rgba(10,27,52,.5)}
.abs-main img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/2.9;display:block}
.abs-inset{position:absolute;right:-14px;bottom:-38px;width:44%;border-radius:12px;overflow:hidden;border:5px solid #fff;box-shadow:0 22px 48px -26px rgba(10,27,52,.5)}
.abs-inset img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/2.6;display:block}
.ab-collage{display:none}
/* About mission — photo right, 3-up principles, full-width quote bar */
.mission-split{grid-template-columns:44fr 56fr;gap:56px;align-items:start}
.mission-photo{border-radius:12px;overflow:hidden;box-shadow:0 26px 58px -34px rgba(10,27,52,.45)}
.mission-photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3.1;display:block}
.mp-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:52px}
.mp-col{padding:0 32px;border-left:1px solid var(--line)}
.mp-col:first-child{padding-left:0;border-left:0}
.mp-col .mp-n{display:block;font-family:var(--display);font-weight:800;font-size:40px;line-height:1;letter-spacing:-0.03em;color:var(--mc);margin-bottom:16px}
.mp-col h4{font-family:var(--display);font-weight:800;font-size:18px;line-height:1.24;letter-spacing:-0.016em;color:var(--navy);margin:0 0 10px}
.mp-col p{font-size:14.5px;line-height:1.6;color:var(--slate-dk);margin:0}
.mp-quote{margin-top:46px;padding:34px 44px;background:var(--navy);border-radius:12px;text-align:center;font-family:var(--display);font-weight:800;font-size:22px;line-height:1.42;letter-spacing:-0.016em;color:#fff}
@media(max-width:1080px){.mission-split{grid-template-columns:1fr;gap:30px}.mp-cols{grid-template-columns:1fr;gap:26px}.mp-col{padding:0;border-left:0}.abs-inset{position:static;width:100%;margin-top:14px;border:0}.mp-quote{padding:26px 24px;font-size:18px}}

/* About — Giving Back: light copy panel + dark pull-quote panel */
.wi-give{padding:0!important;background:none!important;border-top:0}
.give-split{display:grid;grid-template-columns:50fr 50fr;align-items:stretch}
.give-l{background:linear-gradient(180deg,#EDF3FA,#E6EDF6);padding:88px 64px 88px max(44px,calc((100vw - 1240px)/2))}
.give-l .body+.body{margin-top:16px}
.give-r{position:relative;overflow:hidden;background:linear-gradient(160deg,#13294A,#0A1A31);padding:84px 64px 72px 56px;display:flex;flex-direction:column;justify-content:center}
.give-r::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;background-image:linear-gradient(rgba(120,160,220,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(120,160,220,.05) 1px,transparent 1px);background-size:46px 46px}
.give-qm{position:relative;z-index:1;display:block;font-family:Georgia,serif;font-weight:700;font-size:86px;line-height:.62;height:46px;color:rgba(255,255,255,.14)}
.give-q{position:relative;z-index:1;font-family:var(--display);font-weight:700;font-size:30px;line-height:1.34;letter-spacing:-0.02em;color:#fff;margin:22px 0 0;max-width:420px}
.give-rule{position:relative;z-index:1;display:block;width:52px;height:3px;border-radius:3px;background:var(--green-bright);margin:30px 0 22px}
.give-sub{position:relative;z-index:1;font-size:15.5px;color:rgba(206,222,242,.86);margin:0}
.give-places{position:relative;z-index:1;display:flex;gap:0;margin-top:44px}
.give-places span{padding:0 26px;border-left:1px solid rgba(255,255,255,.16);font-size:13px;color:rgba(200,216,238,.8)}
.give-places span:first-child{padding-left:0;border-left:0}
/* Field experience — rule + clean proof rows */
.abf-rule{display:block;width:52px;height:3px;border-radius:3px;background:var(--green-bright);margin:26px 0 22px}
.abf-proof li{border-bottom:1px solid var(--line);padding:13px 0}
.abf-proof li:first-child{border-top:1px solid var(--line)}
.abf-proof .wp-ic{display:none}
@media(max-width:1080px){.give-split{grid-template-columns:1fr}.give-l{padding:56px 24px}.give-r{padding:52px 24px}.give-q{font-size:23px}.give-places{flex-wrap:wrap;gap:10px 0}}

/* Two Decades — photo bleeds left, clean proof rows */
.about-field-sec{padding:0;background:#fff}
.abf-split{display:grid;grid-template-columns:48fr 52fr;align-items:center;gap:0}
.abf-photo{position:relative;height:100%;min-height:520px;overflow:hidden}
.abf-photo img{width:100%;height:100%;object-fit:cover;display:block}
.abf-copy{padding:88px 72px 88px 64px;max-width:640px}
.abf-copy .h2{margin:16px 0 20px}
.abf-rule{display:block;width:44px;height:3px;border-radius:3px;background:var(--green-bright);margin:28px 0 4px}
.abf-proof{list-style:none;margin:0;padding:0}
.abf-proof li{padding:16px 0;border-bottom:1px solid var(--line);font-size:15.5px;line-height:1.5;color:var(--navy)}
.abf-proof li:last-child{border-bottom:0}
/* Stats bar */
.ab-statbar{background:linear-gradient(180deg,#13294A,#0A1A31);padding:34px 0}
.ab-sb-row{display:grid;grid-template-columns:repeat(4,1fr)}
.ab-sb{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:6px 20px;border-left:1px solid rgba(130,175,235,.16)}
.ab-sb:first-child{border-left:0}
.ab-sb-rule{display:block;width:34px;height:3px;border-radius:3px;background:var(--sc);margin-bottom:14px}
.ab-sb b{font-family:var(--display);font-weight:800;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:rgba(214,228,244,.9);line-height:1.3}
.ab-sb>span:last-child{font-family:var(--display);font-weight:800;font-size:26px;letter-spacing:-0.022em;color:#fff;margin-top:4px}
.ab-sb:nth-child(2) b{font-size:26px;letter-spacing:-0.022em;text-transform:none;color:#fff}
.ab-sb:nth-child(2)>span:last-child{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:rgba(214,228,244,.9);font-weight:800}
@media(max-width:1080px){.abf-split{grid-template-columns:1fr}.abf-photo{min-height:300px}.abf-copy{padding:44px 24px}.ab-sb-row{grid-template-columns:1fr 1fr;gap:24px 0}.ab-sb:nth-child(3){border-left:0}}

/* Team — cream field, two-up owner cards, crew photo beneath */
.ab-team{background:linear-gradient(180deg,#FBFCFE,#F7FAFD)}
.ab-owners{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-top:46px}
.ab-owner{display:flex;flex-direction:column}
.abo-split{display:grid;grid-template-columns:190px 1fr;gap:26px;align-items:start;flex:1}
.abo-photo{border-radius:10px;overflow:hidden;aspect-ratio:4/5}
.abo-photo img{width:100%;height:100%;object-fit:cover}
.abo-b .tm-n{font-family:var(--display);font-weight:800;font-size:24px;letter-spacing:-0.024em;color:var(--navy);line-height:1.1}
.abo-b .tm-r{font-family:var(--sans);font-weight:700;font-size:13px;color:var(--green-deep);margin-top:6px}
.abo-rule{display:block;width:34px;height:2px;border-radius:2px;background:var(--green-bright);margin:14px 0 14px}
.abo-b .tm-bio{font-size:14.5px;line-height:1.62;color:var(--slate-dk);margin:0}
.abo-meta{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line-2)}
.abo-cred{font-size:12.5px;line-height:1.5;color:var(--muted)}
.abo-link{font-family:var(--sans);font-weight:700;font-size:13.5px;color:var(--logo-blue);display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.abo-link:hover{gap:11px}
.ab-crew{margin-top:52px;border-radius:12px;overflow:hidden}
.ab-crew img{width:100%;height:100%;object-fit:cover;aspect-ratio:21/6;display:block}
.ab-crew-cap{text-align:center;margin:18px 0 0;font-size:13.5px;color:var(--slate-dk)}
@media(max-width:1080px){.ab-owners{grid-template-columns:1fr}.abo-split{grid-template-columns:150px 1fr;gap:20px}.ab-crew img{aspect-ratio:16/9}}

/* Timeline lifted to light so it no longer sits against the dark stat bar */
.ab-timeline{background:linear-gradient(180deg,#FBFCFE,#F4F8FD)!important}
.ab-timeline .ab-tl-grid{opacity:.5}
.ab-timeline .eyebrow{color:var(--green-deep)!important}
.ab-timeline .h2{color:var(--navy)!important}
.ab-tl-step h3{color:var(--navy)}
.ab-tl-step p{color:var(--slate-dk)}
.ab-tl-y{color:var(--cc)}
.ab-tl-line{opacity:.4}
.ab-tl-node{box-shadow:0 0 0 4px #F7FAFD}

/* About — unified section rhythm */
.wi-hero{padding:104px 0 88px}
.about-story-sec{padding:100px 0}
.about-vision{padding:100px 0}
.wi-give{padding:100px 0}
.about-field-sec{padding:100px 0}
.ab-statbar{padding:40px 0}
.ab-timeline{padding:100px 0}
.ab-team{padding:100px 0}
/* hero image composition: restore the corner overlap */
.ab-shot{position:relative;padding-bottom:70px}
.abs-main{border-radius:14px;overflow:hidden}
.abs-main img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;display:block}
.abs-inset{position:absolute;right:-14px;bottom:0;width:52%;border-radius:12px;overflow:hidden;border:5px solid #fff;box-shadow:0 22px 46px -26px rgba(10,27,52,.5)}
.abs-inset img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;display:block}
@media(max-width:1080px){.ab-shot{padding-bottom:0}.abs-inset{position:static;width:100%;border:0;margin-top:14px;box-shadow:none}}

/* About — final rhythm pass: wi-give and the CTA were collapsing to zero */
.about-story-sec{padding:100px 0!important}
.wi-give{padding:100px 0!important}
.ab-team{padding:100px 0!important}
.about-vision+.wi-give{border-top:1px solid var(--line)}
.about-field-sec{border-top:1px solid var(--line)}
.cta{padding:0!important}
/* hero inset overlap — beat the earlier static rule */
.ab-shot .abs-inset{position:absolute!important;right:-14px;bottom:0;width:52%;margin-top:0!important}
@media(max-width:1080px){.ab-shot .abs-inset{position:static!important;width:100%;margin-top:14px!important}}

/* About story section — mockup match: neon glow frame, wider photo, refined principle row */
.about-story-sec{position:relative;overflow:hidden;background:linear-gradient(180deg,#FBFCFE,#F4F8FD)}
.about-story-sec::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.045;background-image:linear-gradient(rgba(16,119,213,.6) 1px,transparent 1px),linear-gradient(90deg,rgba(16,119,213,.6) 1px,transparent 1px);background-size:58px 58px}
.about-story-sec .wrap{position:relative;z-index:1}
.mission-split{grid-template-columns:44fr 56fr;gap:64px;align-items:start}
.mission-l .h2{font-size:52px;line-height:1.06;letter-spacing:-0.032em}
.mission-l .h2 .c-green{color:var(--green-bright);text-shadow:0 0 26px rgba(72,228,24,.45)}
.mission-l .body{font-size:16.5px;line-height:1.7;max-width:520px}
.mission-photo{position:relative;border-radius:14px;overflow:hidden;box-shadow:0 0 0 1px rgba(120,170,255,.28),0 0 46px -10px rgba(59,155,240,.5),0 0 70px -18px rgba(72,228,24,.35),0 30px 60px -34px rgba(10,27,52,.4)}
.mission-photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3.1;display:block}
/* principle row: colored rule + spaced caps label + divider between */
.mp-cols{margin-top:74px;display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.mp-col{position:relative;padding:0 44px}
.mp-col:first-child{padding-left:0}
.mp-col:last-child{padding-right:0}
.mp-col+.mp-col{border-left:1px solid var(--line-2)}
.mp-col .mp-n{display:block;width:56px;height:4px;border-radius:3px;background:var(--mc);box-shadow:0 0 12px color-mix(in srgb,var(--mc) 60%,transparent);font-size:0;margin-bottom:20px}
.mp-col .mp-lbl{display:block;font-family:var(--sans);font-weight:700;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--mc);margin-bottom:16px}
.mp-col h4{font-family:var(--display);font-weight:800;font-size:19px;line-height:1.24;color:var(--navy);letter-spacing:-0.016em;margin:0 0 10px}
.mp-col p{font-size:15px;line-height:1.6;color:var(--slate-dk);margin:0}
/* quote bar: navy with neon edge glow */
.mp-quote{margin-top:70px;padding:30px 40px;text-align:center;border-radius:12px;background:linear-gradient(120deg,#0E2340,#13294A 55%,#0E2340);color:#fff;font-family:var(--display);font-weight:800;font-size:20px;line-height:1.44;letter-spacing:-0.014em;box-shadow:0 0 0 1px rgba(120,170,255,.3),0 0 40px -8px rgba(59,155,240,.45),0 0 64px -16px rgba(72,228,24,.32)}
@media(max-width:1080px){.mission-split{grid-template-columns:1fr;gap:32px}.mission-l .h2{font-size:34px}.mp-cols{grid-template-columns:1fr;gap:30px}.mp-col{padding:0}.mp-col+.mp-col{border-left:0;border-top:1px solid var(--line-2);padding-top:26px}.mp-quote{font-size:17px;padding:24px 26px}}


/* Homepage hero — full-bleed video, dark scrim, light type */
body.home .hero{background:#08152B}

body.home .hero-media video{object-position:50% 50%}
body.home .hero-media::after{background:linear-gradient(99deg,rgba(6,16,32,.96) 0%,rgba(6,16,32,.93) 30%,rgba(6,16,32,.86) 48%,rgba(6,16,32,.6) 64%,rgba(6,16,32,.44) 82%,rgba(6,16,32,.42) 100%)}
body.home .hero-media::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(6,16,31,.6) 0%,rgba(6,16,31,0) 22%,rgba(6,16,31,0) 66%,rgba(6,16,31,.55) 100%)}
body.home .hero-glow{background:radial-gradient(circle,rgba(47,107,235,.3),transparent 62%)}
body.home .hero-glow.g2{background:radial-gradient(circle,rgba(72,228,24,.22),transparent 62%)}
body.home .hero-halo{display:none}
body.home .h-hero{color:#fff;text-shadow:0 2px 30px rgba(4,12,24,.5)}
body.home .hero-copy .c-blue,body.home .h-hero .c-blue{color:var(--logo-blue-lt)!important}
body.home .hero-copy .c-green,body.home .h-hero .c-green{color:var(--green-bright)!important}
body.home .hero-copy .body-lg{color:rgba(255,255,255,.84)}
body.home .hero-rule{box-shadow:0 0 16px rgba(72,228,24,.8)}
body.home .hero-actions .btn-outline{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.4);border-width:1.5px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
body.home .hero-actions .btn-outline .arrow{color:#fff}
body.home .hero-actions .btn-outline:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.75);color:#fff;box-shadow:none}
/* nav sits over dark video until scrolled */
body.home .nav:not(.scrolled) img.logo-mark-dark{display:none}
body.home .nav:not(.scrolled) img.logo-mark-light{display:block;width:auto;height:58px}
body.home .nav:not(.scrolled) .nav-link{color:rgba(255,255,255,.9)!important}
body.home .nav:not(.scrolled) .nav-link:hover,body.home .nav:not(.scrolled) .nav-link-wrap:hover .nav-link{color:var(--green-bright)!important}
/* PRUNED: `body.home .nav:not(.scrolled) .menu-btn{color:#fff}` — left over from the
   dark-video hero. The homepage hero is a LIGHT treatment now (see body.home .h-hero
   navy rule below), so white-on-white made the hamburger invisible and mobile nav
   unreachable. Navy matches the headline, logo and nav links. */
body.home .nav:not(.scrolled) .menu-btn{color:var(--navy)}
@media(max-width:1080px){
  body.home .hero{padding:96px 0 48px}
  
  body.home .hero-media::after{background:linear-gradient(180deg,rgba(7,18,35,.86) 0%,rgba(7,18,35,.8) 45%,rgba(7,18,35,.9) 100%)}
}
@media (prefers-reduced-motion:reduce){body.home .hero-media{background:url(assets/hero.jpg) 50% 50%/cover no-repeat}}


/* Logo neon blue */
:root{--logo-neon:#0F62B8;--logo-neon-lt:#2E8BE8}
.whyx-h .gb,.whyx-h .c-blue{color:var(--logo-neon)!important}
body.home .hero-copy .c-blue,body.home .h-hero .c-blue{color:#1077D5!important}

/* Why IGS — proof points as a dark full-width band */
.whyx-band{position:relative;margin-top:0;background:linear-gradient(180deg,#0A1A31,#08152B);border-top:1px solid rgba(72,228,24,.3)}
.whyx-band::before{content:"";position:absolute;top:-1px;left:12%;right:12%;height:2px;background:linear-gradient(90deg,transparent,var(--green-bright) 22%,#2E8BE8 60%,transparent);opacity:.85;filter:blur(.4px)}
.whyx-band-in{display:grid;grid-template-columns:repeat(4,1fr);align-items:center}
.whyx-bi{position:relative;padding:26px 26px;text-align:center;font-family:var(--display);font-weight:800;font-size:17px;line-height:1.3;letter-spacing:-0.012em;color:#fff;text-wrap:balance}
.whyx-bi+.whyx-bi::before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:rgba(72,228,24,.34)}
@media(max-width:1080px){.whyx-band-in{grid-template-columns:1fr 1fr}.whyx-bi{font-size:15px;padding:20px 16px}.whyx-bi:nth-child(3)::before,.whyx-bi:nth-child(1)::before{display:none}}

/* Featured project — dark overlapping quote card + meta row */
.hpf-card .hpf-quote{position:relative;margin:26px 0 0;padding:34px 34px 30px;border-radius:16px;border:0;background:linear-gradient(158deg,#0E2340,#08152B);box-shadow:0 30px 70px -28px rgba(6,18,36,.75),0 0 0 1px rgba(120,170,255,.16),0 0 46px -14px rgba(62,123,255,.4)}
.hpf-card .hpf-quote .hpf-qm{display:block;font-family:var(--display);font-weight:800;font-size:40px;line-height:.6;color:var(--green-bright);opacity:.9;margin-bottom:16px}
.hpf-card .hpf-quote p{margin:0;font-size:17px;line-height:1.55;color:#fff;text-wrap:pretty}
.hpf-card .hpf-quote cite{display:block;margin:20px 0 0;font-style:normal;font-size:13.5px;line-height:1.5;color:rgba(214,228,247,.8)}
.hpf-card .hpf-quote cite b{display:block;font-family:var(--display);font-size:16px;font-weight:800;color:var(--green-bright);margin-bottom:4px}
.hpf-card .hpf-quote cite i{font-style:normal;opacity:.5;padding:0 3px}
.hpf-card .hpf-quote .hpf-cta{margin-top:24px;background:var(--logo-neon);border-color:var(--logo-neon);box-shadow:0 14px 34px -12px rgba(0,77,248,.8)}
.hpf-card .hpf-quote .hpf-cta:hover{background:#1077D5;border-color:#1077D5;box-shadow:0 16px 40px -10px rgba(0,77,248,.95)}
.hpf-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:36px 0 0;padding:24px 0 0;border-top:1px solid var(--line)}
.hpf-m{position:relative;padding:0 30px}
.hpf-m:first-child{padding-left:0}
.hpf-m+.hpf-m::before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:1px;background:var(--line)}
.hpf-m dt{font-family:var(--sans);font-size:11.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--slate);margin-bottom:7px}
.hpf-m dd{margin:0;font-family:var(--display);font-weight:800;font-size:16.5px;line-height:1.35;color:var(--navy)}
@media(max-width:1080px){.hpf-meta{grid-template-columns:1fr;gap:18px}.hpf-m{padding:0}.hpf-m+.hpf-m::before{display:none}.hpf-card .hpf-quote{padding:26px 24px}}


/* Why IGS — reference layout: light copy left, photo bleeding right, band flush below */
.whyx{padding:92px 0 0!important;border-bottom:0!important;background:linear-gradient(180deg,#F4F8FD 0%,#EDF3FA 60%,#EAF1F9 100%)!important}
.whyx-bg{opacity:.9}
.whyx-comp{grid-template-columns:47% 53%!important;align-items:end!important;gap:0}
.whyx-panel{order:1;margin-left:0!important;margin-right:0;background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:0 56px 96px 0!important;z-index:3}
.whyx-panel::before{display:none!important}
.whyx-panel .eyebrow-c{color:var(--green-bright)}
.whyx-panel .eyebrow-c::after{display:none}
.whyx-panel .whyx-h{font-size:52px!important;line-height:1.04;letter-spacing:-0.03em;color:var(--navy)!important;margin:14px 0 0}
.whyx-h .gb{color:var(--logo-neon)!important}
.whyx-panel .whyx-p{color:#3F4E64!important;font-size:15.5px;line-height:1.72;max-width:430px;margin:26px 0 34px!important}
.whyx-panel .whyx-cta{box-shadow:0 12px 30px -12px rgba(16,119,213,.55)}
.whyx-photo{order:2;position:relative;height:640px!important;border-radius:0!important;box-shadow:none!important;margin-right:calc((100% - 100vw)/2);overflow:visible}
.whyx-photo img{border-radius:0;position:relative;z-index:1;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 9%,#000 100%);mask-image:linear-gradient(90deg,transparent 0,#000 9%,#000 100%)}
.whyx-photo::after{display:none!important}
.whyx-photo::before{content:"";position:absolute;z-index:2;left:-26px;top:-30px;bottom:-30px;width:180px;pointer-events:none;background:radial-gradient(120px 60% at 0% 32%,rgba(72,228,24,.5),transparent 72%),radial-gradient(150px 70% at 6% 78%,rgba(62,123,255,.42),transparent 74%);filter:blur(26px)}
.whyx-strip{display:none}
@media(max-width:1080px){.whyx-comp{grid-template-columns:1fr!important}.whyx-panel{order:1;padding:0 0 44px 0!important}.whyx-panel .whyx-h{font-size:36px!important}.whyx-photo{order:2;height:340px!important;margin-right:calc((100% - 100vw)/2);margin-left:calc((100% - 100vw)/2)}.whyx-photo img{-webkit-mask-image:none;mask-image:none}.whyx-photo::before{display:none}}


/* Service detail hero — reference layout: light copy left, photo bleeding right */
.sd-hero-dark{background:linear-gradient(180deg,#F4F8FD 0%,#EDF3FA 60%,#EAF1F9 100%)!important;padding:40px 0 0!important;border-bottom:0!important;overflow:hidden;position:relative}
.sd-hero-dark .sdh-bg{opacity:.55;background-image:linear-gradient(rgba(16,119,213,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(16,119,213,.05) 1px,transparent 1px)!important;background-size:74px 74px!important}
.svcpg-hero-in{display:grid!important;grid-template-columns:47% 53%!important;align-items:end!important;gap:0!important;position:relative;z-index:1}
.svcpg-hero-l{order:1;padding:0 56px 88px 0!important}
.sd-hero-dark .sd-crumbs.dark,.sd-hero-dark .sd-crumbs.dark a{color:#63718A!important}
.sd-hero-dark .sd-crumbs.dark a:hover{color:var(--logo-neon)!important}
.sd-hero-dark .sd-crumbs.dark .cx{color:#B9C7DC!important}
.sd-hero-dark .sdh-eyebrow{color:var(--green-bright)!important}
.sd-hero-dark .sdh-h{font-size:50px!important;line-height:1.05!important;letter-spacing:-0.03em!important;color:var(--navy)!important;text-wrap:balance}
.sd-hero-dark .sdh-h .gb{color:var(--logo-neon)}
.sd-hero-dark .sdh-rule{background:var(--green-bright)!important;opacity:1}
.sd-hero-dark .sdh-lead{color:#3F4E64!important;max-width:440px;font-size:15.5px;line-height:1.72}
.sd-hero-dark .btn-light{background:#fff!important;color:var(--navy)!important;border-color:var(--line-2)!important}
.sd-hero-dark .btn-light:hover{background:#F4F8FD!important;border-color:#C6D2E4!important}
.sd-hero-img{order:2;position:relative;aspect-ratio:auto!important;width:auto!important;max-width:none!important;height:620px!important;border-radius:0!important;box-shadow:none!important;margin-right:calc((100% - 100vw)/2);overflow:visible!important;background:none!important}
.sd-hero-img img{width:100%;height:100%;object-fit:cover;border-radius:0!important;position:relative;z-index:1;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 9%,#000 100%);mask-image:linear-gradient(90deg,transparent 0,#000 9%,#000 100%)}
.sd-hero-img::after{display:none!important}
.sd-hero-img::before{content:"";position:absolute;z-index:2;left:-26px;top:-30px;bottom:-30px;width:180px;pointer-events:none;background:radial-gradient(120px 60% at 0% 32%,rgba(72,228,24,.5),transparent 72%),radial-gradient(150px 70% at 6% 78%,rgba(62,123,255,.42),transparent 74%);filter:blur(26px)}
.sd-hero-img .shc-badge{z-index:3}

/* Capability band — reference treatment */
.sd-rail.dark{position:relative;background:linear-gradient(180deg,#0A1A31,#08152B)!important;border-top:1px solid rgba(72,228,24,.3)!important;border-bottom:0!important;padding:0!important}
.sd-rail.dark::before{content:"";position:absolute;top:-1px;left:12%;right:12%;height:2px;background:linear-gradient(90deg,transparent,var(--green-bright) 22%,#2E8BE8 60%,transparent);opacity:.85;filter:blur(.4px)}
.sd-rail.dark .sd-rail-cap{display:none!important}
.sd-rail.dark .sd-rail-in{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:0!important;align-items:center!important;border:0!important;background:none!important;padding:0!important}
.sd-rail.dark .sdr{position:relative;display:block!important;padding:26px 26px!important;text-align:center;border:0!important;background:none!important}
.sd-rail.dark .sdr+.sdr::before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:rgba(72,228,24,.34)}
.sd-rail.dark .sdr-ic,.sd-rail.dark .sdr-rule,.sd-rail.dark .sdr-b span{display:none!important}
.sd-rail.dark .sdr-b{display:block!important}
.sd-rail.dark .sdr-b b{display:block;font-family:var(--display);font-weight:800;font-size:17px;line-height:1.3;letter-spacing:-0.012em;color:#fff;text-wrap:balance}
@media(max-width:1080px){.svcpg-hero-in{grid-template-columns:1fr!important}.svcpg-hero-l{padding:0 0 40px 0!important}.sd-hero-dark .sdh-h{font-size:34px!important}.sd-hero-img{aspect-ratio:auto!important;width:auto!important;max-width:none!important;height:320px!important;margin-left:calc((100% - 100vw)/2)}.sd-hero-img img{-webkit-mask-image:none;mask-image:none}.sd-hero-img::before{display:none}.sd-rail.dark .sd-rail-in{grid-template-columns:1fr 1fr!important}.sd-rail.dark .sdr-b b{font-size:15px}.sd-rail.dark .sdr:nth-child(2)::before{display:none}}


/* Service detail page — light hero needs the solid nav and nav clearance */
body.svcdet .sd-hero-dark{padding-top:128px!important}
body.svcdet .nav{background:rgba(255,255,255,.94);backdrop-filter:saturate(150%) blur(16px);-webkit-backdrop-filter:saturate(150%) blur(16px);border-bottom-color:rgba(16,119,213,.14);box-shadow:0 4px 24px -16px rgba(16,44,84,.28)}
body.svcdet .nav .nav-link,body.svcdet .nav .nav-link-join{color:var(--navy)!important}
body.svcdet .nav .nav-link:hover,body.svcdet .nav .nav-link-wrap:hover .nav-link{color:var(--logo-blue)!important}
@media(max-width:1080px){body.svcdet .sd-hero-dark{padding-top:104px!important}}


/* Service detail — light hero: beat body.ctr's white nav links and paint the white bar */
body.svcdet.ctr .nav:not(.scrolled) .nav-link,body.svcdet .nav:not(.scrolled) .nav .nav-link,body.svcdet.ctr .nav:not(.scrolled) .nav-link-join{color:var(--navy)!important}
body.svcdet.ctr .nav:not(.scrolled) .nav-link:hover,body.svcdet .nav:not(.scrolled) .nav-link-wrap:hover .nav-link{color:var(--logo-blue)!important}
body.svcdet .nav:not(.scrolled){background:rgba(255,255,255,.94)!important;backdrop-filter:saturate(150%) blur(16px);-webkit-backdrop-filter:saturate(150%) blur(16px);border-bottom-color:rgba(16,119,213,.14)!important;box-shadow:0 4px 24px -16px rgba(16,44,84,.28)!important}


/* Why IGS band — kill the dead top gap: photo fills the band, copy pads itself */
.whyx{padding:0!important}
.whyx-comp{align-items:stretch!important}
.whyx-panel{display:flex;flex-direction:column;justify-content:center;padding:88px 56px 92px 0!important}
.whyx-photo{height:auto!important;min-height:660px;align-self:stretch}
.whyx-photo img{width:100%;height:100%;object-fit:cover}
.whyx-photo::before{top:0!important;bottom:0!important}
@media(max-width:1080px){.whyx-panel{padding:64px 0 40px 0!important}.whyx-photo{min-height:340px}}


/* Service hero — photo runs flush into the capability band; copy column owns the bottom padding */
.sd-hero-dark .svcpg-hero-in{padding-bottom:0!important;align-items:stretch!important}
.sd-hero-dark .svcpg-hero-l{display:flex;flex-direction:column;justify-content:center;padding-bottom:88px}
.sd-hero-img{align-self:stretch;height:auto!important;min-height:620px;aspect-ratio:auto!important;max-width:none!important}
.sd-hero-img img{width:100%;height:100%;object-fit:cover}
@media(max-width:1080px){.sd-hero-dark .svcpg-hero-l{padding-bottom:40px}.sd-hero-img{min-height:320px}}


/* ============ Service detail — dark editorial hero + inspo layout ============ */
/* dark hero again: stand down the light-bar overrides */
body.svcdet .nav:not(.scrolled){background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-bottom-color:transparent!important;box-shadow:none!important}
body.svcdet .nav:not(.scrolled) .nav-link,body.svcdet.ctr .nav:not(.scrolled) .nav-link,body.svcdet .nav:not(.scrolled) .nav .nav-link,body.svcdet.ctr .nav:not(.scrolled) .nav-link-join{color:rgba(255,255,255,.9)!important}
body.svcdet .nav:not(.scrolled) .nav-link:hover,body.svcdet .nav:not(.scrolled) .nav-link-wrap:hover .nav-link{color:var(--green-bright)!important}
body.svcdet .sd-hero-dark{padding-top:116px!important}
/* the white/glow logo is dark-background only — never let it land on the light scrolled bar */
.nav.scrolled img.logo-mark-light{display:none!important}
.nav.scrolled img.logo-mark-dark{display:block!important}

.sd-hero-dark{background:radial-gradient(112% 94% at 76% 2%,#153A66 0%,#0E2340 42%,#08152B 100%)!important}
.sd-hero-dark .svcpg-hero-in{grid-template-columns:46% 54%!important;gap:0!important}
.sd-hero-dark .svcpg-hero-l{padding:0 60px 92px 0!important}
.sd-crumbs.dark,.sd-crumbs.dark a{color:rgba(180,200,226,.68)}
.sd-crumbs.dark{margin-bottom:34px}
.sd-crumbs.dark a:hover{color:#fff}
.sdh-eyebrow{color:var(--green-bright);font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.2em;text-transform:uppercase}
.sdh-h{font-size:52px!important;line-height:1.06!important;letter-spacing:-.03em!important;margin:20px 0 0!important;max-width:none!important}
.sdh-h .gb{color:#fff}
.sdh-rule{display:block;width:140px;height:4px;border-radius:4px;margin:30px 0 0;background:linear-gradient(90deg,var(--green-bright),#2E8BE8 68%,#1077D5)}
.sdh-lead{margin-top:28px!important;color:rgba(206,222,242,.86)!important;font-size:16.5px!important;line-height:1.7!important;max-width:420px!important}
.sd-hero-dark .svcpg-actions{flex-direction:row!important;align-items:center!important;gap:32px!important;margin-top:38px!important;flex-wrap:wrap}
.sdh-link{display:inline-flex;align-items:center;gap:9px;color:#fff;font-family:var(--display);font-weight:700;font-size:14.5px;padding-bottom:5px;border-bottom:2px solid rgba(255,255,255,.55);transition:color .18s,border-color .18s}
.sdh-link:hover{color:var(--green-bright);border-bottom-color:var(--green-bright)}
/* photo bleeds right and dissolves into the navy */
.sd-hero-img{border-radius:0!important;box-shadow:none!important;overflow:visible!important;margin-right:calc((100% - 100vw)/2);min-height:660px}
.sd-hero-img img{border-radius:0;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 30%);mask-image:linear-gradient(90deg,transparent 0,#000 30%)}
.sd-hero-img::after{content:""!important;position:absolute;inset:0;border-radius:0!important;box-shadow:none!important;pointer-events:none;background:linear-gradient(90deg,#0E2340 0%,rgba(12,34,68,.5) 26%,transparent 54%)}
.sd-hero-img .shc-badge{display:none}

/* capability band */
.sd-rail.dark{padding:0!important;background:linear-gradient(180deg,#0A1A31,#0C1E39)!important;border-top:0!important;position:relative}
.sd-rail.dark::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--green-bright),#2E8BE8 46%,#0F62B8 76%,transparent)}
.sd-rail.dark .sd-rail-in{background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:42px 0 46px!important;grid-template-columns:repeat(4,1fr)!important}
.sd-rail.dark .sd-rail-in::after{display:none!important}
.sd-rail-cap{display:none!important}
.sd-rail.dark .sdr{padding:2px 34px!important;border-left:1px solid rgba(255,255,255,.13)!important;align-items:flex-start!important}
.sd-rail.dark .sdr:first-child{border-left:0!important;padding-left:0!important}
.sd-rail.dark .sdr .sdr-ic{display:none!important}
.sd-rail.dark .sdr .sdr-b{display:flex!important;flex-direction:column}
.sd-rail.dark .sdr b{font-size:19px!important;line-height:1.22;color:#fff!important}
.sd-rail.dark .sdr>.sdr-b>span{display:block!important;font-size:13.5px!important;line-height:1.45!important;color:rgba(176,196,222,.82)!important;margin-top:9px}

/* overview: headline left, copy right, blueprint ground */
.sd-overview{background-image:linear-gradient(rgba(23,52,88,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(23,52,88,.05) 1px,transparent 1px),linear-gradient(180deg,#F4F8FD,#EAF1F9)!important;background-size:64px 64px,64px 64px,100% 100%!important}
.sd-ov-in{grid-template-columns:47% 53%!important;gap:64px!important;align-items:start!important}
.sd-ov-l .h2{font-size:44px!important;line-height:1.09!important;letter-spacing:-.03em!important;color:var(--navy)!important;max-width:420px;margin:0!important}
.sd-ov-rule{display:block;width:120px;height:4px;border-radius:4px;margin:28px 0 0;background:linear-gradient(90deg,var(--green-bright),#2E8BE8 68%,#1077D5)}
.sd-ov-r .body{font-size:16px;line-height:1.72;color:var(--slate-dk)}

/* scope card: glowing 3-node timeline, full width */
.sd-scope-wrap{margin-top:54px}
.sd-scope.dark{background:linear-gradient(160deg,#0E2340,#08152B)!important;border:1px solid rgba(90,140,210,.3)!important;border-radius:18px;padding:32px 40px 42px;position:relative;overflow:hidden;box-shadow:0 30px 66px -38px rgba(6,16,34,.66)!important}
.sd-scope.dark::after{content:"";position:absolute;left:8%;right:8%;bottom:0;height:2px;background:linear-gradient(90deg,transparent,var(--green-bright) 22%,#2E8BE8 58%,transparent)}
.sd-scope-h{color:var(--green-bright)!important;font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.2em;text-transform:uppercase}
.sd-scope .sdg{display:grid!important;grid-template-columns:repeat(3,1fr)!important;margin-top:34px;position:relative;padding-top:38px;gap:0}
.sd-scope .sdg::before{content:"";position:absolute;top:9px;left:16.67%;right:16.67%;height:2px;background:linear-gradient(90deg,var(--amber),#5AA0FF 50%,var(--green-bright))}
.sd-scope .sdg-g{position:relative;padding:0 32px;border-left:1px solid rgba(255,255,255,.12)}
.sd-scope .sdg-g:first-child{border-left:0;padding-left:0}
.sd-scope .sdg-g::before{content:"";position:absolute;top:0;left:calc(50% - 10px);width:20px;height:20px;border-radius:50%;background:var(--gc);box-shadow:0 0 18px 5px color-mix(in srgb,var(--gc) 55%,transparent),inset 0 0 0 4px rgba(255,255,255,.9);z-index:1}
.sd-scope .sdg-lab{display:block;color:var(--gc)!important;font-family:var(--display);font-weight:800;font-size:13.5px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:18px}
.sd-scope .sdg-b ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.sd-scope .sdg-b li{position:relative;padding-left:18px;font-size:14.5px;line-height:1.5;color:rgba(206,222,242,.9)}
.sd-scope .sdg-b li::before{content:"";position:absolute;left:0;top:7px;width:7px;height:7px;border-radius:50%;background:var(--gc)}
.sd-scope-wrap .sd-note{margin:40px 0 0!important;padding-top:26px;border-top:1px solid rgba(23,52,88,.16);font-size:14.5px;line-height:1.7;color:var(--slate-dk);max-width:820px}
.sd-scope-wrap .sd-note b{color:var(--navy)}

@media(max-width:1080px){
  .sd-hero-dark .svcpg-hero-in{grid-template-columns:1fr!important}
  .sd-hero-dark .svcpg-hero-l{padding:0 0 40px 0!important}
  .sdh-h{font-size:34px!important}
  .sd-hero-img{min-height:320px;margin-right:0}
  .sd-hero-img img{-webkit-mask-image:none;mask-image:none}
  .sd-hero-img::after{background:linear-gradient(180deg,rgba(12,34,68,.5),transparent 40%)}
  .sd-rail.dark .sd-rail-in{grid-template-columns:1fr 1fr!important}
  .sd-rail.dark .sdr{padding:16px 20px!important;border-left:0!important;border-top:1px solid rgba(255,255,255,.1)!important}
  .sd-ov-in{grid-template-columns:1fr!important;gap:28px!important}
  .sd-ov-l .h2{font-size:31px!important}
  .sd-scope .sdg{grid-template-columns:1fr!important;padding-top:0}
  .sd-scope .sdg::before{display:none}
  .sd-scope .sdg-g{padding:26px 0 0!important;border-left:0!important;border-top:1px solid rgba(255,255,255,.12)}
  .sd-scope .sdg-g:first-child{border-top:0;padding-top:0!important}
  .sd-scope .sdg-g::before{position:static;display:block;width:12px;height:12px;margin-bottom:12px;box-shadow:0 0 14px 3px color-mix(in srgb,var(--gc) 55%,transparent)}
}


/* ---- service hero: undo the leftover light-hero text colors ---- */
.sd-hero-dark .sdh-h{color:#fff!important}
.sd-hero-dark .sdh-h .gb{color:#fff!important}
.sd-hero-dark .sdh-lead{color:rgba(206,222,242,.88)!important;max-width:420px!important;font-size:16.5px!important;line-height:1.7!important}
.sd-hero-dark .sdh-rule{background:linear-gradient(90deg,var(--green-bright),#2E8BE8 68%,#1077D5)!important;box-shadow:none!important;width:140px!important;height:4px!important;margin:30px 0 0!important}
.sd-hero-dark .sd-crumbs.dark,.sd-hero-dark .sd-crumbs.dark a{color:rgba(180,200,226,.7)!important}
.sd-hero-dark .sd-crumbs.dark a:hover{color:#fff!important}
.sd-hero-dark .sd-crumbs.dark .cx{color:rgba(150,172,200,.5)!important}

/* ---- featured project: copy over a full-bleed slant-top photo, meta strip below ---- */
.sd-case{position:relative;overflow:hidden;padding:96px 0 0!important;background-image:linear-gradient(rgba(23,52,88,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(23,52,88,.05) 1px,transparent 1px),linear-gradient(180deg,#F4F8FD,#EDF3FA)!important;background-size:64px 64px,64px 64px,100% 100%!important}
.sdcase-eyebrow{color:var(--green-deep);font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.2em;text-transform:uppercase}
.sdcase-t{font-family:var(--display);font-weight:800;font-size:62px!important;line-height:1.02;letter-spacing:-.035em;color:var(--navy);margin:14px 0 0!important}
.sdcase-lede{font-size:16.5px;line-height:1.66;color:var(--slate-dk);max-width:400px;margin:20px 0 0}
.sdcase-cta{margin-top:30px!important}
.sdcase-img{position:relative;width:100vw;margin:52px calc((100% - 100vw)/2) 0;height:520px;clip-path:polygon(0 7%,100% 0,100% 100%,0 100%)}
.sdcase-img img{width:100%;height:100%;object-fit:cover;display:block}
.sdcase-img::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,var(--green-bright),#2E8BE8 52%,#1077D5)}
.sdcase-lab{display:none}
.sdcase-facts{display:grid!important;grid-template-columns:repeat(4,1fr);gap:0;margin:38px 0 0!important;padding:0 0 96px}
.sdcf{padding:0 30px;border-left:1px solid rgba(23,52,88,.14)}
.sdcf:first-child{border-left:0;padding-left:0}
.sdcf-ic{display:none!important}
.sdcf dt{font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--logo-blue);margin:0}
.sdcf dd{font-family:var(--display);font-weight:800;font-size:16px;line-height:1.35;letter-spacing:-.012em;color:var(--navy);margin:11px 0 0}

/* ---- subs: eyebrow + headline left / lede right, then colour-ruled columns, then a dark band ---- */
.sd-subs{position:relative;overflow:hidden;padding:96px 0 0!important;background-image:linear-gradient(rgba(23,52,88,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(23,52,88,.045) 1px,transparent 1px),linear-gradient(180deg,#FBFCFE,#F4F8FD)!important;background-size:64px 64px,64px 64px,100% 100%!important}
.sd-subs-head{display:grid;grid-template-columns:47% 53%;gap:60px;align-items:start}
.sdsub-eyebrow{color:var(--green-deep);font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.2em;text-transform:uppercase}
.sdsub-h{font-size:44px!important;line-height:1.09!important;letter-spacing:-.032em!important;color:var(--navy)!important;margin:16px 0 0!important;max-width:420px}
.sdsub-lede{font-size:16px;line-height:1.72;color:var(--slate-dk);margin:6px 0 0}
.sd-subs-in{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:0!important;margin-top:64px!important;padding-bottom:96px}
.sd-sub{padding:0 34px;border-left:1px solid rgba(23,52,88,.13)}
.sd-sub:first-child{border-left:0;padding-left:0}
.sd-sub-rule{display:block;width:56px;height:4px;border-radius:4px;background:var(--sc2);margin:0 0 22px}
.sd-sub h3{font-family:var(--display);font-weight:800;font-size:21px;line-height:1.22;letter-spacing:-.02em;color:var(--navy);margin:0}
.sd-sub p{font-size:14.5px;line-height:1.66;color:var(--slate-dk);margin:16px 0 0}
.sdsub-band{position:relative;background:radial-gradient(120% 100% at 12% 0%,#153A66 0%,#0E2340 46%,#08152B 100%);padding:76px 0}
.sdsub-band::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--green-bright),#2E8BE8 44%,#0F62B8 74%,transparent)}
.sdsub-band-in{display:grid;grid-template-columns:42% 58%;gap:56px;align-items:start;position:relative}
.sdsub-band-h{font-family:var(--display);font-weight:800;font-size:36px;line-height:1.12;letter-spacing:-.03em;color:#fff;margin:0;max-width:360px}
.sdsub-band-p{font-size:16px;line-height:1.72;color:rgba(206,222,242,.88);margin:0;padding-left:56px;border-left:1px solid rgba(255,255,255,.16)}

@media(max-width:1080px){
  .sdcase-t{font-size:34px!important}
  .sdcase-img{height:300px;margin-top:34px;clip-path:polygon(0 4%,100% 0,100% 100%,0 100%)}
  .sdcase-facts{grid-template-columns:1fr 1fr;gap:24px 0;padding-bottom:56px}
  .sdcf{padding:0 20px}
  .sdcf:nth-child(odd){border-left:0;padding-left:0}
  .sd-subs-head{grid-template-columns:1fr;gap:24px}
  .sdsub-h{font-size:29px!important}
  .sd-subs-in{grid-template-columns:1fr!important;gap:34px 0!important;padding-bottom:56px}
  .sd-sub{padding:26px 0 0;border-left:0;border-top:1px solid rgba(23,52,88,.13)}
  .sd-sub:first-child{border-top:0;padding-top:0}
  .sdsub-band-in{grid-template-columns:1fr;gap:24px}
  .sdsub-band-h{font-size:27px}
  .sdsub-band-p{padding-left:0;border-left:0}
}


/* ===== closer pass on the two references ===== */
/* hero: photo runs the FULL height of the hero (flush to the top, flush into the band) */
body.svcdet .sd-hero-dark{padding-top:0!important;overflow:hidden}
.sd-hero-dark .svcpg-hero-in{display:block!important;padding-top:0!important;padding-bottom:0!important}
.sd-hero-dark .svcpg-hero-l{position:relative;z-index:2;width:46%;padding:150px 0 104px 0!important;display:block!important}
.sd-hero-img{position:absolute!important;top:0;bottom:0;right:calc((100% - 100vw)/2);width:56vw;height:auto!important;min-height:0!important;margin:0!important;z-index:0;align-self:auto!important}
/* kill the old green edge glow — the reference has a clean dissolve */
.sd-hero-img::before{display:none!important}
.sd-hero-img img{-webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.55) 15%,#000 36%)!important;mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.55) 15%,#000 36%)!important}
.sd-hero-img::after{background:linear-gradient(90deg,#0E2340 0%,rgba(11,32,64,.62) 20%,rgba(11,32,64,.16) 40%,transparent 56%)!important}
.sd-crumbs.dark{margin-bottom:30px!important}

/* section rules read long in the reference; the hero rule stays short */
.sd-ov-rule{width:min(100%,380px)!important;height:3px!important;margin-top:30px!important}

/* featured project: the slant is subtle in the reference */
.sdcase-img{clip-path:polygon(0 3.2%,100% 0,100% 100%,0 100%)}

@media(max-width:1080px){
  body.svcdet .sd-hero-dark{padding-top:104px!important}
  .sd-hero-dark .svcpg-hero-l{width:100%;padding:0 0 34px 0!important}
  .sd-hero-img{position:relative!important;right:auto;width:100%;min-height:320px!important;height:320px!important}
  .sd-hero-img img{-webkit-mask-image:none!important;mask-image:none!important}
  .sd-hero-img::after{background:linear-gradient(180deg,rgba(11,32,64,.5),transparent 40%)!important}
  .sd-ov-rule{width:120px!important}
}


/* meta strip: stale icon-grid made dt/dd collide — stack label over value */
.sdcf{display:block!important}
.sdcf dt{width:auto!important}
/* scope note is plain text under a hairline in the reference, not a card */
.sd-scope-wrap .sd-note{background:none!important;border-radius:0!important;padding:26px 0 0!important;box-shadow:none!important;border-left:0!important;border-right:0!important;border-bottom:0!important}


/* services page featured card — icon badge not wanted */
.sdp-ic{display:none!important}

/* featured project: tighten to the reference */
.sd-case{padding-top:76px!important}
.sdcase-img{margin-top:22px!important;height:470px}
.sdcase-facts dd,.sdcf dd{color:var(--navy)!important}
.sdcase-facts{margin-top:30px!important;padding-bottom:80px}
.sdcase-lede{max-width:380px}


/* Why IGS memory section — center the photo against the paragraph column */
.mission-split{align-items:center}


/* ================= consistency + layout pass ================= */
/* kill the light hairline where a dark section butts a light one */
.whyx{border-top:0!important}
.sd-overview{border-top:0!important}

/* Why IGS band — photo centered against the copy, decorative green block gone */
.whyx-comp{align-items:center!important}
.whyx-photo{align-self:center!important;height:620px!important;min-height:0!important}
.whyx-photo img{height:100%!important}
.whyx-photo::before{display:none!important}

/* inspection section — centered column instead of left-shifted */
.wi-insp-head{max-width:820px!important;margin:0 auto 34px!important;text-align:center}
.wi-insp-head .eyebrow{justify-content:center}
.wi-insp-foot.single{max-width:900px!important;margin-left:auto!important;margin-right:auto!important;text-align:center}
.wi-insp-foot.single .wi-insp-close{padding-left:0!important;border-left:0!important;position:relative;padding-top:24px!important;margin-top:6px!important}
.wi-insp-foot.single .wi-insp-close::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:52px;height:3px;border-radius:3px;background:var(--green-bright)}

/* Five Reasons — photo centered against the list */
.wi-r5{align-items:center!important}


/* ================= About — full alternating owner bios ================= */
.ab-owners{display:flex!important;flex-direction:column;gap:92px;margin-top:58px;grid-template-columns:none!important}
.ab-owner{display:grid!important;grid-template-columns:41% 59%!important;gap:60px;align-items:center;background:none!important;border:0!important;box-shadow:none!important;padding:0!important;border-radius:0!important}
.ab-owner.is-flip{grid-template-columns:59% 41%!important}
.ab-owner.is-flip .abo-photo{order:2}
.ab-owner.is-flip .abo-b{order:1}
.abo-photo{border-radius:18px;overflow:hidden;box-shadow:0 0 0 1px rgba(120,170,255,.22),0 0 44px -12px rgba(59,155,240,.42),0 0 66px -20px rgba(72,228,24,.28),0 26px 54px -32px rgba(10,27,52,.5);align-self:center}
.abo-photo img{width:100%!important;height:100%!important;object-fit:cover;aspect-ratio:4/4.7;display:block}
.ab-owner .abo-b{display:flex;flex-direction:column;align-items:flex-start}
.ab-owner .tm-n{font-family:var(--display);font-weight:800;font-size:40px;line-height:1.04;letter-spacing:-.03em;color:var(--navy)}
.ab-owner .tm-r{font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--green-deep);margin-top:11px}
.ab-owner .tm-bio{font-size:15.5px;line-height:1.72;color:var(--slate-dk);margin:18px 0 0;max-width:530px;-webkit-line-clamp:none!important;display:block!important;overflow:visible!important}
.ab-owner .tm-bio:first-of-type{margin-top:24px}
.ab-owner .abo-rule{display:block;width:280px;height:3px;border-radius:3px;margin:30px 0 0;background:linear-gradient(90deg,var(--green-bright),#2E8BE8 70%,#1077D5)}
.ab-owner .abo-cred{display:block;margin-top:18px;font-family:var(--display);font-weight:700;font-size:14px;line-height:1.55;color:var(--navy);max-width:420px}
@media(max-width:1080px){
  .ab-owners{gap:56px}
  .ab-owner,.ab-owner.is-flip{grid-template-columns:1fr!important;gap:26px}
  .ab-owner.is-flip .abo-photo,.ab-owner .abo-photo{order:1}
  .ab-owner.is-flip .abo-b,.ab-owner .abo-b{order:2}
  .abo-photo img{aspect-ratio:16/11}
  .ab-owner .tm-n{font-size:29px}
  .ab-owner .abo-rule{width:200px}
}


/* About bios — container drives the portrait box; drop the old card's bottom gradient bar */
.ab-owner .abo-photo{aspect-ratio:4/4.7!important}
.ab-owner .abo-photo::after{display:none!important}
@media(max-width:1080px){.ab-owner .abo-photo{aspect-ratio:16/11!important}}


/* Giving Back — the colour split is inside the section, so section padding rendered as white bands */
.wi-give{padding:0!important}
.give-split{align-items:stretch}
.give-l,.give-r{display:flex;flex-direction:column;justify-content:center}
@media(min-width:1081px){.give-l{padding:72px 56px!important}.give-r{padding:68px 56px!important}}


/* Hero video — lighten the right side so more of the footage reads */
body.home .hero-media::after{background:linear-gradient(99deg,rgba(6,16,32,.95) 0%,rgba(6,16,32,.9) 27%,rgba(6,16,32,.74) 45%,rgba(6,16,32,.42) 62%,rgba(6,16,32,.2) 80%,rgba(6,16,32,.14) 100%)!important}
body.home .hero-media::before{background:linear-gradient(180deg,rgba(6,16,31,.5) 0%,rgba(6,16,31,0) 20%,rgba(6,16,31,0) 68%,rgba(6,16,31,.42) 100%)!important}


/* Hero video — perceived-sharpness pass (source is 1080p upscaled ~1.6x on retina) */
body.home .hero-media video{filter:saturate(1.08) contrast(1.1) brightness(1.03)!important;image-rendering:-webkit-optimize-contrast}
/* keep the scrim off the shadows so mid-tone detail survives */
body.home .hero-media::after{background:linear-gradient(99deg,rgba(6,16,32,.94) 0%,rgba(6,16,32,.88) 27%,rgba(6,16,32,.7) 45%,rgba(6,16,32,.36) 62%,rgba(6,16,32,.15) 80%,rgba(6,16,32,.1) 100%)!important}


/* ===== Why IGS band — tightened vertical rhythm (spacing spec) ===== */
/* left copy reads as one centred block; no top/bottom padding fighting the centring */
.whyx-comp{align-items:center!important}
.whyx-panel{padding:0 56px 0 0!important;display:flex!important;flex-direction:column;justify-content:center;align-items:flex-start;max-width:600px}
.whyx-panel .eyebrow-c{margin:0!important}
.whyx-panel .whyx-h{margin:24px 0 0!important;max-width:600px}
.whyx-panel .whyx-p{margin:44px 0 52px!important;max-width:600px}
/* button: a deliberate control, not a full-width form field */
.whyx-panel .whyx-cta{align-self:flex-start;width:auto!important;min-width:0!important;height:62px;padding:0 30px!important;display:inline-flex!important;align-items:center;justify-content:center;gap:11px;margin:0!important;flex:0 0 auto}
@media(min-width:1081px){.whyx-panel .whyx-cta{width:318px!important}}
/* narrow the photo fade so it stops eating the middle of the section */
.whyx-photo img{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 120px)!important;mask-image:linear-gradient(90deg,transparent 0,#000 120px)!important}

/* benefit bar: shorter, every label centred in an equal column, short dividers */
.whyx-band-in{grid-template-columns:repeat(4,1fr)!important}
.whyx-bi{height:124px!important;padding:0 26px!important;display:flex!important;align-items:center;justify-content:center;text-align:center;position:relative;border-left:0!important}
.whyx-bi::before{content:""!important;position:absolute!important;left:0;top:50%;transform:translateY(-50%);width:1px!important;height:64px!important;background:rgba(255,255,255,.18)!important;inset:auto auto auto 0!important;border-radius:0!important}
.whyx-bi:first-child::before{display:none!important}
@media(max-width:1080px){
  .whyx-panel{padding:0 0 40px 0!important;max-width:none}
  .whyx-photo img{-webkit-mask-image:none!important;mask-image:none!important}
  .whyx-band-in{grid-template-columns:1fr 1fr!important}
  .whyx-bi{height:96px!important}
  .whyx-bi:nth-child(odd)::before{display:none!important}
}


/* Why IGS bar dividers — a pre-existing rule already centres via top/bottom:30px, so no transform */
.whyx-bi::before{content:""!important;position:absolute!important;left:0!important;right:auto!important;top:30px!important;bottom:30px!important;width:1px!important;height:auto!important;transform:none!important;background:rgba(255,255,255,.18)!important;border-radius:0!important}
.whyx-bi:first-child::before{display:none!important}
/* honour the 600px copy cap: the panel track has to be able to hold it */
@media(min-width:1081px){.whyx-comp{grid-template-columns:656px 1fr!important}}


/* ============ Homepage hero → light treatment (video kept, scrim flipped) ============ */
body.home .hero-media::after{background:linear-gradient(100deg,#fff 0%,#fff 47%,rgba(255,255,255,.94) 52%,rgba(255,255,255,.56) 57%,rgba(255,255,255,.14) 61%,rgba(255,255,255,0) 65%,rgba(255,255,255,0) 100%)!important}
/* nothing else may tint the left side grey */
body.home .hero-halo,body.home .hero-glow,body.home .hero-veil,body.home .hero-scrim,body.home .hero-media::before{display:none!important}
body.home .hero,body.home .hero-media{background:#fff!important}
body.home .hero-halo,body.home .hero-glow{display:none!important}
body.home .hero-inner{position:relative;z-index:2}
body.home .h-hero{color:var(--navy)!important;text-shadow:none!important}
body.home .h-hero .c-blue{color:#1077D5!important;text-shadow:none!important}
body.home .hero-copy .body-lg{color:#41526B!important}
/* nav must flip with it or the links vanish on white */
body.home .nav:not(.scrolled) .nav-link,body.home .nav:not(.scrolled) .nav .nav-link,body.home .nav:not(.scrolled) .nav-link-join{color:var(--navy)!important}
body.home .nav:not(.scrolled) .nav-link:hover,body.home .nav:not(.scrolled) .nav-link-wrap:hover .nav-link{color:#1077D5!important}
body.home .nav:not(.scrolled) img.logo-mark-light{display:none!important}
body.home .nav:not(.scrolled) img.logo-mark-dark{display:block!important}
/* outline CTA was white-on-dark */
body.home .hero-actions .btn-outline{background:rgba(255,255,255,.72)!important;border-color:rgba(16,44,84,.26)!important;color:var(--navy)!important;box-shadow:none!important}
body.home .hero-actions .btn-outline:hover{background:#fff!important;border-color:#1077D5!important;color:#1077D5!important}

/* hero copy must sit above the white scrim */
body.home .hero .wrap,body.home .hero-copy,body.home .h-hero,body.home .hero-actions{position:relative;z-index:5}


/* hero video must crop, never stretch */
body.home .hero-media video,body.home .hero-media img,.hero-media video{width:100%!important;height:100%!important;object-fit:cover!important;object-position:70% center!important}


/* Hero video occupies ONLY the right side — left is plain white, so no crop/stretch tradeoff */

body.home .hero-media video,body.home .hero-media img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center center!important;-webkit-mask-image:linear-gradient(100deg,transparent 0,rgba(0,0,0,.35) 9%,#000 20%)!important;mask-image:linear-gradient(100deg,transparent 0,rgba(0,0,0,.35) 9%,#000 20%)!important}
body.home .hero-media::after{background:none!important;display:none!important}
body.home .hero{background:#fff!important}
@media(max-width:1080px){
  
  body.home .hero-media video,body.home .hero-media img{-webkit-mask-image:none!important;mask-image:none!important}
  body.home .hero-media::after{display:block!important;background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,.92) 42%,rgba(255,255,255,.55) 68%,rgba(255,255,255,.2) 100%)!important}
}


/* blue bloom in the feather zone so white -> blue -> video reads as one transition */
body.home .hero-media::after{content:""!important;display:block!important;position:absolute!important;inset:0!important;pointer-events:none!important;z-index:2!important;background:linear-gradient(100deg,rgba(16,119,213,0) 0%,rgba(16,119,213,.28) 7%,rgba(16,119,213,.20) 13%,rgba(16,119,213,.08) 20%,rgba(16,119,213,0) 30%)!important}
@media(max-width:1080px){body.home .hero-media::after{background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,.9) 38%,rgba(16,119,213,.18) 62%,rgba(16,119,213,0) 100%)!important}}


/* much longer feather so the video's left edge has no visible divide */
@media(min-width:1081px){
body.home .hero-media video,body.home .hero-media img,body.home .hero-media iframe{-webkit-mask-image:linear-gradient(100deg,rgba(0,0,0,0) 0%,rgba(0,0,0,0) 5%,rgba(0,0,0,.06) 13%,rgba(0,0,0,.18) 21%,rgba(0,0,0,.38) 29%,rgba(0,0,0,.6) 37%,rgba(0,0,0,.8) 45%,rgba(0,0,0,.93) 53%,#000 62%)!important;mask-image:linear-gradient(100deg,rgba(0,0,0,0) 0%,rgba(0,0,0,0) 5%,rgba(0,0,0,.06) 13%,rgba(0,0,0,.18) 21%,rgba(0,0,0,.38) 29%,rgba(0,0,0,.6) 37%,rgba(0,0,0,.8) 45%,rgba(0,0,0,.93) 53%,#000 62%)!important}
body.home .hero-media::after{background:linear-gradient(100deg,rgba(16,119,213,0) 0%,rgba(16,119,213,.16) 10%,rgba(16,119,213,.26) 20%,rgba(16,119,213,.20) 30%,rgba(16,119,213,.11) 40%,rgba(16,119,213,.04) 50%,rgba(16,119,213,0) 60%)!important}
}


/* heavy white wash layered over the video's left edge (plus the blue mid-transition) so no divide is visible */
@media(min-width:1081px){
body.home .hero-media::after{background:linear-gradient(100deg,#fff 0%,#fff 16%,rgba(255,255,255,.94) 26%,rgba(255,255,255,.78) 34%,rgba(255,255,255,.55) 42%,rgba(255,255,255,.32) 50%,rgba(255,255,255,.14) 58%,rgba(255,255,255,.04) 66%,rgba(255,255,255,0) 74%),linear-gradient(100deg,rgba(16,119,213,0) 0%,rgba(16,119,213,.14) 18%,rgba(16,119,213,.24) 30%,rgba(16,119,213,.18) 42%,rgba(16,119,213,.08) 54%,rgba(16,119,213,0) 66%)!important}
}


/* no visible edge: widen the video band and ramp the mask across almost all of it, so the transition is a long blur rather than a line */
@media(min-width:1081px){

body.home .hero-media video,body.home .hero-media img{-webkit-mask-image:linear-gradient(100deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.015) 14%,rgba(0,0,0,.06) 26%,rgba(0,0,0,.15) 36%,rgba(0,0,0,.3) 46%,rgba(0,0,0,.5) 56%,rgba(0,0,0,.72) 66%,rgba(0,0,0,.9) 76%,#000 86%)!important;mask-image:linear-gradient(100deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.015) 14%,rgba(0,0,0,.06) 26%,rgba(0,0,0,.15) 36%,rgba(0,0,0,.3) 46%,rgba(0,0,0,.5) 56%,rgba(0,0,0,.72) 66%,rgba(0,0,0,.9) 76%,#000 86%)!important}
body.home .hero-media::after{display:block!important;content:""!important;position:absolute!important;inset:0!important;pointer-events:none!important;background:linear-gradient(100deg,#fff 0%,rgba(255,255,255,.96) 14%,rgba(255,255,255,.86) 26%,rgba(255,255,255,.68) 38%,rgba(255,255,255,.46) 50%,rgba(255,255,255,.26) 62%,rgba(255,255,255,.1) 74%,rgba(255,255,255,0) 86%),linear-gradient(100deg,rgba(16,119,213,0) 0%,rgba(16,119,213,.1) 16%,rgba(16,119,213,.18) 32%,rgba(16,119,213,.14) 48%,rgba(16,119,213,.06) 62%,rgba(16,119,213,0) 76%)!important}
}


/* pull the video band back left a touch */
@media(min-width:1081px){}


/* clear the white wash off the right side entirely */
@media(min-width:1081px){
body.home .hero-media::after{background:linear-gradient(100deg,#fff 0%,rgba(255,255,255,.95) 12%,rgba(255,255,255,.82) 22%,rgba(255,255,255,.6) 32%,rgba(255,255,255,.36) 42%,rgba(255,255,255,.16) 51%,rgba(255,255,255,.05) 58%,rgba(255,255,255,0) 64%,rgba(255,255,255,0) 100%),linear-gradient(100deg,rgba(16,119,213,0) 0%,rgba(16,119,213,.1) 14%,rgba(16,119,213,.16) 28%,rgba(16,119,213,.1) 40%,rgba(16,119,213,.03) 52%,rgba(16,119,213,0) 60%,rgba(16,119,213,0) 100%)!important}
}


/* video reaches FULL opacity by 58% so the right side reads clearly; feather stays on the left only */
@media(min-width:1081px){
body.home .hero-media video,body.home .hero-media img{-webkit-mask-image:linear-gradient(100deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.04) 12%,rgba(0,0,0,.14) 22%,rgba(0,0,0,.3) 31%,rgba(0,0,0,.52) 40%,rgba(0,0,0,.75) 48%,rgba(0,0,0,.92) 53%,#000 58%,#000 100%)!important;mask-image:linear-gradient(100deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.04) 12%,rgba(0,0,0,.14) 22%,rgba(0,0,0,.3) 31%,rgba(0,0,0,.52) 40%,rgba(0,0,0,.75) 48%,rgba(0,0,0,.92) 53%,#000 58%,#000 100%)!important}
}
@media(max-width:1080px){}


/* Where IGS Fits Into Your Project */
.wfits{background:#fff;padding:88px 0!important}
.wfits-in{display:grid;grid-template-columns:38% 62%;gap:56px;align-items:start}
.wfits-h{font-size:40px!important;line-height:1.1!important;letter-spacing:-.03em!important;margin:16px 0 0!important;max-width:340px}
.wfits-p{margin:0;max-width:640px;color:var(--slate-dk)}
.wfits-paths{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:36px 0 0}
.wfits-path{padding:0 30px;border-left:3px solid var(--pc)}
.wfits-path:first-child{padding-left:30px}
.wfits-path dt{font-family:var(--display);font-weight:800;font-size:19px;line-height:1.25;letter-spacing:-.02em;color:var(--navy);margin:0}
.wfits-path dd{font-size:14.5px;line-height:1.6;color:var(--slate-dk);margin:10px 0 0}
@media(max-width:1080px){
  .wfits{padding:56px 0!important}
  .wfits-in{grid-template-columns:1fr;gap:24px}
  .wfits-h{font-size:29px!important;max-width:none}
  .wfits-paths{grid-template-columns:1fr;gap:22px}
  .wfits-path{padding:0 0 0 18px}
  .wfits-path:first-child{padding-left:18px}
}


/* Featured mosaic tile: the darkest photo on the page was the featured project — lighten it */
.proj-big .proj-scrim,.proj-big::after{background:linear-gradient(to top,rgba(8,21,43,.82) 0%,rgba(8,21,43,.42) 38%,rgba(8,21,43,.1) 68%,transparent 100%)!important}
.proj-big img{filter:brightness(1.08) saturate(1.04)}
@media(max-width:1080px){}


/* Support cards: show the same "View Service" affordance as the featured cards */
.hc-go{display:inline-flex;align-items:center;gap:7px;font-family:var(--sans);font-weight:700;font-size:13px;letter-spacing:.01em;color:var(--faint);white-space:nowrap;transition:color .18s}
.hc-b{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:10px}
.hc:hover .hc-go{color:var(--cc)}
.hc:hover .hc-go svg{transform:translateX(3px)}
.hc-go svg{transition:transform .18s}
@media(max-width:1080px){
}
@media(max-width:600px){
}
@media(max-width:600px){
}


/* ---- Where IGS Fits: two-panel photo gateway (supersedes the earlier .wfits rules) ---- */
.wfits{position:relative;overflow:hidden;padding:86px 0!important;background:linear-gradient(180deg,#F2F6FC 0%,#F8FAFD 46%,#FBFCFE 100%)!important}
.wfits-spill{position:absolute;top:-1px;left:0;right:0;height:220px;pointer-events:none;z-index:0;background:radial-gradient(760px 190px at 22% 0%,rgba(16,119,213,.16),transparent 70%),radial-gradient(620px 160px at 74% 0%,rgba(72,228,24,.13),transparent 70%),linear-gradient(180deg,rgba(11,29,54,.09),transparent 76%)}
.wfits-grid{position:absolute;inset:0;pointer-events:none;z-index:0;opacity:.5;background-image:linear-gradient(rgba(23,52,88,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(23,52,88,.055) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:linear-gradient(180deg,transparent,#000 22%,#000 80%,transparent);mask-image:linear-gradient(180deg,transparent,#000 22%,#000 80%,transparent)}
.wfits-in{position:relative;z-index:1;display:grid!important;grid-template-columns:38% 62%!important;gap:64px!important;align-items:center!important}
.wfits-l{align-self:center}
.wfits-h{font-size:38px!important;line-height:1.11!important;letter-spacing:-.032em!important;margin:16px 0 0!important;max-width:330px}
.wfits-p{font-size:16px!important;line-height:1.68!important;color:var(--slate-dk)!important;margin:20px 0 0!important;max-width:330px}
.wfits-r{display:flex!important;flex-direction:column!important;gap:18px!important}

.wfp{position:relative;display:block;min-height:120px;border-radius:8px;overflow:hidden;text-decoration:none;background:linear-gradient(100deg,#0E2748 0%,#11305A 52%,#163A69 100%);box-shadow:0 1px 2px rgba(11,29,54,.14);transition:transform .22s ease,box-shadow .22s ease}
.wfp::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--pc);box-shadow:0 0 14px -1px var(--pc);z-index:3}
.wfp-photo{position:absolute;top:0;right:0;bottom:0;width:52%;z-index:0}
.wfp-photo img{width:100%;height:100%;object-fit:cover;display:block}
.wfp-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#11305A 0%,rgba(17,48,90,.94) 26%,rgba(17,48,90,.6) 58%,rgba(17,48,90,.22) 100%)}
.wfp-b{position:relative;z-index:2;display:flex;flex-direction:column;gap:8px;padding:26px 30px;max-width:66%}
.wfp-t{font-family:var(--display);font-weight:800;font-size:22px;line-height:1.18;letter-spacing:-.022em;color:#fff}
.wfp-d{font-family:var(--sans);font-weight:500;font-size:13.5px;line-height:1.5;color:rgba(200,218,240,.86)}
.wfp-go{display:inline-flex;align-items:center;gap:7px;margin-top:4px;font-family:var(--sans);font-weight:700;font-size:13px;color:var(--pc);transition:gap .2s}
.wfp-go svg{transition:transform .2s}
.wfp:hover{transform:translateY(-2px);box-shadow:0 10px 30px -18px rgba(11,29,54,.5),0 0 0 1px color-mix(in srgb,var(--pc) 34%,transparent)}
.wfp:hover .wfp-go svg{transform:translateX(4px)}
.wfp:hover .wfp-photo::after{background:linear-gradient(90deg,#11305A 0%,rgba(17,48,90,.9) 26%,rgba(17,48,90,.5) 58%,rgba(17,48,90,.12) 100%)}
.wfp:focus-visible{outline:2px solid var(--pc);outline-offset:3px}

@media(max-width:1080px){
  .wfits{padding:56px 0!important}
  .wfits-in{grid-template-columns:1fr!important;gap:30px!important}
  .wfits-h{font-size:29px!important;max-width:none}
  .wfits-p{max-width:none}
  .wfp-b{max-width:74%;padding:22px 24px}
  .wfp-t{font-size:19px}
}
@media(max-width:600px){
  .wfp-photo{width:100%;opacity:.5}
  .wfp-photo::after{background:linear-gradient(90deg,#11305A 0%,rgba(17,48,90,.86) 60%,rgba(17,48,90,.7) 100%)}
  .wfp-b{max-width:100%}
}
@media(max-width:600px){}
@media(max-width:1080px){}


/* IGS Standard proof band: now renders title + description per the copy doc (was title-only) */
.whyx-band-in{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:0!important;align-items:stretch!important;padding:34px 0!important}
.whyx-bi{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:0!important;min-width:0!important;padding:0 30px!important;box-sizing:border-box!important;border:0!important;background:none!important;border-radius:0!important;white-space:normal!important;font-size:inherit!important;letter-spacing:normal!important;text-transform:none!important;color:inherit!important}
.whyx-bi:first-child{padding-left:0!important}
.whyx-bi:last-child{padding-right:0!important}
.whyx-bi-r{display:block;width:44px;height:3px;border-radius:3px;background:var(--bc);box-shadow:0 0 12px -2px var(--bc);margin:0 0 16px}
.whyx-bi-t{display:block;font-family:var(--display);font-weight:800;font-size:16px;line-height:1.25;letter-spacing:-.018em;color:#fff;min-height:2.5em}
.whyx-bi-d{display:block;font-family:var(--sans);font-weight:500;font-size:13px;line-height:1.55;color:rgba(196,215,240,.8);margin:9px 0 0}
@media(max-width:1080px){
  .whyx-band-in{grid-template-columns:1fr 1fr!important;row-gap:28px!important;padding:26px 0!important}
  .whyx-bi{padding:0 18px!important}
  .whyx-bi:nth-child(odd){padding-left:0!important}
  .whyx-bi-t{min-height:0}
}
@media(max-width:600px){
  .whyx-band-in{grid-template-columns:1fr!important;row-gap:22px!important}
  .whyx-bi{padding:0!important}
}
@media(max-width:1080px){
}
@media(max-width:600px){
}
@media(max-width:1080px){
}
@media(max-width:600px){}

/* Pre-scroll nav: links run past the hero scrim's falloff (Contact sits at ~64% width, where the white wash has cleared), so navy text landed on bright footage. Give the bar a translucent white backdrop. */
body.home .nav:not(.scrolled){background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(255,255,255,.72))!important;backdrop-filter:saturate(140%) blur(10px);-webkit-backdrop-filter:saturate(140%) blur(10px)}

/* ---- Brand colour ROLES (navy=foundation, blue=action, green=proof accent, gold=spark) ---- */
/* Headline emphasis is an ACTION colour, so every highlight span uses brand blue. Green stays for rules and small proof details only. */
.gg,.c-green,.community-close .c{color:var(--blue)!important}
.gb{color:var(--blue)!important}
/* Green keeps its proof/accent jobs */
.whyx-bi-r,.wfp[style*="green"]::before,.sd-sub-rule{opacity:1}

/* Green on LIGHT backgrounds must use the deep grass tone (#48E418 = 5.17:1 on white). The bright grass #48E418 measures only 2.4:1 and is for DARK sections only. */
.eyebrow{color:var(--green-deep)}


/* Action-blue is BACKGROUND-AWARE. --blue (#1077D5) is the light-surface tone; dark navy/photo surfaces
   must use --logo-blue-lt (#3B9BF0) or they fail AA. .gg/.gb/.community-close .c all sit on dark bands. */
.gg,.gb,.community-close .c{color:var(--logo-blue-lt)!important}
.c-green{color:var(--blue)!important}
@media(max-width:1080px){
}
@media(max-width:1080px){
}
@media(max-width:600px){
}
@media(max-width:1080px){
}


/* Final CTA sits on a dark photo band, so its headline highlight needs the dark-surface blue, not --blue. */
.cta .c-green,.cta .gg{color:var(--logo-blue-lt)!important}

/* Trust bar gutters: neutralise every stale nth-child padding override from superseded blocks. Desktop = symmetric 8px, row ends flush. */
@media(min-width:1081px){
}


/* Four-point Standard bar: first column was clipping its text ("ners Involved in the Field") because the
   grid's first item carried inherited left padding while the band clipped overflow. Flush the row ends and
   stop the clip. */
.whyx-band{overflow:visible!important}
.whyx-band-in{overflow:visible!important}
.whyx-bi{overflow:visible!important;padding-left:30px!important;padding-right:30px!important}
.whyx-bi:first-child{padding-left:0!important}
.whyx-bi:last-child{padding-right:0!important}
.whyx-bi-t,.whyx-bi-d{overflow:visible!important;text-overflow:clip!important}


/* .eyebrow-c is used on BOTH light and dark surfaces but always painted the bright grass green.
   .whyx has a LIGHT gradient background, so that instance measured 2.26:1. Scope ONLY the light
   surface to the deep tone — changing .eyebrow-c globally would break the two dark instances that pass. */
.whyx .eyebrow-c{color:var(--green-deep)!important}


/* ---- Contact page: methods, bid/RFP block, short form, routes ---- */
.ctp-methods{padding:64px 0 0!important}
.ctp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.ctp-m{display:flex;align-items:flex-start;gap:13px;padding:20px 22px;border:1px solid var(--line);border-radius:10px;background:#fff;text-decoration:none;transition:border-color .18s,box-shadow .18s,transform .18s}
.ctp-m:hover{border-color:var(--blue);box-shadow:0 8px 24px -18px rgba(23,52,88,.4);transform:translateY(-1px)}
.ctp-ic{flex:0 0 34px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--blue-soft);color:var(--blue)}
.ctp-b{display:flex;flex-direction:column;gap:3px;min-width:0}
.ctp-l{font-family:var(--sans);font-weight:700;font-size:11.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.ctp-v{font-family:var(--sans);font-weight:600;font-size:14.5px;line-height:1.35;color:var(--navy);overflow-wrap:anywhere}
.ctp-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:34px 0 0;padding:26px 0 0;border-top:1px solid var(--line)}
.ctp-f{padding:0 26px;border-left:1px solid var(--line)}
.ctp-f:first-child{border-left:0;padding-left:0}
.ctp-f:last-child{padding-right:0}
.ctp-f dt{font-family:var(--sans);font-weight:700;font-size:11.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--green-deep);margin:0}
.ctp-f dd{font-size:14.5px;line-height:1.55;color:var(--slate-dk);margin:9px 0 0}

.ctp-bid{padding:64px 0!important}
.ctp-bid-in{display:grid;grid-template-columns:38% 62%;gap:50px;align-items:start;background:radial-gradient(120% 100% at 10% 0%,#153A66,#0F2543 60%,#0B1B33);border-radius:12px;padding:44px 48px;position:relative;overflow:hidden}
.ctp-bid-in::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--green-bright),#2E8BE8 50%,transparent)}
.ctp-bid .eyebrow{color:var(--green-bright)}
.ctp-bid .h2{color:#fff;font-size:32px!important;line-height:1.14!important;margin:14px 0 0!important}
.ctp-bid-r p{font-size:16px;line-height:1.7;color:rgba(206,222,242,.9);margin:0}
.ctp-bid-r a{color:var(--logo-blue-lt);text-decoration:underline;text-underline-offset:3px}

.ctp-form-sec{padding:12px 0 64px!important}
.ctp-form-wrap{max-width:820px}
.ctp-form{margin-top:22px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:34px 36px;box-shadow:0 1px 2px rgba(23,52,88,.05)}

.ctp-routes{padding:0 0 84px!important}
.ctp-routes-in{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.ctp-route{padding:30px 32px;border:1px solid var(--line);border-radius:12px;background:var(--bg-alt)}
.ctp-route h3{font-family:var(--display);font-weight:800;font-size:21px;letter-spacing:-.02em;color:var(--navy);margin:0}
.ctp-route p{font-size:14.5px;line-height:1.62;color:var(--slate-dk);margin:12px 0 20px}

/* Quote page: what happens next + alt route */
.qnext{padding:0 0 84px!important}
.qnext-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:22px 0 0;padding:0;list-style:none}
.qnext-steps li{display:flex;align-items:flex-start;gap:14px;padding:0 26px;border-left:1px solid var(--line)}
.qnext-steps li:first-child{border-left:0;padding-left:0}
.qn-n{flex:0 0 30px;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--blue-soft);color:var(--blue);font-family:var(--display);font-weight:800;font-size:14px}
.qn-b{display:flex;flex-direction:column;gap:6px;min-width:0}
.qn-b b{font-family:var(--display);font-weight:800;font-size:16px;letter-spacing:-.015em;color:var(--navy)}
.qn-b span{font-size:14px;line-height:1.58;color:var(--slate-dk)}
.qnext-alt{display:flex;align-items:center;justify-content:space-between;gap:34px;margin:44px 0 0;padding:28px 32px;border:1px solid var(--line);border-radius:12px;background:var(--bg-alt)}
.qnext-alt h3{font-family:var(--display);font-weight:800;font-size:20px;letter-spacing:-.02em;color:var(--navy);margin:0}
.qnext-alt p{font-size:14.5px;line-height:1.6;color:var(--slate-dk);margin:9px 0 0;max-width:620px}
.field-help{font-size:13px;line-height:1.55;color:var(--muted);margin:9px 0 0}

@media(max-width:1080px){
  .ctp-grid{grid-template-columns:1fr}
  .ctp-facts{grid-template-columns:1fr;gap:20px}
  .ctp-f{padding:0;border-left:0}
  .ctp-bid-in{grid-template-columns:1fr;gap:20px;padding:32px 24px}
  .ctp-bid .h2{font-size:25px!important}
  .ctp-form{padding:24px 20px}
  .ctp-routes-in{grid-template-columns:1fr}
  .qnext-steps{grid-template-columns:1fr;gap:24px}
  .qnext-steps li{padding:0;border-left:0}
  .qnext-alt{flex-direction:column;align-items:flex-start;gap:18px}
}


/* Contact page is LIGHT (PageHero), so it must not inherit the dark-hero nav/highlight rules.
   2 + 3: the light page hero needs the ACTION blue (--logo-blue is a dark navy), and the new
   .ctp-bid dark panel needs the dark-surface blue like .svc-section/.testi-section/.cta already do. */
body.ctpg .nav:not(.scrolled) .nav-link,body.ctpg .nav:not(.scrolled) .nav-link-join{color:var(--navy)!important}
body.ctpg .nav:not(.scrolled) .nav-link:hover,body.ctpg .nav:not(.scrolled) .nav-link-wrap:hover .nav-link{color:var(--blue)!important}
body.ctpg .nav:not(.scrolled){background:rgba(255,255,255,.94)!important;backdrop-filter:saturate(150%) blur(14px);-webkit-backdrop-filter:saturate(150%) blur(14px);border-bottom-color:rgba(16,119,213,.14)!important}
.page-hero h1 .c-blue,.page-hero h1 .c-green{color:var(--blue)!important}
.ctp-bid .c-green,.ctp-bid .c-blue{color:var(--logo-blue-lt)!important}


/* ---- About: merged mission (single column, readable measure) + values ---- */
.ab-mission{padding:92px 0!important;background:linear-gradient(180deg,#F4F8FD,#FBFCFE)!important}
.ab-mission-in{max-width:760px}
.ab-mission-h{font-size:40px!important;line-height:1.12!important;letter-spacing:-.032em!important;margin:16px 0 0!important}
.ab-mission-body{margin-top:26px}
.ab-mission-body p{font-size:17px;line-height:1.74;color:var(--slate-dk);margin:0 0 18px}
.ab-mission-body p:last-child{margin-bottom:0}
.ab-mission-close{font-family:var(--display)!important;font-weight:700!important;font-size:19px!important;line-height:1.5!important;color:var(--navy)!important;margin-top:26px!important;padding-top:22px;border-top:1px solid var(--line)}

.ab-values{padding:0 0 92px!important;background:#FBFCFE!important}
.ab-val-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
.ab-val{padding:0 32px;border-left:1px solid var(--line)}
.ab-val:first-child{border-left:0;padding-left:0}
.ab-val:last-child{padding-right:0}
.ab-val-r{display:block;width:46px;height:3px;border-radius:3px;background:var(--vc);margin:0 0 20px}
.ab-val h3{font-family:var(--display);font-weight:800;font-size:21px;letter-spacing:-.022em;color:var(--navy);margin:0}
.ab-val b{display:block;font-family:var(--sans);font-weight:650;font-size:14.5px;line-height:1.4;color:var(--green-deep);margin:9px 0 0}
.ab-val p{font-size:14.5px;line-height:1.62;color:var(--slate-dk);margin:11px 0 0}
.ab-val-q{font-family:var(--display);font-weight:800;font-size:26px;line-height:1.36;letter-spacing:-.024em;color:var(--navy);max-width:820px;margin:56px auto 0;text-align:center;text-wrap:pretty}

@media(max-width:1080px){
  .ab-mission{padding:56px 0!important}
  .ab-mission-h{font-size:28px!important}
  .ab-mission-body p{font-size:16px}
  .ab-values{padding:0 0 56px!important}
  .ab-val-grid{grid-template-columns:1fr;gap:30px}
  .ab-val{padding:0;border-left:0}
  .ab-val-q{font-size:20px;margin-top:36px;text-align:left}
}

/* Headline highlights: --logo-blue is a dark NAVY, so the blanket 'h1 .c-blue' rule gave highlights no
   emphasis on any light page (.page-hero on Contact, .wi-hero on About/Why IGS both measured ~1.1:1).
   Fixed at source above; these keep the light heroes explicit. Dark sections still win via their own
   --logo-blue-lt overrides. */
.wi-hero h1 .c-blue,.wi-hero h1 .c-green,.page-hero h1 .c-blue,.page-hero h1 .c-green,.svcpg-hero-l h1 .c-blue{color:var(--blue)!important}


/* ---- About: one continuous essay (single measure, generous leading, minimal furniture) ---- */
.ab-essay{background:#fff;padding:92px 0 0}
.ab-col{max-width:720px}
.ab-ch{margin:0 0 76px}
.ab-ch:last-child{margin-bottom:0}
.ab-ch-h{font-family:var(--display);font-weight:800;font-size:38px;line-height:1.14;letter-spacing:-.032em;color:var(--navy);margin:0 0 26px;text-wrap:pretty}
.ab-ch p{font-size:18px;line-height:1.78;color:var(--slate-dk);margin:0 0 22px;text-wrap:pretty}
.ab-ch p:last-child{margin-bottom:0}
.ab-lift{font-family:var(--display)!important;font-weight:700!important;font-size:20px!important;line-height:1.6!important;color:var(--navy)!important;margin-top:30px!important;padding-top:26px;border-top:1px solid var(--line)}
.ab-q{font-family:var(--display);font-weight:800;font-size:27px;line-height:1.4;letter-spacing:-.024em;color:var(--blue);margin:34px 0;padding:0 0 0 26px;border-left:3px solid var(--green-bright);text-wrap:pretty}
.ab-break{margin:0;padding:76px 0;background:#fff}
.ab-break img{display:block;width:100%;max-width:1240px;margin:0 auto;height:420px;object-fit:cover;border-radius:12px}

/* people */
.ab-people{padding:92px 0!important;background:linear-gradient(180deg,#F4F8FD,#FBFCFE)!important}
.ab-people-head{max-width:720px;margin:0 0 60px}
.ab-people-head .h2{margin:14px 0 16px!important}
.ab-bios{display:flex;flex-direction:column;gap:64px}
.ab-bio{display:grid;grid-template-columns:300px 1fr;gap:48px;align-items:start}
.ab-bio:nth-child(even){grid-template-columns:1fr 300px}
.ab-bio:nth-child(even) .ab-bio-photo{order:2}
.ab-bio-photo{border-radius:12px;overflow:hidden;background:var(--bg-alt);box-shadow:0 1px 2px rgba(23,52,88,.06)}
.ab-bio-photo img{display:block;width:100%;height:360px;object-fit:cover}
.ab-bio-b h3{font-family:var(--display);font-weight:800;font-size:28px;letter-spacing:-.026em;color:var(--navy);margin:0}
.ab-bio-r{font-family:var(--sans);font-weight:700;font-size:12.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--green-deep);margin:9px 0 20px}
.ab-bio-b p{font-size:16.5px;line-height:1.74;color:var(--slate-dk);margin:0 0 18px;text-wrap:pretty}
.ab-bio-creds{margin-top:6px;padding-top:16px;border-top:1px solid var(--line);font-family:var(--sans);font-weight:600;font-size:13.5px;line-height:1.5;color:var(--muted)}

/* closing line before the CTA */
.ab-closing{padding:80px 0!important;background:#fff}
.ab-closing-line{font-family:var(--display);font-weight:800;font-size:29px;line-height:1.42;letter-spacing:-.026em;color:var(--navy);margin:0;text-wrap:pretty}

@media(max-width:1080px){
  .ab-essay{padding:56px 0 0}
  .ab-ch{margin-bottom:52px}
  .ab-ch-h{font-size:27px;margin-bottom:20px}
  .ab-ch p{font-size:16.5px;line-height:1.72}
  .ab-lift{font-size:17.5px!important}
  .ab-q{font-size:21px;margin:26px 0;padding-left:18px}
  .ab-break{padding:46px 0}
  .ab-break img{height:240px;border-radius:0}
  .ab-people{padding:56px 0!important}
  .ab-people-head{margin-bottom:38px}
  .ab-bios{gap:44px}
  .ab-bio,.ab-bio:nth-child(even){grid-template-columns:1fr;gap:22px}
  .ab-bio:nth-child(even) .ab-bio-photo{order:0}
  .ab-bio-photo img{height:300px}
  .ab-bio-b h3{font-size:23px}
  .ab-closing{padding:52px 0!important}
  .ab-closing-line{font-size:21px}
}


/* About essay: connective beats added so the argument flows rather than jump-cutting */
.ab-bridge{font-family:var(--display)!important;font-weight:700!important;font-size:19px!important;color:var(--navy)!important;margin-top:26px!important}
.ab-q-end{margin-bottom:0!important}
.ab-people-lead{font-family:var(--display);font-weight:700;font-size:20px;line-height:1.58;color:var(--navy);margin:0 0 18px;text-wrap:pretty}
.give-frame{font-family:var(--sans);font-weight:600;font-size:16px;line-height:1.62;color:var(--green-deep);margin:0 0 18px;max-width:52ch}
@media(max-width:1080px){.ab-bridge{font-size:17px!important}.ab-people-lead{font-size:17.5px}}

.ab-closing-line + .ab-closing-line{margin-top:14px!important}


/* Secondary CTA button on dark photographic CTA bands (used by FinalCTA's optional primary prop) */
.btn-outline-lt{display:inline-flex;align-items:center;gap:9px;padding:14px 24px;border-radius:9px;background:rgba(255,255,255,.08);border:1.5px solid rgba(255,255,255,.42);color:#fff;font-family:var(--sans);font-weight:650;font-size:15px;text-decoration:none;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background .18s,border-color .18s,transform .18s}
.btn-outline-lt:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.7);transform:translateY(-1px)}
.btn-outline-lt .arrow,.btn-outline-lt svg{transition:transform .18s}
.btn-outline-lt:hover svg{transform:translateX(3px)}


/* ---- About closing band: blue statement + underline accents, feeding a dark CTA divider row ---- */
.ab-close-band{background:linear-gradient(135deg,#1077D5,#0B4FA0);padding:96px 0;position:relative;overflow:hidden}
.ab-close-in{max-width:900px;border-left:3px solid var(--green-bright);padding-left:40px}
.ab-close-h{font-family:var(--display);font-weight:800;font-size:44px;line-height:1.18;letter-spacing:-.03em;color:#fff;margin:0}
.ab-close-u{color:var(--navy);border-bottom:3px solid var(--green-bright);padding-bottom:2px}
.ab-close-sub{font-size:19px;line-height:1.6;color:rgba(255,255,255,.92);margin:26px 0 0}
.ab-close-u2{font-weight:700;color:#fff;border-bottom:2px solid var(--green-bright)}
@media(max-width:1080px){
  .ab-close-band{padding:56px 0}
  .ab-close-in{padding-left:22px}
  .ab-close-h{font-size:28px}
  .ab-close-sub{font-size:16px;margin-top:18px}
}

/* ---- Giving Back: map layout matching the reference ---- */
.wi-give{background:#fff}
.give-split{grid-template-columns:44% 56%!important}
.eyebrow-rule{display:flex;align-items:center;gap:10px;font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--green-deep);margin-bottom:14px}
.eyebrow-rule span:empty{display:block;width:22px;height:2px;background:var(--green-bright)}
.give-h{font-family:var(--display);font-weight:800;font-size:32px;line-height:1.18;letter-spacing:-.026em;color:var(--navy);margin:0 0 20px}
.give-u{border-bottom:2px solid var(--green-bright);padding-bottom:1px}
.give-map{position:relative;min-height:280px;background:var(--bg-alt);border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.give-map img{width:100%;height:100%;object-fit:contain;opacity:.9}
.give-pin{position:absolute;display:flex;align-items:center;gap:8px;font-family:var(--sans);font-weight:700;font-size:12.5px;letter-spacing:.04em;color:var(--navy)}
.give-dot{width:9px;height:9px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px rgba(16,119,213,.18)}
.give-dot-g{background:var(--green-bright);box-shadow:0 0 0 4px rgba(72,228,24,.18)}
.give-pin-a{top:18%;right:8%}
.give-pin-b{bottom:22%;right:14%}
.give-pin-c{bottom:12%;left:10%}
.give-proof{display:grid;grid-template-columns:1fr 1fr;gap:0;background:linear-gradient(180deg,#173458,#0F2543);margin-top:52px}
.give-proof-l,.give-proof-r{padding:40px 48px}
.give-proof-l{border-right:1px solid rgba(255,255,255,.12)}
.give-proof-l p{font-size:15.5px;line-height:1.7;color:rgba(224,232,244,.88);margin:0}
.give-proof-q{font-family:var(--display);font-weight:800;font-size:22px;line-height:1.4;letter-spacing:-.02em;color:#fff;margin:0}
.give-proof-sub{font-family:var(--sans);font-weight:700;font-size:14px;margin:14px 0 0}
@media(max-width:1080px){
  .give-split{grid-template-columns:1fr!important;gap:28px}
  .give-h{font-size:24px}
  .give-map{min-height:220px}
  .give-proof{grid-template-columns:1fr;margin-top:32px}
  .give-proof-l{border-right:0;border-bottom:1px solid rgba(255,255,255,.12)}
  .give-proof-l,.give-proof-r{padding:28px 24px}
}


/* ---- About: Owner Involvement at Every Stage (matches the reference image) ---- */
.ab-owner{background:#fff;padding:88px 0 0}
.ab-owner-in{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:44px}
.ab-owner-h{font-size:36px;line-height:1.16;letter-spacing:-.028em;margin:14px 0 0}
.ab-owner-img{position:relative;border-radius:12px;overflow:hidden;height:220px}
.ab-owner-img img{width:100%;height:100%;object-fit:cover;display:block}
.ab-owner-img::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,var(--blue),var(--green-bright))}
.ab-owner-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:36px 0 40px;position:relative}
.ab-owner-step{position:relative;padding:0 22px;text-align:center}
.ab-owner-step::before{content:"";position:absolute;top:23px;left:-50%;width:100%;height:2px;background:var(--sc);opacity:.5}
.ab-owner-step:first-child::before{display:none}
.ab-owner-num{width:46px;height:46px;border-radius:50%;border:2px solid var(--sc);color:var(--sc);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:800;font-size:16px;margin:0 auto 18px;background:#fff;position:relative;z-index:1}
.ab-owner-step h3{font-family:var(--display);font-weight:800;font-size:17px;letter-spacing:-.015em;color:var(--navy);margin:0}
.ab-owner-step p{font-size:13px;line-height:1.55;color:var(--slate-dk);margin:8px 0 0}
.ab-owner-bar{background:linear-gradient(180deg,#173458,#0F2543);padding:22px 0}
.ab-owner-bar-in{display:flex;align-items:center;justify-content:space-between;gap:16px}
.ab-owner-bar-in p{font-size:15.5px;color:#fff;margin:0}
.ab-owner-bar-in svg{color:var(--green-bright);flex-shrink:0}
@media(max-width:1080px){
  .ab-owner{padding:52px 0 0}
  .ab-owner-in{grid-template-columns:1fr;gap:20px}
  .ab-owner-h{font-size:26px}
  .ab-owner-steps{grid-template-columns:1fr 1fr;gap:28px 0;padding:28px 0 32px}
  .ab-owner-step::before{display:none}
  .ab-owner-bar-in{flex-direction:column;align-items:flex-start;text-align:left}
}


/* ---- About: Owner Involvement at Every Stage ---- */
.ab-owner{background:#fff;padding:88px 0 0}
.ab-owner-in{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:44px}
.ab-owner-h{font-size:36px;line-height:1.16;letter-spacing:-.028em;margin:14px 0 0}
.ab-owner-img{position:relative;border-radius:12px;overflow:hidden;height:220px}
.ab-owner-img img{width:100%;height:100%;object-fit:cover;display:block}
.ab-owner-img::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,var(--blue),var(--green-bright))}
.ab-owner-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:36px 0 40px;position:relative}
.ab-owner-step{position:relative;padding:0 22px;text-align:center}
.ab-owner-step::before{content:"";position:absolute;top:23px;left:-50%;width:100%;height:2px;background:var(--sc);opacity:.5}
.ab-owner-step:first-child::before{display:none}
.ab-owner-num{width:46px;height:46px;border-radius:50%;border:2px solid var(--sc);color:var(--sc);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:800;font-size:16px;margin:0 auto 18px;background:#fff;position:relative;z-index:1}
.ab-owner-step h3{font-family:var(--display);font-weight:800;font-size:17px;letter-spacing:-.015em;color:var(--navy);margin:0}
.ab-owner-step p{font-size:13px;line-height:1.55;color:var(--slate-dk);margin:8px 0 0}
.ab-owner-bar{background:linear-gradient(180deg,#173458,#0F2543);padding:22px 0}
.ab-owner-bar-in{display:flex;align-items:center;justify-content:space-between;gap:16px}
.ab-owner-bar-in p{font-size:15.5px;color:#fff;margin:0}
.ab-owner-bar-in svg{color:var(--green-bright);flex-shrink:0}

/* ---- About: Five Reasons Clients Come Back (dark) ---- */
.ab-reasons{background:linear-gradient(180deg,#0E2340,#0A1A31);padding:88px 0}
.ab-reasons-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:44px}
.ab-reasons-head .eyebrow{color:var(--green-bright)}
.ab-reasons-head .h2{color:#fff;margin:12px 0 0}
.ab-reasons-sub{max-width:280px;font-size:15px;line-height:1.6;color:rgba(206,220,240,.82);margin:0;text-align:right}
.ab-reasons-list{display:flex;flex-direction:column}
.ab-reason{display:grid;grid-template-columns:70px 1fr;gap:0;align-items:start;padding:22px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.ab-reason:last-child{border-bottom:0}
.ab-reason-num{font-family:var(--display);font-weight:800;font-size:36px;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1.5px var(--rc)}
.ab-reason-b h3{font-family:var(--sans);font-weight:700;font-size:18px;color:#fff;margin:0}
.ab-reason-b p{font-size:14.5px;line-height:1.6;color:rgba(206,220,240,.85);margin:8px 0 0;max-width:600px}
.ab-reasons-cta{display:inline-flex;align-items:center;gap:8px;margin-top:32px;font-family:var(--sans);font-weight:700;font-size:14px;color:var(--blue);text-decoration:none;border-bottom:2px solid transparent;transition:border-color .18s}
.ab-reasons-cta:hover{border-color:var(--blue)}

@media(max-width:1080px){
  .ab-owner{padding:52px 0 0}
  .ab-owner-in{grid-template-columns:1fr;gap:20px}
  .ab-owner-h{font-size:26px}
  .ab-owner-steps{grid-template-columns:1fr 1fr;gap:28px 0;padding:28px 0 32px}
  .ab-owner-step::before{display:none}
  .ab-owner-bar-in{flex-direction:column;align-items:flex-start;text-align:left}
  .ab-reasons{padding:52px 0}
  .ab-reasons-head{flex-direction:column;align-items:flex-start;gap:16px}
  .ab-reasons-sub{text-align:left;max-width:none}
  .ab-reason{grid-template-columns:48px 1fr}
  .ab-reason-num{font-size:26px}
}


/* Giving Back: eyebrow was overlapping the headline (both had negative/zero margin stacking); map had no visible base so pins floated */
.give-l .eyebrow-rule{margin-bottom:20px!important;position:relative;z-index:1}
.give-h{margin-top:0!important;position:relative}
.give-map img{opacity:1;object-fit:cover;filter:none}


/* Giving Back eyebrow was WRAPPING to two lines ("GIVING" / "BACK") because the flex row had no
   white-space:nowrap and a narrow parent, then the h2's top margin didn't account for the extra
   wrapped line, so the headline rendered overlapping "BACK". Force single line + explicit gap. */
.give-l .eyebrow-rule{white-space:nowrap!important;flex-wrap:nowrap!important;margin-bottom:22px!important}
.give-l .eyebrow-rule span:empty{flex-shrink:0!important}
.give-h{margin-top:0!important}


/* ==== About page redesign v2 — follows client reference images ==== */
.ab-essay2{background:none}
/* Ch1: memory — cream bg, text+collage split */
.ab-ch1{background:linear-gradient(180deg,#FAF8F3,#F5F2EA);padding:96px 0;position:relative;overflow:hidden}
.ab-ch1::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(23,52,88,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(23,52,88,.035) 1px,transparent 1px);background-size:56px 56px}
.ab-ch1-in{position:relative;display:grid;grid-template-columns:52% 48%;gap:64px;align-items:center}
.ab-ch1-l p{font-size:17px;line-height:1.72;color:var(--slate-dk);margin:0 0 16px}
.ab-rule{display:block;width:100%;max-width:420px;height:1px;background:linear-gradient(90deg,rgba(23,52,88,.35),transparent);margin:22px 0}
.ab-lift{font-family:var(--display)!important;font-weight:700!important;font-size:21px!important;line-height:1.5!important;color:var(--navy)!important;margin:0!important}
.ab-collage{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:14px}
.ab-cg-main{grid-column:1/3;border-left:4px solid var(--blue);border-radius:2px;overflow:hidden}
.ab-cg-main img{display:block;width:100%;height:280px;object-fit:cover}
.ab-cg-a,.ab-cg-b{border-radius:2px;overflow:hidden}
.ab-cg-a{border-left:4px solid var(--green-bright)}
.ab-cg-b{border-left:4px solid var(--amber)}
.ab-cg-a img,.ab-cg-b img{display:block;width:100%;height:160px;object-fit:cover}

/* Ch2: belief — dark navy, watermark text, right photo, 3-col */
.ab-ch2{position:relative;background:linear-gradient(120deg,#0B2038,#0F2C4A 60%,#123356);overflow:hidden;padding:100px 0}
.ab-ch2-bg{position:absolute;top:38%;left:0;right:0;font-family:var(--display);font-weight:800;font-size:clamp(30px,6vw,84px);letter-spacing:-.02em;color:rgba(255,255,255,.045);white-space:nowrap;text-align:center;pointer-events:none;z-index:0}
.ab-ch2-photo{position:absolute;top:0;right:0;bottom:0;width:38%;z-index:0}
.ab-ch2-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0B2038 0%,rgba(11,32,56,.65) 40%,rgba(11,32,56,.15) 100%)}
.ab-ch2-photo img{width:100%;height:100%;object-fit:cover;display:block}
.ab-ch2-in{position:relative;z-index:1;max-width:1000px}
.ab-ch2-h{color:#fff!important;max-width:640px}
.ab-ch2-h .c-blue{color:#5AA0FF!important}
.ab-ch2-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:34px;max-width:1080px}
.ab-ch2-cols p{padding:0 30px;border-left:1px solid rgba(255,255,255,.14);font-size:14.5px;line-height:1.68;color:rgba(210,224,242,.86);margin:0}
.ab-ch2-cols p:first-child{border-left:0;padding-left:0}
.ab-ch2-cols .c-blue{color:#5AA0FF!important;font-weight:650}

/* Ch3: origin — cream bg, big rotated 2005, photo+text split */
.ab-ch3{position:relative;background:linear-gradient(180deg,#F5F2EA,#FAF8F3);padding:100px 0;overflow:hidden}
.ab-ch3::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(23,52,88,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(23,52,88,.035) 1px,transparent 1px);background-size:56px 56px}
.ab-ch3-num{position:absolute;left:-18px;top:20px;font-family:var(--display);font-weight:800;font-size:180px;line-height:.82;letter-spacing:-.03em;color:transparent;-webkit-text-stroke:1.5px rgba(23,52,88,.14);writing-mode:vertical-rl;transform:rotate(180deg);z-index:0}
.ab-ch3-in{position:relative;z-index:1;display:grid;grid-template-columns:300px 1fr;grid-template-rows:auto auto;gap:32px 48px;padding-left:120px}
.ab-ch3-head{grid-column:1/3}
.ab-ch3-head p.ab-bridge{font-family:var(--sans)!important;font-weight:700!important;font-size:17px!important;color:var(--navy)!important;margin-top:14px!important}
.ab-ch3-photo{border-radius:4px;overflow:hidden;box-shadow:0 12px 30px -14px rgba(23,52,88,.3)}
.ab-ch3-photo img{display:block;width:100%;height:320px;object-fit:cover}
.ab-ch3-body p{font-size:16px;line-height:1.72;color:var(--slate-dk);margin:0 0 18px}
.ab-rule2{max-width:100%;margin:20px 0;background:linear-gradient(90deg,var(--blue),var(--green-bright) 90%,transparent)}

/* pull-quote band as its own full-width section */
.ab-quote-band{background:radial-gradient(120% 140% at 15% 0%,#153A66 0%,#0D2444 55%,#08152B 100%);padding:70px 0;text-align:center}
.ab-quote-h{font-family:var(--display);font-weight:800;font-size:clamp(24px,3vw,36px);line-height:1.36;letter-spacing:-.024em;color:#fff;margin:0}
.ab-quote-h .c-blue{color:#5AA0FF!important}
.ab-quote-h .c-green{color:var(--green-bright)!important;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}

/* People v2: dark, Titus/Jason split w/ divider, Lisa separate band */
.ab-people2{background:radial-gradient(120% 100% at 10% 0%,#153A66 0%,#0D2444 50%,#08152B 100%)!important}
.ab-people2 .eyebrow{color:var(--green-bright)}
.ab-people2 .h2{color:#fff!important}
.ab-people2 .h2 .c-blue{color:#5AA0FF!important}
.ab-people2 .ab-people-lead{color:rgba(220,230,244,.92)!important}
.ab-people2 .body-lg{color:rgba(220,230,244,.78)!important}
.ab-people2 .body-lg .c-green{color:var(--green-bright)!important}
.ab-bios2{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:56px}
.ab-bio2{padding:0 48px}
.ab-bio2:first-child{padding-left:0;border-right:1px solid rgba(255,255,255,.14)}
.ab-bio2:last-child{padding-right:0}
.ab-bio2-photo{border-radius:4px;overflow:hidden;margin-bottom:22px}
.ab-bio2-photo img{display:block;width:100%;height:280px;object-fit:cover}
.ab-bio2 h3{font-family:var(--display);font-weight:800;font-size:27px;letter-spacing:-.024em;color:#fff;margin:0}
.ab-bio2-r{font-family:var(--sans);font-weight:700;font-size:14px;margin:5px 0 18px}
.ab-bio2 p{font-size:15px;line-height:1.7;color:rgba(216,228,244,.86);margin:0 0 16px}
.ab-bio2-creds{margin-top:10px;padding-top:16px;border-top:1px solid rgba(255,255,255,.16);font-family:var(--sans);font-weight:600;font-size:12.5px;letter-spacing:.02em;line-height:1.6;color:rgba(180,198,222,.7);text-transform:uppercase}

.ab-lisa{display:grid;grid-template-columns:44% 56%;min-height:280px}
.ab-lisa-b{background:linear-gradient(160deg,#123356,#0B2038);padding:56px 60px;position:relative;display:flex;flex-direction:column;justify-content:center}
.ab-lisa-b::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--amber)}
.ab-lisa-b .eyebrow{color:var(--amber)}
.ab-lisa-b h3{font-family:var(--display);font-weight:800;font-size:34px;letter-spacing:-.026em;color:#fff;margin:12px 0 18px}
.ab-lisa-b p{font-size:15px;line-height:1.72;color:rgba(216,228,244,.9);margin:0 0 14px}
.ab-lisa-img{overflow:hidden}
.ab-lisa-img img{display:block;width:100%;height:100%;object-fit:cover;min-height:280px}

@media(max-width:1080px){
  .ab-ch1-in{grid-template-columns:1fr;gap:32px}
  .ab-ch1{padding:56px 0}
  .ab-ch2{padding:56px 0}
  .ab-ch2-photo{position:static;width:100%;height:200px;margin-bottom:24px;opacity:.9}
  .ab-ch2-photo::after{display:none}
  .ab-ch2-bg{font-size:26px;top:auto;position:static;margin-bottom:16px;white-space:normal}
  .ab-ch2-cols{grid-template-columns:1fr;gap:18px}
  .ab-ch2-cols p{border-left:0;padding:0}
  .ab-ch3{padding:56px 0}
  .ab-ch3-num{display:none}
  .ab-ch3-in{grid-template-columns:1fr;padding-left:0;gap:20px}
  .ab-ch3-head{grid-column:1}
  .ab-quote-band{padding:44px 0}
  .ab-bios2{grid-template-columns:1fr;gap:44px}
  .ab-bio2{padding:0!important;border:0!important}
  .ab-lisa{grid-template-columns:1fr}
  .ab-lisa-img img{min-height:220px}
}

@media(max-width:1080px){
  .ab-collage{grid-template-rows:auto auto!important;height:auto!important}
  .ab-cg-main img{height:200px!important}
  .ab-cg-a img,.ab-cg-b img{height:120px!important}
}
@media(max-width:1080px){
}
@media(max-width:600px){}


/* ==== Giving Back v2 — photo grid w/ bracket connector + quote panel ==== */
.ab-give2{background:linear-gradient(180deg,#FAF8F3,#F5F2EA)!important;position:relative;overflow:hidden}
.ab-give2::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(23,52,88,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(23,52,88,.035) 1px,transparent 1px);background-size:56px 56px}
.ab-give2-in{position:relative;display:grid!important;grid-template-columns:42% 58%!important;gap:56px;align-items:start}
.give-places{margin-top:18px;font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.1em;color:var(--muted)}
.ab-give2-r{position:relative;padding-left:26px}
.ab-give2-bracket{position:absolute;left:0;top:14px;bottom:14px;width:14px;border:2px solid var(--blue);border-right:0;border-radius:8px 0 0 8px}
.ab-give2-top{display:grid;grid-template-columns:66% 34%;gap:0}
.ab-give2-top .ab-give2-photo img{display:block;width:100%;height:220px;object-fit:cover}
.ab-give2-q{background:linear-gradient(160deg,#123356,#0B2038);padding:24px 22px;display:flex;flex-direction:column;justify-content:center;height:220px}
.ab-give2-q p{font-family:var(--display);font-weight:700;font-size:16px;line-height:1.5;color:#fff;margin:0}
.ab-give2-q span{display:block;width:34px;height:3px;background:var(--green-bright);margin-top:14px;border-radius:3px}
.ab-give2-bottom{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px}
.ab-give2-bottom img{display:block;width:100%;height:150px;object-fit:cover}
.ab-give2-close{text-align:center;font-family:var(--display);font-weight:800;font-size:26px;letter-spacing:-.02em;color:var(--navy);margin:56px 0 0;padding-top:26px;border-top:1px solid rgba(23,52,88,.14)}

/* ==== Closing v2 — full-bleed photo band with rule + secondary CTA ==== */
.ab-close2{position:relative;padding:100px 0!important;overflow:hidden}
.ab-close2-photo{position:absolute;inset:0}
.ab-close2-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(6,16,31,.92) 0%,rgba(6,16,31,.72) 42%,rgba(6,16,31,.3) 72%,rgba(6,16,31,.12) 100%)}
.ab-close2-photo img{width:100%;height:100%;object-fit:cover;display:block}
.ab-close2 .ab-close-in{position:relative;z-index:1;max-width:640px}
.ab-close2-rule{display:block;width:100%;max-width:520px;height:3px;background:linear-gradient(90deg,var(--blue),var(--green-bright) 90%,transparent);margin:26px 0}
.ab-close2-cta-h{font-family:var(--display);font-weight:800;font-size:22px;color:#fff;margin:0 0 24px}
.ab-close2-actions{display:flex;gap:16px;flex-wrap:wrap}

@media(max-width:1080px){
  .ab-give2-in{grid-template-columns:1fr!important;gap:32px}
  .ab-give2-r{padding-left:0}
  .ab-give2-bracket{display:none}
  .ab-give2-top{grid-template-columns:1fr}
  .ab-give2-q{height:auto;padding:22px}
  .ab-give2-bottom{grid-template-columns:1fr 1fr}
  .ab-give2-close{font-size:20px;margin-top:36px}
  .ab-close2{padding:64px 0!important}
}


/* ==== Projects mosaic v2 — matches client reference (light blueprint bg, coloured-border tiles) ==== */
#work{background:linear-gradient(180deg,#F8FAFD,#F2F6FB)!important;position:relative;overflow:hidden}
#work::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(23,52,88,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(23,52,88,.03) 1px,transparent 1px);background-size:56px 56px}
#work .wrap{position:relative}
.proj-head2{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}
.proj-head2 .h2{margin:14px 0 0}
.btn-pill-outline{display:inline-flex;align-items:center;gap:9px;padding:14px 26px;border-radius:999px;border:1.5px solid var(--blue);color:var(--navy);font-family:var(--sans);font-weight:700;font-size:13px;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:background .18s,color .18s}
.btn-pill-outline:hover{background:var(--blue);color:#fff}

.proj-grid2{display:grid;grid-template-columns:1.7fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:20px;margin-top:40px}
.proj2{position:relative;display:block;border-radius:8px;overflow:hidden;border:2px solid var(--pc,var(--green-bright));text-decoration:none;transition:transform .2s,box-shadow .2s}
.proj2:hover{transform:translateY(-2px);box-shadow:0 16px 34px -18px rgba(23,52,88,.35)}
.proj2.proj-big{grid-column:1;grid-row:1/3}
.proj2.proj-wide:nth-of-type(2){grid-column:2;grid-row:1}
.proj2.proj-sm:nth-of-type(3){grid-column:3;grid-row:1}
.proj2 img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0}
.proj2.proj-big{min-height:520px}
.proj2:not(.proj-big){min-height:250px}
.proj2::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(6,16,31,.86) 0%,rgba(6,16,31,.36) 42%,transparent 68%)}
.proj-tag{position:absolute;left:24px;top:24px;z-index:2;font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--green-bright)}
.proj-meta{position:absolute;left:24px;right:24px;bottom:22px;z-index:2}
.proj2:not(.proj-big) .proj-meta{left:16px;right:16px;bottom:14px}
.proj-meta .pt{font-family:var(--display);font-weight:800;color:#fff;letter-spacing:-.01em}
.proj2.proj-big .proj-meta .pt{font-size:30px}
.proj2:not(.proj-big) .proj-meta .pt{font-size:19px}
.proj-meta .ps{font-size:13px;color:rgba(226,235,248,.85);margin-top:4px}
.proj-meta .ps-svc{color:rgba(226,235,248,.7);font-size:12.5px}
.proj-arrow{position:absolute;right:22px;bottom:22px;z-index:2;color:#fff;opacity:.9}

@media(max-width:1080px){
  .proj-head2{flex-direction:column;align-items:flex-start}
  .btn-pill-outline{align-self:flex-start}
  .proj-grid2{grid-template-columns:1fr;grid-template-rows:none;gap:16px}
  .proj2.proj-big,.proj2.proj-wide,.proj2.proj-sm{grid-column:1;grid-row:auto}
  .proj2.proj-big{min-height:320px}
  .proj2:not(.proj-big){min-height:220px}
}


/* ==== Homepage final CTA — match client reference (blueprint bg, underlined phrase, glow button, gradient rule) ==== */
body.home .cta::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.4;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}
body.home .cta-media{opacity:.001}
body.home .cta-inner{max-width:820px;text-align:center;margin:0 auto;padding:96px 0 72px}
body.home .cta-inner .h2{max-width:none;text-align:center;font-size:44px}
body.home .cta-inner .c-green{position:relative;display:inline-block}
body.home .cta-inner .c-green::after{content:"";position:absolute;left:2px;right:2px;bottom:-6px;height:2px;background:var(--green-bright)}
body.home .cta-inner .body-lg{max-width:640px;margin-left:auto;margin-right:auto;text-align:center}
body.home .cta-actions{justify-content:center}
body.home .cta-actions .btn-green{box-shadow:0 0 0 1px rgba(16,119,213,.5),0 0 28px rgba(16,119,213,.55);background:var(--blue)}
body.home .cta-phone{position:relative;padding-bottom:3px}
body.home .cta-phone::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--green-bright)}
body.home .cta::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;z-index:2;background:linear-gradient(90deg,var(--green-bright),var(--blue))}

.fc-d{font-size:13.5px;line-height:1.5;color:rgba(226,235,248,.72);margin:8px 0 0}
.hc-d{font-size:12.5px;line-height:1.48;color:rgba(226,235,248,.68);margin:5px 0 0}

.eyebrow-rule{white-space:nowrap!important}

/* Mosaic grid: nth-of-type counted across ALL .proj2 regardless of class, so item 4 (Castle Park) fell out of the grid.
   Use nth-child on the direct grid children instead, matching the actual DOM order (1 big + 5 supporting). */
.proj-grid2{grid-template-columns:1.7fr 1fr 1fr!important;grid-template-rows:1fr 1fr 1fr!important}
.proj-grid2 .proj2:nth-child(1){grid-column:1;grid-row:1/4}
.proj-grid2 .proj2:nth-child(2){grid-column:2;grid-row:1}
.proj-grid2 .proj2:nth-child(3){grid-column:3;grid-row:1}
.proj-grid2 .proj2:nth-child(4){grid-column:2;grid-row:2}
.proj-grid2 .proj2:nth-child(5){grid-column:3;grid-row:2}
.proj-grid2 .proj2:nth-child(6){grid-column:2/4;grid-row:3}
.proj-grid2 .proj2:nth-child(6) img{object-position:center 30%}
@media(max-width:1080px){
  .proj-grid2{grid-template-columns:1fr!important;grid-template-rows:none!important}
  .proj-grid2 .proj2{grid-column:1!important;grid-row:auto!important}
}
@media(max-width:1080px){
}


/* ==== TRUST BAR — SINGLE CONSOLIDATED DEFINITION (all prior fragmented rules removed) ==== */
.statbar-wrap{position:relative;z-index:5;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);box-shadow:0 22px 54px -30px rgba(21,39,65,.3)}
.statbar-track{position:relative;max-width:1240px;margin:0 auto;padding:0 40px;box-sizing:border-box}
.statbar-run{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;align-items:stretch;width:100%;padding:22px 0}
.statbar-run .stat{display:flex;flex-direction:row;align-items:center;gap:14px;padding:0 28px;margin:0;border-left:1px solid rgba(23,52,88,.13);width:auto;max-width:none;min-width:0;flex:1 1 0;box-sizing:border-box;text-decoration:none;white-space:normal}
.statbar-run .stat:first-child{border-left:0;padding-left:0}
.statbar-run .stat:last-child{padding-right:0}
.statbar-run .stat .stat-ic{flex:0 0 32px;width:32px;height:32px;display:grid;place-items:center;position:relative;border-radius:50%;background:conic-gradient(var(--sc,var(--blue)) 0deg 95deg,rgba(23,52,88,.12) 95deg 360deg);padding:2.5px}
.statbar-run .stat .stat-ic::before{content:"";position:absolute;inset:2.5px;border-radius:50%;background:#fff}
.statbar-run .stat .stat-ic svg{position:relative;z-index:1;color:var(--sc,var(--blue))}
.statbar-run .stat .stat-ic.ring-green{--sc:var(--green-deep)}
.statbar-run .stat .stat-ic.ring-blue{--sc:var(--blue)}
.statbar-run .stat .stat-ic.ring-amber{--sc:var(--amber)}
.statbar-run .stat .txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.statbar-run .stat .v{display:block;font-family:var(--sans);font-weight:650;font-size:19px;line-height:1.28;color:var(--navy);white-space:normal}
.statbar-run .stat .v-big{font-size:26px;font-weight:700}
.statbar-run .stat .v-tight{font-size:17.5px}
.statbar-run .stat .l{display:block;font-family:var(--sans);font-weight:500;font-size:14px;line-height:1.28;color:var(--slate);white-space:normal}
.statbar-run a.stat:hover .v{color:var(--blue)}
@media(max-width:1080px){
  .statbar-run{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:22px}
  .statbar-run .stat{border-left:0;padding:0}
  .statbar-run .stat .v{font-size:17px}
  .statbar-run .stat .v-big{font-size:22px}
}


/* ==== TRUST BAR — match reference exactly: full circle ring (not partial arc), chevron after text ==== */
.statbar-run .stat{justify-content:space-between}
.statbar-run .stat .stat-ic{background:none!important;padding:0!important;border:2px solid var(--sc,var(--blue))!important}
.statbar-run .stat .stat-ic::before{display:none!important}
.statbar-run .stat .chev{margin-left:auto;padding-left:8px;color:rgba(23,52,88,.28);flex-shrink:0}

.statbar-run .stat .v{font-size:18px!important;font-weight:700!important;white-space:nowrap!important}
.statbar-run .stat .v-big{font-size:18px!important;font-weight:700!important}
.statbar-run .stat .v-tight{font-size:18px!important;font-weight:700!important}

/* Fix chevron overlap: reserve space so it never collides with the divider or next item's icon */
.statbar-run .stat{padding-right:36px!important}
.statbar-run .stat:last-child{padding-right:0!important}
.statbar-run .stat .chev{position:static!important;margin-left:10px!important;flex:0 0 auto!important}
.statbar-run .stat .txt{flex:1 1 auto!important;min-width:0!important}
@media(max-width:1080px){.statbar-run .stat{padding-right:0!important}.statbar-run .stat .chev{display:none!important}}

/* Give each stat only the width its content needs so "Bonded" isn't squeezed by an equal 1fr column */
.statbar-run{grid-template-columns:repeat(4,minmax(max-content,auto))!important;justify-content:space-between!important;column-gap:32px!important}
.statbar-run .stat{flex:0 0 auto!important;padding-right:20px!important}
.statbar-run .stat:last-child{padding-right:0!important}
@media(max-width:1080px){.statbar-run{grid-template-columns:repeat(2,minmax(0,1fr))!important;justify-content:start!important}.statbar-run .stat{padding-right:0!important}}

/* Revert to bounded equal columns (prior change overflowed the viewport by 221px) — buy room instead
   by trimming padding/gap/chevron reserve and slightly reducing the bold size. */
.statbar-run{grid-template-columns:repeat(4,minmax(0,1fr))!important;justify-content:initial!important;column-gap:0!important}
.statbar-run .stat{padding:0 18px 0 20px!important;flex:1 1 0!important}
.statbar-run .stat:first-child{padding-left:0!important}
.statbar-run .stat .chev{margin-left:8px!important}
.statbar-run .stat .v{font-size:17px!important}
.statbar-run .stat .v-tight{font-size:15.5px!important}
.statbar-run .stat .v-big{font-size:17px!important}
@media(max-width:1080px){.statbar-run{grid-template-columns:repeat(2,minmax(0,1fr))!important}.statbar-run .stat{padding:0!important}}

/* Pull the trust bar up over the hero bottom (this was dropped during the CSS consolidation) */
.statbar-wrap{margin-top:-90px!important}
@media(max-width:1080px){.statbar-wrap{margin-top:0!important}}
/* Keep content from overflowing the viewport: cap the track and let items shrink instead of forcing content width */
.statbar-track{padding:0 32px!important}
.statbar-run .stat{padding:0 14px 0 16px!important;gap:10px!important}
.statbar-run .stat:first-child{padding-left:0!important}
.statbar-run .stat .v{font-size:16px!important;white-space:nowrap!important}
.statbar-run .stat .l{font-size:12.5px!important;white-space:nowrap!important}
.statbar-run .stat .chev{margin-left:6px!important}
@media(max-width:1350px){
  .statbar-run .stat .v{font-size:15px!important}
  .statbar-run .stat .l{font-size:11.5px!important}
  .statbar-run .stat .chev{display:none!important}
}

/* Remove chevrons per client request */
.statbar-run .stat .chev{display:none!important}
/* Remove the shadow above the bar that was creating a visible white gradient patch over the hero photo */
.statbar-wrap{box-shadow:none!important}

/* Real fix: chevron was wrapped in a <span class="chev"> now (Icon.Arrow ignores passed className) */
.statbar-run .stat .chev{display:none!important}
.statbar-wrap{margin-top:-140px!important;box-shadow:none!important;background:#fff!important}
@media(max-width:1080px){.statbar-wrap{margin-top:0!important}}

/* "OUR WORK" eyebrow was stacking vertically instead of sitting beside its rule line — force flex row explicitly, scoped and !important so nothing can override it again */
#work .eyebrow-rule{display:flex!important;flex-direction:row!important;align-items:center!important;gap:10px!important;white-space:nowrap!important}
#work .eyebrow-rule span:empty{flex:0 0 auto!important;display:block!important;width:22px!important;height:2px!important;background:var(--green-bright)!important;margin:0!important}

/* Kill the light seam where the white trust bar meets the dark section below it */
.statbar-wrap{border-bottom:0!important}
.statbar-wrap::after{display:none!important}
body.svcpg .statbar-wrap,body.svcdet .statbar-wrap{border-bottom:0!important}
.sd-rail.dark::before,.svc-section::before{display:none!important}

/* IGS Standard band: constrain to the site content width instead of running to the viewport edges */
.whyx-band-in{max-width:1240px!important;margin:0 auto!important;padding:0 40px!important;box-sizing:border-box!important}
@media(max-width:1080px){.whyx-band-in{padding:0 20px!important}}

/* Homepage final CTA: light background so it doesn't sit dark-on-dark under the dark Testimonials band */
body.home .cta{background:linear-gradient(180deg,#F4F8FD,#EDF3FA)!important}
body.home .cta::before{opacity:.5!important;background-image:linear-gradient(rgba(23,52,88,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(23,52,88,.045) 1px,transparent 1px)!important}
body.home .cta-inner .h2{color:var(--navy)!important}
body.home .cta-inner .c-green{color:var(--blue)!important}
body.home .cta-inner .c-green::after{background:var(--green-deep)!important}
body.home .cta-inner .body-lg{color:var(--slate-dk)!important}
body.home .cta-phone{color:var(--navy)!important}
body.home .cta-phone::after{background:var(--green-deep)!important}
body.home .cta-glow{display:none!important}

/* Remove the light gradient sliver at the seam under the trust bar, whichever section follows it */
.statbar-wrap + * > .wrap ~ span,
.statbar-wrap + section::before,
.statbar-wrap + section::after,
.statbar-wrap + div::before,
.statbar-wrap + header::before{background:none!important;box-shadow:none!important;display:none!important;content:none!important}
.statbar-wrap{border-top:0!important;border-bottom:0!important;box-shadow:none!important;margin-bottom:0!important}
.statbar-wrap::before,.statbar-wrap::after{display:none!important;content:none!important}
.whyx-band::before,.sdsub-band::before,.svc-section::after{display:none!important}

/* IGS Standard band: more vertical breathing room, equal-height 2-line titles, aligned descriptions */
.whyx-band{padding:60px 0 64px!important}
.whyx-band-in{align-items:stretch!important}
.whyx-bi{display:flex!important;flex-direction:column!important}
.whyx-bi-t{display:block!important;min-height:2.5em!important;line-height:1.25!important;margin-bottom:14px!important;white-space:normal!important;max-width:13ch!important}
.whyx-bi-d{display:block!important;margin-top:0!important}
@media(max-width:1080px){.whyx-band{padding:40px 0 44px!important}.whyx-bi-t{min-height:0!important;max-width:none!important}}

/* IGS Standard band: uniform 2-line titles so all four rows start at the same y */
.whyx-bi-t{max-width:20ch!important;min-height:2.6em!important;line-height:1.3!important;margin-bottom:16px!important;display:flex!important;align-items:flex-end!important;justify-content:center!important;text-align:center!important}
.whyx-bi{align-items:center!important;text-align:center!important}
.whyx-bi-d{text-align:center!important;max-width:34ch!important;margin-left:auto!important;margin-right:auto!important}
@media(max-width:1080px){.whyx-bi-t{min-height:0!important;max-width:none!important;display:block!important}}

/* Where IGS Fits: keep the panels inside the content gutter instead of running to the edge */
.wfits-in{max-width:1240px!important;margin:0 auto!important;padding-left:40px!important;padding-right:40px!important;box-sizing:border-box!important;column-gap:56px!important}
.wfits-r{padding-right:0!important}
.wfp{margin-right:0!important}
@media(max-width:1080px){.wfits-in{padding-left:20px!important;padding-right:20px!important}}

/* Client: remove the small section eyebrow/tag labels site-wide */
.eyebrow,.eyebrow-c,.eyebrow-rule,.eyebrow-sm,.sdsub-eyebrow,.sdcase-eyebrow,.ab-people-head .eyebrow,.wip-head .eyebrow{display:none!important}

/* Remove the green underline on the CTA phone link */
.cta-phone::after,body.home .cta-phone::after{display:none!important;content:none!important;background:none!important}
.cta-phone{padding-bottom:0!important;border-bottom:0!important;text-decoration:none!important}

/* Final CTA on light homepage: white button text, brand-accurate accents */
body.home .cta-actions .btn-green{background:var(--blue)!important;color:#fff!important;border:0!important;box-shadow:0 8px 22px -10px rgba(16,119,213,.55)!important}
body.home .cta-actions .btn-green svg,body.home .cta-actions .btn-green .arrow{color:#fff!important;stroke:#fff!important}
body.home .cta-actions .btn-green:hover{background:var(--blue-deep)!important;color:#fff!important}
/* underline under the highlighted phrase uses the logo's grass green, not the dull deep tone */
body.home .cta-inner .c-green::after{background:var(--green-bright)!important;height:3px!important}

/* Where IGS Fits: columns were 38% + 62% = 100%, so the 64px gap pushed the right column past the edge */
.wfits-in{grid-template-columns:minmax(0,38fr) minmax(0,62fr)!important;column-gap:56px!important}
.wfits-r,.wfp{min-width:0!important;max-width:100%!important}
@media(max-width:1080px){.wfits-in{grid-template-columns:1fr!important}}

/* Make the call link a proper secondary button beside the blue primary */
body.home .cta-phone{display:inline-flex!important;align-items:center!important;gap:9px!important;padding:14px 26px!important;border-radius:10px!important;border:1.5px solid rgba(23,52,88,.28)!important;background:#fff!important;color:var(--navy)!important;font-family:var(--sans)!important;font-weight:700!important;font-size:15px!important;text-decoration:none!important;transition:border-color .18s,background .18s,transform .18s}
body.home .cta-phone:hover{border-color:var(--blue)!important;color:var(--blue)!important;transform:translateY(-1px)}
body.home .cta-actions{align-items:center!important;gap:16px!important}

/* About Owner Involvement: bar was only spanning the left column and leaving a large empty gap */
.ab-owner{padding-bottom:0!important}
.ab-owner-in{align-items:start!important;margin-bottom:40px!important}
.ab-owner-bar{width:100%!important;grid-column:1/-1!important;margin-top:40px!important;background:linear-gradient(100deg,#0E2748,#13345E)!important}
.ab-owner-bar-in{max-width:1240px!important;margin:0 auto!important;padding:22px 40px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:24px!important}
.ab-owner-bar-in p{margin:0!important}
.ab-owner-steps{margin-bottom:0!important}
@media(max-width:1080px){.ab-owner-bar-in{padding:18px 20px!important}}


/* ================= CONTACT PAGE — rebuilt to client reference ================= */
/* 1. Dark split hero with right photo + gradient rule under the nav */
.ctp-hero{position:relative;overflow:hidden;background:radial-gradient(120% 100% at 10% 0%,#153A66 0%,#0D2444 48%,#08152B 100%);padding:132px 0 96px}
.ctp-hero-rule{position:absolute;top:0;left:0;right:0;height:4px;z-index:4;background:linear-gradient(90deg,#1077D5 0%,#1077D5 62%,var(--green-bright) 100%)}
.ctp-hero-media{position:absolute;top:0;right:0;bottom:0;width:56%;z-index:0}
.ctp-hero-media img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;display:block}
.ctp-hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0D2444 0%,rgba(13,36,68,.92) 22%,rgba(13,36,68,.45) 52%,rgba(13,36,68,.12) 78%,rgba(13,36,68,0) 100%)}
.ctp-hero-in{position:relative;z-index:2}
.ctp-hero-l{max-width:460px}
.ctp-hero-h{font-family:var(--display);font-weight:800;font-size:58px;line-height:1.03;letter-spacing:-.035em;color:#fff;margin:16px 0 0}
.ctp-hero-h .c-blue{color:#1B7FEA!important}
.ctp-hero-p{font-size:16.5px;line-height:1.68;color:rgba(214,228,246,.9);margin:24px 0 0;max-width:380px}
.ctp-hero-meta{margin-top:34px;font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(206,222,242,.88)}
.ctp-hero-meta .dot{opacity:.5;margin:0 6px}
.ctp-hero-meta .g{color:var(--green-bright)}

/* 2. Two-column body */
.ctp-body{background:#fff;padding:84px 0 92px}
.ctp-body-in{display:grid;grid-template-columns:minmax(0,40fr) minmax(0,60fr);gap:64px;align-items:start}
.ctp-h2{font-family:var(--display);font-weight:800;font-size:31px;line-height:1.14;letter-spacing:-.028em;color:var(--navy);margin:12px 0 0}
.ctp-sub{font-size:15.5px;line-height:1.62;color:var(--slate-dk);margin:12px 0 0;max-width:360px}
.ctp-rows{margin:26px 0 0}
.ctp-row{padding:15px 0;border-bottom:1px solid var(--line)}
.ctp-row:first-child{padding-top:0}
.ctp-row dt{font-family:var(--sans);font-weight:700;font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--navy);margin:0}
.ctp-row dd{margin:7px 0 0;font-size:16px;line-height:1.45}
.ctp-link{color:var(--blue);font-weight:600;text-decoration:none;word-break:break-word}
.ctp-link:hover{text-decoration:underline;text-underline-offset:3px}
.ctp-val{font-family:var(--sans);font-weight:650;color:var(--navy);font-size:15.5px;line-height:1.5}
.ctp-ops-h{margin:30px 0 4px;font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}

/* bid card */
.ctp-bidcard{margin-top:34px;background:radial-gradient(120% 120% at 0% 0%,#153A66 0%,#0D2444 55%,#08152B 100%);border-radius:6px;padding:26px 26px 24px}
.ctp-bidcard .eyebrow{color:var(--green-bright)}
.ctp-bidcard-h{font-family:var(--display);font-weight:800;font-size:23px;line-height:1.2;letter-spacing:-.024em;color:#fff;margin:12px 0 0}
.ctp-bidcard p{font-size:14.5px;line-height:1.66;color:rgba(206,222,242,.86);margin:14px 0 0}
.ctp-bidcard p a{color:var(--green-bright);text-decoration:none}
.ctp-bidcard p a:hover{text-decoration:underline}
.ctp-bidcard-cta{display:inline-flex;align-items:center;gap:8px;margin-top:20px;font-family:var(--sans);font-weight:700;font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:#fff;text-decoration:none}
.ctp-bidcard-cta:hover{color:var(--green-bright)}

/* form card with blue left edge */
.ctp-card{position:relative;background:#fff;border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:3px;padding:36px 38px 40px}
.ctp-card .eyebrow{color:var(--green-deep)}
.ctp-form{margin-top:26px}
.ctf{margin:0 0 18px}
.ctf label{display:block;font-family:var(--sans);font-weight:700;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);margin:0 0 8px}
.ctf input,.ctf select,.ctf textarea{width:100%;font-family:var(--sans);font-size:15.5px;color:var(--navy);background:#fff;border:1px solid #CBD5E3;border-radius:3px;padding:12px 14px;transition:border-color .15s,box-shadow .15s}
.ctf textarea{resize:vertical;min-height:150px;line-height:1.6}
.ctf input:focus,.ctf select:focus,.ctf textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(16,119,213,.12)}
.ctf.err input,.ctf.err textarea{border-color:#C63A3A}
.ctf .em{display:block;margin-top:6px;font-size:12.5px;color:#C63A3A;min-height:0}
.ctf-help{display:block;margin-top:9px;font-size:12.5px;line-height:1.55;color:var(--muted)}
.ctp-send{margin-top:10px}
.ctp-fine{margin:20px 0 0;font-size:12.5px;line-height:1.6;color:var(--muted)}
.ctp-fine a{color:var(--blue)}

/* 3. Scoping band */
.ctp-scope{position:relative;overflow:hidden;background:radial-gradient(120% 100% at 8% 0%,#153A66 0%,#0D2444 50%,#08152B 100%);padding:64px 0}
.ctp-scope-media{position:absolute;top:0;right:0;bottom:0;width:52%;z-index:0}
.ctp-scope-media img{width:100%;height:100%;object-fit:cover;display:block}
.ctp-scope-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0D2444 0%,rgba(13,36,68,.9) 26%,rgba(13,36,68,.42) 62%,rgba(13,36,68,.1) 100%)}
.ctp-scope-in{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,42fr) minmax(0,58fr);gap:48px;align-items:start}
.ctp-scope .eyebrow{color:var(--green-bright)}
.ctp-scope-h{font-family:var(--display);font-weight:800;font-size:33px;line-height:1.14;letter-spacing:-.028em;color:#fff;margin:12px 0 0}
.ctp-scope-r p{font-size:15.5px;line-height:1.66;color:rgba(214,228,246,.9);margin:0;max-width:330px}
.ctp-scope-r .btn{margin-top:22px}

/* 4. Documentation closing band */
.ctp-doc{background:#F7FAFD;padding:56px 0 60px;border-top:1px solid var(--line)}
.ctp-doc-in{display:grid;grid-template-columns:minmax(0,34fr) minmax(0,32fr) minmax(0,34fr);gap:44px;align-items:start}
.ey-amber{color:var(--amber)!important}
.ctp-doc-h{font-family:var(--display);font-weight:800;font-size:30px;line-height:1.14;letter-spacing:-.028em;color:var(--navy);margin:12px 0 0}
.ctp-doc-p{font-size:14.5px;line-height:1.68;color:var(--slate-dk);margin:0;padding-top:26px}
.ctp-doc-r{display:flex;justify-content:flex-end;padding-top:22px}
.ctp-doc-btn{display:inline-flex;align-items:center;gap:9px;padding:16px 22px;background:#fff;border:1.5px solid var(--green-bright);border-radius:3px;font-family:var(--sans);font-weight:650;font-size:14px;color:var(--navy);text-decoration:none;transition:background .15s,box-shadow .15s}
.ctp-doc-btn:hover{background:#F2FBEC;box-shadow:0 2px 10px -4px rgba(72,228,24,.4)}

@media(max-width:1080px){
  .ctp-hero{padding:104px 0 56px}
  .ctp-hero-media{width:100%;opacity:.28}
  .ctp-hero-media::after{background:linear-gradient(180deg,rgba(13,36,68,.8),rgba(8,21,43,.92))}
  .ctp-hero-h{font-size:36px}
  .ctp-hero-l,.ctp-hero-p{max-width:none}
  .ctp-body{padding:52px 0 56px}
  .ctp-body-in{grid-template-columns:1fr;gap:44px}
  .ctp-card{padding:26px 22px 30px}
  .ctp-scope-media{width:100%;opacity:.3}
  .ctp-scope-in{grid-template-columns:1fr;gap:24px}
  .ctp-scope-h{font-size:26px}
  .ctp-doc-in{grid-template-columns:1fr;gap:20px}
  .ctp-doc-p,.ctp-doc-r{padding-top:0}
  .ctp-doc-r{justify-content:flex-start}
  .ctp-doc-h{font-size:25px}
}


/* Contact page fixes: (2) a global rule hides every .eyebrow with !important — the reference
   depends on these labels, so re-show them scoped to this page. (3) a stale .ctp-l rule from the
   PREVIOUS contact iteration set text-transform:uppercase + letter-spacing, and the rebuild reuses
   that class name, so the whole left column inherited caps. Neutralise both. */
body.ctpg .eyebrow{display:block!important}
.ctp-l{text-transform:none!important;letter-spacing:normal!important}
.ctp-l .eyebrow,.ctp-r .eyebrow,.ctp-hero .eyebrow,.ctp-scope .eyebrow,.ctp-doc .eyebrow,.ctp-bidcard .eyebrow{display:block!important;text-transform:uppercase!important;letter-spacing:.14em!important;font-family:var(--sans);font-weight:700;font-size:12px}
.ctp-h2,.ctp-sub,.ctp-row dt,.ctp-row dd,.ctp-val,.ctp-link,.ctp-bidcard p,.ctp-bidcard-h{text-transform:none!important}
.ctp-h2,.ctp-sub,.ctp-row dd,.ctp-val,.ctp-link,.ctp-bidcard p,.ctp-bidcard-h{letter-spacing:normal!important}
.ctp-row dt{text-transform:uppercase!important;letter-spacing:.13em!important}
.ctp-ops-h{text-transform:uppercase!important;letter-spacing:.14em!important}


/* Contact page: use the LOGO's neon green (#48E418, sampled from assets/igs-mark.png) for every
   green element on the page, replacing the calmed UI green (--green-bright #48E418) and the
   dark accessible green (--green-deep #48E418). */
body.ctpg{--ctp-neon:#48E418}
.ctp-hero .eyebrow,.ctp-hero-meta .g,
.ctp-bidcard .eyebrow,.ctp-bidcard p a,.ctp-bidcard-cta:hover,
.ctp-scope .eyebrow,
.ctp-l .eyebrow,.ctp-r .eyebrow,.ctp-card .eyebrow,
.ctp-body .eyebrow,.ctp-doc .eyebrow:not(.ey-amber){color:#48E418!important}
.ctp-hero-rule{background:linear-gradient(90deg,#1077D5 0%,#1077D5 62%,#48E418 100%)!important}
.ctp-doc-btn{border-color:#48E418!important}
.ctp-doc-btn:hover{background:#F3FDEC!important;box-shadow:0 2px 10px -4px rgba(72,228,24,.45)!important}


/* Homepage: match the Contact page — every green element uses the LOGO's neon green #48E418. */
body.home .eyebrow,body.home .eyebrow-c,body.home .eyebrow-rule,
body.home .c-green,body.home .gg,body.home .community-close .c,
body.home .whyx-bi-r,body.home .tq,body.home .testi-q{color:#48E418!important}
body.home .statbar-run .stat-ic.ring-green{--sc:#48E418!important}
body.home .statbar-run .stat-ic.ring-green svg{color:#48E418!important}
body.home .eyebrow-rule span:empty,body.home .sd-sub-rule,body.home .wfits-path[style*="green"],
body.home .whyx-bi[style*="green"] .whyx-bi-rule{background:#48E418!important}
body.home .btn-green{background:#48E418!important;border-color:#48E418!important;color:#08152B!important}
body.home .btn-green:hover{background:#48E418!important;border-color:#48E418!important}


/* ================= ABOUT: "The People Behind It" — rebuilt to client reference ================= */
/* dark intro band */
.ab-ppl{position:relative;background:radial-gradient(120% 130% at 8% 0%,#153A66 0%,#0D2444 52%,#08152B 100%);padding:78px 0 84px}
.ab-ppl-in{display:grid;grid-template-columns:minmax(0,46fr) minmax(0,54fr);gap:64px;align-items:start}
.ab-ppl .eyebrow-rule{color:#48E418!important;display:flex!important}
.ab-ppl .eyebrow-rule span:empty{background:#48E418}
.ab-ppl-h{font-family:var(--display);font-weight:800;font-size:56px;line-height:1.02;letter-spacing:-.036em;color:#fff;margin:18px 0 0}
.ab-ppl-p{font-size:17px;line-height:1.68;color:#fff;margin:0;max-width:460px}
.ab-ppl-p2{font-family:var(--sans);font-weight:650;font-size:17px;line-height:1.68;color:#1B7FEA;margin:22px 0 0;max-width:460px}
.ab-ppl-rule{position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,#1077D5 0%,#1B7FEA 55%,#48E418 100%)}

/* bios on a pale blue field */
.ab-bios3{background:#E9F1FB;padding:64px 0 72px}
.ab-b3{display:grid;grid-template-columns:minmax(0,38fr) minmax(0,62fr);gap:56px;align-items:start;padding:46px 0}
.ab-b3+.ab-b3{border-top:1px solid transparent;border-image:linear-gradient(90deg,#1077D5,#48E418) 1;border-top-width:1px;border-top-style:solid}
.ab-b3:first-child{padding-top:0}
.ab-b3.flip{grid-template-columns:minmax(0,62fr) minmax(0,38fr)}
.ab-b3.flip .ab-b3-photo{order:2}
.ab-b3-photo{position:relative;border-radius:2px;overflow:hidden;background:#0D2444}
.ab-b3-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(16,119,213,.34),rgba(13,36,68,.5));mix-blend-mode:multiply;pointer-events:none}
.ab-b3-photo img{display:block;width:100%;height:470px;object-fit:cover;filter:grayscale(.72) contrast(1.06) brightness(.98)}
.ab-b3-n{font-family:var(--display);font-weight:800;font-size:46px;line-height:1.02;letter-spacing:-.036em;color:var(--navy);margin:0}
.ab-b3-r{margin:12px 0 0;font-family:var(--sans);font-weight:700;font-size:13px;letter-spacing:.13em;text-transform:uppercase;color:#1077D5}
.ab-b3-creds{margin:18px 0 0;padding:13px 0;border-top:1px solid rgba(23,52,88,.2);border-bottom:1px solid rgba(23,52,88,.2);font-family:var(--sans);font-weight:600;font-size:11.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--slate)}
.ab-b3-creds.bot{margin-top:26px}
.ab-b3-paras{margin-top:22px}
.ab-b3-paras p{font-size:15px;line-height:1.72;color:var(--slate-dk);margin:0 0 16px;text-wrap:pretty}
.ab-b3-paras p:last-child{margin-bottom:0}

@media(max-width:1080px){
  .ab-ppl{padding:52px 0 56px}
  .ab-ppl-in{grid-template-columns:1fr;gap:26px}
  .ab-ppl-h{font-size:34px}
  .ab-ppl-p,.ab-ppl-p2{max-width:none;font-size:16px}
  .ab-bios3{padding:44px 0 48px}
  .ab-b3,.ab-b3.flip{grid-template-columns:1fr;gap:24px;padding:34px 0}
  .ab-b3.flip .ab-b3-photo{order:0}
  .ab-b3-photo img{height:330px}
  .ab-b3-n{font-size:32px}
}


/* ================= ABOUT: Giving Back + Closing — rebuilt to client reference ================= */
.ab-gv{background:#E9F1FB;padding:76px 0 84px}
.ab-gv .eyebrow-rule{color:#48E418!important;display:flex!important}
.ab-gv .eyebrow-rule span:empty{background:#48E418}
.ab-gv-h{font-family:var(--display);font-weight:800;font-size:50px;line-height:1.06;letter-spacing:-.036em;color:var(--navy);margin:18px 0 44px}
.ab-gv-in{display:grid;grid-template-columns:minmax(0,38fr) minmax(0,62fr);gap:56px;align-items:start}
.ab-gv-lead{font-family:var(--display);font-weight:800;font-size:27px;line-height:1.26;letter-spacing:-.026em;color:var(--navy);margin:0 0 26px;text-wrap:pretty}
.ab-gv-p{font-size:14px;line-height:1.75;color:var(--slate-dk);margin:0 0 18px;text-wrap:pretty}
.ab-gv-q{position:relative;margin:30px 0 0;padding:30px 30px 32px;background:radial-gradient(130% 130% at 0% 0%,#153A66 0%,#0D2444 52%,#08152B 100%);font-family:var(--display);font-weight:800;font-size:26px;line-height:1.32;letter-spacing:-.026em;color:#fff;text-wrap:pretty}
.ab-gv-q::after{content:"";position:absolute;top:8px;right:-8px;bottom:-8px;width:10px;background:linear-gradient(180deg,#1077D5,#48E418);filter:blur(7px);opacity:.9}
.ab-gv-close{margin:26px 0 0;font-family:var(--sans);font-weight:700;font-size:15.5px;line-height:1.6;color:#1077D5}
/* photo grid */
.ab-gv-big{overflow:hidden}
.ab-gv-big img{display:block;width:100%;height:405px;object-fit:cover}
.ab-gv-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.ab-gv-sm{overflow:hidden}
.ab-gv-sm img{display:block;width:100%;height:295px;object-fit:cover}
.ab-gv-places{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:22px 0 0;font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.13em;text-transform:uppercase}
.ab-gv-places .pl-b{color:#1077D5}
.ab-gv-places .pl-g{color:#48E418}
.ab-gv-places .pl-a{color:var(--amber)}
.ab-gv-places .pl-d{color:var(--faint)}
.ab-gv-rule{display:block;height:2px;margin-top:14px;background:linear-gradient(90deg,#1077D5 0%,#48E418 52%,var(--amber) 100%)}

/* closing band */
.ab-fin{position:relative;overflow:hidden;background:radial-gradient(130% 120% at 6% 0%,#153A66 0%,#0D2444 50%,#08152B 100%);padding:86px 0 96px}
.ab-fin-top,.ab-fin-bot{position:absolute;left:0;right:0;height:4px;z-index:4;background:linear-gradient(90deg,#1077D5 0%,#1B7FEA 52%,#48E418 100%)}
.ab-fin-top{top:0}
.ab-fin-bot{bottom:0}
.ab-fin-media{position:absolute;top:0;right:0;bottom:0;width:58%;z-index:0}
.ab-fin-media img{width:100%;height:100%;object-fit:cover;display:block}
.ab-fin-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0D2444 0%,rgba(13,36,68,.94) 20%,rgba(13,36,68,.55) 48%,rgba(13,36,68,.14) 78%,rgba(13,36,68,0) 100%)}
.ab-fin-in{position:relative;z-index:2;max-width:620px}
.ab-fin .eyebrow-rule{color:#48E418!important;display:flex!important}
.ab-fin .eyebrow-rule span:empty{background:#48E418}
.ab-fin-lead{font-family:var(--sans);font-weight:700;font-size:20px;line-height:1.42;color:#fff;margin:16px 0 0}
.ab-fin-sub{font-size:16px;line-height:1.6;color:rgba(206,222,242,.86);margin:14px 0 0}
.ab-fin-h{font-family:var(--display);font-weight:800;font-size:50px;line-height:1.06;letter-spacing:-.036em;color:#fff;margin:34px 0 0}
.ab-fin-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}

@media(max-width:1080px){
  .ab-gv{padding:52px 0 56px}
  .ab-gv-h{font-size:30px;margin-bottom:28px}
  .ab-gv-in{grid-template-columns:1fr;gap:32px}
  .ab-gv-lead{font-size:21px}
  .ab-gv-q{font-size:21px;padding:24px}
  .ab-gv-big img{height:250px}
  .ab-gv-sm img{height:170px}
  .ab-fin{padding:56px 0 60px}
  .ab-fin-media{width:100%;opacity:.26}
  .ab-fin-media::after{background:linear-gradient(180deg,rgba(13,36,68,.82),rgba(8,21,43,.94))}
  .ab-fin-in{max-width:none}
  .ab-fin-h{font-size:31px}
}


/* ================= ABOUT: origin chapter — rebuilt to client reference ================= */
.ab-og{display:grid;grid-template-columns:minmax(0,40fr) minmax(0,60fr);align-items:stretch;background:#E9F1FB;margin:0}
.ab-og-photo{position:relative;overflow:hidden;background:#0D2444;min-height:560px}
.ab-og-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(.86) contrast(1.08) brightness(.92)}
.ab-og-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(150deg,rgba(16,119,213,.3),rgba(13,36,68,.44));mix-blend-mode:multiply}
.ab-og-year{position:absolute;left:34px;bottom:6px;z-index:2;font-family:var(--display);font-weight:800;font-size:132px;line-height:1;letter-spacing:-.04em;color:rgba(255,255,255,.34)}
.ab-og-edge{position:absolute;top:0;right:0;bottom:0;width:8px;z-index:3;background:linear-gradient(180deg,#1077D5 0%,#1B7FEA 46%,#48E418 100%)}
.ab-og-body{padding:74px 0 74px 64px;max-width:760px}
.ab-og .eyebrow-rule{color:#48E418!important;display:flex!important}
.ab-og .eyebrow-rule span:empty{background:#48E418}
.ab-og-h{font-family:var(--display);font-weight:800;font-size:52px;line-height:1.05;letter-spacing:-.036em;color:var(--navy);margin:18px 0 28px}
.ab-og-p{font-size:16px;line-height:1.78;color:var(--slate-dk);margin:0 0 20px;max-width:640px;text-wrap:pretty}
.ab-og-p strong{font-weight:750;color:var(--navy)}
.ab-og-rule{display:block;height:2px;max-width:640px;margin-top:8px;background:linear-gradient(90deg,#1077D5 0%,#48E418 100%)}

.ab-ogband{background:radial-gradient(120% 160% at 6% 0%,#153A66 0%,#0D2444 52%,#08152B 100%);padding:38px 0 42px}
.ab-ogband-1{font-family:var(--sans);font-weight:750;font-size:22px;line-height:1.42;color:#fff;margin:0}
.ab-ogband-2{font-family:var(--sans);font-weight:750;font-size:22px;line-height:1.42;color:#1B7FEA;margin:10px 0 0}

@media(max-width:1080px){
  .ab-og{grid-template-columns:1fr}
  .ab-og-photo{min-height:280px}
  .ab-og-year{font-size:76px;left:20px}
  .ab-og-edge{top:auto;left:0;right:0;bottom:0;width:auto;height:5px;background:linear-gradient(90deg,#1077D5,#48E418)}
  .ab-og-body{padding:40px 22px 44px;max-width:none}
  .ab-og-h{font-size:30px;margin-bottom:20px}
  .ab-og-p{font-size:15.5px}
  .ab-ogband{padding:28px 0 30px}
  .ab-ogband-1,.ab-ogband-2{font-size:17px}
}


/* ================= ABOUT: memory chapter — rebuilt to client reference ================= */
.ab-mem{background:#E9F1FB;padding:0}
.ab-mem-in{display:grid;grid-template-columns:minmax(0,54fr) minmax(0,46fr);gap:64px;align-items:start;padding:72px 0 62px}
.ab-mem .eyebrow-rule{color:#48E418!important;display:flex!important}
.ab-mem .eyebrow-rule span:empty{background:#48E418}
.ab-mem-h{font-family:var(--display);font-weight:800;font-size:53px;line-height:1.05;letter-spacing:-.036em;color:var(--navy);margin:18px 0 0}
.ab-mem-r p{font-size:16px;line-height:1.68;color:var(--slate-dk);margin:0 0 20px;text-wrap:pretty}
.ab-mem-r p:last-child{margin-bottom:0}
.ab-mem-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:0;position:relative}
.ab-mem-ph{position:relative;overflow:hidden}
.ab-mem-ph img{display:block;width:100%;height:370px;object-fit:cover}
.ab-mem-ph+.ab-mem-ph::before{content:"";position:absolute;top:0;left:0;bottom:0;width:70px;z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(233,241,251,.85),rgba(72,228,24,.16) 42%,rgba(16,119,213,.1) 68%,transparent)}
.ab-mem-band{background:radial-gradient(120% 170% at 6% 0%,#153A66 0%,#0D2444 52%,#08152B 100%);padding:38px 0 42px;position:relative}
.ab-mem-band::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,#1077D5 0%,#1B7FEA 50%,#48E418 100%)}
.ab-mem-b1{font-family:var(--sans);font-weight:750;font-size:23px;line-height:1.4;color:#fff;margin:0}
.ab-mem-b2{font-family:var(--sans);font-weight:750;font-size:23px;line-height:1.4;color:#1B7FEA;margin:8px 0 0}

@media(max-width:1080px){
  .ab-mem-in{grid-template-columns:1fr;gap:24px;padding:46px 0 36px}
  .ab-mem-h{font-size:30px}
  .ab-mem-r p{font-size:15.5px;margin-bottom:16px}
  .ab-mem-strip{grid-template-columns:1fr}
  .ab-mem-ph img{height:230px}
  .ab-mem-ph+.ab-mem-ph::before{top:0;left:0;right:0;bottom:auto;width:auto;height:50px;background:linear-gradient(180deg,rgba(233,241,251,.8),transparent)}
  .ab-mem-band{padding:28px 0 30px}
  .ab-mem-b1,.ab-mem-b2{font-size:18px}
}


/* ================= ABOUT HERO — rebuilt to client reference ================= */
.ab-hero{position:relative;overflow:hidden;background:radial-gradient(120% 120% at 6% 40%,#153A66 0%,#0D2444 46%,#08152B 100%);padding:150px 0 128px}
.ab-hero-media{position:absolute;top:0;right:0;bottom:0;width:64%;z-index:0}
.ab-hero-media img{width:100%;height:100%;object-fit:cover;object-position:50% 45%;display:block}
.ab-hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0D2444 0%,rgba(13,36,68,.97) 18%,rgba(13,36,68,.72) 34%,rgba(13,36,68,.3) 52%,rgba(13,36,68,.06) 72%,rgba(13,36,68,0) 100%)}
.ab-hero-in{position:relative;z-index:2;max-width:640px}
.ab-hero .eyebrow-rule{color:#48E418!important;display:flex!important}
.ab-hero .eyebrow-rule span:empty{background:#48E418}
.ab-hero-h{font-family:var(--display);font-weight:800;font-size:60px;line-height:1.06;letter-spacing:-.038em;color:#fff;margin:22px 0 0}
.ab-hero-h .c-blue{color:#1B7FEA!important}
.ab-hero-p{font-size:17px;line-height:1.6;color:rgba(214,228,246,.9);margin:26px 0 0}
.ab-hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.ab-hero-rule{position:absolute;left:0;right:0;bottom:0;height:5px;z-index:3;background:linear-gradient(90deg,#1077D5 0%,#1B7FEA 46%,#48E418 100%)}
@media(max-width:1080px){
  .ab-hero{padding:104px 0 64px}
  .ab-hero-media{width:100%;opacity:.3}
  .ab-hero-media::after{background:linear-gradient(180deg,rgba(13,36,68,.84),rgba(8,21,43,.95))}
  .ab-hero-in{max-width:none}
  .ab-hero-h{font-size:34px}
  .ab-hero-h br{display:none}
  .ab-hero-p br{display:none}
}


/* ================= ABOUT PAGE — unified section system =================
   Fixes: (1) .ab-ch2 belief chapter still used the old narrow 720px centred measure
   while every other section had moved to the full 1240px wrap — that mismatch was the
   'scattered layers' the client saw. (2) .ab-ogband dark bar sat directly against the
   dark .ab-ppl band, and .ab-bios3 + .ab-gv were both the same pale blue, so the page
   ran dark-dark then light-light. (3) Everything is left-aligned on one shared grid. */

/* --- shared rhythm --- */
.ab-hero,.ab-mem,.ab-ch2,.ab-og,.ab-ppl,.ab-bios3,.ab-gv,.ab-fin{position:relative}
.ab-essay,.ab-essay2{background:transparent!important;padding:0!important}

/* --- belief chapter rebuilt onto the system --- */
.ab-ch2{background:#fff!important;padding:78px 0 84px!important;overflow:hidden}
.ab-ch2-bg{display:none!important}
.ab-ch2-photo{position:absolute!important;top:0;right:0;bottom:0;width:38%!important;z-index:0;margin:0!important}
.ab-ch2-photo img{width:100%;height:100%;object-fit:cover;display:block}
.ab-ch2-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.92) 22%,rgba(255,255,255,.45) 58%,rgba(255,255,255,.1) 88%,rgba(255,255,255,0) 100%)}
.ab-ch2-in{position:relative;z-index:2;max-width:1240px!important;margin:0 auto!important;text-align:left!important}
.ab-ch2 .eyebrow{display:block!important;color:#48E418!important;font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.2em;text-transform:uppercase}
.ab-ch2-h{font-family:var(--display)!important;font-weight:800!important;font-size:50px!important;line-height:1.06!important;letter-spacing:-.036em!important;color:var(--navy)!important;margin:18px 0 34px!important;max-width:880px;text-align:left!important}
.ab-ch2-h .c-blue{color:#1077D5!important}
.ab-ch2-cols{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:44px!important;max-width:900px;text-align:left!important}
.ab-ch2-cols p{font-size:16px!important;line-height:1.76!important;color:var(--slate-dk)!important;margin:0!important;text-wrap:pretty}
.ab-ch2-cols p:nth-child(3){grid-column:1 / -1;max-width:none}
.ab-ch2-cols .c-blue{color:#1077D5!important;font-weight:650}

/* --- rhythm fix 1: origin statement bar becomes an INSET card inside the light
   origin section, so it no longer forms one dark mass with .ab-ppl below it --- */
.ab-ogband{background:transparent!important;padding:0 0 72px!important}
.ab-ogband .wrap{background:radial-gradient(120% 200% at 6% 0%,#153A66 0%,#0D2444 52%,#08152B 100%);border-radius:4px;padding:34px 40px 36px;position:relative;overflow:hidden}
.ab-ogband .wrap::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#1077D5,#48E418)}
.ab-og{padding-bottom:0!important}

/* --- rhythm fix 2: bios go WHITE so they read separately from the pale-blue
   Giving Back section that follows --- */
.ab-bios3{background:#fff!important}
.ab-gv{background:#E9F1FB!important}

/* --- alignment: one shared measure, nothing centred --- */
.ab-mem-in,.ab-ppl-in,.ab-gv .wrap,.ab-bios3 .wrap,.ab-fin-in,.ab-ogband .wrap,.ab-mem-band .wrap{max-width:1240px;margin-left:auto;margin-right:auto;text-align:left}
.ab-og-body{max-width:none!important;padding:74px 64px 78px 64px!important}
.ab-mem-band .wrap,.ab-ogband .wrap{text-align:left}

@media(max-width:1080px){
  .ab-ch2{padding:52px 0 56px!important}
  .ab-ch2-photo{width:100%!important;opacity:.16}
  .ab-ch2-h{font-size:29px!important;margin-bottom:22px!important}
  .ab-ch2-cols{grid-template-columns:1fr!important;gap:18px!important}
  .ab-ogband{padding-bottom:44px!important}
  .ab-ogband .wrap{padding:24px 22px 26px}
  .ab-og-body{padding:40px 22px 44px!important}
}


/* About hero cleanup: (a) .ab-hero-in carried max-width:640px on the same element as
   .wrap, so the 640px box got centred and the copy started ~700px in instead of at the
   page's left edge — the wrap now keeps its 1240px and an inner div holds the measure.
   (b) headline dropped to 60px was still wrapping to 4 lines. */
.ab-hero-in{max-width:1240px!important;margin:0 auto!important;padding-left:24px;padding-right:24px}
.ab-hero-in>*{max-width:620px}
.ab-hero-h{font-size:54px!important;max-width:640px}
.ab-hero-p{max-width:560px}
/* dark hero → white nav + light logo (body.ctr supplies this; make sure nothing overrides) */
body.abpg .nav:not(.scrolled){background:transparent!important;border-bottom-color:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
body.abpg .nav:not(.scrolled) .nav-link,body.abpg .nav:not(.scrolled) .nav-link-join{color:rgba(255,255,255,.92)!important}
body.abpg .nav:not(.scrolled) .nav-link:hover,body.abpg .nav:not(.scrolled) .nav-link-wrap:hover .nav-link{color:#fff!important}
body.abpg .nav:not(.scrolled) .logo img.logo-mark-dark{display:none!important}
body.abpg .nav:not(.scrolled) .logo img.logo-mark-light{display:block!important}
@media(max-width:1080px){
  .ab-hero-in{padding-left:18px;padding-right:18px}
  .ab-hero-in>*{max-width:none}
  .ab-hero-h{font-size:32px!important;max-width:none}
}


/* Memory chapter: the 54/46 split left a large void between the headline and the copy
   because the headline only fills ~40% of its column. Tighten to 44/56 with a smaller
   gap so the two columns read as one block, and align their top edges. */
.ab-mem-in{grid-template-columns:minmax(0,44fr) minmax(0,56fr)!important;gap:48px!important;align-items:start!important;padding:76px 0 64px!important}
.ab-mem-l{max-width:520px}
.ab-mem-h{font-size:48px!important;margin-top:16px!important}
.ab-mem-r{padding-top:6px;max-width:620px}
.ab-mem-r p{margin-bottom:18px!important}
@media(max-width:1080px){
  .ab-mem-in{grid-template-columns:1fr!important;gap:22px!important;padding:46px 0 36px!important}
  .ab-mem-l,.ab-mem-r{max-width:none}
  .ab-mem-r{padding-top:0}
}


/* Belief chapter spacing: the 2-col body sat ~110px below the headline while the 3rd
   paragraph (grid-column 1/-1) inherited the same 44px row gap, leaving a large void
   before it AND a wide dead zone under the section. Tighten both. */
.ab-ch2{padding:72px 0 76px!important}
.ab-ch2-h{margin:16px 0 26px!important}
.ab-ch2-cols{gap:26px 48px!important;max-width:940px!important}
.ab-ch2-cols p:nth-child(3){margin-top:6px!important;max-width:900px!important}
@media(max-width:1080px){
  .ab-ch2{padding:48px 0 52px!important}
  .ab-ch2-cols{gap:16px!important}
  .ab-ch2-cols p:nth-child(3){margin-top:0!important}
}


/* Origin statement card: making .ab-ogband transparent (todo 182) let the WHITE page
   background show instead of the origin section's pale blue, so the card floated in a
   white void with the photo cut off hard above it and a large dead gap below. Put it
   back on the pale blue field, give it real breathing room above, and tighten below so
   the light band still separates it from the dark .ab-ppl that follows. */
.ab-og{padding-bottom:0!important}
.ab-ogband{background:#E9F1FB!important;padding:44px 0 56px!important}
.ab-ogband .wrap{padding:36px 44px 38px}
.ab-ogband-1{font-size:21px!important;line-height:1.44!important}
.ab-ogband-2{font-size:21px!important;line-height:1.44!important;margin-top:10px!important}
@media(max-width:1080px){
  .ab-ogband{padding:30px 0 36px!important}
  .ab-ogband .wrap{padding:24px 22px 26px}
  .ab-ogband-1,.ab-ogband-2{font-size:17px!important}
}


/* People band: the 46/54 split left a wide void because the headline only fills ~55%
   of its column, and the right column sat with dead space beneath it. Tighten the
   split, cap both columns, and align their top edges. */
.ab-ppl{padding:72px 0 76px!important}
.ab-ppl-in{grid-template-columns:minmax(0,42fr) minmax(0,58fr)!important;gap:52px!important;align-items:start!important}
.ab-ppl-l{max-width:480px}
.ab-ppl-h{font-size:50px!important;margin-top:16px!important}
.ab-ppl-r{padding-top:6px;max-width:600px}
.ab-ppl-p{font-size:16.5px!important;line-height:1.66!important;max-width:none!important}
.ab-ppl-p2{font-size:16.5px!important;line-height:1.66!important;margin-top:18px!important;max-width:none!important}
@media(max-width:1080px){
  .ab-ppl{padding:48px 0 52px!important}
  .ab-ppl-in{grid-template-columns:1fr!important;gap:22px!important}
  .ab-ppl-l,.ab-ppl-r{max-width:none}
  .ab-ppl-r{padding-top:0}
}


/* Bio photos in full colour — remove the duotone treatment (grayscale + multiply overlay). */
.ab-b3-photo::after{display:none!important}
.ab-b3-photo img{filter:none!important}


/* Closing band: the small lead + sub sat in a cramped stack directly above a much
   larger headline, so the hierarchy read inverted and the two blocks ran together.
   Group the intro tightly, then give the headline a real break before it. */
.ab-fin-in{max-width:820px!important}
.ab-fin-lead{font-size:19px!important;line-height:1.45!important;margin-top:14px!important;max-width:520px}
.ab-fin-lead br{display:none}
.ab-fin-sub{font-size:16px!important;line-height:1.55!important;margin-top:8px!important;max-width:520px;color:rgba(206,222,242,.78)!important}
.ab-fin-sub br{display:none}
.ab-fin-h{font-size:46px!important;margin-top:44px!important;max-width:780px}
.ab-fin-actions{margin-top:30px!important}
@media(max-width:1080px){
  .ab-fin-in{max-width:none!important}
  .ab-fin-lead,.ab-fin-sub{max-width:none}
  .ab-fin-h{font-size:29px!important;margin-top:30px!important;max-width:none}
}


/* br{display:none} collapsed a line break WITHOUT substituting whitespace, so adjacent
   words concatenated ("HaveSpent", "aplace", "toward.And"). A literal space now precedes
   each <br/> in the JSX — it collapses when the br renders and supplies the gap when the
   br is hidden — so these hide rules are safe. The .ab-fin ones were also OUTSIDE any
   media query, breaking the closing CTA at every width. */
.ab-fin-lead br,.ab-fin-sub br{display:inline!important}
@media(max-width:1080px){.ab-fin-lead br,.ab-fin-sub br{display:none!important}}


/* ================= ABOUT — ONE SHARED GUTTER =================
   Five different left edges had accumulated (0 / 18 / 22 / 44px vs the site's 36px .wrap
   gutter) because each new section set its own side padding, several via the
   'padding: <v> 0 <v>' shorthand which ZEROES left/right and overrides .wrap. Worst was
   .ab-mem-in at 0px — text ran flush to the viewport edge. Fix: sections set VERTICAL
   padding only; every .wrap keeps the site gutter. */
.ab-hero-in,.ab-mem-in,.ab-ch2-in,.ab-ppl-in,.ab-fin-in,.ab-ogband .wrap,
.ab-gv .wrap,.ab-bios3 .wrap,.ab-mem-band .wrap{
  max-width:1240px!important;margin-left:auto!important;margin-right:auto!important;
  padding-left:36px!important;padding-right:36px!important;text-align:left!important}
/* vertical rhythm re-declared without the shorthand that was killing the gutter */
.ab-mem-in{padding-top:76px!important;padding-bottom:64px!important}
.ab-ppl-in{padding-top:0!important;padding-bottom:0!important}
.ab-ogband .wrap{padding-top:36px!important;padding-bottom:38px!important}
/* the origin split is full-bleed by design, but its copy column must land on the same
   grid line as every other section: 36px gutter + the space the 40% photo occupies */
.ab-og-body{max-width:none!important;padding:74px 36px 78px 64px!important}
@media(max-width:1080px){
  .ab-hero-in,.ab-mem-in,.ab-ch2-in,.ab-ppl-in,.ab-fin-in,.ab-ogband .wrap,
  .ab-gv .wrap,.ab-bios3 .wrap,.ab-mem-band .wrap{padding-left:22px!important;padding-right:22px!important}
  .ab-mem-in{padding-top:46px!important;padding-bottom:36px!important}
  .ab-og-body{padding:40px 22px 44px!important}
}


/* ================= FINAL GUTTER RECONCILIATION =================
   Two causes, one edit.
   (1) .ab-ogband .wrap IS the dark card — it carries the gradient + radius. Padding on it
       lands INSIDE the card, so it could never produce the outer inset, and under 1240px
       the max-width stopped constraining and the card went full-bleed. The gutter now
       lives on the SECTION; the card sits inside it.
   (2) The site has ONE gutter: .wrap = 36px. About was overridden to 22px under 1080px and
       the footer sits at 44px, so nav / content / footer disagreed. All三 now use 36px. */
.ab-ogband{padding:44px 36px 56px!important}
.ab-ogband .wrap{max-width:1168px!important;margin:0 auto!important;padding:36px 44px 38px!important}

/* one gutter everywhere, at every width */
.ab-hero-in,.ab-mem-in,.ab-ch2-in,.ab-ppl-in,.ab-fin-in,
.ab-gv .wrap,.ab-bios3 .wrap,.ab-mem-band .wrap{
  max-width:1240px!important;margin-left:auto!important;margin-right:auto!important;
  padding-left:36px!important;padding-right:36px!important}
.ab-og-body{padding-left:64px!important;padding-right:36px!important}
footer .wrap{padding-left:36px!important;padding-right:36px!important}

@media(max-width:1080px){
  .ab-ogband{padding:30px 20px 36px!important}
  .ab-ogband .wrap{padding:24px 22px 26px!important}
  .ab-hero-in,.ab-mem-in,.ab-ch2-in,.ab-ppl-in,.ab-fin-in,
  .ab-gv .wrap,.ab-bios3 .wrap,.ab-mem-band .wrap,footer .wrap{
    padding-left:20px!important;padding-right:20px!important}
  .ab-og-body{padding-left:20px!important;padding-right:20px!important}
}


/* ONE GUTTER, ALL WIDTHS. The previous @media(max-width:1080px) block set About + footer
   to 20px but not the nav, and .wrap holds 36px at every width — so site chrome and page
   content disagreed below 1080px (logo at 36, every eyebrow at 20). Removing the second
   value entirely: nav, all About sections, and the footer now share .wrap's 36px, which
   also keeps them aligned above 1240px where the auto margins take over. */
.wrap,.wrap.nav-inner,.nav .wrap,footer .wrap,
.ab-hero-in,.ab-mem-in,.ab-ch2-in,.ab-ppl-in,.ab-fin-in,
.ab-gv .wrap,.ab-bios3 .wrap,.ab-mem-band .wrap,.ab-ogband .wrap{
  padding-left:36px!important;padding-right:36px!important}
.ab-ogband{padding-left:0!important;padding-right:0!important}
.ab-ogband .wrap{max-width:1240px!important}
.ab-og-body{padding-left:36px!important;padding-right:36px!important}
/* the origin copy capped at 640px was a third text width once the grid collapsed */
@media(max-width:1080px){
  .ab-og-p,.ab-og-rule{max-width:none!important}
}


/* ab-ogband: the .wrap IS the card (gradient + radius), so gutter padding on it lands
   INSIDE the card and cannot inset it. Gutter goes on the SECTION; the card sits within.
   This must be the LAST .ab-ogband rule in the file. */
.ab-ogband{padding:44px 36px 56px!important}
.ab-ogband .wrap{max-width:1168px!important;margin:0 auto!important;padding:36px 44px 38px!important}
@media(max-width:1080px){
  .ab-ogband{padding:30px 36px 36px!important}
  .ab-ogband .wrap{padding:24px 22px 26px!important}
}


/* ================= PROJECTS PORTFOLIO — rebuilt to client reference ================= */
/* 1. dark hero, 3 vertical photo strips right */
.pw-hero{position:relative;overflow:hidden;background:radial-gradient(120% 120% at 6% 40%,#153A66 0%,#0D2444 46%,#08152B 100%);padding:104px 0 92px}
.pw-hero-strip{position:absolute;top:60px;right:0;bottom:0;width:56%;z-index:0;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.pw-hero-strip span{display:block;overflow:hidden}
.pw-hero-strip img{width:100%;height:100%;object-fit:cover;display:block}
.pw-hero-strip::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0D2444 0%,rgba(13,36,68,.88) 12%,rgba(13,36,68,.24) 34%,rgba(13,36,68,0) 58%)}
.pw-hero-in{position:relative;z-index:2}
.pw-hero .eyebrow-rule{color:#48E418!important;display:flex!important}
.pw-hero .eyebrow-rule span:empty{background:#48E418}
.pw-hero-h{font-family:var(--display);font-weight:800;font-size:52px;line-height:1.06;letter-spacing:-.036em;color:#fff;margin:18px 0 0}
.pw-hero-h .c-blue{color:#1B7FEA!important}
.pw-hero-p{font-size:16px;line-height:1.62;color:rgba(214,228,246,.9);margin:22px 0 0;max-width:400px}
.pw-hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.pw-hero-rule{position:absolute;left:0;right:0;bottom:0;height:4px;z-index:3;background:linear-gradient(90deg,#1077D5,#48E418)}

/* 2. featured project */
.pw-feat{background:#fff;padding:64px 0 72px}
.pw-feat .eyebrow-rule{color:var(--green-deep)!important;display:flex!important}
.pw-feat-h{font-family:var(--display);font-weight:800;font-size:46px;line-height:1.04;letter-spacing:-.036em;color:var(--navy);margin:14px 0 0}
.pw-feat-h .c-blue{color:#1077D5!important}
.pw-feat-loc{margin:12px 0 0;font-family:var(--sans);font-weight:700;font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--navy)}
.pw-feat-in{display:grid;grid-template-columns:minmax(0,58fr) minmax(0,42fr);gap:52px;align-items:start;margin-top:30px}
.pw-feat-media{position:relative;padding-bottom:56px}
.pw-feat-big img{display:block;width:100%;height:400px;object-fit:cover}
.pw-feat-inset{position:absolute;left:56px;bottom:0;width:56%;border:5px solid #fff;box-shadow:0 8px 26px -14px rgba(23,52,88,.5)}
.pw-feat-inset img{display:block;width:100%;height:170px;object-fit:cover}
.pw-feat-d{font-size:15.5px;line-height:1.72;color:var(--slate-dk);margin:0 0 26px}
.pw-spec{padding:16px 0;border-top:1px solid var(--line)}
.pw-spec-k{font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:#1077D5;margin:0 0 9px}
.pw-spec-k.pw-k-green{color:var(--green-deep)}
.pw-spec p{font-size:14.5px;line-height:1.66;color:var(--slate-dk);margin:0}
.pw-feat-cta{display:inline-flex;align-items:center;gap:9px;margin-top:24px;padding:15px 24px;background:#fff;border:1.5px solid #48E418;border-radius:3px;font-family:var(--sans);font-weight:700;font-size:14.5px;color:var(--navy);cursor:pointer;transition:background .15s}
.pw-feat-cta:hover{background:#F3FDEC}

/* 3. quote band */
.pw-quote{background:radial-gradient(120% 180% at 6% 0%,#153A66 0%,#0D2444 52%,#08152B 100%);padding:46px 0 50px}
.pw-quote-in{display:grid;grid-template-columns:minmax(0,62fr) minmax(0,38fr);gap:48px;align-items:start}
.pw-quote-q{font-family:var(--display);font-weight:700;font-size:25px;line-height:1.44;letter-spacing:-.022em;color:#fff;margin:0;text-wrap:pretty}
.pw-quote-n{font-family:var(--sans);font-weight:700;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:#1B7FEA}
.pw-quote-r{font-size:14px;line-height:1.5;color:rgba(206,222,242,.86);margin-top:5px}

/* 4. archive mosaic */
.pw-arch{background:radial-gradient(130% 90% at 10% 0%,#12315A 0%,#0C2142 44%,#08152B 100%);padding:60px 0 76px}
.pw-arch .eyebrow-rule{color:#48E418!important;display:flex!important}
.pw-arch .eyebrow-rule span:empty{background:#48E418}
.pw-arch-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:30px}
.pw-arch-h{font-family:var(--display);font-weight:800;font-size:42px;line-height:1.06;letter-spacing:-.034em;color:#fff;margin:14px 0 0}
.pw-arch-h .c-blue{color:#1B7FEA!important}
.pw-arch-tags{font-family:var(--sans);font-weight:600;font-size:13.5px;color:rgba(206,222,242,.78);text-align:right;padding-bottom:6px}
.pw-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.pw-tile{display:flex;flex-direction:column;text-align:left;background:rgba(255,255,255,.045);border:1px solid rgba(140,175,230,.16);border-radius:3px;overflow:hidden;padding:0;cursor:pointer;transition:border-color .18s,transform .18s}
.pw-tile:hover{border-color:rgba(72,228,24,.5);transform:translateY(-2px)}
.pw-lg{grid-column:span 3}
.pw-wide{grid-column:span 3}
.pw-sm{grid-column:span 3}
@media(min-width:1081px){
  .pw-lg{grid-column:span 2;grid-row:span 2}
  .pw-wide{grid-column:span 4}
  .pw-sm{grid-column:span 2}
}
.pw-img{display:block;overflow:hidden}
.pw-img img{display:block;width:100%;height:190px;object-fit:cover}
.pw-lg .pw-img img{height:300px}
.pw-b{display:block;padding:18px 20px 20px}
.pw-t{display:block;font-family:var(--display);font-weight:800;font-size:20px;line-height:1.2;letter-spacing:-.022em;color:#fff}
.pw-loc{display:block;margin-top:7px;font-family:var(--sans);font-weight:700;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#48E418}
.pw-d{display:block;margin-top:11px;font-size:13.5px;line-height:1.6;color:rgba(206,222,242,.82)}
.pw-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:13px;border-top:1px solid rgba(140,175,230,.16)}
.pw-scope{font-family:var(--sans);font-weight:600;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:rgba(180,200,226,.78)}
.pw-view{display:inline-flex;align-items:center;gap:7px;font-family:var(--sans);font-weight:700;font-size:13px;color:#1B7FEA}
.pw-tile:hover .pw-view{color:#48E418}

/* 5. closing CTA */
.pw-cta{background:#F7FAFD;padding:52px 0 56px;border-top:1px solid var(--line)}
.pw-cta-in{display:grid;grid-template-columns:minmax(0,56fr) minmax(0,44fr);gap:56px;align-items:center}
.pw-cta .eyebrow-rule{color:var(--green-deep)!important;display:flex!important}
.pw-cta-p{font-size:16px;line-height:1.68;color:var(--slate-dk);margin:14px 0 0;max-width:520px}
.pw-cta-r{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.pw-cta-rule{display:block;width:100%;max-width:260px;height:2px;background:linear-gradient(90deg,#1077D5,#48E418)}
.pw-cta-tel{display:inline-flex;align-items:center;gap:9px;font-family:var(--sans);font-weight:750;font-size:17px;color:var(--navy);text-decoration:none}
.pw-cta-tel:hover{color:#1077D5}

@media(max-width:1080px){
  .pw-hero{padding:92px 0 56px}
  .pw-hero-strip{top:0;width:100%;opacity:.22}
  .pw-hero-strip::after{background:linear-gradient(180deg,rgba(13,36,68,.86),rgba(8,21,43,.95))}
  .pw-hero-h{font-size:34px}
  .pw-hero-p{max-width:none}
  .pw-feat{padding:48px 0 52px}
  .pw-feat-h{font-size:30px}
  .pw-feat-in{grid-template-columns:1fr;gap:28px}
  .pw-feat-media{padding-bottom:0}
  .pw-feat-big img{height:250px}
  .pw-feat-inset{position:static;width:auto;border:0;box-shadow:none;margin-top:10px}
  .pw-feat-inset img{height:160px}
  .pw-quote-in{grid-template-columns:1fr;gap:20px}
  .pw-quote-q{font-size:19px}
  .pw-arch{padding:46px 0 52px}
  .pw-arch-head{flex-direction:column;align-items:flex-start;gap:14px}
  .pw-arch-h{font-size:29px}
  .pw-arch-tags{text-align:left}
  .pw-grid{grid-template-columns:1fr;gap:14px}
  .pw-lg,.pw-wide,.pw-sm{grid-column:span 1}
  .pw-img img,.pw-lg .pw-img img{height:200px}
  .pw-cta-in{grid-template-columns:1fr;gap:26px}
}

/* ONE GREEN: every token and literal now resolves to the logo's #48E418. */
:root{--green:#48E418;--green-bright:#48E418;--green-deep:#48E418;--green-accent:#48E418}


/* ================= WHY IGS / THE IGS STANDARD — rebuilt to client reference ================= */
.wis-hero{position:relative;overflow:hidden;background:radial-gradient(120% 120% at 6% 40%,#153A66 0%,#0D2444 46%,#08152B 100%);padding:104px 0 0}
.wis-hero-media{position:absolute;top:0;right:0;bottom:0;width:58%;z-index:0}
.wis-hero-media img{width:100%;height:100%;object-fit:cover;display:block}
.wis-hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0D2444 0%,rgba(13,36,68,.96) 20%,rgba(13,36,68,.6) 42%,rgba(13,36,68,.14) 72%,rgba(13,36,68,0) 100%)}
.wis-hero-in{position:relative;z-index:2;padding-bottom:56px}
.wis-hero .eyebrow-rule,.wis-cert .eyebrow-rule,.wis-hand .eyebrow-rule,.wis-back .eyebrow-rule,.wis-proof .eyebrow-rule{display:flex!important;color:#48E418!important}
.wis-hero .eyebrow-rule span:empty,.wis-hand .eyebrow-rule span:empty,.wis-back .eyebrow-rule span:empty,.wis-cert .eyebrow-rule span:empty,.wis-proof .eyebrow-rule span:empty{background:#48E418}
.wis-hero-h{font-family:var(--display);font-weight:800;font-size:46px;line-height:1.08;letter-spacing:-.034em;color:#fff;margin:16px 0 0;max-width:560px}
.wis-hero-h .c-blue{color:#1B7FEA!important}
.wis-hero-p{font-size:15.5px;line-height:1.66;color:rgba(214,228,246,.9);margin:20px 0 0;max-width:400px}
.wis-hero-actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:26px}
.wis-hero-bar,.wis-vet-bar{position:relative;z-index:2;border-top:1px solid rgba(140,175,230,.2);background:rgba(6,16,32,.42)}
.wis-bar-in{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;padding:15px 36px}
.wis-bar-i{display:flex;align-items:center;gap:9px;font-family:var(--sans);font-weight:700;font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:rgba(226,238,252,.94);padding-left:26px;border-left:1px solid rgba(140,175,230,.2)}
.wis-bar-i:first-child{border-left:0;padding-left:0}
.wis-bar-i svg{color:#48E418;flex-shrink:0}

/* certification */
.wis-cert{background:#F7FAFD;padding:58px 0 0}
.wis-cert-in{display:grid;grid-template-columns:minmax(0,32fr) minmax(0,68fr);gap:52px;align-items:start}
.wis-cert-l{position:relative;text-align:center;padding-top:8px}
.wis-cpsi{display:block;font-family:var(--display);font-weight:800;font-size:56px;letter-spacing:.06em;color:rgba(23,52,88,.13)}
.wis-shield{display:grid;place-items:center;width:52px;height:52px;margin:14px auto 0;border-radius:50%;border:1.5px solid rgba(23,52,88,.22);color:#1077D5;background:#fff}
.wis-steps{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:14px;position:relative}
.wis-steps li{font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--slate);position:relative}
.wis-steps li::after{content:"";display:block;width:1px;height:14px;background:rgba(23,52,88,.2);margin:8px auto 0}
.wis-steps li:last-child::after{display:none}
.wis-cert-r{border-left:2px solid #48E418;padding-left:36px}
.wis-cert-h{font-family:var(--display);font-weight:800;font-size:40px;line-height:1.08;letter-spacing:-.034em;color:var(--navy);margin:14px 0 18px}
.wis-cert-h .c-blue{color:#1077D5!important}
.wis-cert-r p{font-size:15px;line-height:1.74;color:var(--slate-dk);margin:0;max-width:660px}
.wis-cert-band{margin:44px 0 0;background:radial-gradient(120% 200% at 4% 0%,#153A66,#0D2444 60%,#08152B);color:#fff;font-family:var(--display);font-weight:700;font-size:21px;line-height:1.5;letter-spacing:-.018em;padding:22px 34px;position:relative}
.wis-cert-band::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#48E418}

/* owner involvement */
.wis-owner{position:relative;overflow:hidden;background:radial-gradient(130% 100% at 8% 0%,#12315A 0%,#0C2142 46%,#08152B 100%);padding:56px 0 52px;margin-top:44px}
.wis-owner-media{position:absolute;top:0;right:0;width:46%;height:56%;z-index:0}
.wis-owner-media img{width:100%;height:100%;object-fit:cover;display:block}
.wis-owner-media::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,#0C2142 0%,rgba(12,33,66,.92) 26%,rgba(12,33,66,.42) 62%,rgba(12,33,66,.1) 100%)}
.wis-owner-in{position:relative;z-index:2}
.wis-owner-h{font-family:var(--display);font-weight:800;font-size:38px;line-height:1.1;letter-spacing:-.032em;color:#fff;margin:0 0 40px;max-width:440px}
.wis-owner-h .c-blue{color:#1B7FEA!important}
.wis-track{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px;position:relative}
.wis-track::before{content:"";position:absolute;top:22px;left:8%;right:8%;height:1px;background:linear-gradient(90deg,#1077D5,#48E418)}
.wis-stage{position:relative;text-align:center}
.wis-num{display:grid;place-items:center;width:46px;height:46px;margin:0 auto;border-radius:50%;border:1.5px solid #1B7FEA;background:#0C2142;font-family:var(--display);font-weight:800;font-size:15px;color:#fff;position:relative;z-index:2}
.wis-stage:last-child .wis-num{border-color:#48E418}
.wis-stage h3{font-family:var(--display);font-weight:800;font-size:19px;letter-spacing:-.02em;color:#fff;margin:16px 0 0}
.wis-stage p{font-size:13.5px;line-height:1.6;color:rgba(206,222,242,.82);margin:9px 0 0}
.wis-owner-foot{text-align:center;margin:38px 0 0;font-family:var(--sans);font-weight:650;font-size:15.5px;color:rgba(226,238,252,.94)}
.wis-owner-foot .c-green{color:#48E418!important}

/* five reasons */
.wis-reasons{background:#F7FAFD;padding:60px 0 66px}
.wis-reasons-in{display:grid;grid-template-columns:minmax(0,34fr) minmax(0,66fr);gap:52px;align-items:start}
.wis-reasons-h{font-family:var(--display);font-weight:800;font-size:38px;line-height:1.1;letter-spacing:-.032em;color:var(--navy);margin:0}
.wis-reasons-h .c-blue{color:#1077D5!important}
.wis-reasons-rule{display:block;width:64px;height:3px;background:#48E418;margin-top:20px}
.wis-rlist{list-style:none;margin:0;padding:0}
.wis-rlist li{display:grid;grid-template-columns:56px 1fr;gap:18px;align-items:start;padding:16px 0;border-bottom:1px solid var(--line)}
.wis-rlist li:first-child{padding-top:0}
.wis-rlist li:last-child{border-bottom:0}
.wis-rn{font-family:var(--display);font-weight:800;font-size:26px;letter-spacing:-.03em;color:rgba(16,119,213,.34)}
.wis-rb{font-size:14.5px;line-height:1.68;color:var(--slate-dk)}
.wis-rb b{color:var(--navy);font-weight:750}

/* vetted */
.wis-vet{position:relative;background:radial-gradient(120% 120% at 4% 0%,#153A66 0%,#0D2444 48%,#08152B 100%);padding:58px 0 0}
.wis-vet-in{display:grid;grid-template-columns:minmax(0,42fr) minmax(0,58fr);gap:52px;align-items:start;padding-bottom:48px}
.wis-vet-l{border-left:3px solid #48E418;padding-left:26px}
.wis-vet-h{font-family:var(--display);font-weight:800;font-size:52px;line-height:1.02;letter-spacing:-.04em;color:#fff;margin:0;text-transform:uppercase}
.wis-vet-h .c-blue{color:#1B7FEA!important}
.wis-vet-tags{margin-top:18px;font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(180,200,226,.8)}
.wis-vet-r p{font-size:14.5px;line-height:1.74;color:rgba(206,222,242,.88);margin:0 0 18px}
.wis-vet-cta{margin-top:8px}

/* before we hand it over */
.wis-hand{display:grid;grid-template-columns:minmax(0,42fr) minmax(0,58fr);align-items:stretch;background:#fff}
.wis-hand-photo{overflow:hidden;min-height:420px;position:relative}
.wis-hand-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.wis-hand-b{padding:56px 36px 60px 56px;max-width:760px}
.wis-hand-h{font-family:var(--display);font-weight:800;font-size:38px;line-height:1.08;letter-spacing:-.032em;color:var(--navy);margin:14px 0 18px}
.wis-hand-h .c-blue{color:#1077D5!important}
.wis-hand-p{font-size:15px;line-height:1.74;color:var(--slate-dk);margin:0 0 28px;max-width:620px}
.wis-hand-steps{display:flex;align-items:center;gap:0;margin-bottom:26px;max-width:420px}
.wis-hs{display:flex;flex-direction:column;align-items:center;gap:8px;flex:1;position:relative}
.wis-hs::after{content:"";position:absolute;top:19px;left:60%;right:-40%;height:1px;background:linear-gradient(90deg,#1077D5,#48E418)}
.wis-hs:last-child::after{display:none}
.wis-hs-n{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1.5px solid #1077D5;background:#fff;font-family:var(--display);font-weight:800;font-size:13px;color:var(--navy);position:relative;z-index:2}
.wis-hs-l{font-family:var(--sans);font-weight:700;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate)}
.wis-hand-lift{font-family:var(--display);font-weight:800;font-size:25px;line-height:1.36;letter-spacing:-.024em;color:var(--navy);margin:0;padding-left:20px;border-left:3px solid #48E418}
.wis-hand-lift .c-green{color:#48E418!important}

/* disposition */
.wis-disp{position:relative;overflow:hidden;background:radial-gradient(130% 110% at 8% 0%,#12315A 0%,#0C2142 46%,#08152B 100%);padding:54px 0 0}
.wis-disp-media{position:absolute;top:0;right:0;width:34%;height:70%;z-index:0}
.wis-disp-media img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(.5)}
.wis-disp-media::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,#0C2142 0%,rgba(12,33,66,.9) 30%,rgba(12,33,66,.4) 70%,rgba(12,33,66,.1) 100%)}
.wis-disp-in{position:relative;z-index:2;padding-bottom:44px}
.wis-disp-h{font-family:var(--display);font-weight:800;font-size:34px;line-height:1.12;letter-spacing:-.03em;color:#fff;margin:0 0 8px}
.wis-disp-h .c-blue{color:#1B7FEA!important}
.wis-disp-h::after{content:"";display:block;width:64px;height:3px;background:#48E418;margin-top:16px}
.wis-disp-cols{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:24px;max-width:820px}
.wis-disp-cols p{font-size:13.5px;line-height:1.74;color:rgba(206,222,242,.84);margin:0}
.wis-best{position:relative;z-index:2;background:rgba(6,16,32,.46);border-top:1px solid rgba(140,175,230,.18);padding:34px 0 38px}
.wis-best-in{display:grid;grid-template-columns:minmax(0,44fr) minmax(0,56fr);gap:44px;align-items:center}
.wis-best-q{font-family:var(--display);font-weight:800;font-size:38px;line-height:1.1;letter-spacing:-.034em;color:#1B7FEA;text-transform:uppercase}
.wis-best-mark{color:#48E418;margin-right:4px}
.wis-best-p{font-size:13.5px;line-height:1.74;color:rgba(206,222,242,.84);margin:0}

/* brings people back */
.wis-back{position:relative;overflow:hidden;background:#F7FAFD;padding:56px 0 60px}
.wis-back-media{position:absolute;top:0;right:0;bottom:0;width:42%;z-index:0}
.wis-back-media img{width:100%;height:100%;object-fit:cover;display:block}
.wis-back-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#F7FAFD 0%,rgba(247,250,253,.94) 24%,rgba(247,250,253,.5) 58%,rgba(247,250,253,.05) 92%,rgba(247,250,253,0) 100%)}
.wis-back-in{position:relative;z-index:2;max-width:660px}
.wis-back .eyebrow-rule{color:var(--green-deep)!important}
.wis-back-h{font-family:var(--display);font-weight:800;font-size:36px;line-height:1.1;letter-spacing:-.032em;color:var(--navy);margin:14px 0 20px}
.wis-back-h .c-blue{color:#1077D5!important}
.wis-back-in p{font-size:14.5px;line-height:1.74;color:var(--slate-dk);margin:0 0 16px}

/* project proof — single measured column. Previously a 3-column grid whose narrow label
   track and 34fr attribution column left a large dead zone at right while the testimonial
   itself was set SMALLER (14.5px) than the copy introducing it. Rebuilt so the quote is the
   largest thing in the section and everything reads top-to-bottom: label → framing line →
   quote → attribution. All .wis-proof rules live here; nothing is appended further down. */
.wis-proof{background:radial-gradient(120% 200% at 4% 0%,#153A66,#0D2444 56%,#08152B);padding:76px 0 82px}
/* Column measure lives on the children, not the wrap — a centred 880px wrap put this
   section's left edge at 316px while every other section on the page starts at 136px. */
.wis-proof-in>*{max-width:880px}
.wis-proof-frame{margin:16px 0 0;font-size:14.5px;line-height:1.7;color:rgba(206,222,242,.72);max-width:660px;text-wrap:pretty}
.wis-proof-q{position:relative;margin:30px 0 0;padding-top:30px;border-top:1px solid rgba(140,175,220,.22);font-family:var(--display);font-weight:500;font-size:clamp(20px,2.3vw,27px);line-height:1.48;letter-spacing:-.018em;color:#fff;text-wrap:pretty}
.wis-proof-q::before{content:"“";position:absolute;top:8px;left:-2px;font-family:var(--display);font-weight:800;font-size:64px;line-height:1;color:rgba(27,127,234,.28);pointer-events:none}
.wis-proof-a{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 34px;margin-top:28px}
.wis-proof-n{font-family:var(--display);font-weight:800;font-size:18px;letter-spacing:-.02em;color:#fff}
.wis-proof-r{font-size:13px;line-height:1.55;color:rgba(206,222,242,.8);margin-top:3px}
.wis-proof-link{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font-family:var(--sans);font-weight:700;font-size:12.5px;color:#1B7FEA;text-decoration:none}
.wis-proof-link:hover{color:#48E418}

/* closing CTA */
.wis-cta{position:relative;overflow:hidden;background:#EEF4FB;padding:52px 0 56px}
.wis-cta-media{position:absolute;top:0;right:0;bottom:0;width:42%;z-index:0;clip-path:polygon(22% 0,100% 0,100% 100%,0 100%)}
.wis-cta-media img{width:100%;height:100%;object-fit:cover;display:block}
.wis-cta-media::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,#EEF4FB 0%,rgba(238,244,251,.7) 22%,rgba(16,119,213,.45) 62%,rgba(16,119,213,.6) 100%)}
.wis-cta-in{position:relative;z-index:2;max-width:620px}
.wis-cta-h{font-family:var(--display);font-weight:800;font-size:34px;line-height:1.12;letter-spacing:-.03em;color:var(--navy);margin:0}
.wis-cta-h .c-blue{color:#1077D5!important}
.wis-cta-p{font-size:15px;line-height:1.6;color:var(--slate-dk);margin:16px 0 0}
.wis-cta-actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:24px}
.wis-cta-tel{background:#fff!important}

@media(max-width:1080px){
  .wis-hero{padding:92px 0 0}
  .wis-hero-media{width:100%;opacity:.24}
  .wis-hero-media::after{background:linear-gradient(180deg,rgba(13,36,68,.86),rgba(8,21,43,.95))}
  .wis-hero-h{font-size:30px;max-width:none}
  .wis-hero-h br{display:none}
  .wis-hero-p{max-width:none}
  .wis-bar-in{grid-template-columns:1fr 1fr;gap:14px;padding:16px 20px}
  .wis-bar-i{border-left:0;padding-left:0;font-size:10.5px}
  .wis-cert-in{grid-template-columns:1fr;gap:26px}
  .wis-cert-r{border-left:0;padding-left:0}
  .wis-cert-h{font-size:27px}
  .wis-cert-band{font-size:17px;padding:18px 20px;margin-top:30px}
  .wis-owner-media{width:100%;height:100%;opacity:.2}
  .wis-owner-h{font-size:27px;max-width:none}
  .wis-track{grid-template-columns:1fr;gap:24px}
  .wis-track::before{display:none}
  .wis-stage{text-align:left;display:grid;grid-template-columns:46px 1fr;gap:14px}
  .wis-num{margin:0}
  .wis-stage h3{grid-column:2;margin:0}
  .wis-stage p{grid-column:2}
  .wis-reasons-in{grid-template-columns:1fr;gap:26px}
  .wis-reasons-h{font-size:27px}
  .wis-vet-in{grid-template-columns:1fr;gap:26px}
  .wis-vet-h{font-size:34px}
  .wis-hand{grid-template-columns:1fr}
  .wis-hand-photo{min-height:230px}
  .wis-hand-b{padding:36px 20px 40px}
  .wis-hand-h{font-size:27px}
  .wis-hand-lift{font-size:19px}
  .wis-disp-media{width:100%;height:100%;opacity:.18}
  .wis-disp-h{font-size:26px}
  .wis-disp-cols{grid-template-columns:1fr;gap:16px}
  .wis-best-in{grid-template-columns:1fr;gap:18px}
  .wis-best-q{font-size:27px}
  .wis-back-media{width:100%;opacity:.2}
  .wis-back-in{max-width:none}
  .wis-back-h{font-size:26px}
  .wis-cta-media{width:100%;clip-path:none;opacity:.3}
  .wis-cta-in{max-width:none}
  .wis-cta-h{font-size:26px}
  .wis-cta-h br{display:none}
}


/* Why IGS: .wis-back-in and .wis-cta-in carry max-width on the SAME element as .wrap,
   so .wrap's margin:auto centred the narrower box — their content started 290-310px
   right of every other section. Wrap keeps the 1240px grid; the measure moves to the
   children. */
.wis-back-in,.wis-cta-in{max-width:1240px!important;margin-left:auto!important;margin-right:auto!important}
.wis-back-in>*{max-width:660px}
.wis-cta-in>*{max-width:640px}
@media(max-width:1080px){.wis-back-in>*,.wis-cta-in>*{max-width:none}}


/* Five Reasons: the 34/66 split left ~430px of dead space under a 2-line headline while
   rows 03 and 04 wrapped to 3 lines. Narrow the copy column so rows sit closer to the
   heading, tighten row rhythm, and pull the number gutter in. */
.wis-reasons{padding:56px 0 60px!important}
.wis-reasons-in{grid-template-columns:minmax(0,30fr) minmax(0,70fr)!important;gap:44px!important;align-items:start!important}
.wis-reasons-l{max-width:360px}
.wis-reasons-h{font-size:34px!important}
.wis-reasons-rule{margin-top:16px!important}
.wis-rlist{max-width:720px}
.wis-rlist li{grid-template-columns:46px 1fr!important;gap:14px!important;padding:14px 0!important}
.wis-rn{font-size:22px!important;line-height:1.35}
.wis-rb{font-size:14px!important;line-height:1.62!important}
@media(max-width:1080px){
  .wis-reasons-l,.wis-rlist{max-width:none}
  .wis-rlist li{grid-template-columns:38px 1fr!important}
}


/* Owner Involvement: .wis-owner-media was height:56% so the photo ended in a hard
   horizontal cut across the middle of the timeline. Full height, feathered on the left
   AND bottom so it reads as part of the field rather than a pasted block. */
.wis-owner-media{height:100%!important;width:52%!important}
.wis-owner-media::after{background:linear-gradient(100deg,#0C2142 0%,rgba(12,33,66,.97) 22%,rgba(12,33,66,.72) 46%,rgba(12,33,66,.42) 72%,rgba(12,33,66,.28) 100%),linear-gradient(180deg,rgba(12,33,66,0) 40%,rgba(12,33,66,.55) 78%,rgba(12,33,66,.85) 100%)!important}

/* Vetted: text-transform:uppercase was forcing the display face into all-caps, which
   reads as a different typeface than every other headline. The copy is already
   'Vetted. Certified. Licensed.' — let it set as written. */
.wis-vet-h{text-transform:none!important;font-size:46px!important;line-height:1.06!important;letter-spacing:-.036em!important}
.wis-vet-in{grid-template-columns:minmax(0,38fr) minmax(0,62fr)!important;gap:48px!important;align-items:start!important}
.wis-vet-l{max-width:400px}
.wis-vet-r{max-width:660px}
@media(max-width:1080px){
  .wis-owner-media{width:100%!important}
  .wis-vet-h{font-size:30px!important}
  .wis-vet-l,.wis-vet-r{max-width:none}
}

/* One green everywhere — late Why IGS rules had reintroduced #2E7D18. */
.wis-hand-lift .c-green,.wis-back .eyebrow-rule,.wis-cta .eyebrow-rule,.ab-gv-places .pl-g{color:#48E418!important}

/* Disposition section: the photo was height:70% so it ended in a hard horizontal cut
   across the copy, and 'IS THAT YOUR BEST?' had text-transform:uppercase forcing the
   display face into all-caps — the same thing that made VETTED read as another font. */
.wis-disp-media{width:40%!important;height:100%!important}
.wis-disp-media::after{background:linear-gradient(100deg,#0C2142 0%,rgba(12,33,66,.97) 24%,rgba(12,33,66,.66) 52%,rgba(12,33,66,.34) 100%),linear-gradient(180deg,rgba(12,33,66,0) 46%,rgba(12,33,66,.6) 82%,rgba(12,33,66,.9) 100%)!important}
.wis-best-q{text-transform:none!important;font-size:34px!important;letter-spacing:-.03em!important}
.wis-best{padding:38px 0 42px!important}
.wis-best-in{align-items:start!important}
.wis-disp-cols{max-width:760px!important}
@media(max-width:1080px){.wis-disp-media{width:100%!important}.wis-best-q{font-size:25px!important}}


/* Owner Involvement connector: .wis-track::before ran left:8%/right:8% but the four
   circle centres sit at 12.5% and 87.5%, so the green line overshot both ends and read
   as a stray rule floating across the photo. Span circle-centre to circle-centre. */
.wis-track::before{left:12.5%!important;right:12.5%!important;opacity:.85}
@media(max-width:1080px){.wis-track::before{display:none!important}}


/* Five Reasons: heading was pinned to the top of a 371px row, leaving a long void beneath
   it. Centre it against the list. */
.wis-reasons-in{align-items:center!important}
@media(max-width:1080px){.wis-reasons-in{align-items:start!important}}
/* credential strip removed from the Vetted section per client */
.wis-vet-bar{display:none!important}
.wis-vet{padding-bottom:8px!important}


/* Vetted: heading was pinned to the top of a taller copy column. Centre it. */
.wis-vet-in{align-items:center!important}
.wis-hero-h{margin-top:0!important}
@media(max-width:1080px){.wis-vet-in{align-items:start!important}}


/* ================= BECOME AN IGS CONTRACTOR — rebuilt to client reference ================= */
.cn-hero{position:relative;overflow:hidden;background:radial-gradient(120% 120% at 6% 40%,#153A66 0%,#0D2444 46%,#08152B 100%);padding:104px 0 0}
.cn-hero-media{position:absolute;top:0;right:0;bottom:0;width:58%;z-index:0}
.cn-hero-media img{width:100%;height:100%;object-fit:cover;display:block}
.cn-hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0D2444 0%,rgba(13,36,68,.97) 22%,rgba(13,36,68,.6) 44%,rgba(13,36,68,.12) 74%,rgba(13,36,68,0) 100%)}
.cn-hero-in{position:relative;z-index:2;padding-bottom:44px;max-width:1240px}
.cn-hero-in>*{max-width:520px}
.cn-hero .eyebrow-rule,.cn-why .eyebrow-rule,.cn-work .eyebrow-rule,.cn-fit .eyebrow-rule,.cn-apply .eyebrow-rule{display:flex!important;color:#48E418!important}
.cn-hero .eyebrow-rule span:empty,.cn-why .eyebrow-rule span:empty,.cn-work .eyebrow-rule span:empty,.cn-fit .eyebrow-rule span:empty,.cn-apply .eyebrow-rule span:empty{background:#48E418}
.cn-hero-h{font-family:var(--display);font-weight:800;font-size:56px;line-height:1.04;letter-spacing:-.038em;color:#fff;margin:16px 0 0}
.cn-hero-h .c-blue{color:#1B7FEA!important}
.cn-hero-sub{font-family:var(--sans);font-weight:700;font-size:16px;line-height:1.5;color:#fff;margin:22px 0 0}
.cn-hero-p{font-size:14px;line-height:1.7;color:rgba(206,222,242,.86);margin:16px 0 0}
.cn-hero-cta{margin-top:26px}
.cn-states{position:relative;z-index:2}
.cn-states-in{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:0;padding-bottom:22px}
.cn-state{display:inline-flex;align-items:center;font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#fff}
.cn-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#48E418;margin:0 20px}
.cn-hero-rule{position:absolute;left:0;right:0;bottom:0;height:4px;z-index:3;background:linear-gradient(90deg,#1077D5 0%,#1B7FEA 46%,#48E418 100%)}

/* why the network exists */
.cn-why{background:#F2F7FC;padding:56px 0 62px}
.cn-why-in{display:grid;grid-template-columns:minmax(0,52fr) minmax(0,48fr);gap:56px;align-items:start}
.cn-why-h{font-family:var(--display);font-weight:800;font-size:34px;line-height:1.1;letter-spacing:-.032em;color:var(--navy);margin:14px 0 18px}
.cn-why-l p{font-size:15px;line-height:1.74;color:var(--slate-dk);margin:0}
.cn-why-photo{overflow:hidden}
.cn-why-photo img{display:block;width:100%;height:290px;object-fit:cover}
.cn-why-cap{margin-top:12px;padding-top:12px;border-top:2px solid #1077D5;font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#1077D5;text-align:right}

/* why work with IGS */
.cn-work{background:radial-gradient(130% 100% at 8% 0%,#12315A 0%,#0C2142 46%,#08152B 100%);padding:56px 0 60px}
.cn-work-top{display:grid;grid-template-columns:minmax(0,32fr) minmax(0,68fr);gap:48px;align-items:start}
.cn-work-h{font-family:var(--display);font-weight:800;font-size:31px;line-height:1.12;letter-spacing:-.03em;color:#fff;margin:14px 0 0}
.cn-work-r p{font-size:13.5px;line-height:1.74;color:rgba(206,222,242,.86);margin:0 0 14px}
.cn-work-r p:last-child{margin-bottom:0}
.cn-split{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:42px}
.cn-col{padding-right:44px}
.cn-col-2{padding-left:44px;border-left:1px solid rgba(140,175,230,.24)}
.cn-col-k{font-family:var(--sans);font-weight:700;font-size:11.5px;letter-spacing:.15em;text-transform:uppercase;margin:0 0 16px}
.cn-k-blue{color:#1B7FEA}
.cn-k-green{color:#48E418}
.cn-list{list-style:none;margin:0;padding:0}
.cn-list li{position:relative;padding-left:20px;font-size:14.5px;line-height:1.5;color:rgba(226,238,252,.94);margin-bottom:12px}
.cn-list li::before{content:"";position:absolute;left:0;top:7px;width:7px;height:7px}
.cn-list-blue li::before{background:#1B7FEA}
.cn-list-green li::before{background:#48E418}
.cn-model{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:40px;padding-top:26px;border-top:1px solid rgba(140,175,230,.28)}
.cn-m{padding:0 26px;border-left:1px solid rgba(140,175,230,.24)}
.cn-m:first-child{border-left:0;padding-left:0}
.cn-m-1{display:block;font-family:var(--display);font-weight:800;font-size:27px;letter-spacing:-.024em;color:#1B7FEA;text-transform:uppercase}
.cn-m-2{display:block;font-family:var(--display);font-weight:800;font-size:27px;letter-spacing:-.024em;color:#fff;text-transform:uppercase}
.cn-m-g{color:#48E418!important}
.cn-model-foot{text-align:center;margin:18px 0 0;font-family:var(--display);font-weight:700;font-size:19px;color:#fff}

/* what we look for */
.cn-fit{position:relative;overflow:hidden;background:#F2F7FC;padding:52px 0 58px}
.cn-fit-media{position:absolute;top:0;right:0;bottom:0;width:32%;z-index:0}
.cn-fit-media img{width:100%;height:100%;object-fit:cover;display:block}
.cn-fit-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#F2F7FC 0%,rgba(242,247,252,.7) 14%,rgba(242,247,252,0) 44%)}
.cn-fit-in{position:relative;z-index:2}
.cn-fit-in>*{max-width:800px}
.cn-fit-h{font-family:var(--display);font-weight:800;font-size:32px;line-height:1.12;letter-spacing:-.03em;color:var(--navy);margin:14px 0 14px}
.cn-fit-p{font-size:14.5px;line-height:1.7;color:var(--slate-dk);margin:0 0 30px}
.cn-fit-cols{display:grid;grid-template-columns:1fr 1fr;gap:44px;max-width:800px!important}
.cn-trades{list-style:none;margin:0;padding:0}
.cn-trades li{font-size:14px;line-height:1.5;color:var(--slate-dk);padding:9px 0;border-bottom:1px solid rgba(23,52,88,.14)}
.cn-fit-cols .cn-list li{color:var(--slate-dk)}

/* application */
.cn-apply{position:relative;overflow:hidden;background:radial-gradient(120% 120% at 4% 0%,#153A66 0%,#0D2444 48%,#08152B 100%);padding:48px 0 54px}
.cn-apply-media{position:absolute;inset:0;z-index:0;opacity:.16}
.cn-apply-media img{width:100%;height:100%;object-fit:cover;display:block}
.cn-apply-in{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,36fr) minmax(0,64fr);gap:48px;align-items:start}
.cn-apply-h{font-family:var(--display);font-weight:800;font-size:36px;line-height:1.08;letter-spacing:-.034em;color:#fff;margin:14px 0 18px}
.cn-apply-p{font-size:14.5px;line-height:1.7;color:rgba(214,228,246,.9);margin:0 0 20px}
.cn-apply-fine{font-size:13px;line-height:1.6;color:rgba(180,200,226,.72);margin:0}
.cn-form-card{background:#fff;border-radius:3px;padding:26px 28px 30px}
.cn-form-h{font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-.022em;color:var(--navy);margin:0 0 20px}
.cn-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.cn-form .ctf label{font-size:11px;letter-spacing:.1em;color:var(--slate)}
.cn-form .ctf input,.cn-form .ctf select,.cn-form .ctf textarea{padding:9px 11px;font-size:14.5px}
.cn-form .ctf textarea{min-height:70px}
.cn-send{margin-top:6px}

@media(max-width:1080px){
  .cn-hero{padding:92px 0 0}
  .cn-hero-media{width:100%;opacity:.24}
  .cn-hero-media::after{background:linear-gradient(180deg,rgba(13,36,68,.86),rgba(8,21,43,.95))}
  .cn-hero-h{font-size:34px}
  .cn-hero-h br{display:none}
  .cn-hero-in>*{max-width:none}
  .cn-states-in{justify-content:flex-start}
  .cn-dot{margin:0 12px}
  .cn-state{font-size:10.5px}
  .cn-why-in{grid-template-columns:1fr;gap:26px}
  .cn-why-h{font-size:26px}
  .cn-work-top{grid-template-columns:1fr;gap:22px}
  .cn-work-h{font-size:25px}
  .cn-split{grid-template-columns:1fr;gap:26px}
  .cn-col{padding-right:0}
  .cn-col-2{padding-left:0;border-left:0;border-top:1px solid rgba(140,175,230,.24);padding-top:26px}
  .cn-model{grid-template-columns:1fr;gap:18px}
  .cn-m{padding:0;border-left:0}
  .cn-m-1,.cn-m-2{font-size:22px;display:inline}
  .cn-model-foot{text-align:left}
  .cn-fit-media{width:100%;opacity:.14}
  .cn-fit-h{font-size:25px}
  .cn-fit-cols{grid-template-columns:1fr;gap:26px}
  .cn-apply-in{grid-template-columns:1fr;gap:26px}
  .cn-apply-h{font-size:27px}
  .cn-apply-h br{display:none}
  .cn-form-card{padding:22px 20px 26px}
  .cn-row{grid-template-columns:1fr;gap:0}
}


/* .cn-m-1/.cn-m-2 flip from block to inline at <=1080px with no whitespace text node
   between the sibling spans, so they concatenate ("We Sourcethe Work."). Space them
   in the same rule that makes them inline. */
@media(max-width:1080px){.cn-m-2{margin-left:.32em}}


/* Contractor 'What We Look For': fixed 800px content vs a 32% right-pinned photo overlapped
   between 1081-1400px. Percentage cap keeps the text clear of the image at every width. */
@media(min-width:1081px){
  .cn-fit-in>*{max-width:min(800px,62%)!important}
  .cn-fit-cols{max-width:min(800px,62%)!important}
}
/* Hero copy: 520px cap could reach into the photo band at wide viewports — the gradient is
   opaque there so it stays legible, but hold it off the seam. */
@media(min-width:1081px){.cn-hero-in>*{max-width:min(520px,40%)!important}}


/* Projects archive: .pw-lg carried grid-row:span 2, so the Ocean Park tile stretched to
   two rows' height while its content filled only the top — a tall empty box beside
   normal-height neighbours. Uniform 3-col grid instead; every tile sizes to the row. */
@media(min-width:1081px){
  .pw-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .pw-lg,.pw-wide,.pw-sm{grid-column:span 1!important;grid-row:auto!important}
  .pw-img img,.pw-lg .pw-img img{height:210px!important}
}
.pw-tile{height:100%}
.pw-b{display:flex!important;flex-direction:column;flex:1}
.pw-foot{margin-top:auto!important}


/* ================= TESTIMONIALS — rebuilt to client reference ================= */
.ts-hero{position:relative;overflow:hidden;background:radial-gradient(120% 120% at 6% 40%,#153A66 0%,#0D2444 46%,#08152B 100%);padding:104px 0 0}
.ts-hero-media{position:absolute;top:0;right:0;bottom:0;width:56%;z-index:0}
.ts-hero-media img{width:100%;height:100%;object-fit:cover;display:block}
.ts-hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0D2444 0%,rgba(13,36,68,.97) 20%,rgba(13,36,68,.62) 42%,rgba(13,36,68,.14) 74%,rgba(13,36,68,0) 100%)}
.ts-hero-in{position:relative;z-index:2;padding-bottom:38px}
.ts-hero-in>*{max-width:560px}
.ts-hero .eyebrow-rule,.ts-iv .eyebrow-rule,.ts-det .eyebrow-rule,.ts-mfr .eyebrow-rule,.ts-tr .eyebrow-rule{display:flex!important;color:#48E418!important}
.ts-hero .eyebrow-rule span:empty,.ts-iv .eyebrow-rule span:empty,.ts-det .eyebrow-rule span:empty,.ts-mfr .eyebrow-rule span:empty,.ts-tr .eyebrow-rule span:empty{background:#48E418}
.ts-hero-h{font-family:var(--display);font-weight:800;font-size:46px;line-height:1.08;letter-spacing:-.036em;color:#fff;margin:16px 0 0}
.ts-hero-h .c-blue{color:#1B7FEA!important}
.ts-hero-p{font-size:15.5px;line-height:1.62;color:rgba(214,228,246,.9);margin:20px 0 0;max-width:400px}
.ts-aud{position:relative;z-index:2;border-top:1px solid rgba(140,175,230,.22)}
.ts-aud-in{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;padding:16px 36px}
.ts-aud-i{display:inline-flex;align-items:center;font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#fff}
.ts-aud-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#48E418;margin:0 22px}

/* client interview */
.ts-iv{background:#EEF4FB;padding:56px 0 60px}
.ts-iv-in{display:grid;grid-template-columns:minmax(0,40fr) minmax(0,60fr);gap:52px;align-items:start}
.ts-iv-photo img{display:block;width:100%;height:330px;object-fit:cover}
.ts-iv-cap{margin-top:12px;font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#1077D5}
.ts-iv-q{font-family:var(--display);font-weight:800;font-size:31px;line-height:1.22;letter-spacing:-.028em;color:var(--navy);margin:14px 0 22px;text-wrap:pretty}
.ts-iv-r p{font-size:14.5px;line-height:1.74;color:var(--slate-dk);margin:0 0 16px;max-width:660px}
.ts-iv-a{margin-top:22px}
.ts-n{font-family:var(--sans);font-weight:750;font-size:14.5px;color:var(--navy)}
.ts-r{font-size:13.5px;line-height:1.45;color:#1077D5;margin-top:3px}
.ts-o{font-size:13.5px;line-height:1.45;color:var(--slate);margin-top:2px}
.ts-iv-rule{display:block;height:2px;max-width:520px;margin-top:22px;background:linear-gradient(90deg,#1077D5,#48E418)}

/* 3-up pull quotes */
.ts-pull{background:radial-gradient(120% 200% at 6% 0%,#153A66,#0D2444 56%,#08152B);padding:34px 0 38px}
.ts-pull-in{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
.ts-pull-i{padding:0 34px;border-left:1px solid rgba(140,175,230,.24)}
.ts-pull-i:first-child{border-left:0;padding-left:0}
.ts-pull-i:last-child{padding-right:0}
.ts-pull-i blockquote{font-family:var(--display);font-weight:800;font-size:23px;line-height:1.26;letter-spacing:-.026em;color:#fff;margin:0;white-space:pre-line}
.ts-pull-n{margin-top:12px;font-family:var(--sans);font-weight:700;font-size:13.5px;color:#1B7FEA}

/* details grid */
.ts-det{background:#fff;padding:56px 0 60px}
.ts-det-in{display:grid;grid-template-columns:minmax(0,58fr) minmax(0,42fr);gap:48px;align-items:start}
.ts-det-h{font-family:var(--display);font-weight:800;font-size:31px;line-height:1.14;letter-spacing:-.03em;color:var(--navy);margin:14px 0 26px}
.ts-det-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px 30px}
.ts-card{margin:0;padding:0 0 0 18px;border-left:2px solid rgba(16,119,213,.28)}
.ts-card blockquote{margin:0;font-size:13.5px;line-height:1.66;color:var(--slate-dk);text-wrap:pretty}
.ts-card figcaption{margin-top:12px}
.ts-det-photo{position:sticky;top:110px}
.ts-det-photo img{display:block;width:100%;height:420px;object-fit:cover}

/* manufacturers */
.ts-mfr{background:radial-gradient(130% 100% at 8% 0%,#12315A 0%,#0C2142 46%,#08152B 100%);padding:52px 0 58px}
.ts-mfr-h{font-family:var(--display);font-weight:800;font-size:31px;line-height:1.14;letter-spacing:-.03em;color:#fff;margin:14px 0 28px}
.ts-mfr-in{display:grid;grid-template-columns:minmax(0,44fr) minmax(0,56fr);gap:44px;align-items:start}
.ts-feat{margin:0;padding:0 0 0 20px;border-left:3px solid #48E418}
.ts-feat blockquote{margin:0;font-family:var(--display);font-weight:700;font-size:19px;line-height:1.56;letter-spacing:-.018em;color:#fff;text-wrap:pretty}
.ts-feat figcaption{margin-top:20px}
.ts-mfr-side{display:flex;flex-direction:column;gap:26px}
.ts-card-d{border-left-color:rgba(27,127,234,.5)}
.ts-card-d blockquote{color:rgba(206,222,242,.88)}
.ts-mfr .ts-n,.ts-tr .ts-n{color:#fff}
.ts-mfr .ts-o,.ts-tr .ts-o{color:rgba(180,200,226,.78)}
.ts-mfr .ts-r,.ts-tr .ts-r{color:#1B7FEA}

/* trained */
.ts-tr{background:#EEF4FB;padding:52px 0 58px}
.ts-tr-h{font-family:var(--display);font-weight:800;font-size:31px;line-height:1.14;letter-spacing:-.03em;color:var(--navy);margin:14px 0 26px}
.ts-tr-in{display:grid;grid-template-columns:minmax(0,32fr) minmax(0,34fr) minmax(0,34fr);gap:34px;align-items:start}
.ts-tr-photo img{display:block;width:100%;height:250px;object-fit:cover}
.ts-tr .ts-n{color:var(--navy)}
.ts-tr .ts-o{color:var(--slate)}
.ts-tr .ts-r{color:#1077D5}

/* CTA */
.ts-cta{position:relative;overflow:hidden;background:radial-gradient(120% 120% at 4% 0%,#153A66 0%,#0D2444 48%,#08152B 100%);padding:48px 0 54px}
.ts-cta-media{position:absolute;top:0;right:0;bottom:0;width:44%;z-index:0}
.ts-cta-media img{width:100%;height:100%;object-fit:cover;display:block}
.ts-cta-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0D2444 0%,rgba(13,36,68,.92) 26%,rgba(13,36,68,.4) 66%,rgba(13,36,68,.08) 100%)}
.ts-cta-in{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,38fr) minmax(0,62fr);gap:44px;align-items:center}
.ts-cta-h{font-family:var(--display);font-weight:800;font-size:38px;line-height:1.08;letter-spacing:-.034em;color:#fff;margin:0}
.ts-cta-p{font-size:15px;line-height:1.66;color:rgba(214,228,246,.9);margin:0;max-width:340px}
.ts-cta-actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:18px}

@media(max-width:1080px){
  .ts-hero{padding:92px 0 0}
  .ts-hero-media{width:100%;opacity:.24}
  .ts-hero-media::after{background:linear-gradient(180deg,rgba(13,36,68,.86),rgba(8,21,43,.95))}
  .ts-hero-h{font-size:30px}
  .ts-hero-in>*,.ts-hero-p{max-width:none}
  .ts-aud-in{justify-content:flex-start;padding:14px 22px}
  .ts-aud-i{font-size:10.5px}
  .ts-aud-dot{margin:0 12px}
  .ts-iv-in{grid-template-columns:1fr;gap:26px}
  .ts-iv-q{font-size:23px}
  .ts-pull-in{grid-template-columns:1fr;gap:22px}
  .ts-pull-i{padding:0;border-left:0}
  .ts-pull-i blockquote{font-size:19px}
  .ts-det-in{grid-template-columns:1fr;gap:28px}
  .ts-det-grid{grid-template-columns:1fr;gap:24px}
  .ts-det-photo{position:static}
  .ts-det-photo img{height:250px}
  .ts-mfr-in{grid-template-columns:1fr;gap:28px}
  .ts-feat blockquote{font-size:17px}
  .ts-tr-in{grid-template-columns:1fr;gap:26px}
  .ts-cta-media{width:100%;opacity:.24}
  .ts-cta-in{grid-template-columns:1fr;gap:20px}
  .ts-cta-h{font-size:27px}
  .ts-cta-h br{display:none}
  .ts-cta-p{max-width:none}
  .ts-det-h,.ts-mfr-h,.ts-tr-h{font-size:25px}
}


/* Service detail overview: headline column was narrow enough to break the heading into 4
   short lines beside much wider body copy. Rebalance the split. */
@media(min-width:1081px){
  .sd-overview-in{grid-template-columns:minmax(0,42fr) minmax(0,58fr)!important;gap:56px!important}
  .sd-ov-h{font-size:38px!important;max-width:none!important}
}

/* Service detail CTA card was pulled up with a negative margin, overlapping the dark
   band above it. Sit it below the seam instead. */
.sd-cta-sec{margin-top:0!important;padding-top:56px!important}
.sd-cta-card,.sd-cta-in{margin-top:0!important}

/* .ts-det-photo sticky was a no-op: align-items:start shrinks the grid item to content
   height, leaving zero scroll travel. Drop it. */
.ts-det-photo{position:static!important}


/* Testimonials pull strip: quotes run 1-3 lines, so each attribution landed at a different
   height. Make each cell a flex column and pin the name to the bottom. */
.ts-pull-in{align-items:stretch}
.ts-pull-i{display:flex;flex-direction:column}
.ts-pull-i blockquote{flex:0 0 auto}
.ts-pull-n{margin-top:auto!important;padding-top:14px}


/* .ts-det-in is align-items:start, so the 420px photo sat pinned to the top of a much
   taller quote grid. Centre the photo column against the quotes. */
@media(min-width:1081px){
  .ts-det-in{align-items:center!important}
  .ts-det-photo img{height:480px!important}
}


/* .ts-iv-in is align-items:start, so the 330px interview photo pinned to the top of a much
   taller copy column. Centre it and grow it to sit better against the text. */
@media(min-width:1081px){
  .ts-iv-in{align-items:center!important}
  .ts-iv-photo img{height:420px!important}
}

/* eyebrow removed from the testimonials hero — restore the headline's top spacing */
.ts-hero-h{margin-top:0!important}


/* Testimonials pull strip: uniform inset in every column so the three quote blocks sit at
   identical offsets and the dividers read as evenly spaced. */
.ts-pull-in{gap:0!important}
.ts-pull-i{padding:0 34px!important;border-left:1px solid rgba(140,175,230,.24)!important}
.ts-pull-i:first-child{border-left:0!important}
@media(max-width:1080px){
  .ts-pull-i{padding:0!important;border-left:0!important}
}


/* Projects section header: the CTA was top-aligned against a 3-element heading block, so it
   floated alone in the top-right. Bottom-align it to the heading column instead. */
@media(min-width:1081px){
  .proj-head2{align-items:flex-end!important}
  .proj-head2 .btn-pill-outline{margin-bottom:4px}
}

/* Project tile tag: green on a translucent white pill over bright sky measured ~1.6:1.
   Solid navy pill with white text reads at every crop. */
.proj-tag{background:rgba(13,36,68,.9)!important;backdrop-filter:blur(4px);color:#fff!important;padding:6px 11px!important}

/* eyebrow removed from the About hero — restore the headline's top spacing */
.ab-hero-h{margin-top:0!important}


/* About hero: headline column was 640px, too narrow for "Built by People Who Have" at 60px,
   so the line wrapped and the following <br/> stranded "Have" by itself. Give the headline
   its own wider measure. */
@media(min-width:1081px){
  .ab-hero-in{max-width:1240px!important}
  .ab-hero-h{max-width:840px!important;font-size:56px!important}
  .ab-hero-p,.ab-hero-actions{max-width:560px}
}


/* SEAM SLIVER — identified by DOM measurement, not selector guessing. .hero's box bottom is
   867px while .statbar-wrap's is 861px, and .svc-section starts at 861px. That leaves a 6px
   tail of the WHITE .hero painting on top of the navy section — the light band the client
   has reported repeatedly. It was never a border, shadow or gradient rule. */
body.home .hero{padding-bottom:0!important}
body.home .statbar-wrap{margin-bottom:0!important;display:block}

/* Why IGS composite photo: .whyx-comp grid tracks are fixed 656px/512px but .whyx-photo has a
   hardcoded 908px width, so it overflowed the viewport by ~330px. Let it fill its track. */
.whyx-comp{grid-template-columns:minmax(0,56fr) minmax(0,44fr)!important}
.whyx-photo{width:100%!important;max-width:100%!important}
.whyx-photo img{width:100%!important;height:auto!important;display:block}


/* .whyx-photo container is 620px tall to match the copy panel, but height:auto rendered the
   image at 385px leaving a 235px void beneath. Fill and crop. */
.whyx-photo{overflow:hidden}
.whyx-photo img{width:100%!important;height:100%!important;object-fit:cover!important;display:block}
@media(max-width:1080px){.whyx-photo img{height:280px!important}}


/* backstop: even if a residual sub-pixel remains, the media layer cannot paint past the bar */
body.home .hero-media{bottom:0!important}
body.home .hero-media::after{bottom:0!important}


/* Testimonials pull strip: every column gets the SAME inset so spacing reads equal end to end
   — cell 1 previously started flush at the wrap edge while 2 and 3 sat 34px past a divider. */
.ts-pull-in{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:0!important}
.ts-pull-i{padding:0 32px!important;border-left:1px solid rgba(140,175,230,.24)!important}
.ts-pull-i:first-child{border-left:0!important;padding-left:32px!important}
.ts-pull-i:last-child{padding-right:32px!important}
.ts-pull .wrap{padding-left:4px!important;padding-right:4px!important}
@media(max-width:1080px){
  .ts-pull-in{grid-template-columns:1fr!important}
  .ts-pull-i,.ts-pull-i:first-child,.ts-pull-i:last-child{padding:0!important;border-left:0!important}
  .ts-pull .wrap{padding-left:22px!important;padding-right:22px!important}
}

/* eyebrow removed from the 'trained' section — restore heading top spacing */
.ts-tr-h{margin-top:0!important}


/* Testimonials pull strip: equal-width columns made the SHORT first quote look stranded
   (22 chars in the same width as a 62-char quote). Content-width cells + space-between
   distributes the slack evenly, so the gaps read equal end to end. */
@media(min-width:1081px){
  .ts-pull-in{display:flex!important;justify-content:space-between!important;align-items:stretch!important;gap:0!important}
  .ts-pull-i{flex:0 1 auto!important;max-width:32%;padding:0 0 0 40px!important;border-left:1px solid rgba(140,175,230,.24)!important}
  .ts-pull-i:first-child{padding-left:0!important;border-left:0!important}
  .ts-pull-i:not(:first-child){margin-left:40px}
}


/* Service detail overview: 42/58 + 56px gap pushed the body copy past halfway while the
   heading filled only part of its column. Tighten. */
@media(min-width:1081px){
  .sd-overview-in{grid-template-columns:minmax(0,36fr) minmax(0,64fr)!important;gap:44px!important}
  .sd-ov-h{font-size:36px!important;max-width:420px!important}
}


/* Service detail 'Installation for Every Type of Play Environment': heading column + gap
   pushed the body copy past 52% of the viewport while the heading filled only part of its
   column. Same fix as .sd-overview-in. */
@media(min-width:1081px){
  .sd-subs-head{grid-template-columns:minmax(0,36fr) minmax(0,64fr)!important;gap:44px!important}
  .sdsub-h{font-size:36px!important;max-width:420px!important}
  .sdsub-lede{max-width:760px!important}
}


/* Service detail 'Installation for Manufacturers and General Contractors' band: same
   wide-heading-column defect as .sd-overview-in and .sd-subs-head. */
@media(min-width:1081px){
  .sdsub-band-in{grid-template-columns:minmax(0,36fr) minmax(0,64fr)!important;gap:44px!important}
  .sdsub-band-h{font-size:34px!important;max-width:400px!important}
  .sdsub-band-p{padding-left:40px!important;max-width:820px!important}
}


/* Direct edits mapped back from the preview (homepage). Converted the hero band to
   percentages so it holds at other widths; the decorative grid keeps its pixel offset. */
@media(min-width:1081px){
  
}
body.home .svc-section .svc-grid-bg{position:absolute;left:104px;top:75px}


/* STREAK — the client identified it: the VIDEO itself is sticking out past .hero-media.
   Clip the container and make the video fill it exactly, rather than touching the hero's
   padding (which caused the earlier trust-bar overlap regression). */
body.home .hero-media{overflow:hidden!important}
body.home .hero-media video,body.home .hero-media img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;max-width:100%!important;max-height:100%!important}


/* Video shrunk so it no longer sticks out past the hero, which is what was painting the white
   band at the trust-bar seam. Bounded to the container's inner box. */
@media(min-width:1081px){
  
  body.home .hero-media video,body.home .hero-media img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:50% 45%!important;display:block!important;max-width:100%!important;max-height:100%!important}
}


/* Trust bar sat too close to the hero buttons — add clearance above it. */
@media(min-width:1081px){
}


/* Trust bar clearance dialled back — 34px pushed it too far from the buttons. */

/* Trust bar: original size and width kept; only a hairline of clearance above it. */
body.home .statbar-wrap{margin-top:6px!important}


/* Trust bar sits ~110px below the buttons because .hero-inner carries 104px of bottom
   padding — the statbar is a SIBLING of .hero, so that padding is dead space between them.
   Reduce it to leave a hairline gap. Bar size/width untouched. */
body.home .hero .hero-inner{padding-bottom:8px!important}
body.home .statbar-wrap{margin-top:6px!important}


/* Trust bar: top padding trimmed so the space above the text matches the space below it. */
body.home .statbar-wrap{padding-top:0!important}
body.home .statbar-track{padding-top:0!important}
body.home .statbar-run{padding-top:20px!important;padding-bottom:20px!important}


/* Trust bar: uniform left inset on every item so all four align on the same rhythm
   (item 1 previously had padding-left:0 while 2-4 had 16px). */
body.home .statbar-run .stat,body.home .statbar-run .stat:first-child,body.home .statbar-run .stat:nth-child(odd),body.home .statbar-run .stat:nth-child(even){padding-left:16px!important;padding-right:14px!important}
body.home .statbar-run .stat:last-child{padding-right:0!important}

/* Why IGS photo: keep it inside its grid column and fill the column box. The earlier
   negative-margin viewport bleed combined with width:auto broke its sizing. */
.whyx-comp{grid-template-columns:minmax(0,56fr) minmax(0,44fr)!important;align-items:stretch!important}
.whyx-photo{width:100%!important;max-width:100%!important;margin:0!important;overflow:hidden!important;min-height:420px}
.whyx-photo img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:50% 50%!important;display:block!important}
@media(max-width:1080px){.whyx-photo{min-height:0!important}.whyx-photo img{height:280px!important}}


/* Trust bar framing — FINAL. Item 1 aligns to the page content edge (so the bar sits on the
   same grid as every other section), and each following item keeps a symmetric inset after
   its divider so divider-to-text spacing is identical across all four. */
body.home .statbar-run .stat{padding-left:30px!important;padding-right:30px!important}
body.home .statbar-run .stat:first-child{padding-left:0!important}
body.home .statbar-run .stat:last-child{padding-right:0!important}

/* Why IGS photo: back to filling its grid column edge-to-edge, top and bottom aligned with
   the copy panel (the aspect-ratio version left white gaps above and below). */
@media(min-width:1081px){
  .whyx-comp{align-items:stretch!important}
  .whyx-photo{align-self:stretch!important;aspect-ratio:auto!important;height:auto!important;min-height:0!important}
  .whyx-photo img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:50% 50%!important}
}


/* Why IGS photo: box ratio was 1.21 against a 1.33 image, so cover clipped the sides. Widen
   the photo column so the box matches the image ratio and the full frame shows. */
@media(min-width:1081px){
  .whyx-comp{grid-template-columns:minmax(0,52fr) minmax(0,48fr)!important}
  .whyx-photo img{object-position:50% 50%!important}
}


/* 'View Our Work' already has <Icon.Arrow> in the JSX — ensure the outline button variant
   does not hide or wash it out. */
body.home .hero-actions .btn-outline svg,body.home .hero-actions .btn-outline .arrow{display:inline-block!important;opacity:1!important;visibility:visible!important;color:currentColor!important}


/* ================= SERVICES OVERVIEW — rebuilt to client reference ================= */
.sv-hero{position:relative;overflow:hidden;background:radial-gradient(120% 120% at 6% 40%,#153A66 0%,#0D2444 46%,#08152B 100%);padding:104px 0 0}
.sv-hero-media{position:absolute;top:0;right:0;bottom:0;width:62%;z-index:0;overflow:hidden}
.sv-hero-media img{width:100%;height:100%;object-fit:cover;display:block}
.sv-hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0D2444 0%,rgba(13,36,68,.97) 18%,rgba(13,36,68,.6) 40%,rgba(13,36,68,.12) 72%,rgba(13,36,68,0) 100%)}
.sv-hero-in{position:relative;z-index:2;padding-bottom:34px}
.sv-hero-in>*{max-width:470px}
.sv-hero .eyebrow-rule,.sv-one .eyebrow-rule,.sv-list .eyebrow-rule,.sv-fits .eyebrow-rule,.sv-cta .eyebrow-rule{display:flex!important;color:#48E418!important}
.sv-hero .eyebrow-rule span:empty,.sv-one .eyebrow-rule span:empty,.sv-list .eyebrow-rule span:empty,.sv-fits .eyebrow-rule span:empty,.sv-cta .eyebrow-rule span:empty{background:#48E418}
.sv-hero-h{font-family:var(--display);font-weight:800;font-size:46px;line-height:1.06;letter-spacing:-.036em;color:#fff;margin:16px 0 0}
.sv-hero-h .c-blue{color:#1B7FEA!important}
.sv-hero-p{font-size:14.5px;line-height:1.7;color:rgba(206,222,242,.88);margin:18px 0 0}
.sv-hero-actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:26px}
.sv-cats{position:relative;z-index:2}
.sv-cats-in{display:flex;flex-wrap:wrap;align-items:center;padding-bottom:20px}
.sv-cat{display:inline-flex;align-items:center;font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#fff}
.sv-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#48E418;margin:0 20px}
.sv-hero-rule{position:absolute;left:0;right:0;bottom:0;height:4px;z-index:3;background:linear-gradient(90deg,#1077D5,#48E418)}

/* one partner */
.sv-one{background:#EEF4FB;padding:52px 0 46px}
.sv-one-in{display:grid;grid-template-columns:minmax(0,45fr) minmax(0,55fr);gap:48px;align-items:center}
.sv-one-h{font-family:var(--display);font-weight:800;font-size:33px;line-height:1.12;letter-spacing:-.03em;color:var(--navy);margin:14px 0 16px}
.sv-one-l p{font-size:14px;line-height:1.74;color:var(--slate-dk);margin:0 0 12px}
.sv-one-photo{overflow:hidden}
.sv-one-photo img{display:block;width:100%;height:300px;object-fit:cover}
.sv-seq{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:38px;padding-top:20px;border-top:1px solid rgba(23,52,88,.14)}
.sv-seq-i{display:inline-flex;align-items:center;font-family:var(--sans);font-weight:700;font-size:12.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--navy)}
.sv-seq-ar{display:inline-flex;margin:0 22px;color:#48E418}
.sv-seq-foot{text-align:center;margin:16px 0 0;font-size:14.5px;font-style:italic;color:var(--slate)}
.sv-seq-sm{margin-top:26px;padding-top:16px}
.sv-seq-sm .sv-seq-i{font-size:11.5px}
.sv-seq-sm .sv-seq-ar{margin:0 14px}

/* the twelve services */
.sv-list{background:radial-gradient(130% 90% at 10% 0%,#12315A 0%,#0C2142 44%,#08152B 100%);padding:52px 0 58px}
.sv-list-h{font-family:var(--display);font-weight:800;font-size:36px;line-height:1.08;letter-spacing:-.032em;color:#fff;margin:14px 0 12px}
.sv-list-sub{font-size:14.5px;line-height:1.62;color:rgba(206,222,242,.86);margin:0 0 34px}
.sv-cols{display:grid;grid-template-columns:1fr 1fr;gap:0 56px}
.sv-col{position:relative}
.sv-col+.sv-col{padding-left:56px;border-left:1px solid rgba(140,175,230,.22)}
.sv-row{display:grid;grid-template-columns:40px 1fr 22px;gap:14px;align-items:start;padding:16px 0;border-bottom:1px solid rgba(140,175,230,.18);text-decoration:none;transition:background .15s}
.sv-row:hover{background:rgba(255,255,255,.03)}
.sv-num{font-family:var(--display);font-weight:800;font-size:15px;color:rgba(206,222,242,.7);position:relative;padding-bottom:8px}
.sv-num::after{content:"";position:absolute;left:0;bottom:0;width:20px;height:2px;background:var(--rc)}
.sv-t{display:block;font-family:var(--sans);font-weight:700;font-size:15.5px;line-height:1.3;color:#fff}
.sv-d{display:block;margin-top:6px;font-size:12.5px;line-height:1.62;color:rgba(190,210,236,.82)}
.sv-ar{display:flex;align-items:center;justify-content:flex-end;color:rgba(206,222,242,.6);padding-top:2px}
.sv-row:hover .sv-ar{color:#48E418}
.sv-photo{margin:16px 0;overflow:hidden}
.sv-photo img{display:block;width:100%;height:190px;object-fit:cover}

/* where IGS fits */
.sv-fits{background:#EEF4FB;padding:52px 0 56px}
.sv-fits-in{display:grid;grid-template-columns:minmax(0,36fr) minmax(0,64fr);gap:48px;align-items:start}
.sv-fits-h{font-family:var(--display);font-weight:800;font-size:33px;line-height:1.12;letter-spacing:-.03em;color:var(--navy);margin:14px 0 20px}
.sv-fits-photo{overflow:hidden}
.sv-fits-photo img{display:block;width:100%;height:240px;object-fit:cover}
.sv-fits-p{font-size:14.5px;line-height:1.76;color:var(--slate-dk);margin:0}
.sv-eng{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-top:28px;padding-top:22px;border-top:1px solid rgba(23,52,88,.14)}
.sv-eng-c+.sv-eng-c{padding-left:36px;border-left:1px solid rgba(23,52,88,.14)}
.sv-eng-k{font-family:var(--sans);font-weight:700;font-size:11.5px;letter-spacing:.15em;text-transform:uppercase;margin:0 0 10px}
.sv-k-blue{color:#1077D5}
.sv-k-green{color:var(--green-deep,#2E7D18)}
.sv-eng-c p{font-size:14px;line-height:1.66;color:var(--slate-dk);margin:0}

/* closing CTA */
.sv-cta{position:relative;overflow:hidden;background:radial-gradient(120% 120% at 4% 0%,#153A66 0%,#0D2444 48%,#08152B 100%);padding:52px 0 58px}
.sv-cta-media{position:absolute;top:0;right:0;bottom:0;width:60%;z-index:0;overflow:hidden}
.sv-cta-media img{width:100%;height:100%;object-fit:cover;display:block}
.sv-cta-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0D2444 0%,rgba(13,36,68,.95) 20%,rgba(13,36,68,.55) 46%,rgba(13,36,68,.1) 78%,rgba(13,36,68,0) 100%)}
.sv-cta-in{position:relative;z-index:2}
.sv-cta-in>*{max-width:480px}
.sv-cta-h{font-family:var(--display);font-weight:800;font-size:38px;line-height:1.08;letter-spacing:-.034em;color:#fff;margin:14px 0 0}
.sv-cta-h .c-blue{color:#1B7FEA!important}
.sv-cta-p{font-size:14.5px;line-height:1.7;color:rgba(206,222,242,.88);margin:16px 0 0}
.sv-cta-actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:24px}

@media(max-width:1080px){
  .sv-hero{padding:92px 0 0}
  .sv-hero-media{width:100%;opacity:.24}
  .sv-hero-media::after{background:linear-gradient(180deg,rgba(13,36,68,.86),rgba(8,21,43,.95))}
  .sv-hero-h{font-size:30px}
  .sv-hero-in>*{max-width:none}
  .sv-cat{font-size:10.5px}
  .sv-dot{margin:0 12px}
  .sv-one-in{grid-template-columns:1fr;gap:24px}
  .sv-one-h{font-size:26px}
  .sv-one-h br{display:none}
  .sv-seq{flex-direction:column;align-items:flex-start;gap:10px}
  .sv-seq-ar{display:none}
  .sv-seq-foot{text-align:left}
  .sv-list-h{font-size:27px}
  .sv-list-sub br{display:none}
  .sv-cols{grid-template-columns:1fr;gap:0}
  .sv-col+.sv-col{padding-left:0;border-left:0}
  .sv-fits-in{grid-template-columns:1fr;gap:26px}
  .sv-fits-h{font-size:26px}
  .sv-fits-h br,.sv-cta-h br{display:none}
  .sv-eng{grid-template-columns:1fr;gap:20px}
  .sv-eng-c+.sv-eng-c{padding-left:0;border-left:0;padding-top:18px;border-top:1px solid rgba(23,52,88,.14)}
  .sv-cta-media{width:100%;opacity:.24}
  .sv-cta-in>*{max-width:none}
  .sv-cta-h{font-size:28px}
}


/* ===== Services Overview — polish pass ===== */
/* row 1 was 162px vs 142px for rows 2-10 because :first-child kept its top padding */
.sv-row:first-child{padding-top:0!important}
.sv-col>.sv-row:first-of-type{padding-top:0!important}
/* consistent row rhythm + slightly larger titles per the reference */
.sv-row{padding:15px 0!important;align-items:center!important}
.sv-t{font-size:16px!important}
.sv-d{font-size:13px!important;line-height:1.6!important;margin-top:5px!important}
.sv-num{font-size:16px!important;padding-bottom:9px!important}
.sv-num::after{width:22px!important}
/* inline photos: taller and flush to the column, matching the reference's proportion */
.sv-photo{margin:20px 0 22px!important}
.sv-photo img{height:215px!important}
/* sequence rows: more presence, tighter tracking */
.sv-seq{margin-top:34px!important;padding-top:22px!important}
.sv-seq-i{font-size:12px!important;letter-spacing:.14em!important}
.sv-seq-foot{margin-top:18px!important;font-size:14px!important}
/* headline + lede scale */
.sv-hero-h{font-size:44px!important}
.sv-list-h{font-size:34px!important}
.sv-one-h,.sv-fits-h{font-size:32px!important}
.sv-cta-h{font-size:36px!important}
/* dividers a touch lighter so the columns read as one system */
.sv-row{border-bottom-color:rgba(140,175,230,.15)!important}
.sv-col+.sv-col{border-left-color:rgba(140,175,230,.18)!important}
@media(max-width:1080px){
  .sv-photo img{height:200px!important}
  .sv-hero-h{font-size:29px!important}
  .sv-list-h,.sv-one-h,.sv-fits-h,.sv-cta-h{font-size:26px!important}
}

/* inline service-list photos removed per client — nothing else to compensate for */
.sv-photo{display:none!important}


/* Services Overview — hero + sequence: more vertical room and content aligned to the wrap grid. */
@media(min-width:1081px){
  .sv-hero{padding-top:120px!important}
  .sv-hero-in{padding-bottom:48px!important}
  .sv-hero-in>*{max-width:520px!important}
  .sv-hero-h{margin-top:20px!important;line-height:1.08!important}
  .sv-hero-p{margin-top:22px!important;max-width:460px!important}
  .sv-hero-actions{margin-top:32px!important}
  .sv-cats-in{padding-top:20px!important;padding-bottom:24px!important;border-top:1px solid rgba(140,175,230,.18)}
  /* sequence rows: even distribution with real breathing room, arrows centred between labels */
  .sv-seq{margin-top:44px!important;padding-top:26px!important;padding-bottom:4px!important}
  .sv-seq-i{flex:1 1 0;justify-content:center}
  .sv-seq-i:first-child{justify-content:flex-start}
  .sv-seq-i:last-child{justify-content:flex-end}
  .sv-seq-ar{margin:0 0 0 22px!important}
  .sv-seq-foot{margin-top:22px!important}
  .sv-one{padding:64px 0 56px!important}
  .sv-fits .sv-seq{margin-top:30px!important}
}


/* ===== Services Overview sequence rail — matched to client reference =====
   Each label is followed by a hairline connector that stretches to a green arrowhead, so the
   four steps read as one continuous rail across the full width. */
@media(min-width:1081px){
  .sv-one .sv-seq{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:0!important;
    margin-top:0!important;padding:22px 0 0!important;border-top:0!important}
  .sv-one .sv-seq-i{flex:0 0 auto!important;justify-content:flex-start!important;white-space:nowrap;
    font-size:13px!important;letter-spacing:.15em!important;color:var(--navy)!important}
  /* the connector: a flexible rule that eats the leftover space, arrowhead pinned at its end */
  .sv-one .sv-seq-ar{flex:1 1 auto!important;display:flex!important;align-items:center!important;
    margin:0 18px!important;color:#2E7D18!important;position:relative}
  .sv-one .sv-seq-ar::before{content:"";flex:1 1 auto;height:1px;background:rgba(23,52,88,.34)}
  .sv-one .sv-seq-ar svg{flex:0 0 auto;margin-left:-2px}
  /* the section's own top rule becomes the blue→green edge the reference shows under the photo */
  .sv-one .wrap:last-child{position:relative;padding-top:4px}
  .sv-one .wrap:last-child::before{content:"";position:absolute;top:0;left:36px;right:36px;height:2px;
    background:linear-gradient(90deg,#1077D5 0%,#1077D5 72%,#48E418 100%)}
  .sv-seq-foot{margin-top:16px!important}
}


/* Sequence rail — the connector is nested INSIDE each label, so the label must be the flexible
   item for the connector to have space to grow into. */
@media(min-width:1081px){
  .sv-one .sv-seq-i{flex:1 1 auto!important}
  .sv-one .sv-seq-i:last-child{flex:0 0 auto!important}
  .sv-one .sv-seq-ar{flex:1 1 auto!important;min-width:60px}
  .sv-one .sv-seq-ar::before{flex:1 1 auto;min-width:20px}
  /* same nesting in the Where-IGS-Fits 3-step row */
  .sv-fits .sv-seq{display:flex!important;align-items:center!important;gap:0!important}
  .sv-fits .sv-seq-i{flex:1 1 auto!important;white-space:nowrap}
  .sv-fits .sv-seq-i:last-child{flex:0 0 auto!important}
  .sv-fits .sv-seq-ar{flex:1 1 auto!important;display:flex!important;align-items:center!important;margin:0 14px!important;color:#2E7D18!important;min-width:40px}
  .sv-fits .sv-seq-ar::before{content:"";flex:1 1 auto;min-width:16px;height:1px;background:rgba(23,52,88,.34)}
}


/* About belief chapter: the full-width 3rd paragraph was indented relative to column 1.
   Force it onto the same left edge as the two columns above it. */
@media(min-width:1081px){
  .ab-ch2-cols p:nth-child(3){grid-column:1 / -1!important;margin-left:0!important;padding-left:0!important;max-width:none!important}
}


/* About belief chapter: column 2 ("That's the future we're building toward…") sat too far
   right. Tighten the column gap so it aligns closer to the first column's rhythm. */
@media(min-width:1081px){
  .ab-ch2-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:26px 40px!important;max-width:880px!important}
  .ab-ch2-cols p{max-width:400px}
  .ab-ch2-cols p:nth-child(3){max-width:860px!important}
}


/* About belief chapter: the base .ab-ch2-cols p rule adds padding-left:30px + a 1px border-left
   (a leftover from when this section was dark — now invisible white-on-light), so column 2's text
   sat 31px right of its track while column 1 was flush. Reset both. */
.ab-ch2-cols p{padding-left:0!important;border-left:0!important;padding-right:0!important}


/* ===== HOMEPAGE REVIEW PASS — hero, header, services, standard photo, alignment, footer ===== */

/* 1. HERO — headline column was too narrow, stranding "Parks and" on its own line.
   Widen it for a cleaner 4-line composition, and scale up the undersized copy + buttons. */
@media(min-width:1081px){
  body.home .hero-copy{max-width:660px!important}
  body.home .h-hero{font-size:60px!important;line-height:1.05!important;max-width:640px!important}
  body.home .hero .body-lg{font-size:17.5px!important;line-height:1.7!important;max-width:520px!important}
  body.home .hero-actions .btn{min-height:48px!important;font-size:15.5px!important;padding:0 26px!important}
  /* gradient ends sooner so the installed area keeps contrast on the right */
  body.home .hero-media::after{background:linear-gradient(100deg,#fff 0%,#fff 34%,rgba(255,255,255,.88) 44%,rgba(255,255,255,.42) 54%,rgba(255,255,255,.1) 62%,rgba(255,255,255,0) 70%)!important}
}

/* 2. HEADER — nav, logo and button were miniaturised relative to the hero. */
@media(min-width:1081px){
  .nav-inner{padding-top:16px!important;padding-bottom:16px!important}
  .logo img{height:62px!important}
  .nav-link{font-size:14px!important}
  .nav-links{gap:30px!important}
  .nav-cta .btn{min-height:44px!important;font-size:14.5px!important}
}

/* 3. SERVICES — the six supporting cards were too compressed. */
@media(min-width:1081px){
  /* padding PRUNED from .hc — it is the flex WRAPPER holding the full-bleed image slot
     and .hc-b. Padding here indented the image off the card edge and stacked with
     .hc-b's own 20px/28px, squeezing the text column so "View Service" ran into the
     border on hover. Inner padding belongs on .hc-b only. */
  .hc{min-height:132px!important}
  .hc-t{font-size:16px!important;line-height:1.3!important}
  .hc-view{display:none!important}
  .hc-ar{opacity:1!important}
  /* CTA aligns with the heading block instead of floating beside the paragraph */
  .svc-top{align-items:flex-end!important}
  .svc-top-r{padding-bottom:2px!important}
}

/* 4. "IGS SETS THE STANDARD" — photo stopped at the container edge, leaving a pale strip.
   Bleed it to the viewport edge and give the CTA bottom room. */
@media(min-width:1081px){
  .whyx-comp{position:relative}
  .whyx-photo{margin-right:calc(50% - 50vw)!important;width:auto!important;overflow:hidden!important}
  .whyx-photo img{width:100%!important;height:100%!important;object-fit:cover!important}
  .whyx-panel .btn,.whyx-cta{margin-bottom:8px!important}
  .whyx{padding-bottom:64px!important}
}

/* 5+6. WHERE IGS FITS — right column drifted above the heading. Align tops and enlarge
   the panel copy, which was too small over busy photography. */
@media(min-width:1081px){
  .wfits-in{align-items:start!important}
  .wfits-l,.wfits-r{padding-top:0!important}
  .wfp{min-height:150px!important}
  .wfp-t{font-size:19px!important}
  .wfp-d{font-size:14.5px!important;line-height:1.6!important}
  .wfp::after{background:linear-gradient(90deg,rgba(13,36,68,.94) 0%,rgba(13,36,68,.82) 46%,rgba(13,36,68,.5) 100%)!important}
}

/* 7. MISSION — paragraph got lost against the photograph and the button read as disabled. */
@media(min-width:1081px){
  .community-close{line-height:1.12!important}
  .community-copy .body-lg{font-size:17.5px!important;line-height:1.72!important;max-width:600px!important}
  .community-copy .btn{margin-top:30px!important;min-height:48px!important;background:rgba(255,255,255,.14)!important;border-color:rgba(255,255,255,.85)!important;color:#fff!important;font-size:15.5px!important}
  .community-copy .btn:hover{background:#fff!important;color:var(--navy)!important}
  .community-media::after{background:linear-gradient(180deg,rgba(8,21,43,.5) 0%,rgba(8,21,43,.74) 48%,rgba(8,21,43,.86) 100%)!important}
}

/* 8. PROJECTS — CTA floated in white space; pull it up to the heading row. */
@media(min-width:1081px){
  .proj-head2{align-items:flex-end!important}
  .proj-head2 .btn-pill-outline{margin-bottom:2px!important}
  .proj-cell::after,.proj-sm::after{background:linear-gradient(to top,rgba(8,21,43,.86) 0%,rgba(8,21,43,.44) 40%,transparent 74%)!important}
}

/* 9. TESTIMONIALS — equal cards but unequal copy left the right card looking empty.
   Give the longer quote more width and pull the decorative lines back. */
@media(min-width:1081px){
  .testi-grid{grid-template-columns:minmax(0,56fr) minmax(0,44fr)!important}
  .testi-lines,.testi-bg{opacity:.28!important}
  .testi-cta{margin-top:38px!important}
  .testi-cta .btn{min-height:46px!important;font-size:15px!important}
}

/* 10. FINAL CTA — buttons undersized for the page's most important action. */
@media(min-width:1081px){
  .cta-actions .btn,.cta-phone{min-height:48px!important;font-size:15.5px!important;padding:0 28px!important}
  .cta-phone{border:1.5px solid rgba(255,255,255,.8)!important;border-radius:3px;color:#fff!important}
  .cta-inner .body-lg{max-width:640px!important}
  .cta{padding-bottom:64px!important}
}

/* 11. FOOTER — four columns crammed into a shallow band with everything too small. */
@media(min-width:1081px){
  footer{padding-top:64px!important;padding-bottom:40px!important}
  .f-grid{gap:56px!important}
  .f-brand p{font-size:14.5px!important;line-height:1.7!important;max-width:300px}
  .f-col h4,.f-col-h{font-size:12.5px!important;letter-spacing:.14em!important;margin-bottom:16px!important}
  .f-col a,.f-col li{font-size:14px!important;line-height:1.5!important}
  .f-col li+li{margin-top:10px!important}
  /* .f-services ul columns rule PRUNED from this tier — superseded by the untiered
     rule in the footer-rebuild block at the end of this file. */
  .logo-foot img{height:64px!important}
  .f-bottom{padding-top:26px!important;font-size:13px!important}
}

/* PAGE-WIDE — button system reduced to two heights/radii, and supporting copy scaled up. */
@media(min-width:1081px){
  body.home .btn{border-radius:3px!important}
  body.home .statbar-run .stat .v{font-size:20px!important}
  body.home .statbar-run .stat .v-big{font-size:27px!important}
  body.home .statbar-run .stat .l{font-size:14.5px!important}
  body.home .whyx-bi h3{font-size:16px!important}
  body.home .whyx-bi p{font-size:14px!important;line-height:1.62!important}
  body.home .testi-q{font-size:16.5px!important;line-height:1.7!important}
  body.home .testi-n{font-size:15px!important}
  body.home .testi-r,body.home .testi-o{font-size:13.5px!important}
}


/* Hero headline: breaks are HARD-CODED <br/>, not wrap-driven, so widening the column could
   never fix the stranded "Parks and". Markup now composes 3 lines — "The Installation Experts
   Behind / America's Best / Parks and Recreation Spaces" — with a space before the <br/> so
   textContent does not jam for selection, copy/paste and screen readers. */
@media(min-width:1081px){
  body.home .h-hero{font-size:54px!important;max-width:720px!important;line-height:1.08!important}
  body.home .hero-copy{max-width:740px!important}
}
/* Hero video first-paints black while the mp4 decodes — show the poster underneath so the
   right side never renders as a black rectangle. */
body.home .hero-media{background:#0D2444 url('assets/hero.jpg') center/cover no-repeat}
body.home .hero-media video{background:transparent}


/* Hero headline: 3 authored lines — "The Installation Experts Behind / America's Best Parks
   and / Recreation Spaces". Longest segment needs ~700px at 54px, so the column is 820px and
   nowrap prevents any segment re-wrapping into a 4th line. */
@media(min-width:1081px){
  body.home .hero-copy{max-width:860px!important}
  body.home .h-hero{font-size:54px!important;max-width:820px!important;line-height:1.08!important;white-space:nowrap!important}
  body.home .h-hero br{white-space:normal}
}
/* Poster must beat the pre-existing background:transparent!important on .hero-media. */
body.home .hero-media{background-color:#0D2444!important;background-image:url('assets/hero.jpg')!important;background-position:center center!important;background-size:cover!important;background-repeat:no-repeat!important}
body.home .hero-media video{background:transparent!important}


/* ===== HOMEPAGE REVIEW — remaining items ===== */

/* 1. HERO IMAGE CROP — bring the installed area closer, cut the empty dirt/road. */
@media(min-width:1081px){
  body.home .hero-media video,body.home .hero-media img{object-position:62% 62%!important;transform:scale(1.14)!important;transform-origin:62% 62%!important}
}

/* 2. NAV — even spacing now that Contact is gone (was uneven gap + a redundant link). */
@media(min-width:1081px){
  .nav-links{gap:34px!important;align-items:center!important}
  .nav-link{padding:0!important;margin:0!important}
  .nav-link-wrap{margin:0!important}
}

/* 3. SERVICES CTA — review asked for it aligned to the TOP of the heading block, not the
   bottom (my last pass bottom-aligned it). */
@media(min-width:1081px){
  .svc-top{align-items:flex-start!important}
  .svc-top-r{padding-bottom:0!important;padding-top:6px!important}
}

/* 5. TOO MANY STACKED BANDS — integrate the four standards into the BOTTOM of the
   "IGS Sets the Standard" section instead of a separate dark band. Removes one abrupt
   background change in the middle of the page. */
.whyx-band{background:transparent!important;background-image:none!important;padding:0!important;border:0!important}
.whyx-band::before,.whyx-band::after{display:none!important}
.whyx-band-in{border-top:1px solid rgba(23,52,88,.14)!important;padding-top:34px!important;margin-top:44px!important}
.whyx-bi h3{color:var(--navy)!important}
.whyx-bi p{color:var(--slate-dk)!important}
.whyx{padding-bottom:72px!important}

/* PAGE-WIDE — button system reduced to TWO variants: solid blue primary, outlined secondary.
   Same height, radius, label size and arrow treatment everywhere on the homepage. */
body.home .btn{border-radius:3px!important;min-height:48px!important;font-size:15.5px!important;font-weight:700!important;padding:0 26px!important;display:inline-flex!important;align-items:center!important;gap:9px!important}
body.home .btn-pill-outline,body.home .cta-phone{border-radius:3px!important;min-height:48px!important;font-size:15.5px!important;font-weight:700!important;padding:0 26px!important;display:inline-flex!important;align-items:center!important;gap:9px!important}
body.home .btn svg,body.home .btn-pill-outline svg,body.home .cta-phone svg{width:15px!important;height:15px!important}

/* PAGE-WIDE — ACCENT DISCIPLINE. Coloured highlight words are reserved for the three most
   important statements (hero, mission, final CTA). Supporting section headings go navy so the
   emphasis stops feeling formulaic. */
body.home .svc-h .gg,body.home .svc-h .c-blue,
body.home .wfits-h .c-green,body.home .wfits-h .c-blue,
body.home .proj-h .c-green,body.home .proj-h .c-blue,
body.home .th .c-green,body.home .th .c-blue,
body.home .whyx-h .gb,body.home .whyx-h .c-blue{color:var(--navy)!important}
/* kept coloured: hero .c-blue, .community-close .c (mission), .cta-inner highlight */
body.home .h-hero .c-blue{color:#1077D5!important}
body.home .community-close .c{color:#48E418!important}


/* ===== THREE REGRESSIONS FROM THE REVIEW PASS ===== */

/* 1. My accent-discipline rule forced .svc-h .gg to NAVY — but the services section is DARK,
   so "Parks, Schools, Communities, and Commercial Spaces" went navy-on-navy and vanished.
   Dark-section headings must stay light; only LIGHT-section headings go navy. */
body.home .svc-section .svc-h .gg,body.home .svc-section .svc-h .c-blue{color:#fff!important}
body.home .th .c-green,body.home .th .c-blue{color:#fff!important}

/* 2. The integrated standards strip is now on a LIGHT field, but its titles/descriptions were
   still painting white — invisible. Force navy/slate at higher specificity than the dark-band
   rules that preceded it. */
body.home .whyx .whyx-band .whyx-bi h3,body.home .whyx-band-in .whyx-bi h3{color:var(--navy)!important;text-shadow:none!important}
body.home .whyx .whyx-band .whyx-bi p,body.home .whyx-band-in .whyx-bi p{color:var(--slate-dk)!important;text-shadow:none!important}
body.home .whyx-band-in .whyx-bi{text-align:left!important}

/* 3. Trust bar: bumping .v to 20px made "Licensed · Insured · Bonded" overflow its 294px
   column and collide with the next item's icon. Back to a size that fits, and let it wrap
   rather than run into its neighbour. */
body.home .statbar-run .stat .v{font-size:17px!important;white-space:normal!important}
body.home .statbar-run .stat .v-big{font-size:25px!important}
body.home .statbar-run .stat .v-tight{font-size:16px!important}
body.home .statbar-run .stat .l{font-size:13.5px!important;white-space:normal!important}
body.home .statbar-run .stat{overflow:hidden!important}


/* Standards strip — verifier found my previous fix targeted h3/p, which DO NOT EXIST in
   .whyx-bi. Real markup is span.whyx-bi-r / span.whyx-bi-t / span.whyx-bi-d. */
body.home .whyx-band-in .whyx-bi-t{color:var(--navy)!important;text-shadow:none!important}
body.home .whyx-band-in .whyx-bi-d{color:var(--slate-dk)!important;text-shadow:none!important}
/* the coloured accent rule is an empty span — no content means no intrinsic height */
body.home .whyx-band-in .whyx-bi-r{height:3px!important;border-radius:3px}
/* column 2 sat 10px high because the grid was centring, not top-aligning */
body.home .whyx-band-in{align-items:start!important}
body.home .whyx-band-in .whyx-bi{align-self:start!important}


/* Accent rules were being CRUSHED, not mis-sized — verifier measured .whyx-bi children needing
   137.04px inside a fixed 124px flex column, and with flex-shrink:1 on a 3px base the rule span
   was the cheapest thing to absorb the 13.04px shortfall, so height:3px!important still used 0.
   Both halves required: stop it shrinking AND give the column room, or the shortfall just moves
   onto the text spans instead. */
body.home .whyx-band-in .whyx-bi-r{flex:0 0 3px!important;flex-shrink:0!important;height:3px!important;min-height:3px!important}
body.home .whyx-band-in .whyx-bi{height:auto!important;min-height:140px!important}


/* Standards strip dividers — two dark-band leftovers, one decisive fix each.
   CAUSE 1: .whyx-bi::before is rgba(255,255,255,.18) — an 18% white hairline over the light
   #F4F8FD field is invisible, so the four-column separation was gone. Recoloured to the same
   low-alpha navy already used for .whyx-band-in's top hairline.
   CAUSE 2: the divider derived its height from the column box, and my height:auto let column 2
   grow to 157px (4-line description) while cols 1/3/4 stayed at 140px. Fixed by equalising the
   columns with align-items:stretch AND pinning ::before top/bottom so it no longer sizes to
   content. flex-shrink:0 on .whyx-bi-r is retained, so the crush defect cannot return. */
body.home .whyx-band-in{align-items:stretch!important}
body.home .whyx-band-in .whyx-bi{align-self:stretch!important;position:relative}
body.home .whyx-band-in .whyx-bi::before{background-color:rgba(23,52,88,.14)!important;background-image:none!important;top:30px!important;bottom:0!important;height:auto!important}


/* Photo cut off on the right — MEASURED: .whyx-photo already computes margin-right:-420.18px
   (the correct bleed for a 560.641px grid area), but an earlier width:100%!important pins the
   box to the 560.641px track, so the negative margin has nothing to grow into and the photo
   still stops 116px short of the viewport. ROOT CAUSE: fixed width defeats the bleed margin.
   ONE decisive edit — let the box size from its bled edges instead of the track. */
@media(min-width:1081px){
  body.home .whyx-photo{width:auto!important;max-width:none!important;margin-right:calc(50% - 50vw)!important}
  body.home .whyx-photo img{width:100%!important;height:100%!important;object-fit:cover!important}
}


/* Trust bar: all four bold leads at ONE size — .v-big was 25px and .v-tight 16px against
   17px on the other two, so '$100M+' dominated and 'Licensed · Insured · Bonded' read small.
   19px is the largest that still fits the widest label inside a 294px column. */
body.home .statbar-run .stat .v,
body.home .statbar-run .stat .v-big,
body.home .statbar-run .stat .v-tight{font-size:19px!important;font-weight:700!important;line-height:1.3!important;letter-spacing:-.01em!important}


/* Hero headline: client wants FOUR authored lines — "The Installation Experts / Behind
   America's Best / Parks and / Recreation Spaces". Longest line is now ~24 chars, so the
   nowrap guard can relax and the type can go back up. */
@media(min-width:1081px){
  body.home .h-hero{font-size:58px!important;max-width:760px!important;line-height:1.06!important;white-space:normal!important}
  body.home .hero-copy{max-width:800px!important}
}


/* FAIL 1 — .whyx-photo overshot 304px. ROOT CAUSE: percentage margins resolve against the
   containing block's inline size, which is the 560.641px GRID AREA, not the section — so
   calc(50% - 50vw) computed -359.68px when the real distance from the photo's left edge to
   the viewport right is only ~617px. Replaced with a gutter-anchored viewport expression;
   the max(0px,…) guard matters because below ~1312px the wrap goes edge-to-edge and the
   unguarded term flips sign. */
@media(min-width:1081px){
  body.home .whyx-photo{width:auto!important;max-width:none!important;margin-right:calc(-1 * max(0px, (100vw - 1240px)/2 + 36px))!important}
}

/* FAIL 2 — equal font sizes broke row alignment. My "19px fits" claim was wrong: 'Licensed ·
   Insured · Bonded' wraps to 2 lines there, and item 2's sub wraps too, so with each .stat
   centring its own variable-height block nothing shared a baseline. Fixed structurally rather
   than by tweaking the size again: 17px (measured to fit all four leads on ONE line), columns
   top-aligned instead of centred, and .txt made a 2-row grid with a fixed lead row so every
   sub-line starts at the same y regardless of wrapping. Sizes stay EQUAL per the client. */
@media(min-width:1081px){
  body.home .statbar-run .stat{align-items:flex-start!important}
  body.home .statbar-run .stat .v,
  body.home .statbar-run .stat .v-big,
  body.home .statbar-run .stat .v-tight{font-size:17px!important;font-weight:700!important;line-height:1.3!important;letter-spacing:-.01em!important}
  body.home .statbar-run .stat .txt{display:grid!important;grid-template-rows:23px auto!important;row-gap:5px!important;align-content:start!important}
  body.home .statbar-run .stat .l{font-size:13.5px!important;line-height:1.32!important;margin:0!important}
  body.home .statbar-run .stat .stat-ic{margin-top:0!important}
}


/* Trust bar leads: 17px left item 3 with -3.8px headroom (natural 224.8px vs 221px available),
   so 'Licensed · Insured · Bonded' wrapped and its second line collided with the sub-line by
   15px — the fixed 23px lead row absorbs an overflow rather than displacing it. 16px measures
   ~211px natural vs 221px available (~10px headroom) so nothing wraps, the fixed row keeps all
   four sub-lines in sync, and the sizes stay EQUAL as the client asked. Bar height unchanged. */
@media(min-width:1081px){
  body.home .statbar-run .stat .v,
  body.home .statbar-run .stat .v-big,
  body.home .statbar-run .stat .v-tight{font-size:16px!important;font-weight:700!important;line-height:1.3!important;letter-spacing:-.008em!important;white-space:nowrap!important}
}


/* Trust bar FINAL — nowrap converted the overlap into a CLIP: .stat is overflow:hidden, so
   'Licensed · Insured · Bonded' (212px) lost its tail at every desktop width below ~1280px
   where the column offers only 163-181px. ROOT CAUSE: grid-template-rows:23px pins the lead
   to ONE line, so a wrap either overlaps the sub-line or, with nowrap, gets cut.
   DECISIVE FIX: give the lead row room for TWO lines on all four columns and drop nowrap —
   a wrapped lead now fits inside its own row, and all four sub-lines still start at the same y
   because the row height is identical across columns. Robust at every width; costs ~21px. */
@media(min-width:1081px){
  body.home .statbar-run .stat .v,
  body.home .statbar-run .stat .v-big,
  body.home .statbar-run .stat .v-tight{font-size:16px!important;font-weight:700!important;line-height:1.3!important;letter-spacing:-.008em!important;white-space:normal!important}
  body.home .statbar-run .stat .txt{display:grid!important;grid-template-rows:44px auto!important;row-gap:4px!important;align-content:start!important}
  body.home .statbar-run .stat{align-items:flex-start!important}
}


/* Trust bar spacing: the 44px fixed lead row (added to absorb a possible 2-line label) left a
   large empty gap under every lead once they all fit on one line — which is what reads as
   "weird formatting". Rows are now auto-height with a tight gap, so leads and sub-lines sit as
   one block; all four leads are single-line at 16px nowrap, so the sub-lines still share a
   baseline. Overflow allowed to be visible so a nowrap label can never be clipped. */
@media(min-width:1081px){
  body.home .statbar-run .stat .txt{display:grid!important;grid-template-rows:auto auto!important;row-gap:7px!important;align-content:start!important}
  body.home .statbar-run .stat{align-items:flex-start!important;overflow:visible!important}
  body.home .statbar-run .stat .v,
  body.home .statbar-run .stat .v-big,
  body.home .statbar-run .stat .v-tight{font-size:16px!important;line-height:1.25!important;white-space:nowrap!important}
  body.home .statbar-run .stat .l{line-height:1.4!important}
}


/* Trust bar column widths: 'Certified Playground Safety Inspector' wraps to 2 lines while
   the other three subs fit on one, so item 2 needs more room. Give the four columns
   proportional widths instead of equal 1fr — item 2 wider, and a small left inset shifts
   the CPSI group right so it sits clear of the divider. Bar still spans the full grid. */
@media(min-width:1081px){
  body.home .statbar-run{grid-template-columns:minmax(0,.9fr) minmax(0,1.22fr) minmax(0,1.06fr) minmax(0,.82fr)!important}
  body.home .statbar-run .stat:nth-child(2){padding-left:34px!important}
  body.home .statbar-run .stat .l{white-space:nowrap!important}
}


/* Trust bar: nudge the whole bar down so it sits clear of the hero buttons. */
@media(min-width:1081px){body.home .statbar-wrap{margin-top:22px!important}}
@media(max-width:1080px){body.home .statbar-wrap{margin-top:16px!important}}


/* Trust bar: trim the top only — bar sits closer under the hero, bottom spacing unchanged. */
@media(min-width:1081px){
  body.home .statbar-wrap{margin-top:8px!important}
  body.home .statbar-run{padding-top:12px!important}
}
@media(max-width:1080px){
  body.home .statbar-wrap{margin-top:8px!important}
  body.home .statbar-run{padding-top:12px!important}
}


/* HERO GRADIENT SEAM — the hard vertical line is an ELEMENT BOUNDARY, not a gradient stop.
   .ab-hero-media is only 64% wide pinned right, and its ::after starts at solid #0D2444 0%,
   while the section behind it is a LIGHTER radial (#153A66). At the media's left edge those
   two navies meet with no transition, producing a visible step. Fix: run the media full-width
   so there is no boundary to see, and let the overlay itself do all the fading. */
.ab-hero-media,.wis-hero-media,.ts-hero-media,.sv-hero-media,.pw-hero-strip,.cn-hero-media,.ctp-hero-media{width:100%!important;left:0!important;right:0!important}
.ab-hero-media::after{background:linear-gradient(90deg,#0D2444 0%,#0D2444 30%,rgba(13,36,68,.94) 42%,rgba(13,36,68,.72) 54%,rgba(13,36,68,.42) 68%,rgba(13,36,68,.16) 84%,rgba(13,36,68,.04) 100%)!important}
.wis-hero-media::after{background:linear-gradient(90deg,#0D2444 0%,#0D2444 28%,rgba(13,36,68,.94) 40%,rgba(13,36,68,.7) 54%,rgba(13,36,68,.4) 70%,rgba(13,36,68,.14) 86%,rgba(13,36,68,.04) 100%)!important}
.ts-hero-media::after,.sv-hero-media::after,.ctp-hero-media::after{background:linear-gradient(90deg,#0D2444 0%,#0D2444 28%,rgba(13,36,68,.94) 40%,rgba(13,36,68,.7) 54%,rgba(13,36,68,.4) 70%,rgba(13,36,68,.14) 86%,rgba(13,36,68,.04) 100%)!important}
.cn-hero-media::after{background:linear-gradient(90deg,#0D2444 0%,#0D2444 30%,rgba(13,36,68,.94) 42%,rgba(13,36,68,.7) 56%,rgba(13,36,68,.38) 72%,rgba(13,36,68,.12) 88%,rgba(13,36,68,.03) 100%)!important}
.pw-hero-strip::after{background:linear-gradient(90deg,#0D2444 0%,#0D2444 26%,rgba(13,36,68,.92) 38%,rgba(13,36,68,.62) 52%,rgba(13,36,68,.28) 70%,rgba(13,36,68,.06) 88%,rgba(13,36,68,0) 100%)!important}
@media(max-width:1080px){
  .ab-hero-media::after,.wis-hero-media::after,.ts-hero-media::after,.sv-hero-media::after,.ctp-hero-media::after,.cn-hero-media::after,.pw-hero-strip::after{background:linear-gradient(180deg,rgba(13,36,68,.86),rgba(8,21,43,.95))!important}
}


/* GRADIENT SEAM — same element-boundary defect on every remaining partial-width media layer.
   Each one is pinned right at 40-60% width with its ::after starting at a solid navy, while
   the section behind it is a LIGHTER radial — so the media's left edge shows as a hard step.
   Run them all full-width so there is no boundary, and let the overlay do the fading. */
.ab-fin-media,.ts-cta-media,.sv-cta-media,.ctp-scope-media,.wis-owner-media,.wis-disp-media,
.cn-apply-media,.pw-feat-media,.wis-back-media,.wis-cta-media{width:100%!important;left:0!important;right:0!important}

.ab-fin-media::after,.ts-cta-media::after,.sv-cta-media::after,.ctp-scope-media::after,.cn-apply-media::after{background:linear-gradient(90deg,#0D2444 0%,#0D2444 28%,rgba(13,36,68,.94) 40%,rgba(13,36,68,.72) 54%,rgba(13,36,68,.42) 70%,rgba(13,36,68,.15) 86%,rgba(13,36,68,.04) 100%)!important}
.wis-owner-media::after,.wis-disp-media::after{background:linear-gradient(90deg,#0C2142 0%,#0C2142 30%,rgba(12,33,66,.94) 42%,rgba(12,33,66,.7) 56%,rgba(12,33,66,.4) 72%,rgba(12,33,66,.14) 88%,rgba(12,33,66,.04) 100%)!important;height:100%!important}
.wis-back-media::after{background:linear-gradient(90deg,#F7FAFD 0%,#F7FAFD 30%,rgba(247,250,253,.95) 42%,rgba(247,250,253,.72) 56%,rgba(247,250,253,.4) 72%,rgba(247,250,253,.12) 88%,rgba(247,250,253,.02) 100%)!important}
.wis-cta-media{clip-path:none!important}
.wis-cta-media::after{background:linear-gradient(90deg,#EEF4FB 0%,#EEF4FB 26%,rgba(238,244,251,.9) 38%,rgba(238,244,251,.6) 52%,rgba(16,119,213,.34) 72%,rgba(16,119,213,.5) 100%)!important}

@media(max-width:1080px){
  .ab-fin-media::after,.ts-cta-media::after,.sv-cta-media::after,.ctp-scope-media::after,
  .cn-apply-media::after,.wis-owner-media::after,.wis-disp-media::after{background:linear-gradient(180deg,rgba(13,36,68,.86),rgba(8,21,43,.95))!important}
  .wis-back-media::after{background:linear-gradient(180deg,rgba(247,250,253,.9),rgba(247,250,253,.97))!important}
  .wis-cta-media::after{background:linear-gradient(180deg,rgba(238,244,251,.9),rgba(238,244,251,.96))!important}
}


/* CONTACT NAV — the .ctpg rules were written when the Contact hero was LIGHT (a PageHero);
   the hero is now the dark .ctp-hero, but those rules still forced a white nav bar with navy
   links while body.ctr swapped in the white/glow logo — so the dark-background logo landed on
   a white bar with its halo showing. Neutralise the stale .ctpg overrides and let .ctr behave
   exactly as it does on every other dark-hero page: transparent nav, white links, light logo. */
body.ctpg .nav:not(.scrolled){background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-bottom-color:transparent!important;box-shadow:none!important}
body.ctpg .nav:not(.scrolled) .nav-link,body.ctpg .nav:not(.scrolled) .nav-link-join{color:rgba(255,255,255,.92)!important}
body.ctpg .nav:not(.scrolled) .nav-link:hover,body.ctpg .nav:not(.scrolled) .nav-link-wrap:hover .nav-link{color:#fff!important}
body.ctpg .nav:not(.scrolled) .logo img.logo-mark-dark{display:none!important}
body.ctpg .nav:not(.scrolled) .logo img.logo-mark-light{display:block!important}
/* scrolled bar is light on every page — keep the navy mark there */
body.ctpg .nav.scrolled .logo img.logo-mark-light{display:none!important}
body.ctpg .nav.scrolled .logo img.logo-mark-dark{display:block!important}


/* NAV ALIGNMENT — the pre-scroll light logo renders at 58-62px inside a nav whose links are a
   14px row, so the mark sits visibly larger and lower than everything beside it, and the
   3-child space-between layout leaves a 169px gap after it. Match the logo to the bar's
   rhythm and centre all three groups on one axis. */
.nav-inner{align-items:center!important}
.logo{align-self:center!important}
.logo img,
body.ctr .nav:not(.scrolled) img.logo-mark-light,
body.abpg .nav:not(.scrolled) .logo img.logo-mark-light,
body.ctpg .nav:not(.scrolled) .logo img.logo-mark-light,
body.home .nav:not(.scrolled) img.logo-mark-light{height:50px!important;width:auto!important}
.nav.scrolled .logo img{height:46px!important}


/* NAV — measured: nav 87px tall, logo box 16→66 (centre 41) while links and CTA centre at 43,
   and the logo's 50px height plus the 16px top padding leaves it sitting 21px off the bottom,
   so the mark reads low and overhangs the painted bar. Give the bar symmetric padding and put
   all three groups on one centre axis. */
.nav-inner{padding-top:14px!important;padding-bottom:14px!important;align-items:center!important}
.logo{display:block!important}
.logo img{align-self:center!important}
.logo{line-height:0!important}
.logo img,
body.ctr .nav:not(.scrolled) img.logo-mark-light,
body.ctpg .nav:not(.scrolled) .logo img.logo-mark-light,
body.abpg .nav:not(.scrolled) .logo img.logo-mark-light,
body.home .nav:not(.scrolled) img.logo-mark-light{height:46px!important;width:auto!important}
.nav.scrolled .logo img{height:42px!important}


/* SCROLLED NAV BACKGROUND — guaranteed, final. On scroll the nav switches links to navy and
   swaps in the dark logo, both of which assume a white bar behind them; with a transparent bar
   that is unreadable wherever the nav passes over a dark section, and .nav.scrolled is global.
   Declared here last, at page-scoped specificity, so no earlier per-page :not(.scrolled)
   override can leave the scrolled state unpainted. */
.nav.scrolled,
body.home .nav.scrolled,body.ctr .nav.scrolled,body.ctpg .nav.scrolled,
body.abpg .nav.scrolled,body.svcdet .nav.scrolled{
  background-color:rgba(255,255,255,.96)!important;
  background-image:none!important;
  backdrop-filter:saturate(150%) blur(16px)!important;
  -webkit-backdrop-filter:saturate(150%) blur(16px)!important;
  border-bottom:1px solid rgba(16,119,213,.14)!important;
  box-shadow:0 4px 24px -16px rgba(16,44,84,.28)!important}
.nav.scrolled .nav-link,.nav.scrolled .nav-link-join,
body.home .nav.scrolled .nav-link,body.ctr .nav.scrolled .nav-link,
body.ctpg .nav.scrolled .nav-link,body.abpg .nav.scrolled .nav-link{color:var(--navy)!important}
.nav.scrolled .nav-link:hover,.nav.scrolled .nav-link-wrap:hover .nav-link{color:#1077D5!important}


/* ===== TRUST BAR — pale blue-gray proof layer (client direction) =====
   Was pure white, so it read as a continuation of the white hero rather than a distinct
   credentials layer. Now a soft cool blue-gray with a thin cool-gray top border, navy
   typography and the existing green/blue/amber icon circles untouched. Bar is ~10% taller
   with more vertical breathing room. */
body.home .statbar-wrap{background:#F3F7FB!important;border-top:1px solid #DDE7F1!important}
body.home .statbar-track{background:transparent!important}
body.home .statbar-run{padding-top:18px!important;padding-bottom:22px!important}
@media(min-width:1081px){
  body.home .statbar-run{padding-top:20px!important;padding-bottom:24px!important}
  body.home .statbar-run .stat .txt{row-gap:8px!important}
}
/* keep the deep navy lead + muted navy-gray sub on the new tint */
body.home .statbar-run .stat .v{color:var(--navy)!important}
body.home .statbar-run .stat .l{color:#5A6B84!important}


/* Projects header: the CTA was bottom-aligned to a 3-element heading block (eyebrow + 2-line
   headline + 3-line paragraph), leaving it stranded low beside the paragraph's last line.
   Top-align it to the heading instead so it reads as part of the section header. */
@media(min-width:1081px){
  body.home .proj-head2{align-items:start!important}
  body.home .proj-head2 .btn-pill-outline{margin-top:38px!important;margin-bottom:0!important;align-self:start!important}
}


/* No white gap above the trust bar: .hero-inner still carried bottom padding, and the bar's
   own margin-top added to it. Both zeroed so the tinted bar starts immediately under the hero
   content. Bar height/padding unchanged — hero padding-bottom is deliberately untouched
   (that is what the bar sits in; collapsing it once covered the hero buttons). */
body.home .hero .hero-inner{padding-bottom:0!important;margin-bottom:0!important}
body.home .statbar-wrap{margin-top:0!important}


/* Trust bar moved down ~2in (192px) from the hero buttons per client. Hero padding-bottom is
   still untouched (collapsing it once covered the buttons); the space is added via the bar's
   own top margin so the tinted band and its height are unaffected. */
body.home .statbar-wrap{margin-top:192px!important}
@media(max-width:1080px){body.home .statbar-wrap{margin-top:96px!important}}


/* Origin chapter: .ab-og is a full-bleed 40/60 split, so the copy column ran the entire
   remaining viewport width with only 36px of right padding — the text measure ended far short
   of it and read as a huge void on the right, misaligned with every other section's 1240px
   grid. Cap the copy to the shared measure and centre it in its column. */
@media(min-width:1081px){
  .ab-og{grid-template-columns:minmax(0,38fr) minmax(0,62fr)!important}
  .ab-og-body{max-width:760px!important;margin:0 auto!important;padding:74px 36px 78px!important}
}


/* Trust bar spacing rhythm: measured headline→para 55px, para→buttons 36px, buttons→bar 212px.
   Client wants the buttons→bar gap to match the paragraph rhythm, so 192px → 56px (sits between
   the 55px and 36px steps above it and reads as part of the same vertical rhythm). Hero
   padding-bottom stays untouched — collapsing it once covered the buttons. */
body.home .statbar-wrap{margin-top:56px!important}
@media(max-width:1080px){body.home .statbar-wrap{margin-top:36px!important}}


/* NAV LOGO — every dark-hero page (body.ctr) must show the LIGHT mark pre-scroll. On Our Work
   the NAVY logo-mark-dark was rendering over the dark hero (measured lightDisp:none /
   darkDisp:block), so the mark read as a dark box. Authoritative swap for all .ctr pages,
   with the navy mark restored on the light scrolled bar. */
body.ctr .nav:not(.scrolled) .logo img.logo-mark-dark{display:none!important}
body.ctr .nav:not(.scrolled) .logo img.logo-mark-light{display:block!important}
body.ctr .nav.scrolled .logo img.logo-mark-light{display:none!important}
body.ctr .nav.scrolled .logo img.logo-mark-dark{display:block!important}


/* Pull-quote strip: quotes are 22/54/62 chars, so equal-flex cells left the short first quote
   with a large void and the whole band read padded out. Tighten the band, drop the type a step,
   and let each cell hug its content so the slack distributes instead of pooling in one column. */
@media(min-width:1081px){
  .ts-pull{padding:30px 0 32px!important}
  .ts-pull-i blockquote{font-size:20px!important;line-height:1.3!important}
  .ts-pull-n{margin-top:auto!important;padding-top:12px!important;font-size:12.5px!important}
  .ts-pull-i{max-width:30%!important;padding-left:34px!important}
  .ts-pull-i:not(:first-child){margin-left:34px!important}
}


/* Trust bar gap: measured hero bottom 660, bar top 716 — 56px of page background showing
   through because the bar's margin-top pushed it away from the hero rather than the hero
   extending to meet it. Move the space INSIDE the hero (padding-bottom) so the hero's own
   white/video field covers it, and drop the bar's margin to zero. Hero content position is
   unchanged; only the hero box grows downward. */
body.home .hero{padding-bottom:56px!important}
body.home .statbar-wrap{margin-top:0!important}
@media(max-width:1080px){
  body.home .hero{padding-bottom:36px!important}
}


/* Homepage 'IGS Sets the Standard' photo: the composition sits high in its column with dead
   space below. Centre the image in its track and recrop so the installed structure is the
   subject rather than the foreground mulch. */
@media(min-width:1081px){
  .whyx-comp{align-items:center!important}
  .whyx-photo{align-self:center!important;min-height:0!important;height:auto!important}
  .whyx-photo img{height:460px!important;object-fit:cover!important;object-position:50% 38%!important}
}


/* ===== SERVICE DETAIL section 2 — rebuilt to client reference ===== */
.sd-overview{background:#F2F6FB!important;padding:76px 0 72px!important;position:relative;overflow:hidden}
.sd-overview::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(23,52,88,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(23,52,88,.045) 1px,transparent 1px);background-size:76px 76px}
.sd-ov-in{position:relative;z-index:2}
.sd-ov-rule{display:block!important;width:280px!important;height:3px!important;margin-top:26px!important;background:linear-gradient(90deg,#48E418,#1077D5)!important;border-radius:3px}
.sd-ov-r .body{font-size:15px!important;line-height:1.76!important;color:var(--slate-dk)!important;max-width:640px}

/* 3 trust marks under the copy */
.sd-marks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:34px}
.sd-mark{display:flex;align-items:flex-start;gap:12px;padding:0 22px;border-left:1px solid rgba(23,52,88,.14)}
.sd-mark:first-child{border-left:0;padding-left:0}
.sd-mark:last-child{padding-right:0}
.sd-mark-ic{flex:0 0 auto;color:var(--mc);display:grid;place-items:center;margin-top:1px}
.sd-mark-b{display:flex;flex-direction:column;gap:5px;min-width:0}
.sd-mark-b b{font-family:var(--sans);font-weight:750;font-size:14px;line-height:1.25;color:var(--navy)}
.sd-mark-b span{font-size:12.5px;line-height:1.5;color:var(--slate)}

/* dark scope card */
.sd-scope-wrap{position:relative;z-index:2;margin-top:44px}
.sd-scope.dark{background:radial-gradient(130% 150% at 6% 0%,#153A66 0%,#0D2444 52%,#08152B 100%)!important;border-radius:14px!important;padding:30px 34px 34px!important;box-shadow:0 0 0 1px rgba(72,228,24,.22),0 18px 44px -26px rgba(8,21,43,.6)!important;border:0!important}
.sd-scope-h{color:#48E418!important;font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.2em;text-transform:uppercase;margin:0 0 24px!important}
/* timeline rail */
.sd-rail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;position:relative;margin:0 0 22px}
.sd-rail::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(140,175,230,.28)}
.sd-rail-d{position:relative;justify-self:center;width:17px;height:17px;border-radius:50%;background:#0D2444;border:3.5px solid var(--gc);box-shadow:0 0 0 4px rgba(13,36,68,.9),0 0 16px 3px var(--gc)}
/* 3 scope columns */
.sdg{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:0!important}
.sdg-g{padding:0 28px!important;border-left:1px solid rgba(140,175,230,.2)!important;border-top:0!important}
.sdg-g:first-child{border-left:0!important;padding-left:0!important}
.sdg-g:last-child{padding-right:0!important}
.sdg-head{display:flex;align-items:baseline;gap:11px;margin-bottom:16px}
.sdg-n{font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-.03em;color:rgba(160,186,220,.5)}
.sdg-lab{font-family:var(--sans)!important;font-weight:700!important;font-size:13px!important;letter-spacing:.16em!important;text-transform:uppercase!important;color:var(--gc)!important;margin:0!important}
.sd-scope.dark ul{margin:0!important;padding:0!important;list-style:none!important}
.sd-scope.dark li{position:relative;padding-left:18px;margin:0 0 11px;font-size:14px;line-height:1.55;color:rgba(226,238,252,.94)!important}
.sd-scope.dark li:last-child{margin-bottom:0}
.sd-scope.dark li::before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;border-radius:50%;background:var(--gc)}
.sd-scope.dark li svg{display:none!important}

/* scope note */
.sd-note{display:flex!important;align-items:flex-start;gap:16px;margin:34px 0 0!important;padding-top:26px;border-top:1px solid rgba(23,52,88,.14)}
.sd-note-ic{flex:0 0 auto;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(16,119,213,.42);color:#1077D5;background:#fff}
.sd-note p{margin:0!important;font-size:14px;line-height:1.66;color:var(--slate-dk);max-width:820px}
.sd-note b{color:var(--navy);font-weight:750}

@media(max-width:1080px){
  .sd-overview{padding:52px 0 56px!important}
  .sd-ov-rule{width:180px!important}
  .sd-marks{grid-template-columns:1fr;gap:20px}
  .sd-mark{padding:0!important;border-left:0!important}
  .sd-scope.dark{padding:22px 20px 26px!important;border-radius:10px!important}
  .sd-rail{display:none}
  .sdg{grid-template-columns:1fr!important;gap:26px!important}
  .sdg-g,.sdg-g:first-child{padding:0!important;border-left:0!important}
  .sd-note{gap:12px}
}


/* Service detail subsections: the grid is a fixed repeat(3,1fr), so a service with only ONE or
   TWO named subsections left 1-2 empty tracks — the copy got squeezed into a third of the width
   with a huge void beside it (client screenshot: Canopy & Shading, one sub). Make the track
   count follow the item count, and lay a lone subsection out as title-left / copy-right so it
   matches the section head above it instead of hugging one narrow column. */
@media(min-width:1081px){
  .sd-subs-in:has(.sd-sub:only-child){grid-template-columns:minmax(0,1fr)!important}
  .sd-subs-in:has(.sd-sub:first-child:nth-last-child(2)){grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .sd-sub:only-child{display:grid;grid-template-columns:minmax(0,34fr) minmax(0,66fr);column-gap:48px;align-items:start;padding:0!important;border-left:0!important}
  .sd-sub:only-child .sd-sub-rule{grid-column:1;grid-row:1;margin-bottom:18px}
  .sd-sub:only-child h3{grid-column:1;grid-row:2;margin:0;max-width:340px}
  .sd-sub:only-child p{grid-column:2;grid-row:1 / span 2;margin:0!important;max-width:660px}
  /* tighten the head→subs gap the void was exaggerating */
  .sd-subs-in{margin-top:44px!important}
}


/* Service detail section 2 — measured fixes.
   (1) .sd-marks rendered 692→1311 while its column ends at 1275: a 36px overflow past the
       container. Constrain it to the column box.
   (2) The head grid is .sd-ov-in, NOT .sd-overview-in — every earlier rule targeting
       .sd-overview-in matched nothing, which is why the proportions never changed. Set 40/60
       with the reference's larger headline. */
@media(min-width:1081px){
  .sd-ov-in{grid-template-columns:minmax(0,40fr) minmax(0,60fr)!important;gap:56px!important;align-items:start!important}
  .sd-ov-l .h2{font-size:48px!important;line-height:1.06!important;letter-spacing:-.036em!important;max-width:460px!important}
  .sd-ov-rule{width:300px!important}
  .sd-ov-r{padding:0!important}
  .sd-ov-r .body{max-width:none!important}
  .sd-marks{width:100%!important;max-width:100%!important;margin:36px 0 0!important;box-sizing:border-box}
  .sd-mark{min-width:0}
  .sd-mark-b{min-width:0}
}


/* ===== SERVICE DETAIL section 2 — LIGHT card layout per client reference, with glow ===== */
/* marks: icon ABOVE centred text, larger outline glyphs, hairline dividers */
.sd-marks{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:0!important;margin:38px 0 0!important;width:100%!important;box-sizing:border-box}
.sd-mark{display:flex!important;flex-direction:column!important;align-items:center!important;text-align:center!important;gap:10px!important;padding:0 20px!important;border-left:1px solid rgba(23,52,88,.16)!important;min-width:0}
.sd-mark:first-child{border-left:0!important;padding-left:0!important}
.sd-mark:last-child{padding-right:0!important}
.sd-mark-ic{color:var(--mc)!important;display:grid;place-items:center;filter:drop-shadow(0 0 10px color-mix(in srgb,var(--mc) 55%,transparent))}
.sd-mark b{font-family:var(--sans);font-weight:750;font-size:15px;line-height:1.25;color:var(--navy);display:block}
.sd-mark>span:last-child{font-size:13px;line-height:1.55;color:var(--slate)}

/* light scope panel holding 3 glowing white cards */
.sd-scope-lt{background:#fff!important;border:1px solid rgba(23,52,88,.1)!important;border-radius:16px!important;padding:26px 26px 30px!important;box-shadow:0 1px 2px rgba(23,52,88,.05),0 20px 44px -30px rgba(23,52,88,.3)!important}
.sd-scope-lt .sd-scope-h{color:var(--navy)!important;font-family:var(--sans);font-weight:700;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;margin:0 0 22px!important}
.sd-scope-lt .sdg{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:22px!important}
.sd-scope-lt .sdg-g{position:relative;padding:0!important;border:1px solid rgba(23,52,88,.1)!important;border-radius:10px!important;background:#fff!important;overflow:hidden;transition:box-shadow .2s,transform .2s}
.sd-scope-lt .sdg-g:hover{transform:translateY(-2px);box-shadow:0 0 0 1px color-mix(in srgb,var(--gc) 45%,transparent),0 14px 30px -16px color-mix(in srgb,var(--gc) 55%,transparent)}
.sdg-bar{display:block;height:4px;background:var(--gc);box-shadow:0 0 12px 1px color-mix(in srgb,var(--gc) 70%,transparent)}
.sd-scope-lt .sdg-b{padding:22px 22px 24px!important}
.sd-scope-lt .sdg-n{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--gc);color:#fff;font-family:var(--display);font-weight:800;font-size:17px;letter-spacing:-.01em;box-shadow:0 0 0 5px color-mix(in srgb,var(--gc) 14%,transparent),0 0 18px 2px color-mix(in srgb,var(--gc) 55%,transparent)}
.sd-scope-lt .sdg-lab{display:block!important;margin:18px 0 0!important;padding-bottom:14px;border-bottom:1px solid rgba(23,52,88,.12);font-family:var(--sans)!important;font-weight:800!important;font-size:17px!important;letter-spacing:.06em!important;text-transform:uppercase!important;color:var(--navy)!important}
.sd-scope-lt ul{margin:16px 0 0!important;padding:0!important;list-style:none!important}
.sd-scope-lt li{position:relative;padding-left:17px;margin:0 0 10px;font-size:14px;line-height:1.55;color:var(--slate-dk)!important}
.sd-scope-lt li:last-child{margin-bottom:0}
.sd-scope-lt li::before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;border-radius:50%;background:var(--gc);box-shadow:0 0 7px 1px color-mix(in srgb,var(--gc) 60%,transparent)}
.sd-scope-lt li svg{display:none!important}

/* scope note — rounded tile icon per reference */
.sd-note-ic{width:52px!important;height:52px!important;border-radius:12px!important;border:1px solid rgba(16,119,213,.22)!important;background:#EDF3FB!important;color:#1077D5!important}

@media(max-width:1080px){
  .sd-marks{grid-template-columns:1fr!important;gap:24px!important}
  .sd-mark{padding:0!important;border-left:0!important}
  .sd-scope-lt{padding:20px 16px 24px!important;border-radius:12px!important}
  .sd-scope-lt .sdg{grid-template-columns:1fr!important;gap:16px!important}
  .sd-note-ic{width:44px!important;height:44px!important}
}


/* Client: remove the stray dots above the scope cards. The .sd-rail markup was already
   deleted, but the glowing bullet-dot styling on .sd-scope-lt li::before was ALSO painting on
   an earlier .sd-rail-d ruleset that survived in the cascade. Hide both explicitly. */
.sd-rail,.sd-rail-d{display:none!important}


/* ===== SERVICE DETAIL section 2 — final reference (uploads/…01_28_34 AM.png) =====
   Changes from the previous pass: NO scope card at all in this reference. The 3 trust marks sit
   BELOW a full-width hairline, laid out icon-LEFT with the title and 2-line description stacked
   to its right, divided by vertical hairlines. Faint dotted halftone panels sit at the far left,
   top and bottom. Copy stays as approved. */
@media(min-width:1081px){
  .sd-ov-in{grid-template-columns:minmax(0,38fr) minmax(0,62fr)!important;gap:64px!important;align-items:start!important}
  .sd-ov-l .h2{font-size:50px!important;line-height:1.05!important;letter-spacing:-.038em!important;max-width:440px!important}
  .sd-ov-rule{width:300px!important;margin-top:34px!important}
  .sd-ov-r .body{font-size:15.5px!important;line-height:1.78!important;margin-bottom:26px!important}

  /* marks: full-width row under a hairline, icon LEFT of stacked text */
  .sd-marks{grid-column:1 / -1!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;margin:52px 0 0!important;padding-top:44px!important;border-top:1px solid rgba(23,52,88,.13)!important}
  .sd-mark{flex-direction:row!important;align-items:center!important;text-align:left!important;gap:18px!important;padding:0 34px!important}
  .sd-mark:first-child{padding-left:0!important}
  .sd-mark-ic{flex:0 0 auto!important;align-self:center!important}
  .sd-mark b{font-size:19px!important;line-height:1.2!important}
  .sd-mark>span:last-child{font-size:15px!important;line-height:1.55!important;margin-top:4px;display:block}
}
/* the marks row spans both columns, so it must live in the grid — move it out of .sd-ov-r flow */
.sd-ov-in{grid-auto-flow:row}
/* reference has no scope card and no note tile in this section */
.sd-scope-wrap{display:none!important}
/* faint halftone dot panels at the section edges */
.sd-overview::after{content:"";position:absolute;left:0;top:0;bottom:0;width:66px;pointer-events:none;opacity:.5;background-image:radial-gradient(rgba(23,52,88,.16) 1.4px,transparent 1.4px);background-size:13px 13px}
@media(max-width:1080px){
  .sd-marks{padding-top:30px!important;margin-top:34px!important}
  .sd-mark{padding:0!important}
  .sd-overview::after{display:none}
}


/* Section 2 — white ground per client + reference. The pale #F2F6FB read as a tinted band
   under the marks row; the reference is essentially white with only a faint dot texture. */
.sd-overview{background:#fff!important}
.sd-overview::before{opacity:.55}

/* MARKS STACKING BUG: .sd-mark was flex-row, so the icon, the <b> title AND the trailing
   description <span> were all siblings in one row — that is why 'Precision & Care' wrapped and
   its description sat off in a third position. Grid it so the icon spans both rows on the left
   and title/description stack on the right, as the reference shows. */
@media(min-width:1081px){
  .sd-marks{border-top-color:rgba(23,52,88,.12)!important}
  .sd-mark{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;column-gap:18px!important;row-gap:5px!important;align-items:start!important}
  .sd-mark-ic{grid-column:1!important;grid-row:1 / span 2!important;align-self:center!important}
  .sd-mark b{grid-column:2!important;grid-row:1!important;white-space:nowrap}
  .sd-mark>span:last-child{grid-column:2!important;grid-row:2!important;margin-top:0!important}
}
@media(max-width:1080px){
  .sd-mark{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;column-gap:14px!important;row-gap:4px!important}
  .sd-mark-ic{grid-column:1;grid-row:1 / span 2;align-self:center}
  .sd-mark b{grid-column:2;grid-row:1}
  .sd-mark>span:last-child{grid-column:2;grid-row:2}
}


/* Section 2 head: the headline sat top-aligned against a much taller 3-paragraph column, so it
   read as pinned to the top. Centre it against the copy. */
@media(min-width:1081px){
  .sd-ov-in{align-items:center!important}
  .sd-marks{align-self:end!important}
}


/* Our Work nav: measured .pw-hero-strip top=60 against a nav that runs to y=80 — the photo
   strips pushed 20px INTO the nav, putting a hard seam through the logo and the CTA. Drop the
   strips clear of the nav so the bar sits on plain navy. */
@media(min-width:1081px){
  .pw-hero-strip{top:100px!important}
  .pw-hero{padding-top:118px!important}
}
@media(max-width:1080px){.pw-hero-strip{top:88px!important}}


/* ===== JOIN THE NETWORK section 3 — rebuilt to client reference (…01_35_42 AM.png) ===== */
.cn-work{background:radial-gradient(130% 110% at 8% 0%,#12315A 0%,#0C2142 46%,#08152B 100%)!important;padding:72px 0 78px!important}
/* head: vertical divider between headline and copy */
.cn-work-top{display:grid!important;grid-template-columns:minmax(0,36fr) minmax(0,64fr)!important;gap:0!important;align-items:start!important}
.cn-work-l{padding-right:52px}
.cn-work-h{font-family:var(--display)!important;font-weight:800!important;font-size:50px!important;line-height:1.06!important;letter-spacing:-.036em!important;color:#fff!important;margin:16px 0 0!important;max-width:340px}
.cn-work-r{padding-left:52px;border-left:1px solid rgba(140,175,230,.26)}
.cn-work-r p{font-size:14.5px!important;line-height:1.72!important;color:rgba(206,222,242,.9)!important;margin:0 0 16px!important}
.cn-work-say{margin-top:22px;padding-top:20px;border-top:1px solid rgba(140,175,230,.26)}
.cn-work-say p{font-weight:750!important;color:#fff!important;margin:0 0 4px!important;line-height:1.6!important}
.cn-work-say p:last-child{margin-bottom:0!important}

/* two responsibility cards */
.cn-split{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:26px!important;margin-top:44px!important;border:0!important}
.cn-col{position:relative;padding:26px 28px 28px!important;border:1px solid rgba(27,127,234,.42)!important;border-radius:12px!important;background:linear-gradient(160deg,rgba(27,127,234,.09),rgba(8,21,43,.18))!important;box-shadow:0 0 26px -12px rgba(27,127,234,.5)!important}
.cn-col-2{border-color:rgba(72,228,24,.4)!important;background:linear-gradient(160deg,rgba(72,228,24,.08),rgba(8,21,43,.18))!important;box-shadow:0 0 26px -12px rgba(72,228,24,.45)!important}
.cn-col-top{display:flex;align-items:center;gap:16px;margin-bottom:18px}
.cn-col-ic{display:grid;place-items:center;flex:0 0 54px;width:54px;height:54px;border-radius:50%;border:1.5px solid rgba(27,127,234,.55);color:#1B7FEA;background:rgba(8,21,43,.5);box-shadow:0 0 18px -4px rgba(27,127,234,.55)}
.cn-col-2 .cn-col-ic{border-color:rgba(72,228,24,.5);color:#48E418;box-shadow:0 0 18px -4px rgba(72,228,24,.5)}
.cn-col-k{flex:1 1 auto;margin:0!important;padding-bottom:11px;border-bottom:1px solid rgba(140,175,230,.24);font-family:var(--sans)!important;font-weight:800!important;font-size:15px!important;letter-spacing:.1em!important;text-transform:uppercase!important}
.cn-k-blue{color:#1B7FEA!important}
.cn-k-green{color:#48E418!important}
.cn-work .cn-list{margin:0!important;padding:0!important;list-style:none!important}
.cn-work .cn-list li{position:relative;padding-left:26px!important;margin:0 0 11px!important;font-size:14.5px!important;line-height:1.5!important;color:rgba(226,238,252,.95)!important}
.cn-work .cn-list li:last-child{margin-bottom:0!important}
.cn-work .cn-list li::before{content:""!important;position:absolute;left:0;top:.28em;width:15px;height:15px;border-radius:50%!important;background:#1B7FEA!important;box-shadow:0 0 9px 1px rgba(27,127,234,.55)}
.cn-work .cn-list li::after{content:"";position:absolute;left:4.2px;top:.62em;width:6.5px;height:3.4px;border-left:1.7px solid #08152B;border-bottom:1.7px solid #08152B;transform:rotate(-45deg)}
.cn-work .cn-list-green li::before{background:#48E418!important;box-shadow:0 0 9px 1px rgba(72,228,24,.5)}

/* model band */
.cn-model{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:0!important;margin-top:26px!important;padding:26px 8px 0!important;border:1px solid rgba(27,127,234,.3)!important;border-radius:12px!important;background:linear-gradient(160deg,rgba(27,127,234,.06),rgba(8,21,43,.2))!important}
.cn-m{display:flex!important;align-items:center!important;gap:16px!important;padding:0 26px 26px!important;border-left:1px solid rgba(140,175,230,.22)!important}
.cn-m:first-child{border-left:0!important}
.cn-m-ic{display:grid;place-items:center;flex:0 0 54px;width:54px;height:54px;border-radius:50%;border:1.5px solid rgba(27,127,234,.55);color:#1B7FEA;background:rgba(8,21,43,.5);box-shadow:0 0 18px -4px rgba(27,127,234,.55)}
.cn-ic-g{border-color:rgba(72,228,24,.5)!important;color:#48E418!important;box-shadow:0 0 18px -4px rgba(72,228,24,.5)!important}
.cn-m-tx{display:flex;flex-direction:column;min-width:0}
.cn-m-1{font-family:var(--display)!important;font-weight:800!important;font-size:23px!important;line-height:1.12!important;letter-spacing:-.02em!important;text-transform:uppercase!important;color:#1B7FEA!important;margin:0!important}
.cn-m-g{color:#48E418!important}
.cn-m-2{font-family:var(--display)!important;font-weight:800!important;font-size:23px!important;line-height:1.12!important;letter-spacing:-.02em!important;text-transform:uppercase!important;color:#fff!important;margin:0!important}
/* connector pill */
.cn-model-tail{grid-column:1 / -1;display:flex;align-items:center;gap:0;padding:0 26px 26px}
.cn-tail-l,.cn-tail-r{flex:1 1 auto;height:1px;position:relative}
.cn-tail-l{background:linear-gradient(90deg,rgba(27,127,234,0),#1B7FEA)}
.cn-tail-r{background:linear-gradient(90deg,#48E418,rgba(72,228,24,0))}
.cn-tail-l::after,.cn-tail-r::before{content:"";position:absolute;top:-3.5px;width:8px;height:8px;border-radius:50%}
.cn-tail-l::after{right:-4px;background:#1B7FEA;box-shadow:0 0 10px 2px rgba(27,127,234,.7)}
.cn-tail-r::before{left:-4px;background:#48E418;box-shadow:0 0 10px 2px rgba(72,228,24,.7)}
.cn-model-foot{flex:0 0 auto;margin:0!important;padding:12px 26px!important;border:1px solid rgba(140,175,230,.3);border-radius:8px;background:rgba(8,21,43,.55);font-family:var(--sans)!important;font-weight:700!important;font-size:16px!important;color:#fff!important;text-align:center!important}

@media(max-width:1080px){
  .cn-work{padding:52px 0 56px!important}
  .cn-work-top{grid-template-columns:1fr!important}
  .cn-work-l{padding-right:0}
  .cn-work-h{font-size:29px!important;max-width:none}
  .cn-work-r{padding-left:0;border-left:0;border-top:1px solid rgba(140,175,230,.26);padding-top:20px;margin-top:20px}
  .cn-split{grid-template-columns:1fr!important;gap:18px!important}
  .cn-model{grid-template-columns:1fr!important;padding:20px 0 0!important}
  .cn-m{padding:0 20px 20px!important;border-left:0!important}
  .cn-model-tail{flex-direction:column;padding:0 20px 20px}
  .cn-tail-l,.cn-tail-r{display:none}
}


/* Contractor hero: states strip removed per client. */
.cn-states{display:none!important}



/* Scoping .cn-list to .cn-work removed the circled-check bullets from the LIGHT .cn-fit
   'Be Prepared to Provide' list too, leaving bare squares. Give that list its own
   light-section bullet: a green circled check on the pale ground. */
.cn-fit .cn-list{margin:0!important;padding:0!important;list-style:none!important}
.cn-fit .cn-list li{position:relative;padding-left:26px!important;margin:0 0 13px!important;font-size:15px!important;line-height:1.5!important;color:var(--slate-dk)!important}
.cn-fit .cn-list li:last-child{margin-bottom:0!important}
.cn-fit .cn-list li::before{content:""!important;position:absolute;left:0;top:.24em;width:15px;height:15px;border-radius:50%!important;background:#3A9E1C!important;box-shadow:none!important}
.cn-fit .cn-list li::after{content:""!important;position:absolute;left:4.2px;top:.58em;width:6.5px;height:3.4px;border-left:1.7px solid #fff;border-bottom:1.7px solid #fff;transform:rotate(-45deg);background:none!important}


/* Client: the blue and green section bullets should be NEON. Restore the logo neon green with a
   glow on the light 'Be Prepared to Provide' list, and give the Trade Experience column matching
   neon-blue markers so the two columns read as a pair. */
.cn-fit .cn-list li::before{background:#48E418!important;box-shadow:0 0 9px 2px rgba(72,228,24,.55)!important}
.cn-fit .cn-list li::after{border-left-color:#08152B!important;border-bottom-color:#08152B!important}
.cn-fit .cn-trades li{position:relative;padding-left:26px!important}
.cn-fit .cn-trades li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:9px;border-radius:50%;background:#1B7FEA;box-shadow:0 0 9px 2px rgba(27,127,234,.55)}


/* Client: make the green checklist markers plain neon dots like the blue column — drop the
   check glyph (the ::after arrow/tick). */
.cn-fit .cn-list li::after{display:none!important;content:none!important}
.cn-fit .cn-list li::before{width:9px!important;height:9px!important;top:.62em!important}
.cn-fit .cn-list li{padding-left:26px!important}


/* 'IGS Sets the Standard' photo — the real issue, measured: the photo lives inside the 1240px
   centred .wrap, so at any viewport wider than 1240 it stops (100vw-1240)/2 short of the right
   edge, leaving the background strip the client keeps reporting. Bleed it out by exactly that
   amount, clamped at 0 so it never overshoots on narrow screens. My earlier attempt used
   calc((100% - 100vw)/2) with width:auto, which resolved against the GRID TRACK not the wrap
   and distorted the image — this resolves against the known wrap width instead. */
@media(min-width:1081px){
  .whyx{overflow:hidden}
  .whyx-photo{margin-right:min(0px,calc((1240px - 100vw) / 2))!important;width:auto!important;max-width:none!important}
  .whyx-photo img{width:100%!important;height:100%!important;object-fit:cover!important;display:block}
}



/* Services Overview list: glow the numbered colour rules and give each row divider a luminous
   edge so the two columns read as lit. Real classes are .sv-num/.sv-row/.sv-col — an earlier
   attempt used .svc-r-n/.svc-row which do not exist. */
.sv-num::after{box-shadow:0 0 10px 2px var(--rc,#1B7FEA);height:3px!important}
.sv-row{position:relative;border-bottom-color:rgba(140,175,230,.16)!important}
.sv-row::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;pointer-events:none;background:linear-gradient(90deg,color-mix(in srgb,var(--rc,#1B7FEA) 45%,transparent),color-mix(in srgb,var(--rc,#1B7FEA) 12%,transparent) 60%,transparent)}
.sv-col+.sv-col{border-left-color:rgba(140,175,230,.22)!important;box-shadow:-1px 0 14px -6px rgba(27,127,234,.45)}
.sv-row:hover .sv-num::after{box-shadow:0 0 16px 3px var(--rc,#1B7FEA)}


/* Why IGS 'Is That Your Best?' band — the section was cramped (short band, photo washing under
   the copy) and the quote was set in ACTION blue, which the role system reserves for buttons and
   links. The strongest statement on the page should be foundation white with the quote marks as
   the green accent. */
.wis-best{padding:64px 0 68px!important;position:relative}
.wis-best-in{grid-template-columns:minmax(0,46fr) minmax(0,54fr)!important;gap:56px!important;align-items:center!important}
.wis-best-q{color:#fff!important;font-size:42px!important;line-height:1.08!important;letter-spacing:-.036em!important;text-transform:none!important;max-width:460px}
.wis-best-mark{color:#48E418!important;margin-right:2px!important;text-shadow:0 0 18px rgba(72,228,24,.55)}
.wis-best-q::after{content:"";display:block;width:120px;height:3px;margin-top:24px;border-radius:3px;background:linear-gradient(90deg,#48E418,#1B7FEA);box-shadow:0 0 14px 2px rgba(72,228,24,.4)}
.wis-best-p{font-size:15.5px!important;line-height:1.76!important;color:rgba(214,228,246,.92)!important;max-width:620px}
/* keep the photo behind the copy from washing it out */
.wis-disp-media{opacity:.5!important}
.wis-best{background:linear-gradient(90deg,rgba(6,16,32,.86) 0%,rgba(6,16,32,.72) 46%,rgba(6,16,32,.5) 100%)!important;border-top:1px solid rgba(140,175,230,.2)!important}
@media(max-width:1080px){
  .wis-best{padding:44px 0 48px!important}
  .wis-best-in{grid-template-columns:1fr!important;gap:20px!important}
  .wis-best-q{font-size:27px!important;max-width:none}
  .wis-best-q::after{width:90px;margin-top:18px}
}


/* BUTTON GLOW — unify site-wide to the homepage hero treatment. The base .btn-blue carried only
   a subtle 0 2px 8px drop shadow while the hero override used 0 0 34px -2px rgba(16,119,213,.82);
   every other page's buttons therefore looked flat. Same glow everywhere, base and hover. */
.btn-blue{box-shadow:0 0 26px -6px rgba(16,119,213,.7),0 2px 8px -3px rgba(16,119,213,.4)!important}
.btn-blue:hover{box-shadow:0 0 34px -2px rgba(16,119,213,.85),0 3px 12px -4px rgba(16,119,213,.5)!important}
.btn-green{box-shadow:0 0 26px -6px rgba(72,228,24,.6),0 2px 8px -3px rgba(72,228,24,.35)!important}
.btn-green:hover{box-shadow:0 0 34px -2px rgba(72,228,24,.75),0 3px 12px -4px rgba(72,228,24,.45)!important}
.btn-gradient{box-shadow:0 0 26px -6px rgba(16,119,213,.7)!important}
.btn-gradient:hover{box-shadow:0 0 34px -2px rgba(16,119,213,.85)!important}
/* light-on-dark outline buttons get a faint matching halo so they read as the same family */
.btn-outline-lt{box-shadow:0 0 20px -8px rgba(255,255,255,.35)!important}
.btn-outline-lt:hover{box-shadow:0 0 26px -6px rgba(72,228,24,.45)!important}
/* the hero deliberately had NO glow on its secondary outline button — keep that */
.hero-actions .btn-outline{box-shadow:none!important}


/* ===== IGS SETS THE STANDARD — rebuilt to the client reference (…01_35_42) =====
   Split head with a vertical divider, bolded statement lines under a hairline, then glowing
   bordered cards with circular icons and colour-ruled labels. Kept on a LIGHTER navy than the
   Services section directly above so the two dark bands read as distinct rather than one mass —
   the client flagged back-to-back darks earlier. */
.whyx{background:radial-gradient(130% 110% at 8% 0%,#16386A 0%,#102B52 46%,#0B1E3B 100%)!important;padding:76px 0 82px!important;position:relative;border-top:1px solid rgba(140,175,230,.18)}
.whyx-bg{display:none!important}
.whyx-top{display:grid!important;grid-template-columns:minmax(0,36fr) minmax(0,64fr)!important;gap:0!important;align-items:start!important}
.whyx-top-l{padding-right:52px}
.whyx .eyebrow-rule{display:flex!important;color:#48E418!important}
.whyx .eyebrow-rule span:empty{background:#48E418}
.whyx-h{font-family:var(--display)!important;font-weight:800!important;font-size:50px!important;line-height:1.06!important;letter-spacing:-.036em!important;color:#fff!important;margin:16px 0 0!important;max-width:340px}
.whyx-top-r{padding-left:52px;border-left:1px solid rgba(140,175,230,.26)}
.whyx-top-r p{font-size:14.5px!important;line-height:1.72!important;color:rgba(206,222,242,.9)!important;margin:0 0 16px!important;max-width:660px}
.whyx-say{margin-top:22px;padding-top:20px;border-top:1px solid rgba(140,175,230,.26)}
.whyx-say p{font-weight:750!important;color:#fff!important;margin:0 0 4px!important;line-height:1.6!important}
.whyx-say p:last-child{margin-bottom:0!important}
.whyx-cta{margin-top:26px!important}

/* four glowing cards */
.whyx-cards{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:24px!important;margin-top:46px!important}
.whyx-card{padding:24px 26px 26px!important;border:1px solid color-mix(in srgb,var(--bc) 42%,transparent)!important;border-radius:12px!important;background:linear-gradient(160deg,color-mix(in srgb,var(--bc) 9%,transparent),rgba(8,21,43,.2))!important;box-shadow:0 0 26px -12px color-mix(in srgb,var(--bc) 55%,transparent)!important;transition:transform .18s,box-shadow .18s}
.whyx-card:hover{transform:translateY(-2px);box-shadow:0 0 32px -8px color-mix(in srgb,var(--bc) 65%,transparent)!important}
.whyx-card-top{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.whyx-card-ic{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--bc) 55%,transparent);color:var(--bc);background:rgba(8,21,43,.5);box-shadow:0 0 18px -4px color-mix(in srgb,var(--bc) 55%,transparent)}
.whyx-card-t{flex:1 1 auto;padding-bottom:11px;border-bottom:1px solid rgba(140,175,230,.24);font-family:var(--sans);font-weight:800;font-size:15px;letter-spacing:.06em;text-transform:uppercase;color:var(--bc)}
.whyx-card-d{font-size:14.5px!important;line-height:1.62!important;color:rgba(226,238,252,.92)!important;margin:0!important}

@media(max-width:1080px){
  .whyx{padding:52px 0 56px!important}
  .whyx-top{grid-template-columns:1fr!important}
  .whyx-top-l{padding-right:0}
  .whyx-h{font-size:29px!important;max-width:none}
  .whyx-h br{display:none}
  .whyx-top-r{padding-left:0;border-left:0;border-top:1px solid rgba(140,175,230,.26);padding-top:20px;margin-top:20px}
  .whyx-cards{grid-template-columns:1fr!important;gap:16px!important;margin-top:32px!important}
}


/* Verifier fixes on the IGS Standard rebuild:
   (a) .whyx-card-t at #1077D5 measured 2.56-3.66:1 on this band (AA needs 4.5) — switch the blue
       cards to the dark-surface blue #1B7FEA already used by .cn-k-blue / .ts-quote-n.
   (b) .whyx-say removed in JSX (invented copy); drop its CSS too. */
.whyx-card[style*="--blue"] .whyx-card-t,.whyx-card[style*="1077D5"] .whyx-card-t{color:#1B7FEA!important}
.whyx-card[style*="--blue"] .whyx-card-ic,.whyx-card[style*="1077D5"] .whyx-card-ic{color:#1B7FEA!important;border-color:rgba(27,127,234,.55)!important}
.whyx-say{display:none!important}
/* photo restored below the cards as a full-width band so the reference layout is untouched */
.whyx-shot{margin:46px 0 0;overflow:hidden;border-radius:12px;border:1px solid rgba(140,175,230,.22);box-shadow:0 0 30px -14px rgba(27,127,234,.5)}
.whyx-shot img{display:block;width:100%;height:340px;object-fit:cover}
@media(max-width:1080px){.whyx-shot{margin-top:30px}.whyx-shot img{height:220px}}


/* Hero made larger per client — the last-applied body.home rule wins, so this must be appended.
   Taller minimum, more top padding for the copy, and a bigger headline/lead so the section scales
   with the box rather than just gaining empty space. Trust-bar clearance below is unchanged. */
@media(min-width:1081px){
  body.home .hero{padding-bottom:56px!important}
  body.home .hero .hero-inner{padding-top:176px!important}
  body.home .h-hero{font-size:60px!important}
  body.home .hero-copy .body-lg,body.home .hero-copy p{font-size:18px!important;line-height:1.66!important}
  
}
@media(max-width:1080px){
  body.home .hero{min-height:600px!important}
  body.home .hero .hero-inner{padding-top:126px!important}
}


/* Client: nav bar too tall, Our Work hero too short. Trim the bar and give the projects hero
   real height (it was 573px vs the homepage's 820px). Strip top offset re-derived to match. */
.nav-inner{padding-top:11px!important;padding-bottom:11px!important}
.logo img{height:42px!important}
.nav.scrolled .logo img{height:38px!important}
@media(min-width:1081px){
  .pw-hero{padding-top:104px!important;padding-bottom:0!important;min-height:760px!important}
  .pw-hero-strip{top:74px!important}
  .pw-hero-h{font-size:56px!important}
  .pw-hero-p{font-size:16px!important}
  .pw-hero-in{padding-bottom:56px!important}
}
@media(max-width:1080px){
  .pw-hero{min-height:560px!important;padding-top:88px!important}
  .pw-hero-strip{top:64px!important}
}


/* Client: centre the projects hero copy vertically in the section. .pw-hero-in was bottom-padded
   only, so the block sat high in a 760px band. Make the hero a flex column and centre it. */
@media(min-width:1081px){
  .pw-hero{display:flex!important;flex-direction:column!important;justify-content:center!important;padding-top:80px!important;padding-bottom:0!important}
  .pw-hero-in{padding-bottom:0!important;margin-top:auto!important;margin-bottom:auto!important}
}


/* Projects hero centering must apply at EVERY width — the previous rule was trapped inside
   @media(min-width:1081px) while min-height:560px was set in the max-width:1080 block, so below
   1080 the hero stayed display:block with top-aligned copy in an artificially tall box, leaving a
   measured 179px dead band above .pw-feat. Centering is now unconditional; only the SIZE values
   stay per-breakpoint. */
.pw-hero{display:flex;flex-direction:column;justify-content:center}
.pw-hero-in{margin-top:auto;margin-bottom:auto}
@media(max-width:1080px){
  .pw-hero{padding-top:80px!important;padding-bottom:24px!important}
  .pw-hero-in{padding-bottom:0!important}
}


/* Client: projects hero copy centred in HEIGHT but pinned far LEFT. .pw-hero-in is the centred
   1240px wrap, so the copy inherited that inset. Pull the block to the viewport's left edge while
   keeping the vertical centering from the previous fix. */
.pw-hero-in{margin-left:0!important;max-width:none!important;padding-left:56px!important}
.pw-hero-in>*{max-width:620px}
@media(max-width:1080px){
  .pw-hero-in{padding-left:22px!important}
  .pw-hero-in>*{max-width:none}
}


/* Photo-strip / nav seam, root fix. The nav trim reduced the bar from ~87px to 71px, but the
   mobile strip offset (top:64px) had been hard-coded against the OLD height, so the strip pushed
   7px up into a nav that has no background on this page — the same seam the client reported
   repeatedly. Define the nav height ONCE as a token and derive the strip from it, so a future nav
   resize cannot silently reopen this. */
:root{--nav-h:71px}
.pw-hero-strip{top:var(--nav-h)!important}
@media(max-width:1080px){.pw-hero-strip{top:var(--nav-h)!important}}

/* LOGO DUPLICATION — a nav-alignment rule set .logo img{display:block!important}, which beat the
   base .logo img.logo-mark-light{display:none} and rendered BOTH logo files stacked on every page.
   Display is now owned solely by the variant rules: light mark only on dark-hero pages pre-scroll,
   navy mark everywhere else. */
.logo img.logo-mark-light{display:none!important}
.logo img.logo-mark-dark{display:block!important}
body.ctr .nav:not(.scrolled) .logo img.logo-mark-light,
body.ctpg .nav:not(.scrolled) .logo img.logo-mark-light{display:block!important}
body.ctr .nav:not(.scrolled) .logo img.logo-mark-dark,
body.ctpg .nav:not(.scrolled) .logo img.logo-mark-dark{display:none!important}


/* Licensing page: the body content was centred in its own narrow measure while the hero headline
   sat at the page gutter, so the two disagreed. Pin the hero and the body to the SAME left edge. */
.legal-body,.legal-wrap,.legal-in{margin-left:0!important;margin-right:auto!important;text-align:left!important}
.legal-body h2,.legal-body h3,.legal-body p,.legal-body ul,.legal-body li{text-align:left!important}
@media(min-width:1081px){
  .page-hero .wrap,.legal-body{max-width:1240px!important;margin-left:auto!important;margin-right:auto!important;padding-left:36px!important;padding-right:36px!important}
  .legal-body>*{max-width:820px}
}
@media(max-width:1080px){
  .page-hero .wrap,.legal-body{padding-left:22px!important;padding-right:22px!important}
  .legal-body>*{max-width:none}
}


/* Service-detail breadcrumbs sit over a photo hero — the muted grey read as barely visible.
   White with a shadow so every crumb is legible on any frame. */
.sd-crumbs,.sd-crumbs.dark{color:rgba(255,255,255,.86)!important;text-shadow:0 1px 12px rgba(6,16,32,.75)}
.sd-crumbs a,.sd-crumbs.dark a{color:rgba(255,255,255,.86)!important}
.sd-crumbs a:hover,.sd-crumbs.dark a:hover{color:#fff!important}
.sd-crumbs .cx,.sd-crumbs.dark .cx{color:rgba(255,255,255,.5)!important}


/* Service-detail hero lead paragraph sits over the photo hero — lift it to near-white so it reads
   on any frame, matching the breadcrumb fix. */
.sd-hero-dark .sdh-lead,.svcpg-hero-l .sdh-lead{color:rgba(255,255,255,.94)!important;text-shadow:0 1px 14px rgba(6,16,32,.65)}


/* Nav uses the tagline-cropped marks, so the mark itself can render larger in the same bar. */
.nav .logo img{height:34px!important}
.nav.scrolled .logo img{height:31px!important}
.logo-foot img{height:55px!important}

/* HERO: the <video> has a poster (assets/hero.jpg) which shows faintly through wherever the
   video is masked or still loading. Drop the poster paint and the forced background image so
   only the video renders. */
body.home .hero-media video{background:transparent!important}
body.home .hero-media{background-image:none!important;background-color:transparent!important}
body.home .hero-media img{display:none!important}


/* FORM CONTROLS — unify selects and file inputs with the text fields. Native selects and file
   pickers were rendering at browser-default height/border/font, so they read shorter, greyer and
   dated next to the tall rounded inputs. One treatment for every control, on both the quote form
   and the contractor application. */
.ctf input,.ctf select,.ctf textarea,
.qf-f input,.qf-f select,.qf-f textarea,
.apz input,.apz select,.apz textarea,
.form-row input,.form-row select,.form-row textarea,
input[type="text"],input[type="email"],input[type="tel"],input[type="date"],select,textarea{
  -webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;
  width:100%!important;box-sizing:border-box!important;
  min-height:52px!important;padding:14px 16px!important;
  font-family:var(--sans)!important;font-size:15.5px!important;line-height:1.4!important;
  color:var(--navy)!important;background-color:#fff!important;
  border:1px solid #CBD5E3!important;border-radius:8px!important;
  box-shadow:none!important;transition:border-color .15s,box-shadow .15s!important}
textarea{min-height:150px!important;resize:vertical!important;line-height:1.6!important}
/* custom chevron so selects match the field metrics instead of the OS widget */
select{padding-right:44px!important;cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none'><path d='M1 1.5 7 7.5 13 1.5' stroke='%231077D5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>")!important;
  background-repeat:no-repeat!important;background-position:right 16px center!important}
select:invalid,select option[value=""]{color:#7A879B!important}
select::-ms-expand{display:none}
/* file upload styled as a field, not a bare browser button */
input[type="file"]{min-height:52px!important;padding:13px 16px!important;cursor:pointer;color:var(--slate)!important}
input[type="file"]::file-selector-button{
  -webkit-appearance:none;appearance:none;margin:0 14px 0 0;padding:8px 16px;
  font-family:var(--sans);font-weight:650;font-size:13.5px;
  color:#fff;background:var(--blue);border:0;border-radius:6px;cursor:pointer}
input[type="file"]::file-selector-button:hover{background:var(--blue-deep)}
/* one focus + error treatment across every control */
.ctf input:focus,.ctf select:focus,.ctf textarea:focus,
input:focus,select:focus,textarea:focus{
  outline:none!important;border-color:var(--blue)!important;
  box-shadow:0 0 0 3px rgba(16,119,213,.14)!important}
.ctf.err input,.ctf.err select,.ctf.err textarea,.err input,.err select,.err textarea{border-color:#C63A3A!important}
input::placeholder,textarea::placeholder{color:#7A879B!important;opacity:1}
/* dark-surface variants (contractor application sits on navy) keep the same metrics */
.cn-apply input,.cn-apply select,.cn-apply textarea{
  background-color:rgba(255,255,255,.06)!important;color:#fff!important;
  border-color:rgba(140,175,230,.32)!important}
.cn-apply input::placeholder,.cn-apply textarea::placeholder{color:rgba(180,200,226,.7)!important}
.cn-apply select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none'><path d='M1 1.5 7 7.5 13 1.5' stroke='%231B7FEA' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>")!important}
.cn-apply select option{color:var(--navy);background:#fff}


/* ============================================================================
   LOCKED DESIGN SYSTEM — one value per role. Wrapped in @layer base so it sets the
   DEFAULT for every role while any existing per-section rule (all unlayered, therefore
   higher precedence) still wins. Appending these as blanket !important rules reverted
   deliberate work: .wrap clobbered .pw-hero-in's far-left position, and the blanket
   .section padding overwrote .sd-subs / .ab-team / .wi-inspect.
   ============================================================================ */
:root{
  --h2:40px; --h2-lh:1.12; --h2-ls:-.032em;
  --eyebrow:12px; --eyebrow-ls:.18em;
  --btn-h:52px; --radius:8px; --radius-lg:12px;
  --input-h:52px; --wrap:1240px; --gutter:36px;
  --sec-y:76px; --sec-y-sm:52px;
  --body:15.5px; --body-sm:14.5px; --micro:13px;
}
@layer base{
  .section{padding-top:var(--sec-y);padding-bottom:var(--sec-y)}
  .wrap{max-width:var(--wrap);padding-left:var(--gutter);padding-right:var(--gutter);margin-left:auto;margin-right:auto}
  .h2,h2:not(.h-hero):not(.h1){letter-spacing:var(--h2-ls)}
  .eyebrow,.eyebrow-c,.eyebrow-rule{font-size:var(--eyebrow);letter-spacing:var(--eyebrow-ls);font-weight:700;text-transform:uppercase}
  .btn,.btn-blue,.btn-green,.btn-outline,.btn-outline-lt,.btn-light{min-height:var(--btn-h);display:inline-flex;align-items:center;border-radius:var(--radius);padding:0 26px;font-size:14.5px;font-weight:700}
  .btn-pill-outline,.btn-gradient{min-height:var(--btn-h);display:inline-flex;align-items:center}
  input,select,textarea{min-height:var(--input-h);border-radius:var(--radius)}
  textarea{min-height:150px}
}

/* ---- SMALL GREY TYPE — floors raised, nothing shrinks. Client flagged dark cards,
   footer, and Why IGS supporting copy as near the readability edge. ---- */
.body-sm,.micro,.small{font-size:var(--body-sm)!important}
footer .f-grid a,footer .f-grid li,footer .f-grid p{font-size:14.5px!important;color:rgba(214,228,246,.9)!important}
footer .f-legal,footer .f-cred{font-size:13px!important;color:rgba(196,212,234,.85)!important}
.wis-disp-cols p,.wis-best-p,.wis-back-in p{font-size:15.5px!important;color:rgba(222,234,250,.94)!important}
.whyx-card-d,.cn-list li,.sdg-b li{font-size:14.5px!important}
/* dark-card supporting copy: lift the dimmest tiers */
.ts-card blockquote,.pw-d,.sd-sub p{font-size:14.5px!important}
[class*="-d"],[class*="-p"]{text-wrap:pretty}

/* ---- OUR WORK now uses the white header like every other page (body.ctr dropped) ---- */
body.abpg:not(.ctr) .nav:not(.scrolled){background:rgba(255,255,255,.96)!important;backdrop-filter:saturate(150%) blur(14px);border-bottom:1px solid rgba(16,119,213,.14)!important}
body.abpg:not(.ctr) .nav:not(.scrolled) .nav-link,body.abpg:not(.ctr) .nav:not(.scrolled) .nav-link-join{color:var(--navy)!important}
body.abpg:not(.ctr) .nav:not(.scrolled) .logo img.logo-mark-light{display:none!important}
body.abpg:not(.ctr) .nav:not(.scrolled) .logo img.logo-mark-dark{display:block!important}

/* ---- WHY IGS 'The Standard Behind the Standard' — rebuilt per client: headline + two
   concise text blocks + a strong image, then ONE clean quote band. Previously two small
   paragraph columns floated over photography with a separate quote composition below,
   reading as two sections accidentally joined. ---- */
.wis-disp{padding:var(--sec-y) 0 0!important}
.wis-disp-media{position:absolute!important;top:0!important;right:0!important;bottom:auto!important;width:42%!important;height:74%!important;opacity:1!important;z-index:0}
.wis-disp-media img{width:100%;height:100%;object-fit:cover;filter:none!important}
.wis-disp-media::after{background:linear-gradient(90deg,#0C2142 0%,rgba(12,33,66,.92) 12%,rgba(12,33,66,.35) 46%,rgba(12,33,66,.08) 100%)!important}
.wis-disp-in{position:relative;z-index:2;padding-bottom:var(--sec-y)!important}
.wis-disp-h{font-size:var(--h2)!important;max-width:520px}
.wis-disp-cols{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:40px!important;max-width:600px!important;margin-top:28px!important}
/* one clean quote band, no competing composition */
.wis-best{background:radial-gradient(120% 200% at 6% 0%,#153A66,#0D2444 56%,#08152B)!important;border-top:1px solid rgba(140,175,230,.22)!important;padding:56px 0 60px!important}
.wis-best-in{grid-template-columns:minmax(0,44fr) minmax(0,56fr)!important;gap:52px!important;align-items:center!important}
.wis-best-q{font-size:38px!important;color:#fff!important}
.wis-best-p{max-width:560px}

@media(max-width:1080px){
  .section{padding-top:var(--sec-y-sm)!important;padding-bottom:var(--sec-y-sm)!important}
  .wrap{padding-left:22px!important;padding-right:22px!important}
  :root{--h2:29px}
  .wis-disp{padding-top:var(--sec-y-sm)!important}
  .wis-disp-media{width:100%!important;height:100%!important;opacity:.2!important}
  .wis-disp-cols{grid-template-columns:1fr!important;gap:16px!important;max-width:none!important}
  .wis-best{padding:44px 0 48px!important}
  .wis-best-in{grid-template-columns:1fr!important;gap:20px!important}
  .wis-best-q{font-size:26px!important}
}

/* .wis-disp-in kept 76px bottom padding at mobile while .wis-disp top dropped to 52px. */
@media(max-width:1080px){.wis-disp-in{padding-bottom:var(--sec-y-sm)!important}}


/* BOTH broken sections have one cause: the earlier gradient-seam fix set
   .wis-disp-media / .wis-back-media to {width:100%!important;left:0!important;right:0!important}.
   My later rules set right:0 + width:42% but never reset left:auto — with left AND right both 0
   plus a width, LEFT wins, so each photo pinned to the LEFT directly under the copy and washed it
   out. Reset left explicitly and keep the copy above the image with a real scrim. */
@media(min-width:1081px){
  .wis-disp-media{left:auto!important;right:0!important;width:42%!important;height:74%!important;z-index:0!important}
  .wis-disp-media::after{background:linear-gradient(90deg,#0C2142 0%,#0C2142 18%,rgba(12,33,66,.9) 34%,rgba(12,33,66,.35) 64%,rgba(12,33,66,.06) 100%)!important}
  .wis-disp-in{position:relative;z-index:2}
  .wis-disp-h,.wis-disp-cols{max-width:560px!important}
  .wis-disp-cols p{color:rgba(230,240,252,.96)!important}

  .wis-back-media{left:auto!important;right:0!important;width:46%!important;z-index:0!important}
  .wis-back-media::after{background:linear-gradient(90deg,#F7FAFD 0%,#F7FAFD 20%,rgba(247,250,253,.92) 38%,rgba(247,250,253,.45) 70%,rgba(247,250,253,.06) 100%)!important}
  .wis-back-in{position:relative;z-index:2;max-width:600px!important}
  .wis-back-in p{color:var(--slate-dk)!important;font-size:15.5px!important}
}
@media(max-width:1080px){
  .wis-disp-media,.wis-back-media{left:0!important;right:0!important;width:100%!important}
  .wis-disp-media{opacity:.18!important}
  .wis-back-media{opacity:.16!important}
}


/* Service-detail bottom CTA — the same component renders per-service copy of differing length, so
   the closing section's height varied page to page. Pin a consistent box and centre the content so
   all 12 service pages end identically. */
@media(min-width:1081px){
  .sd-cta-sec{min-height:420px!important;display:flex!important;align-items:center!important;padding-top:56px!important;padding-bottom:56px!important}
  .sd-cta-sec>.wrap,.sd-cta-in{width:100%!important}
  .sd-cta-card{min-height:300px!important;display:grid!important;align-content:center!important}
  .sd-cta-card .h2,.sd-cta-h{min-height:2.24em!important;display:block}
  .sd-cta-card p,.sd-cta-p{min-height:3.2em!important}
}
@media(max-width:1080px){
  .sd-cta-sec{min-height:0!important;padding-top:44px!important;padding-bottom:44px!important}
  .sd-cta-card{min-height:0!important}
  .sd-cta-card .h2,.sd-cta-h,.sd-cta-card p,.sd-cta-p{min-height:0!important}
}


/* Client: move the .wis-back copy further left. It was capped at 600px inside the centred 1240px
   wrap, so it sat inset from the page edge; pin it to the gutter. */
@media(min-width:1081px){
  .wis-back-in{margin-left:0!important;margin-right:auto!important;padding-left:0!important}
  .wis-back .wrap{margin-left:0!important;margin-right:auto!important;max-width:none!important;padding-left:56px!important}
  .wis-back-in>*{max-width:620px}
}
@media(max-width:1080px){
  .wis-back .wrap{padding-left:22px!important}
  .wis-back-in>*{max-width:none}
}


/* GRADIENT SEAM in .wis-disp — two causes, both element-boundary artefacts:
   (1) the media is 42% wide pinned right, and its ::after is fully opaque #0C2142 at its LEFT
       edge while the section behind is a DIFFERENT navy (radial #12315A→#0C2142→#08152B), so the
       two navies meet in a hard step; (2) height:74% cut a hard horizontal line across the band.
   Fix: span the media FULL width and height so there is no boundary to see, and let the overlay
   alone do the fading. Same resolution as the earlier hero seam. */
@media(min-width:1081px){
  .wis-disp-media{left:0!important;right:0!important;width:100%!important;height:100%!important}
  .wis-disp-media::after{background:linear-gradient(90deg,#0C2142 0%,#0C2142 44%,rgba(12,33,66,.92) 55%,rgba(12,33,66,.6) 68%,rgba(12,33,66,.28) 82%,rgba(12,33,66,.06) 100%)!important}
}



/* More breathing room above the 'What Happens Next' steps. Real class is .qnext — the earlier
   guessed selectors (.qz-steps/.ctp-next/.apz-next) matched nothing. */
.qnext{padding-top:40px!important}
@media(max-width:1080px){.qnext{padding-top:28px!important}}


/* Client: the small green rule above the subsection heading is redundant — the section already has
   the gradient rule under its main headline. Remove it. */
.sd-sub-rule{display:none!important}
.sd-sub:only-child h3,.sd-sub h3{margin-top:0!important}


/* The two right-hand paragraphs sat on different left edges: .sd-ov-in is a 38/62 grid with a 64px
   gap, while .sd-sub:only-child is 34/66 with 48px — so each right column began at a different x.
   Match the subsection grid to the overview grid so both columns share one left edge. */
@media(min-width:1081px){
  .sd-sub:only-child{grid-template-columns:minmax(0,38fr) minmax(0,62fr)!important;column-gap:64px!important}
  .sd-sub:only-child h3{max-width:400px!important}
  .sd-sub:only-child p{max-width:700px!important}
}


/* Client: the two right-column paragraphs read as different sizes with odd spacing. They were:
   .sd-ov-r .body at 15px/1.76 and .sd-sub p at 14.5px/1.66 — two scales, two leadings. Pin both to
   one body treatment, and give the subsection block real separation from the overview above it. */
@media(min-width:1081px){
  .sd-ov-r .body,.sd-sub p,.sd-sub:only-child p{font-size:15.5px!important;line-height:1.74!important;color:var(--slate-dk)!important}
  .sd-subs-in{margin-top:56px!important}
  .sd-sub:only-child h3{font-size:21px!important;line-height:1.24!important;letter-spacing:-.02em!important}
  /* the lone subsection's heading and copy sit on one baseline instead of drifting apart */
  .sd-sub:only-child{align-items:start!important}
  .sd-sub:only-child h3{grid-row:1!important;margin-top:0!important}
  .sd-sub:only-child p{grid-row:1!important;grid-column:2!important}
}
@media(max-width:1080px){
  .sd-ov-r .body,.sd-sub p{font-size:15.5px!important;line-height:1.72!important}
}


/* Client: the closing CTA card is oversized against the rest of the service page. My own
   min-height:420px / card min-height:300px pushed it past every other section's rhythm. Bring it
   back to the shared --sec-y padding and let the card size to its content. */
@media(min-width:1081px){
  .sd-cta-sec{min-height:0!important;padding-top:var(--sec-y)!important;padding-bottom:var(--sec-y)!important;display:block!important}
  .sd-cta-card{min-height:0!important;display:grid!important}
  .sd-cta-card .h2,.sd-cta-h,.sd-cta-card p,.sd-cta-p{min-height:0!important}
  .sd-cta-card>*{max-width:none}
  .sd-cta-img img,.sd-cta-card img{max-height:420px!important;object-fit:cover!important}
}


/* ---- Service-detail subsections rebuilt to the client's layout spec ----
   Was two unrelated two-column rows floating in a tall section. Now: one 38/62 top grid, then the
   remaining idea as a FULL-WIDTH pale callout band 48px below it — not another giant column split.
   Also fixes the stranded 'Over', the mismatched column left edges, and the excess vertical gap. */
@media(min-width:1081px){
  .sd-subs{padding:100px 0 0!important}
  .sd-subs-head{grid-template-columns:38% 62%!important;gap:80px!important;align-items:start!important}
  .sdsub-h{font-size:44px!important;line-height:1.0!important;letter-spacing:-.034em!important;max-width:none!important;text-wrap:balance}
  .sdsub-lede{font-size:15.5px!important;line-height:1.6!important;max-width:850px!important}
  /* the callout band */
  .sd-subs-in{display:block!important;margin-top:48px!important;padding-bottom:100px!important}
  .sd-sub,.sd-sub:only-child{display:block!important;grid-template-columns:none!important;
    background:#F2F6FA!important;border:1px solid rgba(23,52,88,.12)!important;border-left:4px solid transparent!important;
    border-image:linear-gradient(180deg,#48E418,#1077D5) 1 stretch!important;border-radius:0!important;
    padding:34px 40px!important;margin:0 0 18px!important;max-width:none!important}
  .sd-sub:last-child{margin-bottom:0!important}
  .sd-sub-k{font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--navy);margin:0 0 12px}
  .sd-sub p,.sd-sub:only-child p{grid-column:auto!important;grid-row:auto!important;max-width:900px!important;
    font-size:15.5px!important;line-height:1.62!important;color:var(--slate-dk)!important;margin:0!important}
}
@media(max-width:1080px){
  .sd-subs{padding:52px 0 0!important}
  .sd-subs-in{display:block!important;margin-top:30px!important;padding-bottom:52px!important}
  .sd-sub{display:block!important;background:#F2F6FA!important;border:1px solid rgba(23,52,88,.12)!important;
    border-left:4px solid #48E418!important;padding:22px!important;margin:0 0 14px!important}
  .sd-sub-k{font-size:11.5px;letter-spacing:.16em}
}


/* Callout band, raised specificity — the earlier .sd-sub:only-child{display:grid} block was still
   winning, so the section kept rendering as two columns instead of the full-width band. Scope from
   the section so this cannot lose, and stop the sub-heading stranding a final word. */
@media(min-width:1081px){
  .sd-subs .sd-subs-in{display:block!important}
  .sd-subs .sd-subs-in .sd-sub,
  .sd-subs .sd-subs-in .sd-sub:only-child{display:block!important;grid-template-columns:none!important;
    background:#F2F6FA!important;border:1px solid rgba(23,52,88,.12)!important;border-left:4px solid #48E418!important;
    border-image:none!important;border-radius:0!important;padding:34px 40px!important;margin:0 0 18px!important;max-width:none!important}
  .sd-subs .sd-subs-in .sd-sub h3,.sd-subs .sd-subs-in .sd-sub .sd-sub-k{
    display:block!important;grid-column:auto!important;grid-row:auto!important;max-width:none!important;margin:0 0 12px!important;
    font-family:var(--sans)!important;font-weight:700!important;font-size:12px!important;letter-spacing:.18em!important;
    text-transform:uppercase!important;color:var(--navy)!important;line-height:1.4!important;text-wrap:balance}
  .sd-subs .sd-subs-in .sd-sub p{grid-column:auto!important;grid-row:auto!important;max-width:900px!important;margin:0!important}
}


/* Client: centre the right paragraph against the left headline block instead of top-aligning it. */
@media(min-width:1081px){
  .sd-subs-head{align-items:center!important}
  .sdsub-lede{margin-top:0!important}
}


/* Centre the right paragraph against the left headline on BOTH service-detail head rows — the
   previous fix only targeted .sd-subs-head; the overview row (.sd-ov-in) was still top-aligned. */
@media(min-width:1081px){
  .sd-ov-in,.sd-subs-head{align-items:center!important}
  .sd-ov-r,.sdsub-lede{margin-top:0!important}
}


/* Homepage testimonials: Rev 2 adds a third quote (Ross Goldbrum), so the two-card layout becomes
   three. Featured card stays wider; the two supporting cards share the remaining track. */
@media(min-width:1081px){
  .tcards-3{display:grid!important;grid-template-columns:minmax(0,1.28fr) minmax(0,1fr) minmax(0,1fr)!important;gap:22px!important;align-items:stretch!important}
  .tcards-3 .tcard{display:flex!important;flex-direction:column!important;height:100%!important}
  .tcards-3 .qt{font-size:15px!important;line-height:1.62!important}
  .tcards-3 .tcard-feat .qt{font-size:15.5px!important}
  .tcards-3 .qa{margin-top:auto!important;padding-top:18px!important}
}
@media(max-width:1080px){
  .tcards-3{display:grid!important;grid-template-columns:1fr!important;gap:16px!important}
}


/* TEXT-LINK BUTTON VARIANTS — exempt from the global button glow + token padding. Both of those
   blocks target .btn/.btn-blue globally with !important, which stomped the intentional
   background-none text-link variants and left a 52px glowing rectangle floating around bare text
   (same class of bug as the .hero-actions .btn-outline exemption). */
.testi-cta .btn,.testi-cta .btn-blue,
.wfits-cta .btn,.svc-top-cta.btn-link,.pw-cta-tel,.nd-item.btn{
  background:none!important;background-image:none!important;border:0!important;
  box-shadow:none!important;padding:0!important;min-height:0!important;border-radius:0!important}
.testi-cta .btn:hover,.testi-cta .btn-blue:hover{box-shadow:none!important;background:none!important}


/* Homepage testimonials: three EQUAL columns. The 1.28fr featured track made the first card
   noticeably wider without reading as intentional emphasis, since all three quotes are similar
   length. Equal thirds + bottom-pinned attributions gives one clean baseline. */
@media(min-width:1081px){
  .tcards-3{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:24px!important}
  .tcards-3 .tcard,.tcards-3 .tcard-feat,.tcards-3 .tcard-sm{padding:34px 32px 32px!important}
  .tcards-3 .qt,.tcards-3 .tcard-feat .qt{font-size:15px!important;line-height:1.64!important}
  .tcards-3 .tcard-feat{border-color:rgba(140,175,230,.22)!important}
}


/* 'Become a Contractor' added as a top-level nav item. It serves the supply-side audience, so it
   is styled quieter than the buyer links and must not compete with the blue Request a Quote CTA. */
.nav-link-join{opacity:.82}
.nav-link-join:hover{opacity:1;color:var(--green-deep)!important}
body.ctr .nav:not(.scrolled) .nav-link-join:hover,
body.ctpg .nav:not(.scrolled) .nav-link-join:hover{color:#48E418!important}


/* 'Become a Contractor' must match the other nav links exactly — the opacity:.82 I added to make
   it quieter lightened the navy instead, so it read as a different colour. Full opacity, same
   colour; distinction comes from position and the green hover only. */
.nav-link-join{opacity:1!important;color:inherit!important}
.nav:not(.scrolled) .nav-link-join,.nav.scrolled .nav-link-join{color:var(--navy)!important}
body.ctr .nav:not(.scrolled) .nav-link-join,
body.ctpg .nav:not(.scrolled) .nav-link-join{color:rgba(255,255,255,.92)!important}


/* ============================================================================
   HOMEPAGE — PHONE TIER (<=640px)
   The file has 210 rules at max-width:1080 (tablet) but only ~9 at phone width, and this
   session appended many desktop rules with fixed heights/paddings OUTSIDE any media query.
   This block neutralises those at phone size, forces single-column, and keeps every type size
   at or above the readability floors (nothing shrinks below 14.5px body / 12px label).
   ============================================================================ */
@media(max-width:640px){
  :root{--sec-y:44px;--sec-y-sm:40px;--gutter:20px;--h2:26px}
  .wrap{padding-left:20px!important;padding-right:20px!important}
  .section{padding-top:44px!important;padding-bottom:44px!important}
  h1,.h-hero{font-size:30px!important;line-height:1.12!important;letter-spacing:-.028em!important}
  .h-hero{white-space:normal!important;max-width:none!important}
  .h-hero br{display:none}
  .h2,h2{font-size:26px!important;line-height:1.16!important}

  /* hero: video becomes a full-bleed backdrop behind stacked copy */
  body.home .hero{padding:96px 0 0!important;min-height:0!important}
  body.home .hero-inner{padding-bottom:0!important}
  
  body.home .hero-media::after{background:linear-gradient(180deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.93) 44%,rgba(255,255,255,.86) 100%)!important}
  body.home .hero-copy{max-width:none!important}
  body.home .hero-copy .body-lg{max-width:none!important;font-size:16px!important}
  .hero-actions{flex-direction:column!important;align-items:stretch!important;gap:10px!important;margin-bottom:0!important}
  .hero-actions .btn{width:100%!important;justify-content:center!important}
  .hero-glow,.hero-halo,.cta-glow{display:none!important}

  /* trust bar: 1 per row, icon left, nothing clipped */
  body.home .statbar-wrap{margin-top:28px!important}
  body.home .statbar-run{grid-template-columns:1fr!important;row-gap:16px!important;padding:20px 0!important}
  body.home .statbar-run .stat{flex-direction:row!important;align-items:center!important;gap:13px!important;padding:0!important;border-left:0!important;overflow:visible!important}
  body.home .statbar-run .stat .txt{display:block!important}
  body.home .statbar-run .stat .v,body.home .statbar-run .stat .v-big,body.home .statbar-run .stat .v-tight{font-size:17px!important;white-space:normal!important}
  body.home .statbar-run .stat .l{font-size:14px!important}

  /* services */
  .svc-top{display:block!important}
  .svc-top-cta{margin-top:18px!important}
  .svc-featured,.svc-supp,.svc-rows,.hcards{grid-template-columns:1fr!important;gap:14px!important}
  .hc-t,.svc-t{font-size:17px!important}

  /* IGS Standard */
  .whyx{padding:44px 0 48px!important}
  .whyx-top{grid-template-columns:1fr!important}
  .whyx-top-l{padding-right:0!important}
  .whyx-top-r{padding-left:0!important;border-left:0!important;border-top:1px solid rgba(140,175,230,.26);padding-top:18px;margin-top:18px}
  .whyx-cards{grid-template-columns:1fr!important;gap:14px!important;margin-top:26px!important}
  .whyx-card{padding:20px!important}
  .whyx-shot img{height:190px!important}
  .whyx-photo{height:auto!important;min-height:0!important}
  .whyx-photo img{height:220px!important}
  .whyx-comp{grid-template-columns:1fr!important;gap:20px!important}

  /* community band */
  .community{min-height:0!important;padding:52px 0!important}
  .community-copy,.community-close,.community-inner .h2,.community-inner .body-lg{max-width:none!important}
  .community-close{font-size:24px!important}

  /* where IGS fits */
  .wfits-in{grid-template-columns:1fr!important;gap:20px!important}
  .wfp{min-height:0!important}

  /* testimonials */
  .tcards,.tcards-3{grid-template-columns:1fr!important;gap:14px!important}
  .tcards-3 .tcard,.tcards-3 .tcard-feat,.tcards-3 .tcard-sm{padding:24px 22px!important}
  .tcards-3 .qt,.qt{font-size:15px!important;line-height:1.62!important}
  .testi-streaks{display:none!important}

  /* projects mosaic */
  .proj-head2{display:block!important}
  .proj-head2 .btn-pill-outline{margin-top:16px!important;margin-bottom:0!important}
  .proj-grid,.proj-mosaic{grid-template-columns:1fr!important;gap:12px!important}
  .proj-grid>*,.proj-mosaic>*{grid-column:auto!important;grid-row:auto!important;min-height:0!important}
  .proj-grid img,.proj-mosaic img{height:220px!important;object-fit:cover!important}

  /* closing CTA */
  .cta{padding:48px 0!important}
  .cta-inner,.cta-inner .h2,.cta-inner .body-lg{max-width:none!important}
  .cta-actions{flex-direction:column!important;align-items:stretch!important;gap:10px!important}
  .cta-actions .btn,.cta-phone{width:100%!important;justify-content:center!important}

  /* footer */
  footer .f-grid{grid-template-columns:1fr!important;gap:26px!important}
  footer .f-grid a,footer .f-grid li,footer .f-grid p{font-size:15px!important}
  footer .f-legal,footer .f-cred{font-size:13px!important;text-align:left!important}

  /* nav: hide desktop links, show the menu button */
  .nav-links{display:none!important}
  .menu-btn{display:inline-flex!important}
  .nav-cta .btn{padding:0 16px!important;font-size:13.5px!important}
  .nav .logo img{height:38px!important}
  .nav-inner{padding-top:10px!important;padding-bottom:10px!important}

  /* nothing anywhere may overflow the viewport */
  section,.wrap,.section{max-width:100vw!important;overflow-x:clip}
  img,video{max-width:100%!important}
}


/* ---- Mobile nav drawer (Nav owns its own state, so it works on EVERY page — previously
   onMenu was a no-op on all subpages and the homepage drawer's links all pointed at #services) ---- */
.navdrawer{position:fixed;inset:0;z-index:200;display:none;flex-direction:column;
  background:radial-gradient(120% 100% at 10% 0%,#153A66 0%,#0D2444 46%,#08152B 100%);
  padding:18px 22px 26px;overflow-y:auto;-webkit-overflow-scrolling:touch}
.navdrawer.open{display:flex}
.nd-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}
.navdrawer .logo img{height:40px!important;width:auto;display:block!important}
.navdrawer .logo img.logo-mark-light{display:block!important}
.nd-x{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid rgba(140,175,230,.3);background:rgba(255,255,255,.06);color:#fff;cursor:pointer}
.nd-links{display:flex;flex-direction:column}
.nd-links a{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:17px 2px;min-height:56px;border-bottom:1px solid rgba(140,175,230,.16);
  font-family:var(--sans);font-weight:650;font-size:17px;color:#fff;text-decoration:none}
.nd-links a:last-child{border-bottom:0}
.nd-links a svg{color:#48E418;flex-shrink:0}
.nd-foot{margin-top:26px;display:flex;flex-direction:column;gap:14px}
.nd-foot .btn{width:100%;justify-content:center}
.nd-tel{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;
  font-family:var(--sans);font-weight:700;font-size:16px;color:#fff;text-decoration:none;
  border:1px solid rgba(140,175,230,.3);border-radius:8px}
.nd-tel svg{color:#48E418}


/* menu button only appears at phone tier; hidden on desktop where the links show */
.menu-btn{display:none}
@media(max-width:640px){.menu-btn{display:inline-flex!important;align-items:center;justify-content:center;width:44px;height:44px;background:transparent;border:0;cursor:pointer;color:var(--navy)}
  body.ctr .nav:not(.scrolled) .menu-btn,body.ctpg .nav:not(.scrolled) .menu-btn{color:#fff}
}


/* TABLET NAV DEAD ZONE — measured: the desktop nav needs 1104px to lay out (logo 86 +
   links 738 + cta 208 + 72 padding), but the mobile switch was at 640px, so across 641-1104px
   the links were squeezed into ~398px, overflowed instead of wrapping (nowrap + flex-shrink:1),
   and "Become a Contractor" ran 319px over the Request a Quote button with no hamburger available.
   Adding that link this session widened the row ~200px and pushed the requirement past 1080.
   Switch the nav at 1080px — the file's dominant breakpoint — so it covers the whole range. */
@media(max-width:1080px){
  .nav-links{display:none!important}
  .menu-btn{display:inline-flex!important;align-items:center;justify-content:center;width:44px;height:44px;background:transparent;border:0;cursor:pointer;color:var(--navy)}
  body.ctr .nav:not(.scrolled) .menu-btn,body.ctpg .nav:not(.scrolled) .menu-btn{color:#fff}
}



/* RESIDUAL NAV COLLISION 1081-1159px — the earlier 1104px figure summed the children but omitted
   the flex gaps between logo / .nav-links / .nav-cta. Stepped measurement puts the nav's true
   intrinsic minimum at 1160px (first clean width), so the switch belongs there, not at 1080.
   Both nav rules move to max-width:1159px and the drawer guard to min-width:1160px.
   NOTE: the links row is now 738px wide and at its practical ceiling — adding another top-level
   nav item will push this threshold up again. */
@media(max-width:1159px){
  .nav-links{display:none!important}
  .menu-btn{display:inline-flex!important;align-items:center;justify-content:center;width:44px;height:44px;background:transparent;border:0;cursor:pointer;color:var(--navy)}
  body.ctr .nav:not(.scrolled) .menu-btn,body.ctpg .nav:not(.scrolled) .menu-btn{color:#fff}
}
@media(min-width:1160px){.navdrawer{display:none!important}}


/* All three testimonial cards get the same green top edge — my equal-width block had set
   .tcards-3 .tcard-feat{border-color:...} which wiped the featured card's green rule. */
.tcards-3 .tcard,.tcards-3 .tcard-feat,.tcards-3 .tcard-sm{
  border:1px solid rgba(140,175,230,.2)!important;
  border-top:2px solid #48E418!important;
  box-shadow:0 0 24px -14px rgba(72,228,24,.5)!important}


/* About bios: the two founders sit SIDE BY SIDE (client) instead of stacked in the alternating
   photo/text rows. Lisa keeps the wide row treatment below them so she reads as a distinct
   third profile rather than an orphaned half-column. */
.ab-founders{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px;margin:0 0 64px}
.ab-fo{display:flex;flex-direction:column}
.ab-fo-photo{overflow:hidden;border-radius:12px;background:var(--bg-alt);margin-bottom:26px}
.ab-fo-photo img{display:block;width:100%;height:400px;object-fit:cover}
.ab-fo .ab-b3-n{margin:0}
.ab-fo .ab-b3-r{margin:9px 0 20px}
.ab-fo .ab-b3-paras p{font-size:16px;line-height:1.74}
.ab-fo .ab-b3-creds.bot{margin-top:auto;padding-top:18px}
@media(max-width:1080px){
  .ab-founders{grid-template-columns:1fr;gap:44px;margin-bottom:44px}
  .ab-fo-photo img{height:320px}
}
@media(max-width:640px){
  .ab-founders{gap:36px;margin-bottom:36px}
  .ab-fo-photo img{height:260px}
  .ab-fo .ab-b3-paras p{font-size:15.5px}
}


/* Client: larger logo in nav and footer. The neon SVGs carry ~13% transparent padding for the
   rim glow, so they need more height than the old cropped PNGs to read at the same optical size.
   The nav now shows the LOCKUP (wordmark + "Built to Last."), which is ~20% taller than the bare
   mark for the same wordmark size — heights raised here so the tagline line stays legible.
   This is the last .logo img height rule in the file; it owns nav logo sizing. */
.nav .logo img,.logo img{height:54px!important}
.nav.scrolled .logo img{height:48px!important}
.logo-foot img{height:78px!important}
.navdrawer .logo img{height:58px!important}
@media(max-width:640px){
  .nav .logo img{height:50px!important}
  .logo-foot img{height:62px!important}
}


/* Testimonial cards: Kim's 8-line quote left almost no gap before its divider while Ross and
   Bill had slack. Fixing with SPACING rather than a fixed height — the grid already stretches all
   three to match, so giving the quote a real bottom margin and the attribution more room lets the
   tallest card set the height and the other two inherit it. */
/* Attribution block is .qa (not .tcard-who/.tw/.t-attrib — those do not exist). Kim's 8-line
   quote sat almost flush against its divider; the grid already equalises all three cards at the
   tallest, so adding gap here lifts all of them together rather than needing a fixed height. */
.tcard .qt{margin-bottom:26px!important}
.tcard .qa{padding-top:24px!important}
.tcard{padding-bottom:34px!important}
@media(max-width:640px){
  .tcard .qt{margin-bottom:20px!important}
  .tcard .qa{padding-top:20px!important}
  .tcard{padding-bottom:28px!important}
}


/* Founder credential lines: they were rendering with a rule ABOVE and BELOW, which read as a
   half-open box rather than a divider, and the two columns' rules landed at different heights
   because Titus's bio is shorter than Jason's. Single top rule only, pinned to the bottom of each
   column so both align on one line. */
.ab-fo .ab-b3-creds,.ab-fo .ab-b3-creds.bot{
  margin-top:auto!important;
  padding-top:20px!important;
  padding-bottom:0!important;
  border-top:1px solid var(--line)!important;
  border-bottom:0!important}
.ab-fo{padding-bottom:0!important}
@media(max-width:1080px){
  .ab-fo .ab-b3-creds,.ab-fo .ab-b3-creds.bot{margin-top:22px!important;padding-top:18px!important}
}


/* FALSE BOTTOM FIX — measured: hero was 820px tall while a 13" laptop viewport is ~750-800px, so
   it exactly filled the screen with ZERO pixels of the trust bar showing. Nothing signalled more
   content, and the client read the hero as the whole page.
   (1) Cap the hero to 78vh so the trust bar always PEEKS above the fold — a partially visible
       element is the strongest possible scroll cue, far stronger than any icon.
   (2) Add a subtle animated scroll indicator as a secondary cue. */
@media(min-width:1081px){
  /* height decls PRUNED — see the single hero-size rule below */
  body.home .hero{padding-top:104px!important;padding-bottom:40px!important}
}
@media(min-width:1081px) and (max-height:820px){
  body.home .hero{padding-top:0!important}
  body.home .h-hero{font-size:46px!important}
  body.home .hero-sub{margin-top:18px!important}
  body.home .hero-actions{margin-top:24px!important}
}

/* scroll cue */




@keyframes scrollcue{0%{opacity:0;transform:translateY(0)}25%{opacity:1}70%{opacity:0;transform:translateY(11px)}100%{opacity:0;transform:translateY(11px)}}
@media(prefers-reduced-motion:reduce){}
@media(max-width:1080px){}


/* Dropped the "Scroll" label — it reads dated and instructional, and the trust bar peeking above
   the fold already communicates it. Wordless chevron only, which is the current convention. */




@keyframes scrollchev{0%{opacity:.25;transform:rotate(45deg) translate(0,0)}45%{opacity:.85;transform:rotate(45deg) translate(3px,3px)}100%{opacity:.25;transform:rotate(45deg) translate(0,0)}}
@media(prefers-reduced-motion:reduce){}


/* REGRESSION FIX — my false-bottom change used a HARD height (78vh) on .hero, which already has
   overflow:hidden. Content needs ~791px at 1280w but the box was pinned to 554px, so 237px was
   silently clipped: both CTA buttons vanished and the paragraph cut mid-sentence.
   height is a fixed constraint, not a floor. min-height lets the hero peek the trust bar on tall
   screens AND grow to fit on short ones, so it can never clip itself. */
@media(min-width:1081px){
  body.home .hero{padding-top:104px!important;padding-bottom:44px!important}
}
@media(min-width:1081px) and (max-height:820px){
  body.home .hero{height:auto!important;max-height:none!important;min-height:0!important}
  body.home .h-hero{font-size:44px!important}
  body.home .hero-sub{margin-top:16px!important;font-size:16px!important}
  body.home .hero-actions{margin-top:22px!important}
  body.home .hero{padding-top:96px!important;padding-bottom:36px!important}
}


/* Short-laptop tier: content itself needed 769px at vh 748, so min-height:0 alone still left the
   hero taller than the viewport and the trust bar dropped below the fold again. Trim the hero's
   INTRINSIC height (padding + type + gaps) rather than capping the box, so nothing can clip. */
@media(min-width:1081px) and (max-height:820px){
  body.home .hero{padding-top:84px!important;padding-bottom:26px!important}
  body.home .h-hero{font-size:40px!important;line-height:1.07!important}
  body.home .hero-sub{margin-top:14px!important;font-size:15.5px!important;line-height:1.55!important;max-width:480px!important}
  body.home .hero-actions{margin-top:20px!important}
  body.home 
}


/* labeled scroll cue — a real link with a destination, not an instruction */




@keyframes scrollchev{0%{opacity:.45;transform:rotate(45deg) translate(-2px,-2px)}45%{opacity:1;transform:rotate(45deg) translate(1px,1px)}100%{opacity:.45;transform:rotate(45deg) translate(-2px,-2px)}}
@media(prefers-reduced-motion:reduce){}

/* nav and hero were both white and blended into one tall canvas — give the nav a hairline */
body.home .nav:not(.scrolled){border-bottom:1px solid rgba(23,52,88,.07)!important}


/* Reverted to the pre-feedback state: wordless chevron, hero at min(78vh,760px). */


body.home .nav:not(.scrolled){border-bottom:1px solid rgba(16,119,213,.14)!important}


/* (1) Chevron was rotated 45deg pointing down-RIGHT; 45deg on a right+bottom border points
   down-right, so it needs to be built from left+bottom borders to point straight DOWN.
   (2) Client: too much dead space above the headline. The hero's 104px top padding sits under a
   71px nav, so the copy started ~175px down. Trim the top padding and the hero's overall height. */
@media(min-width:1081px){
  body.home .hero{padding-top:36px!important;padding-bottom:34px!important}
}
@media(min-width:1081px) and (max-height:900px){
  body.home .hero{min-height:0!important;padding-top:28px!important;padding-bottom:28px!important}
}
/* arrow points straight down */

@keyframes scrollchev{0%{opacity:.4;transform:rotate(-45deg) translate(0,0)}45%{opacity:1;transform:rotate(-45deg) translate(-3px,3px)}100%{opacity:.4;transform:rotate(-45deg) translate(0,0)}}


/* The 129px gap under the nav was .hero-inner's own top padding, not the hero's — trimming the
   hero alone could not close it. Cutting both, and the hero's min-height with it. */
/* The nav is FIXED, so .hero-inner's top padding is the only thing holding the headline
   clear of it. 12px was left over from when the hero carried an eyebrow + tagline above
   the H1; with those removed the headline collided with the bar. Clears the 64px lockup
   plus the bar's own padding. */
@media(min-width:1081px){
  body.home .hero .hero-inner{padding-top:84px!important;padding-bottom:28px!important}
  /* SINGLE SOURCE for desktop hero height and video-panel size. Four earlier min-height
     rules (820px, 78vh/760, 66vh/620, 60vh/560) and five earlier width/left rules all
     disagreed; they are pruned above so this is the only one that sets either. */
  body.home .hero{height:auto!important;max-height:none!important;min-height:min(74vh,700px)!important}
  body.home .hero-media{left:18%!important;right:0!important;width:82%!important}
}
@media(min-width:1081px) and (max-height:900px){
  body.home .hero .hero-inner{padding-top:76px!important;padding-bottom:18px!important}
  body.home .hero{min-height:0!important}
}


/* Overcorrected: with .hero-inner's padding gone, the hero's own 28px top padding no longer
   cleared the 75px fixed nav and the headline sat BEHIND it (measured gap -41px). The hero's top
   padding must always exceed the nav height. 100px = 75px nav + 25px breathing room. */
@media(min-width:1081px){
  body.home .hero{padding-top:108px!important}
}
@media(min-width:1081px) and (max-height:900px){
  body.home .hero{padding-top:100px!important}
}


/* Rev 2 contractor page — "Focus on the Craft" benefits section. Five named benefits as glow
   cards on the pale field, then the closing statement band. */
.cn-why-lift{font-family:var(--display)!important;font-weight:700!important;font-size:19px!important;line-height:1.5!important;color:var(--navy)!important;margin-top:18px!important}
.cn-benefits{background:#F2F7FC;padding:64px 0 68px;position:relative}
.cn-ben-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.cn-ben{background:#fff;border:1px solid rgba(23,52,88,.12);border-top:3px solid var(--bc);border-radius:12px;padding:26px 26px 28px;box-shadow:0 1px 2px rgba(23,52,88,.05),0 14px 34px -22px rgba(23,52,88,.24)}
.cn-ben-ic{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;color:var(--bc);background:color-mix(in srgb,var(--bc) 10%,#fff);border:1px solid color-mix(in srgb,var(--bc) 30%,transparent);margin-bottom:16px}
.cn-ben-t{font-family:var(--display);font-weight:800;font-size:20px;line-height:1.22;letter-spacing:-.02em;color:var(--navy);margin:0 0 10px}
.cn-ben-d{font-family:var(--sans);font-size:14.5px;line-height:1.66;color:var(--slate-dk);margin:0}
.cn-ben-note{font-family:var(--display);font-weight:700;font-size:17px;color:var(--green-deep);margin:22px 0 0;text-align:center}
.cn-ben-band{margin-top:34px;background:radial-gradient(120% 180% at 6% 0%,#153A66,#0D2444 56%,#08152B);border-radius:12px;padding:30px 36px 32px}
.cn-ben-band-1{font-family:var(--display);font-weight:800;font-size:22px;line-height:1.4;letter-spacing:-.022em;color:#fff;margin:0 0 14px}
.cn-ben-band-2{font-family:var(--sans);font-size:15px;line-height:1.7;color:rgba(206,222,242,.9);margin:0}
@media(max-width:1080px){
  .cn-benefits{padding:48px 0 52px}
  .cn-ben-grid{grid-template-columns:1fr;gap:16px}
  .cn-why-lift{font-size:17px!important}
  .cn-ben-band{padding:22px 22px 24px}
  .cn-ben-band-1{font-size:18px}
}


/* 5 cards in a 3-col grid left a ragged bottom row (3 + 2 + empty cell) — the client objected to
   exactly this pattern earlier. Switch to a 6-col track and span each card 2 columns; the last two
   then get a 1-column offset, which centres them under the row above. */
@media(min-width:1081px){
  .cn-ben-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important}
  .cn-ben{grid-column:span 2}
  .cn-ben:nth-child(4){grid-column:2 / span 2}
  .cn-ben:nth-child(5){grid-column:4 / span 2}
}


/* "Focus on the Craft" layout fixes: (1) the eyebrow is a 62-character label on one line, so it
   overran the left column and crossed into the image gutter — let it wrap inside the column.
   (2) The copy column ended ~200px above the photo, leaving a large dead area bottom-left —
   centre the two columns against each other. (3) Trim the section's trailing space. */
@media(min-width:1081px){
  .cn-why-in{align-items:center!important}
  .cn-why .eyebrow-rule{max-width:520px!important;white-space:normal!important;line-height:1.5!important;align-items:flex-start!important}
  .cn-why .eyebrow-rule span:empty{margin-top:8px;flex:0 0 auto}
  .cn-why-l{max-width:600px}
  .cn-why{padding-bottom:56px!important}
}
@media(max-width:1080px){
  .cn-why .eyebrow-rule{white-space:normal!important;line-height:1.5!important}
}

/* Hero eyebrow removed on the contractor page — restore the headline's top spacing. */
.cn-hero-h{margin-top:0!important}


/* ===== Contractor page — section separation ===== */
/* Intro and the 5 benefit cards sat on the SAME pale field with ~100px of empty space between,
   reading as one undifferentiated block. Intro goes white, cards keep the tint, divider between. */
.cn-why{background:#fff!important;padding-bottom:56px!important}
.cn-benefits{position:relative;padding-top:56px!important;border-top:1px solid rgba(23,52,88,.1)}
.cn-benefits::before{display:none}
.cn-ben-note{margin-top:26px!important;padding-top:20px!important;border-top:1px solid rgba(23,52,88,.1)}
.cn-ben-band{margin-top:30px!important}


/* ===== Contractor application — form grouping + column balance ===== */
/* 10 fields in 5 identical rows read as a wall. Three numbered group headings break it into
   short, scannable stages without changing any field. */
.cn-fgroup{display:flex;align-items:center;gap:12px;margin:0 0 14px;padding-top:4px}
.cn-fgroup + .cn-row{margin-top:0}
.cn-row + .cn-fgroup{margin-top:22px;padding-top:20px;border-top:1px solid rgba(23,52,88,.1)}
.cn-fgroup-n{font-family:var(--display);font-weight:800;font-size:12px;letter-spacing:.02em;color:#fff;background:var(--blue);width:24px;height:24px;border-radius:50%;display:grid;place-items:center;flex:0 0 24px}
.cn-fgroup-t{font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--navy)}

/* Left column was 166px against a 1251px card and top-aligned, leaving a huge dead area.
   Sticky keeps the pitch beside the form while the visitor scrolls the fields. */
@media(min-width:1081px){
  .cn-apply-in{grid-template-columns:minmax(0,36fr) minmax(0,64fr)!important;gap:56px!important;align-items:start!important}
  .cn-apply-l{position:sticky;top:104px}
  .cn-form-card{padding:34px 36px 36px!important}
  .cn-apply .ctf{margin-bottom:16px!important}
  .cn-apply input,.cn-apply select{min-height:48px!important}
  .cn-apply textarea{min-height:120px!important}
}
/* 5 cards on a 3-col grid stranded 2 orphans; auto-fit then produced mismatched widths and a
   stretched empty card. A 6-COLUMN grid fixes it deterministically: row 1 = 3 cards spanning 2,
   row 2 = 2 cards spanning 3. Both rows fill edge to edge, every card equal height per row. */
@media(min-width:1081px){
  .cn-ben-grid{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:20px!important;justify-content:stretch!important}
  .cn-ben{grid-column:span 2!important;padding:24px 24px 26px!important;margin:0!important;max-width:none!important}
  .cn-ben:nth-child(4),.cn-ben:nth-child(5){grid-column:span 3!important}
  .cn-ben-t{font-size:19px!important}
  .cn-ben-d{font-size:14px!important;line-height:1.62!important}
}


/* Application section: the sticky left column left a tall empty area beside the form. Client wants
   the heading and intro ABOVE the form instead. Stack the grid into one column, centre the intro
   at a readable measure, and let the form card take the full width beneath it. */
@media(min-width:1081px){
  .cn-apply-in{display:block!important}
  .cn-apply-l{position:static!important;max-width:660px!important;margin:0 auto 40px!important;text-align:center!important}
  .cn-apply-l .eyebrow-rule{justify-content:center!important}
  .cn-apply-l p{margin-left:auto!important;margin-right:auto!important}
  .cn-form-card{max-width:980px!important;margin:0 auto!important}
}


/* SECTION LEAK, 5th recurrence of todo 204's pattern. The .cn-apply input/select/textarea rules
   were authored for the DARK navy section background, but the controls live inside .cn-form-card,
   which is a SOLID WHITE card — so typed text rendered white-on-white at 1.00 contrast, along with
   the placeholder. The form was unusable and it is the page's only conversion element.
   Scoping to the card so the light treatment wins wherever a .ctf form sits on white. */
.cn-apply .cn-form-card input,
.cn-apply .cn-form-card select,
.cn-apply .cn-form-card textarea{background-color:#fff!important;color:var(--navy)!important;border-color:#CBD5E3!important}
.cn-apply .cn-form-card input::placeholder,
.cn-apply .cn-form-card textarea::placeholder{color:#7A879B!important}
.cn-apply .cn-form-card input:focus,
.cn-apply .cn-form-card select:focus,
.cn-apply .cn-form-card textarea:focus{border-color:var(--blue)!important;box-shadow:0 0 0 3px rgba(16,119,213,.14)!important}
.cn-apply .cn-form-card select option{color:var(--navy);background:#fff}


/* Rev 2_1 references line under the Our Work grid. */
.pw-refs{margin:30px 0 0;padding-top:22px;border-top:1px solid rgba(140,175,230,.2);font-family:var(--sans);font-size:14.5px;line-height:1.6;color:rgba(206,222,242,.85);text-align:center}
@media(max-width:1080px){.pw-refs{margin-top:24px;font-size:14px;text-align:left}}


/* LIGHTBOX SCALING — .lb-stage img had only max-width/max-height, which CAP an image but never
   grow one, so a 239x319 source rendered at 239px inside a 716px stage while a 1600px source
   filled it. Result: the photo halved in size mid-sequence. Setting explicit width/height with
   object-fit:contain makes every image fill the stage regardless of source resolution, preserving
   aspect ratio and never overflowing. */
.lb-stage img{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;display:block!important}


/* Careers 'What We Look For' photo: the crew on the boom lift sits at x 29-41% of the source
   frame, but this band's scrim is opaque across its left 44% — so the subject was occluded.
   Mirroring puts them at x 59-71%, inside the unscrimmed right region. No text or branding in
   frame, so the flip is invisible as a flip. */
.cn-fit-media img{transform:scaleX(-1)}


/* Careers hero: the scrim is fully opaque 0-30% and still .94 at 42%, with only x>70% usable.
   The crew sit at x 20-50% of frame, and cropping the left edge moved them LEFT (deeper into the
   opaque band) — wrong direction. Mirroring maps them to 50-80%, inside the clear zone. Same
   mechanism .cn-fit-media already uses; no text or branding in frame so the flip is undetectable. */
.sd-hero-img img{transform:none!important}

/* Service CTA photo: .sd-cta-r had no bounded height, so a PORTRAIT media2 (boone/04 1067x1600,
   svc-ada 1200x1600) drove the parent to 1320px and object-fit:cover had no box to crop into —
   cover only crops when the box height is constrained independently of the image. Bound the BOX,
   same pattern as .sd-hero-img two sections above, which crops correctly at a fixed 320px. */

.sd-cta-r img{width:100%!important;height:100%!important;object-fit:cover!important;display:block}




/* Careers hero photo now carries READABLE IGS BRANDING on the crew shirts, hard hats and the
   wheelbarrow — mirroring would reverse the logos. Remove the flip for the hero. The crew already
   span x 28-100% of this frame, so several sit in the scrim's clear zone unaided.
   .cn-fit-media keeps its mirror: crew-roof has no legible branding. */
.cn-hero-media img{transform:none!important}

/* CAREERS PHOTOS AT <=1080px — the real defect behind three rounds of photo swapping.
   Both layers were full-bleed absolute backdrops at opacity .24 (hero) and .14 (section 5) under
   a top-down navy scrim, so the subject was ~2.4% and 14% visible and bled straight through the
   body copy. No choice of photograph could fix that. Below 1080 the photo now renders as its own
   bounded block ABOVE the copy at full opacity with the scrim off — the pattern .sd-hero-img and
   .sd-cta-r already use — so the copy sits on solid navy and the crew is actually seen. */
@media(max-width:1080px){
  .cn-hero-media,.cn-fit-media{position:static!important;width:100%!important;left:auto!important;right:auto!important;
    height:250px!important;opacity:1!important;overflow:hidden!important;margin:0 0 26px!important;border-radius:8px}
  .cn-hero-media::after,.cn-fit-media::after{display:none!important}
  .cn-hero-media img,.cn-fit-media img{width:100%!important;height:100%!important;object-fit:cover!important;transform:none!important;display:block}
  .cn-hero{padding-top:96px!important}
  .cn-fit-cols{position:relative;z-index:2}
}
@media(max-width:640px){
  .cn-hero-media,.cn-fit-media{height:200px!important;margin-bottom:20px!important}
}

/* single .sd-cta-r height rule per breakpoint — earlier stacked blocks disagreed (280 vs 260) */
.sd-cta-r{height:300px!important;max-height:none!important;overflow:hidden}
.sd-cta-r img{width:100%!important;height:100%!important;object-fit:cover!important;display:block}
@media(max-width:1080px){.sd-cta-r{height:250px!important}}
@media(max-width:640px){.sd-cta-r{height:200px!important}}


/* ===== ABOUT § 5 — WHY IGS EXISTS (new in Rev 2) =====
   Sits between the origin band (dark) and The People (light), so it is light with its own dark
   closing band — keeps the page's light/dark alternation intact. */
.ab-wx{background:#F7FAFD;padding:88px 0 84px;position:relative}
.ab-wx-head{display:grid;grid-template-columns:minmax(0,44fr) minmax(0,56fr);gap:56px;align-items:end;margin-bottom:52px}
.ab-wx-h{font-family:var(--display);font-weight:800;font-size:44px;line-height:1.06;letter-spacing:-.036em;color:var(--navy);margin:16px 0 0}
.ab-wx-lead{font-size:19px;line-height:1.6;color:var(--slate-dk);margin:0;max-width:560px;font-weight:600}
/* the two sides of the problem */
.ab-wx-two{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:0;align-items:stretch;
  border-top:1px solid rgba(23,52,88,.13);border-bottom:1px solid rgba(23,52,88,.13);padding:34px 0}
.ab-wx-side{padding-right:44px}
.ab-wx-side2{padding-right:0;padding-left:44px}
.ab-wx-k{font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#1077D5;margin:0 0 12px}
.ab-wx-side2 .ab-wx-k{color:#2E7D18}
.ab-wx-side p{font-size:16px;line-height:1.66;color:var(--slate-dk);margin:0}
.ab-wx-bridge{display:flex;align-items:center;padding:0 40px;border-left:1px solid rgba(23,52,88,.13);border-right:1px solid rgba(23,52,88,.13)}
.ab-wx-bridge span{font-family:var(--display);font-weight:800;font-size:19px;line-height:1.22;letter-spacing:-.02em;color:var(--navy);text-align:center}
/* remaining body copy */
.ab-wx-body{margin-top:44px;max-width:900px}
.ab-wx-body p{font-size:16.5px;line-height:1.76;color:var(--slate-dk);margin:0 0 18px}
.ab-wx-body p:last-child{margin-bottom:0}
.ab-wx-pull{font-family:var(--display)!important;font-weight:800!important;font-size:26px!important;line-height:1.2!important;
  letter-spacing:-.028em!important;color:var(--navy)!important;margin:26px 0 26px!important;padding-left:20px;
  border-left:3px solid #48E418}
/* dark closing band */
.ab-wxband{background:radial-gradient(130% 200% at 8% 0%,#16386A,#102B52 52%,#0B1E3B);padding:44px 0}
.ab-wxband-p{margin:0;text-align:center;font-family:var(--display);font-weight:800;font-size:26px;
  line-height:1.3;letter-spacing:-.026em;color:#fff;display:flex;flex-wrap:wrap;justify-content:center;gap:0 12px}
.ab-wxband-p .c-green{color:#48E418!important}

/* Founder bios are far longer in Rev 2 (12 and 10 paragraphs). Tighten the type in the two
   side-by-side columns so the pair stays readable rather than becoming two tall narrow ribbons. */
@media(min-width:1081px){
  .ab-fo .ab-b3-paras p{font-size:15.5px!important;line-height:1.72!important;margin-bottom:14px!important}
  .ab-founders{gap:64px!important}
}

@media(max-width:1080px){
  .ab-wx{padding:56px 0 52px}
  .ab-wx-head{grid-template-columns:1fr;gap:20px;align-items:start;margin-bottom:34px}
  .ab-wx-h{font-size:29px}
  .ab-wx-h br{display:none}
  .ab-wx-lead{font-size:17px;max-width:none}
  .ab-wx-two{grid-template-columns:1fr;padding:26px 0;gap:24px}
  .ab-wx-side,.ab-wx-side2{padding:0!important}
  .ab-wx-bridge{padding:18px 0;border-left:0;border-right:0;border-top:1px solid rgba(23,52,88,.13);border-bottom:1px solid rgba(23,52,88,.13);justify-content:center}
  .ab-wx-bridge span br{display:none}
  .ab-wx-body{margin-top:30px}
  .ab-wx-pull{font-size:21px!important}
  .ab-wxband{padding:32px 0}
  .ab-wxband-p{font-size:19px;gap:0 8px}
}


/* FOUNDER + BIO HEADSHOTS — back off the crop. The sources are portrait/square (Titus 0.91,
   Jason 1.00, Lisa 0.70) but the boxes were landscape (~570x400 = 1.42 and ~470 tall), so
   object-fit:cover had to crop the top and bottom off hard, which reads as "super zoomed in".
   Taller boxes bring the box ratio close to the source ratio, so far less is cropped away.
   object-position sits slightly above centre so the crop takes from below the shoulders, not
   the forehead. */
@media(min-width:1081px){
  .ab-fo-photo img{height:560px!important;object-position:50% 32%!important}
  .ab-b3-photo img{height:560px!important;object-position:50% 30%!important}
}
@media(max-width:1080px){
  .ab-fo-photo img{height:460px!important;object-position:50% 32%!important}
  .ab-b3-photo img{height:420px!important;object-position:50% 30%!important}
}
@media(max-width:640px){
  .ab-fo-photo img{height:380px!important}
  .ab-b3-photo img{height:340px!important}
}


/* Below 1081px the founders grid collapses to ONE column, so the photo box became 852x460
   (ratio 1.85) — a portrait source must discard ~half its height there, worse than the state
   the client complained about. Raising the px height could not fix it because the box also
   got much WIDER. Fix the box RATIO instead of the height: aspect-ratio 4/5 with height:auto
   makes the box track the portrait sources at every width, and a max-width keeps the single
   column from stretching the photo across the full measure. */
@media(max-width:1080px){
  .ab-fo-photo,.ab-b3-photo{max-width:520px!important;margin-left:0!important;margin-right:auto!important}
  .ab-fo-photo img,.ab-b3-photo img{height:auto!important;aspect-ratio:4/5!important;object-fit:cover!important;object-position:50% 30%!important}
}
@media(max-width:640px){
  .ab-fo-photo,.ab-b3-photo{max-width:none!important}
  .ab-fo-photo img,.ab-b3-photo img{aspect-ratio:4/5!important;height:auto!important}
}


/* HERO Rev — new scope line above the supporting paragraph, plus the BUILT TO LAST. tagline.
   Headline reduced to 3 lines so it needs less width; video band widened per client request. */
.hero-scope{font-family:var(--sans);font-weight:650;font-size:13px;line-height:1.6;letter-spacing:.01em;color:var(--slate);margin:18px 0 0;max-width:560px}
.hero-tag{font-family:var(--display);font-weight:800;font-size:15px;letter-spacing:.16em;text-transform:uppercase;color:var(--blue);margin:22px 0 0}
@media(min-width:1081px){
  /* video area larger: band widens 76% -> 84%, copy column tightens to keep the headline clear */
  
  body.home .hero-copy{max-width:720px!important}
  /* Headline set in 3 lines (see sections.jsx breaks), so it can go larger without
     needing more width. This is the last .h-hero size rule — it owns desktop sizing. */
  body.home .h-hero{font-size:52px!important;max-width:800px!important;line-height:1.05!important}
  body.home .hero .body-lg{font-size:16px!important;max-width:520px!important;margin-top:16px!important}
  /* services headline smaller + narrower so the cards carry the weight (client note) */
  .svc-h{font-size:36px!important;max-width:760px!important}
  .svc-top-l .body{font-size:15px!important;max-width:700px!important}
  .svc-top-l .body + .body{margin-top:12px!important}}
@media(max-width:1080px){
  .hero-scope{font-size:12.5px;max-width:none}
  .hero-tag{font-size:13.5px;margin-top:18px}
}

/* HERO GEOMETRY — single source of truth. All prior body.home .hero-media left/right/width
   blocks were pruned; a stale left:30% from an old width:70% rule was still anchoring the band,
   so raising the width to 84% ran it 179px past the viewport and CUT the visible video instead of
   enlarging it. Anchor and width now live in ONE rule so they cannot disagree. */
@media(min-width:1081px){
  /* left/width/right PRUNED — this rule sat AFTER the single-source rule and was silently
     winning on source order. Geometry now lives only in the hero-size block above. */
  body.home .hero-media{overflow:hidden!important}
}
@media(max-width:1080px){
  body.home .hero-media{left:0!important;right:0!important;width:100%!important}
}
/* scope strip must sit BELOW the supporting paragraph in the hierarchy — authored 13px was being
   overridden to 18px by a broader .hero .p rule, which made the capability list the loudest
   element after the headline. */
body.home .hero .hero-scope{font-size:13px!important;font-weight:650!important;line-height:1.6!important;color:var(--slate)!important;max-width:560px!important}
@media(max-width:1080px){body.home .hero .hero-scope{font-size:12.5px!important;max-width:none!important}}


/* Client: the capability list is REGULAR BODY COPY, not a small secondary strip — it is the
   first paragraph of the supporting copy. Neutralise the earlier .hero-scope treatment so it
   inherits .body-lg exactly; only the bottom margin differs so the two paragraphs separate.
   "Built to Last." remains the tagline below them. */
body.home .hero .hero-scope{font-size:16px!important;font-weight:400!important;line-height:1.62!important;letter-spacing:normal!important;color:var(--slate-dk)!important;max-width:520px!important;margin:16px 0 0!important}
@media(max-width:1080px){body.home .hero .hero-scope{font-size:15.5px!important;max-width:none!important}}


/* ===== HERO COPY BLOCK — restructured =====
   The problem was register, not size: the capability list and the value proposition were both
   3 lines of identical 16px prose, so the block read as six undifferentiated lines with the
   floating green dash above them and the tagline stranded below. Now four distinct registers:
   headline -> lead paragraph -> capability CHIPS (scannable, not prose) -> tagline with its
   own rule. The chips also communicate breadth far better than a run-on sentence. */
@media(min-width:1081px){
  body.home .hero .hero-lead{font-size:17px!important;line-height:1.58!important;max-width:520px!important;margin:20px 0 0!important;color:var(--slate-dk)!important}
}
body.home .hero .hero-lead{font-size:16px;line-height:1.6;max-width:none;margin:18px 0 0}

/* capability chips */
.hero-caps{display:flex;flex-wrap:wrap;gap:7px;margin:22px 0 0;max-width:560px}
.hero-cap{display:inline-flex;align-items:center;font-family:var(--sans);font-weight:600;font-size:12.5px;line-height:1;letter-spacing:.005em;color:#2C3E57;background:rgba(255,255,255,.82);border:1px solid rgba(23,52,88,.15);border-radius:999px;padding:7px 12px;white-space:nowrap}
.hero-cap.is-more{background:none;border-color:transparent;color:var(--muted);font-style:italic;padding-left:4px}

/* tagline gets real presence + owns the accent rule, so nothing floats */
.hero-tag{display:flex;align-items:center;gap:12px;font-family:var(--display)!important;font-weight:800!important;font-size:17px!important;letter-spacing:.14em!important;text-transform:uppercase!important;color:var(--navy)!important;margin:28px 0 0!important}
.hero-tag-r{display:block;width:34px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--blue),#48E418);flex:0 0 34px}
/* the old standalone rule above the copy is now redundant */
body.home .hero .hero-rule{display:none!important}

@media(max-width:1080px){
  .hero-caps{max-width:none;gap:6px;margin-top:18px}
  .hero-cap{font-size:12px;padding:6px 11px}
  .hero-tag{font-size:15px!important;margin-top:22px!important}
}
@media(max-width:640px){
  .hero-cap{font-size:11.5px;padding:6px 10px}
}


/* Where IGS Fits: main copy is now TWO paragraphs, and card 2's description is a full sentence
   rather than a short audience list — so the two cards' text lengths differ a lot more than
   before. Give .wfp-d room to breathe and let the cards size to content instead of a fixed
   min-height, which would have clipped card 2. */
.wfits-p + .wfits-p{margin-top:14px}
.wfp-d{line-height:1.55!important}
@media(min-width:1081px){
  .wfp{min-height:0!important;align-items:stretch}
  .wfp-b{padding-top:22px!important;padding-bottom:22px!important}
  .wfp-d{max-width:none!important}
}


/* ---------------------------------------------------------------------------
   FORM ERROR BANNER — shown when a Formspree submission actually fails, or
   when an endpoint ID has not been configured yet. Never a fake success.
   --------------------------------------------------------------------------- */
.form-error{display:flex;align-items:flex-start;gap:10px;margin:0 0 16px;padding:13px 16px;
  border:1px solid rgba(198,58,58,.4);border-left:3px solid #C63A3A;border-radius:8px;
  background:rgba(198,58,58,.07);font-family:var(--sans);font-size:14px;line-height:1.55;color:#8E2020}
/* NO dark-surface variant. All four forms sit on WHITE cards even when the
   surrounding SECTION is dark — .cn-apply is dark navy but .cn-form-card inside
   it is #fff. Scoping to the section rather than the painted surface produced
   light-pink text on near-white at 1.22:1. The light default below is correct
   everywhere (measures 7.98:1). Fifth recurrence of this scoping error. */
.btn:disabled{opacity:.62;cursor:progress;box-shadow:none!important}


/* Client: enlarge the hero video area. Was 70% wide starting at 30%; now 78% from
   22%, with the white scrim's falloff pulled left to match so the copy column keeps
   its solid-white backing and no seam appears. */
@media(min-width:1081px){
  /* width/left PRUNED — superseded by the single hero-size rule at the end of this file.
     Five earlier rules disagreed about this element's anchor; only one may set it. */
  body.home .hero-media{overflow:hidden!important}
  body.home .hero-scrim,body.home .hero-media::after{
    background:linear-gradient(100deg,#fff 0%,#fff 40%,rgba(255,255,255,.93) 45%,
      rgba(255,255,255,.55) 51%,rgba(255,255,255,.14) 56%,rgba(255,255,255,0) 61%,
      rgba(255,255,255,0) 100%)!important}
}

/* SCROLL CUE — ONE rule. 20 contradictory .scroll-cue* rules had accumulated; the
   last two each drew a chevron (the element AND its ::after) so TWO shapes rendered
   at once, reading as a box with an arrow in it. And the final override used
   border-left + rotate(-45deg), which points DOWN-LEFT, not down.
   A down chevron = border-right + border-bottom + rotate(45deg). Nothing else. */
.scroll-cue{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:6;display:flex;flex-direction:column;align-items:center;pointer-events:none;font-size:0;color:transparent}
.scroll-cue-t{display:none}
.scroll-cue-m{display:block;width:13px;height:13px;border:0;border-right:2px solid rgba(23,52,88,.42);border-bottom:2px solid rgba(23,52,88,.42);border-radius:0;background:none;transform:rotate(45deg);animation:scrollchev 2s ease-in-out infinite}
.scroll-cue-m::after,.scroll-cue-m::before{content:none;display:none}
@keyframes scrollchev{0%{opacity:.4;transform:rotate(45deg) translate(-2px,-2px)}45%{opacity:1;transform:rotate(45deg) translate(1px,1px)}100%{opacity:.4;transform:rotate(45deg) translate(-2px,-2px)}}
@media(prefers-reduced-motion:reduce){.scroll-cue-m{animation:none}}


/* ===== Services section — 12 services =====
   Card-count-dependent span rules PRUNED — the count-independent 4-column grid at the
   end of this file is the live rule. Only the headline sizing remains here. */
@media(min-width:1081px){
  /* client: reduce headline size AND width so the section breathes and the cards
     carry more visual weight. Single rule — .svc-h had 3 stacked declarations. */
  .svc-h{font-size:34px!important;max-width:680px!important;line-height:1.1!important}
  .svc-top-l{max-width:720px!important}
}
@media(max-width:1080px){
  .svc-support{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .svc-support > .hc{grid-column:auto!important}
}
@media(max-width:640px){
  .svc-support{grid-template-columns:1fr!important}
}


/* Testimonials: optional second supporting line (client-approved). Quieter than the
   first so it reads as a framing note, not a second lede. */
.testi-head .testi-sub2{margin-top:8px;font-size:14.5px;color:rgba(190,210,236,.78)}
@media(max-width:640px){.testi-head .testi-sub2{font-size:14px}}

/* Testimonial body readability on MOBILE — the issue was SIZE, not colour
   (.qt measures rgba(226,238,252,.94) on the dark card, which already passes AA).
   Raise size and leading rather than washing the text toward white, so the dark
   premium look is preserved. */
@media(max-width:640px){
  .tcard .qt{font-size:15.5px!important;line-height:1.72!important}
  .tcard .qa b{font-size:15px!important}
  .tcard .qa .role,.tcard .qa .org{font-size:13.5px!important}
}


/* ===== Project mosaic — photography leads (client) =====
   The per-tile --pc accent was painting a visible green/blue border around EVERY
   photograph. Client: "allow the real project photography to be the primary visual
   focus." Border is now a near-neutral hairline at rest and only picks up the accent
   colour on hover/focus. */
.proj2{border:1px solid rgba(23,52,88,.1)!important;box-shadow:none!important;
  transition:border-color .2s,box-shadow .2s,transform .2s}
.proj2:hover,.proj2:focus-visible{border-color:color-mix(in srgb,var(--pc) 55%,transparent)!important;
  box-shadow:0 0 22px -12px color-mix(in srgb,var(--pc) 60%,transparent)!important;transform:translateY(-2px)}

/* category chip now renders on EVERY tile, not just the featured one, so the small
   tiles need the compact size — the old rule was authored for .proj-big only */
.proj2 .proj-tag{font-size:10px;letter-spacing:.11em;padding:5px 10px}
.proj-big .proj-tag{font-size:11px;padding:6px 12px}

/* overlay parity — reselected tiles bring their own exposure, so pin one gradient
   across all six rather than letting a darker source read as a different treatment */
/* Scrim belongs on the CARD, not on .proj-meta — painting it on the text box drew a
   visible hard-edged rectangle behind the caption. ::after already spans the card. */
.proj2::after{background:linear-gradient(to top,rgba(8,21,43,.9) 0%,rgba(8,21,43,.72) 18%,rgba(8,21,43,.42) 40%,rgba(8,21,43,.12) 62%,rgba(8,21,43,0) 80%)!important}
.proj2 .proj-meta{background-image:none!important}


/* Site Amenities is the 11th service and has NO artwork — only svc-ill-0..9 exist.
   Repeating the pavilions illustration read as a bug; a playground photo on a card
   titled "Site Amenities" was a subject mismatch. So the card renders artwork-free,
   with the title given the left accent rule so it reads as an intentional variant.
   INTERIM: replace when the two illustrations are supplied. TWO such cards now
   (Site Amenities and Site Preparation & Drainage), which is why the treatment has to
   look deliberate rather than accidental. */
/* All 12 services now have artwork, so the artwork-free variant rule is PRUNED — nothing
   matches :has(.hc-b:only-child) any more. Support cards are uniform height instead. */
/* grid-auto-rows:1fr equalises across BOTH rows — align-items/height:100% only equalise
   within a row, so row 1 (3-line titles) sat 20px taller than row 2. */
.svc-support{align-items:stretch;grid-auto-rows:1fr}
.svc-support > .hc{height:100%}
/* keep the hover arrow's 3px travel inside the card */
.hc-b{padding-right:34px}

/* ---- Where IGS Fits: centering + photo edge ----
   1) The centering rule I added earlier lost to line ~6289's `align-items:start!important`,
      so it never applied. Needs !important to win; pruning that older rule's align-items
      instead would disturb its padding/min-height siblings, so this one carries it.
   2) The photo was a 52%-wide panel pinned to one edge, which drew a hard vertical seam
      where it met the card's flat navy. Let it fill the whole card and do the fading with
      the scrim alone — no seam possible, and the copy side stays legible. */
@media(min-width:1081px){
  .wfits-in{align-items:center!important}
}
.wfp-photo{width:100%!important;left:0!important;right:0!important}
.wfp-photo::after{background:linear-gradient(90deg,#11305A 0%,rgba(17,48,90,.96) 30%,rgba(17,48,90,.74) 52%,rgba(17,48,90,.4) 76%,rgba(17,48,90,.22) 100%)!important}
.wfp:hover .wfp-photo::after{background:linear-gradient(90deg,#11305A 0%,rgba(17,48,90,.93) 30%,rgba(17,48,90,.66) 52%,rgba(17,48,90,.3) 76%,rgba(17,48,90,.12) 100%)!important}
@media(max-width:600px){
  .wfp-photo{opacity:.5}
  .wfp-photo::after{background:linear-gradient(90deg,#11305A 0%,rgba(17,48,90,.86) 60%,rgba(17,48,90,.7) 100%)!important}
}


/* SUPPORT CARD GRID — count-independent. Was a 12-col grid with span-3/span-4 nth-child rules
   tuned for exactly 7 cards; the 12th service made 8 and stranded one alone on a third row at a
   different width. A 4-col grid fills evenly at 8 (and at 12, 16...) and needs no re-tuning when
   the client adds another service. */
@media(min-width:1081px){
  .svc-support{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:16px!important}
  .svc-support > .hc,
  .svc-support > .hc:nth-child(n+5){grid-column:auto!important}
}


/* ===== Footer rebuild — 12 services, LLC description, multistate contact lines =====
   The Services column carries 12 links in the longest naming tier, so it runs two text
   columns at EVERY width where the footer is still multi-column, plus a 641–1080 tier
   that drops .f-grid to two columns so that column has real width to work with. */
footer .f-tag{display:block;margin:10px 0 0;font-family:var(--display);font-weight:800;
  font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--green-bright)}
footer .f-brand p{margin-top:14px}
/* `footer ul` is a flex column (base rule), and multicol has NO effect on a flex
   container — so `columns:2` here was inert and the 12 links rendered as one tall
   stack. Grid instead: it overrides the flex display in the same declaration rather
   than adding a third contradictory one, and the gap carries the row spacing. */
footer .f-services ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 28px}
/* the three region lines read as one block. Spacing between footer list items comes
   from the flex `gap` on `footer ul`, not from margins, so this collapses the gap. */
footer .f-contact{row-gap:12px}
footer .f-region{margin-top:0}
footer .f-region + .f-region{margin-top:-6px}
@media(min-width:1081px){
  footer .f-grid{grid-template-columns:1.5fr 1.5fr .9fr 1.1fr}
}
@media(max-width:1080px) and (min-width:641px){
  footer .f-grid{grid-template-columns:1fr 1fr!important;gap:34px 44px!important}
  footer .f-brand{grid-column:1 / -1}
}
@media(max-width:640px){
  footer .f-services ul{grid-template-columns:1fr}
}

/* Testimonials page — intro statement beneath the hero lede (client-approved). Frames the
   quotes that name Titus and predate IGS. Sits on the dark hero, so light ink; quieter
   than .ts-hero-p so the lede still leads. */
.ts-hero-intro{margin:16px 0 0;max-width:760px;font-family:var(--sans);font-size:16px;
  line-height:1.72;color:rgba(214,230,250,.9)}
@media(max-width:1080px){.ts-hero-intro{font-size:15px;line-height:1.68;max-width:none}}

/* ===== Quote form: Project Type multi-select chips =====
   Project Type became multi-select (most IGS projects span more than one service). A native
   <select multiple> is unusable on touch and hides its own options, so it is a checkbox
   group styled as chips. The input stays in the DOM for keyboard and screen-reader use. */
.qf-types{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
/* Chips are <label> elements, so inside the careers form they inherit .cn-form .ctf label
   (11px uppercase 700, slate) — which outranks .qf-type and rendered a selected navy chip
   slate-on-navy (~1.6:1). Scoped under .qf-types to win that cascade rather than stacking
   !important. position:relative keeps the visually-hidden checkboxes inside the chip. */
.qf-types .qf-type,
.ctf .qf-types .qf-type,
.cn-form .ctf .qf-types .qf-type{position:relative;display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border:1px solid #d5dde6;border-radius:999px;background:#fff;cursor:pointer;font-size:13.5px;font-weight:500;line-height:1.2;letter-spacing:0;text-transform:none;color:#2b3949;transition:border-color .14s,background .14s,color .14s;min-height:38px}
.qf-types .qf-type:hover,
.cn-form .ctf .qf-types .qf-type:hover{border-color:#9fb4c9}
.qf-types .qf-type.on,
.ctf .qf-types .qf-type.on,
.cn-form .ctf .qf-types .qf-type.on{background:#0e2742;border-color:#0e2742;color:#fff}
.qf-type input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.qf-type input:focus-visible + span{outline:2px solid #1077d5;outline-offset:3px;border-radius:3px}
.qf-type.on{background:#0e2742;border-color:#0e2742;color:#fff}
.qf-hint{display:block;margin-top:8px;font-size:12.5px;line-height:1.6;color:#6a7889}
.qf-types + .em{margin-top:6px}

/* Licensing & Credentials: the client asked to tighten the gap between the intro and the
   first credential block — the shared legal-page rhythm is tuned for long policy text and
   left this page feeling airy rather than authoritative. Scoped to the licensing page only. */
body.lic .legal-body{padding-top:34px!important}
body.lic .legal-block{margin-bottom:34px!important}
body.lic .legal-block h2{margin-bottom:10px!important}
body.lic .legal-sub{font-weight:650;color:#0e2742;margin:0 0 8px;font-size:15.5px;letter-spacing:.01em}
body.lic .legal-intro{margin-bottom:0!important}

/* About: Giving Back leadership callouts + the "Experience Beyond the Mainland" section.
   The Guantanamo Bay imagery lives here because that work is project experience, not
   charity — the client was explicit about not framing it as giving back.
   (Restored after a .wis-proof-frame prune whose old_string ran from the wis-proof comment
   all the way to the .ab-reach-sm anchor and swallowed this whole block.) */
.ab-gv-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:26px;margin:26px 0 22px}
.ab-gv-k{margin:0 0 9px;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#0e2742}
.ab-gv-two p{margin:0;font-size:15px;line-height:1.72;color:#4a5a6d}
.ab-reach{padding:64px 0 72px;background:#f4f7fa}
/* styles.css hides .eyebrow-rule globally with display:none!important and allow-lists each
   section that wants its label back. .ab-reach has to join that list or the section renders
   headingless. Deep green, not the #48E418 the dark sections use — this ground is light. */
.ab-reach .eyebrow-rule{display:flex!important;color:#1f7a12!important}

/* ABOUT — one green system. Neon #48E418 is a dark-ground accent only: on the pale #E9F1FB
   and white sections it measured ~1.5:1 and read as a washed-out lime, sitting next to the
   deep green used in .ab-reach. Rule: DARK sections (hero, ppl, fin, bands) keep neon;
   LIGHT sections use deep green #1f7a12 for label text (4.7:1) and keep the neon only in
   the short decorative rule, so the brand mark is still there. */
.ab-mem .eyebrow-rule,.ab-og .eyebrow-rule,.ab-gv .eyebrow-rule,.ab-reach .eyebrow-rule,
.ab-ch2 .eyebrow,.ab-gv-places .pl-g{color:#1f7a12!important}
.ab-mem .eyebrow-rule span:empty,.ab-og .eyebrow-rule span:empty,.ab-gv .eyebrow-rule span:empty,
.ab-reach .eyebrow-rule span:empty{background:#48E418!important}
.ab-reach-h{margin:14px 0 0;font-size:clamp(24px,3vw,34px);line-height:1.14;letter-spacing:-.02em;color:#0e2742}
.ab-reach-in{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:40px;align-items:start}
.ab-reach-p{margin:14px 0 0;font-size:16.5px;line-height:1.7;color:#33455a;max-width:560px;text-wrap:pretty}
.ab-reach-r{display:grid;gap:12px}
.ab-reach-big img,.ab-reach-sm img{width:100%;height:100%;object-fit:cover;display:block;border-radius:3px}
.ab-reach-big{aspect-ratio:16/9;overflow:hidden;border-radius:3px}
.ab-reach-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ab-reach-sm{aspect-ratio:4/3;overflow:hidden;border-radius:3px}

/* ============================================================================
   HERO NORMALIZATION
   ----------------------------------------------------------------------------
   Before this block every page hero was tuned in isolation:

     top / bottom padding        left edge of the copy
     .legal-hero  132 / 60       wrap (44px)
     .ctp-hero    132 / 96       wrap
     .ab-hero     150 / 128      wrap − 20px  (.ab-hero-in padding-left:24px)
     .pw-hero     104 / 92       56px from the VIEWPORT, not the wrap
     .wis-hero    104 / 0 (+56 on the inner)
     .ts-hero     104 / 0 (+38 on the inner)
     .sv-hero     104 / 0 (+34 on the inner)

   On a 1920px screen the wrap's left edge is 384px, About's was 364px and
   Projects' was 56px — a 328px discrepancy between two dark heroes a click apart.

   IMPORTANT — the split padding is NOT sloppiness. .sv-hero, .wis-hero and
   .ts-hero each end in a full-bleed trust strip that sits FLUSH on the hero's
   bottom edge, so those three must keep padding-bottom:0; their inner's
   padding-bottom is what gives the copy air above the strip. Forcing a uniform
   96px bottom onto them lifts the strip off the edge and leaves a dead band
   below it. So: unify the TOP for all, unify the bottom within each of the two
   families, and put every hero's copy back on the wrap's left edge. Per-page
   copy MEASURE is left alone — headline lengths legitimately differ. */
.sv-hero,.pw-hero,.wis-hero,.ts-hero,.ab-hero,.ctp-hero,.legal-hero{padding-top:132px!important}

/* Family A — hero ends in a flush full-bleed strip: no section bottom padding,
   one shared inner bottom (was 56 / 38 / 34). */
.sv-hero,.wis-hero,.ts-hero{padding-bottom:0!important}
.sv-hero-in,.wis-hero-in,.ts-hero-in{padding-bottom:52px!important}

/* Family B — hero ends on its own background: one shared section bottom. */
.pw-hero,.ab-hero,.ctp-hero,.legal-hero{padding-bottom:96px!important}

/* Every hero's copy returns to the wrap's geometry (1240px / 44px gutters).
   Retires two earlier one-off nudges — .ab-hero-in's 24px inset and
   .pw-hero-in's full-bleed 56px pull. */
.ab-hero-in,.pw-hero-in{max-width:1240px!important;margin-left:auto!important;margin-right:auto!important;padding-left:36px!important;padding-right:36px!important}
/* The site gutter is 36px desktop / 20px ≤1080 (see the "one gutter everywhere" block) —
   NOT the 44px in the base .wrap rule, which every page overrides. Using 44 here put the
   About and Projects copy 8px right of every other page. */
/* .pw-hero was a 760px min-height flex column centring its copy, so its eyebrow sat at
   y215 while every other hero's sits at y132. Block + no min-height puts it on the same
   132/96 frame; the strip is absolutely positioned (top:nav-h, bottom:0) and follows. */
.pw-hero{display:block!important;min-height:0!important}
.pw-hero-in{margin-top:0!important;margin-bottom:0!important}
.cn-hero{padding-top:132px!important}
@media(min-width:1081px){
  /* Service detail hero: copy column carried its own 150px top — align to the 132 frame. */
  .sd-hero-dark .svcpg-hero-l{padding-top:132px!important}
  /* IGS Standard "Brings people back": .wrap was forced full-bleed with a 56px viewport
     inset, the last hold-out of an old pull-left treatment. Back on the shared edge. */
  .wis-back .wrap{margin-left:auto!important;margin-right:auto!important;max-width:1240px!important;padding-left:36px!important;padding-right:36px!important}
  /* Legal pages: .legal-body is itself given wrap geometry at this width, and its inner
     .legal-wrap added a SECOND 36px gutter — body copy sat 36px right of the hero. */
  .legal-body>.legal-wrap{padding-left:0!important;padding-right:0!important}
}

/* ============================================================================
   SECTION RHYTHM — interior pages, desktop
   Measured before this block, standard content sections on the interior pages ran
   48/54, 52/56, 52/58, 56/60, 58/…, 64/72, 68/76, 72/76, 76/84, 88/84 — ten different
   rhythms, so adjacent sections on the same page visibly breathed differently. The
   most common roomy value (72/76) becomes the one standard.
   Deliberately EXCLUDED: heroes (own frame above); full-bleed split sections with 0
   padding (ab-mem, ab-og, wis-hand); sections whose 0/8px bottom sits flush on an image
   (wis-cert, wis-vet, wis-disp); narrow bands and pull-quotes (ab-ogband, ab-wxband,
   ts-pull, pw-quote, pw-cta); the contact form body and About's closing section, which
   are intentionally larger; and all mobile values.
   ============================================================================ */
@media(min-width:1081px){
  .sv-one,.sv-list,.sv-fits,.sv-cta,
  .pw-feat,.pw-arch,.pw-rec,
  .ab-ch2,.ab-wx,.ab-ppl,.ab-bios3,.ab-gv,.ab-reach,
  .wis-owner,.wis-reasons,.wis-back,.wis-proof,.wis-cta,
  .ts-iv,.ts-det,.ts-mfr,.ts-tr,.ts-cta,
  .cn-why,.cn-benefits,.cn-work,.cn-fit,.cn-apply,
  .ctp-scope,.ctp-doc,
  .sd-overview,.sd-cta-sec{padding-top:72px!important;padding-bottom:76px!important}
}

@media(max-width:1080px){
  .sv-hero,.pw-hero,.wis-hero,.ts-hero,.ab-hero,.ctp-hero,.legal-hero{padding-top:104px!important}
  .pw-hero,.ab-hero,.ctp-hero,.legal-hero{padding-bottom:64px!important}
  .sv-hero-in,.wis-hero-in,.ts-hero-in{padding-bottom:36px!important}
  .ab-hero-in,.pw-hero-in{padding-left:20px!important;padding-right:20px!important}
  .cn-hero{padding-top:104px!important}
}

/* Projects page — Project Record: completed installations whose photography hasn't been
   released. Deliberately typographic, not card-like, so it reads as a record rather than
   as photo tiles with missing images. */
.pw-rec{padding:68px 0 76px;background:#f4f7fa;border-top:1px solid #e3eaf1}
.pw-rec-head{max-width:720px;margin:0 0 34px}
.pw-rec-h{margin:12px 0 0;font-size:clamp(26px,3.4vw,38px);line-height:1.12;letter-spacing:-.02em;color:#0e2742}
.pw-rec-p{margin:14px 0 0;font-size:15.5px;line-height:1.7;color:#5b6b7d;text-wrap:pretty}
.pw-rec-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:1px;background:#dde5ee;border:1px solid #dde5ee}
.pw-rec-item{background:#fff;padding:24px 26px 26px}
.pw-rec-t{font-size:17px;font-weight:700;letter-spacing:-.01em;color:#0e2742}
.pw-rec-loc{margin-top:5px;font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#1077d5}
.pw-rec-d{margin:13px 0 0;font-size:14.5px;line-height:1.7;color:#4a5a6d;text-wrap:pretty}
.pw-rec-sc{margin-top:14px;padding-top:13px;border-top:1px solid #edf1f6;font-size:12px;line-height:1.65;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:#6a7889}

/* About / Giving Back — Buddy Bench caption. Sits inside Jason's callout; the photo slot
   is intentionally empty until the client's image arrives (a stand-in would misattribute
   a donated project). Reads as an attributed credit line, not an empty image frame. */
.ab-gv-fig{margin:18px 0 0}
.ab-gv-fig img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;margin:0 0 12px}
.ab-gv-fig figcaption{display:block}
.ab-gv-fig-t{display:block;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#0e2742}
.ab-gv-fig-d{display:block;margin-top:6px;font-size:14px;line-height:1.68;color:#5b6b7d}

/* HERO HEADLINE — tablet tier (641–1080px).
   Every size tuned for the 3-line headline lived in @media(min-width:1081px); below that
   the untiered base .h-hero{font-size:62px} won, with no max-width, inside a 640px column.
   "Great Recreation Spaces" could not fit, so it wrapped and orphaned "Spaces" — and the
   scale was inverted (62px on tablet vs 52px on desktop). This tier restores the ramp and
   keeps the three authored <br> lines intact. */
@media(min-width:641px) and (max-width:1080px){
  body.home .h-hero{font-size:40px!important;line-height:1.07!important;max-width:none!important}
  /* Cap the COLUMN, not the heading: the hero video is full-bleed at this tier and the
     scrim is nearly transparent past ~60% height, so an uncapped column put the lead
     paragraph and chips on live footage. The <br>-broken headline needs no cap (longest
     line is 486px at 40px); the lead and chips do. */
  body.home .hero-copy{max-width:600px!important}
}
