/* goodngrowth HVAC positioning — shared landing and supporting-page styles. */

:root {
  --canvas: #080808;
  --canvas-deep: #101010;
  --surface: #161616;
  --input: #121212;
  --text: #F5F5F5;
  --muted: #C2C2C2;
  --muted-dim: #ADADAD;
  --border: #383838;
  --border-soft: rgba(255,255,255,.1);
  --border-strong: #777777;
  --accent: #F5F5F5;
  --accent-hi: #DCDCDC;
  --accent-line: #999999;
  --accent-dim: rgba(255,255,255,.14);
  --mint: #F5F5F5;
  --alert: #E0E0E0;
  --alert-dim: rgba(255,255,255,.1);
  color-scheme: dark;
}

body.hvac-page {
  background: var(--canvas);
  color: var(--text);
}

body.hvac-page::after {
  opacity: .012;
  mix-blend-mode: multiply;
}

.hvac-page .btn {
  border-radius: 2px;
  font-family: var(--font-display);
  font-size: .72rem;
  font-weight: 650;
  letter-spacing: .1em;
}

.hvac-page main {
  overflow: clip;
}

.hvac-container {
  width: min(1160px, calc(100% - 3rem));
  margin-inline: auto;
}

.hvac-section {
  padding: clamp(5rem, 9vw, 8.5rem) 0;
}

.hvac-section--inset {
  background: var(--canvas-deep);
}

.hvac-section--dark {
  background: var(--obsidian);
  color: var(--canvas);
}

.hvac-eyebrow {
  display: block;
  margin-bottom: 1.5rem;
  color: var(--muted-dim);
  font: italic 450 1.05rem/1.35 var(--font-body);
  letter-spacing: 0;
  text-transform: none;
}

.hvac-eyebrow::before { content: none; }

.hvac-section--dark .hvac-eyebrow { color: var(--inverse-secondary, #BDBDB9); }

.hvac-display,
.hvac-page h1,
.hvac-page h2,
.hvac-page h3 {
  color: inherit;
  font-family: var(--font-display);
}

.hvac-display {
  font-size: clamp(3.3rem, 7.5vw, 6.8rem);
  font-weight: 120;
  letter-spacing: -.065em;
  line-height: .94;
}

.hvac-section-heading {
  max-width: 16ch;
  font-size: clamp(2.4rem, 5vw, 4.8rem);
  font-weight: 160;
  letter-spacing: -.055em;
  line-height: .98;
}

.hvac-section-heading--wide { max-width: 20ch; }

.hvac-lede {
  max-width: 57ch;
  color: var(--muted);
  font-size: clamp(1.12rem, 1.8vw, 1.38rem);
  line-height: 1.58;
}

.hvac-section--dark .hvac-lede { color: #BDBDB9; }

.hvac-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
  margin-top: 2rem;
}

.hvac-text-link {
  color: inherit;
  font: 650 .83rem/1.2 var(--font-mono);
  letter-spacing: .04em;
  text-underline-offset: .3em;
}

/* Hero */
.hvac-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: min(900px, 100svh);
  padding: clamp(9rem, 14vw, 12rem) 0 clamp(5rem, 9vw, 8rem);
  background: var(--canvas);
}

.sonar-grid-canvas {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  opacity: 1;
  pointer-events: none;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 78%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 78%, transparent 100%);
}

[data-depth-card] {
  --tilt-x: 0deg;
  --tilt-y: 0deg;
  --spot-x: 50%;
  --spot-y: 50%;
  transform: perspective(1200px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
  transform-style: preserve-3d;
  transition: transform .32s var(--ease-out);
  will-change: transform;
}

.hvac-hero::after {
  position: absolute;
  right: max(1.5rem, calc((100vw - 1160px) / 2));
  bottom: 0;
  left: max(1.5rem, calc((100vw - 1160px) / 2));
  height: 1px;
  background: var(--border);
  content: '';
}

.hvac-hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
}

.hvac-hero-copy {
  position: relative;
  isolation: isolate;
  width: min(100%, 1000px);
  margin-inline: auto;
  text-align: center;
}

.hvac-hero-copy .hvac-display { max-width: 18ch; margin-inline: auto; text-wrap: balance; }
.hvac-hero-copy .hvac-actions { justify-content: center; }

