:root{
  --vc-bg:#171717;
  --vc-panel:#101010;
  --vc-panel-2:#1b1b1b;
  --vc-text:#ffffff;
  --vc-muted:#c8c8c8;
  --vc-line:#363636;
  --vc-brand:#20b7cf;
}

/* Homepage frame: true full width without viewport breakout hacks */
.home #page-content,
.home #content-scroll,
.home .cd-main-content,
.home #main,
.home #main-content,
.home #main-page-content.vc-gutenberg-home{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  padding-left:0!important;
  padding-right:0!important;
  overflow:visible!important;
}

.vc-gutenberg-home,
.vc-gb-home{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  background:var(--vc-bg);
  color:var(--vc-text);
  box-sizing:border-box;
}

.vc-gb-home > .alignfull,
.vc-gutenberg-home > .alignfull,
.vc-gb-home .alignfull{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}

.vc-gb-home *{box-sizing:border-box}
.vc-gb-home a{text-decoration:none}
.vc-gb-home p{color:var(--vc-muted);line-height:1.6}
.vc-gb-home h1,.vc-gb-home h2,.vc-gb-home h3{color:#fff;margin-top:0}

/* Shared content shell */
.vc-shell{
  width:100%;
  max-width:1540px;
  margin:0 auto!important;
  padding-left:5vw;
  padding-right:5vw;
}
.vc-shell-narrow{max-width:1320px}

/* Hero */
.vc-hero-block{
  width:100%;
  min-height:78vh;
  margin:0!important;
}
.vc-hero-block .wp-block-cover__inner-container{
  width:100%;
  max-width:1280px;
  margin:0 auto;
  padding:140px 5vw 80px;
}
.vc-kicker-block,
.vc-eyebrow-block,
.vc-card-number-block,
.vc-work-label{
  color:var(--vc-brand)!important;
  font-size:12px!important;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
}
.vc-kicker-block{margin-bottom:18px!important}
.vc-hero-heading{
  max-width:1000px;
  margin:0 auto 24px!important;
  font-size:clamp(48px,5.1vw,86px)!important;
  line-height:.98!important;
  letter-spacing:-.04em!important;
  text-transform:uppercase;
}
.vc-hero-lead{
  max-width:980px;
  margin:0 auto 28px!important;
  color:#f3f3f3!important;
  font-size:clamp(18px,1.4vw,25px)!important;
}

/* Buttons */
.vc-gb-home .wp-block-button__link{
  min-height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 22px!important;
  border-radius:999px!important;
  font-size:14px!important;
  font-weight:700;
  line-height:1;
}
.vc-button-primary .wp-block-button__link{
  background:var(--vc-brand)!important;
  color:#061417!important;
  border:1px solid var(--vc-brand)!important;
  box-shadow:0 8px 28px rgba(32,183,207,.18);
}
.vc-button-secondary .wp-block-button__link,
.vc-card-button .wp-block-button__link,
.vc-inline-button .wp-block-button__link,
.vc-footer-button .wp-block-button__link{
  background:transparent!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.72)!important;
}
.vc-gb-home .wp-block-button__link:hover{transform:translateY(-1px)}

/* Shared sections */
.vc-block-section{
  width:100%;
  margin:0!important;
  padding:90px 0;
  background:var(--vc-bg);
}
.vc-section-heading{
  max-width:1050px;
  margin-bottom:30px!important;
  font-size:clamp(40px,4.4vw,72px)!important;
  line-height:1!important;
  letter-spacing:-.04em!important;
  text-transform:uppercase;
}
.vc-eyebrow-block{margin-bottom:18px!important}

