/* NXT GEN WEB • Level layout + straight cards • Nov 2026
   Preserve the premium section layouts; correct only overflows and intentionally
   tilted content panels that make text, cards and columns appear misaligned. */

/* Grid children must be allowed to shrink inside their own track, not push adjacent
   cards or labels out of line on mobile and at mid-sized breakpoints. */
.ngh .ngh-svc-grid > *,
.ngw-design .ngw-service-grid > *,
.ngcity .ngcity-services-grid > *,
.ngcity .ngcity-work-links > *,
.ngcity .ngcity-hero-grid > *,
.ngcity .nght-hero-grid > *,
.ngcity .nght-service-rows > *,
.ngi-main .ngx-grid > *,
.ngi-main .ngx-hero-grid > *,
.ngi-main .ngid-grid > *,
.ngi-main .ngid-heading > *,
.ngi-main .ngix-heading > *,
.ngw-work .ngw-work-grid > *,
.ngw-work .ngw-web-value-grid > *,
.ngw-work .ngw-work-hero-grid > *,
.ngregion .ngregion-cardgrid > *,
.ngpf-grid > *,
.ngsr__grid > *,
.ngrv-grid > *,
.ngc-footer__grid > * {
  min-width: 0;
  box-sizing: border-box;
}

/* Card rows align to the same baseline and remain evenly stretched. */
.ngh .ngh-svc-grid,
.ngcity .ngcity-services-grid,
.ngi-main .ngx-grid,
.ngi-main .ngid-grid,
.ngw-work .ngw-work-grid,
.ngw-work .ngw-web-value-grid,
.ngregion .ngregion-cardgrid,
.ngpf-grid,
.ngsr__grid,
.ngrv-grid {
  align-items: stretch;
}

/* Headlines and card labels can wrap instead of forcing sideways overflow. */
.ngh .ngh-svc h3,
.ngcity .ngcity-service h3,
.ngcity .nght-service-rows h3,
.ngi-main .ngid-copy strong,
.ngi-main .ngx-card h3,
.ngw-work .ngw-work-card-meta h3,
.ngw-work .ngw-web-value-grid h3,
.ngregion .ngregion-card h3,
.ngpf-card h3,
.ngsr__card h3 {
  max-width: 100%;
  overflow-wrap: break-word;
}

/* Align real text-bearing mockups; leave icons and decorative artwork alone. */
.ngw-work--web-only .ngw-work-visual-window {
  transform: none;
}
.ngi-main .ngix-preview {
  transform: none;
}
.ngi-main .ngix-context {
  transform: none;
  animation-name: ngw-level-context-float;
}
@keyframes ngw-level-context-float {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-7px); }
}
.ngm-seo .nseo-search-ui,
.ngm-seo .nseo-report-demo {
  transform: none;
}
.ngm-seo .nseo-radar-center {
  transform: translate(-50%,-50%);
}
.ngcity .ngcity-identity-stamp {
  transform: none;
}
.ngw-work--hub .ngw-work-mock-browser,
.ngw-work--hub .ngw-work-mock-phone,
.ngw-work--hub .ngw-work-mark-canvas,
.ngw-work--hub .ngw-work-motion-frame {
  transform: none;
}
.ngw-work--hub .ngw-work-showcase:hover .ngw-work-mock-browser {
  transform: translateY(-5px);
}
.ngw-work--hub .ngw-work-showcase:hover .ngw-work-mark-canvas {
  transform: scale(1.015);
}

/* Keep text-bearing service demonstrations level while their phase animation plays.
   The floating/browsing sequence is preserved; only artificial rotation is removed. */
body.page-id-168 .ngw27-motion__browser {
  animation-name: ngw27-browser-aligned;
}
body.page-id-168 .ngw27-motion__phone {
  animation-name: ngw27-phone-aligned;
}
@keyframes ngw27-browser-aligned {
  0%,100% { transform: translateY(2px); }
  25%,75% { transform: translateY(-5px); }
}
@keyframes ngw27-phone-aligned {
  0%,44%,100% { opacity: 0; transform: translate(-14px,26px) scale(.84); }
  54%,90% { opacity: 1; transform: translate(0,0) scale(1); }
}
.ngsx.ngsx-hosting .ngsx-host-preview,
.ngsx.ngsx-hosting .ngsx-host-preview__corner,
.ngm.ngm-hosting .nsfh-care-console,
.ngm.ngm-hosting .nsfh-care-art__ticket {
  transform: none;
}

/* Preserve deliberate responsive stacking; don't impose desktop widths. */
@media (max-width: 760px) {
  .ngw-work--web-only .ngw-work-visual-window {
    transform: none;
  }
  .ngc-footer__grid > *,
  .ngi-main .ngid-card,
  .ngw-work .ngw-work-card,
  .ngcity .ngcity-service {
    max-width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ngi-main .ngix-context { animation: none; transform: none; }
}
