/* =========================================================================
   Görnitz Fahrzeuge – Liste und Detailseite
   Greift die Elementor-Website-Einstellungen ab (Farben, Schriften) und
   fällt auf feste Werte zurück, falls die Variablen fehlen.
   ========================================================================= */

.gnz {
	--gnz-ink: var(--e-global-color-primary, #0b0b0d);
	--gnz-text: var(--e-global-color-text, #4d4d4d);
	--gnz-muted: #7b7b7b;
	--gnz-line: var(--e-global-color-e3fd83f, #e4e4e4);
	--gnz-line-strong: #bdbdbd;
	--gnz-accent: var(--e-global-color-accent, #0166b1);
	--gnz-paper: #ffffff;
	--gnz-paper-2: #f5f5f4;
	--gnz-dark: #0b0b0d;
	--gnz-dark-2: #17171a;
	--gnz-on-dark-muted: rgba(255, 255, 255, .62);

	--gnz-font-head: var(--e-global-typography-c8f2b52-font-family, "Inter Tight"), "Inter", system-ui, sans-serif;
	--gnz-font-body: var(--e-global-typography-de0dca1-font-family, "Inter Tight"), "Inter", system-ui, sans-serif;
	--gnz-font-btn: var(--e-global-typography-778047a-font-family, "BMW Regular"), var(--gnz-font-head);

	--gnz-radius: 6px;
	--gnz-dur: .28s;
	--gnz-ease: cubic-bezier(.22, 1, .36, 1);

	font-family: var(--gnz-font-body);
	font-size: 1rem;
	line-height: 1.5;
	color: var(--gnz-text);
	-webkit-font-smoothing: antialiased;
}

.gnz *,
.gnz *::before,
.gnz *::after { box-sizing: border-box; }

.gnz :focus-visible {
	outline: 2px solid var(--gnz-accent);
	outline-offset: 3px;
}

.gnz img { max-width: 100%; height: auto; }

/* Kleine Versalbeschriftung, wird überall für Sekundärinfos benutzt */
.gnz .gnz-eyebrow,
.gnz .gnz-card__eyebrow,
.gnz .gnz-card__facts dt,
.gnz .gnz-facts dt,
.gnz .gnz-crumbs,
.gnz .gnz-list__sort label,
.gnz .gnz-tech__title {
	font-family: var(--gnz-font-head);
	font-size: .72rem;
	font-weight: 500;
	letter-spacing: .09em;
	text-transform: uppercase;
	line-height: 1.3;
	color: var(--gnz-muted);
}

.gnz .gnz-eyebrow { margin: 0; }
.gnz .gnz-eyebrow--light { color: var(--gnz-on-dark-muted); }

/* Eigene Buttons, unabhängig von den Kit-Regeln für button/.elementor-button */
.gnz .gnz-ibtn {
	appearance: none;
	-webkit-appearance: none;
	background: none;
	border: 0;
	border-radius: 0;
	padding: 0;
	margin: 0;
	font: inherit;
	color: inherit;
	line-height: 1;
	text-transform: none;
	cursor: pointer;
}

/* Das Kit färbt button:hover schwarz, das darf hier nicht durchschlagen */
.gnz .gnz-ibtn:hover,
.gnz .gnz-ibtn:focus,
.gnz .gnz-ibtn:active {
	background: none;
	color: inherit;
	border-style: none;
}

.gnz .gnz-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .55rem;
	min-height: 3.25rem;
	padding: .9rem 1.25rem;
	border-radius: 3px;
	border: 1px solid transparent;
	font-family: var(--gnz-font-btn);
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: .01em;
	text-decoration: none;
	text-transform: none;
	cursor: pointer;
	transition: background-color var(--gnz-dur) var(--gnz-ease), color var(--gnz-dur) var(--gnz-ease), border-color var(--gnz-dur) var(--gnz-ease);
}

.gnz .gnz-btn svg { flex: none; }

.gnz .gnz-btn--primary { background: var(--gnz-accent); color: #fff; }
.gnz .gnz-btn--primary:hover,
.gnz .gnz-btn--primary:focus-visible { background: var(--gnz-ink); color: #fff; }

.gnz .gnz-btn--ghost { background: transparent; color: var(--gnz-ink); border-color: var(--gnz-ink); }
.gnz .gnz-btn--ghost:hover,
.gnz .gnz-btn--ghost:focus-visible { background: var(--gnz-ink); color: #fff; }

.gnz .gnz-btn--light { background: #fff; color: var(--gnz-ink); }
.gnz .gnz-btn--light:hover,
.gnz .gnz-btn--light:focus-visible { background: var(--gnz-accent); color: #fff; }

.gnz .gnz-btn--ghost-light { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .4); }
.gnz .gnz-btn--ghost-light:hover,
.gnz .gnz-btn--ghost-light:focus-visible { border-color: #fff; background: rgba(255, 255, 255, .08); color: #fff; }

/* =========================================================================
   Liste
   ========================================================================= */

.gnz-list { scroll-margin-top: var(--gnz-sticky-offset, 120px); }

.gnz .gnz-list__bar {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem 2rem;
	flex-wrap: wrap;
	padding-bottom: 1rem;
	margin-bottom: 1.75rem;
	border-bottom: 1px solid var(--gnz-ink);
}

.gnz .gnz-list__count {
	margin: 0;
	font-family: var(--gnz-font-head);
	font-size: .95rem;
	font-weight: 500;
	color: var(--gnz-text);
}

.gnz .gnz-list__count strong {
	display: inline-block;
	margin-right: .3rem;
	font-size: 1.75rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: -.03em;
	color: var(--gnz-ink);
	font-variant-numeric: tabular-nums;
}

.gnz .gnz-list__sort {
	display: flex;
	align-items: center;
	gap: .75rem;
	margin: 0;
}

.gnz .gnz-select {
	position: relative;
	display: inline-block;
}

.gnz .gnz-select::after {
	content: "";
	position: absolute;
	right: .85rem;
	top: 50%;
	width: .5rem;
	height: .5rem;
	margin-top: -.4rem;
	border-right: 1.5px solid var(--gnz-ink);
	border-bottom: 1.5px solid var(--gnz-ink);
	transform: rotate(45deg);
	pointer-events: none;
}

.gnz .gnz-select select {
	appearance: none;
	-webkit-appearance: none;
	margin: 0;
	padding: .6rem 2.4rem .6rem .9rem;
	border: 1px solid var(--gnz-line-strong);
	border-radius: 3px;
	background: var(--gnz-paper);
	font-family: var(--gnz-font-head);
	font-size: .9rem;
	font-weight: 500;
	line-height: 1.2;
	color: var(--gnz-ink);
	cursor: pointer;
	transition: border-color var(--gnz-dur);
}

.gnz .gnz-select select:hover { border-color: var(--gnz-ink); }

.gnz .gnz-list__go {
	appearance: none;
	padding: .6rem .9rem;
	border: 1px solid var(--gnz-ink);
	border-radius: 3px;
	background: var(--gnz-ink);
	color: #fff;
	font-family: var(--gnz-font-head);
	font-size: .9rem;
	font-weight: 500;
	line-height: 1.2;
	text-transform: none;
	cursor: pointer;
}

.gnz-js .gnz .gnz-list__go { display: none; }

.gnz .gnz-empty {
	margin: 0;
	padding: 3rem 1.5rem;
	border: 1px dashed var(--gnz-line-strong);
	border-radius: var(--gnz-radius);
	text-align: center;
	color: var(--gnz-text);
}

/* Raster: 1 / 2 / 3 Spalten ------------------------------------------- */

.gnz .gnz-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}

@media (min-width: 640px) {
	.gnz .gnz-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
	.gnz .gnz-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.75rem; }
}

/* Karte ---------------------------------------------------------------- */

.gnz .gnz-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--gnz-paper);
	border: 1px solid var(--gnz-line);
	border-radius: var(--gnz-radius);
	overflow: hidden;
	transition: border-color var(--gnz-dur) var(--gnz-ease), box-shadow var(--gnz-dur) var(--gnz-ease), transform var(--gnz-dur) var(--gnz-ease);
}

.gnz .gnz-card:hover,
.gnz .gnz-card:focus-within {
	border-color: var(--gnz-ink);
	box-shadow: 0 24px 48px -32px rgba(0, 0, 0, .45);
	transform: translateY(-2px);
}

.gnz .gnz-card__media {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--gnz-paper-2);
}

.gnz .gnz-card__media img,
.gnz .gnz-card__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s var(--gnz-ease);
}

.gnz .gnz-card:hover .gnz-card__media img { transform: scale(1.04); }

.gnz .gnz-card__noimg {
	display: grid;
	place-items: center;
	height: 100%;
	color: var(--gnz-line-strong);
}

.gnz .gnz-card__noimg svg { width: 2.5rem; height: 2.5rem; }

.gnz .gnz-card__badge {
	position: absolute;
	top: .8rem;
	left: .8rem;
	padding: .45rem .6rem;
	border-radius: 3px;
	background: var(--gnz-accent);
	color: #fff;
	font-family: var(--gnz-font-head);
	font-size: .68rem;
	font-weight: 600;
	letter-spacing: .09em;
	text-transform: uppercase;
	line-height: 1;
}

.gnz .gnz-card__photos {
	position: absolute;
	right: .8rem;
	bottom: .8rem;
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	padding: .35rem .55rem;
	border-radius: 3px;
	background: rgba(11, 11, 13, .72);
	color: #fff;
	font-family: var(--gnz-font-head);
	font-size: .72rem;
	font-weight: 500;
	line-height: 1;
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}

.gnz .gnz-card__body {
	display: flex;
	flex-direction: column;
	gap: .8rem;
	flex: 1;
	padding: 1.15rem 1.25rem 1.3rem;
}

.gnz .gnz-card__eyebrow {
	display: flex;
	align-items: baseline;
	gap: .6rem;
	margin: 0;
	min-width: 0;
}

.gnz .gnz-card__eyebrow b { color: var(--gnz-ink); font-weight: 600; }

.gnz .gnz-card__eyebrow span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	min-width: 0;
}

.gnz .gnz-card__eyebrow span::before {
	content: "";
	display: inline-block;
	width: 3px;
	height: 3px;
	margin: 0 .55rem 0 0;
	vertical-align: .2em;
	border-radius: 50%;
	background: var(--gnz-line-strong);
}

.gnz h3.gnz-card__title {
	margin: -.2rem 0 0;
	font-family: var(--gnz-font-head);
	font-size: 1.2rem;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: -.015em;
	color: var(--gnz-ink);
	overflow-wrap: anywhere;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.gnz .gnz-card__title a {
	color: inherit;
	text-decoration: none;
}

/* Ganze Karte klickbar, der Link liegt unsichtbar über allem */
.gnz .gnz-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.gnz .gnz-card__title a:focus-visible { outline: none; }

.gnz .gnz-card__price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: .2rem .6rem;
	margin: 0;
	padding-top: .8rem;
	border-top: 1px solid var(--gnz-line);
}

.gnz .gnz-card__price strong {
	font-family: var(--gnz-font-head);
	font-size: 1.55rem;
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -.025em;
	color: var(--gnz-ink);
	font-variant-numeric: tabular-nums;
}

.gnz .gnz-card__price span { font-size: .78rem; color: var(--gnz-muted); }

.gnz .gnz-card__facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .65rem 1rem;
	margin: .1rem 0 0;
}