.hvac-hero-copy::before {
  position: absolute;
  inset: -4rem -5rem;
  z-index: -1;
  background: radial-gradient(ellipse at 40% 48%, rgba(255,255,255,.96) 0%, rgba(255,255,255,.78) 49%, rgba(255,255,255,0) 76%);
  content: '';
  pointer-events: none;
}

.hvac-hero-copy .hvac-lede {
  margin-top: 1.7rem;
  max-width: 54ch;
  margin-inline: auto;
  text-wrap: pretty;
}

.hero-offer-summary {
  margin-top: 1.25rem;
  color: var(--muted);
  font: 400 1rem/1.5 var(--font-body);
}

.workflow-board {
  position: relative;
  isolation: isolate;
  padding: 0;
  border-top: 2px solid var(--text);
  border-bottom: 1px solid var(--text);
  overflow: hidden;
  background:
    radial-gradient(24rem circle at var(--spot-x) var(--spot-y), rgba(15,17,20,.07), transparent 48%),
    rgba(255,255,255,.88);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow: none;
  transform: none;
}

.workflow-board::before { content: none; }

.workflow-board::after {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 3;
  height: 34%;
  background: linear-gradient(to bottom, transparent, rgba(17,17,17,.045), transparent);
  content: '';
  pointer-events: none;
  transform: translate3d(0, -130%, 0);
  animation: workflowScan 8s ease-in-out infinite;
}

@keyframes workflowScan {
  0%, 18% { opacity: 0; transform: translate3d(0, -130%, 0); }
  30% { opacity: 1; }
  72% { opacity: .8; }
  88%, 100% { opacity: 0; transform: translate3d(0, 390%, 0); }
}

.workflow-board__top {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem 0;
  color: var(--muted-dim);
  font: 600 .66rem/1.2 var(--font-mono);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.workflow-board__rows { display: grid; gap: 0; }

.workflow-row {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .85rem;
  align-items: center;
  min-height: 5.45rem;
  padding: 1rem 0 1rem 1.8rem;
  border-top: 1px solid var(--border);
  border-radius: 0;
  background: transparent;
}

.workflow-row::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: .42rem;
  height: .42rem;
  transform: translateY(-50%);
  border-radius: 0;
  background: var(--obsidian);
  box-shadow: none;
  content: '';
}

.workflow-row strong {
  display: block;
  margin-bottom: .18rem;
  font: 620 .92rem/1.2 var(--font-display);
}

.workflow-row small {
  color: var(--muted);
  font: 400 .82rem/1.35 var(--font-body);
}

.workflow-row__state {
  padding: .35rem 0 .35rem .85rem;
  border: 0;
  border-left: 1px solid var(--border);
  border-radius: 0;
  color: var(--muted-dim);
  font: 600 .6rem/1 var(--font-mono);
  letter-spacing: .06em;
  text-transform: uppercase;
}

.workflow-board__foot {
  margin: 0;
  padding: 1rem 0 .2rem;
  border-top: 1px solid var(--border);
  color: var(--muted-dim);
  font: 500 .7rem/1.45 var(--font-mono);
}

/* Recognition sequence */
.recognition-head {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 4rem;
  align-items: end;
  margin-bottom: clamp(3rem, 6vw, 5.5rem);
}

.recognition-head .hvac-lede { justify-self: end; }

.work-sequence {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.work-sequence article {
  min-height: 16rem;
  padding: 1.7rem;
  border-right: 1px solid var(--border);
}

.work-sequence article:last-child { border-right: 0; }

.work-sequence span {
  display: block;
  margin-bottom: 4rem;
  color: var(--muted-dim);
  font: italic 500 1rem/1.2 var(--font-body);
}

.work-sequence h3 {
  margin-bottom: .75rem;
  font-size: 1.22rem;
  font-weight: 560;
  letter-spacing: -.025em;
}

.work-sequence p { color: var(--muted); line-height: 1.55; }

.recognition-close {
  max-width: 52ch;
  margin: 2.5rem 0 0 auto;
  color: var(--text);
  font-size: clamp(1.3rem, 2.3vw, 1.8rem);
  line-height: 1.4;
}

/* Outcomes */
.outcome-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin-top: 4.5rem;
  border-top: 1px solid var(--text);
  border-bottom: 1px solid var(--border);
}

