/* fewo.saarland – Design System (04-DESIGN-SYSTEM.md)
   Richtung „split stage“ (taste-skill, seed 1769624248): feste Bildhälfte rechts, ruhige Lesespalte links.
   Regeln: ein Untergrund, eine Tinte, ein Akzent · keine Verläufe, Schatten, Glas, Haarlinien · eckig · fünf Schriftgrößen. */

/* ---------- Schriften (lokal, ITF Free Font License) ---------- */
@font-face { font-family: "Gambarino"; src: url("../fonts/gambarino-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "General Sans"; src: url("../fonts/general-sans-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "General Sans"; src: url("../fonts/general-sans-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
/* Ersatzschriften mit angeglichenen Metriken gegen Layout-Sprünge beim Laden */
@font-face { font-family: "Gambarino Fallback"; src: local("Georgia"); size-adjust: 92%; ascent-override: 92%; }
@font-face { font-family: "General Sans Fallback"; src: local("Arial"); size-adjust: 98%; ascent-override: 96%; }

/* ---------- Tokens ---------- */
:root {
	/* Farbe – semantisch */
	--paper: #f2f3ee;          /* Lesespalte (Untergrund) */
	--paper-2: #e6e9e0;        /* Tonstufe für Flächen auf Papier */
	--ink: #0f1f10;            /* Tinte = Waldgrün */
	--ink-soft: #46554a;       /* Zweitinfo, 7,4:1 auf --paper */
	--forest: #0f1f10;         /* Farbfeld */
	--forest-2: #182c19;       /* Tonstufe auf Waldgrün */
	--on-forest: #ffffff;
	--on-forest-soft: #b8c4b8; /* 9:1 auf --forest */
	--lime: #c6f19d;           /* Akzent: Aktion + Statuspunkt */
	--on-lime: #0f1f10;
	--black: #070d07;          /* zweites Feld (Preise) */
	--focus: #0f1f10;

	/* Schrift – fünf Stufen */
	--font-display: "Gambarino", "Gambarino Fallback", Georgia, serif;
	--font-text: "General Sans", "General Sans Fallback", Arial, sans-serif;
	--step-small: clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem);   /* 13–14 */
	--step-body: clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem);     /* 17–19 */
	--step-lead: clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem);       /* 20–26 */
	--step-head: clamp(2.25rem, 1.6rem + 2vw, 3.5rem);           /* 36–56 */
	--step-display: clamp(2.75rem, 1rem + 6vw, 5.5rem);          /* 44–88 */

	/* Raum */
	--frame: 12px;                                  /* Rahmen um beide Hälften */
	--pad: clamp(1.25rem, 0.5rem + 4vw, 5rem);      /* Innenabstand der Lesespalte */
	--measure: 36rem;                               /* ≈ 46–60 Zeichen */
	--gap-1: 0.5rem; --gap-2: 1rem; --gap-3: 1.5rem; --gap-4: 2rem; --gap-5: 3rem; --gap-6: 4rem;
	--section: clamp(5rem, 3rem + 7vw, 10rem);      /* zwischen Abschnitten */
	--radius: 0;
	--bar: 56px;

	/* Bewegung (taste-skill motion.md) */
	--ease-out: cubic-bezier(0.22, 1, 0.36, 1);
	--ease-soft: cubic-bezier(0.33, 1, 0.68, 1);
	--t-press: 140ms; --t-hover: 180ms; --t-ui: 240ms; --t-reveal: 800ms; --t-fade: 1600ms;
	--stagger: 80ms;
}

