/* Das Ludwig – Wohnungen. Farben aus dem Exposé; Schriften erbt das Theme. */
.lw-root {
	--lw-terracotta: #a4674e;
	--lw-gold: #f0c04a;
	--lw-green: #9aa26a;
	--lw-anton: #a8957f;
	--lw-ben: #c9b9aa;
	--lw-carl: #ddd1c5;
	--lw-ludwig: #9aa26a;
	--lw-ink: #3b302a;
	--lw-muted: #6f625a;
	--lw-paper: #faf7f3;
	--lw-line: #e7ded5;
	--lw-ok: #2e7d32;
	--lw-warn: #b26a00;
	--lw-no: #b3261e;
	--lw-radius: 14px;
	--lw-haus: var(--lw-terracotta);

	color: var(--lw-ink);
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 24px 16px 64px;
	box-sizing: border-box;
	line-height: 1.55;
}
/* Astra-Header: auf den Wohnungsseiten dunkel hinterlegen und Inhalt darunter schieben.
   --lw-header-h setzt lw.js aus der gemessenen Header-Höhe; die Werte hier sind nur Fallback. */
body.lw-page { --lw-header-h: 96px; --lw-header-bg: #3b302a; }
body.lw-page #masthead,
body.lw-page .site-header .main-header-bar,
body.lw-page .site-header .ast-primary-header-bar,
body.lw-page .site-header .ast-above-header-bar,
body.lw-page .site-header .ast-below-header-bar,
body.lw-page .ast-mobile-header-wrap .ast-primary-header-bar { background: var(--lw-header-bg) !important; }
body.lw-page.ast-theme-transparent-header .lw-root { padding-top: calc(var(--lw-header-h) + 28px); }
@media (max-width: 921px) { body.lw-page { --lw-header-h: 72px; } }

.lw-root *, .lw-root *::before, .lw-root *::after { box-sizing: border-box; }
.lw-root img { max-width: 100%; height: auto; display: block; }

.lw-haus--anton  { --lw-haus: var(--lw-anton); }
.lw-haus--ben    { --lw-haus: var(--lw-ben); }
.lw-haus--carl   { --lw-haus: var(--lw-carl); }
.lw-haus--ludwig { --lw-haus: var(--lw-ludwig); }

/* Typo */
.lw-eyebrow { text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; margin: 0 0 .4rem; opacity: .85; }
.lw-title { text-transform: uppercase; letter-spacing: .06em; margin: 0 0 .5rem; line-height: 1.1; font-size: clamp(1.9rem, 4vw, 2.8rem); }
.lw-h2 { text-transform: uppercase; letter-spacing: .05em; font-size: clamp(1.15rem, 2.2vw, 1.45rem); margin: 0 0 1rem; color: var(--lw-terracotta); }
.lw-lead { font-size: 1.1rem; max-width: 760px; }
.lw-small, .lw-disclaimer, figcaption { font-size: .82rem; color: var(--lw-muted); }
.lw-disclaimer { margin-top: 3rem; }

/* Breadcrumb */
.lw-crumbs { font-size: .85rem; display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1.25rem; color: var(--lw-muted); }
.lw-crumbs a { color: inherit; }

/* Buttons & Badges */
.lw-btn {
	display: inline-block; padding: .8rem 1.4rem; border-radius: 999px; background: var(--lw-gold); color: var(--lw-ink) !important;
	font-weight: 600; text-decoration: none !important; border: 2px solid var(--lw-gold); transition: transform .15s, box-shadow .15s;
}
.lw-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(0,0,0,.12); }
.lw-btn--ghost { background: transparent; border-color: currentColor; color: inherit !important; }
.lw-badge { display: inline-block; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; padding: .25rem .6rem; border-radius: 999px; color: #fff; }
.lw-badge--frei { background: var(--lw-ok); }
.lw-badge--reserviert { background: var(--lw-warn); }
.lw-badge--vergeben { background: var(--lw-no); }

/* Hero */
.lw-hero { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 24px; align-items: stretch; }
.lw-card--facts { background: var(--lw-haus); color: #fff; border-radius: var(--lw-radius); padding: clamp(20px, 4vw, 40px); }
.lw-haus--ben .lw-card--facts, .lw-haus--carl .lw-card--facts { color: var(--lw-ink); }
.lw-card--facts .lw-small { color: inherit; opacity: .9; }
.lw-loc { display: flex; align-items: center; gap: .4rem; margin: 0 0 .75rem; font-size: 1.05rem; }
.lw-facts { margin: 1.25rem 0; display: grid; gap: 0; }
.lw-facts > div { display: grid; grid-template-columns: 9.5rem 1fr; gap: .75rem; padding: .45rem 0; border-bottom: 1px solid rgba(255,255,255,.28); }
.lw-haus--ben .lw-facts > div, .lw-haus--carl .lw-facts > div { border-color: rgba(59,48,42,.18); }
.lw-facts dt { margin: 0; }
.lw-facts dd { margin: 0; font-weight: 600; }
.lw-facts dd small { display: block; font-weight: 400; font-size: .75rem; opacity: .85; }
.lw-facts__total dd { font-size: 1.2rem; }
.lw-hinweis { background: rgba(255,255,255,.18); padding: .6rem .8rem; border-radius: 8px; }
.lw-gallery { display: grid; grid-template-rows: 1.4fr 1fr; grid-template-columns: 1fr 1fr; gap: 12px; }
.lw-gallery img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--lw-radius); }
.lw-gallery img:first-child { grid-column: 1 / -1; }