.gnz .gnz-card__facts div { min-width: 0; }
.gnz .gnz-card__facts dt { margin: 0 0 .15rem; }

.gnz .gnz-card__facts dd {
	margin: 0;
	font-size: .93rem;
	font-weight: 500;
	line-height: 1.3;
	color: var(--gnz-ink);
	font-variant-numeric: tabular-nums;
	overflow-wrap: anywhere;
}

.gnz .gnz-card__envkv {
	margin: 0;
	font-size: .72rem;
	line-height: 1.45;
	color: var(--gnz-muted);
}

.gnz .gnz-card__more {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	margin-top: auto;
	padding-top: .6rem;
	font-family: var(--gnz-font-head);
	font-size: .86rem;
	font-weight: 500;
	color: var(--gnz-ink);
}

.gnz .gnz-card__more svg { transition: transform var(--gnz-dur) var(--gnz-ease); }
.gnz .gnz-card:hover .gnz-card__more { color: var(--gnz-accent); }
.gnz .gnz-card:hover .gnz-card__more svg { transform: translateX(4px); }

/* Seitenzahlen --------------------------------------------------------- */

.gnz .gnz-pager {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .4rem;
	margin: 2.5rem 0 0;
}

.gnz .gnz-pager a,
.gnz .gnz-pager span {
	display: inline-grid;
	place-items: center;
	min-width: 2.75rem;
	height: 2.75rem;
	padding: 0 .75rem;
	border: 1px solid var(--gnz-line);
	border-radius: 3px;
	font-family: var(--gnz-font-head);
	font-size: .95rem;
	font-weight: 500;
	color: var(--gnz-ink);
	text-decoration: none;
	font-variant-numeric: tabular-nums;
	transition: border-color var(--gnz-dur), background-color var(--gnz-dur), color var(--gnz-dur);
}

