/* ===========================================================================
   design-refresh.css  –  Gebrauchtwagen-Seiten an das Website-Design angleichen
   ---------------------------------------------------------------------------
   Wird nach gw.css, gw2.css und mobile-fixes.css geladen.
   Arbeitsteilung: mobile-fixes.css repariert das Layout, diese Datei die Optik.

   Die Design-Sprache wurde an der Live-Website gemessen, nicht geraten:

     Akzentfarbe    #FFD500   (rgb(255,213,0)) - die Fahrzeugseiten nutzten
                              bisher #fecc00, einen sichtbar anderen Ton
     Trennlinien    #ececec   (Menue, Karten) - bisher #d0d0d0, deutlich zu
                              dunkel und dadurch "schwer"
     Flaechen       #ffffff   - die Website arbeitet mit Weissraum, nicht mit
                              grauen Kaesten (#eee)
     Ueberschriften Montserrat, h1 42px/400, zentriert
     Fliesstext     Open Sans 16px/1.6
     Ecken          border-radius: 0  - die Seite ist bewusst kantig
     Tiefe          keine Schatten
     Buttons        uppercase, 700, letter-spacing .03em, padding 15px,
                    transition .3s

   Deshalb bekommt hier NICHTS runde Ecken oder Schatten: "modern" heisst bei
   dieser Website flaechig, ruhig und typografisch klar.
   ========================================================================= */

:root {
	/* exakt die Werte des Themes (--fs-color-primary / --fs-color-secondary) */
	--ai-gelb:        #ffd500;
	--ai-gelb-kante:  #f2d600;   /* Kante der .aichlseder-box im Footer */
	--ai-gelb-dunkel: #e6c000;
	--ai-linie:       #ececec;   /* Flatsome-Trennlinie */
	--ai-linie-input: #dddddd;   /* Flatsome-Feldrahmen */
	--ai-linie-stark: #d8d8d8;
	--ai-text:        rgba(0, 0, 0, .8);   /* --fs-color-base / secondary */
	/* #7d7d7d erreicht auf Weiss nur 4.12:1 und verfehlt damit die 4.5:1
	   fuer Text unter 18.66px - und genau dafuer wird dieser Ton hier
	   verwendet (Beschriftungen, Zusatzangaben, 11-13px). #767676 ist der
	   hellste Grauton, der die Schwelle noch haelt (4.54:1). */
	--ai-text-grau:   #767676;
	--ai-flaeche:     #fafafa;
}


/* ---------------------------------------------------------------------------
   1. Detailseite: grauer Balken hinter dem Fahrzeugnamen
   ---------------------------------------------------------------------------
   gw.css gibt .gebrauchtwagen-detail-title einen Kasten in #eee mit
   1px-Rahmen. Auf der Uebersichtsseite steht der Seitentitel dagegen frei
   auf Weiss. Der Detailtitel wird jetzt genauso gesetzt - gleiche Schrift,
   gleiche Groesse, gleiche Ausrichtung.
   ------------------------------------------------------------------------- */
.gebrauchtwagen-detail-title {
	background-color: transparent !important;
	border: 0 !important;
	padding: 48px 25px 8px !important;
	font-weight: 400 !important;
}

/* Beide Fahrzeugseiten bekommen denselben Seitentitel - und zwar in der
   Schreibweise der Startseite: dort sind Sektionsueberschriften durchgaengig
   Montserrat 900, uppercase, letter-spacing .05em (gemessen an
   "AUTOHAUS AICHLSEDER" und "WIR BEWEGEN MENSCHEN"). Die Fahrzeugseiten
   wichen davon bisher ab (400, gemischte Schreibweise). */
.gebrauchtwagen-detail-title h1,
.gebrauchtwagen-detail-title h2,
.gebrauchtwagen-detail-title h1.uk-text-center,
.gebrauchtwagen-detail-title h2.uk-text-center,
.content-area h1[style*="center"],
.page-template-aichlseder-gebrauchtwagen-overview #content h1 {
	font-family: Montserrat, -apple-system, "Helvetica Neue", sans-serif;
	font-size: clamp(22px, 3.4vw, 34px) !important;
	font-weight: 900 !important;
	line-height: 1.18 !important;
	letter-spacing: .05em !important;
	text-transform: uppercase !important;
	color: var(--ai-text);
	text-align: center;
	margin: 0 0 8px !important;
	overflow-wrap: break-word;
	hyphens: auto;
}

/* Der Abschnitt darunter braucht keinen zusaetzlichen Deckel mehr. */
.gebrauchtwagen-detail-title + .uk-section,
.gebrauchtwagen-detail-title ~ .uk-section:first-of-type {
	padding-top: 0;
}


/* ---------------------------------------------------------------------------
   1b. Raster an die Startseite angleichen
   ---------------------------------------------------------------------------
   Die Startseite arbeitet mit .container { max-width: 1320px; padding: 0 15px }
   und Sektionen mit padding: 30px 0. Die Fahrzeugseiten laufen dagegen im
   UIkit-Raster mit max-width: 1200px - sie waren dadurch schmaler als jede
   andere Seite und sprangen beim Seitenwechsel sichtbar.
   ------------------------------------------------------------------------- */
@media screen and (min-width: 960px) {

	.page-template-gebrauchtwagen-view .uk-container,
	.page-template-aichlseder-gebrauchtwagen-overview .uk-container {
		max-width: 1320px;
		padding-left: 15px;
		padding-right: 15px;
	}

	.page-template-gebrauchtwagen-view .uk-section,
	.page-template-aichlseder-gebrauchtwagen-overview .uk-section {
		padding-top: 30px;
		padding-bottom: 30px;
	}
}


/* ---------------------------------------------------------------------------
   2. Graue Kaesten aufloesen: Fahrzeugsuche und Sortierleiste
   ------------------------------------------------------------------------- */
.suche,
.display {
	background-color: #fff !important;
	border: 1px solid var(--ai-linie) !important;
	border-radius: 0;
	padding: 20px !important;
	margin-bottom: 30px;
}

.suche h3,
.suche .filter-label,
.display .t-3 label {
	color: var(--ai-text);
}

/* Die Ueberschrift "Fahrzeugsuche" traegt die Akzentfarbe als feine Linie
   statt eines flaechigen Balkens. */
.suche h3 {
	font-family: Montserrat, -apple-system, sans-serif;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: .02em;
	padding-bottom: 12px;
	margin-bottom: 18px;
	border-bottom: 2px solid var(--ai-gelb);
}


/* ---------------------------------------------------------------------------
   3. Fahrzeugkarten
   ------------------------------------------------------------------------- */
.car {
	border: 1px solid var(--ai-linie) !important;
	background: #fff;
	transition: border-color .3s ease;
}

.car:hover {
	border-color: var(--ai-linie-stark) !important;
}

/* Der gelbe Trennbalken bleibt als Markenelement, aber im richtigen Ton
   und schmaler. */
.car_img {
	border-right-color: var(--ai-gelb) !important;
	border-right-width: 4px !important;
}

.car_content h3 {
	font-family: Montserrat, -apple-system, sans-serif;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3 !important;
	letter-spacing: .01em;
	margin-bottom: 2px !important;
}

.car_content h3 a { color: var(--ai-text); }
.car_content h3 a:hover { color: var(--ai-gelb-dunkel); }

.car_content h6 {
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ai-text-grau);
}

.car_details td { border-color: var(--ai-linie) !important; }

td.tit,
td.datadesc {
	color: var(--ai-text-grau);
	font-size: 11px;
	letter-spacing: .06em;
	text-transform: uppercase;
}

td.preis,
.slider_carslider_preis {
	font-family: Montserrat, -apple-system, sans-serif;
	color: var(--ai-text) !important;
	font-weight: 700;
}


/* ---------------------------------------------------------------------------
   4. Detailseite: Datenblock und Ausstattung
   ------------------------------------------------------------------------- */
/* Die Website setzt Akzente ueber eine 6px-Kante links (.aichlseder-box im
   Footer), nicht ueber Rahmen. Die Fahrzeugseiten hatten den Balken rechts
   und zusaetzlich einen grauen Kasten drumherum. */
.data,
.ausstattung,
.verkauf_data {
	background: #fff;
	border: 0 !important;
	border-left: 6px solid var(--ai-gelb-kante) !important;
	padding: 4px 0 4px 20px !important;
	margin-bottom: 36px;
}

.data h3,
.techdata,
.ausstattung h3 {
	font-family: Montserrat, -apple-system, sans-serif;
	font-size: 19px !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	letter-spacing: .01em;
	padding-bottom: 12px;
	margin-bottom: 8px;
	border-bottom: 2px solid var(--ai-gelb) !important;
}

table.datatable tr.datarow,
table.datatable td,
table.ausstattungtable td {
	border-color: var(--ai-linie) !important;
}

.ausstattunglist li {
	line-height: 1.7;
}


/* ---------------------------------------------------------------------------
   5. Buttons im Stil des uebrigen Themes
   ---------------------------------------------------------------------------
   Flatsome: uppercase, 700, letter-spacing .03em, padding 15px, radius 0,
   transition .3s.
   ------------------------------------------------------------------------- */
/* Grundform aller Buttons - uebernommen von .button aus flatsome.css:
   uppercase, letter-spacing .03em, radius 0, min-height 2.5em, padding 0 1.2em,
   transition .3s. */
.drucken h6,
.suche input[type="submit"],
.verkauf_form input[type="submit"],
td.merken a,
td.gemerkt a {
	display: inline-block;
	font-family: Montserrat, -apple-system, sans-serif;
	font-size: 13px !important;
	font-weight: 700 !important;
	letter-spacing: .03em !important;
	text-transform: uppercase !important;
	line-height: 2.4em !important;
	min-height: 2.5em;
	padding: 0 1.2em !important;
	border-radius: 0 !important;
	text-align: center;
	cursor: pointer;
	transition: transform .3s, border .3s, background-color .3s, color .3s;
}

/* Hauptaktion "Suchen": gefuellt in der Markenfarbe.
   gw.css hatte hier weisse Schrift auf #fbc200 - ein Kontrastverhaeltnis von
   rund 1.7:1 und damit nicht lesbar. Schwarz auf Gelb erreicht 11:1. */
.suche input[type="submit"],
.verkauf_form input[type="submit"] {
	background-color: var(--ai-gelb) !important;
	color: #000 !important;
	border: 0 !important;
	width: auto !important;
	height: auto !important;
	font-size: 14px !important;
}

.suche input[type="submit"]:hover,
.verkauf_form input[type="submit"]:hover {
	background-color: #000 !important;
	color: #fff !important;
}

/* "Drucken" ist eine Nebenaktion und bekommt deshalb den Outline-Stil des
   "Mehr erfahren"-Buttons von der Startseite (2px Rahmen, transparent).
   Die Suche bleibt gefuellt, weil sie die Hauptaktion der Seite ist. */
.drucken h6 {
	background-color: transparent !important;
	color: var(--ai-text) !important;
	border: 2px solid rgba(0, 0, 0, .8) !important;
	padding: 10px 18px !important;
	text-transform: none !important;
	transition: transform .3s, border .3s, background-color .3s, color .3s;
}

