/*
Theme Name: NOLA Protection Group
Theme URI: https://nolaprotection.com
Description: Premium security company theme with cinematic dark aesthetic and Art Deco-inspired accents.
Version: 3.8.5
Author: NOLA Protection Group
Text Domain: nolaprotection
*/

/* ============================================
   CSS CUSTOM PROPERTIES
   ============================================ */
:root {
  /* Colors — aligned with NPG Graphic Standards Guide 2.0 */
  --np-black: #231F20;
  --np-navy: #231F20;
  --np-navy-light: #f5f6f8;
  --np-charcoal: #f0f1f3;
  --np-slate: #e2e4e8;
  --np-gray: #5f6368;
  --np-gray-light: #3c4043;
  --np-white: #231F20;
  --np-red: #C72127;
  --np-red-bright: #d4282e;
  --np-teal: #16a08b;
  --np-teal-light: #0d8a73;
  --np-gold: #C72127;
  --np-gold-light: #d4282e;
  --np-stars: #d4a017;
  --np-bg: #ffffff;
  --np-bg-alt: #f5f6f8;
  --np-text: #3c4043;
  --np-text-light: #5f6368;
  --np-heading: #231F20;

  /* Typography — per NPG Graphic Standards Guide 2.0: Lato (logotype) + Helvetica Condensed (body) */
  --font-display: 'Lato', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-heading: 'Lato', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-body: 'Helvetica Neue Condensed', 'Helvetica Condensed', 'Helvetica Neue', Helvetica, 'Arial Narrow', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;

  /* Spacing */
  --section-pad: clamp(4rem, 8vw, 8rem);
  --container-max: 1280px;
  --container-wide: 1440px;

  /* Transitions */
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
  --transition-smooth: 0.6s var(--ease-out-expo);
}

/* ============================================
   RESET & BASE
   ============================================ */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.7;
  color: var(--np-text);
  background-color: var(--np-bg);
  overflow-x: hidden;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: var(--np-red);
  text-decoration: none;
  transition: color 0.3s ease;
}

a:hover {
  color: var(--np-red-bright);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  text-transform: none;
  letter-spacing: -0.01em;
  line-height: 1.15;
  color: var(--np-heading);
}

h1 { font-size: clamp(2.8rem, 6vw, 5.5rem); font-weight: 700; }
h2 { font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 600; }
h3 { font-size: clamp(1.4rem, 2.5vw, 2rem); font-weight: 500; }
h4 { font-size: clamp(1.1rem, 1.8vw, 1.4rem); font-weight: 500; }

p {
  margin-bottom: 1.2em;
  text-align: left;
}

/* ============================================
   UTILITY CLASSES
   ============================================ */
.np-container {
  width: 100%;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 clamp(1.5rem, 4vw, 3rem);
}

.np-container--wide {
  max-width: var(--container-wide);
}

.np-section {
  padding: var(--section-pad) 0;
  position: relative;
}

.np-overline {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--np-gold);
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.np-overline::before {
  content: '';
  display: inline-block;
  width: 40px;
  height: 1px;
  background: var(--np-gold);
}

.np-section-title {
  margin-bottom: 1rem;
}

.np-section-subtitle {
  font-family: var(--font-body);
  font-size: 1.1rem;
  color: var(--np-text);
  max-width: 600px;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 400;
  line-height: 1.7;
}

/* ============================================
   BUTTONS
   ============================================ */
.np-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-family: var(--font-heading);
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 1rem 2.5rem;
  border: none;
  cursor: pointer;
  position: relative;
  overflow: visible;
  transition: all 0.4s var(--ease-out-expo);
  text-decoration: none;
  white-space: nowrap;
}

.np-btn--primary {
  background: var(--np-red);
  color: #fff;
  clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 12px 100%, 0 calc(100% - 12px));
}

.np-btn--primary:hover {
  background: var(--np-red-bright);
  color: #fff;
  transform: translateY(-2px);
  transition: all 0.3s ease;
  box-shadow: 0 8px 25px rgba(199, 33, 39, 0.35);
}

.np-btn--outline {
  background: transparent;
  color: var(--np-red);
  border: 1px solid var(--np-red);
  clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 12px 100%, 0 calc(100% - 12px));
}

.np-btn--outline:hover {
  background: var(--np-red);
  color: #fff;
}

.np-hero .np-btn--outline,
.np-service-hero .np-btn--outline,
.npc-cta .np-btn--outline {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.5);
}
.np-hero .np-btn--outline:hover,
.np-service-hero .np-btn--outline:hover,
.npc-cta .np-btn--outline:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: #fff;
  color: #fff;
}

.np-btn:active {
  transform: translateY(1px);
  transition-duration: 0.05s;
}

.np-btn:focus-visible {
  outline: 2px solid var(--np-teal);
  outline-offset: 2px;
}

.np-btn__arrow {
  display: inline-block;
  transition: transform 0.3s ease;
}

.np-btn:hover .np-btn__arrow {
  transform: translateX(4px);
}

/* ============================================
   GEOMETRIC DECORATIONS (Art Deco)
   ============================================ */
.np-deco-line {
  position: absolute;
  background: linear-gradient(180deg, var(--np-gold) 0%, transparent 100%);
  width: 1px;
  height: 120px;
  opacity: 0.3;
}

.np-deco-corner {
  position: absolute;
  width: 60px;
  height: 60px;
  opacity: 0.15;
}

.np-deco-corner::before,
.np-deco-corner::after {
  content: '';
  position: absolute;
  background: var(--np-gold);
}

.np-deco-corner::before {
  width: 100%;
  height: 1px;
  top: 0;
  left: 0;
}

.np-deco-corner::after {
  width: 1px;
  height: 100%;
  top: 0;
  left: 0;
}

.np-deco-corner--br {
  transform: rotate(180deg);
}

/* ============================================
   NOISE / GRAIN OVERLAY
   ============================================ */
body::after {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 9999;
  opacity: 0.01;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  background-repeat: repeat;
  background-size: 256px 256px;
}

/* ============================================
   HEADER / NAVIGATION
   ============================================ */
/* ── Utility bar (styles beyond critical CSS) ── */
.np-utility-bar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1001;
  background: #C72127;
  color: #fff;
  overflow: hidden;
  max-height: 4.2rem;
  transition: max-height 0.35s ease, opacity 0.35s ease;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.np-utility-bar--hidden {
  max-height: 0;
  opacity: 0;
  pointer-events: none;
}

.np-utility-bar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: var(--container-wide);
  margin: 0 auto;
  /* Option C, 2026-08-03: 0.85rem (13.6px) made the inner 81.6px against the
     bar's 4.2rem (67.2px) cap, so the CTA overran the bottom edge by 0.8px and
     its shadow was clipped away entirely. 0.65rem (10.4px) + a 44.8px button
     gives a 65.6px inner, which fits the 66.2px content box the cap leaves once
     the 1px border-bottom is subtracted (box-sizing is border-box). Even red
     above and below. Bar max-height and the header top offset are deliberately
     UNCHANGED so no hero clearance rule has to move. */
  padding: 0.65rem clamp(1.5rem, 4vw, 3rem);
}

.np-utility-bar__left {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.9rem;
  white-space: nowrap;
}

.np-utility-bar__license {
  font-weight: 700;
}

.np-utility-bar__sep {
  opacity: 0.6;
}

.np-utility-bar__tagline {
  opacity: 0.92;
  font-size: 0.88rem;
}

.np-utility-bar__right {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}

/* Phone CTA — icon + two-line stack */
.np-utility-bar__phone {
  color: #fff;
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  white-space: nowrap;
  transition: opacity 0.2s ease;
}

.np-utility-bar__phone:hover {
  opacity: 0.85;
}

.np-utility-bar__phone-stack {
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
  line-height: 1;
}

.np-utility-bar__phone-label {
  font-family: var(--font-heading);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.8;
}

.np-utility-bar__phone-number {
  font-family: var(--font-heading);
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: 0.01em;
}

/* Request a Quote — prominent white button */
.np-utility-bar__cta {
  background: #ffffff;
  color: #C72127;
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  /* Option C: 0.55rem vertical => 44.8px tall, leaving 11.2px of red on both
     sides inside the unchanged 67.2px bar. */
  padding: 0.55rem 1.5rem;
  border-radius: 8px;
  text-decoration: none;
  white-space: nowrap;
  /* Shadow tightened to fit inside the 11.2px of red. The old 0 6px 18px
     reached 24px past the button and was cut off by the bar's overflow:hidden,
     which is what actually read as "dropping flat on the line". */
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.20);
  transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.np-utility-bar__cta:hover {
  background: #f7f7f7;
  transform: translateY(-1px);
  box-shadow: 0 2px 7px rgba(0, 0, 0, 0.26);
}

.np-utility-bar__cta:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

@media (max-width: 1024px) {
  .np-utility-bar__tagline {
    display: none;
  }
  .np-utility-bar__phone-label {
    display: none;
  }
}

@media (max-width: 560px) {
  .np-utility-bar__cta {
    display: none;
  }
}

/* ── Scrolled CTA group ── */
/* display:none, not just opacity:0 - an invisible button that still holds its
   width squeezes .np-nav (the only shrinkable item in the row) until the
   longest label wraps. This also keeps its link out of the tab order while
   the wrapper is aria-hidden. */
.np-header__scrolled-cta {
  display: none;
  align-items: center;
  gap: 0.6rem;
  flex-shrink: 0;
}

.np-header--scrolled .np-header__scrolled-cta {
  display: flex;
}

.np-header__scrolled-phone {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #C72127;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-decoration: none;
  flex-shrink: 0;
  transition: background 0.2s ease;
}

.np-header__scrolled-phone:hover {
  background: var(--np-red-bright);
}

.np-header__scrolled-phone:focus-visible {
  outline: 2px solid var(--np-gold);
  outline-offset: 3px;
}

.np-header__scrolled-quote {
  background: #C72127;
  color: #ffffff;
  font-family: var(--font-heading);
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  padding: 0.7rem 1.3rem;
  border-radius: 8px;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3);
  transition: background 0.2s ease, transform 0.2s ease;
}

.np-header__scrolled-quote:hover {
  background: var(--np-red-bright);
  transform: translateY(-1px);
}

.np-header__scrolled-quote:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

/* Matches the nav breakpoint above - this CTA sits in the same overflowing row. */
@media (max-width: 1200px) {
  .np-header__scrolled-cta {
    display: none;
  }
}

.np-header {
  position: fixed;
  top: 4.2rem;
  left: 0;
  width: 100%;
  z-index: 1000;
  transition: padding 0.3s ease, background 0.3s ease, backdrop-filter 0.3s ease, border-color 0.3s ease, top 0.35s ease;
  padding: 1.5rem 0;
  contain: layout;
}

.np-header--scrolled {
  background: rgba(35, 31, 32, 0.97);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  padding: 0.8rem 0;
  border-bottom: 1px solid rgba(201, 168, 76, 0.1);
  top: 0;
}

/* Ensure logo is always visible on inner pages */
body:not(.home) .np-header {
  background: rgba(35, 31, 32, 0.97);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(201, 168, 76, 0.1);
}

.np-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: var(--container-wide);
  margin: 0 auto;
  padding: 0 clamp(1.5rem, 4vw, 3rem);
}

.np-header__logo {
  display: flex;
  align-items: center;
  text-decoration: none;
  position: relative;
  z-index: 1003;
  padding: 0.5em;
  flex-shrink: 0;
}

.np-header__logo-img {
  height: 52px;
  width: auto;
  display: block;
  flex-shrink: 0;
  transition: opacity 0.3s ease;
}

.np-header--scrolled .np-header__logo-img {
  height: 42px;
}

.np-header__logo:hover .np-header__logo-img {
  opacity: 0.9;
}

.np-nav {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

/* Between the 1200px drawer breakpoint and the 1440px container cap the row
   has no slack left over. Tighten spacing rather than let anything wrap. */
@media (max-width: 1400px) {
  .np-nav {
    gap: 1rem;
  }

  .np-nav__link {
    letter-spacing: 0.1em;
  }
}

.np-nav__link {
  font-family: var(--font-heading);
  font-size: 0.92rem;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  /* "Service Areas" is the only two-word label; without this it is the first
     thing to break when the row is under any pressure. */
  white-space: nowrap;
  color: #ffffff;
  text-decoration: none;
  position: relative;
  padding: 0.25rem 0;
}

.np-header--scrolled .np-nav__link {
  color: #ffffff;
}

.np-nav__link::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--np-gold);
  transition: width 0.4s var(--ease-out-expo);
}

.np-nav__link:hover {
  color: #fff;
}

.np-nav__link:hover::after {
  width: 100%;
}

.np-nav__cta {
  font-family: var(--font-heading);
  font-size: 0.88rem;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 0.9rem 2rem;
  background: var(--np-red);
  color: #fff;
  text-decoration: none;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 8px, 100% 100%, 8px 100%, 0 calc(100% - 8px));
  transition: all 0.3s ease;
}

.np-nav__cta:hover {
  background: var(--np-red-bright);
  color: #fff;
}

.np-nav__cta--quote {
  background: transparent;
  border: 1px solid rgba(199,33,39,0.6);
  color: #fff;
  clip-path: none;
  padding: 0.7rem 1.4rem;
  font-size: 0.82rem;
}

.np-nav__cta--quote:hover {
  background: var(--np-red);
  border-color: var(--np-red);
  color: #fff;
}

/* Mobile menu toggle */
.np-menu-toggle {
  display: none;
  flex-direction: column;
  gap: 6px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  z-index: 1001;
}

.np-menu-toggle span {
  display: block;
  width: 28px;
  height: 2px;
  background: #fff;
  transition: all 0.3s ease;
  transform-origin: center;
}

.np-menu-toggle.active span:nth-child(1) {
  transform: rotate(45deg) translate(5px, 6px);
}

.np-menu-toggle.active span:nth-child(2) {
  opacity: 0;
}

.np-menu-toggle.active span:nth-child(3) {
  transform: rotate(-45deg) translate(5px, -6px);
}

/* ============================================
   HERO SECTION
   ============================================ */
.np-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: var(--np-black);
}

.np-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.np-hero__bg-image {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 35%;
  opacity: 0.55;
  z-index: 0;
}

.np-hero__bg-gradient {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(35, 31, 32, 0.85) 0%, rgba(35, 31, 32, 0.5) 45%, rgba(35, 31, 32, 0.2) 100%),
    linear-gradient(180deg, rgba(35, 31, 32, 0.1) 0%, rgba(35, 31, 32, 0.7) 100%);
  z-index: 2;
}

/* Animated grid lines */
.np-hero__grid {
  position: absolute;
  inset: 0;
  z-index: 1;
  opacity: 0.04;
  background-image:
    linear-gradient(var(--np-gold) 1px, transparent 1px),
    linear-gradient(90deg, var(--np-gold) 1px, transparent 1px);
  background-size: 80px 80px;
  animation: gridShift 20s linear infinite;
}

@keyframes gridShift {
  0% { transform: translate(0, 0); }
  100% { transform: translate(80px, 80px); }
}

/* Diagonal accent stripe */
.np-hero__stripe {
  position: absolute;
  top: -20%;
  right: 5%;
  width: 1px;
  height: 140%;
  background: linear-gradient(180deg, transparent 0%, var(--np-gold) 30%, var(--np-gold) 70%, transparent 100%);
  opacity: 0.12;
  transform: rotate(15deg);
  z-index: 2;
}

.np-hero__stripe:nth-child(2) {
  right: 8%;
  opacity: 0.06;
}

.np-hero__content {
  position: relative;
  z-index: 10;
  max-width: var(--container-wide);
  margin: 0 auto;
  padding: 0 clamp(1.5rem, 4vw, 3rem);
  padding-top: 8rem;
}

.np-hero__overline {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #d4a017;
  display: flex;
  align-items: center;
  gap: 1.2rem;
  margin-bottom: 2rem;
  opacity: 0;
  transform: translateY(20px);
  animation: fadeUp 0.8s var(--ease-out-expo) 0.3s forwards;
}

.np-hero__overline::before {
  content: '';
  width: 50px;
  height: 1px;
  background: #d4a017;
}

.np-hero__title {
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 4.6vw, 3.6rem);
  font-weight: 700;
  line-height: 1.18;
  color: #f0f2f5;
  text-transform: none;
  letter-spacing: -0.01em;
  word-spacing: 2px;
  margin-bottom: 28px;
  max-width: 820px;
  opacity: 0;
  transform: translateY(30px);
  animation: fadeUp 0.8s var(--ease-out-expo) 0.5s forwards;
}

.np-hero__title em {
  font-style: italic;
  display: inline-block;
  position: relative;
}

.np-hero__keywords {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.65);
  margin-top: 8px;
  margin-bottom: 20px;
  max-width: 820px;
  line-height: 1.5;
}

@media (max-width: 768px) {
  .np-hero__keywords {
    font-size: 13px;
  }
}

.np-hero__desc {
  font-size: 1.2rem;
  color: rgba(255, 255, 255, 0.85);
  max-width: 560px;
  line-height: 1.8;
  margin-bottom: 2.5rem;
  opacity: 0;
  transform: translateY(30px);
  animation: fadeUp 0.8s var(--ease-out-expo) 0.7s forwards;
}

.np-hero__actions {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 16px;
  opacity: 0;
  transform: translateY(30px);
  animation: fadeUp 0.8s var(--ease-out-expo) 0.9s forwards;
}

.np-hero__scroll {
  position: absolute;
  bottom: 3rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  opacity: 0;
  animation: fadeUp 0.8s var(--ease-out-expo) 1.2s forwards;
}

.np-hero__scroll-text {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}

.np-hero__scroll-line {
  width: 1px;
  height: 50px;
  background: linear-gradient(180deg, var(--np-gold) 0%, transparent 100%);
  animation: scrollPulse 2s ease-in-out infinite;
}

@keyframes scrollPulse {
  0%, 100% { opacity: 0.3; transform: scaleY(0.6); }
  50% { opacity: 1; transform: scaleY(1); }
}

@keyframes fadeUp {
  to { opacity: 1; transform: translateY(0); }
}

/* ============================================
   TRUSTED BY / CLIENT LOGOS BAR
   ============================================ */
.np-clients-bar {
  padding: 3rem 0;
  background: var(--np-bg-alt);
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  overflow: hidden;
}

.np-clients-bar__label {
  font-family: var(--font-mono);
  font-size: 0.76rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--np-text-light);
  text-align: center;
  margin-bottom: 2rem;
}

.np-clients-bar__track {
  display: flex;
  align-items: center;
  gap: 4rem;
  animation: marquee 25s linear infinite;
  width: max-content;
}

.np-clients-bar__item {
  font-family: var(--font-heading);
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--np-heading);
  white-space: nowrap;
  opacity: 0.75;
  transition: opacity 0.3s ease;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.np-clients-bar__item::before {
  content: '';
  width: 6px;
  height: 6px;
  background: var(--np-gold);
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
  flex-shrink: 0;
}

.np-clients-bar__item:hover {
  opacity: 1;
}

@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ============================================
   ABOUT SECTION
   ============================================ */
.np-about {
  background: var(--np-bg);
}

