/* Immobilien-Angebot — Frontend-Styles (Tabelle + Fallback-Detailseite).
   Bewusst zurückhaltend: Farben/Typografie werden über die
   Elementor-Widget-Controls bzw. das Theme übersteuert. */

.iap-table-wrap {
	width: 100%;
}

/* Filterleiste */
.iap-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 12px 20px;
	margin-bottom: 16px;
}

.iap-filter-label {
	display: flex;
	flex-direction: column;
	gap: 4px;
	font-size: 0.875em;
}

.iap-filter {
	min-width: 130px;
	padding: 6px 10px;
	border: 1px solid #ccc;
	border-radius: 4px;
	background: #fff;
}

.iap-count {
	margin-left: auto;
	font-size: 0.875em;
	opacity: 0.7;
}

/* Tabelle */
.iap-table {
	width: 100%;
	border-collapse: collapse;
}

.iap-table th,
.iap-table td {
	padding: 10px 12px;
	text-align: left;
	border-bottom: 1px solid #e2e2e2;
}

.iap-table thead th {
	font-weight: 600;
	border-bottom-width: 2px;
}

.iap-table tbody tr:nth-child( even ) {
	background: rgba( 0, 0, 0, 0.02 );
}

.iap-row[data-href] {
	cursor: pointer;
}

.iap-row[data-href]:hover {
	background: rgba( 0, 0, 0, 0.05 );
}

.iap-row--inactive {
	opacity: 0.55;
}

.iap-row-link {
	text-decoration: none;
	color: inherit;
	font-weight: 600;
}

/* Status-Badges */
.iap-badge {
	display: inline-block;
	padding: 2px 12px;
	border-radius: 12px;
	font-size: 0.8em;
	line-height: 1.7;
	color: #fff;
	white-space: nowrap;
}

.iap-badge--frei {
	background: #4c7a34;
}

.iap-badge--reserviert {
	background: #c9942a;
}

.iap-badge--vermietet {
	background: #b04a3d;
}

.iap-empty {
	padding: 16px 0;
	opacity: 0.75;
}

/* Mobile: Scroll-Modus */
@media ( max-width: 767px ) {
	.iap-mobile-scroll .iap-table-scroller {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.iap-mobile-scroll .iap-table {
		min-width: 640px;
	}
}

/* Mobile: Karten-Modus (Standard) */
@media ( max-width: 767px ) {
	.iap-mobile-cards .iap-table thead {
		position: absolute;
		width: 1px;
		height: 1px;
		margin: -1px;
		padding: 0;
		overflow: hidden;
		clip: rect( 0 0 0 0 );
		border: 0;
	}

	.iap-mobile-cards .iap-table,
	.iap-mobile-cards .iap-table tbody,
	.iap-mobile-cards .iap-table tr,
	.iap-mobile-cards .iap-table td {
		display: block;
		width: 100%;
	}

	.iap-mobile-cards .iap-table tr {
		margin-bottom: 12px;
		border: 1px solid #e2e2e2;
		border-radius: 6px;
		padding: 6px 0;
		background: #fff;
	}

	.iap-mobile-cards .iap-table tbody tr:nth-child( even ) {
		background: #fff;
	}

	.iap-mobile-cards .iap-table td {
		display: flex;
		justify-content: space-between;
		align-items: baseline;
		gap: 16px;
		border-bottom: 0;
		padding: 6px 14px;
	}

	.iap-mobile-cards .iap-table td::before {
		content: attr( data-label );
		font-weight: 600;
		flex-shrink: 0;
	}
}

/* Fallback-Detailseite */
.iap-single {
	max-width: 720px;
}

.iap-single-header img {
	width: 100%;
	height: auto;
	border-radius: 4px;
	margin-bottom: 24px;
}

.iap-single-label {
	margin: 0 0 4px;
	font-weight: 600;
}

.iap-single-number {
	margin: 0 0 8px;
	font-size: 3em;
	line-height: 1.1;
	font-weight: 300;
}

.iap-single-address {
	margin: 0 0 24px;
	font-size: 1.25em;
}

.iap-single-table {
	width: 100%;
	max-width: 480px;
	border-collapse: collapse;
	margin-bottom: 24px;
}

.iap-single-table th,
.iap-single-table td {
	padding: 8px 4px;
	border-bottom: 1px solid #e2e2e2;
	text-align: left;
	font-weight: 400;
}

.iap-single-table th {
	width: 50%;
}

.iap-single-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 32px;
}

.iap-button {
	display: inline-block;
	padding: 10px 24px;
	border-radius: 4px;
	text-decoration: none;
	transition: opacity 0.2s ease;
}

.iap-button:hover {
	opacity: 0.85;
}

.iap-button--primary {
	background: #8a9a5b;
	color: #fff;
}

.iap-button--secondary {
	background: #c8bfb0;
	color: #fff;
}

.iap-single-grundriss img {
	max-width: 100%;
	height: auto;
}