.gnz .gnz-pager a:hover { border-color: var(--gnz-ink); }
.gnz .gnz-pager .is-current { background: var(--gnz-ink); border-color: var(--gnz-ink); color: #fff; }

/* Rechtstexte ---------------------------------------------------------- */

.gnz .gnz-legal {
	margin-top: 2.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--gnz-line);
	font-size: .75rem;
	line-height: 1.55;
	color: var(--gnz-muted);
}

.gnz .gnz-legal p { margin: 0 0 .6rem; }
.gnz .gnz-legal p:last-child { margin-bottom: 0; }
.gnz .gnz-legal a { color: var(--gnz-text); text-decoration: underline; text-underline-offset: .15em; }
.gnz .gnz-legal a:hover { color: var(--gnz-ink); }

/* =========================================================================
   Detailseite
   ========================================================================= */

.gnz-single,
.gnz-archive { display: block; background: var(--gnz-paper); }

.gnz .gnz-wrap {
	width: min(1350px, 100% - 2rem);
	margin: 0 auto;
	padding: 1.75rem 0 4rem;
}

@media (min-width: 1024px) {
	.gnz .gnz-wrap { padding: 2.5rem 0 5rem; }
}

.gnz .gnz-crumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem;
	margin: 0 0 1.5rem;
}