.np-about__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.np-about__image {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
  clip-path: polygon(0 0, calc(100% - 30px) 0, 100% 30px, 100% 100%, 30px 100%, 0 calc(100% - 30px));
}

.np-about__image-wrap {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #e8e9ec 0%, #d5d7db 50%, #f0f1f3 100%);
}

.np-about__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.np-about__image::after {
  content: '';
  position: absolute;
  top: -1px;
  left: -1px;
  right: -1px;
  bottom: -1px;
  border: 1px solid rgba(199, 33, 39, 0.15);
  clip-path: polygon(0 0, calc(100% - 30px) 0, 100% 30px, 100% 100%, 30px 100%, 0 calc(100% - 30px));
  pointer-events: none;
}

.np-about__badge {
  position: absolute;
  bottom: 2rem;
  left: -2rem;
  background: #fff;
  box-shadow: 0 4px 20px rgba(0,0,0,0.1);
  padding: 1.5rem 2rem;
  z-index: 2;
  clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px));
}

.np-about__badge-number {
  font-family: var(--font-display);
  font-size: 2.8rem;
  font-weight: 700;
  color: var(--np-white);
  line-height: 1;
}

.np-about__badge-text {
  font-family: var(--font-mono);
  font-size: 0.76rem;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--np-text-light);
}

.np-about__content {
  padding-right: 2rem;
}

.np-about__text {
  font-size: 1.05rem;
  color: var(--np-gray-light);
  margin-bottom: 2rem;
}

.np-about__features {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 2.5rem;
}

.np-about__features li {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--np-gray);
}

.np-about__features li strong {
  display: block;
  font-weight: 600;
  color: var(--np-black);
  margin-bottom: 2px;
}

.np-about__features li span {
  display: block;
  font-size: 0.875rem;
  color: var(--np-gray);
  line-height: 1.5;
}

.np-about__features li::before {
  content: '';
  width: 20px;
  height: 20px;
  margin-top: 3px;
  flex-shrink: 0;
  border: 1px solid var(--np-teal);
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
  background: rgba(22, 160, 139, 0.15);
}

/* ============================================
   SERVICES SECTION
   ============================================ */
.np-services {
  background: var(--np-bg-alt);
}

.np-services__header {
  text-align: center;
  margin-bottom: 4rem;
}

.np-services__header .np-overline {
  justify-content: center;
}

.np-services__header .np-overline::before {
  display: none;
}

.np-services__header .np-section-subtitle {
  margin: 0 auto;
}

.np-services__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.np-service-card {
  position: relative;
  background: #fff;
  border: 1px solid rgba(0,0,0,0.06);
  box-shadow: 0 2px 12px rgba(0,0,0,0.04);
  padding: 2.75rem 2.25rem;
  transition: all 0.5s var(--ease-out-expo);
  overflow: hidden;
  clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 20px, 100% 100%, 20px 100%, 0 calc(100% - 20px));
}

.np-service-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, var(--np-red), var(--np-gold));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.5s var(--ease-out-expo);
}

.np-service-card:hover {
  background: #fff;
  border-color: rgba(199, 33, 39, 0.15);
  transform: translateY(-6px);
  box-shadow: 0 12px 35px rgba(0, 0, 0, 0.1);
}

.np-service-card:hover::before {
  transform: scaleX(1);
}

.np-service-card__number {
  font-family: var(--font-display);
  font-size: 3rem;
  font-weight: 700;
  color: rgba(201, 168, 76, 0.12);
  position: absolute;
  top: 1rem;
  right: 1.5rem;
  line-height: 1;
}

.np-service-card__icon {
  width: 80px;
  height: 80px;
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(199, 33, 39, 0.12);
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
}

.np-service-card__icon svg {
  width: 44px;
  height: 44px;
  stroke: var(--np-red);
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 0.3s ease;
}

.np-service-card:hover .np-service-card__icon svg {
  transform: scale(1.1);
}

.np-service-card__title {
  font-size: 1.35rem;
  font-weight: 600;
  margin-bottom: 0.85rem;
  letter-spacing: 0.06em;
}

.np-service-card__desc {
  font-size: 0.95rem;
  color: var(--np-gray-light);
  line-height: 1.7;
}

/* ============================================
   STATS SECTION
   ============================================ */
.np-stats {
  background: var(--np-bg-alt);
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  padding: 5rem 0;
  position: relative;
  overflow: hidden;
}

.np-stats::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 50% 80% at 50% 50%, rgba(199, 33, 39, 0.06) 0%, transparent 70%);
}

.np-stats__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  position: relative;
  z-index: 1;
}

.np-stat {
  text-align: center;
  padding: 2rem 1rem;
  position: relative;
}

.np-stat:not(:last-child)::after {
  content: '';
  position: absolute;
  right: 0;
  top: 20%;
  height: 60%;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.1), transparent);
}

.np-stat__number {
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 4vw, 3.8rem);
  font-weight: 700;
  color: var(--np-white);
  line-height: 1;
  margin-bottom: 0.5rem;
}

.np-stat__number span {
  color: var(--np-gold);
}

.np-stat__label {
  font-family: var(--font-mono);
  font-size: 0.76rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--np-gray-light);
}

/* ============================================
   TECHNOLOGY PARTNERS
   ============================================ */
.np-tech-partners {
  background: var(--np-bg-alt);
  padding: clamp(3rem, 6vw, 5rem) 0;
}

.np-tech-partners__strip {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(2rem, 5vw, 4rem);
  flex-wrap: wrap;
}

.np-tech-partner {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.5rem;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
  transition: all 0.3s ease;
  text-decoration: none;
  color: inherit;
}

.np-tech-partner:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
  transform: translateY(-2px);
}

.np-tech-partner__icon {
  width: 48px;
  height: 48px;
  border-radius: 10px;
  background: rgba(199, 33, 39, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.np-tech-partner__icon svg {
  width: 24px;
  height: 24px;
}

.np-tech-partner__info {
  display: flex;
  flex-direction: column;
}

.np-tech-partner__name {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 600;
  color: var(--np-heading);
  letter-spacing: 0.02em;
  text-transform: none;
  line-height: 1.2;
}

.np-tech-partner__desc {
  font-size: 0.78rem;
  color: var(--np-text-light);
  line-height: 1.4;
  margin-top: 0.15rem;
}

@media (max-width: 768px) {
  .np-tech-partners__strip {
    flex-direction: column;
    gap: 1rem;
  }
  .np-tech-partner {
    width: 100%;
    max-width: 360px;
  }
}

/* ============================================
   WHY CHOOSE US
   ============================================ */
.np-why {
  background: var(--np-bg);
}

.np-why__layout {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 4rem;
  align-items: center;
}

.np-why__items {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.np-why__item {
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
  padding: 1.5rem;
  background: #fff;
  border-left: 2px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 2px 8px rgba(0,0,0,0.03);
  transition: all 0.4s ease;
}

.np-why__item:hover {
  background: #fff;
  border-left-color: var(--np-red);
  box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}

.np-why__item-icon {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--np-teal);
}

.np-why__item-icon svg {
  width: 28px;
  height: 28px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.5;
}

.np-why__item h4 {
  margin-bottom: 0.4rem;
  font-size: 1rem;
  letter-spacing: 0.1em;
}

.np-why__item p {
  font-size: 0.9rem;
  color: var(--np-gray);
  margin: 0;
  line-height: 1.6;
}

/* ============================================
   TESTIMONIALS
   ============================================ */
.np-testimonials {
  background: var(--np-bg);
}

.np-testimonials__header {
  text-align: center;
  margin-bottom: 4rem;
}

.np-testimonials__header .np-overline {
  justify-content: center;
}

.np-testimonials__header .np-overline::before {
  display: none;
}

.np-testimonials__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 420px));
  gap: 2rem;
  justify-content: center;
}

.np-testimonial {
  background: #fff;
  border: 1px solid rgba(0,0,0,0.06);
  box-shadow: 0 2px 12px rgba(0,0,0,0.04);
  padding: 2.5rem 2rem;
  position: relative;
  transition: all 0.4s ease;
}

.np-testimonial:hover {
  border-color: rgba(0,0,0,0.1);
  transform: translateY(-4px);
  box-shadow: 0 8px 30px rgba(0,0,0,0.08);
  border-left: 3px solid var(--np-red);
}

.np-testimonial__quote {
  font-family: var(--font-display);
  font-size: 3rem;
  color: var(--np-gold);
  opacity: 0.3;
  line-height: 1;
  margin-bottom: 1rem;
}

.np-testimonial__text {
  font-size: 0.95rem;
  color: var(--np-gray-light);
  line-height: 1.8;
  font-style: italic;
  margin-bottom: 1.5rem;
}

.np-testimonial__author {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.np-testimonial__avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--np-red), var(--np-gold));
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--np-white);
}

.np-testimonial__name {
  font-family: var(--font-heading);
  font-size: 0.85rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--np-white);
}

.np-testimonial__role {
  font-family: var(--font-mono);
  font-size: 0.8rem;
  letter-spacing: 0.12em;
  color: var(--np-gray);
}

/* ============================================
   CTA SECTION
   ============================================ */
.np-cta {
  position: relative;
  padding: 7rem 0;
  overflow: hidden;
}

.np-cta__bg {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(135deg, var(--np-red) 0%, #660000 100%);
}

.np-cta__bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(201, 168, 76, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201, 168, 76, 0.08) 1px, transparent 1px);
  background-size: 60px 60px;
}

.np-cta__content {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 700px;
  margin: 0 auto;
}

.np-cta__title {
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 4.5vw, 3.8rem);
  text-transform: none;
  letter-spacing: -0.01em;
  margin-bottom: 1.2rem;
  color: #f0f2f5;
}

.np-cta__desc {
  font-size: 1.1rem;
  color: rgba(255,255,255,0.8);
  margin-bottom: 2.5rem;
}

.np-cta__actions {
  display: flex;
  gap: 1.5rem;
  justify-content: center;
  flex-wrap: wrap;
}

.np-cta .np-btn--primary {
  background: #fff;
  color: var(--np-red);
}

.np-cta .np-btn--primary:hover {
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3);
}

.np-cta .np-btn--outline {
  border-color: rgba(255,255,255,0.4);
  color: #f0f2f5;
}

.np-cta .np-btn--outline:hover {
  background: rgba(255,255,255,0.15);
  border-color: #f0f2f5;
  color: #f0f2f5;
}

/* ============================================
   TEAM SECTION
   ============================================ */
.np-team__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}
@media (max-width: 1024px) {
  .np-team__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
  .np-team__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .np-team__grid { grid-template-columns: 1fr; max-width: 320px; margin: 0 auto; }
}
.np-team__card {
  text-align: center;
  padding: 1.5rem 1rem;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(201,168,76,.1);
  border-radius: 12px;
  transition: border-color .3s, transform .3s;
}
.np-team__card:hover {
  border-color: rgba(201,168,76,.3);
  transform: translateY(-4px);
}
.np-team__photo-wrap {
  width: 140px;
  height: 140px;
  margin: 0 auto 1.25rem;
  border-radius: 50%;
  overflow: hidden;
  border: 3px solid rgba(201,168,76,.3);
}
.np-team__photo-wrap img,
.np-team__photo-wrap picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.np-team__avatar {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(201,168,76,.12);
  color: var(--np-gold);
  font-family: 'Lato', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 2.2rem;
  font-weight: 700;
  letter-spacing: .05em;
}
.np-team__name {
  font-family: 'Lato', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--np-white);
  margin-bottom: .25rem;
}
.np-team__title {
  font-size: .85rem;
  font-weight: 600;
  color: var(--np-gold);
  text-transform: none;
  letter-spacing: .08em;
  margin-bottom: .75rem;
}
.np-team__bio {
  font-size: .95rem;
  line-height: 1.5;
  color: var(--np-text-light);
}

/* CLIENT LOGOS BAR */
.np-clients-bar__logo-track {
  display: flex;
  gap: 3rem;
  animation: clientScroll 30s linear infinite;
}
.np-clients-bar__logo-item {
  flex-shrink: 0;
  height: 55px;
  opacity: 0.85;
  filter: none;
  transition: opacity .3s;
}
.np-clients-bar__logo-item:hover {
  opacity: 1;
}
.np-clients-bar__logo-item img {
  height: 100%;
  width: auto;
  object-fit: contain;
}

/* ============================================
   FOOTER
   ============================================ */
/* --- Footer CTA Band --- */
.np-footer-cta {
  background: linear-gradient(135deg, rgba(199, 33, 39, 0.15) 0%, rgba(22, 160, 139, 0.08) 100%);
  border-top: 1px solid rgba(199, 33, 39, 0.2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  padding: 2.5rem 0;
}

.np-footer-cta__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}

.np-footer-cta__title {
  font-family: var(--font-heading);
  font-size: 1.4rem;
  color: #fff;
  margin-bottom: 0.35rem;
}

.np-footer-cta__desc {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.85);
  margin: 0;
}

.np-footer-cta__actions {
  display: flex;
  gap: 1rem;
  flex-shrink: 0;
}

@media (max-width: 768px) {
  .np-footer-cta__inner {
    flex-direction: column;
    text-align: center;
  }
  .np-footer-cta__actions {
    flex-direction: column;
    width: 100%;
  }
  .np-footer-cta__actions .np-btn {
    justify-content: center;
  }
}

.np-footer {
  background: var(--np-navy);
}

.np-footer__main {
  padding: 4rem 0 3rem;
}

.np-footer__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1.2fr;
  gap: 3rem;
}

.np-footer__brand-desc {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.8);
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
  line-height: 1.7;
}

.np-footer__license {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-mono);
  font-size: 0.76rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--np-teal);
  padding: 0.5rem 1rem;
  background: rgba(22, 160, 139, 0.08);
  border: 1px solid rgba(22, 160, 139, 0.15);
  white-space: nowrap;
}

.np-footer__social {
  display: flex;
  gap: 0.75rem;
  margin-top: 1.25rem;
}

.np-footer__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.7);
  transition: all 0.3s ease;
}

.np-footer__social-link:hover {
  background: rgba(201, 168, 76, 0.2);
  border-color: #d4a017;
  color: #d4a017;
  transform: translateY(-2px);
}

.np-footer__social-link svg {
  fill: currentColor;
}

.np-footer__heading {
  font-family: var(--font-heading);
  font-size: 0.9rem;
  letter-spacing: 0.05em;
  text-transform: none;
  color: #ffffff;
  margin-bottom: 1.5rem;
}

.np-footer__links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.np-footer__links a {
  font-size: 0.92rem;
  color: rgba(255, 255, 255, 0.8);
  transition: color 0.3s ease, padding-left 0.3s ease;
  padding: 0.3rem 0;
  display: block;
}

.np-footer__links a:hover {
  color: #f0f2f5;
  padding-left: 0.5rem;
}

.np-footer__contact-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 1.2rem;
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.8);
}

.np-footer__contact-item a {
  white-space: normal;
  word-break: break-word;
}

.np-footer__contact-icon {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin-top: 3px;
  color: #d4a017;
}

.np-footer__contact-icon svg {
  width: 100%;
  height: 100%;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.5;
}

/* --- Footer Contact Button --- */
.np-footer__contact-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1rem;
  padding: 0.6rem 1.2rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: #f0f2f5;
  background: rgba(22, 160, 139, 0.12);
  border: 1px solid rgba(22, 160, 139, 0.25);
  border-radius: 6px;
  transition: all 0.3s ease;
  text-decoration: none;
}

.np-footer__contact-btn:hover {
  background: rgba(22, 160, 139, 0.2);
  border-color: var(--np-teal);
  transform: translateY(-1px);
}

/* --- Footer Phone Highlight --- */
.np-footer__phone-main {
  color: #f0f2f5 !important;
  font-size: 1.05rem;
  font-weight: 600;
  transition: color 0.3s;
}

.np-footer__phone-main:hover {
  color: var(--np-teal) !important;
}

.np-footer__bottom {
  padding: 1.5rem 0;
  border-top: 1px solid rgba(201, 168, 76, 0.08);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.np-footer__tagline {
  color: rgba(255, 255, 255, 0.65);
  font-style: italic;
}

.np-footer__copy {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.6);
}

.np-footer__copy a {
  color: #d4a017;
  transition: color 0.3s;
}

.np-footer__copy a:hover {
  color: var(--np-teal);
}

/* ============================================
   SCROLL REVEAL ANIMATION
   ============================================ */
/* Scroll reveal: JS adds 'np-reveal-ready' to body to enable animations.
   Without JS, all content remains fully visible. */
.np-reveal-ready .np-reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s var(--ease-out-expo), transform 0.7s var(--ease-out-expo);
}

.np-reveal-ready .np-reveal.revealed {
  opacity: 1;
  transform: translateY(0);
}

.np-reveal-delay-1 { transition-delay: 0.1s; }
.np-reveal-delay-2 { transition-delay: 0.15s; }
.np-reveal-delay-3 { transition-delay: 0.2s; }
.np-reveal-delay-4 { transition-delay: 0.25s; }
.np-reveal-delay-5 { transition-delay: 0.3s; }

/* ============================================
   ANIMATION ENHANCEMENT 1: Hero Word Stagger
   ============================================ */
.np-hero__title .np-word {
  display: inline-block;
  opacity: 0;
  transform: translateY(40px) rotateX(15deg);
  animation: wordReveal 0.6s var(--ease-out-expo) forwards;
}

@keyframes wordReveal {
  to { opacity: 1; transform: translateY(0) rotateX(0); }
}

/* JS sets --word-index for stagger timing */
.np-hero__title.np-words-ready {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}

/* ============================================
   ANIMATION ENHANCEMENT 2: Gradient Shimmer on <em>
   ============================================ */
.np-hero__title em {
  background: linear-gradient(
    90deg,
    var(--np-gold) 0%,
    #fff 45%,
    #fff 55%,
    var(--np-gold) 100%
  );
  background-size: 300% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: shimmer 4s ease-in-out 2s infinite;
}

@keyframes shimmer {
  0%, 100% { background-position: 100% 0; }
  50% { background-position: 0% 0; }
}

/* Safeguard: ensure em inside word-stagger spans remains visible.
   The .np-word wrapper is inline-block, which would break background-clip:text
   on a parent em. Since em is now INSIDE .np-word (not wrapping it), the
   gradient+clip stays on em and works correctly. This rule is a fallback
   in case the animation-fill or opacity chain ever fails. */
.np-hero__title .np-word em {
  opacity: 1;
}

/* ============================================
   ANIMATION ENHANCEMENT 3: Trust Bar Icon Pulse
   ============================================ */
.np-trust-bar__item svg,
.np-trust-bar__item .np-trust-icon {
  transition: transform 0.4s var(--ease-out-expo);
}

.np-reveal-ready .np-trust-bar__item.revealed svg,
.np-reveal-ready .np-trust-bar__item.revealed .np-trust-icon {
  animation: iconPulse 0.6s var(--ease-out-expo) forwards;
}

@keyframes iconPulse {
  0% { transform: scale(0.5) rotate(-10deg); opacity: 0; }
  60% { transform: scale(1.15) rotate(3deg); opacity: 1; }
  100% { transform: scale(1) rotate(0); opacity: 1; }
}