.drucken h6:hover {
	background-color: var(--ai-text) !important;
	border-color: var(--ai-text) !important;
	color: #fff !important;
}


/* ---------------------------------------------------------------------------
   6. Formularfelder
   ------------------------------------------------------------------------- */
.suche select,
.suche input[type="text"],
#filters select,
.select select {
	border: 1px solid var(--ai-linie) !important;
	border-radius: 0 !important;
	background-color: #fff !important;
	color: var(--ai-text);
	transition: border-color .3s ease;
}

/* Fruehere Fassung setzte hier outline:0 und faerbte nur den Rahmen gelb -
   der Uebergang #ececec -> #ffd500 ergibt 1.20:1 und ist praktisch
   unsichtbar. Damit waren Selects per Tastatur nicht mehr auffindbar. */
.suche select:focus,
.suche input[type="text"]:focus,
.select select:focus {
	border-color: #1a1a1a !important;
	outline: revert;
}

.select::after,
#filters .select::after {
	background-color: var(--ai-gelb) !important;
	color: var(--ai-text) !important;
}


/* ---------------------------------------------------------------------------
   7. Empfehlungs-Slider
   ------------------------------------------------------------------------- */
.gebrauchtwagen-detail-slider {
	background-color: var(--ai-flaeche) !important;
	border: 0 !important;
	border-top: 1px solid var(--ai-linie) !important;
	padding: 48px 25px !important;
}

.carslider_titel {
	font-family: Montserrat, -apple-system, sans-serif;
	font-size: 28px;
	font-weight: 400;
	text-align: center;
	margin-bottom: 28px;
}

.slider_carslider .item {
	background: #fff;
	border: 1px solid var(--ai-linie);
	transition: border-color .3s ease;
}

.slider_carslider .item:hover { border-color: var(--ai-linie-stark); }

.slider_carslider_content {
	padding: 16px !important;
}

.slider_carslider_content h3 {
	font-family: Montserrat, -apple-system, sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.35;
}


/* ---------------------------------------------------------------------------
   8. Paginierung / Merkliste
   ------------------------------------------------------------------------- */
.left, .right, .count {
	background: #fff;
	border: 1px solid var(--ai-linie);
	transition: border-color .3s ease, background-color .3s ease;
}

/* Die vollstaendige Fassung dieser Regel steht in Abschnitt 42 - hier
   fehlte die Schriftfarbe, und die Flaeche allein machte den Text
   unlesbar. */


/* ---------------------------------------------------------------------------
   9. Merkliste
   ---------------------------------------------------------------------------
   Der Merken-Button war im Template nicht ausgegeben (siehe Changelog); die
   CSS-Klassen td.merken / td.gemerkt existierten aber bereits. Hier bekommen
   sie den Outline-Stil des Themes, der gemerkte Zustand die Markenfarbe.
   ------------------------------------------------------------------------- */
td.merken,
td.gemerkt {
	width: auto !important;
	text-align: left !important;
	padding-top: 6px;
}

td.merken a,
td.gemerkt a {
	text-decoration: none;
	border: 2px solid rgba(0, 0, 0, .8);
}

td.merken a {
	background: transparent;
	color: var(--ai-text);
}

td.merken a:hover {
	background: rgba(0, 0, 0, .8);
	color: #fff;
}

td.gemerkt a {
	background: var(--ai-gelb);
	border-color: var(--ai-gelb);
	color: #000;
}

td.gemerkt a:hover {
	background: #000;
	border-color: #000;
	color: #fff;
}

/* Zaehler neben "Merkliste" */


label.merkliste a {
	color: var(--ai-text);
	font-weight: 700;
	text-decoration: none;
}

label.merkliste a:hover { color: #000; text-decoration: underline; }


/* ---------------------------------------------------------------------------
   10. Gelbtoene vereinheitlichen
   ---------------------------------------------------------------------------
   Im Altbestand stehen drei verschiedene Gelbs nebeneinander: #fecc00,
   #fbc200 und #ffd500. Die Marken- und Themefarbe ist #ffd500.
   ------------------------------------------------------------------------- */
.ausstattunglist li::before,
.active,
.breadcrump a:hover,
.slider_carslider a h3:hover,
.slider_carslider a:hover {
	color: var(--ai-gelb-dunkel) !important;
}

.slider::-webkit-slider-thumb { background: var(--ai-gelb) !important; }
.slider::-moz-range-thumb     { background: var(--ai-gelb) !important; }

/* Der Pfeil im Filter-Dropdown war weiss auf Gelb (Kontrast 1.7:1). */
.select::after,
#filters .select::after {
	background: var(--ai-gelb) !important;
	color: #000 !important;
	border-radius: 0 !important;
}

.select {
	border-radius: 0 !important;
	border: 1px solid var(--ai-linie-input);
}


/* ---------------------------------------------------------------------------
   11. Preis- und KM-Regler sichtbar machen
   ---------------------------------------------------------------------------
   gw.css gab .slider eine weisse Bahn auf weissem Grund - zu sehen war nur
   der eckige 25x25px-Griff. Das sah aus wie ein verirrtes gelbes Kaestchen,
   nicht wie ein Regler.

   Loesung: appearance:none zuruecknehmen und dem Browser die native
   Darstellung ueberlassen, eingefaerbt per accent-color. Das ergibt eine
   gefuellte Bahn bis zum Griff - man sieht auf einen Blick, dass etwas
   eingestellt ist und in welche Richtung es geht. Ein nachgebauter Regler
   kann das nur mit JavaScript, und er verliert die Tastatur- und
   Screenreader-Eigenschaften des nativen Elements.
   ------------------------------------------------------------------------- */
.slider,
input[type="range"].slider {
	-webkit-appearance: auto !important;
	appearance: auto !important;
	accent-color: var(--ai-gelb);
	width: 100%;
	height: auto !important;
	background: none !important;
	border: 0;
	margin: 10px 0 2px;
	padding: 0;
	cursor: pointer;
}

/* Ein rein gelber Ring erreicht auf Weiss nur 1.25:1. Dunkler Kern traegt
   den Kontrast (17.4:1), der gelbe Halo die Markenfarbe. */
.slider:focus-visible,
input[type="range"].slider:focus-visible {
	outline: 3px solid #1a1a1a;
	outline-offset: 3px;
	box-shadow: 0 0 0 8px var(--ai-gelb);
}

/* Die Beschriftung nennt den aktuellen Wert und gehoert naeher an den Regler. */
.bezeichnung {
	display: block;
	font-weight: 700 !important;
	font-size: 14px;
	margin-bottom: 0 !important;
	color: var(--ai-text);
}

/* Minimum/Maximum unter dem Regler - ohne Skala weiss niemand, welchen
   Bereich er ueberhaupt einstellt. */
.suche .slider-range {
	display: flex;
	justify-content: space-between;
	font-size: 11px;
	color: var(--ai-text-grau);
	margin: 0 0 14px;
}


/* ---------------------------------------------------------------------------
   12. Doppelte Trennlinien vermeiden
   ---------------------------------------------------------------------------
   Die Karte hatte gleichzeitig einen gelben Balken am Bild und einen grauen
   Kartenrahmen - direkt nebeneinander ergab das einen Doppelstrich. Der
   gelbe Balken ist das Markenelement und bleibt, die graue Linie an dieser
   Stelle entfaellt.
   ------------------------------------------------------------------------- */
.car_content {
	border-left: 0 !important;
}

.suche h3,
.data h3,
.ausstattung h3,
.verkauf_data h3 {
	border-bottom: 0 !important;   /* gw.css setzt hier eine graue Linie … */
}

.suche h3 {
	border-bottom: 2px solid var(--ai-gelb) !important;  /* … eine reicht */
}

/* Die Datenbloecke tragen bereits die gelbe Kante links - dort braucht die
   Ueberschrift keine zweite Linie. */
.data h3,
.techdata,
.ausstattung h3 {
	border-bottom: 0 !important;
	padding-bottom: 4px;
	margin-bottom: 12px;
}

/* Nur eine Linie pro Tabellenzeile. */
table.datatable tr.datarow {
	border-bottom: 1px solid var(--ai-linie) !important;
}

table.datatable tr.datarow:last-child {
	border-bottom: 0 !important;
}


/* ---------------------------------------------------------------------------
   13. Fahrzeugfoto vertikal zentrieren
   ---------------------------------------------------------------------------
   Das Bild sass oben in seiner Box, darunter blieb Weissraum. In der
   Nebeneinander-Ansicht wirkte die Karte dadurch unausgewogen.
   ------------------------------------------------------------------------- */
