/*
 * Breite Bereiche der Detailseite (Bildraster bis 3 Bilder, Beschreibung,
 * Kontakt). Sie sitzen im inhaltsbreiten Block (Inhaltsbreite
 * des Themes) und brechen per Verschiebung um die halbe eigene Breite mittig
 * daraus aus -- auf die "breite" Breite des Themes (wideSize), höchstens
 * aber die Seitenbreite abzüglich des Seitenrands des Themes (Root-Padding).
 * Damit schließen sie bündig mit den breiten Bereichen des Themes ab (z. B.
 * der Header-Zeile).
 *
 * - 100vw zählt die Scrollbar mit; --digi-immo-scrollbar-width (gemessen
 *   vom Sondier-Skript, siehe DIGI_IMMO_LITE_Frontend) zieht sie wieder ab.
 * - border-box, sonst käme das eigene Innen-Padding der Kästen noch auf die
 *   Breite obendrauf.
 */
.digi-immo-gallery.alignwide,
.digi-immo-description.alignwide,
.digi-immo-contact-section.alignwide {
	box-sizing: border-box;
	width: calc( 100vw - var( --digi-immo-scrollbar-width, 0px ) );
	max-width: min(
		var( --wp--style--global--wide-size, 1200px ),
		calc( 100vw - var( --digi-immo-scrollbar-width, 0px ) - var( --wp--style--root--padding-left, 1.5em ) - var( --wp--style--root--padding-right, 1.5em ) )
	);
	margin-left: 50%;
	transform: translateX( -50% );
}

/*
 * Design-Tokens. Jedes Token liest zuerst die Variable des aktiven Themes und
 * fällt sonst auf einen eigenen Wert zurück -- so übernimmt das Plugin die
 * Gestaltung des DIGISTARTER-Themes exakt und bleibt unter jedem anderen
 * Theme trotzdem vollständig gestaltet.
 *
 * - Eckenradius: DIGISTARTER legt ihn in theme.json fest (custom.radius, je
 *   nach Stilvariante 0/8/24px) und nutzt ihn für Buttons UND Kästen
 *   gleichermaßen. Ohne diese Variable misst das Sondier-Skript
 *   (DIGI_IMMO_LITE_Frontend::register_radius_probe_script()) den Button-Radius des
 *   Themes und überschreibt --digi-immo-radius; Kästen bekommen dann das
 *   Doppelte davon.
 * - Abstand zwischen den Abschnitten: der Block-Abstand des Themes
 *   (--wp--style--block-gap, setzt WordPress für jedes Blocktheme aus
 *   theme.json styles.spacing.blockGap).
 */
:root {
	--digi-immo-radius: var( --wp--custom--radius, 4px );
	--digi-immo-radius-box: var( --wp--custom--radius, calc( var( --digi-immo-radius ) * 2 ) );
}
body {
	--digi-immo-section-gap: var( --wp--style--block-gap, 2em );
}

/*
 * Innenabstand von <main> in den Plugin-Templates (Detail- und Übersichts-
 * seite, siehe DIGI_IMMO_LITE_Frontend) -- wie in den Templates des DIGISTARTER-
 * Themes der größte Abstand der Theme-Skala oben und unten, sonst ein
 * eigener Wert. Ohne ihn klebt der Inhalt direkt am Header.
 */
main.digi-immo-main {
	padding-block: var( --wp--preset--spacing--l, clamp( 2rem, 6vw, 4rem ) );
}

/* ---------- Kopfbereich ---------- */

.digi-immo-header { margin-bottom: var( --digi-immo-section-gap ); }

.digi-immo-badges { display: flex; flex-wrap: wrap; gap: 0.4em; margin: 0 0 0.6em; }
/*
 * Grundform aller Label, gebaut wie die "Pills" des DIGISTARTER-Themes
 * (.pills a / .meta-pill: Größe "small", Gewicht 600, Zeilenhöhe 1.6).
 * Die Farben kommen aus dessen Farbrollen (--wp--custom--color--button-*),
 * die das Theme je Fläche (hell, dunkel, Akzent) umschaltet -- ein Label auf
 * einer dunklen oder Akzent-Sektion bleibt damit lesbar. Ohne diese Rollen
 * (anderes Theme) greifen die Farbpresets bzw. eigene Werte.
 *
 * Die Grundform trägt die Meta-Rolle wie .meta-pill (Preis, Verfügbarkeit);
 * Label, die eine Kategorie benennen, darunter die Button-Rolle wie .pills a.
 */