/* ============================================
   ANIMATION ENHANCEMENT 4: Service Card Icon Lift
   ============================================ */
.np-service-card__icon {
  transition: transform 0.5s var(--ease-out-expo), background 0.5s var(--ease-out-expo);
}

.np-service-card:hover .np-service-card__icon {
  transform: translateY(-6px) scale(1.08);
  background: rgba(199, 33, 39, 0.25);
}

.np-service-card:hover .np-service-card__icon svg {
  animation: iconFloat 1.5s ease-in-out infinite;
}

@keyframes iconFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}

/* ============================================
   ANIMATION ENHANCEMENT 5: Stat Number Glow
   ============================================ */
.np-stat__number {
  transition: text-shadow 0.6s ease;
}

.np-stat__number.counted {
  animation: statGlow 1.5s ease forwards;
}

@keyframes statGlow {
  0% { text-shadow: none; }
  50% { text-shadow: 0 0 30px rgba(199, 33, 39, 0.4), 0 0 60px rgba(199, 33, 39, 0.2); }
  100% { text-shadow: none; }
}

/* ============================================
   ANIMATION ENHANCEMENT 6: Testimonial Quote Slide
   ============================================ */
.np-testimonial__quote::before {
  display: inline-block;
  opacity: 0;
  transform: translateX(-20px) scale(1.3);
  transition: opacity 0.6s ease 0.3s, transform 0.6s var(--ease-out-expo) 0.3s;
}

.np-reveal-ready .np-testimonial__quote.revealed::before,
.np-reveal-ready .revealed .np-testimonial__quote::before {
  opacity: 1;
  transform: translateX(0) scale(1);
}

/* ============================================
   ANIMATION ENHANCEMENT 7: CTA Button Attention Pulse
   ============================================ */
.np-btn--primary.np-btn--pulse {
  position: relative;
  overflow: visible;
}

.np-btn--primary.np-btn--pulse::after {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: inherit;
  border: 2px solid var(--np-gold);
  opacity: 0;
  animation: btnPulse 3s ease-in-out 3s infinite;
  pointer-events: none;
}

@keyframes btnPulse {
  0%, 100% { opacity: 0; transform: scale(1); }
  15% { opacity: 0.6; transform: scale(1); }
  40% { opacity: 0; transform: scale(1.12, 1.35); }
}

/* ============================================
   ANIMATION ENHANCEMENT 8: Scroll Progress Bar
   ============================================ */
.np-scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  width: 0%;
  height: 3px;
  background: linear-gradient(90deg, var(--np-red), var(--np-gold));
  z-index: 10001;
  transition: none;
  will-change: width;
  pointer-events: none;
}

/* ============================================
   ANIMATION ENHANCEMENT 9: Image Clip Reveal
   ============================================ */
.np-reveal-ready .np-clip-reveal {
  clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  transition: clip-path 0.9s var(--ease-out-expo);
}

.np-reveal-ready .np-clip-reveal.revealed {
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}

/* ============================================
   ANIMATION ENHANCEMENT 10: Page Hero Parallax BG
   ============================================ */
.np-service-hero__bg,
.np-page-header__bg {
  will-change: transform;
  transition: none;
}

/* ============================================
   INTERIOR PAGE STYLES
   ============================================ */
.np-page-header {
  padding: 10rem 0 4rem;
  background: var(--np-navy);
  position: relative;
  overflow: hidden;
}

.np-page-header::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 60% at 50% 0%, rgba(199, 33, 39, 0.1) 0%, transparent 70%);
}

.np-page-header__title {
  position: relative;
  z-index: 1;
  color: #f0f2f5;
}

.np-page-header .np-section-subtitle {
  color: rgba(255, 255, 255, 0.7);
}

.np-page-content {
  padding: 4rem 0 6rem;
}

.np-page-content .entry-content {
  max-width: 800px;
  margin: 0 auto;
}

.np-page-content .entry-content p {
  font-size: 1.05rem;
  color: var(--np-gray-light);
  line-height: 1.8;
}

.np-page-content .entry-content h2,
.np-page-content .entry-content h3,
.np-page-content .entry-content h4 {
  margin-top: 2.5rem;
  margin-bottom: 1rem;
}

.np-page-content .entry-content ul,
.np-page-content .entry-content ol {
  padding-left: 1.5rem;
  margin-bottom: 1.5rem;
}

.np-page-content .entry-content li {
  margin-bottom: 0.5rem;
}

.np-page-content .entry-content blockquote {
  border-left: 3px solid var(--np-red);
  padding: 1.5rem 2rem;
  margin: 2rem 0;
  background: var(--np-bg-alt);
  font-style: italic;
  color: var(--np-text);
}

.np-page-content .entry-content img {
  border-radius: 0;
  clip-path: polygon(0 0, calc(100% - 15px) 0, 100% 15px, 100% 100%, 15px 100%, 0 calc(100% - 15px));
  margin: 2rem 0;
}

/* ============================================
   BLOG / ARCHIVE STYLES
   ============================================ */
.np-posts-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.np-post-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,0.06);
  box-shadow: 0 2px 12px rgba(0,0,0,0.04);
  overflow: hidden;
  transition: all 0.4s ease;
  clip-path: polygon(0 0, calc(100% - 15px) 0, 100% 15px, 100% 100%, 15px 100%, 0 calc(100% - 15px));
}

.np-post-card:hover {
  border-color: rgba(0,0,0,0.1);
  transform: translateY(-4px);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.08);
}

.np-post-card__image {
  aspect-ratio: 16/9;
  background: var(--np-charcoal);
  overflow: hidden;
}

.np-post-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s var(--ease-out-expo);
}

.np-post-card:hover .np-post-card__image img {
  transform: scale(1.05);
}

.np-post-card__body {
  padding: 1.5rem;
}

.np-post-card__meta {
  font-family: var(--font-mono);
  font-size: 0.76rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--np-gold);
  margin-bottom: 0.75rem;
}

.np-post-card__title {
  font-size: 1.1rem;
  margin-bottom: 0.75rem;
  letter-spacing: 0.05em;
}

.np-post-card__title a {
  color: var(--np-white);
  text-decoration: none;
}

.np-post-card__title a:hover {
  color: var(--np-gold);
}

.np-post-card__excerpt {
  font-size: 0.95rem;
  color: var(--np-gray);
  line-height: 1.7;
}

/* Single post */
.np-single-header {
  padding: 10rem 0 3rem;
  background: var(--np-navy);
  text-align: center;
}

.np-single-header__meta {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 1.5rem;
}

.np-single-header__title {
  font-family: var(--font-display);
  text-transform: none;
  letter-spacing: -0.01em;
  max-width: 800px;
  margin: 0 auto;
  color: #f0f2f5;
}

/* Single post mid-content CTA */
.np-single-cta {
  max-width: 800px;
  margin: 3rem auto;
  padding: 2rem;
  background: linear-gradient(135deg, var(--np-navy) 0%, var(--np-navy-light) 100%);
  border: 1px solid var(--np-slate);
  clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 16px, 100% 100%, 16px 100%, 0 calc(100% - 16px));
}

.np-single-cta__inner {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.np-single-cta__text {
  flex: 1;
  min-width: 200px;
}

.np-single-cta__title {
  font-family: var(--font-heading);
  font-size: 1.1rem;
  text-transform: none;
  letter-spacing: -0.01em;
  color: #f0f2f5;
  margin: 0 0 0.5rem;
}

.np-single-cta__desc {
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.95rem;
  margin: 0;
  line-height: 1.5;
}

.np-single-cta__actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

/* Single post navigation */
.np-single-nav {
  max-width: 800px;
  margin: 2rem auto 0;
  padding-top: 2rem;
  border-top: 1px solid var(--np-slate);
}

.np-single-nav__inner {
  display: flex;
  justify-content: space-between;
  font-family: var(--font-mono);
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.np-single-nav__link {
  color: var(--np-gray);
  text-decoration: none;
  padding: 0.5rem 0;
}

.np-single-nav__link:hover {
  color: var(--np-gold);
}

/* Single post related services */
.np-single-related {
  max-width: 800px;
  margin: 3rem auto 0;
}

.np-single-related__title {
  font-family: var(--font-heading);
  font-size: 0.85rem;
  text-transform: none;
  letter-spacing: 0.02em;
  color: var(--np-gray);
  margin-bottom: 1.25rem;
}

.np-single-related__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr));
  gap: 1rem;
}

/* Related service links (single posts) */
.np-related-service-link {
  display: block;
  padding: 1rem 1.25rem;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  text-decoration: none;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
  color: var(--np-heading);
  font-family: var(--font-heading);
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.np-related-service-link:hover {
  border-color: var(--np-red);
}

/* Pagination */
.np-pagination {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  padding: 3rem 0;
}

.np-pagination a,
.np-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  font-family: var(--font-heading);
  font-size: 0.85rem;
  color: var(--np-gray);
  border: 1px solid rgba(201, 168, 76, 0.1);
  transition: all 0.3s ease;
}

.np-pagination a:hover {
  border-color: var(--np-gold);
  color: var(--np-white);
}

.np-pagination .current {
  background: var(--np-red);
  border-color: var(--np-red);
  color: #fff;
}

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width: 1024px) {
  .np-about__grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .np-about__image {
    max-width: 500px;
  }

  .np-about__badge {
    left: 0;
  }

  .np-services__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .np-stats__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .np-stat:nth-child(2)::after {
    display: none;
  }

  .np-why__layout {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .np-testimonials__grid {
    grid-template-columns: 1fr 1fr;
  }

  .np-footer__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .np-posts-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {

  .np-services__grid {
    grid-template-columns: 1fr;
  }

  .np-stats__grid {
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
  }

  .np-stat:not(:last-child)::after {
    display: none;
  }

  .np-testimonials__grid {
    grid-template-columns: 1fr;
  }

  .np-hero__title {
    font-size: clamp(2.2rem, 5.5vw, 3rem);
  }

  .np-footer__grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .np-footer__bottom {
    flex-direction: column;
    gap: 1rem;
    text-align: center;
  }

  .np-footer__links a {
    padding: 0.5rem 0;
    font-size: 0.95rem;
  }

  .np-footer__social-link {
    width: 44px;
    height: 44px;
  }

  .np-trust-bar__item {
    white-space: normal;
  }

  .np-posts-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  .np-hero__content {
    padding-top: 7rem;
  }

  .np-cta__actions {
    flex-direction: column;
    align-items: center;
  }

  .np-about__badge {
    position: relative;
    bottom: auto;
    left: auto;
    display: inline-block;
    margin-top: 1rem;
  }
}

/* ============================================
   MEGA MENU & DROPDOWNS
   ============================================ */
.np-nav__dropdown {
  position: relative;
}

/* Bridge gap between trigger button and dropdown panel */
.np-nav__dropdown::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  height: 3rem;
  display: none;
  z-index: 999;
}

.np-nav__dropdown--open::after {
  display: block;
}

.np-nav__link--has-children {
  position: relative;
  z-index: 1002;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--font-heading);
  font-size: 0.85rem;
  font-weight: 400;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.8);
  padding: 0.25rem 0;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.np-nav__link--has-children:hover {
  color: #f0f2f5;
}

.np-nav__chevron {
  transition: transform 0.3s ease;
}

.np-nav__dropdown--open .np-nav__chevron {
  transform: rotate(180deg);
}

/* Mega Menu (Full Width) */
.np-mega-menu {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  padding-top: 80px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s var(--ease-out-expo);
  z-index: 1001;
  pointer-events: none;
}

/* Adjust mega menu position when header is scrolled (compact) */
.np-header--scrolled .np-mega-menu {
  padding-top: 60px;
}

.np-nav__dropdown--open .np-mega-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

/* Inner content area explicitly auto (inherited, but explicit for clarity) */
.np-nav__dropdown--open .np-mega-menu .np-mega-menu__inner {
  pointer-events: auto;
}

/* Ensure header nav links stay clickable above mega menu padding area */
.np-header__inner {
  position: relative;
  z-index: 1002;
}

/* CSS-only hover fallback: show menu on dropdown wrapper hover */
@media (hover: hover) and (min-width: 1025px) {
  .np-nav__dropdown:hover::after {
    display: block;
  }
  .np-nav__dropdown:hover .np-mega-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
  }
  .np-nav__dropdown:hover .np-dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
    pointer-events: auto;
  }
  .np-nav__dropdown:hover .np-nav__chevron {
    transform: rotate(180deg);
  }
}


.np-mega-menu__inner {
  max-width: var(--container-wide);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr) 300px;
  gap: 0;
  background: rgba(13, 17, 23, 0.98);
  backdrop-filter: blur(30px);
  -webkit-backdrop-filter: blur(30px);
  border: 1px solid rgba(201, 168, 76, 0.1);
  border-top: 2px solid var(--np-red);
  padding: 2rem 0;
}

.np-mega-menu__col {
  padding: 0 2rem;
  border-right: 1px solid rgba(201, 168, 76, 0.06);
}

.np-mega-menu__col:last-of-type {
  border-right: none;
}

.np-mega-menu__heading-wrap {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}

.np-mega-menu__heading-icon {
  flex-shrink: 0;
  opacity: 0.85;
}

.np-mega-menu__heading {
  font-family: var(--font-heading);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #ffffff;
  margin-bottom: 0;
}

.np-mega-menu__col-desc {
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.6);
  margin-bottom: 0.85rem;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid rgba(201, 168, 76, 0.08);
  line-height: 1.4;
}

.np-mega-menu__links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.np-mega-menu__links a {
  display: flex;
  align-items: center;
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.8);
  padding: 0.5rem 0.5rem;
  margin: 0 -0.5rem;
  border-radius: 4px;
  transition: all 0.2s ease;
  text-decoration: none;
  position: relative;
}

.np-mega-menu__links a:hover {
  color: #f0f2f5;
  background: rgba(201, 168, 76, 0.06);
  padding-left: 1rem;
}

.np-mega-menu__links a::before {
  content: '';
  position: absolute;
  left: 0.25rem;
  top: 50%;
  width: 0;
  height: 2px;
  background: var(--np-gold);
  transition: width 0.2s ease;
  transform: translateY(-50%);
  border-radius: 1px;
}

.np-mega-menu__links a:hover::before {
  width: 0.35rem;
}

/* Mega Menu CTA Column */
.np-mega-menu__cta-col {
  padding: 0 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.np-mega-menu__cta-card {
  background: linear-gradient(135deg, rgba(199, 33, 39, 0.15), rgba(199, 33, 39, 0.06));
  border: 1px solid rgba(199, 33, 39, 0.25);
  padding: 1.25rem;
  width: 100%;
  clip-path: polygon(0 0, calc(100% - 15px) 0, 100% 15px, 100% 100%, 15px 100%, 0 calc(100% - 15px));
  flex: 1;
}

.np-mega-menu__cta-card .np-btn--sm {
  padding: 0.7rem 1.1rem;
  font-size: 0.8rem;
  width: 100%;
  justify-content: center;
}

.np-mega-menu__cta-badge {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #d4a017;
  background: rgba(201, 168, 76, 0.1);
  border: 1px solid rgba(201, 168, 76, 0.2);
  padding: 0.25rem 0.65rem;
  margin-bottom: 0.85rem;
  white-space: nowrap;
}

.np-mega-menu__cta-title {
  font-family: var(--font-heading);
  font-size: 0.95rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #f0f2f5;
  margin-bottom: 0.5rem;
}

.np-mega-menu__cta-text {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 1rem;
  line-height: 1.6;
}

.np-mega-menu__cta-link {
  display: block;
  font-size: 0.78rem;
  color: var(--np-teal-light);
  margin-top: 0.65rem;
  text-decoration: none;
  transition: color 0.2s ease;
}

.np-mega-menu__cta-link:hover {
  color: #f0f2f5;
}

.np-mega-menu__cta-link span {
  display: inline-block;
  transition: transform 0.2s ease;
}

.np-mega-menu__cta-link:hover span {
  transform: translateX(3px);
}

.np-mega-menu__trust-strip {
  display: flex;
  gap: 1rem;
  padding: 0.5rem 0;
  flex-wrap: wrap;
}

.np-mega-menu__trust-strip span {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.7);
  white-space: nowrap;
}

.np-mega-menu__trust-strip span::before {
  content: '';
  display: inline-block;
  width: 5px;
  height: 5px;
  background: var(--np-teal);
  border-radius: 50%;
  margin-right: 0.4rem;
  vertical-align: middle;
}

/* Mega Menu Footer Link */
.np-mega-menu__footer {
  max-width: var(--container-wide);
  margin: 0 auto;
  background: rgba(13, 17, 23, 0.98);
  border-top: 1px solid rgba(201, 168, 76, 0.06);
  padding: 0.75rem 2rem;
  text-align: center;
}

.np-mega-menu__view-all {
  font-family: var(--font-heading);
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--np-teal-light);
  text-decoration: none;
  transition: color 0.2s ease;
}

.np-mega-menu__view-all:hover {
  color: #f0f2f5;
}

.np-mega-menu__view-all span {
  display: inline-block;
  transition: transform 0.2s ease;
}

.np-mega-menu__view-all:hover span {
  transform: translateX(4px);
}

.np-btn--sm {
  padding: 0.75rem 1.5rem;
  font-size: 0.78rem;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  white-space: nowrap;
}

/* Standard Dropdown */
.np-dropdown-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(-4px);
  min-width: 260px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s var(--ease-out-expo);
  z-index: 1001;
  padding-top: 0.35rem;
  pointer-events: none;
}

.np-nav__dropdown--open .np-dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}

.np-dropdown-menu__links {
  list-style: none;
  background: rgba(13, 17, 23, 0.98);
  backdrop-filter: blur(30px);
  -webkit-backdrop-filter: blur(30px);
  border: 1px solid rgba(201, 168, 76, 0.1);
  border-top: 2px solid var(--np-red);
  padding: 0.75rem 0;
}

.np-dropdown-menu__links a {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.65rem 1.5rem;
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.75);
  text-decoration: none;
  transition: all 0.25s ease;
}

.np-dropdown-menu__links a:hover {
  color: #f0f2f5;
  background: rgba(201, 168, 76, 0.05);
  padding-left: 1.75rem;
}

/* Rich Links (icon + title + description) */
.np-dropdown-menu__rich-link {
  display: flex !important;
  align-items: flex-start !important;
  gap: 0.85rem !important;
  padding: 0.85rem 1.5rem !important;
}

.np-dropdown-menu__rich-link:hover {
  padding-left: 1.5rem !important;
}

.np-dropdown-menu__icon-wrap {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(201, 168, 76, 0.06);
  border: 1px solid rgba(201, 168, 76, 0.1);
  border-radius: 6px;
  transition: all 0.25s ease;
}

.np-dropdown-menu__rich-link:hover .np-dropdown-menu__icon-wrap {
  background: rgba(201, 168, 76, 0.12);
  border-color: rgba(201, 168, 76, 0.2);
}

.np-dropdown-menu__text-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.np-dropdown-menu__link-title {
  font-family: var(--font-heading);
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.95);
  transition: color 0.2s ease;
}

.np-dropdown-menu__rich-link:hover .np-dropdown-menu__link-title {
  color: #f0f2f5;
}

