.elementor-12035 .elementor-element.elementor-element-3d58d99{--display:flex;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}:root{--page-title-display:none;}body.elementor-page-12035{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}/* Start custom CSS *//* ===================================================================
   ATELIER P14 SUD RIVE — Page Styles
   Last modified: 2026-07-27 | Changes: added subtle zoom+lift hover effect to the Ausstattung section images — image scales 1.08x cropped inside a new overflow:hidden wrapper (.p14-ausstattung__image-wrap), wrapper itself lifts 6px with a black shadow (not the warm-brown one used elsewhere, since this section has a dark background where a low-opacity warm shadow wouldn't read). Requires the corresponding HTML change (image wrapper divs) — see p14-ausstattung.html.
   Previous: added .p14-galerie__grid--js / .p14-galerie__col styles supporting the new JS masonry layout (see p14-galerie.html) — flex-based columns that override the CSS-columns fallback once JS runs. CSS columns:3 260px stays as the base/no-JS fallback.
   Previous: converted desktop gallery from rigid CSS grid to CSS multi-column masonry (columns:3 260px, break-inside:avoid, natural item height instead of fixed aspect-ratio:4/3) — with 11 items in a rigid grid, the uneven last row left a visible gap; masonry flows items at natural height so an odd count doesn't leave an obvious hole. Mobile single-slide carousel (≤767px) is unaffected — it already re-declared aspect-ratio:4/3 in its own media query, added an explicit columns:auto/column-gap:normal reset there too plus restored object-fit:cover on the mobile image so the single active slide still fills its box correctly.
   Previous: added p14-galerie__disclaimer styling (small italic muted text below the gallery heading) — reduced heading's bottom margin from 48px to 16px since the disclaimer now provides the visual gap before the grid.
   Previous: added subtle hover lift effect to the Beschreibung project image (.p14-beschreibung__image) — translateY(-6px) + soft shadow on hover, 0.35s ease transition.
   Previous: fixed hero text/logo column not left-aligning with the Beschreibung section's text block below it. Root cause: beschreibung's padding lives on the section itself (outside its max-width:1200px box), while hero's padding lives inside its own max-width:1200px box (forced, since hero's full-bleed background image needs the section itself unpadded). With border-box sizing active, this meant hero's text sat 48px further right than beschreibung's. Fix: bumped .p14-hero__content's max-width 1200px→1296px (1200 + 2×48px padding) so the actual text column still measures 1200px but the box shifts left by 48px, landing on the same edge as beschreibung. No HTML changes, background image untouched.
   Previous: added disabled-row styling (muted opacity, default cursor, no hover, disabled checkbox appearance) for GE-1, which is now non-expandable with no image.
   Previous: increased Wohnungen table legibility — body text 0.9rem→1rem with medium (500) weight, header labels 0.65rem→0.7rem, row padding 16px→18px vertical. Also bumped the smaller supporting labels in the expanded detail panel (thumb labels 0.55rem→0.62rem, datum labels 0.6rem→0.68rem) which were borderline too small to read comfortably.
   Previous: added row-level selection checkbox styling and selection-summary chip strip (fixes multi-unit selection UX — see p14-wohnungen.html changelog).
   Previous: fixed icon SVG sizing (explicit width/height !important as backstop against theme svg reset); added WhatsApp-green hover state for the Share button (now WhatsApp-specific, distinct from gold Save/Print hover).
   Previous: added Wohnungen per-unit icon action cluster (Share/Save/Print squares + tooltip) beside thumbnails, incl. mobile wrap behavior at ≤560px.
   Previous: added variante note styles.
   Previous: kontakt section background changed from --p14-putz to --p14-lehm (dark); all kontakt text/link/form colors updated for dark background — sand headings, putz body/links, semi-transparent form fields, light placeholder text, adjusted success/error message colors.
   Previous: hero content max-width 1200px + margin auto centering fix.
   =================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,500;1,600&family=DM+Sans:wght@400;500&family=IBM+Plex+Mono:wght@400;500&display=swap');

/* ---------- Design Tokens ---------- */
:root {
	--p14-sand: #F0E8D8;   /* Brandmauer — light background */
	--p14-putz: #D9CEBC;   /* Putzfassade — surfaces, dividers */
	--p14-canal: #8FA3A8;  /* Kanalgrau — secondary text, labels */
	--p14-lehm: #2C2520;   /* Hinterhof — primary text, dark hero bg */
	--p14-sued: #B8843A;   /* Suedlicht — accent, used sparingly */

	--p14-font-display: 'Cormorant Garamond', serif;
	--p14-font-body: 'DM Sans', sans-serif;
	--p14-font-mono: 'IBM Plex Mono', 'Liberation Mono', monospace;
}

/* ---------- Global overflow fix ---------- */
html, body {
	overflow-x: hidden;
	max-width: 100%;
}

/* ---------- Base / Elementor Overrides ---------- */
.p14-hero, .p14-hero *,
.p14-beschreibung, .p14-beschreibung *,
.p14-galerie, .p14-galerie *,
.p14-einheiten, .p14-einheiten *,
.p14-lage, .p14-lage *,
.p14-ausstattung, .p14-ausstattung *,
.p14-wohnungen, .p14-wohnungen *,
.p14-kontakt, .p14-kontakt * {
	box-sizing: border-box;
}

.p14-wohnungen table {
	margin-block-end: 0 !important;
}

.p14-hero,
.p14-beschreibung,
.p14-galerie,
.p14-einheiten,
.p14-lage,
.p14-ausstattung,
.p14-wohnungen,
.p14-kontakt {
	scroll-margin-top: 0;
}

.p14-btn,
.p14-btn:focus,
.p14-btn:active,
body .p14-btn {
	display: inline-block;
	color: var(--p14-sand) !important;
	background: var(--p14-canal) !important;
	text-decoration: none !important;
	box-shadow: none !important;
	border: none;
	border-radius: 2px;
	padding: 16px 32px;
	font-family: var(--p14-font-body);
	font-size: 0.95rem;
	letter-spacing: 0.05em;
	white-space: nowrap;
	cursor: pointer;
	opacity: 1;
	transition: opacity 0.2s ease;
}

.p14-btn:hover,
body .p14-btn:hover {
	color: var(--p14-sand) !important;
	background: var(--p14-canal) !important;
	text-decoration: none !important;
	opacity: 1;
	transform: translateY(-3px);
	box-shadow: 0 10px 24px rgba(44, 37, 32, 0.3) !important;
}

/* ---------- Hero (p14-hero.html) ---------- */
.p14-hero {
	position: relative;
	min-height: 760px;
	display: block;
	overflow: hidden;
	background: var(--p14-lehm);
}

.p14-hero__media {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
}

.p14-hero__image {
	width: 100%;
	height: calc(100% + 800px);
	object-fit: cover;
	object-position: center bottom;
	transform: translateY(-150px);
	will-change: transform;
}

/* Diagonal gradient: dark bottom-left → light top-right, shallow angle */
.p14-hero__media::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(
		120deg,
		rgba(44,37,32,0.82) 0%,
		rgba(44,37,32,0.55) 35%,
		rgba(44,37,32,0.18) 65%,
		rgba(44,37,32,0.0)  100%
	);
}