.outcome-card {
  position: relative;
  min-height: 19rem;
  padding: clamp(2rem, 4vw, 3.5rem) clamp(1.5rem, 3vw, 2.8rem);
  border: 0;
  border-right: 1px solid var(--border);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.outcome-card:nth-child(1),
.outcome-card:nth-child(2),
.outcome-card:nth-child(3) { grid-column: auto; margin-top: 0; background: transparent; color: var(--text); transform: none; }
.outcome-card:nth-child(2) p { color: var(--muted); }
.outcome-card:last-child { border-right: 0; }

#what-we-organize[data-scrub] .outcome-card:nth-child(1) { transform: translate3d(0, calc(10px - var(--sp, .5) * 18px), 0); }
#what-we-organize[data-scrub] .outcome-card:nth-child(2) { transform: translate3d(0, calc(18px - var(--sp, .5) * 30px), 0); }
#what-we-organize[data-scrub] .outcome-card:nth-child(3) { transform: translate3d(0, calc(7px - var(--sp, .5) * 12px), 0); }

.outcome-card h3 {
  margin-bottom: 1rem;
  font-size: clamp(1.45rem, 2vw, 1.9rem);
  font-weight: 480;
  letter-spacing: -.035em;
}

.outcome-card p { color: var(--muted); line-height: 1.62; }

.scope-note {
  max-width: 48rem;
  margin: 3rem 0 0 auto;
  padding: 1.5rem 0;
  border-top: 1px solid var(--text);
  border-left: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--muted);
  line-height: 1.55;
}

.scope-note strong { color: var(--text); }

/* Process */
.process-layout {
  display: grid;
  grid-template-columns: .78fr 1.22fr;
  gap: clamp(3rem, 8vw, 8rem);
}

.process-intro { position: sticky; top: 8rem; align-self: start; }
.process-intro .hvac-lede { margin-top: 1.5rem; }

.process-list { position: relative; }

.process-list::before {
  position: absolute;
  top: 2.55rem;
  bottom: 2.55rem;
  left: .38rem;
  width: 1px;
  background: var(--border);
  content: '';
}

.process-step {
  position: relative;
  padding: 2rem 0 2rem 3rem;
}

.process-step::before {
  position: absolute;
  top: 2.45rem;
  left: 0;
  width: .8rem;
  height: .8rem;
  border: .22rem solid var(--canvas);
  border-radius: 0;
  background: var(--text);
  box-shadow: 0 0 0 1px var(--border);
  content: '';
}

.process-step h3 {
  margin-bottom: .65rem;
  font-size: 1.35rem;
  font-weight: 560;
  letter-spacing: -.025em;
}

.process-step p { max-width: 56ch; color: var(--muted); line-height: 1.62; }

.workflow-network {
  position: relative;
  height: 16rem;
  margin-top: 3rem;
  overflow: hidden;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background:
    radial-gradient(circle at 50% 50%, rgba(17,17,17,.055), transparent 32%),
    linear-gradient(180deg, rgba(246,247,248,.72), rgba(255,255,255,.3));
}