.gnz .gnz-crumbs a { color: var(--gnz-text); text-decoration: none; transition: color var(--gnz-dur); }
.gnz .gnz-crumbs a:hover { color: var(--gnz-accent); }
.gnz .gnz-crumbs__sep { color: var(--gnz-line-strong); }
.gnz .gnz-crumbs > span:last-child { color: var(--gnz-ink); }

.gnz .gnz-hero { margin: 0 0 1.75rem; }
.gnz .gnz-hero--archive { margin-bottom: 2.5rem; }

.gnz h1.gnz-title {
	margin: .45rem 0 0;
	max-width: 30ch;
	font-family: var(--gnz-font-head);
	font-size: clamp(1.7rem, 1.1rem + 2.2vw, 2.9rem);
	font-weight: 600;
	line-height: 1.08;
	letter-spacing: -.03em;
	color: var(--gnz-ink);
	overflow-wrap: anywhere;
	text-transform: none;
}

.gnz .gnz-single__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.5rem;
	align-items: start;
}

@media (min-width: 1024px) {
	.gnz .gnz-single__grid { grid-template-columns: minmax(0, 1fr) 380px; gap: 2.5rem; }
}

@media (min-width: 1280px) {
	.gnz .gnz-single__grid { grid-template-columns: minmax(0, 1fr) 420px; gap: 3rem; }
}

/* Galerie -------------------------------------------------------------- */

