/* =====================================================================
   LB-THEME v1 (Design C "Nocturne"): Hell- und Dunkelmodus
   ---------------------------------------------------------------------
   - Farben als Variablen; der Modus steht in <html data-theme="dark|light">
     (gesetzt vor dem ersten Zeichnen: Wahl des Besuchers, sonst Systemeinstellung)
   - ohne JavaScript: Systemeinstellung über prefers-color-scheme
   - Konto- und Admin-Bereich: immer hell (data-theme="light")
   - gilt nach styles.css und lb-custom.css und gleicht Bootstrap 4 an
   ===================================================================== */

/* ---------- Schriften (selbst gehostet, SIL Open Font License) ---------- */
@font-face {
	font-family: 'Manrope';
	font-style: normal;
	font-display: swap;
	font-weight: 200 800;
	src: url('../../assets/vendor/fonts/manrope-latin-wght-normal.woff2') format('woff2-variations'), url('../../assets/vendor/fonts/manrope-latin-wght-normal.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Manrope';
	font-style: normal;
	font-display: swap;
	font-weight: 200 800;
	src: url('../../assets/vendor/fonts/manrope-latin-ext-wght-normal.woff2') format('woff2-variations'), url('../../assets/vendor/fonts/manrope-latin-ext-wght-normal.woff2') format('woff2');
	unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Lexend Giga';
	font-style: normal;
	font-display: swap;
	font-weight: 400;
	src: url('../../assets/vendor/fonts/lexend-giga-latin-400-normal.woff2') format('woff2');
}
@font-face {
	font-family: 'Lexend Giga';
	font-style: normal;
	font-display: swap;
	font-weight: 500;
	src: url('../../assets/vendor/fonts/lexend-giga-latin-500-normal.woff2') format('woff2');
}

/* ---------- Farben ---------- */
:root {
	--lb-font: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--lb-font-label: 'Lexend Giga', 'Manrope', system-ui, sans-serif;
	--lb-max: 1320px;
	--lb-gutter: clamp(16px, 4vw, 48px);

	/* hell (Standard ohne Angabe) */
	--lb-bg: #faf9f7;
	--lb-surface: #f0eee9;
	--lb-surface-2: #e7e4dd;
	--lb-text: #141518;
	--lb-body: #3a3c40;
	--lb-muted: #5c5e63;
	--lb-rule: #e2dfd8;
	--lb-rule-strong: #cfcac0;
	--lb-accent: #8c6d33;
	--lb-accent-hover: #6f5525;
	--lb-on-accent: #ffffff;
	--lb-btn-border: #8e8b84;
	--lb-input-bg: #ffffff;
	--lb-input-border: #cfcac0;
	--lb-focus: rgba(140, 109, 51, .28);
	--lb-danger: #a33a2a;
	--lb-success: #2f6b3a;
	--lb-warning: #8a5a00;
	--lb-shadow: 0 10px 30px rgba(20, 21, 24, .08);
	--lb-card: #ffffff;
	--lb-card-2: #ffffff;
	--lb-card-border: #e4e0d8;
	color-scheme: light;
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme]) {
		--lb-bg: #0f1012; --lb-surface: #17181b; --lb-surface-2: #202125; --lb-text: #ece9e3; --lb-body: #c9c7c1;
		--lb-muted: #a3a29d; --lb-rule: #26272b; --lb-rule-strong: #3a3b40; --lb-accent: #c9a96a; --lb-accent-hover: #dcc08a;
		--lb-on-accent: #0f1012; --lb-btn-border: #5a5b60; --lb-input-bg: #141518; --lb-input-border: #3a3b40;
		--lb-focus: rgba(201, 169, 106, .3); --lb-danger: #e39a8c; --lb-success: #93c79e; --lb-warning: #e2b866;
		--lb-shadow: 0 10px 30px rgba(0, 0, 0, .4); --lb-card: #17181b; --lb-card-2: #1e1f23; --lb-card-border: #2a2b30; color-scheme: dark;
	}
}

:root[data-theme="dark"] {
	--lb-bg: #0f1012;
	--lb-surface: #17181b;
	--lb-surface-2: #202125;
	--lb-text: #ece9e3;
	--lb-body: #c9c7c1;
	--lb-muted: #a3a29d;
	--lb-rule: #26272b;
	--lb-rule-strong: #3a3b40;
	--lb-accent: #c9a96a;
	--lb-accent-hover: #dcc08a;
	--lb-on-accent: #0f1012;
	--lb-btn-border: #5a5b60;
	--lb-input-bg: #141518;
	--lb-input-border: #3a3b40;
	--lb-focus: rgba(201, 169, 106, .3);
	--lb-danger: #e39a8c;
	--lb-success: #93c79e;
	--lb-warning: #e2b866;
	--lb-shadow: 0 10px 30px rgba(0, 0, 0, .4);
	--lb-card: #17181b;
	--lb-card-2: #1e1f23;
	--lb-card-border: #2a2b30;
	color-scheme: dark;
}

/* ---------- Grundlagen ---------- */
html, body {
	background-color: var(--lb-bg);
}
body {
	font-family: var(--lb-font);
	color: var(--lb-text);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
button, input, select, textarea { font-family: var(--lb-font); color: var(--lb-text); }
input, select { font-family: 'LineAwesome', 'Manrope', system-ui, sans-serif; }
::placeholder { opacity: 1; color: var(--lb-muted); font-family: var(--lb-font); }
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
	font-family: var(--lb-font);
	color: var(--lb-text);
	font-weight: 400;
	letter-spacing: -0.01em;
}
h1, .h1 { font-weight: 300; letter-spacing: -0.02em; }
p { color: inherit; }
a { color: var(--lb-text); }
a:hover, a:focus { color: var(--lb-accent); }
::selection { background: var(--lb-accent); color: var(--lb-on-accent); }
:focus-visible { outline: 2px solid var(--lb-accent); outline-offset: 2px; }
hr { border-top-color: var(--lb-rule); }
strong, b { font-weight: 600; }
small, .small { color: inherit; }
img { max-width: 100%; }

/* Bootstrap-Hilfsklassen an die Farben anbinden (Vorlagen nutzen sie überall) */
.text-dark, .text-body, .text-black { color: var(--lb-text) !important; }
.text-muted, .text-secondary, .text-black-50 { color: var(--lb-muted) !important; }
.bg-light, .bg-white, .bg-light-blue { background-color: var(--lb-surface) !important; color: var(--lb-text); }
.border, .border-top, .border-bottom, .border-left, .border-right { border-color: var(--lb-rule) !important; }
.text-green, .text-success { color: var(--lb-success) !important; }
.text-danger { color: var(--lb-danger) !important; }
.text-warning { color: var(--lb-warning) !important; }
.text-primary { color: var(--lb-accent) !important; }
.preloader { background-color: var(--lb-bg); }

/* Etikett im Stil des Logos */
.lb-eyebrow {
	font-family: var(--lb-font-label);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--lb-accent);
}

/* ---------- Buttons ---------- */
.btn {
	border-radius: 0;
	font-weight: 500;
	letter-spacing: .01em;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.btn:focus, .btn.focus { box-shadow: 0 0 0 3px var(--lb-focus); }
.btn-primary, .btn-dark, .btn-blocks.btn-primary {
	background-color: var(--lb-accent);
	border-color: var(--lb-accent);
	color: var(--lb-on-accent);
}
.btn-primary:hover, .btn-dark:hover, .btn-primary:focus, .btn-dark:focus,
.btn-primary:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled):active {
	background-color: var(--lb-accent-hover);
	border-color: var(--lb-accent-hover);
	color: var(--lb-on-accent);
}
.btn-outline-dark, .btn-outline-secondary, .btn-outline-primary, .btn-light, .btn-secondary {
	background-color: transparent;
	border-color: var(--lb-btn-border);
	color: var(--lb-text);
}
.btn-outline-dark:hover, .btn-outline-secondary:hover, .btn-outline-primary:hover, .btn-light:hover, .btn-secondary:hover,
.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled):active {
	background-color: var(--lb-surface-2);
	border-color: var(--lb-text);
	color: var(--lb-text);
}
.btn-outline-dark.disabled, .btn-outline-dark:disabled { color: var(--lb-muted); border-color: var(--lb-rule-strong); }
.btn-link { color: var(--lb-accent); }
.btn-link:hover { color: var(--lb-accent-hover); }
.btn.text-dark:hover { color: var(--lb-accent) !important; }

/* ---------- Formulare ---------- */
.form-control, .custom-select, select.form-control, textarea.form-control {
	background-color: var(--lb-input-bg);
	border: 1px solid var(--lb-input-border);
	border-radius: 0;
	color: var(--lb-text);
}
.form-control:focus, .custom-select:focus {
	background-color: var(--lb-input-bg);
	border-color: var(--lb-accent);
	box-shadow: 0 0 0 3px var(--lb-focus);
	color: var(--lb-text);
}
.form-control::placeholder { color: var(--lb-muted); opacity: 1; }
.form-control:disabled, .form-control[readonly] { background-color: var(--lb-surface); color: var(--lb-muted); }
.input-group-text { background-color: var(--lb-surface); border-color: var(--lb-input-border); border-radius: 0; color: var(--lb-muted); }
.custom-control-label::before { background-color: var(--lb-input-bg); border-color: var(--lb-input-border); }
.custom-control-input:checked ~ .custom-control-label::before { background-color: var(--lb-accent); border-color: var(--lb-accent); }
label { color: var(--lb-text); }
.form-text { color: var(--lb-muted); }

/* Select2 (Ortsauswahl) */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
	background-color: var(--lb-input-bg);
	border: 1px solid var(--lb-input-border);
	border-radius: 0;
}
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--lb-text); }
.select2-container--default .select2-selection--single .select2-selection__placeholder { color: var(--lb-muted); }
.select2-dropdown { background-color: var(--lb-surface); border-color: var(--lb-rule-strong); border-radius: 0; color: var(--lb-text); }
.select2-container--default .select2-search--dropdown .select2-search__field { background: var(--lb-input-bg); border-color: var(--lb-input-border); color: var(--lb-text); }
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { background-color: var(--lb-surface-2); color: var(--lb-text); }
.select2-container--default .select2-results__option[aria-selected=true] { background-color: var(--lb-surface-2); }
.select2-results__option { color: var(--lb-text); }

