/*
Theme Name: zumtech
Description: Theme für ABECO + Zumtech Drucklufttechnik AG.
Author: let's automate GmbH
Version: 0.2.0
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: zumtech
*/

:root {
	--zt-radius: 8px;
	--zt-schatten: 0 1px 2px rgba(16, 24, 32, .06), 0 4px 16px rgba(16, 24, 32, .06);
	--zt-schatten-hoch: 0 2px 4px rgba(16, 24, 32, .08), 0 12px 32px rgba(16, 24, 32, .12);
}

/* ------------------------------------------------------------ Barrierefreiheit */
.zt-sprunglink {
	position: absolute; left: 1rem; top: -4rem; z-index: 1000;
	background: var(--wp--preset--color--dunkel); color: #fff;
	padding: .75rem 1rem; border-radius: 4px; text-decoration: none;
}
.zt-sprunglink:focus { top: 1rem; }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--preset--color--blau-dunkel);
	outline-offset: 2px;
}
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* ------------------------------------------------------------ Grundlagen */
h1, h2, h3, h4 { letter-spacing: -0.015em; }
.wp-element-button, .wp-block-button__link { border-radius: 6px; transition: background-color .15s, color .15s, border-color .15s; }
.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 1.5px solid var(--wp--preset--color--text); background: transparent; color: var(--wp--preset--color--text);
	padding: calc(.75rem - 1.5px) calc(1.5rem - 1.5px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { border-color: var(--wp--preset--color--rot); color: var(--wp--preset--color--rot); }
.wp-block-button.zt-hell > .wp-block-button__link { color: #fff; border-color: rgba(255,255,255,.85); }
.wp-block-button.zt-hell > .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--text); border-color: #fff; }
.wp-block-buttons { gap: .75rem; }

/* ------------------------------------------------------------ Kopf */
.zt-topbar {
	background: var(--wp--preset--color--dunkel);
	font-size: var(--wp--preset--font-size--klein);
	padding-block: .4rem;
}
.zt-topbar .wp-block-group { row-gap: .25rem !important; }
.zt-topbar p { margin: 0; }
.zt-topbar a { color: #e8e8e8; text-decoration: none; }
.zt-topbar a:hover { color: #fff; text-decoration: underline; }
.zt-topbar .zt-hotline a { color: #ff9a8f; font-weight: 600; }
.zt-kopf {
	position: sticky; top: 0; z-index: 50;
	background: rgba(255,255,255,.97);
	backdrop-filter: saturate(1.4) blur(8px);
	box-shadow: 0 1px 0 rgba(16,24,32,.08), 0 6px 20px rgba(16,24,32,.06);
	padding-block: .8rem;
}
.zt-logo { display: block; line-height: 0; }
.zt-logo img { width: clamp(170px, 20vw, 230px); height: auto; }
.zt-kopf .wp-block-navigation { gap: 1.75rem; font-size: 1rem; }
.zt-kopf .wp-block-navigation a { text-decoration: none; }
.zt-kopf .wp-block-navigation .wp-block-navigation-item__content { padding-block: .35rem; border-bottom: 2px solid transparent; }
.zt-kopf .wp-block-navigation .wp-block-navigation-item__content:hover,
.zt-kopf .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content { color: var(--wp--preset--color--rot); border-bottom-color: var(--wp--preset--color--rot); }
.zt-kopf .wp-block-navigation__submenu-container {
	min-width: 18rem; font-weight: 400; padding: .5rem 0 !important;
	border: 0 !important; border-radius: var(--zt-radius); box-shadow: var(--zt-schatten-hoch);
}
.zt-kopf .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .45rem 1.1rem !important; border: 0 !important; }
.zt-kopf .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--flaeche); }

/* ------------------------------------------------------------ Seitenaufbau */
.zt-brotkrumen ol { list-style: none; display: flex; flex-wrap: wrap; gap: .25rem .5rem; padding: 0; margin: 0 0 1.25rem; font-size: var(--wp--preset--font-size--klein); color: var(--wp--preset--color--text-hell); }
.zt-brotkrumen li + li::before { content: "›"; margin-right: .5rem; }
.zt-brotkrumen a { color: inherit; text-decoration: none; }
.zt-brotkrumen a:hover { color: var(--wp--preset--color--rot); text-decoration: underline; }
main > .wp-block-post-title { margin-bottom: var(--wp--preset--spacing--40); }
.entry-content > h2, .entry-content > .wp-block-heading { margin-top: var(--wp--preset--spacing--50); }

/* Abschnitte (Startseite, ganze Breite) */
.zt-abschnitt { padding-block: var(--wp--preset--spacing--60); margin-block-start: 0 !important; }
.zt-flaeche { background: var(--wp--preset--color--flaeche); }
.zt-titel { margin-bottom: .5rem; }
.zt-titel::after { content: ""; display: block; width: 48px; height: 3px; background: var(--wp--preset--color--rot); margin: .9rem auto 0; border-radius: 2px; }
.zt-titel-text { max-width: 44rem; margin: 0 auto var(--wp--preset--spacing--50) !important; color: var(--wp--preset--color--text-hell); }
.zt-dachzeile { text-transform: uppercase; letter-spacing: .1em; font-size: .8rem; font-weight: 700; margin: 0; }
.zt-dachzeile-rot { color: var(--wp--preset--color--rot); }
.entry-content > .wp-block-group.alignfull + .wp-block-group.alignfull, .entry-content > .alignfull + .alignfull { margin-block-start: 0; }

/* Einstieg */
.zt-held { margin-block-start: 0 !important; padding-block: var(--wp--preset--spacing--60) !important; }
.zt-held::before { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(20,26,32,.82) 0%, rgba(20,26,32,.55) 45%, rgba(20,26,32,.05) 80%); z-index: 1; }
.zt-held .wp-block-cover__inner-container { z-index: 2; }
.zt-held .zt-dachzeile { color: #fff; opacity: .9; }
.zt-held h1 { color: #fff; font-size: clamp(2.1rem, 4.6vw, 3.6rem); font-weight: 700; line-height: 1.12; margin: .6rem 0 1rem; }
.zt-held-text { color: #fff; font-size: clamp(1.05rem, 1.6vw, 1.3rem); max-width: 36rem; margin-bottom: 1.75rem; }

/* Einleitung mit Kennzahlen */
.zt-einleitung { gap: var(--wp--preset--spacing--50) !important; align-items: center !important; }
.zt-einleitung-text { border-left: 4px solid var(--wp--preset--color--rot); padding-left: 1.5rem; }
.zt-lead { font-size: var(--wp--preset--font-size--gross); font-weight: 600; line-height: 1.5; }
.zt-zahlen { gap: 1rem !important; }
.zt-zahl { background: var(--wp--preset--color--flaeche); border-radius: var(--zt-radius); padding: 1.25rem; gap: .1rem !important; }
.zt-zahl p { margin: 0; }
.zt-zahl-wert { font-size: 2rem; font-weight: 800; color: var(--wp--preset--color--rot); line-height: 1.1; }
.zt-zahl-text { font-size: var(--wp--preset--font-size--klein); color: var(--wp--preset--color--text-hell); }

/* Karten: Sortiment, Angebote, Blog, Produkte */
.zt-kats, .zt-angebote, .zt-produkte { gap: 1.25rem !important; }
.zt-kat, .zt-angebot, .zt-karte, .zt-produkt {
	position: relative; background: var(--zt-weiss); border-radius: var(--zt-radius); box-shadow: var(--zt-schatten);
	overflow: hidden; gap: .25rem !important; transition: box-shadow .2s, transform .2s; height: 100%;
}
.zt-kat:hover, .zt-karte:hover, .zt-produkt:hover { box-shadow: var(--zt-schatten-hoch); transform: translateY(-2px); }
.zt-kat .zt-karte-bild, .zt-produkt .zt-karte-bild, .zt-angebot .zt-karte-bild { margin: 0; background: #fff; padding: 1rem; border-bottom: 1px solid var(--wp--preset--color--linie); }
.zt-kat .zt-karte-bild img, .zt-produkt .zt-karte-bild img { width: 100%; height: 170px; object-fit: contain; }
.zt-angebot .zt-karte-bild img { width: 100%; height: 220px; object-fit: contain; }
.zt-kat h3, .zt-produkt h3 { font-size: 1.05rem; margin: 0; padding: 1rem 1.1rem 1.1rem; }
.zt-kat h3 a, .zt-produkt h3 a, .zt-leistung h3 a { color: var(--wp--preset--color--text); text-decoration: none; }
.zt-kat h3 a::after, .zt-produkt h3 a::after, .zt-leistung h3 a::after { content: ""; position: absolute; inset: 0; }
.zt-kat:hover h3 a, .zt-produkt:hover h3 a { color: var(--wp--preset--color--rot); }
.zt-produkt h3 { padding-bottom: .25rem; }
.zt-produkt .zt-produkt-text { margin: 0; padding: 0 1.1rem 1.1rem; font-size: var(--wp--preset--font-size--klein); color: var(--wp--preset--color--text-hell); }
.zt-angebot > :not(figure) { padding-inline: 1.5rem; }
.zt-angebot h3 { margin-top: 1.25rem; }
.zt-angebot .wp-block-buttons { padding-bottom: 1.5rem; margin-top: auto; }
.zt-karte { padding-bottom: 1.1rem; }
.zt-karte > *:not(.wp-block-post-featured-image) { padding-inline: 1.1rem; }
.zt-karte figure { margin: 0; }
.zt-karte img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; background: var(--wp--preset--color--flaeche); }
.zt-karte-titel, .zt-karte h2, .zt-karte h3 { font-size: 1.1rem; margin: .75rem 0 0; }
.zt-karte h2 a, .zt-karte h3 a { color: var(--wp--preset--color--text); text-decoration: none; }
.zt-karte h2 a:hover, .zt-karte h3 a:hover { color: var(--wp--preset--color--rot); }
.zt-karte .wp-block-post-excerpt { font-size: var(--wp--preset--font-size--klein); color: var(--wp--preset--color--text-hell); }
.zt-karte .wp-block-post-excerpt__more-text { display: none; }

/* Leistungen mit Symbolen */
.zt-leistungen { gap: 2.5rem 2rem !important; }
.zt-leistung { position: relative; gap: .4rem !important; }
.zt-symbol { display: inline-grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: #fdeceb; color: var(--wp--preset--color--rot); }
.zt-leistung h3 { font-size: 1.1rem; margin: .5rem 0 0; }
.zt-leistung:hover h3 a { color: var(--wp--preset--color--rot); }
.zt-leistung p { margin: 0; color: var(--wp--preset--color--text-hell); }

/* Über uns */
.zt-ueber { gap: var(--wp--preset--spacing--50); }
.zt-ueber .wp-block-media-text__media img { border-radius: var(--zt-radius); box-shadow: var(--zt-schatten); }
.zt-ueber .wp-block-media-text__content { padding: 0 0 0 var(--wp--preset--spacing--50) !important; }

/* Abschluss «Wie können wir helfen?» */

/* Aufruf am Seitenende (Produktseiten) */
.zt-aufruf { background: var(--wp--preset--color--flaeche); padding-block: var(--wp--preset--spacing--50); margin-block-start: 0 !important; }

/* ------------------------------------------------------------ Produktseiten */
.zt-produktkopf { align-items: center; gap: var(--wp--preset--spacing--50) !important; margin-bottom: var(--wp--preset--spacing--50); }
.zt-produktkopf > .wp-block-column:first-child { background: #fff; border-radius: var(--zt-radius); box-shadow: var(--zt-schatten); padding: 1.5rem; }
.zt-produktkopf .wp-block-image img { max-height: 460px; width: auto; max-width: 100%; margin-inline: auto; display: block; }
.zt-produktkopf h1 { font-size: clamp(1.9rem, 3.4vw, 2.6rem); margin-bottom: .25rem; }
.zt-produktkopf .zt-untertitel { color: var(--wp--preset--color--rot); font-size: var(--wp--preset--font-size--gross); font-weight: 700; margin-top: 0; }
.zt-untertitel { color: var(--wp--preset--color--rot); font-weight: 700; }
.entry-content > .wp-block-image img { border-radius: var(--zt-radius); }
.zt-beratung, .zt-produktzeile {
	background: var(--wp--preset--color--flaeche); border-radius: var(--zt-radius);
	padding: var(--wp--preset--spacing--40) !important; gap: var(--wp--preset--spacing--40) !important;
}
.zt-beratung img, .zt-produktzeile img { max-height: 240px; width: auto; margin-inline: auto; display: block; }
.zt-produktzeile { background: var(--zt-weiss); box-shadow: var(--zt-schatten); margin-block: 1.25rem !important; }
.zt-produktzeile + :not(.zt-produktzeile) { margin-top: var(--wp--preset--spacing--60) !important; } /* Luft zwischen Produktboxen und folgendem Text */
.zt-produktzeile h2 { margin: 0 0 .25rem; font-size: var(--wp--preset--font-size--x-gross); }
.zt-produktzeile h3 { color: var(--wp--preset--color--rot); font-size: var(--wp--preset--font-size--normal); margin-top: 0; }

/* Downloads */
.zt-downloads { display: grid; gap: .6rem; }
.zt-downloads .wp-block-file {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem;
	padding: .8rem 1rem; margin: 0; background: var(--zt-weiss);
	border: 1px solid var(--wp--preset--color--linie); border-radius: var(--zt-radius);
	transition: border-color .15s, box-shadow .15s;
}
.zt-downloads .wp-block-file:hover { border-color: var(--wp--preset--color--rot); box-shadow: var(--zt-schatten); }
/* Datei mit Vorschau (inc/downloads.php), auch ausserhalb von .zt-downloads */
.wp-block-file.zt-datei { display: flex; align-items: center; gap: 1rem; flex-wrap: nowrap; font-size: var(--wp--preset--font-size--normal); }
.zt-datei-vorschau { box-sizing: border-box; flex: 0 0 64px; display: flex; align-items: center; justify-content: center; width: 64px; height: 84px; overflow: hidden; border: 1px solid var(--wp--preset--color--linie); border-radius: 3px; background: #fff; }
.zt-datei-bild { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .25s; }
.zt-datei:hover .zt-datei-bild { transform: scale(1.06); }
.zt-datei-typ { font-size: .75rem; font-weight: 700; color: #fff; background: var(--wp--preset--color--dunkel); padding: .15rem .4rem; border-radius: 3px; }
.zt-datei-text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: .15rem; }
.zt-datei-name { font-weight: 600; color: var(--wp--preset--color--text); text-decoration: none; overflow-wrap: anywhere; }
.zt-datei-name:hover { color: var(--wp--preset--color--rot); }
.zt-datei-info { font-size: var(--wp--preset--font-size--klein); color: var(--wp--preset--color--text-hell); }
.zt-datei .wp-block-file__button { flex: 0 0 auto; margin: 0 !important; font-size: .9rem !important; padding: .45rem 1rem !important; }
@media (max-width: 480px) {
	.wp-block-file.zt-datei { flex-wrap: wrap; }
	.zt-datei-vorschau { flex-basis: 48px; width: 48px; height: 64px; }
	.zt-datei-text { flex-basis: calc(100% - 48px - 1rem); }
}
.zt-downloads .wp-block-file__button { margin: 0 !important; font-size: .9rem !important; padding: .45rem 1rem !important; }

/* Tabellen */
.wp-block-table { overflow-x: auto; }
.wp-block-table table { border-collapse: collapse; width: 100%; }
.wp-block-table th, .wp-block-table td { border: 0; border-bottom: 1px solid var(--wp--preset--color--linie); padding: .6rem .8rem; text-align: left; vertical-align: top; }
.wp-block-table thead th { background: var(--wp--preset--color--dunkel); color: #fff; }
.wp-block-table tbody tr:nth-child(even) td { background: var(--wp--preset--color--flaeche); }

/* Teilen-Links auf Produktseiten */
.zt-teilen { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; font-size: var(--wp--preset--font-size--klein); margin-top: var(--wp--preset--spacing--50); margin-bottom: var(--wp--preset--spacing--50); padding-top: 1rem; border-top: 1px solid var(--wp--preset--color--linie); }
.zt-teilen-titel { color: var(--wp--preset--color--text-hell); }
.zt-teilen ul { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.zt-teilen a, .zt-teilen button { display: flex; align-items: center; justify-content: center; width: 3.25rem; height: 2.25rem; border: 0; border-radius: 3px; color: #fff; background: #555; cursor: pointer; transition: filter .2s, transform .2s; }
.zt-teilen a:hover, .zt-teilen button:hover, .zt-teilen a:focus-visible, .zt-teilen button:focus-visible { filter: brightness(.88); transform: translateY(-2px); }
.zt-teilen a:focus-visible, .zt-teilen button:focus-visible { outline: 2px solid var(--wp--preset--color--dunkel); outline-offset: 2px; }
.zt-teilen-linkedin { background: #0a66c2 !important; }
.zt-teilen-xing { background: #0b6f71 !important; }
.zt-teilen-x { background: #222 !important; }
.zt-teilen-whatsapp { background: #1f9e4b !important; }
.zt-teilen-email { background: #c99a06 !important; }
.zt-teilen-drucken { background: #6b8e23 !important; }
@media print { .zt-teilen { display: none; } }

/* Blog */
.zt-zurueck a { text-decoration: none; font-size: var(--wp--preset--font-size--klein); }
.single .wp-block-post-featured-image img { border-radius: var(--zt-radius); }

/* ------------------------------------------------------------ Kontakt */
.zt-kontaktdaten { background: var(--wp--preset--color--flaeche); border-radius: var(--zt-radius); padding: var(--wp--preset--spacing--40) !important; }
.zt-kontaktdaten h2 { font-size: var(--wp--preset--font-size--gross); }
.zt-kontaktdaten .zt-gross a { font-size: 1.35rem; font-weight: 700; color: var(--wp--preset--color--text); text-decoration: none; }
.zt-standorte { gap: 1rem !important; }
.zt-standort { background: var(--zt-weiss); border-radius: var(--zt-radius); box-shadow: var(--zt-schatten); padding: 1.1rem 1.25rem; }
.zt-standort h3 { margin: 0 0 .25rem; font-size: var(--wp--preset--font-size--normal); color: var(--wp--preset--color--rot); }
.zt-standort p { margin: .25rem 0; }
.zt-route a { font-weight: 600; }

/* Formulare */
.zt-formular form { display: grid; gap: 1rem; }
.zt-formular-raster { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem 1.5rem; }
.zt-feld { margin: 0; display: grid; gap: .35rem; }
.zt-breit { grid-column: 1 / -1; }
.zt-feld label, .zt-feld legend { font-weight: 600; font-size: var(--wp--preset--font-size--klein); }
.zt-feld input[type=text], .zt-feld input[type=email], .zt-feld input[type=tel], .zt-feld textarea,
.mc_container input[type=text], .mc_container input[type=email] {
	width: 100%; font: inherit; padding: .7rem .8rem;
	border: 1px solid #8a8a8a; border-radius: 6px; background: var(--zt-weiss); color: var(--wp--preset--color--text);
}
.zt-feld input:focus, .zt-feld textarea:focus, .mc_container input:focus { border-color: var(--wp--preset--color--blau-dunkel); }
.zt-feld [aria-invalid=true] { border: 2px solid var(--wp--preset--color--rot); }
.zt-feldfehler { color: var(--wp--preset--color--rot-dunkel); font-size: var(--wp--preset--font-size--klein); font-weight: 600; }
fieldset.zt-feld { border: 1px solid var(--wp--preset--color--linie); border-radius: 6px; padding: .75rem 1rem; }
.zt-auswahl { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.zt-auswahl label { font-weight: 400; font-size: 1rem; display: inline-flex; gap: .4rem; align-items: center; }
.zt-auswahl input:is([type=radio], [type=checkbox]) { width: 1.15rem; height: 1.15rem; accent-color: var(--wp--preset--color--rot); }
/* Mietdauer: Datumsfelder wie die übrigen Eingabefelder */
.zt-auswahl input[type=date] {
	font: inherit; padding: .55rem .7rem; min-width: 11rem;
	border: 1px solid #8a8a8a; border-radius: 6px; background: var(--zt-weiss); color: var(--wp--preset--color--text);
}
.zt-auswahl input[type=date]:focus { border-color: var(--wp--preset--color--blau-dunkel); }
.zt-pflicht { color: var(--wp--preset--color--rot); }
.zt-hinweis { font-size: var(--wp--preset--font-size--klein); color: var(--wp--preset--color--text-hell); margin: 0; }
.zt-honig { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.zt-formular-meldung { padding: 1rem 1.25rem; border-radius: 6px; font-weight: 600; }
.zt-formular-meldung p { margin: 0; }
.zt-ok { background: #e6f4ea; border-left: 4px solid #2e7d32; }
.zt-fehler { background: #fdecea; border-left: 4px solid var(--wp--preset--color--rot); }
.zt-formular button { cursor: pointer; border: 0; }

/* Mailchimp-Anmeldung (Plugin) im Stil der eigenen Formulare */
.mc_container .mc_merge_var { display: grid; gap: .35rem; margin-bottom: 1rem; }
.mc_container label { font-weight: 600; font-size: var(--wp--preset--font-size--klein); }
.mc_container input[type=submit], .mc_container .button { width: auto !important; background: var(--wp--preset--color--rot) !important; color: #fff !important; border: 0 !important; border-radius: 6px; padding: .75rem 1.5rem !important; font: inherit; font-weight: 600; cursor: pointer; }
.mc_container input[type=submit]:hover { background: var(--wp--preset--color--rot-dunkel) !important; }
.mc_container .mc_success_msg { color: #2e7d32; font-weight: 600; }
.mc_container .mc_error_msg { color: var(--wp--preset--color--rot-dunkel); font-weight: 600; }

/* ------------------------------------------------------------ Fuss */
.zt-fuss { background: var(--wp--preset--color--dunkel); color: #d6d6d6; padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40); margin-top: 0; font-size: var(--wp--preset--font-size--klein); }
.zt-fuss a { color: #fff; }
.zt-fuss .zt-fuss-titel { color: #fff; font-size: .85rem; text-transform: uppercase; letter-spacing: .1em; }
.zt-fuss-liste { list-style: none; padding: 0; }
.zt-fuss-liste li { margin: .35rem 0; }
.zt-fuss-liste a { text-decoration: none; color: #d6d6d6; }
.zt-fuss-liste a:hover { color: #fff; text-decoration: underline; }
.zt-fuss .zt-hotline a { color: #ff9a8f; font-size: 1.15rem; font-weight: 700; }
.zt-fuss hr { border-color: rgba(255,255,255,.15) !important; }
.zt-fuss-unten { color: #b8b8b8; }
.zt-sozial a { color: #fff; }
.wp-site-blocks > footer { margin-block-start: 0; }

/* ------------------------------------------------------------ Handy */
@media (max-width: 781px) {
	.zt-topbar .wp-block-group { justify-content: center !important; column-gap: 1rem !important; }
	.zt-topbar p:not(.zt-hotline):not(:nth-child(2)) { display: none; }
	.zt-held { min-height: 540px !important; }
	.zt-held::before { background: linear-gradient(180deg, rgba(20,26,32,.75) 0%, rgba(20,26,32,.6) 60%, rgba(20,26,32,.35) 100%); }

	.zt-kat .zt-karte-bild img, .zt-produkt .zt-karte-bild img { height: 120px; }
	.zt-leistungen, .zt-angebote { grid-template-columns: 1fr !important; }
	.zt-einleitung-text { padding-left: 1rem; }
	.zt-ueber .wp-block-media-text__content { padding: var(--wp--preset--spacing--40) 0 0 !important; }
	.zt-produktkopf .wp-block-image img { max-height: 280px; }
	.zt-beratung img, .zt-produktzeile img { max-height: 180px; }
}
@media (min-width: 782px) and (max-width: 1080px) {

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

/* Einstieg: Text an der Inhaltsbreite ausrichten, nicht am Fensterrand */
.zt-held .wp-block-cover__inner-container { width: 100% !important; max-width: 1200px; margin-inline: auto !important; }
.zt-held .zt-held-inhalt { max-width: 720px; margin-left: 0 !important; margin-right: auto !important; }
.zt-held .zt-held-inhalt > * { margin-left: 0 !important; max-width: none !important; }

/* Lange deutsche Wörter in Karten und Titeln trennen statt abschneiden */
h1, h2, h3, .zt-kat h3, .zt-produkt h3, .zt-karte-titel { hyphens: auto; -webkit-hyphens: auto; overflow-wrap: break-word; }
@media (max-width: 781px) {
	.zt-kat h3, .zt-produkt h3 { font-size: .95rem; padding: .75rem .8rem .9rem; }
	.zt-kat .zt-karte-bild, .zt-produkt .zt-karte-bild { padding: .6rem; }
}

/* Slider (Sortiment): waagrecht scrollen, Karten rasten ein */
.zt-slider {
	display: flex !important; gap: 1.25rem !important; overflow-x: auto; overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory; scroll-padding-inline: 0; padding: .5rem .25rem 1.25rem; margin-inline: -.25rem;
	scrollbar-width: thin; scrollbar-color: var(--wp--preset--color--grau-logo) transparent;
}
.zt-slider > * { flex: 0 0 calc((100% - 3 * 1.25rem) / 4); scroll-snap-align: start; height: auto; }
.zt-slider:focus-visible { outline-offset: 4px; }
.zt-slider-knoepfe { display: flex; justify-content: center; gap: .75rem; margin-top: .5rem; }
.zt-slider-knoepfe[hidden] { display: none; }
.zt-slider-knopf {
	display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; cursor: pointer;
	background: var(--zt-weiss); color: var(--wp--preset--color--text); border: 1.5px solid var(--wp--preset--color--linie);
	box-shadow: var(--zt-schatten); transition: border-color .15s, color .15s;
}
.zt-slider-knopf:hover:not(:disabled) { border-color: var(--wp--preset--color--rot); color: var(--wp--preset--color--rot); }
.zt-slider-knopf:disabled { opacity: .35; cursor: default; box-shadow: none; }
@media (max-width: 1080px) { .zt-slider > * { flex-basis: calc((100% - 2 * 1.25rem) / 3); } }
@media (max-width: 781px) {
	.zt-slider { gap: .9rem !important; }
	.zt-slider > * { flex-basis: 62%; }
}

/* ------------------------------------------------------------ Seitenkopf und Inhaltsseiten */
.zt-seitenkopf { background: var(--wp--preset--color--flaeche); padding-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50); margin-block-start: 0 !important; }
.zt-seitenkopf .zt-brotkrumen ol { margin-bottom: .75rem; }
.zt-seitenkopf h1 { margin: 0; font-size: clamp(1.9rem, 3.6vw, 2.75rem); }
.zt-seitenkopf h1::after { content: ""; display: block; width: 48px; height: 3px; background: var(--wp--preset--color--rot); margin-top: .9rem; border-radius: 2px; }
.zt-seitenkopf-knapp { padding-block: .9rem; }
.zt-seitenkopf-knapp .zt-brotkrumen ol { margin: 0; }
.zt-seiteninhalt { padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60); margin-block-start: 0 !important; }
.zt-seiteninhalt > :first-child { margin-top: 0; }
main > .wp-block-group + .zt-seiteninhalt, main .zt-seitenkopf + .zt-seiteninhalt { margin-block-start: 0; }

/* Aufzählungen im Inhalt mit Häkchen */
.zt-seiteninhalt ul.wp-block-list:not(.zt-kategorien):not(.zt-fuss-liste) { list-style: none; padding-left: 0; }
.zt-seiteninhalt ul.wp-block-list:not(.zt-kategorien):not(.zt-fuss-liste) > li { position: relative; padding-left: 1.75rem; margin: .45rem 0; }
.zt-seiteninhalt ul.wp-block-list:not(.zt-kategorien):not(.zt-fuss-liste) > li::before {
	content: ""; position: absolute; left: 0; top: .35em; width: 1.05rem; height: 1.05rem; border-radius: 50%;
	background: var(--wp--preset--color--rot) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / 65% no-repeat;
}

/* Bilder im Fliesstext und in Spalten */
.zt-seiteninhalt .wp-block-column > .wp-block-image img, .zt-seiteninhalt > .wp-block-image img { border-radius: var(--zt-radius); }

/* Personenkarten (Bild, Name, Funktion): Unternehmen, Team */
.wp-block-column:has(> .wp-block-image:first-child + .wp-block-heading) {
	background: var(--zt-weiss); border-radius: var(--zt-radius); box-shadow: var(--zt-schatten); overflow: hidden; padding-bottom: 1rem;
}
.wp-block-column:has(> .wp-block-image:first-child + .wp-block-heading) > .wp-block-image { margin: 0; }
.wp-block-column:has(> .wp-block-image:first-child + .wp-block-heading) > .wp-block-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 0; }
.wp-block-column:has(> .wp-block-image:first-child + .wp-block-heading) > :not(.wp-block-image) { padding-inline: 1rem; }
.wp-block-column:has(> .wp-block-image:first-child + .wp-block-heading) > h3 { font-size: 1.05rem; margin: .9rem 0 .2rem; }
.wp-block-column:has(> .wp-block-image:first-child + .wp-block-heading) > p { font-size: var(--wp--preset--font-size--klein); color: var(--wp--preset--color--text-hell); margin: .2rem 0; }
.wp-block-column:has(> .wp-block-image:first-child + .wp-block-heading) > p a { word-break: break-word; }

/* Galerien (Fotostrecken aus Blogbeiträgen) */
.wp-block-gallery.has-nested-images { gap: .6rem; }
.wp-block-gallery.has-nested-images figure.wp-block-image img { border-radius: 6px; }
/* Auf Produktseiten zeigen Galerien Produktansichten: nicht beschneiden */
.page .wp-block-gallery.is-cropped .wp-block-image img { object-fit: contain !important; background: #fff; }

/* Abstand zu Kopf und Fuss bei Beiträgen, Archiven und 404 (die Blogübersicht hat den Seitenkopf mit Bild) */
.single main#inhalt, .archive main#inhalt, .search main#inhalt, .error404 main#inhalt {
	padding-top: var(--wp--preset--spacing--50); padding-bottom: calc(var(--wp--preset--spacing--60) + 1rem);
}
.blog main#inhalt { padding-bottom: calc(var(--wp--preset--spacing--60) + 1rem); }

/* Kopf, Inhalt und Fuss bündig aneinander (WordPress setzt sonst den Blockabstand dazwischen) */
.wp-site-blocks > * { margin-block-start: 0 !important; }

/* Einstieg: langsamer Zoom aufs Foto, Text blendet gestaffelt ein */
.zt-held { overflow: hidden; }
.zt-held .wp-block-cover__image-background { animation: zt-zoom 22s ease-out both; transform-origin: 60% 60%; }
.zt-held-inhalt > * { animation: zt-einblenden .9s cubic-bezier(.2,.7,.2,1) both; }
.zt-held-inhalt > :nth-child(1) { animation-delay: .15s; }
.zt-held-inhalt > :nth-child(2) { animation-delay: .3s; }
.zt-held-inhalt > :nth-child(3) { animation-delay: .45s; }
.zt-held-inhalt > :nth-child(4) { animation-delay: .6s; }
@keyframes zt-zoom { from { transform: scale(1.12); } to { transform: scale(1); } }
@keyframes zt-einblenden { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

/* ------------------------------------------------------------ Kartenslider (Mitte gross, wie Ingersoll Rand) */
.zt-slider.zt-slider-aktiv {
	--zt-karte: clamp(250px, 30vw, 400px);
	gap: 0 !important; align-items: center; padding: 1.5rem calc(50% - var(--zt-karte) / 2) !important; margin-inline: 0;
	scroll-snap-type: x mandatory; scrollbar-width: none;
}
.zt-slider.zt-slider-aktiv::-webkit-scrollbar { display: none; }
.zt-slider.zt-slider-aktiv > * {
	flex: 0 0 var(--zt-karte) !important; scroll-snap-align: center;
	transform: scale(.8); opacity: .7; transition: transform .4s ease, opacity .4s ease, box-shadow .4s ease;
}
.zt-slider.zt-slider-aktiv > .ist-aktiv { transform: scale(1); opacity: 1; box-shadow: var(--zt-schatten-hoch); z-index: 1; }
.zt-slider.zt-slider-aktiv > .zt-kat:hover { transform: scale(.82); }
.zt-slider.zt-slider-aktiv > .zt-kat.ist-aktiv:hover { transform: scale(1.01); }
.zt-slider.zt-slider-aktiv > :not(.ist-aktiv) { cursor: pointer; }
.zt-kat .zt-karte-bild img { height: 200px; }
.zt-kat h3 { padding-bottom: .35rem; }
.zt-kat-text {
	margin: 0; padding: 0 1.1rem 1.25rem; font-size: var(--wp--preset--font-size--klein); color: var(--wp--preset--color--text-hell);
	display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
}
.zt-slider-steuerung { display: flex; align-items: center; justify-content: center; gap: .75rem; flex-wrap: wrap; margin-top: .75rem; }
.zt-slider-steuerung .zt-slider-knopf { border-radius: 8px; width: 46px; height: 46px; border: 1px solid rgba(0,0,0,.12); box-shadow: none; }
.zt-slider-punkte { display: flex; gap: 4px; margin-left: 1.5rem; }
.zt-slider-strich { width: 44px; height: 20px; padding: 0; border: 0; background: none; cursor: pointer; position: relative; }
.zt-slider-strich::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 3px; margin-top: -1.5px; border-radius: 2px; background: #d6d6d6; transition: background .3s; }
.zt-slider-strich:hover::before { background: #a9a9a9; }
.zt-slider-strich.ist-aktiv::before { background: var(--wp--preset--color--text); }
@media (max-width: 781px) {
	.zt-slider.zt-slider-aktiv { --zt-karte: 74vw; }
	.zt-slider.zt-slider-aktiv > * { transform: scale(.88); }
	.zt-slider-punkte { margin-left: 0; width: 100%; justify-content: center; order: 3; }
	.zt-slider-strich { width: 18px; }
}
.zt-kat > .zt-karte-bild, .zt-produkt > .zt-karte-bild, .zt-angebot > .zt-karte-bild { align-self: stretch; width: 100%; box-sizing: border-box; }

/* Sortiment-Slider: Produktbilder 30 % grösser (200 → 260 px) */
.zt-kat .zt-karte-bild img { height: 260px; }
@media (max-width: 781px) { .zt-kat .zt-karte-bild img { height: 220px; } }

/* Abstand zwischen Einleitung und Slider knapper (der Slider bringt eigenen Rand für den Schatten mit) */
.zt-abschnitt:has(.zt-slider) .zt-titel-text { margin-bottom: .25rem !important; }
.zt-titel-text + .zt-slider { margin-top: 0 !important; }

/* ------------------------------------------------------------ Klebender Kopf
   Der ganze Kopfbereich klebt, um die Höhe der dunklen Leiste nach oben verschoben:
   die Leiste scrollt weg, Logo und Navigation bleiben stehen. */
.wp-site-blocks > header.wp-block-template-part { position: sticky; top: calc(-1 * var(--zt-topbar-h, 36px)); z-index: 100; }
.admin-bar .wp-site-blocks > header.wp-block-template-part { top: calc(32px - var(--zt-topbar-h, 36px)); }
.zt-kopf { position: relative; top: auto; transition: padding .25s ease, box-shadow .25s ease; }
.zt-kopf .zt-logo img { transition: width .25s ease; }
.zt-kopf.ist-gescrollt { padding-block: .45rem; box-shadow: 0 1px 0 rgba(16,24,32,.08), 0 8px 24px rgba(16,24,32,.1); }
.zt-kopf.ist-gescrollt .zt-logo img { width: clamp(150px, 16vw, 190px); }
/* Kein backdrop-filter im Kopf: er macht den Kopf zum Bezugsrahmen für position:fixed,
   und das Handy-Menü (Overlay) schrumpft dann auf die Höhe des Kopfs. */
.zt-kopf { backdrop-filter: none; background: var(--zt-weiss); }

/* Handy-Menü (Overlay): linksbündig, Untermenüs eingerückt statt als schwebende Karte */
.zt-kopf .wp-block-navigation__responsive-container.is-menu-open { padding: 1.25rem 1.5rem 2rem !important; }
.zt-kopf .is-menu-open .wp-block-navigation__responsive-container-content { align-items: stretch !important; padding-top: 3rem !important; }
.zt-kopf .is-menu-open .wp-block-navigation__container { align-items: stretch !important; gap: 0 !important; width: 100%; }
.zt-kopf .is-menu-open .wp-block-navigation-item { align-items: stretch !important; width: 100%; border-bottom: 1px solid var(--wp--preset--color--linie); }
.zt-kopf .is-menu-open .wp-block-navigation-item__content { font-size: 1.15rem; padding: .85rem 0 !important; border-bottom: 0 !important; text-align: left; }
.zt-kopf .is-menu-open .wp-block-navigation__submenu-container {
	box-shadow: none !important; border-radius: 0; padding: 0 0 .75rem 1rem !important; min-width: 0; background: transparent !important;
}
.zt-kopf .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { border-bottom: 0; }
.zt-kopf .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1rem; font-weight: 400; padding: .45rem 0 !important; color: var(--wp--preset--color--text-hell); }
.zt-kopf .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: none; color: var(--wp--preset--color--rot); }
.zt-kopf .wp-block-navigation__responsive-container-close { top: 1.25rem !important; right: 1.25rem !important; }
.zt-kopf .wp-block-navigation__responsive-container-close svg, .zt-kopf .wp-block-navigation__responsive-container-open svg { width: 30px; height: 30px; }

/* ------------------------------------------------------------ Megamenü «Produkte» (Desktop) */
.zt-kopf .wp-block-navigation .wp-block-navigation-item.has-child:has(> .zt-mega-container) { position: static; }
.zt-kopf .zt-mega-container {
	left: 0 !important; right: 0 !important; top: 100% !important; margin: 0 !important;
	border: 0 !important; border-radius: 0 !important; padding: 0 !important; background: var(--zt-weiss) !important;
	box-shadow: 0 18px 40px rgba(16,24,32,.14) !important; border-top: 1px solid var(--wp--preset--color--linie) !important;
}
.zt-kopf .has-child:hover > .zt-mega-container, .zt-kopf .has-child:focus-within > .zt-mega-container,
.zt-kopf .has-child > [aria-expanded="true"] ~ .zt-mega-container { width: auto !important; height: auto !important; }
.zt-mega-eintrag { width: 100%; display: block !important; }
.zt-mega {
	display: grid; grid-template-columns: 300px minmax(240px, 320px) 1fr; gap: 0;
	max-width: 1200px; margin: 0 auto; padding: 1.75rem 1.25rem 2rem; font-weight: 400; color: var(--wp--preset--color--text);
}
.zt-mega a { text-decoration: none; }
.zt-mega-teaser { background: var(--wp--preset--color--flaeche); border-radius: var(--zt-radius); padding: 1.25rem; border-right: 0; }
.zt-mega-teaser-inhalt { display: flex; flex-direction: column; gap: .5rem; height: 100%; }
.zt-mega-bild { width: 100%; height: 150px; object-fit: contain; background: #fff; border-radius: 6px; padding: .5rem; }
.zt-mega-teaser-titel { font-weight: 700; font-size: 1.15rem; margin: .4rem 0 0; color: var(--wp--preset--color--text); }
.zt-mega-teaser-text { font-size: var(--wp--preset--font-size--klein); color: var(--wp--preset--color--text-hell); margin: 0; line-height: 1.55; }
.zt-mega-mehr { margin-top: auto; font-weight: 600; font-size: var(--wp--preset--font-size--klein); color: var(--wp--preset--color--rot) !important; }
.zt-mega-spalte { padding: 0 1.75rem; border-right: 1px solid var(--wp--preset--color--linie); }
.zt-mega-kopf { font-weight: 700; color: var(--wp--preset--color--rot); margin: 0 0 .5rem; font-size: .95rem; }
.zt-mega-kopf a { color: inherit !important; }
.zt-mega-kategorien, .zt-mega-liste ul { list-style: none; margin: 0; padding: 0; }
.zt-mega-kategorie a {
	display: flex !important; align-items: center; justify-content: space-between; gap: .75rem;
	padding: .55rem 0 !important; border-bottom: 1px solid var(--wp--preset--color--linie) !important;
	color: var(--wp--preset--color--text) !important; font-weight: 600; font-size: .95rem;
}
.zt-mega-pfeil { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid currentColor; color: var(--wp--preset--color--grau-logo); flex: none; transition: all .15s; }
.zt-mega-kategorie.ist-aktiv a, .zt-mega-kategorie a:hover { color: var(--wp--preset--color--rot) !important; }
.zt-mega-kategorie.ist-aktiv .zt-mega-pfeil { background: var(--wp--preset--color--rot); border-color: var(--wp--preset--color--rot); color: #fff; }
.zt-mega-produkte { padding: 0 0 0 1.75rem; }
.zt-mega-liste ul { columns: 2; column-gap: 2rem; }
.zt-mega-liste li { break-inside: avoid; }
.zt-mega-liste a { display: block !important; padding: .45rem 0 !important; color: var(--wp--preset--color--text) !important; font-size: .95rem; border: 0 !important; }
.zt-mega-liste a:hover { color: var(--wp--preset--color--rot) !important; text-decoration: underline !important; }
.zt-mega [hidden] { display: none !important; }

/* Handy-Overlay: nur die Kategorien als Liste */
.zt-kopf .is-menu-open .zt-mega-container { box-shadow: none !important; border-top: 0 !important; }
.zt-kopf .is-menu-open .zt-mega { display: block; padding: 0 0 .5rem 1rem; }
.zt-kopf .is-menu-open .zt-mega-teaser, .zt-kopf .is-menu-open .zt-mega-produkte, .zt-kopf .is-menu-open .zt-mega-pfeil { display: none; }
.zt-kopf .is-menu-open .zt-mega-spalte { padding: 0; border: 0; }
.zt-kopf .is-menu-open .zt-mega-kopf { margin: .4rem 0; }
.zt-kopf .is-menu-open .zt-mega-kategorie a { border: 0 !important; font-weight: 400; color: var(--wp--preset--color--text-hell) !important; padding: .45rem 0 !important; }
/* Damit das Panel die volle Kopfbreite nutzt, darf auf dem Desktop kein Navigationselement dazwischen positioniert sein */
@media (min-width: 600px) {
	.zt-kopf .wp-block-navigation,
	.zt-kopf .wp-block-navigation__responsive-container:not(.is-menu-open),
	.zt-kopf .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-dialog,
	.zt-kopf .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container { position: static !important; }
}
/* Unsichtbare Brücke zwischen Menüpunkt und Panel, damit es beim Hinüberfahren offen bleibt */
.zt-kopf .zt-mega-container::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: 40px; }
.zt-mega .zt-mega-kopf a, .zt-mega .zt-mega-mehr { padding: 0 !important; display: inline !important; border: 0 !important; }
.zt-kopf .zt-mega-zu > .zt-mega-container { visibility: hidden !important; opacity: 0 !important; }

/* Megamenü «Unternehmen» */
.zt-mega-foto { width: 100%; height: 150px; object-fit: cover; border-radius: 6px; }
.zt-mega-unternehmen .zt-mega-kategorie .zt-mega-pfeil { color: var(--wp--preset--color--grau-logo); }
.zt-mega-unternehmen .zt-mega-kategorie a:hover .zt-mega-pfeil, .zt-mega-unternehmen .zt-mega-kategorie a:focus-visible .zt-mega-pfeil { background: var(--wp--preset--color--rot); border-color: var(--wp--preset--color--rot); color: #fff; }
.zt-mega-beitrag { display: grid !important; grid-template-columns: 180px 1fr; grid-template-rows: auto 1fr; column-gap: 1.25rem; row-gap: .35rem; padding: 0 !important; border: 0 !important; max-width: 560px; }
.zt-mega-beitrag img { grid-row: 1 / span 2; width: 180px; height: 120px; object-fit: cover; border-radius: 6px; }
.zt-mega-beitrag-titel { font-weight: 700; color: var(--wp--preset--color--text); line-height: 1.3; }
.zt-mega-beitrag-text { font-size: var(--wp--preset--font-size--klein); color: var(--wp--preset--color--text-hell); }
.zt-mega-beitrag:hover .zt-mega-beitrag-titel { color: var(--wp--preset--color--rot); }
.zt-mega-weiter { margin: 1.25rem 0 0; font-weight: 600; font-size: var(--wp--preset--font-size--klein); }
.zt-mega-weiter a { color: var(--wp--preset--color--rot) !important; padding: 0 !important; border: 0 !important; display: inline !important; }
.zt-kopf .is-menu-open .zt-mega-unternehmen .zt-mega-produkte { display: none; }

/* Produkte-Übersicht: Kategoriekarten */
.zt-produkt h2.zt-produkt-name { font-size: 1.1rem; margin: 0; padding: 1rem 1.1rem .3rem; }
.zt-produkt h2.zt-produkt-name a { color: var(--wp--preset--color--text); text-decoration: none; }
.zt-produkt h2.zt-produkt-name a::after { content: ""; position: absolute; inset: 0; }
.zt-produkt:hover h2.zt-produkt-name a { color: var(--wp--preset--color--rot); }
.zt-kategorie-raster .zt-karte-bild img { height: 190px; }
.zt-kategorie-raster { margin-bottom: var(--wp--preset--spacing--50); }
.zt-seiteninhalt > .zt-lead { max-width: 52rem; margin-bottom: var(--wp--preset--spacing--40); }
@media (max-width: 781px) { .zt-kategorie-raster { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } .zt-kategorie-raster .zt-karte-bild img { height: 130px; } .zt-produkt h2.zt-produkt-name { font-size: .95rem; padding: .75rem .8rem .25rem; } .zt-kategorie-raster .zt-produkt-text { display: none; } }
.zt-seiteninhalt > .zt-lead { max-width: 1200px; }

/* ------------------------------------------------------------ Fusszeile (nach dem Vorbild der bisherigen Seite) */
.zt-fuss { position: relative; overflow: hidden; background: #2c272e; color: #fff; padding-block: 3rem 1.5rem; font-size: .9rem; }
.zt-slogan { position: absolute; top: 0; right: 0; width: clamp(170px, 18vw, 260px); height: auto; pointer-events: none; }
.zt-fuss-spalten { gap: 2.5rem !important; margin-bottom: 2rem; }
.zt-fuss .zt-fuss-titel { color: #fff; font-size: .95rem; font-weight: 700; text-transform: none; letter-spacing: 0; margin: 0 0 .6rem; }
.zt-fuss .zt-fuss-liste { list-style: disc; padding-left: 1.1rem; margin: 0; }
.zt-fuss .zt-fuss-liste li { margin: .2rem 0; }
.zt-fuss .zt-fuss-liste li::marker { color: #fff; }
.zt-fuss .zt-fuss-liste a, .zt-fuss-kontakt a { color: #fff; text-decoration: none; }
.zt-fuss .zt-fuss-liste a:hover, .zt-fuss-kontakt a:hover { text-decoration: underline; }
.zt-fuss-firma { margin: 0 0 1rem; line-height: 1.5; }
.zt-fuss-kontakt { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; gap: .45rem; }
.zt-fuss-kontakt li { display: flex; align-items: center; gap: .6rem; }
.zt-fuss-kontakt svg { flex: none; opacity: .9; }
.zt-fuss .zt-fuss-hotline a { color: #ff9a8f; font-weight: 700; font-size: 1rem; }
.zt-kununu { display: inline-block; line-height: 0; margin-bottom: 1rem; }
.zt-kununu img { height: auto; width: 160px; border-radius: 6px; }
.zt-fuss-folgen { margin: 0 0 .5rem; }
.zt-fuss-sozial { list-style: none; padding: 0; margin: 0; display: flex; gap: 1rem; }
.zt-fuss-sozial a { color: #fff; display: grid; place-items: center; width: 28px; height: 28px; }
.zt-fuss-sozial a:hover { color: #ff9a8f; }
.zt-fuss .zt-fuss-unten { border-top: 1px solid rgba(255,255,255,.35); padding-top: 1rem; margin: 0; color: #fff; font-size: .85rem; }
.zt-fuss .zt-fuss-unten a { color: #fff; text-decoration: none; }
.zt-fuss .zt-fuss-unten a:hover { text-decoration: underline; }
@media (max-width: 781px) {
	.zt-fuss { padding-top: 5.5rem; }
	.zt-slogan { width: 170px; }
}

/* Formularfelder: Innenabstand und Rahmen in die Breite einrechnen, sonst ragen sie über ihre Spalte */
.zt-formular input, .zt-formular textarea, .zt-formular select, .mc_container input { box-sizing: border-box; max-width: 100%; }
.zt-formular-raster { column-gap: 1.5rem !important; row-gap: 1rem !important; }

/* Standortkarten mit Foto */
.zt-standort { padding: 0 0 1.1rem !important; overflow: hidden; }
.zt-standort > :not(.zt-standort-bild) { padding-inline: 1.25rem; }
.zt-standort .zt-standort-bild { margin: 0 0 1rem; }
.zt-standort .zt-standort-bild img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 0; display: block; }
/* Standortfotos im Querformat (die Regel für Personenkarten würde 4:5 zuschneiden) */
.wp-block-column.zt-standort:has(> .wp-block-image:first-child + .wp-block-heading) > .wp-block-image img { aspect-ratio: 16 / 10; }
.wp-block-column.zt-standort:has(> .wp-block-image:first-child + .wp-block-heading) > p { font-size: var(--wp--preset--font-size--normal); color: var(--wp--preset--color--text); }

/* Fusszeile in derselben Schriftgrösse wie der übrige Text */
.zt-fuss { font-size: var(--wp--preset--font-size--normal); }
.zt-fuss .zt-fuss-titel { font-size: 1.1rem; }
.zt-fuss .zt-fuss-liste li { margin: .3rem 0; }
.zt-fuss .zt-fuss-unten { font-size: var(--wp--preset--font-size--normal); }

/* Standortkarten: Mouseover wie «zoom-hover» der bisherigen Seite – eine Ebene wächst von 30 % auf
   volle Grösse und blendet ein (0,4 s). Die ganze Karte führt zur Routenplanung. */
.zt-standort { position: relative; }
.zt-standort .zt-standort-bild { position: relative; overflow: hidden; }
.zt-standort .zt-standort-bild::after {
	content: "Route planen →"; position: absolute; inset: 0; display: grid; place-items: center;
	background: rgba(199, 55, 46, .82); color: #fff; font-weight: 700; font-size: 1.1rem; letter-spacing: .02em;
	opacity: 0; transform: scale(.3); transition: opacity .4s ease, transform .4s ease; pointer-events: none;
}
.zt-standort:hover .zt-standort-bild::after, .zt-standort:focus-within .zt-standort-bild::after { opacity: 1; transform: scale(1); }
.zt-standort .zt-route a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.zt-standort:hover { box-shadow: var(--zt-schatten-hoch); }

/* Teamkarten: Zweitfoto beim Überfahren, wie «zoom-hover» der bisherigen Seite (30 % → 100 %, 0,4 s) */
figure.zt-wechsel { position: relative; overflow: hidden; margin: 0; }
figure.zt-wechsel img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
figure.zt-wechsel .zt-wechsel-zweit {
	position: absolute; inset: 0; height: 100%;
	opacity: 0; transform: scale(.3); transition: opacity .4s ease, transform .4s ease;
}
.wp-block-column:hover > figure.zt-wechsel .zt-wechsel-zweit,
.wp-block-column:focus-within > figure.zt-wechsel .zt-wechsel-zweit { opacity: 1; transform: scale(1); }

/* Jobs-Aufruf mit Teamfoto */
.zt-jobs-spalten { gap: var(--wp--preset--spacing--50) !important; }
.zt-jobs-bild { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--zt-radius); box-shadow: var(--zt-schatten); display: block; }
.zt-jobs h2 { margin: .4rem 0 .75rem; }

/* ------------------------------------------------------------ Mietanlagen */
.zt-miete-filter { display: grid; grid-template-columns: 2fr 1fr 1fr auto; gap: .75rem; margin-bottom: .5rem; }
.zt-miete-filter input, .zt-miete-filter select { font: inherit; padding: .65rem .8rem; border: 1px solid #8a8a8a; border-radius: 6px; background: var(--zt-weiss); box-sizing: border-box; width: 100%; }
.zt-miete-zuruecksetzen { font: inherit; font-weight: 600; padding: .65rem 1rem; border-radius: 6px; border: 1.5px solid var(--wp--preset--color--text); background: var(--zt-weiss); cursor: pointer; }
.zt-miete-zuruecksetzen:hover { border-color: var(--wp--preset--color--rot); color: var(--wp--preset--color--rot); }
.zt-miete-anzahl { font-size: var(--wp--preset--font-size--klein); color: var(--wp--preset--color--text-hell); margin: .5rem 0 1rem; }
.zt-miete-liste { display: grid; gap: .75rem; }
.zt-anlage {
	display: grid; grid-template-columns: 140px 1fr auto; gap: 1.25rem; align-items: center;
	background: var(--zt-weiss); border-radius: var(--zt-radius); box-shadow: var(--zt-schatten); padding: .75rem 1.25rem .75rem .75rem;
	border: 2px solid transparent; transition: border-color .15s;
}
.zt-anlage[hidden] { display: none; }
.zt-anlage.ist-gewaehlt { border-color: var(--wp--preset--color--rot); }
.zt-anlage-bild { position: relative; height: 110px; display: grid; place-items: center; background: #fff; border-radius: 6px; overflow: hidden; }
.zt-anlage-bild img { max-width: 100%; max-height: 110px; object-fit: contain; }
.zt-anlage-ohne { color: var(--wp--preset--color--text-hell); font-size: var(--wp--preset--font-size--klein); }
.zt-anlage-status { position: absolute; top: 4px; left: 4px; z-index: 1; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: .15rem .45rem; border-radius: 4px; color: #fff; }
.zt-status-mietpool { background: #2e7d32; }
.zt-status-reserviert { background: #b26a00; }
.zt-status-vermietet { background: var(--wp--preset--color--text-hell); }
.zt-anlage-name { font-weight: 700; margin: 0; font-size: 1.05rem; }
.zt-anlage-typ { margin: 0 0 .35rem; color: var(--wp--preset--color--rot); font-size: var(--wp--preset--font-size--klein); font-weight: 600; }
.zt-anlage-daten { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; margin: 0; font-size: var(--wp--preset--font-size--klein); }
.zt-anlage-daten div { display: flex; gap: .35rem; }
.zt-anlage-daten dt { color: var(--wp--preset--color--text-hell); }
.zt-anlage-daten dd { margin: 0; font-weight: 600; }
.zt-anlage-aktionen { display: flex; align-items: center; gap: 1rem; }
.zt-anlage-pdf { font-weight: 600; font-size: var(--wp--preset--font-size--klein); white-space: nowrap; }
.zt-anlage-pdf::before { content: "PDF"; display: inline-block; margin-right: .4rem; padding: .1rem .35rem; border-radius: 3px; background: var(--wp--preset--color--rot); color: #fff; font-size: .65rem; font-weight: 700; vertical-align: middle; }
.zt-anlage-wahl { display: inline-flex; align-items: center; gap: .45rem; font-weight: 600; cursor: pointer; padding: .5rem .9rem; border-radius: 6px; border: 1.5px solid var(--wp--preset--color--linie); white-space: nowrap; }
.zt-anlage-wahl input { width: 1.15rem; height: 1.15rem; accent-color: var(--wp--preset--color--rot); }
.zt-anlage.ist-gewaehlt .zt-anlage-wahl { border-color: var(--wp--preset--color--rot); color: var(--wp--preset--color--rot); }
.zt-miete-auswahl { margin: 0; padding: .7rem .8rem; background: var(--wp--preset--color--flaeche); border-radius: 6px; font-weight: 600; }
.zt-miete-auswahl.ist-leer { font-weight: 400; color: var(--wp--preset--color--text-hell); }
.zt-miete-auswahl.ist-fehler { outline: 2px solid var(--wp--preset--color--rot); }
.zt-feld-titel { font-weight: 600; font-size: var(--wp--preset--font-size--klein); }
.zt-mietdauer input[type=date] { font: inherit; padding: .5rem .6rem; border: 1px solid #8a8a8a; border-radius: 6px; margin-left: .4rem; }
@media (max-width: 781px) {
	.zt-miete-filter { grid-template-columns: 1fr 1fr; }
	.zt-miete-filter input { grid-column: 1 / -1; }
	.zt-anlage { grid-template-columns: 96px 1fr; padding: .75rem; }
	.zt-anlage-bild { height: 90px; }
	.zt-anlage-aktionen { grid-column: 1 / -1; justify-content: space-between; }
}

/* ------------------------------------------------------------ Aufruf mit Autobahnbild, Teilen im Produktkopf */
.zt-aufruf-bild { background: #2c272e url("assets/img/autobahn.jpg") center / cover no-repeat; padding-block: clamp(3rem, 8vw, 6.5rem); }
.zt-aufruf-bild > .zt-aufruf-karte { margin-left: auto !important; margin-right: max(0px, (100% - 1200px) / 2) !important; max-width: 520px; background: var(--zt-weiss); padding: clamp(1.5rem, 3vw, 2.5rem); border-radius: var(--zt-radius); box-shadow: 0 12px 40px rgba(0, 0, 0, .25); }
.zt-aufruf-karte h2 { margin-top: 0; }
.zt-hilfe > .zt-aufruf-karte { max-width: 760px; margin-inline: auto !important; } /* Startseite: drei Knöpfe in einer Zeile, Karte mittig */
@media (max-width: 781px) {
	.zt-aufruf-bild { padding-block: 9rem 1.5rem; }
	.zt-aufruf-bild > .zt-aufruf-karte { max-width: none; margin: 0 !important; }
}
.zt-produktkopf .zt-teilen { margin: 1.5rem 0 0; padding-top: 0; border-top: 0; }

/* News-Slider auf der Startseite: die Reihe ist die <ul> des Query-Blocks, jede Karte ein <li> */
ul.zt-news { list-style: none; margin-block: 0; position: relative; } /* offsetLeft der Karten bezieht sich sonst auf die Seite */
ul.zt-news > li { margin: 0; display: flex; border-radius: var(--zt-radius); }
ul.zt-news > li > .zt-karte { flex: 1; margin: 0; }

/* Burger-Knopf mit drei Linien (WordPress zeichnet nur zwei) */
.zt-kopf .wp-block-navigation__responsive-container-open svg { display: none; }
.zt-kopf .wp-block-navigation__responsive-container-open::before {
	content: ""; display: block; width: 26px; height: 20px;
	background: linear-gradient(currentColor 0 0) top / 100% 2.5px no-repeat, linear-gradient(currentColor 0 0) center / 100% 2.5px no-repeat, linear-gradient(currentColor 0 0) bottom / 100% 2.5px no-repeat;
	border-radius: 1px;
}


/* ------------------------------------------------------------ Produktkopf nach Vorbild CompAir (inc/produktkopf.php) */
/* grauer Bereich von den Brotkrumen bis unter den Produktkopf */
.page-template-page-produkt .zt-seiteninhalt { padding-top: 0; }
.page-template-page-produkt .zt-produktkopf {
	background: var(--wp--preset--color--flaeche); box-shadow: 0 0 0 100vmax var(--wp--preset--color--flaeche); clip-path: inset(0 -100vmax);
	align-items: stretch !important; padding-block: .5rem var(--wp--preset--spacing--50); margin-block: 0 var(--wp--preset--spacing--50) !important;
}
.page-template-page-produkt .zt-seitenkopf-knapp { padding-block: 1.25rem .75rem; }
/* Brotkrumen als Kärtchen */
/* Brotkrumen als Kärtchen, auf allen Seiten gleich */
.zt-brotkrumen ol { gap: .4rem; color: var(--wp--preset--color--text); }
.zt-brotkrumen li { background: var(--zt-weiss); border: 1px solid var(--wp--preset--color--linie); border-radius: 8px; padding: .3rem .7rem; }
.zt-brotkrumen li::after, .zt-brotkrumen li + li::before { display: none; }
.zt-brotkrumen a { text-decoration: none; }
.zt-brotkrumen a:hover { text-decoration: none; }
.zt-brotkrumen li:has(a:hover) { border-color: var(--wp--preset--color--rot); }
/* Bild in weisser Karte */
.page-template-page-produkt .zt-produktkopf > .wp-block-column:first-child {
	display: flex; align-items: center; justify-content: center; min-height: 460px;
	border: 1px solid var(--wp--preset--color--linie); box-shadow: none; padding: 2rem;
}
.page-template-page-produkt .zt-produktkopf .wp-block-image { margin: 0; width: 100%; }
.page-template-page-produkt .zt-produktkopf .wp-block-image img { width: 100%; height: 400px; max-height: none; object-fit: contain; }
/* Textspalte */
/* Textspalte als umbrechende Zeile: alles volle Breite, nur Hauptknopf und Teilen teilen sich die letzte Zeile */
.page-template-page-produkt .zt-produktkopf > .wp-block-column:last-child { display: flex; flex-wrap: wrap; align-content: flex-start; align-items: center; column-gap: 1rem; }
.page-template-page-produkt .zt-produktkopf > .wp-block-column:last-child > * { flex: 0 0 100%; }
.page-template-page-produkt .zt-produktkopf > .wp-block-column:last-child > .wp-block-buttons { flex: 1 1 260px; }
.page-template-page-produkt .zt-produktkopf h1 { margin-top: 0; }
.page-template-page-produkt .zt-produktkopf .wp-block-buttons { margin-block: 1.25rem 0; }
.page-template-page-produkt .zt-produktkopf .wp-block-button { flex: 1 1 100%; }
.page-template-page-produkt .zt-produktkopf .wp-block-button__link { display: block; width: 100%; text-align: center; }
.page-template-page-produkt .zt-produktkopf > .wp-block-column:last-child > .zt-teilen { flex: 0 0 auto; }
.page-template-page-produkt .zt-produktkopf .zt-teilen {
	margin: 1.25rem 0 0; padding: .6rem .8rem; border: 1px solid var(--wp--preset--color--linie);
	border-radius: var(--zt-radius); background: var(--zt-weiss);
}
@media (max-width: 781px) {
	.page-template-page-produkt .zt-produktkopf > .wp-block-column:first-child { min-height: 0; padding: 1.25rem; }
	.page-template-page-produkt .zt-produktkopf .wp-block-image img { height: 260px; }
	.page-template-page-produkt .zt-produktkopf > .wp-block-column:last-child > .zt-teilen { flex-basis: 100%; }
}

/* Textspalten im Inhalt: mehr Luft zwischen den Spalten (Standard sind 20 px) */
.zt-seiteninhalt > .wp-block-columns:not([class*="zt-"]) { column-gap: clamp(2rem, 5vw, 4.5rem) !important; }
/* Spaltenreihen untereinander (z. B. Varianten) und vor der Beratungsbox mehr Abstand */
.zt-seiteninhalt > .wp-block-columns:not([class*="zt-"]) + .wp-block-columns:not([class*="zt-"]) { margin-top: var(--wp--preset--spacing--50) !important; }
.zt-seiteninhalt > * + .zt-beratung { margin-top: var(--wp--preset--spacing--60) !important; }

/* Kennzahlen-Reihen (inc/kennzahlen.php): dunkle und graue Boxen nebeneinander, wie auf der alten Seite */
.zt-seiteninhalt > .wp-block-columns.zt-kennzahlen { gap: 0 !important; margin-block: var(--wp--preset--spacing--50) !important; border-radius: var(--zt-radius); overflow: hidden; }
.zt-kennzahlen > .wp-block-column { background: var(--wp--preset--color--dunkel); color: #fff; text-align: center; padding: 1.5rem 1rem; display: flex; flex-direction: column; justify-content: center; }
.zt-kennzahlen > .wp-block-column:nth-child(even) { background: #5f5f5f; }
.zt-kennzahlen h3, .zt-kennzahlen h3 strong { color: #fff; margin: 0; }
.zt-kennzahlen > .wp-block-column > h3:first-child { font-size: var(--wp--preset--font-size--normal); font-weight: 600; opacity: .85; }
.zt-kennzahlen > .wp-block-column > h3:last-child { font-size: clamp(1.25rem, 2vw, 1.6rem); font-weight: 700; margin-top: .35rem; }
/* Textkarten (inc/kennzahlen.php): Überschrift mit Text in weissen Karten nebeneinander */
.wp-block-columns.zt-textkarten { gap: 1.25rem !important; align-items: stretch !important; margin-block: var(--wp--preset--spacing--50) !important; }
.zt-textkarten > .wp-block-column {
	background: var(--zt-weiss); border: 1px solid var(--wp--preset--color--linie); border-top: 3px solid var(--wp--preset--color--rot);
	border-radius: var(--zt-radius); padding: 1.5rem; box-shadow: var(--zt-schatten);
}
.zt-textkarten > .wp-block-column > :first-child { margin-top: 0; }
.zt-textkarten > .wp-block-column > :last-child { margin-bottom: 0; }
.zt-textkarten ul { padding-left: 1.2rem; }
.zt-textkarten li { margin-bottom: .4rem; }
.zt-textkarten li::marker { color: var(--wp--preset--color--rot); }
/* Produktkopf: Teilen-Box kompakter, damit sie neben dem Hauptknopf Platz hat */
.zt-produktkopf .zt-teilen { padding: .3rem .5rem .3rem .75rem !important; gap: .4rem .6rem; }
.zt-produktkopf .zt-teilen ul { gap: .35rem; }
.zt-produktkopf .zt-teilen a, .zt-produktkopf .zt-teilen button { width: 2.4rem; height: 2.4rem; }
.page-template-page-produkt .zt-produktkopf > .wp-block-column:last-child > .wp-block-buttons { flex-basis: 200px; }
/* Variantenkacheln (inc/kennzahlen.php): Bild oben, Titel darunter, gleich grosse Kacheln */
.wp-block-columns.zt-varianten { display: grid !important; grid-template-columns: repeat(var(--zt-raster, 3), minmax(0, 1fr)); gap: 1.25rem !important; }
.zt-varianten > .wp-block-column {
	display: flex; flex-direction: column; background: var(--zt-weiss); border: 1px solid var(--wp--preset--color--linie);
	border-radius: var(--zt-radius); padding: 1.25rem; box-shadow: var(--zt-schatten); transition: box-shadow .2s, transform .2s;
}
.zt-varianten > .wp-block-column:hover { box-shadow: var(--zt-schatten-hoch); transform: translateY(-2px); }
.zt-varianten .wp-block-image { order: -1; margin: 0 0 1rem; }
.zt-varianten .wp-block-image img { width: 100%; height: 200px; object-fit: contain; }
.zt-varianten h2, .zt-varianten h3, .zt-varianten h4 { margin: auto 0 0; font-size: var(--wp--preset--font-size--normal); line-height: 1.35; }
@media (max-width: 781px) {
	.wp-block-columns.zt-varianten { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem !important; }
	.zt-varianten > .wp-block-column { padding: .9rem; }
	.zt-varianten .wp-block-image img { height: 140px; }
}
.zt-seiteninhalt > .wp-block-columns.zt-varianten + .wp-block-columns.zt-varianten { margin-top: 1.25rem !important; }
@media (max-width: 781px) { .zt-seiteninhalt > .wp-block-columns.zt-varianten + .wp-block-columns.zt-varianten { margin-top: .75rem !important; } }

/* Datentabellen (aus Bildern abgeschrieben, werkzeug/tabellen.py) */
.zt-datentabelle { margin-block: var(--wp--preset--spacing--40); }
.zt-datentabelle table { font-size: var(--wp--preset--font-size--klein); }
.zt-datentabelle tbody th { font-weight: 600; width: 32%; min-width: 11rem; }
.zt-datentabelle tbody tr:nth-child(even) th { background: var(--wp--preset--color--flaeche); }
.zt-datentabelle thead th { white-space: normal; vertical-align: bottom; }
.zt-datentabelle td { min-width: 6rem; }
/* Bildunterschrift nur für Screenreader: auf den Seiten steht meist schon eine Überschrift darüber */
.zt-datentabelle figcaption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Blogbeiträge: Spalte, die nach dem Entfernen des doppelten Bildes allein steht, nimmt die volle Breite */
.single .wp-block-columns > .wp-block-column:only-child { flex-basis: 100% !important; }
/* Megamenü «Unternehmen»: zwei Blogbeiträge untereinander */
.zt-mega-beitrag + .zt-mega-beitrag { margin-top: 1.25rem; padding-top: 1.25rem !important; border-top: 1px solid var(--wp--preset--color--linie) !important; }

/* Seitennavigation im Blog: Kärtchen wie die Brotkrumen, aktuelle Seite rot */
.wp-block-query-pagination { gap: .4rem !important; margin-top: var(--wp--preset--spacing--50) !important; font-size: var(--wp--preset--font-size--klein); }
.wp-block-query-pagination-numbers { display: flex; gap: .4rem; }
.wp-block-query-pagination .page-numbers,
.wp-block-query-pagination-previous,
.wp-block-query-pagination-next {
	display: inline-flex; align-items: center; justify-content: center; min-width: 2.5rem; height: 2.5rem; padding: 0 .8rem; margin: 0 !important;
	background: var(--zt-weiss); border: 1px solid var(--wp--preset--color--linie); border-radius: 8px; color: var(--wp--preset--color--text); text-decoration: none; font-weight: 600;
}
.wp-block-query-pagination a:hover { border-color: var(--wp--preset--color--rot); color: var(--wp--preset--color--rot); }
.wp-block-query-pagination .page-numbers.current { background: var(--wp--preset--color--rot); border-color: var(--wp--preset--color--rot); color: #fff; }
.wp-block-query-pagination .page-numbers.dots { border-color: transparent; background: none; min-width: 1.5rem; padding: 0; }

/* Bewertungen in der Fusszeile: kununu und Google nebeneinander, gleich gross */
.zt-bewertungen { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 1rem; }
.zt-bewertungen .zt-kununu { margin-bottom: 0; }
.zt-google-bewertung {
	display: flex; flex-direction: column; justify-content: center; align-items: center; gap: .1rem; box-sizing: border-box;
	width: 160px; height: 74px; border-radius: 6px; background: #fff; color: #3c4043; text-decoration: none; line-height: 1.1;
}
.zt-google-bewertung:hover { box-shadow: 0 0 0 2px var(--wp--preset--color--rot); }
.zt-google-kopf { display: flex; align-items: center; gap: .35rem; }
.zt-google-note { font-size: 1.1rem; font-weight: 700; color: #202124; }
/* Sterne anteilig gefüllt: 4,8 von 5 = 96 % */
.zt-google-sterne { font-size: 1rem; letter-spacing: .05em; background: linear-gradient(90deg, #fbbc04 var(--zt-anteil), #dadce0 var(--zt-anteil)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.zt-google-text { font-size: .62rem; color: #5f6368; }

/* ------------------------------------------------------------ Angebot anfordern (inc/angebot.php) */
.zt-dialog {
	width: min(640px, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); padding: 2rem; border: 0; border-radius: var(--zt-radius);
	box-shadow: 0 24px 60px rgba(0, 0, 0, .3); color: var(--wp--preset--color--text); background: var(--zt-weiss);
}
.zt-dialog::backdrop { background: rgba(20, 22, 26, .6); }
.zt-dialog h2 { margin: 0 2.5rem .5rem 0; font-size: var(--wp--preset--font-size--x-gross); }
.zt-dialog-text { margin: 0 0 1.25rem; color: var(--wp--preset--color--text-hell); }
.zt-dialog-zu { position: absolute; top: 1rem; right: 1rem; width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border: 1px solid var(--wp--preset--color--linie); border-radius: 8px; background: var(--zt-weiss); color: var(--wp--preset--color--text); cursor: pointer; }
.zt-dialog-zu:hover { border-color: var(--wp--preset--color--rot); color: var(--wp--preset--color--rot); }
.zt-schritte-anzeige { display: none; }
.zt-angebot-aktiv .zt-schritte-anzeige { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.25rem; font-size: var(--wp--preset--font-size--klein); }
.zt-schritt-nr { background: var(--wp--preset--color--flaeche); border-radius: 6px; padding: .2rem .6rem; white-space: nowrap; }
.zt-schritt-balken { flex: 1; height: 4px; border-radius: 2px; background: var(--wp--preset--color--linie); overflow: hidden; }
.zt-schritt-balken span { display: block; height: 100%; width: 33%; background: var(--wp--preset--color--rot); transition: width .3s; }
.zt-schritt { border: 0; padding: 0; margin: 0 0 1.5rem; min-width: 0; }
/* Das Formular trägt auch die Kartenklasse .zt-angebot (Rahmen, Schatten): unten Luft unter dem Knopf */
.zt-formular.zt-angebot { padding-bottom: 1.5rem; height: auto; }
.zt-schritt > legend { font-weight: 700; font-size: var(--wp--preset--font-size--gross); padding: 0; margin-bottom: .75rem; }
.zt-angebot-aktiv .zt-schritt { margin-bottom: 0; }
.zt-themen { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: .5rem; }
.zt-themen label { display: flex; align-items: center; gap: .5rem; border: 1px solid var(--wp--preset--color--linie); border-radius: 8px; padding: .7rem .8rem; cursor: pointer; }
.zt-themen label:has(input:checked) { border-color: var(--wp--preset--color--rot); box-shadow: inset 0 0 0 1px var(--wp--preset--color--rot); }
.zt-schritt-knoepfe { display: flex; justify-content: flex-end; gap: .75rem; margin: 1.25rem 0 0; }
.zt-zurueck-schritt { margin-right: auto; background: var(--zt-weiss); border: 1px solid var(--wp--preset--color--linie); border-radius: var(--zt-radius); padding: .7rem 1.2rem; font: inherit; font-weight: 600; cursor: pointer; }
.zt-zurueck-schritt:hover { border-color: var(--wp--preset--color--rot); color: var(--wp--preset--color--rot); }
.zt-angebot select { width: 100%; box-sizing: border-box; padding: .7rem .8rem; border: 1px solid var(--wp--preset--color--linie); border-radius: 6px; font: inherit; background: var(--zt-weiss); }
@media (max-width: 600px) {
	.zt-dialog { padding: 1.25rem; }
	.zt-themen { grid-template-columns: 1fr; }
}
/* «Jetzt gleich durchstarten» mit drei Knöpfen */
.zt-aufruf-bild > .zt-aufruf-karte { max-width: 600px; }

/* ------------------------------------------------------------ Seitenkopf mit Bild (inc/kopfbild.php) */
.zt-seitenkopf.zt-seitenkopf-bild {
	position: relative; overflow: hidden; isolation: isolate; background: #1b2430; color: #fff;
	min-height: clamp(220px, 19vw, 360px); display: flex; flex-direction: column; justify-content: center;
}
/* Flexbox liesse Titel und Brotkrumen schrumpfen; mit voller Breite bleiben sie links im 1200-px-Raster */
.zt-seitenkopf-bild > :not(.zt-kopfbild) { width: 100%; box-sizing: border-box; }
.zt-seitenkopf-bild > .zt-kopfbild { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: right center; z-index: -2; max-width: none !important; }
/* dunkler Verlauf links, damit Titel und Brotkrumen auf jedem Bild lesbar sind */
.zt-seitenkopf-bild::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(14, 19, 27, .82) 0%, rgba(14, 19, 27, .6) 35%, rgba(14, 19, 27, .1) 70%, rgba(14, 19, 27, 0) 100%); }
.zt-seitenkopf-bild h1, .zt-seitenkopf-bild .wp-block-post-title { color: #fff; text-shadow: 0 1px 12px rgba(0, 0, 0, .35); }
.zt-seitenkopf-bild .zt-brotkrumen li { background: rgba(255, 255, 255, .92); border-color: transparent; }
/* Titel im Banner 50 % grösser (44 → 66 px), roter Strich 50 % länger und dicker (48 × 3 → 72 × 4,5 px) */
.zt-seitenkopf-bild h1 { font-size: clamp(2.4rem, 5vw, 4.125rem) !important; line-height: 1.08; margin: 0; }
/* Titel bleibt im dunklen linken Feld, lange Titel brechen um, statt über das Motiv zu laufen */
/* Keine Silbentrennung und kein Umbruch mitten im Wort; lange Titel teilt inc/kopfbild.php in Titel und Unterzeile */
.zt-seitenkopf-bild h1 { hyphens: manual; -webkit-hyphens: manual; overflow-wrap: normal; word-break: normal; }
.zt-seitenkopf-bild h1::after { width: 72px !important; height: 4.5px !important; margin-top: 1.1rem !important; }
/* Unterzeile unter dem kurzen Banner-Titel (inc/kopfbild.php) */
.zt-kopf-untertitel { color: #fff; margin: 1rem 0 0; font-size: clamp(1.1rem, 1.8vw, 1.5rem); font-weight: 600; line-height: 1.3; text-shadow: 0 1px 10px rgba(0, 0, 0, .4); }
/* Brotkrumen unter dem Banner, im Inhaltsraster */
.zt-brotkrumen-leiste { max-width: 1200px; margin: 1.25rem auto 0; padding-inline: var(--wp--style--root--padding-left, 1.25rem); box-sizing: content-box; }
.zt-brotkrumen-leiste .zt-brotkrumen ol { margin: 0; }
.zt-brotkrumen-leiste + .zt-seiteninhalt { padding-top: var(--wp--preset--spacing--40) !important; }
@media (max-width: 781px) {
	.zt-seitenkopf.zt-seitenkopf-bild { min-height: 200px; }
	.zt-seitenkopf-bild::before { background: linear-gradient(90deg, rgba(14, 19, 27, .8), rgba(14, 19, 27, .45)); }
}

/* Telefonnummern nie umbrechen */
a[href^="tel:"] { white-space: nowrap; }

/* ------------------------------------------------------------ Hell / Dunkel (assets/js/modus.js) */
:root { --zt-weiss: #fff; }
.zt-logo-dunkel { display: none; }
/* Symbol zeigt die gewählte Stufe: Sonne = hell, Mond = dunkel, halber Kreis = wie Gerät. Knopf rechts neben dem Hauptmenü */
.zt-modus svg { display: none; }
:root[data-modus="light"] .zt-modus-sonne, :root[data-modus="dark"] .zt-modus-mond, :root:not([data-modus="light"]):not([data-modus="dark"]) .zt-modus-system { display: block; }
.zt-modus {
	display: inline-grid; place-items: center; width: 2.1rem; height: 2.1rem; padding: 0; cursor: pointer; flex: none;
	background: none; color: #e8e8e8; border: 1px solid rgba(255, 255, 255, .35); border-radius: 6px;
}
.zt-modus:hover { color: #fff; border-color: #fff; }
.zt-modus:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

:root[data-theme="dark"] {
	color-scheme: dark;
	--wp--preset--color--text: #e3e6e9;
	--wp--preset--color--text-hell: #a6aeb5;
	--wp--preset--color--linie: #3a4148;
	--wp--preset--color--flaeche: #1a1e22;
	--wp--preset--color--dunkel: #0e1114;
	--zt-weiss: #1f2429;
	--zt-schatten: 0 4px 18px rgba(0, 0, 0, .45);
	--zt-schatten-hoch: 0 10px 32px rgba(0, 0, 0, .6);
}
:root[data-theme="dark"] body { background: #14171a; }
:root[data-theme="dark"] .zt-logo-hell { display: none; }
:root[data-theme="dark"] .zt-logo-dunkel { display: inline; }
/* Links im Fliesstext heller, das Rot allein ist auf dunklem Grund zu schwach */
:root[data-theme="dark"] .zt-seiteninhalt :is(p, li, td, figcaption) > a:not([class]),
:root[data-theme="dark"] .wp-block-post-content :is(p, li, td) > a:not([class]) { color: #ff8a7f; }
/* Auf dunklem Grund: rote Umrandungsknöpfe und Rahmen gut sichtbar halten */
:root[data-theme="dark"] .wp-block-button.is-style-outline > .wp-block-button__link { color: var(--wp--preset--color--text); border-color: var(--wp--preset--color--text); }
:root[data-theme="dark"] input, :root[data-theme="dark"] select, :root[data-theme="dark"] textarea { color: var(--wp--preset--color--text); }
:root[data-theme="dark"] .zt-seitenkopf-bild .zt-brotkrumen li { background: rgba(31, 36, 41, .9); }
/* Handy-Menü: WordPress setzt Weiss fest, hier die Flächenfarbe der Seite */
.wp-block-navigation__responsive-container.is-menu-open { background-color: var(--zt-weiss) !important; color: var(--wp--preset--color--text) !important; }

/* ------------------------------------------------------------ Logo über beide Leisten (Desktop) */
/* Obere Leiste und Menüleiste bilden einen hellen Kopf (wie auf der alten Seite): links das Logo über
   beide Zeilen, rechts oben die kleinen Links, darunter das Hauptmenü. */
@media (min-width: 1000px) {
	.zt-kopf .zt-logo {
		position: relative; z-index: 2; display: flex; align-items: center; box-sizing: border-box;
		margin-block: calc(-1 * var(--zt-topbar-h, 34px) - .8rem) -.8rem;
		height: calc(var(--zt-topbar-h, 34px) + 1.6rem + 46px);
		transition: margin .25s ease, height .25s ease;
	}
	.zt-kopf .zt-logo img { width: clamp(230px, 19vw, 310px); }
	/* Beim Scrollen ist die dunkle Leiste weg: Logo kleiner, nur noch in der Menüleiste */
	.zt-kopf.ist-gescrollt .zt-logo { margin-block: -.45rem; height: calc(.9rem + 40px); }
	.zt-kopf.ist-gescrollt .zt-logo img { width: clamp(150px, 16vw, 200px); }
}

/* Obere Leiste hell, in der Farbe des Kopfs: kleine graue Links, Hotline rot */
.zt-topbar { background: var(--zt-weiss); padding-block: .45rem 0; }
.zt-topbar a { color: var(--wp--preset--color--text-hell); }
.zt-topbar a:hover { color: var(--wp--preset--color--rot); }
.zt-topbar .zt-hotline a { color: var(--wp--preset--color--rot); }
.zt-modus { color: var(--wp--preset--color--text-hell); border-color: var(--wp--preset--color--linie); }
.zt-modus:hover { color: var(--wp--preset--color--rot); border-color: var(--wp--preset--color--rot); }
.zt-modus:focus-visible { outline-color: var(--wp--preset--color--rot); }
/* Kein Schatten zwischen den beiden Zeilen, der Kopf wirkt als Einheit */
.zt-kopf:not(.ist-gescrollt) { box-shadow: 0 1px 0 var(--wp--preset--color--linie); }

/* Handy: Teilen-Box im Produktkopf darf nicht über den Rand ragen */
.zt-produktkopf .zt-teilen { max-width: 100%; box-sizing: border-box; }
@media (max-width: 781px) { .zt-produktkopf .zt-teilen ul { flex-wrap: wrap; } }

/* Datentabellen mit zusammengefassten Zellen (Modell über Luft-/Wasserzeile) */
.zt-datentabelle-raster tbody th { width: auto; min-width: 0; vertical-align: middle; }
.zt-datentabelle-raster td, .zt-datentabelle-raster th { min-width: 0; white-space: nowrap; }
.zt-datentabelle-raster thead th { white-space: normal; min-width: 4.5rem; }
.zt-datentabelle-raster th, .zt-datentabelle-raster td { padding: .55rem .6rem; }
.zt-datentabelle-raster tbody td[rowspan] { vertical-align: middle; }
.zt-datentabelle-raster tbody tr:nth-child(even) td { background: transparent; }
.zt-datentabelle-raster tbody tr:has(th[rowspan]) > * { border-top: 2px solid var(--wp--preset--color--linie); }
.zt-fussnote { font-size: var(--wp--preset--font-size--klein); color: var(--wp--preset--color--text-hell); }

/* ------------------------------------------------------------ Häufige Fragen (inc/faq.php) */
.zt-faq { display: grid; gap: .6rem; margin-block: 1rem var(--wp--preset--spacing--50); }
.zt-faq-frage {
	background: var(--zt-weiss); border: 1px solid var(--wp--preset--color--linie); border-radius: var(--zt-radius);
	transition: border-color .2s, box-shadow .2s; margin: 0 !important;
}
.zt-faq-frage:hover { border-color: var(--wp--preset--color--rot); }
.zt-faq-frage[open] { border-color: var(--wp--preset--color--rot); box-shadow: var(--zt-schatten); }
.zt-faq-frage > summary {
	list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem;
	padding: 1rem 1.25rem; font-weight: 700; font-size: var(--wp--preset--font-size--gross); line-height: 1.35;
}
.zt-faq-frage > summary::-webkit-details-marker { display: none; }
/* Plus, das sich beim Öffnen zum Minus dreht */
.zt-faq-frage > summary::after {
	content: ""; flex: 0 0 1.75rem; height: 1.75rem; border-radius: 50%; border: 1.5px solid var(--wp--preset--color--linie);
	background: linear-gradient(currentColor 0 0) center / 10px 2px no-repeat, linear-gradient(currentColor 0 0) center / 2px 10px no-repeat;
	color: var(--wp--preset--color--rot); transition: transform .25s, background-size .25s;
}
.zt-faq-frage[open] > summary::after { transform: rotate(180deg); background-size: 10px 2px, 2px 0; }
.zt-faq-frage > summary:focus-visible { outline: 2px solid var(--wp--preset--color--rot); outline-offset: 2px; border-radius: var(--zt-radius); }
.zt-faq-frage > :not(summary) { margin: 0; padding: 0 1.25rem 1.1rem; }

/* Video im Inhalt (z. B. Steuerung DRYPOINT ACM) */
.zt-video { margin: 0; }
.zt-video video { width: 100%; height: auto; display: block; border-radius: var(--zt-radius); background: #000; box-shadow: var(--zt-schatten); }
/* Mehrspaltige Datentabellen (mit Spaltenköpfen): Modellspalte nur so breit wie nötig */
.zt-datentabelle:has(thead) tbody th { width: auto; min-width: 0; white-space: nowrap; }

/* ------------------------------------------------------------ Register (assets/js/register.js) */
.zt-register { margin-block: 1rem var(--wp--preset--spacing--50); }
.zt-register-reiter { background: var(--wp--preset--color--flaeche); border-radius: var(--zt-radius); padding: 1.5rem 1.75rem; margin: 0 0 .75rem; }
.zt-register-reiter > h3 { margin-top: 0; }
.zt-register.ist-aktiv .zt-register-reiter { border-top-left-radius: 0; margin: 0; }
.zt-register-leiste { display: flex; flex-wrap: wrap; gap: .25rem; }
.zt-register-leiste [role=tab] { flex: 1 1 0; }
.zt-register-leiste [role=tab] {
	font: inherit; font-weight: 700; cursor: pointer; border: 0; background: transparent; color: var(--wp--preset--color--text-hell);
	padding: .9rem 1.25rem; border-radius: var(--zt-radius) var(--zt-radius) 0 0; text-align: left;
}
.zt-register-leiste [role=tab]:hover { color: var(--wp--preset--color--rot); }
.zt-register-leiste [role=tab][aria-selected=true] { background: var(--wp--preset--color--flaeche); color: var(--wp--preset--color--text); box-shadow: inset 0 3px 0 var(--wp--preset--color--rot); }
.zt-register-leiste [role=tab]:focus-visible, .zt-register-reiter:focus-visible { outline: 2px solid var(--wp--preset--color--rot); outline-offset: 2px; }
.zt-register-reiter ul { margin: 0; padding-left: 1.2rem; }
.zt-register-reiter li { margin-bottom: .5rem; }
.zt-register-reiter li::marker { color: var(--wp--preset--color--rot); }
@media (max-width: 781px) {
	.zt-register-leiste [role=tab] { flex: 1 1 100%; border-radius: var(--zt-radius); }
	.zt-register.ist-aktiv .zt-register-reiter { border-radius: var(--zt-radius); margin-top: .25rem; }
}

/* Bildkarten: Spalten mit Überschrift, Foto und Text (z. B. Nachhaltigkeit) – Foto oben randlos im einheitlichen
   Ausschnitt 4:3 unter dem roten Rand wie bei den Textkarten, darunter Titel und Text in einer weissen Box; nur über die Klasse zt-bildkarten, weil
   freigestellte Produktbilder den Beschnitt nicht vertragen */
.wp-block-columns.zt-bildkarten { gap: 1.5rem !important; align-items: stretch !important; margin-block: 1.5rem var(--wp--preset--spacing--50) !important; }
.zt-bildkarten > .wp-block-column {
	display: flex; flex-direction: column; background: var(--zt-weiss); border: 1px solid var(--wp--preset--color--linie);
	border-top: 3px solid var(--wp--preset--color--rot);
	border-radius: 0 0 var(--zt-radius) var(--zt-radius); box-shadow: var(--zt-schatten); overflow: hidden; padding: 0 1.5rem 1.5rem;
}
.zt-bildkarten > .wp-block-column > * { margin-block: 0 .75rem; }
.zt-bildkarten > .wp-block-column > :last-child { margin-bottom: 0; }
.zt-bildkarten > .wp-block-column > .wp-block-image { order: -1; margin: 0 -1.5rem 1.25rem; }
.zt-bildkarten .wp-block-image img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0 !important; box-shadow: none; }
.zt-bildkarten h3 { font-size: 1.2rem; }
.zt-bildkarten h3 strong { font-weight: inherit; }

/* Nachhaltigkeit: Abschnitt Solarstrom vor Solarpanels, weisse Karte mittig (wie auf der alten Seite) */
.zt-solar { background: #1d3a7a url("assets/img/solar.webp") center / cover no-repeat; padding: clamp(2rem, 5vw, 3.5rem) 1rem; margin-block: var(--wp--preset--spacing--50) !important; }
.zt-solar-karte { background: var(--zt-weiss); padding: clamp(1.25rem, 3vw, 2.25rem); border-top: 3px solid var(--wp--preset--color--rot); box-shadow: 0 12px 40px rgba(0, 0, 0, .25); }
.zt-solar-karte > :first-child { margin-top: 0; }
.zt-solar-karte > :last-child { margin-bottom: 0; }

/* Telefon: kein Knopf für hell/dunkel, es gilt die Einstellung des Geräts (functions.php, assets/js/modus.js) */
@media (max-width: 781px) { .zt-modus { display: none !important; } }

/* Beratungs- und Shopkasten: Bild in eigener weisser Kachel über die ganze Höhe, wie im Produktkopf */
.zt-beratung > .wp-block-column:first-child:has(> .wp-block-image) {
	align-self: stretch !important; display: flex; align-items: center; justify-content: center;
	background: #fff; border: 1px solid var(--wp--preset--color--linie); border-radius: var(--zt-radius); padding: 1.5rem;
}
.zt-beratung > .wp-block-column:first-child > .wp-block-image { margin: 0; }

/* Kontaktseite: Adressblock wie in der Fusszeile, auf heller Fläche */
.zt-kontaktdaten .zt-fuss-kontakt a { color: inherit; }
.zt-kontaktdaten .zt-fuss-kontakt svg { color: var(--wp--preset--color--rot); }
.zt-kontaktdaten .zt-fuss-hotline a { color: var(--wp--preset--color--rot); font-weight: 700; }
.zt-kontaktdaten .zt-fuss-firma { margin-top: 1rem; }

/* Newsletter-Anmeldung: Überschrift und Einleitung des Plugins stehen links im Seitentext */
.mc_container .mc_custom_border_hdr, .mc_container .mc_subheader { display: none; }
.mc_container .mc-indicates-required { font-size: var(--wp--preset--font-size--klein); color: var(--wp--preset--color--text-hell); margin-bottom: 1rem; }
.mc_container .mc_signup_submit { text-align: left; }

/* Team: Telefon als Knopf, Mail und vCard als Symbol in einer Zeile (Adresse nur verschlüsselt, assets/js/mail.js) */
.zt-team-kontakt { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; }
.zt-team-kontakt .zt-mail { width: 1.85rem; height: 1.85rem; }
.zt-team-tel { display: inline-flex; align-items: center; gap: .3rem; height: 1.85rem; padding: 0 .5rem; border-radius: 6px; background: var(--wp--preset--color--rot); color: #fff !important; font-weight: 600; font-size: var(--wp--preset--font-size--klein); text-decoration: none !important; white-space: nowrap; }
.zt-team-tel:hover, .zt-team-tel:focus-visible { background: var(--wp--preset--color--rot-dunkel); }
.zt-mail { display: inline-grid; place-items: center; width: 2rem; height: 2rem; border: 1px solid var(--wp--preset--color--linie); border-radius: 6px; color: var(--wp--preset--color--rot); }
.zt-mail:hover, .zt-mail:focus-visible { border-color: var(--wp--preset--color--rot); background: var(--wp--preset--color--rot); color: #fff; }

/* Team: gesprochene Sprachen als runde Flaggen rechts in der Namenszeile (gleicher Randabstand wie der Name links) */
.zt-team-name { display: flex; align-items: flex-start; justify-content: space-between; gap: .5rem; }
.zt-sprachen { display: inline-flex; flex: none; gap: .25rem; margin-top: .05em; }
.zt-flagge { width: 20px; height: 20px; border-radius: 50%; box-shadow: 0 0 0 1px rgba(0, 0, 0, .15); display: block; }