.p14-hero__content {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 1296px;
	margin: 0 auto;
	padding: clamp(60px, 6vw, 100px) 48px 64px 48px;
	color: var(--p14-sand);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.p14-hero__upper {
	flex: 1;
	max-width: 620px;
}

.p14-hero__logo {
	display: block;
	height: clamp(160px, 18vw, 280px);
	width: auto;
	margin-bottom: 40px;
	padding-left: 40px;
	overflow: visible;
	filter: drop-shadow(0px 8px 24px rgba(0,0,0,0.35));
}

.p14-hero__headline {
	font-family: var(--p14-font-display);
	font-weight: 500;
	font-size: clamp(2.2rem, 4vw, 3.4rem);
	line-height: 1.15;
	margin: 0 0 14px;
}

.p14-hero__headline em {
	font-style: italic;
	color: var(--p14-canal);
}

.p14-hero__address {
	font-family: var(--p14-font-mono);
	font-size: 0.8rem;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: var(--p14-putz);
	margin: 0 0 14px;
	text-shadow: 0 1px 8px rgba(44,37,32,0.7);
}

.p14-hero__intro {
	font-family: var(--p14-font-body);
	font-size: 1rem;
	line-height: 1.7;
	color: rgba(240,232,216,0.65);
	margin: 0;
	max-width: clamp(320px, 30vw, 520px);
	text-shadow: 0 1px 8px rgba(44,37,32,0.7);
}

.p14-hero__lower {
	padding-top: 28px;
	border-top: 1px solid rgba(240,232,216,0.2);
	margin-top: 28px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
	max-width: 620px;
}

.p14-hero__stats {
	display: flex;
	flex-wrap: nowrap;
	gap: 32px;
	width: 100%;
}

.p14-hero__cta-wrap {
	margin-top: 28px;
}

.p14-hero__stat {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.p14-hero__stat-value {
	font-family: var(--p14-font-display);
	font-weight: 600;
	font-size: clamp(1.3rem, 1.8vw, 1.8rem);
	color: var(--p14-sand);
}

.p14-hero__stat-label {
	font-family: var(--p14-font-body);
	font-size: 0.75rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--p14-putz);
}

.p14-hero__cta {
	flex-shrink: 0;
}

/* ---------- Hero — mobile (≤900px) ---------- */
@media (max-width: 900px) {
	.p14-hero {
		min-height: 100svh;
		align-items: flex-start;
	}

	.p14-hero__image {
		width: 100%;
		height: 100% !important;
		min-height: 100% !important;
		object-fit: cover;
		object-position: 80% bottom;
		transform: none !important;
	}

	.p14-hero__media::after {
		background: linear-gradient(
			120deg,
			rgba(44,37,32,0.90) 0%,
			rgba(44,37,32,0.65) 40%,
			rgba(44,37,32,0.25) 70%,
			rgba(44,37,32,0.0)  100%
		);
	}

	.p14-hero__content {
		padding: 100px 5% 60px;
		max-width: 100%;
		width: 100%;
	}

	.p14-hero__logo {
		height: 120px !important;
		padding-left: 0 !important;
		margin-bottom: 20px;
	}

	.p14-hero__headline {
		font-size: clamp(1.8rem, 7vw, 2.4rem);
	}

	.p14-hero__intro {
		max-width: 100%;
	}

	.p14-hero__lower {
		padding-top: 24px;
		margin-top: 24px;
	}

	.p14-hero__stats {
		gap: 20px;
		flex-wrap: wrap;
	}

	.p14-hero__stat-value {
		font-size: 1.4rem;
	}

	.p14-hero__cta-wrap {
		margin-top: 20px;
	}

	.p14-btn {
		width: 100%;
		max-width: 320px;
		text-align: center;
	}
}

/* ---------- P14 Section Nav (p14-scripts.html) ---------- */
.p14-elevator {
	position: fixed;
	right: 100px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 900;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 12px;
	pointer-events: none;
	opacity: 1;
	transition: opacity 0.4s ease;
}

.p14-elevator.is-dimmed {
	opacity: 0.25;
}

.p14-elevator.is-dimmed:hover {
	opacity: 1;
}

.p14-elevator__btn {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 10px;
	background: none !important;
	border: none;
	padding: 0;
	cursor: pointer;
	pointer-events: all;
	box-shadow: none !important;
	text-decoration: none !important;
	color: var(--p14-sand) !important;
}

.p14-elevator__btn:hover,
.p14-elevator__btn:focus,
.p14-elevator__btn:active,
body .p14-elevator__btn,
body .p14-elevator__btn:hover {
	background: none !important;
	box-shadow: none !important;
	text-decoration: none !important;
	color: var(--p14-sand) !important;
}

.p14-elevator__square {
	width: 28px;
	height: 28px;
	clip-path: polygon(0 0, 100% 0, 100% 74%, 74% 100%, 0 100%);
	background: rgba(21, 37, 32, 0.5);
	border: 1px solid rgba(143, 163, 168, 0.4);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	transition: transform 0.15s ease, background 0.2s ease, border-color 0.2s ease;
}

.p14-elevator__label {
	font-family: var(--p14-font-display);
	font-style: italic;
	font-size: 0.85rem;
	color: var(--p14-sand);
	background: rgba(44, 37, 32, 0.75) !important;
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	padding: 3px 10px;
	white-space: nowrap;
	opacity: 0;
	transform: translateX(8px);
	transition: opacity 0.2s ease 0.1s, transform 0.2s ease 0.1s;
	pointer-events: none;
	box-shadow: none !important;
	text-decoration: none !important;
}

body .p14-elevator__btn .p14-elevator__label,
body .p14-elevator__btn:hover .p14-elevator__label {
	background: rgba(44, 37, 32, 0.75) !important;
	color: var(--p14-sand) !important;
	box-shadow: none !important;
	text-decoration: none !important;
}

.p14-elevator__btn:hover .p14-elevator__label,
.p14-elevator__btn.is-labeled .p14-elevator__label {
	opacity: 1;
	transform: translateX(0);
}

.p14-elevator__btn:hover .p14-elevator__square,
body .p14-elevator__btn:hover .p14-elevator__square {
	transform: scale(1.12);
	background: var(--p14-canal) !important;
	border-color: var(--p14-canal) !important;
	box-shadow: none !important;
}

.p14-elevator__btn:active .p14-elevator__square,
body .p14-elevator__btn:active .p14-elevator__square {
	transform: scale(0.88) !important;
}

.p14-elevator__btn.is-active .p14-elevator__square,
body .p14-elevator__btn.is-active .p14-elevator__square {
	background: var(--p14-canal) !important;
	border-color: var(--p14-canal) !important;
	box-shadow: 0 0 0 2px rgba(143,163,168,0.15), 0 0 10px rgba(143,163,168,0.25) !important;
	animation: p14ElevatorPulse 2.5s ease-in-out infinite;
}

@keyframes p14ElevatorPulse {
	0%   { box-shadow: 0 0 0 2px rgba(143,163,168,0.15), 0 0 10px rgba(143,163,168,0.25); }
	50%  { box-shadow: 0 0 0 4px rgba(143,163,168,0.08), 0 0 18px rgba(143,163,168,0.4); }
	100% { box-shadow: 0 0 0 2px rgba(143,163,168,0.15), 0 0 10px rgba(143,163,168,0.25); }
}

@media (max-width: 1024px) {
	.p14-elevator {
		display: none;
	}
}

/* ---------- Countdown (p14-scripts.html) ---------- */
.p14-countdown {
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.05em;
}

.p14-countdown::after {
	content: '_';
	animation: p14Blink 1s step-end infinite;
	color: var(--p14-canal);
	margin-left: 1px;
}

@keyframes p14Blink {
	0%, 100% { opacity: 1; }
	50%       { opacity: 0; }
}

/* ---------- Reveal ---------- */
.p14-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}
.p14-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* ---------- Beschreibung (p14-beschreibung.html) ---------- */
.p14-beschreibung {
	padding: clamp(64px, 7vw, 96px) 48px 96px;
	background: var(--p14-sand);
	color: var(--p14-lehm);
}

.p14-beschreibung__inner {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: 64px;
	max-width: 1200px;
	margin: 0 auto 64px;
	align-items: start;
}

.p14-beschreibung__label {
	font-family: var(--p14-font-mono);
	font-size: 0.8rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--p14-sued);
	margin: 0 0 16px;
}

.p14-beschreibung__heading {
	font-family: var(--p14-font-display);
	font-weight: 600;
	font-size: clamp(1.8rem, 3vw, 2rem);
	line-height: 1.3;
	margin: 0 0 24px;
}

.p14-beschreibung__heading em {
	font-style: italic;
	color: var(--p14-sued);
}

.p14-beschreibung__text p {
	font-family: var(--p14-font-body);
	font-size: 1rem;
	line-height: 1.7;
	color: var(--p14-lehm);
	margin: 0 0 20px;
}