.np-dropdown-menu__link-desc {
  font-family: var(--font-body);
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.6);
  letter-spacing: normal;
  text-transform: none;
  line-height: 1.4;
}

/* Wider dropdowns for rich links */
.np-dropdown-menu--tech {
  min-width: 340px;
}

.np-dropdown-menu--areas {
  min-width: 340px;
}

/* Header Mobile Actions */
.np-header__mobile-actions {
  display: none;
  align-items: center;
  gap: 1rem;
}

.np-header__mobile-phone {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: var(--np-red);
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  color: #fff;
  text-decoration: none;
}

/* ============================================
   MOBILE MENU
   ============================================ */
.np-mobile-menu {
  position: fixed;
  top: 0;
  right: -100%;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  background: rgba(35, 31, 32, 0.98);
  backdrop-filter: blur(30px);
  -webkit-backdrop-filter: blur(30px);
  z-index: 998;
  transition: right 0.5s var(--ease-out-expo);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.np-mobile-menu--open {
  right: 0;
}

.np-mobile-menu__inner {
  padding: 11rem 2rem 3rem;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.np-mobile-menu__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: var(--font-heading);
  font-size: 1.1rem;
  font-weight: 400;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(201, 168, 76, 0.06);
  background: none;
  border-left: none;
  border-right: none;
  border-top: none;
  width: 100%;
  cursor: pointer;
  text-align: left;
}

.np-mobile-menu__link:hover,
.np-mobile-menu__link:focus {
  color: #f0f2f5;
}

.np-mobile-menu__toggle svg {
  transition: transform 0.3s ease;
}

.np-mobile-menu__toggle--open svg {
  transform: rotate(180deg);
}

.np-mobile-menu__panel {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s var(--ease-out-expo);
  padding-left: 1rem;
}

.np-mobile-menu__panel a {
  display: block;
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.8);
  text-decoration: none;
  padding: 0.7rem 0;
  min-height: 44px;
  transition: color 0.2s ease;
}

.np-mobile-menu__panel a:hover {
  color: #f0f2f5;
}

.np-mobile-menu__group-title {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #d4a017;
  padding-top: 1rem;
  padding-bottom: 0.5rem;
  margin-top: 0.5rem;
  border-top: 1px solid rgba(201, 168, 76, 0.06);
}

.np-mobile-menu__group-title:first-child {
  border-top: none;
  margin-top: 0;
  padding-top: 0.5rem;
}

/* Mobile Menu Rich Items */
.np-mobile-menu__item-title {
  display: block;
  font-size: inherit;
  color: inherit;
}

.np-mobile-menu__item-desc {
  display: block;
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.55);
  margin-top: 0.1rem;
  opacity: 1;
}

.np-mobile-menu__cta {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(201, 168, 76, 0.1);
}

/* ============================================
   BREADCRUMBS
   ============================================ */
.np-breadcrumbs {
  background: var(--np-navy);
  padding: 1rem 0;
  border-bottom: 1px solid rgba(201, 168, 76, 0.06);
  padding-top: 11rem; /* clears utility bar (4.2rem) + main header (~6.8rem) */
}

.np-breadcrumbs .np-container {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-mono);
  font-size: 0.76rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.np-breadcrumbs a {
  color: rgba(255, 255, 255, 0.65);
  text-decoration: none;
  transition: color 0.2s ease;
}

.np-breadcrumbs a:hover {
  color: var(--np-gold);
}

.np-breadcrumbs span {
  color: var(--np-gold);
}

.np-breadcrumbs svg {
  color: rgba(255, 255, 255, 0.65);
  opacity: 1;
  flex-shrink: 0;
}

/* ============================================
   SERVICE HERO
   ============================================ */
.np-service-hero {
  position: relative;
  padding: 4rem 0 3rem;
  overflow: hidden;
  background: var(--np-navy);
}

.np-service-hero__bg {
  position: absolute;
  inset: 0;
}

.np-service-hero__bg-image {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0.45;
  z-index: 0;
}

.np-service-hero__gradient {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(13, 17, 23, 0.8) 0%, rgba(13, 17, 23, 0.5) 50%, rgba(13, 17, 23, 0.3) 100%),
    linear-gradient(180deg, rgba(13, 17, 23, 0.2) 0%, rgba(13, 17, 23, 0.6) 100%);
  z-index: 2;
}

.np-service-hero__content {
  position: relative;
  z-index: 10;
  max-width: 800px;
}

.np-service-hero__title {
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 5vw, 3.8rem);
  font-weight: 700;
  line-height: 1.1;
  color: #f0f2f5;
  text-transform: none;
  letter-spacing: -0.01em;
  margin-bottom: 1rem;
}

.np-service-hero__subtitle {
  font-size: 1.1rem;
  color: rgba(255, 255, 255, 0.85);
  max-width: 600px;
  line-height: 1.8;
  margin-bottom: 2rem;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.7);
  opacity: 1;
}

/* Centred hero variant, used by the Thank You and 404 pages.

   text-align alone does not do it: __content is max-width:800px and __subtitle
   is max-width:600px, and neither box is centred inside its parent. So the text
   centres within a box that is itself flush left, and the copy lands left of
   centre while the unconstrained H1 above it looks correctly centred - which is
   exactly how the mismatch shows up on screen. Centre the boxes, not just their
   text. */
.np-service-hero__content--center {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.np-service-hero__content--center .np-service-hero__subtitle {
  margin-left: auto;
  margin-right: auto;
}

.np-service-hero__content--center .np-overline {
  justify-content: center;
}

.np-service-hero__content--center .np-service-hero__actions {
  justify-content: center;
}
.np-service-hero__actions {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

/* ============================================
   TRUST BAR
   ============================================ */
.np-trust-bar {
  background: var(--np-bg-alt);
  padding: 1.5rem 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.np-trust-bar__grid {
  display: flex;
  justify-content: center;
  gap: 3rem;
  flex-wrap: wrap;
}

.np-trust-bar__item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-mono);
  font-size: 0.88rem;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--np-heading);
  white-space: nowrap;
}

/* ============================================
   SERVICE CONTENT LAYOUT
   ============================================ */
.np-service-content__grid {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 3rem;
  align-items: start;
}

.np-service-content__hero-image {
  position: relative;
  width: 100%;
  max-height: 350px;
  overflow: hidden;
  margin-bottom: 2rem;
  border-radius: 0.75rem;
}

.np-service-content__hero-image img {
  display: block;
  width: 100%;
  height: 100%;
  max-height: 350px;
  object-fit: cover;
}

.np-service-content__hero-image::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(to bottom, transparent, var(--np-black));
  pointer-events: none;
  border-radius: 0 0 0.75rem 0.75rem;
}

.np-service-content__main .entry-content {
  max-width: none;
}

.np-service-content__main .entry-content h2 {
  font-family: var(--font-display);
  text-transform: none;
  letter-spacing: -0.01em;
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  margin-top: 3rem;
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.np-service-content__main .entry-content h2:first-child {
  margin-top: 0;
}

.np-service-content__main .entry-content h3 {
  font-size: clamp(1.2rem, 2vw, 1.6rem);
  margin-top: 2rem;
  margin-bottom: 0.75rem;
  color: var(--np-gold);
}

.np-service-content__main .entry-content p {
  font-size: 1.05rem;
  color: var(--np-gray-light);
  line-height: 1.8;
}

.np-service-content__main .entry-content ul,
.np-service-content__main .entry-content ol {
  padding-left: 0;
  list-style: none;
  margin-bottom: 1.5rem;
}

.np-service-content__main .entry-content ul li {
  position: relative;
  padding-left: 1.75rem;
  margin-bottom: 0.6rem;
  color: var(--np-gray-light);
  line-height: 1.7;
}

.np-service-content__main .entry-content ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 8px;
  height: 8px;
  background: rgba(22, 160, 139, 0.3);
  border: 1px solid var(--np-teal);
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
}

.np-service-content__main .entry-content strong {
  color: var(--np-white);
}

.np-service-content__main .entry-content blockquote {
  border-left: 3px solid var(--np-red);
  padding: 1.5rem 2rem;
  margin: 2rem 0;
  background: var(--np-bg-alt);
  font-style: italic;
  color: var(--np-text);
}

/* ============================================
   SIDEBAR
   ============================================ */
.np-sidebar-card {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
  padding: 1.75rem;
  margin-bottom: 1.5rem;
}

.np-sidebar-card--cta {
  background: rgba(199, 33, 39, 0.1);
  border-color: rgba(199, 33, 39, 0.2);
}

.np-sidebar-card__title {
  font-family: var(--font-heading);
  font-size: 0.9rem;
  letter-spacing: 0.02em;
  text-transform: none;
  color: var(--np-heading);
  margin-bottom: 0.75rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.np-sidebar-card__text {
  font-size: 0.95rem;
  color: var(--np-gray);
  line-height: 1.6;
  margin-bottom: 1.25rem;
}

.np-sidebar-card__checklist {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.np-sidebar-card__checklist li {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.9rem;
  color: var(--np-gray-light);
}

.np-sidebar-card__checklist li::before {
  content: '';
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  border: 1px solid var(--np-teal);
  background: rgba(22, 160, 139, 0.12);
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
}

.np-sidebar-card__links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.np-sidebar-card__links a {
  display: block;
  font-size: 0.88rem;
  color: var(--np-gray-light);
  text-decoration: none;
  padding: 0.55rem 0;
  min-height: 44px;
  display: flex;
  align-items: center;
  transition: all 0.2s ease;
}

.np-sidebar-card__links a:hover {
  color: var(--np-white);
  padding-left: 0.5rem;
}

/* ============================================
   SERVICE PAGE TESTIMONIALS
   ============================================ */
.np-service-testimonials {
  background: var(--np-bg-alt);
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.np-service-testimonials__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}

@media (max-width: 768px) {
  .np-service-testimonials__grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================
   RESPONSIVE - MEGA MENU & NEW COMPONENTS
   ============================================ */
@media (max-width: 1200px) {
  .np-mega-menu__inner {
    grid-template-columns: repeat(4, 1fr);
  }

  .np-mega-menu__cta-col {
    display: none;
  }

  .np-mega-menu__footer {
    border: 1px solid rgba(201, 168, 76, 0.1);
    border-top: none;
  }
}

/* 1200px, not 1024: below ~1180 the desktop nav overflows its container and
   the Contact CTA is clipped, then drifts off-screen entirely by ~1136px.
   Keep in sync with the critical CSS in header.php. */
@media (max-width: 1200px) {
  .np-nav {
    display: none;
  }

  .np-header__mobile-actions {
    display: flex;
  }

  .np-menu-toggle {
    display: flex;
  }
}

@media (max-width: 1024px) {
  .np-service-content__grid {
    grid-template-columns: 1fr;
  }

  .np-trust-bar__grid {
    gap: 1.5rem;
  }
}

@media (max-width: 768px) {
  .np-service-hero {
    padding: 3rem 0 2rem;
  }

  .np-service-hero__bg-image {
    opacity: 0.35;
  }

  .np-service-hero__gradient {
    background:
      linear-gradient(180deg, rgba(13, 17, 23, 0.5) 0%, rgba(13, 17, 23, 0.4) 40%, rgba(13, 17, 23, 0.75) 100%);
  }

  .np-service-hero__title {
    font-size: clamp(1.8rem, 6vw, 2.5rem);
  }

  .np-service-hero__subtitle {
    font-size: 0.95rem;
    margin-bottom: 1.25rem;
  }

  .np-service-hero__actions {
    flex-direction: column;
    width: 100%;
  }

  .np-service-hero__actions .np-btn {
    width: 100%;
    justify-content: center;
  }

  .np-trust-bar__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
  }

  .np-breadcrumbs .np-container {
    font-size: 0.76rem;
    gap: 0.35rem;
    flex-wrap: wrap;
  }
}

@media (max-width: 480px) {
  .np-trust-bar__grid {
    grid-template-columns: 1fr;
  }

  .np-mobile-menu__inner {
    padding-top: 11rem;
  }
}

/* ============================================
   HOME TRUST BAR (enhanced)
   ============================================ */
.np-trust-bar--home {
  border-top: 1px solid rgba(0, 0, 0, 0.06);
}

/* ============================================
   SERVICE CARD LINKS (Homepage)
   ============================================ */
.np-service-card--linked {
  display: block;
  text-decoration: none;
  cursor: pointer;
}

.np-service-card__link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-heading);
  font-size: 0.8rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--np-gold);
  margin-top: 1.25rem;
  opacity: 0;
  transform: translateY(5px);
  transition: all 0.3s ease;
}

.np-service-card:hover .np-service-card__link {
  opacity: 1;
  transform: translateY(0);
}

/* ============================================
   SERVICE AREAS GRID (Homepage)
   ============================================ */
.np-areas-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1.5rem;
}

/* Gulf South map */
.np-gulf-map {
  max-width: 820px;
  margin-left: auto;
  margin-right: auto;
}
.np-gulf-map__leaflet {
  width: 100%;
  height: 480px;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(0,0,0,0.22), 0 0 0 1px rgba(46,80,133,0.25);
}

/* Leaflet popup custom styles */
.np-leaflet-popup .leaflet-popup-content-wrapper {
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.2);
  padding: 0;
}
.np-leaflet-popup .leaflet-popup-content {
  margin: 0;
  padding: 0;
}
.np-leaflet-popup .leaflet-popup-tip {
  background: #fff;
}
.np-map-popup {
  padding: 0.85rem 1rem;
  min-width: 180px;
}
.np-map-popup strong {
  display: block;
  font-size: 0.92rem;
  font-weight: 700;
  color: #231F20;
  margin-bottom: 0.25rem;
  font-family: 'Lato', sans-serif;
}
.np-map-popup p {
  font-size: 0.8rem;
  color: #666;
  margin: 0 0 0.5rem;
  line-height: 1.4;
}
.np-map-popup a {
  font-size: 0.82rem;
  font-weight: 700;
  color: #c72127;
  text-decoration: none;
}
.np-map-popup a:hover {
  text-decoration: underline;
}

/* Remove Leaflet default attribution box on small screens */
@media (max-width: 480px) {
  .leaflet-control-attribution {
    font-size: 9px;
  }
}

.np-area-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,0.06);
  box-shadow: 0 2px 12px rgba(0,0,0,0.04);
  padding: 2rem 1.5rem;
  text-align: center;
  text-decoration: none;
  display: block;
  transition: all 0.4s ease;
  clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 12px 100%, 0 calc(100% - 12px));
}

.np-area-card:hover {
  border-color: rgba(0,0,0,0.1);
  background: #fff;
  transform: translateY(-4px);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.08);
}

.np-area-card__icon {
  margin-bottom: 1rem;
}

.np-area-card__title {
  font-family: var(--font-heading);
  font-size: 1rem;
  letter-spacing: 0.02em;
  text-transform: none;
  color: var(--np-white);
  margin-bottom: 0.5rem;
}

.np-area-card__desc {
  font-size: 0.92rem;
  color: var(--np-text-light);
  line-height: 1.65;
  margin-bottom: 1rem;
}

.np-area-card__link {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--np-gold);
  transition: color 0.2s ease;
}

.np-area-card:hover .np-area-card__link {
  color: var(--np-gold-light);
}

@media (max-width: 1024px) {
  .np-areas-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 768px) {
  .np-areas-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .np-areas-grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================
   EMERGENCY CTA BAND
   ============================================ */
.np-emergency-band {
  background: linear-gradient(135deg, #C72127 0%, #d4282e 100%);
  color: #fff;
  padding: 2.5rem 0;
  border-top: none;
  border-bottom: none;
}

.np-emergency-band__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}

.np-emergency-band__title {
  font-family: var(--font-heading);
  font-size: 1.4rem;
  letter-spacing: 0.02em;
  text-transform: none;
  color: #fff;
  margin-bottom: 0.25rem;
}

.np-emergency-band__text {
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.9);
  margin: 0;
}

@media (max-width: 768px) {
  .np-emergency-band__inner {
    flex-direction: column;
    text-align: center;
  }
}

/* ============================================
   INDUSTRIES GRID (for Industries We Serve page)
   ============================================ */
.np-industries-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin: 2rem 0;
}

.np-industries-grid--full {
  grid-template-columns: repeat(5, 1fr);
  gap: 1rem;
}

.np-industry-card {
  background: rgba(22, 27, 34, 0.6);
  border: 1px solid rgba(201, 168, 76, 0.08);
  padding: 2.5rem 1.5rem;
  text-align: center;
  transition: all 0.4s ease;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  min-height: 120px;
  background-size: cover;
  background-position: center;
  clip-path: polygon(0 0, calc(100% - 15px) 0, 100% 15px, 100% 100%, 15px 100%, 0 calc(100% - 15px));
}

.np-industry-card__overlay {
  position: absolute;
  inset: 0;
  background: rgba(35, 31, 32, 0.7);
  transition: background 0.4s ease;
}

.np-industry-card:hover .np-industry-card__overlay {
  background: rgba(35, 31, 32, 0.5);
}

.np-industry-card:hover {
  border-color: rgba(201, 168, 76, 0.3);
  transform: translateY(-4px);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4);
}

.np-industry-card__title {
  font-family: var(--font-heading);
  font-size: 1rem;
  letter-spacing: 0.02em;
  text-transform: none;
  color: #f0f2f5;
  margin: 0;
  position: relative;
  z-index: 2;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.6);
}

