/* ---- kelvin (Kelvin — Cold-chain & refrigeration care 209) ------------------
   THE STRUCTURAL MOVE: the page alternates on purpose, band by band. Every
   full-bleed band — the six services, the four portraits, the four plans — is a
   WHITE PLATE that runs to the window edge; every contained band stays inside
   the shared measure on the faint-blue cold-store ground, so the two grounds
   trade places all the way down. The lull that makes the alternation visible is
   a numbered checklist of six with no picture anywhere near it. Only two
   moments go dark: the full-window three-slide stage at the top, and the
   scrimmed compressor-room band three quarters down, which carries the page's
   only two figures (::first-line does the figure, a forced newline under
   white-space:pre-line does the break). Ice blue is rationed to four things —
   the slab buttons, the icon strokes, the recommended plan's cap and the plan
   ticks — and spent nowhere else.
   nth-child is used only INSIDE .ws-pricing-grid, where every sibling is a
   .ws-plan; nothing here uses :nth-of-type, which would match the section
   element and silently miss (the hero is always the first section). The header
   is floated over the photograph by moving .ws-nav ITSELF — nothing inside the
   bar is positioned, ordered or re-flowed. */
body.t-kelvin.ws-body {
  --bg: #f2f6f8; --fg: #39434a; --heading: #12181c; --text: #444e55; --muted: #7f8990;
  --klv-ice: #1d8fb5; --klv-line: #d3dde2; --klv-dark: #171d22; --klv-card: #ffffff;
  --hero-a: rgba(15, 20, 24, .30); --hero-b: rgba(15, 20, 24, .68);
}

/* the shared sheet's alternating wash is switched off — the white plates below do all the punctuation */
body.t-kelvin.ws-body .ws-section:nth-child(even):not(.ws-cta):not(.ws-shoplink) { background: transparent; }

/* every hardcoded grey in the shared sheet re-pointed at a token, so the night block actually moves the page */
body.t-kelvin .ws-sub, body.t-kelvin .ws-feature p, body.t-kelvin .ws-story-copy p, body.t-kelvin .ws-member p, body.t-kelvin .ws-quote blockquote, body.t-kelvin .ws-plan li, body.t-kelvin .ws-list li { color: var(--text); }