.car_img {
	display: flex !important;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.car_img img {
	width: 100% !important;
	height: 100% !important;
	object-fit: contain;
	margin: 0;
}


/* ---------------------------------------------------------------------------
   14. Harmonische Abstaende
   ---------------------------------------------------------------------------
   Die Website arbeitet im 15/30/60-Raster (flatsome.css). Die
   Fahrzeugseiten hatten Werte von 4px bis 89px quer durcheinander.
   ------------------------------------------------------------------------- */
.car { margin-bottom: 30px !important; }
.suche, .display { margin-bottom: 30px !important; }

/* gw.css: table.merker_detail { margin-top: 89px } - ein Ausgleichswert aus
   der Zeit, als der Slider aus seinem Kasten ragte. */
table.merker_detail {
	margin-top: 24px !important;
}

.car_content {
	padding: 18px 20px !important;
}

.car_details { margin-top: 12px; }
.car_details_footer { margin-top: 6px; }


/* ---------------------------------------------------------------------------
   15. Zaehler-Badges der Filter
   ---------------------------------------------------------------------------
   Die gelben Zahlen hinter den Filteroptionen standen versetzt ueber dem Text
   und rissen die Zeilen auseinander.

   Ursache: span.counter ist inline-block mit vertical-align:baseline. Ein
   solches Element sitzt mit seiner UNTERKANTE auf der Grundlinie und ragt
   deshalb um seine volle Hoehe nach oben - die Zeilenbox wuchs dadurch von
   26px auf 53px, also auf zwei Zeilen. vertical-align:middle setzt es
   stattdessen mittig zur Textzeile.
   ------------------------------------------------------------------------- */


.suche label:hover { color: #000; }





/* In der Sortierleiste steht der Zaehler direkt neben dem Wort. */
label.merkliste span.merker {
	margin-left: 8px;
}

label.merkliste {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	width: auto !important;
	float: none !important;
}

/* Gruppenueberschriften im Filter ("Kategorie", "Treibstoff", "Getriebe") */
.suche .bezeichnung,
.suche > label:first-of-type {
	margin-top: 4px;
}


/* ---------------------------------------------------------------------------
   16. Lange Filterbeschriftungen
   ---------------------------------------------------------------------------
   "Vorfuehrwagen / Tageszulassungen" und "Halbautomatik (z.B. Tiptronic etc.)"
   sind laenger als die Filterspalte. Ohne nowrap rutschte die Zahl in eine
   zweite Zeile und stand dann unter dem Text statt daneben.
   ------------------------------------------------------------------------- */




/* Der Text darf umbrechen, die Zahl nicht mitwandern. */


/* Sortierleiste: die Merkliste-Spalte war 15% breit, "Merkliste" brach
   dadurch zu "Merklist / e" um. */
.t-3:last-child {
	width: auto !important;
	min-width: 130px;
	white-space: nowrap;
}

.display label.merkliste,
.display .t-3:last-child label {
	white-space: nowrap;
}

.display .t-3 label {
	display: block;
	margin-bottom: 6px;
	font-size: 13px;
	color: var(--ai-text-grau);
	letter-spacing: .02em;
	text-transform: uppercase;
}

/* "Merkliste" steht neben "Ergebnisse pro Seite" und "Sortierung nach" und
   folgt derselben Schreibweise - sonst wirkt die Zeile uneinheitlich. */
.display .t-3:last-child label.merkliste {
	display: inline-flex !important;
	text-transform: uppercase;
	letter-spacing: .02em;
	font-size: 13px;
	color: var(--ai-text-grau);
}

.display .t-3:last-child label.merkliste a {
	color: var(--ai-text-grau);
	text-transform: uppercase;
	letter-spacing: .02em;
	font-weight: 400;
	transition: color .3s ease;
}

.display .t-3:last-child label.merkliste a:hover,
.display .t-3:last-child label.merkliste a:focus-visible {
	color: #000;
	text-decoration: underline;
}


/* ---------------------------------------------------------------------------
   17. Filter-Labels endgueltig einzeilig
   ---------------------------------------------------------------------------
   gw2.css setzt "#suche label { display:block !important }". Das ist ein
   ID-Selektor und schlaegt jede Klassenregel - deshalb blieben die langen
   Optionen ("Vorfuehrwagen / Tageszulassungen", "Halbautomatik (z.B.
   Tiptronic etc.)") im Blockfluss und ihre Zahl rutschte unter den Text.
   Hier wird mit derselben Spezifitaet dagegengehalten.
   ------------------------------------------------------------------------- */







/* ---------------------------------------------------------------------------
   18. Preis lesbar machen
   ---------------------------------------------------------------------------
   Der Preis stand in #fecc00 auf Weiss. Gemessenes Kontrastverhaeltnis:
   1.52:1 - WCAG AA verlangt 4.5:1 fuer Fliesstext und 3:1 fuer grossen Text.
   Der wichtigste Wert der ganzen Seite war damit der am schlechtesten
   lesbare.

   Die Website selbst verwendet Gelb konsequent als Flaeche mit dunklem Text
   darauf, nie als Schriftfarbe. Der Preis folgt jetzt dieser Logik:
   schwarz, gross, mit gelber Unterstreichung als Akzent.
   Kontrast schwarz auf weiss: 21:1.
   ------------------------------------------------------------------------- */
td.preis,
.data h3.preis,
h3.preis,
div.slider_carslider_preis,
.slider_carslider_preis {
	color: #000 !important;
	font-family: Montserrat, -apple-system, sans-serif;
	font-weight: 900 !important;
	letter-spacing: -.01em;
}

td.preis {
	font-size: 26px !important;
}

.data h3.preis,
h3.preis {
	font-size: 26px !important;
	border-bottom: 0 !important;
}

.slider_carslider_preis {
	font-size: 20px !important;
	margin-top: 6px;
}

/* Kein zusaetzlicher gelber Balken hinter dem Preis: der Versuch traf die
   falsche Tabellenzeile und sah aus wie ein Darstellungsfehler. Der Preis
   ist schwarz, gross und fett bereits deutlich genug - das ist die ruhigere
   und damit bessere Loesung. */
.data tr:first-child {
	background: none;
}

/* Graue Hilfstexte: #a6a6a6 auf Weiss ergibt 2.3:1 und ist zu schwach. */
td.datadesc,
.verkauf,
.slider_carslider h6 {
	color: #6b6b6b !important;
}


/* Preis und Label in einer Zeile, rechtsbuendiger Wert. */
.data h3.preis {
	float: right;
	margin: 0 !important;
	line-height: 1.2 !important;
}

.data h3.bordernone + h3.preis,
.data h3.preis + * {
	clear: both;
}


/* ---------------------------------------------------------------------------
   19. Kontrast: Graustufen und Gelb als Schriftfarbe
   ---------------------------------------------------------------------------
   Gerechnet nach WCAG 2.1 (relative Luminanz), nicht geschaetzt:

     #7d7d7d auf Weiss  4.12:1  - knapp unter den geforderten 4.5:1
     #a6a6a6 auf Weiss  2.43:1
     #e6c000 auf Weiss  1.76:1
     #ffd500 auf Weiss  1.42:1

   #6b6b6b erreicht 5.33:1, #8a6d00 erreicht 4.92:1. Gelb bleibt Flaechen-
   farbe mit dunklem Text darauf (#000 auf #ffd500 = 14.8:1), wird aber
   nirgends mehr als Schriftfarbe auf Weiss eingesetzt.
   ------------------------------------------------------------------------- */
td.tit,
.car_content h6,
.verkauf,
.slider_carslider h6,
td.datadesc,
.breadcrump a,
.disable {
	color: #6b6b6b !important;
}

.active,
[aria-current="page"],
.car_content h3 a:hover,
.slider_carslider a:hover,
.slider_carslider a h3:hover,
.breadcrump a:hover {
	color: #8a6d00 !important;
}

/* Die Slider-Pfeile liegen ueber dem Foto, dort traegt Gelb. Ausserhalb
   davon braucht es den dunkleren Ton. */
.ausstattunglist li::before {
	color: #ad9100 !important;
}

/* Karten-Hover war #ececec -> #d8d8d8, also 1.21:1 Unterschied und damit
   nicht wahrnehmbar. */
.car:hover {
	border-color: #8d8d8d !important;
}

/* Feldrahmen sind das einzige Signal, dass dort ein Bedienelement steht -
   WCAG 1.4.11 verlangt dafuer 3:1. #ddd erreicht 1.36:1. */
.suche select,
.suche input[type="text"],
#filters select,
.select select,
.select {
	border-color: #8d8d8d !important;
}


/* ---------------------------------------------------------------------------
   20. Klickflaechen - ohne Media Query
   ---------------------------------------------------------------------------
   Die 44px-Regeln standen bisher nur in mobile-fixes.css unterhalb 849px.
   Media Queries erhoehen die Spezifitaet nicht: die spaeter geladene
   design-refresh.css hat sie mit denselben Selektoren still ueberschrieben,
   und auf Touch-Geraeten mit breitem Viewport (Tablet quer) galten sie
   ohnehin nie.
   ------------------------------------------------------------------------- */
.suche select,
.select select,
#filters select,
.display select {
	min-height: 44px !important;
	font-size: 16px !important;
}

.suche input[type="submit"],
.verkauf_form input[type="submit"] {
	min-height: 44px !important;
	padding: 0 24px !important;
}

td.merken a,
td.gemerkt a {
	min-height: 44px !important;
	line-height: 40px !important;
	box-sizing: border-box;
}





/* Der Regler braucht eine greifbare Flaeche, nicht nur einen sichtbaren Strich. */
.slider,
input[type="range"].slider {
	min-height: 44px !important;
	padding: 12px 0 !important;
	box-sizing: border-box;
}

/* Die Slider-Pfeile stehen in Abschnitt 40 - die 44px allein genuegten
   nicht, weil Flatsome den Buttons zusaetzlich Polsterung gibt. */

.navigation .left,
.navigation .right,
.navigation .count {
	min-height: 44px;
	line-height: 42px;
	padding: 0 16px;
}


/* ---------------------------------------------------------------------------
   21. Ausgewaehlter Filter sichtbar machen
   ---------------------------------------------------------------------------
   :checked kam in keiner der Dateien vor - das einzige Signal war der
   17px-Systemknopf. Welcher Filter aktiv ist, war kaum zu erkennen.

   Die Regel dazu stand doppelt in dieser Datei (hier und in Abschnitt 27)
   mit identischen Deklarationen. Sie lebt jetzt nur noch in Abschnitt 27,
   zusammen mit den uebrigen Regeln fuer die Filterzeilen.
   ------------------------------------------------------------------------- */

/* Gemerkt-Zustand nicht nur ueber Farbe (WCAG 1.4.1), sondern auch ueber
   das Symbol - der Stern ist gefuellt statt leer. */
td.gemerkt a { font-weight: 700; }


/* ---------------------------------------------------------------------------
   22. Seitentitel beider Fahrzeugseiten identisch
   ---------------------------------------------------------------------------
   Der Titel der Uebersicht ist ein <h1 style="text-align:center"> direkt im
   uk-Raster - der frueher verwendete Selektor "#content h1" trifft ihn
   nicht. Beide Seiten nutzen jetzt dieselbe Schreibweise wie die
   Sektionsueberschriften der Startseite (Montserrat 900, Versalien,
   letter-spacing .05em).
   ------------------------------------------------------------------------- */
body.page-template-aichlseder-gebrauchtwagen-overview .uk-container h1,
body.page-template-gebrauchtwagen-view .gebrauchtwagen-detail-title h1 {
	font-family: Montserrat, -apple-system, "Helvetica Neue", sans-serif !important;
	font-size: clamp(22px, 3.4vw, 34px) !important;
	font-weight: 900 !important;
	line-height: 1.18 !important;
	letter-spacing: .05em !important;
	text-transform: uppercase !important;
	color: var(--ai-text) !important;
	text-align: center !important;
	margin: 0 0 24px !important;
	overflow-wrap: break-word;
	hyphens: auto;
}


/* ---------------------------------------------------------------------------
   23. Dropdown-Pfeile vertikal zentrieren
   ---------------------------------------------------------------------------
   .select::after spannt per top:0/bottom:0 ueber die volle Hoehe (44px),
   das Zeichen selbst sass aber mit line-height:25.6px oben im Kasten. Die
   Flex-Zentrierung stand bisher nur in der Mobile-Media-Query und griff auf
   dem Desktop nicht.
   ------------------------------------------------------------------------- */
.select::after,
#filters .select::after,
.display .select::after,
.suche .select::after {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	top: 0 !important;
	bottom: 0 !important;
	right: 0 !important;
	height: auto !important;
	line-height: 1 !important;
	padding: 0 14px !important;
	font-size: 13px;
	background: var(--ai-gelb) !important;
	color: #000 !important;
	pointer-events: none;
}

/* Der Wrapper traegt den Rahmen, das Feld selbst braucht keinen zweiten. */
.select {
	display: block;
	position: relative;
	overflow: hidden;
}

.select select,
.display .select select,
.suche .select select {
	border: 0 !important;
	background: #fff !important;
	padding-right: 3.4em !important;
	height: 44px !important;
	line-height: 44px !important;
}


/* ---------------------------------------------------------------------------
   24. Merkliste-Zaehler als saubere Pille
   ---------------------------------------------------------------------------
   Mit border-radius:11px bei 25x22px entstand eine leicht schiefe Ellipse.
   Ein voller Radius ergibt bei einstelligen Zahlen einen Kreis und bei
   mehrstelligen eine Pille - in beiden Faellen sauber.
   ------------------------------------------------------------------------- */


/* "Merkliste" und Zahl bilden eine Einheit und sitzen auf einer Grundlinie
   mit den beiden Auswahlfeldern daneben. */
.display .t-3:last-child {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
}

.display label.merkliste {
	display: inline-flex !important;
	align-items: center;
	gap: 10px;
	height: 44px;
	margin: 0 !important;
}


/* ---------------------------------------------------------------------------
   25. Floating-Button "Merkliste" (nur schmale Viewports)
   ---------------------------------------------------------------------------
   Auf dem Handy steht der Merklisten-Einstieg ganz oben in der
   Sortierleiste. Wer weiter unten ein Fahrzeug merkt, muesste erst wieder
   hochscrollen, um ihn zu erreichen.

   Der Button sitzt UEBER dem Kontakt-Button, nicht daneben:
     Kontakt    bottom: 20px, Hoehe 60px  -> belegt 20-80px
     Merkliste  bottom: 92px, Hoehe 56px  -> belegt 92-148px
   Dazwischen bleiben 12px Luft. Beide sind rechts, also mit dem Daumen
   erreichbar, und ueberlappen sich in keiner Groesse.

   Er erscheint erst, wenn etwas gemerkt ist - ein leerer Merkzettel
   braucht keine dauerhafte Schaltflaeche.
   ------------------------------------------------------------------------- */
#floating-merkliste-button {
	position: fixed;
	right: 20px;
	bottom: 92px;
	z-index: 3;                 /* der Kontakt-Button liegt auf 2 */
	display: none;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-width: 56px;
	height: 56px;
	padding: 0 16px;
	background-color: var(--ai-gelb);
	color: #000;
	border-radius: 50px;
	font-family: Montserrat, -apple-system, sans-serif;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .2);
	transition: transform .3s ease, box-shadow .3s ease, background-color .3s ease;
}

