.gwrap{max-width:1320px;margin:0 auto;--pg-accent:#1E3A5F}
.accent-sf{--pg-accent:#C65A1E}
.geyebrow{font:600 12px/1.3 'IBM Plex Mono',monospace;letter-spacing:0.12em;text-transform:uppercase;color:var(--pg-accent,#1E3A5F)}
.gwrap h2{margin:0 0 8px;font:600 28px/1.29 Archivo,sans-serif;letter-spacing:-0.01em;max-width:50ch;text-wrap:pretty}
.geyebrow+h2,h1+.geyebrow{margin-top:16px}
.gwrap h3{margin:32px 0 0;font:500 20px/1.4 Archivo,sans-serif;max-width:40ch}
.gwrap p{margin:16px 0 0;font:400 16px/1.6 Inter,sans-serif;color:#1C1C1C;max-width:74ch;text-wrap:pretty}
.gwrap h3+p{margin-top:8px}
.gwrap a{color:var(--pg-accent,#1E3A5F)}
.gwrap a:hover{color:#1C1C1C}
/* card grid (replaces definition tables and h3 runs) */
.gcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;margin-top:32px}
.gcard{background:#FFFFFF;border:1px solid #E2E5E9;border-top:3px solid var(--pg-accent,#1E3A5F);border-radius:4px;padding:28px}
.gcard h3{margin:0;font:600 19px/1.3 Archivo,sans-serif;max-width:none}
.gcard p{margin:10px 0 0;font:400 15px/1.6 Inter,sans-serif;color:#3A4149;max-width:none}
.gcard a{font:600 14px/1 Inter,sans-serif;text-decoration:none;display:inline-block;margin-top:14px}
/* numbered step pipeline */
.gsteps{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-top:32px}
.gstep{background:#FFFFFF;border:1px solid #E2E5E9;border-radius:4px;padding:20px 16px}
.gstep .n{font:600 13px/1 'IBM Plex Mono',monospace;color:var(--pg-accent,#1E3A5F)}
.gstep h3{margin:10px 0 0;font:600 19px/1.3 Archivo,sans-serif}
.gstep p{margin:8px 0 0;font:400 15px/1.55 Inter,sans-serif;color:#3A4149;max-width:none}
/* short-item tile grid */
.gtiles{margin:32px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.gtiles li{border:1px solid #E2E5E9;border-left:3px solid var(--pg-accent,#1E3A5F);background:#FFFFFF;padding:14px 18px;font:500 15px/1.5 Inter,sans-serif;border-radius:4px}
.glist{margin:32px 0 0;padding:0;list-style:none;display:grid;gap:12px;max-width:860px}
.glist li{border:1px solid #1C1C1C;background:#FFFFFF;padding:14px 20px;font:500 15px/1.5 Inter,sans-serif;border-radius:4px}
/* tables that stay tables */
.gtbl{margin:32px 0 0;overflow-x:auto}
.gtbl table{width:100%;border-collapse:collapse;font:400 16px/1.5 Inter,sans-serif;background:#FFFFFF}
.gtbl td,.gtbl th{text-align:left;vertical-align:top;padding:14px 16px;border-bottom:1px solid #E2E5E9}
.gtbl thead th,.gtbl tr:first-child td:only-child{background:#1C1C1C;color:#FFFFFF}
.gtbl tr td:first-child{font-weight:600;color:#1C1C1C;width:220px}
.gtbl td{color:#6B7280}
/* buttons */
.gcta{display:flex;gap:16px;margin-top:32px;flex-wrap:wrap}
.gbtn{display:inline-flex;align-items:center;height:48px;padding:0 22px;background:#0B1120;color:#FFFFFF !important;border-radius:4px;font:600 15px/1 Inter,sans-serif;text-decoration:none;transition:background 150ms ease-out}
.gbtn:hover{background:#16213A;color:#FFFFFF !important}
.gbtn-sec{background:transparent;color:#1E3A5F !important;border:1.5px solid #1E3A5F}
.gbtn-sec:hover{background:#1E3A5F;color:#FFFFFF !important}
/* dark band */
.gdark{background:#0B1120;color:#FFFFFF}
.gdark .gwrap h2,.gdark .gwrap h3{color:#FFFFFF}
.gdark .gwrap p{color:#FFFFFF}
.gdark .gcard,.gdark .gstep,.gdark .gtiles li{background:#111B2F;border-color:#24334D;border-top-color:var(--pg-accent,#1E3A5F)}
.gdark .gtiles li{border-left-color:var(--pg-accent,#1E3A5F)}
.gdark .gcard p,.gdark .gstep p{color:#C4CBD4}
.gdark .gstep .n{color:var(--pg-accent,#1E3A5F);filter:brightness(1.35)}
.gdark .gwrap a{color:#FFFFFF;text-decoration:underline}
.gdark .gbtn-sec{background:transparent;color:#FFFFFF !important;border:1.5px solid #FFFFFF}
.gdark .gbtn-sec:hover{background:rgba(255,255,255,.12)}
.gdark .gtbl table{background:transparent}
.gdark .gtbl td{color:#C4CBD4}
.gdark .gtbl tr td:first-child{color:#FFFFFF}
/* closing band */
.gclose{background:#0B1120;color:#FFFFFF;padding:88px 24px}
.gclose .inner{max-width:860px;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}
.gclose h2{margin:0;font:600 28px/1.3 Archivo,sans-serif;max-width:26ch;text-wrap:pretty}
.gclose p{margin:8px 0 0;font:500 14px/1.2 Archivo,sans-serif;letter-spacing:0.08em;text-transform:uppercase;color:#C4CBD4}
/* glossary */
.gdefs{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:24px}
.gdef{background:#FFFFFF;border:1px solid #E2E5E9;border-left:3px solid #1E3A5F;border-radius:4px;padding:24px}
.gdef.sf{border-left-color:#C65A1E}
.gdef h3{margin:0;font:600 19px/1.35 Archivo,sans-serif}
.gdef.sf h3{color:#C65A1E}
.gdef p{margin:10px 0 0;font:400 15px/1.6 Inter,sans-serif;color:#3A4149}
/* inline Signal Fabric emphasis */
.sf-ink{color:#C65A1E}

.gcard.sf-card{border-top-color:#C65A1E}
.gcard.sf-card a,.sf-ink{color:#C65A1E !important}

/* split editorial layout: heading rail left, content right */
.gsplit .ghead{margin-bottom:8px}
.gsplit .gbody p{max-width:80ch}
.gsplit .gbody>:first-child{margin-top:32px}
.gsplit .gbody .gcards{margin-top:32px}
/* steel blue statement band */
.gblue{background:#1E3A5F;color:#FFFFFF}
.gblue .gwrap h2,.gblue .gwrap h3{color:#FFFFFF}
.gblue .gwrap p{color:#FFFFFF}
.gblue .geyebrow{color:#FFFFFF}
.gblue .gcard,.gblue .gtiles li{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.35);border-top-color:#FFFFFF}
.gblue .gtiles li{border-left-color:#FFFFFF}
.gblue .gcard p{color:#C4CBD4}
.gblue .gwrap a{color:#FFFFFF;text-decoration:underline}
.gblue .gbtn{background:#FFFFFF;color:#1E3A5F !important}
.gblue .gbtn:hover{background:#16213A;color:#FFFFFF !important}
.gblue .gbtn-sec{background:transparent;color:#FFFFFF !important;border:1.5px solid #FFFFFF}
.gdark .glist li{background:#111B2F;border-color:#24334D;color:#FFFFFF}
.gblue .glist li{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.4);color:#FFFFFF}

.gfig{margin:44px 0 0}
.gfig img{display:block;width:100%;height:auto;border:1px solid #E2E5E9;border-radius:4px;background:#FFFFFF}
.gdark .gfig img,.gblue .gfig img{border-color:rgba(255,255,255,.3)}
.gstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;margin-top:48px}
.gstat .v{font:600 44px/1 Archivo,sans-serif;color:#FFFFFF}
.gstat .l{margin-top:10px;font:500 13px/1.4 Archivo,sans-serif;letter-spacing:0.06em;text-transform:uppercase;color:#F2F2F2}

.gwrap img,.gfig img,section img{border-radius:4px}

/* centered statement treatment for colored bands */
.gdark .ghead,.gblue .ghead,.gclose .inner{text-align:center}
.gdark .gwrap>.geyebrow,.gblue .gwrap>.geyebrow{text-align:center}
.gdark .gwrap h2,.gblue .gwrap h2{margin-left:auto;margin-right:auto;text-align:center}
.gdark .ghead+.gbody>p:first-child,.gblue .ghead+.gbody>p:first-child{margin-left:auto;margin-right:auto;text-align:center;max-width:66ch}
.gstats{text-align:center}
.gstat .v{color:#FFFFFF}

/* two-column prose flow fills the container on wide screens */
@media (min-width:1024px){
.gcols{columns:2;column-gap:72px}
.gcols p{max-width:none}
.gcols p:first-child{margin-top:0}
.gdark .ghead+.gbody .gcols,.gblue .ghead+.gbody .gcols{text-align:left}
}
.gsplit .gbody>.gcols:first-child{margin-top:32px}

/* color-washed alternating sections */
.gtint{background:#F5F6F7}
.gtint.accent-sf{background:#F8EFE7}
.gtint .gcard,.gtint .gtiles li,.gtint .gstep,.gtint .glist li,.gtint .gdef{background:#FFFFFF}
.gstep{border-top:3px solid var(--pg-accent,#1E3A5F)}
.gdark .gstep,.gblue .gstep{border-top-color:var(--pg-accent,#1E3A5F)}

/* secondary buttons must be visible on the dark closing band */
.gclose .gbtn-sec{background:transparent;color:#FFFFFF !important;border:1.5px solid #FFFFFF}
.gclose .gbtn-sec:hover{background:rgba(255,255,255,.12);color:#FFFFFF !important}

/* SD-kinship treatments */
.haccent{color:var(--pg-accent,#1E3A5F)}
.gherostats{display:flex;gap:56px;flex-wrap:wrap;margin-top:44px;padding-top:24px;border-top:1px solid #E2E5E9}
.gherostats span{display:block;font:600 11px/1.3 'IBM Plex Mono',monospace;letter-spacing:0.12em;text-transform:uppercase;color:#6B7280}
.gherostats b{display:block;margin-top:6px;font:600 15px/1.3 'IBM Plex Mono',monospace;color:#1C1C1C}
footer{background-color:#0B1120 !important}
.gdark .gstat .v,.gstat .v{color:#FFFFFF}

/* clickable cards and tiles (approved link hygiene) */
a.gcard-link{display:block;color:inherit;text-decoration:none}
a.gcard-link:hover{border-color:var(--pg-accent,#1E3A5F)}
a.gcard-link .glink{color:var(--pg-accent,#1E3A5F);text-decoration:underline;font-weight:600}
.gtiles li.ltile{padding:0}
.gtiles li.ltile:hover{border-color:var(--pg-accent,#1E3A5F)}
.gtiles li.ltile a.tlink{display:block;padding:14px 18px;color:inherit;text-decoration:none}

/* link-style secondary button (approved for homepage hero) */
.gbtn-ghost{display:inline-flex;align-items:center;height:48px;padding:0 10px;background:transparent;color:#1E3A5F;font:600 15px/1 Inter,sans-serif;text-decoration:none;border:none}
.gbtn-ghost:hover{text-decoration:underline;color:#1C1C1C}

/* customer proof quote band (approved) */
.gquotes{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:32px}
@media (max-width:699px){.gquotes{grid-template-columns:1fr}}
.gquote{background:#FFFFFF;border:1px solid #E2E5E9;border-left:3px solid #1E3A5F;border-radius:4px;padding:24px}
.gquote p{margin:0;font:400 16px/1.6 Inter,sans-serif;color:#1C1C1C;max-width:none}
.gquote .who{margin-top:14px;font:600 12px/1.3 'IBM Plex Mono',monospace;letter-spacing:0.12em;text-transform:uppercase;color:#3A4149}

/* flagship card treatment (approved) */
.gcard-flag{grid-column:1/-1}
.gcard .glabel{margin-top:6px;font:600 12px/1.3 'IBM Plex Mono',monospace;letter-spacing:0.12em;text-transform:uppercase;color:#1E3A5F}

/* shared production metrics band */
.gmetrics{display:grid;grid-template-columns:repeat(6,1fr);gap:28px 32px;margin-top:44px;padding-top:24px;border-top:1px solid #E2E5E9}
.gm b{display:block;font:600 38px/1.1 'IBM Plex Mono',monospace;color:#1C1C1C}
.gm span{display:block;margin-top:8px;font:500 12px/1.45 Archivo,sans-serif;letter-spacing:0.08em;text-transform:uppercase;color:#3A4149}
.gmetrics-navy{border-top:1px solid rgba(196,203,212,.25)}
.gmetrics-navy .gm b{color:#FFFFFF}
.gmetrics-navy .gm span{color:#C4CBD4}
@media (max-width:1399px){.gmetrics{grid-template-columns:repeat(3,1fr)}}
@media (max-width:639px){.gmetrics{grid-template-columns:repeat(2,1fr)}.gm b{font-size:32px}}

/* primary buttons on dark bands: inverse (approved Flag B) */
.gdark .gbtn,.gblue .gbtn,.gclose .gbtn{background:#FFFFFF;color:#0B1120 !important}
.gdark .gbtn:hover,.gblue .gbtn:hover,.gclose .gbtn:hover{background:#E2E5E9;color:#0B1120 !important}

/* eyebrows on dark bands (contrast fix) */
.gdark .geyebrow,.gblue .geyebrow,.gdark .ghead .geyebrow,.gblue .ghead .geyebrow{color:#C4CBD4}

/* plain bulleted list (approved pattern) */
.gbullets{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:14px;max-width:1000px}
.gbullets li{display:flex;gap:14px;align-items:baseline;font:400 16px/1.6 Inter,sans-serif;color:#1C1C1C;border:none;background:none}
.gbullets li::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:#1E3A5F;position:relative;top:-1px;align-self:center;margin-top:0}
.gbullets li::before{align-self:flex-start;margin-top:0.5em}
.gdark .gbullets li,.gblue .gbullets li{color:#FFFFFF}
.gdark .gbullets li::before,.gblue .gbullets li::before{background:#C4CBD4}
@media (min-width:1024px){.gbullets{grid-template-columns:repeat(2,1fr);column-gap:64px}}

/* five-card balanced grids: 3 + 2 centered (approved layouts) */
@media (min-width:1024px){
.gcards--five,.gsteps--five{grid-template-columns:repeat(6,1fr)}
.gcards--nine{grid-template-columns:repeat(3,1fr)}
.gcards--five>.gcard,.gsteps--five>.gstep{grid-column:span 2}
.gcards--five>.gcard:nth-child(4),.gsteps--five>.gstep:nth-child(4){grid-column:2/span 2}
.gcards--five>.gcard:nth-child(5),.gsteps--five>.gstep:nth-child(5){grid-column:4/span 2}
}
@media (min-width:640px) and (max-width:1023px){
.gcards--five,.gsteps--five{grid-template-columns:repeat(2,1fr)}
.gcards--five>.gcard:nth-child(5),.gsteps--five>.gstep:nth-child(5){grid-column:1/-1}
}
/* mission cards: content-fit height, even padding */
.gcards--fit{align-items:start}
.gcards--fit>.gcard{padding:24px}

/* footer polish: hover + clean wrapping */
footer ul a:hover{color:#FFFFFF !important}
footer ul li a{display:inline-block;text-wrap:balance}

/* focus visibility (token pass) */
.gbtn:focus-visible,.gbtn-sec:focus-visible,.gbtn-ghost:focus-visible,.gwrap a:focus-visible,a.gcard-link:focus-visible,.gtiles a:focus-visible{outline:2px solid #1E3A5F;outline-offset:2px}
.gdark a:focus-visible,.gblue a:focus-visible,.gclose a:focus-visible,footer a:focus-visible,.gdark .gbtn:focus-visible,.gclose .gbtn:focus-visible{outline:2px solid #FFFFFF;outline-offset:2px}

/* dark-band secondary outline beats the inverse-primary rule */
.gdark .gbtn.gbtn-sec,.gblue .gbtn.gbtn-sec,.gclose .gbtn.gbtn-sec{background:transparent;color:#FFFFFF !important;border:1.5px solid #FFFFFF}
.gdark .gbtn.gbtn-sec:hover,.gblue .gbtn.gbtn-sec:hover,.gclose .gbtn.gbtn-sec:hover{background:rgba(255,255,255,.14);color:#FFFFFF !important}

/* homepage image placements */
.gimgrow{display:grid;grid-template-columns:1fr auto;gap:48px;align-items:center}
@media (max-width:899px){.gimgrow{grid-template-columns:1fr}.gimgrow img{margin-top:24px}}

/* flagship card with side image */
@media (min-width:900px){.gcard-flag{display:grid;grid-template-columns:1fr auto;gap:36px;align-items:center}.gcard-flag img{grid-row:1/5}}

/* captioned image strip */
.gcapstrip{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,max-content));gap:32px;margin-top:44px}
.gcapstrip figure{margin:0}
.gcapstrip img{display:block;max-width:100%;height:auto}
.gcapstrip figcaption{margin-top:8px;font:400 13px/1.5 Inter,sans-serif;color:#3A4149}

/* industries grid */
.gindustries{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.gindustries figure{margin:0}
.gindustries img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.gindustries figcaption{margin-top:10px;font:600 15px/1.4 Inter,sans-serif;color:#1C1C1C}
@media (min-width:640px) and (max-width:1023px){.gindustries{grid-template-columns:repeat(2,1fr)}}
@media (max-width:639px){.gindustries{grid-template-columns:1fr}}

/* hero option A: two-column */
.ghero-2col{display:grid;grid-template-columns:1.05fr 0.95fr;gap:56px;align-items:center}
@media (max-width:999px){.ghero-2col{grid-template-columns:1fr}.ghero-img{margin-top:32px}}
/* hero option B: buttons on image */
.gbtn.gbtn-onimg{background:#FFFFFF;color:#0B1120 !important}
.gbtn.gbtn-onimg:hover{background:#E2E5E9;color:#0B1120 !important}
.gbtn-ghost.gghost-onimg{color:#FFFFFF !important}
.gbtn-ghost.gghost-onimg:hover{color:#C4CBD4 !important}

/* signal path diagram */
.gsigpath{margin:8px 0 36px}
.gsig-stack{display:none !important}
@media (max-width:767px){.gsig-wide{display:none !important}.gsig-stack{display:block !important}}

.gbullets li p{margin:0;max-width:none}

/* MOTION RULE (V7): reveals max = opacity fade + 8px rise, 200ms, once; ticker + all motion static under reduced motion */
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none !important;transition:none !important}}

/* portfolio trio: even full-width distribution */
@media (min-width:900px){.gcards--three{grid-template-columns:repeat(3,1fr) !important}}

/* guide container: image left, text right */
.gguide-box{display:grid;grid-template-columns:0.95fr 1.05fr;gap:48px;align-items:center;background:#FFFFFF;border:1px solid #E2E5E9;border-radius:4px;padding:40px;margin-top:36px}
.gguide-box p:first-child{margin-top:0}
@media (max-width:899px){.gguide-box{grid-template-columns:1fr;padding:24px;gap:24px}}
