/*
 * NXT GEN WEB — 13-color system, sitewide UI layer · 2026-11-08
 * Approved: four greens, five grays, white, off-white, charcoal and black.
 * Important: illustration scenes, client identities, photos, SVG art,
 * logo artwork, demo/brand mockups and contextual animation palettes are excluded.
 * Apply this structural design skin after the earlier page-family styles.
 */
:root {
  --ngw-logo-green:#84C041;
  --ngw-lime-green:#B5E66A;
  --ngw-neon-green:#C6FF25;
  --ngw-light-green:#C9F2A3;
  --ngw-soft-green:#C9F2A3;
  --ngw-white:#FFFFFF;
  --ngw-off-white:#F7F8F9;
  --ngw-light-gray:#ECEEF0;
  --ngw-silver-gray:#D6DBDF;
  --ngw-medium-gray:#BCC1C5;
  --ngw-dark-gray:#62676B;
  --ngw-graphite-gray:#41494F;
  --ngw-charcoal:#202124;
  --ngw-pure-black:#000000;
}
body.ng-chrome{
  --brand-primary:var(--ngw-logo-green);
  --brand-secondary:var(--ngw-lime-green);
  --brand-neon:var(--ngw-neon-green);
  --brand-light-green:var(--ngw-light-green);
  --brand-neutral:var(--ngw-charcoal);
  --brand-paper:var(--ngw-off-white);
}
body.home .ngh {
  --ngh-green:var(--ngw-logo-green);
  --nghd-green:var(--ngw-logo-green);
  --nghd-green-light:var(--ngw-light-green);
  --nghd-mist:var(--ngw-light-gray);
  --nghd-paper:var(--ngw-off-white);
  --nghd-ink:var(--ngw-charcoal);
  --nghd-grey:var(--ngw-dark-gray);
}
body.ngm-page .ngm {
  --ngm-green:var(--ngw-logo-green);
  --ngm-green-text:var(--ngw-charcoal);
  --ngm-ink:var(--ngw-charcoal);
  --ngm-muted:var(--ngw-dark-gray);
}
.ngm-seo {
  --nseo-green:var(--ngw-logo-green);
  --nseo-green-two:var(--ngw-lime-green);
  --nseo-green-two-soft:var(--ngw-light-green);
  --nseo-edge:var(--ngw-silver-gray);
  --nseo-slate:var(--ngw-charcoal);
  --nseo-ink:var(--ngw-charcoal);
}
body.page-id-168 .ngw-design{
  --nw-logo:var(--ngw-logo-green);--nw-lime:var(--ngw-lime-green);
  --nw-soft:var(--ngw-light-green);--nw-neon:var(--ngw-neon-green);
  --nw-white:var(--ngw-white);--nw-off:var(--ngw-off-white);
  --nw-light:var(--ngw-light-gray);--nw-silver:var(--ngw-silver-gray);
  --nw-mid:var(--ngw-medium-gray);--nw-gray:var(--ngw-dark-gray);
  --nw-graphite:var(--ngw-graphite-gray);
  --nw-charcoal:var(--ngw-charcoal);--nw-black:var(--ngw-pure-black);
}
.ngcity{
  --lime:var(--ngw-logo-green);--ink:var(--ngw-charcoal);
  --muted:var(--ngw-dark-gray);--line:var(--ngw-silver-gray);
  --tint:var(--ngw-off-white);
}
.ngcity.ngregion {
  --r-ink:var(--ngw-charcoal);--r-green:var(--ngw-logo-green);
  --r-pale:var(--ngw-light-green);--r-soft:var(--ngw-off-white);
  --r-line:var(--ngw-silver-gray);
}
.ngcity.ngcp {
  --ngcp-green:var(--ngw-logo-green);
  --ngcp-green-two:var(--ngw-lime-green);
  --ngcp-green-light:var(--ngw-light-green);
  --ngcp-gray:var(--ngw-off-white);
  --ngcp-charcoal:var(--ngw-charcoal);
  --ngcp-line:var(--ngw-silver-gray);
}
/* Shared navigation, footer, accessibility and forms */
body.ng-chrome .global-header.ngc-header{
  background:var(--ngw-charcoal);
  border-bottom-color:var(--ngw-graphite-gray);
}
body.ng-chrome .ngc-mobile__panel{background:var(--ngw-charcoal)}
body.ng-chrome .ngc-quote{
  color:var(--ngw-charcoal);background:var(--ngw-logo-green);
  border-color:var(--ngw-logo-green);
}
body.ng-chrome .ngc-quote:hover,
body.ng-chrome .ngc-quote:focus-visible{
  color:var(--ngw-charcoal);background:var(--ngw-neon-green);
  border-color:var(--ngw-neon-green);
}
body.ng-chrome .ngc-desktop-nav>a:hover,
body.ng-chrome .ngc-more>summary:hover{color:var(--ngw-neon-green)}
body.ng-chrome .ngc-more__panel{
  background:var(--ngw-white);border-color:var(--ngw-silver-gray)
}
body.ng-chrome .ngc-more__panel a:hover{
  color:var(--ngw-charcoal);text-decoration-color:var(--ngw-logo-green)
}
body.ng-chrome .ngc-footer{
  background:var(--ngw-charcoal);border-top-color:var(--ngw-logo-green);
}
body.ng-chrome .ngc-footer :is(h2,.ngc-footer__email,.ngc-footer__additional>span){
  color:var(--ngw-lime-green);
}
body.ng-chrome .ngc-footer :is(a:hover,a:focus-visible){color:var(--ngw-neon-green)}
body.ng-chrome .ngc-footer p{color:var(--ngw-silver-gray)}
body.ng-chrome .ngc-footer__bottom{border-top-color:var(--ngw-graphite-gray)}
body.ng-chrome :is(.ngc-header,.ngc-footer) :is(a,summary):focus-visible{
  outline:3px solid var(--ngw-neon-green);outline-offset:4px
}
body.ng-chrome main :is(input,textarea,select):not([type=checkbox]):not([type=radio]){
  accent-color:var(--ngw-logo-green)
}
body.ng-chrome main :is(input,textarea,select):focus-visible{
  outline:2px solid var(--ngw-logo-green);outline-offset:2px;
  border-color:var(--ngw-logo-green)
}
/* Homepage: keep motion, video and client artwork; color only surrounding surfaces */
body.home .ngh .ngh-brands{background:var(--ngw-charcoal);border-color:var(--ngw-graphite-gray)}
body.home .ngh .ngh-brands__label{color:var(--ngw-silver-gray)}
body.home .ngh .ngh-hero__content .ngh-kicker{color:var(--ngw-white)}
body.home .ngh #services,.ngh .ngh-reviews,.ngh #home-blog{background-color:var(--ngw-off-white)}
body.home .ngh .ngh-payment-strip{
  background:var(--ngw-light-gray);border-color:var(--ngw-silver-gray)
}
body.home .ngh .ngh-award{
  background:var(--ngw-white);border-color:var(--ngw-silver-gray)
}
body.home .ngh #texas.nghr-areas,
body.home .ngh .ngh-areas-heritage{
  background-color:var(--ngw-off-white)
}
body.home .ngh #texas .nghr-local,
body.home .ngh #texas .nghr-texas-highlights{
  background:var(--ngw-white);border-color:var(--ngw-silver-gray)
}
body.home .ngh #texas .nghr-local:before{
  background:linear-gradient(90deg,var(--ngw-logo-green),var(--ngw-lime-green),var(--ngw-neon-green));
}
body.home .ngh #texas .nghr-texas-highlights li a{
  background:var(--ngw-off-white);border-color:var(--ngw-light-gray);color:var(--ngw-charcoal);
}
body.home .ngh #texas .nghr-texas-highlights li a:is(:hover,:focus-visible){
  background:var(--ngw-light-green);border-color:var(--ngw-logo-green);
}
body.home .ngh :is(.ngh-btn,.ngh-button):not(.ngh-btn--outline):hover{
  background:var(--ngw-neon-green);border-color:var(--ngw-neon-green);color:var(--ngw-charcoal)
}
body.home .ngh .ngh-cta,.ngh .ngh-grow{border-color:var(--ngw-graphite-gray)}
/* Core marketing / product pages */
body.ngm-page .ngm .ngm-btn:not(.ngm-button--outline),
body.page-id-168 .ngw-design .ngw-btn:not(.ngw-btn--outline){
  color:var(--ngw-charcoal)
}
body.ngm-page .ngm .ngm-button:not(.ngm-button--outline):hover,
body.page-id-168 .ngw-design .ngw-btn:not(.ngw-btn--outline):hover,
body.ngm-page .ngm .nseo-btn--lime:hover{
  background:var(--ngw-neon-green);border-color:var(--ngw-neon-green);color:var(--ngw-charcoal)
}
body.page-id-168 .ngw-design .ngw-hero--sanantonio{
  background:linear-gradient(160deg,var(--ngw-white),var(--ngw-off-white))
}
body.page-id-168 .ngw-design .ngw26-motion{
  box-shadow:14px 17px 0 var(--ngw-silver-gray),0 24px 55px #00000030
}
body.page-id-168 .ngw-design .ngw-hero__ribbon{
  background:var(--ngw-graphite-gray);color:var(--ngw-white)
}
.ngm-seo .nseo-where,.ngm-seo .nseo-reporting{
  background:var(--ngw-light-gray)
}
.ngm-seo .nseo-market--national,.ngm-seo .nseo-process{
  background:var(--ngw-off-white)
}
.ngm.ngm-ppc .nsf-offer-grid .nsf-service:nth-child(3){
  border-color:var(--ngw-silver-gray)
}
.ngm.ngm-ppc .nsf-offer-grid .nsf-service:nth-child(4){
  background:var(--ngw-silver-gray);color:var(--ngw-charcoal)
}
.ngm.ngm-ppc .nsf-offer-grid .nsf-service:nth-child(6){
  background:var(--ngw-light-gray);color:var(--ngw-charcoal)
}
/* Service family and ecommerce: preserve contextual animation colors */
body.ngs-family #ngx-main .ngx-hero{background:var(--ngw-off-white)}
body.ngs-family #ngx-main .ngx-section:nth-of-type(even){background:var(--ngw-off-white)}
body.ngs-family #ngx-main .ngsm-method__grid article:nth-child(3){
  background:var(--ngw-silver-gray)
}
body.ngs-family #ngx-main .ngsm-method__grid article:nth-child(4){
  background:var(--ngw-graphite-gray);color:var(--ngw-white)
}
.ngce .ngce-feature--sage,.ngce .ngce-feature--mint{
  background:var(--ngw-light-gray)
}
.ngce .ngce-hero__foot{background:var(--ngw-graphite-gray)}
/* Location pages: all 50 Texas cities, neighborhoods, region guides */
.ngcity.ngcp .ngcp-intro,.ngcity.ngcp .ngcp-local-map,.ngcity.ngcp .ngcp-contact{
  background:var(--ngw-off-white)
}
.ngcity.ngcp .ngcp-hero .nght-hero-visual{
  background:var(--ngw-off-white);border-color:var(--ngw-silver-gray);
  box-shadow:11px 11px 0 var(--ngw-light-green)
}
.ngcity.ngcp .ngcp-signature-scene{
  background:var(--ngw-off-white)
}
.ngcity.ngcp .ngtx-market{background:var(--ngw-charcoal)}
.ngcity.ngcp .ngtx-market :is(.nght-label,.ngtx-step){color:var(--ngw-neon-green)!important}
.ngcity.ngcp .ngtx-playbook article{
  background:var(--ngw-graphite-gray);border-color:var(--ngw-dark-gray)
}
.ngcity.ngcp .ngtx-playbook article:hover{
  background:var(--ngw-charcoal);border-color:var(--ngw-neon-green)
}
.ngcity.ngcp .ngtx-local-depth{background:var(--ngw-off-white)}
.ngcity.ngcp .ngtx-local-steps article:hover{background:var(--ngw-light-green)}
.ngcity.ngcp .ngtx-local-number{
  border-color:var(--ngw-logo-green);color:var(--ngw-charcoal)
}
.ngcity.ngcp .ngcp-nearby .ngcp-all-texas{
  background:var(--ngw-light-green);color:var(--ngw-charcoal);
  border-color:var(--ngw-logo-green)
}
.ngcity.ngregion{
  --r-pale:var(--ngw-light-green);--r-soft:var(--ngw-off-white)
}
.ngcity.ngregion .nght-hero-visual{
  background:var(--ngw-off-white);border-color:var(--ngw-silver-gray);
  box-shadow:10px 10px 0 var(--ngw-silver-gray)
}
.ngcity.ngregion :is(.nght-intro,.ngregion-section--soft,.ngregion-market-journey){
  background:var(--ngw-off-white)
}
.ngcity.ngregion .ngregion-card--soft,
.ngcity.ngregion.ngregion--texas .ngregion-service-tile--3{
  background:var(--ngw-light-green);border-color:var(--ngw-silver-gray)
}
.ngcity.ngregion .nght-proof{background:var(--ngw-charcoal)}
.ngcity.ngregion .nght-proof h2{color:var(--ngw-white)!important}
.ngcity.ngregion .ngregion-checklist,
.ngcity.ngregion .ngregion-contact .ngcity-contact-form{
  background:var(--ngw-light-gray);border-color:var(--ngw-silver-gray)
}
.ngcity.ngregion .ngregion-market-pin{
  border-color:var(--ngw-off-white)
}
.ngcity.ngregion .ngtx-state-directory{
  background:var(--ngw-off-white)
}
.ngcity.ngregion .ngtx-state-directory__region{
  background:var(--ngw-white);border-color:var(--ngw-silver-gray)
}
/* Areas served: 50-city list and wider nationwide message */
.nga .nga-hero,.nga .nga-services{background:var(--ngw-off-white)}
.nga .nga-directory,.nga .nga-city-grid li{border-color:var(--ngw-silver-gray)}
.nga .ngtx-ranking-grid a{
  background:var(--ngw-off-white);border-color:var(--ngw-silver-gray);color:var(--ngw-charcoal)
}
.nga .ngtx-ranking-grid a:is(:hover,:focus-visible){
  background:var(--ngw-light-green);border-color:var(--ngw-logo-green)
}
.nga .nga-coverage-card{border-color:var(--ngw-silver-gray)}
/* Industry service pages: preserve mockups/illustrations, replace only UI */
body.ng-chrome .ngi-main .ngi-hero{background:var(--ngw-off-white)}
body.ng-chrome .ngi-main .ngdp-journey{background:var(--ngw-off-white)}
body.ng-chrome .ngi-main .ngdp-architecture{background:var(--ngw-white)}
body.ng-chrome .ngi-main .ngdp-seo{background:var(--ngw-light-gray)}
body.ng-chrome .ngi-main .ngdp-storyboard{background:var(--ngw-charcoal);border-color:var(--ngw-graphite-gray)}
body.ng-chrome .ngi-main .ngdp-demo-nav button[aria-pressed=true]{
  background:var(--ngw-light-green);color:var(--ngw-charcoal)
}
body.ng-chrome .ngi-main .ngid-card{
  background:var(--ngw-white);border-color:var(--ngw-silver-gray)
}
body.ng-chrome .ngi-main .ngid-card:hover{border-color:var(--ngw-logo-green)}
body.ng-chrome .ngi-main .ngid-approach__card--ads{
  background:var(--ngw-lime-green);color:var(--ngw-charcoal)
}
/* Contact and quote flows, including native WP Contact Form 7 */
body.ngm-page .ngm-contact .ngcx-hero{background:var(--ngw-charcoal)}
body.ngm-page .ngm-contact .ngcx-hero h1 em,
body.ngm-page .ngm-contact .ngcx-stop{color:var(--ngw-neon-green)}
body.ngm-page .ngm-contact .ngcx-form{
  background:var(--ngw-white);border-color:var(--ngw-silver-gray);
  border-top-color:var(--ngw-logo-green)
}
body.ngm-page .ngm-contact .ngcx-button-primary{
  background:var(--ngw-logo-green);color:var(--ngw-charcoal)
}
body.ngm-page .ngm-contact .ngcx-button-primary:hover{
  background:var(--ngw-neon-green);color:var(--ngw-charcoal)
}
.ngq{
  --q-lime:var(--ngw-logo-green);--q-ink:var(--ngw-charcoal);
  --q-muted:var(--ngw-dark-gray);--q-line:var(--ngw-silver-gray);
  background:var(--ngw-off-white);color:var(--ngw-charcoal)
}
.ngq .ngq-form-card{background:var(--ngw-white);border-color:var(--ngw-silver-gray)}
.ngq .ngq-process li>span,.ngq .ngq-human-mark{
  background:var(--ngw-light-green);border-color:var(--ngw-silver-gray);
  color:var(--ngw-charcoal)
}
.ngq .ngq-service-picker label.is-selected,
.ngq .ngq-service-picker label:has(input:checked){
  background:var(--ngw-light-green);border-color:var(--ngw-logo-green)
}
.ngq .ngq-context{background:var(--ngw-light-gray);border-color:var(--ngw-silver-gray)}
.ngq :is(input[type=text],input[type=email],input[type=tel],select,textarea){
  background:var(--ngw-white);border-color:var(--ngw-silver-gray);color:var(--ngw-charcoal)
}
/* Standard pages, blog/archive, portfolio and remaining service templates */
body.ng-chrome .ngx .ngx-tint,
body.ng-chrome .ngx .ngx-blog-filter,
body.ng-chrome .nsu .nsu-hero,
body.ng-chrome .nsu .nsu-stage-browser{
  background:var(--ngw-off-white)
}
body.ng-chrome .ngx .ngx-quick-links a,
body.ng-chrome .nsu .nsu-video-details summary,
body.ng-chrome .ngx .ngx-post-placeholder{
  background:var(--ngw-light-gray);border-color:var(--ngw-silver-gray)
}
body.ng-chrome .ngx .ngx-quick-links a:hover,
body.ng-chrome .ngx .ngx-post-link:hover{
  background:var(--ngw-light-green);border-color:var(--ngw-logo-green);
  color:var(--ngw-charcoal)
}
body.ng-chrome .ngw-work .ngw-work-showcase-link b,
body.ng-chrome .ngw-work .ngw-work-filter[aria-pressed="true"]{
  background:var(--ngw-lime-green);color:var(--ngw-charcoal)
}
body.ng-chrome .ngw-work .ngw-work-showcase-art{
  background:linear-gradient(145deg,var(--ngw-white),var(--ngw-light-gray))
}
body.ng-chrome .nsu .nsu-overview-panel{
  background:var(--ngw-silver-gray);color:var(--ngw-charcoal)
}
body.ng-chrome .nsu .nsu-stage-success,
body.ng-chrome .nsu .nsu-step-id{
  background:var(--ngw-light-gray)
}
/* Helotes, Boerne and Alamo Ranch use a separate heritage layout. */
body.ng-chrome .ngcity:not(.ngcp):not(.ngregion):has(.nght-hero){
  --ngh-green:var(--ngw-logo-green);
  --ngh-green-bright:var(--ngw-lime-green);
  --ngh-green-soft:var(--ngw-light-green);
  --ngh-ink:var(--ngw-charcoal);
  --ngh-gray:var(--ngw-off-white);
  --ngh-gray-mid:var(--ngw-light-gray);
  --ngh-border:var(--ngw-silver-gray);
}
body.ng-chrome .ngcity:not(.ngcp):not(.ngregion):has(.nght-hero) .nght-hero-visual{
  background:var(--ngw-off-white);
  border-color:var(--ngw-silver-gray);
  box-shadow:12px 12px 0 var(--ngw-light-green)
}
body.ng-chrome .ngcity:not(.ngcp):not(.ngregion):has(.nght-hero)
  :is(.nght-services,.nght-local-grid>div:last-child,.nght-questions){
  background:var(--ngw-off-white)
}
body.ng-chrome .ngcity:not(.ngcp):not(.ngregion):has(.nght-hero) .nght-cta{
  background:var(--ngw-light-green);color:var(--ngw-charcoal)
}
/* Intentional, readable contrast on the light-colored Quote page. */
.ngq h1 span{color:var(--ngw-charcoal);text-decoration:underline;
  text-decoration-color:var(--ngw-logo-green);text-decoration-thickness:.075em;
  text-underline-offset:.13em}
.ngq .ngq-step.is-active{
  border-color:var(--ngw-logo-green);color:var(--ngw-charcoal)
}
.ngq .ngq-step.is-complete{
  border-color:var(--ngw-logo-green);color:var(--ngw-charcoal)
}

/* Animation-free focus and hover. Neon never appears as body text on light surfaces. */
body.ng-chrome main :is(a,button,summary):focus-visible{
  outline:3px solid var(--ngw-logo-green);outline-offset:3px
}
@media(prefers-reduced-motion:reduce){
  body.ng-chrome main :is(a,button,summary){scroll-behavior:auto}
}