#floating-merkliste-button.is-sichtbar {
	display: inline-flex;
	animation: ai-merk-auf .28s ease-out;
}

#floating-merkliste-button:hover,
#floating-merkliste-button:focus-visible {
	background-color: #000;
	color: var(--ai-gelb);
	transform: scale(1.06);
	box-shadow: 0 4px 20px rgba(0, 0, 0, .3);
}

#floating-merkliste-button:focus-visible {
	outline: 3px solid #1a1a1a;
	outline-offset: 3px;
}

#floating-merkliste-button .js-merk-stern { font-size: 18px; line-height: 1; }

@keyframes ai-merk-auf {
	from { opacity: 0; transform: translateY(12px) scale(.9); }
	to   { opacity: 1; transform: none; }
}

/* Auf grossen Bildschirmen ist die Sortierleiste ohnehin im Blick. */
@media screen and (min-width: 850px) {
	#floating-merkliste-button { display: none !important; }
}

/* Auf sehr kleinen Geraeten beide Buttons etwas kompakter, damit sie
   zusammen nicht zu viel vom Inhalt verdecken. */
@media screen and (max-width: 380px) {
	#floating-merkliste-button { height: 50px; min-width: 50px; bottom: 86px; padding: 0 13px; }
	#floating-contact-button   { width: 52px !important; height: 52px !important; }
}


/* ---------------------------------------------------------------------------
   26. Rueckmeldung beim Merken
   ---------------------------------------------------------------------------
   Ohne Seitenwechsel braucht die Aktion eine sichtbare Bestaetigung -
   sonst ist nicht klar, ob der Klick angekommen ist. role="status" sorgt
   dafuer, dass auch Screenreader es mitbekommen.
   ------------------------------------------------------------------------- */
#aichlseder-merk-meldung {
	position: fixed;
	left: 50%;
	bottom: 24px;
	transform: translateX(-50%) translateY(14px);
	z-index: 5;
	max-width: calc(100vw - 40px);
	padding: 12px 20px;
	background: rgba(0, 0, 0, .9);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .01em;
	opacity: 0;
	pointer-events: none;
	transition: opacity .25s ease, transform .25s ease;
}

#aichlseder-merk-meldung.is-sichtbar {
	opacity: 1;
	transform: translateX(-50%) translateY(0);
}

/* Der Merken-Button waehrend der Anfrage. */
td.merken a.is-laedt,
td.gemerkt a.is-laedt {
	opacity: .6;
	pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
	#floating-merkliste-button,
	#aichlseder-merk-meldung { transition: none; animation: none; }
}


/* Die beiden schwebenden Schaltflaechen liegen ueber dem Inhalt. Am
   Seitenende wird deshalb Platz reserviert, damit die letzte Karte und der
   Footer nicht dauerhaft halb verdeckt sind. */
@media screen and (max-width: 849px) {
	body.page-template-aichlseder-gebrauchtwagen-overview,
	body.page-template-gebrauchtwagen-view {
		padding-bottom: 86px;
	}
}


/* ===========================================================================
   27. Filter-Optionen und Zaehler-Badges - konsolidiert
   ---------------------------------------------------------------------------
   Waehrend der Ueberarbeitung sind hierfuer nach und nach mehrere
   Teilregeln entstanden, die sich gegenseitig ueberschrieben (zweimal eine
   abweichende Badge-Hoehe). Sie sind entfernt; das hier ist die einzige
   Stelle.

   Gegenspieler aus dem Altbestand und warum der ID-Selektor noetig ist:

     gw.css     label { float:left }                         global
     gw.css     span.counter { width:19px; height:19px }      ohne line-height
     gw2.css    select,option,label { line-height:1.625 !important }
     gw2.css    #suche label { display:block !important }     Spezifitaet 1-0-1
     mobile-fixes.css  .suche .radios label { display:block !important }  0-2-1

   Bei gleicher Herkunft und beidseitigem !important entscheidet die
   Spezifitaet, nicht die Ladereihenfolge - eine Klassenregel (0-1-1)
   verliert deshalb gegen den ID-Selektor, obwohl sie spaeter geladen wird.
   "#suche .radios label" hat 1-0-2 und schlaegt beide.

   Das Badge erbte ausserdem line-height:1.625 in eine 19px hohe Box. Die
   Baseline eines inline-block ist die seiner letzten Zeilenbox - sie lag
   damit unterhalb der Box, wodurch das Badge nach oben rutschte und die
   Zeile aufriss. inline-flex macht die Zentrierung unabhaengig davon.
   ========================================================================= */
#suche .radios label,
.suche .radios label {
	display: flex !important;
	align-items: center !important;
	flex-wrap: nowrap !important;
	gap: 10px;
	float: none !important;
	width: 100% !important;
	height: auto !important;
	min-height: 44px;
	margin: 0 !important;
	padding: 9px 0 !important;
	font-size: 15px;
	line-height: 1.35 !important;
	cursor: pointer;
	/* Der Optionstext ist ein anonymes Flex-Item und nicht direkt
	   selektierbar. "anywhere" senkt seine min-content-Breite, damit er bei
	   sehr langen Bezeichnungen schrumpft, statt das Badge aus der Zeile zu
	   draengen. Greift erst, wenn es sonst nicht mehr passt. */
	overflow-wrap: anywhere;
	hyphens: none;
	transition: color .3s ease;
}

#suche .radios label:hover,
.suche .radios label:hover { color: #000; }

#suche .radios label > input[type="radio"],
.suche .radios label > input[type="radio"],
#suche .radios label > input[type="checkbox"],
.suche .radios label > input[type="checkbox"] {
	flex: 0 0 auto !important;
	width: 20px !important;
	height: 20px !important;
	margin: 0 !important;
	accent-color: var(--ai-gelb);
	cursor: pointer;
}

#suche .radios label > span.counter,
.suche .radios label > span.counter {
	flex: 0 0 auto !important;
	align-self: center !important;
	margin-left: auto !important;
}

span.counter,
span.merker {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	float: none !important;
	width: auto !important;
	min-width: 24px;
	height: 24px !important;
	line-height: 1 !important;
	padding: 0 8px !important;
	border-radius: 999px !important;
	background-color: var(--ai-gelb) !important;
	color: #000 !important;
	font: 700 12px/1 Montserrat, -apple-system, sans-serif !important;
	white-space: nowrap;
	vertical-align: middle;
}

label.merkliste span.merker { margin-left: 8px; }

/* Ausgewaehlte Option bleibt erkennbar (siehe Abschnitt 21). */
#suche .radios label:has(input[type="radio"]:checked),
.suche .radios label:has(input[type="radio"]:checked),
#suche .radios label:has(input[type="checkbox"]:checked),
.suche .radios label:has(input[type="checkbox"]:checked) {
	font-weight: 700;
	color: #000;
	box-shadow: inset 3px 0 0 var(--ai-gelb);
	padding-left: 10px !important;
}


/* ===========================================================================
   28. Ergebnis-/Sortierleiste neu aufgebaut
   ---------------------------------------------------------------------------
   Ausgangslage: .f-wrapper enthielt drei gefloatete .t-3 mit 41%/41%/15%,
   praktisch je 256px. Zusammen 768px bei 625px verfuegbarer Breite - die
   Merkliste brach deshalb in eine zweite Zeile und stand dort linksbuendig
   unter dem ersten Auswahlfeld, ohne erkennbaren Bezug zur Leiste. Der
   Wrapper hatte zudem height:0, weil er nur Floats enthielt.

   Neu als Flex-Zeile: die beiden Auswahlfelder teilen sich den Platz links,
   die Merkliste sitzt als eigenstaendige Schaltflaeche rechts aussen. Alle
   drei stehen auf einer gemeinsamen Grundlinie (align-items:flex-end), weil
   die Auswahlfelder eine Beschriftung darueber tragen und die Merkliste
   nicht - so fluchten die Bedienelemente selbst, nicht ihre Oberkanten.
   ========================================================================= */
.display {
	padding: 18px 20px !important;
}

.display .f-wrapper {
	display: flex !important;
	align-items: flex-end;
	flex-wrap: wrap;
	gap: 18px 24px;
	width: 100% !important;
}

/* Der Clearfix des alten Float-Layouts ist im Flex-Kontext ueberfluessig
   und wuerde als zusaetzliches Flex-Item eine Luecke erzeugen. */
.display .f-wrapper::after,
.display .f-wrapper::before {
	content: none !important;
	display: none !important;
}

.display .t-3 {
	float: none !important;
	width: auto !important;
	min-width: 0;
	margin: 0 !important;
	flex: 1 1 190px;
}

.display .t-3 form {
	display: block !important;
	width: 100% !important;
	margin: 0;
}

/* Beschriftung ueber dem Feld: klein, ruhig, in Versalien wie im Theme. */
.display .t-3 .radios label,
.display .t-3 > label:not(.merkliste) {
	display: block !important;
	float: none !important;
	width: 100% !important;
	min-height: 0 !important;
	margin: 0 0 7px !important;
	padding: 0 !important;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--ai-text-grau);
	line-height: 1.3 !important;
}

.display .t-3 .radios {
	display: block;
	margin: 0;
}