.p14-beschreibung__image {
	width: 100%;
	border-radius: 2px;
	display: block;
	transition: transform 0.35s ease, box-shadow 0.35s ease;
	will-change: transform;
}

.p14-beschreibung__image:hover {
	transform: translateY(-6px);
	box-shadow: 0 16px 32px rgba(44, 37, 32, 0.18);
}

.p14-beschreibung__facts {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px 24px;
	max-width: 1200px;
	margin: 0 auto;
	border-top: 1px solid var(--p14-putz);
	padding-top: 40px;
}

.p14-beschreibung__fact {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.p14-beschreibung__fact-label {
	font-family: var(--p14-font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--p14-canal);
}

.p14-beschreibung__fact-value {
	font-family: var(--p14-font-display);
	font-weight: 600;
	font-size: 1.1rem;
}

@media (max-width: 900px) {
	.p14-beschreibung__inner {
		grid-template-columns: 1fr;
	}
	.p14-beschreibung__facts {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 560px) {
	.p14-beschreibung__facts {
		grid-template-columns: 1fr;
	}
}

/* ---------- Galerie (p14-galerie.html) ---------- */
.p14-galerie {
	padding: 96px 48px;
	background: var(--p14-lehm);
	color: var(--p14-sand);
}

.p14-galerie__label {
	font-family: var(--p14-font-mono);
	font-size: 0.8rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--p14-sued);
	margin: 0 0 16px;
	text-align: center;
}

.p14-galerie__heading {
	font-family: var(--p14-font-display);
	font-weight: 600;
	font-size: clamp(1.8rem, 3vw, 2rem);
	text-align: center;
	margin: 0 0 16px;
}

.p14-galerie__disclaimer {
	font-family: var(--p14-font-body);
	font-size: 0.8rem;
	font-style: italic;
	text-align: center;
	color: var(--p14-canal);
	max-width: 560px;
	margin: 0 auto 40px;
}

.p14-galerie__grid {
	columns: 3 260px;
	column-gap: 16px;
	max-width: 1200px;
	margin: 0 auto;
}

.p14-galerie__item,
.p14-galerie__item:focus,
.p14-galerie__item:active,
body .p14-galerie__item {
	display: block;
	width: 100%;
	padding: 0;
	border: none;
	background: none !important;
	box-shadow: none !important;
	cursor: pointer;
	overflow: hidden;
	border-radius: 2px;
	break-inside: avoid;
	margin-bottom: 16px;
}

.p14-galerie__item:hover,
body .p14-galerie__item:hover {
	background: none !important;
	box-shadow: none !important;
}

.p14-galerie__item img {
	width: 100%;
	height: auto;
	display: block;
	transition: transform 0.4s ease;
}

.p14-galerie__item:hover img {
	transform: scale(1.05);
}

/* ---------- JS masonry columns (added by p14InitGalerieMasonry) ---------- */
.p14-galerie__grid.p14-galerie__grid--js {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	columns: unset;
}

.p14-galerie__col {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-width: 0;
}

.p14-galerie__grid--js .p14-galerie__item {
	break-inside: unset;
}

.p14-lightbox {
	position: fixed;
	inset: 0;
	background: rgba(44,37,32,0.95);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 9999;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease;
}

.p14-lightbox.is-open {
	opacity: 1;
	visibility: visible;
}

.p14-lightbox__image {
	max-width: 85vw;
	max-height: 85vh;
	object-fit: contain;
}

.p14-lightbox__close,
.p14-lightbox__prev,
.p14-lightbox__next,
.p14-lightbox__close:focus,
.p14-lightbox__prev:focus,
.p14-lightbox__next:focus,
.p14-lightbox__close:active,
.p14-lightbox__prev:active,
.p14-lightbox__next:active,
body .p14-lightbox__close,
body .p14-lightbox__prev,
body .p14-lightbox__next {
	position: absolute;
	background: none !important;
	border: none;
	color: var(--p14-sand) !important;
	box-shadow: none !important;
	text-decoration: none !important;
	font-size: 2.5rem;
	cursor: pointer;
	line-height: 1;
	opacity: 1;
	transition: opacity 0.2s ease;
}

.p14-lightbox__close:hover,
.p14-lightbox__prev:hover,
.p14-lightbox__next:hover,
body .p14-lightbox__close:hover,
body .p14-lightbox__prev:hover,
body .p14-lightbox__next:hover {
	background: none !important;
	color: var(--p14-sand) !important;
	box-shadow: none !important;
	text-decoration: none !important;
	opacity: 0.6;
}

.p14-lightbox__close { top: 24px; right: 32px; }
.p14-lightbox__prev { left: 32px; top: 50%; transform: translateY(-50%); }
.p14-lightbox__next { right: 32px; top: 50%; transform: translateY(-50%); }

/* ---------- Lightbox Caption ---------- */
.p14-lightbox__caption {
	position: absolute;
	bottom: 24px;
	left: 50%;
	transform: translateX(-50%);
	font-family: var(--p14-font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: rgba(240,232,216,0.6);
	white-space: nowrap;
	pointer-events: none;
	margin: 0;
}

.p14-galerie__cta-wrap {
	text-align: center;
	margin-top: 48px;
}

.p14-galerie__cta:hover,
body .p14-galerie__cta:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 30px rgba(143,163,168,0.35) !important;
}

/* ---------- Galerie carousel — mobile only ---------- */
.p14-carousel__prev,
.p14-carousel__next,
body .p14-carousel__prev,
body .p14-carousel__next {
	display: none !important;
}

.p14-carousel__counter {
	display: none;
}

@media (max-width: 767px) {
	.p14-galerie__grid {
		display: block;
		columns: auto;
		column-gap: normal;
		position: relative;
		overflow: hidden;
	}

	.p14-galerie__item {
		display: none;
		width: 100%;
		aspect-ratio: 4 / 3;
		margin-bottom: 0;
	}

	.p14-galerie__item img {
		height: 100%;
		object-fit: cover;
	}

	.p14-galerie__item.p14-carousel--active {
		display: block;
	}

	.p14-carousel__prev,
	.p14-carousel__next,
	.p14-carousel__prev:hover,
	.p14-carousel__next:hover,
	.p14-carousel__prev:focus,
	.p14-carousel__next:focus,
	.p14-carousel__prev:active,
	.p14-carousel__next:active,
	body .p14-carousel__prev,
	body .p14-carousel__next,
	body .p14-carousel__prev:hover,
	body .p14-carousel__next:hover {
		display: block !important;
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		z-index: 10;
		background: rgba(44,37,32,0.6) !important;
		border: none;
		color: var(--p14-sand) !important;
		font-size: 2rem;
		line-height: 1;
		padding: 12px 16px;
		cursor: pointer;
		box-shadow: none !important;
		text-decoration: none !important;
	}

	.p14-carousel__prev { left: 0; }
	.p14-carousel__next { right: 0; }

	.p14-carousel__counter {
		display: block;
		text-align: center;
		font-family: var(--p14-font-mono);
		font-size: 0.7rem;
		letter-spacing: 0.15em;
		color: var(--p14-canal);
		margin-top: 10px;
	}
}

.p14-einheiten {
	padding: 96px 48px;
	background: var(--p14-sand);
	color: var(--p14-lehm);
}

.p14-einheiten__label {
	font-family: var(--p14-font-mono);
	font-size: 0.8rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--p14-sued);
	margin: 0 0 16px;
	text-align: center;
}

.p14-einheiten__heading {
	font-family: var(--p14-font-display);
	font-weight: 600;
	font-size: clamp(1.8rem, 3vw, 2rem);
	text-align: center;
	margin: 0 0 16px;
}

.p14-einheiten__heading em {
	font-style: italic;
	color: var(--p14-sued);
}

.p14-einheiten__intro {
	text-align: center;
	max-width: 640px;
	margin: 0 auto 48px;
	font-family: var(--p14-font-body);
	color: var(--p14-canal);
}

.p14-einheiten__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 32px;
	max-width: 1200px;
	margin: 0 auto;
}

.p14-einheiten__card {
	background: var(--p14-putz);
	border-radius: 2px;
	padding: 24px;
	display: flex;
	flex-direction: column;
}