.digi-immo-badge {
	display: inline-block;
	background: var( --wp--custom--color--button-hover-background, var( --wp--preset--color--primary, #1e6b2e ) );
	color: var( --wp--custom--color--button-hover-text, var( --wp--preset--color--base, #fff ) );
	padding: 0.2em 0.8em;
	border-radius: var( --digi-immo-radius, 4px );
	font-size: var( --wp--preset--font-size--x-small, var( --wp--preset--font-size--small, 0.85em ) );
	font-weight: 600;
	line-height: 1.6;
}

/* Kategorisierende Label: Vermarktungsart und Objekttyp. */
.digi-immo-badge--marketing,
.digi-immo-badge--subtype,
.digi-immo-badge--type,
.digi-immo-archive-card__badges .digi-immo-badge {
	background: var( --wp--custom--color--button-background, var( --wp--preset--color--accent, #1e6b2e ) );
	color: var( --wp--custom--color--button-text, var( --wp--preset--color--base, #fff ) );
}

/* Semantisch die H1 der Seite, optisch eine Stufe kleiner: so groß wie
   eine H2 des Themes (x-large), sonst die H2-Größe des Browsers. */
.digi-immo-title {
	margin: 0 0 0.3em;
	font-size: var( --wp--preset--font-size--x-large, 1.5em );
}

/* Gedimmte Nebeninfo in der "caption"-Rolle des Themes (folgt wie die
   Label der jeweiligen Fläche), sonst 75 % der Textfarbe. */
.digi-immo-address {
	color: var( --wp--custom--color--caption, color-mix( in srgb, currentColor 75%, transparent ) );
	margin: 0.25em 0;
}

.digi-immo-price {
	font-size: var( --wp--preset--font-size--large, 1.4em );
	font-weight: 700;
	margin: 0.4em 0 0;
	display: flex;
	align-items: center;
	gap: 0.5em;
	flex-wrap: wrap;
}

/* Groesse und Gewicht kommen aus der Grundform, damit alle Label gleich hoch sind. */
.digi-immo-price__badge {
	vertical-align: middle;
}

/* ---------- Medien-Laufband (volle Seitenbreite) ---------- */

/* Volle Seitenbreite ohne Scrollbar -- auch beim Versatz nach links, sonst
   sitzt das Band um eine halbe Scrollbar-Breite zu weit links. */
.digi-immo-media-band.alignfull {
	width: calc( 100vw - var( --digi-immo-scrollbar-width, 0px ) );
	max-width: calc( 100vw - var( --digi-immo-scrollbar-width, 0px ) );
	margin-left: calc( 50% - ( 100vw - var( --digi-immo-scrollbar-width, 0px ) ) / 2 );
	margin-right: calc( 50% - ( 100vw - var( --digi-immo-scrollbar-width, 0px ) ) / 2 );
}
.digi-immo-media-band { margin: var( --digi-immo-section-gap ) 0; }
.digi-immo-media-band__track {
	display: flex;
	gap: 0.75em;
	overflow-x: auto;
	padding: 0 var( --wp--style--root--padding-right, 1.5em ) 0 var( --wp--style--root--padding-left, 1.5em );
	cursor: grab;
	scrollbar-width: none;
	-ms-overflow-style: none;
}
.digi-immo-media-band__track::-webkit-scrollbar { display: none; }
.digi-immo-media-band__track.is-dragging { cursor: grabbing; scroll-behavior: auto; }
.digi-immo-media-band__item {
	position: relative;
	flex: 0 0 auto;
	margin: 0;
	overflow: hidden;
	border-radius: var( --digi-immo-radius, 4px );
}
.digi-immo-media-band__item img {
	display: block;
	height: 460px;
	width: auto;
	pointer-events: none; /* Verhindert nativen Bild-Drag (Ghost-Image) beim Ziehen. */
	max-width: 85vw;
	object-fit: cover;
}
@media ( max-width: 600px ) {
	.digi-immo-media-band__item img { height: 280px; }
}

/* ---------- Bildraster für 1 bis 3 Bilder (statt Laufband) ---------- */
/*
 * Ein Laufband lohnt erst ab vier Bildern (siehe
 * digi_immo_lite_render_property_gallery_html()). Darunter ein festes Raster in
 * der breiten Breite des Themes:
 *
 * - 1 Bild:  ein großes Bild, 16:9, höchstens drei Viertel der Fensterhöhe.
 * - 2 Bilder: nebeneinander, je 4:3 -- auf schmalen Bildschirmen untereinander.
 * - 3 Bilder: das erste groß links (zwei Drittel), rechts die beiden anderen
 *   übereinander -- auf schmalen Bildschirmen das erste über die volle
 *   Breite, die beiden anderen nebeneinander darunter.
 *
 * Abstand zwischen den Bildern wie im Laufband.
 */
.digi-immo-gallery {
	display: grid;
	gap: 0.75em;
	margin-top: var( --digi-immo-section-gap );
	margin-bottom: var( --digi-immo-section-gap );
}
.digi-immo-gallery__item {
	position: relative;
	margin: 0;
	min-width: 0;
	min-height: 0;
	overflow: hidden;
	border-radius: var( --digi-immo-radius, 4px );
	background: color-mix( in srgb, currentColor 8%, transparent );
}
/* Das Bild füllt die Kachel nur aus (absolut positioniert) -- die Größe der
   Kachel kommt allein aus dem Raster bzw. ihrem Seitenverhältnis, nie aus
   dem Bild selbst. Sonst würde ein hohes Bild seine Rasterzeile strecken. */
.digi-immo-gallery__item img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* width: 100% ausdrücklich: Sonst würde die Höhenbegrenzung über das
   Seitenverhältnis auch die Breite schrumpfen (und das Bild säße nicht mehr
   bündig) -- so bleibt die volle Breite, nur die Höhe wird begrenzt. */
.digi-immo-gallery--1 .digi-immo-gallery__item {
	width: 100%;
	aspect-ratio: 16 / 9;
	max-height: 75vh;
}

.digi-immo-gallery--2 { grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); }
.digi-immo-gallery--2 .digi-immo-gallery__item { aspect-ratio: 4 / 3; }

/* Das ganze Raster hat ein festes Seitenverhältnis; die beiden Zeilen teilen
   sich seine Höhe, das große Bild reicht über beide. */
.digi-immo-gallery--3 {
	grid-template-columns: minmax( 0, 2fr ) minmax( 0, 1fr );
	grid-template-rows: repeat( 2, minmax( 0, 1fr ) );
	aspect-ratio: 16 / 9;
}
.digi-immo-gallery--3 .digi-immo-gallery__item:first-child {
	grid-row: 1 / span 2;
}

@media ( max-width: 599px ) {
	.digi-immo-gallery--2 { grid-template-columns: minmax( 0, 1fr ); }

	.digi-immo-gallery--3 {
		grid-template-columns: repeat( 2, minmax( 0, 1fr ) );
		grid-template-rows: none;
		aspect-ratio: auto;
	}
	.digi-immo-gallery--3 .digi-immo-gallery__item:first-child { grid-column: 1 / -1; grid-row: auto; }
	.digi-immo-gallery--3 .digi-immo-gallery__item { aspect-ratio: 4 / 3; }
}

/*
 * Beschriftung im Bild (Laufband und Raster): die Beschriftung des Anhangs
 * aus der Mediathek, unten links als Label -- zur Orientierung, welcher Raum
 * zu sehen ist. Gestaltet wie die Meta-Label der Detailseite
 * (.digi-immo-badge), nur größer, in Versalien und mit Abstand zum Bildrand.
 */
.digi-immo-media-caption {
	position: absolute;
	left: var( --wp--preset--spacing--s, 1em );
	bottom: var( --wp--preset--spacing--s, 1em );
	max-width: calc( 100% - 2 * var( --wp--preset--spacing--s, 1em ) );
	box-sizing: border-box;
	margin: 0;
	padding: 0.25em 0.75em;
	background: var( --wp--custom--color--button-hover-background, var( --wp--preset--color--primary, #1e1e1e ) );
	color: var( --wp--custom--color--button-hover-text, var( --wp--preset--color--base, #fff ) );
	border-radius: var( --digi-immo-radius, 4px );
	font-size: var( --wp--preset--font-size--small, 0.9em );
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
/* Auf dem Handy sind die kleinen Kacheln (3er-Raster) nur gut 130px breit --
   dichter an den Rand und kleiner, damit "BADEZIMMER" noch ganz hineinpasst. */
@media ( max-width: 599px ) {
	.digi-immo-media-caption {
		left: 0.5em;
		bottom: 0.5em;
		max-width: calc( 100% - 1em );
		padding: 0.2em 0.55em;
		font-size: 0.75em;
	}
}

/* ---------- Objektdetails, Energieausweis ---------- */

.digi-immo-object-details { margin-top: var( --digi-immo-section-gap ); margin-bottom: var( --digi-immo-section-gap ); }
.digi-immo-energy { margin: var( --digi-immo-section-gap ) 0; }
.digi-immo-object-details h2,
.digi-immo-energy h2 { margin-bottom: 0.6em; }

/* Volle Breite des Inhaltsbereichs. Festes Tabellenlayout plus Silbentrennung,
   damit lange Wörter ("Verbrauchsausweis") auf dem Handy umbrechen statt die
   Tabelle über ihren Bereich hinauszuschieben. */
.digi-immo-facts { border-collapse: collapse; margin: 0; width: 100%; table-layout: fixed; }
.digi-immo-facts th,
.digi-immo-facts td {
	text-align: left;
	padding: 0.45em 0.6em;
	border-bottom: 1px solid color-mix( in srgb, currentColor 15%, transparent );
	overflow-wrap: break-word;
	hyphens: auto;
}
.digi-immo-facts th { font-weight: 600; width: 45%; opacity: 0.75; }

.digi-immo-energy-scale { display: flex; gap: 0.3em; margin: 0 0 1.5em; }
.digi-immo-energy-scale__step {
	flex: 1;
	background: hsl( var( --digi-immo-energy-hue ) 70% 45% );
	color: #fff;
	text-align: center;
	padding: 0.5em 0.2em;
	font-weight: 700;
	font-size: 0.85em;
	border-radius: var( --digi-immo-radius, 4px );
	opacity: 0.35;
	transform: scale( 0.92 );
	transition: opacity 0.15s, transform 0.15s;
}
.digi-immo-energy-scale__step.is-active {
	opacity: 1;
	transform: scale( 1.08 );
	box-shadow: 0 2px 8px rgba( 0, 0, 0, 0.25 );
}

/* ---------- Beschreibung ---------- */

.digi-immo-description {
	margin-top: var( --digi-immo-section-gap );
	margin-bottom: var( --digi-immo-section-gap );
	padding: 1.5em;
	background: color-mix( in srgb, currentColor 4%, transparent );
	border-radius: var( --digi-immo-radius-box, 8px );
}

.digi-immo-excerpt-meta { display: block; margin-top: 0.5em; }
.digi-immo-excerpt-meta .digi-immo-price { display: block; font-size: 1.1em; }
.digi-immo-excerpt-meta .digi-immo-address,
.digi-immo-excerpt-meta .digi-immo-badge { display: inline-block; margin-right: 0.5em; }
.digi-immo-archive-header { margin-bottom: 1.5em; }
.digi-immo-archive-header h1 { margin-bottom: 0.2em; }
.digi-immo-archive-header__count { margin: 0; opacity: 0.7; }

/* ---------- Filterleiste ---------- */

.digi-immo-archive-filters {
	margin-bottom: 2em;
	padding: 1.25em 1.5em;
	background: color-mix( in srgb, currentColor 4%, transparent );
	border-radius: var( --digi-immo-radius-box, 8px );
}
.digi-immo-archive-filters__grid {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 160px, 1fr ) );
	gap: 0 1.25em;
}
.digi-immo-archive-filters__grid p { margin: 0 0 0.9em; }
.digi-immo-archive-filters__grid label { display: block; font-weight: 600; margin-bottom: 0.3em; font-size: 0.9em; }
.digi-immo-archive-filters__grid option.level-0 { font-weight: 700; }
.digi-immo-archive-filters__grid option.level-1 { color: color-mix( in srgb, currentColor 65%, transparent ); }

.digi-immo-archive-filters__actions { margin: 0.5em 0 0; display: flex; align-items: center; gap: 1em; }
.digi-immo-archive-filters__reset { opacity: 0.75; text-decoration: underline; }

.digi-immo-archive-filters input[type="text"],
.digi-immo-archive-filters select {
	width: 100%;
	box-sizing: border-box;
	padding: 0.6em 0.8em;
	border: 1px solid color-mix( in srgb, currentColor 25%, transparent );
	border-radius: var( --digi-immo-radius, 4px );
	background: var( --wp--preset--color--base, #fff );
	color: inherit;
	font-family: inherit;
	font-size: 0.95em;
}
.digi-immo-archive-filters input[type="checkbox"] {
	width: 1.1em;
	height: 1.1em;
}

/* ---------- Ergebnis-Kacheln ---------- */

.digi-immo-archive-grid {
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 280px, 1fr ) );
	/* Kachelabstand wie beim Beitragsraster des DIGISTARTER-Themes (.post-grid). */
	gap: var( --wp--preset--spacing--s, 1.5em );
	margin-bottom: var( --digi-immo-section-gap );
}

/*
 * Block/Shortcode "Neueste Immobilien": feste Spalten statt auto-fill -- auf
 * breiten Seiten würde auto-fill sonst eine vierte, leere Spalte freihalten.
 * Drei, zwei, eine Spalte an denselben Umbrüchen wie das Beitragsraster des
 * DIGISTARTER-Themes (.post-grid), damit beide nebeneinander gleich wirken.
 */
.digi-immo-latest .digi-immo-archive-grid {
	grid-template-columns: repeat( 3, minmax( 0, 1fr ) );
	margin-bottom: 0;
}
@media ( max-width: 1023px ) {
	.digi-immo-latest .digi-immo-archive-grid { grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); }
}
@media ( max-width: 599px ) {
	.digi-immo-latest .digi-immo-archive-grid { grid-template-columns: minmax( 0, 1fr ); }
}

.digi-immo-archive-card {
	/* flex-column statt block: die Karte füllt die volle Zeilenhöhe des
	   Grids (Standard-Grid-Verhalten "align-items: stretch"), Preis/
	   Kaltmiete sitzen dank .digi-immo-archive-card__price { margin-top: auto }
	   dadurch immer bündig unten -- unabhängig davon, wie viele Zeilen der
	   Objektname oben braucht. */
	display: flex;
	flex-direction: column;
	color: inherit;
	border-radius: var( --digi-immo-radius-box, 8px );
	overflow: hidden;
	background: color-mix( in srgb, currentColor 4%, transparent );
}
/* Die ganze Kachel ist ein einziger <a>-Link (siehe digi_immo_lite_render_archive_card_html()
   in helpers.php) -- ohne diese explizite Regel unterstreichen Themes beim
   Hovern sämtlichen Text darin (Titel, Objektart, Adresse, Preis), nicht nur
   den Objektnamen; DIGISTARTER etwa über a:where(:not(.wp-element-button)):hover.
   `!important`, weil Themes Link-Unterstreichungen teils über CSS-Variablen
   oder Pseudo-Klassen setzen, die sich sonst unzuverlässig überschreiben.
   Nur der Objektname soll wie ein Link aussehen (Unterstreichung beim
   Hover, siehe unten). */
.digi-immo-archive-card,
.digi-immo-archive-card * {
	text-decoration: none !important;
}
/* Unterstreichung wie bei Links im DIGISTARTER-Theme: 2px in dessen
   Hover-Akzentfarbe, etwas abgesetzt -- sonst in der Textfarbe. */
.digi-immo-archive-card:hover .digi-immo-archive-card__title {
	text-decoration: underline !important;
	text-decoration-color: var( --wp--custom--color--link-hover-accent, currentColor ) !important;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.2em;
}
.digi-immo-archive-card__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: color-mix( in srgb, currentColor 8%, transparent ); }
.digi-immo-archive-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.digi-immo-archive-card__media-placeholder { width: 100%; height: 100%; }
.digi-immo-archive-card__badges {
	position: absolute;
	top: 0.75em;
	left: 0.75em;
	right: 0.75em;
	margin: 0;
	z-index: 1;
}
.digi-immo-archive-card__body {
	padding: 1em 1.1em 1.2em;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.digi-immo-archive-card__title { margin: 0 0 0.3em; font-size: 1.1em; }
.digi-immo-archive-card__type { margin: 0 0 0.3em; opacity: 0.7; font-size: 0.8em; }
.digi-immo-archive-card__address { margin: 0 0 0.4em; opacity: 0.7; font-size: 0.9em; }
.digi-immo-archive-card__price {
	/* Immer bündig am unteren Kartenrand, egal wie viele Zeilen Titel/
	   Objektart/Adresse darüber brauchen -- siehe .digi-immo-archive-card. */
	margin: auto 0 0;
	padding-top: 0.6em;
	display: flex;
	align-items: center;
	gap: 0.4em;
	flex-wrap: wrap;
}
.digi-immo-archive-card__price-value { font-weight: 700; }

.digi-immo-archive-empty { padding: 2em 0; opacity: 0.75; }

/* ---------- Pagination ---------- */

.digi-immo-archive-pagination { margin: 1em 0 2em; }
.digi-immo-archive-pagination ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4em;
	list-style: none;
	margin: 0;
	padding: 0;
}
.digi-immo-archive-pagination a,
.digi-immo-archive-pagination span {
	display: inline-block;
	padding: 0.4em 0.8em;
	border-radius: var( --digi-immo-radius, 4px );
	text-decoration: none;
	color: inherit;
}
.digi-immo-archive-pagination a { background: color-mix( in srgb, currentColor 6%, transparent ); }
.digi-immo-archive-pagination a:hover { background: color-mix( in srgb, currentColor 12%, transparent ); }
.digi-immo-archive-pagination span.current {
	background: var( --wp--preset--color--primary, #1e6b2e );
	color: var( --wp--preset--color--base, #fff );
	font-weight: 600;
}

/* ---- Kontaktkarte, Anfrageformular ---- */
/*
 * Gemeinsamer Kasten am Ende der Immobilienseite
 * (digi_immo_lite_render_contact_section_html()).
 */

/* ---------- Kontakt (Formular + Ansprechpartner) ---------- */

.digi-immo-contact-section {
	margin-top: var( --digi-immo-section-gap );
	margin-bottom: var( --digi-immo-section-gap ) !important; /* NICHT die "margin"-Kurzform, siehe Basis-Objektdetails. */
	padding: 1.5em;
	background: color-mix( in srgb, currentColor 4%, transparent );
	border-radius: var( --digi-immo-radius-box, 8px );
}
.digi-immo-contact-section__grid {
	display: grid;
	grid-template-columns: minmax( 0, 2fr ) minmax( 0, 1fr );
	align-items: stretch;
}
.digi-immo-contact-section__form { padding-right: 1.5em; }
.digi-immo-contact-section__contact {
	display: flex;
	flex-direction: column;
	padding-left: 1.5em;
	border-left: 1px solid color-mix( in srgb, currentColor 15%, transparent );
}
/* Unten in der rechten Spalte, klein und zurückhaltend. */
.digi-immo-powered-by {
	margin: auto 0 0;
	padding-top: 1.5em;
	font-size: var( --wp--preset--font-size--x-small, 0.8em );
	opacity: 0.7;
}
.digi-immo-powered-by a { color: inherit; }
.digi-immo-contact-section .digi-immo-inquiry-form,
.digi-immo-contact-section .digi-immo-contact {
	padding: 0;
	background: none;
	border-radius: 0;
}

@media ( max-width: 780px ) {
	.digi-immo-contact-section__grid { grid-template-columns: minmax( 0, 1fr ); }
	.digi-immo-contact-section__form {
		padding-right: 0;
		order: 2;
	}
	.digi-immo-contact-section__contact {
		padding-left: 0;
		padding-bottom: 1.5em;
		margin-bottom: 1.5em;
		border-left: none;
		border-bottom: 1px solid color-mix( in srgb, currentColor 15%, transparent );
		order: 1;
	}
}

.digi-immo-contact {
	padding: 1.5em;
	background: color-mix( in srgb, currentColor 4%, transparent );
	border-radius: var( --digi-immo-radius-box, 8px );
}
.digi-immo-contact p { margin: 0.3em 0; }

.digi-immo-contact__profile { display: flex; align-items: center; gap: 0.8em; margin-bottom: 0.6em; }
/* Feste 72px, quadratisch zugeschnitten -- auch ein Profilbild aus der
   Mediathek (Größe "thumbnail", i. d. R. 150px) erscheint so rund und gleich groß. */
.digi-immo-contact__avatar { display: block; flex: 0 0 auto; width: 72px; height: 72px; border-radius: 50%; object-fit: cover; }
.digi-immo-contact .digi-immo-contact__profile p.digi-immo-contact__name { margin: 0; font-weight: 700; font-size: 1.05em; }

.digi-immo-inquiry-form {
	padding: 1.5em;
	background: color-mix( in srgb, currentColor 4%, transparent );
	border-radius: var( --digi-immo-radius-box, 8px );
}
.digi-immo-inquiry-form h2 { margin-top: 0; margin-bottom: 1.3em; }
.digi-immo-inquiry-form p { margin: 0 0 0.9em; }
.digi-immo-inquiry-form > *:last-child,
.digi-immo-inquiry-form form > *:last-child,
.digi-immo-inquiry-form .digi-immo-form-grid > *:last-child { margin-bottom: 0; }
.digi-immo-inquiry-form label { display: block; font-weight: 600; margin-bottom: 0.3em; }
.digi-immo-consent-label {
	font-weight: 400 !important;
	display: flex !important;
	gap: 0.5em;
	align-items: flex-start;
	font-size: var( --wp--preset--font-size--x-small, 0.75em );
}
.digi-immo-consent-label input {
	margin-top: 0.2em;
	flex-shrink: 0;
}
.digi-immo-consent-label__text { display: block; }
.digi-immo-inquiry-form input[type="text"],
.digi-immo-inquiry-form input[type="email"],
.digi-immo-inquiry-form input[type="tel"],
.digi-immo-inquiry-form textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 0.6em 0.8em;
	border: 1px solid color-mix( in srgb, currentColor 25%, transparent );
	border-radius: var( --digi-immo-radius, 4px );
	background: var( --wp--preset--color--base, #fff );
	color: inherit;
	font-family: inherit;
	font-size: 0.95em;
}
.digi-immo-inquiry-form input[type="checkbox"] {
	width: 1.1em;
	height: 1.1em;
}
.digi-immo-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.25em; }
.digi-immo-form-grid__full { grid-column: 1 / -1; }
@media ( max-width: 480px ) {
	.digi-immo-form-grid { grid-template-columns: minmax( 0, 1fr ); }
}
.digi-immo-hp-wrap { position: absolute !important; left: -9999px !important; top: -9999px; }
.digi-immo-submit { cursor: pointer; }

.digi-immo-notice { padding: 0.9em 1.1em; border-radius: var( --digi-immo-radius-box, 8px ); }
.digi-immo-notice-success { background: color-mix( in srgb, green 12%, transparent ); }
.digi-immo-notice-error { background: color-mix( in srgb, var( --wp--preset--color--error, crimson ) 12%, transparent ); }

/* ---------- Classic-Theme: Inhaltscontainer der Detailseite ---------- */
/*
 * Nur im Classic-Theme-Template (templates/single-digi_property.php), das
 * über DIGI_IMMO_LITE_Frontend::force_single_template() auch gegen Elementor-/
 * Divi-Vorlagen greift. Classic-Themes öffnen ihre Inhaltsspalte meist erst
 * im eigenen Einzelseiten-Template -- daher hier eine eigene, zentrierte
 * Breitenbegrenzung. Die .alignwide/.alignfull-Bereiche darin brechen wie
 * im Block-Theme daraus aus.
 */
.digi-immo-classic-main {
	max-width: min(
		var( --wp--style--global--content-size, 760px ),
		calc( 100vw - 3em )
	);
	margin: 3em auto;
}