.workflow-network__lines {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.workflow-network__lines path {
  fill: none;
  stroke: #AEB3BA;
  stroke-width: 1.25;
  stroke-dasharray: 3 7;
  vector-effect: non-scaling-stroke;
  animation: networkFlow 9s linear infinite;
}

.workflow-network__core {
  position: absolute;
  top: 50%;
  left: 50%;
  display: grid;
  width: 4.6rem;
  height: 4.6rem;
  place-items: center;
  color: #fff;
  background: #0C0C0C;
  box-shadow: 0 22px 50px -26px rgba(15,17,20,.7), inset 0 1px 0 rgba(255,255,255,.22);
  clip-path: polygon(14% 0, 86% 0, 100% 14%, 100% 86%, 86% 100%, 14% 100%, 0 86%, 0 14%);
  transform: translate(-50%, -50%);
  animation: networkFloat 6s ease-in-out infinite;
}

.workflow-network__core svg { width: 2.2rem; }

.workflow-network__node {
  position: absolute;
  display: flex;
  align-items: center;
  gap: .45rem;
  color: var(--muted-dim);
  font: 590 .58rem/1 var(--font-mono);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.workflow-network__node::before {
  width: .52rem;
  height: .52rem;
  border: 1px solid #8F959D;
  border-radius: 50%;
  background: rgba(255,255,255,.82);
  box-shadow: 0 0 0 4px rgba(255,255,255,.74), 0 8px 20px -10px rgba(15,17,20,.9);
  content: '';
  animation: networkPulse 4.5s ease-in-out infinite;
}

.workflow-network__node--a { top: 18%; left: 5%; }
.workflow-network__node--b { right: 4%; bottom: 18%; }
.workflow-network__node--c { top: 18%; right: 4%; }
.workflow-network__node--d { bottom: 18%; left: 5%; }
.workflow-network__node--b::before { animation-delay: -1.1s; }
.workflow-network__node--c::before { animation-delay: -2.2s; }
.workflow-network__node--d::before { animation-delay: -3.3s; }

@keyframes networkFlow { to { stroke-dashoffset: -100; } }
@keyframes networkFloat {
  0%, 100% { transform: translate(-50%, -50%); }
  50% { transform: translate(-50%, calc(-50% - 5px)); }
}
@keyframes networkPulse {
  0%, 100% { box-shadow: 0 0 0 4px rgba(255,255,255,.74), 0 8px 20px -10px rgba(15,17,20,.9); }
  50% { box-shadow: 0 0 0 8px rgba(255,255,255,.25), 0 8px 24px -8px rgba(15,17,20,.78); }
}

/* Founder note */
.founder-section { position: relative; }
.founder-section::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--border), transparent);
  content: '';
}

.founder-note {
  display: grid;
  grid-template-columns: 1fr .8fr;
  gap: clamp(3rem, 8vw, 8rem);
  align-items: center;
}

.founder-note__copy .hvac-lede { margin-top: 1.5rem; }
.founder-signoff { margin-top: 2rem; font: 600 .9rem/1.5 var(--font-display); }
.founder-signoff span { color: var(--muted); font: italic 400 1rem/1.5 var(--font-body); }

.founder-note__paper {
  position: relative;
  padding: .3rem 0 .3rem clamp(1.5rem, 4vw, 3rem);
  border: 0;
  border-left: 2px solid var(--text);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: none;
}

.founder-note__paper::before { content: none; }

.founder-section[data-scrub] .founder-note__paper {
  transform: translate3d(0, calc(18px - var(--sp, .5) * 32px), 0);
}

.founder-note__paper p { font-size: clamp(1.3rem, 2.2vw, 1.8rem); line-height: 1.48; }
.founder-note__paper p + p { margin-top: 1.25rem; color: var(--muted); font-size: 1.05rem; }

/* Offer */
.offer-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #070809;
  color: #FFFFFF;
}

.offer-section::before {
  position: absolute;
  top: 10%;
  left: 56%;
  z-index: -2;
  width: min(82vw, 72rem);
  aspect-ratio: 1.7;
  background:
    radial-gradient(ellipse at 48% 52%, rgba(255,255,255,.2), rgba(174,181,190,.1) 24%, rgba(255,255,255,.025) 49%, transparent 70%);
  filter: blur(10px);
  content: '';
  pointer-events: none;
  transform: translate3d(calc(-50% + var(--sp, .5) * 80px - 40px), calc(var(--sp, .5) * -70px + 35px), 0) rotate(-10deg);
}