.gnz .gnz-gallery { min-width: 0; }

.gnz .gnz-gallery__stage {
	position: relative;
	border-radius: var(--gnz-radius);
	overflow: hidden;
	background: var(--gnz-paper-2);
}

.gnz .gnz-gallery__stage--empty {
	display: grid;
	place-items: center;
	align-content: center;
	gap: .75rem;
	aspect-ratio: 4 / 3;
	color: var(--gnz-muted);
}

.gnz .gnz-gallery__stage--empty svg { width: 2.5rem; height: 2.5rem; color: var(--gnz-line-strong); }

.gnz .gnz-gallery__track {
	display: flex;
	aspect-ratio: 4 / 3;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: contain;
}

.gnz .gnz-gallery__track::-webkit-scrollbar { display: none; }

.gnz .gnz-gallery__slide {
	flex: 0 0 100%;
	margin: 0;
	scroll-snap-align: start;
	scroll-snap-stop: always;
	cursor: zoom-in;
}

.gnz .gnz-gallery__slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gnz .gnz-gallery__nav,
.gnz .gnz-gallery__zoom {
	position: absolute;
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	color: var(--gnz-ink);
	box-shadow: 0 6px 18px -8px rgba(0, 0, 0, .5);
	transition: background-color var(--gnz-dur), color var(--gnz-dur), transform var(--gnz-dur) var(--gnz-ease), opacity var(--gnz-dur);
}

.gnz .gnz-gallery__nav:hover,
.gnz .gnz-gallery__zoom:hover { background: var(--gnz-ink); color: #fff; }

.gnz .gnz-gallery__nav { top: 50%; transform: translateY(-50%); }
.gnz .gnz-gallery__nav--prev { left: 1rem; }
.gnz .gnz-gallery__nav--next { right: 1rem; }
.gnz .gnz-gallery__zoom { top: 1rem; right: 1rem; }

@media (hover: hover) {
	.gnz .gnz-gallery__nav { opacity: 0; }
	.gnz .gnz-gallery__stage:hover .gnz-gallery__nav,
	.gnz .gnz-gallery__stage:focus-within .gnz-gallery__nav { opacity: 1; }
}

@media (max-width: 639px) {
	.gnz .gnz-gallery__nav { display: none; }
}

.gnz .gnz-gallery__counter {
	position: absolute;
	left: 1rem;
	bottom: 1rem;
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	padding: .4rem .6rem;
	border-radius: 3px;
	background: rgba(11, 11, 13, .72);
	color: #fff;
	font-family: var(--gnz-font-head);
	font-size: .75rem;
	font-weight: 500;
	line-height: 1;
	font-variant-numeric: tabular-nums;
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}

.gnz .gnz-gallery__counter-sep { opacity: .5; }

.gnz .gnz-gallery__thumbs {
	display: flex;
	gap: .5rem;
	margin-top: .6rem;
	padding-bottom: .35rem;
	overflow-x: auto;
	scrollbar-width: thin;
	scrollbar-color: var(--gnz-line-strong) transparent;
}

.gnz .gnz-gallery__thumb {
	flex: 0 0 auto;
	width: 5.5rem;
	aspect-ratio: 4 / 3;
	border-radius: 3px;
	overflow: hidden;
	opacity: .55;
	outline-offset: 2px;
	transition: opacity var(--gnz-dur);
}

.gnz .gnz-gallery__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gnz .gnz-gallery__thumb:hover { opacity: .85; }

.gnz .gnz-gallery__thumb.is-active {
	opacity: 1;
	box-shadow: inset 0 0 0 2px var(--gnz-ink);
}

.gnz .gnz-gallery__thumb.is-active img { mix-blend-mode: multiply; }

/* Preisbox ------------------------------------------------------------- */

.gnz .gnz-buy {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	padding: 1.5rem;
	border: 1px solid var(--gnz-line);
	border-radius: var(--gnz-radius);
	background: var(--gnz-paper);
}

@media (min-width: 1024px) {
	.gnz .gnz-buy {
		position: sticky;
		top: calc(var(--gnz-sticky-offset, 120px) + 1rem);
		padding: 1.75rem;
	}
}

.gnz .gnz-buy__price {
	display: flex;
	flex-direction: column;
	gap: .35rem;
	margin: 0;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--gnz-ink);
}

