/* NXT GEN WEB | Responsive integrity pass | 2026-11-09
   Conservative, shared corrections for real content—not CSS-animated
   decorative layers. The site's brand palette and custom hero scenes remain. */

/* Permit nested grid / flex content to shrink rather than collide. */
body.ng-chrome :is(
  .ngh-svc-grid,.ngh-services,.ngh-hero__content,.nghd-intro__layout,
  .ngw-hero-grid,.ngw-service-grid,.ngw-work-grid,.ngw-platform-grid,
  .ngm-hero-grid,.nseo-reporting__grid,.nsf-offer-grid,
  .ngx-hero-grid,.ngx-grid,.ngid-grid,.ngix-heading,.ngdp-section-heading,
  .ngdp-storyboard,.ngdp-architecture-grid,
  .ngcity-hero-grid,.nght-hero-grid,.nght-intro-grid,.nght-service-rows,
  .nght-proof-grid,.nght-local-grid,.ngcp-map-grid,.ngcp-contact-grid,
  .ngcity-contact-grid,.ngtx-market-intro,.ngtx-playbook,
  .ngtx-local-depth-top,.ngtx-local-steps,.ngregion-cardgrid,
  .ngpf-grid,.ngsr__grid,.ngq-form-grid,.ngc-footer__grid
) > * {
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}

/* Content headings and links wrap within their cards without clipping. */
body.ng-chrome :is(.ngh,.ngw-design,.ngm,.ngx,.ngi-main,.ngcity,.ngq,.nga,.ngw-work)
  :is(h1,h2,h3,h4) {
  max-width:100%;
  overflow-wrap:break-word;
}
body.ng-chrome :is(.ngh,.ngw-design,.ngm,.ngx,.ngi-main,.ngcity,.ngq,.nga,.ngw-work)
  :is(a,button,summary) {
  min-width:0;
}
body.ng-chrome :is(.ngc-footer__email,.ngcity-contact-form a,.ngq a[href^="mailto:"],
.ngx a[href^="mailto:"],.ngm a[href^="mailto:"]) {
  overflow-wrap:anywhere;
}

/* Actual editorial images/media are bounded; no styling changes to SVG
   illustrations, mock screens or floating artwork. */
body.ng-chrome :is(.entry-content,.post-content,.ngau-legacy-main,.blog-post,.ngcity-map-wrap,.ngcp-map-wrap)
  :is(img,video,iframe,embed) {
  max-width:100%;
}
body.ng-chrome :is(.entry-content,.post-content,.blog-post,.ngau-legacy-main) img {
  height:auto;
}
body.ng-chrome :is(.entry-content,.post-content,.blog-post,.ngau-legacy-main) figure {
  max-width:100%;
  margin-inline:auto;
}
body.ng-chrome :is(.ngcp-map-wrap,.ngcity-map-wrap,.ngf-map) iframe {
  display:block;
  width:100%;
  max-width:100%;
  border:0;
}
body.ng-chrome .ngc-brand img,
body.ng-chrome .ngc-footer__brand img {
  max-width:100%;
  height:auto;
}

/* Real content cards and their text stay square to the page, while hover
   and deliberate illustrated device motion remain untouched. */
body.ng-chrome :is(.ngcity,.ngi-main,.ngw-work,.ngh) :is(
  .nght-service-row,.ngcity-service,.ngid-card,.ngx-card,
  .ngw-work-card,.ngh-svc,.ngtx-playbook article
) {
  min-width:0;
  box-sizing:border-box;
}
body.ng-chrome :is(.ngcity,.ngi-main,.ngw-work,.ngh) :is(
  .nght-service-row,.ngcity-service,.ngid-card,.ngx-card,
  .ngw-work-card,.ngh-svc,.ngtx-playbook article
) :is(h2,h3,p,li) {
  max-width:100%;
  overflow-wrap:break-word;
}

/* Text contrast: retain bright greens as accents, but not tiny type on
   white/off-white surfaces. These classes recur across city/industry pages. */