.p14-einheiten__image {
	width: 100% !important;
	height: 320px !important;
	object-fit: cover !important;
	border-radius: 2px;
	margin-bottom: 16px;
	display: block;
}

.p14-einheiten__status {
	font-family: var(--p14-font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--p14-sued);
	margin: 0 0 8px;
}

.p14-einheiten__title {
	font-family: var(--p14-font-display);
	margin: 0 0 16px;
	line-height: 1.4;
}

.p14-einheiten__specs {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
	margin-top: auto;
}

.p14-einheiten__spec-label {
	display: block;
	font-family: var(--p14-font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--p14-canal);
}

.p14-einheiten__spec-value {
	display: block;
	font-family: var(--p14-font-body);
	font-size: 0.95rem;
}

/* ---------- Lage (p14-lage.html) ---------- */
.p14-lage {
	padding: 96px 48px;
	background: var(--p14-putz);
	color: var(--p14-lehm);
}

.p14-lage__inner {
	max-width: 800px;
	margin: 0 auto;
}

.p14-lage__label {
	font-family: var(--p14-font-mono);
	font-size: 0.8rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--p14-sued);
	margin: 0 0 16px;
}

.p14-lage__heading {
	font-family: var(--p14-font-display);
	font-weight: 600;
	font-size: clamp(1.8rem, 3vw, 2rem);
	margin: 0 0 24px;
}

.p14-lage__heading em {
	font-style: italic;
	color: var(--p14-sued);
}

.p14-lage__inner p {
	font-family: var(--p14-font-body);
	line-height: 1.7;
}

/* ---------- Lage POI grid (p14-lage.html) ---------- */
.p14-lage__poi-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin: 40px 0;
}

.p14-lage__poi-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	padding: 20px 16px;
	background: var(--p14-sand);
	border: 1px solid var(--p14-putz);
	border-radius: 2px;
}

.p14-lage__poi-icon {
	font-size: 1.6rem;
	line-height: 1;
	display: block;
	margin-bottom: 4px;
}

.p14-lage__poi-name {
	font-family: var(--p14-font-display);
	font-weight: 600;
	font-size: 0.95rem;
	line-height: 1.3;
	color: var(--p14-lehm);
}

.p14-lage__poi-dist {
	font-family: var(--p14-font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--p14-canal);
}

@media (max-width: 900px) {
	.p14-lage__poi-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 560px) {
	.p14-lage__poi-grid {
		grid-template-columns: 1fr;
		gap: 12px;
	}
}

.p14-lage__nearby {
	font-size: 0.95rem;
	margin: 24px 0;
}

.p14-lage__map {
	width: 100%;
	aspect-ratio: 16 / 9;
	margin: 32px 0 16px;
}

.p14-lage__map iframe {
	width: 100%;
	height: 100%;
	border: 0;
}

.p14-lage__address {
	font-family: var(--p14-font-mono);
	font-size: 0.8rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--p14-canal);
}

.p14-lage__cta-wrap {
	margin-top: 80px;
	margin-bottom: 24px;
	text-align: center;
}

.p14-lage__cta-wrap .p14-lage__address {
	margin-top: 16px;
	text-align: center;
}

/* ---------- Ausstattung (p14-ausstattung.html) ---------- */
.p14-ausstattung {
	padding: 96px 48px;
	background: var(--p14-lehm);
	color: var(--p14-sand);
}

.p14-ausstattung__label {
	font-family: var(--p14-font-mono);
	font-size: 0.8rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--p14-sued);
	margin: 0 0 16px;
	text-align: center;
}

.p14-ausstattung__heading {
	font-family: var(--p14-font-display);
	font-weight: 600;
	font-size: clamp(1.8rem, 3vw, 2rem);
	text-align: center;
	margin: 0 0 48px;
}

.p14-ausstattung__heading em {
	font-style: italic;
	color: var(--p14-sued);
}

.p14-ausstattung__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 32px;
	max-width: 1200px;
	margin: 0 auto;
}

.p14-ausstattung__image-wrap {
	overflow: hidden;
	border-radius: 2px;
	margin-bottom: 16px;
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.p14-ausstattung__item:hover .p14-ausstattung__image-wrap {
	transform: translateY(-6px);
	box-shadow: 0 16px 32px rgba(0, 0, 0, 0.35);
}

.p14-ausstattung__item img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	display: block;
	transition: transform 0.5s ease;
}

.p14-ausstattung__item:hover img {
	transform: scale(1.08);
}

.p14-ausstattung__item h3 {
	font-family: var(--p14-font-display);
	font-weight: 600;
	font-size: 1.1rem;
	margin: 0 0 8px;
	color: var(--p14-sued);
}

.p14-ausstattung__item p {
	font-family: var(--p14-font-body);
	font-size: 0.9rem;
	line-height: 1.6;
	color: var(--p14-putz);
	margin: 0;
}

/* ---------- Grundrisse / Einheitenübersicht (p14-grundrisse.html) ---------- */
.p14-grundrisse {
	padding: 96px 48px;
	background: var(--p14-sand);
	color: var(--p14-lehm);
}

.p14-grundrisse__label {
	font-family: var(--p14-font-mono);
	font-size: 0.8rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--p14-sued);
	margin: 0 0 16px;
	text-align: center;
}

.p14-grundrisse__heading {
	font-family: var(--p14-font-display);
	font-weight: 600;
	font-size: clamp(1.8rem, 3vw, 2rem);
	text-align: center;
	margin: 0 0 48px;
}

.p14-grundrisse__heading em {
	font-style: italic;
	color: var(--p14-sued);
}

.p14-grundrisse__table-wrap {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

@media (max-width: 768px) {
	.p14-grundrisse__table th:nth-child(6),
	.p14-grundrisse__table td:nth-child(6) {
		display: none;
	}
	.p14-grundrisse__table th,
	.p14-grundrisse__table td {
		padding: 12px 8px;
		font-size: 0.85rem;
	}
}

.p14-grundrisse__table {
	width: 100%;
	border-collapse: collapse;
	font-family: var(--p14-font-body);
	font-size: 0.9rem;
}

.p14-grundrisse__table th,
.p14-grundrisse__table td {
	padding: 14px 12px;
	text-align: left;
	border-bottom: 1px solid var(--p14-putz);
}

.p14-grundrisse__table tbody tr:hover {
	background: rgba(143,163,168,0.1);
	cursor: pointer;
}

.p14-grundrisse__table th {
	font-family: var(--p14-font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--p14-canal);
}

.p14-grundrisse__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 24px;
	margin-top: 40px;
}

.p14-grundrisse__reset,
.p14-grundrisse__reset:focus,
.p14-grundrisse__reset:active,
body .p14-grundrisse__reset {
	background: none !important;
	border: 1px solid var(--p14-canal);
	color: var(--p14-lehm) !important;
	box-shadow: none !important;
	text-decoration: none !important;
	padding: 12px 24px;
	border-radius: 2px;
	cursor: pointer;
	font-family: var(--p14-font-body);
	transition: background 0.2s ease, color 0.2s ease;
}

.p14-grundrisse__reset:hover,
body .p14-grundrisse__reset:hover {
	background: var(--p14-canal) !important;
	border: 1px solid var(--p14-canal);
	color: var(--p14-sand) !important;
	box-shadow: none !important;
	text-decoration: none !important;
}

.p14-grundrisse__row--gewerbe {
	background: rgba(184,132,58,0.08);
	border-top: 1px solid rgba(184,132,58,0.25);
}

.p14-grundrisse__row--gewerbe td {
	color: var(--p14-sued);
}

.p14-grundrisse__badge {
	font-family: var(--p14-font-mono);
	font-size: 0.6rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--p14-sued);
	border: 1px solid var(--p14-sued);
	border-radius: 2px;
	padding: 1px 6px;
	margin-left: 8px;
	vertical-align: middle;
}

/* ---------- Kontakt (p14-kontakt.html) ---------- */
.p14-kontakt {
	padding: 96px 48px;
	background: var(--p14-lehm) !important;
	color: var(--p14-sand);
	scroll-margin-top: 0 !important;
}