.offer-section::after {
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 52px 52px;
  content: '';
  opacity: .18;
  pointer-events: none;
  -webkit-mask-image: radial-gradient(ellipse at 68% 48%, #000, transparent 68%);
  mask-image: radial-gradient(ellipse at 68% 48%, #000, transparent 68%);
}

.offer-section .hvac-container { position: relative; z-index: 1; }
.offer-section .hvac-section-heading { color: #FFFFFF; }

.offer-grid {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: clamp(1rem, 2.2vw, 1.6rem);
  margin-top: clamp(4rem, 8vw, 7rem);
  overflow: visible;
  border: 0;
  border-top: 0;
  border-bottom: 0;
  border-radius: 0;
  background: transparent;
}

.offer-main,
.offer-boundaries {
  position: relative;
  overflow: hidden;
  padding: clamp(2rem, 5vw, 4rem);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 14px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.24),
    inset 0 -1px 0 rgba(255,255,255,.05),
    0 42px 100px -56px rgba(0,0,0,.9);
  backdrop-filter: blur(28px) saturate(110%);
  -webkit-backdrop-filter: blur(28px) saturate(110%);
}

.offer-main {
  border-right: 1px solid rgba(255,255,255,.24);
  background:
    radial-gradient(34rem circle at var(--spot-x) var(--spot-y), rgba(255,255,255,.16), transparent 44%),
    linear-gradient(145deg, rgba(255,255,255,.14), rgba(255,255,255,.035) 46%, rgba(160,168,178,.09));
  transform: translateY(-1rem);
}

.offer-boundaries {
  background:
    radial-gradient(30rem circle at var(--spot-x) var(--spot-y), rgba(255,255,255,.12), transparent 45%),
    linear-gradient(155deg, rgba(255,255,255,.075), rgba(255,255,255,.018) 52%, rgba(255,255,255,.055));
  transform: translateY(1rem);
}

.offer-main::before,
.offer-boundaries::before {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(118deg, rgba(255,255,255,.17), transparent 22%, transparent 69%, rgba(255,255,255,.06));
  content: '';
  pointer-events: none;
}

.offer-main::after,
.offer-boundaries::after {
  position: absolute;
  top: 0;
  right: 12%;
  left: 12%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.82), transparent);
  content: '';
  opacity: .55;
  pointer-events: none;
}

.offer-price {
  display: flex;
  align-items: baseline;
  gap: .8rem;
  margin: 1.2rem 0 1.8rem;
}

.offer-price strong {
  font: 150 clamp(4.5rem, 9vw, 7.6rem)/.9 var(--font-display);
  letter-spacing: -.07em;
}