/* the bar floats over the photograph — the BAR, never its contents */
body.t-kelvin .ws-nav { position: absolute; top: 0; left: 0; right: 0; background: transparent; backdrop-filter: none; border-bottom: 0; color: #eef5f8; }
body.t-kelvin .ws-nav-links a:hover, body.t-kelvin .ws-nav-links a.on { color: #ffffff; }

/* first dark moment: the whole window, three slides cross-fading behind copy that never moves */
body.t-kelvin .ws-hero { min-height: 100vh; background-color: var(--klv-dark); }
body.t-kelvin .ws-hero h1 { font-size: clamp(32px, 5.6vw, 62px); font-weight: 700; letter-spacing: -.035em; line-height: 1.06; }

/* flat ice slabs — the accent's first job, and it keeps no border anywhere */
body.t-kelvin.ws-body .btn.brand, body.t-kelvin.ws-body .ws-hero-cta.btn.brand, body.t-kelvin.ws-body .ws-cta .btn.brand { background: var(--klv-ice); color: #ffffff; border-radius: 2px; box-shadow: none; padding: 15px 30px; font-size: 13.5px; font-weight: 650; letter-spacing: .04em; }

/* THE ALTERNATION — the three full-bleed bands are white plates to the window edge */
body.t-kelvin.ws-body .ws-section.ws-features:not(.ws-cta):not(.ws-shoplink), body.t-kelvin.ws-body .ws-section.ws-team:not(.ws-cta):not(.ws-shoplink), body.t-kelvin.ws-body .ws-section.ws-pricing:not(.ws-cta):not(.ws-shoplink) { background: var(--klv-card); }
body.t-kelvin .ws-features .ws-container, body.t-kelvin .ws-team .ws-container, body.t-kelvin .ws-pricing .ws-container { max-width: none; padding: 0 clamp(22px, 4vw, 66px); }

/* six services three across, twice over — no orphan tile */
body.t-kelvin .ws-features-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
/* the widest grids on the page: four portraits, four tiers */
body.t-kelvin .ws-team-grid, body.t-kelvin .ws-pricing-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; max-width: none; margin: 0; }
/* one card shape for both gridded bands: pale ground, no radius, a steel cap */
body.t-kelvin .ws-feature, body.t-kelvin .ws-plan { background: var(--bg); text-align: left; border: 0; border-top: 3px solid var(--klv-line); border-radius: 0; box-shadow: none; padding: 28px 26px 34px; }
/* the one ice cap on the page */
body.t-kelvin .ws-pricing-grid .ws-plan:nth-child(3) { border-top-color: var(--klv-ice); }
/* the accent's other three jobs, all strokes, never a fill */
body.t-kelvin .ws-feature-icon, body.t-kelvin .ws-plan li::before, body.t-kelvin .ws-quote blockquote::before { color: var(--klv-ice); }

/* contained: text at roughly 70%, the photograph a third wide and hung from the TOP */
body.t-kelvin .ws-story-grid { grid-template-columns: minmax(0, 2.3fr) minmax(0, 1fr); gap: 56px; align-items: start; }
body.t-kelvin .ws-story-media img { border-radius: 2px; aspect-ratio: 3 / 4; }

/* the lull: six numbered checks on hairlines, and no imagery at all */
body.t-kelvin .ws-list li { border-bottom: 1px solid var(--klv-line); padding: 15px 0 15px 6px; font-size: 15.5px; line-height: 1.6; }

/* portraits are square crops on the white plate, not badges */
body.t-kelvin .ws-member-photo img { width: 100%; height: auto; aspect-ratio: 1 / 1; border-radius: 2px; }

/* one still, full width, no gutter — the break in the grid rhythm */
body.t-kelvin .ws-photogrid, body.t-kelvin .ws-photogrid .ws-container { padding: 0; max-width: none; }
body.t-kelvin .ws-photogrid-grid { grid-template-columns: 1fr; gap: 0; }
body.t-kelvin .ws-photogrid-grid img { aspect-ratio: 21 / 8; }

/* quotes lose the card and keep the rule */
body.t-kelvin .ws-quote { background: transparent; border: 0; border-top: 2px solid var(--klv-line); border-radius: 0; box-shadow: none; padding: 22px 0 0; }

/* second dark moment: the compressor room, scrimmed, carrying the only two figures */
body.t-kelvin.ws-body .ws-section.ws-richtext:not(.ws-cta):not(.ws-shoplink) { background: linear-gradient(rgba(15, 20, 24, .74), rgba(15, 20, 24, .74)), url("/media/samples/klv_band.jpg") center / cover; padding: 104px 0; }
body.t-kelvin .ws-richtext .ws-narrow { max-width: 980px; display: grid; grid-template-columns: 1fr 1fr; gap: 56px; }
body.t-kelvin .ws-richtext p { white-space: pre-line; color: #cfdde4; font-size: 16px; line-height: 1.7; margin: 0; }
body.t-kelvin .ws-richtext p::first-line { font-size: 46px; font-weight: 750; letter-spacing: -.03em; color: #ffffff; }

/* the closing line and the foot sit on graphite, not on the accent */
body.t-kelvin .ws-cta { background: var(--klv-dark); }
body.t-kelvin .ws-footer { background: var(--klv-dark); color: #909ba2; border-top: 0; }

/* split foot: the areas and the numbers left, one plain bordered box right */
body.t-kelvin .ws-contact .ws-narrow { max-width: 1060px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 16px 64px; align-items: start; }
body.t-kelvin .ws-contact .ws-h2, body.t-kelvin .ws-contact .ws-sub { grid-column: 1; text-align: left; margin: 0; white-space: pre-line; }
body.t-kelvin .ws-contact .ws-form { grid-column: 2; grid-row: 1 / span 2; max-width: none; margin: 0; gap: 18px; background: var(--klv-card); border: 1px solid var(--klv-line); padding: 32px; }
body.t-kelvin .ws-field input, body.t-kelvin .ws-field textarea { background: var(--bg); border: 1px solid var(--klv-line); border-radius: 2px; color: var(--heading); padding: 14px 13px; }

/* every band folds two-up, so no row is ever left holding an orphan */
@media (max-width: 980px) {
  body.t-kelvin .ws-features-grid, body.t-kelvin .ws-team-grid, body.t-kelvin .ws-pricing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.t-kelvin .ws-story-grid, body.t-kelvin .ws-richtext .ws-narrow, body.t-kelvin .ws-contact .ws-narrow { grid-template-columns: 1fr; }
  body.t-kelvin .ws-contact .ws-form { grid-column: 1; grid-row: auto; }
}

/* night — the cold store after hours: the daylight ground drops to charcoal,
   the plates become the lighter surface instead of the darker one, the steel
   hairline darkens so it still reads as a rule rather than a glare, and the ice
   lifts one step so the four accent moments keep exactly their old weight */
html[data-theme="dark"] body.t-kelvin.ws-body {
  --bg: #14181b; --fg: #c3cbd0; --heading: #eef3f5; --text: #a5aeb4; --muted: #7a848a;
  --klv-ice: #4cb7d8; --klv-line: #2b3338; --klv-dark: #090c0e; --klv-card: #1b2024;
  --hero-a: rgba(6, 9, 11, .36); --hero-b: rgba(6, 9, 11, .74);
}
