/* Section-level energy palette. Load after the main theme; no pricing or state changes. */
.intro-strip {
  gap: 14px;
  padding-block: 28px;
  border: 0;
}
.intro-strip > div,
.intro-strip > div:first-child,
.intro-strip > div:last-child {
  justify-content: flex-start;
  gap: 17px;
  min-width: 0;
  padding: 24px 20px;
  border: 0;
  border-radius: 18px;
  background: #e2eee5;
  color: #142b27;
}
.intro-strip > div:nth-child(2) { background: #ffdfcf; }
.intro-strip > div:nth-child(3) { background: #e8dfff; }
.intro-strip > div > span {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #142b2738;
  border-radius: 50%;
  font-size: 20px;
  font-weight: 700;
  color: #142b27;
}
.intro-strip b { font-size: 15px; font-weight: 700; line-height: 1.5; }
.intro-strip small { font-size: 12px; color: #4d6058; line-height: 1.65; }

.heat-entry {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  margin-top: 10px;
  padding: 35px 38px;
  background: #ff6634;
  border: 0;
  border-radius: 24px;
  color: #142b27;
}
.heat-entry::before {
  content: '';
  position: absolute;
  z-index: -1;
  width: 190px;
  height: 190px;
  right: 165px;
  top: -130px;
  background: #d7f76f;
  border-radius: 50%;
  pointer-events: none;
}
.heat-entry .heat-entry-label { color: #142b27; font-size: 11px; letter-spacing: .12em; }
.heat-entry h2 { max-width: 700px; font-size: 30px; font-weight: 800; line-height: 1.25; }
.heat-entry p:not(.heat-entry-label) { font-size: 16px; color: #142b27; line-height: 1.7; }
.heat-entry a { background: #142b27; color: #fff; border-radius: 12px; padding: 17px 22px; font-size: 15px; }
.heat-entry a:hover { background: #284b40; }
.heat-entry a:focus-visible { outline-color: #142b27; }

#kalkulator { padding-top: 88px; padding-bottom: 88px; }
:where(#kalkulator, .regional-section, .packages-section) .section-heading { gap: 32px; margin-bottom: 35px; }
:where(#kalkulator, .regional-section, .packages-section) .section-heading h2 { font-size: clamp(34px, 3.5vw, 48px); color: #142b27; letter-spacing: -.055em; }
:where(#kalkulator, .regional-section, .packages-section) .section-heading h2 span { color: #5d7569; }
:where(#kalkulator, .regional-section, .packages-section) .section-heading > p { font-size: 16px; color: #53665e; line-height: 1.75; }
:where(#kalkulator, .regional-section, .scope-section, .faq-section) .eyebrow.dark { color: #a43e18; font-size: 11px; letter-spacing: .12em; font-weight: 700; }
.calculator { background: #e5eee7; border: 0; border-radius: 28px; padding: 16px; gap: 16px; }
.controls { background: #fff; border-radius: 18px; padding: 32px; color: #142b27; }
.controls fieldset { border-color: #dce4de; padding-bottom: 30px; margin-bottom: 30px; }
.controls fieldset:last-child { padding-bottom: 0; margin-bottom: 0; border: 0; }
.controls legend { font-size: 19px; gap: 12px; line-height: 1.4; letter-spacing: -.025em; }
.controls legend > span { width: 31px; height: 31px; font-size: 13px; background: #d7f76f; color: #142b27; }
.controls fieldset:nth-child(2) legend > span { background: #d8c8ff; }
.controls fieldset:nth-child(3) legend > span { background: #ffb397; }
.controls .segmented { background: #eef2ed; border-radius: 11px; gap: 4px; padding: 5px; }
.controls .segmented button { padding: 12px 6px; font-size: 12px; border-radius: 7px; color: #3c5548; }
.controls .segmented button[aria-pressed=true] { color: #fff; background: #142b27; box-shadow: none; }
.controls .field,
#summary-dialog .field { font-size: 14px; font-weight: 600; color: #385146; line-height: 1.6; }
.controls :is(input:not([type=radio]):not([type=checkbox]), select, textarea),
#summary-dialog textarea,
.regional-select-field select { background: #fff; border: 1px solid #a6b8ad; border-radius: 10px; padding: 13px; font-size: 16px; color: #142b27; min-height: 51px; }
.controls :is(input:not([type=radio]):not([type=checkbox]), select, textarea):focus,
#summary-dialog textarea:focus,
.regional-select-field select:focus { border-color: #142b27; outline: 2px solid #142b27; outline-offset: 2px; box-shadow: none; }
.controls .input-unit input { padding-right: 86px; }
.controls .input-unit > span { font-size: 12px; color: #576e62; }
.controls .hint,
.controls .field-intro { color: #5a6d63; font-size: 13px; line-height: 1.75; }
.controls .field-grid { gap: 18px 16px; }
.controls .assumptions { margin-top: 23px; border-radius: 12px; background: #f2f5ef; padding: 16px; }
.controls .assumptions summary { font-size: 14px; font-weight: 600; color: #294a3c; line-height: 1.6; gap: 12px; }
.controls .assumptions summary > span { color: #294a3c; font-size: 18px; }
.battery-picker { background: #ede6ff; border: 1px solid #c9b8ef; padding: 21px; border-radius: 16px; }
.battery-picker-heading label { color: #54466d; font-size: 14px; }
.battery-picker-heading label strong { font-size: 18px; color: #142b27; font-weight: 700; }
.battery-picker-heading > span { background: #d8c8ff; color: #32224d; border-radius: 30px; font-size: 11px; padding: 7px 10px; }
.battery-capacities { border-color: #cdbfe6; gap: 15px; padding-top: 18px; margin-top: 20px; }
.battery-capacities > div + div { border-color: #cdbfe6; padding-left: 17px; }
.battery-capacities span { font-size: 12px; color: #594d6d; }
.battery-capacities strong { font-size: 28px; font-weight: 800; color: #2d2144; }
.battery-capacities small { font-size: 12px; }
.battery-selection > p,
.battery-picker-help { color: #594d6d; font-size: 12px; line-height: 1.75; }
.battery-selection > p { font-weight: 600; }

.result { background: #142b27; color: #fff; padding: 32px; border: 1px solid #142b27; border-radius: 19px; }
.result .eyebrow { color: #d7f76f; font-size: 11px; letter-spacing: .12em; }
.result-dot { width: 9px; height: 9px; background: #d7f76f; box-shadow: 0 0 0 6px #d7f76f14; }
.result h3 { font-size: 29px; line-height: 1.25; margin-block: 21px 27px; }
.result-metrics { border-color: #739b7f54; }
.result-metrics > div + div { border-color: #739b7f54; padding-left: 24px; }
.result-metrics strong,
.result-metrics .battery-metric strong { color: #fff; font-size: 36px; font-weight: 600; }
.result-metrics span { font-size: 12px; color: #b7cfc0; }
.result-metrics strong small { font-size: 13px; color: #cbd9d0; }
.result-battery-extra { font-size: 12px; color: #c7d9ce; }
.result .mini-system { color: #d7f76f; padding-block: 22px; }
.result .mini-system > span:not(.energy-symbol) { color: #729581; }
.result .mini-system small { font-size: 10px; color: #c0d5c7; letter-spacing: .1em; }
.result .scope-list li { font-size: 13px; line-height: 1.65; color: #d9e6dd; gap: 10px; margin-block: 11px; }
.result .scope-list li::before { color: #d7f76f; }
.result-price { border-color: #739b7f54; padding-top: 23px; }
.result-price > strong { color: #d7f76f; font-size: clamp(32px, 3.4vw, 47px); font-weight: 700; overflow-wrap: anywhere; }
.result-price > span { font-size: 14px; color: #e0e9e3; }
.result-price > p { font-size: 13px; color: #bcd2c3; }
.result .vat-choice { margin-block: 25px 22px; }
.result .vat-choice legend { color: #f4f8f0; font-size: 16px; font-weight: 500; }
.result .vat-options label { background: #28433a; border: 1px solid #7c9e8a; border-radius: 12px; padding: 15px; }
.result .vat-options label:hover { border-color: #d7f76f; }
.result .vat-options label:has(input:checked) { border-color: #d7f76f; background: #d7f76f; box-shadow: none; color: #142b27; }
.result .vat-options label:has(input:checked) :is(b, small) { color: #142b27; }
.result .vat-options small { color: #c6ddcd; }
.result .vat-options input { accent-color: #142b27; }
.result .vat-options input:focus-visible { outline-color: #ff916d; }
.result :is(.vat-choice-help, .vat-home-note) { color: #c1d7c7; font-size: 13px; }
.result .vat-choice-error { border-color: #ff926c; background: #3e3930; color: #ffcfb2; font-size: 14px; border-radius: 6px; }
.result-gross { border-color: #739b7f54; font-size: 14px; }
.result-gross > div > span { color: #c9dfd0; }
.result-gross .gross-total strong { color: #fff; font-size: 26px; }
.result .button.gold { background: #d7f76f; color: #142b27; font-size: 16px; padding: 18px; border-radius: 12px; font-weight: 700; }
.result .button.gold:hover { background: #e3ff91; }
.result :is(.result-footnote, .result-region, .energy-estimate) { font-size: 12px; color: #b9cebf; line-height: 1.8; }
.result-region a { color: #d7f76f; }
.result-details,
.energy-estimate { border-color: #739b7f54; }
.result-details summary { font-size: 14px; color: #d8e7dc; gap: 15px; line-height: 1.65; }
.result-details :is(ul, .detail-totals, .hint) { font-size: 12px; line-height: 1.8; color: #c4d7ca; }
.result .detail-totals { gap: 9px 12px; }
.result .vat-detail-prompt { color: #c4d7ca; }
.result .notice { color: #ffdbbc; background: #493b2c; border: 1px solid #dca16e; border-radius: 12px; font-size: 13px; line-height: 1.75; }

.regional-section { padding-bottom: 88px; }
.regional-map-card { background: #edf4ec; border: 1px solid #d1e1d2; border-radius: 24px; padding: 30px; }
.regional-select-field label { font-size: 16px; color: #142b27; }
.regional-help { font-size: 13px; color: #576e61; }
.regional-map-topline > span { color: #3b6550; font-size: 10px; letter-spacing: .12em; }
.regional-map-preview-details > p:first-child { color: #142b27; font-size: 16px; }
.regional-map-preview-details > p + p { font-size: 13px; color: #4c6554; }
.regional-region { fill: #bcd8ca; stroke: #edf4ec; stroke-width: 2.5; }
.regional-region:hover,
.regional-region.is-preview { fill: #ff6634; stroke: #edf4ec; }
.regional-region.is-selected { fill: #142b27; }
.regional-region.is-selected.is-preview { fill: #142b27; stroke: #ff6634; stroke-width: 3; }
.regional-region:focus-visible { fill: #ff6634; stroke: #142b27; stroke-width: 4; }
.regional-region.is-selected:focus-visible { fill: #142b27; stroke: #ff6634; }
.regional-region-label { fill: #142b27; font-weight: 600; }
.regional-region-label.is-selected { fill: #fff; }
.region-legend-preview { background: #ff6634; }
.region-legend-selected { background: #142b27; }
.regional-map-legend { font-size: 12px; color: #4c6657; }
.regional-map-source { font-size: 11px; color: #536c5e; }
.regional-panel { background: #ffb598; color: #142b27; border-radius: 24px; padding: 31px; }
.regional-eyebrow { color: #4c3526; font-size: 10px; }
.regional-panel h3 { font-size: 31px; font-weight: 800; }
.regional-included { color: #263d30; font-size: 15px; line-height: 1.8; border-color: #a9654145; }
.regional-quote-note { color: #384c39; font-size: 14px; line-height: 1.75; }
.regional-price-row { background: #fff9f3; border: 1px solid #f1d7c6; border-radius: 13px; padding: 18px; }
.regional-price-row.is-current { background: #d7f76f; border-color: #a8bd61; box-shadow: inset 4px 0 #142b27; }
.regional-price-heading h4 { font-size: 14px; font-weight: 600; color: #213c2b; }
.regional-tier-badge { background: #142b27; color: #fff; padding: 4px 7px; border-radius: 4px; font-size: 10px; }
.regional-net strong { color: #142b27; font-size: 29px; font-weight: 800; }
.regional-net > span { color: #40553c; font-size: 13px; }
.regional-vat { color: #42573d; font-size: 13px; }
.regional-vat-note { color: #4d3c2e; font-size: 13px; }
.regional-standard-note { color: #4c4939; font-size: 13px; line-height: 1.8; }
.regional-panel .button.gold { background: #142b27; color: #fff; border-radius: 12px; font-size: 15px; padding: 17px; }
.regional-panel .button.gold:hover:not(:disabled) { background: #2b4d3f; }
.regional-panel .button:disabled { opacity: .65; }
.regional-selection-status { color: #3c4f39; font-size: 14px; }
.regional-selection-status.has-selection { color: #142b27; font-weight: 700; }
.regional-selection-help { color: #55513e; font-size: 12px; }

.packages-section { background: #142b27; padding-block: 82px; }
.packages-section .section-heading h2 { color: #fff; }
.packages-section .section-heading h2 span { color: #d7f76f; }
.packages-section .section-heading .eyebrow { color: #d7f76f; font-size: 11px; }
.packages-section .section-heading > p { color: #c5d7cb; }
.package-grid { gap: 22px; align-items: stretch; }
.package-card { background: #d5edda; border: 0; border-radius: 23px; padding: 32px 28px; color: #142b27; min-width: 0; }
.package-card.featured { background: #ffa781; border: 0; }
.package-card:nth-child(3) { background: #d8c8ff; }
.package-label { color: #334d3c; font-size: 10px; letter-spacing: .12em; }
.package-card h3 { font-size: 35px; font-weight: 800; margin-top: 17px; letter-spacing: -.045em; }
.package-card > p { font-size: 14px; color: #2c4433; line-height: 1.75; min-height: 48px; }
.package-card:nth-child(3) > p { color: #4b4262; }
.package-spec { gap: 16px; border-color: #142b2730; padding-block: 27px 22px; }
.package-spec b { font-size: 25px; font-weight: 800; color: #142b27; }
.package-spec small { font-size: 11px; line-height: 1.7; color: #2c4433; }
.package-spec > span { color: #58705c; }
.package-card ul { font-size: 13px; line-height: 1.7; color: #334e3e; margin-bottom: 25px; }
.package-card li::before { color: #142b27; font-weight: 700; }
.package-price small { font-size: 13px; color: #2c4433; }
.package-price strong { font-size: 32px; font-weight: 800; color: #142b27; overflow-wrap: anywhere; }
.package-price .package-gross,
.package-price .package-vat-prompt { color: #2c4433; font-size: 13px; }
.package-gross span { font-size: 12px; color: #2c4433; }
.package-card .button,
.package-card .button.gold,
.package-card .button.outline { background: #142b27; color: #fff; border-color: #142b27; border-radius: 11px; font-size: 15px; gap: 13px; padding: 16px 18px; }
.package-card .button:hover { background: #2d503f; }
.popular { top: -12px; right: 23px; padding: 7px 12px; border-radius: 24px; background: #d7f76f; color: #142b27; font-size: 10px; letter-spacing: .04em; }
.packages-section .pricing-note { color: #c1d2c7; font-size: 12px; line-height: 1.85; margin-top: 25px; max-width: 980px; }

.scope-section { gap: 65px; padding-block: 88px; }
.scope-visual { height: 570px; border-radius: 26px; background: #d8c8ff; }
.scope-visual img { mix-blend-mode: multiply; }
.scope-visual > span { bottom: 25px; left: 25px; right: 25px; width: fit-content; background: #142b27; color: #fff; padding: 10px 13px; border-radius: 5px; font-size: 10px; letter-spacing: .12em; }
.scope-section h2 { font-size: 39px; color: #142b27; line-height: 1.2; }
.scope-section h2 span { color: #60786a; }
.scope-step { padding-block: 23px; gap: 17px; border-color: #d8e1d8; }
.scope-step > span { display: flex; align-items: center; justify-content: center; align-self: flex-start; flex-shrink: 0; width: 34px; height: 34px; border-radius: 50%; background: #d7f76f; color: #142b27; font-weight: 700; font-size: 12px; }
.scope-step:nth-of-type(2) > span { background: #ffb598; }
.scope-step:nth-of-type(3) > span { background: #d8c8ff; }
.scope-step h3 { font-size: 19px; color: #142b27; line-height: 1.5; }
.scope-step p { font-size: 15px; color: #53695b; line-height: 1.8; }
.scope-section .text-link { color: #142b27; font-size: 15px; font-weight: 700; padding-bottom: 5px; border-bottom: 2px solid #ff6634; }
.faq-section { padding-block: 12px 88px; gap: 60px; }
.faq-section h2 { font-size: 39px; color: #142b27; }
.faq-list details { background: #fff; border: 1px solid #d4e0d4; border-radius: 16px; padding: 23px; margin-bottom: 12px; }
.faq-list details[open] { background: #edf4e7; border-color: #a8c09e; }
.faq-list summary { font-size: 16px; color: #142b27; line-height: 1.65; align-items: center; }
.faq-list summary > span { display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: #d8c8ff; color: #142b27; font-size: 21px; font-weight: 400; }
.faq-list details[open] summary > span { background: #d7f76f; }
.faq-list p { font-size: 15px; line-height: 1.85; color: #536757; padding-top: 17px; }
.contact { background: #ff6634; color: #142b27; border-radius: 26px; padding: 52px; gap: 40px; margin-bottom: 45px; }
.contact .eyebrow { color: #142b27; font-size: 11px; }
.contact h2 { font-size: 36px; line-height: 1.25; font-weight: 800; }
.contact p:not(.eyebrow) { color: #142b27; font-size: 16px; line-height: 1.75; }
.contact-phone { color: #142b27; font-size: 34px; font-weight: 800; }
.contact a:not(.contact-phone),
.contact span { color: #142b27; font-size: 15px; line-height: 1.7; }
.contact > div + div { gap: 13px; }
footer.wrap { padding-block: 15px 40px; border-top: 1px solid #d4e0d5; color: #142b27; gap: 25px; }
footer.wrap .brand em { color: #bb451e; }
footer.wrap > span,
footer.wrap > a:last-child,
footer.wrap > button { color: #52695b; font-size: 12px; line-height: 1.7; }
footer.wrap > button { padding: 10px 2px; }

:is(#summary-dialog, #privacy-dialog) { background: #fbfaf6; border: 1px solid #a8bdad; border-radius: 24px; padding: 36px; color: #142b27; width: min(720px, calc(100% - 30px)); box-shadow: 0 25px 100px #142b2759; }
:is(#summary-dialog, #privacy-dialog)::backdrop { background: #102b23b8; }
:is(#summary-dialog, #privacy-dialog) .eyebrow { color: #a43e18; }
:is(#summary-dialog, #privacy-dialog) h2 { color: #142b27; font-size: 32px; }
:is(#summary-dialog, #privacy-dialog) p { font-size: 14px; line-height: 1.8; }
:is(#summary-dialog, #privacy-dialog) .close { color: #142b27; width: 36px; height: 36px; background: #e2ebdf; border-radius: 50%; }
#summary-dialog .summary-spec { background: #e7f1df; border: 1px solid #ccdebf; border-radius: 16px; padding: 24px; }
#summary-dialog .summary-spec h3 { font-size: 24px; line-height: 1.45; color: #142b27; }
#summary-dialog .summary-spec ul { font-size: 14px; color: #385340; }
#summary-dialog .summary-total { border-color: #afc6a4; flex-wrap: wrap; gap: 8px 20px; }
#summary-dialog .summary-total strong { font-size: 31px; color: #142b27; overflow-wrap: anywhere; }
#summary-dialog .summary-tax { font-size: 14px; color: #294733; }
#summary-dialog .order-note { background: #e9dfff; color: #433656; border-radius: 11px; padding: 17px; }
#summary-dialog .hint { color: #536756; }
:is(#summary-dialog, #privacy-dialog) .button { border-radius: 11px; font-size: 14px; padding: 15px; }
:is(#summary-dialog, #privacy-dialog) .button.navy { color: #fff; background: #142b27; }
#summary-dialog .button.outline { color: #142b27; background: #d7f76f; border-color: #b5d455; }
#summary-dialog .text-link { color: #142b27; font-size: 14px; }
:where(.controls, .result, .regional-section, .packages-section, .scope-section, .faq-section, .contact, footer.wrap, #summary-dialog, #privacy-dialog) :is(a, button, summary):focus-visible { outline: 3px solid #b43f1b; outline-offset: 4px; }
.result :is(a, button, summary):focus-visible { outline-color: #ff916d; }
.contact a:focus-visible,
.regional-panel :is(a, button):focus-visible { outline-color: #142b27; }

@media (max-width: 1100px) {
  .intro-strip > div { padding: 20px 17px; gap: 13px; }
  .intro-strip b { font-size: 14px; }
  .intro-strip > div > span { width: 38px; height: 38px; font-size: 18px; }
  .controls, .result { padding: 25px; }
  .controls legend { font-size: 18px; }
  .controls .segmented button { font-size: 11px; }
  .battery-picker { padding: 18px; }
  .battery-picker-heading { align-items: flex-start; flex-direction: column; gap: 10px; }
  .result h3 { font-size: 27px; }
  .result-metrics strong, .result-metrics .battery-metric strong { font-size: 31px; }
  .result-metrics > div + div { padding-left: 17px; }
  .regional-map-card, .regional-panel { padding: 25px; }
  .regional-panel h3 { font-size: 28px; }
  .regional-price-row { padding: 16px; }
  .regional-net strong { font-size: 27px; }
  .package-grid { gap: 16px; }
  .package-card { padding: 29px 23px; }
  .package-card h3 { font-size: 31px; }
  .package-spec { gap: 12px; }
  .package-spec b { font-size: 22px; }
  .package-price strong { font-size: 29px; }
  .scope-section { gap: 40px; }
  .scope-section h2 { font-size: 34px; }
  .faq-section { gap: 35px; }
  .contact { padding: 40px; gap: 25px; }
  .contact h2 { font-size: 31px; }
  .contact-phone { font-size: 29px; }
}

@media (max-width: 900px) {
  .calculator { grid-template-columns: minmax(0, 1fr); max-width: 680px; margin-inline: auto; }
  .result { position: static; }
  .controls, .result { padding: 30px; }
  .controls .segmented button { font-size: 13px; }
  .battery-picker-heading { flex-direction: row; align-items: center; }
  .result h3 { font-size: 31px; }
  .result-metrics strong, .result-metrics .battery-metric strong { font-size: 38px; }
  .result-price > strong { font-size: 46px; }
  .regional-layout { grid-template-columns: minmax(0, 1fr); max-width: 680px; margin-inline: auto; }
  .regional-map { max-width: 560px; margin-inline: auto; }
  .regional-map-topline { flex-direction: row; align-items: center; }
  .regional-map-preview-details { text-align: right; }
  .regional-price-list { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .regional-price-heading { flex-direction: column; align-items: flex-start; }
  .regional-net strong { font-size: 27px; }
  .package-grid { grid-template-columns: minmax(0, 1fr); max-width: 680px; margin-inline: auto; gap: 25px; }
  .package-card { padding: 31px; }
  .package-card h3 { font-size: 36px; }
  .package-card > p { min-height: 0; font-size: 16px; }
  .package-spec { gap: 24px; justify-content: flex-start; }
  .package-spec b { font-size: 30px; }
  .package-spec small { font-size: 13px; }
  .package-card ul { font-size: 15px; }
  .package-price strong { font-size: 36px; }
  .package-card .button { font-size: 16px; }
  .scope-section { grid-template-columns: minmax(0, 1fr); max-width: 680px; gap: 35px; }
  .scope-visual { height: 460px; }
  .scope-section h2 { font-size: 38px; }
  .faq-section { grid-template-columns: minmax(0, 1fr); gap: 25px; }
  .contact { flex-direction: column; align-items: flex-start; gap: 27px; }
  .contact h2 { font-size: 36px; }
  .contact-phone { font-size: 36px; }
}

@media (max-width: 720px) {
  .intro-strip { gap: 10px; }
  .intro-strip > div, .intro-strip > div:first-child, .intro-strip > div:last-child { padding: 18px 12px; gap: 11px; align-items: flex-start; flex-direction: column; }
  .intro-strip b { font-size: 13px; }
  .intro-strip small { font-size: 11px; }
  .heat-entry { padding: 30px; gap: 23px; }
  .heat-entry h2 { font-size: 28px; }
  :where(#kalkulator, .regional-section, .packages-section) .section-heading { display: block; }
  :where(#kalkulator, .regional-section, .packages-section) .section-heading > p { margin-top: 18px; }
  #kalkulator { padding-block: 65px; }
  .regional-section { padding-bottom: 65px; }
  .packages-section { padding-block: 65px; }
  .scope-section { padding-block: 65px; }
  .faq-section { padding-bottom: 65px; }
}

@media (max-width: 560px) {
  .intro-strip { grid-template-columns: minmax(0, 1fr); padding-block: 20px; }
  .intro-strip > div, .intro-strip > div:first-child, .intro-strip > div:last-child { flex-direction: row; align-items: center; padding: 20px; border-radius: 15px; gap: 17px; }
  .intro-strip b { font-size: 15px; }
  .intro-strip small { font-size: 12px; }
  .heat-entry { padding: 26px 23px; border-radius: 20px; }
  .heat-entry h2 { font-size: 26px; }
  .heat-entry p:not(.heat-entry-label) { font-size: 15px; }
  .heat-entry a { width: 100%; font-size: 15px; }
  .heat-entry::before { right: -75px; top: -125px; }
  #kalkulator { padding-block: 52px; }
  :where(#kalkulator, .regional-section, .packages-section) .section-heading { margin-bottom: 28px; }
  :where(#kalkulator, .regional-section, .packages-section) .section-heading h2 { font-size: 33px; line-height: 1.2; }
  :where(#kalkulator, .regional-section, .packages-section) .section-heading > p { font-size: 15px; }
  .calculator { padding: 10px; gap: 12px; border-radius: 21px; }
  .controls, .result { padding: 23px 20px; border-radius: 15px; }
  .controls legend { font-size: 18px; gap: 10px; }
  .controls legend > span { width: 28px; height: 28px; }
  .controls .segmented { gap: 2px; padding: 4px; }
  .controls .segmented button { font-size: 11px; padding: 12px 3px; white-space: normal; line-height: 1.5; }
  .controls .field-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .controls .small-field { max-width: none; }
  .controls .assumptions { padding: 14px; }
  .controls .assumptions summary { font-size: 13px; }
  .battery-picker { padding: 17px; border-radius: 13px; }
  .battery-picker-heading { flex-direction: column; align-items: flex-start; gap: 10px; }
  .battery-picker-heading label strong { font-size: 18px; }
  .battery-capacities { gap: 12px; }
  .battery-capacities > div + div { padding-left: 12px; }
  .battery-capacities strong { font-size: 27px; }
  .result .eyebrow { font-size: 10px; letter-spacing: .08em; }
  .result h3 { font-size: 27px; }
  .result-metrics strong, .result-metrics .battery-metric strong { font-size: 31px; }
  .result-metrics > div + div { padding-left: 16px; }
  .result-metrics span, .result-battery-extra { font-size: 11px; }
  .result .scope-list li { font-size: 13px; }
  .result-price > strong { font-size: 37px; }
  .result .vat-options label { padding: 14px 11px; gap: 9px; }
  .result .vat-choice legend { font-size: 15px; }
  .result-gross .gross-total strong { font-size: 24px; }
  .result .button.gold { font-size: 15px; padding: 17px 12px; }
  .result .detail-totals { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .result .detail-totals b { margin-bottom: 8px; color: #fff; }
  .regional-section { padding-bottom: 52px; }
  .regional-map-card { padding: 23px 19px; border-radius: 20px; }
  .regional-map-topline { flex-direction: column; align-items: flex-start; }
  .regional-map-preview-details { text-align: left; }
  .regional-panel { padding: 27px 22px; border-radius: 20px; }
  .regional-panel h3 { font-size: 28px; }
  .regional-price-list { grid-template-columns: minmax(0, 1fr); }
  .regional-price-heading { flex-direction: row; align-items: center; }
  .regional-net strong { font-size: 28px; }
  .regional-panel .button.gold { font-size: 15px; }
  .packages-section { padding-block: 52px; }
  .package-card { padding: 29px 24px; border-radius: 20px; }
  .package-card h3 { font-size: 34px; }
  .package-card > p { font-size: 15px; }
  .package-spec { gap: 20px; }
  .package-spec b { font-size: 26px; }
  .package-spec small { font-size: 12px; }
  .package-card ul { font-size: 14px; }
  .package-price strong { font-size: 34px; }
  .package-card .button { padding-inline: 15px; }
  .packages-section .pricing-note { font-size: 12px; }
  .scope-section { padding-block: 52px; gap: 29px; }
  .scope-visual { height: 410px; border-radius: 20px; }
  .scope-section h2 { font-size: 33px; }
  .scope-step { gap: 13px; }
  .scope-step h3 { font-size: 18px; }
  .scope-step p { font-size: 14px; }
  .faq-section { padding-bottom: 52px; }
  .faq-section h2 { font-size: 33px; }
  .faq-list details { padding: 21px 18px; }
  .faq-list summary { font-size: 15px; }
  .faq-list p { font-size: 14px; }
  .contact { border-radius: 21px; padding: 31px 25px; margin-bottom: 30px; }
  .contact h2 { font-size: 29px; }
  .contact p:not(.eyebrow) { font-size: 15px; }
  .contact-phone { font-size: 29px; }
  .contact a:not(.contact-phone), .contact span { font-size: 14px; }
  footer.wrap { gap: 18px; padding-block: 22px 95px; }
  footer.wrap > span { flex-basis: 100%; margin-left: 0; }
  footer.wrap > a:last-child, footer.wrap > button { font-size: 13px; }
  :is(#summary-dialog, #privacy-dialog) { padding: 28px 21px; border-radius: 20px; }
  :is(#summary-dialog, #privacy-dialog) h2 { font-size: 28px; padding-right: 25px; }
  #summary-dialog .summary-spec { padding: 18px; }
  #summary-dialog .summary-spec h3 { font-size: 21px; }
  #summary-dialog .summary-total strong { font-size: 29px; }
  #summary-dialog .summary-tax { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  #summary-dialog .summary-tax strong { margin-bottom: 8px; }
  #summary-dialog .dialog-actions { flex-direction: column; }
  #summary-dialog .dialog-actions .button { font-size: 15px; }
}

@media (max-width: 390px) {
  .controls, .result { padding: 21px 15px; }
  .controls legend { font-size: 17px; }
  .controls .segmented button { font-size: 10px; }
  .controls .assumptions { padding: 12px; }
  .battery-picker { padding: 15px 13px; }
  .battery-capacities { gap: 10px; }
  .battery-capacities > div + div { padding-left: 10px; }
  .battery-capacities span { font-size: 11px; }
  .battery-capacities strong { font-size: 26px; }
  .battery-capacities small { display: block; margin-top: 1px; font-size: 11px; }
  .result h3 { font-size: 25px; }
  .result-metrics strong, .result-metrics .battery-metric strong { font-size: 29px; }
  .result-metrics strong small { display: block; margin-top: 3px; font-size: 12px; }
  .result-metrics > div + div { padding-left: 12px; }
  .result-price > strong { font-size: 31px; }
  .result-gross > div { flex-wrap: wrap; gap: 4px 12px; }
  .result .mini-system { gap: 18px; }
  .regional-panel { padding: 25px 18px; }
  .regional-price-heading { flex-direction: column; align-items: flex-start; }
  .regional-price-row { padding: 15px; }
  .regional-net strong { font-size: 26px; }
  .package-card { padding: 27px 22px; }
  .package-spec { gap: 14px; }
  .package-spec b { font-size: 23px; }
  .package-spec small { font-size: 11px; }
  .package-price strong { font-size: 31px; }
  .contact { padding: 29px 21px; }
  .contact h2 { font-size: 27px; }
  .contact-phone { font-size: 26px; }
}

@media (prefers-reduced-motion: reduce) {
  :is(.heat-entry, .calculator, .regional-section, .packages-section, .scope-section, .faq-section, .contact, #summary-dialog, #privacy-dialog) :is(a, button, path, summary) { transition: none; }
}

/* One bundle benefit per complete PV + inverter + battery configuration. */
.bundle-discount{min-width:0;margin:20px 0 16px;border:1px solid #b6ca9d;border-radius:10px;overflow:hidden;background:#f7faef;color:#243e2c}
.bundle-discount-before{display:flex;align-items:baseline;justify-content:space-between;gap:8px 16px;padding:13px 15px;font-size:12px;line-height:1.65;flex-wrap:wrap}.bundle-discount-before>span{min-width:0}.bundle-discount-before>b{font-size:14px;font-weight:600;white-space:nowrap;margin-left:auto}
.bundle-discount-benefit{display:flex;flex-direction:column;gap:3px;padding:13px 15px;margin:0!important;background:#d7f76f;color:#142b27;line-height:1.6}.bundle-discount-benefit>strong{font-size:22px;line-height:1.3;font-weight:750;letter-spacing:-.03em;overflow-wrap:anywhere}.bundle-discount-benefit>span{font-size:12px;line-height:1.7;font-weight:500}
.result-bundle-discount{margin-top:23px}.result-bundle-discount .bundle-discount{margin:0;border-color:#92ad76;background:#234235;color:#d6e4cc}.result-bundle-discount .bundle-discount-before{color:#d6e4cc}.result-bundle-discount:not([hidden])+.result-price{margin-top:17px}
.package-card .bundle-discount--compact{margin:13px 0 17px}.package-card .bundle-discount-before{padding:11px 13px;font-size:11px;gap:4px 12px}.package-card .bundle-discount-before>b{font-size:13px}.package-card .bundle-discount-benefit{padding:12px 13px}.package-card .bundle-discount-benefit>strong{font-size:22px}.package-card .bundle-discount-benefit>span{font-size:11px}
#summary-dialog .bundle-discount{margin:20px 0 15px}#summary-dialog .bundle-discount-benefit>strong{font-size:24px}
@media(max-width:390px){.bundle-discount-before{padding:12px;font-size:11px}.bundle-discount-benefit{padding:12px}.bundle-discount-benefit>strong{font-size:21px}.bundle-discount-benefit>span{font-size:11px}#summary-dialog .bundle-discount-benefit>strong{font-size:22px}}