body.ng-chrome .ngcity.ngcp :is(
  .ngcp-map-overline,.ngcp-audience>span,.ngcp-hero .nght-kicker,
  .ngtx-local-depth .nght-label,.ngtx-city-directory-rail span
) { color:#41494f!important; }
body.ng-chrome .ngi-main :is(
  .ngdp-kicker,.ngdp-section-heading h2 em,.ngdp-note
) { color:#41494f!important; }
body.ng-chrome .ngw-design :is(
  .nwd26-site-nav>strong span,.nwd26-site-copy>small,
  .nwd26-site-copy em,.nwd26-browser-bar small
) { color:#41494f; }
body.ng-chrome .ngcity.ngcp .ngtx-market :is(.nght-label,.ngtx-step),
body.ng-chrome .ngi-main .ngdp-story :is(.ngdp-story-label,.ngdp-question-list>p) {
  color:#c9f2a3!important;
}

/* Compact controls must be legible even on narrow devices. */
@media (max-width:1100px) {
  body.ng-chrome :is(.ngdp-section-heading,.ngtx-market-intro) {
    grid-template-columns:minmax(0,1fr);
  }
  body.ng-chrome .ngc-mobile__panel a {
    overflow-wrap:break-word;
  }
}
@media (max-width:850px) {
  body.ng-chrome :is(
    .ngdp-storyboard,.ngcity .ngcp-map-grid,
    .ngcity .nght-hero-grid,.ngcity .nght-intro-grid,
    .ngi-main .ngx-hero-grid,.ngm .ngm-hero-grid
  ) {
    grid-template-columns:minmax(0,1fr);
  }
  body.ng-chrome .ngdp-section-heading {
    gap:18px;
  }
}
@media (max-width:767px) {
  body.ng-chrome :is(.ngcity,.ngi-main,.ngx,.ngm,.ngw-design,.ngh) :is(
    .ngcity-shell,.ngx-shell,.ngm-shell,.ngw-shell,.ngh-shell
  ) { max-width:100%; }
  body.ng-chrome .ngcity.ngcp .ngtx-playbook,
  body.ng-chrome .ngcity.ngcp .ngtx-local-steps,
  body.ng-chrome .ngq .ngq-form-grid {
    grid-template-columns:minmax(0,1fr);
  }
  body.ng-chrome :is(.ngh,.ngm,.ngx,.ngcity,.ngw-design,.ngq) :is(
    input:not([type="checkbox"]):not([type="radio"]),textarea,select
  ) { max-width:100%; box-sizing:border-box; }
  body.ng-chrome :is(.ngh,.ngm,.ngx,.ngcity,.ngw-design,.ngq) :is(
    .ngh-btn,.ngm-button,.ngx-btn,.ngcity-button,.ngq-button
  ) {
    max-width:100%;
    white-space:normal;
    text-align:center;
    overflow-wrap:break-word;
  }
}
@media (max-width:420px) {
  body.ng-chrome .global-header.ngc-header .ngc-header__inner {
    grid-template-columns:minmax(0,1fr) auto 40px;
    column-gap:7px;
  }
  body.ng-chrome .global-header.ngc-header .ngc-brand {
    width:min(100%,105px);
  }
  body.ng-chrome .global-header.ngc-header .ngc-quote {
    font-size:12px;
    line-height:1.2;
    padding:9px 8px;
    min-height:42px;
  }
  body.ng-chrome .global-header.ngc-header .ngc-mobile {
    min-width:40px;
  }
  body.home .ngh .ngh-hero.nghd-hero-classic .ngh-actions--services {
    width:100%;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
  }
  body.home .ngh .ngh-hero.nghd-hero-classic .ngh-actions--services>.ngh-btn {
    min-width:0;
    padding-inline:7px;
    font-size:12px;
    line-height:1.35;
  }
}
@media (max-width:350px) {
  body.home .ngh .ngh-hero.nghd-hero-classic .ngh-actions--services {
    grid-template-columns:minmax(0,1fr);
  }
}
/* Animated service-demo labels are visual captions, not out-of-order headings. */
body.ng-chrome .ng4m .ng4m__scene-heading p.ng4m__scene-title {
  color:#ffffff!important;
  font:800 clamp(20px,2vw,25px)/1.12 'Proximanova-bold',Arial,sans-serif!important;
  letter-spacing:-.025em;
  max-width:100%;
  margin:7px 0 6px!important;
  padding:0;
}
@media(max-width:600px) {
  body.ng-chrome .ng4m .ng4m__scene-heading p.ng4m__scene-title {font-size:22px!important;}
}
@media (prefers-reduced-motion:reduce) {
  body.ng-chrome :is(.ngh,.ngm,.ngx,.ngcity,.ngw-design,.ngq) * {
    scroll-behavior:auto;
  }
}
