/* Zimmermann 2026 – Grundstile. Die Stile der einzelnen Abschnitte kommen je Seite aus _zm_css. */

:root {
	--e-global-color-primary: #262626;
	--e-global-color-secondary: #FFFFFF;
	--e-global-color-text: #4A4945;
	--e-global-color-accent: #262626;
	--e-global-color-1be27ac6: #F2F1EE;
	--e-global-color-d428c71: #E5E4E0;
	--e-global-color-09c6ac7: #353535;
	--e-global-color-67323e3: #262626;
	--e-global-color-e45df99: #262626;
	--zm-ink: #262626;
	--zm-paper: #F2F1EE;
	--zm-band: #E5E4E0;
	--zm-muted: #8A8984;
	--zm-line: #D6D4CF;
	--zm-sand: #F2F1EE;
}

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

/* Grundschrift wie bisher (Werte der Handy-Ansicht; Abweichungen stehen je Abschnitt) */
body {
	margin: 0;
	background: #FFFFFF;
	color: rgb(51, 51, 51);
	font-family: Jost, sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	-webkit-font-smoothing: antialiased;
}

.wp-site-blocks { padding: 0; }
.wp-site-blocks > * { margin-block: 0; }
img { max-width: 100%; height: auto; display: block; }

a { color: #262626; }
a:hover { color: #262626; }

/* Neutrale Ausgangswerte der Kernblöcke; die Seitenstile setzen alles Weitere */
:where(h1, h2, h3, h4, h5, h6, p, ul, ol, figure) { margin: 0; }
.wp-block-image { margin: 0; }
.wp-block-image img { height: auto; }
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 0; }
.wp-block-button__link.wp-element-button {
	display: inline-block;
	background-color: transparent;
	color: inherit;
	padding: 0;
	border: 0;
	border-radius: 0;
	font: inherit;
	text-decoration: none;
	transition: background-color .25s, color .25s, border-color .25s;
}

/* Letzter Absatz eines Textblocks ohne Abstand nach unten (wie bei Elementor) */
.wp-block-group.z-text > :last-child { margin-bottom: 0; }

/* Rückmeldung der Anfrageformulare */
.zm-form-meldung { margin-top: 16px; font-size: 15px; line-height: 1.5; }
.zm-form-meldung:empty { display: none; }
.zm-form-meldung.ist-ok { padding: 12px 16px; background: #F2F1EE; border-left: 3px solid #262626; color: #262626; }
.zm-form-meldung.ist-fehler { padding: 12px 16px; background: #FBEDEB; border-left: 3px solid #A3362A; color: #262626; }

/* 404-Seite (templates/404.html) */
.zm-404 { position: relative; overflow: hidden; background: #F2F1EE; padding: clamp(96px, 14vw, 180px) clamp(20px, 6vw, 120px) clamp(120px, 16vw, 200px); }
.zm-404::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: clamp(40px, 7vw, 96px); background: #E5E4E0; clip-path: polygon(0 100%, 100% 0, 100% 100%); }
.zm-404-in { position: relative; z-index: 1; max-width: 1200px; margin: 0 auto; }
.zm-404-label { font-size: 12px; font-weight: 600; letter-spacing: 1.8px; text-transform: uppercase; color: #6E6D68; margin: 0 0 22px; }
.zm-404-titel { font-family: Jost, sans-serif; font-weight: 400; font-size: clamp(40px, 6vw, 84px); line-height: 1.02; letter-spacing: -1.5px; color: #262624; margin: 0 0 26px; text-wrap: balance; }
.zm-404-text { font-size: 18px; line-height: 1.6; color: #4A4945; max-width: 34em; margin: 0 0 36px; }
.zm-404-knoepfe { gap: 14px; margin-bottom: 44px; }
.zm-404 .wp-block-button__link.wp-element-button { padding: 15px 26px; font-size: 12px; font-weight: 600; letter-spacing: 1.8px; text-transform: uppercase; border: 1px solid #262626; }
.zm-404-voll .wp-block-button__link.wp-element-button { background: #262626; color: #fff; }
.zm-404-voll .wp-block-button__link.wp-element-button:hover { background: #000; }
.zm-404-rand .wp-block-button__link.wp-element-button { color: #262626; }
.zm-404-rand .wp-block-button__link.wp-element-button:hover { background: #262626; color: #fff; }
.zm-404-links { display: flex; flex-wrap: wrap; gap: 8px 26px; font-size: 15px; margin: 0; }
.zm-404-links a { color: #4A4945; text-decoration: none; border-bottom: 1px solid #C9C7C2; padding-bottom: 2px; }
.zm-404-links a:hover { color: #262626; border-color: #262626; }

/* Lightbox für Bildlinks in den HTML-Bausteinen (assets/lightbox.js) */
.zm-lb { position: fixed; inset: 0; z-index: 100000; display: none; align-items: center; justify-content: center; background: rgba(20, 20, 20, .94); }
.zm-lb.ist-offen { display: flex; }
.zm-lb figure { margin: 0; max-width: 90vw; max-height: 88vh; display: flex; flex-direction: column; align-items: center; }
.zm-lb img { max-width: 90vw; max-height: 80vh; width: auto; height: auto; object-fit: contain; }
.zm-lb figcaption { margin-top: 12px; color: #E5E4E0; font-size: 14px; line-height: 1.4; text-align: center; }
.zm-lb button { position: absolute; background: none; border: 0; color: #fff; cursor: pointer; font: 300 44px/1 Jost, sans-serif; padding: 12px 18px; opacity: .8; }
.zm-lb button:hover, .zm-lb button:focus-visible { opacity: 1; }
.zm-lb button:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.zm-lb-zu { top: 12px; right: 12px; }
.zm-lb-vor { left: 8px; top: 50%; transform: translateY(-50%); }
.zm-lb-nach { right: 8px; top: 50%; transform: translateY(-50%); }
.zm-lb.ist-einzeln .zm-lb-vor, .zm-lb.ist-einzeln .zm-lb-nach { display: none; }
.zm-lb-zahl { position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%); color: #C9C7C2; font-size: 13px; letter-spacing: 1px; }

/* Akkordeon (FAQ) aus Details-Blöcken */
.wp-block-details summary {
	list-style: none;
	cursor: pointer;
	padding-right: 2em;
}
.wp-block-details.z-acc > summary { position: relative !important; }
.z-accordion > .wp-block-details:first-child { border-top: 1px solid rgb(214, 212, 207); }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: "+";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.25em;
	font-weight: 400;
	line-height: 1;
}
.wp-block-details[open] summary::after { content: "–"; }
.wp-block-details summary:focus-visible { outline: 2px solid #262626; outline-offset: 3px; }
