.site-body {
  --ink: #17291d;
  --muted: #616c64;
  --line: #dce3dc;
  --accent: #c2ec54;
  --paper: #fff;
  --max: 1280px;
  --site-header-height: 132px;
  --site-quick-contact-height: 0px;
  background: #fff;
  color: var(--ink);
  font-family: Inter, Arial, Helvetica, sans-serif;
  letter-spacing: 0;
  -webkit-font-smoothing: antialiased;
}

.site-container { width: min(1280px, calc(100% - 80px)); margin-inline: auto; }
.site-body h1, .site-body h2, .site-body h3, .site-body p { letter-spacing: 0; }
.site-body h2 { font-size: 44px; line-height: 1.14; font-weight: 600; margin: 0 0 24px; }
.site-body h3 { font-size: 22px; line-height: 1.3; font-weight: 600; }
.site-body p { line-height: 1.7; }
.site-body section[id], .site-body form[id], .site-body .site-service[id] { scroll-margin-top: calc(var(--site-header-height) + 16px); }
.site-icon { display: inline-block; width: 20px; height: 20px; flex: 0 0 20px; vertical-align: middle; object-fit: contain; }
.site-skip { position: fixed; left: 16px; top: -80px; z-index: 100; padding: 12px 18px; background: white; border: 2px solid #193e2b; }
.site-skip:focus { top: 12px; }
.site-body a:focus-visible, .site-body button:focus-visible, .site-body summary:focus-visible { outline: 3px solid #517c27; outline-offset: 4px; }

.site-header-new { background: #fff; position: sticky; top: 0; z-index: 30; border-bottom: 1px solid #ebeeea; }
.site-contact-topbar { background: #193e2b; color: white; }
.site-contact-topbar-inner { min-height: 44px; display: flex; justify-content: space-between; align-items: center; gap: 16px 32px; }
.site-contact-topbar-inner > span { font-size: 12px; }
.site-direct-contacts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 26px; min-width: 0; }
.site-direct-contacts a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; min-width: 0; font-size: 14px; font-weight: 600; }
.site-direct-contacts a:hover { text-decoration: underline; text-underline-offset: 4px; }
.site-direct-contact-text { min-width: 0; overflow-wrap: anywhere; }
.site-direct-contact-text > span { display: block; }
.site-direct-contact-text small { display: block; font-size: 11px; line-height: 1.5; font-weight: 400; color: #64725c; margin-bottom: 4px; }
.site-direct-contacts-header { justify-content: flex-end; }
.site-direct-contacts-header a { font-size: 13px; }
.site-contact-topbar .site-icon, .site-direct-contacts-hero .site-icon { filter: invert(1); width: 17px; height: 17px; flex-basis: 17px; }
.site-contact-fallback { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-size: 13px; font-weight: 600; }
.site-direct-contacts-hero { margin-top: 18px; max-width: 690px; gap: 0 24px; color: white; }
.site-direct-contacts-hero a { font-size: 13px; }
.site-contact-prompt { display: grid; grid-template-columns: 1fr 1.3fr; align-items: center; gap: 32px 48px; border-top: 1px solid #dce3dc; border-bottom: 1px solid #dce3dc; margin-top: 40px; padding-block: 32px; }
.site-contact-prompt h3 { margin: 0 0 8px; font-size: 22px; }
.site-contact-prompt p { font-size: 14px; color: var(--muted); margin: 0; }
.site-direct-contacts-prompt { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 24px; }
.site-direct-contacts-prompt > a, .site-direct-contacts-prompt > div { display: flex; align-items: flex-start; gap: 12px; font-size: 19px; font-weight: 600; min-width: 0; min-height: 68px; padding-block: 8px; }
.site-direct-contacts-prompt > :last-child { border-left: 1px solid #dce3dc; padding-left: 24px; }
.site-direct-contacts-prompt .site-icon { margin-top: 3px; }
.site-direct-contacts-prompt small { margin-bottom: 10px; }
.site-direct-contacts-prompt .site-contact-empty { font-size: 14px; color: var(--muted); font-weight: 400; }
.site-contact-prompt .site-link { font-size: 12px; margin-top: 10px; }
.site-section.site-contact-prompt-section { padding-top: 0; }
.site-contact-prompt-section .site-contact-prompt { margin-top: 0; }
.site-direct-contacts-faq, .site-direct-contacts-footer { display: grid; gap: 2px; margin-bottom: 14px; }
.site-direct-contacts-faq a { font-size: 17px; }
.site-direct-contacts-footer a { font-size: 13px; }
.site-footer-top .site-contact-pending { margin: 0 0 18px; }
.site-contact-details > .site-direct-contacts { display: grid; gap: 20px; }
.site-contact-details .site-direct-contacts a { font-size: 23px; align-items: center; }
.site-contact-pending { color: var(--muted); font-size: 14px; }
.site-quick-contact { display: none; }
.site-nav { min-height: 88px; display: flex; justify-content: space-between; align-items: center; gap: 32px; }
.site-brand { display: inline-flex; gap: 10px; align-items: center; min-width: 0; font-size: 23px; font-weight: 750; line-height: 1.1; overflow-wrap: anywhere; }
.site-brand-name { min-width: 0; }
.site-brand-mark { width: 42px; height: 42px; display: grid; place-items: center; background: #c2ec54; border-radius: 4px; flex-shrink: 0; }
.site-brand-mark .site-icon { width: 26px; height: 26px; }
.site-brand-image { width: 48px; height: 48px; flex: 0 0 48px; object-fit: contain; }
.site-brand-lockup { width: 248px; max-width: 100%; flex-shrink: 0; }
.site-brand-lockup .site-brand-image { width: 100%; height: auto; flex: 0 1 auto; }
.site-navigation { display: flex; align-items: center; gap: 30px; font-size: 14px; font-weight: 600; }
.site-navigation > a { padding: 10px 0; transition: color .2s, background-color .2s, border-color .2s; }
.site-navigation > a:hover { color: #4c722b; }
.site-navigation .site-nav-contact { border: 1px solid #b9c4b7; border-radius: 4px; padding: 13px 18px; display: inline-flex; gap: 16px; align-items: center; margin-left: 4px; }
.site-icon-button { border: 1px solid #cad5c7; background: white; width: 44px; height: 44px; border-radius: 4px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.site-menu-button { display: none; }

.site-hero { position: relative; display: flex; align-items: center; min-height: max(550px, calc(100svh - var(--site-header-height) - 90px)); overflow: hidden; background: #234b36; color: white; }
.site-hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.site-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14, 39, 26, .78) 0%, rgba(14, 39, 26, .59) 32%, rgba(14, 39, 26, .1) 68%, transparent 100%); }
.site-hero-content { position: relative; z-index: 1; padding-block: 70px 84px; }
.site-eyebrow { color: #58793e; font-size: 12px; font-weight: 700; margin: 0 0 20px; text-transform: uppercase; }
.site-eyebrow-light { color: #e2f4b4; }
.site-hero h1 { font-size: 76px; line-height: 1.02; font-weight: 550; margin: 0 0 28px; max-width: 690px; overflow-wrap: anywhere; }
.site-hero-copy { font-size: 17px; color: #edf2ec; max-width: 470px; margin: 0 0 30px; }
.site-actions { display: flex; align-items: center; gap: 30px; flex-wrap: wrap; }
.site-button { background: #c2ec54; color: #18251a; display: inline-flex; justify-content: center; align-items: center; min-height: 52px; gap: 28px; border: 1px solid #c2ec54; border-radius: 4px; padding: 14px 22px; font-size: 14px; font-weight: 700; transition: background-color .2s, box-shadow .2s, translate .2s; }
.site-button:hover { background: #d0f580; }
.site-button:disabled { background: #e2e8dc; border-color: #d6ded1; color: #63705e; cursor: not-allowed; }
.site-link { display: inline-flex; align-items: center; gap: 14px; font-size: 14px; font-weight: 650; min-height: 44px; }
.site-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.site-link-light { color: white; }
.site-link-light .site-icon { filter: invert(1); }
.site-image-note { position: absolute; bottom: 18px; right: 32px; color: white; background: rgba(12, 29, 20, .65); padding: 4px 9px; font-size: 10px; border-radius: 3px; }
.site-values { background: #f3f6ef; border-bottom: 1px solid #e4eadf; }
.site-values-inner { min-height: 82px; display: grid; grid-template-columns: repeat(3, 1fr); align-items: center; }
.site-values-inner span { display: flex; justify-content: center; align-items: center; gap: 12px; font-size: 14px; font-weight: 600; border-right: 1px solid #d3decf; }
.site-values-inner span:last-child { border: 0; }
.site-values-inner .site-icon { width: 23px; height: 23px; }

.site-section { padding-block: 96px; }
.site-section-heading { display: grid; grid-template-columns: 1.3fr 1fr; gap: 80px; align-items: end; margin-bottom: 46px; }
.site-section-heading h2 { margin: 0; }
.site-section-heading > p { max-width: 430px; font-size: 15px; margin: 0 0 4px; color: var(--muted); }
.site-services { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
/* Seven equal cards: 3 + 3 + 1, with the final card centred. */
@media (min-width: 1151px) {
  .site-services-home:has(> .site-service:nth-child(7):last-child) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .site-services-home:has(> .site-service:nth-child(7):last-child) > .site-service { grid-column: span 2; }
  .site-services-home:has(> .site-service:nth-child(7):last-child) > .site-service:last-child { grid-column: 3 / span 2; }
}
@media (min-width: 701px) and (max-width: 1150px) {
  .site-services-home:has(> .site-service:nth-child(7):last-child) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .site-services-home:has(> .site-service:nth-child(7):last-child) > .site-service { grid-column: span 2; }
  .site-services-home:has(> .site-service:nth-child(7):last-child) > .site-service:last-child { grid-column: 2 / span 2; }
}
.site-services-home { grid-auto-rows: 1fr; }
.site-service { min-width: 0; display: flex; flex-direction: column; border: 1px solid #dde4d9; border-radius: 4px; overflow: hidden; background: white; transition: border-color .25s, box-shadow .25s, translate .25s; }
.site-service:hover { border-color: #78a34a; }
.site-service-image { aspect-ratio: 1.6; flex-shrink: 0; position: relative; overflow: hidden; background: #edf1e9; }
.site-service-image > img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease-out; }
.site-small-caption { position: absolute; right: 8px; bottom: 8px; padding: 2px 6px; background: rgba(255,255,255,.9); font-size: 9px; color: #3d4c3e; border-radius: 2px; }
.site-service-content { flex: 1; display: flex; flex-direction: column; padding: 28px; }
.site-service-tag { color: #61735a; font-size: 12px; display: block; margin-bottom: 12px; }
.site-service-title { min-height: 2.6em; font-size: 23px; }
.site-service-title h3 { font-size: 23px; line-height: 1.3; margin: 0; overflow-wrap: normal; word-break: normal; hyphens: none; }
.site-round-arrow { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex: 0 0 28px; }
.site-service-content p { font-size: 15px; line-height: 1.65; color: var(--muted); margin: 18px 0 24px; }
.site-service-cta { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: auto; padding-top: 20px; border-top: 1px solid var(--line); font-size: 14px; font-weight: 600; }

.site-chooser-section { padding-top: 16px; }
.site-chooser-layout { display: grid; grid-template-columns: 1fr 1.25fr; gap: 100px; border-top: 1px solid #dce3d7; padding-top: 64px; }
.site-tabs { display: flex; border-bottom: 1px solid #d4ded0; gap: 30px; margin-bottom: 30px; }
.site-tabs button { padding: 14px 0; min-height: 48px; font-size: 14px; font-weight: 600; color: #6c7567; border: 0; background: transparent; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.site-tabs button[aria-selected="true"] { color: #203b26; border-bottom-color: #203b26; }
#audience-panel { min-height: 310px; }
#audience-panel h3 { margin: 0 0 16px; font-size: 24px; }
#audience-panel p { font-size: 15px; color: var(--muted); max-width: 580px; }
.site-checks { list-style: none; padding: 0; margin: 24px 0; display: grid; gap: 12px; }
.site-checks li { display: flex; align-items: flex-start; gap: 12px; font-size: 14px; }
.site-checks .site-icon { width: 18px; height: 18px; margin-top: 2px; }

.site-process-section { background: #193e2b; color: #fff; }
.site-process-section .site-eyebrow { color: #c2ec54; }
.site-process-section .site-section-heading > p { color: #c6d4c7; }
.site-process { display: grid; grid-template-columns: repeat(var(--step-count, 4), minmax(0, 1fr)); list-style: none; padding: 0; margin: 56px 0 0; gap: 30px; }
.site-process li { padding-top: 28px; border-top: 1px solid #57715b; min-width: 0; }
.site-step-number { color: #c2ec54; font-size: 13px; font-weight: 600; }
.site-process h3 { font-size: 19px; margin: 24px 0 14px; overflow-wrap: anywhere; }
.site-process p { color: #c6d4c7; font-size: 13px; margin: 0; }
.site-brands-actions { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.site-brands-actions p { font-size: 15px; color: var(--muted); max-width: 330px; margin: 0; }
.site-brands-row { display: grid; grid-template-columns: 210px minmax(0, 1fr); align-items: center; gap: 32px; border-top: 1px solid var(--line); padding-block: 22px; }
.site-brands-row:last-of-type { border-bottom: 1px solid var(--line); }
.site-brands-row h3 { font-size: 14px; margin: 0; font-weight: 500; line-height: 1.7; max-width: 180px; }
.site-brand-viewport { overflow: hidden; min-width: 0; container-type: inline-size; }
.site-brand-track { display: flex; width: max-content; animation: site-brands-scroll 36s linear infinite; }
.site-brands-row:nth-of-type(3) .site-brand-track { animation-direction: reverse; }
.site-brand-group { display: flex; align-items: center; justify-content: space-around; gap: 32px; padding: 0 16px; margin: 0; list-style: none; width: max-content; min-width: 100cqw; flex-shrink: 0; }
.site-brand-logo { width: 160px; height: 88px; display: flex; align-items: center; justify-content: center; flex: 0 0 160px; }
.site-brand-logo > img { width: 150px; height: 60px; object-fit: contain; }
.site-brand-logo > span:not(.sr-only) { font-size: 24px; font-weight: 600; }
.site-technologies.is-paused .site-brand-track, .site-brand-viewport:hover .site-brand-track { animation-play-state: paused; }
@keyframes site-brands-scroll { to { transform: translateX(-50%); } }
.site-tech-note { margin: 30px 0 0; font-size: 11px; color: #626d5d; }
.site-soft { background: #f2f6ed; }
.site-projects { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.site-project { border: 1px solid #dae3d6; border-radius: 4px; overflow: hidden; }
.site-project > img { width: 100%; aspect-ratio: 1.4; height: auto; object-fit: cover; }
.site-project > div { padding: 24px; }
.site-project h3 { margin: 12px 0; }
.site-project p { color: var(--muted); font-size: 14px; }
.site-reviews { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.site-reviews blockquote { margin: 0; border-top: 1px solid #cbd8c4; padding: 24px 0; }
.site-reviews footer { color: var(--muted); font-size: 13px; }
.site-public-schedule article { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 32px; border-top: 1px solid #dce3d7; padding: 22px 0; }
.site-public-schedule h3 { margin: 0 0 8px; }
.site-public-schedule span, .site-public-schedule small { color: var(--muted); font-size: 13px; }

.site-faq-layout { display: grid; grid-template-columns: 1fr 1.3fr; gap: 100px; }
.site-faq { border-bottom: 1px solid #d5ded1; }
.site-faq:first-child { border-top: 1px solid #d5ded1; }
.site-faq summary { display: flex; justify-content: space-between; align-items: center; gap: 24px; list-style: none; padding: 24px 0; font-size: 16px; font-weight: 550; cursor: pointer; }
.site-faq summary::-webkit-details-marker { display: none; }
.site-faq summary .site-icon { transition: transform .22s ease; }
.site-faq[open] summary .site-icon { transform: rotate(45deg); }
.site-faq p { margin: 0 32px 24px 0; color: var(--muted); font-size: 14px; }

.site-contact-section { background: #f1f5ec; border-top: 1px solid #e3e9dd; }
.site-contact-layout { display: grid; grid-template-columns: 1fr 1.15fr; gap: 90px; }
.site-contact-intro > p:not(.site-eyebrow) { font-size: 15px; max-width: 390px; color: var(--muted); }
.site-contact-details { display: grid; gap: 24px; margin-top: 38px; }
.site-contact-details a, .site-contact-details > div { display: flex; align-items: flex-start; gap: 16px; font-size: 17px; font-weight: 600; }
.site-contact-details small { display: block; font-size: 11px; font-weight: 400; color: #59694f; margin-bottom: 4px; }
.site-contact-details .site-icon { margin-top: 5px; }
.site-contact-form fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.site-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.site-contact-form label { display: block; font-size: 12px; font-weight: 600; color: #394d32; }
.site-contact-form label > span { color: #6b7a5e; }
.site-contact-form input, .site-contact-form select, .site-contact-form textarea { background: white; border: 1px solid #cfd9c7; padding: 12px 14px; margin-top: 8px; width: 100%; border-radius: 4px; color: #21301d; font-size: 14px; font-weight: 400; min-height: 48px; }
.site-contact-form textarea { min-height: 128px; resize: vertical; }
.site-contact-form input:focus, .site-contact-form select:focus, .site-contact-form textarea:focus { outline: 2px solid #5c863a; outline-offset: 2px; }
.site-contact-form fieldset:disabled { opacity: .62; }
.site-full { grid-column: 1 / -1; }
.site-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.site-privacy-note { font-size: 11px; color: #58674f; margin: 18px 0 22px; }
.site-privacy-note a { text-decoration: underline; text-underline-offset: 3px; }
.site-form-bottom { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.site-form-bottom small { font-size: 11px; color: #59664f; }
.site-form-unavailable { border-left: 3px solid #769343; padding: 12px 16px; background: #e2ebd7; font-size: 13px; margin: 0 0 24px; }
.site-form-message { font-size: 13px; }
.site-form-message:empty { display: none; }
.site-form-message.success { color: #255f34; }
.site-form-message.error { color: #a0291c; }

.site-footer-new { background: #fff; padding: 64px 0 24px; }
.site-footer-top { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 48px; padding-bottom: 50px; }
.site-footer-top h2 { font-size: 13px; font-weight: 650; margin: 0 0 22px; }
.site-footer-top p { font-size: 12px; color: var(--muted); max-width: 220px; margin: 20px 0 0; }
.site-footer-top > div > a:not(.site-brand), .site-footer-link { display: flex; gap: 4px; align-items: center; color: #65715d; font-size: 12px; line-height: 1.5; margin: 0 0 12px; }
.site-footer-top a:hover, .site-footer-link:hover { color: #263d25; text-decoration: underline; }
.site-footer-top .site-icon { width: 13px; height: 13px; flex-basis: 13px; }
.site-footer-top .site-brand-mark .site-icon { width: 26px; height: 26px; }
.site-footer-link { padding: 0; border: 0; background: transparent; cursor: pointer; text-align: left; }
.site-footer-bottom { display: flex; justify-content: space-between; gap: 24px; color: #626e5b; font-size: 10px; border-top: 1px solid #e1e7dc; padding-top: 22px; }
.site-company-data { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 11px; color: var(--muted); border-top: 1px solid #e1e7dc; padding: 22px 0; }
.site-company-data span:last-child { flex-basis: 100%; }
.site-service-hero { min-height: max(520px, calc(100svh - 210px)); }
.site-service-hero .site-hero-shade { background: linear-gradient(90deg, rgba(14, 39, 26, .86), rgba(14, 39, 26, .65) 30%, rgba(14, 39, 26, .08) 75%); }
.site-service-hero .site-hero-image { object-position: center; }
.site-breadcrumb { display: block; color: #d4e4cd; margin-bottom: 34px; font-size: 12px; }
.site-breadcrumb a { color: inherit; }
.site-legal-breadcrumb { padding-top: 24px; font-size: 13px; }
.site-service-detail { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; }
.site-service-detail > div > p:not(.site-eyebrow) { color: var(--muted); font-size: 15px; }
.site-selection { border-top: 1px solid #cfdbc8; padding-top: 20px; }
.site-selection h3 { margin: 0 0 30px; }
.site-selection ol { padding: 0; list-style: none; margin: 0 0 24px; }
.site-selection li { display: flex; gap: 24px; padding: 18px 0; border-bottom: 1px solid #dce5d6; font-size: 14px; }
.site-selection li > span { color: #557330; font-size: 12px; }
.site-services-related { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.site-balcony-storage { margin-top: 56px; padding-top: 40px; border-top: 1px solid var(--line); }
.site-balcony-storage > h2 { max-width: 800px; }
.site-energy-diagram { margin: 28px 0; padding: 24px; border: 1px solid #d5e0cf; border-radius: 12px; background: #fff; }
.site-energy-diagram figcaption { min-height: 36px; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 26px; color: #3e563c; font-size: 14px; font-weight: 600; }
.site-energy-toggle { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 36px; width: 36px; height: 36px; padding: 0; color: var(--ink); border: 1px solid var(--line); border-radius: 50%; background: #f6f8f2; cursor: pointer; }
.site-energy-toggle:hover { background: #e9f3d6; }
.site-energy-toggle[hidden] { display: none; }
.site-energy-toggle .site-icon { width: 16px; height: 16px; flex-basis: 16px; }
.site-energy-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; }
.site-energy-flow li { position: relative; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 18px; padding: 0 12px; }
.site-energy-node { position: relative; z-index: 1; display: grid; place-items: center; flex: 0 0 56px; width: 56px; height: 56px; border: 1px solid #cbdac2; border-radius: 16px; background: #f1f6e9; animation: site-energy-node-glow 8s ease-in-out infinite; animation-delay: calc(var(--flow-step) * 2s); animation-play-state: paused; }
.site-energy-node > .site-icon { width: 26px; height: 26px; }
.site-energy-node[data-energy-symbol="sun"] { background: #fff6db; border-color: #ecdbaa; }
.site-energy-node[data-energy-symbol="solar-panel"] { background: #193e2b; border-color: #193e2b; }
.site-energy-node[data-energy-symbol="solar-panel"] > .site-icon { filter: invert(1); }
.site-energy-node[data-energy-symbol="battery-charging"] { background: #d6ef9b; border-color: #b9d77c; }
.site-energy-number { position: absolute; top: -7px; right: -7px; display: grid; place-items: center; width: 22px; height: 22px; border: 1px solid #d5e0cf; border-radius: 50%; background: #fff; color: #58714a; font-size: 10px; font-weight: 600; }
.site-energy-label { max-width: 200px; font-size: 14px; font-weight: 500; line-height: 1.5; text-align: center; overflow-wrap: anywhere; }
.site-energy-connector { position: absolute; top: 27px; left: calc(50% + 33px); width: calc(100% - 66px); height: 2px; background: #d5e2cb; }
.site-energy-connector::after { content: ''; position: absolute; top: 50%; left: 0; width: 7px; height: 7px; border-radius: 50%; background: #739d35; box-shadow: 0 0 0 4px #c2ec5430; opacity: 0; transform: translate(-50%, -50%); animation: site-energy-transfer 8s linear infinite; animation-delay: calc(var(--flow-step) * 2s + .35s); animation-play-state: paused; }
.site-energy-diagram.is-flow-playing.is-flow-visible .site-energy-node, .site-energy-diagram.is-flow-playing.is-flow-visible .site-energy-connector::after { animation-play-state: running; }
.site-service-detail .site-energy-flow { grid-template-columns: minmax(0, 1fr); gap: 26px; }
.site-service-detail .site-energy-flow li { flex-direction: row; gap: 22px; min-height: 56px; padding: 0; }
.site-service-detail .site-energy-label { max-width: none; text-align: left; }
.site-service-detail .site-energy-connector { top: 56px; left: 27px; width: 2px; height: 26px; }
.site-service-detail .site-energy-connector::after { left: 50%; animation-name: site-energy-transfer-down; }
@keyframes site-energy-transfer { 0% { left: 0; opacity: 0; } 3% { opacity: 1; } 22% { left: 100%; opacity: 1; } 25%, 100% { left: 100%; opacity: 0; } }
@keyframes site-energy-transfer-down { 0% { top: 0; opacity: 0; } 3% { opacity: 1; } 22% { top: 100%; opacity: 1; } 25%, 100% { top: 100%; opacity: 0; } }
@keyframes site-energy-node-glow { 0%, 25%, 100% { box-shadow: 0 0 0 0 #a5ce6500; } 10% { box-shadow: 0 0 0 7px #a5ce6530; } }
.site-storage-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 28px 0 36px; }
.site-storage-options article { min-width: 0; padding: 28px; border: 1px solid var(--line); background: white; border-radius: 4px; }
.site-storage-options h3 { font-size: 23px; overflow-wrap: anywhere; }
.site-storage-options article > p:last-child, .site-storage-note { color: var(--muted); font-size: 15px; }
.site-storage-benefits { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 28px; }
@media (max-width: 700px) {
  .site-storage-options, .site-storage-benefits { grid-template-columns: minmax(0, 1fr); }
  .site-energy-diagram { padding: 22px; }
  .site-energy-flow, .site-service-detail .site-energy-flow { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .site-energy-flow li { flex-direction: row; gap: 22px; min-height: 56px; padding: 0; }
  .site-energy-label { max-width: none; text-align: left; }
  .site-energy-connector { top: 56px; left: 27px; width: 2px; height: 26px; }
  .site-energy-connector::after { left: 50%; animation-name: site-energy-transfer-down; }
  .site-storage-options article { padding: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .site-energy-node, .site-energy-connector::after { animation: none !important; }
  .site-energy-connector::after, .site-energy-toggle { display: none; }
}
.site-not-found { min-height: 65svh; display: grid; align-items: center; }
.site-not-found-layout { display: grid; grid-template-columns: 1fr 1.35fr; align-items: center; gap: clamp(32px, 6vw, 96px); }
.site-not-found-number { color: #193e2b; font-size: clamp(110px, 19vw, 260px); font-weight: 550; line-height: 1; letter-spacing: -.06em; text-align: center; padding-block: 28px; border-block: 1px solid #d3decf; }
.site-not-found-content { min-width: 0; }
.site-not-found h1 { font-size: clamp(32px, 4vw, 52px); line-height: 1.14; font-weight: 600; margin: 0 0 24px; }
.site-not-found-content > p:not(.site-eyebrow) { color: var(--muted); font-size: 16px; max-width: 480px; margin: 0 0 32px; }
.site-not-found .site-actions { gap: 16px; }
.site-button-secondary { background: transparent; border-color: #b9c4b7; }
.site-button-secondary:hover { background: #e8efdf; }
@media (max-width: 700px) {
  .site-not-found-layout { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .site-not-found-number { justify-self: start; padding: 0; border: 0; }
  .site-not-found .site-actions { align-items: stretch; flex-direction: column; }
}
.site-error { min-height: 60vh; padding: 100px 40px; }
.site-error { max-width: 760px; margin: auto; }
.site-image-empty { background: #edf2e7; aspect-ratio: 1.4; }

.site-button > .site-icon, .site-link > .site-icon, .site-nav-contact > .site-icon, .site-round-arrow { transition: transform .22s ease; }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .site-button:not(:disabled):hover { translate: 0 -2px; box-shadow: 0 4px 12px rgba(23, 41, 29, .12); }
  .site-service:hover { translate: 0 -3px; box-shadow: 0 8px 22px rgba(23, 41, 29, .08); }
  .site-service:hover .site-service-image > img { transform: scale(1.025); }
  .site-button:not(:disabled):hover > .site-icon, .site-link:hover > .site-icon, .site-nav-contact:hover > .site-icon, .site-service:hover .site-round-arrow { transform: translateX(3px); }
}

.legal-page { width: min(900px, calc(100% - 80px)); margin: 0 auto; padding: 70px 0 100px; color: #263426; }
.legal-page h1 { font-size: 46px; line-height: 1.15; margin: 0 0 24px; overflow-wrap: anywhere; }
.legal-page h2 { font-size: 23px; margin: 42px 0 16px; }
.legal-page h3 { font-size: 18px; }
.legal-page p, .legal-page li { font-size: 15px; line-height: 1.8; }
.legal-page a { text-decoration: underline; text-underline-offset: 3px; }
.legal-page table { width: 100%; border-collapse: collapse; font-size: 13px; }
.legal-page th, .legal-page td { text-align: left; padding: 14px; border: 1px solid #d9e1d5; overflow-wrap: anywhere; }
.legal-page dt { font-weight: 600; margin-top: 14px; }
.legal-page dd { margin: 4px 0 14px; overflow-wrap: anywhere; }
.legal-page .legal-notice { background: #f0f5e7; border-left: 3px solid #7d9c46; padding: 18px; }
.legal-page .legal-missing { color: #586a3d; font-weight: 500; }
.legal-page > a:first-child { display: inline-block; margin-bottom: 28px; font-size: 13px; }
.legal-page .legal-meta { font-size: 12px; color: #58674f; }
.site-chooser-intro { max-width: 360px; color: var(--muted); font-size: 15px; }
.site-contact-details a { overflow-wrap: anywhere; }

@media (min-width: 1600px) {
  .site-hero { min-height: calc(100svh - var(--site-header-height) - 110px); }
}
@media (max-width: 1150px) {
  .site-container { width: calc(100% - 48px); }
  .site-nav { gap: 20px; }
  .site-navigation { gap: 22px; }
  .site-hero h1 { font-size: 64px; max-width: 600px; }
  .site-section-heading, .site-chooser-layout, .site-faq-layout, .site-contact-layout, .site-service-detail { gap: 48px; }
  .site-services { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-contact-prompt { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .site-process { gap: 22px; }
  .site-footer-top { gap: 30px; }
}
@media (max-width: 900px) {
  .site-body { --site-quick-contact-height: calc(64px + env(safe-area-inset-bottom, 0px)); padding-bottom: var(--site-quick-contact-height); }
  .site-contact-topbar-inner { justify-content: center; }
  .site-contact-topbar-inner > span { display: none; }
  .site-direct-contacts-header { justify-content: center; flex: 1; gap: 0 20px; }
  .site-direct-contacts-header a { font-size: 12px; }
  .site-contact-prompt { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .site-quick-contact { position: fixed; inset: auto 0 0; z-index: 40; display: flex; height: var(--site-quick-contact-height); padding: 8px 16px calc(8px + env(safe-area-inset-bottom, 0px)); gap: 8px; border-top: 1px solid #c8d2c3; background: white; box-shadow: 0 -3px 16px #17321d12; }
  .site-quick-contact a { display: flex; flex: 1; min-width: 0; align-items: center; justify-content: center; gap: 10px; background: #193e2b; border: 1px solid #193e2b; border-radius: 4px; color: white; font-size: 14px; font-weight: 600; line-height: 1.2; padding: 8px; }
  .site-quick-contact .site-icon { filter: invert(1); }
  .site-quick-contact .site-quick-contact-phone { background: #c2ec54; color: #193e2b; border-color: #c2ec54; }
  .site-quick-contact .site-quick-contact-phone .site-icon { filter: none; }
  .site-body:has(.site-contact-form:focus-within) .site-quick-contact { display: none; }
  .site-brand { font-size: 20px; }
  .site-nav { min-height: 76px; }
  .site-menu-button { display: inline-flex; }
  .site-navigation { display: none; position: absolute; left: 0; right: 0; top: 100%; background: white; padding: 24px; border-bottom: 1px solid #d9e4d3; box-shadow: 0 14px 24px rgba(17,37,19,.08); }
  .site-navigation.is-open { display: grid; gap: 4px; }
  .site-navigation > a { padding: 13px 0; }
  .site-navigation .site-nav-contact { margin: 12px 0 0; justify-content: space-between; padding: 14px; }
  .site-hero h1 { font-size: 56px; max-width: 560px; }
  .site-body h2 { font-size: 36px; }
  .site-section { padding-block: 72px; }
  .site-chooser-section { padding-top: 0; }
  .site-process { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
  .site-footer-top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-section-heading { gap: 36px; }
  .site-contact-layout, .site-faq-layout, .site-service-detail { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .site-contact-intro > p:not(.site-eyebrow) { max-width: 620px; }
  .site-projects, .site-reviews { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .site-services { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .site-container { width: calc(100% - 40px); }
  .site-nav { min-height: 72px; }
  .site-navigation { padding-inline: 20px; }
  .site-brand { font-size: 20px; max-width: calc(100% - 64px); }
  .site-hero { min-height: max(430px, calc(100svh - var(--site-header-height) - var(--site-quick-contact-height) - 64px)); }
  .site-hero h1 { font-size: 43px; max-width: 100%; margin-bottom: 22px; }
  .site-hero-content { padding-block: 34px 48px; }
  .site-direct-contacts-hero { display: none; }
  .site-direct-contacts-header { column-gap: 16px; row-gap: 0; padding-block: 2px; }
  .site-direct-contacts-header a { gap: 7px; min-height: 34px; font-size: 12px; }
  .site-direct-contacts-header .site-icon { width: 14px; height: 14px; flex-basis: 14px; }
  .site-quick-contact:has([data-contact="whatsapp"]) a { gap: 5px; font-size: 12px; padding-inline: 5px; }
  .site-quick-contact:has([data-contact="whatsapp"]) .site-icon { width: 17px; height: 17px; flex-basis: 17px; }
  .site-direct-contacts-prompt { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .site-direct-contacts-prompt a { font-size: 20px; }
  .site-direct-contacts-prompt > :last-child { border-left: 0; border-top: 1px solid var(--line); padding: 18px 0 0; }
  .site-contact-prompt { margin-top: 30px; padding-top: 26px; }
  .site-contact-prompt h3 { font-size: 22px; }
  .site-contact-details .site-direct-contacts a { font-size: 22px; }
  .site-hero-shade { background: rgba(15, 39, 25, .49); }
  .site-hero-image { object-position: 62% center; }
  .site-hero-copy { font-size: 15px; max-width: 340px; }
  .site-actions { gap: 12px 24px; }
  .site-button { gap: 20px; min-height: 50px; padding: 12px 18px; }
  .site-eyebrow { font-size: 11px; margin-bottom: 16px; }
  .site-image-note { right: 14px; bottom: 12px; }
  .site-values-inner { min-height: 78px; }
  .site-values-inner span { flex-direction: column; gap: 4px; font-size: 10px; text-align: center; padding: 4px 6px; }
  .site-values-inner .site-icon { width: 18px; height: 18px; }
  .site-section { padding-block: 56px; }
  .site-body h2 { font-size: 32px; margin-bottom: 20px; }
  .site-section-heading { grid-template-columns: minmax(0,1fr); gap: 18px; margin-bottom: 30px; }
  .site-section-heading h2 { margin: 0; }
  .site-section-heading > p { font-size: 14px; }
  .site-services { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .site-service-image { aspect-ratio: 1.6; }
  .site-service-content { padding: 22px; }
  .site-service-title h3 { font-size: 23px; }
  .site-service-content p { font-size: 15px; }
  .site-chooser-section { padding-top: 0; }
  .site-chooser-layout { grid-template-columns: minmax(0,1fr); gap: 12px; padding-top: 40px; }
  .site-tabs { gap: 26px; }
  .site-tabs button { font-size: 13px; }
  #audience-panel { min-height: 360px; }
  #audience-panel h3 { font-size: 23px; }
  .site-process { grid-template-columns: minmax(0,1fr); gap: 26px; margin-top: 36px; }
  .site-process li { position: relative; padding: 22px 0 0 45px; }
  .site-step-number { position: absolute; left: 0; top: 25px; }
  .site-process h3 { margin: 0 0 10px; font-size: 20px; }
  .site-process p { font-size: 14px; }
  .site-brands-row { grid-template-columns: minmax(0, 1fr); gap: 12px; padding-block: 20px; }
  .site-brands-row h3 { max-width: none; font-size: 13px; }
  .site-brand-logo { width: 140px; flex-basis: 140px; height: 72px; }
  .site-brand-logo > img { width: 130px; height: 54px; }
  .site-brand-group { gap: 24px; padding-inline: 12px; }
  .site-faq-layout { gap: 24px; }
  .site-faq summary { font-size: 15px; gap: 14px; padding-block: 22px; }
  .site-form-grid { grid-template-columns: minmax(0,1fr); gap: 18px; }
  .site-contact-form input, .site-contact-form select, .site-contact-form textarea { font-size: 16px; }
  .site-form-bottom { align-items: stretch; flex-direction: column; }
  .site-form-bottom .site-button { width: 100%; justify-content: space-between; }
  .site-footer-new { padding-top: 48px; }
  .site-footer-top { gap: 34px 22px; }
  .site-footer-top > div:first-child { grid-column: 1/-1; }
  .site-footer-top > div:last-child { grid-column: 1/-1; }
  .site-footer-top h2 { font-size: 13px; }
  .site-footer-bottom { flex-direction: column; gap: 8px; }
  .site-projects, .site-reviews, .site-public-schedule article { grid-template-columns: minmax(0,1fr); }
  .site-public-schedule article { gap: 14px; }
  .site-service-hero { min-height: max(430px, calc(100svh - var(--site-header-height) - var(--site-quick-contact-height) - 80px)); }
  .site-service-hero h1 { font-size: clamp(32px, 8.6vw, 43px); overflow-wrap: normal; word-break: normal; }
  .site-service-article h2 { font-size: clamp(28px, 8vw, 32px); overflow-wrap: normal; word-break: normal; }
  .site-service-hero .site-hero-shade { background: rgba(15,39,25,.55); }
  .site-service-hero .site-hero-image { object-position: 55% center; }
  .site-service-hero[data-service="ladowarki-samochodowe"] .site-hero-image { object-position: left center; }
  .site-breadcrumb { margin-bottom: 22px; }
  .site-selection li { gap: 18px; }
  .legal-page { width: calc(100% - 40px); padding: 48px 0 64px; }
  .legal-page h1 { font-size: 34px; }
  .legal-page h2 { font-size: 22px; margin-top: 34px; }
  .legal-page p, .legal-page li { font-size: 14px; }
  .legal-page table { display: block; overflow-x: auto; }
}
@media (max-width: 360px) {
  .site-hero h1 { font-size: 34px; }
  .site-service-hero h1 { font-size: 32px; }
  .site-hero-copy { font-size: 14px; margin-bottom: 20px; }
  .site-hero-content { padding-block: 26px 42px; }
  .site-tabs { gap: 18px; }
}
@media (min-width: 480px) and (max-height: 600px) {
  .site-hero, .site-service-hero { min-height: calc(100svh - var(--site-header-height) - var(--site-quick-contact-height) - 30px); }
  .site-hero-content { padding-block: 12px 20px; }
  .site-direct-contacts-hero { display: none; }
  .site-hero .site-eyebrow, .site-hero .site-breadcrumb { display: none; }
  .site-hero h1 { font-size: 32px; max-width: 900px; margin-bottom: 12px; }
  .site-hero-copy { font-size: 12px; line-height: 1.5; max-width: 760px; margin-bottom: 12px; }
  .site-hero .site-button { min-height: 44px; padding-block: 10px; }
}
@media (min-width: 480px) and (max-width: 900px) and (max-height: 400px) {
  .site-contact-topbar { display: none; }
  .site-nav { min-height: 56px; }
  .site-brand-mark { width: 36px; height: 36px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .site-body *, .site-body *::before, .site-body *::after { animation: none !important; transition: none !important; }
  #brand-motion { display: none; }
  .site-brand-track { width: 100%; }
  .site-brand-group { flex-wrap: wrap; width: 100%; min-width: 0; justify-content: flex-start; gap: 12px; padding: 0; }
  .site-brand-group[aria-hidden] { display: none; }
  .site-brand-logo { flex: 1 1 120px; }
}
.site-checks small { display: block; font-weight: 400; margin-top: 5px; line-height: 1.5; }

/* Flags sit at the right edge of the green contact bar. */
.site-topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:24px;min-width:0;margin-left:auto}
.site-languages{display:flex;align-items:center;gap:2px;flex:none;margin:0}
.site-languages a{display:flex;align-items:center;justify-content:center;width:44px;min-height:44px;color:inherit;text-decoration:none;border-radius:4px;position:relative}
.site-languages a:hover{background:rgb(255 255 255 / 10%)}
.site-languages img{display:block;width:24px;height:16px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px rgb(255 255 255 / 35%)}
.site-languages a[aria-current]{background:rgb(255 255 255 / 12%)}
.site-languages a[aria-current]::after{content:"";position:absolute;bottom:4px;left:14px;right:14px;height:2px;background:var(--accent);border-radius:2px}
.site-languages a:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
.site-button,.site-tabs button,.site-navigation a{white-space:normal;overflow-wrap:anywhere}
.site-service-title h3,.site-process h3,.site-brand-name,.site-form-grid label{min-width:0;overflow-wrap:anywhere}
@media(min-width:981px){.site-nav{gap:18px}.site-navigation{gap:clamp(12px,1.8vw,28px)}.site-brand{flex-shrink:1}.site-brand-name{font-size:clamp(16px,1.6vw,22px)}}
@media(max-width:900px){.site-topbar-actions{width:100%;justify-content:space-between;gap:12px}.site-direct-contacts-header{justify-content:flex-start}.site-languages{margin-left:auto}}
@media(max-width:600px){.site-topbar-actions{gap:8px;padding-block:4px}.site-direct-contacts-header{display:grid;grid-template-columns:minmax(0,1fr);gap:0;justify-content:start}.site-direct-contacts-header a{min-height:25px;font-size:11px;gap:6px}.site-contact-topbar .site-icon{width:13px;height:13px;flex-basis:13px}.site-nav{gap:7px}.site-brand-name{font-size:15px}.site-brand{min-width:0}.site-brand-image{width:34px;height:34px}}
@media(min-width:480px) and (max-width:900px) and (max-height:400px){.site-contact-topbar{display:block}}
@media(min-width:480px) and (max-width:900px) and (max-height:400px){.site-topbar-actions{padding-block:0}.site-direct-contacts-header{display:flex;gap:12px}.site-hero-content{padding-block:6px 8px}.site-hero h1,.site-hero-copy{margin-bottom:8px}}
.site-client-type{display:grid;gap:8px;margin-bottom:22px;font-size:13px;font-weight:600}
.site-client-type select{width:100%;padding:13px;background:white;border:1px solid #cbd5c8;border-radius:4px;font:inherit}
.site-form-grid [hidden]{display:none!important}
.site-phone-number{display:flex;align-items:center;background:#fff;border:1px solid #cbd5c8;border-radius:4px;min-width:0}
.site-phone-number .site-phone-prefix{padding-left:14px;flex:none;font-size:14px;color:#52614e}
.site-form-grid .site-phone-number input{border:0;background:transparent;min-width:0;width:100%}
.site-form-grid label>small{font-size:11px;color:#596651;font-weight:400;line-height:1.5}

.site-country-field{position:relative;display:grid;align-content:start;gap:6px;min-width:0;font-size:12px;font-weight:600}
.site-country-field label{display:block}.site-country-field.is-enhanced>select{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;padding:0;border:0}
.site-country-toggle{display:flex;align-items:center;gap:8px;width:100%;min-width:0;min-height:48px;padding:12px 14px;text-align:left;background:#fff;border:1px solid #cbd5c8;border-radius:4px;font:inherit;color:#193e2b;cursor:pointer}
.site-country-toggle [data-country-value]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-country-toggle small{font-weight:500;color:#687564}.site-country-toggle .site-icon{width:15px;height:15px}.site-country-toggle:focus-visible{outline:2px solid #267c36;outline-offset:2px}
.site-country-popup{position:absolute;top:100%;left:0;right:0;z-index:30;margin-top:6px;padding:8px;background:#fff;border:1px solid #cbd5c8;border-radius:8px;box-shadow:0 12px 32px #14392326}
.site-country-popup input{width:100%;margin-bottom:6px;font:inherit}.site-country-popup [role=listbox]{max-height:min(260px,40svh);overflow-y:auto;overscroll-behavior:contain}
.site-country-option{display:flex;gap:10px;align-items:center;width:100%;min-height:44px;padding:10px 8px;border:0;border-radius:4px;background:white;text-align:left;font:inherit;cursor:pointer;color:#193e2b}.site-country-option.is-active,.site-country-option:hover{background:#f0f6e8}.site-country-option[aria-selected=true]{font-weight:700;background:#e5f0d7}.site-country-name{flex:1;min-width:0;overflow-wrap:anywhere}.site-country-dial{font-weight:400;color:#687564}.site-country-flag{font-size:20px}.site-country-popup p{margin:8px;font-weight:400}

.site-service-applications { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 20px 0 28px; list-style: none; }
.site-service-applications li { border: 1px solid #d3decf; border-radius: 4px; padding: 7px 12px; font-size: 13px; }
.site-service-article .site-selection p { color: var(--muted); font-size: 14px; }

.site-service-topic + .site-service-topic { margin-top: 28px; }
.site-service-topic h3 { margin: 0 0 12px; }
.site-service-topic p { margin: 0; }
.site-service-article .site-actions { margin-top: 36px; }