.p14-kontakt__label {
	font-family: var(--p14-font-mono);
	font-size: 0.8rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--p14-sued);
	margin: 0 0 16px;
	text-align: center;
}

.p14-kontakt__heading {
	font-family: var(--p14-font-display);
	font-weight: 600;
	font-size: clamp(1.8rem, 3vw, 2rem);
	text-align: center;
	margin: 0 0 16px;
	color: var(--p14-sand);
}

.p14-kontakt__heading em {
	font-style: italic;
	color: var(--p14-sued);
}

.p14-kontakt__intro {
	text-align: center;
	max-width: 560px;
	margin: 0 auto 56px;
	font-family: var(--p14-font-body);
	color: var(--p14-putz);
}

.p14-kontakt__grid {
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	gap: 64px;
	max-width: 1100px;
	margin: 0 auto;
}

.p14-kontakt__info {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.p14-kontakt__link,
.p14-kontakt__link:focus,
.p14-kontakt__link:active,
body .p14-kontakt__link {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--p14-font-body);
	color: var(--p14-putz) !important;
	background: none !important;
	text-decoration: none !important;
	box-shadow: none !important;
	width: fit-content;
	transition: color 0.2s ease;
}

.p14-kontakt__link:hover,
body .p14-kontakt__link:hover {
	color: var(--p14-sued) !important;
	background: none !important;
	box-shadow: none !important;
}