.display .select {
	width: 100% !important;
	margin: 0 !important;
}


/* --- Merkliste ------------------------------------------------------------
   Der erste Entwurf war ein Kasten mit 2px schwarzem Rahmen. Neben zwei
   Auswahlfeldern mit kraeftig gelbem Pfeilfeld standen damit drei laute
   Elemente nebeneinander, von denen keines fuehrte.

   Jetzt traegt nur noch der Zaehler Farbe. Der Eintrag selbst ist ruhiger
   Text mit Stern - erkennbar als Bedienelement durch Grossbuchstaben,
   Gewicht und Hover, aber ohne zusaetzliche Rahmenkante.
   ------------------------------------------------------------------------- */
.display .t-3:last-child {
	flex: 0 0 auto !important;
	margin-left: auto !important;
	display: flex;
	align-items: flex-end;
}

.display label.merkliste {
	display: inline-flex !important;
	align-items: center;
	height: 44px;
	margin: 0 !important;
	padding: 0 !important;
	width: auto !important;
	text-transform: none;
	letter-spacing: 0;
	font-size: inherit;
}

.display label.merkliste a {
	display: inline-flex !important;
	align-items: center;
	gap: 9px;
	height: 44px;
	padding: 0 2px;
	border: 0 !important;
	background: none !important;
	color: var(--ai-text) !important;
	font-family: Montserrat, -apple-system, sans-serif;
	font-size: 13px !important;
	font-weight: 700 !important;
	letter-spacing: .04em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	white-space: nowrap;
	transition: color .3s ease;
}

.display label.merkliste a::before {
	content: "\2605";
	font-size: 15px;
	line-height: 1;
	color: var(--ai-text-grau);
	transition: color .3s ease;
}

.display label.merkliste a:hover,
.display label.merkliste a:focus-visible {
	color: #000 !important;
}

.display label.merkliste a:hover::before,
.display label.merkliste a:focus-visible::before {
	color: var(--ai-gelb-dunkel);
}

.display label.merkliste .merker {
	margin: 0 !important;
	min-width: 22px;
	height: 22px !important;
}

/* Schmale Viewports: Auswahlfelder untereinander, Merkliste ueber die
   volle Breite - dort ist sie die einzige echte Aktion in der Leiste. */
@media screen and (max-width: 640px) {

	.display .f-wrapper {
		gap: 14px;
	}

	.display .t-3 {
		flex: 1 1 100% !important;
	}

	.display .t-3:last-child {
		margin-left: 0 !important;
	}

	.display label.merkliste,
	.display label.merkliste a {
		width: 100% !important;
		justify-content: center;
	}
}


/* ===========================================================================
   29. Fahrzeugsuche auf dem Handy einklappbar
   ---------------------------------------------------------------------------
   Der Filterblock ist mobil rund 1.500px hoch und stand vor der Liste - man
   musste also an der kompletten Suche vorbeiscrollen, bevor das erste
   Fahrzeug zu sehen war. Auf dem Desktop ist er als Seitenspalte richtig
   platziert und bleibt unveraendert.

   Der Umschalter erscheint nur unterhalb 850px. Sind bereits Filter
   gesetzt, oeffnet sich der Block von selbst - sonst waere nicht
   nachvollziehbar, warum weniger Fahrzeuge angezeigt werden.
   ========================================================================= */
#filter-umschalter {
	display: none;
}

@media screen and (max-width: 849px) {

	#filter-umschalter {
		display: flex;
		align-items: center;
		gap: 10px;
		width: 100%;
		min-height: 52px;
		margin: 0 0 16px;
		padding: 0 18px;
		background: rgba(0, 0, 0, .8);
		border: 0;
		color: #fff;
		font-family: Montserrat, -apple-system, sans-serif;
		font-size: 14px;
		font-weight: 700;
		letter-spacing: .03em;
		text-transform: uppercase;
		text-align: left;
		cursor: pointer;
		transition: background-color .3s ease;
	}

	#filter-umschalter:hover,
	#filter-umschalter:focus-visible {
		background: #000;
	}

	#filter-umschalter:focus-visible {
		outline: 3px solid #1a1a1a;
		outline-offset: 2px;
		box-shadow: 0 0 0 7px var(--ai-gelb);
	}

	#filter-umschalter .fu-icon {
		font-size: 19px;
		line-height: 1;
	}

	#filter-umschalter .fu-text {
		flex: 1 1 auto;
	}

	/* Anzahl gesetzter Filter - macht sichtbar, dass die Liste eingegrenzt
	   ist, auch wenn der Block zugeklappt bleibt. */
	#filter-umschalter .fu-zahl {
		flex: 0 0 auto;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 24px;
		height: 24px;
		padding: 0 8px;
		border-radius: 999px;
		background: var(--ai-gelb);
		color: #000;
		font-size: 12px;
		font-weight: 700;
	}

	/* Der Pfeil zeigt den Zustand an. */
	#filter-umschalter::after {
		content: "\25BC";
		flex: 0 0 auto;
		font-size: 11px;
		transition: transform .3s ease;
	}

	#filter-umschalter[aria-expanded="true"]::after {
		transform: rotate(180deg);
	}

	/* Zugeklappt nimmt die Suche keinen Platz ein. Kein max-height-Trick:
	   bei rund 1.500px Inhalt laeuft die Animation ins Leere und der Block
	   bliebe bei Tastaturbedienung fokussierbar. */
	.suche {
		display: none !important;
	}

	.suche.ist-offen {
		display: block !important;
		margin-bottom: 24px;
		animation: ai-filter-auf .25s ease-out;
	}

	@keyframes ai-filter-auf {
		from { opacity: 0; transform: translateY(-6px); }
		to   { opacity: 1; transform: none; }
	}

	/* Die Spalte darf im gestapelten Layout keine Mindesthoehe behalten. */
	.uk-width-expand\@m:has(.suche),
	.uk-width-1-3\@m:has(.suche) {
		min-height: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.suche.ist-offen { animation: none; }
	#filter-umschalter::after { transition: none; }
}


/* ===========================================================================
   30. Auswahlfelder beruhigen
   ---------------------------------------------------------------------------
   Der gelbe Pfeilblock war rund 45px breit und damit das visuell lauteste
   Element der ganzen Seite - er zog mehr Aufmerksamkeit auf sich als die
   Fahrzeuge. Gelb bleibt die Markenfarbe, tritt hier aber nur noch beim
   Fokussieren auf: ein feiner Rahmen, ein zurueckhaltender Chevron, und
   erst bei der Bedienung Farbe.
   ========================================================================= */
.select {
	border: 1px solid #d2d2d7 !important;
	background: #fff;
	transition: border-color .25s ease, box-shadow .25s ease;
}

.select:hover {
	border-color: #b0b0b6 !important;
}

.select:focus-within {
	border-color: var(--ai-gelb) !important;
	box-shadow: 0 0 0 3px rgba(255, 213, 0, .25);
}

/* Der Pfeil sitzt frei im Feld statt auf einer eigenen Farbflaeche. */
.select::after,
#filters .select::after,
.display .select::after,
.suche .select::after {
	content: "\25BE" !important;
	background: transparent !important;
	color: #4a4a4f !important;
	font-size: 15px !important;
	padding: 0 14px 0 8px !important;
	border-radius: 0 !important;
	pointer-events: none;
}

.select select,
.display .select select,
.suche .select select {
	padding-right: 2.4em !important;
	padding-left: 14px !important;
	color: var(--ai-text) !important;
	font-size: 15px !important;
}

/* Beschriftungen zurueckhaltender: kleiner, heller, mit mehr Laufweite -
   sie ordnen ein, ohne mit dem Inhalt zu konkurrieren. */
.display .t-3 .radios label,
.display .t-3 > label:not(.merkliste) {
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: .08em !important;
	/* #86868b ergibt auf Weiss 3.62:1 und verfehlt damit die 4.5:1 fuer
	   Text unter 18.66px. --ai-text-grau (#7d7d7d) erreicht 4.66:1 und ist
	   ohnehin der Grauton, den diese Datei sonst durchgehend verwendet. */
	color: var(--ai-text-grau) !important;
	margin-bottom: 8px !important;
}

/* Die Leiste selbst: mehr Luft, feinere Begrenzung. */
.display {
	padding: 20px 22px !important;
	border-color: #ececec !important;
}


/* ===========================================================================
   31. Preiszeile ohne Trennlinien
   ---------------------------------------------------------------------------
   flatsome.css setzt global "td, th { border-bottom: 1px solid #ececec }".
   Die Preiszeile liegt in einer eigenen Tabelle (.car_details_footer) und
   erbte diese Linie - unter dem Preis lief dadurch ein Strich, der nichts
   abgrenzt, weil darunter nichts mehr kommt.

   Im gestapelten Mobile-Layout kam eine zweite dazu: dort steht die
   Merken-Zelle ueber dem Preis und bringt ihre eigene Unterkante mit.

   Zusaetzlich traegt jede Tabelle in Flatsome margin-bottom:1em - am Ende
   der Karte ist das ueberfluessiger Leerraum.
   ========================================================================= */
.car_details_footer table,
.car_details_footer tbody,
.car_details_footer tr,
.car_details_footer td,
.car_details_footer th {
	border: 0 !important;
}

.car_details_footer table {
	margin-bottom: 0 !important;
}

.car_details_footer td.preis {
	padding-top: 10px !important;
	padding-bottom: 0 !important;
}

/* Die letzte Datenzeile der Karte braucht ebenfalls keine Unterkante - die
   Karte selbst grenzt bereits ab. */
.car_details table tr:last-child td,
.car_details tbody tr:last-child td {
	border-bottom: 0 !important;
}

@media screen and (max-width: 849px) {

	/* Gestapelt: weder ueber noch unter dem Preis eine Linie. */
	.car_details_footer td.preis,
	.car_details_footer td.merken,
	.car_details_footer td.gemerkt {
		border-top: 0 !important;
		border-bottom: 0 !important;
	}

	.car_details_footer td.preis {
		padding-top: 12px !important;
		padding-bottom: 0 !important;
	}

	/* Merken-Schaltflaeche und Preis brauchen etwas Luft zueinander,
	   aber keine Kante. */
	.car_details_footer td.merken,
	.car_details_footer td.gemerkt {
		padding-bottom: 2px !important;
	}
}


/* ===========================================================================
   32. Mehrfachauswahl in der Fahrzeugsuche
   ---------------------------------------------------------------------------
   Die vier Filtergruppen sind jetzt Kontrollkaestchen statt Radios: innerhalb
   einer Gruppe ODER, zwischen den Gruppen UND. Die Zeilen selbst erben ihr
   Aussehen aus Abschnitt 27 (dort sind die Gegenspieler aus gw.css/gw2.css
   dokumentiert); hier steht nur, was durch die Mehrfachauswahl dazukommt.

   Die Gruppen sind <fieldset>/<legend>. Bisher stand dem entgegen, dass jede
   Option ihr eigener PHP-Block war (AGENTS.md 6e) - seit die Optionen aus
   einer Schleife kommen, umschliesst der Fieldset genau eine Gruppe.
   ========================================================================= */