@media (max-width: 1200px) {
  .np-industries-grid--full {
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (max-width: 900px) {
  .np-industries-grid,
  .np-industries-grid--full {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 768px) {
  .np-industries-grid,
  .np-industries-grid--full {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .np-industries-grid,
  .np-industries-grid--full {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
  }

  .np-industry-card {
    min-height: 100px;
    padding: 1.5rem 1rem;
  }

  .np-industry-card__title {
    font-size: 0.85rem;
  }

  .np-industry-card--detailed {
    min-height: 120px;
    padding: 1rem;
  }

  .np-industry-card--detailed .np-industry-card__title {
    font-size: 0.85rem;
  }

  .np-industry-card__desc {
    font-size: 0.8rem;
  }
}

/* Industry Card - Detailed variant (industries page) */
.np-industry-card--detailed {
  min-height: 160px;
  flex-direction: column;
  padding: 1.5rem;
  align-items: flex-start;
  justify-content: flex-end;
}

.np-industry-card__inner {
  position: relative;
  z-index: 2;
}

.np-industry-card--detailed .np-industry-card__title {
  text-align: left;
  font-size: 0.9rem;
  margin-bottom: 0.35rem;
}

.np-industry-card__desc {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.6);
  margin: 0;
  line-height: 1.4;
  position: relative;
  z-index: 2;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.np-industry-card--detailed:hover .np-industry-card__desc {
  opacity: 1;
  transform: translateY(0);
}

.np-industry-card--detailed .np-industry-card__overlay {
  background: linear-gradient(to top, rgba(35, 31, 32, 0.85) 0%, rgba(35, 31, 32, 0.3) 100%);
}

.np-industry-card--detailed:hover .np-industry-card__overlay {
  background: linear-gradient(to top, rgba(35, 31, 32, 0.9) 0%, rgba(35, 31, 32, 0.4) 100%);
}

/* ============================================
   CONTACT PAGE STYLES
   ============================================ */
.np-contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  margin: 2rem 0;
}

.np-contact-info-card {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
  padding: 2rem;
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  transition: all 0.3s ease;
}

.np-contact-info-card:hover {
  border-color: rgba(201, 168, 76, 0.15);
}

.np-contact-info-card a {
  color: var(--np-gray-light);
  text-decoration: none;
}

.np-contact-info-card a:hover {
  color: var(--np-gold);
}

@media (max-width: 768px) {
  .np-contact-grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================
   ENHANCED FOOTER
   ============================================ */
.np-footer__grid {
  grid-template-columns: 1.5fr 1fr 1fr 1fr 1.2fr;
}

/* Footer brand logo reuses .np-header__logo, whose z-index:1003 outranks the
   fixed header (1000) and its dropdowns (1001); scope it down so open nav
   dropdowns never render underneath the footer logo. */
.np-footer .np-header__logo {
  z-index: 1;
}

@media (max-width: 1024px) {
  .np-footer__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .np-footer__grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================
   HERO URGENCY LINE
   ============================================ */
.np-hero__urgency {
  margin: 0 0 18px 0;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #c72127;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.np-hero__urgency::before {
  content: '';
  width: 26px;
  height: 2px;
  background: #c72127;
  display: inline-block;
}

@media (max-width: 640px) {
  .np-hero__actions {
    flex-wrap: wrap;
    width: 100%;
  }
  .np-hero__actions .np-btn {
    flex: 1;
    justify-content: center;
    min-width: 0;
  }
}

/* ============================================
   CLIENTS BAR ENHANCEMENTS
   ============================================ */
.np-clients-bar__item strong {
  display: block;
  font-weight: 600;
  color: var(--np-gray-light);
}

.np-clients-bar__item small {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.76rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--np-gold);
  margin-top: 0.15rem;
}

/* ============================================
   CASE STUDIES
   ============================================ */
.np-case-studies__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.5rem;
}

.np-case-study {
  background: var(--np-navy-light);
  border-left: 3px solid var(--np-gold);
  overflow: hidden;
  clip-path: polygon(0 0, calc(100% - 15px) 0, 100% 15px, 100% 100%, 15px 100%, 0 calc(100% - 15px));
}

.np-case-study__image {
  width: 100%;
  height: 200px;
  overflow: hidden;
  position: relative;
}

.np-case-study__image::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 40%, var(--np-navy-light) 100%);
}

.np-case-study__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.np-case-study__header {
  margin-bottom: 1.5rem;
  padding: 0 2.5rem;
}

.np-case-study__title,
.np-case-study__desc,
.np-case-study__results,
.np-case-study__link {
  padding-left: 2.5rem;
  padding-right: 2.5rem;
}

.np-case-study__link {
  padding-bottom: 2.5rem;
}

.np-case-study__stat {
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5vw, 3.5rem);
  font-weight: 700;
  color: var(--np-gold);
  line-height: 1;
}

.np-case-study__stat-label {
  font-family: var(--font-mono);
  font-size: 0.76rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--np-gray);
  margin-top: 0.35rem;
}

.np-case-study__title {
  font-size: 1.2rem;
  margin-bottom: 0.75rem;
}

.np-case-study__desc {
  font-size: 0.95rem;
  color: var(--np-gray-light);
  line-height: 1.6;
  margin-bottom: 1.25rem;
}

.np-case-study__results {
  list-style: none;
  margin-bottom: 1.5rem;
}

.np-case-study__results li {
  position: relative;
  padding-left: 1.5rem;
  font-size: 0.9rem;
  color: var(--np-gray-light);
  margin-bottom: 0.5rem;
  line-height: 1.5;
}

.np-case-study__results li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.45rem;
  width: 8px;
  height: 8px;
  background: var(--np-teal);
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
}

.np-case-study__link {
  font-family: var(--font-heading);
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--np-teal-light);
  text-decoration: none;
  transition: color 0.2s ease;
}

.np-case-study__link:hover {
  color: var(--np-gold-light);
}

@media (max-width: 768px) {
  .np-case-studies__grid {
    grid-template-columns: 1fr;
  }
  .np-case-study {
    padding: 2rem 1.5rem;
  }
}

/* ============================================
   WHY CHOOSE US (Provable Differentiators)
   ============================================ */
.np-why__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.np-why__card {
  background: var(--np-navy-light);
  border: 1px solid var(--np-slate);
  padding: 2rem;
  text-align: center;
  transition: border-color 0.3s ease, transform 0.3s ease;
  clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 12px 100%, 0 calc(100% - 12px));
}

.np-why__card:hover {
  border-color: var(--np-gold);
  transform: translateY(-4px);
}

.np-why__card-number {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  color: var(--np-gold);
  line-height: 1;
  margin-bottom: 0.75rem;
}

.np-why__card-title {
  font-size: 0.95rem;
  letter-spacing: 0.08em;
  margin-bottom: 0.75rem;
}

.np-why__card-desc {
  font-size: 0.95rem;
  color: var(--np-gray);
  line-height: 1.6;
}

.np-why__card-desc em {
  color: var(--np-gray-light);
  font-style: italic;
}

@media (max-width: 1024px) {
  .np-why__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .np-why__grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================
   INLINE CONTACT FORM
   ============================================ */
.np-inline-form {
  background: var(--np-bg-alt);
  border-top: 2px solid var(--np-red);
  border-bottom: 1px solid rgba(0,0,0,0.06);
}

.np-inline-form__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: start;
}

.np-inline-form__info {
  min-width: 0;
}

.np-inline-form__form-wrap {
  min-width: 0;
}

.np-inline-form__stack {
  margin-top: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.np-inline-form__stack-title {
  font-family: 'Lato', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--np-white);
  margin-bottom: 0.25rem;
}

.np-inline-form__desc {
  font-size: 1.05rem;
  color: var(--np-gray-light);
  line-height: 1.7;
  margin-bottom: 1.5rem;
}

.np-inline-form__promise {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-family: var(--font-mono);
  font-size: 0.8rem;
  color: var(--np-teal-light);
  letter-spacing: 0.03em;
  margin-bottom: 1.5rem;
  padding: 0.75rem 1rem;
  background: rgba(22, 160, 139, 0.08);
  border: 1px solid rgba(22, 160, 139, 0.15);
}

.np-inline-form__trust {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.np-inline-form__trust-item {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.85rem;
  color: var(--np-gray);
}

.np-inline-form__phone {
  font-size: 0.95rem;
  color: var(--np-gray);
}

.np-inline-form__phone a {
  font-family: var(--font-heading);
  font-size: 1.3rem;
  color: var(--np-white);
  text-decoration: none;
  display: block;
  margin-top: 0.25rem;
  white-space: nowrap;
}

.np-inline-form__phone a:hover {
  color: var(--np-gold-light);
}

.np-inline-form__form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.np-inline-form__input,
.np-inline-form__select {
  background: #fff;
  border: 1px solid rgba(0,0,0,0.12);
  color: var(--np-text);
  padding: 1rem 1.25rem;
  font-family: var(--font-body);
  font-size: 0.95rem;
  transition: border-color 0.3s ease;
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
}

.np-inline-form__input:focus,
.np-inline-form__select:focus {
  outline: none;
  border-color: var(--np-gold);
}

.np-inline-form__input:focus-visible,
.np-inline-form__select:focus-visible {
  outline: 2px solid var(--np-teal);
  outline-offset: 1px;
  border-color: var(--np-gold);
}

.np-inline-form__input::placeholder {
  color: var(--np-gray);
}

.np-inline-form__select {
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238b949e' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  padding-right: 2.5rem;
  cursor: pointer;
}

.np-inline-form__select option {
  background: #fff;
  color: var(--np-text);
}

.np-inline-form__textarea {
  resize: vertical;
  min-height: 80px;
}

.np-inline-form__submit {
  width: 100%;
  justify-content: center;
  margin-top: 0.5rem;
}

.np-inline-form__status {
  text-align: center;
  padding: 1rem;
  font-size: 0.9rem;
}

.np-inline-form__status--success {
  color: var(--np-teal-light);
  background: rgba(22, 160, 139, 0.1);
  border: 1px solid rgba(22, 160, 139, 0.2);
}

.np-inline-form__status--error {
  color: var(--np-red-bright);
  background: rgba(199, 33, 39, 0.1);
  border: 1px solid rgba(199, 33, 39, 0.2);
}

@media (max-width: 768px) {
  .np-inline-form__grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
}

/* ============================================
   TESTIMONIAL STARS
   ============================================ */
.np-testimonial__stars {
  display: flex;
  gap: 0.2rem;
  margin-bottom: 1rem;
}

/* ============================================
   FAQ ACCORDION
   ============================================ */
.np-faq__list {
  max-width: 850px;
  margin: 0 auto;
}

.np-faq__item {
  border-bottom: 1px solid var(--np-slate);
}

.np-faq__question {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.5rem;
  width: 100%;
  background: none;
  border: none;
  text-align: left;
  padding: 1.5rem 0;
  font-family: var(--font-body);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--np-white);
  cursor: pointer;
  transition: color 0.2s ease;
  line-height: 1.4;
}

.np-faq__question:hover {
  color: var(--np-gold-light);
}

.np-faq__icon {
  flex-shrink: 0;
  transition: transform 0.3s ease;
}

.np-faq__item--open .np-faq__icon {
  transform: rotate(45deg);
}

.np-faq__answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s var(--ease-out-expo);
}

.np-faq__answer-inner {
  padding-bottom: 1.5rem;
}

.np-faq__answer-inner p {
  font-size: 0.95rem;
  color: var(--np-gray-light);
  line-height: 1.7;
}

/* ============================================
   STICKY MOBILE CTA BAR
   ============================================ */
.np-sticky-cta {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 997;
  display: none;
  background: rgba(35, 31, 32, 0.95);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-top: 1px solid rgba(201, 168, 76, 0.15);
  transform: translateY(100%);
  transition: transform 0.4s var(--ease-out-expo);
}

.np-sticky-cta--visible {
  transform: translateY(0);
}

.np-sticky-cta__phone,
.np-sticky-cta__quote {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  flex: 1;
  padding: 1rem;
  font-family: var(--font-heading);
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  min-height: 56px;
}

.np-sticky-cta__phone {
  background: var(--np-gold);
  color: #fff;
}

.np-sticky-cta__quote {
  background: var(--np-red);
  color: #fff;
}

@media (max-width: 768px) {
  .np-sticky-cta {
    display: flex;
  }

  body {
    padding-bottom: 56px;
  }
}

@media (min-width: 769px) {
  .np-sticky-cta {
    display: none !important;
  }
}

/* ============================================
   MOBILE OPTIMIZATION OVERRIDES
   ============================================ */

/* Hide mega menus / dropdowns below full-nav breakpoint */
@media (max-width: 1024px) {
  .np-mega-menu,
  .np-dropdown-menu {
    display: none !important;
  }
}

/* 768px — Tablet / Medium Mobile */
@media (max-width: 768px) {
  .np-btn {
    padding: 0.75rem 1.5rem;
    font-size: 0.8rem;
    min-height: 48px;
  }
  .np-hero {
    min-height: 90vh;
  }
  .np-hero__bg-image {
    opacity: 0.45;
    background-position: center 40%;
  }
  .np-hero__bg-gradient {
    background:
      linear-gradient(180deg, rgba(35, 31, 32, 0.6) 0%, rgba(35, 31, 32, 0.4) 40%, rgba(35, 31, 32, 0.75) 100%);
  }
  .np-hero__desc {
    font-size: 0.95rem;
  }
  .np-service-card {
    padding: 1.75rem 1.5rem;
  }
  .np-cta {
    padding: 4rem 0;
  }
  .np-cta__actions {
    flex-direction: column;
    width: 100%;
  }
  .np-cta__actions .np-btn {
    justify-content: center;
  }
  .np-testimonial {
    padding: 1.75rem 1.25rem;
  }
  .np-clients-bar__track {
    gap: 2rem;
  }
  .np-page-header {
    padding: 6rem 0 3rem;
  }
  .np-trust-bar__item {
    font-size: 0.8rem;
  }
}

/* 480px — Small Mobile */
@media (max-width: 480px) {
  .np-btn {
    padding: 0.65rem 1.2rem;
    font-size: 0.8rem;
    min-height: 48px;
    white-space: normal;
    text-align: center;
  }
  .np-hero {
    min-height: min(85vh, 620px);
  }
  .np-hero__scroll {
    display: none;
  }
  .np-hero__content {
    padding-top: 11rem;
  }
  .np-hero__actions {
    width: 100%;
  }
  .np-hero__actions .np-btn {
    width: 100%;
    justify-content: center;
  }
  /* Reduce to 2 CTAs on small mobile: hide "Request a Quote" */
  .np-btn--quote {
    display: none;
  }
  /* Phone button: prevent number wrapping */
  .np-btn--phone {
    white-space: nowrap;
  }
  .np-btn--phone .np-btn__desktop-label {
    display: none;
  }
  .np-btn--phone .np-btn__mobile-label {
    display: inline;
  }
  .np-btn--primary {
    clip-path: polygon(0 0, calc(100% - 6px) 0, 100% 6px, 100% 100%, 6px 100%, 0 calc(100% - 6px));
  }
  .np-hero__title {
    font-size: clamp(1.6rem, 5vw, 2.8rem);
  }
  .np-hero__desc {
    font-size: 0.9rem;
  }
  .np-service-card {
    padding: 1.25rem 1rem;
  }
  .np-team__grid {
    grid-template-columns: 1fr;
    max-width: 100%;
    padding: 0 1rem;
  }
  .np-cta {
    padding: 2.5rem 0;
  }
  .np-cta__title {
    font-size: 1.5rem;
  }
  .np-testimonial {
    padding: 1.5rem 1rem;
  }
  .np-area-card {
    padding: 1.5rem 1rem;
  }
  .np-breadcrumbs {
    padding-top: 4.5rem;
  }
  .np-page-header {
    padding: 4rem 0 2rem;
  }
  .np-footer__grid {
    gap: 1rem;
  }
  .np-clients-bar__track {
    gap: 1.5rem;
  }
  .np-trust-bar__item {
    font-size: 0.8rem;
    white-space: normal;
  }
  .np-cta__actions {
    flex-direction: column;
    width: 100%;
    align-items: stretch;
  }
  .np-cta__actions .np-btn {
    justify-content: center;
  }
  .np-service-hero__content .np-btn {
    font-size: 0.75rem;
    padding: 0.65rem 1rem;
  }
}

/* Single post mobile responsive */
@media (max-width: 768px) {
  .np-single-cta {
    padding: 1.5rem;
  }

  .np-single-cta__inner {
    flex-direction: column;
    text-align: center;
  }

  .np-single-cta__text {
    min-width: 0;
  }

  .np-single-cta__actions {
    justify-content: center;
    width: 100%;
  }

  .np-single-nav__inner {
    flex-direction: column;
    gap: 0.75rem;
    align-items: center;
  }

  .np-single-nav__link {
    padding: 0.75rem 0;
    min-height: 44px;
    display: flex;
    align-items: center;
  }
}

/* Contact page social link touch targets */
.np-contact-social-link {
  width: 44px;
  height: 44px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.05);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--np-gray-light);
  transition: all 0.3s;
}

.np-contact-social-link:hover {
  background: rgba(22, 160, 139, 0.15);
  color: var(--np-teal);
}

/* Ensure mobile menu tap targets meet accessibility minimum */
.np-mobile-menu__link,
.np-mobile-menu__toggle {
  min-height: 48px;
  display: flex;
  align-items: center;
}

.np-mobile-menu__panel a {
  min-height: 44px;
  display: flex;
  align-items: center;
}

/* ============================================
   RESOURCES PAGE — PARTNER LOGO WALL
   ============================================ */
.np-partner-wall {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 2.5rem 3.5rem;
  padding: 2rem 0;
}

.np-partner-wall__item {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  opacity: 0.55;
  filter: grayscale(100%);
  transition: opacity 0.3s ease, filter 0.3s ease;
}

.np-partner-wall__item:focus-visible {
  outline: 2px solid var(--np-gold);
  outline-offset: 4px;
  border-radius: 2px;
}

.np-partner-wall__item:hover,
.np-partner-wall__item:focus-visible {
  opacity: 1;
  filter: grayscale(0%);
}

.np-partner-wall__item img,
.np-partner-wall__item svg {
  height: 48px;
  width: auto;
  max-width: 160px;
  object-fit: contain;
  display: block;
}

/* Resources FAQ */
.np-resources-faq {
  max-width: 800px;
  margin: 0 auto;
}

.np-resources-faq__item {
  border-bottom: 1px solid rgba(0,0,0,0.08);
  padding: 1.5rem 0;
}

.np-resources-faq__item:first-child {
  border-top: 1px solid rgba(0,0,0,0.08);
}

.np-resources-faq__q {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
  color: var(--np-heading);
  margin-bottom: 0.5rem;
}

.np-resources-faq__a {
  font-size: 0.95rem;
  color: var(--np-text-light);
  line-height: 1.7;
  margin: 0;
}

@media (max-width: 768px) {
  .np-partner-wall {
    gap: 2rem 2.5rem;
  }
  .np-partner-wall__item {
    height: 36px;
  }
  .np-partner-wall__item img,
  .np-partner-wall__item svg {
    height: 36px;
  }
}

/* ============================================
   CAPABILITIES GRID FIX (Prompt 1)
   ============================================ */
