/* ---- windsok (Windsok — Overberg airshow & fly-in 306) ---------------------
   THE STRUCTURAL MOVE: the line-up IS the page. The team component is rebuilt
   as eight gapped 4:3 photographic cards, four across and two down, each one
   carrying a three-line stack under the picture — the act, then a ruled
   windsock-orange metadata line holding the day, the time and the display
   line, then two sentences. Above it the ticket band sits in position two,
   before a single line of prose, so the page states its prices before it
   explains itself: the first registry entry to open on pricing. Orange lands
   in three places only — the chosen pass, that metadata rule and the buttons —
   and everything else is near-black so the photographs carry the colour.
   The pass cards are reached by :nth-child inside .ws-pricing-grid (every
   child there IS a .ws-plan), never by :nth-of-type, which matches the ELEMENT.
   Nothing here positions or orders anything inside the header: the bar itself
   goes transparent over the hero photograph, its items are left alone. */
body.t-windsok.ws-body {
  --bg: #131415; --fg: #a8a5a0; --heading: #f5f3ef; --text: #a8a5a0; --muted: #7c7a76;
  --wk-orange: #e2571e; --wk-line: #2b2c2e; --wk-card: #1b1c1e; --wk-field: #191a1c;
  --hero-a: rgba(9, 10, 11, .22); --hero-b: rgba(9, 10, 11, .66);
}
body.t-windsok { background: var(--bg); }
body.t-windsok.ws-body .ws-section, body.t-windsok.ws-body .ws-section:nth-child(even) { background: var(--bg); padding: 88px 0; }

/* the bar rides on the photograph — the bar only, never the items inside it */
body.t-windsok .ws-nav { background: transparent; border-bottom: 0; backdrop-filter: none; }
body.t-windsok .ws-brand, body.t-windsok .ws-nav-links a { text-transform: uppercase; letter-spacing: .16em; font-size: 11.5px; font-weight: 700; }

/* a whole viewport of sky, the name over the dates, nothing on the right */
body.t-windsok .ws-hero { min-height: 100vh; }
body.t-windsok .ws-hero h1 { text-transform: uppercase; letter-spacing: .03em; font-size: clamp(44px, 8vw, 96px); line-height: .96; margin: 0 0 22px; }
body.t-windsok .ws-hero p { text-transform: uppercase; letter-spacing: .2em; font-size: clamp(12px, 1.5vw, 15px); line-height: 2; max-width: 42ch; }

/* ORANGE 1 of 3 — every slab on the page: square, flat, no border */
body.t-windsok.ws-body .btn.brand, body.t-windsok.ws-body .ws-cta .btn.brand { background: var(--wk-orange); color: #ffffff; border-radius: 0; box-shadow: none; padding: 15px 32px; font-size: 11.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }

/* one type system — every heading set as a small uppercase board, not a title */
body.t-windsok .ws-h2, body.t-windsok .ws-cta-inner h2 { color: var(--heading); text-transform: uppercase; letter-spacing: .12em; font-size: clamp(18px, 2.2vw, 25px); font-weight: 700; }
body.t-windsok .ws-plan h3, body.t-windsok .ws-col-h { color: var(--heading); text-transform: uppercase; letter-spacing: .16em; font-size: 11px; font-weight: 700; margin: 0 0 14px; }
body.t-windsok .ws-sub, body.t-windsok .ws-cta-inner p, body.t-windsok .ws-video-caption, body.t-windsok .ws-col p, body.t-windsok .ws-member p { color: var(--text); }

/* the only surfaces on the page, all of them one stop off the ground */
body.t-windsok .ws-plan, body.t-windsok .ws-quote, body.t-windsok .ws-video-frame { background: var(--wk-card); border: 1px solid var(--wk-line); border-radius: 0; box-shadow: none; padding: 28px 24px 24px; text-align: left; }
body.t-windsok .ws-field input, body.t-windsok .ws-field textarea, body.t-windsok .ws-field select, body.t-windsok .ws-select-trigger { background: var(--wk-field); border: 1px solid var(--wk-line); border-radius: 0; color: var(--heading); }

/* POSITION TWO — four passes across, stated before a single line of prose */
body.t-windsok .ws-pricing-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; max-width: none; }
body.t-windsok .ws-plan-amt { color: var(--heading); font-size: 33px; font-weight: 700; }
body.t-windsok .ws-plan li { color: var(--text); font-size: 13.5px; line-height: 1.6; padding: 6px 0 6px 18px; }
body.t-windsok .ws-plan li::before, body.t-windsok .ws-quote blockquote::before { color: var(--muted); }
/* ORANGE 2 of 3 — the pass most people actually want, picked out and nothing else */
body.t-windsok .ws-pricing-grid .ws-plan:nth-child(3) { border-color: var(--wk-orange); background: #201a15; }
body.t-windsok .ws-pricing-grid .ws-plan:nth-child(3) .ws-plan-amt { color: var(--wk-orange); }

/* THE LINE-UP — eight acts, four across and two down, the picture then the stack */
body.t-windsok .ws-team-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 34px 22px; }
body.t-windsok .ws-member { text-align: left; }
body.t-windsok .ws-member-photo img { width: 100%; height: auto; aspect-ratio: 4 / 3; border-radius: 0; margin: 0 0 14px; }
body.t-windsok .ws-member strong, body.t-windsok .ws-quote blockquote { color: var(--heading); font-size: 16.5px; line-height: 1.45; }
/* ORANGE 3 of 3 — the day, the time and the display line, on their own rule */
body.t-windsok .ws-member .muted.small { display: block; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--wk-line); color: var(--wk-orange); font-size: 10.5px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }

/* the repeated ticket button, ruled top and bottom instead of a colour band */
body.t-windsok.ws-body .ws-cta { background: var(--bg); color: var(--text); border-top: 1px solid var(--wk-line); border-bottom: 1px solid var(--wk-line); padding: 44px 0; }

/* the field itself — six frames, three across, no gap, no caption, no container */
body.t-windsok .ws-photogrid { padding: 0; }
body.t-windsok .ws-photogrid-grid { grid-template-columns: repeat(3, 1fr); gap: 0; }

/* partners are photographs of objects, so they get tiles and their colour back */
body.t-windsok .ws-logos-row { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; opacity: 1; }
body.t-windsok .ws-logos-row img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; filter: none; }

body.t-windsok .ws-contact .ws-sub { white-space: pre-line; font-size: 14.5px; line-height: 2; }

@media (max-width: 1000px) {
  body.t-windsok .ws-pricing-grid, body.t-windsok .ws-team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.t-windsok .ws-photogrid-grid, body.t-windsok .ws-logos-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* windsok ships dark, so night goes deeper and colder rather than inverting —
   the day look is the one the photographs were printed for. The orange is
   lifted half a stop so on true black it still reads as a windsock, not rust */
html[data-theme="dark"] body.t-windsok.ws-body {
  --bg: #08090a; --fg: #9c9a96; --heading: #f2f0ec; --text: #9c9a96; --muted: #726f6b;
  --wk-orange: #f0672e; --wk-line: #212325; --wk-card: #131415; --wk-field: #101112;
  --hero-a: rgba(5, 6, 7, .26); --hero-b: rgba(5, 6, 7, .70);
}
html[data-theme="dark"] body.t-windsok { background: var(--bg); }
html[data-theme="dark"] body.t-windsok .ws-pricing-grid .ws-plan:nth-child(3) { background: #19120e; }
