/* ============================================================
   windhover (Windhover 32) — overcast bone grey with a green cast, one
   oxblood. STRUCTURAL MOVE: the page is a REGISTER, not a layout — a strict
   three-across grid of identical 4:5 portraits, generously guttered so it can
   never read as a mosaic, with the caption stacked UNDER every picture. The
   hero is a letterbox band rather than a stage, and every block is left-set to
   the same grid line, so one rhythm runs the whole way down.
   ============================================================ */
body.t-windhover.ws-body { --bg: #e4e7e6; --fg: #474c49; --heading: #191b19; --text: #474c49; --muted: #7c837e; }
/* contained and NON-sticky: the bar scrolls away and the grid takes the viewport */
body.t-windhover .ws-nav { position: static; background: #e4e7e6; border-bottom: 1px solid #cdd1cf; backdrop-filter: none; }
body.t-windhover .ws-h2, body.t-windhover .ws-sub, body.t-windhover .ws-title-h,
body.t-windhover .ws-title-sub, body.t-windhover .ws-quoteblock { text-align: left; margin-left: 0; }
body.t-windhover .ws-sub, body.t-windhover .ws-title-sub, body.t-windhover .ws-quote-a { color: var(--muted); }
/* headings stay subordinate to the pictures — small, quiet, unemphatic */
body.t-windhover .ws-h2 { font-size: clamp(19px, 2.2vw, 24px); font-weight: 600; letter-spacing: 0; }
body.t-windhover .ws-title-h { font-size: clamp(24px, 3vw, 34px); font-weight: 600; letter-spacing: -0.01em; }
body.t-windhover .ws-hero { min-height: 0; height: 46vh; max-height: 440px; align-items: flex-end; }
body.t-windhover .ws-hero-inner { padding: 0 22px 34px; }
body.t-windhover .ws-hero h1 { font-size: clamp(26px, 3.6vw, 42px); font-weight: 600; letter-spacing: -0.015em; max-width: 20ch; margin-bottom: 8px; }
body.t-windhover .ws-hero p { font-size: 15px; max-width: 46ch; margin-bottom: 0; }
/* one ground the whole way down — a zebra tint would break the single rhythm */
body.t-windhover .ws-section:nth-child(even):not(.ws-cta):not(.ws-shoplink) { background: transparent; }
body.t-windhover .ws-gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 34px; }
body.t-windhover .ws-gallery-item img { aspect-ratio: 4 / 5; border-radius: 0; }
body.t-windhover .ws-gallery-cap strong { font-size: 14.5px; font-weight: 600; color: var(--heading); }
body.t-windhover .ws-gallery-cap span { font-size: 11px; letter-spacing: 0.11em; text-transform: uppercase; color: #7a2f39; }
body.t-windhover .ws-col-h { font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--heading); }
/* the facts band is one more ruled row of the register. Targeted by the
   renderer's ID for the SECOND columns block: a :nth-of-type would count
   sections, where the hero is number one, and silently never fire. */
body.t-windhover #columns-2 .ws-col { border-top: 1px solid #cdd1cf; padding-top: 14px; }
body.t-windhover .ws-list-number li::marker { color: #7a2f39; font-weight: 700; }
body.t-windhover .ws-quote-t { font-style: normal; font-weight: 400; font-size: clamp(19px, 2.3vw, 26px); border-left: 2px solid #7a2f39; padding-left: 20px; }
/* the written channel is deliberately the small one — the phone outranks it */
body.t-windhover .ws-form { max-width: 430px; margin: 0; }
body.t-windhover .btn.brand, body.t-windhover .ws-hero-cta.btn.brand { background: #7a2f39; color: #f1f3f2; border-radius: 0; box-shadow: none; }
body.t-windhover .btn.brand:hover, body.t-windhover .ws-hero-cta.btn.brand:hover { background: #632530; }
@media (max-width: 760px) {
  body.t-windhover .ws-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 16px; }
  body.t-windhover .ws-hero { height: auto; min-height: 38vh; }
}

/* windhover — night. Overberg overcast goes to wet slate; the oxblood lifts to
   a dusty rose so the caption meta and the numbered markers still read. */
html[data-theme="dark"] body.t-windhover.ws-body { --bg: #151715; --fg: #b4b9b5; --heading: #e4e7e6; --text: #b4b9b5; --muted: #7d837e; }
html[data-theme="dark"] body.t-windhover { background: #151715; }
html[data-theme="dark"] body.t-windhover .ws-nav { background: #151715; border-bottom-color: #2b2f2c; }
html[data-theme="dark"] body.t-windhover #columns-2 .ws-col { border-top-color: #2b2f2c; }
html[data-theme="dark"] body.t-windhover .ws-gallery-cap span,
html[data-theme="dark"] body.t-windhover .ws-list-number li::marker { color: #c98189; }
html[data-theme="dark"] body.t-windhover .ws-quote-t { border-left-color: #c98189; }
html[data-theme="dark"] body.t-windhover .btn.brand, html[data-theme="dark"] body.t-windhover .ws-hero-cta.btn.brand { background: #c98189; color: #151715; }
html[data-theme="dark"] body.t-windhover .btn.brand:hover, html[data-theme="dark"] body.t-windhover .ws-hero-cta.btn.brand:hover { background: #b56d75; }
html[data-theme="dark"] body.t-windhover .ws-field input,
html[data-theme="dark"] body.t-windhover .ws-field textarea,
html[data-theme="dark"] body.t-windhover .ws-field select { background: #1d201e; border-color: #343833; color: #e4e7e6; }