/* Vergeben */
.lw-vergeben { margin: 24px 0 0; border-left: 6px solid var(--lw-no); background: #fdecea; padding: 1rem 1.25rem; border-radius: 8px; display: grid; gap: .25rem; }
.lw-vergeben strong { font-size: 1.1rem; color: var(--lw-no); }
.lw-status--vergeben .lw-card--facts { filter: saturate(.55); }

/* Grundriss & Lage */
.lw-plans { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 24px; margin-top: 48px; }
.lw-plan { margin: 0; background: #fff; border: 1px solid var(--lw-line); border-radius: var(--lw-radius); padding: 20px; }
.lw-plan img { margin: 0 auto; }
.lw-plan__empty { aspect-ratio: 4 / 3; display: grid; place-items: center; text-align: center; padding: 1rem; background: var(--lw-paper); border: 2px dashed var(--lw-line); border-radius: 10px; color: var(--lw-muted); }
.lw-plan figcaption { margin-top: .75rem; }

/* Ausstattung */
.lw-features { margin-top: 48px; background: var(--lw-terracotta); color: #fff; border-radius: var(--lw-radius); padding: clamp(20px, 4vw, 40px); }
.lw-features .lw-h2 { color: var(--lw-gold); }
.lw-checks { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: .6rem 1.5rem; }
.lw-checks li { padding-left: 1.6rem; position: relative; }
.lw-checks li::before { content: "✓"; position: absolute; left: 0; color: var(--lw-gold); font-weight: 700; }

/* Kontakt */
.lw-contact { margin-top: 48px; background: var(--lw-paper); border-radius: var(--lw-radius); padding: clamp(20px, 4vw, 40px); }
.lw-form-fallback { display: flex; flex-wrap: wrap; gap: 12px; }
.lw-form iframe { width: 100%; border: 0; }

/* Übersicht */
.lw-intro { margin-bottom: 24px; }
.lw-filter {
	display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: flex-end; background: var(--lw-paper);
	border: 1px solid var(--lw-line); border-radius: var(--lw-radius); padding: 16px 20px; margin-bottom: 12px;
}
.lw-filter label { display: grid; gap: 4px; font-size: .85rem; font-weight: 600; }
.lw-filter select { min-width: 150px; padding: .45rem .6rem; border-radius: 8px; border: 1px solid var(--lw-line); background: #fff; }
.lw-filter .lw-check { display: flex; align-items: center; gap: .4rem; align-self: center; }
.lw-range input { width: 200px; accent-color: var(--lw-terracotta); }
.lw-chips { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.lw-chips legend { font-size: .85rem; font-weight: 600; margin-bottom: 4px; padding: 0; }
.lw-chip { display: inline-flex !important; cursor: pointer; }
.lw-chip input { position: absolute; opacity: 0; pointer-events: none; }
.lw-chip span { padding: .4rem .9rem; border-radius: 999px; border: 2px solid var(--lw-haus); font-weight: 600; }
.lw-chip input:checked + span { background: var(--lw-haus); }
.lw-chip input:focus-visible + span { outline: 2px solid var(--lw-ink); outline-offset: 2px; }
.lw-reset { background: none; border: 0; text-decoration: underline; cursor: pointer; color: var(--lw-muted); padding: .45rem 0; }
.lw-count { color: var(--lw-muted); margin: 0 0 16px; }

.lw-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 16px; }
.lw-tile {
	display: grid; gap: .35rem; text-decoration: none !important; color: var(--lw-ink) !important; background: #fff;
	border: 1px solid var(--lw-line); border-top: 6px solid var(--lw-haus); border-radius: var(--lw-radius); padding: 16px;
	transition: transform .15s, box-shadow .15s;
}
.lw-tile:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(59,48,42,.12); }
.lw-tile__plan {
	display: block; aspect-ratio: 4 / 3; margin: -2px -4px .4rem; background: #fff;
	border-bottom: 1px solid var(--lw-line); overflow: hidden;
}
.lw-tile__plan img { width: 100%; height: 100%; object-fit: contain; padding: 6px; transition: transform .25s ease; }
.lw-tile:hover .lw-tile__plan img { transform: scale(1.04); }
.lw-tile__noplan { display: grid; place-items: center; height: 100%; font-size: .85rem; color: var(--lw-muted); background: var(--lw-paper); }
.lw-tile.lw-status--vergeben .lw-tile__plan img { filter: grayscale(1); }
.lw-tile__head { display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.lw-tile__nr { white-space: nowrap; font-weight: 700; font-size: 1.1rem; text-transform: uppercase; letter-spacing: .04em; }
.lw-tile__loc { color: var(--lw-muted); font-size: .88rem; }
.lw-tile__facts { display: grid; grid-template-columns: repeat(3, auto); justify-content: space-between; margin-top: .5rem; font-size: .75rem; color: var(--lw-muted); }
.lw-tile__facts strong { display: block; font-size: .98rem; color: var(--lw-ink); }
.lw-tile.lw-status--vergeben { opacity: .55; }
.lw-tile[hidden] { display: none !important; }
.lw-grid--alts { margin-bottom: 32px; }

@media (max-width: 900px) {
	.lw-hero, .lw-plans { grid-template-columns: 1fr; }
	.lw-gallery { grid-template-rows: auto; }
}
@media (max-width: 480px) {
	.lw-facts > div { grid-template-columns: 7.5rem 1fr; }
	.lw-filter select, .lw-range input { width: 100%; min-width: 0; }
	.lw-filter label { flex: 1 1 100%; }
	.lw-filter .lw-chip { flex: 0 0 auto; }
}