.gnz .gnz-buy__price strong {
	font-family: var(--gnz-font-head);
	font-size: 2.35rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: -.035em;
	color: var(--gnz-ink);
	font-variant-numeric: tabular-nums;
}

.gnz .gnz-buy__price span { font-size: .82rem; color: var(--gnz-muted); }

.gnz .gnz-facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .9rem 1rem;
	margin: 0;
}

.gnz .gnz-facts div { min-width: 0; }
.gnz .gnz-facts dt { margin: 0 0 .2rem; }

.gnz .gnz-facts dd {
	margin: 0;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.3;
	color: var(--gnz-ink);
	font-variant-numeric: tabular-nums;
	overflow-wrap: anywhere;
}

.gnz .gnz-buy__actions {
	display: flex;
	flex-direction: column;
	gap: .6rem;
	padding-top: .25rem;
}

.gnz .gnz-buy__actions .gnz-btn { width: 100%; }

.gnz .gnz-buy__meta,
.gnz .gnz-buy__note,
.gnz .gnz-buy__mobile {
	margin: 0;
	font-size: .78rem;
	line-height: 1.45;
	color: var(--gnz-muted);
}

.gnz .gnz-buy__meta { margin-top: -.5rem; font-variant-numeric: tabular-nums; }
.gnz .gnz-buy__note { margin-top: -.9rem; }

.gnz .gnz-buy__mobile a {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	color: var(--gnz-text);
	text-decoration: none;
	border-bottom: 1px solid var(--gnz-line-strong);
	transition: color var(--gnz-dur), border-color var(--gnz-dur);
}

.gnz .gnz-buy__mobile a:hover { color: var(--gnz-ink); border-color: var(--gnz-ink); }

/* Abschnitte ----------------------------------------------------------- */

.gnz .gnz-single__body {
	display: grid;
	gap: 3.5rem;
	margin-top: 3.5rem;
}

@media (min-width: 1024px) {
	.gnz .gnz-single__body { gap: 4.5rem; margin-top: 4.5rem; }
}

.gnz h2.gnz-h,
.gnz .gnz-h {
	display: flex;
	align-items: baseline;
	gap: .75rem;
	margin: 0 0 1.5rem;
	font-family: var(--gnz-font-head);
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -.025em;
	color: var(--gnz-ink);
	text-transform: none;
}

.gnz h2.gnz-h::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--gnz-line);
	transform: translateY(-.3em);
}

.gnz .gnz-h__n {
	font-size: .8rem;
	font-weight: 500;
	letter-spacing: .05em;
	color: var(--gnz-muted);
	font-variant-numeric: tabular-nums;
}