/* ---------- Komponenten ---------- */
.card { background-color: var(--lb-surface); border-color: var(--lb-rule); border-radius: 0; color: var(--lb-text); }
.card-header, .card-footer { background-color: transparent; border-color: var(--lb-rule); }
.card-img, .card-img-top { border-radius: 0; }
.list-group-item { background-color: transparent; border-color: var(--lb-rule); color: var(--lb-text); }
.list-group-item.active { background-color: var(--lb-surface-2); border-color: var(--lb-rule); color: var(--lb-text); }
.table { color: var(--lb-text); }
.table th, .table td, .table thead th { border-color: var(--lb-rule); }
.table-striped tbody tr:nth-of-type(odd) { background-color: var(--lb-surface); }
.table-hover tbody tr:hover { background-color: var(--lb-surface-2); color: var(--lb-text); }
.thead-light th { background-color: var(--lb-surface); color: var(--lb-text); border-color: var(--lb-rule); }
.dropdown-menu { background-color: var(--lb-surface); border: 1px solid var(--lb-rule-strong); border-radius: 0; box-shadow: var(--lb-shadow); color: var(--lb-text); }
.dropdown-item { color: var(--lb-text); }
.dropdown-item:hover, .dropdown-item:focus { background-color: var(--lb-surface-2); color: var(--lb-text); }
.dropdown-divider { border-top-color: var(--lb-rule); }
.modal-content { background-color: var(--lb-surface); border: 1px solid var(--lb-rule-strong); border-radius: 0; color: var(--lb-text); }
.modal-header, .modal-footer { border-color: var(--lb-rule); }
.close { color: var(--lb-text); text-shadow: none; opacity: .7; }
.close:hover { color: var(--lb-text); opacity: 1; }
.badge { border-radius: 0; font-weight: 500; }
.badge-light { background-color: var(--lb-surface-2); color: var(--lb-text); }
.nav-tabs { border-bottom-color: var(--lb-rule); }
.nav-tabs .nav-link { color: var(--lb-muted); border-radius: 0; }
.nav-tabs .nav-link:hover { border-color: var(--lb-rule); color: var(--lb-text); }
.nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link { background-color: var(--lb-bg); border-color: var(--lb-rule) var(--lb-rule) var(--lb-bg); color: var(--lb-text); }
.page-link { background-color: transparent; border-color: var(--lb-rule); color: var(--lb-text); }
.page-link:hover { background-color: var(--lb-surface-2); border-color: var(--lb-rule); color: var(--lb-text); }
.page-item.active .page-link { background-color: var(--lb-accent); border-color: var(--lb-accent); color: var(--lb-on-accent); }
.page-item.disabled .page-link { background-color: transparent; border-color: var(--lb-rule); color: var(--lb-muted); }
.toast { background-color: var(--lb-surface); border-color: var(--lb-rule); color: var(--lb-text); }
.toast-header { background-color: var(--lb-surface-2); color: var(--lb-text); }
.alert { border-radius: 0; }
.breadcrumb { background-color: transparent; }
details > summary { cursor: pointer; }
.splide__arrow { background: var(--lb-surface); opacity: .9; }
.splide__arrow svg { fill: var(--lb-text); }
.ekko-lightbox .modal-content { background: transparent; border: 0; }

/* Hinweise im Dunkelmodus ruhig statt grell */
:root[data-theme="dark"] .alert-success { background: rgba(147, 199, 158, .1); border-color: rgba(147, 199, 158, .3); color: var(--lb-text); }
:root[data-theme="dark"] .alert-danger { background: rgba(227, 154, 140, .1); border-color: rgba(227, 154, 140, .3); color: var(--lb-text); }
:root[data-theme="dark"] .alert-warning { background: rgba(226, 184, 102, .1); border-color: rgba(226, 184, 102, .3); color: var(--lb-text); }
:root[data-theme="dark"] .alert-info, :root[data-theme="dark"] .alert-secondary, :root[data-theme="dark"] .alert-light, :root[data-theme="dark"] .alert-primary { background: var(--lb-surface); border-color: var(--lb-rule-strong); color: var(--lb-text); }
:root[data-theme="dark"] .alert a { color: var(--lb-accent); }

/* ---------- Layout-Hilfen ---------- */
.lb-wrap { max-width: var(--lb-max); margin: 0 auto; padding-left: var(--lb-gutter); padding-right: var(--lb-gutter); }
.lb-section { padding-top: clamp(56px, 6vw, 96px); padding-bottom: clamp(56px, 6vw, 96px); }
.lb-section--surface { background-color: var(--lb-surface); }
.lb-section-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; margin-bottom: 32px; }
.lb-section-head h2 { margin: 0; font-size: clamp(26px, 2.3vw, 36px); font-weight: 300; }
.lb-link-accent { color: var(--lb-accent); font-weight: 500; font-size: 14px; text-decoration: none; }
.lb-link-accent:hover { color: var(--lb-accent-hover); text-decoration: none; }
.lb-sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Kopfzeile ---------- */
html body #header-nav.lb-header, .lb-header {
	position: sticky;
	top: 0;
	z-index: 1030;
	background-color: var(--lb-bg);
	border-bottom: 1px solid var(--lb-rule);
}
.lb-header__inner {
	max-width: var(--lb-max);
	margin: 0 auto;
	padding: 0 var(--lb-gutter);
	min-height: 80px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}
