:root {
  --brand-cyan-soft: rgb(140, 220, 255);
  --brand-cyan-deep: rgb(20, 95, 140);
}

.promise.data-plate {
    position: relative;
    flex-wrap: wrap;
    border-radius: 4px;
    border: 1px solid rgba(190, 220, 250, 0.32);
    background:
      linear-gradient(180deg, rgba(8, 22, 40, 0.55) 0%, rgba(4, 14, 28, 0.55) 100%);
    padding: 38px 40px 26px;
    box-shadow:
      inset 0 1px 0 rgba(190, 230, 255, 0.10),
      inset 0 -1px 0 rgba(0, 0, 0, 0.50),
      0 30px 60px -40px rgba(0, 0, 0, 0.85);
  }
  [data-theme="light"] .promise.data-plate {
    border-color: rgba(20, 60, 100, 0.30);
    background:
      linear-gradient(180deg, rgba(252, 250, 244, 0.92) 0%, rgba(238, 232, 218, 0.92) 100%);
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.65),
      inset 0 -1px 0 rgba(20, 30, 50, 0.10),
      0 24px 48px -36px rgba(20, 30, 50, 0.45);
  }
  /* Top edge: stamped nameplate header */
  .promise.data-plate .plate-header {
    position: absolute;
    top: 12px; left: 36px; right: 36px;
    display: flex; align-items: center; justify-content: space-between;
    gap: 24px;
    font-family: 'Manrope', sans-serif;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.34em;
    text-transform: uppercase;
    color: rgba(190, 220, 250, 0.55);
  }
  [data-theme="light"] .promise.data-plate .plate-header { color: rgba(20, 60, 100, 0.50); }
  .promise.data-plate .plate-header .stamp {
    display: inline-flex; align-items: center; gap: 8px;
  }
  .promise.data-plate .plate-header .stamp::before {
    content: "";
    width: 5px; height: 5px;
    border-radius: 50%;
    background: var(--brand-cyan-soft);
    box-shadow: 0 0 6px rgba(140, 220, 255, 0.85);
  }
  [data-theme="light"] .promise.data-plate .plate-header .stamp::before {
    background: var(--brand-cyan-deep);
    box-shadow: 0 0 4px rgba(20, 95, 140, 0.45);
  }

  /* Corner crosshair marks (architectural-drawing tells) */
  .promise.data-plate .pcm {
    position: absolute; width: 14px; height: 14px;
    color: rgba(190, 220, 250, 0.50);
  }
  [data-theme="light"] .promise.data-plate .pcm { color: rgba(20, 60, 100, 0.40); }
  .promise.data-plate .pcm::before,
  .promise.data-plate .pcm::after {
    content: ""; position: absolute; background: currentColor;
  }
  .promise.data-plate .pcm::before { left: 0; right: 0; top: 50%; height: 1px; }
  .promise.data-plate .pcm::after  { top: 0; bottom: 0; left: 50%; width: 1px; }
  .promise.data-plate .pcm.tl { top: -7px;    left: -7px; }
  .promise.data-plate .pcm.tr { top: -7px;    right: -7px; }
  .promise.data-plate .pcm.bl { bottom: -7px; left: -7px; }
  .promise.data-plate .pcm.br { bottom: -7px; right: -7px; }

  /* Rivet dots replace the hairline separators */
  .promise.data-plate .rivet {
    width: 7px; height: 7px; padding: 0; background: transparent;
    position: relative;
    flex: 0 0 7px;
  }
  .promise.data-plate .rivet::before {
    content: "";
    position: absolute; inset: 0;
    border-radius: 50%;
    background:
      radial-gradient(circle at 35% 30%, rgba(255, 255, 255, 0.45) 0%, rgba(255, 255, 255, 0) 55%),
      linear-gradient(160deg, rgba(190, 220, 250, 0.65), rgba(120, 160, 200, 0.35));
    box-shadow:
      inset 0 0 0 0.5px rgba(190, 220, 250, 0.40),
      0 1px 2px rgba(0, 0, 0, 0.40);
  }
  [data-theme="light"] .promise.data-plate .rivet::before {
    background:
      radial-gradient(circle at 35% 30%, rgba(255, 255, 255, 0.85) 0%, rgba(255, 255, 255, 0) 55%),
      linear-gradient(160deg, rgba(120, 145, 170, 0.85), rgba(80, 100, 130, 0.65));
    box-shadow:
      inset 0 0 0 0.5px rgba(20, 30, 50, 0.20),
      0 1px 2px rgba(20, 30, 50, 0.30);
  }

  /* Item label typography in plate mode: spec-card cadence */
  .promise.data-plate .item {
    flex-direction: column; align-items: flex-start; gap: 4px;
    text-shadow: none;
    letter-spacing: 0.02em;
  }
  .promise.data-plate .item .k {
    font-family: 'Manrope', sans-serif;
    font-size: 9.5px; font-weight: 500;
    letter-spacing: 0.32em; text-transform: uppercase;
    color: rgba(190, 220, 250, 0.55);
  }
  [data-theme="light"] .promise.data-plate .item .k { color: rgba(20, 60, 100, 0.55); }
  .promise.data-plate .item .v {
    display: flex; align-items: center; gap: 8px;
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 22px;
    line-height: 1;
    color: rgb(245, 252, 255);
    text-shadow: 0 1px 4px rgba(0, 8, 24, 0.85);
  }
  [data-theme="light"] .promise.data-plate .item .v {
    color: rgb(20, 40, 60);
    text-shadow: none;
  }
  .promise.data-plate .item .v strong {
    font-family: 'Manrope', sans-serif;
    font-style: normal;
    font-weight: 600;
    font-size: 17px;
    letter-spacing: 0.02em;
    color: var(--brand-cyan-soft);
  }
  [data-theme="light"] .promise.data-plate .item .v strong { color: var(--brand-cyan-deep); }
  .promise.data-plate .item .icon {
    width: 26px; height: 26px;
    color: rgba(190, 226, 255, 0.85);
    flex: 0 0 26px;
  }
  [data-theme="light"] .promise.data-plate .item .icon { color: var(--brand-cyan-deep); }
  .promise.data-plate .item .icon svg { width: 100%; height: 100%; display: block; }

