/*
 * Tailwind-Preflight aus dem Build des Kandidaten.
 *
 * Der Kandidat importiert Tailwind nur wegen dieser Basis: line-height 1.5,
 * font-weight: inherit auf Überschriften, die Margin- und Border-Resets.
 * Ohne sie sitzt jede Zeile anders und jede Überschrift ist zu fett.
 */
@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}

:root {
  --ink: #17231e;
  --ink-soft: #536058;
  --paper: #f3efe4;
  --paper-deep: #e7e0d0;
  --white: #fbfaf6;
  --moss: #426448;
  --moss-dark: #254130;
  --river: #5b7f89;
  --river-dark: #315c68;
  --clay: #a9694e;
  --clay-dark: #77432f;
  --gold: #c79a4d;
  --line: rgba(23, 35, 30, 0.18);
  --shadow: 0 30px 70px rgba(28, 41, 34, 0.12);
  --map-frame-aspect: 50 / 31;
  --site-header-height: 92px;
}

* { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; }
body {
  overflow-x: clip;
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "Liberation Sans", "Nimbus Sans", Arial, sans-serif;
  font-size: 1.3rem;
  text-rendering: optimizeLegibility;
}
/* Footer at the foot of short pages, without an empty strip below it
   (package 05, 18.09.2026). The candidate does this on <body>; in the block
   theme the header, main and footer sit one level down, in .wp-site-blocks. */
.wp-site-blocks { display: flex; min-height: 100vh; min-height: 100svh; flex-direction: column; }
.wp-site-blocks > main { flex: 1 0 auto; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
::selection { background: #d9c797; color: var(--ink); }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }

.skip-link {
  position: fixed;
  z-index: 100;
  top: 10px;
  left: 10px;
  padding: 10px 14px;
  background: var(--ink);
  color: var(--white);
  transform: translateY(-150%);
}
.skip-link:focus { transform: translateY(0); }

.shell { width: min(1546px, calc(100% - 64px)); margin-inline: auto; }
.section { padding-block: 128px; }
.kicker {
  margin: 0;
  color: var(--moss);
  font-size: .975rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1.4;
  text-transform: uppercase;
}
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { letter-spacing: -0.035em; }
h1 { font-size: clamp(3.4rem, 7.8vw, 8.6rem); line-height: 0.88; }
h2 { font-size: clamp(2.3rem, 4.7vw, 5.6rem); line-height: 0.96; }
h3 { font-size: 1.7rem; line-height: 1.05; }
p { line-height: 1.65; }
.large-copy { font-size: clamp(1.15rem, 1.8vw, 1.7rem); line-height: 1.5; }
.fine-print { color: var(--ink-soft); font-size: 1.131rem; }
.decision-overview-link { font-weight: 700; }
.decision-overview-link:hover, .decision-overview-link:focus-visible { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }

.site-header {
  position: sticky;
  z-index: 50;
  top: 0;
  display: flex;
  min-height: 88px;
  align-items: center;
  justify-content: space-between;
  padding: 9px clamp(32px, 4.2vw, 82px);
  border-bottom: 1px solid var(--line);
  background: rgba(243, 239, 228, 0.9);
  backdrop-filter: blur(18px);
}
.brand { display: inline-flex; min-width: 0; align-items: center; transform: translateY(7px); }
.brand-logo { width: 149px; height: auto; flex: 0 0 auto; }
.brand-copy { position: relative; z-index: 1; margin-left: -50px; transform: translateY(-10px); text-align: right; white-space: nowrap; }
.brand strong, .brand small { display: block; }
.brand strong { color: var(--ink); font-size: 1.785rem; font-weight: 700; letter-spacing: -0.025em; line-height: .96; }
.brand small { margin-top: 4px; color: var(--ink); font-size: .875rem; font-weight: 400; letter-spacing: -.005em; line-height: 1.05; }
.main-nav { display: flex; align-items: center; gap: 22px; font-size: 1.066rem; font-weight: 700; }
.primary-nav-links { display: flex; align-items: center; gap: 22px; }
.main-nav a { padding-block: 10px; border-bottom: 1px solid transparent; }
.main-nav a:hover, .main-nav a:focus-visible { border-color: var(--ink); }
.main-nav .naturepark-link { padding: 9px 14px; border: 1px solid var(--moss); border-radius: 999px; color: var(--moss-dark); }
.main-nav .naturepark-link:hover, .main-nav .naturepark-link:focus-visible { border-color: var(--moss-dark); background: var(--moss-dark); color: var(--white); }
.opening-pill { padding: 10px 14px; border-radius: 999px; background: var(--ink); color: var(--white); }
.header-utility-actions { display: flex; align-items: center; gap: 8px; }
.main-nav .instagram-link { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; padding: 0; border: 1px solid var(--ink); border-radius: 50%; background: var(--ink); color: var(--white); }
.main-nav .instagram-link:hover, .main-nav .instagram-link:focus-visible { border-color: var(--ink); background: transparent; color: var(--ink); }
.instagram-link svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.instagram-link .instagram-dot { fill: currentColor; stroke: none; }
.language-menu { position: relative; }
.language-menu > summary { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid var(--line); border-radius: 50%; cursor: pointer; font-size: .78rem; list-style: none; }
.language-menu > summary::-webkit-details-marker { display: none; }
.language-menu > div { position: absolute; top: calc(100% + 18px); right: 0; width: 180px; padding: 8px; border: 1px solid var(--line); background: var(--white); box-shadow: var(--shadow); }
.language-menu > div a { display: grid; grid-template-columns: 34px 1fr; gap: 10px; padding: 11px 10px; border: 0; font-size: .988rem; }
.language-menu > div a:hover, .language-menu > div a[aria-current="page"] { background: var(--paper-deep); }
.language-menu > div a span { color: var(--ink-soft); font-size: .845rem; }

.accessibility-menu { position: relative; }
.accessibility-menu > summary { padding: 9px 0; border-bottom: 1px dotted var(--ink-soft); cursor: pointer; color: var(--ink-soft); font-size: .884rem; list-style: none; }
.accessibility-menu > summary::-webkit-details-marker { display: none; }
.accessibility-menu > summary::after { content: "+"; margin-left: 6px; color: var(--moss); }
.accessibility-menu[open] > summary::after { content: "−"; }
.accessibility-panel { position: absolute; top: calc(100% + 18px); right: 0; width: min(390px, calc(100vw - 32px)); padding: 24px; border: 1px solid var(--line); background: var(--white); box-shadow: var(--shadow); }
.accessibility-panel > strong { display: block; margin: 15px 0 10px; font-size: 1.15rem; }
.accessibility-panel > p:not(.kicker) { color: var(--ink-soft); font-size: 1.04rem; font-weight: 400; }
.accessibility-panel > a { display: block; padding: 11px 0; border-top: 1px solid var(--line); font-size: .975rem; }

.photo-hero {
  position: relative;
  min-height: min(880px, calc(100vh - 91px));
  overflow: hidden;
  background: var(--ink);
  color: var(--white);
}
.home-hero-slider, .home-hero-slide { position: absolute; inset: 0; }
.home-hero-slider { z-index: 0; overflow: hidden; background: var(--ink); }
.home-hero-slide { opacity: 0; transition: opacity .9s ease-in-out; }
.home-hero-slide.is-active { z-index: 1; opacity: 1; }
.home-hero-slide.is-previous { z-index: 0; opacity: 0; }
.home-hero-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--hero-position, 50% 50%);
  transform-origin: var(--hero-focus, 50% 50%);
}
.home-hero-slide.is-active img, .home-hero-slide.is-previous img { animation: home-hero-zoom 5s linear forwards; }
@keyframes home-hero-zoom { from { transform: scale(1); } to { transform: scale(1.07); } }
.photo-hero-shade { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgba(12,27,20,.88) 0%, rgba(12,27,20,.62) 42%, rgba(12,27,20,.16) 78%), linear-gradient(0deg, rgba(12,27,20,.55), transparent 46%); }
.photo-hero-content { position: relative; z-index: 2; display: flex; min-height: min(790px, calc(100vh - 150px)); flex-direction: column; justify-content: center; padding-block: 74px 120px; }
.photo-hero .kicker { color: #d5e4d5; }
.photo-hero h1 { max-width: 900px; margin: 26px 0 34px; text-shadow: 0 4px 32px rgba(0,0,0,.18); }
.photo-hero .hero-lead { color: rgba(255,255,255,.84); }
.button.filled { background: var(--white); color: var(--ink); }
.photo-credit { position: absolute; z-index: 3; right: 24px; bottom: 90px; color: rgba(255,255,255,.7); font-size: .845rem; }
.photo-credit a {
  display: inline-block;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(255,255,255,.94);
  text-decoration: none;
  text-shadow: 0 1px 4px rgba(0,0,0,.78);
}
.photo-credit a:hover,
.photo-credit a:focus-visible { background: transparent; text-decoration: underline; text-underline-offset: 3px; }
.hero-facts { position: absolute; z-index: 3; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: repeat(3, 1fr); border-block: 1px solid rgba(255,255,255,.28); background: rgba(12,27,20,.62); backdrop-filter: blur(16px); }
.hero-facts > a { display: flex; min-height: 78px; align-items: center; gap: 12px; padding: 18px 3vw; color: rgba(255,255,255,.72); font-size: .988rem; }
.hero-facts > a + a { border-left: 1px solid rgba(255,255,255,.22); }
.hero-facts > a:hover span,
.hero-facts > a:focus-visible span { text-decoration: underline; text-underline-offset: 4px; }
.hero-facts strong { color: var(--white); font-size: 1.6rem; letter-spacing: -.04em; }

@media (prefers-reduced-motion: reduce) {
  .home-hero-slide { transition: none; }
  .home-hero-slide.is-active img, .home-hero-slide.is-previous img { animation: none; }
}

.season-line { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 26px; border-block: 1px solid var(--line); }
.season-line span { padding: 10px 6px; color: var(--ink-soft); font-size: .871rem; text-align: center; text-transform: uppercase; letter-spacing: .09em; }
.season-line span + span { border-left: 1px solid var(--line); }
.hirschberg-gallery { display: grid; grid-template-columns: 1.55fr .75fr .75fr; grid-template-rows: repeat(2, 260px); gap: 16px; }
.hirschberg-gallery .image-figure { position: relative; overflow: hidden; background: var(--paper-deep); }
.hirschberg-gallery .image-figure-media { height: 100%; }
.hirschberg-gallery .image-figure img { height: 100%; aspect-ratio: auto; object-fit: cover; transition: transform .7s ease; }
.hirschberg-gallery .image-figure:hover img { transform: scale(1.025); }
.hirschberg-gallery .gallery-large { grid-row: 1 / span 2; }
.hirschberg-gallery .image-figure:nth-child(4) { grid-column: 2 / span 2; }
.hirschberg-gallery figcaption { position: absolute; inset: auto 0 0; padding: 30px 14px 12px; background: linear-gradient(transparent, rgba(10,24,18,.72)); color: rgba(255,255,255,.78); }
.gallery-note { max-width: 900px; margin: 22px 0 0 auto; color: var(--ink-soft); font-size: 1.014rem; }

.radius-section { padding-block: 118px; background: var(--paper-deep); }
.radius-grid { display: grid; grid-template-columns: .82fr 1.18fr; align-items: center; gap: 8vw; }
.radius-copy h2 { margin: 18px 0 28px; }
.radius-copy .large-copy { color: var(--ink-soft); }
.radius-buttons { margin-top: 38px; border-top: 1px solid var(--line); }
.radius-buttons a { display: grid; grid-template-columns: 110px 1fr auto; align-items: center; gap: 18px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.radius-buttons a:hover strong { color: var(--moss); }
.radius-buttons span { color: var(--ink-soft); font-size: .91rem; }
.radius-buttons strong { font-size: 1.35rem; }
.radius-buttons i { font-style: normal; }
.home-local-map {
  position: relative;
  min-width: 0;
  aspect-ratio: var(--map-frame-aspect);
  overflow: hidden;
  border: 1px solid var(--line);
  background: #edf0e9;
}
.home-local-map-canvas { width: 100%; height: 100%; }
.home-local-map .geo-map-zoom-controls { top: auto; right: 12px; bottom: 12px; }
.home-local-map-info {
  position: absolute;
  z-index: 42;
  top: 0;
  right: 0;
  left: 0;
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 13px 15px;
  border: 1px solid rgba(23,35,30,.22);
  background: rgba(251,250,246,.94);
  box-shadow: 0 10px 28px rgba(23,35,30,.14);
  backdrop-filter: blur(8px);
  color: var(--ink);
  pointer-events: auto;
}
.home-local-map-info-copy { min-width: 0; }
.home-local-map-info .kicker { margin: 0 0 4px; font-size: .58rem; }
.home-local-map-info-copy > strong { display: block; font-size: clamp(.96rem, 1.2vw, 1.16rem); line-height: 1.12; }
.home-local-map-info-copy > p:last-child {
  display: -webkit-box;
  margin: 5px 0 0;
  overflow: hidden;
  color: var(--ink-soft);
  font-size: clamp(.66rem, .75vw, .76rem);
  line-height: 1.38;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.home-local-map-info-meta { display: grid; min-width: 126px; gap: 4px; padding-left: 15px; border-left: 1px solid var(--line); }
.home-local-map-info-meta span { color: var(--ink-soft); font-size: .66rem; white-space: nowrap; }
.home-local-map-info-meta b { color: var(--moss-dark); font-size: 1rem; }
.home-local-map-info-meta small { color: rgba(23,35,30,.62); font-size: .58rem; }
.home-local-map-info-actions { display: flex; align-items: center; gap: 8px; }
.home-local-map-info-actions a {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  gap: 10px;
  padding: 7px 11px;
  border-radius: 999px;
  background: var(--moss-dark);
  color: var(--white);
  font-size: .64rem;
  font-weight: 760;
  white-space: nowrap;
}
.home-local-map-info-actions a:hover,
.home-local-map-info-actions a:focus-visible { background: var(--ink); }
.home-local-map-info-actions button {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(23,35,30,.24);
  border-radius: 50%;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  font-size: 1rem;
}
.home-local-map-info-actions button:hover,
.home-local-map-info-actions button:focus-visible { background: var(--ink); color: var(--white); }

@media (min-width: 981px) and (max-width: 1180px) {
  .home-local-map-info { gap: 10px; padding: 7px 11px; }
  .home-local-map-info .kicker { margin-bottom: 2px; font-size: .48rem; }
  .home-local-map-info-copy > strong { font-size: .82rem; line-height: 1.04; }
  .home-local-map-info-copy > p:last-child { margin-top: 3px; font-size: .53rem; line-height: 1.22; }
  .home-local-map-info-meta { min-width: 108px; gap: 2px; padding-left: 10px; }
  .home-local-map-info-meta span { font-size: .56rem; }
  .home-local-map-info-meta b { font-size: .82rem; }
  .home-local-map-info-meta small { font-size: .49rem; }
  .home-local-map-info-actions { gap: 5px; }
  .home-local-map-info-actions a { min-height: 28px; gap: 6px; padding: 5px 8px; font-size: .55rem; }
  .home-local-map-info-actions button { width: 28px; height: 28px; font-size: .86rem; }
}

.path-groups { display: grid; gap: 72px; }
.path-group { min-width: 0; border-bottom: 1px solid var(--line); }
.path-group > header { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 20px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.path-group > header h3 { margin: 8px 0 0; font-size: clamp(2rem, 3.4vw, 4rem); }
.path-group > header a { padding: 10px 0; font-size: 1.04rem; font-weight: 700; }
.path-rail { display: grid; grid-template-columns: repeat(auto-fit, minmax(175px, 1fr)); gap: 12px; overflow: visible; padding: 2px 0 18px; }
.path-tile { position: relative; min-height: 390px; overflow: hidden; background: var(--ink); color: var(--white); scroll-snap-align: start; }
.path-tile > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .65s ease; }
.path-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10,23,17,.92) 0%, rgba(10,23,17,.18) 64%); }
.path-tile:hover > img { transform: scale(1.04); }
.path-tile-number { position: absolute; z-index: 2; top: 16px; left: 16px; display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; background: rgba(251,250,246,.9); color: var(--ink); font-size: .91rem; font-weight: 700; }
.path-tile > div { position: absolute; z-index: 2; right: 18px; bottom: 20px; left: 18px; }
.path-tile p { margin-bottom: 8px; color: rgba(255,255,255,.65); font-size: .832rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.path-tile h4 { margin: 0 0 14px; font-size: 1.25rem; line-height: 1.05; letter-spacing: -.03em; }
.path-tile div > span { color: rgba(255,255,255,.7); font-size: .871rem; }

.naturepark-teaser { padding-block: 124px; background: #dce3d5; }
.naturepark-teaser-grid { display: grid; grid-template-columns: .92fr 1.08fr; align-items: stretch; gap: 7vw; }
.naturepark-teaser-image { position: relative; min-height: 650px; overflow: hidden; background: var(--moss-dark); }
.naturepark-teaser-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(13,31,22,.56), transparent 60%); }
.naturepark-teaser-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.naturepark-teaser-image:hover img { transform: scale(1.025); }
.naturepark-teaser-image > span { position: absolute; z-index: 2; right: 28px; bottom: 24px; display: grid; width: 68px; height: 68px; place-items: center; border: 1px solid rgba(255,255,255,.6); border-radius: 50%; color: var(--white); font-size: 1.066rem; font-weight: 700; letter-spacing: .12em; }
.naturepark-teaser-copy { align-self: center; }
.naturepark-teaser-copy h2 { margin: 20px 0 30px; }
.naturepark-teaser-copy > .large-copy { color: var(--ink-soft); }
.naturepark-teaser-facts { margin-top: 38px; border-top: 1px solid var(--line); }
.naturepark-teaser-facts p { display: grid; grid-template-columns: 130px 1fr; gap: 24px; margin: 0; padding: 17px 0; border-bottom: 1px solid var(--line); }
.naturepark-teaser-facts strong { font-size: 1.014rem; }
.naturepark-teaser-facts span { color: var(--ink-soft); font-size: 1.092rem; }
.naturepark-teaser-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin-top: 32px; }
.naturepark-teaser-actions > a:last-child { font-size: 1.014rem; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.naturepark-status-note { margin-top: 28px; padding-left: 16px; border-left: 3px solid var(--gold); color: var(--ink-soft); font-size: 1.014rem; }

.events-hero {
  display: flex;
  min-height: 590px;
  align-items: center;
  border-bottom: 1px solid rgba(255,255,255,.18);
  background: linear-gradient(120deg, var(--moss-dark), #102b26 58%, var(--river-dark));
  color: var(--white);
}
.events-hero .kicker { color: #b9d3c0; }
.events-hero-grid { display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; gap: clamp(54px, 9vw, 140px); padding-block: 96px; }
.events-hero h1 { max-width: 820px; margin: 22px 0 0; font-size: clamp(4.5rem, 7.6vw, 8.2rem); }
.events-hero-copy { max-width: 650px; }
.events-hero-copy > .large-copy { color: rgba(255,255,255,.78); }
.events-preview-note { margin-top: 38px; padding: 24px 26px; border: 1px solid rgba(255,255,255,.2); border-left: 4px solid var(--gold); background: rgba(251,250,246,.08); }
.events-preview-note strong { color: #d7e4d7; font-size: .845rem; letter-spacing: .11em; text-transform: uppercase; }
.events-preview-note p { margin: 9px 0 0; color: rgba(255,255,255,.7); font-size: .936rem; line-height: 1.5; }
.events-calendar-section .section-heading > p { max-width: 500px; align-self: end; color: var(--ink-soft); }
.event-calendar-module { display: grid; grid-template-columns: minmax(0, 1.22fr) minmax(380px, .78fr); overflow: hidden; border: 1px solid var(--line); background: var(--white); box-shadow: 0 18px 52px rgba(28,41,34,.08); }
.event-calendar-main { min-width: 0; padding: clamp(28px, 3.2vw, 48px); border-right: 1px solid var(--line); }
.event-calendar-head { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.event-calendar-head h3 { margin: 0; font-size: clamp(2rem, 3vw, 3.4rem); text-transform: capitalize; }
.event-calendar-controls { display: flex; gap: 8px; }
.event-calendar-controls button { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid var(--moss); border-radius: 999px; background: transparent; color: var(--moss-dark); cursor: pointer; font-size: 1.1rem; }
.event-calendar-controls button:hover, .event-calendar-controls button:focus-visible { background: #e4eadf; }
.event-calendar-weekdays, .event-calendar-grid { display: grid; min-width: 0; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.event-calendar-weekdays { padding-block: 22px 10px; }
.event-calendar-weekdays span { overflow: hidden; color: var(--ink-soft); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-align: center; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.event-calendar-day, .event-calendar-empty-day { min-width: 0; min-height: 64px; }
.event-calendar-day { position: relative; display: grid; align-content: center; justify-items: center; gap: 7px; border: 1px solid transparent; background: var(--paper); color: var(--ink); cursor: pointer; font: inherit; font-weight: 700; }
.event-calendar-day:hover, .event-calendar-day:focus-visible { border-color: var(--moss); background: #eef0e8; }
.event-calendar-day.has-event { background: #e4eadf; color: var(--moss-dark); }
.event-calendar-day.is-selected { border-color: var(--moss-dark); background: var(--moss-dark); color: var(--white); }
.event-calendar-day i { width: 5px; height: 5px; border-radius: 50%; background: var(--clay); }
.event-calendar-day.is-selected i { background: var(--gold); }
.event-calendar-panel { display: flex; min-width: 0; flex-direction: column; gap: 34px; padding: clamp(28px, 3.2vw, 48px); background: var(--paper-deep); }
.event-calendar-panel > div:first-child > .kicker { color: var(--moss); }
.event-calendar-panel h3 { margin: 12px 0 24px; font-size: clamp(1.75rem, 2.45vw, 2.7rem); line-height: 1.04; }
.event-time-filter { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.event-time-filter button { min-width: 0; min-height: 44px; padding: 9px 11px; border: 1px solid var(--moss); border-radius: 999px; background: transparent; color: var(--moss-dark); cursor: pointer; font-size: .78rem; font-weight: 700; }
.event-time-filter button:hover, .event-time-filter button:focus-visible, .event-time-filter button.is-active { background: var(--moss-dark); color: var(--white); }
.event-calendar-results { padding-top: 28px; border-top: 1px solid var(--line); }
.event-calendar-results h4 { margin: 0 0 18px; font-size: .92rem; line-height: 1.45; }
.event-calendar-results h4 time { color: var(--clay-dark); }
.event-calendar-result-list { display: grid; gap: 10px; }
.event-calendar-result { padding: 18px; border: 1px solid var(--line); background: var(--white); }
.event-calendar-result > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.event-calendar-result > div span { color: var(--moss); font-size: .67rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.event-calendar-result > div small { padding: 3px 7px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink-soft); font-size: .61rem; font-weight: 700; }
.event-calendar-result h5 { margin: 14px 0 8px; font-size: 1.24rem; }
.event-calendar-result > p { margin: 0; color: var(--ink-soft); font-size: .78rem; line-height: 1.45; }
.event-calendar-result > p + p { margin-top: 10px; }
.event-calendar-result > p:first-of-type { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.event-calendar-result > p strong { color: var(--ink); }
.event-calendar-empty-state { margin: 0; padding: 24px; border: 1px dashed rgba(23,35,30,.24); color: var(--ink-soft); font-size: .88rem; line-height: 1.5; }
.event-calendar-preview-note { margin: auto 0 0; padding: 18px 0 0 16px; border-top: 1px solid var(--line); border-left: 3px solid var(--gold); color: var(--ink-soft); font-size: .75rem; line-height: 1.48; }
@media (max-width: 980px) {
  .event-calendar-module { grid-template-columns: 1fr; }
  .event-calendar-main { border-right: 0; border-bottom: 1px solid var(--line); }
}
.events-workflow { padding-block: 118px; background: var(--ink); color: var(--white); }
.events-workflow-grid { display: grid; grid-template-columns: .88fr 1.12fr; gap: clamp(58px, 9vw, 140px); }
.events-workflow .kicker { color: #bcd1bc; }
.events-workflow h2 { margin: 20px 0 28px; }
.events-workflow .large-copy { max-width: 630px; color: rgba(255,255,255,.7); }
.events-workflow-steps { border-top: 1px solid rgba(255,255,255,.22); }
.events-workflow-steps article { display: grid; grid-template-columns: 54px 1fr; gap: 22px; padding: 24px 0; border-bottom: 1px solid rgba(255,255,255,.22); }
.events-workflow-steps article > span { color: var(--gold); font-size: .845rem; font-weight: 700; }
.events-workflow-steps h3 { margin: 0 0 7px; font-size: 1.18rem; }
.events-workflow-steps p { margin: 0; color: rgba(255,255,255,.68); font-size: .936rem; line-height: 1.48; }

.naturepark-hero { position: relative; min-height: 760px; overflow: hidden; background: var(--moss-dark); color: var(--white); }
.naturepark-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.naturepark-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(12,29,20,.9), rgba(12,29,20,.62) 48%, rgba(12,29,20,.12)), linear-gradient(0deg, rgba(12,29,20,.42), transparent 50%); }
.naturepark-hero-content { position: relative; z-index: 2; display: flex; min-height: 760px; flex-direction: column; justify-content: center; padding-block: 86px; }
.naturepark-hero .kicker { color: #c4d6bf; }
.naturepark-hero h1 { max-width: 1120px; margin: 25px 0 34px; }
.naturepark-hero .large-copy { max-width: 760px; color: rgba(255,255,255,.82); }
.naturepark-status-band { padding-block: 28px; background: var(--paper-deep); }
.naturepark-status-band .shell { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 34px; }
.naturepark-status-band .status-badge { background: #f0dfbd; color: #6e501b; }
.naturepark-status-band p { margin: 0; color: var(--ink-soft); font-size: 1.118rem; }
.naturepark-programme .section-heading { margin-bottom: 60px; }
.naturepark-programme .text-link { max-width: 420px; }
.naturepark-principles { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.naturepark-principles article { min-height: 290px; padding: 32px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.naturepark-principles article > span { color: var(--moss); font-size: .936rem; font-weight: 700; }
.naturepark-principles h3 { margin: 64px 0 18px; }
.naturepark-principles p { margin: 0; color: var(--ink-soft); font-size: 1.118rem; }
.naturepark-contribution { padding-block: 124px; background: var(--ink); color: var(--white); }
.naturepark-contribution .kicker { color: #a8c5ad; }
.naturepark-contribution-grid { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 64px; border-top: 1px solid rgba(255,255,255,.2); border-left: 1px solid rgba(255,255,255,.2); }
.naturepark-contribution-grid article { display: grid; min-height: 210px; grid-template-columns: 54px 1fr; gap: 20px; padding: 32px; border-right: 1px solid rgba(255,255,255,.2); border-bottom: 1px solid rgba(255,255,255,.2); }
.naturepark-contribution-grid article > span { color: var(--gold); font-size: .936rem; font-weight: 700; }
.naturepark-contribution-grid h3 { margin-bottom: 16px; }
.naturepark-contribution-grid p { margin: 0; color: rgba(255,255,255,.66); font-size: 1.131rem; }
.naturepark-official-links { border-top: 2px solid var(--ink); }
.naturepark-official-links > a { display: grid; grid-template-columns: 55px 1fr 30px; align-items: center; gap: 22px; padding: 27px 12px; border-bottom: 1px solid var(--line); transition: background .2s ease; }
.naturepark-official-links > a:hover { background: var(--white); }
.naturepark-official-links > a > span { color: var(--moss); font-size: .91rem; font-weight: 700; }
.naturepark-official-links h3 { margin: 0 0 7px; font-size: 1.35rem; }
.naturepark-official-links p { margin: 0; color: var(--ink-soft); font-size: 1.04rem; }
.naturepark-official-links i { color: var(--clay); font-style: normal; font-size: 1.2rem; }
.naturepark-routes { padding-block: 124px; background: #dcd8c8; }
.naturepark-route-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.naturepark-route-grid > a { position: relative; min-height: 500px; overflow: hidden; background: var(--ink); color: var(--white); }
.naturepark-route-grid img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .65s ease; }
.naturepark-route-grid > a::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10,23,17,.94), rgba(10,23,17,.06) 72%); }
.naturepark-route-grid > a:hover img { transform: scale(1.035); }
.naturepark-route-status { position: absolute; z-index: 2; top: 18px; left: 18px; max-width: calc(100% - 36px); padding: 8px 10px; border-radius: 999px; background: rgba(240,223,189,.94); color: #6e501b; font-size: .806rem; font-weight: 700; }
.naturepark-route-grid > a > div { position: absolute; z-index: 2; right: 22px; bottom: 24px; left: 22px; }
.naturepark-route-grid > a > div > p { margin-bottom: 11px; color: rgba(255,255,255,.62); font-size: .845rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.naturepark-route-grid h3 { margin-bottom: 16px; }
.naturepark-route-grid > a > div > span { color: rgba(255,255,255,.7); font-size: .936rem; }
.naturepark-route-grid strong { display: block; margin-top: 28px; font-size: .988rem; }
.naturepark-process-list { border-top: 2px solid var(--ink); }
.naturepark-process-list article { display: grid; grid-template-columns: 64px 1fr 130px; align-items: center; gap: 28px; padding: 27px 12px; border-bottom: 1px solid var(--line); }
.naturepark-process-list article > span { color: var(--moss); font-size: .949rem; font-weight: 700; }
.naturepark-process-list h3 { margin: 0 0 7px; font-size: 1.4rem; }
.naturepark-process-list p { margin: 0; color: var(--ink-soft); font-size: 1.066rem; }
.naturepark-process-list em { padding: 8px 10px; border-radius: 999px; background: var(--paper-deep); color: var(--ink-soft); font-size: .845rem; font-style: normal; font-weight: 700; text-align: center; }
.naturepark-closing { padding-block: 140px; background: linear-gradient(130deg, var(--moss-dark), #162a21 55%, #244e57); color: var(--white); }
.naturepark-closing-inner { max-width: 960px; text-align: center; }
.naturepark-closing .kicker { color: #a8c5ad; }
.naturepark-closing h2 { margin: 22px 0; }
.naturepark-closing p:not(.kicker) { max-width: 760px; margin-inline: auto; color: rgba(255,255,255,.74); font-size: 1.2rem; }
.naturepark-closing .button { margin-top: 26px; }

/* Compact partner-page chapter: full content, less vertical travel. */
.naturepark-page-embedded { scroll-margin-top: 80px; }
.naturepark-page-embedded [id] { scroll-margin-top: 80px; }
.naturepark-page-embedded .naturepark-hero { display: grid; min-height: 620px; grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr); background: #dce3d5; color: var(--ink); }
.naturepark-page-embedded .naturepark-hero > img { position: relative; inset: auto; grid-column: 2; grid-row: 1; width: 100%; height: 100%; min-height: 620px; }
.naturepark-page-embedded .naturepark-hero-shade { position: relative; z-index: 1; grid-column: 2; grid-row: 1; background: linear-gradient(90deg, rgba(220,227,213,.48) 0, rgba(220,227,213,.13) 3.5rem, transparent 5.25rem); pointer-events: none; }
.naturepark-page-embedded .naturepark-hero-content { grid-column: 1; grid-row: 1; width: auto; min-height: 620px; margin: 0; padding: 68px clamp(32px, 4.2vw, 78px) 68px max(32px, calc((100vw - 1546px) / 2)); }
.naturepark-page-embedded .naturepark-hero .kicker { color: var(--moss); }
.naturepark-page-embedded .naturepark-hero h2 { max-width: 720px; margin: 21px 0 25px; font-size: clamp(3.15rem, 4.15vw, 5.4rem); line-height: .92; letter-spacing: -.055em; }
.naturepark-page-embedded .naturepark-hero .large-copy { max-width: 670px; color: var(--ink-soft); }
.naturepark-page-embedded .naturepark-hero .button.light { border-color: var(--ink); color: var(--ink); }
.naturepark-page-embedded .naturepark-hero .button.light.filled { border-color: var(--moss-dark); background: var(--moss-dark); color: var(--white); }
.naturepark-page-embedded .naturepark-status-band { padding-block: 22px; }
.naturepark-page-embedded .naturepark-programme,
.naturepark-page-embedded .naturepark-official,
.naturepark-page-embedded .naturepark-process { padding-block: 78px; }
.naturepark-page-embedded .naturepark-programme .section-heading,
.naturepark-page-embedded .naturepark-official .section-heading,
.naturepark-page-embedded .naturepark-process .section-heading { margin-bottom: 38px; }
.naturepark-page-embedded .naturepark-principles article { min-height: 215px; padding: 24px; }
.naturepark-page-embedded .naturepark-principles h3 { margin: 35px 0 12px; }
.naturepark-page-embedded .naturepark-principles p { font-size: 1.02rem; }
.naturepark-page-embedded .naturepark-contribution { padding-block: 80px; }
.naturepark-page-embedded .naturepark-contribution-grid { grid-template-columns: repeat(3, 1fr); margin-top: 38px; }
.naturepark-page-embedded .naturepark-contribution-grid article { min-height: 180px; grid-template-columns: 36px 1fr; gap: 12px; padding: 23px; }
.naturepark-page-embedded .naturepark-contribution-grid h3 { margin: 0 0 11px; }
.naturepark-page-embedded .naturepark-contribution-grid p { font-size: 1rem; line-height: 1.48; }
.naturepark-page-embedded .naturepark-official-links { display: grid; grid-template-columns: repeat(2, 1fr); border-left: 1px solid var(--line); }
.naturepark-page-embedded .naturepark-official-links > a { min-height: 124px; grid-template-columns: 38px 1fr 22px; gap: 13px; padding: 20px; border-right: 1px solid var(--line); }
.naturepark-page-embedded .naturepark-official-links h3 { font-size: 1.18rem; }
.naturepark-page-embedded .naturepark-official-links p { font-size: .96rem; }
.naturepark-page-embedded .naturepark-routes { padding-block: 80px; }
.naturepark-page-embedded .naturepark-routes .section-heading { margin-bottom: 38px; }
.naturepark-page-embedded .naturepark-route-grid > a { min-height: 365px; }
.naturepark-page-embedded .naturepark-route-grid strong { margin-top: 17px; }
.naturepark-page-embedded .naturepark-process-list { display: grid; grid-template-columns: repeat(5, 1fr); border-left: 1px solid var(--line); }
.naturepark-page-embedded .naturepark-process-list article { display: flex; min-height: 245px; align-items: flex-start; flex-direction: column; gap: 0; padding: 22px; border-right: 1px solid var(--line); }
.naturepark-page-embedded .naturepark-process-list article > span { margin-bottom: 33px; }
.naturepark-page-embedded .naturepark-process-list h3 { font-size: 1.2rem; }
.naturepark-page-embedded .naturepark-process-list p { font-size: .96rem; line-height: 1.48; }
.naturepark-page-embedded .naturepark-process-list em { margin-top: auto; }
.naturepark-page-embedded .naturepark-closing { padding-block: 82px; }
.naturepark-route-notice { display: grid; grid-template-columns: .85fr 1.15fr; gap: 8vw; margin-bottom: 120px; padding: 44px; border-left: 5px solid var(--moss); background: #dce3d5; }
.naturepark-route-notice h2 { margin: 16px 0 0; font-size: clamp(2.2rem, 3.7vw, 4.4rem); }
.naturepark-route-notice > div:last-child > p { color: var(--ink-soft); }
.naturepark-route-notice .button { margin-top: 14px; }

.culture-section { padding-block: 128px; background: #dcd8c8; }
.culture-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.culture-card { display: grid; min-height: 390px; grid-template-columns: 1.05fr .95fr; overflow: hidden; background: var(--white); }
.culture-card > img { width: 100%; height: 100%; min-height: 390px; object-fit: cover; transition: transform .65s ease; }
.culture-card:hover > img { transform: scale(1.025); }
.culture-card > div { display: flex; flex-direction: column; padding: 34px; }
.culture-card p { margin-bottom: 30px; color: var(--clay); font-size: .871rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.culture-card h3 { margin-bottom: 18px; }
.culture-card div > span { color: var(--ink-soft); font-size: 1.17rem; line-height: 1.55; }
.culture-card strong { margin-top: auto; padding-top: 24px; font-size: 1.014rem; }

.material-teaser-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.material-teaser-grid a { position: relative; min-height: 250px; overflow: hidden; }
.material-teaser-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.material-teaser-grid a::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10,24,18,.72), transparent 60%); }
.material-teaser-grid a:hover img { transform: scale(1.04); }
.material-teaser-grid span { position: absolute; z-index: 2; right: 16px; bottom: 14px; left: 16px; color: white; font-size: .988rem; font-weight: 700; }
.house-copy .button { margin-top: 12px; }
.house-copy .button + .fine-print { margin-top: 24px; }

.materials-hero { padding-block: 130px 90px; background: var(--ink); color: var(--white); }
.materials-hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; align-items: end; gap: 9vw; }
.materials-hero .kicker { color: #a8c5ad; }
.materials-hero h1, .materials-hero-title { margin: 20px 0 0; font-size: clamp(3.7rem, 7vw, 8rem); }
.materials-hero .large-copy { margin-bottom: 12px; color: rgba(255,255,255,.72); }
.material-principles { display: grid; grid-template-columns: repeat(4, 1fr); padding-block: 0 110px; }
.material-principles article { min-height: 230px; padding: 34px 26px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.material-principles article:first-child { border-left: 1px solid var(--line); }
.material-principles span { color: var(--clay); font-size: .936rem; font-weight: 700; }
.material-principles h2, .material-principle-title { margin: 48px 0 12px; font-size: 1.5rem; }
.material-principles p { margin: 0; color: var(--ink-soft); font-size: 1.118rem; }
.material-list { padding-bottom: 130px; }
.material-story { display: grid; grid-template-columns: 1fr 1fr; gap: 7vw; align-items: center; min-height: 620px; padding-block: 70px; border-top: 1px solid var(--line); }
.material-story:nth-child(even) .material-story-image { order: 2; }
.material-story-image img { aspect-ratio: 5 / 4; }
.material-number { color: var(--clay); font-size: .936rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.material-story-copy h2, .material-story-title { margin: 18px 0 24px; }
.material-story-copy > .large-copy { color: var(--ink-soft); }
.material-visit { margin-top: 34px; padding: 26px; background: var(--paper-deep); }
.material-visit p:last-child { margin: 10px 0 0; font-size: 1.144rem; }
.material-actions { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 22px; margin-top: 24px; }
.material-actions .text-link { margin-top: 0; }
.material-closing { padding-block: 120px; background: linear-gradient(135deg, var(--clay-dark), #442a21); color: var(--white); }
.material-closing-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: 10vw; }
.material-closing .kicker { color: #e5bca9; }
.material-closing h2 { margin: 18px 0 0; }
.material-closing p { color: rgba(255,255,255,.76); font-size: 1.12rem; }
.material-closing .button { min-height: 46px; margin-top: 18px; padding: 11px 18px; font-size: 1rem; }

.hero {
  display: grid;
  min-height: calc(100vh - 91px);
  grid-template-columns: minmax(0, 0.92fr) minmax(520px, 1.08fr);
  align-items: center;
  gap: 6vw;
  padding-block: 72px;
}
.hero h1 { margin: 26px 0 30px; }
.hero-lead { max-width: 620px; color: #34453c; font-size: clamp(1.2rem, 2.1vw, 1.85rem); line-height: 1.45; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }
.button {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 14px 22px;
  border: 1px solid var(--ink);
  border-radius: 999px;
  font-size: 1.118rem;
  font-weight: 700;
  transition: transform 180ms ease, background 180ms ease, color 180ms ease;
}
.button:hover { transform: translateY(-2px); }
.button:focus-visible, a:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }
.button.primary { background: var(--ink); color: var(--white); }
.button-arrow { width: 1em; height: 1em; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.button.quiet { background: transparent; }
.button.light { border-color: var(--white); color: var(--white); }
.button.light.filled { color: var(--ink); }
.release-note { margin-top: 40px; color: var(--ink-soft); font-size: 1.066rem; }

.map-stage { position: relative; min-height: 580px; }
.route-map-placeholder {
  display: grid;
  width: 100%;
  aspect-ratio: 1 / 1;
  place-items: center;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(20,40,34,.28);
  background: #e8e1d3;
  color: var(--ink);
  text-align: center;
}
.route-map-placeholder-copy { display: block; max-width: 520px; padding: 34px 40px; }
.route-map-placeholder .kicker { margin-bottom: 14px; color: var(--moss); }
.route-map-placeholder strong { display: block; font-size: clamp(1.45rem, 2.3vw, 2.5rem); line-height: 1.05; }
.route-map-placeholder-copy > p:last-child { max-width: 440px; margin: 14px auto 0; color: var(--ink-soft); font-size: 1rem; line-height: 1.5; }
.route-map-placeholder-open {
  position: absolute;
  z-index: 3;
  inset: 0;
  display: block;
  min-height: inherit;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: zoom-in;
  pointer-events: none;
  text-align: center;
}
.route-map-placeholder-open::after { position: absolute; inset: 12px; border: 1px solid transparent; content: ""; transition: border-color .18s ease; }
.route-map-placeholder-open:hover::after,
.route-map-placeholder-open:focus-visible::after { border-color: rgba(23,35,30,.25); }
.route-map-placeholder-open:focus-visible { outline: 3px solid var(--gold); outline-offset: -4px; }
.route-map-placeholder-action {
  position: absolute;
  right: 24px;
  bottom: 22px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--moss-dark);
  font-size: .84rem;
  font-weight: 750;
  pointer-events: auto;
}
.route-map-placeholder-action span { font-size: 1rem; }
.route-map-dialog {
  width: min(calc(100vw - 64px), 1680px);
  height: min(calc(100dvh - 64px), 1100px);
  max-width: none;
  max-height: none;
  margin: auto;
  padding: 0;
  border: 0;
  overflow: visible;
  background: transparent;
  color: var(--ink);
}
.route-map-dialog::backdrop { background: rgba(10,24,18,.68); backdrop-filter: blur(4px); }
.route-map-dialog-surface {
  display: grid;
  width: 100%;
  height: 100%;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.42);
  background: var(--paper);
  box-shadow: 0 24px 80px rgba(10,24,18,.35);
}
.route-map-dialog-surface > header { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 18px 22px; border-bottom: 1px solid var(--line); }
.route-map-dialog-surface > header .kicker { margin: 0 0 4px; }
.route-map-dialog-surface > header h2 { margin: 0; font-size: clamp(1.45rem, 2.2vw, 2.5rem); }
.route-map-dialog-close { display: inline-flex; min-height: 42px; align-items: center; gap: 10px; padding: 9px 14px; border: 1px solid var(--ink); border-radius: 999px; background: transparent; color: var(--ink); cursor: pointer; font-size: .84rem; font-weight: 750; }
.route-map-dialog-close:hover,
.route-map-dialog-close:focus-visible { background: var(--ink); color: var(--white); }
.route-map-dialog-close span { font-size: 1.2rem; font-weight: 400; line-height: 1; }
.route-map-dialog-canvas { display: grid; min-height: 0; place-items: center; margin: 22px; border: 1px solid rgba(20,40,34,.28); background: #e8e1d3; text-align: center; }
.route-map-dialog-canvas > div { max-width: 620px; padding: 34px 40px; }
.route-map-dialog-canvas > .geo-map-canvas { width: min(100%, calc((100dvh - 158px) * 50 / 31)); max-width: none; height: auto; max-height: 100%; aspect-ratio: var(--map-frame-aspect); padding: 0; }
.route-map-dialog-canvas .kicker { margin-bottom: 14px; }
.route-map-dialog-canvas strong { display: block; font-size: clamp(2rem, 4vw, 4.8rem); line-height: .98; }
.route-map-dialog-canvas > div > p:last-child { max-width: 560px; margin: 18px auto 0; color: var(--ink-soft); font-size: clamp(.95rem, 1.2vw, 1.16rem); line-height: 1.5; }
.topo { width: 100%; height: auto; overflow: visible; }
.map-ring { fill: none; stroke-width: 1.5; }
.auto-ring { fill: rgba(169, 105, 78, 0.04); stroke: rgba(169, 105, 78, 0.6); }
.bike-ring { fill: rgba(91, 127, 137, 0.06); stroke: rgba(49, 92, 104, 0.65); }
.foot-ring { fill: rgba(66, 100, 72, 0.08); stroke: rgba(37, 65, 48, 0.75); }
.river-line { fill: none; stroke: var(--river); stroke-width: 7; stroke-linecap: round; opacity: 0.72; }
.border-line { fill: none; stroke: var(--moss); stroke-width: 5; stroke-dasharray: 2 13; stroke-linecap: round; opacity: 0.9; }
.contour { fill: none; stroke: rgba(23, 35, 30, 0.14); stroke-width: 1; }
.house-dot { fill: var(--ink); }
.map-label, .map-house-label, .map-water-label, .map-border-label { font-family: inherit; font-weight: 700; letter-spacing: 0.14em; }
.map-label { fill: var(--ink-soft); font-size: 14.3px; }
.map-house-label { fill: var(--ink); font-size: 14.3px; }
.map-water-label { fill: var(--river-dark); font-size: 13px; }
.map-border-label { fill: var(--moss-dark); font-size: 13px; }
.map-caption { display: flex; flex-wrap: wrap; gap: 18px; justify-content: center; color: var(--ink-soft); font-size: .975rem; }
.map-caption span { display: inline-flex; align-items: center; gap: 7px; }
.map-hotspots { position: absolute; inset: 0; pointer-events: none; }
.map-hotspots a {
  position: absolute;
  z-index: 3;
  display: grid;
  min-width: 116px;
  gap: 2px;
  padding: 10px 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(251,250,246,.92);
  box-shadow: 0 8px 24px rgba(23,35,30,.09);
  font-size: 1.027rem;
  font-weight: 700;
  pointer-events: auto;
  transition: transform .18s ease, background .18s ease;
}
.map-hotspots a:hover { transform: translateY(-2px); background: var(--white); }
.map-hotspots a span { color: var(--ink-soft); font-size: .793rem; font-weight: 400; letter-spacing: .05em; text-transform: uppercase; }
.map-hotspots a:nth-child(1) { top: 56%; left: 52%; }
.map-hotspots a:nth-child(2) { top: 28%; right: 4%; }
.map-hotspots a:nth-child(3) { top: 7%; left: 16%; }
.line { display: inline-block; width: 26px; height: 3px; }
.line.river { background: var(--river); }
.line.border { background: repeating-linear-gradient(90deg, var(--moss) 0 4px, transparent 4px 8px); }

.story-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-block: 1px solid var(--line);
  background: rgba(251, 250, 246, 0.45);
}
.story-strip > div { display: grid; grid-template-columns: 48px 1fr; gap: 18px; padding: 42px 4vw; }
.story-strip > div + div { border-left: 1px solid var(--line); }
.story-strip span { color: var(--clay); font-size: .975rem; font-weight: 700; }
.story-strip p { margin: 0; font-size: 1.248rem; }

.project-status-band { padding-block: 82px; background: var(--ink); color: var(--white); }
.project-status-inner { display: grid; grid-template-columns: .8fr 1.2fr; align-items: start; gap: 7vw; }
.project-status-copy .kicker { color: #b8d0bb; }
.project-status-copy h2 { margin: 16px 0 18px; font-size: clamp(2.3rem, 4vw, 4.3rem); }
.project-status-band-evidence .project-status-copy h2 { margin-top: 0; font-size: clamp(2.6rem, 3.2vw, 3.25rem); }
.project-status-band-evidence .project-status-copy h2 > span { display: block; white-space: nowrap; }
.project-status-copy > p:not(.kicker) { max-width: 540px; color: rgba(255,255,255,.68); }
.project-status-copy > a { display: inline-block; margin-top: 16px; color: #d7b779; font-size: 1.014rem; font-weight: 700; }
.project-status-summary { display: grid; gap: clamp(24px, 4vh, 44px); }
.project-countdown { display: grid; width: 100%; max-width: 100%; grid-template-columns: repeat(3, max-content); justify-content: end; gap: clamp(16px, 2.25vw, 42px); color: #d7b779; font-variant-numeric: tabular-nums; }
.project-countdown > span { display: grid; grid-template-columns: auto; justify-items: end; }
.project-countdown > span + span { position: relative; }
.project-countdown > span + span::before { content: ""; position: absolute; top: 8%; bottom: 8%; left: calc(clamp(16px, 2.25vw, 42px) / -2); width: 1px; background: rgba(255,255,255,.2); }
.project-countdown strong { font-size: clamp(3.25rem, 5.2vw, 6.2rem); font-weight: 400; line-height: .86; letter-spacing: -.055em; }
.project-countdown small { margin-top: 10px; color: rgba(255,255,255,.68); font-size: clamp(.7rem, .8vw, .86rem); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.project-countdown-with-label > p { margin: 0 0 16px; color: rgba(255,255,255,.68); font-size: clamp(.7rem, .8vw, .86rem); font-weight: 700; letter-spacing: .14em; text-align: right; text-transform: uppercase; }
.project-status-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid rgba(255,255,255,.2); border-left: 1px solid rgba(255,255,255,.2); }
.project-status-grid p { display: grid; min-height: 132px; margin: 0; padding: 24px; border-right: 1px solid rgba(255,255,255,.2); border-bottom: 1px solid rgba(255,255,255,.2); }
.project-status-grid strong { color: #d7b779; font-size: 1.55rem; }
.project-status-grid span { align-self: end; color: rgba(255,255,255,.7); font-size: .936rem; }

.apartments-teaser { padding-block: 124px; background: #e8e1d3; }
.apartment-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.apartment-card { display: flex; min-width: 0; flex-direction: column; background: var(--white); box-shadow: 0 18px 45px rgba(28,41,34,.08); }
.apartment-card-image { position: relative; display: block; overflow: hidden; background: var(--ink); }
.apartment-card-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .65s ease; }
.apartment-card-image-fade {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 76% 22%, rgba(239,225,194,.78) 0%, rgba(239,225,194,0) 42%),
    radial-gradient(ellipse at 22% 86%, rgba(31,56,44,.42) 0%, rgba(31,56,44,0) 48%),
    linear-gradient(132deg, #31473c 0%, #687463 39%, #a5967c 70%, #d2c2a5 100%);
}
.apartment-card-image-fade::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, rgba(255,255,255,.08), transparent 40%, rgba(20,39,30,.13));
  content: "";
}
/* Der Platzhalter ist absichtlich unsichtbar.
   Er haelt den Platz fuer ein Bild, das noch nicht existiert, und laesst sich
   spaeter austauschen, ohne dass jemand das Markup anfasst. Sichtbar wird er
   nie: opacity 0, und er nimmt keine Klicks an. */
.technical-media-placeholder,
.nm-technical-media-placeholder {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  pointer-events: none;
}
.apartment-card:hover .apartment-card-image img { transform: scale(1.025); }
.apartment-card-image span { position: absolute; right: 12px; bottom: 12px; left: 12px; padding: 8px 10px; background: rgba(23,35,30,.78); color: var(--white); font-size: .806rem; }
.apartment-card-copy { display: flex; flex: 1; flex-direction: column; padding: 28px; }
.apartment-card-copy h3 { margin: 16px 0 10px; font-size: clamp(1.8rem, 2.5vw, 2.8rem); }
.apartment-card-copy > strong { color: var(--clay-dark); font-size: 1.3rem; }
.apartment-card-copy > p:not(.kicker) { margin-top: 20px; color: var(--ink-soft); font-size: 1.144rem; }
.apartment-card-copy > p.apartment-signature-teaser { margin: 4px 0 18px; padding-top: 16px; border-top: 1px solid var(--line); color: var(--moss-dark); font-size: 1.066rem; font-weight: 700; }
.apartment-project-status { width: fit-content; margin-top: 12px; padding: 5px 9px; border-radius: 999px; background: #f0dfbd; color: #6e501b; font-size: .806rem; font-weight: 700; }
.apartment-card-copy > a { margin-top: auto; padding-top: 24px; border-top: 1px solid var(--line); font-size: 1.014rem; font-weight: 700; }
.apartments-all-link { margin-top: 34px; }

.decision-section { padding-block: 118px; background: var(--white); }
.decision-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.decision-card { position: relative; min-height: 500px; overflow: hidden; background: var(--ink); color: var(--white); }
.decision-card > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .65s ease; }
.decision-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10,23,17,.94), rgba(10,23,17,.08) 74%); }
.decision-card:hover > img { transform: scale(1.035); }
.decision-card > div { position: absolute; z-index: 2; right: 24px; bottom: 26px; left: 24px; }
.decision-card p { margin-bottom: 12px; color: rgba(255,255,255,.66); font-size: .858rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.decision-card h3 { margin-bottom: 16px; font-size: clamp(1.7rem, 2.2vw, 2.7rem); }
.decision-card div > span { display: block; color: rgba(255,255,255,.72); font-size: 1.118rem; line-height: 1.55; }
.decision-card strong { display: block; margin-top: 24px; font-size: .988rem; }

.border-story-section { padding-block: 126px; background: var(--paper); }
.border-story-heading { display: grid; grid-template-columns: .84fr 1.16fr; align-items: end; gap: 9vw; }
.border-story-heading h2 { max-width: 720px; margin: 18px 0 0; }
.border-story-copy h3 { margin: 0 0 18px; font-size: clamp(1.75rem, 2.5vw, 2.8rem); }
.border-story-copy > p { margin: 0; color: var(--ink-soft); font-size: 1.196rem; line-height: 1.6; }
.border-story-copy .button { width: fit-content; margin-top: 28px; }
.border-story-images { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: 68px; }
.border-story-images .image-figure img { aspect-ratio: 16 / 10; }
.border-story-images .image-figure:first-child img { filter: saturate(.72) contrast(1.04); }
.border-story-images figcaption { align-items: flex-start; flex-direction: column; gap: 4px; }

.section-heading { margin-bottom: 64px; }
.split-heading { display: grid; grid-template-columns: 1.12fr 0.88fr; align-items: end; gap: 9vw; }
.split-heading h2 { max-width: 820px; margin: 16px 0 0; }
.split-heading > p { max-width: 580px; margin-bottom: 8px; color: var(--ink-soft); }
.mode-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.mode-card { position: relative; overflow: hidden; min-height: 640px; border-radius: 2px; background: var(--white); box-shadow: var(--shadow); }
.mode-image { position: relative; height: 330px; overflow: hidden; }
.mode-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(18, 32, 25, 0.45)); }
.mode-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms cubic-bezier(.2,.8,.2,1); }
.mode-card:hover .mode-image img { transform: scale(1.04); }
.mode-image > span { position: absolute; z-index: 2; right: 24px; bottom: 18px; color: var(--white); font-size: 3.4rem; font-weight: 700; letter-spacing: -0.06em; }
.mode-card-body { padding: 34px; }
.mode-card-body h3 { margin: 18px 0; font-size: clamp(2rem, 3.2vw, 3.5rem); }
.mode-card-body > p:not(.kicker) { min-height: 88px; color: var(--ink-soft); }
.mode-button { width: 100%; justify-content: space-between; margin-top: 18px; }
.mode-zu-fuss .mode-button { background: var(--moss); border-color: var(--moss); color: white; }
.mode-e-bike .mode-button { background: var(--river-dark); border-color: var(--river-dark); color: white; }
.mode-auto .mode-button { background: var(--clay-dark); border-color: var(--clay-dark); color: white; }
.theme-rail { display: flex; gap: 10px; overflow-x: auto; margin-top: 44px; padding-bottom: 12px; scrollbar-width: thin; }
.theme-rail span, .topic-row span { flex: 0 0 auto; padding: 10px 13px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink-soft); font-size: 1.014rem; }
.theme-rail i { margin-right: 6px; color: var(--moss); font-style: normal; font-weight: 700; }

.guest-journey-section { padding-block: 118px; background: var(--paper-deep); }
.guest-journey-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.guest-journey-grid article { display: flex; min-height: 300px; flex-direction: column; padding: 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.guest-journey-grid article > span { color: var(--clay); font-size: .936rem; font-weight: 700; }
.guest-journey-grid h3 { margin: 52px 0 18px; }
.guest-journey-grid p { margin: 0; color: var(--ink-soft); font-size: 1.144rem; }
.guest-journey-grid a { margin-top: auto; padding-top: 26px; font-size: .988rem; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }

.mobility-teaser { padding-block: 112px; background: linear-gradient(125deg, var(--river-dark), #173d47 58%, #244b3b); color: var(--white); }
.mobility-teaser-grid { display: grid; grid-template-columns: .9fr 1.1fr; align-items: start; gap: 9vw; }
.mobility-teaser .kicker { color: #b9d3d8; }
.mobility-teaser h2 { margin: 18px 0 0; }
.mobility-teaser-grid > div:last-child > p { color: rgba(255,255,255,.78); font-size: 1.15rem; }
.mobility-teaser-facts { display: grid; grid-template-columns: repeat(3, 1fr); margin: 34px 0; border-top: 1px solid rgba(255,255,255,.24); border-left: 1px solid rgba(255,255,255,.24); }
.mobility-teaser-facts span { min-height: 120px; padding: 20px; border-right: 1px solid rgba(255,255,255,.24); border-bottom: 1px solid rgba(255,255,255,.24); color: rgba(255,255,255,.66); font-size: .962rem; line-height: 1.45; }
.mobility-teaser-facts strong { display: block; margin-bottom: 18px; color: var(--white); font-size: 1.3rem; }

.mobility-hero { padding-block: 124px 104px; background: linear-gradient(135deg, var(--river-dark), #173d47 58%, #244b3b); color: var(--white); }
.mobility-hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; align-items: end; gap: 9vw; }
.mobility-hero .kicker, .mobility-proof .kicker { color: #b9d3d8; }
.mobility-hero h1, .mobility-hero h2 { margin: 22px 0 0; font-size: clamp(3.8rem, 7.6vw, 8.2rem); }
.mobility-hero .large-copy { margin-bottom: 32px; color: rgba(255,255,255,.8); }
.mobility-status-row { display: flex; flex-wrap: wrap; gap: 12px 24px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.24); }
.mobility-status-row span { display: inline-flex; align-items: center; gap: 9px; color: rgba(255,255,255,.76); font-size: .988rem; font-weight: 700; }
.status-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; }
.private-dot { background: var(--gold); }
.public-dot { background: #9bc0c8; }
.private-charge-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.charge-card { position: relative; min-height: 520px; overflow: hidden; padding: 48px; background: var(--white); }
.charge-card::after { content: ""; position: absolute; right: -90px; bottom: -120px; width: 330px; height: 330px; border: 1px solid var(--line); border-radius: 50%; box-shadow: 0 0 0 48px rgba(91,127,137,.035), 0 0 0 96px rgba(91,127,137,.025); }
.charge-symbol { position: relative; z-index: 1; display: block; margin-bottom: 66px; color: var(--river-dark); font-size: clamp(2.5rem, 4vw, 5rem); font-weight: 700; letter-spacing: -.06em; }
.charge-card-ev .charge-symbol { color: var(--clay-dark); }
.charge-card h3 { position: relative; z-index: 1; margin: 16px 0 20px; font-size: clamp(2rem, 3vw, 3.5rem); }
.charge-card > p:not(.kicker) { position: relative; z-index: 1; max-width: 650px; color: var(--ink-soft); }
.charge-card ul { position: relative; z-index: 1; margin: 28px 0 0; padding: 0; list-style: none; }
.charge-card li { padding: 13px 0 13px 22px; border-top: 1px solid var(--line); color: var(--ink-soft); font-size: 1.118rem; }
.charge-card li::before { content: "•"; margin-left: -18px; margin-right: 12px; color: var(--river-dark); }
.partner-proof { display: grid; grid-template-columns: minmax(190px, .55fr) 1.45fr; gap: 24px; margin: 22px 0 0; padding: 24px 28px; border-left: 4px solid var(--river-dark); background: #edf3ee; color: var(--ink-soft); font-size: 1.17rem; }
.partner-proof strong { color: var(--ink); }
.partner-proof a { color: var(--river-dark); font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.privacy-note { margin: 22px 0 0; padding: 24px 28px; border-left: 4px solid var(--gold); background: var(--paper-deep); color: var(--ink-soft); font-size: 1.17rem; }
.privacy-note strong { color: var(--ink); }
.public-network-section { padding-block: 120px; background: var(--ink); color: var(--white); }
.public-network-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: 8vw; }
.network-visual { position: sticky; top: 118px; }
.network-visual .image-figure img { aspect-ratio: 5 / 4; }
.network-visual .image-figure figcaption { color: rgba(255,255,255,.58); }
.network-diagram { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 18px; }
.network-home, .network-node { display: grid; min-height: 124px; align-content: center; padding: 22px; border: 1px solid rgba(255,255,255,.24); background: rgba(255,255,255,.055); }
.network-home { grid-column: 1 / -1; }
.network-home span, .network-node span { color: var(--gold); font-size: .845rem; }
.network-home strong, .network-node strong { margin-top: 8px; }
.network-home small, .network-node small { margin-top: 5px; color: rgba(255,255,255,.57); }
.network-copy > .kicker { color: #9fc0c6; }
.network-copy > h2 { margin: 18px 0 54px; }
.network-copy article { padding-block: 42px; border-top: 1px solid rgba(255,255,255,.22); }
.network-copy article > div { display: flex; align-items: center; gap: 14px; }
.network-copy article > div > span { color: var(--gold); font-size: .936rem; font-weight: 700; }
.network-copy article .kicker { color: #9fc0c6; }
.network-copy article h3 { margin: 18px 0; font-size: clamp(2rem, 3.5vw, 4rem); }
.network-copy article > p { color: rgba(255,255,255,.72); }
.network-copy .button { margin-top: 16px; border-color: var(--white); background: var(--white); color: var(--ink); }
.charging-live-map { padding-block: 120px; scroll-margin-top: 76px; background: #dce5e1; }
.charging-live-map .section-heading { margin-bottom: 34px; }
.charging-map-workspace { display: grid; grid-template-columns: minmax(180px, 216px) minmax(0, 1fr); align-items: stretch; }
.charging-map-toolbar { display: flex; min-width: 0; flex-direction: column; justify-content: space-between; gap: 24px; padding: 20px; border: 1px solid var(--line); border-right: 0; background: rgba(251,250,246,.58); }
.charging-map-toolbar .kicker { margin-bottom: 18px; }
.charging-map-availability { display: flex; flex: 1; align-items: center; max-width: none; margin: 0; color: var(--ink-soft); font-size: .78rem; line-height: 1.45; }
.charging-map-toolbar > span { display: block; padding-top: 18px; border-top: 1px solid var(--line); color: var(--ink-soft); font-size: .858rem; font-weight: 700; line-height: 1.35; }
.charging-filters { display: grid; border-top: 1px solid var(--line); }
.charging-filters button { min-height: 60px; padding: 12px 8px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; color: var(--ink); cursor: pointer; font-size: .936rem; font-weight: 700; text-align: left; transition: background .18s ease, color .18s ease; }
.charging-filters button:hover, .charging-filters button:focus-visible { background: var(--paper-deep); }
.charging-filters button.active { border-color: var(--ink); background: var(--ink); color: var(--white); }
.charging-map-stage { min-width: 0; min-height: 0; height: auto; border: 1px solid var(--line); background: var(--white); }
.charging-map-layout { display: grid; min-height: 0; height: auto; grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); align-items: stretch; background: var(--white); }
.charging-map-canvas { position: relative; min-height: 0; height: auto; align-self: start; aspect-ratio: var(--map-frame-aspect); overflow: hidden; background: #edf0e9; }
.ev-osm-map { isolation: isolate; background: #eee9dc; }
.ev-osm-fallback-map { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; transform-origin: 0 0; object-fit: fill; transition: transform .42s ease; }
.ev-osm-basemap { position: absolute; z-index: 1; inset: 0; }
.ev-osm-basemap .maplibregl-canvas { cursor: grab; }
.ev-osm-basemap .maplibregl-canvas:active { cursor: grabbing; }
.ev-osm-basemap .maplibregl-ctrl-attrib { max-width: min(78%, 540px); padding: 3px 6px; background: rgba(251,250,246,.86); color: var(--ink-soft); font-size: 9px; line-height: 1.25; }
.ev-osm-basemap .maplibregl-ctrl-attrib a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.ev-osm-marker-layer { position: absolute; z-index: 3; inset: 0; opacity: 0; pointer-events: none; transition: opacity .18s ease; }
.ev-osm-map.is-ready .ev-osm-marker-layer { opacity: 1; }
.ev-osm-marker-layer .charging-marker { pointer-events: auto; }
.ev-osm-status { position: absolute; z-index: 5; inset: 0; display: grid; place-items: center; padding: 24px; background: rgba(238,233,220,.88); color: var(--ink-soft); font-size: .78rem; text-align: center; }
.ev-osm-fallback-attribution { position: absolute; z-index: 8; bottom: 0; left: 0; max-width: min(78%, 540px); padding: 3px 6px; background: rgba(251,250,246,.86); color: var(--ink-soft); font-size: 9px; line-height: 1.25; }
.ev-osm-fallback-attribution a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.ev-osm-controls { position: absolute; z-index: 8; top: 12px; right: 12px; display: grid; grid-template-columns: 36px 36px auto; overflow: hidden; border: 1px solid rgba(23,35,30,.24); border-radius: 999px; background: rgba(251,250,246,.94); box-shadow: 0 7px 20px rgba(23,35,30,.16); }
.ev-osm-controls button { min-width: 36px; min-height: 36px; padding: 0; border: 0; border-right: 1px solid rgba(23,35,30,.16); background: transparent; color: var(--ink); cursor: pointer; font-size: 1rem; font-weight: 750; }
.ev-osm-controls button:hover, .ev-osm-controls button:focus-visible { background: var(--moss-dark); color: var(--white); }
.ev-osm-controls .ev-osm-reset { min-width: 92px; padding-inline: 12px; border-right: 0; font-size: .67rem; }
.charging-region { fill: #e5e2d3; stroke: rgba(23,35,30,.2); stroke-width: 2; }
.charging-river { fill: none; stroke: var(--river); stroke-width: 7; opacity: .58; }
.charging-border { fill: none; stroke: var(--moss); stroke-width: 4; stroke-dasharray: 2 12; stroke-linecap: round; opacity: .65; }
.charging-town { position: absolute; z-index: 2; transform: translate(-50%, -50%); color: rgba(23,35,30,.5); font-size: .806rem; font-weight: 700; letter-spacing: .04em; pointer-events: none; text-transform: uppercase; }
.charging-home-marker { position: absolute; z-index: 5; display: flex; align-items: center; gap: 7px; transform: translate(-50%, -50%) scale(var(--map-inverse-zoom, 1)); padding: 7px 10px; border-radius: 999px; background: var(--ink); color: var(--white); box-shadow: 0 6px 18px rgba(23,35,30,.22); font-size: .858rem; font-weight: 700; pointer-events: none; white-space: nowrap; }
.charging-home-marker i { width: 8px; height: 8px; border-radius: 50%; background: var(--gold); }
.charging-marker { position: absolute; z-index: 3; display: grid; width: 30px; height: 30px; place-items: center; transform: translate(-50%, -50%) scale(var(--map-inverse-zoom, 1)); padding: 0; border: 0; border-radius: 50%; background: transparent; cursor: pointer; pointer-events: auto; }
.charging-marker-dot { position: relative; display: grid; width: 22px; height: 22px; place-items: center; border: 2px solid rgba(251,250,246,.94); border-radius: 50%; background: var(--v07-category-color, var(--moss)); color: var(--white); box-shadow: 0 1px 5px rgba(23,35,30,.24); transition: transform .16s ease, box-shadow .16s ease; }
.charging-marker-dot svg { width: 12px; height: 12px; }
.charging-marker.is-cluster { width: 38px; height: 38px; }
.charging-marker.is-cluster .charging-marker-dot {
  width: 31px;
  height: 31px;
  border-color: rgba(251,250,246,.98);
  background: var(--ink);
}
.charging-marker.is-cluster .charging-marker-dot b { color: var(--white); font-size: .68rem; line-height: 1; }
.charging-marker.is-spidered::before {
  position: absolute;
  inset: -5px;
  border: 1px solid rgba(23,35,30,.24);
  border-radius: 50%;
  content: "";
  pointer-events: none;
}
.charging-marker-dot::after { display: none; }
.charging-marker:hover, .charging-marker:focus-visible, .charging-marker.selected { z-index: 6; }
.charging-marker:hover .charging-marker-dot,
.charging-marker:focus-visible .charging-marker-dot,
.charging-marker.selected .charging-marker-dot { transform: scale(1.24); box-shadow: 0 0 0 2px rgba(23,35,30,.14), 0 2px 6px rgba(23,35,30,.2); }
.charging-marker:focus-visible { outline: 2px solid var(--moss-dark); outline-offset: -3px; }
.charging-marker.marker-bike .charging-marker-dot,
.charging-marker.marker-both .charging-marker-dot { background: var(--v07-category-color, var(--moss)); }
.charging-marker-label { position: absolute; top: calc(100% + 2px); left: 50%; width: max-content; max-width: min(210px, 54vw); transform: translateX(-50%); padding: 4px 6px; overflow: hidden; border: 1px solid rgba(34,75,57,.28); border-radius: 3px; background: rgba(251,250,246,.96); color: var(--ink); box-shadow: 0 4px 11px rgba(23,35,30,.13); font-size: .62rem; font-weight: 700; line-height: 1.2; opacity: 0; pointer-events: none; text-overflow: ellipsis; white-space: nowrap; }
.charging-marker:focus-visible .charging-marker-label,
.charging-marker.selected .charging-marker-label { opacity: 1; }
@media (hover: hover) {
  .charging-marker:hover .charging-marker-label { opacity: 1; }
}
.charging-marker[data-label-horizontal="start"] .charging-marker-label { left: 0; transform: none; }
.charging-marker[data-label-horizontal="end"] .charging-marker-label { right: 0; left: auto; transform: none; }
.charging-marker[data-label-vertical="up"] .charging-marker-label { top: auto; bottom: calc(100% + 2px); }
.charging-map-legend { position: absolute; z-index: 5; right: 18px; bottom: 18px; display: flex; gap: 8px; padding: 10px 12px; background: rgba(251,250,246,.9); font-size: .858rem; font-weight: 700; }
.ev-osm-map .charging-map-legend { z-index: 8; pointer-events: none; }
.charging-map-legend span::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; }
.charging-map-legend .legend-bike::before { background: var(--river-dark); }
.charging-map-legend .legend-ev::before { background: var(--clay); }
.charging-station-panel { display: flex; min-width: 0; height: auto; min-height: 0; flex-direction: column; overflow: hidden; padding: 24px 30px; border-left: 1px solid var(--line); }
.charging-station-panel h3 { max-width: 100%; margin: 14px 0 10px; font-size: clamp(2rem, 3vw, 3.5rem); line-height: 1.02; overflow-wrap: anywhere; hyphens: auto; }
.charging-station-panel h3.station-title-medium { font-size: clamp(1.75rem, 2.25vw, 2.5rem); line-height: 1.05; }
.charging-station-panel h3.station-title-long { font-size: clamp(1.4rem, 1.75vw, 1.9rem); line-height: 1.08; }
.station-distance { color: var(--ink-soft); font-size: 1.014rem; }
.charging-station-panel dl { min-height: 0; margin: 18px 0; overflow-y: auto; scrollbar-width: thin; }
.charging-station-panel dl > div { display: grid; align-items: baseline; grid-template-columns: 90px minmax(0, 1fr); gap: 14px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.charging-station-panel dt { color: var(--ink-soft); font-size: .884rem; line-height: 1.4; letter-spacing: .05em; text-transform: uppercase; }
.charging-station-panel dd { min-width: 0; margin: 0; font-size: 1.066rem; font-weight: 700; line-height: 1.4; overflow-wrap: normal; word-break: normal; hyphens: auto; }
.charging-station-panel dd.station-value-long { font-size: .86rem; line-height: 1.45; text-wrap: pretty; }
.station-map-actions { display: grid; flex: 0 0 auto; gap: 17px; margin-top: auto; }
.station-map-actions > a:last-child { font-size: .988rem; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.charging-feed-meta { margin: 15px 0 0; color: var(--ink-soft); font-size: .884rem; }
.charging-map-message { display: grid; min-height: 598px; height: 100%; place-items: center; padding: 40px; background: linear-gradient(135deg, rgba(91,127,137,.09), transparent 58%), #edf0e9; color: var(--ink-soft); text-align: center; }
.charge-steps { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0 0 58px; padding: 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); list-style: none; }
.charge-steps li { min-height: 250px; padding: 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.charge-steps span { color: var(--clay); font-size: .936rem; font-weight: 700; }
.charge-steps h3 { margin: 44px 0 15px; font-size: 1.45rem; }
.charge-steps p { margin: 0; color: var(--ink-soft); font-size: 1.118rem; }
.charge-layer-table { border-top: 2px solid var(--ink); }
.charge-layer-table > div { display: grid; grid-template-columns: .8fr 1fr 1.4fr 1fr; border-bottom: 1px solid var(--line); }
.charge-layer-table span, .charge-layer-table strong, .charge-layer-table em { padding: 18px 14px; font-size: 1.04rem; font-style: normal; }
.charge-layer-table span { color: var(--ink-soft); }
.charge-layer-table em { color: var(--clay-dark); font-weight: 700; }
.charge-layer-head { background: var(--paper-deep); }
.charge-layer-head span { color: var(--ink); font-size: .884rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.mobility-proof { padding-block: 110px; background: linear-gradient(125deg, var(--river-dark), #173d47 58%, #244b3b); color: var(--white); }
.mobility-proof-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 9vw; }
.mobility-proof h2 { margin: 18px 0 0; }
.mobility-proof-points { border-top: 1px solid rgba(255,255,255,.25); }
.mobility-proof-points p { display: grid; grid-template-columns: .7fr 1.3fr; gap: 30px; margin: 0; padding: 22px 0; border-bottom: 1px solid rgba(255,255,255,.25); }
.mobility-proof-points span { color: rgba(255,255,255,.7); font-size: 1.144rem; }
.mobility-page > .route-next,
.mobility-page > .routes-scroll-chapter-final > .route-next { margin-top: 70px; }
.route-charge-card { display: grid; grid-template-columns: .88fr 1.12fr; gap: 8vw; margin-bottom: 120px; padding: 44px; border-left: 5px solid var(--river-dark); background: var(--white); }
.route-charge-auto { border-left-color: var(--clay-dark); }
.route-charge-card h2 { margin: 16px 0 0; font-size: clamp(2.2rem, 3.7vw, 4.4rem); }
.route-charge-card > div:last-child > p { color: var(--ink-soft); }
.route-charge-card .button { margin-top: 14px; }

.house-section { padding-block: 128px; background: var(--ink); color: var(--white); }
.house-grid { display: grid; grid-template-columns: 1.08fr 0.92fr; align-items: center; gap: 8vw; }
.image-figure { margin: 0; }
.image-figure-media { position: relative; overflow: hidden; }
.image-figure img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.image-figure figcaption { display: block; padding-top: 10px; color: var(--ink-soft); font-size: .91rem; }
.image-credit-link { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.image-credit-overlay .image-credit-link {
  position: absolute;
  z-index: 2;
  right: 10px;
  bottom: 10px;
  max-width: calc(100% - 20px);
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(255,255,255,.94);
  font-size: clamp(.64rem, .7vw, .76rem);
  line-height: 1.25;
  text-align: right;
  text-decoration: none;
  text-shadow: 0 1px 4px rgba(0,0,0,.78);
}
.image-credit-overlay .image-credit-link:hover,
.image-credit-overlay .image-credit-link:focus-visible { background: transparent; text-decoration: underline; }
.image-credit-below figcaption { display: flex; justify-content: space-between; gap: 16px; }
.house-section .image-figure figcaption { color: rgba(255,255,255,.62); }
.house-copy .kicker { color: #a8c5ad; }
.house-copy h2 { margin: 18px 0 28px; }
.house-copy .large-copy { color: rgba(255,255,255,.78); }
.house-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-block: 46px; background: rgba(255,255,255,.17); }
.house-facts div { padding: 22px; background: var(--ink); }
.house-facts strong, .house-facts span { display: block; }
.house-facts strong { color: #d7b779; font-size: 2rem; }
.house-facts span { margin-top: 7px; color: rgba(255,255,255,.66); font-size: .936rem; }
.house-copy .fine-print { color: rgba(255,255,255,.56); }

.criteria-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.sustainability-title { margin: 0 0 26px; font-size: clamp(2.5rem, 4.2vw, 5rem); }
.sustainability-evidence { display: grid; grid-template-columns: repeat(3, 1fr); margin-bottom: 64px; border-top: 1px solid var(--line); }
.sustainability-evidence article { min-height: 260px; padding: 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.sustainability-evidence article:first-child { border-left: 1px solid var(--line); }
.sustainability-evidence h3 { margin: 0 0 16px; font-size: 1.6rem; }
.sustainability-evidence article > p:last-child { margin: 0; color: var(--ink-soft); font-size: 1.144rem; }
.criteria-grid article { min-height: 230px; padding: 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.criteria-grid article:last-child { grid-column: span 2; }
.criteria-grid span { color: var(--clay); font-size: 1.04rem; font-weight: 700; }
.criteria-grid h3 { margin: 34px 0 12px; font-size: 1.35rem; }
.criteria-grid p { margin: 0; color: var(--ink-soft); font-size: 1.17rem; }
.proof-note { display: grid; grid-template-columns: 240px 1fr; align-items: center; gap: 46px; margin-top: 56px; padding: 36px; background: var(--paper-deep); }
.proof-note-simple { grid-template-columns: 1fr; margin-top: 0; }
.proof-note p:last-child { max-width: 850px; margin: 8px 0 0; }
.proof-score { font-size: 3.1rem; font-weight: 700; letter-spacing: -.06em; }
.proof-note a { display: inline-block; margin-top: 14px; color: var(--moss-dark); font-size: 1.014rem; font-weight: 700; }

.impact-hero { padding-block: 132px 112px; background: linear-gradient(135deg, var(--ink), #193126 58%, var(--river-dark)); color: var(--white); }
.impact-hero-grid { display: grid; grid-template-columns: 1.08fr .92fr; align-items: end; gap: 8vw; }
.impact-hero .kicker { color: #b8d0bb; }
.impact-hero h1, .impact-hero-title { margin: 22px 0 0; font-size: clamp(4rem, 8vw, 8.7rem); }
.impact-hero .large-copy { color: rgba(255,255,255,.78); }
.impact-hero-embedded { background: linear-gradient(135deg, #dbe4df, #ece7db 68%, #e2d5c6); color: var(--ink); }
.impact-hero-embedded .kicker { color: var(--clay-dark); }
.impact-hero-embedded .large-copy { color: var(--ink-soft); }
.impact-status-section { padding-block: 110px; }
.impact-status-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.impact-status-grid article { min-height: 245px; padding: 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); }
.impact-status-grid span { color: var(--clay); font-size: .884rem; font-weight: 700; }
.impact-status-grid h3 { margin: 38px 0 12px; }
.impact-status-grid p { color: var(--ink-soft); }
.funding-section { padding-block: 110px; background: var(--paper-deep); }
.funding-section .split-heading > div:last-child > p { margin-top: 18px; color: var(--ink-soft); }
.funding-package-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.funding-package { min-height: 270px; padding: 30px; background: var(--white); }
.funding-package > div { display: flex; justify-content: space-between; gap: 18px; color: var(--clay-dark); }
.funding-package > div span { font-size: .936rem; font-weight: 700; }
.funding-package > div strong { font-size: 1.1rem; }
.funding-package h3 { margin: 58px 0 16px; }
.funding-package p { margin: 0; color: var(--ink-soft); font-size: 1.118rem; }
.funding-difference { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 40px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.funding-difference article { min-height: 190px; padding: 26px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.funding-difference h3 { margin-bottom: 18px; font-size: 1.25rem; }
.funding-difference p { margin: 0; color: var(--ink-soft); font-size: 1.066rem; }
.impact-plan-section { padding-block: 110px; background: var(--ink); color: var(--white); }
.impact-plan-section .section-heading > p { color: rgba(255,255,255,.68); }
.impact-plan-section .kicker { color: #b8d0bb; }
.impact-plan-section-light { background: var(--paper-deep); color: var(--ink); }
.impact-plan-section-light .section-heading > p { color: var(--ink-soft); }
.impact-plan-section-light .kicker { color: var(--moss); }
.impact-plan-section-light .impact-table { border-top-color: var(--line); }
.impact-plan-section-light .impact-row { border-bottom-color: var(--line); }
.impact-plan-section-light .impact-row strong { color: var(--clay-dark); }
.impact-plan-section-light .impact-row span { color: var(--ink); }
.impact-plan-section-light .impact-row i { border-color: rgba(37,65,48,.28); color: var(--moss-dark); }
.impact-plan-section-light .impact-row small { color: var(--ink-soft); }
.impact-table { margin-top: 44px; border-top: 1px solid rgba(255,255,255,.2); }
.impact-row { display: grid; grid-template-columns: .6fr 1.55fr .8fr 1.15fr; gap: 22px; align-items: start; padding: 22px 0; border-bottom: 1px solid rgba(255,255,255,.17); }
.impact-row strong { color: #d7b779; }
.impact-row span { color: rgba(255,255,255,.9); }
.impact-row i { width: fit-content; padding: 6px 9px; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; color: #c9d8cc; font-size: .858rem; font-style: normal; font-weight: 700; }
.impact-row small { color: rgba(255,255,255,.55); font-size: .936rem; line-height: 1.5; }
.impact-next { display: grid; grid-template-columns: .8fr 1.2fr; gap: 7vw; padding-block: 120px; }
.impact-next ol { margin: 0; padding: 0; list-style: none; }
.impact-next li { display: grid; grid-template-columns: 46px 1fr; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--line); color: var(--ink-soft); }
.impact-next li span { color: var(--clay); font-size: .884rem; font-weight: 700; }
.impact-next .hero-actions { grid-column: 2; }

.about-hero { position: relative; min-height: 780px; overflow: hidden; background: var(--ink); color: var(--white); }
.about-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.about-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(12,27,20,.9), rgba(12,27,20,.54) 55%, rgba(12,27,20,.14)), linear-gradient(0deg, rgba(12,27,20,.4), transparent 45%); }
.about-hero-copy { position: relative; z-index: 2; display: flex; min-height: 780px; flex-direction: column; justify-content: center; padding-block: 90px; }
.about-hero .kicker { color: #c4d6bf; }
.about-hero h1 { max-width: 1050px; margin: 24px 0 32px; }
.about-hero .large-copy { max-width: 790px; color: rgba(255,255,255,.82); }
.about-hero-copy > span { width: fit-content; margin-top: 22px; padding: 10px 14px; border: 1px solid rgba(255,255,255,.36); border-radius: 999px; color: rgba(255,255,255,.75); font-size: .91rem; }
.about-chapter-nav { position: relative; z-index: 3; display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); margin-top: 0; padding: 0; background: var(--white); box-shadow: 0 20px 60px rgba(18,33,25,.12); }
.about-chapter-nav a { display: grid; min-height: 176px; grid-template-rows: auto auto 1fr; gap: 12px; padding: 28px 30px; border-right: 1px solid var(--line); }
.about-chapter-nav a:last-child { border-right: 0; }
.about-chapter-nav span { color: var(--clay); font-size: .884rem; font-weight: 800; letter-spacing: .08em; }
.about-chapter-nav strong { font-size: 1.3rem; }
.about-chapter-nav small { max-width: 300px; color: var(--ink-soft); font-size: .949rem; line-height: 1.5; }
.about-chapter-nav a:hover, .about-chapter-nav a:focus-visible { background: var(--paper-deep); }
.about-scroll-chapter { scroll-margin-top: 94px; }
.about-why-grid, .about-place-grid, .about-architecture-grid, .about-innovation-grid, .about-people-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 8vw; }
.about-why h2, .about-place h2, .about-architecture h2, .about-innovation h2, .about-people h2 { margin: 18px 0 28px; }
.about-why .large-copy, .about-place .large-copy, .about-architecture .large-copy, .about-innovation .large-copy { color: var(--ink-soft); }
.about-place { padding-block: 120px; background: var(--paper-deep); }
.about-innovation { padding-block: 120px; background: var(--paper-deep); }
.about-architecture .image-figure img { object-position: 50% 36%; }
.about-innovation .image-figure img { object-position: 67% 52%; }
.about-principles-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.about-principles-grid article { min-height: 310px; padding: 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.about-principles-grid span { color: var(--clay); font-size: .936rem; font-weight: 700; }
.about-principles-grid h3 { margin: 58px 0 18px; }
.about-principles-grid p { margin: 0; color: var(--ink-soft); font-size: 1.144rem; }
.about-people { padding-block: 130px; background: #e8e1d3; color: var(--ink); }
.about-people .kicker { color: var(--moss); }
.about-people .large-copy { color: var(--ink-soft); }
.about-people .button.light { border-color: var(--ink); color: var(--ink); }
.about-people .button.light.filled { border-color: var(--ink); background: var(--ink); color: var(--white); }

/* Über uns: Kapitelgrenzen aus der freigegebenen Desktop-Referenz; Tablet und Mobile bleiben unverändert. */
@media (min-width: 981px) {
  .about-page .about-section-chapter { scroll-margin-top: 92px; }
  .about-page .about-section-chapter-viewport { min-height: calc(90svh - 83px); }
  .about-page .about-section-chapter-status {
    display: flex;
    min-height: calc(100svh - 88px);
    align-items: stretch;
  }
  .about-page .about-section-chapter-status > .project-status-band {
    display: flex;
    width: 100%;
    min-height: inherit;
    align-items: center;
  }
  .about-page .about-section-chapter-next { align-content: center; }
  .about-page .about-section-chapter-materials-intro {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
}

@media (min-width: 981px) and (max-height: 1100px) {
  .about-page [data-scroll-chapter="intro"] .about-hero,
  .about-page [data-scroll-chapter="intro"] .about-hero-copy {
    min-height: max(650px, calc(100svh - 264px));
  }
}

.materials-journey-embedded .material-list-first { padding-bottom: 0; }
.apartments-materials-chapter { position: relative; scroll-margin-top: 92px; scroll-snap-align: start; scroll-snap-stop: always; }
.apartments-overview-snap .apartments-materials-chapter { scroll-snap-align: none; scroll-snap-stop: normal; }

@media (min-width: 981px) {
  .apartments-materials-chapter.about-section-chapter-viewport { min-height: calc(90svh - 83px); }
  .apartments-materials-chapter.about-section-chapter-materials-intro { display: flex; flex-direction: column; justify-content: center; }
}

@media (max-width: 980px), (max-height: 699px) {
  .apartments-materials-chapter { scroll-snap-stop: normal; }
}

@media (max-width: 980px) {
  .about-page .about-section-chapter { scroll-margin-top: 110px; }
  .apartments-materials-chapter { scroll-margin-top: 110px; }
  .project-status-band-evidence .project-status-copy h2 { font-size: clamp(1.85rem, 5vw, 2.4rem); }
}

@media (max-width: 480px) {
  .project-status-band-evidence .project-status-copy h2 { font-size: clamp(1.75rem, 7.75vw, 1.9rem); }
}

.apartments-hero { padding-block: 130px 100px; background: var(--ink); color: var(--white); }
.apartments-hero-grid { display: grid; grid-template-columns: minmax(0, 1.48fr) minmax(330px, .52fr); align-items: end; gap: clamp(40px, 4.5vw, 72px); }
.apartments-hero-grid > div:first-child { min-width: 0; }
.apartments-hero-grid > div:last-child { max-width: 470px; }
.apartments-hero .kicker { color: #a8c5ad; }
.apartments-hero h1 { max-width: 900px; margin: 22px 0 0; font-size: clamp(3.35rem, 4.25vw, 5.2rem); line-height: .94; }
.apartments-hero .large-copy { margin: 0; color: rgba(255,255,255,.76); font-size: clamp(1.1rem, 1.45vw, 1.45rem); }
.apartments-hero .status-badge { margin-bottom: 18px; background: #f0dfbd; color: #6e501b; }
.apartments-hero-with-project-status { display: flex; flex-direction: column; justify-content: center; padding-block: clamp(52px, 7vh, 82px); }
.apartments-hero-with-project-status > .apartments-hero-grid { align-items: start; }
.apartments-hero-with-project-status .project-status-band-embedded {
  width: 100%;
  scroll-margin-top: var(--site-header-height);
  padding: clamp(30px, 4.5vh, 48px) 0 0;
  background: transparent;
}
.apartments-hero-with-project-status .project-status-copy-without-heading > p { margin: 0; }
.apartments-hero-with-project-status .project-status-summary { gap: clamp(18px, 2.6vh, 30px); }
.apartments-hero-with-project-status .project-status-grid p { min-height: clamp(88px, 12vh, 112px); padding: 18px 20px; }
@media (min-width: 981px) {
  .apartments-hero-with-project-status > .apartments-hero-grid { grid-template-columns: 1fr; }
  .apartments-hero-with-project-status .apartments-hero-grid h1 > span { display: block; white-space: nowrap; }
  .apartments-hero-with-project-status .project-status-inner { align-items: end; }
}
.apartment-fact-band { background: var(--paper-deep); }
.apartment-facts { display: grid; grid-template-columns: repeat(4, 1fr); }
.apartment-facts > p { display: grid; margin: 0; padding: 28px; border-left: 1px solid var(--line); }
.apartment-facts > p:last-child { border-right: 0; }
.apartment-fact-band strong { font-size: 1.35rem; }
.apartment-fact-band span { margin-top: 8px; color: var(--ink-soft); font-size: .91rem; }
.portfolio-status-note { background: var(--white); }
.portfolio-status-note > .shell { display: block; margin-block: 0; padding-block: 13px; color: var(--ink-soft); font-size: .9rem; line-height: 1.45; }
.apartments-page .apartments-teaser { border-bottom: 1px solid var(--line); background: #e8e1d3; }
.apartment-site-plan-section { padding-block: 112px; border-bottom: 1px solid var(--line); background: var(--white); }
.apartment-site-plan { padding-block: 0; }
.apartment-site-plan-placeholder {
  position: relative;
  display: grid;
  aspect-ratio: 5 / 3;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(20, 40, 34, .28);
  background: #e8e1d3;
  color: var(--ink);
  text-align: center;
}
.apartment-site-plan-placeholder::before,
.apartment-site-plan-placeholder::after {
  position: absolute;
  width: 38%;
  height: 1px;
  background: rgba(20, 40, 34, .2);
  content: "";
}
.apartment-site-plan-placeholder::before { transform: rotate(32deg); }
.apartment-site-plan-placeholder::after { transform: rotate(-32deg); }
.apartment-site-plan-placeholder > div {
  position: relative;
  z-index: 1;
  max-width: 520px;
  padding: 30px 38px;
  background: rgba(232, 225, 211, .92);
}
.apartment-site-plan-placeholder .kicker { color: var(--green); }
.apartment-site-plan-placeholder h2 { margin: 14px 0 10px; }
.apartment-site-plan-placeholder > div > p:last-child { margin: 0; color: var(--ink-soft); }
.booking-readiness { display: grid; grid-template-columns: .9fr 1.1fr; gap: 8vw; }
.booking-readiness h2 { margin: 18px 0 0; }
.booking-readiness .large-copy { color: var(--ink-soft); }
.booking-readiness .button { margin-top: 18px; }

.routes-overview-intro { position: relative; display: flex; min-height: calc(100svh - 92px); flex-direction: column; padding-top: 30px; background: var(--paper-deep); }
.routes-overview-intro > .shell { display: flex; min-height: 0; flex: 1; flex-direction: column; }
.routes-overview-workspace { display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; gap: clamp(10px, 1.5vh, 16px); padding-top: clamp(10px, 1.8vh, 20px); }
.routes-overview-copy { display: grid; grid-template-columns: clamp(150px, 17%, 230px) minmax(0, 744px) minmax(230px, 1fr); align-items: end; gap: 6px 0; }
.routes-overview-copy > .kicker { grid-column: 1 / 3; }
.routes-overview-copy h1 { grid-column: 1 / 3; max-width: 18ch; margin: 2px 0 0; padding-right: clamp(28px, 4vw, 64px); font-size: clamp(2.85rem, 4.05vw, 4.65rem); line-height: .92; }
.routes-overview-lead { grid-column: 3; width: 100%; max-width: 430px; justify-self: end; margin: 0 0 4px; color: var(--ink-soft); font-size: clamp(.82rem, .9vw, .96rem); line-height: 1.48; text-align: right; }
.routes-map-panel { min-width: 0; }
.routes-map-panel-heading h2 { margin: 0 0 6px; font-size: clamp(1.45rem, 1.8vw, 2rem); line-height: 1; }
.routes-map-module { display: grid; min-width: 0; align-items: stretch; }
.routes-map-body { display: grid; min-width: 0; grid-template-columns: clamp(150px, 17%, 230px) min(58%, 744px) minmax(230px, 1fr); align-items: stretch; }
.routes-map-levels { display: flex; min-width: 0; flex-direction: column; padding: 14px; border: 1px solid var(--line); border-right: 0; background: rgba(251,250,246,.58); }
.routes-map-level-copy { display: none; margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(23,35,30,.12); }
.routes-map-level-copy > p:last-child { margin: 6px 0 10px; color: var(--ink-soft); font-size: .66rem; line-height: 1.32; }
.routes-map-level-filter { flex: 1 1 auto; min-height: 0; padding-bottom: 8px; }
.routes-map-level-filter .prototype-filter-groups {
  height: 100%;
  grid-template-rows: minmax(0, 4fr) minmax(0, 1fr);
  gap: 6px;
}
.routes-map-level-filter .prototype-filter-group { display: grid; min-height: 0; grid-template-rows: auto minmax(0, 1fr); gap: 4px; }
.routes-map-level-filter .prototype-filter-group legend { float: none; min-width: 0; padding: 0; }
.routes-map-level-filter .prototype-filter-options { gap: 3px; }
.routes-map-level-filter .prototype-filter-checkbox-options { align-content: space-between; grid-auto-rows: 24px; gap: 1px; }
.routes-map-level-filter .prototype-filter-checkbox-options label { height: 100%; min-height: 24px; padding-block: 3px; }
.routes-map-level-filter .prototype-filter-theme .prototype-filter-checkbox-options { grid-auto-rows: 26px; }
.routes-map-level-filter .prototype-filter-theme .prototype-filter-checkbox-options label { min-height: 26px; }
.routes-map-level-filter .prototype-filter-options:not(.prototype-filter-checkbox-options) span { min-height: 20px; padding: 3px 6px; font-size: .56rem; }
.routes-map-level-buttons { display: grid; gap: 4px; margin-top: auto; }
.routes-map-level-buttons button { display: grid; min-width: 0; min-height: 60px; align-content: center; gap: 4px; padding: 8px 9px; border: 1px solid var(--line); border-radius: 6px; background: rgba(251,250,246,.66); color: var(--ink); cursor: pointer; text-align: left; transition: background .18s ease, border-color .18s ease, color .18s ease; }
.routes-map-level-buttons button > strong { min-width: 0; font-size: .84rem; line-height: 1.15; }
.routes-map-level-buttons button > small { min-width: 0; color: var(--ink-soft); font-size: .64rem; line-height: 1.25; }
.routes-map-level-buttons button:hover,
.routes-map-level-buttons button:focus-visible { background: var(--paper-deep); }
.routes-map-level-buttons button.is-active { background: var(--moss-dark); color: var(--white); }
.routes-map-level-buttons button.is-active > small { color: rgba(255,255,255,.68); }
.routes-map-caption { display: none; min-width: 0; justify-items: end; gap: 2px; min-height: 50px; padding: 8px 3px 0 20px; color: var(--ink); text-align: right; }
.routes-map-caption strong { font-size: 1.02rem; line-height: 1.15; }
.routes-map-caption span { max-width: 560px; color: var(--ink-soft); font-size: .74rem; line-height: 1.3; }
.routes-chapter-band { display: grid; width: 100%; grid-template-columns: minmax(32px, 1fr) minmax(0, 1546px) minmax(32px, 1fr); margin-top: 32px; border-block: 1px solid var(--line); background: var(--paper); }
.routes-chapter-band-edge { min-width: 0; background: var(--paper); }
.routes-chapter-nav { display: grid; grid-column: 2; grid-template-columns: repeat(3, 1fr); border-left: 1px solid var(--line); background: var(--paper); }
.routes-chapter-nav a { display: grid; min-height: 112px; grid-template-columns: 44px 1fr; align-content: center; gap: 8px 16px; padding: 20px 24px; border-right: 1px solid var(--line); background: var(--paper); }
.routes-chapter-nav span { grid-row: 1 / span 2; color: var(--clay); font-size: .884rem; font-weight: 800; letter-spacing: .08em; }
.routes-chapter-nav strong { font-size: 1.08rem; line-height: 1.3; }
.routes-chapter-nav small { color: var(--ink-soft); font-size: .884rem; line-height: 1.45; }
.routes-overview-map { min-height: 0; height: auto; align-self: stretch; aspect-ratio: auto; border-color: var(--line); background: #e5e7da; transition: background .18s ease; }
.routes-overview-map.is-regional { background: #e8e1d3; }
.routes-overview-map.is-overregional { background: #dfe6e5; }
.routes-overview-map .geo-map-canvas { width: 100%; height: 100%; aspect-ratio: auto; }
.geo-map-canvas { position: relative; min-width: 0; overflow: hidden; background: #edf0e9; isolation: isolate; }
.geo-map-interaction-preview { cursor: grab; touch-action: pan-y; }
.geo-map-interaction-expanded { cursor: grab; touch-action: none; }
.geo-map-interaction-preview:active,
.geo-map-interaction-expanded:active { cursor: grabbing; }
.geo-map-world { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; transform-origin: 0 0; pointer-events: none; will-change: transform; }
.geo-map-relief-background,
.geo-map-base-asset { position: absolute; inset: 0; display: block; width: 100%; height: 100%; pointer-events: none; user-select: none; }
.geo-map-relief-background { z-index: 0; object-fit: fill; }
.geo-map-base-asset { z-index: 1; object-fit: contain; }
.geo-map-geographic-overlay,
.geo-map-world-overlay { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.geo-map-geographic-overlay { z-index: 2; }
.geo-map-world-overlay { z-index: 3; }
.geo-map-route-line { fill: none; stroke: var(--moss-dark); stroke-width: 3; vector-effect: non-scaling-stroke; }
.geo-map-ui-overlay { position: absolute; z-index: 20; inset: 0; pointer-events: none; }
.map-place-label-layer { position: absolute; z-index: 18; inset: 0; overflow: hidden; pointer-events: none; }
.map-place-label { position: absolute; top: -9999px; left: -9999px; display: block; width: max-content; max-width: min(190px, 52vw); padding: 3px 5px; border-radius: 2px; background: rgba(251,250,246,.68); color: rgba(23,35,30,.72); font-size: .8125rem; font-weight: 750; line-height: 1.15; letter-spacing: .035em; text-shadow: 0 1px 0 rgba(251,250,246,.9); text-transform: uppercase; visibility: hidden; white-space: nowrap; }
.map-place-label.is-visible { visibility: visible; }
.map-place-label[data-label-priority="B"] { color: rgba(23,35,30,.65); font-size: .775rem; }
.map-place-label[data-label-priority="C"] { color: rgba(23,35,30,.57); font-size: .75rem; font-weight: 700; }
.geo-map-zoom-controls { position: absolute; z-index: 38; top: 12px; right: 12px; display: grid; grid-template-columns: 36px 36px auto; overflow: hidden; border: 1px solid rgba(23,35,30,.24); border-radius: 999px; background: rgba(251,250,246,.94); box-shadow: 0 7px 20px rgba(23,35,30,.16); pointer-events: auto; }
.geo-map-zoom-controls button { min-width: 36px; min-height: 36px; padding: 0; border: 0; border-right: 1px solid rgba(23,35,30,.16); background: transparent; color: var(--ink); cursor: pointer; font-size: 1rem; font-weight: 750; }
.geo-map-zoom-controls button:hover,
.geo-map-zoom-controls button:focus-visible { background: var(--moss-dark); color: var(--white); }
.geo-map-zoom-controls .geo-map-reset { min-width: 96px; padding-inline: 13px; border-right: 0; font-size: .67rem; }
.geo-map-poi { position: absolute; z-index: 5; display: inline-grid; width: 18px; height: 18px; place-items: center; transform: translate(-50%, -50%); padding: 0; overflow: visible; border: 1.5px solid var(--moss-dark); border-radius: 50%; background: rgba(251,250,246,.98); color: var(--ink); box-shadow: 0 2px 6px rgba(23,35,30,.17); cursor: pointer; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.geo-map-poi::before { position: absolute; inset: -13px; border-radius: 50%; content: ""; }
.geo-map-poi i { display: none; }
.geo-map-poi-label { position: absolute; top: calc(100% + 7px); left: 50%; width: max-content; max-width: min(210px, 56vw); transform: translateX(-50%); padding: 4px 6px; overflow: hidden; border: 1px solid rgba(34,75,57,.28); border-radius: 3px; background: rgba(251,250,246,.97); color: var(--ink); box-shadow: 0 4px 11px rgba(23,35,30,.13); font-size: .63rem; font-weight: 700; line-height: 1.2; opacity: 0; pointer-events: none; text-overflow: ellipsis; white-space: nowrap; }
.geo-map-poi:focus-visible .geo-map-poi-label { opacity: 1; }
@media (hover: hover) {
  .geo-map-poi:hover .geo-map-poi-label { opacity: 1; }
}
.geo-map-poi-menu-shell.is-active .geo-map-poi-label { opacity: 0; }
.geo-map-poi-menu-shell.geo-map-poi-role-main { z-index: 4; }
.geo-map-poi.geo-map-poi-role-main { width: 14px; height: 14px; border-width: 1.25px; }
.geo-map-poi-menu-shell.geo-map-poi-role-extent { z-index: 3; opacity: .72; }
.geo-map-poi.geo-map-poi-role-extent { width: 10px; height: 10px; border-width: 1px; box-shadow: 0 1px 3px rgba(23,35,30,.12); }
.geo-map-poi.is-priority { box-shadow: 0 0 0 2px rgba(199,154,77,.2), 0 2px 7px rgba(23,35,30,.18); }
.geo-map-poi-menu-shell { position: absolute; z-index: 7; transform: translate(-50%, -50%) scale(var(--map-inverse-zoom, 1)); }
.geo-map-poi-menu-shell > button { position: relative; transform: none; }
.geo-map-poi-menu-shell.is-active { z-index: 12; }
.geo-map-poi-menu-shell.is-active > button { border-color: var(--ink); background: var(--white); box-shadow: 0 0 0 2px rgba(34,75,57,.14), 0 3px 8px rgba(23,35,30,.2); }
.geo-map-poi-menu-shell[data-menu-horizontal="start"] .geo-map-poi-label { left: 0; transform: none; }
.geo-map-poi-menu-shell[data-menu-horizontal="end"] .geo-map-poi-label { right: 0; left: auto; transform: none; }
.geo-map-poi-menu-shell[data-menu-vertical="up"] .geo-map-poi-label { top: auto; bottom: calc(100% + 7px); }
.geo-map-poi-actions { position: absolute; z-index: 1; top: calc(100% + 12px); left: 50%; display: grid; width: max-content; max-width: min(280px, 76vw); transform: translateX(-50%); border: 1px solid var(--line); background: rgba(251,250,246,.98); box-shadow: 0 10px 28px rgba(23,35,30,.2); color: var(--ink); }
.geo-map-poi-menu-shell[data-menu-horizontal="start"] .geo-map-poi-actions { left: 0; transform: none; }
.geo-map-poi-menu-shell[data-menu-horizontal="end"] .geo-map-poi-actions { right: 0; left: auto; transform: none; }
.geo-map-poi-menu-shell[data-menu-vertical="up"] .geo-map-poi-actions { top: auto; bottom: calc(100% + 12px); }
.geo-map-poi-actions > strong { padding: 9px 11px 7px; border-bottom: 1px solid var(--line); color: var(--moss-dark); font-size: .76rem; line-height: 1.25; }
.geo-map-poi-actions a { display: grid; gap: 2px; min-width: 190px; max-width: 280px; padding: 9px 11px; border-bottom: 1px solid var(--line); color: var(--ink); font-size: .72rem; font-weight: 700; line-height: 1.25; white-space: normal; }
.geo-map-poi-actions a:last-child { border-bottom: 0; }
.geo-map-poi-actions a:hover,
.geo-map-poi-actions a:focus-visible { background: var(--paper-deep); }
.geo-map-poi-actions small { color: var(--ink-soft); font-size: .58rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.routes-overview-map > .geo-map-canvas .geo-map-poi-role-extent { display: none; }
.routes-overview-map > .geo-map-canvas { container-type: inline-size; container-name: route-overview-map; }
@container route-overview-map (max-width: 500px) {
  .geo-map-poi-role-main { display: none; }
}
.geo-map-poi.is-reference { pointer-events: none; }
.geo-map-poi:not(.is-reference):hover,
.geo-map-poi:not(.is-reference):focus-visible { border-color: var(--ink); background: var(--white); box-shadow: 0 0 0 2px rgba(34,75,57,.12), 0 3px 8px rgba(23,35,30,.18); }
.geo-map-slot-copy { position: absolute; z-index: 4; top: 18px; right: 18px; display: grid; width: min(58%, 440px); gap: 8px; padding: 20px 22px; background: rgba(232,225,211,.86); text-align: left; pointer-events: none; }
.geo-map-slot-copy small { color: var(--moss); font-size: .65rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.geo-map-slot-copy strong { font-size: clamp(1.35rem, 2vw, 2.35rem); line-height: 1.06; }
.geo-map-slot-copy > span { color: var(--ink-soft); font-size: .82rem; line-height: 1.4; }
.routes-overview-map .topo { width: 100%; height: 100%; }
.routes-overview-map .map-hotspots a:nth-child(1) { top: 61%; left: 54%; }
.routes-overview-map .map-hotspots a:nth-child(2) { top: 31%; right: 25%; }
.routes-overview-map .map-hotspots a:nth-child(3) { top: 11%; left: 36%; }

/* Kartenprototyp V07: zentrale Kategorien, SVG-Icons, Rollen und belegte Statuszeichen. */
.prototype-map-canvas { isolation: isolate; }
.prototype-map-surface { position: absolute; z-index: 6; inset: 0; pointer-events: none; }
.prototype-map-desktop-filters { padding: 5px 10px; border: 1px solid var(--line); border-bottom: 0; background: rgba(251,250,246,.76); }
.prototype-map-desktop-filters .prototype-filter-groups { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 24px; }
.prototype-map-desktop-filters .prototype-filter-group { display: flex; align-items: center; gap: 7px; }
.prototype-map-desktop-filters .prototype-filter-group legend { float: none; min-width: 0; padding: 0; }
.prototype-filter-groups { display: grid; gap: 7px; }
.prototype-filter-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.prototype-filter-group legend {
  float: left;
  min-width: 66px;
  padding: 5px 8px 0 0;
  color: rgba(23,35,30,.66);
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .11em;
  line-height: 1;
  text-transform: uppercase;
}
.prototype-filter-options { display: flex; min-width: 0; flex-wrap: wrap; gap: 4px; }
.prototype-filter-options label { position: relative; cursor: pointer; }
.prototype-filter-options input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.prototype-filter-options span {
  display: inline-flex;
  min-height: 22px;
  align-items: center;
  justify-content: center;
  padding: 4px 8px;
  border: 1px solid rgba(23,35,30,.22);
  border-radius: 999px;
  background: rgba(251,250,246,.76);
  color: var(--ink);
  font-size: .61rem;
  font-weight: 720;
  line-height: 1;
  white-space: nowrap;
  transition: background .16s ease, border-color .16s ease, color .16s ease;
}
.prototype-filter-options input:checked + span { border-color: var(--moss-dark); background: var(--moss-dark); color: var(--white); }
.prototype-filter-options input:focus-visible + span { outline: 3px solid var(--gold); outline-offset: 2px; }
.prototype-filter-options label:hover span { border-color: var(--moss-dark); }
.prototype-filter-checkbox-options { display: grid; gap: 2px; }
.prototype-filter-checkbox-options label {
  display: flex;
  min-width: 0;
  min-height: 21px;
  align-items: center;
  gap: 6px;
  padding: 2px 3px;
  border-radius: 3px;
  white-space: nowrap;
}
.prototype-filter-checkbox-options input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  border: 0;
  opacity: 0;
  white-space: nowrap;
}
.prototype-filter-checkbox-options span {
  display: flex;
  min-height: 0;
  min-width: 0;
  align-items: center;
  gap: 5px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-size: .58rem;
  line-height: 1.15;
  white-space: nowrap;
}
.prototype-filter-checkbox-options span svg,
.prototype-filter-options:not(.prototype-filter-checkbox-options) span svg { width: 12px; height: 12px; flex: 0 0 auto; color: var(--moss-dark); }
.routes-map-level-filter .prototype-filter-checkbox-options span { min-height: 0; padding: 0; font-size: .58rem; }
.routes-map-level-filter .prototype-filter-theme .prototype-filter-checkbox-options svg {
  width: 17px;
  height: 17px;
  padding: 3px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--v07-category-color) 16%, var(--paper));
  color: var(--v07-category-color);
}
.prototype-filter-checkbox-options input:checked + span { border: 0; background: transparent; color: var(--ink); font-weight: 800; }
.routes-map-module .prototype-filter-checkbox-options label { transition: background .16s ease; }
.routes-map-module .prototype-filter-checkbox-options label:has(input:checked) { background: rgba(34,75,57,.12); }
.prototype-filter-checkbox-options input:focus-visible + span { outline: none; }
.prototype-filter-checkbox-options label:has(input:focus-visible) { outline: 3px solid var(--gold); outline-offset: 1px; }
.prototype-filter-checkbox-options label:hover { background: rgba(34,75,57,.08); }
.prototype-filter-checkbox-options label:hover span { border: 0; }
.prototype-filter-reset {
  width: fit-content;
  padding: 2px 0;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  color: var(--moss-dark);
  cursor: pointer;
  font-size: .57rem;
  font-weight: 800;
}
.prototype-filter-reset:hover,
.prototype-filter-reset:focus-visible { color: var(--ink); }
.prototype-map-desktop-filters .prototype-filter-groups { align-items: flex-start; }
.prototype-map-desktop-filters .prototype-filter-theme .prototype-filter-checkbox-options { grid-template-columns: repeat(4, max-content); }
.prototype-map-desktop-filters .prototype-filter-role .prototype-filter-checkbox-options { grid-template-columns: repeat(2, max-content); }
.prototype-map-filter-button { display: none; }
.prototype-map-active-status { display: none; }
.prototype-map-marker-shell {
  position: absolute;
  z-index: 12;
  display: grid;
  place-items: center;
  transform: translate(-50%, -50%) scale(var(--map-inverse-zoom, 1));
  pointer-events: auto;
}
.prototype-map-marker-shell.marker-role-main { z-index: 11; }
.prototype-map-marker-shell.marker-role-extent { z-index: 10; opacity: .76; }
.routes-map-module .prototype-map-marker-shell.is-winkelglueck { z-index: 24; }
.prototype-map-marker {
  position: relative;
  display: grid;
  width: 27px;
  height: 27px;
  place-items: center;
  padding: 0;
  border: 2px solid rgba(251,250,246,.94);
  border-radius: 50%;
  background: var(--v07-category-color, var(--moss));
  color: var(--white);
  box-shadow: 0 2px 6px rgba(23,35,30,.15);
  cursor: pointer;
  transition: transform .16s ease, box-shadow .16s ease;
}
.prototype-map-marker::before { position: absolute; inset: -13px; border-radius: 50%; content: ""; }
.prototype-map-marker > span { display: grid; width: 15px; height: 15px; place-items: center; }
.prototype-map-marker > span svg { width: 100%; height: 100%; }
.prototype-map-marker > b {
  position: absolute;
  top: -8px;
  right: -8px;
  display: grid;
  min-width: 17px;
  height: 17px;
  place-items: center;
  padding-inline: 4px;
  border: 1px solid rgba(251,250,246,.96);
  border-radius: 999px;
  background: var(--ink);
  color: var(--white);
  font-size: .5rem;
  line-height: 1;
}
.prototype-map-marker-shell.marker-role-main .prototype-map-marker { width: 24px; height: 24px; border-width: 1.75px; }
.prototype-map-marker-shell.marker-role-main .prototype-map-marker > span { width: 13px; height: 13px; }
.prototype-map-marker-shell.marker-role-extent .prototype-map-marker { width: 20px; height: 20px; border-width: 1.5px; box-shadow: 0 1px 3px rgba(23,35,30,.14); }
.prototype-map-marker-shell.marker-role-extent .prototype-map-marker > span { width: 11px; height: 11px; }
.routes-map-module .prototype-map-marker-shell.is-winkelglueck .prototype-map-marker {
  width: 27px;
  height: 27px;
  border: 1.75px solid rgba(251,250,246,.98);
  background: var(--paper);
  color: var(--moss-dark);
  box-shadow: 0 0 0 2px var(--moss-dark), 0 0 0 3.5px rgba(199,154,77,.82), 0 3px 9px rgba(23,35,30,.22);
}
.routes-map-module .prototype-map-marker-shell.is-winkelglueck[data-winkelglueck-marker-variant="gradient"] .prototype-map-marker {
  border-color: rgba(251,250,246,.96);
  background: linear-gradient(145deg, var(--paper) 12%, rgba(199,154,77,.72) 100%);
  box-shadow: 0 0 0 2px var(--moss-dark), 0 5px 14px rgba(23,35,30,.24);
}
.routes-map-module .prototype-map-marker-shell.is-winkelglueck .prototype-map-marker > span { width: 15px; height: 15px; }
.routes-map-module .prototype-map-marker-shell.is-winkelglueck .prototype-map-marker i {
  top: auto;
  bottom: calc(100% + 8px);
  opacity: 1;
  border-color: rgba(34,75,57,.34);
  color: var(--moss-dark);
  font-size: .68rem;
  font-weight: 820;
}
.prototype-map-marker-shell.is-stack .prototype-map-marker { background: var(--ink); }
.prototype-map-marker .prototype-map-cluster-count {
  width: auto;
  height: auto;
  color: var(--white);
  font-size: .68rem;
  font-weight: 820;
  line-height: 1;
}
.prototype-map-marker i {
  position: absolute;
  top: calc(100% + 7px);
  left: 50%;
  width: max-content;
  max-width: min(220px, 56vw);
  transform: translateX(-50%);
  padding: 4px 7px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--v07-category-color, var(--moss)) 45%, transparent);
  border-radius: 3px;
  background: rgba(251,250,246,.97);
  color: var(--v07-category-color, var(--moss));
  box-shadow: 0 4px 11px rgba(23,35,30,.11);
  font-size: .62rem;
  font-style: normal;
  font-weight: 720;
  line-height: 1.2;
  opacity: 0;
  pointer-events: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.prototype-map-marker:hover i,
.prototype-map-marker:focus-visible i,
.prototype-map-marker-shell.is-active .prototype-map-marker i { opacity: 1; }
.prototype-map-marker:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }
.prototype-map-marker:hover,
.prototype-map-marker-shell.is-active .prototype-map-marker { transform: scale(1.08); box-shadow: 0 0 0 3px rgba(251,250,246,.58), 0 3px 9px rgba(23,35,30,.2); }
.prototype-map-marker-shell[data-marker-horizontal="start"] .prototype-map-marker i { left: 0; transform: none; }
.prototype-map-marker-shell[data-marker-horizontal="end"] .prototype-map-marker i { right: 0; left: auto; transform: none; }
.prototype-map-marker-shell[data-marker-vertical="up"] .prototype-map-marker i { top: auto; bottom: calc(100% + 7px); }
.prototype-map-visible-count {
  position: absolute;
  z-index: 16;
  bottom: 11px;
  left: 12px;
  display: none;
  margin: 0;
  padding: 5px 8px;
  border: 1px solid rgba(23,35,30,.14);
  border-radius: 999px;
  background: rgba(251,250,246,.86);
  color: rgba(23,35,30,.68);
  font-size: .58rem;
  font-weight: 700;
  pointer-events: none;
}
.prototype-map-visible-count strong { display: inline; color: var(--ink); font-size: inherit; }
.prototype-map-empty {
  position: absolute;
  z-index: 15;
  top: 50%;
  left: 50%;
  width: min(290px, calc(100% - 40px));
  transform: translate(-50%, -50%);
  margin: 0;
  padding: 14px 16px;
  border: 1px solid rgba(23,35,30,.16);
  background: rgba(251,250,246,.9);
  color: var(--ink-soft);
  font-size: .72rem;
  line-height: 1.45;
  text-align: left;
}
.prototype-map-info-column {
  position: relative;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  overscroll-behavior-y: contain;
  border: 1px solid var(--line);
  border-left: 0;
  background: rgba(251,250,246,.92);
  color: var(--ink);
}
.prototype-map-default-info { position: absolute; inset: 0; display: flex; min-height: 0; flex-direction: column; gap: 8px; padding: clamp(12px, 1.25vw, 18px); overflow: visible; text-align: left; }
.prototype-map-default-info .kicker { margin-bottom: 4px; }
.prototype-map-default-info h3 { margin: 0 0 5px; font-size: clamp(1.3rem, 1.8vw, 1.9rem); line-height: 1.02; }
.prototype-map-default-info > div:first-child > p:last-child { margin: 0; color: var(--ink-soft); font-size: .72rem; line-height: 1.44; }
.prototype-map-default-count { display: flex; align-items: baseline; gap: 6px; margin: 0; padding-block: 7px; border-block: 1px solid var(--line); color: var(--ink-soft); font-size: .66rem; }
.prototype-map-default-count strong { color: var(--moss-dark); font-size: 1.12rem; }
.prototype-map-default-hint { margin: 0; color: var(--ink-soft); font-size: .69rem; line-height: 1.4; }
.prototype-map-results { display: grid; min-height: 0; flex: 1 1 auto; grid-template-rows: auto minmax(0, 1fr); gap: 4px; }
.prototype-map-results > strong { color: rgba(23,35,30,.64); font-size: .54rem; letter-spacing: .1em; text-transform: uppercase; }
.prototype-map-results > div { display: grid; min-height: 0; align-content: start; gap: 1px; padding-right: 4px; overflow-y: auto; overscroll-behavior-y: contain; scrollbar-gutter: stable; touch-action: pan-y; }
.prototype-map-results button {
  display: grid;
  min-width: 0;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  align-items: center;
  gap: 6px;
  padding: 3px 0;
  border: 0;
  border-bottom: 1px solid rgba(23,35,30,.1);
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  text-align: left;
}
.prototype-map-results button:hover,
.prototype-map-results button:focus-visible { color: var(--moss); }
.prototype-map-results button > span { display: grid; width: 17px; height: 17px; place-items: center; border-radius: 50%; background: var(--v07-category-color); color: var(--white); }
.prototype-map-results button > span.is-cluster { background: var(--ink); }
.prototype-map-results button > span.is-cluster b { color: var(--white); font-size: .5rem; line-height: 1; }
.prototype-map-results button svg { width: 10px; height: 10px; }
.prototype-map-results button b { min-width: 0; overflow: hidden; font-size: .58rem; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.prototype-map-results button small { color: var(--ink-soft); font-size: .52rem; }
.prototype-status-filters { min-width: 0; margin: 0; padding: 8px 0 0; border: 0; border-top: 1px solid var(--line); }
.prototype-status-filters legend {
  padding: 0 0 6px;
  color: rgba(23,35,30,.64);
  font-size: .54rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.prototype-status-filters.is-info { padding-top: 0; border-top: 0; }
.prototype-status-filters.is-info legend {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding-top: 8px;
  border-top: 1px solid var(--line);
}
.prototype-status-filters > div { display: flex; flex-wrap: wrap; gap: 5px; }
.prototype-status-filters button {
  display: inline-flex;
  min-height: 24px;
  align-items: center;
  gap: 4px;
  padding: 4px 7px;
  border: 1px solid rgba(34,75,57,.24);
  border-radius: 999px;
  background: transparent;
  color: var(--moss-dark);
  cursor: pointer;
  font-size: .5rem;
  font-weight: 760;
  line-height: 1.1;
  transition: background .16s ease, border-color .16s ease, color .16s ease;
}
.prototype-status-filters button svg { width: 11px; height: 11px; flex: 0 0 auto; }
.prototype-status-filters button:hover { border-color: var(--moss-dark); background: rgba(34,75,57,.08); }
.prototype-status-filters button:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.prototype-status-filters button[aria-pressed="true"] { border-color: var(--moss-dark); background: var(--moss-dark); color: var(--white); }
.prototype-map-legend { margin-top: auto; padding-top: 8px; border-top: 1px solid var(--line); }
.prototype-map-legend > strong { display: block; margin-bottom: 6px; color: rgba(23,35,30,.64); font-size: .56rem; letter-spacing: .1em; text-transform: uppercase; }
.map-v07-icon-overview { display: grid; gap: 6px; }
.map-v07-icon-overview ul { margin: 0; padding: 0; list-style: none; }
.map-v07-category-overview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 8px; }
.map-v07-category-overview li { display: flex; min-width: 0; align-items: center; gap: 6px; color: var(--ink-soft); font-size: .58rem; line-height: 1.15; }
.map-v07-category-overview li > span { display: grid; width: 19px; height: 19px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: var(--v07-category-color); color: var(--white); }
.map-v07-category-overview svg { width: 11px; height: 11px; }
.map-v07-icon-overview > strong { margin-top: 2px; color: rgba(23,35,30,.58); font-size: .5rem; letter-spacing: .09em; text-transform: uppercase; }
.map-v07-status-overview { display: flex; flex-wrap: wrap; gap: 5px; }
.map-v07-status-overview li,
.map-v07-status-badges > span { display: inline-flex; align-items: center; gap: 4px; padding: 3px 6px; border: 1px solid rgba(34,75,57,.24); border-radius: 999px; color: var(--moss-dark); font-size: .5rem; font-weight: 760; line-height: 1.1; }
.map-v07-status-overview svg,
.map-v07-status-badges svg { width: 11px; height: 11px; flex: 0 0 auto; }
.map-v07-status-badges { display: flex; flex-wrap: wrap; gap: 5px; }
.map-v07-preview-flags { display: flex; flex-wrap: wrap; gap: 4px; }
.map-v07-preview-flags > span { display: inline-flex; align-items: center; gap: 3px; padding: 2px 5px; border: 1px dashed rgba(145,88,54,.48); border-radius: 999px; color: #79523d; font-size: .46rem; font-weight: 760; line-height: 1.1; }
.map-v07-preview-flags svg { width: 9px; height: 9px; }
.prototype-map-mobile-detail { display: none; }
.prototype-map-info-column > .prototype-poi-detail { position: absolute; inset: 0; }
.prototype-poi-detail {
  position: static;
  z-index: 44;
  display: flex;
  width: 100%;
  height: 100%;
  min-height: 0;
  flex-direction: column;
  overflow: auto;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--ink);
  pointer-events: auto;
  text-align: left;
}
.prototype-poi-detail:focus { outline: none; }
.prototype-poi-detail:focus-visible { outline: 3px solid var(--gold); outline-offset: -3px; }
.prototype-poi-detail-image { margin: 0; border-bottom: 1px solid var(--line); }
.prototype-poi-detail-image img { display: block; width: 100%; height: 118px; object-fit: cover; }
.prototype-poi-detail-image figcaption { padding: 4px 10px; color: rgba(23,35,30,.58); font-size: .48rem; line-height: 1.25; }
.prototype-poi-detail-inner { display: grid; gap: 8px; padding: 12px; }
.prototype-poi-detail header { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 12px; }
.prototype-poi-detail header p { margin: 0 0 4px; color: var(--clay); font-size: .55rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.prototype-poi-category { display: flex; align-items: center; gap: 5px; }
.prototype-poi-category svg { width: 13px; height: 13px; flex: 0 0 auto; }
.prototype-poi-detail h3 { margin: 0; font-size: 1.08rem; line-height: 1.08; }
.prototype-poi-detail header button,
.prototype-filter-sheet header button {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(23,35,30,.24);
  border-radius: 50%;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
}
.prototype-poi-detail header button:hover,
.prototype-poi-detail header button:focus-visible,
.prototype-filter-sheet header button:hover,
.prototype-filter-sheet header button:focus-visible { border-color: var(--ink); background: var(--ink); color: var(--white); }
.prototype-poi-description { margin: 0; color: var(--ink-soft); font-size: .72rem; line-height: 1.42; }
.prototype-poi-partner-label { margin: 0; color: var(--moss-dark); font-size: .59rem; font-weight: 780; line-height: 1.3; }
.prototype-poi-detail-line { display: grid; gap: 2px; padding-top: 8px; border-top: 1px solid var(--line); }
.prototype-poi-detail-line strong { font-size: .56rem; letter-spacing: .05em; text-transform: uppercase; }
.prototype-poi-detail-line p { margin: 0; color: var(--ink-soft); font-size: .65rem; line-height: 1.4; }
.prototype-poi-tour-links { display: grid; gap: 5px; padding-top: 8px; border-top: 1px solid var(--line); }
.prototype-poi-tour-links > strong { font-size: .56rem; letter-spacing: .05em; text-transform: uppercase; }
.prototype-poi-tour-links > div { display: grid; gap: 5px; }
.prototype-poi-tour-links a {
  display: grid;
  min-height: 38px;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 6px 9px;
  border: 1px solid rgba(42, 83, 56, .38);
  border-radius: 7px;
  color: var(--moss-dark);
  font-size: .61rem;
  line-height: 1.22;
}
.prototype-poi-tour-links a:hover,
.prototype-poi-tour-links a:focus-visible { border-color: var(--moss-dark); background: rgba(42, 83, 56, .08); }
.prototype-poi-tour-links a > span { display: grid; min-width: 0; gap: 1px; font-weight: 720; }
.prototype-poi-tour-links small { color: var(--ink-soft); font-size: .48rem; font-weight: 760; letter-spacing: .07em; text-transform: uppercase; }
.prototype-poi-tour-links b { white-space: nowrap; font-size: .56rem; font-weight: 800; }
.prototype-poi-cta {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 1px;
  padding: 8px 11px;
  border-radius: 999px;
  background: var(--moss-dark);
  color: var(--white);
  font-size: .66rem;
  font-weight: 760;
}
.prototype-poi-cta:hover,
.prototype-poi-cta:focus-visible { background: var(--ink); }
.prototype-poi-cta.is-secondary { margin-top: -3px; border: 1px solid var(--moss-dark); background: transparent; color: var(--moss-dark); }
.prototype-poi-cta.is-secondary:hover,
.prototype-poi-cta.is-secondary:focus-visible { background: var(--moss-dark); color: var(--white); }
.routes-map-level-buttons strong { display: flex; align-items: center; gap: 7px; }
.prototype-scope-icons { display: inline-flex; min-width: 30px; align-items: center; gap: 2px; }
.prototype-scope-icons svg { width: 14px; height: 14px; }
.home-local-map-partner-label { display: block; margin-top: 7px; color: var(--moss-dark); font-size: .67rem; font-weight: 760; }
.home-local-map-category { display: flex; align-items: center; gap: 6px; }
.home-local-map-category svg { width: 14px; height: 14px; }
.home-local-map-info-copy .map-v07-status-badges { margin-top: 8px; }
.routes-overview-map:has(.prototype-map-mobile-detail .prototype-poi-detail) .route-map-placeholder-action { opacity: 0; pointer-events: none; }
.routes-overview-map:has(.prototype-filter-sheet) .route-map-placeholder-action { opacity: 0; pointer-events: none; }
.prototype-filter-overlay { position: absolute; z-index: 58; inset: 0; display: none; pointer-events: auto; }
.prototype-filter-backdrop { position: absolute; inset: 0; padding: 0; border: 0; background: rgba(10,24,18,.38); cursor: default; }
.prototype-filter-sheet {
  position: absolute;
  right: 8px;
  bottom: 8px;
  left: 8px;
  display: grid;
  max-height: calc(100% - 16px);
  gap: 14px;
  padding: 14px;
  overflow: auto;
  border: 1px solid rgba(23,35,30,.24);
  border-radius: 8px;
  background: var(--paper);
  box-shadow: 0 16px 46px rgba(10,24,18,.28);
}
.prototype-filter-sheet:focus { outline: none; }
.prototype-filter-sheet:focus-visible { outline: 3px solid var(--gold); outline-offset: -3px; }
.prototype-filter-sheet > header { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.prototype-filter-sheet > header strong { font-size: 1rem; }
.prototype-filter-sheet .prototype-filter-groups { gap: 12px; }
.prototype-filter-sheet .prototype-filter-group legend { float: none; display: block; min-width: 0; margin-bottom: 7px; padding: 0; }
.prototype-filter-sheet .prototype-filter-options { gap: 6px; }
.prototype-filter-sheet .prototype-filter-options:not(.prototype-filter-checkbox-options) span { min-height: 30px; padding-inline: 11px; font-size: .68rem; }
.prototype-filter-sheet .prototype-filter-checkbox-options label { min-height: 44px; padding: 8px 10px; }
.prototype-filter-sheet .prototype-filter-checkbox-options span { min-height: 0; padding: 0; font-size: .68rem; }
.prototype-filter-sheet .prototype-status-filters { padding-top: 0; border-top: 0; }
.prototype-filter-sheet .prototype-status-filters legend { margin-bottom: 7px; }
.prototype-filter-sheet .prototype-status-filters button { min-height: 44px; padding: 8px 11px; font-size: .68rem; }
.prototype-filter-apply { min-height: 38px; padding: 8px 14px; border: 0; border-radius: 999px; background: var(--moss-dark); color: var(--white); cursor: pointer; font-size: .72rem; font-weight: 760; }
.prototype-filter-apply:hover,
.prototype-filter-apply:focus-visible { background: var(--ink); }
.prototype-map-dialog-workspace { display: grid; width: 100%; height: 100%; min-height: 0; grid-template-rows: auto minmax(0, 1fr); padding: 0; }
.prototype-map-dialog-body { display: grid; min-width: 0; min-height: 0; grid-template-columns: minmax(0, 1fr) minmax(240px, 28%); align-items: center; background: #e5e2d3; }
.prototype-map-dialog-body > .geo-map-canvas { width: 100%; height: auto; max-height: 100%; aspect-ratio: var(--map-frame-aspect); }
.prototype-map-dialog-body.is-expanded { position: relative; align-items: stretch; }
.prototype-map-dialog-body.is-expanded::after {
  position: absolute;
  z-index: 40;
  inset: 0;
  border-block: 1px solid var(--line);
  content: "";
  pointer-events: none;
}
.prototype-map-dialog-body.is-expanded > .geo-map-canvas { height: 100%; max-height: none; aspect-ratio: auto; }
.prototype-map-dialog-body > .prototype-map-info-column { align-self: stretch; }
.route-map-dialog-canvas > .prototype-map-dialog-workspace { max-width: none; padding: 0; }
.highlight-routes-section { padding-block: 58px 42px; scroll-margin-top: 94px; border-bottom: 1px solid var(--line); background: var(--paper); }
.highlight-routes-heading { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(340px, .75fr); align-items: end; gap: clamp(44px, 7vw, 112px); margin-bottom: 22px; }
.highlight-routes-heading h2 { margin: 8px 0 0; font-size: clamp(2.4rem, 3.6vw, 4.2rem); }
.highlight-routes-heading > p { max-width: 540px; margin: 0; color: var(--ink-soft); font-size: 1rem; line-height: 1.5; }
.highlight-routes-preview { display: grid; min-height: 400px; height: clamp(400px, 31vw, 460px); grid-template-columns: minmax(360px, 38%) minmax(0, 62%); overflow: hidden; border: 1px solid var(--line); background: var(--white); }
.highlight-route-copy { display: flex; min-width: 0; flex-direction: column; padding: 26px 30px 22px; animation: highlight-route-fade .38s ease both; }
.highlight-route-count { margin-bottom: 11px; color: var(--moss); font-size: .741rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.highlight-route-copy h3 { margin: 0 0 10px; font-size: clamp(2rem, 2.7vw, 3.2rem); line-height: .96; }
.highlight-route-summary { max-width: 480px; margin-bottom: 14px; color: var(--ink-soft); font-size: .91rem; line-height: 1.45; }
.highlight-route-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 0 15px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.highlight-route-facts div { min-width: 0; padding: 9px 10px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.highlight-route-facts dt { margin-bottom: 4px; color: var(--ink-soft); font-size: .62rem; letter-spacing: .07em; text-transform: uppercase; }
.highlight-route-facts dd { margin: 0; overflow-wrap: anywhere; font-size: .78rem; font-weight: 700; line-height: 1.25; }
.highlight-route-dossier { width: fit-content; min-height: 31px; align-self: flex-start; gap: 5px; padding: 4px 10px; border: 1px solid var(--ink); border-radius: 999px; background: transparent; font-size: .68rem; line-height: 1; }
.highlight-route-dossier:hover { border-color: var(--moss); color: var(--moss); transform: none; }
.highlight-route-dossier-arrow { display: inline-flex; align-items: center; align-self: center; line-height: 1; }
.highlight-route-controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 10px; }
.highlight-route-controls > button { display: grid; width: 28px; height: 28px; place-items: center; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--ink); cursor: pointer; }
.highlight-route-controls > button:hover,
.highlight-route-controls > button:focus-visible { background: transparent; color: var(--moss); }
.highlight-route-controls > div { display: flex; align-items: center; gap: 8px; }
.highlight-route-controls > div button { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 50%; background: rgba(23,35,30,.25); cursor: pointer; }
.highlight-route-controls > div button.is-active { width: 18px; border-radius: 999px; background: var(--moss); }
.highlight-route-map { position: relative; min-width: 0; height: 100%; overflow: hidden; border-left: 1px solid var(--line); background: #dce3d5; animation: highlight-route-fade .38s ease both; }
.highlight-route-map iframe { display: block; width: 100%; height: 100%; border: 0; }
.highlight-route-consent { position: relative; display: grid; height: 100%; place-items: center; overflow: hidden; padding: 28px; text-align: center; }
.highlight-route-preview-image { z-index: 0; object-fit: cover; filter: grayscale(.32) saturate(.66); opacity: .72; }
.highlight-route-consent-shade { position: absolute; z-index: 1; inset: 0; background: rgba(220,227,213,.24); }
.highlight-route-consent-content { position: relative; z-index: 2; display: flex; width: min(94%, 450px); align-items: center; flex-direction: column; gap: 11px; padding: 0; }
.highlight-route-consent-content .button { min-width: 220px; justify-content: center; }
.highlight-route-consent-content .button.primary { border-color: var(--ink); background: rgba(251,250,246,.6); color: var(--ink); }
.highlight-route-consent-content .button.primary:hover { background: rgba(251,250,246,.78); }
.highlight-route-consent-content small { max-width: 390px; color: rgba(23,35,30,.8); font-size: .7rem; line-height: 1.4; }
.highlight-route-consent-content > a { color: rgba(23,35,30,.9); font-size: .7rem; font-weight: 700; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.highlight-route-map-credit { position: absolute; z-index: 2; right: 7px; bottom: 7px; max-width: calc(100% - 14px); padding: 3px 5px; background: rgba(251,250,246,.8); color: rgba(23,35,30,.72); font-size: .52rem; line-height: 1.15; text-align: right; }
@keyframes highlight-route-fade { from { opacity: .3; } to { opacity: 1; } }
.routes-catalog { padding-block: 72px 138px; }
.routes-catalog { scroll-margin-top: 100px; }
.routes-catalog .path-group { scroll-margin-top: 110px; }

/* Ziele & Touren: vorhandene Module bilden lokale Scrollkapitel; Tablet und Mobile bleiben unverändert. */
@media (min-width: 981px) {
  .routes-overview-page .routes-scroll-chapter { scroll-margin-top: 92px; }
  .routes-overview-page .routes-scroll-chapter-highlight {
    display: flex;
    min-height: calc(90svh - 83px);
    align-items: center;
  }
  .routes-overview-page .routes-scroll-chapter-highlight > .highlight-routes-section {
    display: flex;
    width: 100%;
    min-height: inherit;
    align-items: center;
  }
  .routes-overview-page .routes-scroll-chapter-final > .route-next { margin-bottom: 24px; }
}
.path-tile .path-tile-route-status { display: block; margin-top: 5px; color: rgba(255,255,255,.5); font-size: .64rem; font-weight: 400; line-height: 1.2; letter-spacing: .015em; }

@media (min-width: 981px) and (min-height: 700px) {
  .routes-overview-intro { height: auto; min-height: calc(100svh - 94px); overflow: visible; padding-top: clamp(14px, 2vh, 22px); }
  .routes-overview-intro > .shell { display: grid; min-height: 0; flex: 1; grid-template-rows: auto minmax(0, 1fr); }
  .routes-overview-intro .breadcrumbs { align-self: start; }
  .routes-overview-workspace { align-self: center; gap: 6px; padding-top: 4px; }
  .routes-overview-copy h1 { margin: 2px 0 0; font-size: clamp(2.75rem, 3.75vw, 4.25rem); line-height: .92; }
  .routes-overview-lead { font-size: clamp(.8rem, .9vw, .94rem); line-height: 1.46; }
  .routes-chapter-band { margin-top: 0; }
  .routes-chapter-nav a { min-height: clamp(76px, 9.5vh, 94px); gap: 4px 12px; padding: clamp(10px, 1.25vh, 14px) 18px; }
  .routes-chapter-nav strong { font-size: clamp(.78rem, .92vw, .94rem); }
  .routes-chapter-nav small { font-size: clamp(.65rem, .75vw, .76rem); }
  .routes-map-panel { min-height: 0; margin-top: 0; }
  .routes-map-panel-heading h2 { margin-bottom: 5px; font-size: clamp(1.35rem, 1.65vw, 1.8rem); }
  .routes-map-module { height: auto; }
  .routes-overview-map { height: auto; min-height: 0; aspect-ratio: auto; }
}

.apartment-detail-hero { padding-block: 50px 100px; background: var(--ink); color: var(--white); }
.back-link { display: inline-block; margin-bottom: 52px; color: rgba(255,255,255,.72); font-size: .988rem; text-decoration: underline; text-underline-offset: 4px; }
.apartment-detail-hero-grid { display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: 7vw; }
.apartment-detail-hero .kicker { color: #a8c5ad; }
.apartment-detail-hero h1 { margin: 20px 0 12px; font-size: clamp(3.5rem, 6vw, 7rem); }
.apartment-subtitle { color: #e0bc7b; font-size: 1.1rem; font-weight: 700; }
.apartment-detail-hero .large-copy { color: rgba(255,255,255,.75); }
.apartment-detail-hero figure { margin: 0; }
.apartment-hero-gallery-frame { position: relative; aspect-ratio: 3 / 2; }
.apartment-detail-hero figure img { width: 100%; height: 100%; object-fit: cover; }
.apartment-detail-hero figcaption { display: flex; justify-content: space-between; gap: 18px; padding-top: 10px; color: rgba(255,255,255,.58); font-size: .884rem; }
.apartment-detail-hero figcaption span:last-child { flex: 0 0 auto; font-variant-numeric: tabular-nums; }
.apartment-hero-gallery-placeholder { display: grid; width: 100%; height: 100%; align-content: center; justify-items: center; padding: 32px; overflow: hidden; background: linear-gradient(135deg, rgba(255,255,255,.055), transparent 54%), #29332f; color: rgba(255,255,255,.64); text-align: center; }
.apartment-hero-gallery-placeholder::before { position: absolute; inset: 18px; border: 1px solid rgba(255,255,255,.14); content: ""; }
.apartment-hero-gallery-placeholder > span { z-index: 1; display: grid; min-width: 48px; min-height: 30px; place-items: center; margin-bottom: 14px; border: 1px solid rgba(213,218,215,.48); border-radius: 999px; font-size: .78rem; font-weight: 700; letter-spacing: .1em; }
.apartment-hero-gallery-placeholder > p { z-index: 1; margin: 0; font-size: clamp(.9rem, 1vw, 1.05rem); }
.apartment-gallery-control { position: absolute; top: 50%; display: grid; width: 40px; height: 40px; place-items: center; padding: 0; transform: translateY(-50%); border: 1px solid rgba(255,255,255,.52); border-radius: 999px; background: rgba(23,35,30,.46); color: rgba(255,255,255,.9); cursor: pointer; backdrop-filter: blur(3px); transition: border-color .18s ease, background .18s ease, color .18s ease; }
.apartment-gallery-control:hover { border-color: rgba(255,255,255,.82); background: rgba(23,35,30,.7); color: var(--white); }
.apartment-gallery-control:focus-visible { outline: 2px solid var(--white); outline-offset: 3px; }
.apartment-gallery-control-previous { left: 12px; }
.apartment-gallery-control-next { right: 12px; }
.apartment-gallery-control span { transform: translateY(-1px); font-size: 1.12rem; line-height: 1; }
.apartment-perspective-intro { padding-block: 72px 18px; }
.apartment-perspective-intro .kicker { margin-bottom: 20px; }
.apartment-perspective-copy { max-width: 980px; margin: 0; color: var(--ink-soft); font-size: clamp(1.18rem, 1.55vw, 1.55rem); line-height: 1.58; }
.apartment-details-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.apartment-details-grid article { min-height: 420px; padding: 42px; background: var(--white); }
.apartment-details-grid h2 { margin: 44px 0 26px; }
.apartment-details-grid ul { margin: 0; padding: 0; list-style: none; }
.apartment-details-grid li { padding: 14px 0; border-top: 1px solid var(--line); color: var(--ink-soft); font-size: 1.144rem; }
.apartment-details-grid .large-copy { color: var(--ink-soft); }
.apartment-development-section { padding-block: 72px 120px; }
.apartment-development-heading { display: grid; margin: 0 auto 38px; grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr); align-items: end; gap: 20px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.apartment-development-heading h2 { margin: 0; font-size: clamp(2.8rem, 4.8vw, 5.6rem); text-align: right; }
.apartment-future-heading { margin-top: 68px; }
.apartment-development-grid { display: grid; margin-inline: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.apartment-development-card { margin: 0; border: 1px solid var(--line); background: var(--white); }
.apartment-development-media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--paper-deep); }
.apartment-development-media > img { width: 100%; height: 100%; object-fit: cover; }
.apartment-development-placeholder { display: grid; align-content: center; justify-items: center; padding: 38px; background: linear-gradient(135deg, rgba(66,100,72,.09), transparent 52%), var(--paper-deep); color: var(--ink-soft); text-align: center; }
.apartment-development-placeholder::before { position: absolute; inset: 24px; border: 1px solid rgba(23,35,30,.14); content: ""; }
.apartment-development-placeholder > span { z-index: 1; display: grid; min-width: 54px; min-height: 34px; place-items: center; margin-bottom: 18px; border: 1px solid var(--moss); border-radius: 999px; color: var(--moss-dark); font-size: .91rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.apartment-development-placeholder > p { z-index: 1; max-width: 320px; margin: 0; font-size: 1.1rem; line-height: 1.45; }
.development-badge { position: absolute; right: 18px; bottom: 18px; max-width: calc(100% - 36px); padding: 9px 12px; border-radius: 999px; background: rgba(23,35,30,.9); color: var(--white); font-size: .82rem; font-weight: 700; line-height: 1.25; }
.apartment-development-card figcaption { display: flex; min-height: 104px; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 22px 24px; border-top: 1px solid var(--line); }
.apartment-development-card figcaption strong { font-size: 1.18rem; }
.apartment-development-card figcaption span { flex: 0 1 44%; min-width: 0; color: rgba(45,61,53,.72); font-size: .84rem; font-weight: 400; line-height: 1.4; overflow-wrap: break-word; text-align: right; }
.apartment-signature-section { padding-bottom: 120px; }
.apartment-signature-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.apartment-signature-grid article { min-height: 210px; padding: 32px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(251,250,246,.45); }
.apartment-signature-grid article > p:last-child { margin: 38px 0 0; color: var(--ink-soft); }
.apartment-signature-card-layout { display: grid; min-height: 340px; grid-template-columns: minmax(140px, .72fr) minmax(0, 1.28fr); gap: clamp(20px, 2vw, 32px); margin-top: 24px; }
.apartment-signature-portrait { width: 100%; height: 100%; min-height: 0; object-fit: cover; object-position: center; }
.apartment-signature-card-copy { display: flex; min-width: 0; align-items: flex-start; flex-direction: column; gap: 24px; }
.apartment-signature-card-copy h3 { margin: 0 0 9px; font-size: clamp(1.2rem, 1.45vw, 1.55rem); }
.apartment-signature-card-copy p { margin: 0; color: var(--ink-soft); font-size: .98rem; line-height: 1.48; }
.apartment-signature-button { margin-top: auto; min-height: 44px; padding: 10px 17px; font-size: .88rem; }
.accessibility-disclosure { margin-top: 20px; border: 1px solid var(--line); background: var(--white); }
.accessibility-disclosure > summary { display: flex; min-height: 58px; align-items: center; justify-content: space-between; padding: 16px 20px; cursor: pointer; font-size: 1.066rem; font-weight: 700; list-style: none; }
.accessibility-disclosure > summary::-webkit-details-marker { display: none; }
.accessibility-disclosure > summary::after { content: "+"; color: var(--moss); font-size: 1.25rem; }
.accessibility-disclosure[open] > summary::after { content: "−"; }
.accessibility-disclosure > div { padding: 22px 20px 24px; border-top: 1px solid var(--line); }
.accessibility-disclosure > div p { max-width: 920px; margin: 10px 0 0; color: var(--ink-soft); }
.accessibility-disclosure > div small { display: block; margin-top: 14px; color: var(--ink-soft); }
.booking-preview { display: grid; grid-template-columns: .9fr 1.1fr; gap: 8vw; }
.booking-preview h2 { margin: 18px 0; }
.booking-preview > div > p:not(.kicker) { color: var(--ink-soft); }
.booking-preview > div > a { font-size: 1.014rem; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.booking-preview fieldset { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 0; padding: 32px; border: 1px solid var(--line); background: var(--white); }
.booking-preview label { display: grid; gap: 8px; color: var(--ink-soft); font-size: .936rem; font-weight: 700; }
.booking-preview input, .booking-preview select { min-height: 48px; padding: 10px 12px; border: 1px solid var(--line); background: var(--paper); color: var(--ink-soft); }
.booking-preview label:nth-child(3), .booking-preview button { grid-column: 1 / -1; }
.booking-preview button { min-height: 52px; border: 0; border-radius: 999px; background: var(--ink); color: var(--white); font-weight: 700; opacity: .62; }

/* Wohnungsdetails als Folge klarer, bildschirmfüllender Kapitel. */
html:has(main.apartment-snap) { scroll-padding-top: 94px; }
.apartment-chapter { position: relative; scroll-snap-align: start; scroll-snap-stop: always; }
.apartment-story-chapter, .apartment-final-chapter { background: var(--paper); }
.apartment-final-chapter > .booking-preview { padding-block: 64px; }

@media (min-width: 981px) and (min-height: 700px) {
  html:has(main.apartment-snap) { scroll-snap-type: y mandatory; }
  .apartment-snap > .apartment-chapter { height: calc(100svh - 94px); min-height: calc(100svh - 94px); overflow: clip; }

  .apartment-intro-chapter { display: grid; grid-template-rows: minmax(0, 2fr) minmax(0, .85fr); background: var(--paper); }
  .apartment-intro-chapter > .apartment-detail-hero { display: flex; min-height: 0; align-items: center; padding-block: clamp(18px, 3vh, 34px); }
  .apartment-intro-chapter .back-link { margin-bottom: clamp(14px, 2vh, 24px); }
  .apartment-intro-chapter .apartment-detail-hero-grid { gap: 5vw; }
  .apartment-intro-chapter .apartment-detail-hero h1 { margin: 10px 0 8px; font-size: clamp(3.2rem, 4.8vw, 5.5rem); }
  .apartment-intro-chapter .apartment-detail-hero .large-copy { margin-block: 8px; font-size: clamp(.94rem, 1.15vw, 1.12rem); line-height: 1.48; }
  .apartment-intro-chapter .apartment-hero-gallery-frame { max-height: 36vh; }
  .apartment-intro-chapter .apartment-detail-hero figcaption { padding-top: 6px; font-size: .72rem; }
  .apartment-intro-chapter .apartment-hero-gallery figcaption { max-width: 54vh; }
  .apartment-intro-chapter .apartment-perspective-intro { display: grid; min-height: 0; align-content: center; padding-block: clamp(18px, 2.7vh, 28px) 56px; }
  .apartment-intro-chapter .apartment-perspective-intro .kicker { margin-bottom: 10px; }
  .apartment-intro-chapter .apartment-perspective-copy { max-width: 1120px; font-size: clamp(.88rem, 1.05vw, 1.08rem); line-height: 1.48; }

  .apartment-development-chapter > .apartment-development-section { display: grid; height: 100%; grid-template-rows: auto minmax(0, 1fr) auto minmax(0, 1fr); gap: clamp(8px, 1.2vh, 14px); padding-block: clamp(16px, 2.2vh, 24px) 56px; }
  .apartment-development-chapter .apartment-development-heading { margin: 0; padding-bottom: clamp(7px, 1vh, 11px); }
  .apartment-development-chapter .apartment-development-heading h2 { font-size: clamp(2rem, 3.1vw, 3.6rem); }
  .apartment-development-chapter .apartment-future-heading { margin-top: 0; }
  .apartment-development-chapter .apartment-development-grid { width: 100%; min-height: 0; gap: clamp(12px, 1.4vw, 22px); }
  .apartment-development-chapter .apartment-development-card { display: grid; min-height: 0; grid-template-rows: minmax(0, 1fr) auto; }
  .apartment-development-chapter .apartment-development-media { height: 100%; min-height: 0; aspect-ratio: auto; }
  .apartment-development-chapter .apartment-development-placeholder { padding: 20px; }
  .apartment-development-chapter .apartment-development-placeholder::before { inset: 14px; }
  .apartment-development-chapter .apartment-development-placeholder > span { min-width: 40px; min-height: 26px; margin-bottom: 8px; font-size: .7rem; }
  .apartment-development-chapter .apartment-development-placeholder > p { font-size: clamp(.72rem, .82vw, .84rem); }
  .apartment-development-chapter .apartment-development-card figcaption { min-height: 0; padding: clamp(9px, 1.2vh, 13px) 16px; }
  .apartment-development-chapter .apartment-development-card figcaption strong { font-size: clamp(.78rem, .9vw, .92rem); }
  .apartment-development-chapter .apartment-development-card figcaption span { font-size: .68rem; }
  .apartment-development-chapter .development-badge { right: 10px; bottom: 10px; padding: 6px 9px; font-size: .64rem; }

  .apartment-story-chapter { overflow-x: clip; overflow-y: auto; }
  .apartment-story-chapter-inner { display: grid; height: 100%; min-height: 0; grid-template-rows: auto minmax(0, 1fr); gap: clamp(56px, 7vh, 72px); padding-block: clamp(16px, 2.2vh, 24px) 56px; }
  .apartment-story-chapter .apartment-details-grid { min-height: 0; gap: 14px; }
  .apartment-story-chapter .apartment-details-grid article { min-height: 0; padding: clamp(15px, 1.7vw, 24px); }
  .apartment-story-chapter .apartment-details-grid h2 { margin: clamp(7px, 1vh, 11px) 0 8px; font-size: clamp(1.85rem, 2.7vw, 2.85rem); }
  .apartment-story-chapter .apartment-details-grid li { padding: clamp(4px, .6vh, 7px) 0; font-size: clamp(.7rem, .82vw, .84rem); }
  .apartment-story-chapter .apartment-details-grid .large-copy { margin: 0; font-size: clamp(.74rem, .87vw, .88rem); line-height: 1.4; }
  .apartment-story-chapter .apartment-signature-section { display: grid; min-height: 0; align-content: start; grid-template-rows: auto auto auto; padding-bottom: 0; }
  .apartment-story-chapter .apartment-signature-section .section-heading { margin-bottom: clamp(12px, 1.8vh, 18px); }
  .apartment-story-chapter .apartment-signature-section .split-heading { gap: 6vw; }
  .apartment-story-chapter .apartment-signature-section .split-heading h2 { margin-top: 8px; font-size: clamp(2rem, 3.15vw, 3.5rem); }
  .apartment-story-chapter .apartment-signature-section .split-heading > p { margin: 0; font-size: clamp(.75rem, .9vw, .9rem); line-height: 1.45; }
  .apartment-story-chapter .apartment-signature-grid { height: clamp(300px, 40vh, 380px); min-height: 0; }
  .apartment-story-chapter .apartment-signature-grid article { min-height: 0; padding: clamp(14px, 1.6vw, 22px); }
  .apartment-story-chapter .apartment-signature-grid article > p:last-child { margin-top: 12px; font-size: clamp(.72rem, .84vw, .86rem); line-height: 1.42; }
  .apartment-story-chapter .apartment-signature-card-layout { min-height: clamp(210px, 27vh, 290px); gap: clamp(13px, 1.35vw, 20px); margin-top: 10px; }
  .apartment-story-chapter .apartment-signature-card-copy { gap: clamp(10px, 1.5vh, 16px); }
  .apartment-story-chapter .apartment-signature-card-copy h3 { margin-bottom: 5px; font-size: clamp(.88rem, 1.08vw, 1.08rem); }
  .apartment-story-chapter .apartment-signature-card-copy p { font-size: clamp(.66rem, .78vw, .8rem); line-height: 1.4; }
  .apartment-story-chapter .apartment-signature-button { min-height: 36px; padding: 7px 12px; font-size: .68rem; }
  .apartment-story-chapter .accessibility-disclosure { margin-top: 10px; }
  .apartment-story-chapter .accessibility-disclosure > summary { min-height: 42px; padding: 9px 14px; font-size: .78rem; }
  .apartment-story-chapter .accessibility-disclosure > div { padding: 12px 14px 14px; font-size: .78rem; }

  .apartment-final-chapter { display: grid; grid-template-rows: minmax(0, 1fr) auto; overflow-x: clip; overflow-y: auto; }
  .apartment-final-chapter > .booking-preview { align-content: center; grid-template-columns: 1fr; gap: clamp(28px, 4vh, 44px); padding-block: clamp(42px, 6vh, 68px); }
  .apartment-final-chapter .booking-preview > div { max-width: 980px; }
  .apartment-final-chapter .booking-preview h2 { margin: 10px 0; font-size: clamp(3rem, 4.2vw, 4.65rem); }
  .apartment-final-chapter .booking-preview > div > p:not(.kicker) { max-width: 860px; margin-block: 10px; font-size: clamp(.95rem, 1.08vw, 1.1rem); line-height: 1.5; }
  .apartment-final-chapter .booking-preview > div > a { font-size: .94rem; }
  .apartment-final-chapter .booking-preview fieldset { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; padding: 28px; }
  .apartment-final-chapter .booking-preview label { gap: 7px; font-size: .84rem; }
  .apartment-final-chapter .booking-preview input,
  .apartment-final-chapter .booking-preview select { min-height: 50px; padding: 10px 12px; font-size: .9rem; }
  .apartment-final-chapter .booking-preview label:nth-child(3) { grid-column: auto; }
  .apartment-final-chapter .booking-preview button { min-height: 68px; grid-column: 1 / -1; font-size: 1.02rem; }
  .apartment-final-chapter > .site-footer-embedded { grid-template-columns: minmax(250px, 1fr) minmax(360px, 1.15fr); align-items: start; gap: 24px; padding: 13px 28px 15px; }
  .apartment-final-chapter > .site-footer-embedded .kicker { font-size: .58rem; }
  .apartment-final-chapter > .site-footer-embedded p:last-child { margin-top: 4px; font-size: .66rem; line-height: 1.3; }
  .apartment-final-chapter > .site-footer-embedded .footer-links { gap: 8px 16px; font-size: .64rem; }
}

/* Breite Laptop-Displays haben oft deutlich weniger Hoehe als Desktop-Monitore.
   In diesem Bereich werden die Kapitel ueber die verfuegbare Hoehe skaliert,
   damit Karten, Buttons und Footer innerhalb des Snap-Kapitels sichtbar bleiben. */
@media (min-width: 981px) and (min-height: 700px) and (max-height: 980px) {
  .apartment-story-chapter-inner {
    grid-template-rows: auto minmax(0, 1fr);
    gap: clamp(54px, 6.8vh, 64px);
    padding-block: clamp(12px, 1.7vh, 16px) 48px;
  }
  .apartment-story-chapter .apartment-details-grid article { padding: clamp(11px, 1.35vh, 14px) 18px; }
  .apartment-story-chapter .apartment-details-grid h2 {
    margin: 5px 0 6px;
    font-size: clamp(1.72rem, 3.8vh, 2.2rem);
  }
  .apartment-story-chapter .apartment-details-grid li { padding: 3px 0; font-size: clamp(.66rem, 1.25vh, .74rem); }
  .apartment-story-chapter .apartment-details-grid .large-copy { font-size: clamp(.68rem, 1.3vh, .78rem); line-height: 1.32; }
  .apartment-story-chapter .apartment-signature-section { grid-template-rows: auto auto auto; }
  .apartment-story-chapter .apartment-signature-section .section-heading { margin-bottom: clamp(6px, .9vh, 9px); }
  .apartment-story-chapter .apartment-signature-section .split-heading h2 {
    margin-top: 5px;
    font-size: clamp(1.82rem, 4.15vh, 2.35rem);
    line-height: .96;
  }
  .apartment-story-chapter .apartment-signature-section .split-heading > p {
    font-size: clamp(.68rem, 1.35vh, .78rem);
    line-height: 1.35;
  }
  .apartment-story-chapter .apartment-signature-grid article {
    display: grid;
    min-height: 0;
    grid-template-rows: auto minmax(0, 1fr);
    padding: clamp(10px, 1.4vh, 13px) 14px;
  }
  .apartment-story-chapter .apartment-signature-card-layout {
    height: 100%;
    min-height: 0;
    grid-template-columns: minmax(155px, .78fr) minmax(0, 1.22fr);
    gap: clamp(10px, 1.15vw, 15px);
    margin-top: 7px;
  }
  .apartment-story-chapter .apartment-signature-card-copy { gap: clamp(7px, 1vh, 10px); }
  .apartment-story-chapter .apartment-signature-card-copy h3 { margin-bottom: 3px; font-size: clamp(.82rem, 1.65vh, .94rem); }
  .apartment-story-chapter .apartment-signature-card-copy p { font-size: clamp(.62rem, 1.25vh, .72rem); line-height: 1.32; }
  .apartment-story-chapter .apartment-signature-button { min-height: 32px; padding: 5px 10px; font-size: .64rem; }
  .apartment-story-chapter .accessibility-disclosure { margin-top: 7px; }
  .apartment-story-chapter .accessibility-disclosure > summary { min-height: 38px; padding: 7px 12px; font-size: .7rem; }

  .apartment-final-chapter > .booking-preview {
    grid-template-columns: 1fr;
    gap: clamp(26px, 3.6vh, 34px);
    padding-block: clamp(30px, 4.4vh, 42px);
  }
  .apartment-final-chapter .booking-preview h2 { margin: 8px 0; font-size: clamp(2.85rem, 6.2vh, 3.75rem); }
  .apartment-final-chapter .booking-preview > div > p:not(.kicker) { margin-block: 8px; font-size: clamp(.9rem, 1.85vh, 1.02rem); line-height: 1.44; }
  .apartment-final-chapter .booking-preview > div > a { font-size: .88rem; }
  .apartment-final-chapter .booking-preview fieldset { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; padding: 30px; }
  .apartment-final-chapter .booking-preview label { gap: 6px; font-size: .8rem; }
  .apartment-final-chapter .booking-preview input,
  .apartment-final-chapter .booking-preview select { min-height: 50px; padding: 9px 11px; font-size: .86rem; }
  .apartment-final-chapter .booking-preview label:nth-child(3) { grid-column: auto; }
  .apartment-final-chapter .booking-preview button { min-height: 72px; grid-column: 1 / -1; font-size: 1.02rem; }
  .apartment-final-chapter > .site-footer-embedded { gap: 18px; padding: 9px 24px 10px; }
  .apartment-final-chapter > .site-footer-embedded p:last-child { font-size: .6rem; line-height: 1.22; }
  .apartment-final-chapter > .site-footer-embedded .footer-links { gap: 6px 13px; font-size: .59rem; }
}

@media (min-width: 641px) and (max-width: 980px) {
  .apartment-final-chapter { display: grid; grid-template-rows: minmax(0, 1fr) auto; }
  .apartment-final-chapter > .booking-preview { align-content: center; gap: 28px; padding-block: 48px; }
  .apartment-final-chapter .booking-preview > div { max-width: 760px; }
  .apartment-final-chapter .booking-preview h2 { margin: 9px 0; font-size: clamp(2.7rem, 6.8vw, 3.8rem); }
  .apartment-final-chapter .booking-preview > div > p:not(.kicker) { max-width: 720px; font-size: 1rem; line-height: 1.48; }
  .apartment-final-chapter .booking-preview > div > a { font-size: .9rem; }
  .apartment-final-chapter .booking-preview fieldset { grid-template-columns: 1fr 1fr; gap: 14px; padding: 28px; }
  .apartment-final-chapter .booking-preview label { gap: 7px; font-size: .82rem; }
  .apartment-final-chapter .booking-preview input,
  .apartment-final-chapter .booking-preview select { min-height: 48px; font-size: .86rem; }
  .apartment-final-chapter .booking-preview label:nth-child(3),
  .apartment-final-chapter .booking-preview button { grid-column: 1 / -1; }
  .apartment-final-chapter .booking-preview button { min-height: 64px; font-size: 1rem; }
}

@media (min-width: 641px) {
  .apartment-final-chapter .booking-preview button {
    width: min(100%, 15rem);
    min-height: 52px;
    justify-self: start;
    padding-inline: 24px;
    font-size: .92rem;
  }
}

@media (max-width: 980px), (max-height: 699px) {
  html:has(main.apartment-snap) { scroll-snap-type: y proximity; }
  .apartment-snap > .apartment-chapter { min-height: calc(100svh - 94px); }
  .apartment-intro-chapter .apartment-perspective-intro,
  .apartment-development-chapter .apartment-development-section,
  .apartment-story-chapter .apartment-story-chapter-inner { padding-bottom: 76px; }
}

@media (max-width: 780px) {
  .route-map-placeholder-action { right: 16px; bottom: 14px; }
  .route-map-dialog { width: calc(100vw - 20px); height: calc(100dvh - 20px); }
  .route-map-dialog-surface > header { gap: 12px; padding: 14px; }
  .route-map-dialog-surface > header h2 { font-size: 1.25rem; }
  .route-map-dialog-close { min-height: 38px; padding: 7px 10px; }
  .route-map-dialog-canvas { margin: 10px; }
  .route-map-dialog-canvas > div { padding: 24px 18px; }
}

@media (max-width: 1180px) {
  .apartment-gallery-control-previous { left: 12px; }
  .apartment-gallery-control-next { right: 12px; }
}

.closing { padding-block: 150px; background: linear-gradient(130deg, var(--moss-dark), #162a21 55%, #244e57); color: var(--white); }
.closing-inner { max-width: 920px; text-align: center; }
.closing .kicker { color: #a8c5ad; }
.closing h2 { margin: 22px 0; }
.closing p:not(.kicker) { max-width: 720px; margin-inline: auto; color: rgba(255,255,255,.74); font-size: 1.25rem; }
.closing .button { margin-top: 24px; }

.partners-teaser { padding-block: 118px; background: linear-gradient(130deg, #44342b, var(--clay-dark) 58%, #233b32); color: var(--white); }
.partners-teaser .kicker { color: #e7c9a9; }
.partners-teaser-grid { display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: 9vw; }
.partners-teaser h2 { margin: 18px 0 26px; }
.partners-teaser-grid > div:first-child > p:not(.kicker) { max-width: 630px; color: rgba(255,255,255,.72); }
.partners-teaser-grid .button { margin-top: 26px; }
.partners-teaser-categories { border-top: 1px solid rgba(255,255,255,.24); }
.partners-teaser-categories a { display: grid; min-height: 82px; grid-template-columns: 48px 1fr 24px; align-items: center; gap: 16px; padding: 28px 4px; border-bottom: 1px solid rgba(255,255,255,.24); }
.partners-teaser-categories span { color: #e7c9a9; font-size: .884rem; font-weight: 700; }
.partners-teaser-categories strong { font-size: 1.05rem; }
.partners-teaser-categories i { color: rgba(255,255,255,.62); font-style: normal; }

.partners-hero { padding-block: 130px 100px; background: linear-gradient(120deg, var(--moss-dark), #102b26 58%, var(--river-dark)); color: var(--white); }
.partners-hero-grid { display: grid; grid-template-columns: 1.12fr .88fr; align-items: end; gap: clamp(70px, 7vw, 142px); }
.partners-hero .kicker { color: #b9d3c0; }
.partners-hero h1 { margin: 20px 0 0; font-size: clamp(3.8rem, 7.3vw, 8.4rem); }
.partners-hero .partners-hero-intro { width: clamp(350px, 27vw, 560px); margin: 0 0 8px; color: rgba(255,255,255,.78); font-size: clamp(1.3rem, 1.65vw, 1.98rem); line-height: 1.48; text-wrap: balance; }
@media (min-width: 1200px) {
  .partners-hero-title-lead { white-space: nowrap; }
}
.partner-level-nav { display: grid; grid-template-columns: repeat(4, 1fr); border-left: 1px solid var(--line); background: var(--paper); }
.partner-level-nav a { display: grid; min-height: 152px; grid-template-columns: 46px 1fr; align-content: center; gap: 8px 18px; padding: 26px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background .2s ease, box-shadow .2s ease; }
.partner-level-nav span { grid-row: 1 / span 2; color: var(--clay); font-size: .91rem; font-weight: 700; }
.partner-level-nav strong { font-size: 1.05rem; }
.partner-level-nav small { color: var(--ink-soft); font-size: .936rem; }
.partner-level-nav a:hover, .partner-level-nav a:focus-visible { background: var(--paper-deep); box-shadow: inset 0 4px 0 var(--clay); }
.featured-partners, .action-partners, .partner-directory-intro { padding-block: 118px; scroll-margin-top: 80px; }
.featured-partners { background: #d8e3dc; }
.featured-partner-grid { border-color: rgba(255,255,255,.22); }
.featured-partner-card { background: rgba(251,250,246,.72); color: var(--ink); }
.featured-partner-card .partner-card-topline > span:last-child,
.featured-partner-card > p,
.featured-partner-card .partner-link-pending { color: var(--ink-soft); }
.featured-partner-card .partner-link-group,
.featured-partner-card .partner-link-group > a,
.featured-partner-card .partner-link-pending { border-color: rgba(27,48,38,.09); }
.featured-partner-card .partner-link-group > strong { color: var(--ink-soft); }
.featured-partner-card .partner-link-group > a,
.featured-partner-card .partner-link-internal > a { color: var(--moss-dark); }
.featured-partner-card .partner-link-group > a span { color: var(--clay); }
.action-partners { background: #e8e0cf; }
.action-list-label { margin: 0 0 16px; color: var(--clay-dark); font-size: .884rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.action-partner-grid .partner-card { background: rgba(251,250,246,.86); }
.partner-fund { padding-block: 118px; background: linear-gradient(125deg, var(--ink), #1b3329 60%, var(--river-dark)); color: var(--white); }
.partner-fund .kicker { color: #d9bd83; }
.partner-fund-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: 9vw; }
.partner-fund-grid h2 { margin: 18px 0 0; }
.partner-fund-grid > div:last-child > p { margin-top: 0; color: rgba(255,255,255,.74); font-size: 1.06rem; }
.partner-fund-grid ul { margin: 32px 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.2); }
.partner-fund-grid li { padding: 17px 0; border-bottom: 1px solid rgba(255,255,255,.2); font-size: 1.092rem; }
.partner-fund-grid li::before { content: "●"; margin-right: 12px; color: var(--gold); font-size: .754rem; }
.partner-directory-intro { padding-bottom: 64px; }
.partner-directory-intro .partner-category-heading { margin-bottom: 0; }
.partner-category-nav { display: grid; grid-template-columns: repeat(6, 1fr); margin-top: -1px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); background: var(--paper); }
.partner-category-nav a { min-height: 118px; padding: 20px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.partner-category-nav span { display: block; margin-bottom: 24px; color: var(--clay); font-size: .858rem; font-weight: 700; }
.partner-category-nav strong { font-size: 1.17rem; }
.partner-category { padding-block: 112px; scroll-margin-top: 90px; }
.partner-category:nth-child(even) { background: var(--paper-deep); }
.partner-category-genuss,
.partner-category-landschaft,
.partner-category-ausstattung { background: var(--paper-deep); }
.partner-category-mobilitaet { background: #d8e3e2 !important; }
.partner-category-freizeit { background: #e8e0cf !important; }
.partner-category-heading { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 8vw; margin-bottom: 54px; }
.partner-category-heading h2 { margin: 16px 0 0; }
.partner-category-heading > p { margin: 0; color: var(--ink-soft); font-size: 1.02rem; line-height: 1.7; }
.partner-card-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.partner-category-genuss .partner-card-grid { width: 50%; grid-template-columns: 1fr; }
.partner-card { display: flex; min-height: 460px; flex-direction: column; padding: 34px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(251,250,246,.72); }
.partner-card-topline { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.partner-card-topline > span:last-child { color: var(--ink-soft); font-size: .884rem; font-weight: 700; }
.partner-status { display: inline-flex; width: fit-content; padding: 7px 10px; border-radius: 999px; background: var(--paper-deep); color: var(--ink-soft); font-size: .819rem; font-weight: 700; }
.partner-status-loi { background: var(--moss-dark); color: var(--white); }
.partner-status-requested { background: #f0dfbd; color: #6e501b; }
.partner-status-public { background: #d6e6e8; color: #244e57; }
.partner-status-editorial { background: #e5ddd0; color: #694a38; }
.partner-status-research { border: 1px dashed var(--line); background: transparent; }
.partner-card h3 { margin: 48px 0 18px; font-size: clamp(1.8rem, 2.6vw, 3rem); }
.partner-card > p { max-width: 720px; margin: 0 0 34px; color: var(--ink-soft); }
.partner-link-group { margin-top: auto; border-top: 1px solid var(--line); }
.partner-link-group + .partner-link-group { margin-top: 24px; }
.partner-link-group > strong { display: block; padding: 13px 0 8px; color: var(--ink-soft); font-size: .819rem; letter-spacing: .08em; text-transform: uppercase; }
.partner-link-group > a, .partner-link-pending { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 16px; padding: 12px 0; border-top: 1px solid rgba(27,48,38,.09); font-size: 1.027rem; font-weight: 700; }
.partner-link-group > a span { color: var(--clay); }
.partner-link-pending { color: var(--ink-soft); font-weight: 400; }
.partner-link-pending i { font-style: normal; font-size: .806rem; }
.partner-link-internal > a { color: var(--moss-dark); }
.partner-loi-band { padding-block: 118px; background: var(--ink); color: var(--white); }
.partner-loi-band .kicker { color: #a8c5ad; }
.partner-loi-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 9vw; }
.partner-loi-grid h2 { margin-top: 18px; }
.partner-loi-grid > div:last-child > p { margin-top: 0; color: rgba(255,255,255,.72); font-size: 1.05rem; }
.partner-loi-grid ul { margin: 32px 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.2); }
.partner-loi-grid li { padding: 17px 0; border-bottom: 1px solid rgba(255,255,255,.2); font-size: 1.092rem; }
.partner-loi-grid li::before { content: "●"; margin-right: 12px; color: var(--gold); font-size: .78rem; }
.partner-loi-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; }
.partner-source-band { padding-block: 70px; background: var(--ink); color: var(--white); }
.partner-source-inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.partner-source-inner p { max-width: 820px; color: rgba(255,255,255,.68); }
.light-link { color: var(--white); }

/* Partner & Mitmachen: Desktop-Kapitel nach der freigegebenen Referenz; Tablet und Mobile bleiben frei scrollbar. */
@media (min-width: 981px) {
  .partners-page .partner-scroll-chapter {
    min-height: calc(100svh - 88px);
    scroll-margin-top: 88px;
  }
}

.route-partner-section { padding-block: 112px; }
.route-partner-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-bottom: 28px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.route-partner-grid > a { position: relative; min-height: 260px; padding: 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(251,250,246,.62); }
.route-partner-grid h3 { margin: 42px 0 12px; }
.route-partner-grid p { margin: 0; color: var(--ink-soft); font-size: 1.04rem; }
.route-partner-grid > a > strong { position: absolute; right: 24px; bottom: 22px; color: var(--clay); }

.site-footer { display: grid; grid-template-columns: minmax(310px, .85fr) minmax(560px, 1.15fr); align-items: start; gap: clamp(30px, 4vw, 72px); padding: 24px clamp(32px, 4.2vw, 82px) 10px clamp(42px, 5.2vw, 92px); border-top: 1px solid var(--line); background: var(--paper-deep); }
.footer-intro { max-width: 700px; }
.footer-intro > p:last-child { max-width: 700px; margin: 5px 0 0; color: var(--ink-soft); font-size: .74rem; line-height: 1.38; }
.footer-meta { display: grid; width: 100%; max-width: 460px; min-width: 0; justify-self: end; justify-items: stretch; gap: 16px; }
.footer-links { display: flex; width: 100%; flex-wrap: nowrap; align-items: flex-start; justify-content: space-between; gap: 16px; padding-top: 0; font-size: .8rem; font-weight: 700; line-height: 1.4; white-space: nowrap; }
.footer-links a { text-decoration: underline; text-underline-offset: 4px; }
.footer-funding { display: grid; width: 100%; justify-items: stretch; gap: 11px; color: var(--ink-soft); }
.footer-funding-logos { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 20px; }
.footer-leader-lockup { display: flex; align-items: center; gap: 11px; }
.footer-leader-lockup img, .footer-eu-lockup { display: block; width: auto; height: 52px; flex: 0 0 auto; object-fit: contain; }
.footer-leader-lockup span { max-width: 124px; font-size: .71rem; font-weight: 700; line-height: 1.25; }
.footer-funding-link { justify-self: start; color: var(--ink-soft); font-size: .72rem; font-weight: 650; line-height: 1.35; text-decoration: none; white-space: nowrap; }
.footer-funding-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.footer-funding-link:focus-visible { border-radius: 2px; outline: 2px solid var(--moss-dark); outline-offset: 4px; }

.breadcrumbs { display: flex; flex-wrap: wrap; gap: 10px; color: var(--ink-soft); font-size: .962rem; }
.breadcrumbs span { display: inline-flex; gap: 10px; }
.breadcrumbs a { text-decoration: underline; text-underline-offset: 3px; }
.breadcrumbs i { font-style: normal; opacity: .45; }
.page-intro { padding-top: 58px; }
.page-intro-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 7vw; padding-block: 74px 60px; }
.page-intro-grid h1 { margin: 18px 0 0; font-size: clamp(4rem, 9vw, 9rem); }
.page-intro-grid .large-copy { margin-bottom: 20px; }
.topic-row { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 20px; }
.mode-page-zu-fuss .page-intro { --mode-color: var(--moss); }
.mode-page-e-bike .page-intro { --mode-color: var(--river-dark); }
.mode-page-auto .page-intro { --mode-color: var(--clay-dark); }
.mode-page .page-intro .kicker { color: var(--mode-color); }
.route-list-section { padding-block: 72px 128px; }
.route-list-heading { display: flex; justify-content: space-between; margin-bottom: 24px; padding-block: 14px; border-block: 1px solid var(--line); color: var(--ink-soft); font-size: 1.014rem; }
.route-list-heading p { margin: 0; color: var(--ink); font-weight: 700; }
.route-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.route-card { display: grid; grid-template-columns: .92fr 1.08fr; min-height: 380px; background: var(--white); box-shadow: 0 15px 40px rgba(28,41,34,.07); }
.route-card-image { position: relative; overflow: hidden; min-height: 340px; }
.route-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.route-card:hover .route-card-image img { transform: scale(1.035); }
.status-badge { display: inline-flex; width: fit-content; align-items: center; min-height: 28px; padding: 5px 10px; border-radius: 999px; background: #dde6dc; color: #284632; font-size: .858rem; font-weight: 700; letter-spacing: .04em; }
.status-vor-Freigabe-prüfen { background: #f0dfbd; color: #6e501b; }
.status-Entwicklungsroute { background: #ead6cd; color: #7b3f2c; }
.route-card-body { display: flex; flex-direction: column; padding: 28px; }
.route-index { margin-bottom: 14px; color: var(--moss); font-size: .897rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.route-card h2 { margin-bottom: 14px; font-size: clamp(1.6rem, 2.4vw, 2.5rem); }
.route-card-body > p:not(.route-index) { color: var(--ink-soft); font-size: 1.17rem; }
.route-facts { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; }
.route-facts.compact { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: auto; padding-top: 18px; border-top: 1px solid var(--line); }
.route-facts div { padding: 26px 0; }
.route-facts div + div { padding-left: 26px; border-left: 1px solid var(--line); }
.route-facts.compact div { padding: 0; }
.route-facts.compact div + div { padding-left: 16px; }
.route-facts dt { margin-bottom: 7px; color: var(--ink-soft); font-size: .884rem; text-transform: uppercase; letter-spacing: .08em; }
.route-facts dd { margin: 0; font-size: 1.17rem; font-weight: 700; }
.text-link { display: inline-flex; justify-content: space-between; margin-top: 20px; padding-top: 14px; border-top: 1px solid var(--line); font-size: 1.027rem; font-weight: 700; }
.mode-switch { display: grid; grid-template-columns: repeat(3, 1fr); margin-bottom: 120px; border: 1px solid var(--line); }
.mode-switch a { padding: 24px; font-size: 1.1rem; font-weight: 700; }
.mode-switch a + a { border-left: 1px solid var(--line); }
.mode-switch a.active { background: var(--ink); color: var(--white); }
.mode-switch span { display: block; margin-bottom: 7px; color: var(--ink-soft); font-size: .884rem; font-weight: 400; text-transform: uppercase; }
.mode-switch .active span { color: rgba(255,255,255,.62); }

.route-hero { padding-top: 58px; }
.route-hero-grid { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 7vw; padding-block: 60px 76px; }
.route-hero-copy h1 { margin: 24px 0; font-size: clamp(3.4rem, 7vw, 7.6rem); }
.route-eyebrow { color: var(--moss); font-size: 1.079rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.route-hero-copy .large-copy { color: var(--ink-soft); }
.route-hero .image-figure img { aspect-ratio: 5 / 4; }
.route-context-intro { display: grid; grid-template-columns: minmax(250px, .62fr) minmax(0, 1.38fr); gap: clamp(48px, 8vw, 132px); padding-block: clamp(58px, 7vw, 108px); }
.route-context-heading h2 { margin: 18px 0 0; max-width: 8ch; font-size: clamp(3rem, 5.2vw, 6.2rem); line-height: .96; letter-spacing: -.055em; }
.route-context-copy { max-width: 860px; color: var(--ink-soft); font-size: clamp(1.08rem, 1.4vw, 1.38rem); line-height: 1.62; }
.route-context-copy p { margin: 0 0 1.15em; }
.route-context-copy p:last-child { margin-bottom: 0; color: var(--ink); font-weight: 650; }
.route-fact-band { border-block: 1px solid var(--line); background: rgba(251,250,246,.52); }
.route-fact-band .route-facts { width: min(1546px, calc(100% - 64px)); margin-inline: auto; }
.route-navigation-section { padding-block: 96px; border-bottom: 1px solid var(--line); background: var(--paper-deep); }
.route-navigation-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(360px, .65fr); overflow: hidden; border: 1px solid var(--line); background: var(--white); box-shadow: var(--shadow); }
.route-navigation-map { min-width: 0; min-height: 580px; border-right: 1px solid var(--line); background: #dce3d5; }
.provider-google-maps .route-navigation-map { background: #eaded6; }
.route-navigation-map iframe { display: block; width: 100%; height: 100%; min-height: 580px; border: 0; }
.route-embed-consent { position: relative; min-height: 580px; height: 100%; }
.route-embed-consent > iframe { min-height: 580px; }
.route-embed-consent-panel { position: absolute; right: 24px; bottom: 24px; left: 24px; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 18px 20px; border: 1px solid rgba(23,35,30,.16); background: rgba(251,250,246,.96); box-shadow: 0 12px 30px rgba(23,35,30,.12); }
.route-embed-consent-panel p { max-width: 640px; margin: 0; color: var(--ink-soft); font-size: .923rem; line-height: 1.45; }
.route-embed-consent-panel .button { flex: 0 0 auto; }
.route-navigation-placeholder { position: relative; min-height: 580px; height: 100%; overflow: hidden; }
.route-navigation-placeholder svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.route-navigation-contour { fill: none; stroke: rgba(23,35,30,.12); stroke-width: 1.5; }
.route-navigation-line { fill: none; stroke: var(--moss-dark); stroke-width: 7; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 2 15; }
.provider-google-maps .route-navigation-line { stroke: var(--clay-dark); }
.route-navigation-dot { fill: var(--white); stroke: var(--moss-dark); stroke-width: 4; }
.provider-google-maps .route-navigation-dot { stroke: var(--clay-dark); }
.route-navigation-placeholder text { fill: var(--ink); font-size: 17px; font-weight: 700; }
.route-navigation-placeholder-label { position: absolute; top: 24px; left: 24px; display: flex; align-items: center; gap: 12px; padding: 10px 13px; border: 1px solid rgba(23,35,30,.12); background: rgba(251,250,246,.9); }
.route-navigation-placeholder-label span { color: var(--ink-soft); font-size: .845rem; text-transform: uppercase; letter-spacing: .08em; }
.route-navigation-placeholder-label strong { font-size: .975rem; }
.route-navigation-copy { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: 52px; }
.route-navigation-copy h2 { margin: 18px 0 24px; font-size: clamp(2.5rem, 4vw, 4.7rem); }
.route-navigation-copy > p:not(.kicker):not(.route-navigation-privacy) { color: var(--ink-soft); font-size: 1.17rem; }
.route-navigation-facts { display: grid; grid-template-columns: 1fr 1fr; margin: 24px 0 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.route-navigation-facts div { min-width: 0; padding: 17px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.route-navigation-facts dt { margin-bottom: 7px; color: var(--ink-soft); font-size: .806rem; letter-spacing: .08em; text-transform: uppercase; }
.route-navigation-facts dd { margin: 0; overflow-wrap: anywhere; font-size: 1rem; font-weight: 700; line-height: 1.35; }
.route-navigation-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.route-external-button {
  min-height: 42px;
  gap: 10px;
  padding: 9px 16px;
  border-color: rgba(32,74,54,.54);
  background: transparent;
  color: var(--moss-dark);
  font-size: .9rem;
}
.route-external-button:hover { border-color: var(--moss-dark); background: rgba(32,74,54,.055); }
.route-button-disabled { border-color: var(--line); background: var(--paper); color: var(--ink-soft); cursor: not-allowed; }
.route-button-disabled:hover { transform: none; }
.route-navigation-privacy { margin: 22px 0 0; color: var(--ink-soft); font-size: .884rem; line-height: 1.5; }
.route-profile-section { padding-block: 110px 80px; }
.route-profile-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.route-profile-grid.compact-profile-grid { grid-template-columns: repeat(4, 1fr); }
.route-profile-card { min-height: 250px; padding: 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(251,250,246,.35); }
.compact-profile-grid .route-profile-card { min-height: 230px; }
.route-profile-card > span { display: inline-flex; padding: 6px 9px; border-radius: 999px; background: #f0dfbd; color: #6e501b; font-size: .806rem; font-weight: 700; }
.route-profile-card.profile-ready { background: #dce3d5; }
.route-profile-card.profile-ready > span { background: var(--moss-dark); color: var(--white); }
.route-profile-card h3 { margin: 44px 0 14px; font-size: 1.4rem; }
.route-profile-card strong { display: block; margin-bottom: 12px; font-size: 1.3rem; }
.route-profile-card p { margin: 0; color: var(--ink-soft); font-size: 1.092rem; }
.route-accessibility { margin-top: 20px; }
.route-profile-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.route-narrative-section { display: grid; grid-template-columns: .75fr 1.25fr; gap: 8vw; padding-block: 110px; border-top: 1px solid var(--line); }
.route-narrative-section h2 { max-width: 560px; margin: 18px 0 0; }
.route-narrative-copy { max-width: 880px; margin: 0; color: var(--ink-soft); font-size: clamp(1.3rem, 2vw, 1.75rem); line-height: 1.55; }
.station-section { padding-block: 120px; }
.station-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.station-card { display: grid; min-height: 230px; grid-template-columns: 44px 1fr 28px; gap: 22px; padding: 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background .2s ease; }
.station-card:hover { background: var(--white); }
.station-card > i { align-self: start; color: var(--clay); font-style: normal; }
.station-number { color: var(--moss); font-size: .988rem; font-weight: 700; }
.station-card p { margin-bottom: 12px; color: var(--clay); font-size: .936rem; font-weight: 700; }
.station-card h3 { margin-bottom: 14px; }
.station-card div > span { color: var(--ink-soft); font-size: 1.17rem; line-height: 1.55; }
.route-plan-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; padding-bottom: 120px; }
.practical-card, .release-card { padding: 44px; background: var(--white); }
.practical-card h2, .release-card h2 { margin: 18px 0 32px; font-size: 2.6rem; }
.practical-card ul { margin: 0; padding: 0; list-style: none; }
.practical-card li { padding: 15px 0 15px 24px; border-top: 1px solid var(--line); position: relative; }
.practical-card li::before { content: "•"; position: absolute; left: 4px; color: var(--moss); }
.check-grid { display: grid; grid-template-columns: 1fr 1fr; margin-bottom: 28px; border-left: 1px solid var(--line); border-top: 1px solid var(--line); }
.check-grid span { padding: 14px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--ink-soft); font-size: 1.014rem; }
.check-grid span::before { content: "○"; margin-right: 8px; color: var(--clay); }
.check-grid span.is-documented::before { content: "✓"; color: var(--moss); font-weight: 700; }
.release-card > p:last-child { color: var(--ink-soft); font-size: 1.17rem; }
.release-card > small { display: block; margin-top: 20px; color: var(--ink-soft); font-size: .91rem; }
.route-next { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 120px; padding-block: 22px; border-block: 1px solid var(--line); font-size: 1.105rem; font-weight: 700; }

.station-hero { padding-top: 58px; }
.station-hero-grid { display: grid; grid-template-columns: .88fr 1.12fr; align-items: center; gap: 8vw; padding-block: 68px 110px; }
.station-hero h1 { margin: 24px 0 32px; font-size: clamp(3.5rem, 7vw, 7.6rem); }
.station-hero .large-copy { max-width: 650px; color: var(--ink-soft); }
.station-hero .image-figure img { aspect-ratio: 5 / 4; }
.station-note { display: inline-block; margin-top: 18px; padding: 10px 13px; border-left: 3px solid var(--clay); background: var(--paper-deep); font-size: 1.066rem; }
.station-content-band { padding-block: 110px; background: var(--white); }
.station-content-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 9vw; }
.station-content-grid article h2 { max-width: 760px; margin: 18px 0 32px; }
.station-content-grid article .large-copy { color: var(--ink-soft); }
.station-service { padding: 36px; border-top: 5px solid var(--moss); background: var(--paper); }
.station-service dl { margin-block: 24px; }
.station-service dl div { display: grid; grid-template-columns: 100px 1fr; gap: 20px; padding-block: 13px; border-bottom: 1px solid var(--line); }
.station-service dt { color: var(--ink-soft); font-size: .936rem; text-transform: uppercase; }
.station-service dd { margin: 0; font-size: 1.105rem; font-weight: 700; }
.station-service > p:last-child { color: var(--ink-soft); font-size: 1.066rem; }
.audio-section { padding-block: 92px; }
.audio-card { display: grid; grid-template-columns: 70px 1fr auto; align-items: center; gap: 34px; padding: 44px; border: 1px solid var(--line); }
.audio-icon { display: grid; width: 64px; height: 64px; place-items: center; border-radius: 50%; background: var(--river-dark); color: var(--white); }
.audio-card h2 { margin: 12px 0; font-size: 2.5rem; }
.audio-card p:last-child { max-width: 720px; margin: 0; color: var(--ink-soft); }
.audio-card button { padding: 12px 16px; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: var(--ink-soft); }

.legal-page { padding-block: 100px 140px; }
.legal-page > h1 { margin: 26px 0 70px; }
.legal-card { max-width: 900px; padding: 46px; background: var(--white); }
.legal-card h2 { margin-bottom: 28px; font-size: 2.3rem; }
.legal-card p { color: var(--ink-soft); }
/* Einheitlicher Interaktionszustand für helle, gerahmte Navigationskästen. */
.about-chapter-nav a,
.routes-chapter-nav a,
.partner-level-nav a,
.partner-category-nav a,
.route-partner-grid > a,
.mode-switch a:not(.active) {
  transition: background .2s ease, box-shadow .2s ease;
}
.about-chapter-nav a:hover,
.about-chapter-nav a:focus-visible,
.routes-chapter-nav a:hover,
.routes-chapter-nav a:focus-visible,
.partner-level-nav a:hover,
.partner-level-nav a:focus-visible,
.partner-category-nav a:hover,
.partner-category-nav a:focus-visible,
.route-partner-grid > a:hover,
.route-partner-grid > a:focus-visible,
.mode-switch a:not(.active):hover,
.mode-switch a:not(.active):focus-visible {
  background: var(--paper-deep);
  box-shadow: inset 0 4px 0 var(--clay);
}

/* Startseite als Folge bildschirmfüllender Kapitel. */
html:has(main.home-snap) { scroll-padding-top: 94px; }
.home-snap-section { position: relative; scroll-snap-align: start; scroll-snap-stop: always; }
.home-radius-section { background: var(--paper-deep); }
.home-radius-section > .radius-section { background: transparent; }
.home-nature-partner-section { background: #dce3d5; }
.home-proof-chapter { background: var(--paper); }

@media (min-width: 981px) and (min-height: 700px) {
  html:has(main.home-snap) { scroll-snap-type: y mandatory; }
  html:has(main.apartments-overview-snap) { scroll-snap-type: y proximity; }
  .home-snap > .home-snap-section { height: calc(100svh - 94px); min-height: calc(100svh - 94px); overflow: clip; }
  .home-snap > .home-snap-section:not(.photo-hero):not(.home-radius-section):not(.proof-section):not(.home-nature-partner-section):not(.home-proof-chapter):not(.apartments-overview-hero-chapter):not(.apartments-overview-final-chapter) { display: flex; align-items: center; }

  .home-snap .photo-hero-content { min-height: calc(100svh - 157px); padding-block: 28px 100px; }
  .home-snap .photo-hero h1 { margin: 18px 0 22px; font-size: clamp(3.8rem, 6.4vw, 7.6rem); }
  .home-snap .photo-credit { bottom: 94px; }

  .home-snap .project-status-band { padding-block: clamp(28px, 5vh, 58px); }
  .home-snap .project-status-copy h2 { font-size: clamp(1.95rem, 2.3vw, 2.8rem); }
  .home-snap .project-status-summary { gap: clamp(20px, 3vh, 34px); }
  .home-snap .project-countdown strong { font-size: clamp(3.2rem, 4.8vw, 5.35rem); }
  .home-snap .project-status-grid p { min-height: clamp(96px, 15vh, 124px); padding: 20px; }

  .home-snap .apartments-teaser { padding-block: clamp(18px, 3.2vh, 34px); }
  .home-snap .apartments-teaser .section-heading { margin-bottom: clamp(14px, 2.5vh, 24px); }
  .home-snap .apartments-teaser .split-heading h2 { font-size: clamp(2.4rem, 3.7vw, 4.1rem); }
  .home-snap .apartments-teaser .split-heading > p { margin: 0; font-size: clamp(.88rem, 1.05vw, 1.05rem); line-height: 1.45; }
  .home-snap .apartment-card-image img { aspect-ratio: 16 / 5; }
  .home-snap .apartment-card-image span { right: 8px; bottom: 8px; left: 8px; padding: 5px 7px; font-size: .68rem; }
  .home-snap .apartment-card-copy { padding: clamp(13px, 1.45vw, 20px); }
  .home-snap .apartment-card-copy .kicker { font-size: .7rem; }
  .home-snap .apartment-project-status { margin-top: 6px; padding: 3px 7px; font-size: .67rem; }
  .home-snap .apartment-card-copy h3 { margin: 8px 0 5px; font-size: clamp(1.5rem, 1.85vw, 2rem); }
  .home-snap .apartment-card-copy > strong { font-size: 1rem; }
  .home-snap .apartment-card-copy > p:not(.kicker) { margin-top: 8px; font-size: clamp(.76rem, .86vw, .89rem); line-height: 1.38; }
  .home-snap .apartment-card-copy > p.apartment-signature-teaser { margin: 2px 0 8px; padding-top: 8px; font-size: clamp(.73rem, .82vw, .84rem); }
  .home-snap .apartment-card-copy > a { padding-top: 9px; font-size: .78rem; }
  .home-snap .apartments-all-link { margin-top: clamp(10px, 1.7vh, 18px); padding-block: 10px; font-size: .8rem; }

  .home-snap .house-section { padding-block: clamp(22px, 4vh, 46px); }
  .home-snap .material-teaser-grid a { min-height: clamp(185px, 27vh, 235px); }
  .home-snap .house-copy h2 { margin: 14px 0 20px; font-size: clamp(3rem, 4.5vw, 5rem); }
  .home-snap .house-copy .large-copy { font-size: clamp(1rem, 1.35vw, 1.32rem); }
  .home-snap .house-copy .fine-print { margin-top: 18px; font-size: .85rem; }

  .home-snap .home-radius-section { display: grid; grid-template-rows: minmax(0, 1fr) auto; }
  .home-snap .home-radius-section > .story-strip > div { padding: clamp(13px, 2vh, 22px) 3vw; }
  .home-snap .home-radius-section > .story-strip p { font-size: clamp(.78rem, .95vw, 1rem); line-height: 1.38; }
  .home-snap .home-radius-section > .radius-section { display: flex; min-height: 0; align-items: center; padding-block: clamp(12px, 2vh, 24px); }
  .home-snap .radius-grid { gap: 5vw; }
  .home-snap .radius-copy h2 { margin: 12px 0 18px; font-size: clamp(3rem, 4.45vw, 5rem); }
  .home-snap .radius-copy .large-copy { font-size: clamp(.92rem, 1.18vw, 1.15rem); }
  .home-snap .radius-buttons { margin-top: 18px; }
  .home-snap .radius-buttons a { padding: 9px 0; }
  .home-snap .radius-buttons strong { font-size: 1rem; }
  .home-snap .map-stage { height: min(54vh, 500px); min-height: 0; }
  .home-snap .map-stage .topo { width: 100%; height: 100%; }

  .home-snap .decision-section { padding-block: clamp(22px, 3.5vh, 38px); }
  .home-snap .decision-section .section-heading { margin-bottom: clamp(16px, 2.4vh, 26px); }
  .home-snap .decision-section .split-heading h2 { font-size: clamp(2.8rem, 4.1vw, 4.7rem); }
  .home-snap .decision-section .split-heading > p { font-size: clamp(.88rem, 1.05vw, 1.05rem); line-height: 1.48; }
  .home-snap .decision-card { min-height: clamp(330px, 49vh, 440px); }
  .home-snap .decision-card > div { right: 18px; bottom: 18px; left: 18px; }
  .home-snap .decision-card h3 { margin-bottom: 10px; font-size: clamp(1.55rem, 1.85vw, 2.1rem); }
  .home-snap .decision-card div > span { font-size: clamp(.78rem, .9vw, .92rem); line-height: 1.4; }
  .home-snap .decision-card strong { margin-top: 14px; font-size: .76rem; }

  .home-snap .border-story-section { padding-block: clamp(20px, 3.3vh, 36px); }
  .home-snap .border-story-heading { gap: 5vw; }
  .home-snap .border-story-heading h2 { font-size: clamp(3rem, 4.4vw, 5rem); }
  .home-snap .border-story-copy h3 { margin-bottom: 10px; font-size: clamp(1.45rem, 2vw, 2.2rem); }
  .home-snap .border-story-copy > p { font-size: clamp(.82rem, 1vw, 1rem); line-height: 1.45; }
  .home-snap .border-story-copy .button { margin-top: 14px; padding-block: 10px; font-size: .8rem; }
  .home-snap .border-story-images { gap: 10px; margin-top: clamp(18px, 3vh, 30px); }
  .home-snap .border-story-images .image-figure img { aspect-ratio: 16 / 9.6; }
  .home-snap .border-story-images figcaption { padding-top: 6px; font-size: .68rem; line-height: 1.3; }

  .home-snap .home-nature-partner-section { display: grid; grid-template-rows: 68% 32%; align-items: stretch; }
  .home-snap .home-nature-partner-section > .naturepark-teaser,
  .home-snap .home-nature-partner-section > .partners-teaser { min-height: 0; overflow: clip; }

  .home-snap .home-nature-partner-section .naturepark-teaser { display: flex; align-items: center; padding-block: 14px 12px; }
  .home-snap .home-nature-partner-section .naturepark-teaser-grid { height: 100%; grid-template-columns: .86fr 1.14fr; gap: 4.3vw; }
  .home-snap .naturepark-teaser-image { min-height: 0; height: 100%; }
  .home-snap .home-nature-partner-section .naturepark-teaser-image > span { right: 14px; bottom: 14px; width: 44px; height: 44px; font-size: .7rem; }
  .home-snap .home-nature-partner-section .naturepark-teaser-copy h2 { margin: 6px 0 9px; font-size: clamp(2.25rem, 3.15vw, 3.45rem); }
  .home-snap .home-nature-partner-section .naturepark-teaser-copy > .large-copy { font-size: clamp(.72rem, .88vw, .9rem); line-height: 1.35; }
  .home-snap .home-nature-partner-section .naturepark-teaser-facts { margin-top: 9px; }
  .home-snap .home-nature-partner-section .naturepark-teaser-facts p { grid-template-columns: 94px 1fr; gap: 12px; padding: 6px 0; }
  .home-snap .home-nature-partner-section .naturepark-teaser-facts strong,
  .home-snap .home-nature-partner-section .naturepark-teaser-facts span { font-size: clamp(.62rem, .69vw, .7rem); line-height: 1.3; }
  .home-snap .home-nature-partner-section .naturepark-teaser-actions { gap: 12px; margin-top: 10px; }
  .home-snap .home-nature-partner-section .naturepark-teaser-actions .button { padding: 7px 13px; font-size: .66rem; }
  .home-snap .home-nature-partner-section .naturepark-teaser-actions > a:last-child { font-size: .66rem; }
  .home-snap .home-nature-partner-section .naturepark-status-note { margin-top: 9px; padding-left: 8px; border-left-width: 2px; font-size: .61rem; line-height: 1.32; }

  .home-snap .home-nature-partner-section .partners-teaser { display: flex; align-items: center; padding-block: 14px 22px; }
  .home-snap .home-nature-partner-section .partners-teaser-grid { grid-template-columns: .82fr 1.18fr; gap: 5vw; }
  .home-snap .home-nature-partner-section .partners-teaser .kicker { font-size: .64rem; }
  .home-snap .home-nature-partner-section .partners-teaser h2 { margin: 5px 0 7px; font-size: clamp(2rem, 2.75vw, 3rem); }
  .home-snap .home-nature-partner-section .partners-teaser-grid > div:first-child > p:not(.kicker) { font-size: clamp(.66rem, .76vw, .76rem); line-height: 1.36; }
  .home-snap .home-nature-partner-section .partners-teaser-grid .button { margin-top: 9px; padding: 7px 12px; font-size: .65rem; }
  .home-snap .home-nature-partner-section .partners-teaser-categories a { min-height: 0; grid-template-columns: 30px 1fr 18px; gap: 10px; padding: 9px 3px; }
  .home-snap .home-nature-partner-section .partners-teaser-categories span { font-size: .58rem; }
  .home-snap .home-nature-partner-section .partners-teaser-categories strong { font-size: .68rem; }

  .home-snap .home-proof-chapter { display: grid; grid-template-rows: minmax(0, 1fr) auto; }
  .home-snap .proof-section { display: flex; min-height: 0; flex-direction: column; justify-content: center; overflow: clip; padding-block: clamp(18px, 2.5vh, 28px); }
  .home-snap .proof-section .section-heading { margin-bottom: clamp(14px, 2vh, 22px); }
  .home-snap .proof-section .section-heading h2 { font-size: clamp(2.7rem, 3.9vw, 4.4rem); }
  .home-snap .sustainability-title { margin-bottom: 12px; font-size: clamp(2rem, 3vw, 3rem); }
  .home-snap .sustainability-evidence { margin-bottom: clamp(16px, 2.5vh, 26px); }
  .home-snap .sustainability-evidence article { min-height: 0; padding: clamp(14px, 1.6vw, 20px); }
  .home-snap .sustainability-evidence h3 { margin-bottom: 10px; font-size: clamp(1.05rem, 1.35vw, 1.35rem); }
  .home-snap .sustainability-evidence article > p:last-child { font-size: clamp(.75rem, .88vw, .88rem); line-height: 1.45; }
  .home-snap .proof-note { padding: clamp(16px, 1.8vw, 22px); }
  .home-snap .proof-note p { font-size: clamp(.75rem, .9vw, .9rem); line-height: 1.42; }
  .home-snap .proof-note a { margin-top: 8px; font-size: .78rem; }
  .home-snap .site-footer-embedded { grid-template-columns: minmax(250px, .85fr) minmax(520px, 1.15fr); align-items: start; gap: 28px; padding-block: 14px 10px; }
  .home-snap .site-footer-embedded .kicker { font-size: .62rem; }
  .home-snap .site-footer-embedded .footer-intro > p:last-child { margin-top: 5px; font-size: .74rem; line-height: 1.35; }
  .home-snap .site-footer-embedded .footer-links { gap: 10px 18px; font-size: .7rem; }
  .home-snap .site-footer-embedded .footer-meta { gap: 12px; }
  .home-snap .site-footer-embedded .footer-funding { gap: 6px; }
}

@media (max-width: 980px), (max-height: 699px) {
  html:has(main.home-snap) { scroll-snap-type: y proximity; }
  .home-snap > .home-snap-section { min-height: calc(100svh - 94px); }
  .home-snap .home-radius-section { padding-bottom: 54px; }
}

/* Unterkuenfte-Uebersicht: Vollbildkapitel mit eigenstaendiger, stabiler Inhaltslogik. */
.apartments-overview-hero-chapter { display: grid; grid-template-rows: minmax(0, 1fr) auto; background: var(--ink); }
.apartments-overview-final-chapter { display: grid; grid-template-rows: minmax(0, 1fr) auto; align-items: stretch; background: var(--paper); }
.apartment-meadow-chapter {
  display: flex;
  align-items: center;
  padding-block: clamp(56px, 6.5vw, 96px);
  border-bottom: 1px solid var(--line);
  background: var(--paper);
}
.apartment-meadow-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr);
  align-items: center;
  gap: clamp(44px, 5.25vw, 82px);
}
.apartment-meadow-figure { width: 100%; max-width: 762px; margin: 0; }
.apartment-meadow-figure img { display: block; width: 100%; height: auto; }
.apartment-meadow-figure figcaption {
  max-width: 720px;
  padding-top: 10px;
  color: var(--ink-soft);
  font-size: .78rem;
  line-height: 1.45;
}
.apartment-meadow-copy { max-width: 610px; }
.apartment-meadow-copy .kicker { color: var(--green); }
.apartment-meadow-copy h2 {
  margin: 24px 0 30px;
  font-size: clamp(2.75rem, 3.75vw, 4.65rem);
  line-height: .98;
  letter-spacing: -.045em;
}
.apartment-meadow-copy .large-copy { margin: 0; color: var(--ink-soft); font-size: clamp(1rem, 1.25vw, 1.18rem); line-height: 1.58; }
.apartment-meadow-status { margin: clamp(34px, 5vh, 58px) 0 0; color: var(--ink-soft); font-size: .88rem; }

@media (min-width: 1101px) and (min-height: 860px) {
  .apartments-overview-snap > .home-snap-section {
    height: calc(100svh - 94px);
    min-height: calc(100svh - 94px);
    overflow: clip;
  }

  .apartments-overview-hero-chapter > .apartments-hero { display: flex; min-height: 0; align-items: center; padding-block: clamp(36px, 6vh, 70px); }
  .apartments-overview-hero-chapter > .apartments-hero-with-project-status { flex-direction: column; align-items: stretch; padding-block: clamp(28px, 4vh, 48px); }
  .apartments-overview-hero-chapter .portfolio-status-note > .shell { padding-bottom: 54px; }

  .apartments-overview-snap > .apartments-teaser,
  main.home-snap:not(.apartments-overview-snap) > .apartments-teaser {
    display: grid;
    align-items: center;
    padding-block: clamp(24px, 3.5vh, 36px) 60px;
  }
  .apartments-overview-snap > .apartments-teaser > .shell,
  main.home-snap:not(.apartments-overview-snap) > .apartments-teaser > .shell { display: grid; min-height: 0; grid-template-rows: auto minmax(0, 1fr) auto; }
  .apartments-overview-snap .apartment-card-grid,
  main.home-snap:not(.apartments-overview-snap) > .apartments-teaser .apartment-card-grid { min-height: 0; align-items: stretch; }
  main.home-snap:not(.apartments-overview-snap) > .apartments-teaser .apartment-card { min-height: 0; overflow: hidden; }
  .apartments-overview-snap .apartment-card-image,
  main.home-snap:not(.apartments-overview-snap) > .apartments-teaser .apartment-card-image { flex: 0 0 clamp(210px, calc(100svh - 650px), 300px); }
  .apartments-overview-snap .apartment-card-image img,
  main.home-snap:not(.apartments-overview-snap) > .apartments-teaser .apartment-card-image img { height: 100%; aspect-ratio: auto; }
  .apartments-overview-snap .apartment-card { min-height: 0; overflow: hidden; box-shadow: 0 16px 38px rgba(28,41,34,.09); }
  .apartments-overview-snap .apartment-card-image span { right: 0; bottom: 0; left: 0; padding: 7px 12px; background: var(--moss-dark); }
  .apartments-overview-snap .apartment-card-copy,
  main.home-snap:not(.apartments-overview-snap) > .apartments-teaser .apartment-card-copy { min-height: 0; padding: clamp(18px, 1.45vw, 24px) clamp(16px, 1.55vw, 24px) 0; }
  .apartments-overview-snap .apartment-card-copy > p.apartment-signature-teaser { border-top: 0; }
  .apartments-overview-snap .apartment-card-copy > a {
    margin-right: clamp(-22px, -1.55vw, -14px);
    margin-left: clamp(-22px, -1.55vw, -14px);
    padding: 11px clamp(14px, 1.55vw, 22px);
    border-top: 0;
    background: var(--moss-dark);
    color: var(--white);
  }
  .apartments-overview-snap .apartments-all-link,
  main.home-snap:not(.apartments-overview-snap) > .apartments-teaser .apartments-all-link { justify-self: start; }

  .apartments-overview-site-plan-chapter { display: grid; place-items: center; padding: 0; }
  .apartments-overview-site-plan-chapter > .apartment-site-plan { width: calc(100% - 92px); height: calc(100% - 92px); }
  .apartments-overview-site-plan-chapter .apartment-site-plan-placeholder { width: 100%; height: 100%; aspect-ratio: auto; }

  .apartments-overview-snap > .apartment-meadow-chapter { padding-block: 24px; }
  .apartment-meadow-grid { height: 100%; }
  .apartment-meadow-figure { max-height: 100%; }
  .apartment-meadow-figure img { max-height: calc(100svh - 165px); object-fit: contain; object-position: left center; }

  .apartments-overview-final-chapter > .booking-readiness {
    width: min(1280px, calc(100% - 96px));
    align-self: center;
    align-content: center;
    padding-block: clamp(54px, 9vh, 96px);
  }
}

@media (min-width: 981px) and (min-height: 700px) and (max-height: 859px),
       (min-width: 981px) and (max-width: 1100px) and (min-height: 700px) {
  /* Dieselben Regeln gelten fuer die Startseite.
     Der zweite Bereich, den die Wohnungsuebersicht schon hatte: flache
     Notebooks und schmale Fenster. Ohne die Zwillinge hier stand die
     Kartenhoehe auf der Startseite genau dort wieder frei, wo der Platz am
     knappsten ist — die Korrektur galt bisher nur oberhalb von 1100 x 860. */
  html:has(main.apartments-overview-snap),
  html:has(main.home-snap:not(.apartments-overview-snap) > .apartments-teaser) { scroll-snap-type: y proximity; }
  .apartments-overview-snap > .home-snap-section,
  main.home-snap:not(.apartments-overview-snap) > .apartments-teaser { height: auto; min-height: calc(100svh - 94px); overflow: visible; }
  .apartments-overview-snap > .apartments-teaser,
  main.home-snap:not(.apartments-overview-snap) > .apartments-teaser { display: block; padding-block: 72px 84px; }
  main.home-snap:not(.apartments-overview-snap) > .apartments-teaser .apartment-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  main.home-snap:not(.apartments-overview-snap) > .apartments-teaser .apartment-card { display: flex; min-height: 0; overflow: hidden; }
  main.home-snap:not(.apartments-overview-snap) > .apartments-teaser .apartment-card-image { flex: 0 0 clamp(210px, calc(100svh - 650px), 300px); }
  main.home-snap:not(.apartments-overview-snap) > .apartments-teaser .apartment-card-image img { height: 100%; aspect-ratio: auto; }
  main.home-snap:not(.apartments-overview-snap) > .apartments-teaser .apartment-card-copy { min-height: 0; padding: clamp(18px, 1.45vw, 24px) clamp(16px, 1.55vw, 24px) 0; }
  .apartments-overview-snap .apartment-card-image span { right: 0; bottom: 0; left: 0; background: var(--moss-dark); }
  .apartments-overview-snap .apartment-card-copy > a { margin-right: -20px; margin-left: -20px; padding: 12px 20px; border-top: 0; background: var(--moss-dark); color: var(--white); }
  .apartments-overview-snap .apartment-card-copy > p.apartment-signature-teaser { border-top: 0; }
  .apartments-overview-site-plan-chapter { display: block; padding-block: 48px 74px; }
  .apartments-overview-site-plan-chapter > .apartment-site-plan { width: calc(100% - 96px); }
  .apartments-overview-site-plan-chapter .apartment-site-plan-placeholder { aspect-ratio: 16 / 9; }
  .apartment-meadow-chapter { padding-block: 58px; }
  .apartment-meadow-grid { gap: 40px; }
  .apartment-meadow-copy h2 { margin-block: 20px 24px; font-size: clamp(2.6rem, 4.6vw, 3.4rem); }
  .apartment-meadow-status { margin-top: 32px; }
  .apartments-overview-final-chapter > .booking-readiness { width: min(1280px, calc(100% - 96px)); padding-block: 96px; }
}

@media (max-width: 980px), (max-height: 699px) {
  .apartments-overview-snap > .home-snap-section,
  main.home-snap:not(.apartments-overview-snap) > .apartments-teaser { height: auto; overflow: visible; }
  .apartments-overview-hero-chapter .portfolio-status-note > .shell { padding-bottom: 64px; }
  .apartments-overview-snap > .apartments-teaser,
  main.home-snap:not(.apartments-overview-snap) > .apartments-teaser { padding-bottom: 76px; }
  .apartments-overview-snap .apartment-card-image span { right: 0; bottom: 0; left: 0; background: var(--moss-dark); }
  .apartments-overview-snap .apartment-card-copy > p.apartment-signature-teaser { border-top: 0; }
  .apartments-overview-snap .apartment-card-copy > a { margin-right: -28px; margin-left: -28px; padding: 14px 28px; border-top: 0; background: var(--moss-dark); color: var(--white); }
  .apartments-overview-site-plan-chapter { display: block; padding-block: 32px 70px; }
  .apartments-overview-site-plan-chapter > .apartment-site-plan { width: calc(100% - 32px); }
  .apartments-overview-site-plan-chapter .apartment-site-plan-placeholder { aspect-ratio: 5 / 3; }
  .apartment-meadow-chapter { display: block; min-height: 0; padding-block: 70px 82px; }
  .apartment-meadow-grid { grid-template-columns: 1fr; gap: 42px; }
  .apartment-meadow-figure { max-width: none; }
  .apartment-meadow-copy { max-width: 690px; }
  .apartment-meadow-copy h2 { margin-block: 19px 25px; font-size: clamp(2.55rem, 7.5vw, 3.55rem); }
  .apartment-meadow-status { margin-top: 34px; }
  .apartments-overview-final-chapter { display: block; }
  .apartments-overview-final-chapter > .booking-readiness { width: calc(100% - 32px); padding-block: 84px; }
}

@media (max-width: 480px) {
  .apartment-meadow-chapter { padding-block: 48px 62px; }
  .apartment-meadow-grid { gap: 34px; }
  .apartment-meadow-figure figcaption { padding-top: 8px; font-size: .71rem; }
  .apartment-meadow-copy h2 { margin-block: 16px 22px; font-size: clamp(2.15rem, 11vw, 2.7rem); line-height: 1; }
  .apartment-meadow-copy .large-copy { font-size: 1rem; line-height: 1.55; }
  .apartment-meadow-status { margin-top: 28px; font-size: .8rem; }
}

@media (max-width: 1100px) {
  .hero { grid-template-columns: 1fr 1fr; }
  .mode-grid { grid-template-columns: 1fr; }
  .mode-card { display: grid; min-height: 420px; grid-template-columns: 1fr 1fr; }
  .mode-image { height: 100%; }
  .mode-card-body > p:not(.kicker) { min-height: 0; }
  .criteria-grid { grid-template-columns: repeat(2, 1fr); }
  .criteria-grid article:last-child { grid-column: span 1; }
  .route-grid { grid-template-columns: 1fr; }
  .main-nav { gap: 18px; }
  .hirschberg-gallery { grid-template-columns: 1.25fr 1fr; grid-template-rows: repeat(3, 250px); }
  .hirschberg-gallery .gallery-large { grid-row: 1 / span 2; }
  .hirschberg-gallery .image-figure:nth-child(4) { grid-column: 1 / span 2; }
  .radius-grid { grid-template-columns: 1fr 1fr; gap: 5vw; }
  .path-rail { grid-template-columns: repeat(auto-fit, minmax(175px, 1fr)); }
  .culture-card { grid-template-columns: 1fr; }
  .culture-card > img { min-height: 280px; height: 280px; }
  .material-principles { grid-template-columns: repeat(2, 1fr); }
  .material-principles article:nth-child(3) { border-left: 1px solid var(--line); }
  .charge-steps { grid-template-columns: repeat(2, 1fr); }
  .charging-map-layout { grid-template-columns: 1fr .7fr; }
  .naturepark-route-grid { grid-template-columns: repeat(2, 1fr); }
  .naturepark-principles { grid-template-columns: repeat(2, 1fr); }
  .decision-grid { grid-template-columns: repeat(3, 1fr); }
  .guest-journey-grid { grid-template-columns: repeat(2, 1fr); }
  .route-profile-grid { grid-template-columns: repeat(2, 1fr); }
  .route-profile-grid.compact-profile-grid { grid-template-columns: repeat(2, 1fr); }
  .apartment-card-grid { grid-template-columns: 1fr; }
  .apartment-card { display: grid; grid-template-columns: 1fr 1fr; }
  .about-principles-grid { grid-template-columns: repeat(2, 1fr); }
  .partner-level-nav { grid-template-columns: repeat(2, 1fr); }
  .partner-category-nav { grid-template-columns: repeat(3, 1fr); }
  .route-partner-grid { grid-template-columns: repeat(2, 1fr); }
  .site-footer { grid-template-columns: 1fr 1fr; }
  .footer-links { grid-column: 1 / -1; justify-content: flex-end; }
}

@media (min-width: 981px) and (max-width: 1180px) {
  .brand-logo { width: 131px; }
  .brand-copy { margin-left: -44px; transform: translateY(-8px); }
  .brand strong { font-size: 1.57rem; }
  .brand small { font-size: .795rem; }
  .main-nav, .primary-nav-links { gap: 14px; }
  .main-nav { font-size: .95rem; }
  .primary-nav-links a { white-space: nowrap; }
}

@media (min-width: 981px) and (max-width: 1100px) {
  .routes-map-body { grid-template-columns: clamp(150px, 16%, 170px) minmax(0, 1fr) 220px; }
  .routes-overview-copy { grid-template-columns: clamp(150px, 16%, 170px) minmax(0, 1fr) 220px; }
  .routes-map-levels { padding: 6px; }
  .routes-map-level-copy { margin-top: 7px; padding-top: 7px; }
  .routes-map-level-copy > p:last-child { display: none; }
  .routes-map-level-filter .prototype-filter-groups { gap: 4px; }
  .routes-map-level-filter .prototype-filter-group { gap: 3px; }
  .routes-map-level-filter .prototype-filter-checkbox-options { gap: 0; }
  .routes-map-level-filter .prototype-filter-checkbox-options label { min-height: 22px; padding-block: 2px; }
  .routes-map-level-filter .prototype-filter-theme .prototype-filter-checkbox-options { grid-auto-rows: 24px; }
  .routes-map-level-filter .prototype-filter-theme .prototype-filter-checkbox-options label { min-height: 24px; }
  .routes-map-level-filter .prototype-filter-options:not(.prototype-filter-checkbox-options) span { min-height: 18px; padding: 3px 5px; font-size: .52rem; }
  .routes-map-level-filter .prototype-filter-checkbox-options span { font-size: .52rem; }
  .routes-map-level-buttons button { min-height: 46px; }
  .routes-map-level-buttons button > strong { font-size: .76rem; }
  .routes-map-level-buttons button > small { font-size: .57rem; }
  .prototype-map-default-info { gap: 6px; padding: 11px; }
  .prototype-map-default-info h3 { font-size: 1.25rem; }
}

@media (max-width: 980px) {
  .charging-live-map { scroll-margin-top: 118px; }
  .site-header { min-height: 118px; padding: 8px 16px 50px; }
  .brand { transform: translateY(2px); }
  .brand-logo { width: 129px; }
  .brand-copy { margin-left: -43px; transform: translateY(-9px); }
  .brand strong { font-size: 1.61rem; }
  .brand small { font-size: .815rem; }
  .route-navigation-grid { grid-template-columns: 1fr; }
  .route-navigation-map { min-height: 440px; border-right: 0; border-bottom: 1px solid var(--line); }
  .route-navigation-map iframe, .route-navigation-placeholder, .route-embed-consent, .route-embed-consent > iframe { min-height: 440px; }
  .route-narrative-section { grid-template-columns: 1fr; gap: 34px; }
  .apartments-hero-grid { grid-template-columns: 1fr; }
  .routes-overview-intro { min-height: calc(100svh - 108px); }
  .routes-overview-intro > .shell { min-height: 0; flex: 1; }
  .routes-overview-workspace { grid-template-columns: 1fr; gap: 34px; padding-top: 32px; }
  .routes-overview-copy { display: block; max-width: 720px; }
  .routes-overview-copy h1 { max-width: none; font-size: clamp(3.9rem, 9vw, 4.5rem); }
  .routes-map-body { grid-template-columns: 1fr; grid-template-rows: auto auto; }
  .routes-map-levels { grid-column: 1; grid-row: 1; padding: 18px 20px 0; border-right: 1px solid var(--line); border-bottom: 0; }
  .routes-map-level-filter { display: none; }
  .routes-map-level-copy { display: flex; align-items: start; justify-content: space-between; gap: 32px; margin-top: 0; padding-top: 0; border-top: 0; }
  .routes-map-level-copy > p:last-child { max-width: 390px; margin: 0; }
  .routes-map-level-buttons { grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 16px; }
  .routes-map-level-buttons button { min-height: 68px; border: 1px solid var(--line); }
  .routes-overview-map { height: auto; min-height: 0; grid-column: 1; grid-row: 2; aspect-ratio: auto; }
  .routes-overview-map .geo-map-canvas { height: auto; aspect-ratio: var(--map-frame-aspect); }
  .routes-map-caption { display: grid; min-height: 48px; padding-top: 8px; }
  .routes-map-caption strong { font-size: .95rem; }
  .routes-map-caption span { font-size: .7rem; }
  .routes-chapter-band { grid-template-columns: 16px minmax(0, 1fr) 16px; margin-top: 28px; }
  .apartments-hero-grid > div:last-child { max-width: 620px; }
  .main-nav a { display: none; }
  .main-nav { gap: 10px; }
  .main-nav .primary-nav-links a { display: block; }
  .main-nav .language-menu a { display: grid; }
  .main-nav .accessibility-panel a { display: block; }
  .primary-nav-links {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    gap: 22px;
    overflow-x: auto;
    padding-inline: 16px;
    border-top: 1px solid var(--line);
    background: rgba(243, 239, 228, .96);
    scrollbar-width: none;
  }
  .primary-nav-links::-webkit-scrollbar { display: none; }
  .main-nav .primary-nav-links a { flex: 0 0 auto; padding: 10px 0 9px; white-space: nowrap; font-size: .858rem; }
  .opening-pill { display: none !important; }
  .language-menu > div { position: fixed; top: 118px; right: 16px; width: 190px; }
  .accessibility-panel { position: fixed; top: 118px; right: 16px; }
}

@media (max-width: 1180px) and (min-width: 981px) {
  .apartments-hero-grid { grid-template-columns: 1fr; gap: 42px; }
  .apartments-hero-grid > div:last-child { max-width: 620px; }
}

@media (max-width: 780px) {
  .brand-logo { width: 127px; }
  .brand-copy { margin-left: -42px; transform: translateY(-8px); }
  .brand strong { font-size: 1.56rem; }
  .brand small { font-size: .785rem; }
  .apartment-development-grid { gap: 24px; }
  .apartment-development-card figcaption { min-height: 116px; align-items: flex-start; flex-direction: column; gap: 8px; }
  .apartment-development-card figcaption span { flex: none; max-width: 100%; overflow-wrap: normal; text-align: left; }
  .shell { width: min(100% - 32px, 1546px); }
  .section { padding-block: 84px; }
  .events-hero { min-height: 0; }
  .events-hero-grid { grid-template-columns: 1fr; gap: 34px; padding-block: 70px 76px; }
  .events-hero h1 { font-size: clamp(3.4rem, 17vw, 5.4rem); }
  .events-preview-note { margin-top: 26px; padding: 20px; }
  .event-calendar-main, .event-calendar-panel { padding: 22px 18px; }
  .event-calendar-head { gap: 12px; padding-bottom: 18px; }
  .event-calendar-head h3 { font-size: clamp(1.65rem, 8vw, 2.2rem); }
  .event-calendar-controls button { width: 40px; height: 40px; }
  .event-calendar-weekdays, .event-calendar-grid { gap: 4px; }
  .event-calendar-weekdays { padding-block: 18px 8px; }
  .event-calendar-weekdays span { font-size: .6rem; letter-spacing: .03em; }
  .event-calendar-day, .event-calendar-empty-day { min-height: 40px; }
  .event-calendar-day { aspect-ratio: 1; gap: 4px; font-size: .8rem; }
  .event-calendar-panel { gap: 28px; }
  .event-time-filter { grid-template-columns: 1fr 1fr; }
  .event-calendar-result { padding: 16px; }
  .events-workflow { padding-block: 82px; }
  .events-workflow-grid { grid-template-columns: 1fr; gap: 48px; }
  .route-navigation-section { padding-block: 48px; }
  .route-navigation-map { min-height: 340px; }
  .route-navigation-map iframe, .route-navigation-placeholder, .route-embed-consent, .route-embed-consent > iframe { min-height: 340px; }
  .route-embed-consent-panel { right: 14px; bottom: 14px; left: 14px; align-items: stretch; flex-direction: column; gap: 12px; padding: 14px; }
  .route-embed-consent-panel .button { width: 100%; justify-content: center; }
  .route-navigation-copy { padding: 30px 24px; }
  .route-navigation-placeholder-label { top: 14px; left: 14px; gap: 8px; }
  .route-navigation-placeholder-label span { font-size: .741rem; }
  .route-navigation-placeholder-label strong { font-size: .845rem; }
  .route-navigation-facts { grid-template-columns: 1fr; }
  .route-navigation-privacy { font-size: .845rem; }
  .route-narrative-section { padding-block: 84px; }
  .site-header { min-height: 108px; padding: 8px 16px 40px; }
  .main-nav a { display: none; }
  .main-nav { gap: 10px; }
  .main-nav .primary-nav-links a { display: block; padding: 8px 0 7px; font-size: .806rem; }
  .main-nav .language-menu a { display: grid; }
  .main-nav .accessibility-panel a { display: block; }
  .primary-nav-links { gap: 18px; padding-inline: 16px; }
  .opening-pill { display: none; }
  .language-menu > div { position: fixed; top: 108px; right: 12px; width: 190px; }
  .accessibility-panel { position: fixed; top: 108px; right: 12px; }
  .hero { min-height: auto; grid-template-columns: 1fr; gap: 24px; padding-block: 72px 50px; }
  .hero h1 { margin-top: 20px; font-size: clamp(3.4rem, 18vw, 6rem); }
  .apartments-hero { padding-block: 82px 68px; }
  .apartments-hero h1 { font-size: clamp(3.1rem, 14.5vw, 4.4rem); }
  .apartment-site-plan-placeholder > div { padding: 20px 22px; }
  .apartment-site-plan-placeholder h2 { font-size: clamp(2rem, 10vw, 3.2rem); }
  .routes-overview-intro { padding: 34px 0 0; }
  .routes-overview-workspace { gap: 32px; padding-top: 32px; }
  .routes-overview-copy h1 { max-width: none; margin-block: 18px 22px; font-size: clamp(3.7rem, 9vw, 4.3rem); }
  .routes-overview-lead { font-size: .9rem; }
  .routes-map-panel-heading h2 { margin-bottom: 14px; font-size: clamp(2.2rem, 8vw, 3rem); }
  .routes-map-levels { padding: 16px 16px 0; }
  .routes-map-level-copy { display: block; }
  .routes-map-level-copy > p:last-child { max-width: 520px; margin-top: 8px; }
  .routes-map-level-buttons { margin-top: 14px; }
  .routes-map-level-buttons button { min-height: 62px; gap: 3px; padding: 8px 7px; }
  .routes-map-level-buttons button > strong { font-size: .75rem; }
  .routes-map-level-buttons button > small { font-size: .56rem; }
  .routes-map-caption { justify-items: start; gap: 4px; padding: 10px 2px 0; text-align: left; }
  .routes-map-caption span { max-width: 520px; }
  .routes-chapter-nav { grid-template-columns: repeat(3, 1fr); }
  .routes-chapter-nav a { min-height: 104px; grid-template-columns: 28px 1fr; gap: 6px 8px; padding: 14px 12px; }
  .routes-chapter-nav span { font-size: .72rem; }
  .routes-chapter-nav strong { font-size: .82rem; }
  .routes-chapter-nav small { font-size: .68rem; }
  .highlight-routes-section { padding-block: 48px 34px; scroll-margin-top: 108px; }
  .highlight-routes-heading { grid-template-columns: 1fr; gap: 14px; margin-bottom: 20px; }
  .highlight-routes-heading h2 { font-size: clamp(2.35rem, 12vw, 3.65rem); }
  .highlight-routes-heading > p { font-size: .88rem; }
  .highlight-routes-preview { height: auto; min-height: 0; grid-template-columns: 1fr; }
  .highlight-route-copy { min-height: 315px; padding: 24px 20px 18px; }
  .highlight-route-copy h3 { font-size: clamp(2rem, 10vw, 3rem); }
  .highlight-route-map { height: 330px; border-top: 1px solid var(--line); border-left: 0; }
  .highlight-route-consent { padding: 20px; }
  .highlight-route-consent-content { width: min(96%, 420px); gap: 10px; }
  .highlight-route-consent-content .button { min-width: min(100%, 240px); padding-inline: 16px; }
  .highlight-route-map-credit { right: 5px; bottom: 5px; font-size: .48rem; }
  .highlight-route-facts dd { font-size: .73rem; }
  .routes-overview-map { min-height: 0; height: auto; aspect-ratio: auto; }
  .routes-overview-map .map-hotspots a:nth-child(1) { top: 62%; left: 48%; }
  .routes-overview-map .map-hotspots a:nth-child(2) { top: 31%; right: 2%; }
  .routes-overview-map .map-hotspots a:nth-child(3) { top: 10%; left: 8%; }
  .routes-catalog { padding-block: 58px 98px; }
  .routes-catalog .path-group > header { align-items: flex-start; flex-direction: column; }
  .routes-catalog .path-group > header a { max-width: none; text-align: left; }
  .map-stage { min-height: 0; }
  .map-hotspots a { min-width: 94px; padding: 8px 11px; font-size: .91rem; }
  .map-hotspots a:nth-child(1) { top: 54%; left: 52%; }
  .map-hotspots a:nth-child(2) { top: 27%; right: 0; }
  .map-hotspots a:nth-child(3) { top: 6%; left: 6%; }
  .story-strip { grid-template-columns: 1fr; }
  .story-strip > div + div { border-left: 0; border-top: 1px solid var(--line); }
  .split-heading, .house-grid, .page-intro-grid, .route-hero-grid, .route-context-intro, .route-plan-grid, .route-charge-card, .naturepark-route-notice, .station-hero-grid, .station-content-grid, .mobility-teaser-grid, .mobility-hero-grid, .private-charge-grid, .public-network-grid, .mobility-proof-grid, .naturepark-teaser-grid, .about-why-grid, .about-place-grid, .about-architecture-grid, .about-innovation-grid, .about-people-grid, .apartments-hero-grid, .booking-readiness, .apartment-detail-hero-grid, .apartment-details-grid, .booking-preview, .impact-hero-grid, .impact-next, .project-status-inner, .partners-teaser-grid, .partners-hero-grid, .partner-category-heading, .partner-loi-grid, .partner-fund-grid { grid-template-columns: 1fr; }
  .project-status-summary { gap: 28px; }
  .project-countdown { justify-content: flex-start; }
  .project-countdown > span { justify-items: start; }
  .project-countdown-with-label > p { text-align: left; }
  .split-heading { gap: 28px; }
  .mode-card { display: block; }
  .mode-image { height: 290px; }
  .house-grid { gap: 52px; }
  .house-facts { grid-template-columns: 1fr; }
  .proof-note { grid-template-columns: 1fr; gap: 18px; }
  .impact-status-grid { grid-template-columns: repeat(2,1fr); }
  .impact-row { grid-template-columns: 1fr; gap: 8px; }
  .funding-package-grid, .funding-difference { grid-template-columns: 1fr; }
  .partner-proof { grid-template-columns: 1fr; gap: 8px; }
  .impact-next .hero-actions { grid-column: 1; }
  .site-footer { grid-template-columns: 1fr; gap: 20px; padding: 24px 20px 14px; }
  .footer-meta { justify-items: start; gap: 18px; }
  .footer-links { flex-wrap: wrap; justify-content: flex-start; white-space: normal; }
  .footer-funding { justify-items: start; }
  .footer-funding-logos { justify-content: flex-start; }
  .page-intro-grid { padding-block: 52px 38px; }
  .route-card { grid-template-columns: 1fr; }
  .route-card-image { min-height: 260px; }
  .mode-switch { grid-template-columns: 1fr; }
  .mode-switch a + a { border-left: 0; border-top: 1px solid var(--line); }
  .route-hero-grid { padding-block: 48px 62px; }
  .route-context-intro { gap: 34px; padding-block: 58px; }
  .route-context-heading h2 { max-width: none; }
  .route-fact-band .route-facts { width: min(100% - 32px, 1546px); grid-template-columns: 1fr 1fr; }
  .route-facts div:nth-child(3) { border-left: 0; }
  .route-facts div { padding: 20px 0; }
  .route-facts div + div { padding-left: 18px; }
  .station-section { padding-block: 84px; }
  .station-grid { grid-template-columns: 1fr; }
  .route-next { flex-direction: column; }
  .audio-card { grid-template-columns: 54px 1fr; padding: 30px 22px; }
  .audio-icon { width: 50px; height: 50px; }
  .audio-card button { grid-column: 1 / -1; }
  .photo-hero { min-height: 860px; }
  .photo-hero-content { min-height: 780px; padding-bottom: 150px; }
  .photo-hero-shade { background: linear-gradient(90deg, rgba(12,27,20,.82), rgba(12,27,20,.38)), linear-gradient(0deg, rgba(12,27,20,.74), transparent 52%); }
  .photo-credit { right: 16px; bottom: 162px; }
  .hero-facts { grid-template-columns: repeat(2, 1fr); }
  .hero-facts > a { min-height: 62px; }
  .hero-facts > a:nth-child(3) { grid-column: 1 / -1; border-left: 0; border-top: 1px solid rgba(255,255,255,.22); }
  .hirschberg-gallery { grid-template-columns: 1fr; grid-template-rows: none; }
  .hirschberg-gallery .gallery-large, .hirschberg-gallery .image-figure:nth-child(4) { grid-row: auto; grid-column: auto; }
  .hirschberg-gallery .image-figure { min-height: 310px; }
  .radius-grid { grid-template-columns: 1fr; gap: 54px; }
  .radius-section { padding-block: 84px; }
  .path-group > header { align-items: start; }
  .path-group > header a { max-width: 120px; text-align: right; }
  .path-rail { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
  .path-tile { min-height: 430px; }
  .culture-grid { grid-template-columns: 1fr; }
  .decision-grid, .guest-journey-grid, .sustainability-evidence, .route-profile-grid, .route-profile-grid.compact-profile-grid { grid-template-columns: 1fr; }
  .border-story-heading, .border-story-images { grid-template-columns: 1fr; }
  .border-story-heading { gap: 34px; }
  .border-story-images { gap: 30px; margin-top: 52px; }
  .border-story-section { padding-block: 84px; }
  .apartment-card { display: flex; }
  .apartment-facts { grid-template-columns: repeat(2, 1fr); }
  .apartment-facts > p:nth-child(3) { border-top: 1px solid var(--line); }
  .apartment-facts > p:nth-child(4) { border-top: 1px solid var(--line); }
  .about-principles-grid, .apartment-signature-grid { grid-template-columns: 1fr; }
  .about-chapter-nav { width: calc(100% - 32px); grid-template-columns: 1fr; margin-top: 0; }
  .about-chapter-nav a { min-height: 0; padding: 22px; border-right: 0; border-bottom: 1px solid var(--line); }
  .about-chapter-nav a:last-child { border-bottom: 0; }
  .about-hero, .about-hero-copy { min-height: 700px; }
  .decision-card { min-height: 450px; }
  .culture-card { grid-template-columns: 1fr; }
  .material-teaser-grid { grid-template-columns: 1fr 1fr; }
  .material-teaser-grid a { min-height: 190px; }
  .materials-hero-grid, .material-story, .material-closing-grid { grid-template-columns: 1fr; }
  .materials-hero-grid { gap: 36px; }
  .material-principles { padding-bottom: 74px; }
  .material-story { gap: 36px; padding-block: 58px; }
  .material-story:nth-child(even) .material-story-image { order: 0; }
  .mobility-teaser-facts { grid-template-columns: 1fr; }
  .mobility-teaser-facts span { min-height: 0; }
  .network-visual { position: static; }
  .charge-layer-table > div { grid-template-columns: 1fr 1fr; padding-block: 10px; }
  .charge-layer-head { display: none !important; }
  .mobility-proof-points p { grid-template-columns: 1fr; gap: 8px; }
  .charging-map-workspace { grid-template-columns: minmax(155px, 176px) minmax(0, 1fr); }
  .charging-map-toolbar { gap: 24px; padding: 20px 14px; }
  .charging-filters button { min-height: 60px; font-size: .845rem; }
  .charging-map-stage { height: auto; }
  .charging-map-layout { grid-template-columns: 1fr; }
  .charging-map-layout { height: auto; }
  .charging-map-canvas { min-height: 0; height: auto; aspect-ratio: var(--map-frame-aspect); }
  .charging-station-panel { height: 480px; border-top: 1px solid var(--line); border-left: 0; }
  .naturepark-teaser-image { min-height: 480px; }
  .naturepark-status-band .shell { grid-template-columns: 1fr; gap: 16px; }
  .naturepark-contribution-grid { grid-template-columns: 1fr; }
  .naturepark-route-grid { grid-template-columns: 1fr; }
  .naturepark-route-grid > a { min-height: 450px; }
  .naturepark-page-embedded .naturepark-hero { display: block; min-height: 650px; color: var(--white); }
  .naturepark-page-embedded .naturepark-hero > img { position: absolute; inset: 0; width: 100%; min-height: 0; }
  .naturepark-page-embedded .naturepark-hero-shade { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgba(12,29,20,.88), rgba(12,29,20,.52)), linear-gradient(0deg, rgba(12,29,20,.52), transparent 55%); }
  .naturepark-page-embedded .naturepark-hero-content { width: min(1546px, calc(100% - 64px)); min-height: 650px; margin-inline: auto; padding: 70px 0; }
  .naturepark-page-embedded .naturepark-hero .kicker { color: #c4d6bf; }
  .naturepark-page-embedded .naturepark-hero .large-copy { color: rgba(255,255,255,.82); }
  .naturepark-page-embedded .naturepark-hero .button.light { border-color: var(--white); color: var(--white); }
  .naturepark-page-embedded .naturepark-hero .button.light.filled { border-color: var(--white); background: var(--white); color: var(--ink); }
  .naturepark-page-embedded .naturepark-programme,
  .naturepark-page-embedded .naturepark-official,
  .naturepark-page-embedded .naturepark-process,
  .naturepark-page-embedded .naturepark-contribution,
  .naturepark-page-embedded .naturepark-routes { padding-block: 66px; }
  .naturepark-page-embedded .naturepark-principles { grid-template-columns: repeat(2, 1fr); }
  .naturepark-page-embedded .naturepark-contribution-grid { grid-template-columns: repeat(2, 1fr); }
  .naturepark-page-embedded .naturepark-official-links { grid-template-columns: 1fr; }
  .naturepark-page-embedded .naturepark-route-grid { grid-template-columns: repeat(2, 1fr); }
  .naturepark-page-embedded .naturepark-route-grid > a { min-height: 380px; }
  .naturepark-page-embedded .naturepark-process-list { grid-template-columns: repeat(2, 1fr); }
  .partner-category-nav { width: 100%; grid-template-columns: repeat(2, 1fr); }
  .partner-level-nav { width: 100%; grid-template-columns: 1fr; }
  .partner-level-nav a { min-height: 112px; }
  .partner-category-nav a { min-height: 96px; padding: 16px; }
  .partner-category-nav span { margin-bottom: 16px; }
  .partner-category { padding-block: 82px; }
  .partner-card-grid, .route-partner-grid { grid-template-columns: 1fr; }
  .partner-category-genuss .partner-card-grid { width: 100%; }
  .partner-card { min-height: 0; padding: 28px 22px; }
  .partner-card h3 { margin-top: 34px; }
  .partners-teaser { padding-block: 84px; }
  .partners-hero { padding-block: 94px 74px; }
  .partners-hero .partners-hero-intro { width: auto; max-width: 720px; margin: 0; font-size: clamp(1.1rem, 2.6vw, 1.34rem); }
  .featured-partners, .action-partners, .partner-directory-intro, .partner-fund { padding-block: 82px; }
  .partner-source-inner { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 560px) {
  .home-local-map { display: flex; aspect-ratio: auto; flex-direction: column; overflow: visible; }
  .home-local-map-canvas { height: auto; aspect-ratio: var(--map-frame-aspect); }
  .home-local-map-info { position: static; grid-template-columns: 1fr; gap: 9px; padding: 13px 14px; border: 0; border-top: 1px solid var(--line); box-shadow: none; backdrop-filter: none; }
  .home-local-map-info-copy > strong { font-size: 1rem; }
  .home-local-map-info-copy > p:last-child { font-size: .7rem; -webkit-line-clamp: 3; }
  .home-local-map-info-meta { min-width: 0; grid-template-columns: auto 1fr; align-items: baseline; gap: 10px; padding: 8px 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .home-local-map-info-meta small { text-align: right; }
  .home-local-map-info-actions { justify-content: space-between; }
  .home-local-map .geo-map-zoom-controls { right: 8px; bottom: 8px; grid-template-columns: 32px 32px auto; }
  .home-local-map .geo-map-zoom-controls button { min-width: 32px; min-height: 32px; }
  .home-local-map .geo-map-zoom-controls .geo-map-reset { min-width: 82px; padding-inline: 9px; }
  .path-rail {
    grid-auto-columns: 78vw;
    grid-auto-flow: column;
    grid-template-columns: none;
    margin-right: -16px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }
  .path-rail::-webkit-scrollbar { display: none; }
  .routes-overview-intro { min-height: 0; padding: 28px 0 0; }
  .routes-overview-intro > .shell { flex: none; }
  .routes-overview-workspace { gap: 52px; padding-top: 32px; }
  .routes-overview-copy h1 { max-width: none; font-size: clamp(2.9rem, 14.4vw, 3.35rem); }
  .routes-map-panel-heading h2 { max-width: 9ch; font-size: clamp(2.05rem, 10.5vw, 2.55rem); }
  .routes-map-levels { padding: 14px 12px 0; }
  .routes-map-level-copy > p:last-child { font-size: .7rem; }
  .routes-map-level-buttons button { min-height: 64px; padding: 7px 5px; text-align: center; }
  .routes-map-level-buttons button > strong { font-size: .66rem; }
  .routes-map-level-buttons button > small { display: block; font-size: .53rem; }
  .routes-overview-map { min-height: 0; height: auto; aspect-ratio: auto; }
  .routes-overview-map .route-map-placeholder-copy { padding: 24px 18px 58px; }
  .routes-overview-map .route-map-placeholder-copy > p:last-child { font-size: .8rem; line-height: 1.42; }
  .routes-overview-map .route-map-placeholder-action { right: 14px; bottom: 13px; font-size: .72rem; }
  .routes-map-caption { justify-items: start; gap: 3px; padding: 9px 2px 0; text-align: left; }
  .routes-map-caption strong { font-size: .84rem; }
  .routes-map-caption span { max-width: 330px; font-size: .65rem; }
  .map-place-label { max-width: min(150px, 48vw); font-size: .75rem; }
  .map-place-label[data-label-priority="B"],
  .map-place-label[data-label-priority="C"] { font-size: .72rem; }
  .routes-chapter-band { margin-top: 20px; }
  .routes-chapter-nav { grid-template-columns: 1fr; }
  .routes-chapter-nav a { min-height: 80px; grid-template-columns: 34px 1fr; gap: 4px 10px; padding: 12px 16px; }
  .routes-chapter-nav span { font-size: .68rem; }
  .routes-chapter-nav strong { font-size: .82rem; }
  .routes-chapter-nav small { font-size: .66rem; }
  .apartment-development-heading { grid-template-columns: 1fr; align-items: start; }
  .apartment-development-heading h2 { font-size: clamp(2.05rem, 9.8vw, 2.45rem); overflow-wrap: anywhere; text-align: left; }
  .apartment-future-heading { margin-top: 54px; }
  .apartment-future-heading > span { display: none; }
  .apartment-development-grid { grid-template-columns: 1fr; }
  .apartment-development-card figcaption { align-items: flex-start; flex-direction: column; gap: 8px; }
  .apartment-development-card figcaption span { text-align: left; }
  .naturepark-page-embedded .naturepark-principles,
  .naturepark-page-embedded .naturepark-contribution-grid,
  .naturepark-page-embedded .naturepark-route-grid,
  .naturepark-page-embedded .naturepark-process-list { grid-template-columns: 1fr; }
  .naturepark-page-embedded .naturepark-principles article,
  .naturepark-page-embedded .naturepark-contribution-grid article,
  .naturepark-page-embedded .naturepark-process-list article { min-height: 0; }
  .naturepark-page-embedded .naturepark-route-grid > a { min-height: 410px; }
}

@media (max-width: 520px) {
  .site-header { padding-left: 16px; }
  .brand-logo { width: 120px; }
  .brand-copy { margin-left: -40px; transform: translateY(-8px); }
  .brand strong { font-size: 1.5rem; }
  .brand small { font-size: .765rem; }
  .hero-actions { flex-direction: column; }
  .button { width: 100%; }
  .highlight-route-dossier { width: fit-content; }
  .map-caption { justify-content: flex-start; }
  .criteria-grid { grid-template-columns: 1fr; }
  .station-card { grid-template-columns: 34px 1fr 18px; padding: 24px 18px; }
  .practical-card, .release-card { padding: 30px 22px; }
  .check-grid { grid-template-columns: 1fr; }
  .photo-hero h1 { font-size: clamp(3.1rem, 17vw, 5.2rem); }
  .hero-facts > a { padding: 12px 16px; }
  .hero-facts strong { font-size: 1.25rem; }
  .impact-status-grid { grid-template-columns: 1fr; }
  .season-line { grid-template-columns: repeat(2, 1fr); }
  .season-line span:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
  .season-line span:nth-child(4) { border-top: 1px solid var(--line); }
  .material-principles { grid-template-columns: 1fr; }
  .material-principles article, .material-principles article:nth-child(3) { border-left: 1px solid var(--line); }
  .material-actions { grid-template-columns: 1fr; }
  .material-teaser-grid { grid-template-columns: 1fr; }
  .charge-card { min-height: 0; padding: 34px 24px; }
  .charge-symbol { margin-bottom: 48px; }
  .charge-steps { grid-template-columns: 1fr; }
  .network-diagram { grid-template-columns: 1fr; }
  .network-home { grid-column: auto; }
  .charge-layer-table > div { grid-template-columns: 1fr; }
  .route-charge-card { padding: 30px 22px; }
  .route-profile-actions { display: grid; }
  .charging-live-map { padding-block: 84px; scroll-margin-top: 108px; }
  .charging-live-map .section-heading { margin-bottom: 26px; }
  .charging-map-workspace { grid-template-columns: 1fr; }
  .charging-map-toolbar { align-items: stretch; flex-direction: column; gap: 14px; padding: 16px; border-right: 1px solid var(--line); border-bottom: 0; }
  .charging-map-toolbar .kicker { margin-bottom: 12px; }
  .charging-map-availability { display: block; max-width: none; font-size: .78rem; }
  .charging-map-toolbar > span { padding-top: 0; border-top: 0; font-size: .741rem; }
  .charging-filters { width: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); border-left: 1px solid var(--line); }
  .charging-filters button { min-height: 54px; padding-inline: 6px; border-right: 1px solid var(--line); font-size: .78rem; text-align: center; }
  .charging-map-stage { min-height: 420px; }
  .charging-map-stage { height: auto; }
  .charging-map-layout { height: auto; }
  .charging-map-canvas { min-height: 0; height: auto; aspect-ratio: var(--map-frame-aspect); }
  .charging-map-message { min-height: 418px; padding: 28px 20px; }
  .charging-home-marker { max-width: 140px; white-space: normal; }
  .charging-town { display: none; }
  .charging-station-panel { height: 500px; padding: 30px 22px; }
  .naturepark-principles { grid-template-columns: 1fr; }
  .naturepark-teaser-facts p { grid-template-columns: 1fr; gap: 7px; }
  .naturepark-process-list article { grid-template-columns: 44px 1fr; gap: 16px; }
  .naturepark-process-list em { grid-column: 2; width: fit-content; }
  .naturepark-contribution-grid article { grid-template-columns: 38px 1fr; padding: 25px 18px; }
  .naturepark-official-links > a { grid-template-columns: 34px 1fr 20px; gap: 12px; padding-inline: 0; }
  .naturepark-hero, .naturepark-hero-content { min-height: 700px; }
  .booking-preview fieldset { grid-template-columns: 1fr; padding: 24px; }
  .booking-preview label, .booking-preview label:nth-child(3), .booking-preview button { grid-column: auto; }
  .apartment-signature-card-layout { grid-template-columns: 1fr; }
  .apartment-signature-portrait { aspect-ratio: 4 / 3; }
}

@media (max-width: 980px) {
  .prototype-map-desktop-filters,
  .prototype-map-info-column { display: none; }
  .prototype-map-filter-button {
    position: absolute;
    z-index: 24;
    top: 10px;
    left: 10px;
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    gap: 7px;
    padding: 8px 12px;
    border: 1px solid rgba(23,35,30,.22);
    border-radius: 999px;
    background: rgba(251,250,246,.94);
    color: var(--ink);
    box-shadow: 0 5px 16px rgba(23,35,30,.12);
    cursor: pointer;
    font-size: .69rem;
    font-weight: 760;
    pointer-events: auto;
  }
  .prototype-map-filter-button:hover,
  .prototype-map-filter-button:focus-visible { border-color: var(--moss-dark); background: var(--moss-dark); color: var(--white); }
  .prototype-map-filter-button > span { font-size: .85rem; }
  .prototype-map-active-status {
    position: absolute;
    z-index: 23;
    top: 10px;
    right: 10px;
    display: block;
    margin: 0;
    padding: 7px 10px;
    border: 1px solid var(--moss-dark);
    border-radius: 999px;
    background: var(--moss-dark);
    color: var(--white);
    box-shadow: 0 5px 16px rgba(23,35,30,.12);
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .02em;
    pointer-events: none;
  }
  .prototype-filter-overlay { display: block; }
  .prototype-filter-sheet { bottom: 8px; max-height: calc(100% - 16px); }
  .prototype-map-mobile-detail { position: absolute; z-index: 44; inset: 0; display: block; pointer-events: none; }
  .prototype-poi-detail {
    position: absolute;
    top: auto;
    right: 8px;
    bottom: 8px;
    left: 8px;
    width: auto;
    max-height: calc(100% - 16px);
    height: auto;
    overflow: auto;
    border: 1px solid rgba(23,35,30,.24);
    border-radius: 8px;
    background: rgba(251,250,246,.98);
    box-shadow: 0 14px 40px rgba(23,35,30,.23);
    pointer-events: auto;
  }
  .prototype-poi-detail-inner { gap: 9px; padding: 13px 14px 14px; }
  .prototype-poi-detail-image img { height: 104px; }
  .prototype-map-visible-count { bottom: 9px; left: 10px; display: block; }
  .prototype-map-dialog-workspace { display: block; }
  .prototype-map-dialog-body {
    display: grid;
    height: 100%;
    grid-template-columns: minmax(0, 1fr);
    place-items: center;
  }
  .prototype-map-dialog-body > .geo-map-canvas { width: 100%; height: auto; max-height: 100%; aspect-ratio: var(--map-frame-aspect); }
}

@media (hover: none) {
  .prototype-map-marker:hover i { opacity: 0; }
  .prototype-map-marker-shell.is-active .prototype-map-marker i { opacity: 1; }
}

@media (max-width: 560px) {
  .prototype-map-filter-button { top: 8px; left: 8px; min-height: 32px; padding: 6px 10px; font-size: .64rem; }
  .prototype-map-active-status { top: 8px; right: 8px; padding: 6px 8px; font-size: .56rem; }
  .prototype-map-visible-count { bottom: 7px; left: 8px; padding: 4px 7px; font-size: .54rem; }
  .prototype-filter-sheet { right: 6px; bottom: 6px; left: 6px; max-height: calc(100% - 12px); gap: 6px; padding: 8px; }
  .prototype-filter-sheet > header strong { font-size: .88rem; }
  .prototype-filter-sheet > header button { width: 24px; height: 24px; }
  .prototype-filter-sheet .prototype-filter-groups { gap: 5px; }
  .prototype-filter-sheet .prototype-filter-group { display: block; }
  .prototype-filter-sheet .prototype-filter-group::after { display: block; clear: both; content: ""; }
  .prototype-filter-sheet .prototype-filter-group legend { float: left; width: 54px; margin: 0; padding-top: 7px; font-size: .49rem; }
  .prototype-filter-sheet .prototype-filter-options { margin-left: 58px; }
  .prototype-filter-sheet .prototype-filter-options { gap: 3px; }
  .prototype-filter-sheet .prototype-filter-options:not(.prototype-filter-checkbox-options) span { min-height: 23px; padding: 3px 7px; font-size: .57rem; }
  .prototype-filter-sheet .prototype-filter-theme,
  .prototype-filter-sheet .prototype-filter-role { display: grid; gap: 2px; }
  .prototype-filter-sheet .prototype-filter-theme legend,
  .prototype-filter-sheet .prototype-filter-role legend { float: none; width: auto; padding-top: 0; }
  .prototype-filter-sheet .prototype-filter-checkbox-options { margin-left: 0; }
  .prototype-filter-sheet .prototype-filter-checkbox-options label { min-height: 44px; padding: 7px 8px; }
  .prototype-filter-sheet .prototype-filter-checkbox-options span { min-height: 0; padding: 0; font-size: .6rem; }
  .prototype-filter-apply { display: none; }
  .prototype-poi-detail { right: 6px; bottom: 6px; left: 6px; max-height: calc(100% - 12px); }
  .prototype-poi-detail-image img { height: 82px; }
  .prototype-poi-detail-inner { gap: 7px; padding: 10px 11px 11px; }
  .prototype-poi-detail header { gap: 8px; }
  .prototype-poi-detail h3 { font-size: .94rem; }
  .prototype-poi-detail header p { font-size: .5rem; }
  .prototype-poi-description { font-size: .64rem; line-height: 1.35; }
  .prototype-poi-detail-line { padding-top: 6px; }
  .prototype-poi-detail-line strong { font-size: .5rem; }
  .prototype-poi-detail-line p { font-size: .58rem; line-height: 1.33; }
  .prototype-poi-tour-links { padding-top: 6px; }
  .prototype-poi-tour-links > strong { font-size: .5rem; }
  .prototype-poi-tour-links a { min-height: 44px; padding: 7px 9px; font-size: .59rem; }
  .prototype-poi-tour-links small { font-size: .46rem; }
  .prototype-poi-cta { min-height: 32px; padding: 7px 10px; font-size: .61rem; }
  .prototype-map-marker i { max-width: 150px; font-size: .56rem; }
}

/* Über uns: Hilmars redaktionelle DE-Erweiterung. Die Bild-Slots bleiben austauschbar. */
.about-editorial-hero {
  isolation: isolate;
  min-height: 0;
}
/* Die Fahrt über den alten Stich, und warum sie hier anders läuft als im
   Entwurf.

   Der Kandidat lässt das Bild in 7,5 Sekunden auf 1.08 wachsen und wieder
   zurück, endlos, um den Punkt 33% 72% — das ist die Uferwiese, nicht der Ort.
   Hilmar hat um das gebeten, was eine frühere Fassung konnte: eine Fahrt, die
   nicht zurückspringt, den Baum im Vordergrund nach rechts aus dem Bild
   schiebt und auf dem Ort links der Kirche endet, wo das Haus steht.

   Genau das steht hier. Der Ursprung liegt jetzt auf dem Ort (28% 52% der
   Fläche), die Fahrt läuft einmal und bleibt stehen — `forwards`, kein
   `alternate` —, und sie dauert lange genug, um als Blick und nicht als
   Bewegung gelesen zu werden.

   Zwei Zahlen entscheiden alles und lassen sich einzeln drehen: der Ursprung
   sagt, worauf zugefahren wird, der Endwert von scale(), wie nah. Weiter als
   1.45 geht sinnvoll nicht: die Vorlage ist 1474 Pixel breit, und ab etwa 1.5
   sieht man dem Stich die Vergrößerung an.

   ACHTUNG beim Abgleich mit dem Kandidaten: dieser Block weicht bewusst ab.
   Wer die Stylesheets vergleicht, findet hier Unterschiede, und sie sind kein
   Rückstand, den man nachziehen müsste.

   Der Selektor nennt das Element, und das ist hier keine Pedanterie.

   Der Kandidat hat an dieser Stelle ein nacktes <img>. WordPress verpackt jedes
   Bild in eine <figure>, und der Export schreibt die Klassen des Bildes auch an
   diese Verpackung — anderswo ist genau das nötig, damit Zuschnitt und
   Bildnachweis sitzen. Ein klassenbasierter Selektor trifft dann beide, und
   beide bekamen dieselbe Fahrt: die Maßstäbe multiplizieren sich, aus 1.45 wird
   1.45 × 1.45 ≈ 2.1. Beim alten Wert 1.08 waren es 1.17 — zu wenig, um
   aufzufallen, und deshalb stand der Fehler lange unbemerkt da.

   Darum steht vor der Klasse jetzt das Tag. Die <figure> hält nur noch den
   Rahmen; bewegt wird das Bild. */
figure.about-editorial-hero-image {
  position: absolute;
  inset: 0;
  margin: 0;
  animation: none;
  transform: none;
}
img.about-editorial-hero-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 28%;
  transform-origin: 28% 52%;
  animation: about-editorial-hero-zoom 20s cubic-bezier(.22, .61, .36, 1) forwards;
  will-change: transform;
}
@keyframes about-editorial-hero-zoom {
  from { transform: scale(1); }
  to { transform: scale(1.45); }
}
.about-editorial-hero-placeholder {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 76% 26%, rgba(196, 180, 139, .2), transparent 24%),
    linear-gradient(125deg, #23382e 0%, #31483a 46%, #806f55 100%);
}
.about-editorial-hero-placeholder span {
  position: absolute;
  right: clamp(24px, 4vw, 72px);
  top: clamp(24px, 4vw, 56px);
  padding: 9px 12px;
  border: 1px solid rgba(255,255,255,.22);
  color: rgba(255,255,255,.7);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.about-editorial-hero .about-hero-shade {
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(8, 27, 20, .93) 0%, rgba(8, 27, 20, .74) 40%, rgba(8, 27, 20, .18) 72%, rgba(8, 27, 20, .08) 100%),
    linear-gradient(0deg, rgba(8, 27, 20, .42), transparent 46%);
}
.about-editorial-hero-copy {
  min-height: 0;
  justify-content: center;
  padding-block: clamp(44px, 6vh, 82px);
}
.about-editorial-hero-copy .kicker { max-width: 650px; }
.about-editorial-hero-copy h1 {
  max-width: 6.6ch;
  margin: clamp(17px, 2.4vh, 28px) 0 clamp(22px, 3vh, 36px);
  font-size: clamp(4.4rem, 6.8vw, 7.5rem);
  line-height: .83;
}
.about-editorial-hero-copy h1 span { display: block; }
.about-editorial-lead { max-width: 670px; }
.about-editorial-lead p {
  margin: 0;
  color: rgba(255,255,255,.9);
  font-size: clamp(1.02rem, 1.24vw, 1.35rem);
  line-height: 1.52;
}
.about-editorial-lead p + p { margin-top: 1.15em; }
.about-editorial-caption {
  position: absolute;
  z-index: 3;
  color: rgba(255,255,255,.78);
  font-size: .67rem;
  line-height: 1.4;
}
.about-editorial-hero-caption { right: 22px; bottom: 18px; }
@media (prefers-reduced-motion: reduce) {
  .about-editorial-hero-image { animation: none; transform: none; }
}
.about-editorial-chapter-nav {
  width: 100%;
  max-width: none;
  background: #0d3227;
  box-shadow: none;
}
.about-editorial-chapter-nav a {
  border-color: rgba(255,255,255,.18);
  color: var(--white);
}
.about-editorial-chapter-nav span { color: #d7b779; }
.about-editorial-chapter-nav small { color: rgba(255,255,255,.68); }
.about-editorial-chapter-nav a:hover,
.about-editorial-chapter-nav a:focus-visible { background: #174638; }

.about-editorial-location-chapter,
.about-editorial-quote-chapter { background: var(--ink); }
.about-editorial-location {
  display: grid;
  min-height: inherit;
  grid-template-columns: minmax(410px, .74fr) minmax(0, 1.26fr);
}
.about-editorial-location-copy {
  position: relative;
  z-index: 1;
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  padding: clamp(74px, 7vw, 122px) clamp(48px, 5vw, 92px);
  background: #0d3227;
  color: var(--white);
}
.about-editorial-location-copy::before {
  position: absolute;
  inset: 0 0 auto;
  height: 58px;
  background: linear-gradient(180deg, rgba(91,127,137,.38), rgba(13,50,39,0));
  content: "";
  pointer-events: none;
}
.about-editorial-location-copy .kicker { color: #b8d0bb; }
.about-editorial-location-copy h2 {
  max-width: 11.5ch;
  margin: 26px 0 34px;
  font-size: clamp(2.45rem, 3vw, 4rem);
}
.about-editorial-location-copy > div { max-width: 700px; }
.about-editorial-location-copy > div p {
  margin: 0;
  color: rgba(255,255,255,.86);
  font-size: clamp(.98rem, 1.08vw, 1.22rem);
  line-height: 1.58;
}
.about-editorial-location-copy > div p + p { margin-top: 1.15em; }
.about-editorial-location-media {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  background: #eee7d9;
}
.about-editorial-location-media img { width: 100%; height: 100%; object-fit: cover; }

.about-editorial-quote {
  position: relative;
  isolation: isolate;
  min-height: inherit;
  overflow: hidden;
  background: #0a2c22;
  color: var(--white);
}
.about-editorial-quote > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 42% 52%;
}
.about-editorial-quote-shade {
  position: absolute;
  z-index: 1;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(5,27,20,.04) 0%, rgba(5,27,20,.14) 33%, rgba(5,27,20,.76) 59%, rgba(5,27,20,.97) 100%),
    linear-gradient(0deg, rgba(5,27,20,.3), transparent 40%);
}
.about-editorial-quote-copy {
  position: relative;
  z-index: 2;
  display: flex;
  width: 50%;
  min-height: inherit;
  margin-left: auto;
  flex-direction: column;
  justify-content: center;
  padding: clamp(64px, 7vw, 118px) clamp(48px, 5.5vw, 112px) clamp(70px, 7vw, 120px) clamp(38px, 4vw, 78px);
}
.about-editorial-quote-copy .kicker { color: #c8d9cc; }
.about-editorial-quote-copy h2 {
  max-width: 11ch;
  margin: 24px 0 34px;
  font-size: clamp(3.1rem, 4.4vw, 5.5rem);
}
.about-editorial-quote-copy blockquote {
  max-width: 780px;
  margin: 0;
  font-size: clamp(1.55rem, 2vw, 2.35rem);
  line-height: 1.28;
}
.about-editorial-quote-sender {
  margin: 22px 0 0;
  color: rgba(255,255,255,.82);
  font-size: .82rem;
  line-height: 1.5;
}
.about-editorial-quote-sender strong { letter-spacing: .05em; }
.about-editorial-quote-closing {
  margin: 42px 0 0;
  font-size: .9rem;
  font-weight: 800;
  letter-spacing: .15em;
  line-height: 1.5;
  text-transform: uppercase;
}
.about-editorial-quote-caption { left: 24px; bottom: 18px; max-width: 440px; }

/* Über uns: Kontaktabschluss vor dem bestehenden Footer. */
.about-contact-chapter { background: var(--paper); }
.about-contact {
  display: grid;
  min-height: inherit;
  grid-template-columns: minmax(0, .48fr) minmax(0, .52fr);
}
.about-contact-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  padding: clamp(28px, 2.3vw, 38px) clamp(42px, 5.2vw, 92px);
}
.about-contact-copy .kicker { color: var(--moss); }
.about-contact-copy h2 {
  max-width: 10.5ch;
  margin: 12px 0;
  font-size: clamp(3rem, 4.25vw, 5rem);
  line-height: .96;
}
.about-contact-lead {
  max-width: 650px;
  margin: 0 0 clamp(16px, 2vh, 22px);
  color: var(--ink-soft);
  font-size: clamp(.98rem, 1.08vw, 1.16rem);
  line-height: 1.55;
}
.about-contact-form {
  display: grid;
  width: 100%;
  max-width: 680px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 28px;
}
.about-contact-field { display: grid; min-width: 0; gap: 7px; }
.about-contact-field-wide { grid-column: 1 / -1; }
.about-contact-field > span {
  color: var(--ink-soft);
  font-size: .76rem;
  font-weight: 650;
  letter-spacing: .02em;
}
.about-contact-field input,
.about-contact-field textarea {
  width: 100%;
  padding: 7px 0 10px;
  border: 0;
  border-bottom: 1px solid rgba(23, 35, 30, .36);
  border-radius: 0;
  outline: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}
.about-contact-field textarea { min-height: 54px; resize: vertical; }
.about-contact-field input:focus,
.about-contact-field textarea:focus {
  border-color: var(--moss-dark);
  box-shadow: inset 0 -1px var(--moss-dark);
}
.about-contact-submit {
  width: fit-content;
  min-height: 46px;
  margin-top: 2px;
  padding: 11px 19px;
  cursor: pointer;
  font-size: .9rem;
}
.about-contact-direct {
  align-self: center;
  margin: 0;
  color: var(--ink-soft);
  font-size: .78rem;
}
.about-contact-direct a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.about-contact-status {
  grid-column: 1 / -1;
  margin: -7px 0 0;
  color: var(--moss-dark);
  font-size: .76rem;
}
.about-contact-media {
  position: relative;
  min-width: 0;
  min-height: inherit;
  margin: 0;
  overflow: hidden;
  background: linear-gradient(180deg, #d5d9df 0%, #c9c9bf 58%, #81775d 100%);
}
.about-contact-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: 50% 50%;
}

@media (min-width: 981px) {
  .about-editorial-intro {
    display: grid;
    min-height: calc(100svh - var(--site-header-height));
    min-height: calc(100dvh - var(--site-header-height));
    grid-template-rows: minmax(0, 1fr) auto;
  }
  .about-page .about-editorial-intro .about-editorial-hero,
  .about-page .about-editorial-intro .about-editorial-hero-copy { min-height: 0; }
  .about-page .about-editorial-location-chapter,
  .about-page .about-editorial-quote-chapter,
  .about-page .about-place-chapter,
  .about-page .about-contact-chapter {
    min-height: calc(100svh - var(--site-header-height));
    min-height: calc(100dvh - var(--site-header-height));
  }
  .about-page .about-place-chapter {
    display: flex;
    align-items: center;
    background: var(--paper-deep);
  }
  .about-page .about-place-chapter > .about-place { width: 100%; }
}

@media (min-width: 981px) and (max-width: 1180px) {
  :root { --site-header-height: 88px; }
}

@media (max-width: 980px) {
  :root { --site-header-height: 118px; }
  .footer-meta { max-width: none; justify-self: start; }
  .about-editorial-intro { display: grid; }
  .about-editorial-hero,
  .about-editorial-hero-copy { min-height: 670px; }
  .about-editorial-location { grid-template-columns: 1fr; }
  .about-editorial-location-copy { min-height: auto; padding-block: 82px; }
  .about-editorial-location-copy h2 { max-width: 12ch; }
  .about-editorial-location-media { min-height: 520px; }
  .about-editorial-quote { min-height: 780px; }
  .about-editorial-quote-copy { width: 60%; padding-inline: 34px 46px; }
  .about-contact { grid-template-columns: 1fr; }
  .about-contact-copy { padding: 76px 32px 66px; }
  .about-contact-copy h2 { max-width: 11ch; }
  .about-contact-media { min-height: 0; aspect-ratio: 4 / 3; }
  .about-contact-media img {
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 0;
    transform: none;
  }
}

@media (max-width: 780px) {
  :root { --site-header-height: 108px; }
  .about-editorial-hero,
  .about-editorial-hero-copy { min-height: 660px; }
  img.about-editorial-hero-image { object-position: 64% 28%; }
  .about-contact-copy { padding: 64px 20px 58px; }
  .about-contact-copy h2 { font-size: clamp(2.65rem, 9.5vw, 3.8rem); }
  .about-editorial-hero-copy { justify-content: flex-end; padding-block: 68px 86px; }
  .about-editorial-hero-copy h1 { font-size: clamp(3.75rem, 18vw, 5.25rem); }
  .about-editorial-hero-placeholder span { right: 16px; top: 16px; font-size: .58rem; }
  .about-editorial-hero-caption { right: 16px; bottom: 18px; left: 16px; text-align: right; }
  .about-editorial-chapter-nav { width: 100%; }
  .about-editorial-chapter-nav a { padding-inline: 18px; }
  .about-editorial-location-copy { padding: 78px 20px 64px; }
  .about-editorial-location-copy h2 { max-width: 10ch; font-size: clamp(3rem, 13vw, 4.45rem); }
  .about-editorial-location-copy > div p { font-size: 1rem; }
  .about-editorial-location-media { min-height: 0; aspect-ratio: 1 / 1; }
  .about-editorial-quote {
    display: grid;
    min-height: 0;
    grid-template-rows: auto auto auto;
  }
  .about-editorial-quote > img {
    position: relative;
    height: auto;
    aspect-ratio: 4 / 3;
    object-position: center;
  }
  .about-editorial-quote-shade { display: none; }
  .about-editorial-quote-copy {
    width: 100%;
    min-height: 0;
    padding: 62px 20px 76px;
  }
  .about-editorial-quote-copy h2 { max-width: 11ch; font-size: clamp(3rem, 13vw, 4.3rem); }
  .about-editorial-quote-copy blockquote { font-size: clamp(1.35rem, 6vw, 1.8rem); }
  .about-editorial-quote-caption {
    position: relative;
    inset: auto;
    order: -1;
    padding: 10px 16px 12px;
    background: #0a2c22;
  }
}

@media (max-width: 540px) {
  .about-contact-form { grid-template-columns: 1fr; gap: 19px; }
  .about-contact-field-wide { grid-column: auto; }
  .about-contact-submit { width: 100%; }
  .about-contact-direct { align-self: start; }
  .about-contact-status { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* NaturMomente: unlisted Jury-Dump in der bestehenden Winkelglueck-Kapitellogik. */
.naturmomente-page { background: var(--paper); }
.naturmomente-chapter { position: relative; min-height: calc(100svh - var(--site-header-height)); scroll-margin-top: var(--site-header-height); }
.naturmomente-section-inner { display: grid; min-height: inherit; align-content: center; padding-block: clamp(68px, 7vw, 116px); }
.naturmomente-section-heading { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(320px, .72fr); align-items: end; gap: clamp(40px, 7vw, 112px); margin-bottom: clamp(34px, 4vw, 60px); }
.naturmomente-section-heading h2 { max-width: 10ch; margin: 20px 0 0; font-size: clamp(3.2rem, 5.2vw, 6.4rem); }
.naturmomente-section-heading > p { max-width: 680px; margin: 0; color: var(--ink-soft); }

.naturmomente-chapter-hero { display: grid; min-height: calc(100svh - var(--site-header-height)); overflow: hidden; grid-template-rows: minmax(0, 1fr) auto; background: var(--ink); color: var(--white); }
.naturmomente-chapter-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 42%; }
.naturmomente-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,27,20,.96) 0%, rgba(8,27,20,.79) 48%, rgba(8,27,20,.3) 78%), linear-gradient(0deg, rgba(8,27,20,.72), transparent 52%); }
.naturmomente-hero-copy { position: relative; z-index: 2; display: grid; min-height: 0; grid-template-columns: minmax(0, 1.25fr) minmax(340px, .75fr); align-items: center; gap: clamp(44px, 7vw, 110px); padding-block: clamp(42px, 5vh, 72px); }
.naturmomente-hero-copy .kicker { color: #c8d9cc; }
.naturmomente-hero-copy h1 { max-width: 9.3ch; margin: 22px 0 28px; font-size: clamp(4rem, 6.4vw, 7.5rem); }
.naturmomente-hero-copy .large-copy { max-width: 790px; margin-bottom: 0; color: rgba(255,255,255,.84); font-size: clamp(1rem, 1.3vw, 1.35rem); }
.naturmomente-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 24px; margin-top: 28px; }
.naturmomente-hero-actions > span { max-width: 390px; color: rgba(255,255,255,.62); font-size: .78rem; line-height: 1.5; }
.naturmomente-project-context { padding: clamp(28px, 3vw, 44px); border: 1px solid rgba(255,255,255,.22); background: rgba(13,50,39,.72); backdrop-filter: blur(14px); }
.naturmomente-project-context h2 { margin: 28px 0 20px; font-size: clamp(2.1rem, 3vw, 3.5rem); }
.naturmomente-project-context p { margin: 0; color: rgba(255,255,255,.78); font-size: 1rem; }
.naturmomente-chapter-nav { position: relative; z-index: 3; display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); border-top: 1px solid rgba(255,255,255,.2); background: rgba(10,39,30,.92); }
.naturmomente-chapter-nav a { display: grid; min-height: 92px; grid-template-rows: auto 1fr; gap: 8px; padding: 16px 14px; border-right: 1px solid rgba(255,255,255,.16); transition: background .2s ease; }
.naturmomente-chapter-nav a:last-child { border-right: 0; }
.naturmomente-chapter-nav a:hover, .naturmomente-chapter-nav a:focus-visible { background: #174638; }
.naturmomente-chapter-nav span { color: #d7b779; font-size: .7rem; font-weight: 800; letter-spacing: .1em; }
.naturmomente-chapter-nav strong { color: rgba(255,255,255,.88); font-size: .78rem; line-height: 1.25; }

.naturmomente-chapter-light { background: var(--white); }
.naturmomente-chapter-paper { background: var(--paper); }
.naturmomente-chapter-river { background: var(--river-dark); color: var(--white); }
.naturmomente-chapter-dark { background: var(--ink); color: var(--white); }
.naturmomente-chapter-moss { background: var(--moss-dark); color: var(--white); }
.naturmomente-chapter-river .kicker, .naturmomente-chapter-dark .kicker, .naturmomente-chapter-moss .kicker { color: #c8d9cc; }
.naturmomente-chapter-river .naturmomente-section-heading > p,
.naturmomente-chapter-dark .naturmomente-section-heading > p,
.naturmomente-chapter-moss .naturmomente-section-heading > p { color: rgba(255,255,255,.7); }

.naturmomente-apartment-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.naturmomente-apartment-grid article { display: grid; min-width: 0; grid-template-rows: 190px 1fr; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper); }
.naturmomente-apartment-grid img { width: 100%; height: 100%; object-fit: cover; }
.naturmomente-apartment-grid article > div { padding: 24px; }
.naturmomente-apartment-grid article > div > span { color: var(--moss); font-size: .73rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.naturmomente-apartment-grid h3 { margin: 20px 0 8px; font-size: 1.55rem; }
.naturmomente-apartment-grid p { margin: 0 0 14px; color: var(--ink-soft); font-size: .88rem; line-height: 1.48; }
.naturmomente-apartment-grid a, .naturmomente-section-link { color: var(--moss-dark); font-size: .88rem; font-weight: 800; text-decoration: underline; text-underline-offset: 4px; }
.naturmomente-card-meta { color: var(--clay-dark) !important; font-size: .78rem !important; font-weight: 700; }

.naturmomente-topic-grid { display: grid; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.naturmomente-topic-grid-four { grid-template-columns: repeat(4, 1fr); }
.naturmomente-topic-grid-three { grid-template-columns: repeat(3, 1fr); }
.naturmomente-topic-grid article { position: relative; min-height: 270px; padding: 26px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.naturmomente-topic-grid article > span { color: var(--clay); font-size: .75rem; font-weight: 800; letter-spacing: .1em; }
.naturmomente-topic-grid h3 { margin: 44px 0 14px; font-size: 1.45rem; }
.naturmomente-topic-grid p { margin: 0; color: var(--ink-soft); font-size: .92rem; line-height: 1.5; }
.naturmomente-topic-grid a { display: inline-block; margin-top: 20px; color: var(--moss-dark); font-size: .82rem; font-weight: 800; }
.naturmomente-chapter-river .naturmomente-topic-grid,
.naturmomente-chapter-dark .naturmomente-topic-grid { border-color: rgba(255,255,255,.18); }
.naturmomente-chapter-river .naturmomente-topic-grid article,
.naturmomente-chapter-dark .naturmomente-topic-grid article { border-color: rgba(255,255,255,.18); }
.naturmomente-chapter-river .naturmomente-topic-grid article > span,
.naturmomente-chapter-dark .naturmomente-topic-grid article > span { color: #d7b779; }
.naturmomente-chapter-river .naturmomente-topic-grid p,
.naturmomente-chapter-dark .naturmomente-topic-grid p { color: rgba(255,255,255,.7); }
.naturmomente-inline-links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }

.naturmomente-material-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.naturmomente-material-grid article { display: grid; min-height: 230px; grid-template-columns: 34px 1fr; gap: 10px; padding: 22px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.naturmomente-material-grid article > span { color: var(--clay); font-size: .72rem; font-weight: 800; }
.naturmomente-material-grid h3 { margin: 7px 0 12px; font-size: 1.28rem; }
.naturmomente-material-grid p { margin: 0 0 12px; color: var(--ink-soft); font-size: .79rem; line-height: 1.44; }
.naturmomente-material-grid em { display: block; width: fit-content; margin-bottom: 14px; padding: 5px 8px; background: #dde6dc; color: var(--moss-dark); font-size: .68rem; font-style: normal; font-weight: 800; }
.naturmomente-material-grid a { color: var(--moss-dark); font-size: .76rem; font-weight: 800; }
.naturmomente-section-link { display: inline-block; margin-top: 24px; }

.naturmomente-partner-summary { display: grid; grid-template-columns: repeat(5, 1fr); margin-bottom: 28px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.naturmomente-partner-summary p { display: grid; margin: 0; padding: 20px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.naturmomente-partner-summary strong { color: var(--clay-dark); font-size: 2rem; }
.naturmomente-partner-summary span { margin-top: 8px; color: var(--ink-soft); font-size: .72rem; line-height: 1.35; }
.naturmomente-partner-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.naturmomente-partner-grid article { min-height: 260px; padding: 24px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(251,250,246,.5); }
.naturmomente-partner-grid h3 { margin: 28px 0 9px; font-size: 1.35rem; }
.naturmomente-partner-grid p { margin: 0 0 12px; color: var(--ink-soft); font-size: .82rem; line-height: 1.48; }

.naturmomente-metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255,255,255,.2); border-left: 1px solid rgba(255,255,255,.2); }
.naturmomente-metric-grid article { display: grid; min-height: 210px; align-content: space-between; padding: 26px; border-right: 1px solid rgba(255,255,255,.2); border-bottom: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.04); }
.naturmomente-metric-grid strong { color: #d7b779; font-size: clamp(2.4rem, 4vw, 4.7rem); letter-spacing: -.055em; }
.naturmomente-metric-grid span { max-width: 250px; color: rgba(255,255,255,.86); font-size: .92rem; line-height: 1.38; }
.naturmomente-metric-grid em { color: #b8d0bb; font-size: .7rem; font-style: normal; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.naturmomente-measurement-table { margin-top: 32px; border-top: 1px solid rgba(255,255,255,.2); }
.naturmomente-measurement-table > div { display: grid; grid-template-columns: .55fr 1.6fr .65fr; gap: 22px; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,.16); }
.naturmomente-measurement-table strong { color: #d7b779; font-size: .82rem; }
.naturmomente-measurement-table span { color: rgba(255,255,255,.8); font-size: .82rem; }
.naturmomente-measurement-table em { color: #c8d9cc; font-size: .75rem; font-style: normal; }

.naturmomente-link-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.naturmomente-link-grid > a { position: relative; min-height: 245px; padding: 26px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background .2s ease, box-shadow .2s ease; }
.naturmomente-link-grid > a:hover, .naturmomente-link-grid > a:focus-visible { background: var(--paper-deep); box-shadow: inset 0 4px 0 var(--clay); }
.naturmomente-link-grid span { color: var(--clay); font-size: .73rem; font-weight: 800; }
.naturmomente-link-grid h3 { margin: 38px 0 14px; font-size: 1.45rem; }
.naturmomente-link-grid p { margin: 0; color: var(--ink-soft); font-size: .85rem; line-height: 1.5; }
.naturmomente-link-grid strong { position: absolute; right: 24px; bottom: 22px; left: 26px; color: var(--moss-dark); font-size: .8rem; }
.naturmomente-final-note { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin-top: 28px; padding: 24px; background: var(--paper-deep); }
.naturmomente-final-note p { max-width: 820px; margin: 0; color: var(--ink-soft); font-size: .9rem; }

@media (min-width: 981px) {
  .naturmomente-page .naturmomente-chapter { scroll-margin-top: 88px; }
}

@media (min-width: 1181px) and (min-height: 760px) {
  .naturmomente-page .naturmomente-chapter { min-height: calc(100svh - 88px); }
  .naturmomente-section-inner { padding-block: 28px 42px; }
  .naturmomente-section-heading { gap: 56px; margin-bottom: 20px; }
  .naturmomente-section-heading h2 { max-width: 13ch; margin-top: 10px; font-size: clamp(2.65rem, 3.35vw, 4.5rem); }
  .naturmomente-section-heading > p { font-size: .88rem; line-height: 1.45; }
  .naturmomente-section-heading-compact h2 { max-width: 16ch; font-size: clamp(2.45rem, 3vw, 4rem); }

  .naturmomente-apartment-grid article { grid-template-rows: 132px 1fr; }
  .naturmomente-apartment-grid article > div { padding: 14px 18px; }
  .naturmomente-apartment-grid h3 { margin: 10px 0 5px; font-size: 1.22rem; }
  .naturmomente-apartment-grid p { margin-bottom: 8px; font-size: .76rem; line-height: 1.34; }
  .naturmomente-apartment-grid article > div > span,
  .naturmomente-apartment-grid a { font-size: .68rem; }

  .naturmomente-topic-grid article { min-height: 198px; padding: 18px 20px; }
  .naturmomente-topic-grid h3 { margin: 24px 0 10px; font-size: 1.18rem; }
  .naturmomente-topic-grid p { font-size: .78rem; line-height: 1.4; }
  .naturmomente-topic-grid a { margin-top: 12px; font-size: .72rem; }
  .naturmomente-inline-links { margin-top: 16px; }

  .naturmomente-material-grid article { min-height: 162px; padding: 13px 15px; }
  .naturmomente-material-grid h3 { margin: 4px 0 7px; font-size: 1.04rem; }
  .naturmomente-material-grid p { margin-bottom: 7px; font-size: .68rem; line-height: 1.35; }
  .naturmomente-material-grid em { margin-bottom: 7px; padding: 3px 6px; font-size: .58rem; }
  .naturmomente-material-grid a { font-size: .64rem; }
  .naturmomente-section-link { margin-top: 14px; font-size: .73rem; }

  .naturmomente-partner-summary { margin-bottom: 14px; }
  .naturmomente-partner-summary p { padding: 11px 14px; }
  .naturmomente-partner-summary strong { font-size: 1.45rem; }
  .naturmomente-partner-summary span { margin-top: 3px; font-size: .61rem; }
  .naturmomente-partner-grid { grid-template-columns: repeat(5, 1fr); }
  .naturmomente-partner-grid article { min-height: 188px; padding: 12px 14px; }
  .naturmomente-partner-grid .partner-status { font-size: .55rem; line-height: 1.25; }
  .naturmomente-partner-grid h3 { margin: 13px 0 5px; font-size: .98rem; }
  .naturmomente-partner-grid p { margin-bottom: 6px; font-size: .67rem; line-height: 1.35; }

  .naturmomente-metric-grid article { min-height: 132px; padding: 15px 18px; }
  .naturmomente-metric-grid strong { font-size: clamp(2rem, 2.8vw, 3.4rem); }
  .naturmomente-metric-grid span { font-size: .72rem; line-height: 1.3; }
  .naturmomente-metric-grid em { font-size: .58rem; }
  .naturmomente-measurement-table { margin-top: 6px; }
  .naturmomente-measurement-table > div { gap: 18px; padding: 11px 0; }
  .naturmomente-measurement-table strong,
  .naturmomente-measurement-table span { font-size: .76rem; }
  .naturmomente-measurement-table em { font-size: .68rem; }

  .naturmomente-link-grid > a { min-height: 180px; padding: 18px 20px; }
  .naturmomente-link-grid h3 { margin: 20px 0 8px; font-size: 1.18rem; }
  .naturmomente-link-grid p { font-size: .72rem; line-height: 1.4; }
  .naturmomente-link-grid strong { right: 20px; bottom: 14px; left: 20px; font-size: .69rem; }
  .naturmomente-final-note { margin-top: 16px; padding: 14px 18px; }
  .naturmomente-final-note p { font-size: .72rem; }
}

@media (max-width: 1180px) {
  .naturmomente-chapter-nav { grid-template-columns: repeat(4, 1fr); }
  .naturmomente-chapter-nav a { min-height: 70px; padding: 11px 13px; }
  .naturmomente-topic-grid-four, .naturmomente-material-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 980px) {
  .naturmomente-section-inner { align-content: start; padding-block: 70px 92px; }
  .naturmomente-section-heading, .naturmomente-hero-copy { grid-template-columns: 1fr; }
  .naturmomente-section-heading { gap: 24px; }
  .naturmomente-chapter-hero { min-height: 0; grid-template-rows: auto auto; }
  .naturmomente-hero-copy { padding-block: 72px 54px; }
  .naturmomente-project-context { max-width: 700px; }
  .naturmomente-apartment-grid, .naturmomente-topic-grid-three, .naturmomente-partner-grid, .naturmomente-link-grid { grid-template-columns: repeat(2, 1fr); }
  .naturmomente-partner-summary { grid-template-columns: repeat(3, 1fr); }
  .naturmomente-metric-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 780px) {
  .naturmomente-section-heading h2 { font-size: clamp(2.7rem, 12vw, 4.2rem); }
  .naturmomente-hero-copy h1 { font-size: clamp(3.45rem, 16vw, 5.2rem); }
  .naturmomente-chapter-nav,
  .naturmomente-apartment-grid,
  .naturmomente-topic-grid-four,
  .naturmomente-topic-grid-three,
  .naturmomente-material-grid,
  .naturmomente-partner-summary,
  .naturmomente-partner-grid,
  .naturmomente-metric-grid,
  .naturmomente-link-grid { grid-template-columns: 1fr; }
  .naturmomente-chapter-nav a { min-height: 58px; }
  .naturmomente-apartment-grid article { grid-template-rows: 220px 1fr; }
  .naturmomente-topic-grid article, .naturmomente-partner-grid article { min-height: 0; }
  .naturmomente-final-note { align-items: flex-start; flex-direction: column; }
  .naturmomente-measurement-table > div { grid-template-columns: 1fr; gap: 8px; }
}

/*
 * CSS-Module-Regeln aus dem Build des Kandidaten.
 *
 * Der Export trägt die generierten Klassennamen im Markup. Diese Regeln sind
 * unverändert aus dist/client/assets/*.css übernommen, samt ihrer
 * Media-Query-Kontexte.
 */
._module_s1yw1_1 { border:1px solid var(--line);background:var(--white);grid-template-columns:minmax(0,1.16fr) minmax(420px,.84fr);height:800px;display:grid;overflow:hidden;box-shadow:0 18px 52px #1c292214 }
._calendar_s1yw1_11,._panel_s1yw1_12 { min-width:0;min-height:0 }
._calendar_s1yw1_11 { border-right:1px solid var(--line);flex-direction:column;padding:clamp(28px,3.2vw,48px);display:flex }
._calendarHead_s1yw1_24 { border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;gap:24px;padding-bottom:24px;display:flex }
._calendarHead_s1yw1_24 h3 { text-transform:capitalize;margin:0;font-size:clamp(2rem,3vw,3.4rem) }
._panel_s1yw1_12 { background:var(--paper-deep);flex-direction:column;gap:18px;padding:clamp(28px,3.2vw,42px);display:flex }
._filterBlock_s1yw1_173 { flex:none }
._filterBlock_s1yw1_173>.kicker { color:var(--moss) }
._filterBlock_s1yw1_173 h3 { margin:10px 0 18px;font-size:clamp(1.7rem,2.35vw,2.55rem);line-height:1.04 }
._results_s1yw1_214 { border-top:1px solid var(--line);flex-direction:column;flex:auto;min-height:0;padding-top:16px;display:flex }
._results_s1yw1_214[data-multiple-events=true] { flex:none }
._resultsHead_s1yw1_227 { flex:none;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex }
._resultsHead_s1yw1_227 h4 { margin:0;font-size:.88rem;line-height:1.42 }
._resultsHead_s1yw1_227 h4 time { color:var(--clay-dark) }
._resultsHead_s1yw1_227>span { color:var(--ink-soft);flex:none;font-size:.75rem;font-weight:700 }
._eventCarousel_s1yw1_260 { border:1px solid var(--line);background:var(--white);flex-direction:column;flex:none;min-height:0;display:flex;overflow:hidden }
._eventViewport_s1yw1_293 { touch-action:pan-y;outline:none;flex:none;min-height:0;display:flex }
._eventViewport_s1yw1_293:focus-visible { outline:3px solid var(--gold);outline-offset:-4px }
._carouselCard_s1yw1_306 { border:0;flex:none;width:100%;padding:24px;animation:.2s ease-out _event-card-enter_s1yw1_1 }
._carouselCard_s1yw1_306 h5 { margin-top:16px;font-size:1.42rem }
._carouselCard_s1yw1_306 p { font-size:.82rem }
._carouselCard_s1yw1_306 ._verificationNote_s1yw1_323,._carouselCard_s1yw1_306 ._secondaryFact_s1yw1_324 { -webkit-line-clamp:3 }
._carouselCard_s1yw1_306 ._sourceLink_s1yw1_328 { margin-top:12px }
._resultList_s1yw1_253[data-event-count="3"] ._eventCard_s1yw1_357:last-child { grid-column:1/-1 }
._eventCard_s1yw1_357 { border:1px solid var(--line);background:var(--white);flex-direction:column;min-width:0;min-height:0;padding:16px;display:flex;overflow:hidden }
._eventCard_s1yw1_357 h5 { -webkit-line-clamp:2;-webkit-box-orient:vertical;flex:none;margin:11px 0 7px;font-size:1.08rem;line-height:1.12;display:-webkit-box;overflow:hidden }
._eventCard_s1yw1_357 p { color:var(--ink-soft);margin:0;font-size:.75rem;line-height:1.35 }
._eventCard_s1yw1_357 p strong { color:var(--ink) }
._resultList_s1yw1_253[data-event-count="1"] ._eventCard_s1yw1_357 { padding:24px }
._resultList_s1yw1_253[data-event-count="1"] ._eventCard_s1yw1_357 h5 { margin-top:16px;font-size:1.42rem }
._resultList_s1yw1_253[data-event-count="1"] ._eventCard_s1yw1_357 p { font-size:.82rem }
._resultList_s1yw1_253[data-event-count="3"] ._eventCard_s1yw1_357,._resultList_s1yw1_253[data-event-count="4"] ._eventCard_s1yw1_357 { padding:12px }
._resultList_s1yw1_253[data-event-count="3"] ._eventCard_s1yw1_357 h5,._resultList_s1yw1_253[data-event-count="4"] ._eventCard_s1yw1_357 h5 { margin:7px 0 5px;font-size:.96rem }
._resultList_s1yw1_253[data-event-count="3"] ._eventCard_s1yw1_357 p,._resultList_s1yw1_253[data-event-count="4"] ._eventCard_s1yw1_357 p,._resultList_s1yw1_253[data-event-count="3"] ._sourceLink_s1yw1_328,._resultList_s1yw1_253[data-event-count="4"] ._sourceLink_s1yw1_328 { font-size:.7rem }
._module_s1yw1_1 button:focus-visible,._module_s1yw1_1 a:focus-visible { outline:3px solid var(--gold);outline-offset:3px }
[class*="_visual_"] { background:var(--ink);min-height:0;color:var(--white);position:relative;overflow:hidden }
[class*="_intro_"] { color:#ffffffd6;gap:6px;max-width:710px;font-size:clamp(.92rem,1.02vw,1.05rem);line-height:1.42;display:grid }
[class*="_intro_"] p { margin:0 }
@media (width<=1180px) and (width>=981px) {
	._module_s1yw1_1 { grid-template-columns:minmax(0,1fr) 420px;height:800px }
	._panel_s1yw1_12 { padding-inline:28px }
}
@media (width<=980px) {
	._module_s1yw1_1 { grid-template-rows:500px 800px;grid-template-columns:1fr;height:1300px }
	._calendar_s1yw1_11 { border-right:0;border-bottom:1px solid var(--line) }
	._panel_s1yw1_12 { padding:30px 34px }
}
@media (width<=540px) {
	._module_s1yw1_1 { grid-template-rows:450px 870px;height:1320px }
	._calendar_s1yw1_11 { padding:20px 16px }
	._calendarHead_s1yw1_24 { gap:12px;padding-bottom:16px }
	._calendarHead_s1yw1_24 h3 { font-size:1.7rem }
	._panel_s1yw1_12 { gap:14px;padding:20px 16px }
	._filterBlock_s1yw1_173 h3 { margin-block:8px 14px;font-size:1.55rem }
	._results_s1yw1_214 { padding-top:12px }
	._resultsHead_s1yw1_227 { flex-direction:column;align-items:flex-start;gap:3px;margin-bottom:9px }
	._resultsHead_s1yw1_227 h4 { font-size:.82rem }
	._eventCard_s1yw1_357,._carouselCard_s1yw1_306,._resultList_s1yw1_253[data-event-count="1"] ._eventCard_s1yw1_357,._resultList_s1yw1_253[data-event-count="3"] ._eventCard_s1yw1_357,._resultList_s1yw1_253[data-event-count="4"] ._eventCard_s1yw1_357 { padding:10px }
	._eventCard_s1yw1_357 h5,._carouselCard_s1yw1_306 h5,._resultList_s1yw1_253[data-event-count="1"] ._eventCard_s1yw1_357 h5,._resultList_s1yw1_253[data-event-count="3"] ._eventCard_s1yw1_357 h5,._resultList_s1yw1_253[data-event-count="4"] ._eventCard_s1yw1_357 h5 { -webkit-line-clamp:3;margin:6px 0 4px;font-size:.92rem }
	._eventCard_s1yw1_357 p,._carouselCard_s1yw1_306 p,._resultList_s1yw1_253[data-event-count="1"] ._eventCard_s1yw1_357 p,._resultList_s1yw1_253[data-event-count="3"] ._eventCard_s1yw1_357 p,._resultList_s1yw1_253[data-event-count="4"] ._eventCard_s1yw1_357 p,._sourceLink_s1yw1_328,._resultList_s1yw1_253[data-event-count="3"] ._sourceLink_s1yw1_328,._resultList_s1yw1_253[data-event-count="4"] ._sourceLink_s1yw1_328 { font-size:.7rem }
}
@media (prefers-reduced-motion:reduce) {
	._module_s1yw1_1 *,._module_s1yw1_1 :before,._module_s1yw1_1 :after { scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important }
}
@media (width<=900px) {
	[class*="_visual_"] { min-height:660px }
}
@media (width<=620px) {
	[class*="_visual_"] { min-height:620px }
	[class*="_intro_"] { font-size:.88rem }
}
[class*="_accordionSection_"] { background:var(--paper-deep);padding-top:118px;scroll-margin-top:88px }
[class*="_accordionIntro_"] { padding-bottom:68px }
[class*="_accordionIntro_"]>p { max-width:620px }
[class*="_accordionList_"] { border-top:1px solid var(--line);background:var(--paper) }
[class*="_accordionItem_"] { border-bottom:1px solid var(--line);scroll-margin-top:88px }
[class*="_accordionItem_"]:nth-child(2n) .nm-accordion-trigger { background:#e8e0cf6b }
[class*="_accordionPanel_"] { background:var(--paper) }
[class*="_panelReveal_"] { animation:.26s both nm-accordion-reveal }
[class*="_content_"] { z-index:2;flex-direction:column;justify-content:center;max-width:100%;height:100%;padding-block:clamp(26px,4.2vh,52px);display:flex;position:relative }
@media (width<=980px) {
	[class*="_accordionSection_"] { padding-top:82px }
	[class*="_accordionIntro_"] { padding-bottom:52px }
}
@media (prefers-reduced-motion:reduce) {
	[class*="_panelReveal_"] { animation:none }
}
@media (width<=900px) {
	[class*="_content_"] { justify-content:flex-end;padding-top:82px;padding-bottom:46px }
}
@media (width<=620px) {
	[class*="_content_"] { padding:72px 20px 42px }
}
._weekdays_s1yw1_76,._calendarGrid_s1yw1_77 { grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;min-width:0;display:grid }
._calendarGrid_s1yw1_77 { flex:auto;grid-template-rows:repeat(6,minmax(0,1fr));min-height:0 }
._calendarGrid_s1yw1_77>span { min-width:0;min-height:0 }
._emptyDay_s1yw1_112 { display:block }
[class*="_shade_"] { z-index:1;background:linear-gradient(90deg,#081a13f0 0%,#081a13bd 34%,#081a132e 74%),linear-gradient(#0000 58%,#081a13a3 100%);position:absolute;inset:0 }
@media (width<=540px) {
	._weekdays_s1yw1_76,._calendarGrid_s1yw1_77 { gap:4px }
}
@media (width<=620px) {
	[class*="_shade_"] { background:linear-gradient(90deg,#081a13e6,#081a1342),linear-gradient(#0000 38%,#081a13cc 100%) }
}

/* Kapitelnavigation des Wohnen-Kopfbereichs, aus dem Build des Kandidaten. */
[class*="_signature_"] { z-index:2;color:#ffffffc2;margin:0;font-size:.72rem;position:absolute;bottom:18px;right:clamp(22px,3.25vw,48px) }
._chapterNav_1dape_67 { z-index:3;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);position:relative }
._chapterNavGrid_1dape_75 { border-left:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));max-width:1460px;margin-inline:auto;display:grid }
._chapterNavItem_1dape_83 { border-right:1px solid var(--line);min-width:0;min-height:98px;color:var(--ink);grid-template-columns:38px minmax(0,1fr);align-items:center;gap:16px;padding:18px clamp(20px,2.7vw,42px);transition:background .18s,color .18s;display:grid }
._chapterNavItem_1dape_83>span:first-child { color:#ad5636;letter-spacing:.08em;align-self:start;padding-top:5px;font-size:.8rem;font-weight:800 }
._chapterNavCopy_1dape_105 { gap:5px;display:grid }
._chapterNavCopy_1dape_105 strong { font-size:.96rem;line-height:1.2 }
._chapterNavCopy_1dape_105 small { color:var(--ink-soft);font-size:.74rem;font-weight:400;line-height:1.28 }
._chapterNavItem_1dape_83:hover,._chapterNavItem_1dape_83:focus-visible { color:var(--moss-dark);background:#4264481a }
._chapterNavItem_1dape_83:focus-visible { z-index:1;outline:2px solid var(--moss);outline-offset:-2px;position:relative }
@media (width<=900px) {
	._chapterNavGrid_1dape_75 { grid-template-columns:1fr }
	._chapterNavItem_1dape_83 { min-height:76px }
}
@media (width<=620px) {
	[class*="_signature_"] { display:none }
	._chapterNavItem_1dape_83 { grid-template-columns:34px minmax(0,1fr);padding:16px 20px }
}

/* Weitere Modul-Klassen: Überschriften und Kleintext. */
[class*="_accordionHeading_"] { margin:0 }
[class*="_kicker_"] { color:#bdd3bf }
[class*="_title_"] { letter-spacing:-.055em;text-shadow:0 4px 30px #00000038;max-width:920px;margin:clamp(14px,2.1vh,22px) 0 clamp(18px,2.5vh,28px);font-size:clamp(3.55rem,5.45vw,5.7rem);line-height:.84;display:grid }
[class*="_title_"] span { width:fit-content;display:block }
@media (width<=900px) {
	[class*="_title_"] { font-size:clamp(3.35rem,9vw,4.9rem) }
}
@media (width<=620px) {
	[class*="_title_"] { margin-block:16px 22px;font-size:clamp(3.05rem,16vw,4.1rem) }
}


/* Aktuelles und Materialien folgen auf Desktop derselben bestehenden Chapter-Mechanik. */
@media (min-width: 981px) {
  .events-scroll-chapter,
  .apartments-materials-chapter.about-section-chapter-viewport {
    min-height: calc(100svh - var(--site-header-height));
    min-height: calc(100dvh - var(--site-header-height));
    scroll-margin-top: var(--site-header-height);
  }

  .events-scroll-chapter-intro,
  .apartments-materials-chapter.about-section-chapter-materials-intro {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
  }

  .events-scroll-chapter-intro > .partners-hero,
  .apartments-materials-chapter.about-section-chapter-materials-intro > .materials-hero {
    display: flex;
    min-height: 0;
    align-items: center;
  }

  .events-scroll-chapter-intro > .partners-hero {
    padding-block: clamp(46px, 7vh, 82px);
  }

  .events-scroll-chapter-intro > .partners-hero > .partners-hero-grid,
  .apartments-materials-chapter.about-section-chapter-materials-intro > .materials-hero > .materials-hero-grid {
    width: min(1546px, calc(100% - 64px));
  }

  .events-scroll-chapter-intro > .partner-level-nav,
  .apartments-materials-chapter.about-section-chapter-materials-intro > .material-principles {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-self: end;
  }

  .apartments-materials-chapter.about-section-chapter-materials-intro > .material-principles article:nth-child(3) {
    border-left: 0;
  }

  .events-page .events-scroll-chapter-calendar {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-block: clamp(12px, 1.6vh, 20px);
  }

  .events-scroll-chapter-calendar .section-heading {
    grid-template-columns: minmax(0, 1.24fr) minmax(300px, .76fr);
    gap: clamp(42px, 6vw, 92px);
    margin-bottom: clamp(10px, 1.4vh, 16px);
  }

  .events-scroll-chapter-calendar .section-heading h2 {
    max-width: 780px;
    margin-top: 10px;
    font-size: clamp(2.7rem, 4vw, 4.9rem);
  }

  .events-scroll-chapter-calendar .section-heading > p {
    max-width: 440px;
    margin-bottom: 2px;
    font-size: 1rem;
    line-height: 1.5;
  }

  .events-scroll-chapter-calendar [data-event-calendar="web-caldenar-v01"] {
    height: clamp(590px, 70dvh, 650px);
  }

  .apartments-materials-chapter.about-section-chapter-materials-intro > .materials-hero {
    padding-block: clamp(46px, 7vh, 82px);
  }

  .apartments-materials-chapter.about-section-chapter-materials-intro > .material-principles {
    padding-bottom: 0;
  }
}
  padding: clamp(28px, 2.3vw, 38px) clamp(42px, 5.2vw, 92px);
  margin: 12px 0;
  margin: 0 0 clamp(16px, 2vh, 22px);
  gap: 8px 28px;
.about-contact-field textarea { min-height: 54px; resize: vertical; }
.about-contact-privacy {
  grid-column: 1 / -1;
  max-width: 660px;
  margin: 0;
  color: var(--ink-soft);
  font-size: .72rem;
  line-height: 1.45;
}
.about-contact-privacy a {
  color: var(--ink);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.about-contact-required {
  grid-column: 1 / -1;
  margin: -6px 0 0;
  color: var(--ink-soft);
  font-size: .7rem;
}
/* Aktuelles & Partner: vorbereiteter Newsletterabschluss nach dem freigegebenen Mockup. */
.newsletter-chapter { background: var(--paper); }
.newsletter-section {
  display: grid;
  min-height: inherit;
  grid-template-columns: minmax(0, .48fr) minmax(0, .52fr);
}
.newsletter-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  padding: clamp(48px, 4.4vw, 76px) clamp(42px, 5.2vw, 92px) clamp(30px, 3.2vw, 50px);
}
.newsletter-copy .kicker { color: var(--moss); }
.newsletter-copy h2 {
  max-width: 10ch;
  margin: 20px 0 22px;
  font-size: clamp(3.1rem, 4.7vw, 5.6rem);
  line-height: .94;
}
.newsletter-lead {
  max-width: 660px;
  margin: 0;
  color: var(--ink-soft);
  font-size: clamp(.96rem, 1.04vw, 1.13rem);
  line-height: 1.55;
}
.newsletter-form {
  display: grid;
  width: 100%;
  max-width: 680px;
  gap: 17px;
  margin-top: clamp(28px, 3.5vh, 42px);
}
.newsletter-field { display: grid; gap: 5px; }
.newsletter-field > span {
  color: var(--ink-soft);
  font-size: .75rem;
  font-weight: 650;
  letter-spacing: .02em;
}
.newsletter-field input {
  width: 100%;
  padding: 6px 0 9px;
  border: 0;
  border-bottom: 1px solid rgba(23, 35, 30, .38);
  border-radius: 0;
  outline: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
}
.newsletter-field input:focus {
  border-color: var(--moss-dark);
  box-shadow: inset 0 -1px var(--moss-dark);
}
.newsletter-consent {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  color: var(--ink-soft);
  font-size: .76rem;
  line-height: 1.45;
}
.newsletter-consent input {
  width: 16px;
  height: 16px;
  margin: 2px 0 0;
  accent-color: var(--moss-dark);
}
.newsletter-privacy {
  width: fit-content;
  color: var(--ink);
  font-size: .76rem;
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.newsletter-confirmation {
  max-width: 610px;
  margin: 0;
  color: var(--ink-soft);
  font-size: .73rem;
  line-height: 1.45;
}
.newsletter-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
.newsletter-submit { min-height: 46px; padding: 11px 19px; font-size: .88rem; }
.newsletter-submit:disabled { cursor: not-allowed; opacity: .78; }
.newsletter-media {
  position: relative;
  min-width: 0;
  min-height: inherit;
  margin: 0;
  overflow: hidden;
  background: #d4d6d2;
}
.newsletter-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
}

/*
 * Die drei Umbruchpunkte, die beim ersten Zusammenfuehren verloren gingen.
 *
 * Diese Regeln stehen in globals.css des Kandidaten je in einer eigenen
 * Media-Query. Beim Uebernehmen des Deltas landeten sie flach am Dateiende,
 * und `grid-template-columns: 1fr` galt damit auch auf dem Desktop: der
 * Newsletter stand einspaltig statt 48/52.
 */
@media (max-width: 980px) {
  .newsletter-section { grid-template-columns: 1fr; }
  .newsletter-copy { padding: 76px 32px 58px; }
  .newsletter-copy h2 { max-width: 9ch; }
  .newsletter-media { min-height: 0; aspect-ratio: 4 / 3; }
  .newsletter-media img { object-position: 50% 38%; }
  .footer-funding-logos { align-items: flex-start; flex-direction: column; gap: 12px; }
}

@media (max-width: 780px) {
  .newsletter-copy { padding: 64px 20px 52px; }
  .newsletter-copy h2 { font-size: clamp(2.75rem, 12vw, 4rem); }
}

@media (max-width: 540px) {
  .about-contact-privacy,
  .about-contact-required { grid-column: auto; }
  .newsletter-actions { align-items: stretch; }
  .newsletter-submit { width: 100%; }
}

/* ---------------------------------------------------------------------------
 * Veranstaltungskalender.
 *
 * From the candidate's EventCalendar module, kept in step with the delta of
 * 9 September. Its build-hashed class names are renamed to nm-cal-*: the hash
 * belonged to a build that no longer exists, and a stylesheet nobody can read
 * is a stylesheet nobody can fix.
 * ------------------------------------------------------------------------- */

.nm-cal-module {
  display: grid;
  grid-template-columns: minmax(0, 1.16fr) minmax(420px, .84fr);
  height: 880px;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--white);
  box-shadow: 0 18px 52px rgba(28, 41, 34, .08);
}

.nm-cal-calendar,
.nm-cal-panel {
  min-width: 0;
  min-height: 0;
}

.nm-cal-calendar {
  display: flex;
  flex-direction: column;
  padding: clamp(28px, 3.2vw, 48px);
  border-right: 1px solid var(--line);
}

.nm-cal-calendar-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex: 0 0 auto;
  gap: 24px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--line);
}

.nm-cal-calendar-head h3 {
  margin: 0;
  font-size: clamp(2rem, 3vw, 3.4rem);
  text-transform: capitalize;
}

.nm-cal-category-filters {
  min-width: 0;
  flex: 0 0 auto;
  padding-top: 16px;
}

.nm-cal-category-filters > p {
  margin: 0 0 8px;
  color: var(--ink-soft);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.nm-cal-category-chips {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: 7px;
  padding: 2px 2px 8px;
}

.nm-cal-category-chips button {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  min-height: 36px;
  flex: 0 0 auto;
  gap: 7px;
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--ink);
  cursor: pointer;
  font: inherit;
  font-size: .72rem;
  font-weight: 750;
  white-space: nowrap;
}

.nm-cal-category-chips svg {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  color: var(--event-category-color, var(--moss));
}

.nm-cal-category-chips small {
  display: inline-grid;
  min-width: 20px;
  height: 20px;
  place-items: center;
  padding-inline: 5px;
  border-radius: 999px;
  background: var(--paper-deep);
  color: var(--ink-soft);
  font-size: .66rem;
}

.nm-cal-category-chips button:hover,
.nm-cal-category-chips button:focus-visible,
.nm-cal-category-chips .nm-cal-active-category {
  border-color: var(--moss-dark);
  background: var(--moss-dark);
  color: var(--white);
}

.nm-cal-category-chips .nm-cal-active-category svg,
.nm-cal-category-chips .nm-cal-active-category small {
  color: var(--white);
}

.nm-cal-category-chips .nm-cal-active-category small {
  background: rgba(255, 255, 255, .18);
}

.nm-cal-month-controls {
  display: flex;
  gap: 8px;
}

.nm-cal-month-controls button,
.nm-cal-carousel-controls button {
  display: grid;
  place-items: center;
  border: 1px solid var(--moss);
  border-radius: 999px;
  background: transparent;
  color: var(--moss-dark);
  cursor: pointer;
  font: inherit;
}

.nm-cal-month-controls button {
  width: 44px;
  height: 44px;
  padding: 0;
  font-size: 1.35rem;
}

.nm-cal-month-controls button span {
  display: block;
  line-height: 1;
  transform: translateY(-1px);
}

.nm-cal-month-controls button:hover:not(:disabled),
.nm-cal-month-controls button:focus-visible:not(:disabled),
.nm-cal-carousel-controls button:hover:not(:disabled),
.nm-cal-carousel-controls button:focus-visible:not(:disabled) {
  background: #e4eadf;
}

.nm-cal-month-controls button:disabled,
.nm-cal-carousel-controls button:disabled {
  cursor: not-allowed;
  opacity: .28;
}

.nm-cal-weekdays,
.nm-cal-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  min-width: 0;
  gap: 6px;
}

.nm-cal-weekdays {
  flex: 0 0 auto;
  padding-block: 22px 10px;
}

.nm-cal-weekdays span {
  overflow: hidden;
  color: var(--ink-soft);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-align: center;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.nm-cal-calendar-grid {
  flex: 1 1 auto;
  grid-template-rows: repeat(var(--calendar-week-count, 6), minmax(0, 1fr));
  min-height: 0;
}

.nm-cal-calendar-grid > span {
  min-width: 0;
  min-height: 0;
}

.nm-cal-empty-day {
  display: block;
}

.nm-cal-day {
  position: relative;
  display: grid;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  align-content: center;
  justify-items: center;
  gap: 7px;
  padding: 7px;
  border: 1px solid transparent;
  background: var(--paper);
  color: var(--ink);
  cursor: pointer;
  font: inherit;
  font-weight: 700;
}

.nm-cal-day:hover,
.nm-cal-day:focus-visible {
  border-color: var(--moss);
  background: #eef0e8;
}

.nm-cal-has-event {
  background: #e4eadf;
  color: var(--moss-dark);
}

.nm-cal-selected,
.nm-cal-selected:hover,
.nm-cal-selected:focus-visible {
  border-color: var(--moss-dark);
  background: var(--moss-dark);
  color: var(--white);
}

.nm-cal-day i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--clay);
}

.nm-cal-selected i {
  background: var(--gold);
}

.nm-cal-panel {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: clamp(28px, 3.2vw, 42px);
  background: var(--paper-deep);
}

.nm-cal-filter-block {
  flex: 0 0 auto;
}

.nm-cal-filter-block > :global(.nm-cal-kicker) {
  color: var(--moss);
}

.nm-cal-filter-block h3 {
  margin: 10px 0 18px;
  font-size: clamp(1.7rem, 2.35vw, 2.55rem);
  line-height: 1.04;
}

.nm-cal-time-filter {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.nm-cal-time-filter button {
  min-width: 0;
  min-height: 44px;
  padding: 8px 10px;
  border: 1px solid var(--moss);
  border-radius: 999px;
  background: transparent;
  color: var(--moss-dark);
  cursor: pointer;
  font: inherit;
  font-size: .78rem;
  font-weight: 700;
}

.nm-cal-time-filter button:hover,
.nm-cal-time-filter button:focus-visible,
.nm-cal-time-filter .nm-cal-active-filter {
  background: var(--moss-dark);
  color: var(--white);
}

.nm-cal-results {
  display: flex;
  min-height: 0;
  flex: 1 1 auto;
  flex-direction: column;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}

.nm-cal-results[data-multiple-events="true"] {
  flex: 0 0 auto;
}

.nm-cal-results-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex: 0 0 auto;
  gap: 12px;
  margin-bottom: 12px;
}

.nm-cal-results-head h4 {
  margin: 0;
  font-size: .88rem;
  line-height: 1.42;
}

.nm-cal-results-head h4 time {
  color: var(--clay-dark);
}

.nm-cal-results-head > span {
  flex: 0 0 auto;
  color: var(--ink-soft);
  font-size: .75rem;
  font-weight: 700;
}

.nm-cal-result-list {
  display: grid;
  min-height: 0;
  flex: 1 1 auto;
  gap: 9px;
}

.nm-cal-event-carousel {
  display: flex;
  min-height: 0;
  flex: 0 0 auto;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--white);
}

.nm-cal-carousel-controls {
  display: grid;
  grid-template-columns: 38px 1fr 38px;
  align-items: center;
  flex: 0 0 auto;
  gap: 12px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--line);
  background: #f4f2ea;
}

.nm-cal-carousel-controls button {
  width: 38px;
  height: 38px;
}

.nm-cal-carousel-controls strong {
  color: var(--moss-dark);
  font-size: .82rem;
  letter-spacing: .04em;
  text-align: center;
}

.nm-cal-event-viewport {
  display: flex;
  min-height: 0;
  flex: 0 0 auto;
  outline: none;
  touch-action: pan-y;
}

.nm-cal-event-viewport:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: -4px;
}

.nm-cal-carousel-card {
  width: 100%;
  flex: 0 0 auto;
  padding: 24px;
  border: 0;
  animation: event-card-enter .2s ease-out;
}

.nm-cal-carousel-card h5 {
  margin-top: 16px;
  font-size: 1.42rem;
}

.nm-cal-carousel-card p {
  font-size: .82rem;
}

.nm-cal-carousel-card .nm-cal-verification-note,
.nm-cal-carousel-card .nm-cal-secondary-fact {
  -webkit-line-clamp: 3;
}

.nm-cal-carousel-card .nm-cal-source-link {
  margin-top: 12px;
}

@keyframes event-card-enter {
  from {
    opacity: .3;
    transform: translateX(8px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.nm-cal-result-list[data-event-count="1"] {
  grid-template-rows: minmax(0, 1fr);
}

.nm-cal-result-list[data-event-count="2"] {
  grid-template-rows: repeat(2, minmax(0, 1fr));
}

.nm-cal-result-list[data-event-count="3"] {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
}

.nm-cal-result-list[data-event-count="3"] .nm-cal-event-card:last-child {
  grid-column: 1 / -1;
}

.nm-cal-result-list[data-event-count="4"] {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
}

.nm-cal-event-card {
  display: flex;
  min-width: 0;
  min-height: 0;
  flex-direction: column;
  overflow: hidden;
  padding: 16px;
  border: 1px solid var(--line);
  background: var(--white);
}

.nm-cal-review-card {
  border-color: rgba(119, 67, 47, .38);
  background: #fbf3ed;
}

.nm-cal-event-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex: 0 0 auto;
  gap: 8px;
}

.nm-cal-event-meta > span {
  min-width: 0;
  overflow: hidden;
  color: var(--moss);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .055em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.nm-cal-event-meta .nm-cal-event-category {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--event-category-color, var(--moss));
}

.nm-cal-event-category svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}

.nm-cal-event-meta small {
  flex: 0 0 auto;
  padding: 3px 7px;
  border-radius: 999px;
  background: #e4eadf;
  color: var(--moss-dark);
  font-size: .68rem;
  font-weight: 700;
  line-height: 1.35;
}

.nm-cal-event-meta .nm-cal-review-badge {
  background: #f1ded4;
  color: var(--clay-dark);
}

.nm-cal-event-card h5 {
  display: -webkit-box;
  flex: 0 0 auto;
  overflow: hidden;
  margin: 11px 0 7px;
  font-size: 1.08rem;
  line-height: 1.12;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.nm-cal-event-card p {
  margin: 0;
  color: var(--ink-soft);
  font-size: .75rem;
  line-height: 1.35;
}

.nm-cal-event-card p strong {
  color: var(--ink);
}

.nm-cal-primary-facts {
  display: flex;
  min-width: 0;
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: 2px 8px;
}

.nm-cal-primary-facts span,
.nm-cal-secondary-fact,
.nm-cal-verification-note,
.nm-cal-source-meta {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
}

.nm-cal-primary-facts span {
  -webkit-line-clamp: 2;
}

.nm-cal-secondary-fact {
  flex: 0 0 auto;
  margin-top: 5px !important;
  -webkit-line-clamp: 2;
}

.nm-cal-verification-note {
  flex: 0 0 auto;
  margin-top: 5px !important;
  color: var(--clay-dark) !important;
  -webkit-line-clamp: 2;
}

.nm-cal-source-meta {
  flex: 0 0 auto;
  margin-top: 5px !important;
  -webkit-line-clamp: 1;
}

.nm-cal-source-link {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  flex: 0 0 auto;
  gap: 5px;
  padding-top: 7px;
  color: var(--clay-dark);
  font-size: .75rem;
  font-weight: 700;
  line-height: 1.25;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.nm-cal-event-links {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-top: auto;
}

.nm-cal-map-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding-top: 7px;
  color: var(--moss-dark);
  font-size: .75rem;
  font-weight: 800;
  line-height: 1.25;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.nm-cal-map-link:hover,
.nm-cal-map-link:focus-visible {
  color: var(--clay-dark);
}

.nm-cal-source-link:hover,
.nm-cal-source-link:focus-visible {
  color: var(--moss-dark);
}

.nm-cal-result-list[data-event-count="1"] .nm-cal-event-card {
  padding: 24px;
}

.nm-cal-result-list[data-event-count="1"] .nm-cal-event-card h5 {
  margin-top: 16px;
  font-size: 1.42rem;
}

.nm-cal-result-list[data-event-count="1"] .nm-cal-event-card p {
  font-size: .82rem;
}

.nm-cal-result-list[data-event-count="1"] .nm-cal-verification-note,
.nm-cal-result-list[data-event-count="1"] .nm-cal-secondary-fact {
  -webkit-line-clamp: 3;
}

.nm-cal-result-list[data-event-count="3"] .nm-cal-event-card,
.nm-cal-result-list[data-event-count="4"] .nm-cal-event-card {
  padding: 12px;
}

.nm-cal-result-list[data-event-count="3"] .nm-cal-event-card h5,
.nm-cal-result-list[data-event-count="4"] .nm-cal-event-card h5 {
  margin: 7px 0 5px;
  font-size: .96rem;
}

.nm-cal-result-list[data-event-count="3"] .nm-cal-event-card p,
.nm-cal-result-list[data-event-count="4"] .nm-cal-event-card p,
.nm-cal-result-list[data-event-count="3"] .nm-cal-source-link,
.nm-cal-result-list[data-event-count="4"] .nm-cal-source-link {
  font-size: .7rem;
}

.nm-cal-result-list[data-event-count="3"] .nm-cal-verification-note,
.nm-cal-result-list[data-event-count="4"] .nm-cal-verification-note,
.nm-cal-result-list[data-event-count="3"] .nm-cal-source-meta,
.nm-cal-result-list[data-event-count="4"] .nm-cal-source-meta {
  -webkit-line-clamp: 1;
}

.nm-cal-result-list[data-event-count="3"] .nm-cal-secondary-fact,
.nm-cal-result-list[data-event-count="3"] .nm-cal-verification-note,
.nm-cal-result-list[data-event-count="3"] .nm-cal-source-meta,
.nm-cal-result-list[data-event-count="4"] .nm-cal-secondary-fact,
.nm-cal-result-list[data-event-count="4"] .nm-cal-verification-note,
.nm-cal-result-list[data-event-count="4"] .nm-cal-source-meta {
  display: none;
}

.nm-cal-empty-state {
  display: grid;
  min-height: 0;
  flex: 1 1 auto;
  place-items: center;
  padding: 24px;
  border: 1px dashed rgba(23, 35, 30, .24);
  background: rgba(251, 250, 246, .42);
}

.nm-cal-empty-state p {
  max-width: 34ch;
  margin: 0;
  color: var(--ink-soft);
  font-size: .88rem;
  line-height: 1.5;
  text-align: center;
}

.nm-cal-source-note {
  flex: 0 0 auto;
  margin: 0;
  padding: 12px 0 0 14px;
  border-top: 1px solid var(--line);
  border-left: 3px solid var(--gold);
  color: var(--ink-soft);
  font-size: .72rem;
  line-height: 1.4;
}

.nm-cal-source-note strong {
  color: var(--ink);
}

@media (min-width: 981px) {
  .nm-cal-panel {
    gap: 10px;
    padding-block: 20px;
  }

  .nm-cal-filter-block h3 {
    margin: 8px 0 12px;
  }

  .nm-cal-source-note {
    margin-top: auto;
    padding-top: 8px;
    line-height: 1.3;
  }
}

.nm-cal-module button:focus-visible,
.nm-cal-module a:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 3px;
}

@media (max-width: 1180px) and (min-width: 981px) {
  .nm-cal-module {
    grid-template-columns: minmax(0, 1fr) 420px;
    height: 880px;
  }

  .nm-cal-panel {
    gap: 10px;
    padding: 20px 24px;
  }

  .nm-cal-filter-block h3 {
    margin: 8px 0 12px;
  }

  .nm-cal-carousel-card {
    padding: 18px;
  }

  .nm-cal-carousel-card h5 {
    margin-top: 10px;
    font-size: 1.24rem;
  }

  .nm-cal-source-note {
    padding-top: 8px;
    font-size: .68rem;
    line-height: 1.3;
  }

  .nm-cal-result-list[data-event-count="4"] .nm-cal-event-meta {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }

  .nm-cal-result-list[data-event-count="2"] .nm-cal-secondary-fact {
    -webkit-line-clamp: 1;
  }

  .nm-cal-result-list[data-event-count="2"] .nm-cal-verification-note,
  .nm-cal-result-list[data-event-count="2"] .nm-cal-source-meta {
    display: none;
  }
}

@media (max-width: 980px) {
  .nm-cal-module {
    grid-template-columns: 1fr;
    grid-template-rows: 560px 880px;
    height: 1440px;
  }

  .nm-cal-calendar {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .nm-cal-panel {
    padding: 30px 34px;
  }
}

@media (max-width: 540px) {
  .nm-cal-module {
    grid-template-rows: 500px 940px;
    height: 1440px;
  }

  .nm-cal-calendar {
    padding: 20px 16px;
  }

  .nm-cal-calendar-head {
    gap: 12px;
    padding-bottom: 16px;
  }

  .nm-cal-calendar-head h3 {
    font-size: 1.7rem;
  }

  .nm-cal-category-filters {
    padding-top: 12px;
  }

  .nm-cal-category-filters > p {
    margin-bottom: 6px;
    font-size: .64rem;
  }

  .nm-cal-category-chips {
    flex-wrap: nowrap;
    gap: 5px;
    overflow-x: auto;
    padding-bottom: 5px;
    scrollbar-color: rgba(23, 35, 30, .28) transparent;
    scrollbar-width: thin;
  }

  .nm-cal-category-chips button {
    min-height: 34px;
    padding: 6px 9px;
    font-size: .69rem;
  }

  .nm-cal-month-controls button {
    width: 40px;
    height: 40px;
  }

  .nm-cal-weekdays,
  .nm-cal-calendar-grid {
    gap: 4px;
  }

  .nm-cal-weekdays {
    padding-block: 15px 7px;
  }

  .nm-cal-weekdays span {
    font-size: .68rem;
    letter-spacing: .02em;
  }

  .nm-cal-day {
    gap: 3px;
    padding: 3px;
    font-size: .82rem;
  }

  .nm-cal-day i {
    width: 5px;
    height: 5px;
  }

  .nm-cal-panel {
    gap: 14px;
    padding: 20px 16px;
  }

  .nm-cal-filter-block h3 {
    margin-block: 8px 14px;
    font-size: 1.55rem;
  }

  .nm-cal-time-filter button {
    min-height: 42px;
    padding-inline: 7px;
    font-size: .75rem;
  }

  .nm-cal-results {
    padding-top: 12px;
  }

  .nm-cal-results-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
    margin-bottom: 9px;
  }

  .nm-cal-results-head h4 {
    font-size: .82rem;
  }

  .nm-cal-result-list {
    gap: 7px;
  }

  .nm-cal-event-card,
  .nm-cal-carousel-card,
  .nm-cal-result-list[data-event-count="1"] .nm-cal-event-card,
  .nm-cal-result-list[data-event-count="3"] .nm-cal-event-card,
  .nm-cal-result-list[data-event-count="4"] .nm-cal-event-card {
    padding: 10px;
  }

  .nm-cal-event-meta {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }

  .nm-cal-event-meta > span {
    width: 100%;
    font-size: .68rem;
  }

  .nm-cal-event-meta .nm-cal-event-category {
    width: auto;
    white-space: normal;
  }

  .nm-cal-event-links {
    align-items: flex-start;
    flex-direction: column;
    gap: 0;
  }

  .nm-cal-event-meta small {
    font-size: .66rem;
  }

  .nm-cal-event-card h5,
  .nm-cal-carousel-card h5,
  .nm-cal-result-list[data-event-count="1"] .nm-cal-event-card h5,
  .nm-cal-result-list[data-event-count="3"] .nm-cal-event-card h5,
  .nm-cal-result-list[data-event-count="4"] .nm-cal-event-card h5 {
    margin: 6px 0 4px;
    font-size: .92rem;
    -webkit-line-clamp: 3;
  }

  .nm-cal-event-card p,
  .nm-cal-carousel-card p,
  .nm-cal-result-list[data-event-count="1"] .nm-cal-event-card p,
  .nm-cal-result-list[data-event-count="3"] .nm-cal-event-card p,
  .nm-cal-result-list[data-event-count="4"] .nm-cal-event-card p,
  .nm-cal-source-link,
  .nm-cal-result-list[data-event-count="3"] .nm-cal-source-link,
  .nm-cal-result-list[data-event-count="4"] .nm-cal-source-link {
    font-size: .7rem;
  }

  .nm-cal-secondary-fact,
  .nm-cal-verification-note {
    -webkit-line-clamp: 2 !important;
  }

  .nm-cal-source-meta {
    -webkit-line-clamp: 1;
  }

  .nm-cal-source-note {
    padding-top: 9px;
    font-size: .69rem;
  }

  .nm-cal-carousel-controls {
    grid-template-columns: 36px 1fr 36px;
    padding: 8px 10px;
  }

  .nm-cal-carousel-controls button {
    width: 36px;
    height: 36px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nm-cal-module *,
  .nm-cal-module *::before,
  .nm-cal-module *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
  }
}

/* ---------------------------------------------------------------------------
 * Wohnungsdetail.
 *
 * From the candidate's ApartmentDetail module. Its build-hashed class names
 * (_heroGallery_12jsg_44) are renamed to nm-apt-* for the same reason as the
 * calendar: the hash belonged to a build that no longer exists.
 * ------------------------------------------------------------------------- */
.nm-apt-hero-chapter{background:var(--ink);grid-template-rows:minmax(0,1fr) auto;display:grid}.nm-apt-hero-media{min-height:0;color:var(--white);align-items:center;display:flex;position:relative;overflow:hidden}.nm-apt-hero-gallery,.nm-apt-hero-slide{position:absolute;inset:0}.nm-apt-hero-gallery{background:var(--ink);overflow:hidden}.nm-apt-hero-slide{opacity:0;transition:opacity .9s ease-in-out}.nm-apt-hero-slide-active{z-index:1;opacity:1}.nm-apt-hero-slide-previous{z-index:0;opacity:0}.nm-apt-hero-slide img{object-fit:cover;object-position:var(--apartment-image-position,center);width:100%;height:100%;transform-origin:var(--apartment-image-position,center)}.nm-apt-hero-slide-active img,.nm-apt-hero-slide-previous img{animation:5s linear forwards nm-apt-apartment-hero-zoom}@keyframes nm-apt-apartment-hero-zoom{0%{transform:scale(1)}to{transform:scale(1.07)}}.nm-apt-hero-shade{z-index:1;pointer-events:none;position:absolute;inset:0}.nm-apt-hero-shade-left{background:linear-gradient(90deg,#0c1b14f0 0%,#0c1b14c7 35%,#0c1b1442 68%,#0c1b1414 100%)}.nm-apt-hero-shade-bottom{background:linear-gradient(#0000 57%,#0c1b1494)}.nm-apt-hero-content{z-index:2;padding-block:clamp(24px,5vh,56px);position:relative}.nm-apt-back-link{color:#ffffffc7;text-underline-offset:4px;margin-bottom:clamp(26px,5vh,54px);font-size:.92rem;text-decoration:underline;display:inline-block}.nm-apt-back-link:hover,.nm-apt-back-link:focus-visible{color:var(--white)}.nm-apt-hero-copy{max-width:min(720px,61vw)}.nm-apt-hero-copy .kicker{color:#c4d8c7}.nm-apt-hero-copy h1{color:var(--white);letter-spacing:-.055em;text-shadow:0 3px 26px #00000047;margin:16px 0 8px;font-size:clamp(4.25rem,7.2vw,7.8rem);line-height:.88}.nm-apt-hero-subtitle{color:#e9c582;max-width:620px;margin:0 0 14px;font-size:clamp(1rem,1.35vw,1.3rem);font-weight:700;line-height:1.35}.nm-apt-hero-status{color:#ffffffeb;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0c1b1475;border:1px solid #ffffff61;border-radius:999px;padding:7px 12px;font-size:.76rem;font-weight:700;line-height:1.2;display:inline-flex}.nm-apt-hero-summary{color:#ffffffd1;text-shadow:0 2px 18px #00000052;max-width:64ch;margin:15px 0 0;font-size:clamp(.94rem,1.08vw,1.08rem);line-height:1.5}.nm-apt-gallery-control{z-index:4;width:46px;height:46px;color:var(--white);cursor:pointer;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#0c1b1461;border:1px solid #ffffff94;border-radius:999px;place-items:center;padding:0;transition:background .18s,border-color .18s,transform .18s;display:grid;position:absolute;bottom:22px;right:clamp(22px,3.2vw,48px)}.nm-apt-gallery-control:hover,.nm-apt-gallery-control:focus-visible{border-color:var(--white);background:#0c1b14bf;transform:scale(1.06)}.nm-apt-gallery-control:focus-visible{outline:2px solid var(--white);outline-offset:3px}.nm-apt-gallery-control span{font-size:1.18rem;transform:translateY(-1px)}.nm-apt-gallery-previous{margin-right:58px}.nm-apt-gallery-position{z-index:4;color:#ffffffd1;font-variant-numeric:tabular-nums;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0c1b1485;border-radius:999px;padding:7px 10px;font-size:.7rem;position:absolute;bottom:30px;right:clamp(146px,12vw,178px)}.nm-apt-booking-status{z-index:5;background:var(--paper);color:var(--ink);border-top:1px solid #ffffff2e;position:relative}.nm-apt-booking-status-inner{grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);align-items:center;gap:clamp(36px,8vw,120px);padding-block:clamp(18px,2.6vh,28px);display:grid}.nm-apt-booking-status-inner .kicker{margin-bottom:5px}.nm-apt-booking-status-inner h2{margin:0;font-size:clamp(1.75rem,2.65vw,3rem);line-height:.96}.nm-apt-booking-status-inner>p{max-width:760px;color:var(--ink-soft);margin:0;font-size:clamp(.86rem,.98vw,.98rem);line-height:1.5}.nm-apt-booking-form{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(132px,.72fr);align-items:end;gap:clamp(8px,1vw,14px);min-width:0;display:grid}.nm-apt-booking-field{min-width:0;color:var(--ink-soft);gap:6px;font-size:.76rem;font-weight:700;display:grid}.nm-apt-booking-field input,.nm-apt-booking-field select{border:1px solid var(--line);background:var(--white);width:100%;min-width:0;min-height:44px;color:var(--ink);font:inherit;opacity:1;border-radius:0;padding:9px 11px;font-size:.78rem;font-weight:700}.nm-apt-booking-field input::placeholder{color:var(--ink-soft);opacity:1}.nm-apt-booking-field select:disabled{color:var(--ink);cursor:default;-webkit-text-fill-color:var(--ink)}.nm-apt-booking-button{background:var(--ink);min-height:44px;color:var(--white);opacity:.72;border:0;border-radius:999px;padding:9px 18px;font-size:.78rem;font-weight:700}.nm-apt-features-chapter{background:var(--paper)}.nm-apt-features-inner{grid-template-rows:auto minmax(0,1fr);gap:clamp(16px,2.2vh,24px);min-height:100%;padding-block:clamp(22px,3vh,32px) clamp(38px,6vh,58px);display:grid}.nm-apt-features-heading{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,.92fr) minmax(320px,1.08fr);align-items:end;gap:clamp(50px,9vw,150px);padding-bottom:clamp(14px,2vh,22px);display:grid}.nm-apt-features-heading h2{max-width:620px;margin:8px 0 0;font-size:clamp(2.8rem,4.55vw,5.3rem);line-height:.91}.nm-apt-features-heading>p{max-width:620px;color:var(--ink-soft);margin:0;font-size:clamp(.92rem,1.15vw,1.15rem);line-height:1.52}.nm-apt-feature-groups{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(10px,1.25vw,18px);min-height:0;display:grid}.nm-apt-feature-group{border:1px solid var(--line);background:#fbfaf6a3;flex-direction:column;grid-column:span 2;min-height:0;display:flex}.nm-apt-feature-group:nth-last-child(-n+2){grid-column:span 3}.nm-apt-feature-group h3{border-bottom:1px solid var(--line);color:#8a3b20;margin:0;padding:11px 14px 9px;font-size:clamp(.88rem,1vw,1rem);font-weight:500}.nm-apt-feature-group ul{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:clamp(9px,1.2vh,14px) 12px;min-height:0;margin:0;padding:clamp(12px,1.7vh,18px) 14px;list-style:none;display:grid}.nm-apt-feature-group li{grid-template-columns:27px minmax(0,1fr);align-items:start;gap:8px;min-width:0;display:grid}.nm-apt-feature-icon{width:26px;height:26px;margin-top:1px}.nm-apt-feature-group strong,.nm-apt-feature-group small{display:block}.nm-apt-feature-group strong{color:var(--ink);font-size:clamp(.72rem,.82vw,.85rem);line-height:1.18}.nm-apt-feature-group small{color:var(--ink-soft);margin-top:2px;font-size:clamp(.56rem,.63vw,.66rem);line-height:1.24}.nm-apt-future-media img{object-fit:contain;background:var(--white)}.nm-apt-development-gallery-control{z-index:3;width:40px;height:40px;color:var(--white);cursor:pointer;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0c1b1485;border:1px solid #ffffffb8;border-radius:999px;place-items:center;padding:0;transition:background .18s,border-color .18s,transform .18s;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.nm-apt-development-gallery-control:hover,.nm-apt-development-gallery-control:focus-visible{border-color:var(--white);background:#0c1b14cc;transform:translateY(-50%)scale(1.06)}.nm-apt-development-gallery-control:focus-visible{outline:2px solid var(--white);outline-offset:3px}.nm-apt-development-gallery-control span{font-size:1rem;line-height:1;transform:translateY(-1px)}.nm-apt-development-gallery-previous{left:12px}.nm-apt-development-gallery-next{right:12px}.nm-apt-signature-grid{align-items:stretch}.nm-apt-signature-card,.nm-apt-signature-card .apartment-signature-card-copy{height:100%}.nm-apt-signature-card .apartment-signature-card-copy h3{font-size:clamp(.98rem,1.12vw,1.15rem)}.nm-apt-signature-card .apartment-signature-card-copy p{font-size:clamp(.74rem,.82vw,.84rem);line-height:1.42}.nm-apt-signature-card .apartment-signature-button{font-size:.72rem}.nm-apt-footer-section{background:var(--ink);overflow:clip}@media (width>=981px) and (height>=700px){.nm-apt-hero-chapter{grid-template-rows:minmax(0,1fr) auto}.nm-apt-features-inner{height:100%}.apartment-story-chapter .nm-apt-signature-section.apartment-signature-section{grid-template-rows:auto minmax(0,1fr);align-content:stretch}.apartment-story-chapter .nm-apt-signature-grid.apartment-signature-grid{height:100%;min-height:0}.nm-apt-signature-card{grid-template-rows:auto minmax(0,1fr);display:grid}.nm-apt-signature-card .apartment-signature-card-layout{height:100%;min-height:0}}@media (width<=1120px){.nm-apt-hero-copy{max-width:min(650px,68vw)}.nm-apt-features-heading{grid-template-columns:minmax(0,.9fr) minmax(300px,1.1fr);gap:48px}.nm-apt-feature-group ul{gap:9px 8px;padding-inline:10px}.nm-apt-feature-group li{grid-template-columns:23px minmax(0,1fr);gap:6px}.nm-apt-feature-icon{width:21px;height:21px}}@media (width<=980px),(height<=699px){.nm-apt-hero-media{min-height:min(720px,72svh)}.nm-apt-features-inner{min-height:auto;padding-block:54px 78px}.nm-apt-features-heading{align-items:start}.nm-apt-feature-groups{grid-template-rows:auto;grid-template-columns:repeat(2,minmax(0,1fr))}.nm-apt-feature-group,.nm-apt-feature-group:nth-last-child(-n+2){grid-column:auto;min-height:220px}.nm-apt-feature-group strong{font-size:.8rem}.nm-apt-feature-group small{font-size:.64rem}.nm-apt-booking-status-inner{grid-template-columns:1fr;gap:18px}}@media (width<=760px){.nm-apt-hero-media{align-items:flex-end;min-height:690px}.nm-apt-hero-shade-left{background:linear-gradient(90deg,#0c1b14db,#0c1b1433)}.nm-apt-hero-shade-bottom{background:linear-gradient(#0c1b1414 12%,#0c1b14b8 52%,#0c1b14f0 100%)}.nm-apt-hero-content{padding-block:24px 62px}.nm-apt-back-link{margin-bottom:160px}.nm-apt-hero-copy{max-width:100%}.nm-apt-hero-copy h1{font-size:clamp(3.85rem,17vw,5.4rem)}.nm-apt-hero-summary{font-size:.91rem;line-height:1.45}.nm-apt-gallery-control{width:42px;height:42px;top:39%;bottom:auto;right:auto;transform:translateY(-50%)}.nm-apt-gallery-control:hover,.nm-apt-gallery-control:focus-visible{transform:translateY(-50%)scale(1.06)}.nm-apt-gallery-previous{margin-right:0;left:14px}.nm-apt-gallery-next{left:auto;right:14px}.nm-apt-gallery-position{top:22px;bottom:auto;right:22px}.nm-apt-booking-status-inner{grid-template-columns:1fr;gap:12px;padding-block:22px 28px}.nm-apt-booking-status-inner h2{font-size:2rem}.nm-apt-booking-form{grid-template-columns:repeat(2,minmax(0,1fr))}.nm-apt-booking-button{min-height:44px}.nm-apt-features-heading{grid-template-columns:1fr;gap:22px}.nm-apt-features-heading h2{font-size:clamp(2.65rem,12vw,4rem)}.nm-apt-features-heading>p{font-size:.96rem}}@media (width<=600px){.nm-apt-hero-media{min-height:720px}.nm-apt-hero-content{padding-bottom:54px}.nm-apt-back-link{margin-bottom:150px}.nm-apt-hero-copy h1{margin-top:12px}.nm-apt-hero-subtitle{font-size:.98rem}.nm-apt-hero-status{font-size:.69rem}.nm-apt-hero-summary{margin-top:12px}.nm-apt-features-inner{padding-block:44px 70px}.nm-apt-feature-groups{grid-template-columns:1fr}.nm-apt-feature-group,.nm-apt-feature-group:nth-last-child(-n+2){grid-column:auto;min-height:0}.nm-apt-feature-group ul{gap:14px 12px;padding:17px 14px 19px}.nm-apt-feature-group strong{font-size:.82rem}.nm-apt-feature-group small{font-size:.65rem}.nm-apt-signature-grid{grid-template-columns:1fr}}@media (width<=390px){.nm-apt-hero-media{min-height:750px}.nm-apt-back-link{margin-bottom:135px}.nm-apt-hero-copy h1{font-size:3.65rem}.nm-apt-hero-summary{font-size:.86rem}.nm-apt-feature-group ul{grid-template-columns:1fr 1fr}.nm-apt-booking-form{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.nm-apt-hero-slide{transition:none}.nm-apt-hero-slide-active img,.nm-apt-hero-slide-previous img{animation:none}.nm-apt-gallery-control,.nm-apt-development-gallery-control{transition:none}}



/* ---------------------------------------------------------------------------
 * Partner-Akkordeon auf /aktuelles.
 *
 * Der Kandidat setzt den Trigger als <button> in der Überschrift. Der
 * WordPress-Heading-Block kann keinen Button ausgeben, deshalb trägt der
 * Export nur den inneren <span> mit den Trigger-Klassen; assets/js/accordion.js
 * legt den Button zur Laufzeit darum. Damit die Zeile mit und ohne Skript
 * gleich aussieht, steht der Untergrund zusätzlich auf der Überschrift selbst.
 *
 * Die Regeln stammen unverändert aus PartnerAccordionItem-BvH8It4t.css des
 * Kandidaten-Builds, samt der beiden Breakpoints — die bleiben in ihren eigenen
 * Media Queries.
 *
 * Warum hier [class*="_name_"] steht und nicht ._name_1372d_29:
 *
 * Die Klassennamen der CSS-Module tragen einen Hash und eine Zeilennummer, die
 * der Bundler des Kandidaten bei jedem Build neu vergibt. Beim Build 163 wurde
 * aus `_accordionItem_1372d_29` das hier: `_accordionItem_176fd_33`. Der Export
 * bringt die neuen Namen mit, die Regeln hier trugen noch die alten, und damit
 * war das Akkordeon von einem Tag auf den anderen wieder eine graue Textzeile —
 * ohne dass sich am Entwurf irgendetwas geändert hätte.
 *
 * Bedeutung trägt allein der Name in der Mitte. Hash und Zeilennummer sind
 * Buchhaltung des Bundlers, und eine Regel, die daran hängt, hält nur bis zum
 * nächsten Build. Der Attribut-Selektor greift den Namen und lässt die
 * Buchhaltung in Ruhe: gleiche Spezifität wie eine Klasse, gleiche Kosten, und
 * er gilt für das alte wie für das neue Markup — was den Umstieg entkoppelt,
 * denn Theme und Seiteninhalte werden nicht in derselben Sekunde aktualisiert.
 *
 * Zwei Namen sind davon ausgenommen: .nm-accordion-trigger und
 * .nm-trigger-icon-open vergibt assets/js/accordion.js selbst. Sie stammen aus
 * keinem Build und geben das jetzt auch nicht mehr vor.
 * ------------------------------------------------------------------------- */
[class*="_accordionHeading_"] { margin:0;background:var(--paper) }
[class*="_accordionItem_"]:nth-child(2n) [class*="_accordionHeading_"] { background:#e8e0cf6b }
.nm-accordion-trigger { background:var(--paper);width:100%;color:var(--ink);cursor:pointer;font:inherit;text-align:left;border:0;padding:0;transition:background .18s,box-shadow .18s;display:block }
.nm-accordion-trigger:hover { background:#e9eee7 }
.nm-accordion-trigger:focus-visible { z-index:2;outline:3px solid var(--gold);outline-offset:-4px;position:relative }
[class*="_triggerInner_"] { grid-template-columns:58px minmax(0,1fr) auto 42px;align-items:center;gap:24px;min-height:142px;padding-block:28px;display:grid }
[class*="_triggerNumber_"] { color:var(--clay);letter-spacing:.09em;font-size:.86rem;font-weight:800 }
[class*="_triggerCopy_"] { gap:7px;min-width:0;display:grid }
[class*="_triggerCopy_"] strong { letter-spacing:-.035em;font-size:clamp(1.65rem,2.5vw,3rem);font-weight:500;line-height:1.04 }
[class*="_triggerCopy_"] small { max-width:760px;color:var(--ink-soft);font-size:.96rem;line-height:1.5 }
[class*="_triggerMeta_"] { color:var(--ink-soft);white-space:nowrap;font-size:.79rem;font-weight:700 }
[class*="_triggerIcon_"] { border:1px solid var(--moss);width:42px;height:42px;color:var(--moss-dark);border-radius:50%;place-items:center;font-size:1.55rem;font-weight:300;line-height:1;transition:transform .22s,background .18s,color .18s;display:grid }
.nm-trigger-icon-open { background:var(--moss-dark);color:var(--white);transform:rotate(45deg) }
@media (width<=980px) {
	[class*="_triggerInner_"] { grid-template-columns:42px minmax(0,1fr) 40px;gap:16px;min-height:126px }
	[class*="_triggerMeta_"] { display:none }
	[class*="_triggerIcon_"] { width:40px;height:40px }
}
@media (width<=560px) {
	[class*="_triggerInner_"] { grid-template-columns:30px minmax(0,1fr) 36px;gap:11px;min-height:112px;padding-block:22px }
	[class*="_triggerCopy_"] strong { font-size:clamp(1.35rem,6.8vw,1.75rem) }
	[class*="_triggerCopy_"] small { font-size:.82rem }
	[class*="_triggerIcon_"] { width:36px;height:36px }
}


/* ---------------------------------------------------------------------------
 * Sprungnavigationen, Stand 11. September 2026.
 *
 * Auf "Aktuelles & Partner" sind aus vier Zielen drei geworden: das dritte
 * führt jetzt zum Newsletter. Vier Spalten auf drei zu verteilen ist keine
 * Änderung, die sich von selbst ergibt — die Grundregel steht auf
 * `repeat(4, 1fr)` —, deshalb setzt die Klasse nm-level-nav-three sie um. Den
 * Namen vergibt NMT_Modules, nicht der Build des Kandidaten; im Entwurf heißt
 * sie `threeColumnLevelNav` und trägt dort einen Hash, der uns nichts nützt.
 *
 * Auf "Über uns" werden die beiden Karten flacher, ohne ihre volle Breite
 * aufzugeben. Das gilt erst ab 781 px: darunter stehen sie ohnehin
 * untereinander und brauchen ihre Höhe.
 * ------------------------------------------------------------------------- */
.partner-level-nav.nm-level-nav-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }

@media (max-width: 780px) {
	.partner-level-nav.nm-level-nav-three { grid-template-columns: 1fr; }
}

@media (min-width: 781px) {
	.about-editorial-chapter-nav a {
		min-height: clamp(76px, 9.5vh, 94px);
		grid-template-columns: 44px 1fr;
		grid-template-rows: auto auto;
		align-content: center;
		gap: 4px 12px;
		padding: clamp(10px, 1.25vh, 14px) 18px;
	}
	.about-editorial-chapter-nav span { grid-row: 1 / span 2; }
	.about-editorial-chapter-nav strong { font-size: clamp(.78rem, .92vw, .94rem); }
	.about-editorial-chapter-nav small { max-width: none; font-size: clamp(.65rem, .75vw, .76rem); }
}


/* ---------------------------------------------------------------------------
 * Wohnungsübersichten, Stand 11. September 2026 (P1-01 / P2-04).
 *
 * Die Karten auf der Startseite folgen jetzt derselben Höhenlogik wie die auf
 * der Unterkünfte-Seite: eine Reihe gleich hoher Karten statt dreier Karten,
 * die so hoch werden, wie ihr Text gerade ausfällt. Daher oben die zweite
 * Hälfte der Selektoren — und hier `grid-auto-rows: 1fr`, das außerhalb der
 * Vollbildlogik greift, also auch in kleineren Fenstern.
 *
 * `main.home-snap:not(.apartments-overview-snap)` ist genau die Startseite:
 * beide Klassen setzt NMT_Blocks auf <main>, und /wohnen trägt zusätzlich die
 * zweite. Beide Seiten bekommen so dieselben Regeln, ohne dass eine zweite
 * Kartengestaltung entsteht — was der Änderungssatz ausdrücklich verlangt.
 * ------------------------------------------------------------------------- */
main.home-snap:not(.apartments-overview-snap) > .apartments-teaser .apartment-card-grid { grid-auto-rows: 1fr; }


/* ---------------------------------------------------------------------------
 * Freigegebene Leerzustände der Turmwohnung, Stand 11. September 2026
 * (P1-04, P1-06, P1-08).
 *
 * Für die Turmwohnung gibt es weder Aufnahmen für den Kopfbereich noch
 * Visualisierungen. Der Entwurf beantwortet das nicht mit einem grauen Kasten
 * und erst recht nicht mit erfundenen Bildern, sondern mit einer gemalten
 * Fläche und einem Satz, der sagt, woran es liegt.
 *
 * Unter jeder dieser Flächen liegt ein echtes JPEG mit `opacity: 0`. Das ist
 * kein Rest und kein Versehen: es ist der Platz, den eine Redakteurin in der
 * Mediathek ersetzen kann, ohne dass jemand ein Bauteil neu bauen muss. Sobald
 * dort ein anderes Bild gewählt wird, fällt die Klasse des Leerzustands weg —
 * Rahmen, Zuschnitt und Bedienelemente bleiben, wie sie sind.
 *
 * Die Farben stammen unverändert aus ApartmentDetail.module.css des Builds 163.
 * ------------------------------------------------------------------------- */
/* .nm-technical-media-placeholder steht weiter oben, bei .technical-media-
   placeholder: dieselbe Regel fuer beide Schreibweisen, an einer Stelle. Die
   exportierten Seiten bringen die Klasse ohne Praefix mit, unsere Bausteine
   setzen sie mit — getrennt gepflegt waeren sie irgendwann auseinandergelaufen. */

.nm-apt-hero-placeholder {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse at 78% 22%, rgba(225,204,166,.76) 0%, rgba(225,204,166,0) 41%),
		radial-gradient(ellipse at 58% 92%, rgba(95,110,91,.58) 0%, rgba(95,110,91,0) 50%),
		linear-gradient(118deg, #10281f 0%, #30483b 38%, #7e806b 67%, #b9a583 100%);
}
.nm-apt-hero-placeholder::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(105deg, rgba(7,20,15,.2), transparent 52%, rgba(255,248,229,.08));
	content: "";
}
.nm-apt-hero-placeholder-note {
	position: absolute;
	z-index: 3;
	right: clamp(22px, 3.2vw, 48px);
	bottom: 28px;
	max-width: 310px;
	margin: 0;
	padding: 9px 13px;
	border: 1px solid rgba(255,255,255,.38);
	border-radius: 999px;
	background: rgba(15,35,27,.34);
	color: rgba(255,255,255,.86);
	font-size: .72rem;
	line-height: 1.3;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

.nm-apt-visualization-placeholder {
	position: relative;
	display: grid;
	height: 100%;
	min-height: 0;
	place-items: center;
	background:
		radial-gradient(ellipse at 76% 28%, rgba(239,225,194,.86) 0%, rgba(239,225,194,0) 44%),
		radial-gradient(ellipse at 18% 88%, rgba(48,72,59,.34) 0%, rgba(48,72,59,0) 50%),
		linear-gradient(132deg, #536558 0%, #8d9078 48%, #c8b99d 100%);
}
.nm-apt-visualization-placeholder::after {
	position: absolute;
	inset: clamp(18px, 2.5vw, 34px);
	border: 1px solid rgba(255,255,255,.3);
	content: "";
}

.nm-apt-floor-plan-placeholder {
	height: 100%;
	min-height: 0;
}

/* ---------------------------------------------------------------------------
 * Die Großansicht der Bilder auf den Wohnungsseiten
 *
 * Der Kandidat legt über jedes Bild eine durchsichtige Schaltfläche und öffnet
 * damit ein <dialog>. Das ist mehr als ein größeres Bild: showModal() nimmt dem
 * Rest der Seite die Bedienbarkeit, hält den Tabulator im Dialog und gibt
 * Escape seine übliche Bedeutung zurück — alles Dinge, die ein selbstgebautes
 * Overlay einzeln nachbauen müsste und meistens nur halb nachbaut.
 *
 * Die Klassen heißen hier nm-*, weil sie dieses Theme vergibt und keinem Build
 * gehören. Die Werte stammen unverändert aus ApartmentDetail.module.css des
 * Builds 163.
 * ------------------------------------------------------------------------- */
.nm-apt-image-open {
	position: absolute;
	z-index: 1;
	inset: 0;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: zoom-in;
}

.nm-apt-image-open:focus-visible {
	outline: 3px solid var(--white);
	outline-offset: -6px;
}

.nm-apt-lightbox {
	width: 100vw;
	max-width: none;
	height: 100dvh;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--ink);
}

.nm-apt-lightbox[open] { display: block; }

.nm-apt-lightbox::backdrop {
	background: rgba(10, 24, 18, .68);
	backdrop-filter: blur(3px);
}

.nm-apt-lightbox-stage {
	display: grid;
	width: 100%;
	height: 100%;
	place-items: center;
	padding: clamp(42px, 6vh, 76px) clamp(42px, 5vw, 96px);
}

.nm-apt-lightbox-figure {
	position: relative;
	display: grid;
	width: fit-content;
	max-width: min(90vw, 1800px);
	max-height: 85dvh;
	margin: 0;
	grid-template-rows: minmax(0, 1fr) auto;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, .58);
	background: var(--paper);
	box-shadow: 0 28px 90px rgba(0, 0, 0, .34);
}

.nm-apt-lightbox-figure > img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: calc(85dvh - 52px);
	object-fit: contain;
}

.nm-apt-lightbox-figure > figcaption {
	min-height: 48px;
	padding: 13px 18px;
	border-top: 1px solid var(--line);
	background: var(--paper);
	color: var(--ink);
	font-size: .9rem;
	font-weight: 700;
}

.nm-apt-lightbox-close,
.nm-apt-lightbox-control {
	position: absolute;
	z-index: 3;
	display: grid;
	width: 46px;
	height: 46px;
	place-items: center;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .78);
	border-radius: 999px;
	background: rgba(12, 27, 20, .72);
	color: var(--white);
	cursor: pointer;
	backdrop-filter: blur(5px);
	transition: background .18s ease, transform .18s ease;
}

.nm-apt-lightbox-close:hover,
.nm-apt-lightbox-close:focus-visible,
.nm-apt-lightbox-control:hover,
.nm-apt-lightbox-control:focus-visible {
	background: rgba(12, 27, 20, .94);
}

.nm-apt-lightbox-close:focus-visible,
.nm-apt-lightbox-control:focus-visible {
	outline: 2px solid var(--white);
	outline-offset: 3px;
}

.nm-apt-lightbox-close {
	top: 14px;
	right: 14px;
	font-size: 2rem;
	font-weight: 300;
	line-height: 1;
}

.nm-apt-lightbox-control {
	top: 50%;
	transform: translateY(-50%);
}

.nm-apt-lightbox-control:hover,
.nm-apt-lightbox-control:focus-visible { transform: translateY(-50%) scale(1.06); }

.nm-apt-lightbox-control span { transform: translateY(-1px); font-size: 1.15rem; }

.nm-apt-lightbox-previous { left: 14px; }

.nm-apt-lightbox-next { right: 14px; }

@media (max-width: 600px) {
	.nm-apt-lightbox-stage { padding: 54px 12px 34px; }
	.nm-apt-lightbox-figure { max-width: calc(100vw - 24px); max-height: calc(100dvh - 88px); }
	.nm-apt-lightbox-figure > img { max-height: calc(100dvh - 140px); }
	.nm-apt-lightbox-close { top: 10px; right: 10px; }
	.nm-apt-lightbox-control { width: 42px; height: 42px; }
	.nm-apt-lightbox-previous { left: 8px; }
	.nm-apt-lightbox-next { right: 8px; }
}

/* ---------------------------------------------------------------------------
 * Der Hinweis zur ersten Seite einer Sitzung
 *
 * Werte unverändert aus IntroNotice.module.css des Builds 163. Die Namen tragen
 * nm-, weil dieses Theme sie vergibt und sie zu keinem Build gehören.
 * ------------------------------------------------------------------------- */
.nm-intro-backdrop {
  position: fixed;
  z-index: 200;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 32px;
  background: rgba(14, 25, 20, 0.34);
  backdrop-filter: blur(3px) saturate(0.88);
  animation: nm-intro-backdrop-in 260ms ease-out both;
}

.nm-intro-dialog {
  position: relative;
  width: min(630px, 100%);
  overflow: hidden;
  padding: 48px 54px 50px;
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 22px;
  background: rgba(247, 244, 235, 0.96);
  box-shadow: 0 26px 80px rgba(8, 22, 15, 0.24);
  color: var(--ink);
  animation: nm-intro-dialog-in 340ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.nm-intro-dialog::before {
  position: absolute;
  top: 0;
  right: 54px;
  left: 54px;
  height: 3px;
  background: linear-gradient(90deg, var(--moss-dark), var(--gold) 58%, var(--clay));
  content: "";
}

.nm-intro-close {
  position: absolute;
  top: 20px;
  right: 20px;
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(23, 35, 30, 0.16);
  border-radius: 50%;
  background: transparent;
  color: var(--ink-soft);
  cursor: pointer;
  font-size: 1.45rem;
  font-weight: 300;
  line-height: 1;
  transition: border-color 160ms ease, color 160ms ease, background 160ms ease;
}

.nm-intro-close:hover,
.nm-intro-close:focus-visible {
  border-color: var(--ink);
  background: rgba(23, 35, 30, 0.055);
  color: var(--ink);
}

.nm-intro-brand {
  display: inline-flex;
  flex-direction: column;
  margin-bottom: 40px;
  line-height: 1;
}

.nm-intro-brand span {
  font-size: 1.08rem;
  font-weight: 760;
  letter-spacing: -0.02em;
}

.nm-intro-brand small {
  margin-top: 5px;
  color: var(--ink-soft);
  font-size: 0.67rem;
  letter-spacing: 0.035em;
}

.nm-intro-eyebrow {
  margin: 0 0 16px;
  color: var(--moss);
  font-size: 0.76rem;
  font-weight: 760;
  letter-spacing: 0.145em;
  line-height: 1.4;
  text-transform: uppercase;
}

.nm-intro-dialog h2 {
  max-width: 490px;
  margin: 0;
  font-size: clamp(2.35rem, 4.2vw, 3.65rem);
  line-height: 0.98;
}

.nm-intro-text {
  max-width: 510px;
  margin: 24px 0 32px;
  color: var(--ink-soft);
  font-size: 1.08rem;
  line-height: 1.62;
}

.nm-intro-cta {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding: 13px 19px 13px 22px;
  border: 1px solid var(--moss-dark);
  border-radius: 999px;
  background: var(--moss-dark);
  color: var(--white);
  cursor: pointer;
  font-size: 0.95rem;
  font-weight: 720;
  transition: background 160ms ease, color 160ms ease, transform 160ms ease;
}

.nm-intro-cta:hover,
.nm-intro-cta:focus-visible {
  background: var(--ink);
  transform: translateY(-1px);
}

@keyframes nm-intro-backdrop-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes nm-intro-dialog-in {
  from { opacity: 0; transform: translateY(12px) scale(0.988); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 600px) {
  .nm-intro-backdrop {
    align-items: center;
    padding: 18px;
  }

  .nm-intro-dialog {
    padding: 35px 26px 30px;
    border-radius: 18px;
  }

  .nm-intro-dialog::before {
    right: 26px;
    left: 26px;
  }

  .nm-intro-close {
    top: 14px;
    right: 14px;
    width: 36px;
    height: 36px;
  }

  .nm-intro-brand {
    margin-bottom: 32px;
  }

  .nm-intro-eyebrow {
    max-width: calc(100% - 44px);
    margin-bottom: 13px;
    font-size: 0.69rem;
  }

  .nm-intro-dialog h2 {
    max-width: 310px;
    font-size: clamp(2.05rem, 10.4vw, 2.75rem);
  }

  .nm-intro-text {
    margin: 19px 0 26px;
    font-size: 1rem;
    line-height: 1.55;
  }

  .nm-intro-cta {
    width: 100%;
    min-height: 50px;
  }
}

@media (max-height: 560px) {
  .nm-intro-backdrop { align-items: start; overflow-y: auto; }
  .nm-intro-dialog { margin-block: 14px; padding-top: 34px; padding-bottom: 30px; }
  .nm-intro-brand { margin-bottom: 24px; }
  .nm-intro-text { margin-block: 16px 20px; }
}

@media (prefers-reduced-motion: reduce) {
  .nm-intro-backdrop,
  .nm-intro-dialog { animation: none; }
  .nm-intro-cta { transition: none; }
}

/* Förderkennzeichnung bleibt auch auf schmalen Desktop-Ansichten kompakt zweispaltig. */
@media (min-width: 981px) and (max-width: 1100px) {
  .site-footer {
    grid-template-columns: minmax(270px, .76fr) minmax(500px, 1.24fr);
    gap: 24px;
  }
  .footer-meta, .footer-funding { justify-items: stretch; }
  .footer-links { flex-wrap: nowrap; justify-content: space-between; white-space: nowrap; }
  .footer-funding-logos { align-items: center; flex-direction: row; justify-content: space-between; gap: 14px; }
  .footer-leader-lockup { gap: 8px; }
  .footer-leader-lockup span { max-width: 104px; font-size: .66rem; }
}


/* ------------------------------------------------------------------------
   LEADER-Förderkapitel auf /ueber-uns  (Paket B, B-02)
   ------------------------------------------------------------------------

   Quelle: components/AboutLeaderFunding.module.css aus v168, 438 Zeilen,
   Deklaration für Deklaration übernommen. Nichts daran ist erfunden.

   Nur die Klassennamen sind andere, und dafür gibt es einen Grund.
   Der Kandidat nutzt CSS-Module: aus `.section` wird beim Bauen
   `_section_a1b2c_3`, und die übrigen Bausteine dieses Themes fangen solche
   Namen mit `[class*="_section_"]` ab. Genau das ginge hier schief: `_intro_`
   ist in diesem Stylesheet bereits vergeben (weiße Schrift auf dunklem Grund,
   Zeile ~4126). Ein zweites `_intro_` würde das Kapitel einfärben. Deshalb
   trägt dieser Abschnitt sprechende, stabile Namen — er ist ohnehin neu und
   wird nicht aus dem Kandidaten exportiert, sondern als Blockinhalt gepflegt.

   Die Zuordnung, damit ein späterer Abgleich nicht ins Leere läuft:

     .section        -> .leader-funding             .fundingCard  -> .leader-funding-card
     .intro          -> .leader-funding-intro       .cardLabel    -> .leader-funding-card-label
     .introCopy      -> .leader-funding-copy        .cardText     -> .leader-funding-card-text
     .facts          -> .leader-funding-facts       .logos        -> .leader-funding-logos
     .eyebrow        -> .leader-funding-eyebrow     .statusArea   -> .leader-funding-status
     .apartmentList  -> .leader-funding-apartments  .statusRow    -> .leader-funding-status-row
     .greenBand      -> .leader-funding-band        .statusLabel  -> .leader-funding-status-label
     .greenBandInner -> .leader-funding-band-inner  .statusText   -> .leader-funding-status-text
     .greenLabel     -> .leader-funding-band-label  .distinction  -> .leader-funding-distinction
     .benefits       -> .leader-funding-benefits

   Die beiden Logos kommen ohne eigene Klasse ins Bild, damit `NMT_Figures`
   die <figure> entfernt und `.leader-funding-logos img` dasselbe direkte Kind
   trifft wie im Kandidaten.

   ACHTUNG: Das Kapitel gibt es nur auf Deutsch. Der Fußzeilen-Link zeigt in
   allen drei Sprachen auf `#leader-foerderung` — das macht der Kandidat auch
   so, es ist kein Versehen dieser Portierung.
   --------------------------------------------------------------------- */

.leader-funding {
  scroll-margin-top: calc(var(--site-header-height) + 12px);
  background: var(--paper);
  color: var(--ink);
}

.leader-funding-intro,
.leader-funding-band-inner,
.leader-funding-status {
  width: min(1546px, calc(100% - 64px));
  margin-inline: auto;
}

.leader-funding-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.62fr) minmax(300px, .78fr);
  gap: clamp(48px, 7vw, 104px);
  padding-block: clamp(64px, 5.6vw, 82px) clamp(58px, 5vw, 72px);
}

.leader-funding-copy {
  min-width: 0;
}

.leader-funding-copy h2 {
  max-width: none;
  margin: 0 0 clamp(24px, 2.4vw, 34px);
  font-size: clamp(2.3rem, 3.35vw, 3.45rem);
  font-weight: 400;
  line-height: 1.03;
  letter-spacing: -.035em;
}

.leader-funding-copy p {
  max-width: 860px;
  margin: 0;
  font-size: clamp(1.05rem, 1.45vw, 1.42rem);
  line-height: 1.48;
}

.leader-funding-facts {
  min-width: 0;
  padding: 26px 0 18px clamp(32px, 4vw, 58px);
  border-left: 1px solid var(--line);
}

.leader-funding-eyebrow,
.leader-funding-band-label,
.leader-funding-card-label,
.leader-funding-status-label {
  margin: 0;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .06em;
  line-height: 1.4;
  text-transform: uppercase;
}

.leader-funding-eyebrow {
  color: var(--ink-soft);
}

.leader-funding-facts h3 {
  max-width: none;
  margin: 26px 0 22px;
  font-size: clamp(1.35rem, 1.65vw, 1.65rem);
  font-weight: 800;
  line-height: 1.35;
  text-transform: uppercase;
}

.leader-funding-apartments {
  padding-top: 22px;
  border-top: 1px solid var(--line);
}

.leader-funding-apartments p {
  margin: 0;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.55;
}

.leader-funding-apartments p + p {
  margin-top: 8px;
}

.leader-funding-band {
  background: #0b4d3f;
  color: var(--white);
}

.leader-funding-band-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(330px, 400px);
  gap: clamp(46px, 7vw, 108px);
  align-items: center;
  padding-block: clamp(52px, 5.4vw, 78px);
}

.leader-funding-band-label {
  color: #e4bd5c;
}

.leader-funding-benefits ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(36px, 4vw, 58px) clamp(42px, 5vw, 76px);
  margin: 32px 0 0;
  padding: 0;
  list-style: none;
}

.leader-funding-benefits li {
  position: relative;
  padding-left: 32px;
  font-size: clamp(1rem, 1.18vw, 1.22rem);
  font-weight: 800;
  line-height: 1.28;
}

.leader-funding-benefits li::before {
  position: absolute;
  top: .55em;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #e4bd5c;
  content: "";
}

.leader-funding-card {
  min-width: 0;
  padding: clamp(24px, 2.6vw, 34px);
  border-radius: 4px;
  background: var(--paper-deep);
  color: var(--ink);
}

.leader-funding-card-label {
  margin-bottom: 24px;
}

.leader-funding-logos {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: clamp(14px, 1.4vw, 20px);
}

.leader-funding-logos img {
  display: block;
  width: auto;
  height: 50px;
  flex: 0 0 auto;
  object-fit: contain;
}

.leader-funding-card-text {
  margin: 28px 0 0;
  font-size: .9rem;
  line-height: 1.48;
}

.leader-funding-status {
  border-top: 1px solid var(--line);
  padding-block: 30px 34px;
}

.leader-funding-status-row {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 28px;
}

.leader-funding-status-label {
  padding-top: 3px;
  color: var(--ink-soft);
}

.leader-funding-status-text {
  max-width: 1060px;
  margin: 0;
  font-size: 1rem;
  line-height: 1.48;
}

.leader-funding-distinction {
  margin: 48px 0 0;
  color: var(--ink-soft);
  font-size: .75rem;
  line-height: 1.45;
}

@media (min-width: 981px) {
  .leader-funding {
    display: grid;
    min-height: calc(100svh - var(--site-header-height));
    min-height: calc(100dvh - var(--site-header-height));
    grid-template-rows: auto auto auto;
  }

  .leader-funding-intro {
    align-items: center;
    gap: clamp(56px, 7.5vw, 112px);
    padding-block: clamp(62px, 6.2vh, 78px) clamp(34px, 3.2vh, 44px);
  }

  .leader-funding-copy h2 {
    margin-bottom: clamp(28px, 2.8vw, 40px);
    font-size: clamp(2.75rem, 4vw, 4.2rem);
  }

  .leader-funding-copy p {
    font-size: clamp(1.12rem, 1.6vw, 1.55rem);
    line-height: 1.5;
  }

  .leader-funding-facts {
    padding-block: clamp(30px, 3.2vh, 42px) clamp(24px, 2.7vh, 36px);
    padding-left: clamp(38px, 4.4vw, 64px);
  }

  .leader-funding-eyebrow,
  .leader-funding-band-label,
  .leader-funding-card-label,
  .leader-funding-status-label {
    font-size: .82rem;
  }

  .leader-funding-facts h3 {
    margin-block: 30px 27px;
    font-size: clamp(1.5rem, 1.9vw, 1.9rem);
  }

  .leader-funding-apartments {
    padding-top: 26px;
  }

  .leader-funding-apartments p {
    font-size: clamp(1.04rem, 1.1vw, 1.15rem);
    line-height: 1.58;
  }

  .leader-funding-band {
    display: flex;
    align-items: stretch;
  }

  .leader-funding-band-inner {
    grid-template-columns: minmax(0, 1fr) minmax(360px, 440px);
    gap: clamp(56px, 7.5vw, 116px);
    padding-block: clamp(66px, 7.2vh, 94px);
  }

  .leader-funding-benefits ul {
    gap: clamp(42px, 4.8vh, 64px) clamp(50px, 5.6vw, 84px);
    margin-top: 38px;
  }

  .leader-funding-benefits li {
    padding-left: 36px;
    font-size: clamp(1.08rem, 1.32vw, 1.34rem);
    line-height: 1.32;
  }

  .leader-funding-benefits li::before {
    width: 7px;
    height: 7px;
  }

  .leader-funding-card {
    padding: clamp(30px, 3vw, 42px);
  }

  .leader-funding-card-label {
    margin-bottom: 28px;
  }

  .leader-funding-logos {
    gap: clamp(17px, 1.6vw, 24px);
  }

  .leader-funding-logos img {
    height: clamp(54px, 4.1vw, 60px);
  }

  .leader-funding-card-text {
    margin-top: 32px;
    font-size: clamp(.96rem, 1.03vw, 1.05rem);
    line-height: 1.52;
  }

  .leader-funding-status {
    padding-block: clamp(26px, 2.8vh, 34px) clamp(28px, 3.2vh, 40px);
  }

  .leader-funding-status-row {
    grid-template-columns: 176px minmax(0, 1fr);
    gap: clamp(34px, 3.2vw, 46px);
  }

  .leader-funding-status-text {
    font-size: clamp(1.05rem, 1.13vw, 1.16rem);
    line-height: 1.52;
  }

  .leader-funding-distinction {
    margin-top: clamp(30px, 3.2vh, 40px);
    font-size: clamp(.8rem, .84vw, .86rem);
  }
}

@media (max-width: 980px) {
  .leader-funding-intro,
  .leader-funding-band-inner,
  .leader-funding-status {
    width: min(100% - 48px, 820px);
  }

  .leader-funding-intro {
    grid-template-columns: 1fr;
    gap: 46px;
  }

  .leader-funding-facts {
    padding: 32px 0 0;
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .leader-funding-facts h3 {
    max-width: none;
  }

  .leader-funding-band-inner {
    grid-template-columns: 1fr;
  }

  .leader-funding-card {
    width: min(100%, 440px);
  }
}

@media (max-width: 600px) {
  .leader-funding-intro,
  .leader-funding-band-inner,
  .leader-funding-status {
    width: calc(100% - 40px);
  }

  .leader-funding-intro {
    gap: 38px;
    padding-block: 58px 52px;
  }

  .leader-funding-copy h2 {
    font-size: clamp(2.45rem, 12.2vw, 3.2rem);
  }

  .leader-funding-copy p {
    font-size: 1rem;
  }

  .leader-funding-facts {
    padding-top: 28px;
  }

  .leader-funding-facts h3 {
    margin-block: 23px 22px;
    font-size: 1.42rem;
  }

  .leader-funding-band-inner {
    gap: 46px;
    padding-block: 48px;
  }

  .leader-funding-benefits ul {
    grid-template-columns: 1fr;
    gap: 27px;
    margin-top: 28px;
  }

  .leader-funding-benefits li {
    padding-left: 28px;
    font-size: 1rem;
  }

  .leader-funding-card {
    padding: 24px 20px 26px;
  }

  .leader-funding-logos {
    gap: 14px;
  }

  .leader-funding-logos img {
    height: 46px;
  }

  .leader-funding-card-text {
    margin-top: 24px;
    font-size: .84rem;
  }

  .leader-funding-status {
    padding-block: 28px 36px;
  }

  .leader-funding-status-row {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .leader-funding-status-label {
    padding-top: 0;
  }

  .leader-funding-status-text {
    font-size: .95rem;
  }

  .leader-funding-distinction {
    margin-top: 36px;
    font-size: .72rem;
  }
}

@media (max-width: 360px) {
  .leader-funding-logos img {
    height: 42px;
  }
}

/* ------------------------------------------------------------------------
   Logotipo en la tarjeta de socio  (Paket B, B-06)
   ------------------------------------------------------------------------

   Aus PartnerAccordionSections.module.css (v168), Wert für Wert übernommen.
   Der Kandidat nennt sie `.partnerCardLogo` und `.partnerCardLogoImage`; hier
   stehen sprechende Namen, aus demselben Grund wie beim LEADER-Kapitel — die
   `[class*="_name_"]`-Selektoren dieses Stylesheets sind auf unterscheidbare
   Namen angewiesen, und diese beiden Karten sind ohnehin Theme-Ausgabe.

   Nur die beiden Förderkarten tragen ein Logo. Die Partnerkarten haben keins,
   und das ist kein Rückstand: der Kandidat zeigt dort auch keins.
   --------------------------------------------------------------------- */

.partner-card-logo {
  display: flex;
  min-height: 72px;
  align-items: center;
  margin: -4px 0 30px;
}

.partner-card-logo-image {
  display: block;
  width: auto;
  max-width: 100%;
  height: 52px;
  object-fit: contain;
  object-position: left center;
}

@media (max-width: 980px) {
  .partner-card-logo {
    min-height: 62px;
    margin-bottom: 24px;
  }

  .partner-card-logo-image {
    height: 46px;
  }
}

/* Das Newsletter-Kapitel bekommt auf hohen Desktop-Fenstern seine Mindesthöhe
   zurück (v168). Die Basisregel dazu ist in diesem Stylesheet nie angekommen;
   diese hier steht für sich und braucht sie nicht. */
@media (min-width: 981px) and (min-height: 700px) {
  [class*="_contactChapter_"] {
    min-height: calc(100svh - var(--site-header-height) - 174px);
    min-height: calc(100dvh - var(--site-header-height) - 174px);
  }
}

/* Der Rahmen der Naturpark-Karten in Kasten 05 (Paket B, B-06).
   Aus `.natureParkRecord` in PartnerAccordionSections.module.css (v163/v168).
   Die Rasterregeln daneben entsprechen dem Standard von `.partner-card-grid`
   und sind deshalb nicht noch einmal aufgeschrieben. */
.nature-partner-record {
  padding-block: 72px;
  background: var(--paper-deep);
}

@media (max-width: 980px) {
  .nature-partner-record { padding-block: 56px; }
}


/* ------------------------------------------------------------------------
   Lageplan — /wohnen#haus und /ueber-uns#projekt-lage  (Paket 01, 18.09.2026)
   ------------------------------------------------------------------------

   Quelle: components/AccommodationSitePlan.module.css (Kandidat cad4310),
   551 Zeilen, Deklaration für Deklaration übernommen. Die Klassennamen sind
   eigene, aus demselben Grund wie beim LEADER-Kapitel: dieses Stylesheet fängt
   die gehashten Modulnamen des Kandidaten mit `[class*="_name_"]` ab, und
   `_root_`, `_poi_`, `_marker_` oder `_dialog_` wären Allerweltsnamen.

   Zuordnung, damit ein späterer Abgleich nicht ins Leere läuft:

     .mapViewportInteractive   -> .site-plan-viewport-interactive
     .mapViewportExpanded      -> .site-plan-viewport-expanded
     .mapViewportDragging      -> .site-plan-viewport-dragging
     .mapViewportAbout         -> .site-plan-viewport-about
     .mapViewport              -> .site-plan-viewport
     .mapPlanImage             -> .site-plan-image
     .mapPoiLayer              -> .site-plan-poi-layer
     .mapCanvas                -> .site-plan-canvas
     .mapControls              -> .site-plan-controls
     .embeddedMap              -> .site-plan-embedded
     .toolbarActions           -> .site-plan-toolbar-actions
     .toolbar                  -> .site-plan-toolbar
     .root                     -> .site-plan-root
     .expandButton             -> .site-plan-expand
     .closeButton              -> .site-plan-close
     .markerLabelText          -> .site-plan-marker-label-text
     .markerLabel              -> .site-plan-marker-label
     .markerHome               -> .site-plan-marker-home
     .marker                   -> .site-plan-marker
     .poiActive                -> .site-plan-poi-active
     .poi                      -> .site-plan-poi
     .popoverImage             -> .site-plan-popover-image
     .popoverBody              -> .site-plan-popover-body
     .popoverCategory          -> .site-plan-popover-category
     .popoverDescription       -> .site-plan-popover-description
     .popoverCta               -> .site-plan-popover-cta
     .popoverClose             -> .site-plan-popover-close
     .popovertop               -> .site-plan-popover-top
     .popoverright             -> .site-plan-popover-right
     .popoverbottom            -> .site-plan-popover-bottom
     .popoverleft              -> .site-plan-popover-left
     .popover                  -> .site-plan-popover
     .zoomValue                -> .site-plan-zoom-value
     .resetButton              -> .site-plan-reset
     .overlay                  -> .site-plan-overlay
     .dialogTopbar             -> .site-plan-dialog-topbar
     .dialogActions            -> .site-plan-dialog-actions
     .dialog                   -> .site-plan-dialog

   Die Transformation (--map-zoom, --map-pan-x …) setzt der Kandidat auf jedes
   Bild und die Punktebene einzeln; hier steht sie einmal auf der Leinwand und
   wird geerbt. Dieselben Regeln lesen sie.

   Zwei Ergänzungen für WordPress stehen am Ende, und nur dort.
   --------------------------------------------------------------------- */

.site-plan-root {
  display: flex;
  width: 100%;
  height: 100%;
  min-height: 0;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(20, 40, 34, .28);
  background: #eef0d0;
}

.site-plan-toolbar {
  position: relative;
  z-index: 3;
  display: grid;
  flex: 0 0 auto;
  grid-template-columns: minmax(260px, .8fr) minmax(380px, 1.2fr);
  align-items: end;
  gap: 32px;
  padding: 18px clamp(20px, 2.4vw, 38px) 16px;
  border-bottom: 1px solid rgba(20, 40, 34, .22);
  background: rgba(246, 242, 232, .97);
}

.site-plan-toolbar .kicker,
.site-plan-dialog-topbar .kicker {
  color: var(--green);
}

.site-plan-toolbar h2,
.site-plan-dialog-topbar h2 {
  margin: 5px 0 0;
  font-size: clamp(1.9rem, 2.55vw, 3rem);
  line-height: .98;
  letter-spacing: -.035em;
}

.site-plan-toolbar-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 24px;
}

.site-plan-toolbar-actions p {
  max-width: 380px;
  margin: 0;
  color: var(--ink-soft);
  font-size: .88rem;
  line-height: 1.45;
  text-align: right;
}

.site-plan-expand,
.site-plan-close,
.site-plan-controls button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(20, 40, 34, .48);
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  font: inherit;
}

.site-plan-expand {
  min-height: 42px;
  flex: 0 0 auto;
  gap: 16px;
  padding: 9px 14px 9px 17px;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 700;
}

.site-plan-expand:hover,
.site-plan-expand:focus-visible {
  border-color: var(--moss-dark);
  background: var(--moss-dark);
  color: var(--white);
}

.site-plan-viewport {
  position: relative;
  display: grid;
  min-height: 0;
  flex: 1 1 auto;
  place-items: center;
  overflow: hidden;
  background: #eef0d0;
  overscroll-behavior: contain;
}

.site-plan-viewport:not(.site-plan-viewport-expanded) {
  aspect-ratio: 3326 / 1868;
}

.site-plan-embedded {
  display: flex;
  width: 100%;
  height: 100%;
  min-height: 0;
}

.site-plan-viewport-about {
  width: 100%;
  height: 100%;
  aspect-ratio: auto !important;
}

.site-plan-viewport-about .site-plan-image {
  width: var(--map-base-width, 100%);
  height: var(--map-base-height, auto);
  max-width: none;
  max-height: none;
}

.site-plan-viewport-interactive {
  touch-action: none;
}

.site-plan-canvas {
  position: absolute;
  inset: 0;
}

.site-plan-image,
.site-plan-poi-layer {
  position: absolute;
  top: 50%;
  left: 50%;
  width: var(--map-base-width, 100%);
  height: var(--map-base-height, auto);
  aspect-ratio: 3326 / 1868;
  flex: none;
  transform: translate3d(
    calc(-50% + var(--map-pan-x, 0px)),
    calc(-50% + var(--map-pan-y, 0px)),
    0
  ) scale(var(--map-zoom, 1));
  transform-origin: center;
  transition: transform .2s ease;
  will-change: transform;
}

.site-plan-image {
  display: block;
  object-fit: cover;
  user-select: none;
}

.site-plan-poi-layer {
  pointer-events: none;
}

.site-plan-viewport-dragging .site-plan-image,
.site-plan-viewport-dragging .site-plan-poi-layer {
  transition: none;
}

.site-plan-poi {
  position: absolute;
  z-index: 4;
  top: var(--poi-y);
  left: var(--poi-x);
  width: 0;
  height: 0;
  transform: scale(var(--map-inverse-zoom, 1));
  transform-origin: center;
  pointer-events: auto;
}

.site-plan-poi-active {
  z-index: 30;
}

.site-plan-marker-label {
  position: absolute;
  bottom: 15px;
  left: 0;
  width: max-content;
  max-width: 94px;
  transform: translate(calc(-50% + var(--poi-label-x, 0px)), var(--poi-label-y, 0px));
  color: color-mix(in srgb, var(--poi-category-color) 82%, var(--ink));
  font-size: .68rem;
  font-weight: 760;
  line-height: 1.35;
  opacity: .98;
  pointer-events: none;
  text-align: center;
  white-space: normal;
}

.site-plan-marker-label-text {
  padding: 2px;
  border: 0;
  border-radius: 2px;
  background: rgba(251, 250, 246, .64);
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.site-plan-marker {
  position: absolute;
  top: 0;
  left: 0;
  display: grid;
  width: 18px;
  height: 18px;
  padding: 0;
  transform: translate(-50%, -50%);
  place-items: center;
  border: 1.5px solid var(--poi-category-color);
  border-radius: 999px;
  background: rgba(251, 250, 246, .52);
  color: var(--poi-category-color);
  box-shadow: 0 0 0 1px rgba(251, 250, 246, .46), 0 2px 6px rgba(10, 28, 23, .22);
  cursor: pointer;
  transition: transform .16s ease, background-color .16s ease, color .16s ease, box-shadow .16s ease;
}

.site-plan-marker::before {
  position: absolute;
  inset: -13px;
  border-radius: inherit;
  content: "";
}

.site-plan-marker svg {
  width: 10px;
  height: 10px;
  flex: 0 0 auto;
}

.site-plan-marker:hover,
.site-plan-marker:focus-visible,
.site-plan-marker[aria-expanded="true"] {
  transform: translate(-50%, -50%) scale(1.1);
  background: var(--poi-category-color);
  color: var(--white);
  box-shadow: 0 0 0 3px rgba(251, 250, 246, .48), 0 3px 9px rgba(10, 28, 23, .28);
}

.site-plan-marker:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 4px;
}

.site-plan-marker-home {
  box-shadow: 0 0 0 2px rgba(243, 210, 139, .9), 0 0 0 3px rgba(251, 250, 246, .5), 0 2px 6px rgba(10, 28, 23, .24);
}

.site-plan-popover {
  position: absolute;
  z-index: 32;
  display: grid;
  width: min(290px, 72vw);
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--poi-category-color) 36%, rgba(20, 40, 34, .2));
  background: rgba(251, 250, 246, .99);
  color: var(--ink);
  box-shadow: 0 18px 40px rgba(15, 36, 29, .25);
}

.site-plan-popover-image {
  margin: 0;
  border-bottom: 1px solid rgba(20, 40, 34, .16);
}

.site-plan-popover-image img {
  display: block;
  width: 100%;
  height: 110px;
  object-fit: cover;
}

.site-plan-popover-image figcaption {
  padding: 4px 10px 5px;
  color: rgba(23, 35, 30, .62);
  font-size: .5rem;
  line-height: 1.25;
}

.site-plan-popover-image a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.site-plan-popover-body {
  display: grid;
  gap: 7px;
  padding: 13px 44px 14px 15px;
}

.site-plan-popover-category {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  font-size: .6rem;
  font-weight: 800;
  letter-spacing: .075em;
  line-height: 1.2;
  text-transform: uppercase;
}

.site-plan-popover-category svg {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
}

.site-plan-popover h3 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.08;
}

.site-plan-popover-description {
  margin: 0;
  color: var(--ink-soft);
  font-size: .72rem;
  line-height: 1.43;
}

.site-plan-popover-cta {
  justify-self: start;
  margin-top: 2px;
  padding: 7px 11px;
  border: 1px solid var(--moss-dark);
  border-radius: 999px;
  color: var(--moss-dark);
  font-size: .66rem;
  font-weight: 780;
  line-height: 1;
  text-decoration: none;
}

.site-plan-popover-cta:hover,
.site-plan-popover-cta:focus-visible {
  background: var(--moss-dark);
  color: var(--white);
}

.site-plan-popover-close {
  position: absolute;
  top: 10px;
  right: 10px;
  display: grid;
  width: 28px;
  height: 28px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 999px;
  background: var(--moss-dark);
  color: var(--white);
  cursor: pointer;
  font: 1.15rem/1 Arial, sans-serif;
}

.site-plan-popover-close:hover,
.site-plan-popover-close:focus-visible {
  background: var(--gold);
  color: var(--ink);
}

.site-plan-popover-top { left: 0; bottom: 22px; transform: translateX(calc(-50% + var(--popover-shift-x, 0px))); }
.site-plan-popover-right { top: 0; left: 22px; transform: translateY(calc(-50% + var(--popover-shift-y, 0px))); }
.site-plan-popover-bottom { top: 22px; left: 0; transform: translateX(calc(-50% + var(--popover-shift-x, 0px))); }
.site-plan-popover-left { top: 0; right: 22px; transform: translateY(calc(-50% + var(--popover-shift-y, 0px))); }

.site-plan-controls {
  position: absolute;
  z-index: 42;
  top: 12px;
  right: clamp(20px, 2.4vw, 38px);
  display: flex;
  align-items: center;
  overflow: hidden;
  border: 1px solid rgba(20, 40, 34, .32);
  border-radius: 999px;
  background: rgba(251, 250, 246, .9);
  box-shadow: 0 4px 14px rgba(15, 36, 29, .16);
  backdrop-filter: blur(5px);
}

.site-plan-controls button {
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-left: 1px solid rgba(20, 40, 34, .18);
  font-size: 1rem;
}

.site-plan-controls button:first-child {
  border-left: 0;
}

.site-plan-controls button:hover:not(:disabled),
.site-plan-controls button:focus-visible:not(:disabled) {
  background: var(--moss-dark);
  color: var(--white);
}

.site-plan-controls button:disabled {
  cursor: default;
  opacity: .35;
}

.site-plan-controls .site-plan-zoom-value {
  width: auto;
  min-width: 54px;
  padding-inline: 8px;
  color: var(--ink-soft);
  font-size: .66rem;
  font-weight: 760;
}

.site-plan-overlay {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  padding: clamp(8px, 1.5vw, 18px);
  place-items: center;
  background: rgba(7, 19, 15, .78);
  backdrop-filter: blur(3px);
  overscroll-behavior: none;
}

.site-plan-dialog {
  display: flex;
  width: min(96vw, 1920px);
  height: min(94svh, 1080px);
  min-height: 0;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .32);
  background: var(--paper);
  box-shadow: 0 28px 90px rgba(0, 0, 0, .45);
}

.site-plan-dialog-topbar {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 9px 12px 9px 20px;
  border-bottom: 1px solid rgba(20, 40, 34, .24);
}

.site-plan-dialog-topbar h2 {
  font-size: clamp(1.55rem, 2vw, 2.4rem);
}

.site-plan-dialog-actions {
  display: flex;
  align-items: center;
}

.site-plan-dialog-actions {
  gap: 12px;
}

.site-plan-close {
  width: 44px;
  height: 44px;
  flex: 0 0 auto;
  border-radius: 999px;
  background: var(--moss-dark);
  color: var(--white);
  font: 1.8rem/1 Arial, sans-serif;
}

.site-plan-close:hover,
.site-plan-close:focus-visible {
  background: var(--gold);
  color: var(--ink);
}

.site-plan-viewport-expanded {
  flex: 1 1 auto;
}

.site-plan-viewport-expanded .site-plan-controls {
  right: 12px;
}

.site-plan-viewport-interactive[data-can-pan="true"] {
  cursor: grab;
}

.site-plan-viewport-dragging,
.site-plan-viewport-dragging[data-can-pan="true"] {
  cursor: grabbing;
}

@media (max-width: 980px) {
  .site-plan-root { height: auto; }
  .site-plan-toolbar {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 14px;
  }
  .site-plan-toolbar-actions {
    align-items: center;
    justify-content: space-between;
  }
  .site-plan-toolbar-actions p { max-width: 520px; text-align: left; }
  .site-plan-dialog {
    width: calc(100vw - 18px);
    height: calc(100svh - 18px);
  }
}

@media (max-width: 560px) {
  .site-plan-toolbar { padding: 16px; }
  .site-plan-toolbar h2 { font-size: 2rem; }
  .site-plan-toolbar-actions { align-items: stretch; flex-direction: column; gap: 12px; }
  .site-plan-toolbar-actions p { font-size: .82rem; }
  .site-plan-expand { align-self: flex-end; }
  .site-plan-viewport:not(.site-plan-viewport-expanded) { min-height: min(42svh, 320px); aspect-ratio: auto; }
  .site-plan-marker-label { bottom: 15px; max-width: 90px; font-size: .61rem; }
  .site-plan-marker { width: 18px; height: 18px; }
  .site-plan-marker svg { width: 10px; height: 10px; }
  .site-plan-overlay { padding: 4px; }
  .site-plan-dialog { width: calc(100vw - 8px); height: calc(100svh - 8px); }
  .site-plan-dialog-topbar { align-items: center; gap: 10px; padding: 7px 8px 7px 12px; }
  .site-plan-dialog-topbar h2 { font-size: 1.3rem; }
  .site-plan-dialog-actions { gap: 7px; }
  .site-plan-close { width: 38px; height: 38px; }
  .site-plan-controls { top: 8px; right: 16px; }
  .site-plan-viewport-expanded .site-plan-controls { right: 8px; }
  .site-plan-controls button { width: 32px; height: 34px; }
  .site-plan-controls .site-plan-zoom-value { min-width: 46px; padding-inline: 4px; font-size: .6rem; }
  .site-plan-controls .site-plan-reset { display: none; }
  .site-plan-popover { width: min(260px, calc(100vw - 44px)); }
  .site-plan-popover-image img { height: 90px; }
  .site-plan-popover-body { gap: 6px; padding: 11px 40px 12px 13px; }
  .site-plan-popover-category { font-size: .54rem; }
  .site-plan-popover h3 { font-size: .92rem; }
  .site-plan-popover-description { font-size: .67rem; line-height: 1.38; }
}

@media (prefers-reduced-motion: reduce) {
  .site-plan-marker,
  .site-plan-canvas { transition: none; }
}

/* WordPress-Ergänzung 1: die Ortskarten liegen hier fertig im Markup, mit
   `hidden`. `.site-plan-popover { display: grid }` würde das Attribut
   überstimmen und alle 22 Karten auf einmal öffnen. */
.site-plan-popover[hidden] { display: none; }

/* WordPress-Ergänzung 2: die Vektorebene liegt als zweites Bild über dem
   Aquarell und darf keine Klicks schlucken — Ziehen und Zoomen gehören der
   Fläche, die Punkte liegen ohnehin darüber. */
.site-plan-image { pointer-events: none; }

/* 0.37.1 — Über uns: Fließtext in einer Größe (Hilmar, 21.09.2026).
   Der Absatz unter „Das Ensemble zwischen Saale und Altstadt" (.large-copy,
   bis 1,7rem) und der Einleitungstext im Kopfbereich (bis 1,35rem) hatten
   verschiedene Größen. Beide nutzen jetzt die Größe des Kopfbereichs. Nur
   Größe und Zeilenhöhe; Farbe und Breite bleiben je nach Hintergrund. */
.about-page { --about-body-size: clamp(1.02rem, 1.24vw, 1.35rem); --about-body-leading: 1.52; }
.about-page .about-editorial-lead p,
.about-page .about-why .large-copy,
.about-page .about-place .large-copy,
.about-page .about-architecture .large-copy,
.about-page .about-innovation .large-copy,
.about-page .about-people .large-copy {
  font-size: var(--about-body-size);
  line-height: var(--about-body-leading);
}

/* ---------------------------------------------------------------------------
 * 0.38.0 — Modul 01 des Pakets vom 30.09.2026: Kapitelbänder und Wege-Titel
 * nach dem veröffentlichten Kandidaten V228.
 *
 * Gemessen im Kandidaten bei 1440 und 1920 px: Band randlos, Zeile
 * clamp(68px, 8vh, 80px) hoch, Polster 10px 18px, keine Ziffern, Titel und
 * Unterzeile untereinander. Die Ziffern stehen im Seiteninhalt; sie werden
 * ausgeblendet statt gelöscht, damit die Redaktion nichts verliert.
 * ------------------------------------------------------------------------ */

.about-chapter-nav a > span:first-child,
.routes-chapter-nav a > span:first-child { display: none; }

.about-editorial-chapter-nav a,
.routes-chapter-nav a { grid-template-columns: minmax(0, 1fr); }

@media (min-width: 781px) {
  .about-editorial-chapter-nav a,
  .routes-chapter-nav a {
    min-height: clamp(68px, 8vh, 80px);
    grid-template-rows: auto auto;
    align-content: center;
    gap: 4px;
    padding: 10px 18px;
  }
}

/* Über uns: das Band liegt über dem Bild und bleibt durchscheinend. */
.about-editorial-chapter-nav {
  border-top: 1px solid rgba(255,255,255,.28);
  background: rgba(12,27,20,.56);
}
.about-editorial-chapter-nav a { border-color: rgba(255,255,255,.22); }
.about-editorial-chapter-nav small { color: rgba(255,255,255,.76); }

/* Wege: Band über die volle Breite, grüner Hauch statt Papier und Linien. */
.routes-chapter-band {
  border-block: 0;
  background: rgba(33,76,51,.08);
  grid-template-columns: minmax(0, 1fr);
}
.routes-chapter-band-edge { display: none; }
.routes-chapter-nav {
  grid-column: 1;
  border-left: 0;
  background: transparent;
}
.routes-chapter-nav a {
  border-right: 0;
  background: transparent;
}
.routes-chapter-nav a:hover,
.routes-chapter-nav a:focus-visible { background: rgba(33,76,51,.1); }

/* Wege: Titelgröße und Zeilenbild des Kandidaten (5,45vw, 0,84, -0,055em). */
@media (min-width: 981px) {
  .routes-overview-copy h1 {
    max-width: none;
    font-size: clamp(3.55rem, 5.45vw, 5.7rem);
    line-height: .84;
    letter-spacing: -.055em;
  }
}

/* ---------------------------------------------------------------------------
 * 0.39.0 — Modul 02 des Pakets vom 30.09.2026.
 *
 * Über uns: der Lageplan liegt jetzt über die ganze Breite unter dem Text,
 * und der grüne Verlauf macht ihn links lesbar, statt ihn abzuschneiden.
 * Gemessen im Kandidaten bei 1440 px: Verlauf 58 % breit, Plan 1425 × 908.
 * Ab 981 px, darunter bleibt die gestapelte Anordnung.
 * ------------------------------------------------------------------------ */

@media (min-width: 981px) {
  .about-editorial-location { position: relative; isolation: isolate; }
  .about-editorial-location::before {
    position: absolute;
    z-index: 1;
    inset-block: 0;
    inset-inline-start: 0;
    width: 58%;
    background: linear-gradient(90deg, rgba(13,50,39,.97) 0%, rgba(13,50,39,.94) 42%, rgba(13,50,39,.82) 68%, rgba(13,50,39,0) 100%);
    content: "";
    pointer-events: none;
  }
  .about-editorial-location-copy {
    z-index: 2;
    background: transparent;
  }
  .about-editorial-location-media {
    position: absolute;
    z-index: 0;
    inset: 0;
    width: 100%;
  }
}

/* ---------------------------------------------------------------------------
 * 0.40.0 — Modul 03a des Pakets vom 30.09.2026: die Viererleiste im
 * Materialkapitel von /wohnen.
 *
 * Kandidat V228 bei 1440 px: randlos über die ganze Breite, 118 px hoch
 * (116 + Linien), vier gleiche Felder, drei Trenner dazwischen, dunkel
 * durchscheinend über dem Kapitel. Die Ziffern stehen im Seiteninhalt und
 * werden nur ausgeblendet. Ab 981 px; darunter bleibt die Karte wie bisher.
 *
 * Gezielt auf `.about-section-chapter-materials-intro`: /wohnen trägt die
 * Klasse `apartments-materials-chapter` an drei Kapiteln, und nur das erste
 * ist das Materialkapitel mit Bildern.
 * ------------------------------------------------------------------------ */

@media (min-width: 981px) {
  .about-section-chapter-materials-intro .material-principles {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding: 0;
    border-block: 1px solid rgba(255,255,255,.28);
    background: rgba(12,27,20,.58);
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .about-section-chapter-materials-intro .material-principles article {
    min-height: 116px;
    padding: 14px clamp(18px, 2.7vw, 42px);
    border: 0;
    border-left: 1px solid rgba(255,255,255,.22);
    color: var(--white);
  }
  .about-section-chapter-materials-intro .material-principles article:first-child { border-left: 0; }
  .about-section-chapter-materials-intro .material-principles article > span:first-child { display: none; }
  .about-section-chapter-materials-intro .material-principles h2,
  .about-section-chapter-materials-intro .material-principles h3,
  .about-section-chapter-materials-intro .material-principles .material-principle-title {
    margin: 0 0 5px;
    color: var(--white);
    font-size: .96rem;
    font-weight: 400;
    line-height: 1.2;
  }
  .about-section-chapter-materials-intro .material-principles p {
    margin: 0;
    color: rgba(255,255,255,.82);
    font-size: .82rem;
    line-height: 1.35;
  }
  /* Kein automatischer Zoom im Materialkapitel (V228). */
  .about-section-chapter-materials-intro .home-hero-slide.is-active img,
  .about-section-chapter-materials-intro .home-hero-slide.is-previous img { animation: none; transform: none; }
}

/* ---------------------------------------------------------------------------
 * 0.41.1 — Modul 03b des Pakets vom 30.09.2026.
 *
 * Materialkapitel auf /wohnen: drei Bilder im Wechsel hinter dem Text, ohne
 * automatischen Zoom, mit dem Verlauf des Kandidaten darüber. Dazu das
 * Kapitelband von /wohnen in derselben Form wie die anderen Bänder: ohne
 * Ziffern, durchscheinend, 78 px hoch.
 * ------------------------------------------------------------------------ */

.about-section-chapter-materials-intro { position: relative; isolation: isolate; }
.about-section-chapter-materials-intro .material-hero-slider {
  position: absolute;
  z-index: -2;
  inset: 0;
  background: var(--ink);
}
.about-section-chapter-materials-intro::after {
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(8,26,19,.92), rgba(8,26,19,.73) 42%, rgba(8,26,19,.18) 100%),
    linear-gradient(rgba(0,0,0,0) 58%, rgba(8,26,19,.55));
  content: "";
  pointer-events: none;
}
.about-section-chapter-materials-intro .materials-hero {
  position: relative;
  z-index: 1;
  background: transparent;
}

/* Kapitelband auf /wohnen: gleiche Sprache wie Über uns und Wege. */
._chapterNav_1dape_67 {
  border-block: 1px solid rgba(255,255,255,.28);
  background: rgba(12,27,20,.58);
}
._chapterNavGrid_1dape_75 { max-width: none; border-left: 0; }
._chapterNavItem_1dape_83 {
  min-height: 78px;
  grid-template-columns: minmax(0, 1fr);
  padding: 12px clamp(20px, 2.7vw, 42px);
  border-right: 0;
  border-left: 1px solid rgba(255,255,255,.22);
  color: var(--white);
}
._chapterNavGrid_1dape_75 > a:first-child { border-left: 0; }
._chapterNavItem_1dape_83 > span:first-child { display: none; }
._chapterNavCopy_1dape_105 strong { color: var(--white); }
._chapterNavCopy_1dape_105 small { color: rgba(255,255,255,.76); font-size: .74rem; }
._chapterNavItem_1dape_83:hover,
._chapterNavItem_1dape_83:focus-visible { background: rgba(12,27,20,.74); color: var(--white); }

@media (max-width: 780px) {
  ._chapterNavItem_1dape_83 { border-left: 0; border-top: 1px solid rgba(255,255,255,.22); }
  ._chapterNavGrid_1dape_75 > a:first-child { border-top: 0; }
}

/* ---------------------------------------------------------------------------
 * 0.42.0 — Modul 03c: die Wohnungskarten auf einer Achse.
 *
 * Der Kandidat setzt die Textspalte als Raster: Titel, Fläche, Geschichte und
 * Knopf stehen in allen drei Karten auf derselben Höhe (gemessen bei 1440 px:
 * 345, 378, 410 px). Die Geschichte nimmt den Rest, damit die Knöpfe unten
 * bündig bleiben. Die Zeile über dem Titel behält ihre Höhe, auch wenn in ihr
 * nichts steht.
 * ------------------------------------------------------------------------ */

.apartment-card-copy {
  display: grid;
  grid-template-rows: auto auto auto 1fr auto auto;
}
.apartment-card-copy .kicker { min-height: 1.25em; }

/* ---------------------------------------------------------------------------
 * 0.44.0 — Modul 04b: der Kalender passt in flache Bildschirme.
 *
 * Bisher war der Kalenderkasten 880 px hoch, egal wie hoch das Fenster war:
 * auf einem Laptop mit 900 px Fensterhöhe wurde das Kapitel 1064 px hoch und
 * passte nicht mehr auf den Schirm. Der Kandidat lässt den Kasten mitatmen.
 *
 * Gemessen im Kandidaten bei 1440 px Breite: Kapitel 808 px bei 900 px
 * Fensterhöhe, 908 bei 1000; der Kasten 624 beziehungsweise 650. Unsere Werte
 * nach dieser Regel: 810 und 908, Kasten 627. Die Wochenzeilen teilen sich den
 * Rest (`minmax(0, 1fr)`), darum schrumpft das Monatsraster mit.
 * ------------------------------------------------------------------------ */

@media (min-width: 981px) {
  .events-calendar-section {
    display: flex;
    min-height: calc(100svh - 92px);
    flex-direction: column;
    padding-block: clamp(12px, 1.6vh, 20px);
  }
  .events-calendar-section .nm-cal-module {
    height: auto;
    min-height: 0;
    flex: 1 1 auto;
  }
  .nm-cal-panel { overflow-y: auto; }
}

/* ---------------------------------------------------------------------------
 * 0.45.0 — Modul 04c: Newsletter-Komposition und Achsen der Partnerkarten.
 *
 * Newsletter: der Text beginnt jetzt am selben Rand wie das Akkordeon
 * darüber. Gemessen im Kandidaten bei 1440 × 900: Polster
 * 27px / 86,4px / 27px / 32px, Abschnitt 683 px hoch; bei 1920 rückt der
 * linke Rand auf 187 px, also auf die Kante des 1546er Rasters.
 *
 * Partnerkarten: die Karten einer Reihe teilen sich die Zeilen des Rasters
 * (`subgrid`, wie im Kandidaten), damit Titel, Text, Logo und Linkgruppen
 * nebeneinander auf einer Höhe stehen, auch wenn ein Text länger ist oder
 * einer Karte das Logo fehlt. Browser ohne `subgrid` zeigen die Karten wie
 * bisher untereinander — nichts bricht, nur die Achsen fehlen dort.
 * ------------------------------------------------------------------------ */

@media (min-width: 981px) {
  .newsletter-copy {
    padding:
      clamp(18px, 3vh, 40px)
      clamp(70px, 6vw, 110px)
      clamp(18px, 3vh, 40px)
      max(32px, calc((100vw - 1546px) / 2));
  }

  .partner-card {
    display: grid;
    align-content: start;
    grid-row: span 6;
    grid-template-rows: subgrid;
  }
  .partner-card > .partner-card-topline { grid-row: 1; }
  .partner-card > h3 { grid-row: 2; }
  .partner-card > p { grid-row: 3; }
  .partner-card > .partner-card-logo { grid-row: 4; }
  .partner-card > .partner-link-group:not(.partner-link-internal) { grid-row: 5; }
  .partner-card > .partner-link-group.partner-link-internal { grid-row: 6; }
}

/* ---------------------------------------------------------------------------
 * 0.46.0 — Modul 05: Rand am Kontaktbild und Aufräumen.
 *
 * Das Kontaktbild auf /ueber-uns stand mit `contain` in seinem Rahmen, und am
 * Rand blieb ein Streifen des Verlaufs stehen. Der Kandidat füllt den Rahmen
 * (`cover`, 50% 50%) — genau die schmale Korrektur, die das Paket nennt. Die
 * schmalen Fenster machten das schon.
 *
 * Außerdem sind die Regeln des alten Jury-Hinweises (`naturmomente-jury-note`)
 * entfernt: die Route /naturmomente gibt es in diesem WordPress nicht, und in
 * keiner Seite steht die Klasse. Der Kandidat hat Route und Bauteil gelöscht.
 * ------------------------------------------------------------------------ */

@media (min-width: 981px) {
  .about-contact-media img {
    object-fit: cover;
    object-position: 50% 50%;
  }
}
