:root {
  --ink: #171717;
  --muted: #5c5c5c;
  --line: #ebebeb;
  --soft: #f7f7f7;
  --primary: #fa7319;
  --container: 1224px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #fff; color: var(--ink); font-family: Inter, Arial, sans-serif; font-optical-sizing: auto; }
a { color: inherit; text-decoration: none; }

@media (prefers-reduced-motion: no-preference) {
  .motion-ready .reveal { opacity: 0; transform: translateY(20px); transition: opacity .62s ease, transform .62s cubic-bezier(.22, 1, .36, 1); transition-delay: var(--reveal-delay, 0ms); }
  .motion-ready .reveal.reveal--visible { opacity: 1; transform: translateY(0); }
  .motion-ready .intro__copy.reveal, .motion-ready .intro__copy.reveal.reveal--visible { transform: none; }
}

.header { align-items: center; display: grid; grid-template-columns: 1fr auto 1fr; gap: 20px; height: 72px; margin: 0 auto; max-width: 1600px; padding: 20px 11.75%; position: relative; z-index: 2; }
.brand { align-items: center; display: inline-flex; width: fit-content; }
.brand img { display: block; height: 32px; width: 129px; }
.nav { display: flex; gap: 8px; }
.nav a { border-radius: 96px; color: var(--muted); font-size: 14px; font-weight: 500; letter-spacing: -.6px; line-height: 20px; padding: 6px 12px; white-space: nowrap; }
.nav a:hover, .nav a:focus-visible { background: var(--soft); outline: none; }
.header > .button { justify-self: end; }

.button { align-items: center; border: 1px solid transparent; border-radius: 12px; display: inline-flex; font-size: 14px; font-weight: 500; gap: 4px; justify-content: center; letter-spacing: -.6px; line-height: 20px; min-height: 40px; padding: 9px 17px; transition: transform .18s ease, background .18s ease; }
.button:hover { transform: translateY(-1px); }
.button--small { border-radius: 10px; min-height: 32px; padding: 5px 14px; }
.button--quiet { background: color-mix(in srgb, var(--primary) 10%, transparent); color: var(--primary); }
.button--primary { background: var(--primary); box-shadow: 0 1px 2px rgba(14,18,27,.24), 0 0 0 1px var(--primary); color: #fff; }
.button--light { background: var(--soft); color: var(--muted); }

.hero { border-radius: 16px; height: 756px; margin: 20px auto; max-width: 1512px; overflow: hidden; position: relative; }
.hero__image, .hero__shade { height: 100%; inset: 0; position: absolute; width: 100%; }
.hero__image { object-fit: cover; }
.hero__shade { background: radial-gradient(ellipse 38% 72% at 62.5% 48%, transparent 0%, rgba(0,0,0,.5) 100%); }
.hero__content { color: #fff; left: clamp(40px, 6.8vw, 103px); position: absolute; top: 285px; width: 736px; }
.hero h1 { font-size: 64px; font-weight: 500; letter-spacing: -.2px; line-height: .86; margin: 0; }
.hero p { color: #d2d2d2; font-size: 20px; letter-spacing: -1.04px; line-height: normal; margin: 24px 0; max-width: 400px; }
.actions { display: flex; gap: 12px; }

.section { margin: 0 auto; padding: 96px max(24px, calc((100vw - var(--container)) * .5)); width: 100%; }
.intro { align-items: center; display: grid; gap: clamp(40px, 7vw, 124px); grid-template-columns: minmax(240px, .72fr) minmax(0, 1.55fr); position: relative; text-align: left; }
.intro__visual { justify-self: end; max-width: 360px; width: 100%; }
.intro__visual img { display: block; mix-blend-mode: multiply; width: 100%; }
.intro__copy { display: flex; flex-direction: column; padding-top: 62px; }
.intro__copy .badge { font-size: 14px; left: 50%; letter-spacing: -.6px; line-height: 20px; padding: 4px 10px 4px 7px; position: absolute; top: 96px; transform: translateX(-50%); }
.badge { align-items: center; border-radius: 9px; box-shadow: 0 0 0 1px var(--line), 0 1px 1px -0.5px rgba(23,23,23,.04), 0 3px 3px -1.5px rgba(23,23,23,.04); color: var(--muted); display: inline-flex; font-size: 14px; font-weight: 500; gap: 4px; letter-spacing: -.6px; line-height: 20px; padding: 4px 10px 4px 7px; }
.badge span { display: block; height: 16px; position: relative; width: 16px; }
.badge span::after { background: var(--primary); border-radius: 50%; content: ''; height: 6px; left: 5px; position: absolute; top: 5px; width: 6px; }
.intro h2 { font-size: clamp(40px, 3vw, 52px); font-weight: 550; letter-spacing: -1.6px; line-height: 1.1; margin: 24px 0 16px; max-width: 100%; }
.intro__copy > p { color: var(--muted); font-size: 20px; letter-spacing: -.8px; line-height: 1.45; margin: 0; max-width: 870px; }
.intro__copy .intro__emphasis { font-size: clamp(28px, 2vw, 32px); letter-spacing: -1.1px; line-height: 1.3; margin-top: 8px; }

.solution { padding-top: 96px; }
.solution-grid { display: grid; gap: 24px 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 48px; }
.solution-card { border-radius: 24px; min-height: 372px; overflow: hidden; position: relative; }
.solution-card--text { align-items: flex-start; background: var(--soft); display: flex; flex-direction: column; justify-content: center; padding: 40px; }
.solution-card__lead { color: var(--ink); font-size: 28px; font-weight: 400; letter-spacing: -.5px; line-height: 34px; margin: 0; }
.solution-card--transfer .solution-card__lead, .solution-card--copy .solution-card__lead, .solution-card--solar .solution-card__lead { color: var(--muted); font-size: 36px; letter-spacing: -1.5px; line-height: 44px; }
.solution-card--transfer .solution-card__lead strong, .solution-card--copy .solution-card__lead strong, .solution-card--solar .solution-card__lead strong { color: var(--ink); font-weight: 600; }
.solution-card__note { color: var(--muted); font-size: 20px; font-weight: 400; letter-spacing: -.8px; line-height: 28px; margin: 44px 0 0; }
.solution-card--copy { justify-content: flex-start; }
.solution-card--copy > p:not(.solution-card__lead) { color: var(--muted); font-size: 20px; letter-spacing: -.8px; line-height: 28px; margin: 44px 0 0; }
.solution-card--solar { min-height: 442px; }
.solution-card--gallery { background: #ededeb; min-height: 455px; }
.gallery-stage { height: 100%; inset: 0; overflow: hidden; position: absolute; width: 100%; }
.gallery-stage img { height: 100%; object-fit: cover; transition: opacity .2s ease; width: 100%; }
.solution-card--gallery:not(.solution-card--system) .gallery-stage img { object-position: center 30%; }
.solution-card--system .gallery-stage { background: #fff; }
.solution-card--system .gallery-stage img { object-fit: contain; padding: 0 88px; }
.solution-card--critical .gallery-stage img, .solution-card--device .gallery-stage img { object-position: center; }
.gallery-controls { align-items: center; bottom: 24px; display: flex; gap: 4px; justify-content: center; left: 0; position: absolute; right: 0; z-index: 1; }
.gallery-controls button { background: rgba(255,255,255,.85); border: 0; border-radius: 8px; color: var(--ink); cursor: pointer; font: inherit; font-size: 21px; height: 32px; line-height: 1; width: 44px; }
.gallery-controls button:hover { background: #fff; }
.solution-card--house { align-items: flex-end; background: var(--soft); display: flex; justify-content: center; min-height: 442px; }
.solution-card--house img { height: 100%; object-fit: cover; object-position: center bottom; width: 100%; }

.calculator { padding-top: 104px; }
.section-heading { align-items: center; display: flex; flex-direction: column; text-align: center; }
.section-heading h2 { font-size: 40px; font-weight: 550; letter-spacing: -1px; line-height: 48px; margin: 12px 0 16px; }
.section-heading p { color: var(--muted); font-size: 16px; letter-spacing: -1.1px; line-height: 24px; margin: 0; max-width: 528px; }
.calculator-card { background: var(--soft); border: 0; border-radius: 32px; margin-top: 48px; padding: 16px; }
.calculator-card__inner { background: #fff; border-radius: 20px; box-shadow: 0 20px 20px -10px rgba(23,23,23,.04),0 10px 10px -5px rgba(23,23,23,.04),0 0 0 1px rgba(23,23,23,.04); display: grid; grid-template-columns: 1.86fr 1fr; min-height: 580px; overflow: hidden; }
.calculator-controls { border-right: 1px solid var(--line); padding: 40px 48px 40px 46px; }
fieldset { border: 0; margin: 0 0 36px; padding: 0; }
fieldset:last-child { margin-bottom: 0; }
legend { color: var(--muted); font-size: 28px; font-weight: 400; line-height: 34px; margin-bottom: 16px; padding: 0; }
legend span { color: #b0b0b0; }
.choice-row { display: flex; flex-wrap: wrap; gap: 8px; }
.choice { border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 1px 2px rgba(10,13,20,.03); color: var(--muted); cursor: pointer; font-size: 14px; font-weight: 500; letter-spacing: -.6px; line-height: 20px; padding: 4px 10px; }
.choice:has(input:checked) { background: color-mix(in srgb, var(--primary) 10%, #fff); border-color: transparent; color: var(--primary); }
.choice input { appearance: none; height: 0; margin: 0; position: absolute; width: 0; }
.load-options { max-width: 540px; }
.load-options legend { margin-bottom: 0; }
.load-radio { height: 1px; opacity: 0; position: absolute; width: 1px; }
.solar-option { max-width: 465px; }
.load-selector { margin-top: 22px; }
.load-slider__labels { display: grid; grid-template-columns: repeat(3, 1fr); }
.load-slider__labels button { background: transparent; border: 0; color: var(--ink); cursor: pointer; font: inherit; font-size: 12px; font-weight: 550; letter-spacing: -.3px; line-height: 15px; padding: 0; text-align: left; }
.load-slider__labels button:nth-child(2) { text-align: center; }
.load-slider__labels button:last-child { text-align: right; }
.load-slider input[type="range"] { -webkit-appearance: none; appearance: none; background: transparent; cursor: pointer; display: block; height: 16px; margin: 8px 0 0; width: 100%; }
.load-slider input[type="range"]::-webkit-slider-runnable-track { background: linear-gradient(to right, #fa7319 0 var(--load-progress), var(--line) var(--load-progress) 100%); border-radius: 999px; height: 6px; }
.load-slider input[type="range"]::-moz-range-track { background: linear-gradient(to right, #fa7319 0 var(--load-progress), var(--line) var(--load-progress) 100%); border-radius: 999px; height: 6px; }
.load-slider input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; background: radial-gradient(circle, #fa7319 0 3px, #fff 3.5px); border: 0; border-radius: 50%; box-shadow: 0 6px 5px rgba(14,18,27,.06), 0 2px 2px rgba(14,18,27,.03); height: 16px; margin-top: -5px; width: 16px; }
.load-slider input[type="range"]::-moz-range-thumb { background: radial-gradient(circle, #fa7319 0 3px, #fff 3.5px); border: 0; border-radius: 50%; box-shadow: 0 6px 5px rgba(14,18,27,.06), 0 2px 2px rgba(14,18,27,.03); height: 16px; width: 16px; }
.load-slider input[type="range"]:focus-visible { outline: none; }
.load-slider input[type="range"]:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 3px color-mix(in srgb, #fa7319 20%, transparent), 0 6px 5px rgba(14,18,27,.06), 0 2px 2px rgba(14,18,27,.03); }
.load-icons { align-items: end; display: grid; gap: 12px; grid-template-columns: repeat(7, minmax(0, 1fr)); margin-top: 24px; }
.load-icons img { filter: grayscale(1) contrast(.55) brightness(1.35); height: 56px; justify-self: center; max-width: 64px; mix-blend-mode: multiply; object-fit: contain; opacity: .24; transform: scale(.92); transition: filter .28s ease, opacity .28s ease, transform .28s ease; width: 100%; }
.load-selector[data-load-stage="1"] .load-icons img[data-load-level="1"], .load-selector[data-load-stage="2"] .load-icons img[data-load-level="2"], .load-selector[data-load-stage="3"] .load-icons img[data-load-level="3"] { filter: none; opacity: 1; transform: scale(1); }
.load-selector[data-load-stage="2"] .load-icons img[data-load-level="1"] { filter: grayscale(.35) contrast(.8) brightness(1.1); opacity: .68; transform: scale(.97); }
.load-selector[data-load-stage="3"] .load-icons img[data-load-level="1"] { filter: grayscale(.55) contrast(.7) brightness(1.2); opacity: .48; transform: scale(.94); }
.load-selector[data-load-stage="3"] .load-icons img[data-load-level="2"] { filter: grayscale(.2) contrast(.9) brightness(1.05); opacity: .78; transform: scale(.98); }
.load-selector[data-load-stage] .load-icons img[data-always-on] { filter: none; opacity: 1; transform: scale(1); }
.load-icons img[data-appliance="lamp"] { height: 68px; max-width: 72px; }
.solar-capacity { align-items: center; color: var(--muted); display: flex; font-size: 14px; font-weight: 500; justify-content: space-between; letter-spacing: -.6px; margin-top: 14px; max-width: 465px; }
.solar-capacity[hidden], .estimate__specification-item[hidden] { display: none !important; }
.solar-capacity__control { align-items: center; display: flex; gap: 8px; }
.solar-capacity output { color: var(--ink); min-width: 48px; text-align: center; }
.solar-capacity__adjust { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 20px; height: 28px; justify-content: center; line-height: 1; padding: 0 0 2px; transition: border-color .18s ease, color .18s ease; width: 28px; }
.solar-capacity__adjust:hover:not(:disabled) { border-color: var(--primary); color: var(--primary); }
.solar-capacity__adjust:disabled { color: #c8c8c8; cursor: not-allowed; }
.switch-row { align-items: center; color: var(--muted); cursor: pointer; display: flex; font-size: 16px; gap: 16px; justify-content: space-between; letter-spacing: -1.1px; line-height: 24px; }
.switch-row input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.switch-row i { background: #ebebeb; border-radius: 999px; flex: 0 0 28px; height: 16px; position: relative; }
.switch-row i::after { background: #fff; border-radius: 50%; box-shadow: 0 1px 2px rgba(10,13,20,.2); content: ''; height: 12px; left: 2px; position: absolute; top: 2px; transition: transform .18s ease; width: 12px; }
.switch-row input:checked + i { background: var(--primary); }
.switch-row input:checked + i::after { transform: translateX(12px); }
.estimate { display: flex; flex-direction: column; justify-content: space-between; padding: 40px; }
.estimate__icon { color: var(--primary); font-size: 34px; height: 40px; line-height: 40px; }
.estimate__time { align-items: center; display: flex; gap: 10px; margin-top: 12px; }
.estimate strong { display: block; font-size: 40px; font-weight: 550; letter-spacing: -1px; line-height: 56px; margin-top: 12px; }
.estimate__time strong { margin: 0; }
.estimate__time .estimate__hours--infinite { font-family: Arial, sans-serif; font-size: 84px; font-weight: 400; letter-spacing: -7px; line-height: 56px; transform: scaleX(1.08); transform-origin: center; }
.estimate__adjust { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 24px; height: 32px; justify-content: center; line-height: 1; padding: 0 0 3px; transition: border-color .18s ease, color .18s ease; width: 32px; }
.estimate__adjust:hover:not(:disabled) { border-color: var(--primary); color: var(--primary); }
.estimate__adjust:disabled { color: #c8c8c8; cursor: not-allowed; }
.estimate p { color: var(--muted); font-size: 16px; letter-spacing: -1.1px; line-height: 24px; margin: 4px 0 0; }
.estimate .estimate__comment { font-size: 12px; letter-spacing: -.35px; line-height: 17px; margin-top: 6px; max-width: 330px; }
.estimate .estimate__comment--warning { color: #b24a2c; }
.estimate__specification { display: grid; gap: 5px; list-style: none; margin: 10px 0 0; padding: 0; }
.estimate__specification-item { align-items: center; color: var(--muted); display: flex; font-size: 12px; gap: 7px; letter-spacing: -.25px; line-height: 17px; }
.estimate__specification-item::before { background: currentColor; border-radius: 50%; content: ''; flex: 0 0 7px; height: 7px; width: 7px; }
.estimate__specification-item b { color: var(--ink); font-weight: 500; }
.estimate__specification-item--battery::before { background: #fa7319; }
.estimate__specification-item--inverter::before { background: #fa7319; }
.estimate__specification-item--solar::before { background: #21a365; }
.estimate__bottom { background: var(--soft); border-radius: 16px; margin: 0 -20px -20px; padding: 24px 20px 20px; }
.estimate__bottom strong { margin: 0; }
.estimate .button { margin-top: 16px; }
.calculator-note { color: var(--muted); font-size: 13px; line-height: 18px; margin: 12px 8px 0; text-align: center; }

.technical { display: flex; flex-direction: column; gap: 80px; }
.technical > h2 { font-size: 48px; font-weight: 550; letter-spacing: -.48px; line-height: 56px; margin: 0; text-align: center; }
.faq h2, .contact h2 { font-size: 40px; font-weight: 550; letter-spacing: -1px; line-height: 48px; margin: 0; }
.technical__cards { display: grid; gap: 8px; }
.tech-card { align-items: flex-start; background: var(--soft); border-radius: 28px; display: flex; gap: 24px; padding: 36px 40px 36px 36px; }
.technical__illustration { flex: 0 0 80px; height: 60px; overflow: hidden; position: relative; width: 80px; }
.technical__illustration img { height: 100%; inset: 0; max-width: none; position: absolute; width: 100%; }
.technical__illustration--sine img { top: -27.19%; }
.technical__illustration--switch img { top: -15.23%; }
.technical__illustration--battery img { top: -7.61%; }
.technical__illustration--scalability { flex-basis: 89px; height: 67px; width: 89px; }
.tech-card h3 { font-size: 18px; font-weight: 500; letter-spacing: -.27px; line-height: 24px; margin: 0 0 8px; }
.tech-card p { color: var(--muted); font-size: 16px; letter-spacing: -.176px; line-height: 24px; margin: 0; }
.technical__list { color: var(--muted); display: grid; font-size: 16px; gap: 16px; letter-spacing: -.176px; line-height: 24px; list-style: none; margin: -48px 0 0; padding: 0; }
.technical__list li { align-items: center; display: flex; gap: 10px; }
.technical__list img { flex: 0 0 18px; height: 18px; width: 18px; }

.faq { padding-top: 104px; }
.faq__list { margin: 48px auto 0; max-width: 1016px; }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { align-items: center; cursor: pointer; display: flex; font-size: 16px; font-weight: 500; justify-content: space-between; letter-spacing: -1.1px; line-height: 24px; list-style: none; min-height: 56px; padding: 16px 24px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { color: var(--primary); content: '+'; font-size: 28px; font-weight: 400; line-height: 24px; }
.faq details[open] summary::after { content: '–'; }
.faq details p { color: var(--muted); font-size: 16px; letter-spacing: -1.1px; line-height: 24px; margin: 0; padding: 4px 24px 20px; }

.contact { padding-top: 104px; }
.contact-form { background: var(--soft); border-radius: 32px; margin-top: 48px; padding: 16px; }
.request-configuration { background: #fff; border: 1px solid rgba(23,23,23,.06); border-radius: 20px; box-shadow: 0 12px 20px -16px rgba(23,23,23,.16), 0 3px 6px -4px rgba(23,23,23,.06); margin-bottom: 8px; padding: 24px; }
.request-configuration[hidden] { display: none; }
.request-configuration--empty { align-items: center; display: flex; gap: 24px; justify-content: space-between; }
.request-configuration--empty strong { color: var(--ink); display: block; font-size: 18px; font-weight: 500; letter-spacing: -.27px; line-height: 24px; }
.request-configuration--empty p { color: var(--muted); font-size: 14px; letter-spacing: -.25px; line-height: 20px; margin: 4px 0 0; max-width: 640px; }
.request-configuration__heading { align-items: flex-start; display: flex; justify-content: space-between; }
.request-configuration__heading span { color: var(--muted); display: block; font-size: 14px; letter-spacing: -.25px; line-height: 20px; }
.request-configuration__heading strong { display: block; font-size: 20px; font-weight: 550; letter-spacing: -.45px; line-height: 28px; margin-top: 2px; }
.request-configuration__remove { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 50%; color: var(--muted); cursor: pointer; display: inline-flex; font: inherit; font-size: 24px; height: 28px; justify-content: center; line-height: 1; padding: 0 0 3px; width: 28px; }
.request-configuration__remove:hover { border-color: var(--primary); color: var(--primary); }
.request-configuration__specs { display: grid; gap: 8px 24px; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; margin: 20px 0 0; padding: 0; }
.request-configuration__specs li { border-top: 1px solid var(--line); padding-top: 10px; }
.request-configuration__specs span { color: var(--muted); display: block; font-size: 12px; letter-spacing: -.2px; line-height: 17px; }
.request-configuration__specs b { color: var(--ink); display: block; font-size: 14px; font-weight: 500; letter-spacing: -.25px; line-height: 20px; margin-top: 2px; }
.request-configuration__actions { align-items: center; display: flex; font-size: 14px; gap: 16px; justify-content: space-between; letter-spacing: -.25px; line-height: 20px; margin-top: 20px; }
.request-configuration__actions a { color: var(--primary); font-weight: 500; }
.request-configuration__actions span { color: var(--muted); text-align: right; }
.contact-form__row, .message-field { background: #fff; border: 1px solid rgba(23,23,23,.06); border-radius: 20px; box-shadow: 0 12px 20px -16px rgba(23,23,23,.16), 0 3px 6px -4px rgba(23,23,23,.06); display: grid; gap: 16px; padding: 16px; }
.contact-form__row { grid-template-columns: 1fr 2.27fr 1fr; }
.contact-form label { color: var(--muted); display: grid; font-size: 14px; font-weight: 500; gap: 7px; letter-spacing: -.6px; line-height: 20px; }
.contact-form input, .contact-form textarea { background: #fff; border: 1px solid rgba(23,23,23,.09); border-radius: 10px; box-shadow: 0 1px 2px rgba(23,23,23,.025); color: var(--ink); font: inherit; min-height: 42px; outline: none; padding: 10px 12px; width: 100%; }
.contact-form input:focus, .contact-form textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 15%, transparent); }
.message-field { margin-top: 8px; position: relative; }
.contact-form textarea { min-height: 116px; resize: vertical; }
.message-field small { bottom: 28px; color: #a3a3a3; font-size: 11px; position: absolute; right: 30px; }
.contact-form > .button { margin: 16px 0 0 16px; }
.form-status { color: var(--primary); display: inline-block; font-size: 14px; margin: 0 0 0 12px; }

.team { display: flex; flex-direction: column; gap: 48px; padding-top: 96px; }
.team__heading { align-items: center; display: flex; flex-direction: column; gap: 16px; text-align: center; }
.team .badge img { display: block; height: 16px; width: 16px; }
.team h2 { font-size: 40px; font-weight: 550; letter-spacing: -.4px; line-height: 48px; margin: 0; }
.team__grid { display: grid; gap: 6px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.team-card { background: var(--soft); border-radius: 40px; display: flex; flex-direction: column; gap: 48px; min-height: 560px; padding: 48px; }
.team-card__icon { align-items: center; background: #fff; border-radius: 20px; box-shadow: 0 3px 3px -1.5px rgba(23,23,23,.06), 0 1px 1px -.5px rgba(23,23,23,.06), 0 0 0 1px rgba(23,23,23,.02); display: flex; height: 56px; justify-content: center; width: 56px; }
.team-card__icon img { display: block; height: 24px; object-fit: contain; width: 24px; }
.team-card__icon--large { height: 64px; width: 64px; }
.team-card__icon--large img { height: 32px; width: 32px; }
.team-card h3 { font-size: 20px; font-weight: 700; letter-spacing: -.12px; line-height: 28px; margin: 0 0 8px; }
.team-card p { color: var(--muted); font-size: 16px; font-weight: 500; letter-spacing: -.176px; line-height: 24px; margin: 0; }

.footer { background: var(--soft); margin-top: 48px; }
.footer__inner { align-items: center; display: grid; gap: 24px; grid-template-columns: 1fr auto 1fr; margin: 0 auto; max-width: var(--container); min-height: 120px; padding: 32px 0; }
.footer__nav { display: flex; flex-wrap: wrap; gap: 8px 20px; justify-content: center; }
.footer__nav a, .footer__copyright { color: var(--muted); font-size: 14px; font-weight: 500; letter-spacing: -.6px; line-height: 20px; }
.footer__nav a:hover { color: var(--primary); }
.footer__copyright { justify-self: end; }

@media (max-width: 900px) {
  .header { grid-template-columns: 1fr auto; padding: 18px 24px; }
  .nav { display: none; }
  .hero { border-radius: 0; height: 680px; margin: 0; }
  .hero__content { left: 24px; right: 24px; top: auto; bottom: 52px; width: auto; }
  .hero h1 { font-size: clamp(38px, 9vw, 54px); line-height: .95; }
  .hero p { font-size: 18px; letter-spacing: -.6px; }
  .section { padding: 72px 24px; }
  .intro { gap: 12px; grid-template-columns: 1fr; }
  .intro__visual { justify-self: center; max-width: 280px; }
  .intro__copy { align-items: center; padding-top: 0; text-align: center; }
  .intro__copy .badge { font-size: 14px; line-height: 20px; padding: 4px 10px 4px 7px; position: static; transform: none; }
  .intro__copy .badge span { height: 16px; width: 16px; }
  .intro h2 { font-size: 34px; line-height: 40px; white-space: normal; }
  .intro__copy > p { font-size: 17px; line-height: 25px; }
  .intro__copy .intro__emphasis { font-size: 25px; line-height: 32px; margin-top: 12px; }
  .solution-grid { grid-template-columns: 1fr; }
  .solution-card { min-height: 340px; }
  .solution-card--solar, .solution-card--house { min-height: 390px; }
  .calculator-card__inner { grid-template-columns: 1fr; }
  .calculator-controls { border-bottom: 1px solid var(--line); border-right: 0; padding: 32px 24px; }
  .estimate { gap: 48px; padding: 32px 24px; }
  .section-heading h2 { font-size: 34px; line-height: 40px; }
  .technical { gap: 48px; }
  .technical__list { margin-top: -16px; }
  .contact-form__row { grid-template-columns: 1fr; }
  .request-configuration__specs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .team__grid { grid-template-columns: 1fr; }
  .team-card { min-height: 0; }
  .footer__inner { grid-template-columns: 1fr; padding: 32px 24px; text-align: center; }
  .footer__inner .brand, .footer__copyright { justify-self: center; }
}

@media (max-width: 480px) {
  .header { padding: 18px 16px; }
  .header > .button { display: none; }
  .hero { height: 650px; }
  .actions { align-items: stretch; flex-direction: column; }
  .actions .button { width: 100%; }
  .section { padding: 64px 16px; }
  .solution { padding-top: 64px; }
  .solution-grid { gap: 12px; margin-top: 32px; }
  .solution-card { border-radius: 16px; min-height: 320px; }
  .solution-card--text { padding: 28px 24px; }
  .solution-card--transfer .solution-card__lead, .solution-card--copy .solution-card__lead, .solution-card--solar .solution-card__lead { font-size: 28px; letter-spacing: -1px; line-height: 35px; }
  .solution-card__note { font-size: 16px; line-height: 23px; margin-top: 28px; }
  .solution-card--gallery { min-height: 360px; }
  .solution-card--system .gallery-stage img { padding: 0 50px; }
  .solution-card--solar, .solution-card--house { min-height: 350px; }
  .calculator { padding-top: 64px; }
  .calculator-card { border-radius: 20px; margin-top: 32px; padding: 8px; }
  .calculator-card__inner { border-radius: 14px; }
  .calculator-controls { padding: 28px 16px; }
  legend { font-size: 24px; line-height: 30px; }
  .switch-row { font-size: 14px; letter-spacing: -.6px; }
  .load-icons { gap: 5px; margin-top: 20px; }
  .load-icons img { height: 42px; max-width: 46px; }
  .load-icons img[data-appliance="lamp"] { height: 54px; max-width: 54px; }
  .technical > h2, .faq h2, .contact h2 { font-size: 34px; line-height: 40px; }
  .tech-card { border-radius: 16px; gap: 16px; min-height: 0; padding: 24px; }
  .technical__illustration { flex-basis: 60px; height: 45px; width: 60px; }
  .technical__illustration--scalability { flex-basis: 67px; height: 50px; width: 67px; }
  .faq { padding-top: 64px; }
  .faq__list { margin-top: 32px; }
  .faq summary { padding-left: 0; padding-right: 0; }
  .faq details p { padding-left: 0; padding-right: 0; }
  .contact { padding-top: 64px; }
  .contact-form { border-radius: 20px; margin-top: 32px; padding: 8px; }
  .contact-form__row, .message-field { border-radius: 14px; padding: 16px; }
  .request-configuration { border-radius: 14px; padding: 20px 16px; }
  .request-configuration--empty { align-items: flex-start; flex-direction: column; gap: 16px; }
  .request-configuration--empty .button { width: 100%; }
  .request-configuration__specs { gap: 8px 16px; grid-template-columns: 1fr; }
  .request-configuration__actions { align-items: flex-start; flex-direction: column; gap: 8px; }
  .request-configuration__actions span { text-align: left; }
  .team { gap: 32px; padding-top: 64px; }
  .team h2 { font-size: 34px; line-height: 40px; }
  .team__grid { gap: 12px; }
  .team-card { border-radius: 24px; gap: 32px; padding: 32px 24px; }
  .footer { margin-top: 24px; }
  .footer__nav { flex-direction: column; gap: 10px; }
}
