/* Section spacing belongs to the complete section, not to its old builder fragments. */
:root,.editor-styles-wrapper { --ze-tile-content-width:1120px; --ze-tile-section-space:80px; --ze-tile-section-gap:32px; --ze-tile-gutter:30px; }
.ze-tile-section.ze-tile-section-boxed > .ze-tile-container { max-width:var(--ze-tile-content-width); }
.ze-tile-flex { --container-max-width:var(--ze-tile-content-width); }
.ze-tile-composite { position:relative; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-composite .ze-tile-618 > .ze-tile-section { margin:0; padding:var(--ze-tile-section-gap) var(--ze-tile-gutter); }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-composite .ze-tile-618:first-child > .ze-tile-section { padding-top:var(--ze-tile-section-space); }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-composite .ze-tile-618:last-child > .ze-tile-section { padding-bottom:var(--ze-tile-section-space); }
:is(.ze-tile-site,.editor-styles-wrapper) :is(.ze-tile-section-company,.ze-tile-section-contact) .ze-tile-618:last-child > .ze-tile-section { padding-top:0; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-composite .ze-tile-618:first-child > .ze-tile-section > .ze-tile-container > .ze-tile-column > .ze-tile-widget-wrap { padding:0; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-composite .ze-tile-618:first-child > .ze-tile-section > .ze-tile-container > .ze-tile-column:has(.ze-tile-widget-heading) { width:100%; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-composite .ze-tile-618:first-child > .ze-tile-section > .ze-tile-container > .ze-tile-column:not(:has(.ze-tile-widget)) { display:none; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-composite .ze-tile-618:first-child .ze-tile-widget-container { margin-top:0; margin-bottom:0; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-composite .ze-tile-618:first-child .ze-tile-widget-wrap { gap:20px; }

/* Six equally sized photographs. Expanding text never stretches a photograph. */
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-element.ze-tile-service-row > .ze-tile-container { align-items:flex-start; gap:48px; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-service-row > .ze-tile-container > .ze-tile-column { width:calc((100% - 48px)/2); align-self:flex-start; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-service-row > .ze-tile-container > .ze-tile-column > .ze-tile-widget-wrap { padding:0; }
.ze-tile-service-image figure { display:block; width:100%; aspect-ratio:1; margin:0; overflow:hidden; }
.ze-tile-service-image img { display:block; width:100%; height:100%; object-fit:cover; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-service-row .ze-tile-widget-container { margin-top:0; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-accordion :is(.ze-tile-tab-title,.ze-tile-accordion-title,.ze-tile-accordion-icon,.ze-tile-tab-content) { color:#000; background:transparent; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-accordion .ze-tile-accordion-item[open] > .ze-tile-tab-title :is(.ze-tile-accordion-title,.ze-tile-accordion-icon) { color:#000; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-accordion .ze-tile-tab-title { line-height:1.35; }
.ze-tile-accordion-item { overflow-anchor:none; }
.ze-tile-accordion .ze-tile-tab-content > :last-child { margin-bottom:0; }
.ze-tile-accordion .ze-tile-tab-content { overflow-wrap:anywhere; }
.ze-tile-faq-list .ze-tile-accordion-title { min-width:0; overflow-wrap:anywhere; hyphens:auto; }
.ze-tile-accordion summary:focus-visible { outline-offset:-2px; }
.ze-tile-accordion-item.ze-tile-is-animating { overflow:hidden; }

/* Space between the introductory paragraphs and their calls to action. */
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 :is(.ze-tile-element-05d7373,.ze-tile-element-554ed7c) { margin-top:24px; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 :is(.ze-tile-element-c53e9d7,.ze-tile-element-64e8740) { --margin-top:0px; --margin-bottom:64px; --padding-top:40px; --padding-bottom:40px; }

/* Reference image lives on a separate, slightly oversized layer. */
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-element.ze-tile-reference-section { padding:var(--ze-tile-section-space) var(--ze-tile-gutter); background-image:none !important; overflow:hidden; isolation:isolate; }
.ze-tile-parallax-bg { position:absolute; inset:-32px 0; background-size:cover; background-position:center; pointer-events:none; z-index:0; }
.ze-tile-reference-section > .ze-tile-background-overlay { z-index:1; }
.ze-tile-reference-section > .ze-tile-container { position:relative; z-index:2; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-reference-section > .ze-tile-container > .ze-tile-column > .ze-tile-widget-wrap { padding:16px; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-reference-section .ze-tile-widget-container { margin-top:0; }

/* Contact heading, address, form and location image form one editing unit. */
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-section-contact .ze-tile-section > .ze-tile-container { gap:40px; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-section-contact .ze-tile-section > .ze-tile-container > .ze-tile-column { width:calc((100% - 40px)/2); }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-section-contact .ze-tile-section > .ze-tile-container > .ze-tile-column > .ze-tile-widget-wrap { padding:0; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-section-contact .ze-tile-element-969549f > .ze-tile-widget-container { margin:0; padding:0; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-section-contact .ze-tile-element-266dc68 > .ze-tile-widget-container { margin-top:24px; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-contact-form .ze-tile-form-fields-wrapper { margin:0; }

/* FAQ: all answers start closed; native details work without JavaScript too. */
.ze-tile-faq { max-width:var(--ze-tile-content-width); margin:auto; padding:var(--ze-tile-section-space) 0; font:400 20px/1.55 Forza,sans-serif; }
.ze-tile-faq h2 { max-width:850px; margin:0 0 48px; color:#000; font:700 clamp(30px,4vw,46px)/1.2 Forza,sans-serif; }
.ze-tile-faq-list .ze-tile-accordion-item { border:0; margin:0 0 24px; }
.ze-tile-faq-list .ze-tile-tab-title { display:flex; align-items:flex-start; gap:20px; padding:0; color:#000; background:transparent; font:700 24px/1.35 Forza,sans-serif; }
.ze-tile-faq-list .ze-tile-tab-content { padding:16px 0 0 56px; border:0; font:inherit; color:#000; }
.ze-tile-faq-chevron { display:grid; place-items:center; flex:0 0 36px; height:36px; background:#f4f4f4; }
.ze-tile-faq-chevron::after { content:''; width:17px; height:17px; border:solid #009ee2; border-width:0 2px 2px 0; transform:translateY(-4px) rotate(45deg); transition:transform .32s ease; }
details[open] > summary .ze-tile-faq-chevron::after { transform:translateY(4px) rotate(225deg); }

/* PV headings and related content now share section spacing. */
.ze-tile-composite[class*="ze-tile-section-solar-"] { padding-block:40px; }
.ze-tile-composite.ze-tile-section-solar-intro { padding-top:0; }
.ze-tile-composite[class*="ze-tile-section-solar-"] > .ze-tile + .ze-tile { margin-top:24px; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-composite .ze-tile-665 > .ze-tile-element { --margin-top:0px; --margin-bottom:0px; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-section-solar-economy .ze-tile + .ze-tile:last-child { margin-top:0; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-665 :is(.ze-tile-element-6502e0c,.ze-tile-element-23f389e) { --margin-top:40px; --margin-bottom:40px; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-665 .ze-tile-element-783cbb5 { --min-height:128px; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-section-solar-contact .ze-tile-665 > .ze-tile-element { --padding-top:40px; --padding-bottom:40px; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-22 .ze-tile-element.ze-tile-element-bb04dbf > .ze-tile-widget-container,
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-3 .ze-tile-element.ze-tile-element-6950f78 { padding:40px 5% var(--ze-tile-section-space); }

/* Footer spacing and review link. The copyright year is rendered server-side. */
.ze-tile-footer { padding:40px 30px 64px; }
.ze-tile-footer .ze-tile-315 .ze-tile-element.ze-tile-element-c3f755c > .ze-tile-widget-container { padding:0; }
.ze-tile-footer .ze-tile-315 .ze-tile-element.ze-tile-element-15fe96e > .ze-tile-widget-container { padding:0; }
.ze-tile-footer-reviews { max-width:var(--ze-tile-content-width); margin:24px auto 0; padding:0 10px; }
.ze-tile-review-button { display:inline-block; border:1px solid #000; padding:12px 20px; background:#fff; color:#000; font:700 17px/1.35 Forza,sans-serif; text-decoration:none; }
.ze-tile-review-button:hover { background:#000; color:#fff; }

@media(max-width:1024px) {
 :is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-service-row > .ze-tile-container > .ze-tile-column:not(.ze-tile-service-image) { width:100%; }
 :is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-665 > .ze-tile-flex { --width:100%; }
 :is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-section-solar-contact .ze-tile-contact-link .ze-tile-icon-box-title { font-size:22px; }
}
@media(max-width:767px) {
 :root,.editor-styles-wrapper { --ze-tile-section-space:48px; --ze-tile-section-gap:24px; --ze-tile-gutter:30px; }
 :is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-composite .ze-tile-618:first-child .ze-tile-widget-wrap { gap:14px; }
 :is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-composite .ze-tile-618:first-child > .ze-tile-section > .ze-tile-container { gap:20px; }
 :is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-section-contact .ze-tile-section > .ze-tile-container > .ze-tile-column { width:100%; }
 :is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-element.ze-tile-reference-section { padding-inline:30px; }
 :is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-reference-section > .ze-tile-container > .ze-tile-column > .ze-tile-widget-wrap { padding:0; }
 :is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 :is(.ze-tile-element-c53e9d7,.ze-tile-element-64e8740) { --margin-bottom:40px; --padding-top:28px; --padding-bottom:28px; }
 .ze-tile-faq { font-size:17px; }
 .ze-tile-faq h2 { margin-bottom:32px; }
 .ze-tile-faq-list .ze-tile-tab-title { font-size:20px; gap:12px; }
 .ze-tile-faq-list .ze-tile-tab-content { padding-left:40px; padding-top:12px; }
 .ze-tile-faq-chevron { flex-basis:28px; height:28px; }
 .ze-tile-faq-chevron::after { width:13px; height:13px; }
 .ze-tile-composite[class*="ze-tile-section-solar-"] { padding-block:24px; }
 :is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-665 :is(.ze-tile-element-6502e0c,.ze-tile-element-23f389e) { --margin-top:24px; --margin-bottom:24px; }
 .ze-tile-footer { padding:24px 20px 48px; }
 .ze-tile-footer-reviews { padding:0 10px; }
 .ze-tile-review-button { font-size:16px; padding:12px 18px; }
 :is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-section-solar-contact .ze-tile-icon-box-wrapper { display:flex; flex-direction:row; align-items:flex-start; text-align:left; gap:14px; }
 :is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-section-solar-contact .ze-tile-icon-box-icon { flex:0 0 26px; margin:0; }
 :is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-section-solar-contact .ze-tile-icon-box-icon .ze-tile-icon { font-size:26px; }
 :is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-section-solar-contact .ze-tile-icon-box-content { min-width:0; }
 :is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-section-solar-contact .ze-tile-icon-box-title { font-size:18px; line-height:1.4; hyphens:none; }
 :is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-section-solar-contact .ze-tile-contact-link .ze-tile-icon-box-title { font-size:18px; }
}
@media(prefers-reduced-motion:reduce) { .ze-tile-parallax-bg { transform:none !important; } }

/* Consistent service descriptions, neutral expanded content and visible interaction. */
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-service-intro { margin-bottom:24px; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-element-ae062ad > .ze-tile-widget-container { padding:0; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-element-ae062ad { font-size:inherit; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-element-ae062ad .ze-tile-accordion-item { border:0; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-element-ae062ad .ze-tile-tab-title { font:400 1em/1.35 Arial,sans-serif; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-element-ae062ad .ze-tile-tab-content { font-size:.9em; border:0; }
.ze-tile-accordion .ze-tile-tab-title { transition:background-color .18s,color .18s; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-accordion .ze-tile-accordion-item > .ze-tile-tab-title:is(:hover,:focus-visible) { background:#eaf7fc; color:#0077aa; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-accordion .ze-tile-accordion-item > .ze-tile-tab-title:is(:hover,:focus-visible) :is(.ze-tile-accordion-title,.ze-tile-accordion-icon) { color:#0077aa; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-element-6e725bb .ze-tile-icon-list-item { display:flex; align-items:flex-start; gap:12px; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-element-6e725bb .ze-tile-icon-list-icon { flex:0 0 22px; width:22px; height:22px; margin-top:3px; border-radius:50%; background:#dceff8; color:#0077aa; display:grid; place-items:center; }
.ze-tile-element-6e725bb .ze-tile-icon-list-icon::before { content:'✓'; font:700 14px/1 Arial,sans-serif; }
.ze-tile-element-6e725bb .ze-tile-icon-list-icon svg { display:none; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-element-6e725bb .ze-tile-icon-list-text { padding:0; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-element-8e5a280 { margin-top:28px; }
:is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-665 .ze-tile-element-d796f6c { margin-top:28px; }
.ze-tile-contact-link,.ze-tile-contact-link:visited { color:inherit; text-decoration:none; }
.ze-tile-contact-link:is(:hover,:focus-visible) .ze-tile-icon-box-title span { text-decoration:underline; text-underline-offset:.18em; }

/* A contact destination on the current page, available throughout the visit. */
.ze-tile-header-inner { max-width:1180px; grid-template-columns:44px 1fr auto auto; grid-template-areas:"logo nav phone cta"; gap:22px; padding-inline:30px; }
.ze-tile-header-navigation .ze-tile-nav-menu { gap:22px; }
.ze-tile-sticky-header .ze-tile-header-cta,.ze-tile-sticky-header .ze-tile-header-cta:visited { grid-area:cta; padding:12px 16px; background:#0077aa; color:#fff; font:700 14px/1.3 Forza,sans-serif; text-align:center; text-decoration:none; }
.ze-tile-sticky-header .ze-tile-header-cta:hover { background:#005f89; color:#fff; }
#Kontaktformular { scroll-margin-top:120px; }

/* Solar introduction: the same large logo/image arrangement as the start page. */
.ze-tile-solar-hero { width:100cqw; margin-left:calc((100% - 100cqw)/2); padding:0 30px 40px; }
.ze-tile-solar-hero-inner { max-width:1440px; margin:auto; display:grid; grid-template-columns:1fr 2fr; gap:40px; align-items:center; }
.ze-tile-solar-hero-logo { display:block; padding:32px; }
.ze-tile-solar-hero-logo img { display:block; width:100%; height:auto; }
.ze-tile-solar-hero-media { position:relative; min-height:580px; display:flex; align-items:flex-end; isolation:isolate; }
.ze-tile-solar-hero-media > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.ze-tile-solar-hero-media::before { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.04) 15%,rgba(0,0,0,.8) 100%); z-index:-1; }
.ze-tile-solar-hero-copy { padding:40px; color:#fff; font:400 clamp(18px,1.7vw,24px)/1.45 Forza,sans-serif; }
.ze-tile-site .ze-tile-solar-hero-copy h1,.editor-styles-wrapper .ze-tile-solar-hero-copy h1 { margin:0 0 24px; color:inherit; font:700 clamp(32px,3.5vw,56px)/1.12 Forza,sans-serif; overflow-wrap:break-word; }
.ze-tile-solar-hero-copy p { margin:0; }
@media(max-width:1100px) {
 .ze-tile-header-inner { grid-template-columns:34px 1fr 32px; grid-template-areas:"logo phone toggle" "cta cta cta" "nav nav nav"; column-gap:12px; row-gap:8px; min-height:60px; padding:10px 20px; }
 .ze-tile-header-inner > .ze-tile-menu-toggle { display:block; width:32px; padding:2px; }
 .ze-tile-header-logo img { width:34px; max-height:34px; }
 .ze-tile-header-phone { justify-self:end; font-size:14px; }
 .ze-tile-header-navigation:not(.ze-tile-is-open) { display:none; }
 .ze-tile-header-navigation .ze-tile-nav-menu { display:block; padding:8px 0; }
 .ze-tile-header-navigation .ze-tile-nav-menu a { padding:10px; text-align:left; }
 .ze-tile-sticky-header .ze-tile-header-cta { padding:8px 16px; }
 #Kontaktformular { scroll-margin-top:170px; }
 .ze-tile-solar-hero-inner { gap:24px; }
 .ze-tile-solar-hero-logo { padding:16px; }
}
@media(max-width:767px) {
 .ze-tile-solar-hero { padding:0 30px 24px; }
 .ze-tile-solar-hero-inner { grid-template-columns:1fr; gap:28px; }
 .ze-tile-solar-hero-logo { max-width:230px; width:60%; padding:0; }
 .ze-tile-solar-hero-media { min-height:470px; }
 .ze-tile-solar-hero-copy { padding:28px 24px; font-size:18px; }
 .ze-tile-site .ze-tile-solar-hero-copy h1,.editor-styles-wrapper .ze-tile-solar-hero-copy h1 { font-size:32px; }
}

/* The tablet logo and picture occupy separate rows in the restored markup. */
@media(min-width:768px) and (max-width:1024px) {
 :is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-element-3a91a27 { width:100%; }
 :is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-element-3a91a27 > .ze-tile-widget-wrap { min-height:500px; padding:32px; flex-direction:column; flex-wrap:nowrap; justify-content:flex-end; }
 :is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-element-d22fa16 > .ze-tile-widget-container { margin:0 0 20px; }
 :is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-element-d22fa16 .ze-tile-heading-title { font-size:clamp(36px,5.5vw,52px); line-height:1.12; hyphens:none; }
 :is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-element-39bc164 > .ze-tile-widget-container { padding:0; max-width:560px; }
 :is(.ze-tile-site,.editor-styles-wrapper) .ze-tile-618 .ze-tile-element-39bc164 .ze-tile-heading-title { font-size:24px; line-height:1.4; }
}