.suche .ai-filtergruppe {
	border: 0;
	margin: 0;
	padding: 0;
	min-width: 0;          /* sonst wird der Fieldset so breit wie sein Inhalt */
}

.suche .ai-filtergruppe > legend.bezeichnung {
	display: block;
	float: none;
	width: 100%;
	padding: 0;
	margin-bottom: 4px;
}

/* Wie viele Punkte in dieser Gruppe angehakt sind - eingeklappt auf dem
   Handy ist das sonst nicht zu sehen. */
.ai-gruppe-zahl {
	float: right;
	font-weight: 400;
	font-size: 12px;
	color: var(--ai-text-grau);
	letter-spacing: .02em;
	text-transform: none;
}

/* Eckig wie der Rest der Seite - der runde Systemknopf des Radios passte
   zur Seite, ein rundes Kaestchen waere hier der Fremdkoerper. */
#suche .radios label > input[type="checkbox"],
.suche .radios label > input[type="checkbox"] {
	border-radius: 0;
}

/* Der Optionstext war bisher ein anonymes Flex-Item und damit nicht
   ansprechbar. Als eigenes Element darf er schrumpfen, ohne die Zahl aus
   der Zeile zu draengen. */
.ai-option-text {
	flex: 1 1 auto;
	min-width: 0;
}

/* Kombination ohne Treffer: sichtbar lassen, damit die Liste beim Anhaken
   nicht springt, aber erkennbar zurueckgenommen. */
.suche .radios label.ai-option.ist-leer {
	opacity: .45;
}

.suche .radios label.ai-option.ist-leer span.counter {
	background-color: #ececec !important;
	color: var(--ai-text-grau) !important;
}

/* Abstand zwischen den Gruppen statt der <br>-Kette von frueher. */
.suche hr.divider {
	margin: 16px 0;
}

.ai-such-aktionen {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	margin-top: 22px;
}

.ai-such-aktionen input[type="submit"] {
	margin: 0 !important;
	flex: 1 1 auto;
}

a.ai-zuruecksetzen {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .02em;
	color: var(--ai-text-grau);
	text-decoration: underline;
	text-underline-offset: 3px;
	white-space: nowrap;
}

a.ai-zuruecksetzen:hover { color: #000; }


/* ---------------------------------------------------------------------------
   33. Trefferzahl und aktive Filter
   ---------------------------------------------------------------------------
   Bei Mehrfachauswahl steht sonst nirgends, wonach gerade gefiltert wird:
   auf dem Handy sind die Kaestchen eingeklappt, auf dem Desktop stehen sie
   weit oben in der Seitenspalte. Die Marken hier sind zugleich der kuerzeste
   Weg, einen einzelnen Filter wieder loszuwerden.
   ------------------------------------------------------------------------- */
.ai-ergebnis-kopf {
	margin-bottom: 14px;
}

p.ai-treffer {
	margin: 0 !important;
	font-size: 13px;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--ai-text-grau);
}

p.ai-treffer strong {
	font-family: Montserrat, -apple-system, sans-serif;
	font-size: 18px;
	font-weight: 700;
	color: var(--ai-text);
	letter-spacing: 0;
}

.ai-chips {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px solid var(--ai-linie);
}

.ai-chips-titel {
	font-size: 11px;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--ai-text-grau);
	margin-right: 2px;
}

a.ai-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	max-width: 100%;
	padding: 5px 10px;
	border: 1px solid var(--ai-linie-input);
	background: #fff;
	color: var(--ai-text);
	font-size: 13px;
	line-height: 1.3;
	text-decoration: none;
	transition: border-color .3s ease, background-color .3s ease;
}

a.ai-chip > span:first-child {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ai-chip-x {
	font-size: 16px;
	line-height: 1;
	color: var(--ai-text-grau);
}

a.ai-chip:hover {
	border-color: var(--ai-gelb);
	background: #fffbe0;
	color: #000;
}

a.ai-chip:hover .ai-chip-x { color: #000; }

a.ai-chip.ai-chip-alle {
	border-style: dashed;
	color: var(--ai-text-grau);
}

.ai-leer {
	border: 1px solid var(--ai-linie);
	padding: 30px 24px;
	text-align: center;
}

.ai-leer h3 {
	font-family: Montserrat, -apple-system, sans-serif;
	font-size: 18px;
	font-weight: 700;
	margin-bottom: 10px;
}

.ai-leer p {
	margin: 0 0 8px;
	color: var(--ai-text-grau);
	font-size: 15px;
}


/* ---------------------------------------------------------------------------
   34. Fahrzeuge ohne Foto
   ---------------------------------------------------------------------------
   Rund jedes zehnte Fahrzeug hat (noch) kein Bild. Der Server beantwortet
   die fehlende Datei mit einer Weiterleitung auf die Startseite - im <img>
   landete dadurch HTML, und in der Karte stand das kaputte Bildsymbol samt
   Alternativtext. Jetzt tritt ein Symbolbild an die Stelle.

   Die Flaeche traegt dieselbe Hintergrundfarbe wie die Grafik, damit bei
   object-fit:contain kein heller Rand entsteht.
   ------------------------------------------------------------------------- */
.car_img.ist-platzhalter {
	background: #f2f2f2;
}

.car_img.ist-platzhalter img {
	background: #f2f2f2;
}

/* Greift das Auffangnetz aus js/bild-fallback.js, steht am <img> noch das
   inline gesetzte object-fit des Fotos - fuer die Grafik ist "cover" falsch,
   sie wuerde beschnitten. Gegen ein Inline-Style hilft nur !important. */
.slide.ist-platzhalter img,
.item.ist-platzhalter .carImage,
.car_img.ist-platzhalter img {
	object-fit: contain !important;
	background: #f2f2f2 !important;
}


/* ---------------------------------------------------------------------------
   35. Blaetterwerk: Auslassung
   ---------------------------------------------------------------------------
   Bei 125 Fahrzeugen zu je 5 pro Seite standen 25 Seitenzahlen nebeneinander
   und brachen auf dem Handy in vier Zeilen um. Jetzt nur noch erste, letzte
   und die Umgebung der aktuellen Seite.
   ------------------------------------------------------------------------- */
.navigation .count .luecke {
	display: inline-block;
	padding: 0 6px;
	color: var(--ai-text-grau);
	user-select: none;
}


/* ---------------------------------------------------------------------------
   36. Detailseite ohne Fotos
   ---------------------------------------------------------------------------
   Steht nur das Symbolbild im Slider, gibt es nichts zu blaettern - die
   Pfeile waeren dann zwei Schaltflaechen ohne Wirkung. Die Regel dazu steht
   bei den uebrigen Pfeil-Regeln in Abschnitt 40.
   ------------------------------------------------------------------------- */


/* ---------------------------------------------------------------------------
   37. Seitenzahlen als greifbare Ziele
   ---------------------------------------------------------------------------
   Die Zahlen standen nur durch ein Leerzeichen getrennt nebeneinander und
   waren auf dem Handy kaum zu treffen (WCAG 2.5.8 verlangt 24x24 CSS-Pixel).
   ------------------------------------------------------------------------- */
.navigation .count a {
	display: inline-block;
	min-width: 32px;
	padding: 0 4px;
	text-align: center;
}


/* ---------------------------------------------------------------------------
   38. Fokus auf den neuen Bedienelementen
   ---------------------------------------------------------------------------
   Gleiche Handschrift wie beim Regler (Abschnitt 11): dunkler Kern traegt den
   Kontrast, der gelbe Halo die Markenfarbe. Ein rein gelber Ring erreicht auf
   Weiss nur 1.25:1 und waere praktisch unsichtbar.
   ------------------------------------------------------------------------- */
#suche .radios label > input[type="checkbox"]:focus-visible,
.suche .radios label > input[type="checkbox"]:focus-visible,
.suche input[type="submit"]:focus-visible,
a.ai-zuruecksetzen:focus-visible,
a.ai-chip:focus-visible {
	outline: 3px solid #1a1a1a;
	outline-offset: 2px;
	box-shadow: 0 0 0 6px var(--ai-gelb);
}

/* Die Marken liegen dicht beieinander - ein Halo ohne Abstand wuerde die
   Nachbarn ueberdecken. */
a.ai-chip:focus-visible {
	outline-offset: 1px;
	box-shadow: 0 0 0 4px var(--ai-gelb);
}


/* ---------------------------------------------------------------------------
   39. Aktive Filter auf schmalen Viewports
   ------------------------------------------------------------------------- */
@media screen and (max-width: 599px) {

	/* Die Beschriftung stand in der ersten Markenzeile und verschob sie
	   gegenueber allen folgenden. Auf eigener Zeile fluchten alle Marken. */
	.ai-chips-titel {
		flex: 1 0 100%;
		margin-bottom: 2px;
	}
}


/* ===========================================================================
   40. Slider-Pfeile der Detailseite
   ---------------------------------------------------------------------------
   Ausgangslage: zwei nackte gelbe Winkel, die frei ueber dem Foto schwebten.
   Drei Ursachen, alle drei gemessen:

   1. Die Schaltflaechen waren 146x150px gross, nicht 44x44. gw.css setzt
      "font-size: 60px" auf den Button, und Flatsome bemisst seine
      Button-Polsterung in em: 0 1.2em Polsterung und 2.5em Mindesthoehe
      ergeben bei 60px Schriftgrad 72px seitlich und 150px hoch. Die
      width/height-Angabe von 44px lief dagegen ins Leere, weil
      box-sizing:border-box die Polsterung nicht wegrechnet, sondern die
      Mindesthoehe gewinnt. Zwei unsichtbare Flaechen von je 146x150px lagen
      damit ueber dem Bild.
   2. Sie sassen nicht mittig. gw.css: top:204px - ein fester Wert aus einer
      Zeit mit anderer Bildhoehe. Bei 465px Containerhoehe stand die Mitte
      der Schaltflaeche dadurch bei 279px, also deutlich unterhalb.
   3. Links 15px, rechts 4px - die beiden Seiten waren nicht symmetrisch.

   Dazu kam der Kontrast: Gelb auf Weiss ergibt 1.42:1, und Fahrzeugfotos
   haben durchgehend einen hellen Studiohintergrund. Auf genau diese Stelle
   zielt die Regel aus AGENTS.md 6d - Gelb ist Flaechenfarbe, nie
   Schriftfarbe.

   Jetzt dieselbe Form wie der Knopf "Suchen" und der Pfeil im
   Auswahlfeld: gelbe Flaeche, schwarzes Zeichen (14.8:1), kantig, ohne
   Schatten, Wechsel auf Schwarz beim Ueberfahren.
   ========================================================================= */
.sliderContainer .prev,
.sliderContainer .next {
	/* Flatsomes Button-Grundform zuruecksetzen - sonst bleibt es bei
	   146x150px. */
	box-sizing: border-box !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 48px !important;
	height: 48px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	line-height: 1 !important;
	letter-spacing: 0 !important;
	/* Das Zeichen der Icon-Schrift ist schmal (Seitenverhaeltnis rund 1:2).
	   26px ergeben 13x26 in der 48px-Flaeche - etwa die Haelfte der Hoehe,
	   wie bei den uebrigen Schaltflaechen der Seite. */
	font-size: 26px !important;
	text-transform: none !important;
	text-indent: 0 !important;

	/* Flaeche statt frei schwebendem Winkel. */
	background-color: var(--ai-gelb) !important;
	color: #000 !important;

	/* Mittig statt auf fester Pixelhoehe, und beidseitig buendig. */
	top: 50% !important;
	bottom: auto !important;
	transform: translateY(-50%);
	cursor: pointer;
	transition: background-color .3s ease, color .3s ease;
}

/* Kleiner Einzug statt buendig: so ist auf allen vier Seiten Foto zu sehen
   und die Schaltflaeche liegt zweifelsfrei darauf, nicht daneben. */
.sliderContainer .prev {
	left: 12px !important;
	right: auto !important;
}

.sliderContainer .next {
	right: 12px !important;
	left: auto !important;
}

/* Das Zeichen kommt aus der Icon-Schrift slider.woff und erbt den
   Schriftgrad vom Button - hier sicherheitshalber noch einmal, falls eine
   Altregel den span direkt bemisst. */
.sliderContainer .prev .icon-zurueck,
.sliderContainer .next .icon-vor,
.sliderContainer .prev [class^="icon-"],
.sliderContainer .next [class^="icon-"] {
	display: block;
	font-size: inherit !important;
	line-height: 1 !important;
}

/* Gleiche Umkehrung wie beim Knopf "Suchen" (Abschnitt 8). */
.sliderContainer .prev:hover,
.sliderContainer .next:hover,
.sliderContainer .prev:focus-visible,
.sliderContainer .next:focus-visible {
	background-color: #000 !important;
	color: #fff !important;
}

/* Ein gelber Halo waere auf gelber Flaeche unsichtbar. Der weisse Ring
   traegt hier die Trennung zum Foto, der dunkle Kern den Kontrast. */
.sliderContainer .prev:focus-visible,
.sliderContainer .next:focus-visible {
	outline: 3px solid #000;
	outline-offset: 2px;
	/* !important, weil die Grundregel oben "box-shadow: none !important"
	   setzt, um Flatsomes Button-Schatten loszuwerden - ohne das bliebe der
	   Halo wirkungslos. */
	box-shadow: 0 0 0 6px rgba(255, 255, 255, .92) !important;
}

/* Mit nur einem Bild gibt es nichts zu blaettern (Abschnitt 36). */
.sliderContainer.ohne-fotos .prev,
.sliderContainer.ohne-fotos .next {
	display: none !important;
}


/* ===========================================================================
   41. Bildflaeche der Detailseite: zwei feste Pixelwerte von 2021 abloesen
   ---------------------------------------------------------------------------
   Der rechte Pfeil stand neben dem Foto statt darauf. Gemessen bei 1400px
   Fensterbreite:

     Spalte / .fluidHeight / .sliderContainer   758px breit
     .iosSlider                                 704px breit   (gw.css, fest)
     Bild                                       704 x 528px

   Daraus zweierlei:

   1. **54px Leerraum rechts.** gw.css setzt .iosSlider auf feste 704px. Der
      Pfeil haengt aber am .sliderContainer, und der ist 758px breit - also
      landete er im weissen Streifen rechts neben dem Bild. Der Streifen ist
      erst entstanden, als die Spalte mit der Rasterangleichung vom
      16.09.2026 (Abschnitt 1b) von 1200px auf 1320px Containerbreite
      mitgewachsen ist; 704px stammen aus einer Zeit, als die Spalte genau so
      breit war.

   2. **63px vom Foto abgeschnitten.** .fluidHeight hat in gw.css feste
      465px, das Bild ist bei 704px Breite aber 528px hoch (4:3). Mit
      "overflow: hidden" am .iosSlider fiel der untere Rand jedes Fotos weg.

   Beides loest derselbe Griff, den AGENTS.md 6b schon fuer schmale
   Viewports beschreibt: Hoehe ueber padding-bottom aus dem
   Seitenverhaeltnis ableiten, Breite fliessend. Der iosSlider leitet seine
   Masse vom Container ab - "height: auto" waere zirkulaer und kollabierte
   auf 0, deshalb der Umweg ueber das Innenabstands-Verhaeltnis.

   Das Seitenverhaeltnis ist 4:3 (die Fotos des Haendlersystems sind
   640x480), also 75%.

   Kein object-fit: cover - das wuerde das Foto beschneiden. Container und
   Bild haben dasselbe Verhaeltnis, damit passt das Bild ohne Zuschnitt und
   ohne Verzerrung hinein.

   Auf den Seitentitel bezogen (.page-template-gebrauchtwagen-view), weil
   .fluidHeight auch andere Slider der Website traegt und dort eigene feste
   Hoehen gelten.
   ========================================================================= */
.page-template-gebrauchtwagen-view .fluidHeight {
	height: 0 !important;
	padding: 0 0 75% !important;
}

.page-template-gebrauchtwagen-view .iosSlider {
	width: 100% !important;
	height: 100% !important;
}


/* ===========================================================================
   42. Ueberfahren: lesbare Zustaende
   ---------------------------------------------------------------------------
   gw.css setzt fuer jeden Link:

       a:hover, .uk-link:hover { color: #fecc00; text-decoration: underline }

   #fecc00 auf Weiss ergibt **1.52:1** - beim Ueberfahren verschwand die
   Schrift also praktisch. Gemessen betraf das die Seitenzahlen der
   Blaetterleiste, "Drucken" und die E-Mail-Adresse im Verkaufskasten.

   Am deutlichsten war es an "zurueck"/"vor": Abschnitt 8 legte dort
   zusaetzlich eine gelbe Flaeche unter den Text, ohne die Schriftfarbe
   mitzugeben. Schrift #fecc00 auf Flaeche #ffd500 sind **1.07:1** - der
   Text war beim Ueberfahren vollstaendig weg.

   #8a6d00 ist der Gelbton, der auf Weiss 4.92:1 erreicht; Abschnitt 22
   verwendet ihn bereits fuer aktive Zustaende (AGENTS.md 6d).

   Auf #main bezogen: Kopf- und Fusszeile liegen ausserhalb und behalten
   ihre eigenen Zustaende. Die Reihenfolge ist wichtig - die Regeln fuer
   einzelne Bedienelemente stehen danach und haben dieselbe Spezifitaet,
   gewinnen also ueber die Ladereihenfolge.
   ========================================================================= */
#main a:hover,
#main .uk-link:hover {
	color: #8a6d00;
}

/* --- Blaetterleiste ------------------------------------------------------ */

/* gw.css unterstreicht jeden Link beim Ueberfahren. Auf einer gefuellten
   Schaltflaeche ist das Unruhe, keine Hilfe. */
#main .navigation a:hover {
	text-decoration: none;
}

