/* Northwind Heating & Air — page compositions built from the Raylo DNA (tokens only). Prefix: nw- */

/* ── Hero (hero-d) — taller, leaves room for the dispatch card to overlap ── */
.nw-hero { min-height: clamp(760px, 62vw, 900px); display: flex; align-items: flex-end; padding-bottom: 136px; }
.nw-hero .v-hero-d__grid { grid-template-columns: 1fr 408px; }
.nw-hero__title { max-width: 780px; }
.nw-hero .v-hero-d__text .t-lead { max-width: 500px; }
.nw-hero .hero__media img { object-position: 40% 60%; }
.nw-form { box-shadow: var(--shadow-2); }
.nw-form__row { display: grid; grid-template-columns: 1.4fr 1fr; gap: 12px; }

/* ── Dispatch pulse (new): white card overlapping the hero's rounded foot ── */
.nw-pulse { position: relative; z-index: 2; margin-top: -72px; }
.nw-pulse__card { display: grid; grid-template-columns: repeat(4, 1fr); padding: 8px; border-radius: var(--r); background: var(--surface); box-shadow: var(--shadow-1); }
.nw-pulse__cell { display: flex; flex-direction: column; gap: 10px; padding: 24px 28px; border-left: 1px solid var(--line); }
.nw-pulse__cell:first-child { border-left: 0; }
.nw-pulse__k { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font-size: 13px; text-transform: uppercase; letter-spacing: .04em; }
.nw-pulse__n { font-family: var(--font-display); font-size: 44px; line-height: 1; letter-spacing: -.056em; font-weight: 600; color: var(--text); }
.nw-pulse__d { color: var(--text-2); font-size: 14px; }
.nw-live { position: relative; width: 8px; height: 8px; border-radius: 50%; background: var(--success); }
.nw-live::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 1.5px solid var(--success); opacity: 0; animation: nw-ping 2.4s var(--ease-out) infinite; }
@keyframes nw-ping { 0% { transform: scale(.5); opacity: .8; } 100% { transform: scale(1.6); opacity: 0; } }

/* ── Symptom picker (new): portrait photo + 6 tappable tiles ── */
.nw-sym { padding-top: var(--section); }
.nw-sym__grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: minmax(236px, auto); gap: var(--card-gap); }
.nw-sym__photo { position: relative; grid-row: span 2; border-radius: var(--r); overflow: hidden; background: var(--surface-3); }
.nw-sym__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nw-chip { position: absolute; left: 16px; right: 16px; bottom: 16px; padding: 10px 14px; border-radius: var(--r-sm); background: var(--surface); color: var(--text); font-size: 14px; font-weight: 500; line-height: 1.35; }
.nw-sym__tile { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 24px; border-radius: var(--r); background: var(--surface); color: var(--text); transition: background var(--dur-fast) var(--ease); }
.nw-sym__tile:hover { background: var(--surface-2); }
.nw-sym__tile p { color: var(--text-2); font-size: 15px; max-width: 26ch; }
.nw-sym__t { font-family: var(--font-display); font-size: 20px; line-height: 1.3; letter-spacing: -.025em; font-weight: 600; margin-top: auto; }
.nw-well { display: grid; place-items: center; width: 52px; height: 52px; border-radius: var(--r-sm); background: var(--accent-soft); color: var(--accent-ink); }
.nw-well svg { width: 26px; height: 26px; }
.nw-sym__go { position: absolute; top: 24px; right: 24px; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--surface-2); color: var(--text); transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease); }
.nw-sym__go svg { width: 20px; height: 20px; }
.nw-sym__tile:hover .nw-sym__go { background: var(--ink-bg); color: var(--on-dark); transform: rotate(45deg); }

