:root{
  --gf-slate:#314652;
  --gf-slate-dark:#22343e;
  --gf-slate-deep:#17262e;
  --gf-orange:#f59f19;
  --gf-orange-hover:#ffad26;
  --gf-green:#70b83e;
  --gf-green-dark:#4f922d;
  --gf-cream:#f6f4ed;
  --gf-soft:#edf1ee;
  --gf-white:#fff;
  --gf-ink:#26343b;
  --gf-muted:#647077;
  --gf-line:#d9dfdc;
  --gf-radius:16px;
  --gf-shadow:0 18px 50px rgba(23,38,46,.13)
}
.gf-site,.gf-site *{box-sizing:border-box}
.gf-site{font-family:Inter,Arial,sans-serif;color:var(--gf-ink);background:var(--gf-white);line-height:1.6}
.gf-site img{display:block;max-width:100%}
.gf-site a{text-decoration:none}
.gf-shell{width:min(1240px,calc(100% - 48px));margin:auto}

/* Header */
.gf-site .gf-header{position:relative;z-index:80;background:#fff;border-bottom:0}
.gf-site .gf-topbar{background:var(--gf-slate-deep);color:#eaf0ed;font-size:.74rem;letter-spacing:.07em;text-transform:uppercase}
.gf-site .gf-topbar-inner{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.gf-site .gf-topbar-services{display:flex;align-items:center;gap:11px;white-space:nowrap}
.gf-site .gf-topbar-services i{display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--gf-green)}
.gf-site .gf-topbar-links{display:flex;align-items:center;gap:20px;font-weight:800}
.gf-site .gf-topbar a{color:#fff}
.gf-site .gf-topbar a:hover{color:var(--gf-orange)}
.gf-site .gf-topbar-quote{color:var(--gf-orange)!important}
.gf-site .gf-brand-row{background:#fff}
.gf-site .gf-brand-row-inner{min-height:118px;display:flex;align-items:center;justify-content:center;position:relative}
.gf-site .gf-brand{display:block;line-height:0}
.gf-site .gf-brand img{width:370px;max-width:100%;max-height:102px;object-fit:contain}
.gf-site .gf-menu-toggle{display:none!important;appearance:none!important;border:0!important;background:var(--gf-orange)!important;color:var(--gf-slate-deep)!important;padding:11px 16px!important;font:800 .82rem/1 Inter,Arial,sans-serif!important;letter-spacing:.08em!important;text-transform:uppercase!important;border-radius:6px!important;box-shadow:none!important;min-width:0!important;min-height:0!important}
.gf-site .gf-nav-shell{background:var(--gf-slate);position:relative}
.gf-site .gf-nav{display:flex;align-items:center;justify-content:center;gap:8px;min-height:56px}
.gf-site .gf-nav a{position:relative;display:flex;align-items:center;min-height:56px;padding:0 14px;color:#fff!important;font-size:.84rem;font-weight:750;letter-spacing:.025em;white-space:nowrap}
.gf-site .gf-nav a:not(.gf-nav-cta):after{content:"";position:absolute;left:14px;right:14px;bottom:9px;height:2px;background:var(--gf-orange);transform:scaleX(0);transform-origin:left;transition:transform .2s ease}
.gf-site .gf-nav a:not(.gf-nav-cta):hover:after{transform:scaleX(1)}
.gf-site .gf-nav a:hover{color:#fff!important}
.gf-site .gf-nav-cta{min-height:38px!important;margin-left:8px;padding:0 18px!important;background:var(--gf-orange);color:var(--gf-slate-deep)!important;border-radius:999px;font-weight:900!important}
.gf-site .gf-nav-cta:hover{background:var(--gf-orange-hover)}
.gf-site .gf-brand-stripe,.gf-site .gf-footer-accent{display:grid;grid-template-columns:1fr 1fr;height:4px}
.gf-site .gf-brand-stripe span:first-child,.gf-site .gf-footer-accent span:first-child{background:var(--gf-orange)}
.gf-site .gf-brand-stripe span:last-child,.gf-site .gf-footer-accent span:last-child{background:var(--gf-green)}

/* Main + heroes */
.gf-site .gf-main{overflow:hidden}
.gf-site .gf-hero{position:relative;color:white;isolation:isolate;background:var(--gf-slate-deep)}
.gf-site .gf-hero-home{min-height:690px}
.gf-site .gf-hero-inner{min-height:510px}
.gf-site .gf-hero-media,.gf-site .gf-hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gf-site .gf-hero-media{z-index:-2}
.gf-site .gf-hero-shade{background:linear-gradient(90deg,rgba(23,38,46,.92) 0%,rgba(23,38,46,.72) 44%,rgba(23,38,46,.15) 78%,rgba(23,38,46,.04) 100%);z-index:-1}
.gf-site .gf-hero-content{min-height:inherit;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding-top:55px;padding-bottom:104px}
.gf-site .gf-kicker{display:inline-flex;align-items:center;gap:10px;font-size:.75rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase;color:var(--gf-green-dark);margin-bottom:14px}
.gf-site .gf-kicker:before{content:"";width:34px;height:3px;background:var(--gf-orange)}
.gf-site .gf-kicker-light{color:#fff}
.gf-site .gf-kicker-light:before{background:var(--gf-orange)}
.gf-site .gf-kicker-dark{color:var(--gf-slate-deep)}
.gf-site .gf-hero h1{font-size:clamp(3rem,6.3vw,6rem);line-height:.94;letter-spacing:-.05em;max-width:920px;margin:0 0 24px;font-weight:800;color:#fff}
.gf-site .gf-hero-inner h1{font-size:clamp(2.8rem,5.4vw,5rem);max-width:930px}
.gf-site .gf-hero p{font-size:clamp(1.04rem,1.7vw,1.28rem);max-width:720px;margin:0 0 30px;color:#eef2ef}
.gf-site .gf-actions{display:flex;gap:12px;flex-wrap:wrap}
.gf-site .gf-btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;border:2px solid var(--gf-orange);background:var(--gf-orange);color:var(--gf-slate-deep)!important;font-weight:900;border-radius:999px;transition:transform .2s ease,background .2s ease,border-color .2s ease}
.gf-site .gf-btn:hover{transform:translateY(-2px);background:var(--gf-orange-hover);border-color:var(--gf-orange-hover)}
.gf-site .gf-btn-ghost{background:transparent;color:white!important;border-color:rgba(255,255,255,.75)}
.gf-site .gf-btn-ghost:hover{background:#fff;color:var(--gf-slate-deep)!important;border-color:#fff}
.gf-site .gf-btn-dark{background:var(--gf-slate-deep);border-color:var(--gf-slate-deep);color:#fff!important}
.gf-site .gf-btn-dark:hover{background:var(--gf-slate);border-color:var(--gf-slate)}
.gf-site .gf-btn-light{background:#fff;border-color:#fff;color:var(--gf-slate-deep)!important}
.gf-site .gf-btn-outline{background:transparent;border-color:var(--gf-slate);color:var(--gf-slate)!important}
.gf-site .gf-btn-outline:hover{background:var(--gf-slate);border-color:var(--gf-slate);color:#fff!important}
.gf-site .gf-hero-rail{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);background:rgba(34,52,62,.95);border-top:1px solid rgba(255,255,255,.14)}
.gf-site .gf-hero-rail a{position:relative;padding:17px;text-align:center;color:#fff!important;font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;border-right:1px solid rgba(255,255,255,.11)}
.gf-site .gf-hero-rail a:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--gf-green);transform:scaleX(0);transition:transform .2s ease}
.gf-site .gf-hero-rail a:hover:before{transform:scaleX(1)}

/* Sections */
.gf-site .gf-section{padding:94px 0}
.gf-site .gf-soft{background:var(--gf-soft)}
.gf-site .gf-split{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;align-items:start}
.gf-site .gf-section h2,.gf-site .gf-brand-band h2,.gf-site .gf-cta h2{font-size:clamp(2.3rem,4.5vw,4.65rem);line-height:.98;letter-spacing:-.045em;margin:0;font-weight:800;color:var(--gf-slate-deep)}
.gf-site .gf-copy-lg p{font-size:1.14rem;margin:0 0 20px;color:#46555c}
.gf-site .gf-section-head{max-width:820px;margin-bottom:38px}
.gf-site .gf-section-head-row{max-width:none;display:flex;justify-content:space-between;align-items:end;gap:30px}

/* Service cards */
.gf-site .gf-services-home{background:var(--gf-cream)}
.gf-site .gf-service-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:18px}
.gf-site .gf-service-card{position:relative;min-height:340px;border-radius:var(--gf-radius);overflow:hidden;color:#fff;background:var(--gf-slate-deep);box-shadow:var(--gf-shadow)}
.gf-site .gf-service-card-wide{grid-row:span 2;min-height:698px}
.gf-site .gf-service-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.82;transition:transform .35s ease}
.gf-site .gf-service-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(23,38,46,.93) 0%,rgba(23,38,46,.55) 31%,rgba(23,38,46,.04) 76%)}
.gf-site .gf-service-card div{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:28px}
.gf-site .gf-service-card span{color:var(--gf-orange);font-weight:900;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem}
.gf-site .gf-service-card h3{font-size:1.5rem;line-height:1.08;margin:8px 0;color:#fff}
.gf-site .gf-service-card p{margin:8px 0 0;color:#e7eceb}
.gf-site .gf-service-card:hover img{transform:scale(1.035)}
.gf-site .gf-service-card:hover span{color:#fff}

/* Brand band */
.gf-site .gf-brand-band{position:relative;padding:82px 0;background:var(--gf-orange);overflow:hidden}
.gf-site .gf-brand-band:after{content:"";position:absolute;width:360px;height:360px;border:82px solid rgba(112,184,62,.24);border-radius:50%;right:-100px;top:-160px;pointer-events:none}
.gf-site .gf-brand-band-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.22fr .78fr;gap:80px;align-items:center}
.gf-site .gf-brand-band h2{color:var(--gf-slate-deep)}
.gf-site .gf-brand-band p{font-size:1.12rem;color:#26343b}

/* Feature + gallery */
.gf-site .gf-feature-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:70px;align-items:center}
.gf-site .gf-feature-image{position:relative}
.gf-site .gf-feature-image:after{content:"";position:absolute;right:-16px;bottom:-16px;width:48%;height:48%;background:var(--gf-green);z-index:-1;border-radius:var(--gf-radius)}
.gf-site .gf-feature-image img{width:100%;height:560px;object-fit:cover;border-radius:var(--gf-radius);box-shadow:var(--gf-shadow)}
.gf-site .gf-feature-copy p{font-size:1.08rem;color:#4d585e;margin:22px 0 28px}
.gf-site .gf-media-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:10px}
.gf-site .gf-media-card{background:#fff;border:1px solid var(--gf-line);border-radius:14px;overflow:hidden;box-shadow:var(--gf-shadow)}
.gf-site .gf-media-card img{width:100%;height:220px;object-fit:cover}
.gf-site .gf-media-card div{padding:22px}
.gf-site .gf-media-card h3{font-size:1.22rem;line-height:1.16;margin:0 0 10px;color:var(--gf-slate-deep)}
.gf-site .gf-media-card p{margin:0;color:#59636a}

.gf-site .gf-projects{background:#fff}
.gf-site .gf-project-grid{display:grid;grid-template-columns:1.15fr .85fr .85fr 1.15fr;gap:8px}
.gf-site .gf-project-grid img{height:340px;width:100%;object-fit:cover}
.gf-site .gf-project-grid img:nth-child(2),.gf-site .gf-project-grid img:nth-child(3){height:300px;align-self:center}

/* CTA */
.gf-site .gf-cta{position:relative;background:var(--gf-slate-deep);color:white;padding:78px 0;overflow:hidden}
.gf-site .gf-cta:after{content:"";position:absolute;right:0;top:0;width:35%;height:5px;background:var(--gf-green)}
.gf-site .gf-cta:before{content:"";position:absolute;right:35%;top:0;width:18%;height:5px;background:var(--gf-orange)}
.gf-site .gf-cta-inner{display:flex;align-items:end;justify-content:space-between;gap:40px;position:relative;z-index:2}
.gf-site .gf-cta h2{max-width:850px;color:#fff}

/* Interior cards / forms */
.gf-site .gf-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.gf-site .gf-detail-card{background:white;border:1px solid var(--gf-line);border-radius:14px;padding:28px}
.gf-site .gf-detail-card:before{content:"";display:block;width:42px;height:4px;background:linear-gradient(90deg,var(--gf-orange) 0 58%,var(--gf-green) 58% 100%);margin-bottom:22px}
.gf-site .gf-detail-card h3{font-size:1.25rem;line-height:1.2;margin:0 0 10px;color:var(--gf-slate-deep)}
.gf-site .gf-detail-card p{color:#59636a;margin:0}
.gf-site .gf-gallery-grid{columns:3;column-gap:12px}
.gf-site .gf-gallery-grid figure{margin:0 0 12px;break-inside:avoid;overflow:hidden}
.gf-site .gf-gallery-grid img{width:100%;border-radius:8px;transition:transform .3s ease}
.gf-site .gf-gallery-grid figure:hover img{transform:scale(1.02)}
.gf-site .gf-contact-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:70px}
.gf-site .gf-contact-copy a{color:var(--gf-green-dark);font-weight:800}
.gf-site .gf-form{display:grid;grid-template-columns:1fr 1fr;gap:18px;background:var(--gf-cream);padding:34px;border-radius:var(--gf-radius);border-top:5px solid var(--gf-orange)}
.gf-site .gf-form label{font-weight:800;font-size:.88rem;color:var(--gf-slate-deep)}
.gf-site .gf-form input,.gf-site .gf-form select,.gf-site .gf-form textarea{width:100%;border:1px solid #cfd6d2;background:#fff;border-radius:8px;padding:13px;margin-top:6px;font:inherit;color:var(--gf-ink)}
.gf-site .gf-form input:focus,.gf-site .gf-form select:focus,.gf-site .gf-form textarea:focus{outline:2px solid rgba(112,184,62,.38);border-color:var(--gf-green)}
.gf-site .gf-form-full,.gf-site .gf-form-note{grid-column:1/-1}
.gf-site .gf-form-note{padding:12px 14px;background:#fff0d5;border-left:4px solid var(--gf-orange)}
.gf-site .gf-success{background:#e8f4e0;border-left-color:var(--gf-green)}

/* Footer */
.gf-site .gf-footer{background:#eef1ee;color:#56646b;padding:0 0 22px}
.gf-site .gf-footer-grid{display:grid;grid-template-columns:1.55fr 1fr 1fr 1fr;gap:50px;padding-top:65px}
.gf-site .gf-footer img{width:310px;max-width:100%;margin-bottom:22px}
.gf-site .gf-footer h3{color:var(--gf-slate-deep);font-size:.91rem;text-transform:uppercase;letter-spacing:.1em;margin:0 0 16px}
.gf-site .gf-footer a,.gf-site .gf-footer span{display:block;color:#56646b;margin:7px 0}
.gf-site .gf-footer a:hover{color:var(--gf-green-dark)}
.gf-site .gf-footer-brand p{max-width:390px}
.gf-site .gf-footer-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:44px;padding-top:20px;border-top:1px solid #cfd7d3;font-size:.8rem}
.gf-site .gf-footer-bottom div{display:flex;gap:18px;flex-wrap:wrap}
.gf-site .gf-footer-bottom span,.gf-site .gf-footer-bottom a{margin:0}

@media(max-width:1080px){
  .gf-site .gf-nav{gap:2px}
  .gf-site .gf-nav a{padding:0 10px;font-size:.79rem}
  .gf-site .gf-nav a:not(.gf-nav-cta):after{left:10px;right:10px}
}

@media(max-width:980px){
  .gf-site .gf-topbar-services{display:none}
  .gf-site .gf-topbar-inner{justify-content:flex-end}
  .gf-site .gf-brand-row-inner{min-height:92px;justify-content:space-between}
  .gf-site .gf-brand img{width:285px;max-height:76px}
  .gf-site .gf-menu-toggle{display:inline-flex!important;align-items:center!important;justify-content:center!important}
  .gf-site .gf-nav-shell{background:#fff}
  .gf-site .gf-nav{display:none!important;position:absolute;left:24px;right:24px;top:130px;background:var(--gf-slate-deep);padding:12px;border-radius:12px;box-shadow:var(--gf-shadow);flex-direction:column;align-items:stretch;gap:0;min-height:0}
  .gf-site .gf-nav.is-open{display:flex!important}
  .gf-site .gf-nav a{min-height:46px;padding:0 14px;font-size:.86rem;border-bottom:1px solid rgba(255,255,255,.08)}
  .gf-site .gf-nav a:after{display:none}
  .gf-site .gf-nav-cta{margin:9px 0 0!important;justify-content:center;border-bottom:0!important}
  .gf-site .gf-brand-stripe{margin-top:0}
  .gf-site .gf-split,.gf-site .gf-brand-band-grid,.gf-site .gf-feature-grid,.gf-site .gf-contact-grid{grid-template-columns:1fr;gap:40px}
  .gf-site .gf-service-grid{grid-template-columns:1fr 1fr}
  .gf-site .gf-service-card-wide{grid-row:auto;grid-column:1/-1;min-height:470px}
  .gf-site .gf-detail-grid{grid-template-columns:1fr 1fr}
  .gf-site .gf-media-card-grid{grid-template-columns:1fr 1fr}
  .gf-site .gf-cta-inner{align-items:flex-start;flex-direction:column}
  .gf-site .gf-footer-grid{grid-template-columns:1.5fr 1fr 1fr}
  .gf-site .gf-footer-grid>div:last-child{grid-column:1/-1}
  .gf-site .gf-project-grid{grid-template-columns:1fr 1fr}
  .gf-site .gf-project-grid img,.gf-site .gf-project-grid img:nth-child(2),.gf-site .gf-project-grid img:nth-child(3){height:300px}
  .gf-site .gf-gallery-grid{columns:2}
}

@media(max-width:640px){
  .gf-shell{width:min(100% - 30px,1240px)}
  .gf-site .gf-topbar-links{width:100%;justify-content:space-between;gap:10px}
  .gf-site .gf-topbar-links a{font-size:.7rem}
  .gf-site .gf-topbar-quote{display:none}
  .gf-site .gf-brand-row-inner{min-height:82px}
  .gf-site .gf-brand img{width:230px;max-height:68px}
  .gf-site .gf-menu-toggle{padding:10px 12px!important;font-size:.73rem!important}
  .gf-site .gf-nav{top:120px;left:15px;right:15px}
  .gf-site .gf-hero-home{min-height:620px}
  .gf-site .gf-hero-inner{min-height:450px}
  .gf-site .gf-hero-content{padding-top:48px;padding-bottom:102px}
  .gf-site .gf-hero h1{font-size:3.15rem}
  .gf-site .gf-hero-rail{grid-template-columns:1fr 1fr}
  .gf-site .gf-hero-rail a{padding:10px 6px;font-size:.63rem}
  .gf-site .gf-section{padding:70px 0}
  .gf-site .gf-section h2,.gf-site .gf-brand-band h2,.gf-site .gf-cta h2{font-size:2.58rem}
  .gf-site .gf-brand-band{padding:68px 0}
  .gf-site .gf-service-grid,.gf-site .gf-detail-grid,.gf-site .gf-media-card-grid,.gf-site .gf-form{grid-template-columns:1fr}
  .gf-site .gf-service-card-wide,.gf-site .gf-service-card{grid-column:auto;min-height:360px}
  .gf-site .gf-project-grid{grid-template-columns:1fr 1fr}
  .gf-site .gf-project-grid img,.gf-site .gf-project-grid img:nth-child(2),.gf-site .gf-project-grid img:nth-child(3){height:210px}
  .gf-site .gf-feature-image img{height:390px}
  .gf-site .gf-feature-image:after{right:-8px;bottom:-8px}
  .gf-site .gf-footer-grid{grid-template-columns:1fr 1fr;padding-top:54px}
  .gf-site .gf-footer-brand{grid-column:1/-1}
  .gf-site .gf-footer img{width:275px}
  .gf-site .gf-footer-bottom{flex-direction:column}
  .gf-site .gf-gallery-grid{columns:1}
  .gf-site .gf-section-head-row{align-items:flex-start;flex-direction:column}
}
