/* Konzept „Zwei Orte. Ein Gastgeber.“ (deobald-sr 1.2.0)
   Gemeinsame Handschrift für Hummelhaus und Pension Mariposa: Serifen-
   Überschriften (Newsreader, lokal), nummerierte Abschnitte, feine Linien,
   Papiergrund. Farben je Haus über Token (hummelhaus.css, mariposa.css):
   Logos und Markenfarben bleiben. Kleinste Schrift 12 px. */

@font-face { font-family: "Newsreader"; font-style: italic; font-weight: 400; font-display: swap; src: url("../fonts/newsreader-400-italic.woff2") format("woff2"); }
@font-face { font-family: "Newsreader"; font-style: italic; font-weight: 500; font-display: swap; src: url("../fonts/newsreader-500-italic.woff2") format("woff2"); }

.sros-front.kz-site {
  --kz-serif: "Newsreader", "Times New Roman", Times, serif;
  --t-font-head: var(--kz-serif);
  --t-weight-head: 400;
  --t-track: -.02em;
  --t-paper: var(--kz-paper);
  --t-surface: var(--kz-white);
  --t-veil: var(--kz-paper2);
  --t-ink: var(--kz-ink);
  --t-ink-soft: var(--kz-ink);
  --t-muted: var(--kz-muted);
  --t-line: var(--kz-line);
  --t-line-soft: var(--kz-line);
  --t-head-bg: var(--kz-paper);
  --t-head-ink: var(--kz-ink);
  --t-head-line: var(--kz-line);
  --t-foot-bg: var(--kz-ink);
  --t-foot-ink: #e9e4df;
  --t-radius: 0;
  --t-radius-sm: 0;
  --t-pill: 0;
  background: var(--kz-paper);
  color: var(--kz-ink);
  font-family: var(--kz-sans);
  line-height: 1.45;
}
.kz-site h1, .kz-site h2, .kz-site h3 { font-family: var(--kz-serif); font-weight: 400; color: inherit; }
.kz-site a { color: inherit; }
.kz-site a:focus-visible, .kz-site button:focus-visible, .kz-site input:focus-visible, .kz-site select:focus-visible, .kz-site summary:focus-visible { outline: 3px solid var(--kz-focus, var(--kz-ink)); outline-offset: 2px; }
.kz-wrap { width: min(1440px, calc(100% - 56px)); margin: 0 auto; }
.kz-mono { margin: 0; font-family: var(--kz-sans); font-size: 12px; letter-spacing: .15em; text-transform: uppercase; }
.kz-small { margin: 0; font-size: 14px; line-height: 1.5; color: var(--kz-muted); }
.kz-rule { border-top: 1px solid var(--kz-ink); padding-top: 24px; }
.kz-3col { display: grid; grid-template-columns: 3fr 6fr 3fr; gap: 40px; }
.kz-lead { margin: 0 0 30px; font-size: clamp(19px, 2vw, 29px); line-height: 1.24; max-width: 31em; }
.kz-text { margin: 0 0 16px; font-size: 16px; line-height: 1.55; max-width: 43em; }
.kz-after { margin: 24px 0 0; font-weight: 700; font-size: 15px; }
.kz-after a { text-decoration: underline; text-underline-offset: 3px; }
.kz-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 30px 0 0; }