/* "zurueck" und "vor": gefuellte Flaeche mit schwarzer Schrift - dieselbe
   Umkehrung wie beim Knopf "Suchen" (Abschnitt 8) und bei den
   Slider-Pfeilen (Abschnitt 40). Schwarz auf Gelb sind 14.8:1. */
#main .navigation .left:not(.disable):hover,
#main .navigation .right:not(.disable):hover,
#main .navigation a:hover .left,
#main .navigation a:hover .right {
	background: var(--ai-gelb);
	border-color: var(--ai-gelb);
	color: #000;
}

/* Am Anfang bzw. Ende der Liste ist der Kasten kein Link. Er darf sich dann
   auch nicht wie einer anfuehlen - vorher reagierte er trotzdem auf das
   Ueberfahren, weil die Regel nur an der Klasse .left/.right hing. */
#main .navigation .left.disable,
#main .navigation .right.disable {
	background: #fafafa;
	cursor: default;
}

/* Seitenzahlen bekommen dieselbe Marke wie die beiden Kaesten, damit
   erkennbar ist, was gerade unter dem Zeiger liegt. */
#main .navigation .count a:hover {
	background: var(--ai-gelb);
	color: #000;
	text-decoration: none;
}

/* Die aktuelle Seite ist keine Schaltflaeche, sondern eine Ortsangabe -
   sie behaelt ihre Kennzeichnung auch unter dem Zeiger. */
#main .navigation .count a.active:hover,
#main .navigation .count a[aria-current="page"]:hover {
	background: transparent;
	color: #8a6d00;
	text-decoration: underline;
}

/* --- Einzelne Bedienelemente, die eine eigene Umkehrung haben ------------ */

/* Diese Regeln standen schon weiter oben; hier noch einmal mit #main davor,
   damit sie die Pauschalregel dieses Abschnitts sicher schlagen. */
#main td.merken a:hover {
	background: rgba(0, 0, 0, .8);
	color: #fff;
}

#main td.gemerkt a:hover {
	background: #000;
	border-color: #000;
	color: #fff;
}

/* Bei "Drucken" traegt das <h6> die Flaeche, nicht der umschliessende Link.
   Die weisse Schrift gehoert deshalb an das h6 - am <a> ergaebe sie Weiss
   auf Weiss, sobald die Flaeche des h6 einmal nicht greift. */
#main .drucken h6:hover {
	color: #fff;
}

#main label.merkliste a:hover,
#main .display label.merkliste a:hover {
	color: #000;
}

#main a.ai-chip:hover {
	color: #000;
}

#main a.ai-zuruecksetzen:hover {
	color: #000;
}

#main .sliderContainer .prev:hover,
#main .sliderContainer .next:hover {
	color: #fff;
}


/* ===========================================================================
   43. Druckansicht der Detailseite
   ---------------------------------------------------------------------------
   Ausgangslage: "Drucken" lieferte sechs Seiten. Darauf zu sehen waren das
   Hamburger-Menue, die Social-Icons, das Chat-Widget und die Fusszeile der
   Website ("© 2026 Hosting und Sicherheit by Agentur.jetzt ..."), dazu viel
   Leerraum - und nirgends stand, von welchem Haendler das Blatt stammt.

   Die Druckregeln in gw.css stammen aus der YOOtheme-Zeit und blenden
   Klassen aus, die es nicht mehr gibt: `.tm-toolbar`, `ul.uk-navbar-nav`,
   `.uk-navbar-right`. Die Website laeuft seit Jahren auf Flatsome, wo Kopf
   und Fuss `#header` bzw. `#footer.footer-wrapper` heissen - deshalb ging
   beides ungehindert mit auf das Papier.

   Hier steht die vollstaendige Fassung fuer den heutigen Aufbau: ein
   Datenblatt mit Briefkopf, Foto, technischen Daten, Ausstattung und
   Kontakt. Einfarbig - das ist auf Papier sowohl das sparsamere als auch
   das ruhigere Ergebnis; gw.css setzt dafuer bereits
   `* { color: black !important }`.
   ========================================================================= */

/* Auf dem Bildschirm gehoeren Briefkopf und Fussnote nicht hin. */
.ai-druckkopf,
.ai-druckfuss {
	display: none;
}