.section-why-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: 0.35;
    -webkit-mask-image: radial-gradient(ellipse at 50% 35%, rgba(0,0,0,1) 0%, rgba(0,0,0,0.45) 55%, rgba(0,0,0,0) 90%);
            mask-image: radial-gradient(ellipse at 50% 35%, rgba(0,0,0,1) 0%, rgba(0,0,0,0.45) 55%, rgba(0,0,0,0) 90%);
    background-image:
      linear-gradient(to right, rgba(190, 220, 250, 0.12) 1px, transparent 1px),
      linear-gradient(to bottom, rgba(190, 220, 250, 0.12) 1px, transparent 1px),
      linear-gradient(to right, rgba(190, 220, 250, 0.05) 1px, transparent 1px),
      linear-gradient(to bottom, rgba(190, 220, 250, 0.05) 1px, transparent 1px);
    background-size: 120px 120px, 120px 120px, 24px 24px, 24px 24px;
    background-position: 0 0;
  }
  [data-theme="light"] .section-why-bg {
    opacity: 0.55;
    background-image:
      linear-gradient(to right, rgba(20, 60, 100, 0.10) 1px, transparent 1px),
      linear-gradient(to bottom, rgba(20, 60, 100, 0.10) 1px, transparent 1px),
      linear-gradient(to right, rgba(20, 60, 100, 0.05) 1px, transparent 1px),
      linear-gradient(to bottom, rgba(20, 60, 100, 0.05) 1px, transparent 1px);
  }
  .section-generic .section-content { z-index: 2; }

  /* Why section anchor mark above the heading */
  .why-anchor {
    display: flex;
    flex-direction: column; align-items: center;
    gap: 12px;
    margin: 0 auto 24px;
    width: 100%;
  }
  .why-anchor .mark {
    width: 88px; height: 88px;
    color: var(--brand-cyan-soft);
    opacity: 0.75;
  }
  [data-theme="light"] .why-anchor .mark { color: var(--brand-cyan-deep); opacity: 0.65; }
  .why-anchor .mark svg { width: 100%; height: 100%; display: block; }
  .why-anchor .caption {
    font-family: 'Manrope', sans-serif;
    font-size: 10.5px; font-weight: 500;
    letter-spacing: 0.40em; text-transform: uppercase;
    color: rgba(190, 220, 250, 0.55);
  }
  [data-theme="light"] .why-anchor .caption { color: rgba(20, 60, 100, 0.55); }
