/* ========================================
   NORRIS — GLOBAL
======================================== */

:root {
  --norris-green: #023e02;
  --norris-dark: #07110e;
  --norris-light: #e1e1e0;

  --norris-curve-height: 96px;
  --norris-badge-width: 64px;
  --norris-badge-height: 57.108px;
  --norris-badge-top: 25.846px;

  --norris-band-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0 0 Q720 120 1440 0 V16 Q720 136 0 16 Z'/%3E%3C/svg%3E");

  --norris-band-highlight: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='none' stroke='white' stroke-opacity='.28' stroke-width='3' d='M0 2 Q720 122 1440 2'/%3E%3C/svg%3E");

  --norris-lower-edge: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter id='soft' x='-5%25' y='-20%25' width='110%25' height='140%25' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='.4'/%3E%3C/filter%3E%3C/defs%3E%3Cg filter='url(%23soft)'%3E%3Cpath fill='%23e1e1e0' d='M0 16 Q720 136 1440 16 V140 H0 Z'/%3E%3Cpath fill='none' stroke='black' stroke-opacity='.15' stroke-width='1.5' d='M0 16 Q720 136 1440 16'/%3E%3C/g%3E%3C/svg%3E");
}

/* ========================================
   HEADER
======================================== */

#sp-header {
  background: var(--norris-dark);
  transition: background-color .2s ease, box-shadow .2s ease;
}

body:has(.nw-hero) #sp-header:not(.header-sticky) {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 990;
  background: transparent !important;
  box-shadow: none;
  isolation: isolate;
  overflow: visible;
}

body:has(.nw-hero) #sp-header:not(.header-sticky)::before {
  content: "";
  position: absolute;
  inset: 0 0 -110px;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(
    to bottom,
    rgba(2, 35, 5, .98) 0%,
    rgba(7, 17, 14, .94) 32%,
    rgba(7, 17, 14, .65) 62%,
    rgba(7, 17, 14, 0) 100%
  );
}

#sp-header.header-sticky {
  background: var(--norris-dark) !important;
  box-shadow: 0 3px 14px rgba(0, 0, 0, .18);
}

/* ========================================
   NAVIGATION
======================================== */

.sp-megamenu-parent > li > a,
.sp-megamenu-parent > li > span,
.offcanvas-menu .offcanvas-inner ul.menu > li > a {
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .4px;
}

.sp-megamenu-parent > li > a,
.sp-megamenu-parent > li > span {
  color: #fff;
}

.sp-megamenu-parent > li:hover > a,
.sp-megamenu-parent > li.active > a {
  color: #fff;
  text-decoration: underline;
  text-decoration-color: #90b987;
  text-underline-offset: 8px;
}

/* ========================================
   BUTTONS
======================================== */

body .btn,
body .sppb-btn,
body .nw .nw-button {
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .4px;
  border-radius: 0;
}

.btn-primary,
.sppb-btn-primary {
  background-color: var(--norris-green);
  border-color: var(--norris-green);
  color: #fff;
}

.btn-primary:hover,
.btn-primary:focus,
.sppb-btn-primary:hover,
.sppb-btn-primary:focus {
  background-color: #075507;
  border-color: #075507;
  color: #fff;
}

.nw .nw-button {
  display: inline-block;
  padding: 12px 22px;
  background: var(--norris-green);
  color: #fff;
  font-size: 16px;
  line-height: 1.4;
  border: 1px solid #6a846b;
}

a:focus-visible,
button:focus-visible {
  outline: 3px solid #90b987;
  outline-offset: 4px;
}

/* ========================================
   HOMEPAGE TYPOGRAPHY / LAYOUT
======================================== */

.nw {
  color: #252525;
  font-family: "Inter Tight", Arial, sans-serif;
}

.nw > .sppb-row-container {
  max-width: 1280px;
  margin-inline: auto;
}

.nw .sppb-row {
  row-gap: 28px;
}

.nw .sppb-column {
  min-width: 0;
}

.nw h1,
.nw h2,
.nw h3 {
  font-family: "Oswald", "Arial Narrow", sans-serif;
  color: inherit;
  font-weight: 600;
}

.nw h1 {
  font-size: clamp(36px, 4.2vw, 62px);
  line-height: 1.1;
}

.nw h2 {
  font-size: clamp(30px, 3vw, 44px);
  line-height: 1.17;
}

.nw h3 {
  font-size: 28px;
  line-height: 1.2;
}

.nw p {
  font-size: 17px;
  line-height: 1.6;
  margin: 0;
}

.nw .nw-eyebrow p {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--norris-green);
}

.nw-dark {
  background: #0b1712;
  color: #fff;
}

.nw-dark .nw-eyebrow p {
  color: #a9c69b;
}

.nw-light {
  background: var(--norris-light);
}

.nw-markets h3 {
  color: var(--norris-green);
}

/* ========================================
   HERO VIDEO OVERLAY
======================================== */

.nw.nw-hero {
  position: relative;
  padding-bottom: 112px !important;
}