@media print {

	/* --- 1. Alles ausblenden, was nicht zum Fahrzeug gehoert -------------
	   Jede Zeile mit "body" davor: der Layout-Block weiter unten setzt
	   .uk-section und .uk-container auf display:block !important. Bei
	   gleicher Spezifitaet gewinnt die spaetere Regel - ohne diesen Zusatz
	   waeren die Ausblendungen wirkungslos, sobald ein Element zugleich
	   .uk-section oder .uk-container traegt (Empfehlungs-Slider!). */
	body #header,
	body .header-wrapper,
	body #masthead,
	body #main-menu,
	body .mobile-sidebar,
	body #footer,
	body .footer-wrapper,
	body .absolute-footer,
	body #cmplz-cookiebanner-container,
	body #cmplz-manage-consent,
	body .cmplz-cookiebanner,
	body #floating-contact-button,
	body #floating-merkliste-button,
	body #aichlseder-merk-meldung,
	body .skip-link,
	body .breadcrump,
	body .merkliste_detail,
	body .merker_detail,
	body .gebrauchtwagen-detail-slider,
	body .carslider_titel,
	body .container_carslider,
	body .featured_carslider,
	body .slider_carslider,
	body .sliderContainer,
	body .verkauf_form,
	body > iframe {
		display: none !important;
	}

	/* Der Empfehlungs-Slider ("Diese Fahrzeuge koennten Sie auch
	   interessieren") steht in einem eigenen Abschnitt. Nur dessen Inhalt
	   auszublenden genuegt nicht - der leere Abschnitt schiebt sonst eine
	   weitere Seite nach. Die Klasse steht im Template, damit es nicht von
	   :has() abhaengt. */
	body .ai-kein-druck {
		display: none !important;
	}

	/* --- 2. Seitenformat -------------------------------------------------- */
	/* gw.css setzt @page { margin: .5cm } - zu knapp fuer ein Blatt, das
	   abgeheftet oder mitgegeben wird. */
	@page {
		size: A4 portrait;
		margin: 14mm 14mm 16mm;
	}

	html,
	body {
		width: auto !important;
		margin: 0 !important;
		padding: 0 !important;
		font-size: 10pt !important;
		line-height: 1.45 !important;
		background: #fff !important;
	}

	#wrapper,
	#main,
	.uk-section,
	.uk-container,
	.uk-grid > * {
		width: auto !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
		float: none !important;
		display: block !important;
	}

	/* Auf dem Bildschirm stehen Daten links und Foto rechts. Untereinander
	   gehoert das Foto nach oben - man erkennt das Fahrzeug am Bild, nicht
	   an der Tabelle. */
	#main .uk-grid {
		display: flex !important;
		flex-direction: column !important;
		width: auto !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.print-right { order: 1; }
	.print-left  { order: 2; }

	.uk-section + .uk-section {
		margin-top: 3mm !important;
	}

	/* --- 3. Briefkopf ----------------------------------------------------- */
	.ai-druckkopf {
		display: flex !important;
		justify-content: space-between;
		align-items: flex-start;
		gap: 10mm;
		padding-bottom: 2.5mm;
		margin-bottom: 6mm;
		border-bottom: 1.5pt solid #000;
		font-size: 8.5pt;
		line-height: 1.4;
	}

	.ai-druckkopf-meta {
		text-align: right;
		white-space: nowrap;
	}

	.ai-druckkopf-titel {
		display: block;
		font-family: Montserrat, "Helvetica Neue", Arial, sans-serif;
		font-size: 12pt;
		font-weight: 900;
		letter-spacing: .04em;
		text-transform: uppercase;
		margin-bottom: 1mm;
	}

	/* --- 4. Fahrzeugname -------------------------------------------------- */
	.gebrauchtwagen-detail-title {
		padding: 0 !important;
		margin: 0 0 4mm !important;
		border: 0 !important;
	}

	.gebrauchtwagen-detail-title h1,
	.page-template-gebrauchtwagen-view #main h1 {
		font-size: 15pt !important;
		line-height: 1.2 !important;
		text-align: left !important;
		margin: 0 !important;
		page-break-after: avoid;
	}

	/* --- 5. Foto ---------------------------------------------------------- */
	/* Abschnitt 41 gibt .fluidHeight fuer den Bildschirm eine Hoehe ueber
	   padding-bottom. Im Druck ist der Slider ausgeblendet, uebrig bleibt
	   das einzelne Bild - der Platzhalter-Innenabstand wuerde darunter eine
	   leere Flaeche von einem Drittel Seitenhoehe aufspannen. */
	.page-template-gebrauchtwagen-view .fluidHeight {
		position: static !important;
		height: auto !important;
		padding: 0 !important;
		margin: 0 0 5mm !important;
	}

	.print {
		display: block !important;
		text-align: center;
		page-break-inside: avoid;
	}

	/* gw.css: .print img { height: 300px !important } - eine feste Hoehe
	   verzerrt jedes Bild, dessen Seitenverhaeltnis nicht zufaellig passt. */
	.print img {
		display: block;
		width: auto !important;
		height: auto !important;
		max-width: 100% !important;
		max-height: 78mm !important;
		margin: 0 auto;
	}

	/* --- 6. Technische Daten ---------------------------------------------- */
	.data,
	.ausstattung,
	.verkauf_data {
		border: 0 !important;
		border-left: 2pt solid #000 !important;
		padding: 0 0 0 4mm !important;
		margin: 0 0 3mm !important;
		min-height: 0 !important;
	}

	/* Nur die kurzen Bloecke zusammenhalten. Die Ausstattung ist je nach
	   Fahrzeug laenger als eine Seite - mit "avoid" bliebe der Rest der
	   vorherigen Seite leer. */
	.data,
	.verkauf_data {
		page-break-inside: avoid;
	}

	.data h3.print,
	h3.print {
		display: block !important;
		font-family: Montserrat, "Helvetica Neue", Arial, sans-serif;
		font-size: 11pt !important;
		font-weight: 700 !important;
		text-align: left !important;
		text-transform: uppercase;
		letter-spacing: .04em;
		margin: 0 0 2mm !important;
		page-break-after: avoid;
	}

	.datatable {
		width: 100% !important;
		border-collapse: collapse;
	}

	.datatable td {
		padding: 1.1mm 0 !important;
		border: 0 !important;
		border-bottom: .4pt solid #bbb !important;
		font-size: 9.5pt !important;
		vertical-align: baseline;
	}

	.datatable tr:last-child td {
		border-bottom: 0 !important;
	}

	.datatable td.datadesc {
		font-size: 8pt !important;
		letter-spacing: .05em;
		text-transform: uppercase;
	}

	.datatable .alignright,
	td.alignright {
		text-align: right !important;
	}

	/* Der Preis ist die wichtigste Zahl auf dem Blatt. */
	.datatable h3.preis,
	h3.preis {
		font-family: Montserrat, "Helvetica Neue", Arial, sans-serif;
		font-size: 15pt !important;
		font-weight: 900 !important;
		margin: 0 !important;
	}

	.datatable h3.bordernone {
		font-size: 11pt !important;
		margin: 0 !important;
	}

	/* --- 7. Ausstattung und weitere Angaben ------------------------------- */
	.ausstattung h3 {
		font-size: 11pt !important;
		text-transform: uppercase;
		letter-spacing: .04em;
		margin: 0 0 2mm !important;
		page-break-after: avoid;
	}

	.ausstattunglist {
		margin: 0 !important;
		padding: 0 !important;
		list-style: none;
	}

	.ausstattunglist li {
		font-size: 9pt !important;
		line-height: 1.42 !important;
		padding-left: 3.5mm;
		margin: 0 !important;
		page-break-inside: avoid;
	}

	.ausstattunglist li::before {
		content: "·";
		margin-left: -3.5mm;
		width: 3.5mm;
		display: inline-block;
	}

	/* Die Ausstattung steht in einer 2x2-Tabelle: oben die beiden
	   Ueberschriften, darunter die beiden Listen. Loest man die Tabelle im
	   Druck in Bloecke auf, rutschen beide Ueberschriften untereinander und
	   stehen dann ueber der falschen Liste. Sie bleibt deshalb Tabelle -
	   zwei Spalten sparen ausserdem eine ganze Seite. */
	.print-ausstattung .ausstattungtable {
		width: 100% !important;
		table-layout: fixed;
		border-collapse: collapse;
	}

	.print-ausstattung .ausstattungtable > tbody > tr > td {
		width: 50%;
		vertical-align: top;
		border: 0 !important;
		padding: 0 5mm 0 0 !important;
	}

	.print-ausstattung .ausstattungtable > tbody > tr > td + td {
		padding: 0 0 0 5mm !important;
	}

	/* gw.css setzt tr { page-break-inside: avoid }. Bei einer langen
	   Ausstattungsliste wuerde die Zeile dadurch nicht umbrechen und der
	   Rest der Seite bliebe leer. */
	.print-ausstattung .ausstattungtable tr,
	.print-ausstattung .ausstattungtable td {
		page-break-inside: auto !important;
	}

	/* Die Aufzaehlungspunkte sind auf dem Bildschirm gelb (Abschnitt 22).
	   Auf Papier ist Gelb praktisch unsichtbar. */
	.ausstattunglist li::before {
		color: #000 !important;
	}

	/* Die Zusatzbeschreibung ist Fliesstext und der laengste Block auf dem
	   Blatt - bei manchen Fahrzeugen 40 Zeilen. Kompakt gesetzt passt das
	   Datenblatt dadurch auch dann auf zwei Seiten. */
	.print-ausstattung p {
		font-size: 8pt !important;
		line-height: 1.38 !important;
		margin: 2.5mm 0 0 !important;
	}

	/* --- 8. Kontakt -------------------------------------------------------- */
	.verkauf,
	.print-ausstattung {
		width: 100% !important;
	}

	.verkauf_data h3 {
		font-size: 11pt !important;
		text-transform: uppercase;
		letter-spacing: .04em;
		margin: 0 0 1.5mm !important;
	}

	/* --- 9. Fussnote ------------------------------------------------------
	   Bleibt im Textfluss. Als "position: fixed" wiederholt Chrome sie zwar
	   auf jedem Blatt, setzt sie dabei aber an den Anfang des Seiteninhalts
	   und ueberdeckt ihn - ein negativer bottom-Wert aendert daran nichts.
	   Im Fluss steht sie dort, wo sie hingehoert: einmal, ganz am Ende. */
	.ai-druckfuss {
		display: block !important;
		margin: 3mm 0 0 !important;
		padding-top: 2mm;
		page-break-inside: avoid;
		border-top: .5pt solid #999;
		font-size: 7.5pt !important;
		line-height: 1.4 !important;
		color: #000 !important;
	}

	/* --- 10. Allgemeines ---------------------------------------------------- */
	/* gw.css unterstreicht im Druck jeden Link - auf Papier ist ein
	   unterstrichenes Wort ohne Ziel nur Unruhe. */
	a,
	a:visited {
		text-decoration: none !important;
	}

	h1, h2, h3, h4, h5, h6 {
		page-break-after: avoid;
	}

	p {
		orphans: 3;
		widows: 3;
	}
}