:root {
  --strip-h: 60px;
  --strip-gap: 6px;
}
.content-area {
  position: relative;
  /* Pull both strips up into the bottom of the banner on page load.
     HVAC (sticky inside) gets 60px headroom, Locations (fixed below it via
     JS preview position) gets another 60+6px below. */
  margin-top: calc(-2 * var(--strip-h) - var(--strip-gap));
}
.strip-row {
  z-index: 35;
  height: var(--strip-h);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0 56px;
  background: rgba(4, 10, 24, 0.32);
  /* Seamless: hairlines fade horizontally so the strip doesn't end
     in a hard rule against the wave parallax behind it. */
  border-top: none;
  border-bottom: none;
  box-shadow:
    inset 0  1px 0 rgba(190, 220, 250, 0.0),
    inset 0 -1px 0 rgba(190, 220, 250, 0.0);
  background-image:
    linear-gradient(90deg, transparent, rgba(190, 220, 250, 0.18) 15%, rgba(190, 220, 250, 0.18) 85%, transparent) top/100% 1px no-repeat,
    linear-gradient(90deg, transparent, rgba(190, 220, 250, 0.18) 15%, rgba(190, 220, 250, 0.18) 85%, transparent) bottom/100% 1px no-repeat;
  background-color: rgba(4, 10, 24, 0.32);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
}
/* HVAC: CSS sticky inside .content-area — starts at banner bottom (via the
   wrapper's negative margin-top), travels smoothly up with scroll, sticks at
   the nav bottom, and stays stuck through services AND areas. */
.strip-row.services {
  position: sticky;
  top: var(--nav-h, 136px);
}
/* Locations: fixed-positioned, JS sets `top` to either the viewport-bottom
   preview position OR the docked-below-HVAC position depending on whether
   the areas section has reached the dock threshold. */
.strip-row.areas {
  position: fixed;
  left: 0; right: 0;
  top: 100vh; /* off-screen until JS positions it */
}
.strip-row .label {
  flex: 0 0 auto;
  font-size: 13px;
  letter-spacing: 0.30em;
  text-transform: uppercase;
  color: rgb(220, 234, 250);
  padding-right: 22px;
  border-right: 1px solid rgba(190, 220, 250, 0.24);
  white-space: nowrap;
  text-shadow: 0 1px 3px rgba(0, 10, 30, 0.90);
}
.strip-row .items {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 22px;
  padding-left: 22px;
  font-size: 14px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  overflow: hidden;
  max-height: var(--strip-h);
}
.strip-row .items a {
  color: rgb(230, 242, 255);
  text-decoration: none;
  position: relative;
  padding: 2px 0;
  text-shadow: 0 1px 3px rgba(0, 10, 30, 0.90);
  transition: color .2s;
}
.strip-row .items a:hover { color: rgb(140, 200, 250); }
.strip-row .items a:hover::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: -2px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(140, 200, 250, 0.85), transparent);
}

@media (max-width: 1099px) {
  .strip-row { padding: 0 24px; }
  .strip-row .label { font-size: 11px; padding-right: 14px; }
  /* Switch from wrap (which clips multi-word labels mid-line inside the 60px
     max-height) to a horizontal scroller so every chip stays on one line. */
  .strip-row .items {
    padding-left: 14px;
    font-size: 12px;
    gap: 4px 14px;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .strip-row .items::-webkit-scrollbar { display: none; }
  .strip-row .items a { white-space: nowrap; flex: 0 0 auto; }
}