/* ---------- Grundlage ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; overflow-x: clip; }
body { margin: 0; background: var(--forest); color: var(--ink); font: 400 var(--step-body)/1.55 var(--font-text); font-kerning: normal; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, p, figure, blockquote, ul, ol, dl, dd { margin: 0; }
img, svg, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
a:hover { text-decoration-thickness: 2px; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
::selection { background: var(--lime); color: var(--on-lime); }
.icon { width: 1.25em; height: 1.25em; flex: none; }
.skip { position: absolute; left: var(--frame); top: var(--frame); z-index: 100; padding: 0.75rem 1rem; background: var(--lime); color: var(--on-lime); transform: translateY(-200%); }
.skip:focus { transform: none; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

h1, h2, h3 { font-family: var(--font-display); font-weight: 400; letter-spacing: -0.02em; line-height: 0.98; text-wrap: balance; color: var(--ink); }
h1, h2 { font-size: var(--step-head); }
h3 { font-size: var(--step-lead); line-height: 1.15; letter-spacing: -0.01em; }
p, li, td, th, dd, summary { text-wrap: pretty; }

/* ---------- Rahmen: Bildhälfte + Lesespalte ---------- */
.stage { position: sticky; top: var(--frame); z-index: 0; margin: var(--frame); height: 56svh; background: var(--forest-2); overflow: hidden; }
.stage__media { position: absolute; inset: 0; }
.stage__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 40%; opacity: 0; transition: opacity var(--t-fade) var(--ease-soft); }
.stage__img.is-current { opacity: 1; }
.stage__bar { position: absolute; inset: auto 0 0 0; height: var(--bar); display: flex; align-items: center; justify-content: space-between; gap: var(--gap-2); padding: 0 var(--gap-3); background: var(--paper); font-size: var(--step-small); }
.stage__addr { color: var(--ink-soft); text-align: right; }

.sheet { position: relative; z-index: 1; margin: 0 var(--frame); background: var(--paper); padding: 0 var(--pad) var(--section); min-height: 60svh; }

.status { display: inline-flex; align-items: center; gap: 0.6em; text-decoration: none; font-weight: 500; }
.status__dot { width: 0.7em; height: 0.7em; background: var(--lime); outline: 1px solid var(--ink); outline-offset: -1px; }
.status--occupied .status__dot { background: var(--ink); }
a.status:hover { text-decoration: underline; }

/* Kopf */
.masthead { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: var(--gap-2) var(--gap-3); padding: var(--gap-4) 0 var(--gap-5); }
.wordmark { font-family: var(--font-display); font-size: var(--step-lead); letter-spacing: -0.01em; text-decoration: none; line-height: 1; }
.lang ul { display: flex; gap: 0.25rem; list-style: none; margin: 0; padding: 0; font-size: var(--step-small); font-weight: 500; }
.lang a, .lang span { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; text-decoration: none; }
.lang span[aria-current] { background: var(--ink); color: var(--paper); }
.lang a:hover { background: var(--paper-2); }
.menu-toggle { min-height: 44px; padding: 0 1rem; border: 0; background: var(--ink); color: var(--paper); font-weight: 500; cursor: pointer; transition: transform var(--t-press) var(--ease-out); }
.menu-toggle:active { transform: scale(0.97); }
.menu-toggle[aria-expanded="true"] { background: var(--lime); color: var(--on-lime); }
.site-nav { grid-column: 1 / -1; }
.js .site-nav:not(.is-open) { display: none; }
html:not(.js) .menu-toggle { display: none; }
.site-nav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.site-nav__list a { display: flex; align-items: center; min-height: 48px; text-decoration: none; font-size: var(--step-lead); }
.site-nav__list a:hover, .site-nav .current-menu-item > a { text-decoration: underline; }
.site-nav__list--secondary a { font-size: var(--step-body); color: var(--ink-soft); min-height: 44px; }
.site-nav__list--secondary { margin-top: var(--gap-2); }
.site-nav .menu-item--action > a { margin-top: var(--gap-2); justify-content: center; background: var(--ink); color: var(--paper); font-size: var(--step-body); font-weight: 500; }

/* Inhalt */
.main { display: block; outline: none; }
.entry__head { padding-block: var(--gap-3) var(--gap-5); max-width: var(--measure); }
.entry__content > * { max-width: var(--measure); }
.entry__content > * + * { margin-top: var(--gap-3); }
.entry__content > h2, .entry__content > .wp-block-group + *, .entry__content > * + .wp-block-group { margin-top: var(--section); }
.entry__content h2 + * { margin-top: var(--gap-4); }
.entry__content h3 { margin-top: var(--gap-5); }
.entry__content p + h3 { margin-top: var(--gap-5); }
.entry__content ul:not([class*="is-style"]), .entry__content ol:not([class*="is-style"]) { padding-left: 1.2em; }
.entry__content li + li { margin-top: 0.4em; }
.entry__content strong { font-weight: 500; }
.entry__content .has-lead, .is-style-lead { font-size: var(--step-lead); line-height: 1.4; }