.gnz .gnz-h--light { color: #fff; }

/* Verbrauch und Emissionen */

.gnz .gnz-envkv__panel {
	display: grid;
	gap: 1.5rem;
	padding: 1.5rem;
	border-radius: var(--gnz-radius);
	background: var(--gnz-paper-2);
}

@media (min-width: 768px) {
	.gnz .gnz-envkv__panel { grid-template-columns: minmax(0, 1fr) auto; padding: 2rem; }
}

.gnz .gnz-envkv__rows { margin: 0; }

.gnz .gnz-envkv__rows > div {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: .5rem 1.5rem;
	padding: .65rem 0;
	border-bottom: 1px solid rgba(0, 0, 0, .08);
}

.gnz .gnz-envkv__rows > div:last-child { border-bottom: 0; }
.gnz .gnz-envkv__rows dt { font-size: .9rem; color: var(--gnz-text); }
.gnz .gnz-envkv__rows dd { margin: 0; font-size: .95rem; font-weight: 500; color: var(--gnz-ink); font-variant-numeric: tabular-nums; }
.gnz .gnz-envkv__rows dd small { display: block; margin-top: .15rem; font-size: .78rem; font-weight: 400; color: var(--gnz-muted); }

.gnz .gnz-envkv__class { margin: 0; }
.gnz .gnz-envkv__class img { display: block; width: 100%; max-width: 260px; height: auto; border-radius: 3px; }

/* Ausstattung */

.gnz .gnz-chips {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gnz .gnz-chips li {
	margin: 0;
	padding: .5rem .85rem;
	border: 1px solid var(--gnz-line);
	border-radius: 999px;
	background: var(--gnz-paper);
	font-size: .9rem;
	line-height: 1.2;
	color: var(--gnz-ink);
	list-style: none;
}

.gnz .gnz-chips--collapsible:not(.is-open) .gnz-chips__extra { display: none; }

.gnz .gnz-more {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	margin-top: 1.25rem;
	padding-bottom: .15rem;
	border-bottom: 1px solid var(--gnz-ink);
	font-family: var(--gnz-font-head);
	font-size: .9rem;
	font-weight: 500;
	color: var(--gnz-ink);
	transition: color var(--gnz-dur), border-color var(--gnz-dur);
}

.gnz .gnz-more:hover { color: var(--gnz-accent); border-color: var(--gnz-accent); }

/* Technische Daten */

.gnz .gnz-tech {
	display: grid;
	gap: 2rem 3.5rem;
}

@media (min-width: 768px) {
	.gnz .gnz-tech { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.gnz .gnz-tech__group { min-width: 0; }

.gnz h3.gnz-tech__title {
	margin: 0 0 .35rem;
	padding-bottom: .6rem;
	border-bottom: 1px solid var(--gnz-ink);
	color: var(--gnz-ink);
}

.gnz .gnz-data { margin: 0; }

.gnz .gnz-data > div {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	gap: .5rem 1.25rem;
	padding: .65rem 0;
	border-bottom: 1px solid var(--gnz-line);
}

.gnz .gnz-data dt { font-size: .9rem; color: var(--gnz-text); }

.gnz .gnz-data dd {
	margin: 0;
	font-size: .95rem;
	font-weight: 500;
	color: var(--gnz-ink);
	font-variant-numeric: tabular-nums;
	overflow-wrap: anywhere;
}

/* Händlerbeschreibung */

.gnz .gnz-dealer {
	border-top: 1px solid var(--gnz-ink);
	border-bottom: 1px solid var(--gnz-line);
}

.gnz .gnz-dealer summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.15rem 0;
	list-style: none;
	cursor: pointer;
}

.gnz .gnz-dealer summary::-webkit-details-marker { display: none; }
.gnz .gnz-dealer summary .gnz-h { margin: 0; }

.gnz .gnz-dealer__icon {
	position: relative;
	flex: none;
	width: 1.5rem;
	height: 1.5rem;
}

.gnz .gnz-dealer__icon::before,
.gnz .gnz-dealer__icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1rem;
	height: 1.5px;
	background: var(--gnz-ink);
	transform: translate(-50%, -50%);
	transition: transform var(--gnz-dur) var(--gnz-ease);
}

.gnz .gnz-dealer__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.gnz .gnz-dealer[open] .gnz-dealer__icon::after { transform: translate(-50%, -50%) rotate(0deg); }

.gnz .gnz-dealer__text {
	max-width: 72ch;
	padding: .25rem 0 1.75rem;
	font-size: .95rem;
	line-height: 1.6;
	overflow-wrap: anywhere;
}

.gnz .gnz-dealer__text p,
.gnz .gnz-dealer__text ul,
.gnz .gnz-dealer__text ol { margin: 0 0 1em; }

.gnz .gnz-dealer__text ul,
.gnz .gnz-dealer__text ol { padding-left: 1.25em; }

.gnz .gnz-dealer__text a { color: var(--gnz-accent); }

.gnz .gnz-dealer__text :is(h1, h2, h3, h4, h5, h6) {
	margin: 1.5em 0 .5em;
	font-family: var(--gnz-font-head);
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--gnz-ink);
}

/* Kontakt (dunkler Block) */

.gnz .gnz-contact {
	display: grid;
	gap: 1.75rem;
	padding: 2rem 1.5rem;
	border-radius: var(--gnz-radius);
	background:
		radial-gradient(120% 140% at 100% 0%, rgba(1, 102, 177, .28) 0%, rgba(1, 102, 177, 0) 55%),
		var(--gnz-dark);
	color: #fff;
}

@media (min-width: 768px) {
	.gnz .gnz-contact { grid-template-columns: 1.1fr 1fr; padding: 2.75rem 2.5rem; gap: 2.5rem; }
}

.gnz .gnz-contact h2.gnz-h { margin: .5rem 0 1.25rem; font-size: 1.75rem; color: #fff; }
.gnz .gnz-contact h2.gnz-h::after { display: none; }

.gnz .gnz-contact__address {
	font-style: normal;
	font-size: 1rem;
	line-height: 1.7;
	color: var(--gnz-on-dark-muted);
}

.gnz .gnz-contact__address a {
	color: #fff;
	text-decoration: none;
	border-bottom: 1px solid rgba(255, 255, 255, .3);
	transition: border-color var(--gnz-dur);
}

.gnz .gnz-contact__address a:hover { border-color: #fff; }

.gnz .gnz-contact__actions {
	display: flex;
	flex-direction: column;
	gap: .6rem;
	justify-content: center;
}

.gnz .gnz-contact__actions p {
	margin: 0 0 .6rem;
	font-size: .95rem;
	line-height: 1.55;
	color: var(--gnz-on-dark-muted);
}

@media (min-width: 768px) {
	.gnz .gnz-contact__actions { padding-left: 2.5rem; border-left: 1px solid rgba(255, 255, 255, .12); }
}

.gnz .gnz-back { margin: 0; }

.gnz .gnz-back a {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	font-family: var(--gnz-font-head);
	font-size: .95rem;
	font-weight: 500;
	color: var(--gnz-ink);
	text-decoration: none;
}

.gnz .gnz-back a svg { transition: transform var(--gnz-dur) var(--gnz-ease); }
.gnz .gnz-back a:hover svg { transform: translateX(-4px); }

/* Lightbox ------------------------------------------------------------- */

.gnz-lightbox {
	width: 100vw;
	max-width: 100vw;
	height: 100vh;
	max-height: 100vh;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #fff;
	overflow: hidden;
}

.gnz-lightbox::backdrop { background: rgba(11, 11, 13, .94); }

.gnz-lightbox__inner {
	position: relative;
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	padding: 4rem 1rem;
}

.gnz-lightbox__img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	border-radius: 3px;
	box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .8);
}

.gnz-lightbox .gnz-ibtn {
	appearance: none;
	background: rgba(255, 255, 255, .1);
	border: 0;
	border-radius: 50%;
	padding: 0;
	margin: 0;
	color: #fff;
	cursor: pointer;
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	line-height: 1;
	transition: background-color .2s;
}

.gnz-lightbox .gnz-ibtn:hover { background: rgba(255, 255, 255, .22); }
.gnz-lightbox .gnz-ibtn:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

.gnz-lightbox__close { position: absolute; top: 1rem; right: 1rem; }
.gnz-lightbox__nav { position: absolute; top: 50%; transform: translateY(-50%); }
.gnz-lightbox__prev { left: 1rem; }
.gnz-lightbox__next { right: 1rem; }

.gnz-lightbox__counter {
	position: absolute;
	bottom: 1.25rem;
	left: 50%;
	transform: translateX(-50%);
	font-family: "Inter Tight", system-ui, sans-serif;
	font-size: .85rem;
	font-variant-numeric: tabular-nums;
	color: rgba(255, 255, 255, .7);
}

html.gnz-lightbox-open { overflow: hidden; }

/* Bewegung reduzieren -------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	.gnz *,
	.gnz *::before,
	.gnz *::after { transition: none !important; }
	.gnz .gnz-gallery__track { scroll-behavior: auto; }
}
