/**
 * Nickel Energy ? Micro-QA visual polish overrides.
 * Loaded after output.css. Safe to edit; not overwritten by Tailwind build.
 */

/* Preloader is opt-in (.ne-show-preloader); skip class wins if both are present. */
#preloader {
  display: none;
}
html.ne-show-preloader #preloader {
  display: block;
}
html.ne-skip-preloader #preloader {
  display: none !important;
  visibility: hidden;
  pointer-events: none;
}

/* ---- Reveal / split failsafe (JS disabled or never upgraded from no-js) ---- */
html.no-js .reveal,
html.no-js .split .lr > span,
html:not(.js) .reveal {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}
html.no-js .wipe,
html:not(.js) .wipe {
  clip-path: none !important;
  opacity: 1 !important;
}

/* ---- Megamenu: opaque teal glass, clears sticky header ---- */
.nav {
  z-index: 9000;
  overflow: visible;
}
.nav .container {
  overflow: visible;
}
.nav-drop-wrap {
  position: relative;
  z-index: 9001;
}
.nav-drop-trigger {
  position: relative;
  z-index: 10001;
}
.nav-drop-panel {
  z-index: 9999;
  /* Clear the trigger + nav padding so panel never sits on the sticky header */
  top: calc(100% + 18px) !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}
