/*
Theme Name: Die Solarwerkstatt
Theme URI: https://die-solarwerkstatt.de/
Author: Die Solarwerkstatt
Author URI: https://die-solarwerkstatt.de/
Description: Block-Theme für Die Solarwerkstatt (Krefeld) im Stil von dein-energiemanagement.de: hellgrauer Grund, weiße Karten, Solar-Gelb als Akzent, Oswald und Andada Pro. Schriften lokal eingebunden, keine externen Anfragen. Enthält Abschnitts-Vorlagen und ein Rückruf-Formular.
Requires at least: 6.6
Tested up to: 6.9
Requires PHP: 7.4
Version: 1.8.2
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: solarwerkstatt
*/

:root {
	--sw-schatten: 0 1px 2px rgba(0, 0, 0, 0.04), 0 8px 28px rgba(0, 0, 0, 0.06);
	--sw-linie: var(--wp--preset--color--linie);
	--sw-gelb: var(--wp--preset--color--gelb);
}

/* ---------- Grundlagen ---------- */
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { -webkit-font-smoothing: antialiased; font-variant-numeric: lining-nums; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
img { height: auto; }
:focus-visible { outline: 2px solid var(--wp--preset--color--dunkel); outline-offset: 3px; }

/* Telefonnummern in Oswald (Ziffern besser lesbar als die Mediäval-Ziffern der Andada) */
a[href^="tel:"]:not(.wp-element-button) { font-family: var(--wp--preset--font-family--oswald); font-weight: 500; letter-spacing: 0.03em; }

/* Links auf dem dunklen Abschnitt hell */
.has-schwarz-background-color a:where(:not(.wp-element-button)) { color: inherit; }
.has-schwarz-background-color :focus-visible { outline-color: var(--sw-gelb); }

/* Gelber Textmarker in Überschriften */
mark.sw-mark {
	color: inherit;
	background: linear-gradient(transparent 62%, var(--sw-gelb) 62%, var(--sw-gelb) 92%, transparent 92%);
	padding: 0 0.04em;
	-webkit-box-decoration-break: clone; box-decoration-break: clone;
}

/* Aufeinanderfolgende helle Abschnitte nicht doppelt auseinanderziehen */
.sw-section:not(.has-background) + .sw-section:not(.has-background) { padding-top: 0 !important; }

/* ---------- Kopfzeile ---------- */
header.wp-block-template-part { position: sticky; top: 0; z-index: 50; }
body.admin-bar header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 32px); }
.sw-header {
	background: rgba(244, 244, 242, 0.88);
	-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
.sw-header-row { gap: 2rem; padding: 0.625rem 0; border-bottom: 3px solid var(--sw-gelb); }
.sw-logo { margin: 0; flex-shrink: 0; }
.sw-logo img { display: block; width: 64px; height: 64px; }
.sw-nav { flex: 1 1 auto; }
.sw-nav .wp-block-navigation__container { justify-content: flex-end; column-gap: 1.75rem; }
.sw-nav .wp-block-navigation-item__content { padding: 0.35rem 0; text-decoration: none; }
.sw-nav .wp-block-navigation-item__content:hover,
.sw-nav .current-menu-item > .wp-block-navigation-item__content { text-decoration: underline; text-decoration-color: var(--sw-gelb); text-decoration-thickness: 3px; text-underline-offset: 6px; }
.sw-nav .wp-block-navigation__submenu-container {
	background: #fff !important; color: var(--wp--preset--color--dunkel) !important; border: 0 !important; border-radius: 16px;
	box-shadow: var(--sw-schatten); padding: 0.5rem 0; min-width: 260px !important;
}
.sw-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.55rem 1.25rem; font-size: 1rem; }
.sw-header-cta { flex-shrink: 0; }
.sw-phone .wp-block-button__link { white-space: nowrap; font-size: 1rem; padding: 0.7rem 1.25rem; }
.sw-phone .wp-block-button__link:hover { background: #333 !important; color: #fff !important; }
.sw-phone .wp-block-button__link::before {
	content: ""; display: inline-block; width: 16px; height: 16px; margin-right: 0.5rem; vertical-align: -2px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E") center / contain no-repeat;
}
@media (min-width: 600px) and (max-width: 1180px) {
	.sw-nav .wp-block-navigation__container { column-gap: 1.1rem; }
	.sw-nav { font-size: 0.95rem !important; }
}
/* Mobil: Logo kleiner, Telefon als Symbol, Menü-Knopf rechts */
@media (max-width: 599px) {
	.sw-header-row { gap: 1rem; }
	.sw-logo img { width: 52px; height: 52px; }
	.sw-nav { order: 3; flex: 0 0 auto; }
	.sw-header-cta { margin-left: auto !important; }
	.sw-phone .wp-block-button__link { font-size: 0; padding: 0.8rem; }
	.sw-phone .wp-block-button__link::before { margin: 0; width: 20px; height: 20px; }
}
.wp-block-navigation__responsive-container-open svg { width: 32px; height: 32px; }
.wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { font-size: 1.5rem; gap: 1rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { box-shadow: none; background: transparent !important; padding: 0.5rem 0 0 1rem !important; font-size: 1.125rem; }

/* ---------- Abschnitte ---------- */
.sw-eyebrow {
	font-family: var(--wp--preset--font-family--oswald);
	font-size: 0.875rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; margin: 0;
}
.sw-intro > * { margin: 0; max-width: 720px; }

/* Karten: weiß mit weichem Schatten */
.sw-card, .sw-reason, .sw-step, .sw-faq-list, .sw-form, .sw-post-card, .sw-app {
	background: #fff; border-radius: 26px; box-shadow: var(--sw-schatten);
}

/* Hero */
.sw-hero .wp-block-columns { gap: clamp(2.5rem, 5vw, 3.5rem); }
.sw-hero-media { position: relative; padding-bottom: 1.75rem; }
.sw-hero-img { margin: 0; }
.sw-hero-img img { border-radius: 26px; display: block; width: 100%; box-shadow: var(--sw-schatten); }
.sw-hero-badge {
	position: absolute; left: 1.5rem; bottom: 0; border-radius: 20px; padding: 1rem 1.375rem 1rem 4.5rem;
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.12);
}
.sw-hero-badge::before {
	content: ""; position: absolute; left: 1.25rem; top: 50%; translate: 0 -50%; width: 44px; height: 44px; border-radius: 50%;
	background: var(--sw-gelb) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4'/%3E%3C/svg%3E") center / 24px no-repeat;
}
.sw-hero-badge > * { margin: 0 !important; line-height: 1.3; }
.sw-badge-title { font-family: var(--wp--preset--font-family--oswald); font-weight: 600; font-size: 1.125rem; text-transform: uppercase; }
.sw-rating { font-size: 1rem; margin: 0; }
.sw-hero .sw-rating, .wp-block-buttons + .sw-rating { margin-top: 1.75rem !important; }
.sw-stars { color: #e0a800; letter-spacing: 2px; font-size: 1.25rem; }
.sw-rating strong { color: var(--wp--preset--color--dunkel); }

/* Häkchen-Liste: schwarzer Kreis mit gelbem Haken */
.sw-checklist { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 0.625rem 1.5rem; }
.sw-checklist li { position: relative; padding-left: 2rem; }
.sw-checklist li::before {
	content: ""; position: absolute; left: 0; top: 0.2em; width: 1.25rem; height: 1.25rem; border-radius: 50%;
	background: #111 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffc800' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 0.8rem no-repeat;
}

/* Leistungs-Karten */
.sw-card { padding: 2rem 1.75rem; height: 100%; box-sizing: border-box; }
.sw-card > * { margin: 0; }
.sw-icon { margin: 0; }
.sw-icon img { width: 56px; height: 56px; display: block; }
.sw-more { margin-top: auto !important; font-family: var(--wp--preset--font-family--oswald); letter-spacing: 0.05em; text-transform: uppercase; font-size: 1rem; }
.sw-more a { text-decoration: underline; text-decoration-color: var(--sw-gelb); text-decoration-thickness: 3px; text-underline-offset: 5px; }
.sw-more a:hover { text-decoration-color: currentColor; }

/* Dunkler Abschnitt Energiemanagement (einziger schwarzer Abschnitt) */
.sw-mini { border-radius: 18px; padding: 1.125rem 1.25rem; border: 1px solid #2c2c2c; }
.sw-mini > * { margin: 0; }
.sw-mini-title { font-family: var(--wp--preset--font-family--oswald); font-size: 1.125rem; text-transform: uppercase; hyphens: manual; overflow-wrap: anywhere; }
.sw-app { border-radius: 32px; padding: 1.75rem; max-width: 460px; margin-inline: auto; box-sizing: border-box; }
.sw-app > *, .sw-app p { margin: 0; }
.sw-app-title { font-family: var(--wp--preset--font-family--oswald); font-weight: 600; font-size: 1.25rem; text-transform: uppercase; }
.sw-tile { border-radius: 18px; padding: 1rem; }
.sw-tile > * { margin: 0; }
.sw-tile-value { font-family: var(--wp--preset--font-family--oswald); font-weight: 700; font-size: 1.875rem; line-height: 1.15; }
.sw-tile-row { align-items: center; }
.sw-tile-row .sw-tile-value { font-size: 1.5rem; }

/* Warum wir */
.sw-reason { padding: 1.375rem 1.5rem; }
.sw-reason > * { margin: 0; }
.sw-reason-num { font-family: var(--wp--preset--font-family--oswald); font-weight: 700; font-size: 1.5rem; min-width: 2.25rem; line-height: 1.2; }
.sw-reason-num::after { content: ""; display: block; width: 1.5rem; height: 3px; background: var(--sw-gelb); margin-top: 0.25rem; }
.sw-reason h3 { margin: 0; }

/* Referenzen */
.sw-ref-head { align-items: flex-end; }
.sw-ref { margin: 0; }
.sw-ref img { border-radius: 22px; display: block; width: 100%; box-shadow: var(--sw-schatten); }
.sw-ref figcaption { text-align: left; margin-top: 0.875rem; font-size: 1rem; color: var(--wp--preset--color--leise); }
.sw-ref figcaption strong { font-family: var(--wp--preset--font-family--oswald); font-weight: 600; font-size: 1.25rem; text-transform: uppercase; color: var(--wp--preset--color--dunkel); }
.sw-rounded img { border-radius: 26px; }

/* Ablauf */
.sw-step { padding: 1.75rem; height: 100%; box-sizing: border-box; }
.sw-step > * { margin: 0; }
.sw-step-num {
	width: 48px; height: 48px; border-radius: 50%; background: var(--sw-gelb);
	display: flex; align-items: center; justify-content: center;
	font-family: var(--wp--preset--font-family--oswald); font-weight: 700; font-size: 1.375rem;
}

/* Einzugsgebiet */
.sw-pill .wp-block-button__link { font-size: 1rem; padding: 0.65rem 1.25rem; font-weight: 500; box-shadow: var(--sw-schatten); }

/* FAQ: eine weiße Karte mit Trennlinien */
.sw-faq-list { padding: 0.5rem 1.75rem; margin-top: var(--wp--preset--spacing--40) !important; }
.sw-faq-list .wp-block-details { margin: 0; }
.sw-faq-list .wp-block-details:last-child { border-bottom: 0; }
.sw-faq-list summary {
	cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem;
	font-family: var(--wp--preset--font-family--oswald); font-weight: 600; font-size: 1.1875rem; text-transform: uppercase; line-height: 1.3;
}
.sw-faq-list summary::-webkit-details-marker { display: none; }
.sw-faq-list summary::after {
	content: "+"; flex-shrink: 0; width: 32px; height: 32px; border-radius: 50%; background: var(--wp--preset--color--grund);
	display: flex; align-items: center; justify-content: center; font-size: 1.375rem; line-height: 1; transition: transform 0.2s;
}
.sw-faq-list details[open] summary::after { transform: rotate(45deg); background: var(--sw-gelb); }
.sw-faq-list details > p { margin: 0.75rem 0 0; }

/* Gelbe Handlungsaufruf-Karte */
.sw-cta { border-radius: 26px; padding: clamp(1.75rem, 4vw, 3rem); }
.sw-cta > * { margin: 0; }
.sw-cta h2, .sw-cta p { margin: 0; }
.sw-btn-dark .wp-block-button__link:hover { background: #333 !important; }

/* Buttons */
.is-style-outline .wp-block-button__link:hover { background: rgba(0, 0, 0, 0.06); }
.has-schwarz-background-color .is-style-outline .wp-block-button__link:hover { background: rgba(255, 255, 255, 0.12); }

/* ---------- Rückruf-Formular (weiße Karte) ---------- */
.sw-form { padding: 2rem; display: grid; gap: 1rem; font-size: 1rem; color: var(--wp--preset--color--dunkel); }
.sw-form label, .sw-form legend { display: block; font-size: 1rem; }
.sw-form .sw-field { display: grid; gap: 0.375rem; }
.sw-form input[type="text"], .sw-form input[type="tel"], .sw-form input[type="email"], .sw-form textarea {
	width: 100%; box-sizing: border-box; min-height: 48px; border-radius: 12px; border: 1px solid #cfcfca; background: var(--wp--preset--color--grund); color: var(--wp--preset--color--dunkel);
	padding: 0.625rem 0.875rem; font: inherit; font-size: 1.0625rem;
}
.sw-form textarea { min-height: 96px; resize: vertical; }
.sw-form input:focus, .sw-form textarea:focus { border-color: #111; outline: 2px solid var(--sw-gelb); outline-offset: 1px; background: #fff; }
.sw-form fieldset { border: 0; margin: 0; padding: 0; }
.sw-form .sw-choices { display: flex; flex-wrap: wrap; gap: 0.25rem 1.5rem; }
.sw-form .sw-choices label, .sw-form .sw-consent { display: flex; gap: 0.5rem; align-items: center; min-height: 44px; }
.sw-form input[type="radio"], .sw-form input[type="checkbox"] { width: 20px; height: 20px; accent-color: #111; flex-shrink: 0; margin: 0; }
.sw-form .sw-consent { align-items: flex-start; font-size: 0.875rem; color: var(--wp--preset--color--leise); line-height: 1.5; }
.sw-form .sw-consent input { margin-top: 2px; }
.sw-form button {
	min-height: 54px; border: 0; border-radius: 999px; background: var(--sw-gelb); color: #000; cursor: pointer;
	font-family: var(--wp--preset--font-family--oswald); font-weight: 600; font-size: 1.125rem; letter-spacing: 0.04em; text-transform: uppercase;
}
.sw-form button:hover { background: #ffd84d; }
.sw-form .sw-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.sw-form-msg { border-radius: 14px; padding: 0.875rem 1rem; font-size: 1rem; margin: 0; }
.sw-form-msg.is-ok { background: #e7f7e9; color: #0f5a1c; }
.sw-form-msg.is-error { background: #fdeaea; color: #8a1414; }
.sw-req { color: #8a6a00; }

/* ---------- Unterseiten & Blog ---------- */
.sw-title-band .wp-block-post-title, .sw-title-band h1 { margin: 0; }
.sw-content > .wp-block-post-content > *:first-child { margin-top: 0; }
.sw-post-card { overflow: hidden; height: 100%; }
.sw-post-card .wp-block-post-featured-image { margin: 0; }
.sw-post-card-body { padding: 0 1.5rem 1.5rem; }
.sw-post-card-body > * { margin: 0; }
.sw-post-card .wp-block-post-featured-image + .sw-post-card-body { padding-top: 0.5rem; }
.sw-post-card:not(:has(.wp-block-post-featured-image)) .sw-post-card-body { padding-top: 1.5rem; }
.wp-block-post-excerpt__more-link { font-family: var(--wp--preset--font-family--oswald); text-transform: uppercase; letter-spacing: 0.05em; font-size: 1rem; }

/* ---------- Fußzeile: hell, gelbe Linie oben ---------- */
.sw-footer { font-size: 1rem; border-top: 3px solid var(--sw-gelb); }
.sw-footer h4 { font-size: 1rem; letter-spacing: 0.06em; margin: 0; }
.sw-footer p { margin: 0; }
.sw-logo-footer { margin: 0; }
.sw-logo-footer img { width: 72px; height: 72px; display: block; }
.sw-footer-bottom { border-top: 1px solid var(--sw-linie); padding-top: 1.25rem; margin-top: var(--wp--preset--spacing--40) !important; }

/* ---------- Raster: füllen die Breite, brechen auf schmalen Bildschirmen um ---------- */
.wp-block-group.sw-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.wp-block-group.sw-grid-4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }
.wp-block-group.sw-grid-3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }
.wp-block-group.sw-grid-2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); }
@media (min-width: 1000px) {
	.wp-block-group.sw-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.wp-block-group.sw-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Fußzeile auch bei kurzen Seiten unten halten */
.wp-site-blocks { min-height: 100vh; display: flex; flex-direction: column; }
.wp-site-blocks > main, .wp-site-blocks > .wp-block-group:has(> main) { flex: 1 0 auto; }
.wp-site-blocks > footer { margin-top: auto; }

/* ---------- Leistungsseiten ---------- */
.sw-page-hero .wp-block-column { max-width: 860px; }
.sw-page-hero h1 { margin-top: 0.5rem; }
.sw-stat { border-radius: 26px; padding: 1.75rem; box-shadow: var(--sw-schatten); }
.sw-stat > * { margin: 0; }
.sw-stat-value { font-family: var(--wp--preset--font-family--oswald); font-weight: 700; font-size: clamp(2.25rem, 4vw, 3rem); line-height: 1.05; text-transform: uppercase; }
.sw-stat-value::after { content: ""; display: block; width: 2.5rem; height: 4px; background: var(--sw-gelb); margin: 0.625rem 0 0.75rem; }
.sw-hinweis { border-radius: 26px; padding: 1.75rem 2rem; box-shadow: var(--sw-schatten); border-left: 6px solid var(--sw-gelb); }
.sw-hinweis-text { flex: 1 1 26rem; }
.sw-hinweis-text > * { margin: 0; }
.sw-warnlist { list-style: none; padding: 0; display: grid; gap: 0.625rem; }
.sw-warnlist li { position: relative; padding-left: 2rem; }
.sw-warnlist li::before {
	content: "!"; position: absolute; left: 0; top: 0.2em; width: 1.25rem; height: 1.25rem; border-radius: 50%;
	background: var(--sw-gelb); color: #111; font-family: var(--wp--preset--font-family--oswald); font-weight: 700; font-size: 0.875rem;
	display: flex; align-items: center; justify-content: center; line-height: 1;
}
.sw-card .sw-more { padding-top: 0.25rem; }

/* ---------- Seiten aus WPBakery (Städte-Seiten, Blog): Inhalt unverändert, nur ins neue Layout eingepasst ---------- */
.wpb-content-wrapper { max-width: 1200px; margin-inline: auto; }
.wpb-content-wrapper img { max-width: 100%; height: auto; }
.wpb-content-wrapper h1, .wpb-content-wrapper h2, .wpb-content-wrapper h3 { line-height: 1.15; }
.wpb-content-wrapper .vc_row { margin-left: 0; margin-right: 0; }

/* ---------- 1.3: Bewertungen, Bildhöhen, Listen ---------- */
.sw-bewertungen { background: #fff; border-radius: 26px; box-shadow: var(--sw-schatten); padding: clamp(1rem, 3vw, 2rem); }
.sw-rating a { color: inherit; text-decoration: underline; text-decoration-color: var(--sw-gelb); text-decoration-thickness: 3px; text-underline-offset: 5px; }
.wp-block-post-content .wp-block-image.sw-rounded img,
.wp-block-post-content .wp-block-column > .wp-block-image img { max-height: 560px; width: 100%; object-fit: cover; border-radius: 26px; }
.sw-checklist.sw-checklist-1col { grid-template-columns: 1fr; }
.sw-lesebreite > * { margin-left: 0 !important; }

/* ---------- 1.4: Über uns, Kontakt, Hersteller ---------- */
.sw-portrait img { aspect-ratio: 5 / 7; object-fit: cover; object-position: center top; max-height: 720px; }
.sw-zitat {
	font-size: 1.25rem; line-height: 1.55; font-style: italic; margin: 0.5rem 0 1rem;
	padding: 1.25rem 1.5rem; background: #fff; border-radius: 20px; box-shadow: var(--sw-schatten); border-left: 6px solid var(--sw-gelb);
}
.sw-siegel { margin-top: 0.5rem; }
.sw-siegel img { max-width: 260px; height: auto; border-radius: 12px; }
.sw-kontaktkarte { border-radius: 26px; padding: 2rem; box-shadow: var(--sw-schatten); }
.sw-kontaktkarte > * { margin: 0; }
.sw-reonic { background: #fff; border-radius: 26px; box-shadow: var(--sw-schatten); padding: clamp(1rem, 3vw, 2rem); min-height: 420px; }
.sw-logos { align-items: stretch; }
.sw-logo-karte { border-radius: 20px; box-shadow: var(--sw-schatten); padding: 1.25rem; display: flex; align-items: center; justify-content: center; min-height: 120px; }
.sw-logo-karte .wp-block-image { margin: 0; }
.sw-hersteller-logo img { max-height: 70px; width: auto; max-width: 100%; object-fit: contain; }
.sw-hersteller-logo a { display: block; }
.sw-logo-text { margin: 0; font-family: var(--wp--preset--font-family--oswald); font-weight: 700; font-size: 1.5rem; text-transform: uppercase; letter-spacing: 0.03em; text-align: center; }
.sw-logo-text a { text-decoration: none; color: var(--wp--preset--color--dunkel); }
.sw-logo-text a:hover { text-decoration: underline; text-decoration-color: var(--sw-gelb); text-decoration-thickness: 3px; }

/* Karten-Hinweis statt eingebetteter Google-Karte (DSGVO: Google lädt erst nach Klick) */
.sw-karte-link {
	border-radius: 26px; padding: 2rem; min-height: 260px; display: flex; flex-direction: column; justify-content: center; gap: 0.75rem;
	background: #fff radial-gradient(circle at 80% 20%, rgba(255, 200, 0, 0.35), transparent 45%); box-shadow: var(--sw-schatten);
}
.sw-karte-link p { margin: 0; color: var(--wp--preset--color--leise); }
.sw-karte-link .sw-karte-titel { font-family: var(--wp--preset--font-family--oswald); font-weight: 700; font-size: 1.5rem; text-transform: uppercase; color: var(--wp--preset--color--dunkel); }
.sw-karte-link .sw-karte-btn {
	align-self: flex-start; display: inline-block; padding: 0.75rem 1.5rem; border-radius: 999px; border: 2px solid currentColor; color: var(--wp--preset--color--dunkel);
	font-family: var(--wp--preset--font-family--oswald); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; text-decoration: none;
}
.sw-karte-link .sw-karte-btn:hover { background: var(--sw-gelb); border-color: var(--sw-gelb); }

/* ---------- 1.6: Einwilligungs-Banner & Platzhalter ---------- */
.sw-consent { position: fixed; inset: auto 1rem 1rem 1rem; z-index: 1000; display: flex; justify-content: flex-start; pointer-events: none; }
.sw-consent[hidden] { display: none; }
.sw-consent-box {
	pointer-events: auto; max-width: 560px; background: #fff; color: var(--wp--preset--color--dunkel); border-radius: 22px;
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.18); border-top: 4px solid var(--sw-gelb); padding: 1.5rem; font-size: 0.9375rem; line-height: 1.5;
}
.sw-consent-box p { margin: 0 0 0.75rem; }
.sw-consent-titel { font-family: var(--wp--preset--font-family--oswald); font-weight: 700; font-size: 1.25rem; text-transform: uppercase; }
.sw-consent-optionen { display: grid; gap: 0.5rem; margin: 0 0 1rem; }
.sw-consent-optionen label { display: flex; gap: 0.625rem; align-items: flex-start; }
.sw-consent-optionen input { width: 20px; height: 20px; margin-top: 2px; accent-color: #111; flex-shrink: 0; }
.sw-consent-knoepfe { display: flex; flex-wrap: wrap; gap: 0.625rem; }
.sw-consent-knoepfe button, .sw-consent-laden {
	min-height: 46px; padding: 0 1.25rem; border-radius: 999px; border: 2px solid #111; background: #111; color: #fff; cursor: pointer;
	font-family: var(--wp--preset--font-family--oswald); font-weight: 600; font-size: 1rem; letter-spacing: 0.04em; text-transform: uppercase;
}
.sw-consent-knoepfe button:hover, .sw-consent-laden:hover { background: #333; }
.sw-consent-knoepfe .sw-consent-link { background: transparent; color: #111; }
.sw-consent-knoepfe .sw-consent-link:hover { background: rgba(0, 0, 0, 0.06); }
.sw-consent-platzhalter {
	border: 2px dashed #cfcfca; border-radius: 20px; padding: 1.5rem; background: var(--wp--preset--color--grund);
	display: grid; gap: 1rem; justify-items: start; font-size: 0.9375rem; color: var(--wp--preset--color--leise);
}
.sw-consent-platzhalter p { margin: 0; }
.sw-consent-laden { background: var(--sw-gelb); border-color: var(--sw-gelb); color: #111; }
.sw-consent-laden:hover { background: #ffd84d; }
@media (max-width: 599px) { .sw-consent { inset: auto 0.5rem 0.5rem 0.5rem; } .sw-consent-box { padding: 1.25rem; } }
.sw-consent [hidden] { display: none !important; }
mark.sw-pruefen { background: #ffe9a8; color: #6b4a00; padding: 0.1em 0.3em; border-radius: 4px; font-weight: 600; }

/* ---------- 1.6.2: Lesbarkeit Blog & Textseiten ---------- */
.sw-content .wp-block-post-content h2 { font-size: var(--wp--preset--font-size--titel-m); margin-top: 2.5rem; }
.sw-content .wp-block-post-content h3 { font-size: var(--wp--preset--font-size--titel-s); margin-top: 2rem; }
.sw-content .wp-block-post-content h1 { font-size: var(--wp--preset--font-size--titel-m); }

/* 1.6.3 – Foto der Energiemanager-App */
.sw-app-foto { margin: 0 auto !important; max-width: 340px; }
.sw-app-foto img { display: block; width: 100%; height: auto; border-radius: 28px; box-shadow: 0 24px 60px rgba(0,0,0,.35); border: 6px solid #fff; box-sizing: border-box; }
@media (max-width: 781px) { .sw-app-foto { max-width: 280px; } }

/* 1.6.5 – Burger-Menü nur auf dem Handy (ab 1.8.2: bis 759 px) */
@media (max-width: 759px) {
	.sw-header-row .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.sw-header-row .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
	/* 1.6.6 – Burger rechts, größer, ohne Telefon-Button */
	.sw-header-cta { display: none !important; }
	.sw-header-row .sw-nav { margin-left: auto !important; order: 3; }
	.sw-header-row .wp-block-navigation__responsive-container-open { padding: 0.25rem; }
	.sw-header-row .wp-block-navigation__responsive-container-open svg { width: 44px; height: 44px; }
}

/* 1.6.7 – Mobiles Menü: Vollbild, Logo bleibt sichtbar, kompakte Liste */
@media (max-width: 759px) {
	/* backdrop-filter würde das Vollbild-Menü auf die Kopfzeile begrenzen */
	.sw-header:has(.is-menu-open), html.has-modal-open .sw-header { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
	header.wp-block-template-part:has(.is-menu-open) { z-index: 100000; }

	/* Burger bündig mit dem rechten Rand der gelben Linie */
	.sw-header-row .wp-block-navigation__responsive-container-open { padding: 0 !important; margin-right: -6px; }
	.sw-header-row .wp-block-navigation__responsive-container-open svg { width: 44px; height: 44px; }

	.wp-block-navigation__responsive-container.is-menu-open { padding: 0 var(--wp--style--root--padding-right, 24px) 2.5rem var(--wp--style--root--padding-left, 24px) !important; overflow-y: auto; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close { max-width: none; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog { position: relative; padding-top: 0 !important; margin-top: 0 !important; }
	/* Logo-Zeile wie in der Kopfzeile */
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog::before {
		content: ""; display: block; height: 85px; box-sizing: border-box; border-bottom: 3px solid var(--sw-gelb);
		background: url("assets/images/logo-die-solarwerkstatt.webp") left center / 64px 64px no-repeat;
	}
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { top: 20px !important; right: -6px !important; padding: 0 !important; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg { width: 44px; height: 44px; }

	/* Einträge: linksbündig, kompakt, mit Trennlinien */
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 0.5rem !important; align-items: stretch !important; font-size: 1rem !important; gap: 0 !important; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { width: 100%; gap: 0 !important; align-items: stretch !important; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item { display: block !important; width: 100%; padding: 0.65rem 0; border-bottom: 1px solid var(--wp--preset--color--linie); }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { font-family: var(--wp--preset--font-family--oswald); font-size: 1.3rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.02em; padding: 0 !important; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
		display: grid !important; grid-template-columns: 1fr 1fr; gap: 0.15rem 1.25rem; width: 100% !important;
		padding: 0.5rem 0 0 0 !important; margin: 0 !important; font-size: 1rem !important; border: 0 !important; background: transparent !important; box-shadow: none !important;
	}
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-family: var(--wp--preset--font-family--andada); font-size: 1rem; text-transform: none; letter-spacing: 0; font-weight: 400; padding: 0.3rem 0 !important; color: var(--wp--preset--color--leise); }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { justify-items: start !important; align-items: start !important; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { justify-content: flex-start !important; align-items: flex-start !important; text-align: left !important; width: 100% !important; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle, .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon { display: none !important; }
}
@media (max-width: 599px) {
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog::before { height: 75px; background-size: 52px 52px; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { top: 15px !important; }
}

/* 1.6.8 – Burger auch auf dem iPad rechtsbündig, Menü leicht durchsichtig wie die Kopfzeile */
@media (max-width: 759px) {
	.sw-header-row .sw-nav { flex: 0 0 auto !important; margin-left: auto !important; }
	.sw-header-row .sw-nav .wp-block-navigation__responsive-container-open { margin-left: auto; }
	.wp-block-navigation__responsive-container.is-menu-open {
		background-color: rgba(244, 244, 242, 0.88) !important;
		-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	}
}

/* 1.7.2 – Porträt immer vollständig (mit Armen), nie beschnitten */
.sw-portrait { max-width: 480px; margin-inline: auto !important; }
.sw-portrait img { aspect-ratio: auto !important; width: 100%; height: auto !important; max-height: none !important; object-fit: contain !important; }

/* 1.7.3 – Solarteur-Logo im Hero-Kasten und als Siegel */
.sw-hero-badge { padding: 1rem 1.375rem !important; }
.sw-hero-badge::before { display: none !important; }
.sw-hero-badge .sw-badge-logo { margin: 0 0 0.5rem !important; }
.sw-hero-badge .sw-badge-logo img { display: block; width: 150px; height: auto; }
.sw-siegel img { border-radius: 0 !important; max-width: 240px; }

/* 1.7.4 – lange Wörter in Karten sauber trennen */
.sw-card h3, .sw-step h3 { hyphens: manual; -webkit-hyphens: manual; overflow-wrap: break-word; }

/* 1.7.4 – Banner „über 20 Jahre Erfahrung“ */
.sw-erfahrung { border-radius: 28px; padding: clamp(1.75rem, 4vw, 3rem) clamp(1.5rem, 4vw, 3.5rem); box-shadow: var(--sw-schatten); position: relative; overflow: hidden; }
.sw-erfahrung > * { margin: 0 !important; }
.sw-erfahrung-zahl { font-family: var(--wp--preset--font-family--oswald); font-weight: 700; font-size: clamp(5rem, 12vw, 9rem); line-height: 0.85; letter-spacing: -0.02em; }
.sw-erfahrung-zahl span { font-size: 0.6em; vertical-align: top; }
.sw-erfahrung-text { flex: 1 1 22rem; max-width: 40rem; }
.sw-erfahrung-text .sw-eyebrow { color: var(--wp--preset--color--dunkel); opacity: 0.75; }
.sw-erfahrung-text h2 { margin: 0; }

/* 1.7.6 – Wallbox-Seite */
.sw-wallbox-bild { margin: 0 auto !important; max-width: 560px; }
.sw-wallbox-bild img { display: block; width: 100%; height: auto; filter: drop-shadow(0 24px 40px rgba(0,0,0,.25)); }
.has-schwarz-background-color .sw-wallbox-bild img { filter: drop-shadow(0 0 60px rgba(255,200,0,.18)); }
.sw-spec { border-radius: 18px; padding: 1rem 1.25rem; box-shadow: var(--sw-schatten); }
.sw-spec > * { margin: 0 !important; }
.sw-spec-value { font-weight: 600; color: var(--wp--preset--color--dunkel); margin-top: 0.25rem !important; }

/* 1.7.7 – Inhalte dürfen Karten nie sprengen (lange Wörter) */
.sw-grid > *, .sw-card > *, .sw-mini > * { min-width: 0; }

/* 1.7.7 – Ausklappmenüs: Ecken sicher rund (auch Safari) */
.sw-nav .wp-block-navigation__submenu-container { border: 0 !important; overflow: hidden; isolation: isolate; }
.sw-nav .wp-block-navigation__submenu-container .wp-block-navigation-item { background: transparent !important; }

/* 1.8.0 – iPhone/iPad: keine automatische Schriftvergrößerung durch Safari */
html { -webkit-text-size-adjust: 100%; -moz-text-size-adjust: 100%; text-size-adjust: 100%; }

/* 1.8.2 – Tablets: komplettes Menü in einer Zeile, Telefon als rundes Symbol */
@media (min-width: 760px) and (max-width: 1100px) {
	.sw-header-row { gap: 1.25rem !important; }
	.sw-nav .wp-block-navigation__container { column-gap: 1.1rem !important; }
	.sw-nav .wp-block-navigation-item__content { font-size: 15px !important; }
	.sw-phone .wp-block-button__link { font-size: 0 !important; padding: 0.8rem !important; }
	.sw-phone .wp-block-button__link::before { margin: 0 !important; width: 20px; height: 20px; }
}
@media (min-width: 760px) and (max-width: 959px) {
	.sw-header-row { gap: 1rem !important; }
	.sw-nav .wp-block-navigation__container { column-gap: 0.85rem !important; }
	.sw-nav .wp-block-navigation-item__content { font-size: 14px !important; }
}