/* Knöpfe: flach, eckig, eine Füllung */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: var(--gap-2); }
.wp-block-button__link, .wpcf7-submit { display: inline-flex; align-items: center; justify-content: center; gap: 0.6em; min-height: 52px; padding: 0 1.5rem; border: 0; border-radius: var(--radius); background: var(--ink); color: var(--paper); font-weight: 500; text-decoration: none; cursor: pointer; transition: background-color var(--t-hover) var(--ease-out), transform var(--t-press) var(--ease-out); }
.wp-block-button__link:hover, .wpcf7-submit:hover { background: var(--forest-2); text-decoration: none; }
.wp-block-button__link:active, .wpcf7-submit:active { transform: scale(0.98); }
.is-style-outline .wp-block-button__link { background: transparent; color: var(--ink); border: 2px solid var(--ink); }
.is-style-outline .wp-block-button__link:hover { background: var(--paper-2); }

/* Abstände innerhalb von Gruppen */
.wp-block-group > * + * { margin-top: var(--gap-3); }
.wp-block-group > h2 + *, .wp-block-group > h3 + * { margin-top: var(--gap-4); }
.wp-block-group > p + p { margin-top: 1em; }

/* Quadratische Ausschnitte ohne halbes Copyright */

/* Fotoband (volle Breite, vier Quadrate) */
.is-style-band { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; background: var(--forest); padding: 6px; }
.is-style-band > * { margin: 0 !important; }
.is-style-band .wp-block-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.entry__content .is-style-band .wp-block-image figcaption { margin: 0; padding: 0.5rem 0.25rem 0.25rem; color: var(--on-forest-soft); font-size: var(--step-body); line-height: 1.35; }
.is-style-band > p { grid-column: 1 / -1; padding: var(--gap-2) var(--gap-1); color: var(--on-forest); }
.is-style-band a { color: var(--on-forest); }

/* ---------- Seitenkopf der Startseite ---------- */
.is-style-hero { display: flex; flex-direction: column; justify-content: center; padding-block: var(--gap-3) var(--gap-6); }
.is-style-hero h1 { max-width: 12ch; }
.is-style-hero h1 + p { margin-top: var(--gap-4); font-size: var(--step-lead); line-height: 1.35; max-width: 32ch; }
.is-style-hero .wp-block-buttons { margin-top: var(--gap-5); }

/* ---------- Chiffre (das eine interaktive Element) ---------- */
.is-style-code { list-style: none; padding: 0; }
.is-style-code li { display: grid; grid-template-columns: 5.5rem 1fr; gap: var(--gap-2); align-items: baseline; padding: 0.5rem 0; }
.is-style-code li strong { font: 400 var(--step-lead)/1 var(--font-display); }
.js .code { margin-top: var(--gap-4); }
.code__tokens { display: flex; flex-wrap: wrap; gap: 0 0.35em; font: 400 var(--step-display)/1 var(--font-display); letter-spacing: -0.03em; }
.code__token { padding: 0.08em 0.06em 0; border: 0; background: none; color: var(--ink-soft); cursor: pointer; transition: color var(--t-hover) var(--ease-out), background-color var(--t-hover) var(--ease-out); }
.code__token:hover { color: var(--ink); }
.code__token[aria-pressed="true"] { color: var(--on-lime); background: var(--lime); }
.code__meaning { min-height: 4.5em; margin-top: var(--gap-4); font-size: var(--step-lead); line-height: 1.35; }
.code__meaning b { font-weight: 500; }
.code__photo { margin-top: var(--gap-3); }
.js .has-code .is-style-stage { display: none; }

/* Bilder, die die Bildhälfte füllen: ohne JS / auf schmalen Schirmen im Text sichtbar */
.is-style-stage img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.wp-block-image figcaption, .wp-element-caption { margin-top: 0.6rem; font-size: var(--step-small); color: var(--ink-soft); }