.np-services-icons__grid{display:grid;grid-template-columns:repeat(7,1fr);column-gap:14px;row-gap:24px}
.np-services-icons__item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:20px 12px;min-height:120px;justify-content:center;border:1px solid #e7e7ea;border-radius:12px;text-decoration:none;color:inherit;transition:transform .18s ease,box-shadow .18s ease,background .18s,border-color .18s,color .18s}
.np-services-icons__icon{display:inline-flex;flex:0 0 auto}
.np-services-icons__icon svg{width:30px;height:30px;stroke:#C72127;stroke-width:1.5;fill:none;transition:stroke .18s}
.np-services-icons__label{font:700 13.5px/1.3 "Lato",sans-serif}
.np-services-icons__item:hover{background:#C72127;border-color:#C72127;color:#fff;transform:translateY(-4px);box-shadow:0 12px 26px rgba(199,33,39,.28)}
.np-services-icons__item:hover .np-services-icons__icon svg{stroke:#fff}
.np-services-icons__item--active{background:#C72127;border-color:#C72127;color:#fff}
.np-services-icons__item--active .np-services-icons__icon svg{stroke:#fff}
@media(max-width:1024px){.np-services-icons__grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:640px){.np-services-icons__grid{grid-template-columns:repeat(2,1fr)}}


/* ============================================
   HERO HEADING STYLE FIX (Prompt 3)
   ============================================ */
.np-hero__title{font-size:clamp(2.2rem,4.6vw,3.6rem);line-height:1.18;letter-spacing:-0.01em;word-spacing:2px;margin-bottom:28px;max-width:820px}
.np-hero__urgency{margin:0 0 18px;font-size:14px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:#c72127;display:inline-flex;align-items:center;gap:10px}
.np-hero__urgency::before{content:"";width:26px;height:2px;background:#c72127;display:inline-block}
.np-hero__actions{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:16px}
@media(max-width:640px){.np-hero__actions{flex-wrap:wrap}}

/* ============================================
   LVT VIDEO SECTION
   ============================================ */
.np-video-section{padding:48px 16px}
.np-video-embed{position:relative;width:100%;max-width:900px;margin:0 auto;padding-top:min(506px,56.25%);border-radius:12px;overflow:hidden;box-shadow:0 10px 30px rgba(35,31,32,.15)}
.np-video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ============================================
   CAPABILITIES SECTION SPACING
   ============================================ */
.np-services-icons{padding:40px 0 80px}

/* ============================================
   SERVICE PAGE SCANNABLE CONTENT ENHANCEMENTS
   ============================================ */
.np-service-content__main .entry-content h2{font-size:clamp(1.4rem,2.6vw,1.9rem);margin:2.2rem 0 1rem}
.npx-cards{list-style:none!important;padding:0!important;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.npx-cards li{background:#fff;border:1px solid #e2e4e8;border-radius:14px;padding:20px;box-shadow:0 6px 24px rgba(35,31,32,.07);margin:0!important}
.npx-cards li strong{display:block;color:#231F20;font-size:16px;margin-bottom:5px}
.npx-checks{list-style:none!important;padding:0!important;display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}
@media(max-width:640px){.npx-checks{grid-template-columns:1fr}}
.npx-checks li{background:#fff;border:1px solid #e2e4e8;border-radius:10px;padding:13px 15px 13px 42px;margin:0!important;position:relative}
.npx-checks li::before{content:"!";position:absolute;left:14px;top:12px;width:20px;height:20px;background:rgba(212,160,23,.16);color:#a07c00;border-radius:6px;display:grid;place-items:center;font-weight:900;font-size:12px}
.npx-chips{list-style:none!important;padding:0!important;display:flex;flex-wrap:wrap;gap:10px}
.npx-chips li{background:#fff;border:1px solid #e2e4e8;border-radius:12px;padding:11px 16px;margin:0!important;font-weight:700;color:#231F20;font-size:14px}
.npx-chips li small{display:block;font-weight:400;color:#5f6368;font-size:12px}
.npx-acc{border:1px solid #e2e4e8;border-radius:14px;overflow:hidden;background:#fff;margin:1rem 0}
.npx-acc-item+.npx-acc-item{border-top:1px solid #e2e4e8}
.npx-acc-q{width:100%;text-align:left;background:#fff;border:0;padding:16px 20px;font-weight:900;font-size:15px;color:#231F20;cursor:pointer;display:flex;justify-content:space-between;gap:12px;align-items:center;font-family:inherit}
.npx-acc-q:hover{background:#f5f6f8}
.npx-acc-q .npx-ic{color:#C72127;font-size:22px;transition:.2s;flex:0 0 auto}
.npx-acc-item.open .npx-acc-q .npx-ic{transform:rotate(45deg)}
.npx-acc-a{max-height:0;overflow:hidden;transition:max-height .35s ease;padding:0 20px}
.npx-acc-item.open .npx-acc-a{max-height:600px;padding-bottom:16px}

/* ============================================
   PROMPT 1 — SERVICES LANDING EDITORIAL GRID
   ============================================ */
.np-industries-section{display:block;padding:clamp(2.4rem,4vw,3.4rem) 0;border-top:2px solid #231F20;counter-increment:npa-cat}
.np-industries-section:first-of-type{border-top:0;padding-top:0}
.np-industries-section > div:first-child{text-align:center;max-width:720px;margin:0 auto 1.9rem}
.np-industries-section .np-section-title{font-size:clamp(1.5rem,2.7vw,1.95rem);letter-spacing:-.01em;margin:2px 0 10px}
.np-industries-section .np-section-title::before{content:"0" counter(npa-cat);display:block;color:#C72127;font-weight:900;font-size:14px;margin-bottom:4px}
.np-industries-section .np-section-subtitle{margin:0 auto;color:#5f6368}
.np-industries-section > .np-industries-grid,.np-industries-section > .np-industry-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}
.np-industry-card--detailed{display:flex;flex-direction:column;text-decoration:none;color:inherit;background:#fff;border:1px solid #e2e4e8;border-radius:16px;overflow:hidden;box-shadow:0 4px 16px rgba(35,31,32,.05);transition:transform .2s ease,box-shadow .2s ease;height:100%}
.np-industry-card--detailed:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(35,31,32,.12)}
.np-industry-card__media{display:block;width:100%;aspect-ratio:16/10;overflow:hidden;background:#ddd}
.np-industry-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.np-industry-card--detailed:hover .np-industry-card__media img{transform:scale(1.06)}
.np-industry-card__body{display:flex;flex-direction:column;flex:1;width:100%;padding:16px 18px 18px}
.np-industry-card__title{font-size:16.5px;font-weight:800;color:#231F20;margin-bottom:6px;text-shadow:none}
.np-industry-card--detailed:hover .np-industry-card__title{color:#C72127}
.np-industry-card__desc{color:#5f6368;font-size:13px;line-height:1.5;margin-bottom:10px;opacity:1;transform:none}
.np-industry-card__go{margin-top:auto;color:#C72127;font-weight:700;font-size:13px}
.np-industry-card__overlay{display:none!important}
/* Beat any legacy Customizer "bare card" override (staging Additional CSS)
   with higher specificity so contained cards render after a theme-ZIP deploy. */
.np-industries-section .np-industries-grid .np-industry-card--detailed{
  background:#fff!important;border:1px solid #e2e4e8!important;border-radius:16px!important;
  box-shadow:0 4px 16px rgba(35,31,32,.05)!important;overflow:hidden!important;min-height:0!important;padding:0!important}
.np-industries-section .np-industries-grid .np-industry-card--detailed .np-industry-card__body{padding:16px 18px 18px!important}
@media(max-width:560px){.np-industries-section > .np-industries-grid,.np-industries-section > .np-industry-grid{grid-template-columns:1fr}}

/* ==================================================================
   DISTRICT BANDS (npb-) : Services Grid + Industries Grid templates.
   Standard site banner (np-service-hero) + trust bar up top; below,
   full-bleed alternating group bands; intro panel left, edge-to-edge
   tiles right. Typography inherits the sitewide font stack.
   ================================================================== */
.npb-band{display:grid;grid-template-columns:minmax(250px,23%) 1fr}
.npb-band--dark{background:#191516;color:#f2ede7}
.npb-band--light{background:#f3efe9;color:#231F20}
.npb-band__intro{padding:52px 34px;border-right:1px solid rgba(128,120,112,.25);display:flex;flex-direction:column;gap:14px}
.npb-band__num{font-weight:900;font-size:52px;line-height:1;color:#C72127}
.npb-band--dark .npb-band__num{color:#C9A84C}
.npb-band__intro h2{font-weight:900;font-size:clamp(24px,2.2vw,34px);line-height:1.05;letter-spacing:-.01em;margin:0}
.npb-band--dark .npb-band__intro h2{color:#fff}
.npb-band__intro p{font-size:14.5px;line-height:1.6;opacity:.8;max-width:300px;margin:0}
.npb-band__rule{width:52px;height:4px;background:#C72127}
.npb-band__tiles{padding:44px 4vw 44px 34px;display:flex;flex-wrap:wrap;gap:18px;align-content:flex-start}
.npb-tile{flex:1 1 320px;min-width:260px;text-decoration:none;color:inherit;display:flex;flex-direction:column;
  border:2px solid rgba(128,120,112,.3);transition:border-color .18s ease}
.npb-band--dark .npb-tile{background:#211c1d}
.npb-band--light .npb-tile{background:#fff}
.npb-tile:hover{border-color:#C72127}
.npb-tile__media{display:block;height:200px;overflow:hidden;position:relative;background:#333}
.npb-tile__media img{width:100%;height:100%;object-fit:cover;filter:grayscale(.55) contrast(1.02);transition:filter .3s ease,transform .4s ease}
.npb-tile:hover .npb-tile__media img{filter:none;transform:scale(1.04)}
.npb-tile__media::after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#C9A84C}
.npb-tile__cap{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1}
.npb-tile__cap strong{font-weight:800;font-size:16.5px;margin-bottom:5px}
.npb-tile__cap small{font-size:13.5px;line-height:1.5;opacity:.75;margin-bottom:12px}
.npb-tile__cap em{margin-top:auto;font-style:normal;font-weight:700;font-size:13px;color:#C72127}
@media(max-width:900px){
  .npb-band{grid-template-columns:1fr}
  .npb-band__intro{border-right:0;border-bottom:1px solid rgba(128,120,112,.25);padding:36px 5vw 26px}
  .npb-band__tiles{padding:28px 5vw 36px}
}

/* ==================================================================
   RESOURCES PAGE (npr-), Editorial Hub design approved 2026-07-06.
   Photo tile directory, dark numbered areas band, credential seals,
   partner logo strip, split FAQ. Typography inherits site fonts.
   ================================================================== */
.npr-anchors{display:flex;gap:8px;flex-wrap:wrap;margin-top:1.6rem}
.npr-anchors a{text-decoration:none;color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:999px;
  padding:8px 16px;font-size:12.5px;font-weight:700;letter-spacing:.04em;transition:background .15s ease,border-color .15s ease}
.npr-anchors a:hover{background:#C72127;border-color:#C72127}
.npr-sec{padding:clamp(2.6rem,4.5vw,3.6rem) 4vw}
.npr-what{background:#fff}
.npr-sec__head{max-width:680px;margin:0 auto 2rem;text-align:center}
.npr-ov{color:#C72127;font-size:12px;font-weight:800;letter-spacing:.24em;text-transform:uppercase}
.npr-sec__head h2{font-size:clamp(26px,2.8vw,38px);font-weight:900;letter-spacing:-.01em;margin:8px 0 0;color:#231F20}
.npr-tiles{display:flex;flex-wrap:wrap;gap:16px;max-width:1880px;margin:0 auto}
.npr-tile{flex:1 1 300px;min-width:250px;position:relative;border-radius:14px;overflow:hidden;min-height:210px;
  display:flex;align-items:flex-end;text-decoration:none;color:#fff}
.npr-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.npr-tile:hover img{transform:scale(1.05)}
.npr-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(8deg,rgba(12,9,10,.9) 15%,rgba(12,9,10,.1) 65%)}
.npr-tile > span{position:relative;z-index:1;padding:16px 18px}
.npr-tile strong{display:block;font-size:17px;font-weight:800}
.npr-tile small{display:block;color:#d8d1c9;font-size:12.5px;margin-top:3px}
.npr-tile > em{font-style:normal;position:absolute;top:14px;right:16px;z-index:1;color:#C9A84C;font-weight:800;font-size:13px}
.npr-areas{background:#231F20;color:#efe9e2}
.npr-areas .npr-ov{color:#C9A84C}
.npr-areas .npr-sec__head h2{color:#fff}
.npr-areas__grid{display:grid;grid-template-columns:repeat(5,1fr);max-width:1880px;margin:0 auto}
.npr-area{padding:8px 22px 4px;border-left:1px solid #3c3637;text-decoration:none;transition:background .15s ease}
.npr-area:first-child{border-left:0}
.npr-area:hover{background:#2a2526}
.npr-area i{font-style:normal;display:block;color:#C9A84C;font-weight:900;font-size:34px}
.npr-area strong{display:block;color:#fff;font-size:16.5px;font-weight:800;margin-top:8px}
.npr-area small{display:block;color:#a59d95;font-size:12.5px;margin-top:4px;line-height:1.45}
.npr-area em{font-style:normal;display:inline-block;color:#C72127;font-weight:800;font-size:12.5px;margin-top:10px}
.npr-seals{background:#f6f4f0}
.npr-seals__grid{display:flex;flex-wrap:wrap;gap:16px;max-width:1600px;margin:0 auto}
.npr-seal{flex:1 1 230px;background:#fff;border:1px solid #e2dcd2;border-radius:14px;padding:26px 22px;text-align:center}
.npr-seal i{font-style:normal;display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;
  border-radius:50%;border:2px solid #C9A84C;color:#C72127;font-weight:900;font-size:19px;margin-bottom:12px}
.npr-seal strong{display:block;font-size:15.5px;font-weight:800;color:#231F20}
.npr-seal small{display:block;color:#6b6662;font-size:12.5px;margin-top:5px;line-height:1.5}
.npr-logos{border-top:1px solid #eee;border-bottom:1px solid #eee;padding:2.2rem 4vw;display:flex;align-items:center;
  gap:34px;justify-content:center;flex-wrap:wrap;background:#fff}
.npr-logos .npr-ov{width:100%;text-align:center}
.npr-logos img{height:34px;width:auto;max-width:150px;object-fit:contain;filter:grayscale(1);opacity:.6;transition:filter .2s ease,opacity .2s ease}
.npr-logos a:hover img,.npr-logos span:hover img{filter:none;opacity:1}
.npr-faq{display:grid;grid-template-columns:1fr 1.4fr;gap:44px;max-width:1500px;margin:0 auto;padding:clamp(2.6rem,4.5vw,3.6rem) 4vw;background:#fff}
.npr-faq__intro h2{font-size:clamp(28px,3vw,44px);font-weight:900;letter-spacing:-.01em;margin:8px 0 0;color:#231F20}
.npr-faq__intro p{color:#54504e;font-size:15px;line-height:1.65;margin:14px 0 22px;max-width:380px}
.npr-faq__list{counter-reset:nprq}
.npr-faq__item{border-top:1px solid #e5e0d8;padding:20px 0;counter-increment:nprq}
.npr-faq__item:last-child{border-bottom:1px solid #e5e0d8}
.npr-faq__q{display:flex;gap:16px;font-size:17px;font-weight:800;color:#231F20}
.npr-faq__q::before{content:"0" counter(nprq);color:#C72127;font-weight:900}
.npr-faq__a{color:#54504e;font-size:14.5px;line-height:1.65;margin-top:8px;padding-left:40px}
.npr-faq__a a{color:#C72127;font-weight:700}
@media(max-width:900px){
  .npr-areas__grid{grid-template-columns:1fr;gap:18px}
  .npr-area{border-left:0;padding:0}
  .npr-faq{grid-template-columns:1fr}
}

/* ==================================================================
   SITEWIDE TEMPLATED CTA BANNER (npc-), approved 2026-07-06.
   Dark photo band with centered copy + brand-red response strip.
   Rendered by nolapro_cta_banner() in functions.php on every template.
   ================================================================== */
.npc-cta{position:relative;overflow:hidden;text-align:center;padding:clamp(3.4rem,6vw,5rem) 0}
.npc-cta__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:contrast(1.03)}
.npc-cta__wash{position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,19,20,.85) 0%,rgba(23,19,20,.62) 50%,rgba(23,19,20,.85) 100%)}
.npc-cta__content{position:relative;z-index:1}
.npc-cta__overline{color:#C9A84C;font-size:12px;font-weight:800;letter-spacing:.24em;text-transform:uppercase}
.npc-cta__title{color:#fff;font-size:clamp(1.75rem,3.2vw,2.85rem);font-weight:900;line-height:1.08;letter-spacing:-.01em;margin:12px auto 0;max-width:760px}
.npc-cta__rule{display:block;width:56px;height:4px;background:#C72127;margin:18px auto 0}
.npc-cta__desc{color:rgba(255,255,255,.88);font-size:15.5px;line-height:1.6;max-width:560px;margin:14px auto 0}
.npc-cta__actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:26px}
.npc-cta__strip{background:#C72127;color:#fff;display:flex;justify-content:center;flex-wrap:wrap}
.npc-cta__strip span{display:flex;align-items:center;gap:10px;padding:15px 26px;font-size:13px;font-weight:700;letter-spacing:.05em}
.npc-cta__strip span + span::before{content:"";width:7px;height:7px;background:#C9A84C;transform:rotate(45deg);margin-right:16px}
@media(max-width:700px){
  .npc-cta__strip{flex-direction:column;align-items:center}
  .npc-cta__strip span{padding:9px 26px}
  .npc-cta__strip span:first-child{padding-top:14px}
  .npc-cta__strip span:last-child{padding-bottom:14px}
  .npc-cta__strip span + span::before{display:none}
}

/* ============================================
   PROMPT 2 — INNER SERVICE PAGE
   ============================================ */
.np-service-content__grid{gap:52px}
.np-service-content__main .entry-content{max-width:760px;margin-inline:auto}
.np-service-content__main .entry-content > h2{font-size:clamp(1.5rem,2.6vw,2rem);letter-spacing:-.01em;margin:2.4rem 0 1rem}
.np-service-content__main .entry-content > p{font-size:16px;line-height:1.8;color:#33302f;margin:0 0 1.15rem}
.np-service-content__main .entry-content > h2:first-of-type,
.np-service-content__main .entry-content > p:first-of-type{margin-top:0}
.npa-photoband{margin:2rem auto 2.4rem;border-radius:16px;overflow:hidden;position:relative;box-shadow:0 14px 40px rgba(35,31,32,.12)}
.npa-photoband img{width:100%;display:block;aspect-ratio:21/9;object-fit:cover}
.npa-photoband figcaption{position:absolute;left:0;bottom:0;background:#C72127;color:#fff;font-size:12px;letter-spacing:.04em;padding:7px 14px;border-radius:0 12px 0 0}
.np-service-content__sidebar{position:sticky;top:20px;align-self:start;display:grid;gap:16px}
.np-service-content__sidebar > *{border-radius:14px}
.np-service-content__sidebar time,.np-service-content__sidebar .posted-on,.np-service-content__sidebar .entry-meta,.np-service-content__sidebar .np-post-meta{display:none!important}
.npa-railcard{background:#fff;border:1px solid #e2e4e8;border-radius:14px;padding:20px;box-shadow:0 6px 24px rgba(35,31,32,.06)}
.npa-railcard h4{font-size:15px;margin:0 0 12px;color:#231F20}
.npa-railcard li{list-style:none;font-size:13.5px;color:#403c3b;padding:7px 0 7px 26px;position:relative}
.npa-railcard ul{margin:0;padding:0}
.npa-railcard li::before{content:"\2713";position:absolute;left:0;color:#C72127;font-weight:900}
@media(max-width:900px){.np-service-content__grid{gap:32px}.np-service-content__sidebar{position:static}}

/* ============================================
   PROMPT 3 — ABOUT / OUR STORY
   ============================================ */
.np-page-content .np-container{max-width:1120px}
.np-page-content .entry-content{display:grid;grid-template-columns:1.5fr 1fr;gap:52px;align-items:start}
.np-page-content .entry-content > *{grid-column:1}
.np-page-content .entry-content p{line-height:1.8;color:#3a3736;margin:0 0 18px}
.np-page-content .entry-content h2,.np-page-content .entry-content h3{font-size:24px;margin:26px 0 12px;letter-spacing:-.01em}
.npa-aside{grid-column:2;grid-row:1 / span 6;position:sticky;top:20px;display:grid;gap:22px}
.npa-quote{background:#f7f7f7;border-left:4px solid #C72127;border-radius:0 14px 14px 0;padding:26px;font-weight:700;font-size:20px;line-height:1.4;color:#231F20}
.npa-quote cite{display:block;margin-top:12px;font-weight:600;font-size:13px;color:#5f6368;font-style:normal}
.npa-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#e2e4e8;border:1px solid #e2e4e8;border-radius:14px;overflow:hidden}
.npa-stat{background:#fff;padding:22px 12px;text-align:center}
.npa-stat b{display:block;font-weight:900;font-size:30px;color:#C72127}
.npa-stat span{font-size:12.5px;color:#5f6368}
.np-team__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.np-team__card{text-align:center}
.np-team__photo-wrap,.np-team__photo{border-radius:16px;overflow:hidden;aspect-ratio:4/5;width:100%;height:auto}
.np-team__photo-wrap img,.np-team__photo img{width:100%;height:100%;object-fit:cover;object-position:center top}
@media(max-width:900px){.np-page-content .entry-content{grid-template-columns:1fr}.npa-aside{grid-column:1;grid-row:auto;position:static}.np-team__grid{grid-template-columns:repeat(2,1fr)}}
.npx-acc-a p{margin:0;color:#5f6368;font-size:14.5px}

/* ==================================================================
   DIRECTION A - EDITORIAL FULL-WIDTH CONTENT SYSTEM (2026-07-03)
   Fixes dead-space grid on page.php pages (Why-Choose, Equipment,
   Careers) and de-blogifies service/location pages (sidebar removed
   in templates). Full-bleed reading grid: text stays a readable
   measure, bold-led lists + media break out to full width.
   Page-content rules are scoped under :not(:has(.npa-aside)) so the
   /about-us/ aside layout is untouched.
   ================================================================== */
.np-page-content .np-container{max-width:1200px}
.np-service-content__grid{display:block}

/* full-bleed reading grid */
.np-page-content .entry-content:not(:has(> .npa-aside)),
.np-service-content__main .entry-content{
  max-width:1180px;margin:0 auto;display:grid;
  grid-template-columns:minmax(0,1fr) min(770px,100%) minmax(0,1fr);
  gap:0;
}
.np-page-content .entry-content:not(:has(> .npa-aside)) > *,
.np-service-content__main .entry-content > *{grid-column:2;min-width:0}

/* breakout: bold-led card lists + media span full width */
.np-page-content .entry-content:not(:has(> .npa-aside)) > ul:has(> li > strong),
.np-page-content .entry-content:not(:has(> .npa-aside)) > figure,
.np-page-content .entry-content:not(:has(> .npa-aside)) > .wp-block-image,
.np-page-content .entry-content:not(:has(> .npa-aside)) > .npa-photoband,
.np-service-content__main .entry-content > ul:has(> li > strong),
.np-service-content__main .entry-content > figure,
.np-service-content__main .entry-content > .wp-block-image,
.np-service-content__main .entry-content > .npa-photoband{grid-column:1 / -1}

/* editorial headings */
.np-page-content .entry-content:not(:has(> .npa-aside)) h2,
.np-service-content__main .entry-content > h2{
  font-family:'Lato','Helvetica Neue',Helvetica,Arial,sans-serif;
  font-size:clamp(1.5rem,2.7vw,1.95rem);font-weight:900;color:#231F20;letter-spacing:-.01em;
  line-height:1.15;margin:2rem 0 .9rem;padding-top:1.3rem;border-top:2px solid #231F20}
.np-page-content .entry-content:not(:has(> .npa-aside)) > h2:first-child,
.np-service-content__main .entry-content > h2:first-of-type{border-top:0;padding-top:0;margin-top:0}
.np-page-content .entry-content:not(:has(> .npa-aside)) h3,
.np-service-content__main .entry-content > h3{font-size:1.22rem;font-weight:800;color:#231F20;margin:1.5rem 0 .4rem}
.np-page-content .entry-content:not(:has(> .npa-aside)) p,
.np-service-content__main .entry-content > p{font-size:16.5px;line-height:1.8;color:#3a3736;margin:0 0 1.15rem}
.np-page-content .entry-content:not(:has(> .npa-aside)) a,
.np-service-content__main .entry-content a{color:#C72127;text-decoration:underline;text-underline-offset:2px}

/* bold-led lists become a responsive card grid */
.np-page-content .entry-content:not(:has(> .npa-aside)) ul:has(> li > strong),
.np-service-content__main .entry-content ul:has(> li > strong){
  list-style:none;margin:1.7rem 0 2.2rem;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.np-page-content .entry-content:not(:has(> .npa-aside)) ul:has(> li > strong) > li,
.np-service-content__main .entry-content ul:has(> li > strong) > li{
  background:#fff;border:1px solid #e2e4e8;border-left:4px solid #C72127;border-radius:14px;
  padding:22px 24px;margin:0;font-size:14.6px;line-height:1.6;color:#4a4645;transition:transform .2s ease,box-shadow .2s ease}
.np-page-content .entry-content:not(:has(> .npa-aside)) ul:has(> li > strong) > li:hover,
.np-service-content__main .entry-content ul:has(> li > strong) > li:hover{
  box-shadow:0 14px 36px rgba(35,31,32,.1);transform:translateY(-3px)}
.np-page-content .entry-content:not(:has(> .npa-aside)) ul:has(> li > strong) > li > strong:first-child,
.np-service-content__main .entry-content ul:has(> li > strong) > li > strong:first-child{
  display:block;color:#231F20;font-size:16px;font-weight:800;letter-spacing:-.01em;margin-bottom:.45rem}
.np-page-content .entry-content:not(:has(> .npa-aside)) ul:has(> li > strong) > li > strong:first-child a,
.np-service-content__main .entry-content ul:has(> li > strong) > li > strong:first-child a{
  color:#231F20;text-decoration:none}

/* also card lists whose bold lead-in is wrapped in a link
   (e.g. "Our Services Across Louisiana") so they become a compact grid */
.np-page-content .entry-content:not(:has(> .npa-aside)) ul:has(> li > a > strong),
.np-service-content__main .entry-content ul:has(> li > a > strong){
  list-style:none;margin:1.7rem 0 2.2rem;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px}
.np-page-content .entry-content:not(:has(> .npa-aside)) ul:has(> li > a > strong) > li,
.np-service-content__main .entry-content ul:has(> li > a > strong) > li{
  background:#fff;border:1px solid #e2e4e8;border-left:4px solid #C72127;border-radius:14px;
  padding:18px 20px;margin:0;font-size:14px;line-height:1.55;color:#4a4645;transition:transform .2s ease,box-shadow .2s ease}
.np-page-content .entry-content:not(:has(> .npa-aside)) ul:has(> li > a > strong) > li::before,
.np-service-content__main .entry-content ul:has(> li > a > strong) > li::before{content:none}
.np-page-content .entry-content:not(:has(> .npa-aside)) ul:has(> li > a > strong) > li:hover,
.np-service-content__main .entry-content ul:has(> li > a > strong) > li:hover{
  box-shadow:0 14px 36px rgba(35,31,32,.1);transform:translateY(-3px)}
.np-page-content .entry-content:not(:has(> .npa-aside)) ul:has(> li > a > strong) > li > a:first-child,
.np-service-content__main .entry-content ul:has(> li > a > strong) > li > a:first-child{
  display:block;color:#231F20;font-size:15.5px;font-weight:800;letter-spacing:-.01em;margin-bottom:.35rem;text-decoration:none}

/* plain (non-bold) lists stay simple, readable */
.np-page-content .entry-content:not(:has(> .npa-aside)) ul:not(:has(> li > strong)):not(:has(> li > a > strong)),
.np-service-content__main .entry-content ul:not(:has(> li > strong)):not(:has(> li > a > strong)){padding-left:1.2rem;margin:0 0 1.3rem}
.np-page-content .entry-content:not(:has(> .npa-aside)) ul:not(:has(> li > strong)):not(:has(> li > a > strong)) li,
.np-service-content__main .entry-content ul:not(:has(> li > strong)):not(:has(> li > a > strong)) li{margin:0 0 .5rem;line-height:1.7}

/* content media */
.np-page-content .entry-content:not(:has(> .npa-aside)) img,
.np-service-content__main .entry-content img{border-radius:16px;max-width:100%;height:auto}

@media(max-width:900px){
  .np-page-content .entry-content:not(:has(> .npa-aside)),
  .np-service-content__main .entry-content{grid-template-columns:1fr;max-width:660px}
  .np-page-content .entry-content:not(:has(> .npa-aside)) > *,
  .np-service-content__main .entry-content > *{grid-column:auto}
}

/* ==================================================================
   DIRECTION A - MODULES (image bands, related photo cards, area
   chips, FAQ accordion). Bands + FAQ are built by assets/js/
   direction-a.js from real page content; related cards + chips are
   server-rendered in the service/location templates. Photos come
   from the theme's own /assets/images library.
   ================================================================== */

/* image bands break out to full width inside the reading grid */
.np-page-content .entry-content:not(:has(> .npa-aside)) > .npa-band,
.np-service-content__main .entry-content > .npa-band{grid-column:1 / -1}

.entry-content .npa-band{
  margin:1.7rem 0;display:grid;grid-template-columns:1fr 1fr;gap:0;overflow:hidden;
  border:1px solid #ececec;border-radius:18px;background:#fff;box-shadow:0 12px 36px rgba(35,31,32,.08)}
/* one consistent photo treatment for every content image; bias toward the
   top so faces are not cropped out (fixes the "cut" officer photo) */
.entry-content .npa-band__media{min-height:300px;background-size:cover;background-position:center 18%}
.entry-content .npa-band__body{padding:30px 38px;align-self:center}
.entry-content .npa-band--rev .npa-band__media{order:2}
.entry-content .npa-band__body > h2,
.entry-content .npa-band__body > h3{border-top:0!important;padding-top:0!important;margin-top:0!important}
.entry-content .npa-band__body > *:last-child{margin-bottom:0}
.entry-content .npa-band__kicker{display:inline-block;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#C72127;font-weight:800;margin-bottom:10px}

/* FAQ accordion (details/summary, built by JS) */
.entry-content .npa-faqwrap{margin:1.4rem 0 0}
.entry-content .npa-faq-item{border:1px solid #e2e4e8;border-radius:12px;margin-bottom:12px;background:#fff;overflow:hidden;transition:box-shadow .2s ease}
.entry-content .npa-faq-item[open]{box-shadow:0 10px 30px rgba(35,31,32,.08)}
.entry-content .npa-faq-item summary{list-style:none;cursor:pointer;padding:18px 22px;font-weight:800;color:#231F20;font-size:16px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.entry-content .npa-faq-item summary::-webkit-details-marker{display:none}
.entry-content .npa-faq-item summary::after{content:"+";color:#C72127;font-weight:900;font-size:22px;line-height:1;flex:0 0 auto}
.entry-content .npa-faq-item[open] summary::after{content:"\2013"}
.entry-content .npa-faq-item .npa-faq-a{padding:0 22px 18px;color:#5f6368;line-height:1.75;font-size:15px}
.entry-content .npa-faq-item .npa-faq-a p{margin:0}

/* related-services photo cards (server-rendered section) */
.npa-related{padding:clamp(2.4rem,4vw,3.4rem) 0;background:#faf9f8}
.npa-related__head{text-align:center;max-width:680px;margin:0 auto 1.9rem}
.npa-related__head .np-overline{justify-content:center}
.npa-related__head h2{font-size:clamp(1.6rem,3vw,2.1rem);font-weight:900;color:#231F20;letter-spacing:-.01em;margin:.4rem 0 0}
.npa-related__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.npa-rcard{position:relative;border-radius:16px;overflow:hidden;min-height:230px;display:flex;align-items:flex-end;text-decoration:none;color:#fff}
.npa-rcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.npa-rcard:hover img{transform:scale(1.06)}
.npa-rcard::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,17,15,.9) 8%,rgba(20,17,15,.15) 70%)}
.npa-rcard span{position:relative;z-index:1;padding:20px 22px;font-family:'Lato','Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:800;font-size:17px;line-height:1.25}
.npa-rcard .npa-rcard__go{position:absolute;top:16px;right:18px;z-index:1;color:#fff;opacity:.85;font-size:14px;font-weight:700}

/* service-area chips band */
.npa-areas{background:#231F20;color:#fff;padding:clamp(2.2rem,4vw,3rem) 0;text-align:center}
.npa-areas .np-overline{justify-content:center;color:#C9A84C}
.npa-areas h2{color:#fff;font-size:clamp(1.4rem,2.6vw,1.85rem);font-weight:900;margin:.4rem 0 1.4rem}
.npa-areas__chips{display:flex;flex-wrap:wrap;gap:11px;justify-content:center;max-width:900px;margin:0 auto}
.npa-chip{border:1px solid rgba(255,255,255,.28);color:#fff;padding:10px 20px;border-radius:24px;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s ease,color .15s ease,border-color .15s ease}
.npa-chip:hover{background:#C9A84C;border-color:#C9A84C;color:#231F20}

@media(max-width:820px){
  .entry-content .npa-band{grid-template-columns:1fr}
  .entry-content .npa-band--rev .npa-band__media{order:0}
  .entry-content .npa-band__media{min-height:220px}
  .entry-content .npa-band__body{padding:28px 26px}
  .npa-related__grid{grid-template-columns:1fr}
}

/* ---- Tighter vertical rhythm to reduce page length / long scroll ---- */
.np-service-content.np-section{padding-top:clamp(2.2rem,4vw,3.2rem);padding-bottom:clamp(2rem,3.5vw,2.8rem)}
.np-page-content{padding:clamp(2.2rem,4vw,3.2rem) 0 clamp(2.4rem,4.5vw,3.4rem)}
.np-services-icons.np-section,.np-services-icons{padding-top:clamp(2.2rem,4vw,3rem);padding-bottom:clamp(2.2rem,4vw,3rem)}
.np-service-testimonials.np-section{padding-top:clamp(2.2rem,4vw,3rem);padding-bottom:clamp(2.2rem,4vw,3rem)}
.np-page-content .entry-content:not(:has(> .npa-aside)) p,
.np-service-content__main .entry-content > p{margin:0 0 .95rem}
/* any full-width photoband not absorbed into a band: consistent + non-cropping */
.entry-content .npa-photoband{margin:1.7rem 0;border-radius:18px}
.entry-content .npa-photoband img{aspect-ratio:16/9;object-fit:cover;object-position:center 25%}

/* read-more collapse for very long content (keeps pages scannable) */
.entry-content.npa-collapsed{max-height:1500px;overflow:hidden;
  -webkit-mask-image:linear-gradient(#000 80%,transparent);mask-image:linear-gradient(#000 80%,transparent)}
.npa-readmore{display:block;margin:1.6rem auto 2.4rem;background:#C72127;color:#fff;border:0;border-radius:8px;
  padding:12px 30px;font-weight:800;font-size:15px;cursor:pointer;letter-spacing:.02em;
  font-family:'Lato','Helvetica Neue',Helvetica,Arial,sans-serif}
.npa-readmore:hover{background:#d4282e}
.npa-readmore::after{content:" \2193"}

/* about-page story photos, dropped into the story column beside the aside */
.np-page-content .entry-content .npa-story-img{margin:1.7rem 0;border-radius:16px;overflow:hidden;box-shadow:0 12px 34px rgba(35,31,32,.1)}
.np-page-content .entry-content .npa-story-img img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;object-position:center 30%;border-radius:16px}
/* equipment category banner photos (full-width, capped height) */
.np-page-content .entry-content .npa-cat-img{margin:1.2rem 0 1.6rem;box-shadow:none}
.np-page-content .entry-content .npa-cat-img img{aspect-ratio:auto;width:100%;height:280px;object-fit:cover;object-position:center 40%;border-radius:16px}

/* Contact page polish (form card, styled inputs, framed map) */
.np-inline-form__grid{display:grid;grid-template-columns:1fr 1.05fr;gap:44px;align-items:start;max-width:1140px;margin:0 auto}
.np-inline-form__info .np-section-title{font-size:clamp(1.6rem,3vw,2.1rem);font-weight:900;color:#231F20;letter-spacing:-.01em;margin:.4rem 0 1rem}
.np-inline-form__form-wrap{background:#fff;border:1px solid #e2e4e8;border-radius:18px;padding:clamp(24px,3vw,34px);box-shadow:0 16px 44px rgba(35,31,32,.09)}
.np-inline-form__input,.np-inline-form__select,.np-inline-form__textarea{width:100%;border:1px solid #dfe2e7;border-radius:10px;padding:13px 15px;font-size:15px;font-family:inherit;margin-bottom:12px;background:#fff;color:#231F20;transition:border-color .15s ease,box-shadow .15s ease}
.np-inline-form__input:focus,.np-inline-form__select:focus,.np-inline-form__textarea:focus{outline:0;border-color:#C72127;box-shadow:0 0 0 3px rgba(199,33,39,.12)}
.np-inline-form__textarea{resize:vertical;min-height:110px}
.np-inline-form__submit{width:100%;justify-content:center;margin-top:4px}
.npc-map{border-radius:16px;overflow:hidden;border:1px solid #e2e4e8;box-shadow:0 12px 34px rgba(35,31,32,.08);max-width:1140px;margin:0 auto}
.np-contact-social-link{width:40px;height:40px;border-radius:10px;background:#f2f3f5;display:inline-flex;align-items:center;justify-content:center;color:#231F20;transition:background .15s ease,color .15s ease}
.np-contact-social-link:hover{background:#C72127;color:#fff}
@media(max-width:820px){
  .np-inline-form__grid{grid-template-columns:1fr;gap:28px}
  /* Once the grid stacks, source order puts the whole contact-info block -
     phone, address, hours, socials - above the form, pushing it roughly two
     phone screens down the page. The form is what the page is for, so it goes
     first and the contact details follow it. Client request 2026-08-17. */
  .np-inline-form__form-wrap{order:-1}
}

/* Contact page: the form has to be reachable without hunting for it, so the
   space above it is kept to what the fixed header actually needs rather than
   the full site-wide section rhythm. Scoped to this template - the same hero
   and section classes carry the normal spacing everywhere else. */
/* padding-top is deliberately NOT reduced here. The 12.5rem is header
   clearance, not decoration - at 11rem the "Get In Touch" overline renders
   underneath the fixed nav. Everything else in the stack is fair game. */
body.page-template-template-contact .np-service-hero{padding-bottom:2rem}
body.page-template-template-contact .np-trust-bar{padding:1.1rem 0}
body.page-template-template-contact #np-contact-grid{padding-top:clamp(2rem,3.5vw,2.6rem)}
@media(max-width:768px){
  body.page-template-template-contact .np-service-hero{padding-bottom:1.5rem}
}

/* Landing on /contact-us/#np-quote-form is a fresh page load, so the browser
   jumps natively and the fixed header would otherwise cover the top of the
   form. The theme's smooth-scroll handler already offsets same-page clicks;
   this only covers the on-load jump. Sized to clear the header plus the form's
   own heading, so visitors land on "Request Your Service Inquiry", not on a
   bare input. */
#np-quote-form{scroll-margin-top:190px}
@media(max-width:768px){#np-quote-form{scroll-margin-top:150px}}

/* About brand-statement band (replaces the old pull-quote aside) */
.npa-statement{background:#231F20;color:#fff;padding:clamp(2.6rem,5vw,4rem) 0}
.npa-statement .np-container{max-width:1000px;text-align:center}
.npa-statement__quote{font-family:'Lato','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:clamp(1.3rem,2.6vw,1.9rem);font-weight:700;line-height:1.4;margin:0 auto 2rem;max-width:820px;position:relative}
.npa-statement__quote cite{display:block;margin-top:1rem;font-style:normal;font-weight:600;font-size:.9rem;color:#C9A84C;letter-spacing:.02em}
.npa-statement__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14);border-radius:14px;overflow:hidden;max-width:640px;margin:0 auto}
.npa-statement__stats .npa-stat{background:#231F20;padding:22px 12px;text-align:center}
.npa-statement__stats .npa-stat b{display:block;font-weight:900;font-size:30px;color:#fff}
.npa-statement__stats .npa-stat span{font-size:12.5px;color:#c9c6c3}
@media(max-width:560px){.npa-statement__stats{grid-template-columns:1fr}}

/* ============================================
   FIXED-HEADER CLEARANCE (breadcrumb bar removed 2026-07-04)
   The old .np-breadcrumbs bar carried padding-top:11rem which was what
   cleared the fixed two-tier header on every inner page. Heroes and
   breadcrumb-less first sections now carry that clearance directly.
   ============================================ */
.np-service-hero{padding-top:12.5rem}
body.single #main-content > section:first-child,
body.page-template-template-service-areas #main-content > section:first-child{padding-top:12.5rem}
@media (max-width:768px){
  .np-service-hero{padding-top:10rem}
  body.single #main-content > section:first-child,
  body.page-template-template-service-areas #main-content > section:first-child{padding-top:10rem}
}

/* ============================================
   HOMEPAGE DIRECTION A (Editorial Authority), approved 2026-07-04
   Scoped to .nph- classes; uses existing np-btn / np-reveal / np-inline-form.
   ============================================ */
.nph{background:#fff;color:#231F20}
.nph .np-btn--primary{border-radius:4px}
/* Hero: full-bleed photo */
.nph-hero{position:relative;min-height:86vh;display:flex;align-items:center;border-bottom:2px solid #231F20;background-size:cover;background-position:center}
.nph-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(92deg,rgba(20,17,18,.86) 0%,rgba(20,17,18,.62) 46%,rgba(20,17,18,.18) 100%)}
.nph-hero__in{position:relative;z-index:2;color:#fff;max-width:720px;padding:12.5rem 0 90px}
.nph-folio{display:flex;gap:14px;align-items:center;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#d8d4ce;font-weight:700;margin-bottom:26px}
.nph-folio::before{content:"";width:34px;height:2px;background:#C72127}
.nph-title{font-size:clamp(2.5rem,4.6vw,4rem);line-height:1.06;letter-spacing:-.015em;font-weight:900;color:#fff;margin:0}
.nph-title em{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-weight:600;color:#C9A84C;letter-spacing:0}
.nph-keywords{margin:22px 0 8px;font-size:15px;color:#cfcac5;letter-spacing:.02em}
.nph-keywords b{color:#fff}
.nph-desc{font-size:17.5px;line-height:1.65;color:#e6e2dc;max-width:520px;margin:14px 0 30px}
.nph-cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:30px}
.nph-btn-ghost{background:transparent;color:#fff;border:2px solid #fff;border-radius:4px}
.nph-btn-ghost:hover{background:#fff;color:#231F20}
.nph-chips{display:flex;gap:22px;flex-wrap:wrap;font-size:13px;font-weight:700;color:#d8d4ce}
.nph-chips span{display:flex;align-items:center;gap:7px}
.nph-chips svg{flex:0 0 auto}
.nph-badge{position:absolute;z-index:3;right:48px;bottom:48px;background:rgba(20,17,18,.78);backdrop-filter:blur(4px);color:#fff;padding:18px 22px;border-top:4px solid #C9A84C}
.nph-badge b{font-size:32px;font-weight:900;display:block;line-height:1}
.nph-badge span{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:#C9A84C;font-weight:700}
/* Editorial section chrome */
.nph-sect{padding:74px 0}
.nph-eyebrow{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:#C72127;margin-bottom:14px}
.nph-eyebrow i{font-style:normal;color:#b9b4b0;font-weight:900}
.nph-eyebrow--gold{color:#C9A84C}
.nph-eyebrow--gold i{color:#6f6a66}
.nph-h2{font-size:clamp(1.7rem,3vw,2.4rem);font-weight:900;letter-spacing:-.01em;line-height:1.12;color:#231F20;margin:0}
/* 01 Problem */
.nph-problem{border-bottom:2px solid #231F20}
.nph-problem-lead{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:clamp(1.3rem,2.2vw,1.7rem);color:#3a3738;max-width:760px;margin:18px 0 44px;line-height:1.5}
.nph-problem-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
.nph-problem-cell{border-top:3px solid #e2e4e8;padding-top:18px}
.nph-problem-cell h3{font-size:16.5px;font-weight:800;margin:0 0 8px;color:#5f6368;text-decoration:line-through;text-decoration-color:#C72127;text-decoration-thickness:2px}
.nph-problem-cell p{font-size:15px;line-height:1.6;margin:0}
.nph-problem-cell p b{color:#C72127}
/* 02 Proof */
.nph-proof{background:#231F20;color:#fff;padding:60px 0}
.nph-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;padding-bottom:52px}
.nph-stat b{font-size:44px;font-weight:900;display:block;line-height:1;color:#fff}
.nph-stat b i{font-style:normal;color:#C9A84C}
.nph-stat span{font-size:13px;color:#b9b4b0;line-height:1.45;display:block;margin-top:8px}
.nph-marquee{border-top:1px solid rgba(255,255,255,.14);overflow:hidden;padding:18px 0}
.nph-marquee--solo{background:#231F20;border-top:0;border-bottom:3px solid #C72127;padding:22px 0}
.nph-marquee__track{display:flex;gap:54px;white-space:nowrap;animation:nphMarq 38s linear infinite;width:max-content}
@keyframes nphMarq{to{transform:translateX(-50%)}}
.nph-marquee__track img{height:30px;width:auto;max-width:160px;flex:0 0 auto;object-fit:contain;filter:brightness(0) invert(1);opacity:.78;transition:opacity .2s}
.nph-marquee__track img:hover{opacity:1}
@media (prefers-reduced-motion:reduce){.nph-marquee__track{animation:none}}
/* 03 Categories */
.nph-cat{border-top:2px solid #231F20;padding:54px 0;display:grid;grid-template-columns:110px 1.05fr .95fr;gap:40px;align-items:center}
.nph-cat--last{border-bottom:2px solid #231F20}
.nph-cat__num{font-size:15px;font-weight:900;color:#C72127}
.nph-cat__num::after{content:"";display:block;width:44px;height:2px;background:#231F20;margin-top:10px}
.nph-cat h3{font-size:clamp(1.35rem,2.2vw,1.8rem);font-weight:900;margin:0 0 12px}
.nph-cat p{font-size:15.5px;line-height:1.65;color:#3a3738;margin:0 0 16px}
.nph-cat__links{display:flex;flex-wrap:wrap;gap:10px}
.nph-cat__links a{font-size:13px;font-weight:700;text-decoration:none;color:#231F20;border:1px solid #e2e4e8;padding:8px 14px;border-radius:99px;transition:.2s}
.nph-cat__links a:hover{border-color:#C72127;color:#C72127}
.nph-cat img{width:100%;aspect-ratio:16/10;object-fit:cover}
/* 04 Cases */
.nph-cases{background:#f6f5f3;border-top:2px solid #231F20}
.nph-cases__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;margin-top:40px}
.nph-case{background:#fff;border:1px solid #e2e4e8;display:grid;grid-template-columns:.9fr 1.1fr}
.nph-case img{width:100%;height:100%;object-fit:cover;min-height:220px}
.nph-case__body{padding:24px 26px}
.nph-case__body b{font-size:30px;font-weight:900;color:#C72127;display:block;line-height:1}
.nph-case__body i{font-style:normal;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:#5f6368;font-weight:700}
.nph-case__body h3{font-size:17px;font-weight:800;margin:12px 0 8px}
.nph-case__body p{font-size:13.5px;line-height:1.6;color:#5f6368;margin:0}
.nph-case__body a{display:inline-block;margin-top:12px;font-size:13px;font-weight:800;color:#C72127;text-decoration:none}
/* 05 Quotes */
.nph-quotes{display:grid;grid-template-columns:1fr 1fr;gap:44px;margin-top:40px}
.nph-quote{border-left:3px solid #C9A84C;padding-left:26px;margin:0}
.nph-quote p{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:17.5px;line-height:1.65;color:#3a3738;margin:0}
.nph-quote footer{margin-top:16px;font-size:13.5px}
.nph-quote footer b{display:block;font-size:14.5px;color:#231F20}
.nph-quote footer span{color:#5f6368}
.nph-stars{color:#C9A84C;letter-spacing:2px;font-size:14px;margin-bottom:10px}
/* 06 Where we serve */
.nph-areas{border-top:2px solid #231F20}
.nph-areas__grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:56px;align-items:center;margin-top:44px}
.nph-areas__map{position:relative}
.nph-areas__map iframe{width:100%;height:380px;border:0;display:block;position:relative;z-index:2;filter:grayscale(.25)}
.nph-areas__map::after{content:"";position:absolute;inset:18px -18px -18px 18px;border:2px solid #231F20;z-index:1}
.nph-areas__tag{position:absolute;z-index:3;left:-16px;top:22px;background:#C72127;color:#fff;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;padding:9px 14px}
.nph-area-row{display:grid;grid-template-columns:34px 1fr auto;gap:16px;align-items:baseline;padding:17px 4px;border-top:1px solid #e2e4e8;text-decoration:none;color:inherit;transition:background .2s}
.nph-area-row:last-child{border-bottom:1px solid #e2e4e8}
.nph-area-row:hover{background:#f6f5f3}
.nph-area-row__pin{font-size:12px;font-weight:900;color:#C72127}
.nph-area-row h3{font-size:16.5px;font-weight:800;margin:0}
.nph-area-row p{font-size:13px;color:#5f6368;line-height:1.5;margin:3px 0 0}
.nph-area-row__go{font-size:13px;font-weight:800;color:#C72127;white-space:nowrap}
.nph-area-row:hover h3{color:#C72127}
/* Action band */
.nph-action{background:#231F20;color:#fff;padding:74px 0}
.nph-action__grid{display:grid;grid-template-columns:.9fr 1.1fr;border:1px solid rgba(255,255,255,.12)}
.nph-action__info{background:#C72127;padding:44px 40px;display:flex;flex-direction:column}
.nph-action__info h2{font-size:clamp(1.5rem,2.6vw,2rem);font-weight:900;line-height:1.15;margin:0 0 14px;color:#fff}
.nph-action__info p{font-size:15px;line-height:1.6;color:#ffd9da;margin:0 0 24px}
.nph-action__info ul{list-style:none;display:grid;gap:12px;font-size:14.5px;font-weight:700;margin:0;padding:0}
.nph-action__info li{display:flex;gap:10px;align-items:flex-start}
.nph-action__info li::before{content:"\2713";color:#C9A84C;font-weight:900}
.nph-action__call{margin-top:auto;padding-top:22px;border-top:1px solid rgba(255,255,255,.3);font-size:13.5px}
.nph-action__creds{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px;padding-top:22px;border-top:1px solid rgba(255,255,255,.3)}
.nph-action__creds b{display:block;font-size:24px;font-weight:900;line-height:1.1}
.nph-action__creds span{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;opacity:.85;line-height:1.3;display:block;margin-top:4px}
.nph-action__call a{font-size:24px;font-weight:900;color:#fff;text-decoration:none;display:block;margin-top:4px}
.nph-action__form-wrap{padding:44px 40px}
.nph-action .np-inline-form__form{display:grid;gap:13px;position:relative}
.nph-action .np-inline-form__input,.nph-action .np-inline-form__select,.nph-action .np-inline-form__textarea{width:100%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.22);color:#fff;padding:13px 15px;font-family:inherit;font-size:14.5px;border-radius:4px}
.nph-action .np-inline-form__input::placeholder{color:#b9b4b0}
.nph-action .np-inline-form__select{color:#b9b4b0}
.nph-action .np-inline-form__select:valid{color:#fff}
.nph-action .np-inline-form__submit{background:#C9A84C;border-color:#C9A84C;color:#231F20;font-weight:900;justify-content:center}
.nph-action .np-inline-form__submit:hover{background:#b8973f;border-color:#b8973f}
.nph-action__privacy{font-size:12px;color:#8f8a86;text-align:center;margin:2px 0 0}
/* Responsive */
@media (max-width:1020px){
  .nph-hero{min-height:0}
  .nph-hero__in{padding-top:10.5rem}
  .nph-badge{display:none}
  .nph-problem-grid{grid-template-columns:1fr}
  .nph-stats{grid-template-columns:repeat(2,1fr)}
  .nph-cat{grid-template-columns:60px 1fr}
  .nph-cat img{grid-column:1/-1}
  .nph-cases__grid,.nph-quotes,.nph-areas__grid,.nph-action__grid{grid-template-columns:1fr}
}
@media (max-width:640px){
  .nph-hero__in{padding-top:9.5rem}
  .nph-case{grid-template-columns:1fr}
  .nph-stats{gap:22px}
  .nph-stat b{font-size:34px}
  .nph-areas__map::after{display:none}
  .nph-area-row{grid-template-columns:28px 1fr}
  .nph-area-row__go{display:none}
}

/* Safety cap: a raw .npa-photoband that survives (page with no bandable
   sections) must never render as a full-size unstyled image. */
.npa-photoband{margin:1.7rem 0}
.npa-photoband img{width:100%;max-height:420px;object-fit:cover;display:block;border-radius:6px}
.npa-photoband figcaption{font-size:12px;color:#5f6368;margin-top:8px;letter-spacing:.06em;text-transform:uppercase}

/* 01 The Difference: team photo beside quote + cells (added 2026-07-04) */
.nph-problem-intro{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;margin:18px 0 0}
.nph-problem-intro .nph-problem-lead{margin:0 0 30px}
.nph-problem-intro .nph-problem-grid{grid-template-columns:1fr;gap:20px}
.nph-problem-media{position:relative;margin:0}
.nph-problem-media img{width:100%;aspect-ratio:4/3;max-height:460px;object-fit:cover;object-position:center 30%;display:block;position:relative;z-index:2}
.nph-problem-media::after{content:"";position:absolute;inset:18px -18px -18px 18px;border:2px solid #231F20;z-index:1}
.nph-problem-media__badge{position:absolute;z-index:3;left:-16px;bottom:24px;background:#fff;border-top:4px solid #C9A84C;box-shadow:0 10px 30px rgba(35,31,32,.18);padding:14px 20px}
.nph-problem-media__badge b{font-size:30px;font-weight:900;line-height:1;display:block;color:#231F20}
.nph-problem-media__badge b span{color:#C72127}
.nph-problem-media__badge i{font-style:normal;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#5f6368;font-weight:700}
@media(max-width:1020px){.nph-problem-intro{grid-template-columns:1fr;gap:40px}}

/* === ABOUT CORE VALUES (list-only band) === */
.npa-values{background:#faf9f7;border-top:1px solid #eceae6;border-bottom:1px solid #eceae6}
.npa-values__list{list-style:none;margin:2.2rem 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.npa-values__list li{font-weight:800;font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:#231F20;background:#fff;border:2px solid #231F20;border-radius:999px;padding:13px 26px}
.npa-values__list li::before{content:"\25c6";color:#C72127;margin-right:10px;font-size:10px;vertical-align:2px}
@media(max-width:640px){.npa-values__list{gap:10px}.npa-values__list li{padding:10px 18px;font-size:12.5px}}

/* === HOMEPAGE 05 TECHNOLOGY PARTNERS BAND === */
.nph-tech{background:#231F20;color:#fff;padding:74px 0;border-top:3px solid #C72127}
.nph-h2--light{color:#fff}
.nph-tech__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:38px}
.nph-tech__card{border:1px solid rgba(255,255,255,.14);padding:28px 24px;display:flex;flex-direction:column}
.nph-tech__card img{height:24px;width:auto;max-width:130px;align-self:flex-start;object-fit:contain;filter:brightness(0) invert(1);opacity:.85}
.nph-tech__multi{display:flex;gap:14px;align-items:center}
.nph-tech__multi img{height:16px}
.nph-tech__card h3{font-size:17px;font-weight:800;margin:18px 0 8px;color:#fff}
.nph-tech__card p{font-size:13.5px;line-height:1.55;color:#b9b4b0;margin:0}
.nph-tech__more{text-align:center;margin-top:36px}
@media(max-width:1020px){.nph-tech__grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.nph-tech__grid{grid-template-columns:1fr}}

/* === EDITABLE CONTENT IMAGES (2026-07-16) ===
   Classic Editor image markup support (theme dequeues core classic-theme-styles,
   so alignments/captions are styled here). Editors can place images anywhere in
   content: floats, centered, captioned, galleries. Add class "np-plain" to an
   image to keep it inline exactly as placed (the photo-band enhancer skips it). */
.entry-content img{max-width:100%;height:auto}
.entry-content .alignleft{float:left;margin:6px 28px 16px 0;max-width:min(48%,420px)}
.entry-content .alignright{float:right;margin:6px 0 16px 28px;max-width:min(48%,420px)}
.entry-content .aligncenter{display:block;margin-left:auto;margin-right:auto;text-align:center}
.entry-content .alignnone{display:block}
.entry-content .alignwide{width:100%;display:block}
.entry-content .wp-caption{max-width:100%}
.entry-content .wp-caption.alignleft,.entry-content .wp-caption.alignright{max-width:min(48%,420px)}
.entry-content .wp-caption img{display:block;margin:0}
.np-page-content .entry-content .wp-caption img{margin:0}
.entry-content .wp-caption-text,.entry-content figcaption{font-size:12.5px;color:#5f6368;margin-top:8px;letter-spacing:.04em;line-height:1.5}
.entry-content figure{margin:2rem 0}
.entry-content .gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:2rem 0}
.entry-content .gallery .gallery-item{margin:0}
.entry-content .gallery img{width:100%;height:auto;display:block;border-radius:8px}
.entry-content img.np-plain{clip-path:none;border-radius:8px}
.entry-content::after{content:"";display:table;clear:both}
@media(max-width:640px){
  .entry-content .alignleft,.entry-content .alignright,
  .entry-content .wp-caption.alignleft,.entry-content .wp-caption.alignright{float:none;margin:1.4rem 0;max-width:100%}
}

/* === Anchor targets clear the fixed header (auto heading IDs, v3.9.4) ===
   Headings in page content now carry auto-generated ids, so deep links like
   /equipment/#surveillance-monitoring work. The header is fixed and sits at
   ~118px once the utility bar collapses on scroll, so anchored headings need
   matching scroll clearance or they land underneath it. */
.entry-content h2[id],
.entry-content h3[id]{scroll-margin-top:130px}
@media(max-width:900px){
  .entry-content h2[id],
  .entry-content h3[id]{scroll-margin-top:100px}
}