.lb-header__brand { display: inline-flex; align-items: center; flex-shrink: 0; }
.lb-header__brand img { height: 15px; width: auto; max-width: 60vw; display: block; }
@media (max-width: 991.98px) { .lb-header__brand img { height: 13px; } }
.lb-logo--white { display: none !important; }
:root[data-theme="dark"] .lb-header:not(.lb-header--overlay) .lb-logo--black { display: none !important; }
:root[data-theme="dark"] .lb-header:not(.lb-header--overlay) .lb-logo--white { display: block !important; }
.lb-header--overlay .lb-logo--black { display: none !important; }
.lb-header--overlay .lb-logo--white { display: block !important; }
.lb-header__panel { display: flex; align-items: center; gap: clamp(14px, 2vw, 28px); flex: 1; justify-content: flex-end; }
.lb-nav { display: flex; align-items: center; gap: clamp(14px, 2vw, 30px); margin: 0; padding: 0; list-style: none; }
.lb-nav > li > a, .lb-nav .lb-nav__btn {
	color: var(--lb-text);
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	white-space: nowrap;
}
.lb-nav > li > a:hover, .lb-nav .lb-nav__btn:hover { color: var(--lb-accent); }
.lb-header__tools { display: flex; align-items: center; gap: 10px; }
.lb-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--lb-rule-strong);
	background: transparent;
	color: var(--lb-text);
	cursor: pointer;
	padding: 0;
	transition: border-color .15s ease, color .15s ease;
}
.lb-icon-btn:hover { border-color: var(--lb-accent); color: var(--lb-accent); }
.lb-icon-btn svg { width: 18px; height: 18px; }
.lb-cur-btn { width: auto; padding: 0 12px; font-size: 13px; font-weight: 500; gap: 6px; }
.lb-theme-toggle .lb-ico-moon { display: none; }
:root[data-theme="light"] .lb-theme-toggle .lb-ico-sun { display: none; }
:root[data-theme="light"] .lb-theme-toggle .lb-ico-moon { display: block; }
.lb-cta {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 20px;
	border: 1px solid var(--lb-accent);
	color: var(--lb-accent);
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
}
.lb-cta:hover { background-color: var(--lb-accent); color: var(--lb-on-accent); text-decoration: none; }
.lb-header__search { display: flex; align-items: center; border: 1px solid var(--lb-rule-strong); height: 44px; }
.lb-header__search input { border: 0; background: transparent; color: var(--lb-text); font: inherit; font-size: 14px; padding: 0 12px; width: 180px; outline: none; }
.lb-header__search input::placeholder { color: var(--lb-muted); }
.lb-header__search button { border: 0; background: transparent; color: var(--lb-muted); width: 40px; height: 42px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.lb-header__search button:hover { color: var(--lb-accent); }
.lb-header .dropdown-menu { margin-top: 8px; min-width: 220px; }
.lb-menu-btn { display: none; }

/* über der Bildbühne: transparent, helle Schrift */
html body #header-nav.lb-header--overlay, .lb-header--overlay {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	background: transparent;
	border-bottom: 0;
}
.lb-header--overlay .lb-nav > li > a, .lb-header--overlay .lb-nav .lb-nav__btn, .lb-header--overlay .lb-icon-btn { color: #f2efe9; }
.lb-header--overlay .lb-icon-btn { border-color: rgba(242, 239, 233, .4); }
.lb-header--overlay .lb-icon-btn:hover, .lb-header--overlay .lb-nav > li > a:hover { color: #c9a96a; border-color: #c9a96a; }
.lb-header--overlay .lb-cta { border-color: #c9a96a; color: #c9a96a; }
.lb-header--overlay .lb-cta:hover { background-color: #c9a96a; color: #0f1012; }
.lb-header--overlay .lb-header__search { border-color: rgba(242, 239, 233, .4); }
.lb-header--overlay .lb-header__search input { color: #f2efe9; }
.lb-header--overlay .lb-header__search input::placeholder, .lb-header--overlay .lb-header__search button { color: rgba(242, 239, 233, .75); }

@media (max-width: 1399.98px) {
	.lb-header__search { display: none; }
}
@media (max-width: 991.98px) {
	.lb-menu-btn { display: inline-flex; }
	.lb-header__panel {
		display: none;
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		background-color: var(--lb-bg);
		border-top: 1px solid var(--lb-rule);
		border-bottom: 1px solid var(--lb-rule);
		box-shadow: var(--lb-shadow);
		padding: 8px var(--lb-gutter) 20px;
		max-height: calc(100vh - 76px);
		overflow-y: auto;
	}
	.lb-header.is-open .lb-header__panel { display: flex; }
	.lb-header--overlay .lb-header__panel { background-color: #0f1012; border-color: #26272b; }
	.lb-nav { flex-direction: column; align-items: stretch; gap: 0; }
	.lb-nav > li { border-bottom: 1px solid var(--lb-rule); }
	.lb-header--overlay .lb-nav > li { border-color: #26272b; }
	.lb-nav > li > a, .lb-nav .lb-nav__btn { width: 100%; min-height: 52px; font-size: 16px; }
	.lb-header__tools { padding-top: 16px; flex-wrap: wrap; }
	.lb-header__search { display: flex; margin-top: 16px; }
	.lb-header__search input { width: 100%; flex: 1; }
	.lb-header .dropdown-menu { position: static !important; transform: none !important; box-shadow: none; border: 0; margin: 0 0 8px; padding: 0 0 0 12px; background: transparent; float: none; }
	.lb-header--overlay .dropdown-item { color: #f2efe9; }
}

/* ---------- Bildbühne (Startseite, Inserat) ---------- */
.lb-stage {
	position: relative;
	min-height: min(clamp(520px, 54vw, 780px), 88vh);
	display: flex;
	flex-direction: column;
	color: #f2efe9;
	background-color: #0f1012;
	overflow: hidden;
}
.lb-stage__img, .lb-stage picture img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.lb-stage__scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15,16,18,.55) 0%, rgba(15,16,18,.05) 30%, rgba(15,16,18,.25) 60%, rgba(15,16,18,.92) 100%);
	pointer-events: none;
}
.lb-stage__content {
	position: relative;
	margin-top: auto;
	width: 100%;
	max-width: var(--lb-max);
	margin-left: auto;
	margin-right: auto;
	padding: 120px var(--lb-gutter) clamp(40px, 5vw, 72px);
	box-sizing: border-box;
}
.lb-stage h1 { color: #f2efe9; font-size: clamp(40px, 4.6vw, 76px); line-height: 1; font-weight: 300; letter-spacing: -0.02em; margin: 14px 0 0; max-width: 14ch; }
.lb-stage .lb-eyebrow { color: #c9a96a; }
.lb-stage__lead { color: rgba(242, 239, 233, .82); font-size: clamp(16px, 1.2vw, 19px); margin: 14px 0 0; max-width: 46ch; }

/* Suche auf der Bühne */
.lb-search {
	display: flex;
	flex-wrap: wrap;
	max-width: 780px;
	margin-top: 28px;
	background: rgba(15, 16, 18, .82);
	border: 1px solid #3a3b40;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
.lb-search__field { flex: 1 1 220px; display: flex; flex-direction: column; padding: 10px 20px 8px; min-width: 0; border-right: 1px solid #3a3b40; margin: 0; }
.lb-search__field:last-of-type { border-right: 0; }
.lb-search__label { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: #a3a29d; }
.lb-search input, .lb-search select {
	border: 0 !important;
	outline: none;
	background: transparent !important;
	font: inherit;
	font-size: 16px;
	padding: 4px 0 2px;
	color: #f2efe9 !important;
	box-shadow: none !important;
	height: auto;
	width: 100%;
	-webkit-appearance: none;
	appearance: none;
}
.lb-search input::placeholder { color: rgba(242, 239, 233, .62); }
.lb-search select option { color: #141518; }
.lb-search .select2-container { width: 100% !important; }
.lb-search .select2-container--default .select2-selection--single { background: transparent; border: 0; height: auto; min-height: 0; padding: 0 !important; font-size: 16px !important; line-height: 1.5; }
.lb-search .select2-container--default .select2-selection--single .select2-selection__rendered { color: #f2efe9; padding: 4px 0 2px !important; line-height: 1.6 !important; font-size: 16px !important; }
.lb-search .select2-container--default .select2-selection--single .select2-selection__placeholder { color: rgba(242, 239, 233, .6); }
.lb-search .select2-container--default .select2-selection--single .select2-selection__arrow { display: none; }
.lb-search__submit {
	min-height: 64px;
	padding: 0 32px;
	border: 0;
	background: #c9a96a;
	color: #0f1012;
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
}
.lb-search__submit:hover { background: #dcc08a; }
@media (max-width: 575.98px) {
	.lb-search__field { flex-basis: 100%; border-right: 0; border-bottom: 1px solid #3a3b40; }
	.lb-search__submit { width: 100%; min-height: 54px; }
}

/* ---------- Kacheln und Karten ---------- */
.lb-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; }
.lb-tile {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #17181b;
	color: #f2efe9;
	text-decoration: none;
}
.lb-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.lb-tile::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,16,18,0) 45%, rgba(15,16,18,.9) 100%); }
.lb-tile__label { position: absolute; left: 20px; right: 20px; bottom: 16px; z-index: 1; display: flex; justify-content: space-between; align-items: baseline; font-size: 18px; font-weight: 500; color: #f2efe9; }
.lb-tile__label span { color: #c9a96a; font-size: 14px; }
.lb-tile:hover { color: #f2efe9; text-decoration: none; }
.lb-tile:hover img { transform: scale(1.04); }
.lb-tiles--wide .lb-tile { aspect-ratio: 3 / 2; }

.lb-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
@media (max-width: 1199.98px) { .lb-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 860px) { .lb-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } }
@media (max-width: 539.98px) { .lb-cards { grid-template-columns: minmax(0, 1fr); } }
/* LB-CARD: eine Karte für alle Listen – heller Kontrast mit feinem Rahmen, kein Schatten (nur beim Darüberfahren) */
.lb-card { position: relative; display: flex; flex-direction: column; min-width: 0; height: 100%; background: var(--lb-card); border: 1px solid var(--lb-card-border); color: var(--lb-text); transition: box-shadow .25s ease, transform .25s ease; }
.lb-section--surface .lb-card { background: var(--lb-card-2); }
.lb-card:hover { box-shadow: 0 14px 36px rgba(20, 21, 24, .10); transform: translateY(-2px); }
:root[data-theme="dark"] .lb-card:hover { box-shadow: 0 14px 36px rgba(0, 0, 0, .45); }
.lb-card__media { position: relative; overflow: hidden; background: var(--lb-surface-2); aspect-ratio: 3 / 2; }
.lb-card__img { display: block; width: 100%; height: 100%; }
.lb-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.lb-card:hover .lb-card__media img { transform: scale(1.03); }
.lb-card__status { position: absolute; left: 14px; top: 14px; z-index: 1; padding: 5px 10px; background: rgba(15, 16, 18, .68); color: #f2efe9; font-size: 12px; font-weight: 500; line-height: 1.3; letter-spacing: .01em; pointer-events: none; }
.lb-card__status.is-sold { background: rgba(15, 16, 18, .85); }
.lb-card__fav { position: absolute; right: 12px; top: 12px; z-index: 2; width: 40px; height: 40px; border-radius: 50%; border: 0; padding: 0; background: rgba(15, 16, 18, .45); color: #f2efe9; font-size: 20px; line-height: 1; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: background-color .15s ease, color .15s ease; }
.lb-card__fav:hover, .lb-card__fav:focus-visible { background: rgba(15, 16, 18, .7); color: #c9a96a; }
.lb-card__fav .las { color: #c9a96a; }
.lb-card__body { flex: 1 1 auto; display: flex; flex-direction: column; gap: 10px; padding: 18px 20px 20px; }
.lb-card__meta { font-family: var(--lb-font-label); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--lb-muted); line-height: 1.5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lb-card__cat { position: relative; z-index: 1; color: var(--lb-accent); text-decoration: none; }
a.lb-card__cat:hover { color: var(--lb-accent-hover); text-decoration: underline; }
.lb-card__title { margin: 0; font-size: 17px; line-height: 1.4; font-weight: 400; min-height: 2.8em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.lb-card__title a { color: var(--lb-text); text-decoration: none; }
.lb-card__title a::after { content: ''; position: absolute; inset: 0; z-index: 0; }
.lb-card__title a:hover { color: var(--lb-accent); }
.lb-card__title a:focus-visible { outline: none; }
.lb-card:focus-within { box-shadow: 0 0 0 2px var(--lb-accent); }
.lb-card__facts { font-size: 13.5px; color: var(--lb-muted); line-height: 1.5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lb-card__foot { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--lb-rule); display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 4px 12px; }
.lb-card__price { font-size: 17px; font-weight: 500; color: var(--lb-accent); }
.lb-card__foot .lb-fx { margin: 0; font-size: 12.5px; color: var(--lb-muted); }
.lb-card__foot .lb-reduced, .lb-card__foot br { display: none; }
/* Ergebnis- und Kategorieseiten (mit Filterleiste links): Spalten nach verfügbarer Breite */
.lb-cards--list { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; margin-bottom: 40px; }
.lb-cards--list > .list-item { min-width: 0; }
.lb-cards__empty { grid-column: 1 / -1; padding: 24px 0; color: var(--lb-muted); }
.lb-cards--profile { width: 100%; padding: 0 15px; }

/* Vertrauen und Broker */
.lb-points { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 40px; }
.lb-point { border-top: 1px solid var(--lb-rule-strong); padding-top: 24px; }
.lb-point__num { font-family: var(--lb-font-label); font-size: 12px; color: var(--lb-accent); }
.lb-point h3 { font-size: 21px; font-weight: 500; margin: 10px 0 10px; }
.lb-point p { color: var(--lb-muted); margin: 0; line-height: 1.65; }
.lb-band { border-top: 1px solid var(--lb-rule); }
.lb-band__inner { display: flex; flex-wrap: wrap; gap: 32px; justify-content: space-between; align-items: center; }
.lb-band h2 { flex: 1 1 460px; margin: 0; font-size: clamp(26px, 2.3vw, 36px); font-weight: 300; max-width: 22ch; }
.lb-band__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.lb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 28px;
	font-weight: 600;
	font-size: 15px;
	text-decoration: none;
	border: 1px solid var(--lb-accent);
	background: var(--lb-accent);
	color: var(--lb-on-accent);
	cursor: pointer;
}
.lb-btn:hover { background: var(--lb-accent-hover); border-color: var(--lb-accent-hover); color: var(--lb-on-accent); text-decoration: none; }
.lb-btn--ghost { background: transparent; border-color: var(--lb-btn-border); color: var(--lb-text); font-weight: 500; }
.lb-btn--ghost:hover { background: var(--lb-surface-2); border-color: var(--lb-text); color: var(--lb-text); }
.lb-btn--block { width: 100%; }

/* ---------- Inseratseite ---------- */
.lb-stage--listing { min-height: min(clamp(460px, 48vw, 700px), 80vh); }
.lb-stage--listing h1 { font-size: clamp(26px, 3vw, 50px); line-height: 1.1; max-width: 24ch; }
.lb-stage--noimg { min-height: 0; background: var(--lb-surface); color: var(--lb-text); }
.lb-stage--noimg .lb-stage__content { padding-top: 48px; }
.lb-stage--noimg h1 { color: var(--lb-text); }
.lb-stage--noimg .lb-eyebrow { color: var(--lb-accent); }
.lb-stage__row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 20px; }
.lb-stage__tags { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.lb-tag { font-size: 12px; padding: 3px 10px; border: 1px solid #5a5b60; color: #c9cbcf; }
.lb-stage--noimg .lb-tag { border-color: var(--lb-btn-border); color: var(--lb-muted); }
.lb-stage__photos { min-height: 44px; padding: 0 20px; border: 1px solid #5a5b60; background: rgba(15,16,18,.6); color: #f2efe9; font: inherit; font-size: 14px; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; }
.lb-stage__photos:hover { border-color: #c9a96a; color: #c9a96a; }

.lb-facts { border-bottom: 1px solid var(--lb-rule); }
.lb-facts__grid { display: flex; flex-wrap: wrap; column-gap: clamp(32px, 4.5vw, 72px); }
.lb-fact { display: flex; flex-direction: column; gap: 4px; padding: 22px 0; min-width: 0; }
@media (max-width: 767.98px) {
	.lb-facts__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 16px; }
	.lb-fact { padding: 16px 0; }
}
@media (max-width: 359.98px) { .lb-facts__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.lb-fact__v { font-size: 22px; font-weight: 300; color: var(--lb-text); overflow-wrap: anywhere; line-height: 1.2; }
.lb-fact__k { font-family: var(--lb-font-label); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--lb-muted); }

.lb-listing-top { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding-top: 22px; font-size: 14px; color: var(--lb-muted); }
.lb-listing-top .breadcrumbs { margin: 0 !important; padding: 0; max-width: none; }
.lb-listing-top .breadcrumbs a { color: var(--lb-muted); }
.lb-listing-top .breadcrumbs a:hover { color: var(--lb-accent); }
.lb-listing-grid { display: flex; flex-wrap: wrap; gap: clamp(32px, 5vw, 72px); align-items: flex-start; padding-top: clamp(32px, 4vw, 56px); padding-bottom: clamp(40px, 5vw, 72px); }
.lb-listing-main { flex: 999 1 560px; min-width: 0; }
.lb-listing-aside { flex: 1 1 320px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
@media (min-width: 992px) {
	.lb-listing-aside { position: sticky; top: 96px; }
}
@media (max-width: 991.98px) {
	.lb-listing-aside { order: -1; }
}
.lb-h2 { font-size: 24px; font-weight: 300; margin: 0 0 18px; }
.lb-block { margin-bottom: 48px; }
.lb-lede { max-width: 72ch; font-size: 19px; line-height: 1.6; color: var(--lb-text); font-weight: 300; margin-bottom: 18px; }
.tpl-listing .description { color: var(--lb-body); font-size: 16.5px; line-height: 1.8; max-width: 72ch; }
.tpl-listing .description a { color: var(--lb-accent); }
.lb-panel { background: var(--lb-surface); border: 1px solid var(--lb-rule); padding: 28px; display: flex; flex-direction: column; gap: 16px; }
.lb-panel__label { font-family: var(--lb-font-label); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--lb-muted); }
.lb-panel .price, .lb-price-big { font-size: 30px; font-weight: 300; color: var(--lb-accent); line-height: 1.15; }
.lb-panel .lb-fx-convert { padding: 0; font-size: 14px; color: var(--lb-muted); text-decoration: underline; align-self: flex-start; }
.lb-panel .btn { min-height: 50px; display: flex; align-items: center; justify-content: center; gap: 8px; margin: 0 !important; }
.lb-panel__row { display: flex; gap: 10px; }
.lb-panel__row > * { flex: 1; }
.lb-panel .social { display: flex; justify-content: center; gap: 6px; padding: 0 !important; margin: 0 !important; }
.lb-panel .social a { width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; color: var(--lb-muted); font-size: 18px; }
.lb-panel .social a:hover { color: var(--lb-accent); }
.lb-panel .social .lb-x-icon svg { width: 15px; height: 15px; fill: currentColor; }
.lb-seller { display: flex; gap: 14px; align-items: center; }
.lb-seller img { width: 56px; height: 56px; object-fit: cover; border-radius: 50%; }
.lb-seller__name { font-size: 17px; font-weight: 500; color: var(--lb-text); }
.lb-verified-line { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--lb-accent); }
.lb-ref { font-size: 13px; color: var(--lb-muted); }
.lb-features { display: flex; flex-wrap: wrap; gap: 10px 28px; }
.lb-features span { display: inline-flex; align-items: center; gap: 8px; color: var(--lb-body); }
.lb-features i { color: var(--lb-accent); }
.lb-dl { margin: 0; }
.lb-dl__row { display: flex; justify-content: space-between; gap: 24px; padding: 13px 0; border-bottom: 1px solid var(--lb-rule); font-size: 16px; }
.lb-dl__row dt { color: var(--lb-muted); font-weight: 400; display: flex; align-items: center; gap: 8px; }
.lb-dl__row dd { margin: 0; text-align: right; color: var(--lb-text); overflow-wrap: anywhere; }
.lb-dl__row dd a { color: var(--lb-accent); }
.lb-gallery #primary-slider img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; }
.lb-gallery #secondary-slider img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; opacity: .7; }
.lb-gallery #secondary-slider .is-active img { opacity: 1; }
.lb-gallery #secondary-slider .splide__slide { border: 0 !important; }
.lb-gallery #secondary-slider .is-active { outline: 1px solid var(--lb-accent); outline-offset: -1px; }
#listing-map-wrapper { height: 340px; border: 1px solid var(--lb-rule); }
.tpl-listing .lb-listing-nav .lb-nav-back { color: var(--lb-muted); font-size: 14px; }
.lb-reduced-badge { background: transparent !important; border: 1px solid var(--lb-accent); color: var(--lb-accent) !important; border-radius: 0 !important; }
.tpl-listing .wa-float { border-radius: 50%; }

/* ---------- Fusszeile ---------- */
.lb-footer { border-top: 1px solid var(--lb-rule); background-color: var(--lb-bg); color: var(--lb-text); margin-top: 0; }
.lb-footer__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 36px; padding-top: 56px; font-size: 14px; }
.lb-footer__col { display: flex; flex-direction: column; gap: 10px; }
.lb-footer__head { font-family: var(--lb-font-label); font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--lb-muted); margin-bottom: 4px; }
.lb-footer a { color: var(--lb-text); text-decoration: none; }
.lb-footer a:hover { color: var(--lb-accent); }
.lb-footer__brand img { height: 13px; width: auto; }
.lb-footer__tagline { color: var(--lb-muted); }
.lb-footer__social { display: flex; gap: 12px; margin-top: 6px; }
.lb-footer__social a { color: var(--lb-muted); display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; border: 1px solid var(--lb-rule-strong); }
.lb-footer__social a:hover { color: var(--lb-accent); border-color: var(--lb-accent); }
.lb-footer__bottom { border-top: 1px solid var(--lb-rule); margin-top: 40px; padding: 22px 0 36px; font-size: 13px; color: var(--lb-muted); display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.lb-footer #language-selector select { background: var(--lb-input-bg); color: var(--lb-text); border-color: var(--lb-input-border); }

/* ---------- ältere Seiten: ruhiger und passend zu den Farben ---------- */
.breadcrumbs a { color: var(--lb-muted); }
.cat-name-figure { background: rgba(15,16,18,.78) !important; color: #c9a96a !important; border-radius: 0 !important; font-family: var(--lb-font-label); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.featured-badge { background: transparent !important; color: var(--lb-accent) !important; border: 1px solid var(--lb-accent); border-radius: 0 !important; }
.card-img-container img, img.rounded { border-radius: 0 !important; }
#header-nav-dummy { display: none !important; }

/* Bewegungen reduzieren, wenn gewünscht */
@media (prefers-reduced-motion: reduce) {
	.lb-tile img, .lb-card__media img { transition: none; }
	.lb-tile:hover img, .lb-card:hover .lb-card__media img { transform: none; }
}
:root[data-theme="dark"] .lb-footer .lb-logo--black { display: none !important; }
:root[data-theme="dark"] .lb-footer .lb-logo--white { display: block !important; }
@media (max-width: 575.98px) {
	.lb-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.lb-tile { aspect-ratio: 1 / 1; }
	.lb-tiles--wide .lb-tile { aspect-ratio: 1 / 1; }
	.lb-tile__label { left: 14px; right: 14px; bottom: 12px; font-size: 16px; }
	.lb-cards { gap: 36px; }
}

/* Ergebnislisten und Brotkrumen (ältere Vorlagen) */
.list-item { background: transparent; border-radius: 0; }
.breadcrumbs, html body .breadcrumbs { color: var(--lb-text); font-weight: 500; }
html body .breadcrumbs a { color: var(--lb-muted); font-weight: 400; }
html body .breadcrumbs a:hover { color: var(--lb-accent); }
html body.tpl-listing .breadcrumbs a:last-of-type { color: var(--lb-text); font-weight: 500; }
.custom-control-input:checked ~ .custom-control-label::before { color: var(--lb-on-accent); }
.lb-search .select2-container .select2-selection__placeholder, .lb-search .select2-container .select2-selection__rendered { color: rgba(242, 239, 233, .7) !important; }
.lb-search .select2-container .select2-selection__rendered[title] { color: #f2efe9 !important; }

/* v99.1: Ergebnis- und Kategorielisten ohne Kastenhintergrund (Text bündig mit dem Bild, wie die Karten der Startseite) */
.list-item .card { background: transparent; border: 0; }
.list-item .card-body { padding: 10px 0 0 !important; }
.list-item h5 { font-size: 17px; font-weight: 400; line-height: 1.4; margin-bottom: 4px !important; }
.list-item h5 a, .list-item .card-body > div > a { color: var(--lb-text); text-decoration: none; }
.list-item .latest-listings-address { color: var(--lb-muted); font-family: var(--lb-font-label); font-size: 10.5px !important; letter-spacing: .14em; text-transform: uppercase; margin: 4px 0 8px; }
.list-item .card-body small { color: var(--lb-muted); }
.list-item .price { color: var(--lb-accent); font-weight: 500; }
.list-item .a-img-wrap img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
.list-item .a-img-wrap .cat-name-figure { font-size: 9.5px; padding: 5px 8px !important; }

/* Bildbetrachter: Titel hell, ohne Trennlinie */
.ekko-lightbox .modal-header { border: 0; padding: 0 0 10px; }
.ekko-lightbox .modal-title, .ekko-lightbox .close { color: #f2efe9; opacity: .9; font-size: 16px; font-weight: 400; }
.ekko-lightbox .modal-body { padding: 0; }
.modal-backdrop.show { opacity: .85; }

/* v100: Proportionen für grosse Bildschirme, Tablet und Smartphone */
@media (max-width: 767.98px) {
	.lb-fact__v { font-size: 19px; }
	.lb-fact__k { font-size: 9px; letter-spacing: .12em; }
}
@media (max-width: 575.98px) {
	.lb-eyebrow, .lb-stage .lb-eyebrow { font-size: 10px; letter-spacing: .12em; }
	.lb-header__brand img { height: 12px; }
	.lb-stage h1 { font-size: 38px; }
	.lb-stage--listing h1 { font-size: 26px; }
}
/* Ergebnis- und Kategorieseiten: nicht über die ganze Breite eines grossen Bildschirms */


/* Ergebnislisten: Preis und Merken-Symbol auf einer Grundlinie, auch mit «Price reduced» */
.list-item .card-body .mt-auto { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; }
.list-item .card-body .mt-auto > .float-left, .list-item .card-body .mt-auto > .float-right { float: none !important; }
.list-item .card-body .mt-auto br { display: none; }
.list-item .card-body .mt-auto .lb-reduced { display: table; margin: 0 0 6px; }

/* v101: eigener Bildbetrachter (Vollbild, Bild so gross wie der Bildschirm erlaubt) */
.lb-viewer { position: fixed; inset: 0; z-index: 2000; background: #0b0b0d; color: #f2efe9; display: flex; flex-direction: column; }
.lb-viewer[hidden] { display: none; }
html.lb-viewer-open, html.lb-viewer-open body { overflow: hidden; }
.lb-viewer__bar { flex: none; display: flex; align-items: center; gap: 20px; padding: 14px clamp(16px, 3vw, 40px); min-height: 64px; }
.lb-viewer__cap { flex: 1 1 auto; min-width: 0; font-size: 15px; color: rgba(242, 239, 233, .86); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lb-viewer__count { flex: none; font-family: var(--lb-font-label); font-size: 12px; letter-spacing: .14em; color: rgba(242, 239, 233, .7); }
.lb-viewer__close { flex: none; width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 1px solid rgba(242, 239, 233, .3); color: #f2efe9; cursor: pointer; padding: 0; }
.lb-viewer__close svg { width: 22px; height: 22px; }
.lb-viewer__close:hover, .lb-viewer__close:focus-visible { border-color: #c9a96a; color: #c9a96a; }
.lb-viewer__stage { flex: 1 1 auto; min-height: 0; display: flex; align-items: center; justify-content: center; padding: 0 clamp(8px, 6vw, 96px) clamp(16px, 3vh, 40px); }
.lb-viewer__img { display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; opacity: 0; transition: opacity .25s ease; user-select: none; -webkit-user-drag: none; }
.lb-viewer__img.is-ready { opacity: 1; }
/* kleine Bilder (ältere Uploads) bis zur verfügbaren Fläche vergrössern */
@supports (object-fit: contain) {
	.lb-viewer__img { width: 100%; height: 100%; }
}
.lb-viewer__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 56px; height: 56px; display: inline-flex; align-items: center; justify-content: center; background: rgba(15, 16, 18, .55); border: 1px solid rgba(242, 239, 233, .25); color: #f2efe9; cursor: pointer; padding: 0; }
.lb-viewer__nav svg { width: 26px; height: 26px; }
.lb-viewer__nav:hover, .lb-viewer__nav:focus-visible { border-color: #c9a96a; color: #c9a96a; }
.lb-viewer__nav[hidden] { display: none; }
.lb-viewer__nav--prev { left: clamp(8px, 2vw, 28px); }
.lb-viewer__nav--next { right: clamp(8px, 2vw, 28px); }
@media (max-width: 767.98px) {
	.lb-viewer__stage { padding: 0 0 12px; }
	.lb-viewer__nav { width: 44px; height: 44px; top: auto; bottom: 18px; transform: none; }
	.lb-viewer__nav--prev { left: auto; right: 72px; }
	.lb-viewer__nav--next { right: 16px; }
	.lb-viewer__stage { padding-bottom: 76px; }
}

/* v102: Kopfzeile über die volle Breite (Logo ganz links, Menü ganz rechts), Inhalt bleibt zentriert */
.lb-header__inner { max-width: none; padding-left: clamp(16px, 2.8vw, 40px); padding-right: clamp(16px, 2.8vw, 40px); }
@media (max-width: 991.98px) {
	.lb-header__panel { padding-left: clamp(16px, 2.8vw, 40px); padding-right: clamp(16px, 2.8vw, 40px); }
	.lb-search-btn { align-self: flex-start; margin: 8px 0; }
}
.lb-header--overlay .lb-search-btn { color: #f2efe9; border-color: rgba(242, 239, 233, .4); }
/* Ort-Feld auf der Bühne: Platzhalter so gut lesbar wie das Suchfeld daneben */
.lb-search .select2-container .select2-selection__placeholder { opacity: 1 !important; color: rgba(242, 239, 233, .62) !important; }
@media (max-width: 575.98px) { .lb-cards { gap: 20px; } }

/* v103: Ergebnis- und Kategorieseiten mit Filterleiste oben (statt Seitenleiste) */
.lb-results { max-width: var(--lb-max); margin: 0 auto; padding: 0 var(--lb-gutter) 48px; box-sizing: border-box; }
.lb-results .container-fluid { padding-left: 0; padding-right: 0; }
.lb-results .breadcrumbs { margin-top: 28px !important; }
.lb-results .item-list { padding-top: 24px; }
.lb-fbar { position: sticky; top: 80px; z-index: 1020; background: var(--lb-bg); border-top: 1px solid var(--lb-rule); border-bottom: 1px solid var(--lb-rule); margin-top: 18px; }
.lb-fbar__inner { display: flex; justify-content: space-between; align-items: center; gap: 10px 12px; flex-wrap: wrap; padding: 12px 0; }
.lb-fbar__left, .lb-fbar__right { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.lb-fbtn { height: 42px; padding: 0 14px; border: 1px solid var(--lb-rule-strong); border-radius: 0; background: transparent; color: var(--lb-text); font: inherit; font-size: 14px; font-weight: 500; display: inline-flex; align-items: center; gap: 8px; cursor: pointer; white-space: nowrap; }
.lb-fbtn:hover, .lb-fbtn[aria-expanded="true"] { border-color: var(--lb-text); }
.lb-fbtn.is-active { border-color: var(--lb-accent); color: var(--lb-accent); }
.lb-fbtn__n { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px; background: var(--lb-accent); color: var(--lb-on-accent); font-size: 11px; font-weight: 600; }
.lb-fbtn--mobile { display: none; }
.lb-fseg { display: inline-flex; height: 42px; box-sizing: border-box; border: 1px solid var(--lb-rule-strong); }
.lb-fseg__btn { display: inline-flex; align-items: center; padding: 0 14px; color: var(--lb-text); font-size: 14px; font-weight: 500; text-decoration: none; }
.lb-fseg__btn + .lb-fseg__btn { border-left: 1px solid var(--lb-rule); }
.lb-fseg__btn:hover { color: var(--lb-accent); text-decoration: none; }
.lb-fseg__btn.is-active, .lb-fseg__btn.is-active:hover { background: var(--lb-accent); color: var(--lb-on-accent); }
.lb-fmenu { border-radius: 0; border: 1px solid var(--lb-rule-strong); box-shadow: 0 18px 48px rgba(0, 0, 0, .14); padding: 6px 0; min-width: 220px; margin-top: 6px; }
.lb-fmenu .dropdown-item { padding: 9px 18px; font-size: 14px; }
.lb-fprice { width: 340px; max-width: calc(100vw - 32px); padding: 18px; }
.lb-fprice__label { font-family: var(--lb-font-label); font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--lb-muted); margin-bottom: 10px; }
.lb-fprice__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.lb-fprice__row label { display: flex; flex-direction: column; gap: 4px; margin: 0; font-size: 12px; color: var(--lb-muted); }
.lb-fprice__row input { height: 40px; min-width: 0; padding: 0 10px; border: 1px solid var(--lb-input-border); border-radius: 0; background: var(--lb-input-bg); color: var(--lb-text); font: inherit; font-size: 14px; }
.lb-fprice__presets { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0; }
.lb-fchip-btn { padding: 6px 10px; border: 1px solid var(--lb-rule-strong); color: var(--lb-text); font-size: 12.5px; text-decoration: none; }
.lb-fchip-btn:hover, .lb-fchip-btn.is-active { border-color: var(--lb-accent); color: var(--lb-accent); text-decoration: none; }
.lb-fprice__foot { display: flex; justify-content: space-between; align-items: center; padding-top: 12px; border-top: 1px solid var(--lb-rule); }
.lb-flink { font-size: 13px; color: var(--lb-muted); text-decoration: underline; }
.lb-flink:hover { color: var(--lb-accent); }
.lb-fapply { min-height: 40px; padding: 0 18px; border: 0; border-radius: 0; background: var(--lb-accent); color: var(--lb-on-accent); font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.lb-fapply:hover { background: var(--lb-accent-hover); }
.lb-fapply--lg { min-height: 48px; padding: 0 26px; font-size: 15px; }
.lb-fchips { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding-top: 16px; }
.lb-fchip { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 12px; border: 1px solid var(--lb-rule-strong); background: var(--lb-surface); color: var(--lb-text); font-size: 13px; text-decoration: none; }
.lb-fchip:hover { border-color: var(--lb-accent); color: var(--lb-accent); text-decoration: none; }
.lb-fchip span { font-size: 15px; line-height: 1; color: var(--lb-muted); }
.lb-results #listings-map-wrapper { margin-top: 16px; }

/* Panel «All filters»: rechts, auf dem Smartphone als Blatt von unten */
.lb-fpanel { position: fixed; inset: 0; z-index: 1045; }
.lb-fpanel[hidden] { display: none; }
.lb-fpanel__backdrop { position: absolute; inset: 0; background: rgba(9, 9, 11, .5); opacity: 0; transition: opacity .2s ease; }
.lb-fpanel__box { position: absolute; top: 0; right: 0; bottom: 0; width: min(460px, 100%); display: flex; flex-direction: column; background: var(--lb-bg); color: var(--lb-text); border-left: 1px solid var(--lb-rule); box-shadow: -24px 0 60px rgba(0, 0, 0, .25); transform: translateX(100%); transition: transform .22s ease; }
.lb-fpanel.is-open .lb-fpanel__backdrop { opacity: 1; }
.lb-fpanel.is-open .lb-fpanel__box { transform: none; }
.lb-fpanel__head { flex: none; display: flex; justify-content: space-between; align-items: center; padding: 16px 24px; border-bottom: 1px solid var(--lb-rule); }
.lb-fpanel__title { font-size: 20px; font-weight: 500; }
.lb-fpanel__close { width: 44px; height: 44px; padding: 0; border: 1px solid var(--lb-rule-strong); background: transparent; color: var(--lb-text); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.lb-fpanel__close:hover { border-color: var(--lb-accent); color: var(--lb-accent); }
.lb-fpanel__body { flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; padding: 22px 24px 8px; }
.lb-fpanel__foot { flex: none; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 24px; border-top: 1px solid var(--lb-rule); }
html.lb-fpanel-open, html.lb-fpanel-open body { overflow: hidden; }
.lb-fpanel__body hr { display: none; }
.lb-fpanel__body p { margin: 0 0 10px; }
.lb-fpanel__body p strong { font-family: var(--lb-font-label); font-size: 10.5px; font-weight: 400; letter-spacing: .16em; text-transform: uppercase; color: var(--lb-muted); }
.lb-fpanel__body p strong i, .lb-fpanel__body p strong .las { display: none; }
.lb-fpanel__body p small { color: var(--lb-muted); }
.lb-fpanel__body #listings-sidebar-sub { margin-bottom: 26px !important; padding-bottom: 22px; border-bottom: 1px solid var(--lb-rule); }
.lb-fpanel__body #listings-sidebar-sub a { display: inline-block; padding: 5px 0; color: var(--lb-text); font-size: 15px; text-decoration: none; }
.lb-fpanel__body #listings-sidebar-sub a:hover { color: var(--lb-accent); }
.lb-fpanel__body #listings-sidebar-sub strong a { color: var(--lb-accent); font-weight: 600; }
.lb-fpanel__body #sidebar-filter > div, .lb-fpanel__body #sidebar-filter .mb-3 { margin-bottom: 22px !important; }
.lb-fpanel__body .custom-control { min-height: 30px; padding-top: 3px; }
.lb-fpanel__body .custom-control-label { font-size: 15px; }
.lb-fpanel__body .form-control { border-radius: 0; }

@media (max-width: 767.98px) {
	.lb-fbar__quick { display: none !important; }
	.lb-fbtn--mobile { display: inline-flex; flex: 1 1 auto; justify-content: center; }
	.lb-fbtn__long { display: none; }
	.lb-fbar__inner { flex-wrap: nowrap; }
	.lb-fbar__left { flex: 1 1 auto; }
	.lb-fbar__left .lb-fbtn--mobile { width: 100%; }
	.lb-fpanel__box { top: auto; left: 0; width: 100%; height: 88%; border-left: 0; border-radius: 14px 14px 0 0; transform: translateY(100%); }
	.lb-fpanel__box::before { content: ''; position: absolute; top: 8px; left: 50%; width: 40px; height: 4px; margin-left: -20px; border-radius: 2px; background: var(--lb-rule-strong); }
	.lb-fpanel__head { padding: 18px 16px 12px 20px; }
	.lb-fpanel__body { padding: 20px; }
	.lb-fpanel__foot { padding: 12px 16px calc(16px + env(safe-area-inset-bottom)); }
	.lb-fpanel__foot .lb-fapply--lg { flex: 1 1 auto; }
	.lb-fchips { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 2px; }
	.lb-fchip { flex: none; }
}
@media (prefers-reduced-motion: reduce) {
	.lb-fpanel__box, .lb-fpanel__backdrop { transition: none; }
}
.lb-results .lb-alert-box { margin-top: 16px; }
.lb-fpanel__body #select2-sidebar { margin: 0; display: block; }
.lb-fpanel__body #select2-sidebar .select2-container { width: 100% !important; }
.lb-fpanel__body #select2-sidebar .select2-selection { height: 44px; display: flex; align-items: center; border-radius: 0; }
.select2-container--open .select2-dropdown { z-index: 1060; }

/* v104: Inseratseite – Foto-Mosaik, «Read more», Ausstattung als Chips, Angaben zweispaltig, feste Leiste auf dem Smartphone */
.lb-mosaic { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: repeat(2, clamp(140px, 13vw, 200px)); gap: 8px; margin-bottom: 52px; }
.lb-mosaic__tile { position: relative; display: block; overflow: hidden; background: var(--lb-surface-2); }
.lb-mosaic__tile img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease, opacity .2s ease; }
.lb-mosaic__tile:hover img { transform: scale(1.03); }
.lb-mosaic__tile:focus-visible { outline: 2px solid var(--lb-accent); outline-offset: 2px; }
.lb-mosaic__tile:first-child { grid-column: span 2; grid-row: span 2; }
.lb-mosaic__tile--extra { display: none; }
.lb-mosaic__more { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(15, 16, 18, .55); color: #f2efe9; font-size: 16px; font-weight: 500; }
.lb-mosaic--n1 .lb-mosaic__tile:first-child { grid-column: 1 / -1; }
.lb-mosaic--n2 .lb-mosaic__tile { grid-column: span 2; grid-row: span 2; }
.lb-mosaic--n3 .lb-mosaic__tile:not(:first-child), .lb-mosaic--n4 .lb-mosaic__tile:nth-child(2) { grid-column: span 2; }
.lb-mosaic__hint { display: none; }
.lb-collapse.is-collapsed { max-height: 420px; overflow: hidden; -webkit-mask-image: linear-gradient(180deg, #000 72%, transparent); mask-image: linear-gradient(180deg, #000 72%, transparent); }
.lb-more-btn { margin-top: 10px; padding: 6px 0; border: 0; background: transparent; color: var(--lb-accent); font: inherit; font-size: 15px; font-weight: 500; cursor: pointer; }
.lb-more-btn:hover { color: var(--lb-accent-hover); text-decoration: underline; }
.lb-features { gap: 8px; }
.lb-features span { height: 36px; padding: 0 14px; border: 1px solid var(--lb-rule-strong); color: var(--lb-text); font-size: 14px; }
@media (min-width: 768px) {
	.lb-dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; }
}
.lb-panel__note { font-size: 13px; color: var(--lb-muted); text-align: center; }
.lb-seller__all { font-size: 14px; color: var(--lb-text); text-decoration: none; }
.lb-seller__all:hover { color: var(--lb-accent); }
.lb-more-seller .lb-section-head { margin-bottom: 28px; }
.lb-mbar { display: none; }

@media (max-width: 767.98px) {
	/* Fotos zum Wischen statt Mosaik */
	.lb-mosaic { display: flex; gap: 8px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; margin: 0 calc(-1 * var(--lb-gutter)) 8px; padding: 0 var(--lb-gutter); }
	.lb-mosaic::-webkit-scrollbar { display: none; }
	.lb-mosaic__tile, .lb-mosaic__tile--extra { display: block; flex: none; width: 82%; height: 220px; scroll-snap-align: start; }
	.lb-mosaic--n1 .lb-mosaic__tile { width: 100%; }
	.lb-mosaic__more { display: none; }
	.lb-mosaic__hint { display: block; margin: 0 0 40px; font-size: 13px; color: var(--lb-muted); }
	.lb-mosaic--n1 + .lb-mosaic__hint { display: none; }
}

@media (max-width: 991.98px) {
	/* feste Leiste unten: Preis und Kontakt immer erreichbar */
	.lb-mbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1025; display: flex; align-items: center; gap: 14px; padding: 12px var(--lb-gutter) calc(12px + env(safe-area-inset-bottom)); background: var(--lb-bg); border-top: 1px solid var(--lb-rule); box-shadow: 0 -10px 30px rgba(0, 0, 0, .08); }
	.lb-mbar__price { display: flex; flex-direction: column; min-width: 0; line-height: 1.15; }
	.lb-mbar__price .price { font-size: 19px; color: var(--lb-accent); white-space: nowrap; }
	.lb-mbar__price .lb-fx { font-size: 12px; color: var(--lb-muted); }
	.lb-mbar__price .lb-reduced, .lb-mbar__price br { display: none; }
	.lb-mbar__cta { flex: 1 1 auto; min-height: 50px; border: 0; background: var(--lb-accent); color: var(--lb-on-accent); font: inherit; font-size: 15.5px; font-weight: 600; cursor: pointer; }
	body.tpl-listing { padding-bottom: 84px; }
}
html.lb-viewer-open .lb-mbar { display: none; }
@media (max-width: 991.98px) {
	/* mit der festen Leiste unten: zuerst Fotos und Beschreibung, Preisbox und Anbieter danach */
	.lb-listing-aside { order: 0; }
}

/* v105: Menü «User» – eigene Farben und Abstände (unabhängig von der Navigation), rechtsbündig */
.lb-header .lb-umenu { min-width: 260px; padding: 6px 0; margin-top: 10px; background: var(--lb-bg); border: 1px solid var(--lb-rule-strong); box-shadow: 0 18px 48px rgba(0, 0, 0, .16); }
:root[data-theme="dark"] .lb-header .lb-umenu { background: #17181b; border-color: #3a3b40; }
.lb-umenu__head { display: flex; flex-direction: column; gap: 2px; padding: 12px 20px 12px; border-bottom: 1px solid var(--lb-rule); margin-bottom: 6px; }
.lb-umenu__label { font-family: var(--lb-font-label); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--lb-muted); }
.lb-umenu__name { font-size: 15px; font-weight: 500; color: var(--lb-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 260px; }
.lb-header .lb-umenu .dropdown-item { display: flex; align-items: center; min-height: 44px; padding: 0 20px; font-size: 15px; font-weight: 400; color: var(--lb-text); background: transparent; white-space: nowrap; }
.lb-header .lb-umenu .dropdown-item:hover, .lb-header .lb-umenu .dropdown-item:focus { background: var(--lb-surface); color: var(--lb-accent); }
.lb-header .lb-umenu .dropdown-divider { margin: 6px 0; border-top-color: var(--lb-rule); }
:root[data-theme="dark"] .lb-umenu__head { border-color: #26272b; }
:root[data-theme="dark"] .lb-header .lb-umenu .dropdown-item:hover { background: #202125; }
@media (max-width: 991.98px) {
	.lb-header .lb-umenu { min-width: 0; margin: 0 0 8px; padding: 0; border: 0; box-shadow: none; background: transparent !important; }
	.lb-umenu__head { padding: 6px 0 10px; }
	.lb-header .lb-umenu .dropdown-item { padding: 0 0 0 12px; }
}

/* v105: Anmelden, Registrieren, Passwort usw. – füllt den Bildschirm, Formular in der Mitte, auf grossen Bildschirmen mit Bild */
body.tpl-user-sign-in > .container.mt-5, body.tpl-user-register > .container.mt-5, body.tpl-user-forgot-password > .container.mt-5,
body.tpl-user-resend-confirmation > .container.mt-5, body.tpl-user-password-reset > .container.mt-5, body.tpl-user-register-confirm > .container.mt-5,
body.tpl-user-sign-out > .container.mt-5 {
	max-width: none; margin: 0 !important; padding: clamp(40px, 7vh, 88px) var(--lb-gutter);
	min-height: calc(100vh - 81px); min-height: calc(100svh - 81px); box-sizing: border-box;
	display: flex; align-items: center; justify-content: center;
}
body.tpl-user-sign-in > .container.mt-5 > .row, body.tpl-user-register > .container.mt-5 > .row, body.tpl-user-forgot-password > .container.mt-5 > .row,
body.tpl-user-resend-confirmation > .container.mt-5 > .row, body.tpl-user-password-reset > .container.mt-5 > .row, body.tpl-user-register-confirm > .container.mt-5 > .row {
	width: 100%; max-width: 460px; margin: 0;
}
body.tpl-user-register > .container.mt-5 > .row { max-width: 560px; }
:is(body.tpl-user-sign-in, body.tpl-user-register, body.tpl-user-forgot-password, body.tpl-user-resend-confirmation, body.tpl-user-password-reset, body.tpl-user-register-confirm, body.tpl-user-sign-out) > .container.mt-5 > .row > [class*="col-md-6"] { flex: 0 0 100%; max-width: 100%; margin: 0; padding: 0; }
body.tpl-user-sign-in .card, body.tpl-user-register .card, body.tpl-user-forgot-password .card, body.tpl-user-resend-confirmation .card,
body.tpl-user-password-reset .card, body.tpl-user-register-confirm .card {
	background: var(--lb-card); border: 1px solid var(--lb-card-border); border-radius: 0; box-shadow: 0 24px 60px rgba(20, 21, 24, .08);
}
:is(body.tpl-user-sign-in, body.tpl-user-register, body.tpl-user-forgot-password, body.tpl-user-resend-confirmation, body.tpl-user-password-reset, body.tpl-user-register-confirm, body.tpl-user-sign-out) .card > .card-header { background: transparent; border-bottom: 0; padding: 36px 36px 0; }
:is(body.tpl-user-sign-in, body.tpl-user-register, body.tpl-user-forgot-password, body.tpl-user-resend-confirmation, body.tpl-user-password-reset, body.tpl-user-register-confirm, body.tpl-user-sign-out) .card > .card-header::before { content: 'LuxuryBroker.com'; display: block; margin-bottom: 14px; font-family: var(--lb-font-label); font-size: 10.5px; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; color: var(--lb-accent); }
:is(body.tpl-user-sign-in, body.tpl-user-register, body.tpl-user-forgot-password, body.tpl-user-resend-confirmation, body.tpl-user-password-reset, body.tpl-user-register-confirm, body.tpl-user-sign-out) .card > .card-header h4, :is(body.tpl-user-sign-in, body.tpl-user-register, body.tpl-user-forgot-password, body.tpl-user-resend-confirmation, body.tpl-user-password-reset, body.tpl-user-register-confirm, body.tpl-user-sign-out) .card > .card-header h1 { margin: 0; font-size: 30px; font-weight: 300; letter-spacing: -0.01em; }
:is(body.tpl-user-sign-in, body.tpl-user-register, body.tpl-user-forgot-password, body.tpl-user-resend-confirmation, body.tpl-user-password-reset, body.tpl-user-register-confirm, body.tpl-user-sign-out) .card > .card-header h4 strong { font-weight: 300; }
:is(body.tpl-user-sign-in, body.tpl-user-register, body.tpl-user-forgot-password, body.tpl-user-resend-confirmation, body.tpl-user-password-reset, body.tpl-user-register-confirm, body.tpl-user-sign-out) .card > .card-body { padding: 26px 36px 32px; }
:is(body.tpl-user-sign-in, body.tpl-user-register, body.tpl-user-forgot-password, body.tpl-user-resend-confirmation, body.tpl-user-password-reset, body.tpl-user-register-confirm, body.tpl-user-sign-out) .card > .card-footer { background: transparent; border-top: 1px solid var(--lb-rule); padding: 18px 36px 22px; color: var(--lb-muted); }
:is(body.tpl-user-sign-in, body.tpl-user-register, body.tpl-user-forgot-password, body.tpl-user-resend-confirmation, body.tpl-user-password-reset, body.tpl-user-register-confirm, body.tpl-user-sign-out) .card > .card-footer a { color: var(--lb-accent); font-weight: 500; }
:is(body.tpl-user-sign-in, body.tpl-user-register, body.tpl-user-forgot-password, body.tpl-user-resend-confirmation, body.tpl-user-password-reset, body.tpl-user-register-confirm, body.tpl-user-sign-out) .card .form-control { height: 48px; font-size: 15px; }
:is(body.tpl-user-sign-in, body.tpl-user-register, body.tpl-user-forgot-password, body.tpl-user-resend-confirmation, body.tpl-user-password-reset, body.tpl-user-register-confirm, body.tpl-user-sign-out) .card .btn-primary.btn-block { min-height: 50px; font-size: 15px; font-weight: 600; margin-bottom: 14px; }
:is(body.tpl-user-sign-in, body.tpl-user-register, body.tpl-user-forgot-password, body.tpl-user-resend-confirmation, body.tpl-user-password-reset, body.tpl-user-register-confirm, body.tpl-user-sign-out) .card .form-group > a { font-size: 14px; color: var(--lb-muted); }
:is(body.tpl-user-sign-in, body.tpl-user-register, body.tpl-user-forgot-password, body.tpl-user-resend-confirmation, body.tpl-user-password-reset, body.tpl-user-register-confirm, body.tpl-user-sign-out) .card .form-group > a:hover { color: var(--lb-accent); }
@media (min-width: 1200px) {
	body.tpl-user-sign-in > .container.mt-5, body.tpl-user-register > .container.mt-5, body.tpl-user-forgot-password > .container.mt-5,
	body.tpl-user-password-reset > .container.mt-5 {
		display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding: 0; justify-items: center;
	}
	body.tpl-user-sign-in > .container.mt-5::before, body.tpl-user-register > .container.mt-5::before, body.tpl-user-forgot-password > .container.mt-5::before,
	body.tpl-user-password-reset > .container.mt-5::before {
		content: ''; align-self: stretch; justify-self: stretch;
		background: linear-gradient(180deg, rgba(15, 16, 18, .15), rgba(15, 16, 18, .55)), url('../../assets/imgs/hero.webp') center / cover no-repeat;
	}
	body.tpl-user-sign-in > .container.mt-5 > .row, body.tpl-user-register > .container.mt-5 > .row, body.tpl-user-forgot-password > .container.mt-5 > .row,
	body.tpl-user-password-reset > .container.mt-5 > .row { padding: 64px 0; }
}
@media (max-width: 575.98px) {
	:is(body.tpl-user-sign-in, body.tpl-user-register, body.tpl-user-forgot-password, body.tpl-user-resend-confirmation, body.tpl-user-password-reset, body.tpl-user-register-confirm, body.tpl-user-sign-out) .card > .card-header { padding: 28px 22px 0; }
	:is(body.tpl-user-sign-in, body.tpl-user-register, body.tpl-user-forgot-password, body.tpl-user-resend-confirmation, body.tpl-user-password-reset, body.tpl-user-register-confirm, body.tpl-user-sign-out) .card > .card-body { padding: 22px 22px 26px; }
	:is(body.tpl-user-sign-in, body.tpl-user-register, body.tpl-user-forgot-password, body.tpl-user-resend-confirmation, body.tpl-user-password-reset, body.tpl-user-register-confirm, body.tpl-user-sign-out) .card > .card-footer { padding: 16px 22px 20px; }
}

/* v107: Konto-Bereich im dunklen Modus (Umschalter jetzt auch nach dem Anmelden) – feste helle Farben einzelner Seiten angleichen */
:root[data-theme="dark"] .lb-qlive, :root[data-theme="dark"] .lb-calc { background: var(--lb-surface); border-color: var(--lb-rule-strong); color: var(--lb-text); }
:root[data-theme="dark"] .lb-qlive-bar, :root[data-theme="dark"] .lb-imp-bar { background: var(--lb-surface-2); }
:root[data-theme="dark"] .lb-qlive-tips li.ok, :root[data-theme="dark"] .lb-save { color: var(--lb-success); }
.lb-qlive-tips .pts, :root[data-theme="dark"] .lb-ms-label, :root[data-theme="dark"] .lb-kpi .l,
:root[data-theme="dark"] .lb-invoice .lb-inv-label, :root[data-theme="dark"] .lb-chart-x span, :root[data-theme="dark"] .lb-chart .n { color: var(--lb-muted); }
:root[data-theme="dark"] .lb-chart .e, :root[data-theme="dark"] .lb-legend-sq[style*="#323537"] { background: #8a8b8f !important; }
:root[data-theme="dark"] .lb-chart .v { background: var(--lb-accent); }
:root[data-theme="dark"] .lb-imp-bar > div { background: var(--lb-accent); }
:root[data-theme="dark"] .lb-billing .btn.active { background: var(--lb-accent); color: var(--lb-on-accent); }
:root[data-theme="dark"] .lb-calc .btn-outline-dark, :root[data-theme="dark"] .lb-calc h4, :root[data-theme="dark"] .lb-calc label, :root[data-theme="dark"] .lb-calc .lb-price, :root[data-theme="dark"] .lb-calc a,
:root[data-theme="dark"] .lb-qlive strong, :root[data-theme="dark"] .lb-qlive a, :root[data-theme="dark"] .lb-qlive .lb-qlive-score { color: var(--lb-text); }
:root[data-theme="dark"] .lb-calc .btn-outline-dark { border-color: var(--lb-btn-border); }
:root[data-theme="dark"] .lb-calc .btn-outline-dark.active, :root[data-theme="dark"] .lb-calc .btn-outline-dark:hover { background: var(--lb-accent); border-color: var(--lb-accent); color: var(--lb-on-accent); }
:root[data-theme="dark"] .lb-invoice { background: var(--lb-surface); border-color: var(--lb-rule-strong); color: var(--lb-text); }
:root[data-theme="dark"] .lb-invoice .lb-bank-box { background: var(--lb-surface-2); }
:root[data-theme="dark"] [style*="background:#f8f9fa"], :root[data-theme="dark"] [style*="background: #f8f9fa"], :root[data-theme="dark"] [style*="background:#fafaf7"] { background: var(--lb-surface) !important; color: var(--lb-text); border-color: var(--lb-rule-strong) !important; }
:root[data-theme="dark"] [style*="color:#9a6b00"] { color: var(--lb-warning) !important; }
@media print { :root[data-theme="dark"] .lb-invoice { background: #fff; color: #141518; } }

/* v108: Links mit .text-dark (z. B. Konto-Menü links) beim Darüberfahren sichtbar – Bootstrap setzte sonst fast Schwarz */
a.text-dark:hover, a.text-dark:focus { color: var(--lb-accent) !important; }
#lb-acc-menu .list-group-item { transition: background-color .15s ease; }
#lb-acc-menu .list-group-item:hover, #lb-acc-menu .list-group-item:focus-within { background-color: var(--lb-surface-2); }
#lb-acc-menu .list-group-item:hover a, #lb-acc-menu .list-group-item:focus-within a { color: var(--lb-accent) !important; text-decoration: none; }
.list-group-item-action:hover, .list-group-item-action:focus { background-color: var(--lb-surface-2); color: var(--lb-text); }
/* Karte (Leaflet): Bedienelemente und Quellenangabe immer dunkel auf hell */
.leaflet-container .leaflet-control-attribution a { color: #0b5f86; }
.leaflet-bar a, .leaflet-bar a:hover, .leaflet-bar a:focus { color: #141518 !important; background-color: #ffffff; }
.leaflet-bar a:hover { background-color: #f0eee9; }

/* v109: Admin-Bereich im dunklen Modus */
body[class^='tpl-admin'] table .btn-light, body[class*=' tpl-admin'] table .btn-light { background-color: var(--lb-surface); border-color: var(--lb-rule-strong); color: var(--lb-text); }
body[class^='tpl-admin'] table .btn-light:hover { background-color: var(--lb-surface-2); border-color: var(--lb-text); }
/* Logo-Vorschau in den Einstellungen: dunkles Logo auf hellem, helles auf dunklem Grund – in beiden Modi */
body.tpl-admin-settings img.rounded:not(.bg-dark) { background: #faf9f7; padding: 8px; }
body.tpl-admin-settings img.rounded.bg-dark { background: #141518 !important; padding: 8px; }
/* Texteditor (TinyMCE) bleibt bewusst hell wie ein Dokument, Rahmen passend */
:root[data-theme="dark"] .mce-tinymce { border-color: var(--lb-rule-strong) !important; }

/* v110: Menü «User» und das aufgeklappte Smartphone-Menü folgen immer dem gewählten Modus (auch über dem Startseitenbild) */
@media (max-width: 991.98px) {
	html body .lb-header--overlay .lb-header__panel { background-color: var(--lb-bg); border-color: var(--lb-rule); }
	html body .lb-header--overlay .lb-nav > li { border-color: var(--lb-rule); }
	html body .lb-header--overlay .lb-header__panel .lb-nav > li > a, html body .lb-header--overlay .lb-header__panel .lb-nav__btn,
	html body .lb-header--overlay .lb-header__panel .lb-icon-btn, html body .lb-header--overlay .lb-header__panel .dropdown-item { color: var(--lb-text); }
	html body .lb-header--overlay .lb-header__panel .lb-icon-btn { border-color: var(--lb-rule-strong); }
	html body .lb-header--overlay .lb-header__panel .lb-cta { border-color: var(--lb-accent); color: var(--lb-accent); }
	html body .lb-header--overlay .lb-header__panel .lb-header__search { border-color: var(--lb-rule-strong); }
	html body .lb-header--overlay .lb-header__panel .lb-header__search input { color: var(--lb-text); }
	html body .lb-header--overlay .lb-header__panel .lb-header__search input::placeholder, html body .lb-header--overlay .lb-header__panel .lb-header__search button { color: var(--lb-muted); }
	.lb-header .lb-header__panel .dropdown-item:hover { color: var(--lb-accent); background: var(--lb-surface); }
	.lb-search-btn { flex: none; width: 44px; height: 44px; }
}

/* ===== v112 LB-ADDR: Lage im Inserat (Adresse, Hinweis, Karte / Luftbild) ===== */
.lb-loc__addr { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 12px; font-size: 1.02rem; color: var(--lb-text); }
.lb-loc__addr svg { flex: 0 0 auto; margin-top: 3px; color: var(--lb-accent); }
.lb-loc__note { margin: 0 0 14px; font-size: .9rem; color: var(--lb-muted); }
.lb-loc__tag { display: inline-block; margin-right: 6px; padding: 2px 8px; border: 1px solid var(--lb-rule-strong); font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: var(--lb-text); }
.lb-loc__gate { margin: 0 0 16px; padding: 14px 16px; border: 1px solid var(--lb-rule); border-left: 3px solid var(--lb-accent); background: var(--lb-card, #fff); font-size: .92rem; color: var(--lb-body); }
.lb-loc__gate strong { color: var(--lb-text); }
.lb-loc__cap { margin: 8px 0 0; font-size: .82rem; color: var(--lb-muted); }
.lb-map { position: relative; }
.lb-map__layers { position: absolute; top: 12px; right: 12px; z-index: 500; display: flex; border: 1px solid var(--lb-rule-strong); background: var(--lb-card, #fff); box-shadow: 0 2px 10px rgba(20, 21, 24, .12); }
.lb-map__layer { appearance: none; border: 0; background: transparent; padding: 7px 14px; font: 500 .8rem/1 var(--lb-font); letter-spacing: .02em; color: var(--lb-muted); cursor: pointer; }
.lb-map__layer + .lb-map__layer { border-left: 1px solid var(--lb-rule); }
.lb-map__layer:hover { color: var(--lb-text); }
.lb-map__layer.is-active { background: var(--lb-text); color: var(--lb-bg); }
.lb-map__layer:focus-visible { outline: 2px solid var(--lb-accent); outline-offset: 1px; }
@media (max-width: 575.98px) { .lb-map__layers { top: 10px; right: 10px; } .lb-map__layer { padding: 7px 11px; } }
/* Auswahl im Formular (Erstellen / Bearbeiten) */
.lb-addr-opt .custom-control-label { cursor: pointer; }
.lb-addr-release[hidden] { display: none !important; }

/* ===== v115 LB-BUYERPROFILE: Käuferprofil und Bewertung der Anfragen ===== */
.lb-lead { display: inline-block; margin: 6px 6px 2px 0; padding: 2px 9px; border: 1px solid var(--lb-rule-strong); font-size: .74rem; font-weight: 600; letter-spacing: .03em; color: var(--lb-text); }
.lb-lead.is-strong { border-color: var(--lb-success); color: var(--lb-success); }
.lb-lead.is-good { border-color: var(--lb-accent); color: var(--lb-accent); }
.lb-lead.is-basic { color: var(--lb-muted); }
.lb-lead__why { display: inline-flex; flex-wrap: wrap; gap: 4px 10px; color: var(--lb-muted); }
.lb-lead__why .is-pos { color: var(--lb-body); }
.lb-lead__why .is-neg { color: var(--lb-muted); }
.lb-bp-meter__bar { height: 6px; background: var(--lb-surface); border: 1px solid var(--lb-rule); }
.lb-bp-meter__bar span { display: block; height: 100%; background: var(--lb-accent); }

/* ===== v116 LB-PRIVATE: private Inserate (Vorschau-Karte, Vorschau-Seite, Hinweis) ===== */
.lb-card__lock { display: flex !important; align-items: center; justify-content: center; background: linear-gradient(135deg, #1b1c20 0%, #2a2b30 55%, #1b1c20 100%); color: #c9a96a; }
.lb-card--private .lb-card__title a { color: var(--lb-text); }
.lb-card--private .lb-card__price { font-size: .9rem; color: var(--lb-muted); }
.lb-card__status.is-private { background: rgba(140, 109, 51, .92); color: #fff; }
.lb-tag--private { border-color: var(--lb-accent) !important; color: var(--lb-accent) !important; }
.lb-priv { max-width: 760px; margin: 0 auto; padding: clamp(48px, 9vw, 110px) var(--lb-gutter, 16px); }
.lb-priv__card { padding: clamp(28px, 5vw, 56px); border: 1px solid var(--lb-rule); background: var(--lb-card, #fff); text-align: center; }
.lb-priv__icon { display: inline-flex; width: 72px; height: 72px; align-items: center; justify-content: center; margin-bottom: 18px; border: 1px solid var(--lb-rule-strong); color: var(--lb-accent); }
.lb-priv__eyebrow { margin: 0 0 8px; font-family: var(--lb-font-label); font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: var(--lb-accent); }
.lb-priv__title { margin: 0 0 14px; font-size: clamp(1.5rem, 3.4vw, 2.1rem); font-weight: 400; color: var(--lb-text); }
.lb-priv__text { max-width: 560px; margin: 0 auto 26px; color: var(--lb-body); }
.lb-priv__cta { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.lb-priv__note { margin: 16px 0 0; font-size: .88rem; color: var(--lb-muted); }

/* ===== v117 LB-TEAM: Team-Konten ===== */
.lb-team-bar { position: relative; z-index: 1020; display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; justify-content: center; padding: 8px 16px; background: var(--lb-accent); color: var(--lb-on-accent); font-size: .85rem; }
.lb-team-bar button { border: 1px solid currentColor; background: transparent; color: inherit; padding: 2px 10px; font-size: .8rem; cursor: pointer; }
.lb-team-bar button:hover { background: rgba(255, 255, 255, .15); }
.lb-team-ctx { padding: 16px 18px; border: 1px solid var(--lb-rule); border-left: 3px solid var(--lb-accent); background: var(--lb-card, #fff); }
.lb-tm-assign { max-height: 260px; overflow: auto; padding: 8px 10px; border: 1px solid var(--lb-rule); }
/* LB-TEAM: Team im öffentlichen Profil */
.lb-pteam__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 22px; margin: 0 0 14px; padding: 0; list-style: none; }
.lb-pteam__item { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 18px 12px; border: 1px solid var(--lb-card-border, var(--lb-rule)); background: var(--lb-card, #fff); }
.lb-pteam__photo { width: 72px; height: 72px; margin-bottom: 10px; border-radius: 50%; object-fit: cover; }
.lb-pteam__ini { display: inline-flex; align-items: center; justify-content: center; background: var(--lb-surface); color: var(--lb-accent); font-family: var(--lb-font-label); font-size: .95rem; letter-spacing: .08em; }
.lb-pteam__name { font-weight: 500; color: var(--lb-text); }
.lb-pteam__title { font-size: .85rem; color: var(--lb-muted); }
.lb-tm-pub summary { list-style: none; cursor: pointer; }
.lb-tm-pub summary::-webkit-details-marker { display: none; }
.lb-tm-pub__form { position: absolute; z-index: 20; right: 0; width: min(320px, 90vw); margin-top: 6px; padding: 12px; border: 1px solid var(--lb-rule); background: var(--lb-card, #fff); box-shadow: var(--lb-shadow); }
.lb-tm-pub { position: relative; }
.tpl-admin-teams table .btn { width: auto !important; min-width: 0; height: auto; } /* LB-TEAM: Textknöpfe statt Symbolknöpfe */
/* LB-BACKUP: Verschlüsselung der Datenbank-Backups */
.lb-bkc-rec { padding: 16px 18px; border: 1px solid var(--lb-rule); border-left: 3px solid var(--lb-accent); background: var(--lb-card, #fff); }
.lb-bkc-rec__key { padding: 10px 12px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .95rem; letter-spacing: .04em; word-break: break-all; color: var(--lb-text); background: var(--lb-surface); border: 1px dashed var(--lb-rule); user-select: all; }
.lb-bkc__act > summary { list-style: none; }
.lb-bkc__act > summary::-webkit-details-marker { display: none; }
.lb-bkc__act[open] { flex-basis: 100%; }
.lb-bkc__act form { max-width: 360px; }
/* LB-ADDR / LB-TEAM: Freigaben und Aktivität */
.lb-aa-table td, .lb-tm-act td { vertical-align: middle; }
.tpl-user-address-access .lb-aa-table .btn { white-space: nowrap; }
@media (max-width: 575.98px) {
	.lb-aa-table thead, .lb-tm-act thead { display: none; }
	.lb-aa-table, .lb-aa-table tbody, .lb-aa-table tr, .lb-aa-table td,
	.lb-tm-act table, .lb-tm-act tbody, .lb-tm-act tr, .lb-tm-act td { display: block; width: 100%; }
	.lb-aa-table tr, .lb-tm-act tr { padding: 10px 0; border-bottom: 1px solid var(--lb-rule); }
	.lb-aa-table td, .lb-tm-act td { padding: 2px 0; border: 0; text-align: left !important; }
	.lb-aa-table td:last-child { padding-top: 8px; }
}