/* Knöpfe */
.kz-btn { display: inline-flex; justify-content: space-between; align-items: center; gap: 28px; min-width: 210px; padding: 14px 17px; border: 1px solid var(--kz-ink); background: transparent; color: var(--kz-ink); font: 700 15px/1.2 var(--kz-sans); text-decoration: none; cursor: pointer; }
.kz-site a.kz-btn { color: var(--kz-ink); }
.kz-btn:hover, .kz-site a.kz-btn:hover { background: var(--kz-ink); color: var(--kz-paper); text-decoration: none; }
.kz-site a.kz-btn--dark { background: var(--kz-ink); color: var(--kz-paper); }
.kz-site a.kz-btn--dark:hover { background: var(--kz-deep); border-color: var(--kz-deep); }
.kz-site a.kz-btn--accent { background: var(--kz-cta); border-color: var(--kz-cta); color: var(--kz-cta-ink); }
.kz-site a.kz-btn--accent:hover { background: var(--kz-ink); border-color: var(--kz-ink); color: var(--kz-paper); }
.kz-site a.kz-btn--hell { border-color: #fff; color: #fff; }
.kz-site a.kz-btn--hell:hover { background: #fff; color: var(--kz-ink); }
.kz-site a.kz-btn--partner { border-color: var(--kz-partner); color: var(--kz-partner); }
.kz-site a.kz-btn--partner:hover { background: var(--kz-partner); color: #fff; }

/* ---------- Leiste „Zwei Orte“ ---------- */
.kz-net { background: var(--kz-ink); color: #e9e5dc; }
.kz-net-in { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 20px; font-size: 12px; letter-spacing: .15em; text-transform: uppercase; }
.kz-net-links { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; }
.kz-net a { color: #a9a49c; text-decoration: none; }
.kz-net a:hover { color: #fff; }
.kz-net a[aria-current] { color: var(--kz-net-active, #fff); }
.kz-net .kz-sep { opacity: .35; }
.kz-net-tag { color: #cfc9be; }
.kz-site .kz-net a:focus-visible { outline-color: #fff; }

/* ---------- Kopf ---------- */
.kz-site .sros-front-head.kz-head { position: sticky; top: 0; z-index: 60; background: color-mix(in srgb, var(--kz-paper) 96%, transparent); backdrop-filter: blur(12px); border-bottom: 1px solid var(--kz-line); box-shadow: none; }
.kz-head-in { height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.kz-brand { display: flex; align-items: center; flex: 0 0 auto; text-decoration: none; }
.kz-brand img { height: var(--kz-logo-h, 46px); width: auto; display: block; }
.kz-brand strong { font-family: var(--kz-serif); font-size: 28px; font-weight: 400; }
.kz-site .kz-nav { display: flex; align-items: center; gap: 30px; }
.kz-site .kz-nav a { position: relative; padding: 6px 0; color: var(--kz-ink); font-size: 14px; font-weight: 400; text-decoration: none; border-bottom: 1px solid transparent; opacity: 1; }
.kz-site .kz-nav a:hover, .kz-site .kz-nav a[aria-current] { border-bottom-color: var(--kz-ink); }
.kz-site .kz-nav a::after { display: none !important; }
.kz-site .kz-nav .kz-nav-book { margin-left: 12px; padding: 12px 15px; background: var(--kz-cta); color: var(--kz-cta-ink); font-weight: 700; border: 0; }
.kz-site .kz-nav .kz-nav-book:hover { background: var(--kz-ink); color: var(--kz-paper); }
.kz-site .ew-menu-toggle { display: none; }
@media (max-width: 1080px) {
  .kz-head-in { height: 74px; }
  .kz-brand img { height: calc(var(--kz-logo-h, 46px) * .85); }
  .kz-site .ew-menu-toggle:not([hidden]) { display: inline-flex; align-items: center; gap: 10px; border: 1px solid var(--kz-ink); background: transparent; color: var(--kz-ink); padding: 9px 14px; font: 700 14px var(--kz-sans); cursor: pointer; }
  .kz-site.ew-nav-ready .kz-nav[hidden] { display: none; }
  .kz-site.ew-nav-ready .kz-nav { position: absolute; top: 100%; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 0; background: var(--kz-paper); border-bottom: 1px solid var(--kz-ink); box-shadow: 0 18px 30px rgba(0, 0, 0, .08); padding: 6px 28px 20px; }
  .kz-site.ew-nav-ready .kz-nav a { padding: 15px 0; border-bottom: 1px solid var(--kz-line); font-size: 18px; }
  .kz-site.ew-nav-ready .kz-nav .kz-nav-book { margin: 14px 0 0; text-align: center; }
  .kz-site .sros-front-head.kz-head { position: relative; }
}

/* Startseite: volle Breite */
.kz-site .sros-front-main { padding: 0; }
.kz-site.hh-home .sros-front-main > .sros-front-wrap, .kz-site.mp-home .sros-front-main > .sros-front-wrap { max-width: none; padding: 0; }
.kz-site .sros-front-main > .sros-front-wrap > .sros-flash { max-width: 1200px; margin: 16px auto; }

/* ---------- Einstieg ---------- */
.kz-hero { padding-top: 28px; }
.kz-hero-grid { display: grid; border-top: 1px solid var(--kz-ink); }
.kz-hero-grid--text-links { grid-template-columns: 5fr 7fr; }
.kz-hero-grid--bilder-links { grid-template-columns: 7fr 5fr; }
.kz-hero h1 { margin: 26px 0 0; font-size: clamp(56px, 8.6vw, 140px); line-height: .84; letter-spacing: -.055em; }
.kz-hero h1 em { font-style: italic; color: var(--kz-em); }
.kz-hero-copy { min-height: 730px; display: flex; flex-direction: column; justify-content: space-between; }
.kz-hero-grid--text-links .kz-hero-copy { padding: 48px 52px 54px 0; }
.kz-hero-grid--bilder-links .kz-hero-copy { padding: 54px 0 42px 55px; }
.kz-hero-bottom { display: grid; grid-template-columns: 70px 1fr; gap: 18px; align-items: start; }
.kz-num { font-family: var(--kz-serif); font-size: 31px; line-height: 1; color: var(--kz-em); }
.kz-hero-bottom p { margin: 0; font-size: 20px; line-height: 1.32; }
.kz-hero-media { position: relative; margin: 0; min-height: 730px; }
.kz-hero-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.kz-hero-media figcaption { position: absolute; right: 0; bottom: 0; width: 55%; padding: 18px 22px; background: var(--kz-paper); border-top: 1px solid var(--kz-ink); border-left: 1px solid var(--kz-ink); }
.kz-hero-visual { position: relative; display: grid; gap: 10px; padding-right: 10px; min-height: 760px; grid-template-columns: 1.15fr .85fr; grid-template-rows: 1.2fr .8fr; }
.kz-hero-visual img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kz-hero-visual .kz-hv-0 { grid-row: 1 / 3; }
.kz-hero-visual--1 { grid-template-columns: 1fr; grid-template-rows: 1fr; }
.kz-hero-visual--2 { grid-template-rows: 1fr; }
.kz-hero-visual--2 .kz-hv-0 { grid-row: auto; }
.kz-hero-visual .kz-hero-mark { position: absolute; left: 28px; bottom: 24px; width: 118px; height: 118px; object-fit: contain; filter: drop-shadow(0 10px 18px rgba(0, 0, 0, .3)); }

/* Buchungsleiste (Mariposa) */
.kz-bar { background: var(--kz-cta); color: var(--kz-cta-ink); }
.kz-bar-in { display: grid; grid-template-columns: 1.2fr 1fr 1fr 1fr auto; align-items: stretch; }
.kz-bar-cell { margin: 0; padding: 16px 20px; border-right: 1px solid rgba(255, 255, 255, .35); display: flex; flex-direction: column; justify-content: center; }
.kz-bar-cell:first-child { padding-left: 0; }
.kz-bar-cell label, .kz-bar-title span { display: block; margin-bottom: 6px; font-size: 12px; letter-spacing: .13em; text-transform: uppercase; opacity: .9; }
.kz-bar-title strong { font-family: var(--kz-serif); font-size: 22px; font-weight: 400; }
.kz-bar-cell input, .kz-bar-cell select { width: 100%; min-height: 36px; padding: 0; border: 0; border-bottom: 1px solid rgba(255, 255, 255, .5); background: transparent; color: inherit; font: 400 20px var(--kz-serif); color-scheme: dark; }
.kz-bar-cell select option { color: #111; }
.kz-bar-go { border: 0; background: #fff; color: var(--kz-ink); padding: 0 25px; font: 800 15px var(--kz-sans); cursor: pointer; }
.kz-bar-go:hover { background: var(--kz-ink); color: #fff; }
.kz-site .kz-bar-go:focus-visible { outline-color: #fff; outline-offset: -4px; }

/* ---------- Intro ---------- */
.kz-intro { padding: 110px 0 95px; }
.kz-side { margin: 0; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; line-height: 1.6; }
.kz-stat { margin: 0; align-self: end; border-left: 1px solid var(--kz-line); padding-left: 25px; }
.kz-stat strong { display: block; font-family: var(--kz-serif); font-weight: 400; font-size: 62px; line-height: .9; color: var(--kz-em); }
.kz-stat span { display: block; margin-top: 12px; font-size: 14px; color: var(--kz-muted); }

/* ---------- Räume / Zimmer ---------- */
.kz-rooms { background: var(--kz-white); padding: 65px 0 115px; }
.kz-section-head { margin-bottom: 45px; }
.kz-section-head h2 { margin: 0; font-size: clamp(42px, 6vw, 86px); line-height: .93; letter-spacing: -.045em; }
.kz-section-head h2 em { font-style: italic; color: var(--kz-em); }
.kz-section-head .kz-small { align-self: end; }
.kz-room { display: grid; grid-template-columns: 4.5fr 4.5fr 3fr; gap: 30px; padding: 29px 0; border-top: 1px solid var(--kz-line); align-items: start; scroll-margin-top: 110px; }
.kz-hh .kz-room { grid-template-columns: 5fr 4fr 3fr; }
.kz-room:last-of-type { border-bottom: 1px solid var(--kz-line); }
.kz-room-photo a { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; cursor: zoom-in; }
.kz-room-photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.kz-room:hover .kz-room-photo img { transform: scale(1.018); }
.kz-photo-count { position: absolute; right: 0; bottom: 0; padding: 8px 12px; background: var(--kz-white); border-top: 1px solid var(--kz-ink); border-left: 1px solid var(--kz-ink); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
.kz-room-copy { padding-top: 4px; }
.kz-room-copy h3 { margin: 10px 0 15px; font-size: clamp(28px, 3vw, 45px); line-height: 1; }
.kz-room-copy > p:not(.kz-mono):not(.kz-specs):not(.kz-room-more) { margin: 0; max-width: 33em; color: var(--kz-text2, #474240); font-size: 16px; line-height: 1.5; }
.kz-specs { display: flex; flex-wrap: wrap; gap: 7px 14px; margin: 23px 0 0; font-size: 13px; color: var(--kz-muted); }
.kz-room-more { margin: 20px 0 0; font-size: 14px; font-weight: 700; }
.kz-room-more a { text-decoration: underline; text-underline-offset: 3px; }
.kz-room-side dl { margin: 0; }
.kz-room-side dl > div, .kz-engine dl > div { display: grid; grid-template-columns: 1fr auto; gap: 15px; padding: 9px 0; border-bottom: 1px solid var(--kz-line); }
.kz-room-side dt, .kz-room-side dd { margin: 0; font-size: 14px; }
.kz-room-side dd { text-align: right; font-weight: 700; }
.kz-room-side .kz-btn { margin-top: 25px; width: 100%; }

/* ---------- Buchung ---------- */
.kz-booking { background: var(--kz-deep); color: #f3efe5; padding: 90px 0 110px; scroll-margin-top: 80px; }
.kz-booking .kz-rule { border-top-color: rgba(255, 255, 255, .7); }
.kz-booking .kz-section-head .kz-small { color: rgba(255, 255, 255, .78); }
.kz-engine { display: grid; grid-template-columns: 3fr 9fr; background: var(--kz-paper); color: var(--kz-ink); border-top: 5px solid var(--kz-engine-top, var(--kz-ink)); }
.kz-engine-side { padding: 30px 24px; border-right: 1px solid var(--kz-line); }
.kz-engine-side h3 { margin: 14px 0 26px; font-size: 34px; line-height: 1.05; }
.kz-engine-side .kz-small { margin-top: 24px; }
.kz-choose { display: grid; }
.kz-choose button { display: flex; justify-content: space-between; gap: 16px; padding: 15px 0; border: 0; border-top: 1px solid var(--kz-line); background: transparent; color: var(--kz-ink); font: 700 15px var(--kz-sans); text-align: left; cursor: pointer; }
.kz-choose button:last-child { border-bottom: 1px solid var(--kz-line); }
.kz-choose button span:last-child { font-weight: 400; color: var(--kz-muted); }
.kz-choose button[aria-pressed="true"] { color: var(--kz-em); }
.kz-choose button[aria-pressed="true"] span:first-child::before { content: "→ "; }
.kz-points { margin: 26px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--kz-line); counter-reset: kzp; }
.kz-points li { display: flex; gap: 10px; padding: 11px 0; border-bottom: 1px solid var(--kz-line); font-size: 13px; counter-increment: kzp; }
.kz-points li::before { content: counter(kzp, decimal-leading-zero); color: var(--kz-em); font-weight: 700; }
.kz-engine-main { padding: 34px 40px 40px; min-width: 0; }
.kz-engine-top { display: grid; grid-template-columns: 1fr auto; gap: 30px; align-items: end; padding-bottom: 22px; border-bottom: 1px solid var(--kz-ink); }
.kz-roomname { margin: 4px 0 0; font-family: var(--kz-serif); font-size: clamp(30px, 3vw, 42px); line-height: 1.05; }
.kz-price { margin: 0; text-align: right; }
.kz-price strong { display: block; font-family: var(--kz-serif); font-size: 34px; font-weight: 400; }
.kz-price span { font-size: 12px; text-transform: uppercase; letter-spacing: .12em; color: var(--kz-muted); }
.kz-note { margin: 14px 0 0; font-size: 12px; color: var(--kz-muted); line-height: 1.5; }

/* Buchungskasten im Konzept (Hummelhaus): Kalender links, Preis rechts */
.kz-site .kz-bookbox { display: grid; grid-template-columns: 1.35fr .65fr; gap: 30px; margin: 24px 0 0; padding: 0; border: 0; background: none; box-shadow: none; position: static; }
.kz-bookbox-cal { min-width: 0; }
.kz-bookbox-sum { border-top: 1px solid var(--kz-ink); padding-top: 4px; }
.kz-site .kz-bookbox .sros-picker { padding: 0; border: 0; background: none; }
.kz-site .kz-bookbox .sros-pk-mode { display: inline-flex; margin: 0 0 22px; padding: 0; border: 1px solid var(--kz-ink); }
.kz-site .kz-bookbox .sros-pk-mode label { position: relative; margin: 0; padding: 10px 16px; font-size: 14px; cursor: pointer; }
.kz-site .kz-bookbox .sros-pk-mode input { position: absolute; opacity: 0; }
.kz-site .kz-bookbox .sros-pk-mode label:has(input:checked) { background: var(--kz-ink); color: var(--kz-paper); }
.kz-site .kz-bookbox .sros-pk-mode label:has(input:focus-visible) { outline: 3px solid var(--kz-em); outline-offset: 2px; }
.kz-site .kz-bookbox .sros-picker-head { display: flex; justify-content: space-between; align-items: center; padding: 14px 0; border-top: 1px solid var(--kz-ink); }
.kz-site .kz-bookbox .sros-picker-head strong { font-family: var(--kz-serif); font-size: 25px; font-weight: 400; }
.kz-site .kz-bookbox .sros-picker-head .sros-btn { border: 0; background: none; font-size: 22px; padding: 4px 10px; }
.kz-site .kz-bookbox .sros-picker-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0; border-left: 1px solid var(--kz-line); }
.kz-site .kz-bookbox .sros-pk-dow { padding: 8px 2px; border-bottom: 1px solid var(--kz-line); border-right: 1px solid var(--kz-line); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--kz-muted); text-align: center; }
.kz-site .kz-bookbox .sros-pk-cell { min-height: 48px; margin: 0; border: 0; border-right: 1px solid var(--kz-line); border-bottom: 1px solid var(--kz-line); border-radius: 0; background: transparent; color: var(--kz-ink); font: 400 15px var(--kz-sans); box-shadow: none; }
.kz-site .kz-bookbox .sros-pk-cell.is-free:hover { background: var(--kz-paper2); }
.kz-site .kz-bookbox .sros-pk-cell.is-booked { background: repeating-linear-gradient(135deg, transparent 0 6px, var(--kz-paper2) 6px 8px); }
.kz-site .kz-bookbox .sros-pk-cell.is-closed, .kz-site .kz-bookbox .sros-pk-cell.is-past { color: #8d8a84; text-decoration: line-through; }
.kz-site .kz-bookbox .sros-pk-cell.is-out { background: transparent; }
.kz-site .kz-bookbox .sros-pk-cell.is-selected { background: var(--kz-select, var(--kz-cta)); color: var(--kz-select-ink, var(--kz-cta-ink)); font-weight: 700; }
.kz-site .kz-bookbox .sros-picker-legend { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 10px; font-size: 12px; color: var(--kz-muted); }
.kz-site .kz-bookbox .sros-picker-day { margin-top: 18px; border-top: 1px solid var(--kz-ink); padding-top: 14px; }
.kz-site .kz-bookbox .sros-picker-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; }
.kz-site .kz-bookbox .sros-field label, .kz-site .kz-bookbox .sros-label { display: block; margin-bottom: 6px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--kz-muted); }
.kz-site .kz-bookbox .sros-select { width: 100%; min-height: 42px; border: 0; border-bottom: 1px solid var(--kz-line); border-radius: 0; background: transparent; font: 700 16px var(--kz-sans); color: var(--kz-ink); padding: 0; }
.kz-site .kz-bookbox .sros-picker-slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); gap: 6px; }
.kz-site .kz-bookbox .sros-picker-slots button { border: 1px solid var(--kz-line); border-radius: 0; background: transparent; padding: 8px 6px; font: 400 14px var(--kz-sans); color: var(--kz-ink); text-align: center; cursor: pointer; }
.kz-site .kz-bookbox .sros-picker-slots button:hover:not([disabled]) { border-color: var(--kz-ink); }
.kz-site .kz-bookbox .sros-picker-slots button[aria-pressed="true"], .kz-site .kz-bookbox .sros-picker-slots button.is-selected, .kz-site .kz-bookbox .sros-picker-slots button.is-active { background: var(--kz-ink); color: var(--kz-paper); border-color: var(--kz-ink); }
.kz-site .kz-bookbox .sros-picker-sel { margin-top: 14px; padding: 10px 0 0; border-top: 1px solid var(--kz-line); font-size: 14px; background: none; }
.kz-site .kz-bookbox .ws-hint { grid-column: 1 / -1; margin: 0; font-size: 13px; color: var(--kz-muted); }
.kz-site .kz-bookbox .sros-avail-out { margin: 14px 0; padding: 0; font-size: 14px; background: none; border: 0; }
.kz-site .kz-bookbox .sros-avail-out.is-ok { color: var(--kz-ok, #23533a); font-weight: 700; }
.kz-site .kz-bookbox .sros-avail-out.is-no { color: #9b2c25; font-weight: 700; }
.kz-quote .sros-quote-row { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; border-bottom: 1px solid var(--kz-line); font-size: 14px; }
.kz-quote .sros-quote-row.total { display: block; padding: 18px 0; border-bottom: 1px solid var(--kz-ink); }
.kz-quote .sros-quote-row.total span:first-child { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .11em; color: var(--kz-muted); }
.kz-quote .sros-quote-row.total span:last-child { display: block; margin-top: 3px; font-family: var(--kz-serif); font-size: 42px; }
.kz-site a.kz-continue { display: flex; justify-content: space-between; width: 100%; margin-top: 18px; padding: 16px 18px; background: var(--kz-ink); color: var(--kz-paper); font-weight: 700; text-decoration: none; }
.kz-site a.kz-continue:hover { background: var(--kz-deep); }
.kz-site a.kz-continue[aria-disabled="true"] { opacity: .45; cursor: not-allowed; }

/* Zimmersuche (Mariposa) */
.kz-engine-form { display: grid; grid-template-columns: repeat(4, 1fr) auto; border-top: 1px solid var(--kz-ink); border-bottom: 1px solid var(--kz-ink); }
.kz-engine-form p { margin: 0; padding: 14px 16px; border-right: 1px solid var(--kz-line); }
.kz-engine-form p:first-child { padding-left: 0; }
.kz-engine-form label { display: block; margin-bottom: 6px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--kz-muted); }
.kz-engine-form input, .kz-engine-form select { width: 100%; min-height: 32px; padding: 0; border: 0; background: transparent; color: var(--kz-ink); font: 700 15px var(--kz-sans); }
.kz-engine-go { border: 0; background: var(--kz-ink); color: var(--kz-paper); padding: 0 22px; font: 800 15px var(--kz-sans); cursor: pointer; }
.kz-engine-go:hover { background: var(--kz-cta); color: var(--kz-cta-ink); }
.kz-results-head { display: flex; justify-content: space-between; gap: 20px; align-items: end; padding: 28px 0 14px; }
.kz-results-head h3 { margin: 0; font-size: 33px; }
.kz-results-head .kz-mono { color: var(--kz-muted); }
.kz-results { border-top: 1px solid var(--kz-line); }
.kz-result { display: grid; grid-template-columns: 120px 1fr 190px 150px; gap: 20px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--kz-line); }
.kz-result img { width: 120px; height: 82px; object-fit: cover; display: block; }
.kz-result p { margin: 0; }
.kz-result-name strong { font-family: var(--kz-serif); font-size: 25px; font-weight: 400; }
.kz-result-name span { display: block; margin-top: 4px; font-size: 13px; color: var(--kz-muted); }
.kz-result-price { text-align: right; }
.kz-result-price strong { display: block; font-family: var(--kz-serif); font-size: 25px; font-weight: 400; }
.kz-result-price span { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--kz-muted); }
.kz-result-go, .kz-site a.kz-result-go { display: inline-flex; justify-content: center; align-items: center; gap: 6px; padding: 12px 13px; border: 1px solid var(--kz-em); background: transparent; color: var(--kz-em); font: 800 14px var(--kz-sans); text-decoration: none; cursor: pointer; }
.kz-result-go:hover, .kz-site a.kz-result-go:hover { background: var(--kz-em); color: #fff; }
.kz-result.is-belegt { opacity: .6; }
.kz-result.is-belegt .kz-result-price strong { font-size: 20px; }

/* ---------- Geschichte ---------- */
.kz-story { padding: 120px 0; }
.kz-story-grid { display: grid; grid-template-columns: 4fr 8fr; gap: 40px; }
.kz-story-side { position: sticky; top: 140px; align-self: start; }
.kz-year { margin: 10px 0 0; font-family: var(--kz-serif); font-size: clamp(72px, 8vw, 110px); line-height: .8; color: var(--kz-em); }
.kz-story-side .kz-small { margin-top: 20px; max-width: 22em; }
.kz-story-img { display: grid; grid-template-columns: 7fr 5fr; gap: 14px; align-items: end; margin: 0 0 45px; }
.kz-story-img img { width: 100%; height: auto; display: block; object-fit: cover; aspect-ratio: 4 / 3; }
.kz-story-img img + img { aspect-ratio: 1; }
.kz-timeline { margin: 0; }
.kz-timeline > div { display: grid; grid-template-columns: 130px 1fr; gap: 28px; padding: 18px 0; border-top: 1px solid var(--kz-line); }
.kz-timeline > div:last-child { border-bottom: 1px solid var(--kz-line); }
.kz-timeline dt { font-family: var(--kz-serif); font-size: 25px; }
.kz-timeline dd { margin: 0; line-height: 1.5; }

/* ---------- Programm ---------- */
.kz-program { padding: 90px 0 100px; background: var(--kz-white); }
.kz-program-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--kz-line); }
.kz-program-list a { display: grid; grid-template-columns: 260px 1fr 240px; gap: 24px; padding: 18px 0; border-bottom: 1px solid var(--kz-line); text-decoration: none; }
.kz-program-list a:hover strong { text-decoration: underline; }
.kz-program-list strong { font-family: var(--kz-serif); font-size: 24px; font-weight: 400; }
.kz-when { font-size: 14px; color: var(--kz-em); font-weight: 700; }
.kz-who { font-size: 14px; color: var(--kz-muted); text-align: right; }
.kz-program-list .is-cancelled strong { text-decoration: line-through; }

/* ---------- Lage (Mariposa) ---------- */
.kz-location { padding: 115px 0; }
.kz-location-grid { display: grid; grid-template-columns: 4fr 8fr; gap: 40px; }
.kz-location-side { position: sticky; top: 140px; align-self: start; }
.kz-location-side h3 { margin: 15px 0 20px; font-size: clamp(28px, 3vw, 45px); line-height: 1; }
.kz-location-side .kz-small { max-width: 20em; }
.kz-walk { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; border-top: 1px solid var(--kz-line); }
.kz-walk > div { padding: 22px 22px 22px 0; border-right: 1px solid var(--kz-line); }
.kz-walk > div + div { padding-left: 22px; }
.kz-walk > div:last-child { border-right: 0; }
.kz-walk dt { font-family: var(--kz-serif); font-size: 47px; color: var(--kz-em); line-height: 1.05; }
.kz-walk dd { margin: 6px 0 0; font-size: 13px; color: var(--kz-muted); }
.kz-map { position: relative; margin: 45px 0 0; aspect-ratio: 16 / 8; overflow: hidden; background: var(--kz-paper2); }
.kz-map::before, .kz-map::after { content: ""; position: absolute; border-radius: 50%; background: color-mix(in srgb, var(--kz-em) 22%, transparent); }
.kz-map::before { width: 550px; height: 550px; left: 12%; top: -230px; }
.kz-map::after { width: 380px; height: 380px; right: 7%; bottom: -160px; }
.kz-map-line { position: absolute; background: #857b74; }
.kz-map-line:nth-child(1) { height: 8px; width: 110%; left: -5%; top: 48%; transform: rotate(-10deg); }
.kz-map-line:nth-child(2) { height: 7px; width: 100%; left: 10%; top: 55%; transform: rotate(15deg); }
.kz-map-line:nth-child(3) { width: 7px; height: 120%; left: 58%; top: -10%; transform: rotate(7deg); }
.kz-map-pin { position: absolute; z-index: 1; left: 54%; top: 45%; transform: translate(-50%, -50%); width: 74px; height: 74px; display: grid; place-items: center; border: 9px solid rgba(255, 255, 255, .85); border-radius: 50%; background: var(--kz-cta); color: #fff; font-family: var(--kz-serif); font-size: 26px; }
.kz-map-label { position: absolute; z-index: 1; left: 54%; top: 62%; transform: translateX(-50%); padding: 11px 14px; background: var(--kz-white); border: 1px solid var(--kz-ink); font-size: 13px; line-height: 1.45; white-space: nowrap; }
.kz-map-label a { color: var(--kz-em); font-weight: 700; }

/* ---------- Nachbar (Mariposa: Cielo) ---------- */
.kz-neighbor { background: #1f2f2a; color: #eee9df; padding: 85px 0; scroll-margin-top: 80px; }
.kz-rule--hell { border-top-color: rgba(255, 255, 255, .7); }
.kz-neighbor-grid { display: grid; grid-template-columns: 5fr 7fr; }
.kz-neighbor-copy { padding: 42px 50px 30px 0; display: flex; flex-direction: column; justify-content: space-between; }
.kz-neighbor-copy h2 { margin: 60px 0 25px; font-size: clamp(42px, 6vw, 86px); line-height: .93; letter-spacing: -.045em; }
.kz-neighbor-copy p:not(.kz-mono):not(.kz-actions) { margin: 0; font-size: 18px; color: rgba(255, 255, 255, .78); max-width: 30em; line-height: 1.5; }
.kz-neighbor-media { position: relative; margin: 0; min-height: 560px; background: linear-gradient(135deg, #2b3f39, #17231f); display: grid; place-items: center; overflow: hidden; }
.kz-neighbor-media.has-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.kz-neighbor-word { font-family: var(--kz-serif); font-style: italic; font-size: clamp(70px, 10vw, 150px); letter-spacing: -.06em; color: #f0dfc2; }
.kz-neighbor-media figcaption { position: absolute; left: 0; bottom: 0; padding: 14px 18px; background: #1f2f2a; border-top: 1px solid rgba(255, 255, 255, .6); border-right: 1px solid rgba(255, 255, 255, .6); }
.kz-neighbor a:focus-visible { outline-color: #fff; }

/* ---------- Partnerhaus ---------- */
.kz-partner { background: var(--kz-partner-bg); padding: 90px 0 100px; scroll-margin-top: 80px; }
.kz-partner-grid { display: grid; grid-template-columns: 5fr 7fr; }
.kz-mp .kz-partner-grid { grid-template-columns: 7fr 5fr; }
.kz-mp .kz-partner-media { order: -1; }
.kz-partner-copy { padding: 42px 48px 38px 0; display: flex; flex-direction: column; justify-content: space-between; }
.kz-mp .kz-partner-copy { padding: 42px 0 35px 48px; }
.kz-partner-brand { display: flex; align-items: center; gap: 14px; margin: 26px 0 0; }
.kz-partner-brand img { width: 46px; height: 46px; object-fit: contain; }
.kz-partner-brand--logo img { width: auto; height: 78px; max-width: 220px; }
.kz-partner-brand span { font-family: var(--kz-serif); font-size: 31px; }
.kz-partner-copy h2 { margin: 50px 0 26px; color: var(--kz-partner); font-size: clamp(42px, 5.4vw, 80px); line-height: .95; letter-spacing: -.045em; }
.kz-partner-text { margin: 0; font-size: 18px; max-width: 29em; line-height: 1.5; }
.kz-partner-media { position: relative; margin: 0; min-height: 600px; }
.kz-partner-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.kz-partner-media figcaption { position: absolute; left: 0; bottom: 0; padding: 15px 18px; background: var(--kz-partner-bg); border-top: 1px solid var(--kz-ink); border-right: 1px solid var(--kz-ink); }

/* ---------- Kontakt ---------- */
.kz-contact { padding: 100px 0 80px; scroll-margin-top: 80px; }
.kz-contact h2 { margin: 0; font-size: clamp(46px, 5vw, 64px); line-height: .95; letter-spacing: -.04em; }
.kz-contact-block { padding-top: 7px; }
.kz-contact-block p { margin: 0 0 8px; line-height: 1.5; }
.kz-contact-block a:not(.kz-btn) { text-decoration: underline; text-underline-offset: 3px; }
.kz-contact-block .kz-small { margin-top: 16px; }

/* ---------- Fuß ---------- */
.kz-foot { background: var(--kz-ink); color: #e9e4df; padding: 42px 0 28px; }
.kz-foot-grid { display: grid; grid-template-columns: 5fr 3fr 4fr; gap: 40px; }
.kz-foot-brand img { display: block; margin-bottom: 14px; }
.kz-foot-name { margin: 0; font-family: var(--kz-serif); font-size: 39px; line-height: 1; }
.kz-foot-addr { margin: 18px 0 0; font-size: 14px; line-height: 1.6; color: #c9c3be; }
.kz-foot h2 { margin: 0 0 14px; font-family: var(--kz-sans); font-size: 12px; font-weight: 400; letter-spacing: .15em; text-transform: uppercase; color: var(--kz-foot-accent, #e9e4df); }
.kz-foot ul { margin: 0; padding: 0; list-style: none; }
.kz-foot li { margin: 6px 0; }
.kz-foot a { color: #c9c3be; font-size: 14px; text-decoration: none; }
.kz-foot a:hover { color: #fff; text-decoration: underline; }
.kz-foot a:focus-visible { outline-color: #fff; }
.kz-foot-credit a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.kz-foot-credit a:hover, .kz-foot-credit a:focus-visible { color: #fff; }
.kz-foot-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 45px; padding-top: 16px; border-top: 1px solid #4b4545; font-size: 12px; color: #a8a29e; }

/* ---------- Unterseiten ---------- */
.kz-site .sros-front-main { background: var(--kz-paper); }
.kz-site:not(.hh-home):not(.mp-home) .sros-front-main { padding: 40px 0 90px; }
.kz-site .sros-eyebrow { font-family: var(--kz-sans); letter-spacing: .15em; color: var(--kz-ink); }
.kz-site .sr-page-hero:not(.has-image) { background: none; padding: 0; margin-bottom: 36px; border-bottom: 1px solid var(--kz-ink); padding-bottom: 28px; }
.kz-site .sr-page-hero h1, .kz-site .sr-detail-head h1, .kz-site .sr-contact-intro h1 { font-family: var(--kz-serif); font-weight: 400; letter-spacing: -.035em; line-height: .95; font-size: clamp(42px, 6vw, 86px); }
.kz-site .sros-btn--primary, .kz-site .sros-btn.sros-btn--primary { background: var(--kz-ink); border-color: var(--kz-ink); color: var(--kz-paper); border-radius: 0; }
.kz-site .sros-btn--primary:hover { background: var(--kz-deep); border-color: var(--kz-deep); }
.kz-site .sros-bookbox:not(.kz-bookbox) { background: var(--kz-white); border: 1px solid var(--kz-line); border-top: 5px solid var(--kz-ink); border-radius: 0; box-shadow: none; }
.kz-site .sros-input, .kz-site .sros-select, .kz-site .sros-textarea { border-radius: 0; background: var(--kz-white); }

/* ---------- Geschenkgutschein (deobald-sr 1.3.0) ---------- */
.gs-intro { padding: 90px 0 60px; }
.gs-title { margin: 0; font-size: clamp(46px, 6.4vw, 96px); line-height: .92; letter-spacing: -.045em; }
.gs-title em { font-style: italic; color: var(--kz-em); }
.gs-lead { margin-top: 28px; }
.gs-facts { list-style: none; margin: 0; padding: 0; align-self: end; border-left: 1px solid var(--kz-line); padding-left: 25px; display: grid; gap: 22px; }
.gs-facts li strong, .gs-facts dt { display: block; font-family: var(--kz-serif); font-weight: 400; font-size: 24px; line-height: 1.1; }
.gs-facts li span { display: block; margin-top: 6px; font-size: 14px; color: var(--kz-muted); }
.gs-facts--dl div { display: block; }
.gs-facts--dl dt { font-family: var(--kz-sans); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--kz-muted); }
.gs-facts--dl dd { margin: 6px 0 0; font-family: var(--kz-serif); font-size: 28px; }
.gs-code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important; letter-spacing: .08em; font-size: 24px !important; }
.gs-shop { background: var(--kz-white); padding: 70px 0 110px; scroll-margin-top: 90px; }
.gs-grid { display: grid; grid-template-columns: 7fr 5fr; gap: 60px; align-items: start; }
.gs-form { min-width: 0; }
.gs-h2 { margin: 12px 0 18px; font-size: clamp(36px, 4vw, 56px); line-height: .95; letter-spacing: -.04em; }
.gs-step { margin: 0 0 40px; padding: 26px 0 0; border: 0; border-top: 1px solid var(--kz-ink); min-width: 0; }
.gs-step legend { float: left; width: 100%; display: flex; align-items: baseline; gap: 14px; margin: 0 0 20px; padding: 0; font-family: var(--kz-serif); font-size: 30px; line-height: 1.1; }
.gs-step legend + * { clear: both; }
.gs-motive { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.gs-motiv { position: relative; display: block; cursor: pointer; border: 1px solid var(--kz-line); background: var(--gs-bg); color: var(--gs-ink); }
.gs-motiv input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.gs-motiv-bild { display: block; aspect-ratio: 16 / 10; background: var(--gs-bg); overflow: hidden; }
.gs-motiv-bild img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gs-motiv-name { display: block; padding: 10px 12px; font: 700 14px var(--kz-sans); color: var(--gs-ink); letter-spacing: .02em; }
.gs-motiv:has(input:checked) { outline: 3px solid var(--kz-ink); outline-offset: 2px; }
.gs-motiv:has(input:focus-visible) { outline: 3px solid var(--kz-focus, var(--kz-em)); outline-offset: 4px; }
.gs-betraege { display: flex; flex-wrap: wrap; gap: 8px; }
.gs-chip { position: relative; cursor: pointer; }
.gs-chip input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.gs-chip span { display: inline-block; min-width: 86px; padding: 13px 16px; border: 1px solid var(--kz-ink); text-align: center; font: 700 16px var(--kz-sans); }
.gs-chip:has(input:checked) span { background: var(--kz-ink); color: var(--kz-paper); }
.gs-chip:has(input:focus-visible) span { outline: 3px solid var(--kz-focus, var(--kz-em)); outline-offset: 2px; }
.gs-frei { margin: 18px 0 0; max-width: 320px; }
.gs-felder label, .gs-frei label { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--kz-muted); }
.gs-felder label small { letter-spacing: 0; text-transform: none; float: right; }
.gs-form input[type=text], .gs-form input:not([type]), .gs-form input[type=email], .gs-form input[type=number], .gs-form textarea { display: block; width: 100%; margin-top: 6px; padding: 10px 0; border: 0; border-bottom: 1px solid var(--kz-ink); border-radius: 0; background: transparent; color: var(--kz-ink); font: 400 17px var(--kz-sans); }
.gs-form textarea { resize: vertical; min-height: 84px; }
.gs-form input:focus-visible, .gs-form textarea:focus-visible { outline: 2px solid var(--kz-focus, var(--kz-em)); outline-offset: 3px; }
.gs-felder { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 28px; }
.gs-felder p { margin: 0; }
.gs-voll { grid-column: 1 / -1; }
.gs-wahl { display: grid; gap: 10px; }
.gs-option { display: flex; gap: 14px; align-items: flex-start; padding: 16px; border: 1px solid var(--kz-line); cursor: pointer; color: var(--kz-ink); }
.gs-option input { margin-top: 4px; accent-color: var(--kz-ink); width: 18px; height: 18px; }
.gs-option strong { display: block; font-size: 16px; }
.gs-option small { display: block; margin-top: 4px; font-size: 14px; color: var(--kz-muted); }
.gs-option:has(input:checked) { border-color: var(--kz-ink); background: var(--kz-paper); }
.gs-check { display: flex; gap: 12px; align-items: flex-start; margin-top: 24px; font-size: 14px; color: var(--kz-ink); line-height: 1.5; }
.gs-check input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--kz-ink); flex: none; }
.gs-check a { text-decoration: underline; text-underline-offset: 3px; }
.gs-pay { border-top: 1px solid var(--kz-ink); padding-top: 24px; }
.gs-summe { display: flex; justify-content: space-between; align-items: baseline; margin: 0 0 18px; }
.gs-summe span { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--kz-muted); }
.gs-summe strong { font-family: var(--kz-serif); font-weight: 400; font-size: 44px; line-height: 1; }
.gs-pay-knoepfe { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; margin-bottom: 14px; }
.gs-paybtn { display: flex; justify-content: space-between; align-items: center; padding: 18px 20px; border: 1px solid var(--kz-ink); background: var(--kz-ink); color: var(--kz-paper); font: 800 16px var(--kz-sans); cursor: pointer; }
.gs-paybtn:hover { background: var(--kz-cta); border-color: var(--kz-cta); color: var(--kz-cta-ink); }
.gs-paybtn--paypal { background: #ffc439; border-color: #ffc439; color: #111; }
.gs-paybtn--paypal:hover { background: #f2b52a; border-color: #f2b52a; color: #111; }
.gs-paybtn:focus-visible { outline: 3px solid var(--kz-focus, var(--kz-em)); outline-offset: 3px; }
.gs-vorschau { position: sticky; top: 110px; }
.gs-karte { background: var(--gs-bg); color: var(--gs-ink); padding: 30px 30px 24px; box-shadow: 0 24px 50px rgba(30, 20, 15, .14); }
.gs-karte-kopf { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; }
.gs-karte-signet { width: 44px; height: 44px; display: block; margin-bottom: 10px; }
.gs-karte-haus { margin: 0; font-family: var(--kz-serif); font-size: 26px; line-height: 1.05; }
.gs-karte-mono { display: block; margin: 6px 0 0; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--gs-soft); }
.gs-karte-wert { margin: 0; font-family: var(--kz-serif); font-size: 40px; line-height: 1; color: var(--gs-akzent); white-space: nowrap; }
.gs-karte-bild { margin: 22px 0 0; aspect-ratio: 186 / 68; overflow: hidden; }
.gs-karte-bild img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gs-karte-fv { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 22px; }
.gs-karte-fv p { margin: 0; padding-top: 10px; border-top: 1px solid var(--gs-linie); }
.gs-karte-fv span:last-child { display: block; margin-top: 4px; font-family: var(--kz-serif); font-size: 20px; overflow-wrap: anywhere; }
.gs-karte-msg { margin: 18px 0 0; padding-left: 14px; border-left: 3px solid var(--gs-akzent); font-family: var(--kz-serif); font-style: italic; font-size: 17px; line-height: 1.4; white-space: pre-line; overflow-wrap: anywhere; }
.gs-karte-code { margin-top: 22px; padding-top: 16px; border-top: 1px dashed var(--gs-linie); }
.gs-karte-codewert { display: block; margin-top: 4px; font: 700 22px ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing: .1em; }
.gs-vorschau-hinweis { margin-top: 14px; }
.kz-site a.kz-btn.gs-btn-voll { background: var(--kz-ink); color: var(--kz-paper); }
.kz-site a.kz-btn.gs-btn-voll:hover { background: var(--kz-cta); border-color: var(--kz-cta); color: var(--kz-cta-ink); }
@media (max-width: 980px) {
  .gs-grid { grid-template-columns: 1fr; gap: 40px; }
  .gs-vorschau { position: static; order: -1; max-width: 560px; }
  .gs-facts { border-left: 0; padding-left: 0; }
}
@media (max-width: 640px) {
  .gs-intro { padding: 60px 0 40px; }
  .gs-shop { padding: 40px 0 70px; }
  .gs-motive { grid-template-columns: 1fr 1fr; }
  .gs-felder { grid-template-columns: 1fr; }
  .gs-karte { padding: 22px 20px 18px; }
  .gs-karte-haus { font-size: 21px; }
  .gs-karte-wert { font-size: 30px; }
  .gs-chip span { min-width: 74px; padding: 12px; }
  .gs-step legend { font-size: 25px; }
}

/* ---------- Kleinere Bildschirme ---------- */
@media (max-width: 1200px) {
  .kz-hero-copy, .kz-hero-media, .kz-hero-visual { min-height: 600px; }
  .kz-result { grid-template-columns: 100px 1fr 150px; }
  .kz-result .kz-result-go { grid-column: 2 / 4; justify-self: start; }
}
@media (max-width: 980px) {
  .kz-wrap { width: min(100% - 30px, 1440px); }
  .kz-net-tag { display: none; }
  .kz-3col, .kz-hero-grid--text-links, .kz-hero-grid--bilder-links, .kz-story-grid, .kz-location-grid, .kz-neighbor-grid, .kz-partner-grid, .kz-mp .kz-partner-grid, .kz-engine { grid-template-columns: 1fr; }
  .kz-3col { gap: 18px; }
  .kz-hero-copy { min-height: 0; }
  .kz-hero-grid--text-links .kz-hero-copy, .kz-hero-grid--bilder-links .kz-hero-copy { padding: 42px 0 45px; }
  .kz-hero-grid--bilder-links .kz-hero-copy { order: -1; }
  .kz-hero-bottom { margin-top: 60px; }
  .kz-hero-media { min-height: 520px; }
  .kz-hero-visual { min-height: 560px; padding-right: 0; }
  .kz-bar-in { grid-template-columns: 1fr 1fr; }
  .kz-bar-cell:first-child { padding-left: 20px; grid-column: 1 / -1; border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, .35); }
  .kz-bar-go { grid-column: 1 / -1; min-height: 58px; }
  .kz-stat { border-left: 0; border-top: 1px solid var(--kz-line); padding: 22px 0 0; }
  .kz-room, .kz-hh .kz-room { grid-template-columns: 1fr; }
  .kz-engine-side { border-right: 0; border-bottom: 1px solid var(--kz-line); }
  .kz-site .kz-bookbox { grid-template-columns: 1fr; }
  .kz-engine-form { grid-template-columns: 1fr 1fr; }
  .kz-engine-form p:nth-child(2n) { border-right: 0; }
  .kz-engine-form p:nth-child(3) { padding-left: 0; }
  .kz-engine-go { grid-column: 1 / -1; min-height: 52px; }
  .kz-story-side, .kz-location-side { position: static; }
  .kz-program-list a { grid-template-columns: 1fr; gap: 4px; }
  .kz-who { text-align: left; }
  .kz-neighbor-copy, .kz-partner-copy, .kz-mp .kz-partner-copy { padding: 30px 0 40px; }
  .kz-mp .kz-partner-media { order: 0; }
  .kz-neighbor-media { min-height: 380px; }
  .kz-partner-media { min-height: 440px; }
  .kz-foot-grid { grid-template-columns: 1fr 1fr; }
  .kz-foot-brand { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .kz-intro { padding: 70px 0 55px; }
  .kz-hero h1 { font-size: clamp(52px, 15vw, 80px); }
  .kz-hero-visual { grid-template-columns: 1fr; grid-template-rows: 1fr; min-height: 420px; }
  .kz-hero-visual .kz-hv-0 { grid-row: auto; }
  .kz-hero-visual .kz-hv-1, .kz-hero-visual .kz-hv-2 { display: none; }
  .kz-hero-visual .kz-hero-mark { width: 84px; height: 84px; left: 16px; bottom: 16px; }
  .kz-hero-media figcaption { width: 80%; }
  .kz-bar-in { grid-template-columns: 1fr; }
  .kz-bar-cell { border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, .3); padding-left: 20px; }
  .kz-rooms { padding-bottom: 70px; }
  .kz-booking { padding: 64px 0 72px; }
  .kz-engine-main { padding: 24px 18px 28px; }
  .kz-engine-top { grid-template-columns: 1fr; }
  .kz-price { text-align: left; }
  .kz-engine-form { grid-template-columns: 1fr; }
  .kz-engine-form p { border-right: 0; border-bottom: 1px solid var(--kz-line); padding-left: 0; }
  .kz-result { grid-template-columns: 82px 1fr; }
  .kz-result img { width: 82px; height: 70px; }
  .kz-result-price { grid-column: 2; text-align: left; }
  .kz-result .kz-result-go { grid-column: 2; width: 100%; }
  .kz-site .kz-bookbox .sros-picker-fields { grid-template-columns: 1fr; }
  .kz-story { padding: 80px 0; }
  .kz-story-img { grid-template-columns: 3fr 2fr; gap: 8px; }
  .kz-timeline > div { grid-template-columns: 80px 1fr; gap: 16px; }
  .kz-walk { grid-template-columns: 1fr; }
  .kz-walk > div, .kz-walk > div + div { padding: 16px 0; border-right: 0; border-bottom: 1px solid var(--kz-line); }
  .kz-map { aspect-ratio: 1.1; }
  .kz-map-label { white-space: normal; width: 80%; }
  .kz-contact { padding: 70px 0 60px; }
  .kz-foot-grid { grid-template-columns: 1fr; }
  .kz-foot-bottom { flex-direction: column; gap: 6px; }
  .kz-btn { min-width: 0; width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .kz-room-photo img { transition: none; } }

/* Seitenkopf mit Bild: Text über dem Bild statt Schrift auf Fassade (1.2.0) */
.kz-site .sr-page-hero.has-image { display: flex; flex-direction: column-reverse; align-items: stretch; min-height: 0; overflow: visible; border-radius: 0; isolation: auto; margin-bottom: 44px; background: none; }
.kz-site .sr-page-hero.has-image::before, .kz-site .sr-page-hero.has-image::after { display: none; }
.kz-site .sr-page-hero.has-image > img { position: static; inset: auto; z-index: auto; width: 100%; height: auto; aspect-ratio: 21 / 9; object-fit: cover; margin-top: 30px; }
.kz-site .sr-page-hero.has-image .sr-page-hero-copy { padding: 0 0 28px; max-width: none; color: var(--kz-ink); border-bottom: 1px solid var(--kz-ink); }
.kz-site .sr-page-hero.has-image .sr-page-hero-copy h1, .kz-site .sr-page-hero.has-image .sr-page-lead, .kz-site .sr-page-hero.has-image .sros-eyebrow { color: var(--kz-ink); text-shadow: none; }
.kz-site .sr-page-hero .sr-page-lead { max-width: 46em; color: var(--kz-muted); }
@media (max-width: 640px) { .kz-site .sr-page-hero.has-image > img { aspect-ratio: 4 / 3; } }

/* ---------- Hausverbund mit drei und mehr Häusern (deobald-sr 1.4.0) ----------
   Gleichwertige Karten der anderen Häuser, jede in ihrer Hausfarbe
   (--kz-partner, auf Weiß mindestens 4,5:1). */
.kz-partner--mehr { padding: 90px 0 100px; }
.kz-partner--mehr .kz-partner-head h2 { font-size: clamp(38px, 4.6vw, 68px); }
.kz-houses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin: 0; padding: 0; list-style: none; }
.kz-houses--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kz-house { display: flex; }
.kz-site a.kz-house-link { display: flex; flex-direction: column; width: 100%; background: #fff; color: var(--kz-ink); text-decoration: none; border: 1px solid var(--kz-line); border-top: 5px solid var(--kz-partner); }
.kz-house-media { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--kz-paper2); }
.kz-house-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.kz-house-link:hover .kz-house-media img { transform: scale(1.03); }
.kz-house-body { display: flex; flex-direction: column; flex: 1; gap: 14px; padding: 26px 28px 28px; }
.kz-house-brand { display: flex; align-items: center; gap: 14px; min-height: 56px; }
.kz-house-brand img { flex: 0 0 auto; width: 46px; height: 56px; object-fit: contain; }
.kz-house-brand--logo img { width: auto; height: 56px; max-width: 150px; }
.kz-house-brand strong { font-family: var(--kz-serif); font-weight: 400; font-size: clamp(25px, 2.2vw, 33px); line-height: 1.05; letter-spacing: -.02em; color: var(--kz-partner); }
.kz-house-brand--logo strong { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.kz-house-tag { color: #5a5f66; }
.kz-house-text { font-size: 16px; line-height: 1.5; color: #33373d; }
.kz-house-go { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: auto; padding: 13px 16px; border: 1px solid var(--kz-partner); color: var(--kz-partner); font: 700 15px/1.2 var(--kz-sans); }
.kz-house-link:hover .kz-house-go, .kz-house-link:focus-visible .kz-house-go { background: var(--kz-partner); color: #fff; }
@media (max-width: 980px) {
  .kz-houses, .kz-houses--3 { grid-template-columns: 1fr; gap: 20px; }
  .kz-partner--mehr { padding: 60px 0 70px; }
  .kz-house-body { padding: 22px 20px 22px; }
}
@media (max-width: 640px) {
  /* Leiste oben: drei Hausnamen brauchen Platz – enger setzen, Ort weglassen */
  .kz-net-in { padding: 7px 0; font-size: 12px; letter-spacing: .08em; }
  .kz-net-links { gap: 2px 10px; }
  .kz-net-links > span:not(.kz-sep):first-child, .kz-net-links > span:first-child + .kz-sep { display: none; }
}
@media (prefers-reduced-motion: reduce) { .kz-house-media img { transition: none; } }