.p14-kontakt__link:hover span,
body .p14-kontakt__link:hover span {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.p14-kontakt__icon {
	width: auto;
	height: 16px;
	flex-shrink: 0;
	color: var(--p14-canal);
}

.p14-kontakt__form {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.p14-kontakt__form input,
.p14-kontakt__form textarea,
.p14-kontakt__form select {
	font-family: var(--p14-font-body);
	font-size: 0.95rem;
	padding: 14px 16px;
	border: 1px solid rgba(143,163,168,0.3);
	border-radius: 2px;
	background: rgba(255,255,255,0.06);
	color: var(--p14-sand);
}

.p14-kontakt__form input::placeholder,
.p14-kontakt__form textarea::placeholder {
	color: var(--p14-canal);
}

.p14-kontakt__form select option {
	background: var(--p14-lehm);
	color: var(--p14-sand);
}

.p14-kontakt__form input:focus,
.p14-kontakt__form textarea:focus,
.p14-kontakt__form select:focus {
	outline: none;
	border-color: var(--p14-canal);
}

.p14-kontakt__form textarea {
	min-height: 120px;
	resize: vertical;
}

.p14-kontakt__consent {
	font-family: var(--p14-font-body);
	font-size: 0.85rem;
	display: flex;
	gap: 10px;
	align-items: flex-start;
	color: var(--p14-canal);
}

.p14-kontakt__consent input[type="checkbox"] {
	margin-top: 1px !important;
	flex-shrink: 0;
	accent-color: var(--p14-sued);
}

.p14-kontakt__consent a,
.p14-kontakt__consent a:focus,
.p14-kontakt__consent a:active,
body .p14-kontakt__consent a {
	color: var(--p14-sued) !important;
	background: none !important;
	box-shadow: none !important;
	text-decoration: none;
}

.p14-kontakt__consent a:hover,
body .p14-kontakt__consent a:hover {
	color: var(--p14-sued) !important;
	background: none !important;
	box-shadow: none !important;
	text-decoration: underline !important;
}

.p14-kontakt__hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.esc-form-message {
	font-family: var(--p14-font-body);
	font-size: 0.9rem;
	min-height: 1.2em;
}

.esc-form-message--success {
	color: #7aab7a;
}

.esc-form-message--error {
	color: #d47070;
}

@media (max-width: 900px) {
	.p14-kontakt__grid {
		grid-template-columns: 1fr;
	}
}

/* ---------- Desktop / laptop tightening (901px–1280px) ---------- */
@media (max-width: 1280px) and (min-width: 901px) {
	.p14-beschreibung,
	.p14-galerie,
	.p14-einheiten,
	.p14-lage,
	.p14-ausstattung,
	.p14-grundrisse,
	.p14-wohnungen,
	.p14-kontakt {
		padding: 84px 40px;
	}

	.p14-beschreibung__inner,
	.p14-kontakt__grid {
		gap: 48px;
	}

	.p14-beschreibung__facts,
	.p14-galerie__grid,
	.p14-einheiten__grid,
	.p14-ausstattung__grid,
	.p14-grundrisse__table-wrap {
		max-width: 1080px;
	}

	.p14-einheiten__image {
		height: 280px !important;
	}

	.p14-lage__poi-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ---------- Global mobile spacing (≤768px) ---------- */
@media (max-width: 768px) {
	.p14-beschreibung,
	.p14-galerie,
	.p14-einheiten,
	.p14-lage,
	.p14-ausstattung,
	.p14-grundrisse,
	.p14-wohnungen,
	.p14-kontakt {
		padding: 72px 20px;
	}

	.p14-beschreibung__inner,
	.p14-kontakt__grid {
		gap: 36px;
	}

	.p14-galerie__heading,
	.p14-einheiten__heading,
	.p14-ausstattung__heading,
	.p14-grundrisse__heading {
		margin-bottom: 32px;
	}

	.p14-einheiten__intro,
	.p14-kontakt__intro {
		margin-bottom: 36px;
	}

	.p14-einheiten__grid,
	.p14-ausstattung__grid {
		gap: 24px;
	}

	.p14-einheiten__image {
		height: 240px !important;
	}

	.p14-lage__inner {
		max-width: 100%;
	}

	.p14-btn {
		width: 100%;
		max-width: 320px;
		text-align: center;
	}
}

/* ---------- Small mobile (≤420px) ---------- */
@media (max-width: 420px) {
	.p14-beschreibung,
	.p14-galerie,
	.p14-einheiten,
	.p14-lage,
	.p14-ausstattung,
	.p14-grundrisse,
	.p14-wohnungen,
	.p14-kontakt {
		padding: 64px 16px;
	}

	.p14-hero__content {
		padding-left: 20px;
		padding-right: 20px;
	}

	.p14-einheiten__image {
		height: 220px !important;
	}
}

/* ============================================================
   Wohnungen — combined accordion table + browser (p14-wohnungen.html)
   ============================================================ */

/* ---------- Section shell ---------- */
.p14-wohnungen {
	padding: 96px 48px;
	background: var(--p14-sand);
	color: var(--p14-lehm);
}

.p14-wohnungen__label {
	font-family: var(--p14-font-mono);
	font-size: 0.8rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--p14-sued);
	margin: 0 0 16px;
	text-align: center;
}

.p14-wohnungen__heading {
	font-family: var(--p14-font-display);
	font-weight: 600;
	font-size: clamp(1.8rem, 3vw, 2rem);
	text-align: center;
	margin: 0 0 16px;
	color: var(--p14-lehm);
}

.p14-wohnungen__heading em {
	font-style: italic;
	color: var(--p14-sued);
}

.p14-wohnungen__intro {
	text-align: center;
	max-width: 680px;
	margin: 0 auto 16px;
	font-family: var(--p14-font-body);
	font-size: 1rem;
	line-height: 1.7;
	color: var(--p14-canal);
}

.p14-wohnungen__subheading {
	text-align: center;
	font-family: var(--p14-font-display);
	font-style: italic;
	font-size: 1.1rem;
	color: var(--p14-canal);
	margin: 0 auto 48px;
}

/* ---------- Filter bar ---------- */
.p14-wohnungen__filters {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	margin-bottom: 40px;
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
}

.p14-wohnungen__filter-group {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.p14-wohnungen__filter-label {
	font-family: var(--p14-font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--p14-canal);
}

.p14-wohnungen__filter-pills {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
}

.p14-wohnungen__filter,
.p14-wohnungen__filter:focus,
.p14-wohnungen__filter:active,
body .p14-wohnungen__filter {
	font-family: var(--p14-font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 8px 16px;
	border: 1px solid rgba(143,163,168,0.35);
	background: none !important;
	color: var(--p14-canal) !important;
	cursor: pointer;
	border-radius: 2px;
	transition: border-color 0.2s ease, color 0.2s ease;
	box-shadow: none !important;
	text-decoration: none !important;
}

.p14-wohnungen__filter:hover,
body .p14-wohnungen__filter:hover {
	border-color: var(--p14-lehm);
	color: var(--p14-lehm) !important;
	background: none !important;
	box-shadow: none !important;
}

.p14-wohnungen__filter.is-active,
body .p14-wohnungen__filter.is-active {
	border-color: var(--p14-sued);
	color: var(--p14-sued) !important;
	background: none !important;
	box-shadow: none !important;
}

/* ---------- Table ---------- */
.p14-wohnungen__table-wrap {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.p14-wohnungen__table {
	width: 100%;
	border-collapse: collapse;
	font-family: var(--p14-font-body);
	font-size: 1rem;
	font-weight: 500;
	border-right: 1px solid var(--p14-putz);
}

.p14-wohnungen__table thead th {
	font-family: var(--p14-font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--p14-canal);
	padding: 14px 12px;
	text-align: left;
	border-bottom: 2px solid var(--p14-putz);
}

.p14-wohnungen__row td {
	padding: 18px 12px;
	border-bottom: 1px solid var(--p14-putz);
	vertical-align: middle;
}

.p14-wohnungen__row {
	cursor: pointer;
	transition: background 0.15s ease;
}

.p14-wohnungen__row:hover {
	background: rgba(143,163,168,0.08);
}

.p14-wohnungen__row.is-open {
	background: rgba(143,163,168,0.12);
}

.p14-wohnungen__row.is-open td {
	border-bottom: none;
}

.p14-wohnungen__row--gewerbe td {
	color: var(--p14-sued);
}

/* ---------- Disabled row (not expandable, e.g. GE-1 for now) ---------- */
.p14-wohnungen__row--disabled {
	cursor: default;
	opacity: 0.55;
}

.p14-wohnungen__row--disabled:hover {
	background: none;
}

.p14-wohnungen__row--disabled .p14-wohnungen__row-select {
	cursor: not-allowed;
}

.p14-wohnungen__row--disabled .p14-wohnungen__row-checkbox:disabled {
	cursor: not-allowed;
	opacity: 0.5;
}

/* ---------- Sortable column headers ---------- */
.p14-wohnungen__th--sort {
	cursor: pointer;
	user-select: none;
	white-space: nowrap;
}

.p14-wohnungen__th--sort:hover {
	color: var(--p14-lehm);
}

.p14-wohnungen__th--sort.is-sorted {
	color: var(--p14-sued);
}

.p14-sort-icon {
	font-size: 0.75rem;
	margin-left: 6px;
	opacity: 0.4;
	vertical-align: middle;
	color: var(--p14-canal);
}

.p14-wohnungen__th--sort.is-sorted .p14-sort-icon {
	opacity: 1;
	color: var(--p14-sued);
}
/* ---------- Hero stat static reveal ---------- */
.p14-hero__stat-value--static {
	opacity: 0;
	transform: translateY(8px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.p14-hero__stat-value--static.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* ---------- Row-level selection checkbox (visible without expanding) ---------- */
.p14-wohnungen__row-select {
	display: inline-flex;
	align-items: center;
	margin-right: 10px;
	vertical-align: middle;
	cursor: pointer;
}

.p14-wohnungen__row-checkbox {
	accent-color: var(--p14-sued);
	width: 16px;
	height: 16px;
	cursor: pointer;
	flex-shrink: 0;
}

/* ---------- Expand icon (on unit name) ---------- */
.p14-wohnungen__expand-icon {
	display: inline-block;
	font-size: 1rem;
	color: var(--p14-canal);
	margin-left: 6px;
	transition: transform 0.25s ease, color 0.25s ease;
	vertical-align: middle;
	line-height: 1;
}

.p14-wohnungen__row:hover .p14-wohnungen__expand-icon {
	color: var(--p14-sued);
}

.p14-wohnungen__expand-icon.is-open {
	transform: rotate(90deg);
	color: var(--p14-sued);
}

/* ---------- Badges ---------- */
.p14-wohnungen__badge {
	font-family: var(--p14-font-mono);
	font-size: 0.6rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 2px 8px;
	border-radius: 2px;
	border: 1px solid;
	display: inline-block;
	vertical-align: middle;
	margin-left: 4px;
}

.p14-wohnungen__badge--verfuegbar {
	color: #5a8f5a;
	border-color: #5a8f5a;
}

.p14-wohnungen__badge--reserviert {
	color: var(--p14-sued);
	border-color: var(--p14-sued);
}

.p14-wohnungen__badge--verkauft {
	color: var(--p14-canal);
	border-color: var(--p14-canal);
	opacity: 0.5;
}

.p14-wohnungen__badge--bf {
	color: var(--p14-canal);
	border-color: rgba(143,163,168,0.4);
}

.p14-wohnungen__badge--gewerbe {
	color: var(--p14-sued);
	border-color: var(--p14-sued);
}

/* ---------- Detail row ---------- */
.p14-wohnungen__detail-row td {
	padding: 0;
	border-bottom: 1px solid var(--p14-putz);
}

.p14-wohnungen__detail {
	overflow: hidden;
	max-height: 0;
	transition: max-height 0.35s ease;
}

.p14-wohnungen__detail-image-col {
	padding: 32px;
	background: rgba(143,163,168,0.06);
}

/* ---------- Main image ---------- */
.p14-wohnungen__image-wrap {
	background: #ffffff;
	border-radius: 2px;
	overflow: hidden;
	margin-bottom: 20px;
}

.p14-wohnungen__main-image {
	width: 100%;
	height: auto;
	display: block;
	transition: opacity 0.2s ease;
}

.p14-wohnungen__main-image.is-switching {
	opacity: 0;
}

/* ---------- Meta row (thumbs + data) ---------- */
.p14-wohnungen__meta {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 24px;
	flex-wrap: wrap;
}

/* ---------- Thumbnails + unit action cluster wrapper ---------- */
.p14-wohnungen__thumbs-wrap {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	flex-wrap: wrap;
}

.p14-wohnungen__thumbs {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}

.p14-wohnungen__thumb,
.p14-wohnungen__thumb:focus,
.p14-wohnungen__thumb:active,
body .p14-wohnungen__thumb {
	width: 72px;
	height: 54px;
	border-radius: 2px;
	overflow: hidden;
	border: 2px solid transparent;
	cursor: pointer;
	padding: 0 !important;
	background: var(--p14-putz) !important;
	transition: border-color 0.2s ease;
	box-shadow: none !important;
	flex-shrink: 0;
}

.p14-wohnungen__thumb:hover,
body .p14-wohnungen__thumb:hover {
	border-color: var(--p14-canal);
	background: var(--p14-putz) !important;
	box-shadow: none !important;
}

.p14-wohnungen__thumb.is-active,
body .p14-wohnungen__thumb.is-active {
	border-color: var(--p14-sued);
	background: var(--p14-putz) !important;
	box-shadow: none !important;
}

.p14-wohnungen__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	pointer-events: none;
}

.p14-wohnungen__thumb-label {
	display: block;
	font-family: var(--p14-font-mono);
	font-size: 0.62rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--p14-canal);
	text-align: center;
	margin-top: 4px;
}

/* ---------- Unit action cluster (Share / Save / Print) ---------- */
.p14-wohnungen__actions-divider {
	width: 1px;
	align-self: stretch;
	background: var(--p14-putz);
	flex-shrink: 0;
}

.p14-wohnungen__icon-cluster {
	display: flex;
	gap: 8px;
	align-items: flex-start;
	padding-top: 2px;
	flex-shrink: 0;
}

.p14-wohnungen__icon-btn,
.p14-wohnungen__icon-btn:focus,
.p14-wohnungen__icon-btn:active,
body .p14-wohnungen__icon-btn {
	position: relative;
	width: 36px;
	height: 36px;
	border-radius: 2px;
	border: 1px solid rgba(143,163,168,0.35);
	background: none !important;
	color: var(--p14-canal) !important;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	box-shadow: none !important;
	text-decoration: none !important;
	transition: border-color 0.2s ease, color 0.2s ease;
	flex-shrink: 0;
}

.p14-wohnungen__icon-btn:hover,
body .p14-wohnungen__icon-btn:hover {
	border-color: var(--p14-sued);
	color: var(--p14-sued) !important;
	background: none !important;
	box-shadow: none !important;
}

.p14-wohnungen__icon-btn--whatsapp:hover,
body .p14-wohnungen__icon-btn--whatsapp:hover {
	border-color: #25D366;
	color: #25D366 !important;
	background: none !important;
	box-shadow: none !important;
}

.p14-wohnungen__icon-btn-glyph {
	width: 18px;
	height: 18px;
	display: block;
}

.p14-wohnungen__icon-btn-glyph svg,
body .p14-wohnungen__icon-btn-glyph svg {
	width: 18px !important;
	height: 18px !important;
	max-width: none !important;
	display: block;
}

.p14-wohnungen__tooltip {
	position: absolute;
	top: -34px;
	left: 50%;
	transform: translateX(-50%);
	background: var(--p14-lehm);
	color: var(--p14-sand);
	font-family: var(--p14-font-mono);
	font-size: 0.6rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 5px 8px;
	border-radius: 2px;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.15s ease;
}

.p14-wohnungen__icon-btn:hover .p14-wohnungen__tooltip,
.p14-wohnungen__icon-btn:focus-visible .p14-wohnungen__tooltip {
	opacity: 1;
}

/* ---------- Data ---------- */
.p14-wohnungen__data {
	display: flex;
	gap: 28px;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-items: flex-start;
}

.p14-wohnungen__datum {
	display: flex;
	flex-direction: column;
	gap: 4px;
	text-align: right;
}

.p14-wohnungen__datum-label {
	font-family: var(--p14-font-mono);
	font-size: 0.68rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--p14-canal);
}

.p14-wohnungen__datum-value {
	font-family: var(--p14-font-display);
	font-weight: 600;
	font-size: 1.1rem;
	color: var(--p14-lehm);
}

.p14-wohnungen__datum-value--price {
	color: var(--p14-sued);
	font-size: 1.3rem;
}

/* ---------- Detail actions ---------- */
.p14-wohnungen__detail-actions {
	display: flex;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
	padding-top: 20px;
	border-top: 1px solid var(--p14-putz);
}

.p14-wohnungen__select-wrap {
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: var(--p14-font-body);
	font-size: 0.85rem;
	color: var(--p14-canal);
	cursor: pointer;
}

.p14-wohnungen__select-wrap input[type="checkbox"] {
	accent-color: var(--p14-sued);
	width: 16px;
	height: 16px;
	cursor: pointer;
	flex-shrink: 0;
}

.p14-wohnungen__cta,
.p14-wohnungen__cta:focus,
.p14-wohnungen__cta:active,
body .p14-wohnungen__cta {
	display: inline-block;
	color: var(--p14-sand) !important;
	background: var(--p14-sued) !important;
	text-decoration: none !important;
	box-shadow: none !important;
	border: none;
	border-radius: 2px;
	padding: 14px 28px;
	font-family: var(--p14-font-body);
	font-size: 0.9rem;
	letter-spacing: 0.03em;
	cursor: pointer;
	transition: opacity 0.2s ease, transform 0.15s ease;
}

.p14-wohnungen__cta:hover,
body .p14-wohnungen__cta:hover {
	color: var(--p14-sand) !important;
	background: var(--p14-sued) !important;
	box-shadow: none !important;
	text-decoration: none !important;
	opacity: 0.88;
	transform: translateY(-2px);
}

/* ---------- Selection summary (chips) ---------- */
.p14-wohnungen__selection-summary {
	display: none;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 24px;
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
}

.p14-wohnungen__selection-summary.is-visible {
	display: flex;
}

.p14-wohnungen__selection-label {
	font-family: var(--p14-font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--p14-canal);
	flex-shrink: 0;
}

.p14-wohnungen__selection-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.p14-wohnungen__chip,
.p14-wohnungen__chip:focus,
.p14-wohnungen__chip:active,
body .p14-wohnungen__chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--p14-font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.05em;
	color: var(--p14-lehm) !important;
	background: var(--p14-putz) !important;
	border: none;
	border-radius: 999px;
	padding: 5px 8px 5px 12px;
	cursor: pointer;
	box-shadow: none !important;
	text-decoration: none !important;
	transition: background 0.2s ease;
}

.p14-wohnungen__chip:hover,
body .p14-wohnungen__chip:hover {
	background: rgba(184,132,58,0.2) !important;
	box-shadow: none !important;
}

.p14-wohnungen__chip-remove {
	font-size: 0.9rem;
	line-height: 1;
	color: var(--p14-sued);
}

/* ---------- Multi-select actions ---------- */
.p14-wohnungen__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px;
	margin-top: 32px;
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
}

.p14-wohnungen__reset,
.p14-wohnungen__reset:focus,
.p14-wohnungen__reset:active,
body .p14-wohnungen__reset {
	background: none !important;
	border: 1px solid var(--p14-canal);
	color: var(--p14-lehm) !important;
	box-shadow: none !important;
	text-decoration: none !important;
	padding: 12px 24px;
	border-radius: 2px;
	cursor: pointer;
	font-family: var(--p14-font-body);
	font-size: 0.85rem;
	transition: background 0.2s ease, color 0.2s ease;
}

.p14-wohnungen__reset:hover,
body .p14-wohnungen__reset:hover {
	background: var(--p14-canal) !important;
	color: var(--p14-sand) !important;
	box-shadow: none !important;
	text-decoration: none !important;
}

/* ---------- Empty state ---------- */
.p14-wohnungen__empty {
	display: none;
	text-align: center;
	padding: 48px 0;
	font-family: var(--p14-font-body);
	color: var(--p14-canal);
}

.p14-wohnungen__empty.is-visible {
	display: block;
}

/* ---------- Mobile select dropdowns: hide on desktop ---------- */
.p14-wohnungen__filter-select {
	display: none;
}

/* ---------- Responsive: 769px–1280px laptop tightening ---------- */
@media (max-width: 1280px) and (min-width: 901px) {
	.p14-wohnungen {
		padding: 84px 40px;
	}
}

/* ---------- Responsive: ≤900px tablet ---------- */
@media (max-width: 900px) {
	.p14-wohnungen {
		padding: 72px 20px;
	}

	/* Switch filters to dropdowns */
	.p14-wohnungen__filter-pills {
		display: none;
	}
	.p14-wohnungen__filter-label {
		display: none;
	}
	.p14-wohnungen__filter-select {
		display: block;
		width: 100%;
		font-family: var(--p14-font-mono);
		font-size: 0.7rem;
		letter-spacing: 0.1em;
		text-transform: uppercase;
		padding: 10px 14px;
		border: 1px solid rgba(143,163,168,0.35);
		border-radius: 2px;
		background: var(--p14-sand) !important;
		color: var(--p14-lehm);
		cursor: pointer;
		appearance: none;
		-webkit-appearance: none;
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238FA3A8' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
		background-repeat: no-repeat !important;
		background-position: right 12px center !important;
		padding-right: 36px;
	}
	.p14-wohnungen__filters {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 10px;
	}
	.p14-wohnungen__filter-group {
		gap: 0;
	}

	/* Table: hide Preis/m² (col 5) */
	.p14-wohnungen__table thead th:nth-child(5),
	.p14-wohnungen__row td:nth-child(5) {
		display: none;
	}

	/* Detail panel */
	.p14-wohnungen__meta {
		flex-direction: column;
	}
	.p14-wohnungen__data {
		justify-content: flex-start;
		text-align: left;
	}
	.p14-wohnungen__datum {
		text-align: left;
	}
	.p14-wohnungen__detail-image-col {
		padding: 20px;
	}

	/* Thumbnails: ensure wrap on tablet */
	.p14-wohnungen__thumbs {
		flex-wrap: wrap;
		gap: 8px;
	}
}

/* ---------- Responsive: ≤560px mobile ---------- */
@media (max-width: 560px) {
	.p14-wohnungen {
		padding: 64px 16px;
	}

	/* Filters: single column */
	.p14-wohnungen__filters {
		grid-template-columns: 1fr;
		gap: 8px;
	}

	/* Table: hide Zimmer (col 3) and Kaufpreis (col 6) */
	.p14-wohnungen__table thead th:nth-child(3),
	.p14-wohnungen__row td:nth-child(3),
	.p14-wohnungen__table thead th:nth-child(6),
	.p14-wohnungen__row td:nth-child(6) {
		display: none;
	}

	/* Thumbnails: smaller on very small screens */
	.p14-wohnungen__thumb,
	body .p14-wohnungen__thumb {
		width: 60px;
		height: 45px;
	}

	/* Action cluster wraps under thumbnails on narrow screens rather than
	   moving down to the CTA row, so it stays visually grouped with the
	   thumbnails it relates to */
	.p14-wohnungen__thumbs-wrap {
		width: 100%;
	}

	.p14-wohnungen__actions-divider {
		display: none;
	}

	.p14-wohnungen__icon-cluster {
		width: 100%;
		padding-top: 8px;
		border-top: 1px solid var(--p14-putz);
		margin-top: 4px;
	}

	.p14-wohnungen__detail-actions {
		flex-direction: column;
		align-items: flex-start;
	}

	.p14-wohnungen__cta,
	body .p14-wohnungen__cta {
		width: 100%;
		text-align: center;
	}
}

/* ---------- Global mobile spacing: add p14-wohnungen to existing blocks ---------- */


/* ---------- Variante note ---------- */
.p14-wohnungen__variante-note {
	margin: 16px 0 0;
	padding: 16px 20px;
	border-left: 2px solid var(--p14-sued);
	background: rgba(184,132,58,0.06);
	box-sizing: border-box;
	width: 100%;
}

.p14-wohnungen__variante-note p {
	font-family: var(--p14-font-body);
	font-size: 0.85rem;
	line-height: 1.6;
	color: var(--p14-canal);
	margin: 0;
	text-align: center;
}

.p14-wohnungen__variante-note a,
.p14-wohnungen__variante-note a:hover,
body .p14-wohnungen__variante-note a {
	color: var(--p14-sued) !important;
	text-decoration: none !important;
	background: none !important;
	box-shadow: none !important;
}

/* ---------- Footer (p14-footer.html) ---------- */
.p14-footer {
	background: var(--p14-lehm);
	border-top: 1px solid rgba(240,232,216,0.08);
	padding: 20px 48px;
}

.p14-footer__inner {
	max-width: 100%;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.p14-footer__brand {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-shrink: 0;
}

.p14-footer__logo {
	display: block;
	height: 28px;
	width: auto;
	flex-shrink: 0;
}

.p14-footer__tag {
	font-family: var(--p14-font-body);
	font-size: 0.85rem;
	color: rgba(240,232,216,0.55);
	letter-spacing: 0.08em;
	white-space: nowrap;
}

.p14-footer__copy {
	font-family: var(--p14-font-body);
	font-size: 0.7rem;
	color: rgba(240,232,216,0.45);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	white-space: nowrap;
}

.p14-footer__immoscout {
	height: 56px !important;
	width: auto !important;
	display: block;
	flex-shrink: 0;
}

.p14-footer__cta,
.p14-footer__cta:focus,
.p14-footer__cta:active,
body .p14-footer__cta {
	font-family: var(--p14-font-body);
	font-size: 0.7rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--p14-lehm) !important;
	background: var(--p14-sand) !important;
	text-decoration: none !important;
	box-shadow: none !important;
	border: none;
	padding: 12px 24px;
	border-radius: 999px;
	white-space: nowrap;
	flex-shrink: 0;
	transition: opacity 0.2s ease;
}

.p14-footer__cta:hover,
body .p14-footer__cta:hover {
	color: var(--p14-lehm) !important;
	background: var(--p14-sand) !important;
	box-shadow: none !important;
	text-decoration: none !important;
	opacity: 0.85;
}

@media (max-width: 768px) {
	.p14-footer {
		padding: 20px;
	}
	.p14-footer__copy {
		display: none;
	}
}

/* ============================================================
   Mobile Nav — hamburger + full-screen overlay
   ============================================================ */

/* ---------- Hamburger button ---------- */
.p14-burger {
	position: fixed;
	top: 16px;
	right: 16px;
	z-index: 9999;
	width: 44px;
	height: 44px;
	background: var(--p14-lehm) !important;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	padding: 0;
	box-shadow: 0 2px 12px rgba(0,0,0,0.25);
	display: none;
	-webkit-tap-highlight-color: transparent;
}

.p14-burger span {
	display: block;
	width: 20px;
	height: 2px;
	background: var(--p14-sand);
	border-radius: 2px;
	transition: transform 0.25s ease, opacity 0.25s ease;
	transform-origin: center;
}

/* Animate to × */
.p14-burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.p14-burger.is-open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.p14-burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---------- Overlay ---------- */
.p14-mobile-nav {
	position: fixed;
	inset: 0;
	z-index: 9998;
	background: var(--p14-lehm);
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease;
	overflow-y: auto;
	padding: 80px 40px 48px;
	display: none;
}

.p14-mobile-nav.is-open {
	opacity: 1;
	pointer-events: auto;
}

/* ---------- Logo ---------- */
.p14-mobile-nav__logo {
	margin-bottom: 48px;
	text-align: center;
}

.p14-mobile-nav__logo svg {
	display: block;
	margin: 0 auto;
}

/* ---------- Section links ---------- */
.p14-mobile-nav__list {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	width: 100%;
}

.p14-mobile-nav__link,
.p14-mobile-nav__link:focus,
.p14-mobile-nav__link:active,
body .p14-mobile-nav__link {
	font-family: var(--p14-font-display);
	font-size: clamp(2rem, 8vw, 3rem);
	font-weight: 600;
	font-style: italic;
	color: var(--p14-sand) !important;
	text-decoration: none !important;
	background: none !important;
	box-shadow: none !important;
	display: block;
	text-align: center;
	padding: 10px 0;
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 0.3s ease, transform 0.3s ease, color 0.2s ease;
	line-height: 1.1;
}

.p14-mobile-nav.is-open .p14-mobile-nav__link {
	opacity: 1;
	transform: translateY(0);
}

.p14-mobile-nav__link:hover,
body .p14-mobile-nav__link:hover {
	color: var(--p14-canal) !important;
	background: none !important;
	box-shadow: none !important;
	text-decoration: none !important;
}

/* ---------- Secondary links ---------- */
.p14-mobile-nav__secondary {
	margin-top: 40px;
	padding-top: 32px;
	border-top: 1px solid rgba(240,232,216,0.12);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	width: 100%;
	opacity: 0;
	transform: translateY(12px);
	transition: opacity 0.3s ease 0.4s, transform 0.3s ease 0.4s;
}

.p14-mobile-nav.is-open .p14-mobile-nav__secondary {
	opacity: 1;
	transform: translateY(0);
}

.p14-mobile-nav__secondary-link,
.p14-mobile-nav__secondary-link:focus,
.p14-mobile-nav__secondary-link:active,
body .p14-mobile-nav__secondary-link {
	font-family: var(--p14-font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--p14-canal) !important;
	text-decoration: none !important;
	background: none !important;
	box-shadow: none !important;
	transition: color 0.2s ease;
}

.p14-mobile-nav__secondary-link:hover,
body .p14-mobile-nav__secondary-link:hover {
	color: var(--p14-sand) !important;
	background: none !important;
	box-shadow: none !important;
	text-decoration: none !important;
}

/* ---------- Show on mobile, hide elevator ---------- */
@media (max-width: 768px) {
	.p14-burger {
		display: flex !important;
	}
	.p14-mobile-nav {
		display: flex !important;
	}
	.p14-elevator {
		display: none !important;
	}
}/* End custom CSS */