.offer-price span { color: #C7CBD0; font: 500 .76rem/1.3 var(--font-mono); }

.offer-main > p { max-width: 50ch; color: #D2D5D9; font-size: 1.08rem; line-height: 1.6; }

.offer-section .plain-list li { color: #C7CBD0; }
.offer-section .plain-list li::before { background: #FFFFFF; }
.offer-section .btn-primary { background: #FFFFFF; color: #0C0C0C; border-color: #FFFFFF; box-shadow: 0 12px 30px -20px rgba(255,255,255,.8); }
.offer-section .btn-primary:hover { background: #E8EAED; }

.plain-list {
  display: grid;
  gap: .9rem;
  margin-top: 2rem;
  list-style: none;
}

.plain-list li {
  position: relative;
  padding-left: 1.4rem;
  color: var(--muted);
  line-height: 1.48;
}

.plain-list li::before {
  position: absolute;
  top: .65em;
  left: 0;
  width: .65rem;
  height: 1px;
  border-radius: 0;
  background: var(--text);
  content: '';
}

.offer-boundaries h3 { margin-bottom: 1rem; color: #FFFFFF; font-size: 1.25rem; font-weight: 580; }
.offer-boundaries p { color: #B9BEC5; line-height: 1.6; }
.offer-boundaries p + h3 { margin-top: 2.4rem; }

/* Guarantee */
.guarantee-section {
  position: relative;
  overflow: hidden;
  border-top: 1px solid rgba(255,255,255,.1);
  background: #08090A;
}

.guarantee-section::before {
  position: absolute;
  top: -18rem;
  left: 20%;
  width: 70rem;
  height: 28rem;
  background: radial-gradient(ellipse, rgba(255,255,255,.09), transparent 66%);
  content: '';
  pointer-events: none;
  transform: translate3d(calc(var(--sp, .5) * 100px - 50px), 0, 0);
}

.guarantee-layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr .95fr;
  gap: clamp(3rem, 8vw, 8rem);
  align-items: start;
}

.guarantee-promise {
  max-width: 11ch;
  font-size: clamp(3.2rem, 7vw, 6.2rem);
  font-weight: 120;
  letter-spacing: -.065em;
  line-height: .96;
}

.guarantee-details {
  padding-top: .8rem;
  color: #BDBDB9;
}

.guarantee-details p { line-height: 1.67; }
.guarantee-details p + p { margin-top: 1rem; }
.guarantee-details strong { color: var(--canvas); }

/* Fit */
.fit-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin-top: 3.5rem;
  border-top: 1px solid var(--text);
  border-bottom: 1px solid var(--border);
}

.fit-card {
  padding: clamp(1.7rem, 4vw, 3rem);
  border: 0;
  border-right: 1px solid var(--border);
  border-radius: 0;
  background: transparent;
}

.fit-card:last-child { border-right: 0; }
.fit-card--muted { background: transparent; }
.fit-card h3 { margin-bottom: 1rem; font-size: 1.4rem; font-weight: 560; }

/* FAQ */
.faq-layout {
  display: grid;
  grid-template-columns: .68fr 1.32fr;
  gap: clamp(3rem, 8vw, 8rem);
}

.faq-list { border-top: 1px solid var(--border); }

.faq-list details { border-bottom: 1px solid var(--border); }
.faq-list summary {
  position: relative;
  padding: 1.5rem 3rem 1.5rem 0;
  cursor: pointer;
  font: 560 1.08rem/1.4 var(--font-display);
  list-style: none;
}

.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after {
  position: absolute;
  top: 1.45rem;
  right: .25rem;
  content: '+';
  font: 300 1.45rem/1 var(--font-display);
}
.faq-list details[open] summary::after { content: '−'; }
.faq-list details div { padding: 0 3rem 1.5rem 0; }
.faq-list p { color: var(--muted); line-height: 1.65; }

/* Final CTA and supporting pages */
.final-cta {
  padding: clamp(5rem, 10vw, 9rem) 0;
  text-align: center;
}

.final-cta .hvac-section-heading { margin-inline: auto; max-width: 17ch; }
.final-cta .hvac-lede { margin: 1.5rem auto 0; }
.final-cta .hvac-actions { justify-content: center; }

.support-hero {
  padding: clamp(9rem, 15vw, 12rem) 0 clamp(4rem, 8vw, 7rem);
  border-bottom: 1px solid var(--border);
}
.support-hero h1 {
  max-width: 15ch;
  font-size: clamp(3rem, 7vw, 6rem);
  font-weight: 120;
  letter-spacing: -.06em;
  line-height: .96;
}
.support-hero p { margin-top: 1.5rem; }

.support-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  padding-bottom: 3rem;
  border-top: 1px solid var(--text);
}

.support-card {
  position: relative;
  min-height: 18rem;
  padding: clamp(1.7rem, 4vw, 3rem);
  border: 0;
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.support-card:nth-child(even) { border-right: 0; transform: none; }
.support-card h2 { margin: 1rem 0; max-width: 16ch; font-size: clamp(1.7rem, 3vw, 2.5rem); font-weight: 300; letter-spacing: -.04em; }
.support-card p { color: var(--muted); line-height: 1.62; }

.legal-copy { max-width: 780px; }
.legal-copy h1 { margin-bottom: .75rem; }
.legal-copy .legal-date { margin-bottom: 3rem; color: var(--muted-dim); font: 500 .72rem/1.4 var(--font-mono); }
.legal-copy h2 { margin: 2.5rem 0 .8rem; font-size: 1.55rem; font-weight: 520; letter-spacing: -.025em; }
.legal-copy p, .legal-copy li { color: var(--muted); line-height: 1.7; }
.legal-copy p + p { margin-top: 1rem; }
.legal-copy ul { margin: 1rem 0 0 1.2rem; }
.legal-copy a { color: var(--text); text-underline-offset: .25em; }

.workflow-form-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr);
  gap: clamp(2rem, 7vw, 6rem);
  align-items: start;
}

.workflow-form-card {
  padding: clamp(1.5rem, 4vw, 3rem);
  border: 1px solid var(--border);
  border-radius: 0;
  background: var(--surface);
  box-shadow: none;
}

.workflow-form-card h2 {
  margin-bottom: .65rem;
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  font-weight: 320;
  letter-spacing: -.04em;
}

.workflow-form-card > p { margin-bottom: 1.8rem; color: var(--muted); line-height: 1.6; }
.workflow-form-card form { display: grid; gap: 1.2rem; }
.workflow-form-card .btn { width: 100%; }

.workflow-aside {
  display: grid;
  gap: 1rem;
}

.workflow-aside-card {
  padding: 1.7rem;
  border: 1px solid var(--border);
  border-radius: 0;
  background: var(--canvas-deep);
}

.workflow-aside-card h2,
.workflow-aside-card h3 { margin-bottom: .7rem; font-size: 1.2rem; font-weight: 560; }
.workflow-aside-card p { color: var(--muted); line-height: 1.62; }
.workflow-aside-card .plain-list { margin-top: 1rem; }
.workflow-aside-card .btn { margin-top: 1.2rem; }

.direct-links { display: grid; margin-top: 1rem; border-top: 1px solid var(--border); }
.direct-links a { min-height: 44px; padding: .85rem 0; border-bottom: 1px solid var(--border); color: var(--text); font: 550 .78rem/1.4 var(--font-mono); text-decoration: none; }
.direct-links a:hover { text-decoration: underline; text-underline-offset: .25em; }

@media (max-width: 920px) {
  .hvac-hero { min-height: auto; }
  .hvac-hero-grid,
  .recognition-head,
  .process-layout,
  .founder-note,
  .offer-grid,
  .guarantee-layout,
  .faq-layout,
  .workflow-form-layout { grid-template-columns: 1fr; }
  .recognition-head { gap: 1.5rem; }
  .recognition-head .hvac-lede { justify-self: start; }
  .work-sequence { grid-template-columns: repeat(2, 1fr); }
  .work-sequence article:nth-child(2) { border-right: 0; }
  .work-sequence article:nth-child(-n+2) { border-bottom: 1px solid var(--border); }
  .outcome-grid { grid-template-columns: 1fr; }
  .outcome-card,
  .outcome-card:nth-child(1),
  .outcome-card:nth-child(2),
  .outcome-card:nth-child(3) { grid-column: auto; min-height: auto; margin-top: 0; border-right: 0; border-bottom: 1px solid var(--border); transform: none; }
  .outcome-card:last-child { border-bottom: 0; }
  #what-we-organize[data-scrub] .outcome-card:nth-child(1),
  #what-we-organize[data-scrub] .outcome-card:nth-child(2),
  #what-we-organize[data-scrub] .outcome-card:nth-child(3) { transform: none; }
  .offer-main { border-right: 1px solid rgba(255,255,255,.2); border-bottom: 1px solid rgba(255,255,255,.2); transform: none; }
  .offer-boundaries { transform: none; }
  .process-intro { position: static; }
  .workflow-network { width: min(100%, 34rem); }
  [data-depth-card] { transform: none; will-change: auto; }
}

@media (max-width: 640px) {
  .hvac-container { width: min(100% - 2rem, 1160px); }
  .hvac-display { font-size: clamp(3rem, 15vw, 4.5rem); }
  .hvac-hero-grid { grid-template-columns: 1fr; }
  .workflow-board { transform: none; }
  .workflow-row { grid-template-columns: 1fr; }
  .workflow-row__state { justify-self: start; }
  .work-sequence,
  .fit-grid,
  .support-grid { grid-template-columns: 1fr; }
  .fit-card,
  .support-card,
  .support-card:nth-child(even) { border-right: 0; border-bottom: 1px solid var(--border); }
  .fit-card:last-child { border-bottom: 0; }
  .work-sequence article { min-height: auto; border-right: 0; border-bottom: 1px solid var(--border); }
  .work-sequence article:last-child { border-bottom: 0; }
  .work-sequence span { margin-bottom: 3rem; }
  .offer-main, .offer-boundaries { padding: 1.5rem; }
  .offer-price strong { font-size: 4.5rem; }
  .support-card,
  .support-card:nth-child(even) { min-height: auto; transform: none; }
  .support-card h2 { margin-top: .5rem; }
  .founder-note__paper,
  .founder-section[data-scrub] .founder-note__paper { transform: none; }
  .sonar-grid-canvas { opacity: .9; }
  .hvac-hero-copy::before { inset: -3rem -2rem; }
}

/* Monochrome material system shared by every public route. */
.hvac-page .site-nav {
  background: transparent;
  border: 0;
  border-radius: 10px;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.hvac-page .site-nav.is-scrolled {
  background: rgba(15,15,15,.88);
  box-shadow: 0 12px 32px -24px #000;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.hvac-page .nav-links { gap: clamp(1rem, 2vw, 1.75rem); }
.hvac-page .nav-actions .btn { min-height: 44px; padding: .65rem 1.2rem; border-radius: 6px; font-size: .78rem; letter-spacing: 0; text-transform: none; }
.hvac-page .nav-progress { display: none; }
.hvac-page .btn-primary { color: #080808; background: #F5F5F5; }
.hvac-page .btn-primary:hover { background: #DCDCDC; }
.hvac-page .btn-secondary { background: #181818; color: #F5F5F5; }
.hvac-page .btn-secondary:hover { background: #252525; }
.hvac-section--dark { color: #F5F5F5; }
.guarantee-details strong { color: #FFFFFF; }
.hvac-hero-copy::before {
  background: radial-gradient(ellipse at 50% 48%, rgba(8,8,8,.94), rgba(8,8,8,.68) 45%, transparent 74%);
}
.workflow-board {
  background: radial-gradient(24rem circle at var(--spot-x) var(--spot-y), rgba(255,255,255,.08), transparent 48%), rgba(16,16,16,.88);
}
.workflow-row::before { background: #EEEEEE; }
.workflow-board::after { background: linear-gradient(to bottom, transparent, rgba(255,255,255,.08), transparent); }
.offer-section, .guarantee-section { background-color: #080808; }
.offer-main > p, .offer-section .plain-list li, .offer-price span { color: #CCCCCC; }
.offer-boundaries p, .guarantee-details { color: #BDBDBD; }

/* The workflow now occupies its own large stage, followed by the process. */
.process-layout { display: block; }
.process-intro {
  position: static;
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  align-items: start;
  gap: 2rem 5rem;
}
.process-intro .hvac-section-heading { max-width: 19ch; }
.process-intro .hvac-lede { margin-top: .5rem; }
.workflow-network {
  grid-column: 1 / -1;
  width: 100%;
  height: clamp(360px, 44vw, 580px);
  margin-top: 2rem;
  border-color: #353535;
  background: radial-gradient(ellipse at center, rgba(255,255,255,.065), transparent 58%), #0A0A0A;
}
.workflow-network__core {
  width: clamp(90px, 13vw, 160px);
  height: clamp(90px, 13vw, 160px);
  background: linear-gradient(135deg, #555, #181818 23%, #090909 65%, #404040);
  box-shadow: inset 0 1px 2px #AAA, inset 0 -1px 2px #555, 0 24px 65px #000;
}
.workflow-network__core svg { width: 48%; }
.workflow-network__lines path { stroke: #888; stroke-width: 1.5; }
.workflow-network__node {
  justify-content: center;
  width: clamp(100px, 16vw, 185px);
  min-height: clamp(64px, 8vw, 96px);
  padding: .8rem;
  border: 1px solid #565656;
  border-radius: 8px;
  background: linear-gradient(135deg, #292929, #111 70%);
  box-shadow: inset 0 1px 0 #666, 0 16px 40px -20px #000;
  color: #EEE;
  font: 500 clamp(.78rem, 1.5vw, 1.15rem)/1.3 var(--font-display);
  text-transform: none;
  letter-spacing: -.02em;
}
.workflow-network__node::before { display: none; }
.workflow-network__node--a { top: 23.2%; left: 8%; transform: translate(-25%, -50%); }
.workflow-network__node--c { top: 23.2%; right: 8%; transform: translate(25%, -50%); }
.workflow-network__node--d { bottom: 23.2%; left: 8%; transform: translate(-25%, 50%); }
.workflow-network__node--b { bottom: 23.2%; right: 8%; transform: translate(25%, 50%); }
.process-list { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 3rem; gap: 2rem; }
.process-list::before, .process-step::before { content: none; }
.process-step { padding: 1.6rem 0 0; border-top: 1px solid #555; }
.process-step h3 { font-size: 1.12rem; }

@media (max-width: 920px) {
  .process-intro { grid-template-columns: 1fr; gap: 1.5rem; }
  .process-list { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .process-list { grid-template-columns: 1fr; gap: 1rem; }
  .workflow-network { height: 360px; margin-top: 1rem; }
  .workflow-network__node { width: 100px; min-height: 60px; }
}

@media (prefers-reduced-motion: reduce) {
  .hvac-page *,
  .hvac-page *::before,
  .hvac-page *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
