:root{--fg-accent:#9bc522;--fg-ink:#151a1e;--fg-dark:#1b2227;--fg-slate:#566169;--fg-soft:#f3f5f4;--fg-white:#fff;--fg-width:1320px;--fg-hero-height:590px;--fg-radius:5px;--fg-section-space:72px;--fg-service-cols:3;--fg-project-cols:3;--fg-heading:Arial,Helvetica,sans-serif;--fg-body:Arial,Helvetica,sans-serif}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--fg-ink);font-family:var(--fg-body);-webkit-font-smoothing:antialiased}body a{color:inherit;text-decoration:none}body a:hover{color:var(--fg-accent)}body img{max-width:100%;height:auto}body button,body input,body textarea{font:inherit}body button{cursor:pointer}.fg-container{width:min(calc(100% - 80px),var(--fg-width));margin-inline:auto}.fg-section{padding:var(--fg-section-space) 0}.fg-section--soft{background:var(--fg-soft)}.fg-section--dark{background:var(--fg-ink);color:#fff}.fg-section--dark .fg-section-copy{color:#cad3d8}.fg-section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:32px}.fg-section-head>div:first-child{max-width:710px}.fg-section-copy{max-width:495px;color:#45515a;font-size:1.05rem;line-height:1.55;margin:0}.fg-overline{height:7px;width:75px;display:block;background:var(--fg-accent);margin-bottom:16px}.fg-section h2,.fg-section-head h2,.fg-page-title h1,.fg-generic-page h1{font-family:var(--fg-heading);font-weight:900;letter-spacing:-.048em;line-height:1.02;text-transform:uppercase}.fg-section h2{font-size:clamp(2rem,4.2vw,3.75rem);margin:0}.fg-intro{font-size:1.04rem;line-height:1.7;color:#354047}.fg-btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;background:var(--fg-accent);border:2px solid var(--fg-accent);color:#101519!important;text-decoration:none;border-radius:var(--fg-radius);padding:13px 24px;font-weight:800;line-height:1.2;transition:transform .2s,background-color .2s,border-color .2s;min-height:48px}.fg-btn:hover{transform:translateY(-2px);background:#b5dc38;border-color:#b5dc38}.fg-btn--outline{background:transparent;color:#fff!important;border-color:#fff}.fg-btn--outline:hover{background:#fff;border-color:#fff;color:#111!important}.fg-btn--ink{background:var(--fg-ink);border-color:var(--fg-ink);color:#fff!important}.fg-btn--ink:hover{background:#364047;border-color:#364047}.fg-btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--fg-accent);outline-offset:3px}.fg-skip{position:absolute;z-index:9999;left:15px;top:-100px;background:#fff;color:#111;padding:12px}.fg-skip:focus{top:15px}.fg-topbar{background:#141a1d;color:#f4f7f8;font-size:.81rem}.fg-topbar .fg-container{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:15px}.fg-topbar strong,.fg-phone-icon{color:var(--fg-accent)}.fg-topbar a{font-weight:700}.fg-header{position:relative;z-index:100;background:#fff;box-shadow:0 4px 14px rgba(0,0,0,.06)}.fg-header-row{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:88px}.fg-brand{display:inline-flex;align-items:center;min-width:215px;max-width:340px;gap:10px}.fg-brand img{max-height:68px;max-width:290px;width:auto;object-fit:contain}.fg-wordmark{display:flex;flex-direction:column;line-height:.92;white-space:nowrap}.fg-wordmark b{font-size:clamp(1.55rem,2.6vw,2.65rem);font-weight:950;letter-spacing:-.075em;color:var(--fg-ink)}.fg-wordmark b span{color:var(--fg-accent)}.fg-wordmark small{font-size:.58rem;font-weight:900;letter-spacing:.19em;margin-top:6px}.fg-nav{display:flex;align-items:center;gap:clamp(12px,2vw,29px);margin-left:auto}.fg-nav a{font-size:.92rem;font-weight:800;white-space:nowrap}.fg-nav a[aria-current="page"]{color:#73940d}.fg-nav .fg-btn{font-size:.91rem}.fg-menu-toggle{display:none;border:1px solid #cad3d8;padding:10px;background:#fff;color:#111;border-radius:3px;font-size:1.1rem}.fg-hero{min-height:var(--fg-hero-height);color:#fff;position:relative;display:flex;align-items:center;background:#222b30}.fg-hero-bg{position:absolute;inset:0;background-size:cover;background-position:center center}.fg-hero:before{position:absolute;content:"";inset:0;background:linear-gradient(90deg,rgba(14,19,23,.96) 0%,rgba(14,19,23,.88) 25%,rgba(15,19,23,.54) 53%,rgba(15,19,23,.10) 84%);z-index:1}.fg-hero .fg-container{position:relative;z-index:2;padding-top:50px;padding-bottom:62px}.fg-hero-content{max-width:705px}.fg-hero h1{font-family:var(--fg-heading);font-size:clamp(3.15rem,6.1vw,6.6rem);font-weight:950;line-height:.96;letter-spacing:-.065em;text-transform:uppercase;margin:0 0 22px;max-width:780px}.fg-hero p{font-size:clamp(1rem,1.65vw,1.42rem);line-height:1.48;max-width:630px;color:#ecf2f3;margin:0 0 26px}.fg-actions{display:flex;gap:14px;flex-wrap:wrap}.fg-statbar{background:var(--fg-dark);color:#fff}.fg-statbar-items{display:grid;grid-template-columns:repeat(3,1fr);gap:0}.fg-stat{display:flex;gap:19px;padding:25px 35px;align-items:center;position:relative}.fg-stat+.fg-stat:before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:#677179}.fg-stat-icon{font-size:2.5rem;color:var(--fg-accent);line-height:1;flex:none}.fg-stat h3{font-size:1.35rem;margin:0;font-weight:900;line-height:1.15;text-transform:uppercase}.fg-stat p{margin:4px 0 0;color:#d4d9dc;font-size:.83rem;line-height:1.3}.fg-service-grid{display:grid;grid-template-columns:repeat(var(--fg-service-cols),minmax(0,1fr));gap:22px}.fg-service-card{min-width:0;border-radius:var(--fg-radius);overflow:hidden;background:var(--fg-dark);display:flex;flex-direction:column;color:#fff!important;box-shadow:0 9px 25px rgba(0,0,0,.08)}.fg-card-photo{display:block;height:230px;background:#c7c9c7 center/cover no-repeat;overflow:hidden;position:relative}.fg-card-photo img{height:100%;width:100%;object-fit:cover;display:block;transition:transform .4s}.fg-service-card:hover .fg-card-photo img,.fg-project-card:hover .fg-card-photo img{transform:scale(1.045)}.fg-card-label{background:var(--fg-dark);min-height:76px;padding:18px 19px;display:flex;align-items:center;gap:13px}.fg-card-label .fg-mini-icon{color:var(--fg-accent);font-size:1.55rem;flex:none}.fg-card-label h3{margin:0;font-size:1.1rem;text-transform:uppercase;line-height:1.2;font-weight:900;letter-spacing:-.025em;flex:1}.fg-card-label .fg-arrow{color:var(--fg-accent);font-size:1.7rem;line-height:1}.fg-service-card:hover .fg-card-label{background:#2a343a}.fg-about-split{display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:58px}.fg-about-photo{min-height:380px;display:block;width:100%;object-fit:cover;border-radius:var(--fg-radius);background:#cbd2d4}.fg-about-split h2{margin:0 0 20px}.fg-about-split p{font-size:1.03rem;color:#4a555c;line-height:1.7;margin:0 0 21px}.fg-about-split .fg-btn{margin-top:6px}.fg-project-grid{display:grid;grid-template-columns:repeat(var(--fg-project-cols),minmax(0,1fr));gap:23px}.fg-project-card{background:#fff;border-radius:4px;color:#141a1e!important;overflow:hidden;display:block}.fg-project-card .fg-card-photo{height:195px}.fg-project-body{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 19px;min-height:76px}.fg-project-body h3{font-size:1rem;line-height:1.35;margin:0;font-weight:850}.fg-project-body .fg-arrow{font-size:1.7rem;color:#719600}.fg-project-card:hover .fg-project-body{background:#e9f0d7}.fg-section--dark .fg-project-body{color:var(--fg-ink)}.fg-view-all{margin-top:30px;text-align:center}.fg-project-empty{grid-column:1/-1;padding:40px;text-align:center;background:rgba(255,255,255,.07);border:1px dashed #777}.fg-process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.fg-process-step{display:flex;align-items:flex-start;gap:14px}.fg-process-number{font-size:2.4rem;color:#7ca407;font-weight:900;line-height:1;letter-spacing:-.06em}.fg-process-step h3{font-size:1rem;text-transform:uppercase;font-weight:900;margin:1px 0 6px}.fg-process-step p{font-size:.85rem;line-height:1.5;margin:0;color:#48545b}.fg-sector-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.fg-sector{padding:16px;display:flex;align-items:center;gap:11px;background:#fff;border:1px solid #e2e7e9;font-weight:750;font-size:.95rem}.fg-sector .fg-sector-mark{font-size:1.45rem;color:#84ac16}.fg-cta{position:relative;color:#fff;background:#21292f;isolation:isolate;overflow:hidden}.fg-cta-bg{position:absolute;inset:0;background-position:center;background-size:cover;z-index:-2}.fg-cta:after{position:absolute;content:"";inset:0;background:linear-gradient(90deg,rgba(12,18,22,.94),rgba(12,18,22,.74),rgba(12,18,22,.22));z-index:-1}.fg-cta-row{display:flex;justify-content:space-between;align-items:center;gap:32px;padding:66px 0}.fg-cta h2{font-size:clamp(2.2rem,4vw,4.2rem);max-width:560px;line-height:1;letter-spacing:-.04em;font-weight:950;text-transform:uppercase;margin:0 0 12px}.fg-cta p{margin:0;color:#e7ecee;font-size:1.03rem;max-width:600px}.fg-footer{background:#141b1f;color:#edf2f4;padding-top:55px}.fg-footer-grid{display:grid;grid-template-columns:1.45fr 1fr 1fr 1.18fr;gap:35px}.fg-footer .fg-wordmark b{color:#fff;font-size:2rem}.fg-footer .fg-wordmark small{color:#fff}.fg-footer p,.fg-footer a{font-size:.87rem;line-height:1.6;color:#d2dadd}.fg-footer h3{font-size:.92rem;text-transform:uppercase;letter-spacing:.05em;margin:0 0 16px}.fg-footer ul{padding:0;list-style:none;margin:0}.fg-footer li{margin:7px 0}.fg-footer li a:before{content:'›';color:var(--fg-accent);margin-right:8px;font-size:1.2em}.fg-footer a:hover{color:var(--fg-accent)}.fg-footer-bottom{border-top:1px solid #4c575e;margin-top:36px;padding:20px 0;display:flex;justify-content:space-between;gap:15px;font-size:.78rem;color:#abb6bb}.fg-footer-bottom a{font-size:inherit}.fg-page-title{min-height:305px;background:#222b30;color:#fff;position:relative;isolation:isolate;display:flex;align-items:center}.fg-page-title-bg{position:absolute;z-index:-2;inset:0;background:center/cover no-repeat}.fg-page-title:after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,rgba(15,20,24,.96),rgba(15,20,24,.7) 47%,rgba(15,20,24,.23))}.fg-page-title .fg-container{padding:55px 0}.fg-page-title h1{font-size:clamp(3rem,6vw,5rem);margin:0 0 16px}.fg-page-title p{font-size:1.15rem;max-width:700px;margin:0;color:#e1e8eb}.fg-crumbs{font-size:.78rem;padding:16px 0;color:#657077}.fg-about-values{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.fg-value-card{background:#f4f6f5;padding:30px 28px;border-top:5px solid var(--fg-accent)}.fg-value-card h3{margin:0 0 12px;font-size:1.2rem;text-transform:uppercase;font-weight:900}.fg-value-card p{margin:0;color:#48555c;line-height:1.65}.fg-checks{list-style:none;padding:0;margin:0}.fg-checks li{padding:5px 0}.fg-checks li:before{content:'✓';font-weight:900;color:#709700;margin-right:10px}.fg-veteran-row{display:grid;grid-template-columns:1fr 1.6fr;gap:60px;align-items:center}.fg-veteran-banner{min-height:220px;background:linear-gradient(135deg,#283138,#101518);border-left:8px solid var(--fg-accent);display:flex;align-items:center;padding:35px}.fg-veteran-banner h2{color:#fff}.fg-veteran-row p{line-height:1.7;color:#435057;font-size:1.05rem}.fg-team{display:grid;grid-template-columns:1fr 2.3fr;gap:35px;align-items:start}.fg-team img{object-fit:cover;width:100%;max-height:345px;border-radius:4px}.fg-team h3{font-size:1.5rem;margin:0 0 8px}.fg-team p{line-height:1.68;color:#42515a}.fg-licenses{background:#f3f5f5;padding:22px 25px;border-left:5px solid var(--fg-accent);margin-top:23px}.fg-licenses p{margin:0}.fg-safety-band{background:var(--fg-dark);color:#fff;padding:45px 0}.fg-safety-grid{display:grid;grid-template-columns:1fr 2fr;align-items:center;gap:45px}.fg-safety-band h2{font-size:clamp(2rem,4vw,3.3rem)}.fg-safety-band p{color:#e6ecef;line-height:1.7}.fg-contact-layout{display:grid;grid-template-columns:1fr 1.35fr;gap:50px}.fg-contact-layout h2{font-size:2.2rem}.fg-contact-list{list-style:none;margin:24px 0 0;padding:0}.fg-contact-list li{padding:10px 0;border-bottom:1px solid #d8dddf}.fg-form{background:var(--fg-soft);padding:28px;border:1px solid #e3e8e9}.fg-form label{font-size:.91rem;font-weight:700;display:block;margin:0 0 7px}.fg-form input,.fg-form textarea{display:block;width:100%;background:#fff;border:1px solid #9ca9ad;border-radius:3px;padding:12px;margin:0 0 17px}.fg-form textarea{min-height:140px;resize:vertical}.fg-honeypot{position:absolute;left:-10000px;top:auto;height:1px;width:1px;overflow:hidden}.fg-alert{padding:15px 18px;background:#e5f3d1;border-left:4px solid #729d11;margin-bottom:20px}.fg-alert--error{background:#ffebe8;border-color:#c33}.fg-generic-page,.fg-single{padding:70px 0;min-height:40vh}.fg-generic-page h1,.fg-single h1{font-size:clamp(2.3rem,4vw,4rem);margin-top:0}.fg-single .wp-block-post-featured-image img{border-radius:5px}.fg-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:26px}.fg-gallery img{width:100%;height:235px;object-fit:cover;border-radius:4px}.fg-muted{color:#728087}.fg-visual-section-label{font-size:.75rem;letter-spacing:.1em;color:var(--fg-accent);text-transform:uppercase;font-weight:900}.fg-fallback-photo{background:linear-gradient(135deg,#4a5c62,#8e9e96)}
@media (max-width:1100px){.fg-container{width:min(calc(100% - 48px),var(--fg-width))}.fg-header-row{gap:12px}.fg-nav{gap:14px}.fg-nav a{font-size:.85rem}.fg-brand{min-width:180px}.fg-wordmark b{font-size:2rem}.fg-service-card .fg-card-photo{height:190px}.fg-about-split{gap:34px}.fg-stat{padding:23px 18px}.fg-footer-grid{gap:22px}}
@media (max-width:820px){.fg-js .fg-menu-toggle{display:block;margin-left:auto}.fg-header-row{min-height:73px}.fg-nav{position:static;background:#fff;padding:12px 0;flex-direction:column;align-items:stretch;gap:0}.fg-js .fg-nav{display:none;position:absolute;top:100%;left:0;right:0;padding:20px 24px 27px;box-shadow:0 10px 20px rgba(0,0,0,.14)}.fg-menu-open .fg-nav{display:flex}.fg-nav a{display:block;padding:12px;border-bottom:1px solid #e7eaeb;font-size:1rem}.fg-nav .fg-btn{margin-top:12px;text-align:center}.fg-hero{min-height:500px}.fg-hero:before{background:linear-gradient(90deg,rgba(14,19,23,.94),rgba(14,19,23,.58))}.fg-hero h1{max-width:620px}.fg-service-grid,.fg-project-grid{grid-template-columns:repeat(2,1fr)}.fg-statbar-items{grid-template-columns:repeat(3,1fr)}.fg-stat{gap:10px}.fg-stat h3{font-size:1.05rem}.fg-stat-icon{font-size:2rem}.fg-about-split{grid-template-columns:1fr}.fg-about-photo{min-height:0;max-height:400px}.fg-process-grid,.fg-sector-grid{grid-template-columns:repeat(2,1fr)}.fg-footer-grid{grid-template-columns:repeat(2,1fr)}.fg-veteran-row{gap:25px}.fg-contact-layout{grid-template-columns:1fr}.fg-team{grid-template-columns:1fr 2fr}}
@media (max-width:600px){.fg-container{width:calc(100% - 32px)}.fg-section{padding:48px 0}.fg-section-head{display:block;margin-bottom:26px}.fg-section-copy{margin-top:13px}.fg-section h2{font-size:2.25rem}.fg-topbar{font-size:.68rem}.fg-topbar .fg-container{min-height:34px}.fg-topbar .fg-veteran-text{max-width:58%}.fg-brand{min-width:0}.fg-brand img{max-width:190px;max-height:55px}.fg-wordmark b{font-size:1.75rem}.fg-wordmark small{font-size:.43rem}.fg-hero{min-height:515px;align-items:end}.fg-hero .fg-container{padding:65px 0 45px}.fg-hero:before{background:linear-gradient(0deg,rgba(14,19,23,.96) 4%,rgba(14,19,23,.74) 54%,rgba(14,19,23,.25) 100%)}.fg-hero h1{font-size:clamp(2.8rem,12vw,4.8rem)}.fg-hero p{font-size:1.02rem}.fg-actions{gap:10px}.fg-actions .fg-btn{padding:12px 15px;font-size:.89rem;flex:1}.fg-statbar-items{grid-template-columns:1fr}.fg-stat{padding:16px 4px}.fg-stat+.fg-stat{border-top:1px solid #536069}.fg-stat+.fg-stat:before{display:none}.fg-stat h3{font-size:1.1rem}.fg-service-grid,.fg-project-grid,.fg-about-values,.fg-process-grid,.fg-sector-grid{grid-template-columns:1fr}.fg-card-photo,.fg-service-card .fg-card-photo{height:215px}.fg-process-step{border-bottom:1px solid #dce2e4;padding-bottom:18px}.fg-sector{padding:14px}.fg-cta-row{display:block;padding:52px 0}.fg-cta-row .fg-btn{margin-top:24px}.fg-footer-grid{grid-template-columns:1fr;gap:26px}.fg-footer-bottom{display:block}.fg-footer-bottom span{display:block;margin-top:8px}.fg-page-title{min-height:260px}.fg-page-title h1{font-size:3rem}.fg-veteran-row,.fg-safety-grid,.fg-team{grid-template-columns:1fr}.fg-veteran-banner{min-height:180px}.fg-gallery{grid-template-columns:1fr 1fr}.fg-gallery img{height:150px}.fg-generic-page,.fg-single{padding:45px 0}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:0.01ms!important;animation-duration:0.01ms!important}}

.fg-footer .fg-brand-image{display:inline-flex;background:#fff;padding:9px;border-radius:3px}.fg-footer .fg-brand img{max-height:54px;max-width:245px}.fg-header .fg-brand-image img{display:block}.fg-footer-brand{margin-bottom:10px}

.fg-original-archive{display:inline-block;color:#e4efc8!important;font-weight:700;margin-left:22px;text-decoration:underline}.fg-project-meta{display:flex;gap:28px;flex-wrap:wrap;background:#f0f4e6;padding:21px;margin:20px 0 30px}.fg-project-meta div{display:flex;flex-direction:column;gap:4px}.fg-project-meta strong{font-size:.8rem;text-transform:uppercase}.fg-legacy-projects{padding:28px 0}.fg-footer .fg-brand-image{max-width:260px}@media(max-width:600px){.fg-original-archive{display:block;margin:18px 0 0}.fg-project-meta{gap:18px}}

.fg-legacy-services{padding:35px 0}.fg-legacy-services:empty,.fg-legacy-projects:empty{display:none}

.fg-project-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px}.fg-project-filters a{border:1px solid #77868a;color:#fff;padding:9px 14px;border-radius:3px;font-weight:750;font-size:.85rem}.fg-project-filters a:hover,.fg-project-filters a.is-active{background:var(--fg-accent);border-color:var(--fg-accent);color:#131a1e}.fg-project-pages{display:flex;justify-content:center;gap:7px;margin-top:24px}.fg-project-pages a{min-width:35px;height:35px;display:inline-grid;place-items:center;border:1px solid #7c8d90;color:#fff}.fg-project-pages a.is-active{background:var(--fg-accent);border-color:var(--fg-accent);color:#111;font-weight:900}


/*
 * FULL-BLEED SECTION CONTINUITY (v1.2.1)
 * WordPress applies a block gap to sibling blocks in flow layouts. Without
 * this scope-limited reset it inserts a white strip between the header/hero,
 * between the homepage's image-backed sections, and above the footer.
 * Keep normal spacing inside editable Gutenberg page content untouched.
 */
.wp-site-blocks { padding-block: 0; }
.wp-site-blocks > .wp-block-template-part,
.wp-site-blocks > main#main-content,
.wp-site-blocks > main.wp-block-group,
.wp-site-blocks > .fg-cta,
.wp-site-blocks > .fg-page-title,
.wp-site-blocks > .fg-project-page,
.wp-site-blocks > .fg-footer { margin-block: 0; }
/* Homepage and custom landing-page sections are full-bleed, not paragraphs. */
.wp-site-blocks main#main-content > :is(section, .wp-block-group, .wp-block-cover, .wp-block-fourgranite-hero, .wp-block-fourgranite-cta),
.wp-site-blocks main#main-content > :is(section, .wp-block-group, .wp-block-cover, .wp-block-fourgranite-hero, .wp-block-fourgranite-cta) + *,
.wp-site-blocks main#main-content > * + :is(section, .wp-block-group, .wp-block-cover, .wp-block-fourgranite-hero, .wp-block-fourgranite-cta) { margin-block-start: 0; margin-block-end: 0; }
/* Every native 4Granite band sits flush against its neighboring band. */
.wp-site-blocks .fg-hero,
.wp-site-blocks .fg-statbar,
.wp-site-blocks .fg-page-title,
.wp-site-blocks .fg-cta,
.wp-site-blocks .fg-footer,
.wp-site-blocks .fg-safety-band { margin-block: 0; }
/* Older Core versions loaded fallback CSS before the theme. Neutralize its
   extra padding when the proper industrial theme is active. */
.fg-hero, .fg-page-title { padding: 0; }
.fg-footer { padding-bottom: 0; }
.fg-container { padding-inline: 0; }
/* No ghost blank lines at the top/bottom of dynamic image banners. */
.fg-hero-bg, .fg-cta-bg, .fg-page-title-bg { display: block; }