/* Problem */
.vc-block-problem{background:#141414}
.vc-statement-block{
  max-width:1200px;
  margin-bottom:28px!important;
  color:#fff!important;
  font-size:clamp(26px,2.4vw,40px)!important;
  line-height:1.25!important;
}
.vc-block-problem .vc-shell > p:last-child{max-width:980px}

/* Three ways */
.vc-block-services{background:#191919}
.vc-services-columns{gap:12px!important;margin-top:40px!important}
.vc-service-cover{
  height:100%;
  min-height:480px;
  border:1px solid rgba(255,255,255,.12);
}
.vc-service-cover .wp-block-cover__inner-container{
  min-height:430px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-end;
  padding:28px;
}
.vc-service-cover h3{
  margin:6px 0 12px!important;
  font-size:clamp(25px,1.8vw,34px)!important;
  line-height:1.05!important;
  text-transform:uppercase;
}
.vc-service-cover p:not(.vc-card-number-block){color:#f3f3f3!important;font-size:15px!important}

/* Built for public safety */
.vc-block-built{background:#151515}
.vc-block-built .wp-block-columns{gap:44px}
.vc-mini-card,
.vc-step-card,
.vc-outcome-card{
  height:100%;
  border:1px solid var(--vc-line);
  background:#181818;
  padding:24px!important;
}
.vc-mini-card h3,
.vc-step-card h3,
.vc-outcome-card h3{
  margin:8px 0 10px!important;
  font-size:22px!important;
  line-height:1.1!important;
  text-transform:uppercase;
}
.vc-mini-card p:last-child,
.vc-step-card p:last-child,
.vc-outcome-card p:last-child{font-size:14px!important;margin-bottom:0}

/* Content system */
.vc-block-capture{background:#101010}
.vc-capture-lead{max-width:1050px;font-size:18px!important}
.vc-step-columns{gap:0!important;margin-top:38px!important}
.vc-step-card{border-right:0}
.vc-step-columns .wp-block-column:last-child .vc-step-card{border-right:1px solid var(--vc-line)}

/* Outcomes */
.vc-block-outcomes{background:#171717}
.vc-outcome-columns{gap:12px!important;margin-top:36px!important}
.vc-outcome-card{min-height:220px}

/* Selected work */
.vc-block-work{background:#121212}
.vc-work-columns{gap:12px!important;margin-top:40px!important}
.vc-work-columns .wp-block-column{position:relative}
.vc-work-columns figure{margin-bottom:18px!important;overflow:hidden}
.vc-work-columns img{width:100%!important;aspect-ratio:4/5;object-fit:cover;display:block;transition:transform .35s ease}
.vc-work-columns .wp-block-column:hover img{transform:scale(1.02)}
.vc-work-label{margin-bottom:7px!important}
.vc-work-columns h3{font-size:26px!important;text-transform:uppercase;line-height:1.05!important}

/* CTA */
.vc-block-cta{
  background:radial-gradient(circle at 50% 0%,rgba(32,183,207,.09),transparent 48%),#151515;
  border-top:1px solid #2d2d2d;
}
.vc-shell-cta{max-width:1000px;text-align:center}
.vc-shell-cta .vc-section-heading{margin-left:auto!important;margin-right:auto!important}
.vc-shell-cta > p:not(.vc-eyebrow-block){max-width:760px;margin-left:auto!important;margin-right:auto!important}
.vc-shell-cta .wp-block-buttons{margin-top:28px}

/* Editable Gutenberg footer */
.vc-block-footer{
  width:100%;
  margin:0!important;
  padding:64px 0 110px;
  background:#0b0b0b;
  border-top:1px solid #333;
}
.vc-block-footer .wp-block-columns{gap:60px}
.vc-block-footer h3{font-size:15px!important;text-transform:uppercase;letter-spacing:.08em}
.vc-block-footer p,.vc-block-footer a{font-size:14px!important;color:#cfcfcf!important}
.vc-block-footer a:hover{color:var(--vc-brand)!important}
.vc-footer-copy{margin-top:38px!important;padding-top:18px;border-top:1px solid #282828;color:#777!important;font-size:11px!important}

@media(max-width:1100px){
  .vc-hero-block .wp-block-cover__inner-container{padding:120px 32px 70px}
  .vc-shell{padding-left:32px;padding-right:32px}
  .vc-block-section{padding:76px 0}
  .vc-services-columns,
  .vc-step-columns,
  .vc-outcome-columns,
  .vc-work-columns{flex-wrap:wrap!important}
  .vc-services-columns>.wp-block-column,
  .vc-work-columns>.wp-block-column{flex-basis:calc(50% - 6px)!important;min-width:calc(50% - 6px)}
  .vc-step-columns>.wp-block-column,
  .vc-outcome-columns>.wp-block-column{flex-basis:calc(50% - 6px)!important;min-width:calc(50% - 6px)}
  .vc-step-card{border-right:1px solid var(--vc-line)}
}

@media(max-width:700px){
  .vc-hero-block{min-height:72vh}
  .vc-hero-block .wp-block-cover__inner-container{padding:110px 20px 58px}
  .vc-shell{padding-left:20px;padding-right:20px}
  .vc-block-section{padding:62px 0}
  .vc-hero-heading{font-size:clamp(42px,13vw,64px)!important}
  .vc-section-heading{font-size:clamp(36px,10vw,54px)!important}
  .vc-services-columns>.wp-block-column,
  .vc-work-columns>.wp-block-column,
  .vc-step-columns>.wp-block-column,
  .vc-outcome-columns>.wp-block-column{flex-basis:100%!important;min-width:100%}
  .vc-service-cover{min-height:430px}
  .vc-block-footer .wp-block-columns{gap:26px}
}