/* Solid-enough ink glass ? readable over busy heroes; keeps white labels */
.ndp-row {
  background: rgba(1, 28, 36, 0.92) !important;
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  box-shadow: 0 8px 28px rgba(1, 28, 36, 0.28) !important;
  backdrop-filter: blur(24px) saturate(1.3) !important;
  -webkit-backdrop-filter: blur(24px) saturate(1.3) !important;
  transition: background 0.2s ease, border-color 0.2s ease !important;
}
.ndp-row:hover {
  background: rgba(1, 28, 36, 0.97) !important;
  border-color: rgba(255, 255, 255, 0.38) !important;
}
.ndp-row.is-active,
.ndp-row.is-active:hover,
.nav-drop-panel.is-over-light .ndp-row.is-active,
.nav-drop-panel.is-over-light .ndp-row.is-active:hover,
.nav-drop-wrap.is-over-light .ndp-row.is-active,
.nav-drop-wrap.is-over-light .ndp-row.is-active:hover {
  background: var(--orange, #f58025) !important;
  border-color: var(--orange, #f58025) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.ndp-row.is-active .ndp-row-t {
  color: #fff !important;
}
.ndp-row.is-active .ndp-row-arr {
  opacity: 1 !important;
  color: #fff !important;
  transform: none !important;
}
.nav-drop-trigger.is-active {
  background: var(--orange, #f58025) !important;
  border-color: var(--orange, #f58025) !important;
  color: #fff !important;
}
.ndp-row-t {
  color: #fff !important;
}
/* Text-only submenu (Item type = Submenu) ? same panel, no thumb */
.nav-drop-panel--simple .ndp-row {
  padding-left: 14px !important;
}
.nav-drop-panel--simple .ndp-row-arr {
  opacity: 0.55;
}
/*
 * Smart mode (JS): .is-over-light still toggles; both modes stay opaque teal
 * so page content never bleeds through the submenu.
 */
.nav-drop-panel.is-over-light .ndp-row,
.nav-drop-wrap.is-over-light .ndp-row {
  background: rgba(1, 28, 36, 0.94) !important;
  border-color: rgba(255, 255, 255, 0.24) !important;
  backdrop-filter: blur(24px) saturate(1.3) !important;
  -webkit-backdrop-filter: blur(24px) saturate(1.3) !important;
}
.nav-drop-panel.is-over-light .ndp-row:hover,
.nav-drop-wrap.is-over-light .ndp-row:hover {
  background: rgba(1, 28, 36, 0.98) !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
}
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  .ndp-row,
  .nav-drop-panel.is-over-light .ndp-row,
  .nav-drop-wrap.is-over-light .ndp-row {
    background: rgba(1, 28, 36, 0.97) !important;
  }
}
.mobile-menu {
  z-index: 9500;
  overflow-x: hidden;
}
.topbar {
  z-index: 9100;
}

/* ---- Buttons / CTAs ---- */
.btn,
.nav-cta,
.fab,
.foot-cta,
.ndp-row,
.loc-tab,
.j-btn,
.mm-link,
.mm-sublink,
[data-quote] {
  cursor: pointer;
}
.btn:focus-visible,
.nav-cta:focus-visible,
.nav-drop-trigger:focus-visible,
.loc-tab:focus-visible,
.j-btn:focus-visible {
  outline: 2px solid var(--orange, #f58025);
  outline-offset: 2px;
}
.nav-cta svg {
  transition: transform 0.3s var(--ease, cubic-bezier(0.22, 1, 0.36, 1));
  flex: none;
}
.nav-cta:hover {
  background: var(--orange-soft, #ff9444);
}
.nav-cta:hover svg {
  transform: translateX(3px);
}
.nav:not(.scrolled) .nav-cta:hover {
  background: rgba(255, 255, 255, 0.86);
}

/* About team cards: no hover lift, no plus icon */
.lead-card {
  transition: none;
  transform: none;
  box-shadow: none;
}
.lead-card:hover {
  transform: none;
  box-shadow: none;
  border-color: var(--line);
}
.lead-plus {
  display: none !important;
}

/* Journey plus icon: smoother rotate */
.j-btn .ji-x {
  transform: rotate(0deg);
  transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), color 0.45s ease;
}
.j-item.active .ji-x {
  transform: rotate(45deg);
}
a.j-pane {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}
a.j-pane:hover .link-arrow,
a.j-pane:focus-visible .link-arrow {
  gap: 14px;
  color: var(--orange, #f58025);
}
a.wc {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}

/* ---- Work / How-it-works cards: title ? description spacing ---- */
.wc-body h3 {
  line-height: 1.2;
}
.wc-body p,
.wc-body .r {
  margin-top: 10px;
  font-size: 13.5px;
  line-height: 1.45;
  color: var(--cream-dim, rgba(240, 235, 219, 0.72));
}

/* ---- Journey tabs: stable panel height, no CLS ---- */
.j-panel {
  min-height: 300px;
}
.j-pane:not(.show) {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}
.j-pane.show {
  position: relative;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: none;
}
@media (max-width: 820px) {
  .j-panel {
    min-height: 0;
  }
  .j-pane:not(.show) {
    display: none;
  }
  .j-pane.show {
    display: grid;
  }
}

/* ---- Location tabs: clear active state ---- */
.loc-tab {
  transition: color 0.2s ease, border-color 0.2s ease;
}
.loc-tab.on {
  color: var(--cream, #f0ebdb);
  border-top-color: var(--cream, #f0ebdb);
}

/* ---- Contact map: interactive pins + focus framing ---- */
#ct-map .lp-map-row .loc-pin {
  cursor: pointer;
}
a.loc-pin {
  text-decoration: none;
  outline: none;
}
.lp-map-row .loc-pin {
  cursor: pointer;
}
#ct-map .loc-map-wrap {
  overflow: hidden;
  border-radius: var(--r, 14px);
}
#ct-map .loc-pin:not(.on) {
  opacity: 0.55;
  transition: opacity 0.35s ease;
}
#ct-map .loc-pin.on,
#ct-map .loc-pin:hover,
#ct-map .loc-pin:focus-visible {
  opacity: 1;
}
.loc-card.is-dim {
  opacity: 0.28;
  filter: grayscale(0.35);
  pointer-events: none;
  transition: opacity 0.25s ease, filter 0.25s ease;
}
.loc-card {
  transition: opacity 0.25s ease, filter 0.25s ease, transform 0.25s ease;
}
.loc-empty {
  grid-column: 1 / -1;
  margin: 12px 0 0;
  padding: 28px 8px 8px;
  color: var(--cream-dim, rgba(240, 235, 219, 0.72));
  font-size: 0.95rem;
  line-height: 1.5;
  text-align: center;
}

/* Locations hub: image above its card on mobile (desktop checkerboard unchanged). */
@media (max-width: 760px) {
  .loc-grid > .loc-img {
    order: calc(var(--loc-i, 0) * 2);
  }
  .loc-grid > .loc-card {
    order: calc(var(--loc-i, 0) * 2 + 1);
  }
  .loc-grid > .loc-empty {
    order: 999;
  }
}

/* ---- Grid / flex overflow polish ---- */
.sol-card {
  min-width: 0;
}
.sol-card .sc-d,
.sc-d,
.lead,
.hero-sub,
.svc-hero-body {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Word-light scroll highlight — kept here so it ships even if legacy build lags */
.word-light .w,
.svc-hero-body .w,
.statement p .w,
.involve-body .w,
[data-word-light] .w {
  transition: color 0.45s ease;
}
.svc-hero-body .w {
  color: rgba(255, 255, 255, 0.2);
  font-weight: 400;
  transition: none;
}
.svc-hero-body.word-light {
  color: rgba(255, 255, 255, 0.2);
}
@media (prefers-reduced-motion: reduce) {
  .svc-hero-body.word-light .w.lit {
    color: #fff !important;
  }
}
.statement p .w {
  color: rgba(255, 255, 255, 0.34);
}
.statement p .w.lit {
  color: #fff !important;
}
.involve-body .w {
  color: rgba(255, 255, 255, 0.38);
}
.involve-body .w.lit {
  color: #fff !important;
}
.areas-grid,
.journey-grid,
.work-grid,
.sol-list {
  max-width: 100%;
}
img,
video,
canvas {
  max-width: 100%;
  height: auto;
}
.svc-hero-bg,
.loc-hero img,
.hero-bg-img,
.ab-strip img {
  height: 100%;
  width: 100%;
  max-width: none;
  object-fit: cover;
}

/* ---- Quote modal above FAB ---- */
.quote {
  z-index: 10050;
}
.fab {
  z-index: 8000;
}

/* ---- Hero video lightbox above nav ---- */
.vid-modal {
  z-index: 10040;
}
.vid-modal.open {
  display: flex;
}

/* Sticky industry/solution panels: full-bleed hit target stays above chrome */
.svc-panel-hit:focus-visible {
  outline: 2px solid var(--orange, #f58025);
  outline-offset: -6px;
}
.svc-stack .svc-panel img {
  height: 100%;
  max-width: none;
}

/* Kill smooth-scroll on root ? it makes ScrollTrigger pin sections overshoot */
html {
  scroll-behavior: auto !important;
}
body {
  overflow-x: clip;
}
@supports not (overflow: clip) {
  body {
    overflow-x: hidden;
  }
}

/* Location Recent Work gallery ? CSS marquee (works even if app.js fails) */
.lp-gallery .lp-marquee {
  overflow: hidden !important;
  cursor: grab;
}
.lp-gallery .lp-marquee {
  touch-action: pan-x;
  overscroll-behavior-x: contain;
}
.lp-gallery .lp-marquee.is-dragging {
  cursor: grabbing;
  touch-action: none;
}
.lp-gallery .lp-marquee-track {
  display: flex !important;
  width: max-content !important;
  padding: 0 !important;
  margin: 0 !important;
  gap: clamp(14px, 1.4vw, 22px);
  will-change: transform;
  animation: ne-lp-marquee var(--lp-marquee-duration, 36s) linear infinite !important;
}
.lp-gallery .lp-marquee:hover .lp-marquee-track,
.lp-gallery .lp-marquee.is-paused .lp-marquee-track,
.lp-gallery .lp-marquee.is-dragging .lp-marquee-track {
  animation-play-state: paused !important;
}
@keyframes ne-lp-marquee {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-50%, 0, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .lp-gallery .lp-marquee-track {
    animation: none !important;
  }
}

/* About Our Story ? mobile image breathing room */
@media (max-width: 860px) {
  .ab-story-grid {
    gap: clamp(28px, 6vw, 40px);
  }
  .ab-story-fig--a,
  .ab-story-fig--b {
    margin-top: clamp(28px, 6vw, 40px) !important;
    margin-bottom: clamp(12px, 3vw, 20px) !important;
  }
}

/* Soften vertical stack scroll: proximity snap, no forced stop, free exit */
.svc-panel {
  scroll-snap-stop: normal;
}
html.svc-snap {
  scroll-snap-type: y proximity;
  scroll-behavior: auto;
}
html.svc-nav,
html.svc-nav .svc-panel {
  scroll-snap-type: none !important;
  scroll-snap-align: none !important;
}
@media (max-width: 860px), (prefers-reduced-motion: reduce) {
  html.svc-snap {
    scroll-snap-type: none;
  }
}

/* Stack chrome: real CTA links + readable tabs/side copy */
.svc-c-wrap {
  z-index: 7;
  pointer-events: none;
}
.svc-c-link {
  pointer-events: auto;
  position: relative;
  z-index: 8;
  font-weight: 600;
  color: var(--cream, #f0ebdb);
  border-bottom-color: rgba(240, 235, 219, 0.55);
}
.svc-overlay {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: clamp(20px, 4vw, 48px);
  left: 0;
  right: 0;
  bottom: 0;
  padding: clamp(120px, 24vh, 200px) var(--pad, clamp(20px, 5vw, 46px)) clamp(36px, 6vh, 64px);
  background: linear-gradient(
    0deg,
    rgba(1, 28, 36, 0.94) 0%,
    rgba(1, 28, 36, 0.82) 32%,
    rgba(1, 28, 36, 0.52) 62%,
    rgba(1, 28, 36, 0.18) 82%,
    rgba(1, 28, 36, 0) 100%
  );
}
body.svc-active .svc-panel .svc-c-wrap {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.svc-index {
  max-width: min(58%, 720px);
  pointer-events: auto;
}
.svc-ix {
  padding: 6px 0;
  font-weight: 600;
  color: rgba(240, 235, 219, 0.45);
  border-bottom: 2px solid transparent;
  transition: color 0.35s ease, border-color 0.35s ease;
}
.svc-ix.is-active,
.svc-ix[aria-selected="true"] {
  color: var(--cream, #f0ebdb);
  border-bottom-color: var(--orange, #f58025);
}
.svc-ix:hover {
  color: rgba(240, 235, 219, 0.95);
}
.svc-ix.is-active:hover,
.svc-ix[aria-selected="true"]:hover,
.svc-ix.is-active:focus-visible,
.svc-ix[aria-selected="true"]:focus-visible {
  color: var(--cream, #f0ebdb);
}
.svc-ix:focus-visible {
  color: rgba(240, 235, 219, 0.95);
}
.svc-side {
  position: relative;
  z-index: 1;
  flex: 0 1 min(340px, 34vw);
  max-width: min(340px, 34vw);
  text-align: left;
  pointer-events: auto;
  /* Keep copy left-aligned and clear the fixed Quote FAB on the right */
  margin-right: clamp(160px, 18vw, 240px);
  padding-right: 0;
}
.svc-side::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -28px -36px -24px -28px;
  pointer-events: none;
  background: radial-gradient(ellipse at 60% 80%, rgba(1, 28, 36, 0.72) 0%, rgba(1, 28, 36, 0.28) 55%, rgba(1, 28, 36, 0) 78%);
}
.svc-side-text {
  margin: 0;
  max-width: 34ch;
  text-align: left;
  font-size: 15px;
  line-height: 1.55;
  color: var(--cream, #f0ebdb);
  text-shadow:
    0 1px 2px rgba(1, 28, 36, 0.95),
    0 6px 22px rgba(1, 28, 36, 0.8);
}
.svc-side .svc-c-link {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  margin-top: 12px;
  text-align: left;
  color: var(--cream, #f0ebdb);
  text-shadow:
    0 1px 2px rgba(1, 28, 36, 0.95),
    0 4px 16px rgba(1, 28, 36, 0.75);
}
@media (max-width: 860px) {
  .svc-overlay {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-end;
    gap: 18px;
    padding-bottom: clamp(72px, 12vh, 110px);
  }
  .svc-index {
    max-width: none;
  }
  .svc-side {
    flex: 1 1 auto;
    flex-basis: auto;
    max-width: none;
    width: 100%;
    text-align: left;
    margin-right: 0;
    padding-right: 0;
  }
}

/* ---- Solution types drag scroll ---- */
.hscroll-track {
  cursor: grab;
}
.hscroll-track .tcard-cta {
  cursor: pointer;
  position: relative;
  z-index: 2;
  pointer-events: auto;
}
.hscroll-track img {
  -webkit-user-drag: none;
  pointer-events: none;
}
.hscroll-track.is-dragging,
.hscroll-track.is-dragging * {
  cursor: grabbing;
  user-select: none;
  touch-action: none;
}
.hscroll-track.is-dragging .tcard-cta {
  pointer-events: none;
}
.hscroll.is-live .hscroll-view,
.hscroll.is-live .hscroll-track {
  touch-action: pan-y;
  overscroll-behavior: auto;
}
.hscroll.is-live .hscroll-view.is-dragging,
.hscroll.is-live .hscroll-track.is-dragging {
  touch-action: none;
}
.hscroll:not(.is-live) .hscroll-track {
  touch-action: pan-y;
  overscroll-behavior-x: contain;
}
.hscroll.is-fallback:not(.is-live) .hscroll-track {
  touch-action: pan-x;
}

/* ---- Blog listing AJAX filter / pager ---- */
button.cs-fcol--all {
  background: transparent;
  border: 0;
  cursor: pointer;
  font: inherit;
  text-align: left;
  width: 100%;
  color: inherit;
}
button.cs-fcol--all:hover,
button.cs-fcol--all.is-active {
  color: #fff;
}
button.cs-page {
  font: inherit;
  cursor: pointer;
  padding: 0;
  appearance: none;
  -webkit-appearance: none;
}
#neBlogListing.is-loading #neBlogRows,
#neBlogListing.is-loading #neBlogPager {
  opacity: 0.55;
  transition: opacity 0.2s ease;
}
#neBlogRows .blog-empty {
  margin: 0;
}

/* ---- Case studies listing AJAX filter / pager ---- */
#neCasesListing.is-loading #neCasesGrid,
#neCasesListing.is-loading #neCasesPager {
  opacity: 0.55;
  transition: opacity 0.2s ease;
}
#neCasesGrid .cases-empty {
  margin: 0;
  grid-column: 1 / -1;
}

/* ---- Differentiators: top-align titles & descs on shared rows ---- */
.diff-txt {
  margin-top: 26px;
  padding-top: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
}
.diff h3 {
  line-height: 1.25;
  margin: 0 0 8px;
  min-height: 2.5em;
  width: 100%;
}
.diff p {
  margin: 0;
  width: 100%;
}

/* ---- Legal / prose detail pages ---- */
.bd-prose a {
  color: var(--orange);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.bd-prose a:hover {
  color: var(--cream);
}
.bd-prose strong {
  color: var(--cream);
  font-weight: 600;
}
.bd-prose em {
  font-style: italic;
}

/* ---- Reviews section foot CTA (header-style primary button) ---- */
.rev-foot {
  display: flex;
  align-items: center;
  gap: 16px 22px;
  flex-wrap: wrap;
}
.rev-foot-rating {
  margin: 0;
  font-size: 15px;
  color: var(--paper-dim);
}
.rev-foot-rating b {
  color: var(--paper-ink);
  font-weight: 600;
}
.rev-foot-cta {
  flex: none;
}

/* ---- Reviews archive page ---- */
.rv-page-body {
  padding-top: clamp(48px, 6vw, 80px);
  padding-bottom: clamp(64px, 8vw, 110px);
}
.rv-page-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(28px, 3.5vw, 48px) clamp(24px, 3vw, 44px);
}
.rv-page-card.is-featured {
  grid-column: 1 / -1;
  padding-top: 0;
  border-top: 0;
}
.rv-page-card.is-featured .rv-page-quote {
  font-size: clamp(22px, 3vw, 36px);
  color: var(--paper-ink);
  letter-spacing: -0.02em;
  line-height: 1.2;
  font-weight: 400;
  max-width: 28ch;
}
.rv-page-card.is-featured .rv-page-quote .q {
  color: var(--orange);
}
.rv-page-quote {
  font-size: 16px;
  color: var(--paper-body);
  line-height: 1.6;
}
.rv-page-cta {
  margin-top: clamp(48px, 6vw, 72px);
  padding-top: clamp(28px, 3vw, 40px);
  border-top: 1px solid var(--paper-line);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 24px;
}
.rv-page-cta p {
  margin: 0;
  font-size: 16px;
  color: var(--paper-dim);
  max-width: 36ch;
}
@media (max-width: 680px) {
  .rv-page-grid {
    grid-template-columns: 1fr;
  }
}

/* ---- Contact Form 7 ---- */
.ne-cf7-missing {
  margin-top: 1rem;
  padding: 14px 16px;
  border: 1px solid rgba(229, 72, 77, 0.45);
  border-radius: 12px;
  color: #e5484d;
  font-size: 14px;
}

.ct-field .req,
.wpcf7 .req {
  color: var(--orange, #e87722);
  font-weight: 600;
}

.ct-section .wpcf7,
.ct-grid .wpcf7 {
  margin-top: clamp(24px, 3vw, 36px);
}
.ct-form.wpcf7-form,
.wpcf7 form.ct-form {
  display: flex;
  flex-direction: column;
  gap: clamp(15px, 1.7vw, 20px);
}
.ct-form .ct-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(14px, 1.6vw, 20px);
}
.ct-form .ct-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ct-form .ct-field label {
  font-size: 11.5px;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--cream-dim, #a9b4b3);
}
.ct-form .wpcf7-form-control-wrap {
  display: block;
}
.ct-form input[type="text"],
.ct-form input[type="email"],
.ct-form input[type="tel"],
.ct-form input[type="url"],
.ct-form select,
.ct-form textarea {
  width: 100%;
  background: rgba(240, 235, 219, 0.04);
  border: 1px solid var(--line, rgba(240, 235, 219, 0.18));
  border-radius: 11px;
  padding: 13px 15px;
  color: var(--cream, #f0ebdb);
  font: inherit;
  font-size: 15px;
  outline: none;
  transition: border-color 0.2s ease, background 0.2s;
}
.ct-form input::placeholder,
.ct-form textarea::placeholder {
  color: var(--cream-dim, #a9b4b3);
  opacity: 0.7;
}
.ct-form input:focus,
.ct-form select:focus,
.ct-form textarea:focus {
  border-color: var(--orange, #e87722);
  background: rgba(240, 235, 219, 0.06);
}
.ct-form textarea {
  resize: vertical;
  min-height: 132px;
  line-height: 1.55;
}
.ct-form select {
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  padding-right: 40px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23A9B4B3' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat: no-repeat;
  background-position: right 15px center;
}
.ct-form .wpcf7-submit,
.ct-form input.btn {
  align-self: flex-start;
  margin-top: 6px;
  cursor: pointer;
  border: 0;
}
@media (max-width: 820px) {
  .ct-form .ct-row {
    grid-template-columns: 1fr;
  }

  /* Contact mark: peek from the lower-right without washing out form fields */
  .ct-section .ct-mark {
    width: 68vw;
    right: -44%;
    top: auto;
    bottom: -18%;
    opacity: 0.28;
    transform: none;
    animation: ne-ct-spin-m 72s linear infinite;
  }

  /* Solid field fills so logo bleed doesn't compete with input text */
  .ct-form input[type="text"],
  .ct-form input[type="email"],
  .ct-form input[type="tel"],
  .ct-form input[type="url"],
  .ct-form select,
  .ct-form textarea,
  .ct-field input,
  .ct-field select,
  .ct-field textarea {
    background: rgba(1, 28, 36, 0.94);
  }
  .ct-form input:focus,
  .ct-form select:focus,
  .ct-form textarea:focus,
  .ct-field input:focus,
  .ct-field select:focus,
  .ct-field textarea:focus {
    background: rgba(1, 28, 36, 0.98);
  }
}
@keyframes ne-ct-spin-m {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
@media (max-width: 820px) and (prefers-reduced-motion: reduce) {
  .ct-section .ct-mark {
    animation: none;
  }
}

.quote .wpcf7 {
  margin: 0;
}
.quote-form.wpcf7-form,
.wpcf7 form.quote-form {
  display: block;
}
.quote-form .wpcf7-form-control-wrap {
  display: block;
}
.quote-form .qrow {
  display: flex;
  gap: 12px;
  margin-bottom: 12px;
  width: 100%;
}
/* CF7/wpautop wraps adjacent fields in <p> ? unwrap so flex children are the controls */
.quote-form .qrow > p {
  display: contents;
}
.quote-form .qrow .wpcf7-form-control-wrap {
  flex: 1 1 0;
  min-width: 0;
  width: 100%;
  max-width: 100%;
}
.quote-form .qrow .qfield,
.quote-form .qfield {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.quote-form .quote-sec .wpcf7-form-control-wrap + .wpcf7-form-control-wrap {
  margin-top: 12px;
}
.quote-form .qrow .wpcf7-form-control-wrap + .wpcf7-form-control-wrap {
  margin-top: 0;
}
.quote-form .quote-choices .wpcf7-form-control-wrap,
.quote-form .quote-choices .wpcf7-radio {
  display: flex;
  flex-direction: column;
  gap: 13px;
  border: 0;
  margin: 0;
  padding: 0;
}
.quote-form .quote-choices .wpcf7-list-item {
  display: block;
  margin: 0;
}
.quote-form .quote-choices .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  color: var(--cream, #f0ebdb);
  font-size: 16px;
  position: relative;
}
.quote-form .quote-choices .wpcf7-list-item input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.quote-form .quote-choices .wpcf7-list-item-label {
  display: flex;
  align-items: center;
  gap: 12px;
}
.quote-form .quote-choices .wpcf7-list-item-label::before {
  content: "";
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 1.5px solid rgba(240, 235, 219, 0.4);
  flex: 0 0 auto;
  box-sizing: border-box;
  transition: border-color 0.2s;
}
.quote-form .quote-choices .wpcf7-list-item input:checked + .wpcf7-list-item-label::before {
  border-color: var(--orange, #e87722);
  background: radial-gradient(circle at center, var(--orange, #e87722) 0 6px, transparent 7px);
}
/* CF7 wraps radio in span.wpcf7-form-control-wrap > .wpcf7-radio.
   Border/padding live only on .qseg ? nested wrappers must stay borderless. */
.quote-form .qseg .wpcf7-form-control-wrap,
.quote-form .qseg .wpcf7-radio {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.quote-form .qseg .wpcf7-list-item {
  display: block;
  margin: 0;
  position: relative;
  border: 0;
  background: transparent;
}
.quote-form .qseg .wpcf7-list-item label {
  display: block;
  cursor: pointer;
  margin: 0;
  border: 0;
  background: transparent;
}
.quote-form .qseg .wpcf7-list-item input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.quote-form .qseg .wpcf7-list-item-label {
  display: block;
  padding: 9px 22px;
  border-radius: 999px;
  border: 0;
  font-size: 14px;
  color: rgba(240, 235, 219, 0.7);
  transition: 0.2s;
}
.quote-form .qseg .wpcf7-list-item input:checked + .wpcf7-list-item-label {
  background: var(--orange, #e87722);
  color: var(--cream, #f0ebdb);
  font-weight: 600;
}
.quote-form .wpcf7-submit,
.quote-form input.quote-send {
  margin-top: clamp(28px, 3.4vw, 38px);
  cursor: pointer;
  border: 0;
}
@media (max-width: 560px) {
  .quote-form .qrow {
    flex-direction: column;
    gap: 12px;
  }
  .quote-form .qrow .wpcf7-form-control-wrap {
    flex: 1 1 auto;
    width: 100%;
  }
}

.wpcf7-not-valid-tip {
  display: block;
  margin-top: 6px;
  color: #e5484d;
  font-size: 13px;
  line-height: 1.35;
}
.wpcf7-not-valid {
  border-color: #e5484d !important;
}
.wpcf7-response-output {
  margin: 16px 0 0;
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid transparent;
  font-size: 14px;
  line-height: 1.45;
}
.wpcf7 form.sent .wpcf7-response-output,
.wpcf7-mail-sent-ok {
  border-color: rgba(61, 168, 110, 0.55);
  background: rgba(61, 168, 110, 0.12);
  color: #7dcea0;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7-validation-errors,
.wpcf7-mail-sent-ng {
  border-color: rgba(229, 72, 77, 0.55);
  background: rgba(229, 72, 77, 0.12);
  color: #f2a4a7;
}
.quote .wpcf7-response-output {
  color: var(--cream, #f0ebdb);
}
.quote .wpcf7 form.sent .wpcf7-response-output {
  color: #b7e4c7;
}
.quote .wpcf7 form.invalid .wpcf7-response-output,
.quote .wpcf7 form.failed .wpcf7-response-output {
  color: #f2a4a7;
}
.wpcf7 .screen-reader-response {
  position: absolute;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  width: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
}
.wpcf7-spinner {
  margin-left: 10px;
  vertical-align: middle;
}

/* ---- 404 ---- */
.ne-404-body {
  padding-top: clamp(48px, 6vw, 80px);
  padding-bottom: clamp(64px, 8vw, 110px);
}
.ne-404-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}
.ne-404-links {
  margin-top: clamp(40px, 5vw, 64px);
  padding-top: clamp(28px, 3vw, 40px);
  border-top: 1px solid var(--paper-line);
}
.ne-404-links ul {
  list-style: none;
  margin: 22px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 220px));
  gap: 14px 28px;
}
.ne-404-links .link-arrow {
  color: var(--paper-ink);
}
@media (max-width: 520px) {
  .ne-404-links ul {
    grid-template-columns: 1fr;
  }
}


/* Benefits cards ? solid orange hover (industry Benefits & Outcomes) */
.ben .ben-n,
.ben h3,
.ben p { transition: color .35s var(--ease, cubic-bezier(.22,.72,0,1)); }
.ben:hover {
  border-color: var(--orange, #F58025);
  background: var(--orange, #F58025);
  transform: translateY(-5px);
  box-shadow: 0 22px 46px -22px rgba(245, 128, 37, .55);
}
.ben:hover .ben-n,
.ben:hover h3,
.ben:hover p { color: #fff; }
.ben:hover::after {
  opacity: .22;
  background: #fff;
  transform: rotate(0) scale(1.05);
}

/* What's Involved capability icons — large cream tiles, ink glyphs, draw + idle motion */
.involve-caps .cap {
  gap: 18px;
}
.involve-caps .cap-ic {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(72px, 6.8vw, 92px);
  height: clamp(72px, 6.8vw, 92px);
  border-radius: 18px;
  background: var(--cream, #F0EBDB);
  color: var(--ink, #011c24);
  box-shadow:
    0 14px 36px -12px rgba(1, 28, 36, 0.45),
    0 0 0 1px rgba(255, 255, 255, 0.35) inset;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transform: scale(0.86);
  opacity: 0.55;
  transition:
    transform 0.55s var(--ease, cubic-bezier(0.22, 0.72, 0, 1)),
    box-shadow 0.4s var(--ease, cubic-bezier(0.22, 0.72, 0, 1)),
    background 0.3s var(--ease, cubic-bezier(0.22, 0.72, 0, 1)),
    opacity 0.45s var(--ease, cubic-bezier(0.22, 0.72, 0, 1)),
    color 0.3s ease;
}
.involve-caps .cap-ic::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background:
    radial-gradient(circle at 28% 22%, rgba(255, 255, 255, 0.7), transparent 55%),
    radial-gradient(circle at 80% 90%, rgba(245, 128, 37, 0.18), transparent 50%);
  pointer-events: none;
  z-index: 0;
}
.involve-caps .cap-ic::after {
  content: "";
  position: absolute;
  inset: -40% -60%;
  background: linear-gradient(
    115deg,
    transparent 40%,
    rgba(255, 255, 255, 0.7) 50%,
    transparent 60%
  );
  transform: translateX(-40%) rotate(8deg);
  opacity: 0;
  pointer-events: none;
  z-index: 2;
}
.involve-caps .cap-ic svg,
.involve-caps .cap-ic .cap-ic-svg {
  position: relative;
  z-index: 1;
  display: block;
  width: clamp(34px, 3.2vw, 42px);
  height: clamp(34px, 3.2vw, 42px);
  transform-origin: 50% 50%;
}
.involve-caps .cap-ic .cap-draw {
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  transition: stroke-dashoffset 1.1s var(--ease, cubic-bezier(0.22, 0.72, 0, 1));
}
.involve-caps .cap-ic .cap-accent {
  opacity: 0;
  transform: scale(0.4);
  transform-origin: center;
  transition:
    opacity 0.5s var(--ease, cubic-bezier(0.22, 0.72, 0, 1)) 0.55s,
    transform 0.55s var(--ease, cubic-bezier(0.22, 0.72, 0, 1)) 0.55s;
}
.involve-caps .cap.reveal.on .cap-ic,
.involve-caps .cap:not(.reveal) .cap-ic {
  transform: scale(1);
  opacity: 1;
}
.involve-caps .cap.reveal.on .cap-ic .cap-draw,
.involve-caps .cap:not(.reveal) .cap-ic .cap-draw {
  stroke-dashoffset: 0;
}
.involve-caps .cap.reveal.on .cap-ic .cap-accent,
.involve-caps .cap:not(.reveal) .cap-ic .cap-accent {
  opacity: 0.4;
  transform: scale(1);
}
.involve-caps .cap.reveal.on .cap-ic {
  animation: ne-cap-float 3.8s ease-in-out infinite;
}
.involve-caps .cap.reveal.on:nth-child(1) .cap-ic {
  animation-delay: 0.08s;
  transition-delay: 0s;
}
.involve-caps .cap.reveal.on:nth-child(2) .cap-ic {
  animation-delay: 0.45s;
  transition-delay: 0.08s;
}
.involve-caps .cap.reveal.on:nth-child(3) .cap-ic {
  animation-delay: 0.85s;
  transition-delay: 0.16s;
}
.involve-caps .cap.reveal.on:nth-child(4) .cap-ic {
  animation-delay: 1.25s;
  transition-delay: 0.24s;
}
.involve-caps .cap.reveal.on .cap-ic::after {
  animation: ne-cap-shine 5s ease-in-out infinite;
}
.involve-caps .cap.reveal.on:nth-child(2) .cap-ic::after {
  animation-delay: 1.2s;
}
.involve-caps .cap.reveal.on:nth-child(3) .cap-ic::after {
  animation-delay: 2.4s;
}
.involve-caps .cap.reveal.on:nth-child(4) .cap-ic::after {
  animation-delay: 3.6s;
}
.involve-caps .cap.reveal.on .cap-ic-svg--solar {
  animation: ne-cap-solar 2.8s ease-in-out infinite;
}
.involve-caps .cap.reveal.on .cap-ic-svg--wrench {
  animation: ne-cap-wrench 3.4s ease-in-out infinite;
}
.involve-caps .cap.reveal.on .cap-ic-svg--battery .cap-bolt {
  animation: ne-cap-bolt 2.2s ease-in-out infinite;
}
.involve-caps .cap.reveal.on .cap-ic-svg--docs .cap-check {
  animation: ne-cap-check 3s ease-in-out infinite;
}
@media (hover: hover) {
  .involve-caps .cap:hover .cap-ic {
    animation: none;
    transform: translateY(-6px) scale(1.07);
    box-shadow:
      0 22px 44px -14px rgba(1, 28, 36, 0.5),
      0 0 0 1px rgba(255, 255, 255, 0.5) inset;
    background: #fff;
    color: var(--orange, #F58025);
  }
  .involve-caps .cap:hover .cap-ic-svg,
  .involve-caps .cap:hover .cap-bolt,
  .involve-caps .cap:hover .cap-check {
    animation: none;
  }
}
@keyframes ne-cap-float {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-8px);
  }
}
@keyframes ne-cap-shine {
  0%,
  68% {
    transform: translateX(-45%) rotate(8deg);
    opacity: 0;
  }
  76% {
    opacity: 1;
  }
  100% {
    transform: translateX(45%) rotate(8deg);
    opacity: 0;
  }
}
@keyframes ne-cap-solar {
  0%,
  100% {
    filter: drop-shadow(0 0 0 transparent);
  }
  50% {
    filter: drop-shadow(0 0 6px rgba(245, 128, 37, 0.55));
  }
}
@keyframes ne-cap-wrench {
  0%,
  100% {
    transform: rotate(0);
  }
  40% {
    transform: rotate(-8deg);
  }
  60% {
    transform: rotate(6deg);
  }
}
@keyframes ne-cap-bolt {
  0%,
  100% {
    opacity: 1;
    stroke: currentColor;
  }
  45% {
    opacity: 0.35;
  }
  55% {
    opacity: 1;
    stroke: var(--orange, #F58025);
  }
}
@keyframes ne-cap-check {
  0%,
  70%,
  100% {
    transform: scale(1);
  }
  80% {
    transform: scale(1.12);
  }
}
@media (prefers-reduced-motion: reduce) {
  .involve-caps .cap-ic,
  .involve-caps .cap-ic::after,
  .involve-caps .cap-ic .cap-draw,
  .involve-caps .cap-ic-svg,
  .involve-caps .cap-bolt,
  .involve-caps .cap-check {
    animation: none !important;
    transition: none !important;
  }
  .involve-caps .cap-ic {
    transform: none;
    opacity: 1;
  }
  .involve-caps .cap-ic .cap-draw {
    stroke-dashoffset: 0;
  }
  .involve-caps .cap:hover .cap-ic {
    transform: none;
  }
}