.nw.nw-hero > .sppb-row-overlay {
  background: linear-gradient(
    90deg,
    rgba(7, 17, 14, .97) 0%,
    rgba(7, 17, 14, .93) 28%,
    rgba(7, 17, 14, .76) 44%,
    rgba(7, 17, 14, .28) 65%,
    rgba(7, 17, 14, .08) 100%
  ) !important;
  pointer-events: none;
  z-index: 1;
}

.nw.nw-hero > .sppb-row-container,
.nw.nw-hero > .sppb-container-inner {
  position: relative;
  z-index: 2;
}

/* Hide the old hero image placeholder */
.nw.nw-hero .nw-hero-media {
  display: none;
}

/* ========================================
   METAL CURVE
   Texture clipped into a shallow band.
   Slight softening affects metal only.
======================================== */

.nw.nw-hero::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: var(--norris-curve-height);
  z-index: 3;
  pointer-events: none;

  background-color: #aeb2b0;
  background-image:
    var(--norris-band-highlight),
    url("/images/home/metal-texture.jpg");
  background-size: 100% 100%, 100% 100%;
  background-position: center bottom;
  background-repeat: no-repeat;

  -webkit-mask-image: var(--norris-band-mask);
  mask-image: var(--norris-band-mask);
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;

  filter: blur(.35px);
}

/* Badge stays sharp; lower curve blends into Markets */
.nw.nw-hero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: var(--norris-curve-height);
  z-index: 4;
  pointer-events: none;

  background-image:
    url("/images/home/usa-badge.png"),
    var(--norris-lower-edge);
  background-size:
    var(--norris-badge-width) var(--norris-badge-height),
    100% 100%;
  background-position:
    center var(--norris-badge-top),
    center bottom;
  background-repeat: no-repeat;
}

/* Hide the old divider immediately after the hero */
.nw-hero + .nw-transition {
  display: none;
}

/* ========================================
   REMAINING WIREFRAME PLACEHOLDERS
======================================== */

.nw .nw-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 260px;
  padding: 24px;
  text-align: center;
  border: 1px dashed #788d80;
  background: repeating-linear-gradient(
    135deg,
    #c4cdc7 0px,
    #c4cdc7 14px,
    #cbd3cd 14px,
    #cbd3cd 28px
  );
  color: #263e30;
  box-sizing: border-box;
}

.nw .nw-placeholder p {
  font-size: 15px;
  line-height: 1.6;
}

.nw-dark .nw-placeholder {
  background: repeating-linear-gradient(
    135deg,
    #263b2f 0px,
    #263b2f 14px,
    #2b4235 14px,
    #2b4235 28px
  );
  color: #e6ede8;
}

.nw .nw-story-media {
  min-height: 460px;
}

.nw .nw-contact-media {
  min-height: 320px;
}

.nw-transition,
.nw-strip {
  background: #aeb2b0;
  text-align: center;
}

.nw-transition p {
  font-size: 11px;
  letter-spacing: 2px;
}

.nw-strip p {
  font-family: "Oswald", sans-serif;
  font-size: 18px;
  letter-spacing: 2px;
}

/* Quality image collage */
.nw .nw-collage {
  position: relative;
  min-height: 530px;
}

.nw .nw-quality-main {
  width: 72%;
  min-height: 500px;
}

.nw .nw-quality-small {
  position: absolute;
  right: 4%;
  width: 45%;
  min-height: 155px;
  border: 3px solid var(--norris-light);
}

.nw .nw-quality-top {
  top: 65px;
}

.nw .nw-quality-bottom {
  top: 255px;
}

/* ========================================
   MOBILE
======================================== */

@media (max-width: 767px) {
  :root {
    --norris-curve-height: 56px;
    --norris-badge-width: 52px;
    --norris-badge-height: 46.4px;
    --norris-badge-top: 8.533px;
  }

  body:has(.nw-hero) #sp-header:not(.header-sticky)::before {
    bottom: -70px;
  }

  .nw.nw-hero {
    padding-top: 130px !important;
    padding-bottom: 76px !important;
  }

  .nw.nw-hero > .sppb-row-overlay {
    background: linear-gradient(
      90deg,
      rgba(7, 17, 14, .94) 0%,
      rgba(7, 17, 14, .86) 55%,
      rgba(7, 17, 14, .68) 100%
    ) !important;
  }

  .nw-market-intro {
    padding-bottom: 0 !important;
  }

  .nw-markets {
    padding-top: 24px !important;
  }

  .nw-transition,
  .nw-strip {
    padding: 14px 0 !important;
  }

  .nw .nw-story-media {
    min-height: 300px;
  }

  .nw .nw-contact-media {
    min-height: 230px;
  }

  .nw .nw-collage {
    min-height: 420px;
  }

  .nw .nw-quality-main {
    min-height: 400px;
  }

  .nw .nw-quality-small {
    min-height: 125px;
    padding: 12px;
  }

  .nw .nw-quality-top {
    top: 50px;
  }

  .nw .nw-quality-bottom {
    top: 220px;
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  #sp-header {
    transition: none;
  }
}