/* ng-visuals.css — background images on service cards + homepage concept grids (added 2026-09-23) */
.wd2-card.ng-bg{background:#1e1417 var(--ng-bg) center/cover no-repeat;color:#fff;border-color:transparent;min-height:330px;justify-content:flex-end;isolation:isolate}
.wd2-card.ng-bg::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(20,8,13,.28) 0%,rgba(20,8,13,.72) 38%,rgba(20,8,13,.95) 100%);transition:background .3s ease}
.wd2-card.ng-bg:hover{background:#1e1417 var(--ng-bg) center/cover no-repeat;color:#fff}
.wd2-card.ng-bg:hover::before{background:linear-gradient(180deg,rgba(138,22,62,.2) 0%,rgba(138,22,62,.72) 50%,rgba(94,15,42,.97) 100%)}
.wd2-card.ng-bg .wd2-wm,.wd2-card.ng-bg .wd2-mini-icon{display:none}
.wd2-card.ng-bg h3{color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.35)}
.wd2-card.ng-bg p{color:rgba(255,255,255,.86)}
.wd2-card.ng-bg .wd2-more{margin-top:0;color:#fff}

.ng-proj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.ng-proj{display:flex;flex-direction:column;background:#fff;border:1px solid #e8e8eb;border-radius:18px;overflow:hidden;text-decoration:none;color:inherit;transition:transform .25s ease,box-shadow .25s ease}
.ng-proj:hover{transform:translateY(-5px);box-shadow:0 18px 44px rgba(15,16,19,.10)}
.ng-proj-img{display:block;aspect-ratio:16/10;overflow:hidden;background:#eadce1}
.ng-proj-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.ng-proj:hover .ng-proj-img img{transform:scale(1.04)}
.ng-proj-body{padding:16px 18px 18px}
.ng-proj-tag{display:block;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#8a163e;margin-bottom:6px}
.ng-proj-title{display:block;font-weight:700;font-size:17px;color:#1e1417}
.ng-proj-note{margin-top:18px;font-size:13px;color:#6c7078}
.ng-proj-note a{color:#8a163e;font-weight:600}
@media (max-width:980px){.ng-proj-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.ng-proj-grid{grid-template-columns:1fr}.wd2-card.ng-bg{min-height:300px}}

/* Always show category tile + pillar images (previously visible only on hover) */
.category-tile .category-tile-img{opacity:1;transform:scale(1)}
.category-tile .category-tile-overlay{opacity:1;background:linear-gradient(180deg,rgba(20,4,10,.3) 0%,rgba(20,4,10,.72) 100%)}
.category-tile:hover .category-tile-img{transform:scale(1.06)}
.category-tile:hover .category-tile-overlay{background:linear-gradient(180deg,rgba(138,21,62,.35) 0%,rgba(94,15,42,.88) 100%)}
.category-tile-name{text-shadow:0 2px 14px rgba(0,0,0,.45)}
.pillar-card .pillar-img{opacity:1;transform:scale(1)}
.pillar-card .pillar-img-overlay{opacity:1}
.pillar-card:has(.pillar-img)>h3{color:#fff}
.pillar-card:has(.pillar-img)>.pillar-sub{color:rgba(255,255,255,.82)}
.pillar-card:has(.pillar-img)>.chev{color:#fff}

/* Homepage Track Record cards with background images */
.ng-track .pillar-card{position:relative;overflow:hidden;isolation:isolate;min-height:290px;display:flex;flex-direction:column;justify-content:flex-end;background:#1e1417}
.ng-track .pillar-card>*:not(.pillar-img):not(.pillar-img-overlay){position:relative;z-index:2}
.ng-track .pillar-card .pillar-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:1;transform:scale(1);transition:transform .6s ease}
.ng-track .pillar-card .pillar-img-overlay{position:absolute;inset:0;z-index:1;opacity:1;background:linear-gradient(180deg,rgba(20,4,10,.25) 0%,rgba(20,4,10,.88) 100%);transition:background .35s ease}
.ng-track .pillar-card:hover .pillar-img{transform:scale(1.05)}
.ng-track .pillar-card:hover .pillar-img-overlay{background:linear-gradient(180deg,rgba(138,21,62,.35) 0%,rgba(94,15,42,.93) 100%)}
.ng-track .ng-stat{color:#fff;font-size:46px;font-weight:700;display:block;margin:10px 0 6px;line-height:1}
.ng-track .pillar-card h3{color:#fff}
.ng-track .pillar-card .pillar-sub{color:rgba(255,255,255,.86)}
.ng-track .pillar-card .chev{filter:brightness(1.8)}
.ng-track .section-head p{max-width:620px}
.ng-track-cta{display:flex;gap:26px;align-items:center;flex-wrap:wrap;margin-top:30px}
.ng-track-link{color:#8a163e;font-weight:600;text-decoration:none}
.ng-track-link:hover{text-decoration:underline}
@media (max-width:620px){.ng-track .pillar-card{min-height:250px}.ng-track .ng-stat{font-size:38px}}

/* Header nav (restructure 2026-09-23): keep items on one line */
.nav-links{gap:24px}
.nav-links a,.btn-cta{white-space:nowrap}
@media (max-width:1240px){.nav-links{gap:16px}.nav-links a{font-size:13.5px}.btn-cta{padding:10px 16px}}
@media (max-width:1100px){.nav-links{display:none}.nav-toggle{display:flex}.mobile-menu{display:block}}

/* Hero eyebrows and chevrons: solid white, bold (content update) */
.hv2-eyebrow,.hero-eyebrow{color:#fff!important;font-weight:700!important;opacity:1!important;font-size:13px}
.hv2-hero .chev,.sv2-hero .chev,.hero .chev{color:#fff!important}
.hv2-hero .chev span,.sv2-hero .chev span,.hero .chev span{opacity:1!important;border-top-width:6px!important;border-bottom-width:6px!important;border-left-width:9px!important}
.hv2-trust li{font-weight:700;color:#fff}

/* Header nav: pure white, bold (23 Sep 2026) */
header .nav-links>.nav-item>a{font-weight:800!important;font-size:16px;letter-spacing:.01em}
@media(min-width:1101px){header .nav-links>.nav-item>a{color:#fff!important;opacity:1!important}header .nav-links{gap:30px!important}}
header .nav-links .nav-dropdown a{font-weight:700}

/* ===== Typography upgrade: larger, bolder, consistent body text (23 Sep 2026). Hero + header untouched. ===== */
main>section:not(:first-of-type):not(.hv2-hero):not(.hero):not(.sv2-hero) p{font-size:17.5px;line-height:1.7;font-weight:500}
main>section:not(:first-of-type):not(.hv2-hero):not(.hero):not(.sv2-hero) li{font-size:17px;line-height:1.6;font-weight:500}
main>section:not(:first-of-type) h2{font-weight:800!important;letter-spacing:-.015em}
main>section:not(:first-of-type) h3{font-weight:800!important;font-size:clamp(20px,1.7vw,23px);line-height:1.3}
main>section:not(:first-of-type) .hv2-service h3{font-size:clamp(26px,2.4vw,32px)}
main>section:not(:first-of-type) summary{font-size:17.5px;font-weight:800}
main>section:not(:first-of-type) :is(.pillar-sub,.hv2-card p,.sv2-card p,.hv2-service-body p){font-size:17px;font-weight:500;line-height:1.65}
main>section:not(:first-of-type) :is(.hv2-kicker,.section-eyebrow,.hv2-concept-tag,.hv2-step,.hv2-num){font-size:13px!important;font-weight:800!important;letter-spacing:.1em}
main>section:not(:first-of-type) :is(.hv2-tech-col li,.hv2-service-body li a,.hv2-services li a){font-size:15px;font-weight:700}
main>section:not(:first-of-type) :is(.hv2-solutions a,.hv2-industry span,.hv2-concept-name){font-size:17px;font-weight:800}
main>section:not(:first-of-type) .hv2-btn,main>section:not(:first-of-type) :is(.btn-primary,.btn-secondary){font-size:16px;font-weight:800}
.prose p,.prose li{font-size:17.5px;line-height:1.75;font-weight:500}
footer :is(p,a,li){font-size:15px!important;font-weight:500}
footer :is(h3,h4,.footer-heading){font-weight:800!important}
@media(max-width:640px){
  main>section:not(:first-of-type):not(.hv2-hero):not(.hero):not(.sv2-hero) p,.prose p{font-size:16.5px}
  main>section:not(:first-of-type):not(.hv2-hero):not(.hero):not(.sv2-hero) li,.prose li{font-size:16px}
}
/* darker, stronger body text on light sections */
body:not(.hv2-home) main>section:not(:first-of-type):not(.hv2-dark):not(.hv2-final) :is(p,li,.pillar-sub):not(.pillar-card:has(.pillar-img) *):not(.hv2-service *):not(.qf-alert *){color:#2b2227}

/* ===== Professional design system pass (23 Sep 2026) ===== */
:root{
  --font-heading:'Plus Jakarta Sans','Inter',system-ui,sans-serif;
  --font-body:'Inter',system-ui,sans-serif;
  --font-mono:'Inter',system-ui,sans-serif;
  --wine:#8A153E;--wine-deep:#5E0F2A;--ink:#1E1417;
}
body{font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
h1,h2,h3,h4,.hv2-concept-name{font-family:var(--font-heading)!important;letter-spacing:-.02em}
h1{font-weight:800!important;letter-spacing:-.03em}
/* labels that used the typewriter font: clean uppercase Inter */
.hv2-kicker,.hv2-eyebrow,.hero-eyebrow,.section-eyebrow,.hv2-concept-tag,.hv2-step,.hv2-num,.breadcrumb-strip,.breadcrumb-strip *,footer h3,footer h4,footer .footer-heading,.pf-filter button,.pf-filter a,[class*="filter"] button,[class*="-tag"],[class*="chip"]{font-family:var(--font-body)!important}
.hv2-kicker,.section-eyebrow,.hv2-eyebrow,.hero-eyebrow{letter-spacing:.14em!important;text-transform:uppercase}
/* breadcrumb: full width, blends into the hero */
.breadcrumb-strip{background:var(--wine)!important;width:100%!important;max-width:none!important;margin:0!important;border-top:1px solid rgba(255,255,255,.10);border-bottom:1px solid rgba(255,255,255,.10);padding:11px 0!important}
.breadcrumb-strip .wrap{font-size:13px!important;font-weight:600;color:rgba(255,255,255,.85)!important;text-align:center}
.breadcrumb-strip a{color:#fff!important;font-weight:700}
/* buttons: one consistent pill style */
.btn-cta,.hv2-btn,.btn-primary,.btn-secondary,header .btn-cta{border-radius:999px!important;font-weight:700!important;letter-spacing:.005em}
header .btn-cta{padding:12px 24px!important;box-shadow:0 2px 10px rgba(0,0,0,.12)}
.hv2-btn,.btn-primary,.btn-secondary{transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.hv2-btn:hover,.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.18)}
/* cards: consistent radius + soft shadow on light sections */
.hv2-card,.pillar-card,.sv2-card{border-radius:16px}
body:not(.hv2-home) main>section:not(:first-of-type):not(.hv2-dark):not(.hv2-final) :is(.hv2-card,.pillar-card:not(:has(.pillar-img)),.sv2-card){background:#fff;border:1px solid #ece4e7;box-shadow:0 1px 2px rgba(30,20,23,.04),0 8px 24px rgba(30,20,23,.05)}
/* section headings: consistent size scale */
main>section:not(:first-of-type) h2{font-size:clamp(28px,3.2vw,40px)!important;line-height:1.15}
/* footer headings */
footer h3,footer h4,footer .footer-heading{font-size:13px!important;letter-spacing:.14em;text-transform:uppercase;color:#fff!important}

.hv2-hero h1{font-size:clamp(36px,4.1vw,54px)!important;line-height:1.08}