/* ── Call → cold air (new): head + van photo, then a four-stop time track ── */
.nw-run__top { display: grid; grid-template-columns: 5fr 7fr; gap: 56px; align-items: end; }
.nw-run__top .sec-head { margin-bottom: 8px; }
.nw-run__photo { position: relative; height: 380px; border-radius: var(--r); overflow: hidden; }
.nw-run__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nw-run__track { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--card-gap); margin-top: 56px; counter-reset: stop; }
.nw-stop { display: flex; flex-direction: column; gap: 12px; padding: 28px; border-radius: var(--r); background: var(--surface); }
.nw-stop__t { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; font-family: var(--font-display); font-size: 32px; line-height: 1; letter-spacing: -.05em; font-weight: 600; color: var(--accent-ink); white-space: nowrap; }
.nw-stop__t::after { content: ""; flex: 1; height: 1px; background: repeating-linear-gradient(90deg, var(--line-2) 0 6px, transparent 6px 12px); }
.nw-stop p { color: var(--text-2); font-size: 15px; }

/* ── Comfort Club (new): comparison table + price well in one white card ── */
.nw-plan { display: grid; grid-template-columns: 7fr 5fr; gap: 8px; padding: 8px; border-radius: var(--r-lg); background: var(--surface); }
.nw-plan__main { padding: 48px 48px 40px; }
.nw-plan__main .sec-head { margin-bottom: 40px; }
.nw-cmp { width: 100%; border-collapse: collapse; font-size: 15px; }
.nw-cmp thead th { padding: 0 16px 14px; color: var(--muted); font-size: 13px; font-weight: 400; text-transform: uppercase; letter-spacing: .04em; text-align: left; }
.nw-cmp tbody th, .nw-cmp tbody td { padding: 16px; border-top: 1px solid var(--line); text-align: left; }
.nw-cmp tbody th { padding-left: 0; font-weight: 500; color: var(--text); }
.nw-cmp td { color: var(--text-2); font-weight: 300; }
.nw-cmp td.is-club { color: var(--text); font-weight: 500; }
.nw-plan__price { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: 16px; padding: 48px; border-radius: var(--r); background: var(--surface-2); justify-content: space-between; }
.nw-plan__label { color: var(--text); font-size: 13px; text-transform: uppercase; letter-spacing: .04em; }
.nw-plan__amt { font-family: var(--font-display); font-size: 72px; line-height: 1; letter-spacing: -.048em; font-weight: 600; color: var(--text); }
.nw-plan__amt span { margin-left: 6px; font-size: 18px; letter-spacing: -.02em; font-weight: 300; color: var(--text-2); }
.nw-plan__note { color: var(--text-2); font-size: 15px; }
.nw-plan__price .btn { margin-top: 12px; }
.nw-plan__top { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.nw-plan__quote { padding-top: 24px; border-top: 1px solid var(--line-2); font-size: 15px; line-height: 1.55; font-weight: 300; color: var(--text); }
.nw-plan__quote cite { display: block; margin-top: 10px; font-style: normal; font-size: 14px; color: var(--text-2); }

/* ── Responsive ── */
@media (max-width: 1024px) {
  .nw-sym__grid { grid-template-columns: repeat(2, 1fr); }
  .nw-sym__photo { grid-row: auto; grid-column: 1 / -1; min-height: 360px; }
  .nw-run__track { grid-template-columns: repeat(2, 1fr); }
  .nw-plan { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  .nw-hero { padding-bottom: 120px; }
  .nw-hero .v-hero-d__grid { grid-template-columns: 1fr; }
  .nw-pulse__card { grid-template-columns: repeat(2, 1fr); }
  .nw-pulse__cell:nth-child(3) { border-left: 0; }
  .nw-pulse__cell:nth-child(n+3) { border-top: 1px solid var(--line); }
  .nw-run__top { grid-template-columns: 1fr; gap: 32px; }
  .nw-run__photo { height: 320px; }
}
@media (max-width: 560px) {
  .nw-hero { padding-bottom: 104px; }
  .nw-form__row { grid-template-columns: 1fr; }
  .nw-pulse { margin-top: -56px; }
  .nw-pulse__cell { padding: 18px 16px; }
  .nw-pulse__n { font-size: 32px; }
  .nw-sym__grid { grid-template-columns: 1fr; grid-auto-rows: auto; }
  .nw-sym__photo { min-height: 300px; }
  .nw-sym__tile { display: grid; grid-template-columns: 52px 1fr; column-gap: 16px; row-gap: 4px; padding: 18px; }
  .nw-sym__tile .nw-well { grid-row: span 2; }
  .nw-sym__t { margin-top: 2px; font-size: 18px; }
  .nw-sym__tile p { font-size: 14px; }
  .nw-sym__go { display: none; }
  .nw-run__track { grid-template-columns: 1fr; margin-top: 40px; }
  .nw-run__photo { height: 240px; }
  .nw-plan__main { padding: 28px 20px 20px; }
  .nw-plan__price { padding: 28px 20px; }
  .nw-plan__amt { font-size: 56px; }
  .nw-cmp { font-size: 14px; }
  .nw-cmp thead th, .nw-cmp tbody td { padding-inline: 8px; }
}

/* FAQ sits on a two-column grid; give the CTA band the full section rhythm */
.nw-faq { padding-bottom: calc(var(--section) / 2 + 40px); }

/* The red accent is too dark on espresso for a 3:1 icon — phone icons on dark pills go white */
.nw-page .btn--dark svg { color: var(--on-dark); }
.svc-card.v-feat .tag { background: color-mix(in srgb, var(--gs-text) 78.0%, transparent); }

/* ── Alternate image sides: van photo (right) → family photo (left). Desktop only; phone stacks as before ── */
@media (min-width: 901px) {
  #reviews .v-quote { grid-template-columns: 5fr 7fr; }
  #reviews .v-quote__media { order: -1; }
}

/* Tree service compositions */
.rs-tag{display:inline-flex;align-items:center;gap:8px}.rs-tag svg{width:16px;height:16px;flex:none}
.rs-header-bar{max-width:1272px;width:calc(100% - 48px);gap:24px}.rs-header .logo{line-height:1.05}.rs-header .logo span{display:block}.rs-header .nav-links{gap:22px}.rs-header .bar{background: var(--gs-surface)}
.rs-about{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}.rs-about>img{width:100%;height:520px;object-fit:cover;border-radius: 16px}.rs-about .sec-head{text-align:left;margin-bottom:24px}.rs-about p{margin-bottom:24px}
.rs-work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.rs-work-card{background: var(--gs-surface);border-radius: 16px;overflow:hidden}.rs-work-card>img{height:310px;width:100%;object-fit:cover}.rs-work-card>div{padding:28px}.rs-work-card p{margin-top:8px;color: var(--gs-muted)}
.rs-areas{text-align:center}.rs-area-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:32px}.rs-area-list>span{background: var(--gs-surface);border-radius: 16px;padding:24px}
.rs-trust{padding-top:48px;padding-bottom:0}.rs-trust-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:48px;align-items:center}.rs-trust h2{margin-top:18px}.rs-credentials{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.rs-credentials dt{color: var(--gs-muted);margin-bottom:8px}.rs-credentials dd{margin:0}
.rs-services-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.rs-service-card{display:flex;flex-direction:column;justify-content:space-between;gap:28px;padding:24px;background: var(--gs-surface);border-radius: 16px}.rs-service-card .v-row__t{display:flex;flex-direction:column;gap:8px}.rs-service-card .t-h4{color: var(--gs-accent)}
.rs-review{position:relative}.rs-review .v-quote__media{height:540px;border-radius: 16px;overflow:hidden}.rs-review .v-quote__media img{height:100%;width:100%;object-fit:cover}.rs-review .v-quote__card{position:relative;margin:-130px 40px 0 auto;width:55%;padding:40px;background: var(--gs-surface);border-radius: 16px}.rs-review .v-quote__text{font-size:var(--h3-size,24px)}
.rs-process-grid{grid-template-columns:repeat(2,1fr)}.rs-process-card{display:flex;flex-direction:column;gap:12px;padding:30px;border-radius: 16px;background: var(--gs-surface)}.rs-process-card .nw-stop__t{margin:20px 0 0;justify-content:flex-end}.rs-process-card .nw-stop__t::after{display:none}
.rs-faq{max-width:940px}.rs-cta{display:grid;grid-template-columns:1fr 1fr;border-radius: 24px;overflow:hidden;background: var(--gs-dark);color: var(--gs-on-dark)}.rs-cta>img{width:100%;height:560px;object-fit:cover}.rs-cta-copy{padding:64px 48px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:28px}.rs-cta-copy .sec-head{text-align:left;margin:0}.rs-cta-copy h2,.rs-cta-copy p{color: var(--gs-on-dark)}.rs-cta-copy .btn{background: var(--gs-surface);color: var(--gs-text)}
.rs-foot-grid{display:grid;grid-template-columns:2fr 1fr;gap:80px;padding-bottom:48px}.rs-foot-grid p{margin:18px 0}.rs-foot-links{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-content:start}.rs-foot-grid a{overflow-wrap:anywhere}
@media(max-width:900px){.rs-header .nav-links{display:none}.rs-header .nav-toggle{display:block}.rs-header-bar{gap:12px}.rs-about{gap:32px}.rs-trust-grid{grid-template-columns:1fr}.rs-cta-copy{padding:40px 28px}.rs-credentials{gap:16px}}
@media(max-width:600px){.rs-header-bar{width:calc(100% - 24px)}.rs-header .logo{font-size:var(--gs-logo-small,16px)}.rs-header-bar>.btn{display:none}.rs-about,.rs-cta,.rs-foot-grid{grid-template-columns:1fr;gap:28px}.rs-about>img{height:340px}.rs-work-grid{grid-template-columns:1fr}.rs-work-card>img{height:280px}.rs-area-list{grid-template-columns:repeat(2,1fr);gap:12px}.rs-area-list>span{padding:18px 10px}.rs-credentials{grid-template-columns:1fr;gap:22px}.rs-services-grid{grid-template-columns:1fr 1fr}.rs-service-card{padding:18px}.rs-review .v-quote__media{height:330px}.rs-review .v-quote__card{margin:-40px 12px 0;width:calc(100% - 24px);padding:24px}.rs-process-grid{grid-template-columns:1fr}.rs-cta>img{height:300px}.rs-cta-copy{padding:32px 24px}.rs-foot-grid{gap:32px}.rs-foot-links{gap:20px}}
.rs-about .sec-head,.rs-cta-copy .sec-head{align-items:flex-start;margin-inline:0}.rs-about>*{min-width:0}.rs-about>img{max-width:100%}.rs-about .sec-head p{margin-inline:0}.rs-about .sec-head h2{max-width:100%}

.rs-tag{width:fit-content;align-self:flex-start;background: var(--gs-surface);padding:6px 12px}.sec-head:not(.sec-head--left)>.rs-tag{align-self:center}.rs-about .sec-head>.rs-tag,.rs-cta .sec-head>.rs-tag{align-self:flex-start}
.rs-header .logo{line-height:1.4}.rs-header .logo span{line-height:1.4}.rs-feature-title{font-size:var(--rs-card-heading,24px)!important} /* needed: feature card title must stay below 32px mobile section heading */
.rs-service-card .t-h4{display:flex;align-items:center;justify-content:space-between}.rs-service-card svg{width:20px;height:20px}
.rs-about>img{order:2}.rs-about>div{order:1}.rs-about .sec-head{align-items:flex-start}
[data-gs-section="section-9"]{padding-top:40px}.sh-talvo-d .sh-copy{justify-content:center;padding-top:36px}.sh-talvo-d .sh-story{box-shadow: none}.sh-talvo-d .sh-frame{overflow:clip;overflow-clip-margin:44px}.sh-talvo-d .sh-ctas .btn{color: var(--gs-on-brand);background: var(--gs-brand)}
.rs-header.site-head,.rs-header.site-head.is-fixed{top:22px;position:fixed;padding-top:0}.rs-header .nav-end{display:flex}
@media(max-width:600px){.rs-about>img{order:1}.rs-about>div{order:2}.sh-talvo-d .sh-copy{padding-top:16px}.rs-header .nav-end>.nav-toggle{display:flex}}
body.nw-page .sh-talvo-d{padding-top:160px}body.nw-page .sh-talvo-d .sh-copy{justify-content:center;padding-top:0}body.nw-page .sh-talvo-d .sh-story{box-shadow: none}body.nw-page .sh-talvo-d .sh-frame{overflow:clip;overflow-clip-margin:44px}
body.nw-page .v-feat>.rs-tag{background: var(--gs-surface);color: var(--gs-text);z-index:2;isolation:isolate}body.nw-page .v-feat>.rs-tag>span{background: var(--gs-surface);color: var(--gs-text)}
@media(max-width:600px){body.nw-page .sh-talvo-d{padding-top:125px}body.nw-page .sh-talvo-d .sh-copy{padding-top:8px}}
body.nw-page .rs-header .bar{width:min(1272px,calc(100% - 48px));max-width:1272px}body.nw-page .rs-header .nav-toggle{color: var(--gs-text)}body.nw-page .rs-header .nav-toggle svg{stroke: var(--gs-text);width:24px;height:24px}
@media(max-width:600px){body.nw-page .rs-header .bar{width:calc(100% - 32px)}}

.rs-trust-panel .sec-head{margin-bottom:28px}.rs-trust-panel .rs-credentials{grid-template-columns:repeat(3,1fr);gap:24px}.rs-trust-panel .rs-credentials>div{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:20px 16px}.rs-trust-panel .rs-credentials dt{margin:0}.rs-proof-icon{display:flex;color: var(--gs-accent);margin-bottom:6px}.rs-proof-icon svg{width:32px;height:32px}.rs-trust{padding-bottom:24px}@media(max-width:600px){.rs-trust-panel .rs-credentials{grid-template-columns:1fr;gap:16px}.rs-trust-panel .rs-credentials>div{padding:12px 16px}.rs-trust-panel .sec-head{margin-bottom:24px}}

.rs-region{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}.rs-region>img{width:100%;height:480px;object-fit:cover;border-radius: 16px}.rs-region-copy{min-width:0}.rs-region .sec-head{margin:0 0 28px;align-items:flex-start;text-align:left}.rs-region .rs-area-list{grid-template-columns:repeat(2,1fr);gap:12px;text-align:left;margin-bottom:24px}.rs-region .rs-area-list>span{padding:14px 16px;background: var(--gs-surface);border-radius: 16px}@media(max-width:600px){.rs-region{grid-template-columns:1fr;gap:28px}.rs-region>img{height:300px}.rs-region .rs-area-list{grid-template-columns:repeat(2,1fr)}}

body.nw-page .rs-header .nav-toggle{display:grid;place-items:center;padding:0}body.nw-page .rs-header .nav-toggle svg{margin:0}
body.nw-page .rs-trust{min-height:460px;padding-top:72px;padding-bottom:72px}body.nw-page .rs-region>img{order:1}body.nw-page .rs-region-copy{order:2}body.nw-page .rs-region .rs-area-list>span{padding:10px 0;background: transparent;border-radius: 0;border-bottom: 1px solid var(--gs-border)}
@media(max-width:600px){body.nw-page .rs-trust{min-height:0;padding-top:48px;padding-bottom:48px}}
body.nw-page .sh-talvo-d{padding-bottom:48px}body.nw-page .rs-trust{min-height:0;padding-top:48px;padding-bottom:48px}.rs-trust-panel{min-height:364px;display:flex;flex-direction:column;justify-content:space-between}body.nw-page [data-gs-section="section-4"]{padding-top:48px}
@media(max-width:600px){.rs-trust-panel{min-height:0;display:block}}

body.nw-page .rs-header .logo img{width:180px;height:auto;object-fit:contain}body.nw-page .rs-header .nav-end{display:none}@media(max-width:900px){body.nw-page .rs-header .nav-end{display:flex}}@media(max-width:600px){body.nw-page .rs-header .logo img{width:140px;height:auto}body.nw-page .sh-talvo-d{padding-top:140px}}