/* ---------- Breite Abschnitte brechen aus der Spalte aus ---------- */
.entry__content > .is-style-wide, .entry__content > .is-style-plate, .entry__content > .is-style-prices, .entry__content > .is-style-field, .entry__content > .is-style-band, .entry__content > .wp-block-gallery {
	max-width: none; position: relative; z-index: 2;
	margin-left: calc(-1 * var(--pad)); margin-right: calc(-1 * var(--pad));
}

/* Bildtafel: quadratisches Foto + knapper Text (Blick auf den Schlossberg) */
.is-style-plate { display: grid; gap: var(--gap-4); padding: var(--pad); background: var(--paper-2); }
.is-style-plate .wp-block-image img { width: 100%; height: auto; }
.is-style-plate .wp-block-group__inner-container, .is-style-plate > .wp-block-group { display: contents; }

/* Farbfeld */
.is-style-field { padding: var(--pad); background: var(--forest); color: var(--on-forest); }
.is-style-field h2, .is-style-field h3 { color: var(--on-forest); }
.is-style-field a { color: var(--on-forest); }
.is-style-field :focus-visible { outline-color: var(--lime); }
.is-style-field .wp-block-button__link { background: var(--lime); color: var(--on-lime); }
.is-style-field .wp-block-button__link:hover { background: #d8f7b8; }

/* Preisfelder: zwei Flächen mit harter Kante */
.is-style-prices { display: grid; color: var(--on-forest); }
.is-style-prices > .wp-block-group { display: flex; flex-direction: column; gap: var(--gap-3); padding: var(--pad); min-height: 56svh; background: var(--forest); }
.is-style-prices > .wp-block-group > * { margin: 0; }
.is-style-prices > .wp-block-group + .wp-block-group { background: var(--black); }
.is-style-prices h2, .is-style-prices h3 { color: var(--on-forest); }
.is-style-prices h3 { font: 400 var(--step-head)/1 var(--font-display); }
.is-style-prices .price { margin-top: auto; font: 400 var(--step-display)/0.9 var(--font-display); letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.is-style-prices .price-note, .is-style-prices p:not(.price) { color: var(--on-forest-soft); max-width: 34ch; }
.is-style-prices a { color: var(--on-forest); }
.is-style-prices .wp-block-button__link { background: var(--lime); color: var(--on-lime); }
.is-style-prices :focus-visible { outline-color: var(--lime); }

/* ---------- Tabellen ---------- */
.wp-block-table { overflow-x: auto; margin-inline: 0; }
.wp-block-table table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.wp-block-table th, .wp-block-table td { padding: 0.7rem 0.75rem; text-align: left; vertical-align: top; border: 0; overflow-wrap: normal; word-break: normal; hyphens: auto; }
.wp-block-table thead th { font-weight: 500; font-size: var(--step-small); color: var(--ink-soft); padding-bottom: 0.5rem; }
.wp-block-table tbody tr:nth-child(odd) { background: var(--paper-2); }
.wp-block-table figcaption { margin-top: 0.75rem; }
.wp-block-table.is-style-rates td:not(:first-child), .wp-block-table.is-style-rates th:not(:first-child) { text-align: right; }

.wp-block-table.is-style-rates table { table-layout: auto; }
.wp-block-table.is-style-rates td:nth-child(2) { white-space: nowrap; }
.wp-block-table.is-style-facts table { table-layout: auto; }
.wp-block-table.is-style-facts tbody tr { background: none; }
.wp-block-table.is-style-facts td { padding: 0.8rem 0; }
.wp-block-table.is-style-facts td:first-child { width: 46%; padding-right: var(--gap-3); color: var(--ink-soft); }
.wp-block-table.is-style-facts .fact { display: flex; gap: 0.65rem; align-items: flex-start; }
.wp-block-table.is-style-facts .fact .icon { margin-top: 0.12em; color: var(--ink); }
.wp-block-table.is-style-facts thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
/* Entfernungen: Zeilen mit zwei Enden, ohne Kästen */
.wp-block-table.is-style-distances tbody tr { background: none; }
.wp-block-table.is-style-distances td { padding: 0.55rem 0; }
.wp-block-table.is-style-distances td:last-child { width: 42%; text-align: right; color: var(--ink-soft); font-size: var(--step-small); padding-left: var(--gap-2); }
.wp-block-table.is-style-distances thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* Schritte (Anfrage) */
.is-style-steps { list-style: none; padding: 0; display: grid; gap: var(--gap-1); }
.is-style-steps li { padding: var(--gap-2) var(--gap-3); background: var(--paper-2); }
.is-style-steps li + li { margin-top: 0; }
.is-style-steps li strong { display: block; font: 400 var(--step-lead)/1.2 var(--font-display); }

/* Aufklapper (Umgebung) */
.wp-block-details { background: var(--paper-2); }
.wp-block-details + .wp-block-details { margin-top: 0.5rem; }
.wp-block-details summary { position: relative; display: block; padding: 1.1rem 3.5rem 1.1rem var(--gap-3); cursor: pointer; font: 400 var(--step-lead)/1.2 var(--font-display); list-style: none; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::before, .wp-block-details summary::after { content: ""; position: absolute; right: calc(var(--gap-3) + 6px); top: 50%; width: 2px; height: 14px; margin-top: -7px; background: var(--ink); transition: transform var(--t-ui) var(--ease-out); }
.wp-block-details summary::before { transform: rotate(90deg); }
.wp-block-details[open] summary::after { transform: rotate(90deg); }
.wp-block-details > :not(summary) { padding: 0 var(--gap-3) var(--gap-3); }

/* ---------- Galerie + Lightbox ---------- */
/* Galerie im natürlichen Seitenverhältnis (Spaltenraster), damit kein Foto beschnitten wird */
.wp-block-gallery { display: block !important; columns: 2; column-gap: 6px; margin-inline: 0; }
.wp-block-gallery > .wp-block-image { break-inside: avoid; margin: 0 0 6px !important; width: 100% !important; }
.entry__content > .wp-block-gallery { padding: 0 var(--pad) var(--pad); background: var(--paper); }
.wp-block-gallery .wp-block-image { margin: 0; position: relative; }
.wp-block-gallery .wp-block-image img { width: 100%; height: auto; }
/* WordPress legt Galerie-Unterschriften als Overlay mit Schatten über das Bild – hier ruhig darunter */
.entry__content .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { position: static; max-height: none; overflow: visible; margin: 0; padding: 0.45rem 0 0.2rem; background: none; text-shadow: none; /* taste-skill-ignore: entfernt den Core-Schatten */ text-align: left; color: var(--ink-soft); font-size: var(--step-body); line-height: 1.35; }
.wp-block-gallery.has-nested-images figure.wp-block-image::before { display: none; }
.wp-block-gallery.has-nested-images figure.wp-block-image { flex-direction: column; }
.gallery__open { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.gallery__open img { transition: opacity var(--t-hover) var(--ease-out); }
.gallery__open:hover img { opacity: 0.88; }
.lightbox { width: 100vw; height: 100svh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: var(--black); color: var(--on-forest); }
.lightbox::backdrop { background: var(--black); }
.lightbox[open] { display: grid; grid-template: 1fr auto / 1fr; }
.lightbox__figure { display: grid; grid-template-rows: 1fr auto; min-height: 0; padding: 4rem var(--gap-2) var(--gap-2); }
.lightbox__img { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.lightbox__cap { padding-top: var(--gap-2); text-align: center; color: var(--on-forest); font-size: var(--step-body); }
.lightbox__count { position: absolute; top: 1.4rem; left: var(--gap-3); font-size: var(--step-small); color: var(--on-forest-soft); }
.lightbox__btn { position: absolute; display: grid; place-items: center; width: 52px; height: 52px; border: 0; background: var(--forest-2); color: var(--on-forest); cursor: pointer; transition: background-color var(--t-hover) var(--ease-out); }
.lightbox__btn:hover { background: var(--lime); color: var(--on-lime); }
.lightbox__btn:focus-visible { outline: 2px solid var(--lime); }
.lightbox__close { top: var(--gap-2); right: var(--gap-2); }
.lightbox__prev { bottom: var(--gap-2); left: var(--gap-2); }
.lightbox__next { bottom: var(--gap-2); right: var(--gap-2); }

/* ---------- Formular (Contact Form 7) ---------- */
.wpcf7 { max-width: var(--measure); }
.wpcf7 label { display: block; font-weight: 500; font-size: var(--step-small); }
.wpcf7 .form-row { display: grid; gap: var(--gap-2); margin-top: var(--gap-2); }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 input[type="date"], .wpcf7 select, .wpcf7 textarea { display: block; width: 100%; min-height: 48px; margin-top: 0.35rem; padding: 0.6rem 0.75rem; border: 1px solid var(--ink-soft); border-radius: var(--radius); background: #fff; font-size: var(--step-body); font-weight: 400; }
.wpcf7 textarea { min-height: 8rem; }
.wpcf7 input:focus-visible, .wpcf7 select:focus-visible, .wpcf7 textarea:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
.wpcf7-not-valid-tip { display: block; margin-top: 0.3rem; color: #8a1c13; font-size: var(--step-small); font-weight: 500; }
.wpcf7 form .wpcf7-response-output { margin: var(--gap-3) 0 0; padding: var(--gap-2); border: 0; background: var(--paper-2); }
.wpcf7-list-item { margin: 0; display: block; }
.wpcf7-list-item label { display: flex; gap: 0.6rem; font-weight: 400; font-size: var(--step-body); }
.wpcf7-list-item input { width: 22px; height: 22px; margin-top: 0.15em; accent-color: var(--ink); }
.wpcf7-submit { margin-top: var(--gap-4); }

/* ---------- Footer ---------- */
.colophon { position: relative; z-index: 3; background: var(--forest); color: var(--on-forest); }
.colophon a { color: var(--on-forest); }
.colophon :focus-visible { outline-color: var(--lime); }
.contact { padding-top: var(--section); }
.contact__row { display: flex; align-items: flex-end; min-height: clamp(5.25rem, 3rem + 6vw, 9.5rem); padding: 0 var(--pad) 0.35em; font: 400 var(--step-display)/1 var(--font-display); letter-spacing: -0.03em; color: var(--on-forest); }
.contact__row:nth-child(even) { background: var(--forest-2); }
.contact__row a { text-decoration: none; }
.contact__row a:hover { text-decoration: underline; text-decoration-thickness: 2px; }
.contact__status .status { font: inherit; letter-spacing: inherit; font-weight: 400; gap: 0.25em; }
.contact__status .status__dot { width: 0.32em; height: 0.32em; outline: 0; background: var(--lime); }
.contact__status .status--occupied .status__dot { background: var(--on-forest-soft); }
.contact__write { flex-wrap: wrap; gap: 0.2em 0.5em; align-items: center; background: var(--lime) !important; color: var(--on-lime); padding-block: 0.35em; }
.contact__write a { display: inline-flex; align-items: center; gap: 0.25em; color: var(--on-lime); }
.contact__arrow { display: inline-grid; place-items: center; width: 0.9em; height: 0.9em; border-radius: 50%; background: var(--on-lime); color: var(--lime); transition: transform var(--t-hover) var(--ease-out); }
.contact__arrow .icon { width: 0.5em; height: 0.5em; }
.contact__write a:hover .contact__arrow { transform: translateX(0.12em); }
.contact__mail { font: 400 var(--step-body)/1.4 var(--font-text); letter-spacing: 0; color: var(--on-lime); }
.closing { display: grid; }
.closing__photo img { width: 100%; height: auto; }
.closing__menu { padding: var(--section) var(--pad) var(--gap-4); display: flex; flex-direction: column; gap: var(--gap-5); }
.wordmark--small { font-size: var(--step-body); }
.closing__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.closing__list a { display: inline-block; text-decoration: none; font: 400 var(--step-head)/1.05 var(--font-display); letter-spacing: -0.02em; transition: transform var(--t-hover) var(--ease-out), color var(--t-hover) var(--ease-out); }
.closing__list:hover a { color: var(--on-forest-soft); }
.closing__list a:hover, .closing__list a:focus-visible { color: var(--on-forest); transform: translateX(12px); }
.closing__list--secondary { margin-top: var(--gap-4); }
.closing__list--secondary a { font: 400 var(--step-lead)/1.2 var(--font-text); }
.closing__list .menu-item--action > a { color: inherit; }
.closing__legal { margin-top: auto; display: grid; gap: var(--gap-1); font-size: var(--step-body); color: var(--on-forest-soft); max-width: 60ch; }
.legal { list-style: none; margin: 0 0 var(--gap-2); padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; }
.legal a { display: inline-flex; min-height: 44px; align-items: center; color: var(--on-forest); }

/* ---------- Bewegung ---------- */
@media (prefers-reduced-motion: no-preference) {
	.js .rv { opacity: 0; transform: translateY(24px); transition: opacity var(--t-reveal) var(--ease-out), transform var(--t-reveal) var(--ease-out); transition-delay: calc(var(--i, 0) * var(--stagger)); }
	.js .rv.is-in { opacity: 1; transform: none; }
	.stage__img.is-current { animation: drift 24s var(--ease-soft) both; }
	@keyframes drift { from { transform: scale(1.06); } to { transform: scale(1); } }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: 1ms !important; animation: none !important; }
}

/* ---------- Tablet ---------- */
@media (min-width: 600px) {
	.wp-block-gallery { columns: 3; }
	.wpcf7 .form-row:has(.column-half) { grid-template-columns: 1fr 1fr; }
}

/* ---------- Desktop: die feste Bildhälfte ---------- */
@media (min-width: 960px) {
	/* Zwei Spalten; die Bildhälfte klebt (sticky) in ihrer Spalte, breite Abschnitte der Lesespalte gleiten darüber */
	.layout { display: grid; grid-template-columns: minmax(0, 55fr) minmax(0, 45fr); column-gap: var(--frame); padding: var(--frame) var(--frame) 0; align-items: start; }
	.stage { grid-column: 2; grid-row: 1; position: sticky; top: var(--frame); height: calc(100svh - var(--frame) * 2); margin: 0; }
	.sheet { grid-column: 1; grid-row: 1; margin: 0; min-height: calc(100svh - var(--frame)); }
	.masthead { grid-template-columns: auto 1fr auto; padding-top: var(--gap-4); }
	.menu-toggle { display: none; }
	.is-style-hero { min-height: calc(100svh - 13rem); padding-bottom: 14svh; }
	.is-style-band { grid-template-columns: repeat(4, 1fr); }
	.site-nav, .js .site-nav:not(.is-open) { display: block; grid-column: 1 / -1; }
	.site-nav__list { flex-direction: row; flex-wrap: nowrap; gap: 0 clamp(0.9rem, 1.4vw, 1.75rem); align-items: center; }
	.site-nav__list a { min-height: 44px; font-size: clamp(0.9375rem, 0.6rem + 0.55vw, 1.0625rem); white-space: nowrap; }
	.site-nav__list--secondary { display: none; }
	.site-nav .menu-item--action { margin-left: auto; }
	.site-nav .menu-item--action > a { margin-top: 0; padding: 0 1.1rem; }
	.lang { grid-column: 3; grid-row: 1; }
	.entry__content > .is-style-wide, .entry__content > .is-style-plate, .entry__content > .is-style-prices, .entry__content > .is-style-field, .entry__content > .is-style-band, .entry__content > .wp-block-gallery {
		width: calc(100vw - var(--frame) * 2); margin-right: 0;
	}
	.is-style-plate { grid-template-columns: 1fr 1fr; align-items: center; min-height: 88svh; padding: var(--gap-5) var(--pad); }
	.is-style-plate { grid-template-rows: 1fr auto auto auto 1fr; column-gap: var(--gap-6); }
	.is-style-plate > .wp-block-image { grid-column: 1; grid-row: 1 / -1; margin: 0; align-self: center; }
	.is-style-plate > :not(.wp-block-image) { grid-column: 2; max-width: 34ch; margin: 0; }
	.is-style-plate > h2 { grid-row: 2; }
	.is-style-plate > h2 + p { grid-row: 3; margin-top: var(--gap-4); }
	.is-style-plate > p:last-child { grid-row: 4; margin-top: var(--gap-3); }
	.is-style-prices { grid-template-columns: 5fr 7fr; }
	.is-style-prices > .wp-block-group { min-height: 88svh; }
	.wp-block-gallery { columns: 4; }
	.js .entry__content .is-style-stage { display: none; }
	.contact__row { padding-left: calc(var(--frame) + var(--pad)); }
	.closing { grid-template-columns: 1fr 1fr; }
	.closing__photo img { height: 100%; min-height: 100svh; object-fit: cover; object-position: 100% 0%; }
}
@media (min-width: 1280px) {
	.wp-block-gallery { columns: 4; }
}
/* Galerie-Seite: Raster nutzt die ganze Breite der Lesespalte */
.page-template-default .entry__content > .wp-block-gallery { padding: 0 var(--pad) var(--pad); background: var(--paper); }

@media print {
	.stage, .masthead, .colophon .closing__photo, .lightbox { display: none !important; }
	.sheet { margin: 0; width: auto; }
	body { background: #fff; }
}

/* Hinweis „belegt“ über dem Anfrageformular */
.notice { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; align-items: center; max-width: var(--measure); margin-bottom: var(--gap-5); padding: var(--gap-3); background: var(--paper-2); }

/* Endet die Seite mit einer breiten Fläche, schließt der Footer direkt an */
.sheet:has(.entry__content > :is(.is-style-prices, .is-style-plate, .is-style-band, .is-style-field, .wp-block-gallery):last-child) { padding-bottom: 0; }

/* Lead unter dem Seitentitel (aus dem Seitenauszug = Meta-Beschreibung) */
.entry__lead { margin-top: var(--gap-3); font-size: var(--step-lead); line-height: 1.35; max-width: 34ch; }
/* Rechtstexte: ruhigere Überschriften, Text unverändert */
.entry--document .entry__content h2 { font-size: var(--step-lead); line-height: 1.2; letter-spacing: -0.01em; }
.entry--document .entry__content h3 { margin-top: var(--gap-5); font: 500 var(--step-body)/1.4 var(--font-text); letter-spacing: 0; }
.entry--document .entry__content h2 + h3 { margin-top: var(--gap-4); }
.entry--document .entry__content p + p, .entry--document .entry__content p + ul, .entry--document .entry__content ul + p { margin-top: 1em; }

/* kleine Bilder im Tabellentext (Länderflaggen aus dem Originalinhalt) */
.wp-block-table td img { display: inline-block; width: auto; height: 0.9em; margin-left: 0.4em; vertical-align: -0.05em; }

/* ---------- Mobil/Tablet: Kopfzeile bleibt oben stehen, sobald sie den Rand erreicht (sticky) ---------- */
@media (max-width: 959px) {
	html { scroll-padding-top: 5rem; } /* Sprungziele nicht unter der Kopfzeile */
	.masthead { position: sticky; top: 0; z-index: 5; margin: 0 calc(-1 * var(--pad)) var(--gap-4); padding: 0.75rem var(--pad); background: var(--paper); transition: box-shadow var(--t-ui) var(--ease-out); }
	/* Schatten nur, solange die Leiste wirklich schwebt (echte Überlagerung) */
	.masthead.is-stuck { box-shadow: 0 10px 24px -14px rgba(15, 31, 16, 0.45); } /* taste-skill-ignore: schwebende Leiste */
	.site-nav.is-open { max-height: calc(100svh - 4.5rem); overflow-y: auto; overscroll-behavior: contain; }
}

/* Kategorie-Listen in Aufklappern (Umgebung: Kultur, Shopping): Name breit, Kilometer schmal */
.wp-block-table.places table { table-layout: auto; }
.wp-block-table.places td:last-child { width: 1%; white-space: nowrap; }
.wp-block-table.places td:first-child { hyphens: manual; }
.entry__content .wp-block-details h3 { margin-top: var(--gap-4); }
.entry__content .wp-block-details h3 + .wp-block-table { margin-top: var(--gap-2); }
