/*
 * F.T. Immobilien – WP-ImmoMakler
 *
 * Diese Datei wird nach dem Theme-Stylesheet geladen und bündelt die
 * vorhandenen ImmoMakler-Anpassungen im gemeinsamen F.T.-Design.
 */

.immomakler,
.immomakler-archive,
.immomakler-single,
[class*="immomakler"] {
	--ft-immo-blue: var(--ft-blue, #0b2a63);
	--ft-immo-blue-dark: var(--ft-blue-dark, #071d45);
	--ft-immo-blue-bright: var(--ft-blue-bright, #0a4ecc);
	--ft-immo-yellow: var(--ft-yellow, #ffd400);
	--ft-immo-grey: var(--ft-grey, #f2f4f7);
	--ft-immo-border: var(--ft-grey-medium, #d9dee7);
	--ft-immo-text: var(--ft-text, #152033);
	--ft-immo-radius: var(--ft-radius, 14px);
	--ft-immo-shadow: var(--ft-shadow, 0 16px 40px rgb(11 42 99 / 10%));
	color: var(--ft-immo-text);
	font-family: "FT Open Sans", Arial, sans-serif;
	line-height: 1.55;
}

.immomakler :is(h1, h2, h3, h4, h5, h6),
.immomakler-archive :is(h1, h2, h3, h4, h5, h6),
.immomakler-single :is(h1, h2, h3, h4, h5, h6) {
	color: var(--ft-immo-blue);
	font-family: "FT Open Sans", Arial, sans-serif;
	text-transform: none;
}

.immomakler a,
.immomakler-archive a,
.immomakler-single a {
	color: var(--ft-immo-blue);
	text-decoration: none;
}

.immomakler a:hover,
.immomakler a:focus-visible,
.immomakler-archive a:hover,
.immomakler-archive a:focus-visible,
.immomakler-single a:hover,
.immomakler-single a:focus-visible {
	color: var(--ft-immo-blue-bright) !important;
}

/*
 * Archiv und Shortcodes: WP-ImmoMakler 5.x teilt die Treffer in mehrere
 * Bootstrap-Reihen. Das Child-Skin setzt diese Reihen spät auf display:inline
 * und die Karten auf 1000px. Die Reihen werden deshalb bewusst aufgeklappt
 * und alle Treffer in ein gemeinsames, responsives Grid gelegt.
 */
.immomakler-archive .properties {
	display: grid !important;
	width: 100% !important;
	grid-template-columns: repeat(var(--ft-immo-columns, 3), minmax(0, 1fr)) !important;
	gap: var(--ft-immo-gap, 28px) !important;
	margin: 0 !important;
}

.immomakler-archive .properties > .row,
.immomakler-archive .properties > .immomakler-boxed {
	display: contents !important;
}

/*
 * Bootstrap ergänzt jede .row um Clearfix-Pseudoelemente. Weil die äußeren
 * Trefferzeilen mit display:contents aufgelöst werden, würden diese Elemente
 * sonst selbst Grid-Plätze belegen und die dritte Karte in die nächste Zeile
 * drücken.
 */
.immomakler-archive .properties > .row::before,
.immomakler-archive .properties > .row::after,
.immomakler-archive .properties > .immomakler-boxed::before,
.immomakler-archive .properties > .immomakler-boxed::after {
	display: none !important;
	content: none !important;
}

.immomakler-archive .properties .property {
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}

.immomakler-archive .immomakler-boxed .property-container {
	display: flex !important;
	overflow: hidden;
	width: 100% !important;
	max-width: none !important;
	height: 100%;
	flex-direction: column;
	border: 1px solid var(--ft-immo-border);
	border-radius: var(--ft-immo-radius);
	background: #fff;
	box-shadow: var(--ft-immo-shadow);
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.immomakler-archive .immomakler-boxed .property-container:hover {
	box-shadow: 0 22px 50px rgb(11 42 99 / 15%);
	transform: translateY(-3px);
}

.immomakler-archive .property-container .thumbnail {
	overflow: hidden;
	margin: 0;
	border: 0;
	border-radius: 0;
	padding: 0;
	background: var(--ft-immo-grey);
}

.immomakler-archive .property-container .thumbnail > img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center;
}

.immomakler-archive .property-title {
	margin: 0;
	padding: 22px 22px 12px;
	color: var(--ft-immo-blue);
	font-size: 1.18rem;
	font-weight: 750;
	line-height: 1.3;
	letter-spacing: -0.015em;
	text-transform: none;
}

.immomakler-archive .property-title::first-letter {
	text-transform: uppercase;
}

.immomakler-archive .property-subtitle {
	margin: 0;
	padding-inline: 22px;
	color: var(--ft-immo-text);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.45;
}

.immomakler-archive .property-data {
	display: block !important;
	margin: 18px 22px 20px;
	padding: 13px 0;
	border-top: 1px solid var(--ft-immo-border);
	border-bottom: 1px solid var(--ft-immo-border);
	font-size: 0.92rem;
}

.immomakler-archive .property-data > .row {
	display: none !important;
	width: 100% !important;
	grid-template-columns: minmax(112px, 44%) minmax(0, 1fr) !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
	padding: 3px 0;
}

.immomakler-archive .property-data > :is(
	.data-anzahl_zimmer,
	.data-wohnflaeche,
	.data-kaltmiete,
	.data-kaufpreis
) {
	display: grid !important;
}

.immomakler-archive .property-data > .row::before,
.immomakler-archive .property-data > .row::after {
	display: none;
}

.immomakler-archive .property-data .dt {
	width: auto !important;
	min-width: 0 !important;
	padding-right: 10px !important;
	padding-left: 0 !important;
	color: #5d6878;
	font-size: 0.86rem;
	font-weight: 500;
	float: none !important;
	hyphens: none !important;
	overflow-wrap: normal !important;
	word-break: keep-all !important;
	white-space: nowrap;
}

.immomakler-archive .property-data .dd {
	width: auto !important;
	min-width: 0 !important;
	padding-right: 0 !important;
	padding-left: 0 !important;
	color: var(--ft-immo-blue);
	font-weight: 700;
	text-align: right;
	float: none !important;
	hyphens: none !important;
	overflow-wrap: normal !important;
	word-break: normal !important;
}

.immomakler-archive .property-actions {
	margin-top: auto;
	padding: 0 22px 22px;
}

.immomakler-carousel .property-subtitle {
	height: auto;
	margin: 0 0 15px;
	color: var(--ft-immo-blue-bright) !important;
	font-size: 1.35rem;
	font-weight: 650;
	line-height: 1.25;
}

/* Filter, Formulare und Panels. */
.immomakler :is(input, select, textarea),
.immomakler-archive :is(input, select, textarea) {
	border: 1px solid var(--ft-immo-border);
	border-radius: 8px;
	background: #fff;
	font-family: "FT Open Sans", Arial, sans-serif;
}

.immomakler :is(input, select, textarea):focus,
.immomakler-archive :is(input, select, textarea):focus {
	border-color: var(--ft-immo-blue-bright);
	box-shadow: 0 0 0 3px rgb(10 78 204 / 16%);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--ft-immo-blue-bright) 16%, transparent);
	outline: 0;
}

.immomakler .panel,
.immomakler-single .panel {
	overflow: hidden;
	margin-bottom: 32px;
	border: 1px solid var(--ft-immo-border);
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 8px 24px rgb(11 42 99 / 7%);
	hyphens: auto;
}

.immomakler .panel-default > .panel-heading,
.immomakler-single .panel-default > .panel-heading {
	border-bottom: 1px solid var(--ft-immo-border);
	background: var(--ft-immo-grey);
	color: var(--ft-immo-blue);
	font-family: "FT Open Sans", Arial, sans-serif;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.5;
}

.immomakler .btn,
.immomakler-archive .btn,
.immomakler-single .btn {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	margin: 4px;
	padding: 10px 18px;
	border: 0;
	border-radius: 999px;
	background: var(--ft-immo-blue);
	color: #fff !important;
	font-family: "FT Open Sans", Arial, sans-serif;
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0;
	text-align: center;
	white-space: normal;
}

.immomakler .btn-default {
	border: 1px solid #cbd9f3;
	border: 1px solid color-mix(in srgb, var(--ft-immo-blue-bright) 24%, white);
	background: #f3f7ff;
	background: color-mix(in srgb, var(--ft-immo-blue-bright) 8%, white);
	color: var(--ft-immo-blue-bright) !important;
}

.immomakler .btn:hover,
.immomakler .btn:focus-visible,
.immomakler .btn:active,
.immomakler-archive .btn:hover,
.immomakler-single .btn:hover {
	border-color: var(--ft-immo-yellow);
	background: var(--ft-immo-yellow);
	color: var(--ft-immo-blue-dark) !important;
}

.immomakler .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
	border-radius: 0;
}

.immomakler-single .ft-property-detail-title {
	display: block;
	max-width: 980px;
	margin: 0 auto 12px;
	color: var(--ft-immo-blue);
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 750;
	line-height: 1.15;
	letter-spacing: -0.025em;
	text-align: center;
	text-wrap: balance;
}

.immomakler-single .ft-property-detail-title::first-letter {
	text-transform: uppercase;
}

.immomakler-single h2.property-subtitle {
	display: block;
	margin-bottom: 44px;
	color: var(--ft-immo-blue);
	font-size: clamp(1.25rem, 2.2vw, 1.7rem);
	font-weight: 500;
	line-height: 1.3;
	text-align: center;
}

.immomakler-single .panel-default .dt,
.immomakler-single .property-features li {
	font-weight: 400;
}

.immomakler-single .property-contact .panel-body .contact-photo img {
	margin-top: 0;
	border-radius: 10px;
}

.immomakler-single > a:empty {
	display: none;
}

@media (max-width: 1023px) {
	.immomakler-archive .properties > .row,
	.immomakler-archive .row.immomakler-boxed {
		display: contents !important;
	}

	.immomakler-archive .properties {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 639px) {
	.immomakler-archive .properties > .row,
	.immomakler-archive .row.immomakler-boxed {
		display: contents !important;
	}

	.immomakler-archive .properties {
		grid-template-columns: 1fr !important;
		gap: 20px !important;
	}
}
