/* ---- kalklig (Kalklig — Repertory theatre & season 327) — stage ink and bone --
   THE STRUCTURAL MOVE: the page breathes in and out. Every full-bleed band —
   the 100vh slider, the video wall, the season strip, the closing ask — is
   near-black edge to edge, and between them the measure collapses hard to a
   narrow bone column of running text. It becomes a grid exactly twice: six
   season tiles three across, four ensemble portraits in one clean row. Brick is
   a hairline on premiere dates and links, never a field of colour. */
body.t-kalklig.ws-body { --bg: #f2ede4; --fg: #45403a; --heading: #16150f; --text: #45403a; --muted: #8a8177; --hero-a: rgba(17,17,16,0.28); --hero-b: rgba(17,17,16,0.62); --kkl-serif: 'Fraunces', Georgia, 'Times New Roman', serif; }
body.t-kalklig { background: #f2ede4; }
body.t-kalklig .ws-brand, body.t-kalklig .ws-nav-links a { text-transform: uppercase; letter-spacing: 0.2em; font-size: 11px; font-weight: 600; }
/* the slider is the whole window; the photograph reads first, the words second */
body.t-kalklig .ws-hero { min-height: 100vh; }
body.t-kalklig .ws-hero h1 { font-family: var(--kkl-serif); font-weight: 400; font-size: clamp(34px, 6vw, 70px); letter-spacing: -0.01em; line-height: 1.06; }
body.t-kalklig .ws-hero p { font-size: 15.5px; line-height: 1.75; opacity: 0.82; }
body.t-kalklig.ws-body .ws-hero-cta.btn.brand { background: #f2ede4; color: #16150f; border-radius: 0; box-shadow: none; text-transform: uppercase; letter-spacing: 0.2em; font-size: 10.5px; font-weight: 700; padding: 16px 34px; }
/* the zebra tint is off — the in/out rhythm is declared band by band, not by index */
body.t-kalklig.ws-body .ws-section, body.t-kalklig.ws-body .ws-section:nth-child(even) { background: transparent; padding: 104px 0; }
/* IN — the narrow bone measure: no heading, left-aligned, nothing beside it */
body.t-kalklig .ws-richtext p { max-width: 60ch; margin: 0 auto 22px; text-align: left; font-size: 17px; line-height: 1.9; }
/* OUT — the video wall: one play target on a dark house, no heading, no caption */
body.t-kalklig.ws-body .ws-section.ws-video { padding: 132px 0; background-color: #111110; background-image: linear-gradient(rgba(17,17,16,0.56), rgba(17,17,16,0.74)), url("/media/samples/kkl_stage.jpg"); background-size: cover; background-position: center; }
body.t-kalklig .ws-video-frame { max-width: 720px; margin: 0 auto; border-radius: 0; }
/* OUT — the season strip: its title band and its grid are one black block */
body.t-kalklig.ws-body .ws-section.ws-titleblock, body.t-kalklig.ws-body .ws-section.ws-gallery { background: #111110; color: #f2ede4; padding: 0 0 112px; }
body.t-kalklig.ws-body .ws-section.ws-titleblock { padding: 112px 0 34px; }
body.t-kalklig .ws-title-h { font-family: var(--kkl-serif); font-weight: 400; font-size: clamp(28px, 4vw, 46px); letter-spacing: -0.01em; }
body.t-kalklig .ws-gallery-grid { grid-template-columns: repeat(3, 1fr); gap: 44px 32px; }
body.t-kalklig .ws-gallery-item img { aspect-ratio: 3 / 4; border-radius: 0; }
/* the premiere date is lifted above the title — brick, the only colour on the page */
body.t-kalklig .ws-gallery-cap { padding-top: 16px; gap: 7px; }
body.t-kalklig .ws-gallery-cap span { order: -1; color: #9a4a38; text-transform: uppercase; letter-spacing: 0.14em; font-size: 10.5px; font-weight: 700; }
body.t-kalklig .ws-gallery-cap strong { font-family: var(--kkl-serif); font-size: 21px; font-weight: 400; color: #f2ede4; }
/* the ensemble: four squared portraits, one clean row, no medallions */
body.t-kalklig .ws-team-grid { grid-template-columns: repeat(4, 1fr); gap: 34px; }
body.t-kalklig .ws-member-photo img { width: 100%; height: auto; aspect-ratio: 4 / 5; border-radius: 0; margin: 0 0 14px; }
/* voices: four quotes down one column on hairlines — not cards, not a grid */
body.t-kalklig .ws-testimonials-grid { grid-template-columns: 1fr; gap: 0; max-width: 720px; margin: 0 auto; }
body.t-kalklig .ws-quote { background: transparent; border: 0; border-top: 1px solid #ddd5c7; border-radius: 0; box-shadow: none; padding: 30px 0; }
body.t-kalklig .ws-quote blockquote { font-family: var(--kkl-serif); color: var(--heading); font-size: 19px; line-height: 1.65; }
/* the closing ask is the last black band */
body.t-kalklig.ws-body .ws-section.ws-cta { background: #111110; padding: 108px 0; }
body.t-kalklig.ws-body .ws-cta .btn.brand { background: #9a4a38; color: #f2ede4; border-radius: 0; text-transform: uppercase; letter-spacing: 0.2em; font-size: 10.5px; font-weight: 700; padding: 16px 34px; }
/* tickets: the box office beside the form, never underneath it */
body.t-kalklig .ws-contact .ws-narrow { max-width: 1060px; display: grid; grid-template-columns: 4fr 5fr; column-gap: 72px; }
body.t-kalklig .ws-contact .ws-h2, body.t-kalklig .ws-contact .ws-sub { text-align: left; max-width: 34ch; margin: 0 0 10px; white-space: pre-line; line-height: 1.9; color: var(--text); }
body.t-kalklig .ws-contact .ws-form { grid-column: 2; grid-row: 1 / -1; max-width: none; }
body.t-kalklig .ws-field input, body.t-kalklig .ws-field textarea, body.t-kalklig .ws-field select, body.t-kalklig .ws-select-trigger { background: transparent; border: 0; border-bottom: 1px solid #cfc5b4; border-radius: 0; color: var(--heading); padding: 12px 2px; }
@media (max-width: 900px) {
  body.t-kalklig .ws-gallery-grid, body.t-kalklig .ws-team-grid { grid-template-columns: repeat(2, 1fr); }
  body.t-kalklig .ws-contact .ws-narrow { grid-template-columns: 1fr; row-gap: 36px; }
  body.t-kalklig .ws-contact .ws-form { grid-column: 1; grid-row: auto; }
  body.t-kalklig .ws-hero { min-height: 84vh; }
}

/* kalklig night — the bone column cools to house ink and the bands drop to the
   black of a dead stage, so the in/out rhythm survives the toggle; brick lifts
   to a lamp gel so the premiere dates and the closing slab still read */
html[data-theme="dark"] body.t-kalklig.ws-body { --bg: #14130f; --fg: #b4ada1; --heading: #f2ede4; --text: #b4ada1; --muted: #7f776c; --hero-a: rgba(7,7,6,0.36); --hero-b: rgba(7,7,6,0.70); }
html[data-theme="dark"] body.t-kalklig { background: #14130f; }
html[data-theme="dark"] body.t-kalklig.ws-body .ws-section.ws-titleblock,
html[data-theme="dark"] body.t-kalklig.ws-body .ws-section.ws-gallery,
html[data-theme="dark"] body.t-kalklig.ws-body .ws-section.ws-cta { background: #070706; }
html[data-theme="dark"] body.t-kalklig.ws-body .ws-section.ws-video { background-color: #070706; background-image: linear-gradient(rgba(7,7,6,0.66), rgba(7,7,6,0.82)), url("/media/samples/kkl_stage.jpg"); }
html[data-theme="dark"] body.t-kalklig .ws-gallery-cap span { color: #c26449; }
html[data-theme="dark"] body.t-kalklig .ws-quote,
html[data-theme="dark"] body.t-kalklig .ws-field input,
html[data-theme="dark"] body.t-kalklig .ws-field textarea,
html[data-theme="dark"] body.t-kalklig .ws-field select,
html[data-theme="dark"] body.t-kalklig .ws-select-trigger { border-color: #2e2a24; }
html[data-theme="dark"] body.t-kalklig.ws-body .ws-cta .btn.brand { background: #c26449; color: #14130f; }
